{ "name": "grist-core", "version": "1.1.17", "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_SESSION_COOKIE=grist_test_cookie GRIST_TEST_LOGIN=1 TEST_SUPPORT_API_KEY=api_key_for_support TEST_CLEAN_DATABASE=true LANGUAGE=en_US 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": "TEST_SUITE=nbrowser TEST_SUITE_FOR_TIMINGS=nbrowser TIMINGS_FILE=test/timings/nbrowser.txt GRIST_SESSION_COOKIE=grist_test_cookie GRIST_TEST_LOGIN=1 TEST_SUPPORT_API_KEY=api_key_for_support TEST_CLEAN_DATABASE=true LANGUAGE=en_US 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_SESSION_COOKIE=grist_test_cookie GRIST_TEST_LOGIN=1 TEST_SUPPORT_API_KEY=api_key_for_support TEST_CLEAN_DATABASE=true LANGUAGE=en_US 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": "GRIST_SESSION_COOKIE=grist_test_cookie mocha ${DEBUG:+'-b'} '_build/test/client/**/*.js'", "test:common": "GRIST_SESSION_COOKIE=grist_test_cookie mocha ${DEBUG:+'-b'} '_build/test/common/**/*.js'", "test:server": "TEST_CLEAN_DATABASE=true TEST_SUITE=server TEST_SUITE_FOR_TIMINGS=server TIMINGS_FILE=test/timings/server.txt GRIST_SESSION_COOKIE=grist_test_cookie mocha ${DEBUG:+'-b'} -g \"${GREP_TESTS}\" -R test/xunit-file '_build/test/server/**/*.js' '_build/test/gen-server/**/*.js'", "test:smoke": "LANGUAGE=en_US 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.3", "moment-locales-webpack-plugin": "^1.2.0", "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.4", "@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", "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" ] } }