mirror of
https://github.com/wassname/talk.git
synced 2026-07-22 13:00:29 +08:00
* Create preliminary UI for requesting a user's comment history CORL-235 * Create preliminary download handler CORL-235 * Create preliminary CSV exporter for downloading user's comments CORL-235 * Create preliminary download comments flow with email and landing page User can download their comments after requesting via an email. Does not include limiters preventing users from spamming the download flow. CORL-235 * Style the download comments landing page to match the spec CORL-235 * Update the profile download comments to respect 14 day download limit CORL-235 * Hook up request limiter on the comment download end points. CORL-235 * Create sorry dialogue for when the download comments link is invalid/expired CORL-235 * Create loading spinner for comment download landing page CORL-235 * Create an optimistic updater for requesting a comment download CORL-235 * Add localization for download comments landing page's sorry text CORL-235 * Adjust downloaded comment format and contents - Format the date to match tenant local - Format dates to be using numeric values with date and time - Add comment URL to exported CSV record CORL-235 * Rename `createCSV` to `createExportedContent` in the download handler CORL-235 * Make comment download callout full width and left justified CORL-235 * Update stream snapshots to account for the download comments changes CORL-235 * Update snapshots to correspond to download comments changes CORL-235 * Add date filter to the comment download Will filter by date of the issued token to only include comments before that time. CORL-235 * Clean up the layout of the list items in the download comments landing page CORL-235 * fix: localization fixes * fix: formatting * fix: download file enhancements * fix: addressed download request loophole * Update snapshots to address button changes on download comments landing page CORL-235 * Simplify download comment landing page components CORL-235 * Remove max-width calc's on account main layout and set them in child views Sets the max-width settings on the download route since it's custom set on all the othere routes (email and password). CORL-235 * Bump npm version in package.json CORL-235
380 lines
13 KiB
JSON
380 lines
13 KiB
JSON
{
|
|
"name": "@coralproject/talk",
|
|
"version": "5.0.0-beta.5",
|
|
"author": "The Coral Project",
|
|
"homepage": "https://coralproject.net/",
|
|
"sideEffects": [
|
|
"*.css"
|
|
],
|
|
"repository": {
|
|
"type": "git",
|
|
"url": "git://github.com/coralproject/talk.git"
|
|
},
|
|
"engines": {
|
|
"node": ">=10.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 WEBPACK_DISABLE_SOURCEMAPS=1 npm-run-all generate --parallel lint:client build:client build:server",
|
|
"build:development": "NODE_ENV=development npm-run-all generate --parallel lint:client build:client build:server",
|
|
"build:client": "ts-node --transpile-only ./scripts/build.ts",
|
|
"build:server": "gulp server",
|
|
"doctoc": "doctoc --title='## Table of Contents' --github README.md",
|
|
"generate": "npm-run-all --parallel generate:*",
|
|
"generate:css-types": "tcm src/core/client/",
|
|
"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": "tslint --project ./src/tsconfig.json",
|
|
"lint:client": "tslint --project ./src/core/client/tsconfig.json",
|
|
"lint:scripts": "tslint --project ./tsconfig.json",
|
|
"lint:graphql": "graphql-schema-linter src/core/server/graph/tenant/schema/schema.graphql",
|
|
"lint-fix": "npm run lint:server -- --fix && npm run lint:client -- --fix && npm run lint:scripts -- --fix",
|
|
"test": "node 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",
|
|
"@types/archiver": "^3.0.0",
|
|
"akismet-api": "^4.2.0",
|
|
"apollo-server-express": "^2.1.0",
|
|
"archiver": "^3.0.3",
|
|
"basic-auth": "^2.0.1",
|
|
"bcryptjs": "^2.4.3",
|
|
"bull": "^3.8.1",
|
|
"bunyan": "^1.8.12",
|
|
"cheerio": "^1.0.0-rc.2",
|
|
"common-tags": "^1.8.0",
|
|
"consolidate": "0.14.0",
|
|
"content-security-policy-builder": "^2.0.0",
|
|
"convict": "^4.3.1",
|
|
"cookie": "^0.4.0",
|
|
"cookie-parser": "^1.4.4",
|
|
"cors": "^2.8.4",
|
|
"csv-stringify": "^5.3.0",
|
|
"dataloader": "^1.4.0",
|
|
"dompurify": "^1.0.8",
|
|
"dotenv": "^6.0.0",
|
|
"dotenv-expand": "^4.2.0",
|
|
"env-rewrite": "^1.0.2",
|
|
"express": "^4.16.3",
|
|
"express-static-gzip": "^0.3.2",
|
|
"farce": "^0.2.6",
|
|
"fluent": "^0.10.0",
|
|
"fluent-dom": "^0.4.1",
|
|
"found": "^0.4.0-alpha.17",
|
|
"found-relay": "^0.4.0-alpha.8",
|
|
"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.0",
|
|
"graphql-subscriptions": "^1.1.0",
|
|
"graphql-tools": "^3.0.5",
|
|
"html-minifier": "^3.5.21",
|
|
"html-to-text": "^4.0.0",
|
|
"ioredis": "^4.9.0",
|
|
"joi": "^13.4.0",
|
|
"jsdom": "^15.0.0",
|
|
"jsonwebtoken": "^8.3.0",
|
|
"juice": "^5.2.0",
|
|
"jwks-rsa": "^1.3.0",
|
|
"linkify-it": "^2.1.0",
|
|
"linkifyjs": "^2.1.8",
|
|
"lodash": "^4.17.10",
|
|
"luxon": "^1.12.0",
|
|
"metascraper-author": "^3.11.8",
|
|
"metascraper-date": "^3.11.4",
|
|
"metascraper-description": "^3.11.8",
|
|
"metascraper-image": "^3.11.8",
|
|
"metascraper-title": "^3.11.8",
|
|
"mongodb": "^3.2.7",
|
|
"mongodb-core": "^3.2.7",
|
|
"ms": "^2.1.1",
|
|
"node-fetch": "^2.2.0",
|
|
"nodemailer": "^4.6.7",
|
|
"nunjucks": "^3.1.3",
|
|
"on-finished": "^2.3.0",
|
|
"passport": "^0.4.0",
|
|
"passport-facebook": "^2.1.1",
|
|
"passport-google-oauth2": "^0.1.6",
|
|
"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.0",
|
|
"querystringify": "^2.1.0",
|
|
"react-relay-network-modern": "^3.0.4",
|
|
"source-map-support": "^0.5.12",
|
|
"stack-utils": "^1.0.2",
|
|
"striptags": "^3.1.1",
|
|
"throng": "^4.0.0",
|
|
"tlds": "^1.203.1",
|
|
"tsscmp": "^1.0.6",
|
|
"uuid": "^3.3.2",
|
|
"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.10.15",
|
|
"@intervolga/optimize-cssnano-plugin": "^1.0.6",
|
|
"@types/agent-base": "^4.2.0",
|
|
"@types/basic-auth": "^1.1.2",
|
|
"@types/bcryptjs": "^2.4.1",
|
|
"@types/bull": "^3.5.12",
|
|
"@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.4",
|
|
"@types/cross-spawn": "^6.0.0",
|
|
"@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/flat": "0.0.28",
|
|
"@types/fs-extra": "^5.0.4",
|
|
"@types/graphql": "^0.13.3",
|
|
"@types/html-minifier": "^3.5.2",
|
|
"@types/html-to-text": "^1.4.31",
|
|
"@types/html-webpack-plugin": "^3.2.0",
|
|
"@types/ioredis": "^4.0.10",
|
|
"@types/jest": "^24.0.13",
|
|
"@types/joi": "^13.0.8",
|
|
"@types/jsdom": "^12.2.3",
|
|
"@types/jsonwebtoken": "^7.2.7",
|
|
"@types/linkify-it": "^2.1.0",
|
|
"@types/linkifyjs": "^2.1.1",
|
|
"@types/lodash": "^4.14.118",
|
|
"@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.3.3",
|
|
"@types/nodemailer": "^4.6.2",
|
|
"@types/nunjucks": "^3.1.1",
|
|
"@types/on-finished": "^2.3.1",
|
|
"@types/passport": "^0.4.6",
|
|
"@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-copy-to-clipboard": "^4.2.6",
|
|
"@types/react-dom": "^16.8.4",
|
|
"@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-utils": "^1.0.1",
|
|
"@types/throng": "^4.0.2",
|
|
"@types/tlds": "^1.199.0",
|
|
"@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",
|
|
"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",
|
|
"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",
|
|
"eventemitter2": "^5.0.1",
|
|
"final-form": "4.11.0",
|
|
"flat": "^4.1.0",
|
|
"fluent-intl-polyfill": "^0.1.0",
|
|
"fluent-langneg": "^0.1.1",
|
|
"fluent-react": "^0.8.4",
|
|
"fork-ts-checker-webpack-plugin": "^1.3.0",
|
|
"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-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.11",
|
|
"marked": "^0.6.0",
|
|
"material-design-icons": "^3.0.1",
|
|
"mini-css-extract-plugin": "^0.6.0",
|
|
"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.17.0",
|
|
"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-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": "4.0.2",
|
|
"react-popper": "^1.3.2",
|
|
"react-relay": "^4.0.0",
|
|
"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",
|
|
"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.16.0",
|
|
"tslint-config-prettier": "^1.18.0",
|
|
"tslint-plugin-prettier": "^2.0.1",
|
|
"tslint-react": "^4.0.0",
|
|
"typed-css-modules": "^0.4.2",
|
|
"typeface-manuale": "^0.0.71",
|
|
"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": "lint-staged"
|
|
}
|
|
},
|
|
"lint-staged": {
|
|
"*.{j,t}s{,x}": [
|
|
"tslint"
|
|
],
|
|
"src/core/server/graph/tenant/schema/schema.graphql": [
|
|
"graphql-schema-linter"
|
|
]
|
|
},
|
|
"bundlesize": [
|
|
{
|
|
"path": "./dist/static/assets/js/embed.js",
|
|
"maxSize": "15 kB"
|
|
}
|
|
],
|
|
"graphql-schema-linter": {
|
|
"rules": [
|
|
"types-are-capitalized"
|
|
]
|
|
}
|
|
}
|