mirror of
https://github.com/gristlabs/grist-core.git
synced 2024-10-27 20:44:07 +00:00
36722c19a3
Grist has needed a job queue for some time. This adds one, using BullMQ. BullMQ however requires Redis, meaning we couldn't use jobs for the large subset of Grist that needs to be runnable without Redis (e.g. for use on desktop, or on simple self-hosted sites). So simple immediate, delayed, and repeated jobs are supported also in a crude single-process form when Redis is not available. This code isn't ready for actual use since an important issue remains to be worked out, specifically how to handle draining the queue during deployments to avoid mixing versions (or - if allowing mixed versions - thinking through any extra support needed for the developer to avoid introducing hard-to-test code paths).
219 lines
7.8 KiB
JSON
219 lines
7.8 KiB
JSON
{
|
|
"name": "grist-core",
|
|
"version": "1.1.18",
|
|
"license": "Apache-2.0",
|
|
"description": "Grist is the evolution of spreadsheets",
|
|
"homepage": "https://github.com/gristlabs/grist-core",
|
|
"repository": "git://github.com/gristlabs/grist-core.git",
|
|
"scripts": {
|
|
"start": "sandbox/watch.sh",
|
|
"start:debug": "NODE_INSPECT=--inspect sandbox/watch.sh",
|
|
"start:debug-brk": "NODE_INSPECT=--inspect-brk sandbox/watch.sh",
|
|
"install:python": "buildtools/prepare_python.sh",
|
|
"install:python2": "buildtools/prepare_python2.sh",
|
|
"install:python3": "buildtools/prepare_python3.sh",
|
|
"build:prod": "buildtools/build.sh",
|
|
"start:prod": "sandbox/run.sh",
|
|
"test": "GRIST_TEST_LOGIN=1 ./test/test_env.sh mocha ${DEBUG:+-b --no-exit} --slow 8000 $([ -z $DEBUG ] && echo --forbid-only) -g \"${GREP_TESTS}\" '_build/test/common/*.js' '_build/test/client/*.js' '_build/test/nbrowser/*.js' '_build/test/nbrowser_with_stubs/**/*.js' '_build/test/server/**/*.js' '_build/test/gen-server/**/*.js'",
|
|
"test:nbrowser": "GRIST_TEST_LOGIN=1 TEST_SUITE=nbrowser TEST_SUITE_FOR_TIMINGS=nbrowser TIMINGS_FILE=test/timings/nbrowser.txt ./test/test_env.sh mocha ${DEBUG:+-b --no-exit} $([ -z $DEBUG ] && echo --forbid-only) -g \"${GREP_TESTS}\" --slow 8000 -R test/xunit-file '_build/test/nbrowser/**/*.js'",
|
|
"test:stubs": "GRIST_TEST_LOGIN=1 ./test/test_env.sh mocha ${DEBUG:+-b --no-exit} $([ -z $DEBUG ] && echo --forbid-only) -g \"${GREP_TESTS}\" --slow 8000 -R test/xunit-file '_build/test/nbrowser_with_stubs/**/*.js'",
|
|
"test:client": "./test/test_env.sh mocha ${DEBUG:+'-b'} '_build/test/client/**/*.js'",
|
|
"test:common": "./test/test_env.sh mocha ${DEBUG:+'-b'} '_build/test/common/**/*.js'",
|
|
"test:server": "TEST_SUITE=server TEST_SUITE_FOR_TIMINGS=server TIMINGS_FILE=test/timings/server.txt ./test/test_env.sh mocha ${DEBUG:+'-b'} -g \"${GREP_TESTS}\" -R test/xunit-file '_build/test/server/**/*.js' '_build/test/gen-server/**/*.js'",
|
|
"test:smoke": "./test/test_env.sh mocha _build/test/nbrowser/Smoke.js",
|
|
"test:docker": "./test/test_under_docker.sh",
|
|
"test:python": "sandbox_venv3/bin/python sandbox/grist/runtests.py ${GREP_TESTS:+discover -p \"test*${GREP_TESTS}*.py\"}",
|
|
"cli": "NODE_PATH=_build:_build/stubs:_build/ext node _build/app/server/companion.js",
|
|
"lint": "eslint --cache --cache-strategy content .",
|
|
"lint:fix": "eslint --cache --cache-strategy=content --fix .",
|
|
"lint:ci": "eslint --max-warnings=0 .",
|
|
"generate:translation": "NODE_PATH=_build:_build/stubs:_build/ext node buildtools/generate_translation_keys.js",
|
|
"generate:schema:ts": "buildtools/update_schema.sh"
|
|
},
|
|
"keywords": [
|
|
"grist",
|
|
"spreadsheet",
|
|
"database"
|
|
],
|
|
"author": {
|
|
"name": "Grist Labs Inc.",
|
|
"email": "info@getgrist.com"
|
|
},
|
|
"private": false,
|
|
"devDependencies": {
|
|
"@babel/core": "7.18.5",
|
|
"@babel/eslint-parser": "7.18.2",
|
|
"@types/accept-language-parser": "1.5.2",
|
|
"@types/backbone": "1.3.43",
|
|
"@types/chai": "4.1.7",
|
|
"@types/chai-as-promised": "7.1.0",
|
|
"@types/content-disposition": "0.5.2",
|
|
"@types/diff-match-patch": "1.0.32",
|
|
"@types/dompurify": "3.0.5",
|
|
"@types/double-ended-queue": "2.1.0",
|
|
"@types/express": "4.17.17",
|
|
"@types/form-data": "2.2.1",
|
|
"@types/fs-extra": "5.0.4",
|
|
"@types/http-proxy": "1.17.9",
|
|
"@types/i18next-fs-backend": "1.1.2",
|
|
"@types/image-size": "0.0.29",
|
|
"@types/js-yaml": "3.11.2",
|
|
"@types/jsdom": "21.1.6",
|
|
"@types/jsesc": "3.0.1",
|
|
"@types/jsonwebtoken": "7.2.8",
|
|
"@types/lodash": "4.14.117",
|
|
"@types/lru-cache": "5.1.1",
|
|
"@types/mime-types": "2.1.0",
|
|
"@types/mocha": "10.0.1",
|
|
"@types/moment-timezone": "0.5.9",
|
|
"@types/mousetrap": "1.6.2",
|
|
"@types/node": "18.11.9",
|
|
"@types/node-fetch": "2.6.2",
|
|
"@types/pidusage": "2.0.1",
|
|
"@types/plotly.js": "2.12.1",
|
|
"@types/proper-lockfile": "4.1.2",
|
|
"@types/qrcode": "1.4.2",
|
|
"@types/redlock": "3.0.2",
|
|
"@types/saml2-js": "2.0.1",
|
|
"@types/selenium-webdriver": "4.1.22",
|
|
"@types/sinon": "17.0.3",
|
|
"@types/sqlite3": "3.1.6",
|
|
"@types/swagger-ui": "3.52.4",
|
|
"@types/tmp": "0.0.33",
|
|
"@types/uuid": "3.4.4",
|
|
"@types/which": "2.0.1",
|
|
"@types/ws": "^8",
|
|
"@typescript-eslint/eslint-plugin": "5.29.0",
|
|
"@typescript-eslint/parser": "5.29.0",
|
|
"app-module-path": "2.2.0",
|
|
"chai": "4.2.0",
|
|
"chai-as-promised": "7.1.1",
|
|
"chance": "1.0.16",
|
|
"chokidar-cli": "3.0.0",
|
|
"esbuild-loader": "2.19.0",
|
|
"eslint": "8.18.0",
|
|
"http-proxy": "1.18.1",
|
|
"i18next-scanner": "4.4.0",
|
|
"mocha": "10.2.0",
|
|
"mocha-webdriver": "0.3.4",
|
|
"moment-locales-webpack-plugin": "^1.2.0",
|
|
"nock": "13.5.5",
|
|
"nodemon": "^2.0.4",
|
|
"otplib": "12.0.1",
|
|
"proper-lockfile": "4.1.2",
|
|
"sinon": "17.0.1",
|
|
"source-map-loader": "^0.2.4",
|
|
"tmp-promise": "1.0.5",
|
|
"ts-interface-builder": "0.3.2",
|
|
"typescript": "4.7.4",
|
|
"webpack": "5.91.0",
|
|
"webpack-cli": "4.10.0",
|
|
"why-is-node-running": "2.0.3"
|
|
},
|
|
"dependencies": {
|
|
"@googleapis/drive": "0.3.1",
|
|
"@googleapis/oauth2": "0.2.0",
|
|
"@gristlabs/connect-sqlite3": "0.9.11-grist.5",
|
|
"@gristlabs/express-session": "1.17.0",
|
|
"@gristlabs/grist-widget": "^0.0.5",
|
|
"@gristlabs/moment-guess": "1.2.4-grist.1",
|
|
"@gristlabs/pidusage": "2.0.17",
|
|
"@gristlabs/sqlite3": "5.1.4-grist.8",
|
|
"@popperjs/core": "2.3.3",
|
|
"accept-language-parser": "1.5.0",
|
|
"ace-builds": "1.23.3",
|
|
"async-mutex": "0.2.4",
|
|
"axios": "1.6.8",
|
|
"backbone": "1.3.3",
|
|
"bootstrap": "3.4.1",
|
|
"bootstrap-datepicker": "1.9.0",
|
|
"bowser": "2.7.0",
|
|
"bullmq": "5.8.7",
|
|
"collect-js-deps": "^0.1.1",
|
|
"color-convert": "2.0.1",
|
|
"commander": "9.3.0",
|
|
"components-jqueryui": "1.12.1",
|
|
"connect-redis": "3.4.0",
|
|
"cookie": "0.5.0",
|
|
"cookie-parser": "1.4.3",
|
|
"csv": "6.3.8",
|
|
"currency-symbol-map": "5.1.0",
|
|
"diff-match-patch": "1.0.5",
|
|
"dompurify": "3.0.6",
|
|
"double-ended-queue": "2.1.0-0",
|
|
"engine.io": "^6.5.4",
|
|
"engine.io-client": "^6.5.3",
|
|
"exceljs": "4.2.1",
|
|
"express": "4.19.2",
|
|
"express-rate-limit": "7.2.0",
|
|
"file-type": "16.5.4",
|
|
"fs-extra": "7.0.0",
|
|
"grain-rpc": "0.1.7",
|
|
"grainjs": "1.0.2",
|
|
"handlebars": "4.7.7",
|
|
"highlight.js": "10.7.3",
|
|
"http-proxy-agent": "5.0.0",
|
|
"https-proxy-agent": "5.0.1",
|
|
"i18n-iso-countries": "6.1.0",
|
|
"i18next": "21.9.1",
|
|
"i18next-http-middleware": "3.3.2",
|
|
"image-size": "0.6.3",
|
|
"jquery": "3.5.0",
|
|
"js-yaml": "3.14.1",
|
|
"jsdom": "^23.0.0",
|
|
"jsesc": "3.0.2",
|
|
"jsonwebtoken": "9.0.2",
|
|
"knockout": "3.5.0",
|
|
"locale-currency": "0.0.2",
|
|
"lodash": "4.17.21",
|
|
"marked": "14.0.0",
|
|
"marked-highlight": "2.1.4",
|
|
"marked-linkify-it": "3.1.11",
|
|
"minio": "8.0.0",
|
|
"moment": "2.29.4",
|
|
"moment-timezone": "0.5.35",
|
|
"morgan": "1.9.1",
|
|
"mousetrap": "1.6.2",
|
|
"multiparty": "4.2.2",
|
|
"node-abort-controller": "3.0.1",
|
|
"node-fetch": "2.6.7",
|
|
"openid-client": "5.6.1",
|
|
"pg": "8.6.0",
|
|
"piscina": "3.2.0",
|
|
"plotly.js-basic-dist": "2.13.2",
|
|
"popper-max-size-modifier": "0.2.0",
|
|
"popweasel": "0.1.20",
|
|
"prom-client": "14.2.0",
|
|
"qrcode": "1.5.0",
|
|
"randomcolor": "0.5.3",
|
|
"redis": "3.1.1",
|
|
"redlock": "3.1.2",
|
|
"saml2-js": "4.0.2",
|
|
"short-uuid": "3.1.1",
|
|
"slugify": "1.6.6",
|
|
"swagger-ui-dist": "5.11.0",
|
|
"tmp": "0.0.33",
|
|
"ts-interface-checker": "1.0.2",
|
|
"typeorm": "0.3.17",
|
|
"underscore": "1.12.1",
|
|
"uuid": "3.3.2",
|
|
"winston": "2.4.5",
|
|
"ws": "8.13.0"
|
|
},
|
|
"resolutions": {
|
|
"jquery": "3.5.0",
|
|
"ts-interface-checker": "1.0.2",
|
|
"@gristlabs/sqlite3": "5.1.4-grist.8"
|
|
},
|
|
"mocha": {
|
|
"require": [
|
|
"test/setupPaths",
|
|
"source-map-support/register",
|
|
"test/report-why-tests-hang",
|
|
"test/init-mocha-webdriver",
|
|
"test/split-tests",
|
|
"test/chai-as-promised"
|
|
]
|
|
}
|
|
}
|