forked from Shiloh/remnantchat
f6a3e30da2
* feat(sdk): render iframe in chat-room component * fix(ci): install optional dependencies * feat(sdk): allow subset of attributes * feat(sdk): accept root-domain attribute * feat(sdk): accept custom room name or use sane default * feat(sdk): set allowed features * feat(sdk): add sdk instructions to embed code dialog * fix(sdk): use dynamic rootUrl * fix(sdk): use static defaultRoot * feat(sdk): send config from SDK to chat * fix(sdk): expire poller * fix(sdk): pass parent domain to iframe via query param * refactor(sdk): type message event data * feat(sdk): send user id to chat frame * feat(sdk): handle some attribute updates * chore(package): add build:sdk:watch script * refactor(sdk): move more code to updateIframeAttributes * feat(sdk): support changing rooms * feat(sdk): support more user settings * docs(sdk): add SDK section to README * feat(sdk): render root-url in embed code if necessary * refactor(sdk): use map for chat room attributes * fix(sdk): unbind event listener when chat-room is disconnected * fix(sdk): properly tear down receipt listener * fix(sdk): send config when frame reloads * feat(sdk): listen for config updates * feat(sdk): request config from sdk instead of sending it repeatedly * refactor(sdk): use type guard for config message * fix(sdk): use settings from SDK when there is no preexisting persisted data * fix(sdk): observe all iframe attributes * refactor(sdk): simplify bootup logic * feat(sdk): improve embed code display
125 lines
3.9 KiB
JSON
125 lines
3.9 KiB
JSON
{
|
|
"name": "chitchatter",
|
|
"version": "0.0.0",
|
|
"homepage": "https://chitchatter.im/",
|
|
"author": "Jeremy Kahn <jeremyckahn@gmail.com>",
|
|
"license": "GPL-2.0-or-later",
|
|
"dependencies": {
|
|
"@emotion/react": "^11.10.0",
|
|
"@emotion/styled": "^11.10.0",
|
|
"@mui/icons-material": "^5.8.4",
|
|
"@mui/material": "^5.9.3",
|
|
"@react-hook/debounce": "^4.0.0",
|
|
"@react-hook/window-size": "^3.1.1",
|
|
"@testing-library/jest-dom": "^5.16.5",
|
|
"@testing-library/react": "^13.3.0",
|
|
"@testing-library/user-event": "^13.5.0",
|
|
"@types/jest": "^28.1.6",
|
|
"@types/node": "^18.6.5",
|
|
"@types/react": "^18.0.17",
|
|
"@types/react-dom": "^18.0.6",
|
|
"buffer": "^6.0.3",
|
|
"classnames": "^2.3.1",
|
|
"detectincognitojs": "^1.1.2",
|
|
"fast-memoize": "^2.5.2",
|
|
"fun-animal-names": "^0.1.1",
|
|
"idb-chunk-store": "^1.0.1",
|
|
"localforage": "^1.10.0",
|
|
"mui-markdown": "^0.5.5",
|
|
"react": "^18.2.0",
|
|
"react-dom": "^18.2.0",
|
|
"react-git-info": "^2.0.1",
|
|
"react-markdown": "^8.0.3",
|
|
"react-qrcode-logo": "^2.8.0",
|
|
"react-router-dom": "^6.3.0",
|
|
"react-scripts": "5.0.1",
|
|
"react-syntax-highlighter": "^15.5.0",
|
|
"react-youtube": "^10.1.0",
|
|
"readable-web-to-node-stream": "^3.0.2",
|
|
"remark-gfm": "^3.0.1",
|
|
"sass": "^1.54.3",
|
|
"sdp": "^3.2.0",
|
|
"secure-file-transfer": "^0.0.7",
|
|
"streamsaver": "^2.0.6",
|
|
"trystero": "^0.13.1",
|
|
"typeface-public-sans": "^1.1.13",
|
|
"typeface-roboto": "^1.1.13",
|
|
"typescript": "^4.7.4",
|
|
"uuid": "^8.3.2",
|
|
"web-vitals": "^2.1.4",
|
|
"webrtc-adapter": "^8.2.2"
|
|
},
|
|
"scripts": {
|
|
"analyze": "source-map-explorer 'build/static/js/*.js'",
|
|
"start": "cross-env REACT_APP_HOMEPAGE=$(npm pkg get homepage) react-scripts start",
|
|
"start:tracker": "bittorrent-tracker",
|
|
"start:streamsaver": "serve -p 3015 node_modules/streamsaver",
|
|
"dev": "mprocs \"npx cross-env REACT_APP_TRACKER_URL=\"ws://localhost:8000\" REACT_APP_STREAMSAVER_URL=\"http://localhost:3015/mitm.html\" npm run start\" \"npm run start:tracker\" \"npm run start:streamsaver\"",
|
|
"build": "npm run build:app && npm run build:sdk",
|
|
"build:app": "cross-env REACT_APP_HOMEPAGE=$(npm pkg get homepage) react-scripts build",
|
|
"build:sdk": "parcel build sdk/sdk.ts --dist-dir build --no-content-hash",
|
|
"build:sdk:watch": "nodemon --exec \"npm run build:sdk\"",
|
|
"test": "react-scripts test",
|
|
"prepare": "husky install",
|
|
"prettier": "prettier 'src/**/*.js' --write",
|
|
"lint": "eslint src --max-warnings=0"
|
|
},
|
|
"eslintConfig": {
|
|
"extends": [
|
|
"react-app",
|
|
"react-app/jest"
|
|
]
|
|
},
|
|
"engines": {
|
|
"node": "18.12.1",
|
|
"npm": "8.19.2"
|
|
},
|
|
"browserslist": {
|
|
"production": [
|
|
">0.2%",
|
|
"not dead",
|
|
"not op_mini all"
|
|
],
|
|
"development": [
|
|
"last 1 chrome version",
|
|
"last 1 firefox version",
|
|
"last 1 safari version"
|
|
]
|
|
},
|
|
"devDependencies": {
|
|
"@types/react-syntax-highlighter": "^15.5.5",
|
|
"@types/streamsaver": "^2.0.1",
|
|
"@types/uuid": "^8.3.4",
|
|
"@types/webtorrent": "^0.109.3",
|
|
"@typescript-eslint/eslint-plugin": "^5.33.0",
|
|
"@typescript-eslint/parser": "^5.33.0",
|
|
"autoprefixer": "^10.4.8",
|
|
"bittorrent-tracker": "^9.19.0",
|
|
"cross-env": "^7.0.3",
|
|
"eslint": "^8.21.0",
|
|
"eslint-config-react-app": "^7.0.1",
|
|
"eslint-plugin-import": "^2.26.0",
|
|
"eslint-plugin-jsx-a11y": "^6.6.1",
|
|
"eslint-plugin-react": "^7.30.1",
|
|
"eslint-plugin-react-hooks": "^4.6.0",
|
|
"husky": "^8.0.1",
|
|
"mprocs": "^0.6.4",
|
|
"nodemon": "^3.0.1",
|
|
"parcel": "^2.10.0",
|
|
"postcss": "^8.4.31",
|
|
"prettier": "^2.7.1",
|
|
"pretty-quick": "^3.1.3",
|
|
"process": "^0.11.10",
|
|
"serve": "^14.1.2",
|
|
"source-map-explorer": "^2.5.3",
|
|
"tailwindcss": "^3.1.8",
|
|
"url": "^0.11.0",
|
|
"util": "^0.12.5"
|
|
},
|
|
"jest": {
|
|
"transformIgnorePatterns": [
|
|
"node_modules/(?!trystero)/"
|
|
]
|
|
}
|
|
}
|