mirror of
https://github.com/wassname/talk.git
synced 2026-07-05 19:59:34 +08:00
84bbc3d0c3
* feat: initial impl * Create preliminary comment moderation slices CORL-688 * Move slices logic into stacks CORL-688 * Create user comment counts CORL-688 * Create naive mutation that initializes user comment counts CORL-688 * Use bulk updates in user counts migration CORL-688 * fix: review * fix: fixed issue with aggregation * Migrate creating comment into stacks CORL-688 * Migrate editing a comment to the stacks CORL-688 * Break publishing comment status out of updateAllCounts CORL-688 * review: removed variable scoping in favor of export * revert: feb8e8196cd448f5cd24f1ca2eb0b91fe9bd43c7 * review: simplification of stacks implementation This simplifies the stacks implementation to better reuse code related to count management and event publishing. This can be used to great effect with the upcomming events PR #2738. * Consolidate the tenant and common context together CORL-688 * review: removed variable scoping in favor of export * revert: feb8e8196cd448f5cd24f1ca2eb0b91fe9bd43c7 * review: simplification of stacks implementation This simplifies the stacks implementation to better reuse code related to count management and event publishing. This can be used to great effect with the upcomming events PR #2738. * fix: check if authorID is null before update user counts CORL-688 * Consolidate common/tenant context supporting files CORL-688 * feat: renamed TenantContext -> GraphContext Co-authored-by: Wyatt Johnson <accounts+github@wyattjoh.ca>
416 lines
15 KiB
JSON
416 lines
15 KiB
JSON
{
|
|
"name": "@coralproject/talk",
|
|
"version": "5.4.0",
|
|
"author": "The Coral Project",
|
|
"homepage": "https://coralproject.net/",
|
|
"sideEffects": [
|
|
"*.css"
|
|
],
|
|
"repository": {
|
|
"type": "git",
|
|
"url": "git://github.com/coralproject/talk.git"
|
|
},
|
|
"engines": {
|
|
"node": ">=12.0.0",
|
|
"npm": ">=6.9.0"
|
|
},
|
|
"bugs": "https://github.com/coralproject/talk/issues",
|
|
"contributors": [
|
|
"https://github.com/coralproject/talk/graphs/contributors"
|
|
],
|
|
"description": "A better commenting experience from Mozilla, The Washington Post, and The New York Times.",
|
|
"scripts": {
|
|
"build": "NODE_ENV=production npm-run-all generate-persist --parallel build:client build:server",
|
|
"build:development": "NODE_ENV=development npm-run-all generate --parallel build:client build:server",
|
|
"build:client": "ts-node --transpile-only ./scripts/build.ts",
|
|
"build:server": "gulp server",
|
|
"migration:create": "ts-node --transpile-only ./scripts/migration/create.ts",
|
|
"doctoc": "doctoc --title='## Table of Contents' --github README.md",
|
|
"docs:events": "ts-node ./scripts/generateEventDocs.ts ./src/core/client/stream/events.ts ./events.md",
|
|
"generate": "npm-run-all generate:css-types generate:schema generate:relay",
|
|
"generate-persist": "npm-run-all generate:css-types generate:schema generate:relay-persist",
|
|
"generate:css-types": "tcm src/core/client/",
|
|
"generate:relay": "npm-run-all --parallel generate:relay:*",
|
|
"generate:relay-persist": "npm-run-all --parallel 'generate:relay:* -- --persist'",
|
|
"generate:relay:stream": "ts-node --transpile-only ./scripts/compileRelay --src ./src/core/client/stream --schema tenant",
|
|
"generate:relay:account": "ts-node --transpile-only ./scripts/compileRelay --src ./src/core/client/account --schema tenant",
|
|
"generate:relay:auth": "ts-node --transpile-only ./scripts/compileRelay --src ./src/core/client/auth --schema tenant",
|
|
"generate:relay:install": "ts-node --transpile-only ./scripts/compileRelay --src ./src/core/client/install --schema tenant",
|
|
"generate:relay:admin": "ts-node --transpile-only ./scripts/compileRelay --src ./src/core/client/admin --schema tenant",
|
|
"generate:schema": "node ./scripts/generateSchemaTypes.js",
|
|
"docz": "docz",
|
|
"start": "NODE_ENV=production node dist/index.js",
|
|
"start:development": "NODE_ENV=development CONCURRENCY=${CONCURRENCY:-1} TS_NODE_PROJECT=./src/tsconfig.json ts-node-dev --inspect --transpile-only --no-notify -r tsconfig-paths/register ./src/index.ts",
|
|
"start:webpackDevServer": "ts-node --transpile-only ./scripts/start.ts",
|
|
"lint": "npm-run-all --parallel lint:* tscheck:*",
|
|
"lint:server": "eslint 'src/**/*.{js,ts,tsx}' --ignore-pattern 'src/core/client/**'",
|
|
"lint:client": "eslint 'src/core/client/**/*.{js,ts,tsx}'",
|
|
"lint:scripts": "eslint 'scripts/**/*.{js,ts,tsx}'",
|
|
"lint:graphql": "graphql-schema-linter src/core/server/graph/schema/schema.graphql",
|
|
"lint-fix": "npm run lint:server -- --fix && npm run lint:client -- --fix && npm run lint:scripts -- --fix",
|
|
"test": "node --trace-warnings scripts/test.js --env=jsdom",
|
|
"tscheck": "npm-run-all --parallel tscheck:*",
|
|
"tscheck:server": "tsc --project ./src/tsconfig.json --noEmit",
|
|
"tscheck:client": "tsc --project ./src/core/client/tsconfig.json --noEmit",
|
|
"tscheck:scripts": "tsc --project ./tsconfig.json --noEmit",
|
|
"watch": "NODE_ENV=development ts-node --transpile-only ./scripts/watcher/bin/watcher.ts --config ./config/watcher.ts"
|
|
},
|
|
"license": "Apache-2.0",
|
|
"dependencies": {
|
|
"@coralproject/bunyan-prettystream": "^0.1.4",
|
|
"@fluent/bundle": "^0.14.1",
|
|
"@fluent/dom": "^0.6.0",
|
|
"@metascraper/helpers": "^5.7.21",
|
|
"@types/prettier": "^1.19.0",
|
|
"abort-controller": "^3.0.0",
|
|
"akismet-api": "^5.0.0",
|
|
"apollo-server-express": "^2.9.15",
|
|
"archiver": "^3.0.3",
|
|
"basic-auth": "^2.0.1",
|
|
"bcryptjs": "^2.4.3",
|
|
"bull": "^3.12.1",
|
|
"bunyan": "^1.8.12",
|
|
"cheerio": "^1.0.0-rc.2",
|
|
"consolidate": "0.14.0",
|
|
"content-security-policy-builder": "^2.0.0",
|
|
"convict": "^5.2.0",
|
|
"cookie": "^0.4.0",
|
|
"cookie-parser": "^1.4.4",
|
|
"cors": "^2.8.5",
|
|
"cron": "^1.7.2",
|
|
"csv-stringify": "^5.3.6",
|
|
"dataloader": "^1.4.0",
|
|
"dompurify": "^2.0.7",
|
|
"dotenv": "^6.0.0",
|
|
"dotenv-expand": "^4.2.0",
|
|
"env-rewrite": "^1.0.2",
|
|
"express": "^4.16.3",
|
|
"express-enforces-ssl": "^1.1.0",
|
|
"express-static-gzip": "^0.3.2",
|
|
"fs-extra": "^6.0.1",
|
|
"graphql": "^0.13.2",
|
|
"graphql-config": "^2.0.1",
|
|
"graphql-extensions": "^0.2.1",
|
|
"graphql-fields": "^1.1.0",
|
|
"graphql-playground-html": "^1.6.0",
|
|
"graphql-redis-subscriptions": "^2.1.2",
|
|
"graphql-subscriptions": "^1.1.0",
|
|
"graphql-tools": "^3.0.5",
|
|
"helmet": "^3.21.2",
|
|
"html-minifier": "^4.0.0",
|
|
"html-to-text": "^5.1.1",
|
|
"ioredis": "^4.14.1",
|
|
"joi": "^14.3.1",
|
|
"jsdom": "^15.2.1",
|
|
"jsonwebtoken": "^8.5.1",
|
|
"juice": "^6.0.0",
|
|
"jwks-rsa": "^1.6.0",
|
|
"keymaster": "^1.6.2",
|
|
"linkifyjs": "^2.1.8",
|
|
"lodash": "^4.17.15",
|
|
"lru-cache": "^5.1.1",
|
|
"luxon": "^1.12.0",
|
|
"metascraper-author": "^5.8.0",
|
|
"metascraper-description": "^5.8.0",
|
|
"metascraper-image": "^5.8.0",
|
|
"metascraper-title": "^5.8.0",
|
|
"mongodb": "^3.2.7",
|
|
"mongodb-core": "^3.2.7",
|
|
"ms": "^2.1.1",
|
|
"node-fetch": "^2.6.0",
|
|
"nodemailer": "^6.4.2",
|
|
"nunjucks": "^3.1.3",
|
|
"on-finished": "^2.3.0",
|
|
"passport": "^0.4.1",
|
|
"passport-facebook": "^3.0.0",
|
|
"passport-google-oauth2": "^0.2.0",
|
|
"passport-local": "^1.0.0",
|
|
"passport-oauth2": "^1.4.0",
|
|
"passport-strategy": "^1.0.0",
|
|
"performance-now": "^2.1.0",
|
|
"permit": "^0.2.4",
|
|
"prom-client": "^11.3.0",
|
|
"proxy-agent": "^3.1.1",
|
|
"querystringify": "^2.1.0",
|
|
"react-helmet": "^5.2.1",
|
|
"source-map-support": "^0.5.12",
|
|
"stack-utils": "^1.0.2",
|
|
"striptags": "^3.1.1",
|
|
"throng": "^4.0.0",
|
|
"tsscmp": "^1.0.6",
|
|
"url-regex": "^5.0.0",
|
|
"uuid": "^3.3.3",
|
|
"verror": "^1.10.0"
|
|
},
|
|
"devDependencies": {
|
|
"@babel/core": "^7.4.5",
|
|
"@babel/plugin-syntax-dynamic-import": "^7.2.0",
|
|
"@babel/plugin-transform-modules-commonjs": "^7.4.4",
|
|
"@babel/polyfill": "^7.4.4",
|
|
"@babel/preset-env": "^7.4.5",
|
|
"@babel/preset-react": "^7.0.0",
|
|
"@babel/preset-typescript": "^7.3.3",
|
|
"@coralproject/npm-run-all": "^4.1.5",
|
|
"@coralproject/rte": "^0.11.0",
|
|
"@fluent/react": "^0.10.0",
|
|
"@intervolga/optimize-cssnano-plugin": "^1.0.6",
|
|
"@types/agent-base": "^4.2.0",
|
|
"@types/archiver": "^3.0.0",
|
|
"@types/basic-auth": "^1.1.2",
|
|
"@types/bcryptjs": "^2.4.1",
|
|
"@types/bull": "^3.10.6",
|
|
"@types/bunyan": "^1.8.4",
|
|
"@types/case-sensitive-paths-webpack-plugin": "^2.1.2",
|
|
"@types/cheerio": "^0.22.8",
|
|
"@types/classnames": "^2.2.7",
|
|
"@types/commander": "^2.12.2",
|
|
"@types/common-tags": "^1.8.0",
|
|
"@types/compression-webpack-plugin": "^2.0.0",
|
|
"@types/consolidate": "0.0.34",
|
|
"@types/convict": "^4.2.0",
|
|
"@types/cookie": "^0.3.3",
|
|
"@types/cookie-parser": "^1.4.1",
|
|
"@types/cors": "^2.8.6",
|
|
"@types/cron": "^1.7.1",
|
|
"@types/cross-spawn": "^6.0.0",
|
|
"@types/dompurify": "^2.0.1",
|
|
"@types/dotenv": "^4.0.3",
|
|
"@types/enzyme": "^3.1.15",
|
|
"@types/enzyme-adapter-react-16": "^1.0.3",
|
|
"@types/eventemitter2": "^4.1.0",
|
|
"@types/express": "^4.16.0",
|
|
"@types/express-enforces-ssl": "^1.1.1",
|
|
"@types/flat": "0.0.28",
|
|
"@types/fs-extra": "^5.0.4",
|
|
"@types/graphql": "^0.13.3",
|
|
"@types/helmet": "0.0.45",
|
|
"@types/html-minifier": "^3.5.2",
|
|
"@types/html-to-text": "^1.4.31",
|
|
"@types/html-webpack-plugin": "^3.2.0",
|
|
"@types/ioredis": "^4.14.3",
|
|
"@types/jest": "^24.0.23",
|
|
"@types/jest-axe": "^3.2.1",
|
|
"@types/joi": "^14.3.4",
|
|
"@types/jsdom": "^12.2.3",
|
|
"@types/jsonwebtoken": "^8.3.5",
|
|
"@types/linkifyjs": "^2.1.1",
|
|
"@types/lodash": "^4.14.118",
|
|
"@types/lru-cache": "^5.1.0",
|
|
"@types/luxon": "^1.12.0",
|
|
"@types/marked": "^0.6.0",
|
|
"@types/mini-css-extract-plugin": "^0.2.0",
|
|
"@types/mongodb": "^3.1.22",
|
|
"@types/ms": "^0.7.30",
|
|
"@types/node": "^10.5.2",
|
|
"@types/node-fetch": "^2.5.3",
|
|
"@types/nodemailer": "^6.4.0",
|
|
"@types/nunjucks": "^3.1.1",
|
|
"@types/object-diff": "0.0.0",
|
|
"@types/on-finished": "^2.3.1",
|
|
"@types/passport": "^1.0.2",
|
|
"@types/passport-facebook": "^2.1.8",
|
|
"@types/passport-local": "^1.0.33",
|
|
"@types/passport-oauth2": "^1.4.5",
|
|
"@types/passport-strategy": "^0.2.33",
|
|
"@types/permit": "^0.2.1",
|
|
"@types/prop-types": "^15.5.8",
|
|
"@types/react": "^16.8.15",
|
|
"@types/react-axe": "^3.1.0",
|
|
"@types/react-copy-to-clipboard": "^4.2.6",
|
|
"@types/react-dom": "^16.8.4",
|
|
"@types/react-helmet": "^5.0.10",
|
|
"@types/react-relay": "^1.3.14",
|
|
"@types/react-responsive": "^3.0.1",
|
|
"@types/react-test-renderer": "^16.8.1",
|
|
"@types/react-transition-group": "^2.0.14",
|
|
"@types/recompose": "^0.26.5",
|
|
"@types/relay-runtime": "^1.3.12",
|
|
"@types/sane": "^2.0.0",
|
|
"@types/shallow-equals": "^1.0.0",
|
|
"@types/simplemde": "^1.11.7",
|
|
"@types/sinon": "^7.0.11",
|
|
"@types/source-map-support": "^0.5.0",
|
|
"@types/stack-trace": "0.0.29",
|
|
"@types/stack-utils": "^1.0.1",
|
|
"@types/throng": "^4.0.2",
|
|
"@types/uuid": "^3.4.4",
|
|
"@types/verror": "^1.10.3",
|
|
"@types/vinyl": "^2.0.2",
|
|
"@types/webpack": "^4.4.31",
|
|
"@types/webpack-assets-manifest": "^3.0.0",
|
|
"@types/webpack-bundle-analyzer": "^2.13.1",
|
|
"@types/webpack-dev-server": "^3.1.5",
|
|
"@types/ws": "^5.1.2",
|
|
"@typescript-eslint/eslint-plugin": "2.3.3",
|
|
"@typescript-eslint/eslint-plugin-tslint": "2.3.3",
|
|
"@typescript-eslint/parser": "2.3.3",
|
|
"acorn": "^6.1.1",
|
|
"ansi-styles": "^3.2.0",
|
|
"autoprefixer": "^9.5.1",
|
|
"babel-core": "^7.0.0-bridge.0",
|
|
"babel-jest": "^24.8.0",
|
|
"babel-loader": "^8.0.5",
|
|
"babel-plugin-dynamic-import-node": "^2.2.0",
|
|
"babel-plugin-lodash": "^3.3.4",
|
|
"babel-plugin-module-resolver": "^3.2.0",
|
|
"babel-plugin-relay": "^4.0.0",
|
|
"babel-plugin-use-lodash-es": "^0.2.0",
|
|
"babel-preset-react-optimize": "^1.0.1",
|
|
"bowser": "^1.9.4",
|
|
"case-sensitive-paths-webpack-plugin": "^2.2.0",
|
|
"chalk": "^2.4.2",
|
|
"chokidar": "^3.0.0",
|
|
"classnames": "^2.2.6",
|
|
"commander": "^2.20.0",
|
|
"comment-json": "^1.1.3",
|
|
"common-tags": "^1.8.0",
|
|
"compression-webpack-plugin": "^2.0.0",
|
|
"copy-webpack-plugin": "^5.0.3",
|
|
"cross-spawn": "^6.0.5",
|
|
"css-loader": "^1.0.1",
|
|
"del": "^4.1.1",
|
|
"doctoc": "^1.4.0",
|
|
"docz": "^0.13.7",
|
|
"docz-theme-default": "^0.13.7",
|
|
"enzyme": "^3.9.0",
|
|
"enzyme-adapter-react-16": "^1.12.1",
|
|
"enzyme-to-json": "^3.3.5",
|
|
"eslint": "^6.5.1",
|
|
"eslint-config-prettier": "^6.3.0",
|
|
"eslint-plugin-jsdoc": "^15.9.7",
|
|
"eslint-plugin-jsx-a11y": "^6.2.3",
|
|
"eslint-plugin-prettier": "^3.1.1",
|
|
"eslint-plugin-react": "^7.15.1",
|
|
"eventemitter2": "^5.0.1",
|
|
"farce": "^0.2.6",
|
|
"final-form": "4.18.6",
|
|
"final-form-arrays": "1.1.2",
|
|
"flat": "^4.1.0",
|
|
"fluent-intl-polyfill": "^0.1.0",
|
|
"fork-ts-checker-webpack-plugin": "^1.5.0",
|
|
"found": "^0.4.0-alpha.17",
|
|
"found-relay": "^0.4.0-alpha.8",
|
|
"graphql-schema-linter": "^0.2.0",
|
|
"graphql-schema-typescript": "^1.2.9",
|
|
"gulp": "^4.0.2",
|
|
"gulp-babel": "^8.0.0",
|
|
"gulp-cli": "^2.2.0",
|
|
"gulp-sourcemaps": "^2.6.5",
|
|
"gulp-typescript": "^5.0.1",
|
|
"html-webpack-plugin": "^4.0.0-beta.5",
|
|
"husky": "^2.2.0",
|
|
"intersection-observer": "^0.6.0",
|
|
"jest": "^24.8.0",
|
|
"jest-axe": "^3.2.0",
|
|
"jest-junit": "^6.4.0",
|
|
"jest-localstorage-mock": "^2.4.0",
|
|
"jest-mock-console": "^1.0.0",
|
|
"lint-staged": "^8.1.6",
|
|
"loader-utils": "^1.2.3",
|
|
"lodash-es": "^4.17.14",
|
|
"marked": "^0.7.0",
|
|
"material-design-icons": "^3.0.1",
|
|
"mini-css-extract-plugin": "^0.6.0",
|
|
"object-diff": "0.0.4",
|
|
"postcss-advanced-variables": "^3.0.0",
|
|
"postcss-css-variables": "^0.11.0",
|
|
"postcss-flexbugs-fixes": "^4.1.0",
|
|
"postcss-font-magician": "^2.2.1",
|
|
"postcss-import": "^11.1.0",
|
|
"postcss-js": "^2.0.1",
|
|
"postcss-loader": "^3.0.0",
|
|
"postcss-mixins": "^6.2.1",
|
|
"postcss-nested": "^4.1.1",
|
|
"postcss-prepend-imports": "^1.0.1",
|
|
"postcss-preset-env": "^6.5.0",
|
|
"prettier": "^1.18.2",
|
|
"prop-types": "^15.6.2",
|
|
"pstree.remy": "^1.1.6",
|
|
"pym.js": "^1.3.2",
|
|
"raw-loader": "^0.5.1",
|
|
"react": "^16.9.0-alpha.0",
|
|
"react-axe": "^3.3.0",
|
|
"react-copy-to-clipboard": "^5.0.1",
|
|
"react-dev-utils": "^9.0.0",
|
|
"react-dom": "^16.9.0-alpha.0",
|
|
"react-error-overlay": "^5.1.6",
|
|
"react-final-form": "6.3.0",
|
|
"react-final-form-arrays": "3.1.0",
|
|
"react-popper": "^1.3.2",
|
|
"react-relay": "^4.0.0",
|
|
"react-relay-network-modern": "^4.0.4",
|
|
"react-responsive": "^7.0.0",
|
|
"react-test-renderer": "^16.9.0-alpha.0",
|
|
"react-timeago": "^4.1.9",
|
|
"react-transition-group": "^2.9.0",
|
|
"react-with-state-props": "^2.0.4",
|
|
"recompose": "0.27.1",
|
|
"relay-compiler": "^4.0.0",
|
|
"relay-compiler-language-typescript": "^4.1.0",
|
|
"relay-local-schema": "^0.8.0",
|
|
"relay-runtime": "^4.0.0",
|
|
"resize-observer-polyfill": "^1.5.1",
|
|
"sane": "^4.1.0",
|
|
"shallow-equals": "^1.0.0",
|
|
"simplemde": "^1.11.2",
|
|
"simulant": "^0.2.2",
|
|
"sinon": "^7.3.2",
|
|
"sockjs-client": "^1.3.0",
|
|
"stack-trace": "0.0.10",
|
|
"strip-ansi": "^5.2.0",
|
|
"style-loader": "^0.23.1",
|
|
"subscriptions-transport-ws": "^0.9.16",
|
|
"terser-webpack-plugin": "^1.2.3",
|
|
"thread-loader": "^2.1.2",
|
|
"timekeeper": "^2.2.0",
|
|
"ts-jest": "<23.10.0",
|
|
"ts-loader": "^6.0.0",
|
|
"ts-node": "^8.1.0",
|
|
"ts-node-dev": "^1.0.0-pre.37",
|
|
"tsconfig-paths": "^3.8.0",
|
|
"tsconfig-paths-webpack-plugin": "^3.2.0",
|
|
"tslint": "^5.20.0",
|
|
"typed-css-modules": "^0.4.2",
|
|
"typeface-manuale": "^0.0.71",
|
|
"typeface-nunito": "0.0.72",
|
|
"typeface-open-sans": "0.0.75",
|
|
"typeface-source-sans-pro": "^0.0.54",
|
|
"typescript": "3.3.4000",
|
|
"typescript-snapshots-plugin": "^1.6.0",
|
|
"wait-for-expect": "^1.1.1",
|
|
"webpack": "^4.30.0",
|
|
"webpack-assets-manifest": "^3.1.1",
|
|
"webpack-bundle-analyzer": "^3.3.2",
|
|
"webpack-cli": "^3.3.2",
|
|
"webpack-dev-server": "3.2.1",
|
|
"whatwg-fetch": "^3.0.0"
|
|
},
|
|
"husky": {
|
|
"hooks": {
|
|
"pre-commit": "FAST_LINT=true lint-staged"
|
|
}
|
|
},
|
|
"lint-staged": {
|
|
"*.{j,t}s{,x}": [
|
|
"eslint"
|
|
],
|
|
"src/core/server/graph/schema/schema.graphql": [
|
|
"graphql-schema-linter"
|
|
],
|
|
"{src/core/client/stream/events.ts,scripts/generateEventDocs.ts,events.md}": [
|
|
"npm run docs:events -- --verify"
|
|
]
|
|
},
|
|
"bundlesize": [
|
|
{
|
|
"path": "./dist/static/assets/js/embed.js",
|
|
"maxSize": "15 kB"
|
|
}
|
|
],
|
|
"graphql-schema-linter": {
|
|
"rules": [
|
|
"types-are-capitalized"
|
|
]
|
|
}
|
|
}
|