{ "name": "grist-core", "version": "1.0.5", "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", "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 NODE_PATH=_build:_build/stubs:_build/ext mocha ${DEBUG:+-b --no-exit} --slow 8000 ${DEBUG:---forbid-only} -g ${GREP_TESTS:-''} _build/test/common/*.js _build/test/client/*.js _build/test/nbrowser/*.js _build/test/server/**/*.js _build/test/gen-server/**/*.js", "test:nbrowser": "GRIST_SESSION_COOKIE=grist_test_cookie GRIST_TEST_LOGIN=1 TEST_SUPPORT_API_KEY=api_key_for_support TEST_CLEAN_DATABASE=true NODE_PATH=_build:_build/stubs:_build/ext mocha ${DEBUG:+-b --no-exit} ${DEBUG:---forbid-only} -g ${GREP_TESTS:-''} --slow 8000 _build/test/nbrowser/**/*.js", "test:client": "GRIST_SESSION_COOKIE=grist_test_cookie NODE_PATH=_build:_build/stubs:_build/ext mocha ${DEBUG:+'-b'} _build/test/client/**/*.js", "test:common": "GRIST_SESSION_COOKIE=grist_test_cookie NODE_PATH=_build:_build/stubs:_build/ext mocha ${DEBUG:+'-b'} _build/test/common/**/*.js", "test:server": "GRIST_SESSION_COOKIE=grist_test_cookie NODE_PATH=_build:_build/stubs:_build/ext mocha ${DEBUG:+'-b'} _build/test/server/**/*.js _build/test/gen-server/**/*.js", "test:smoke": "NODE_PATH=_build:_build/stubs:_build/ext 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 .", "lint:fix": "eslint --fix .", "generate:translation": "NODE_PATH=_build:_build/stubs:_build/ext node buildtools/generate_translation_keys.js" }, "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/double-ended-queue": "2.1.0", "@types/express": "4.16.0", "@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": "16.2.14", "@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/minio": "7.0.15", "@types/mocha": "5.2.5", "@types/moment-timezone": "0.5.9", "@types/node": "^14", "@types/node-fetch": "2.6.2", "@types/pidusage": "2.0.1", "@types/plotly.js": "2.12.1", "@types/qrcode": "1.4.2", "@types/redlock": "3.0.2", "@types/saml2-js": "2.0.1", "@types/selenium-webdriver": "4.0.0", "@types/sinon": "5.0.5", "@types/sqlite3": "3.1.6", "@types/tmp": "0.0.33", "@types/uuid": "3.4.4", "@types/which": "2.0.1", "@types/ws": "^6", "@typescript-eslint/eslint-plugin": "5.29.0", "@typescript-eslint/parser": "5.29.0", "app-module-path": "2.2.0", "catw": "1.0.1", "chai": "4.2.0", "chai-as-promised": "7.1.1", "chance": "1.0.16", "esbuild-loader": "2.19.0", "eslint": "8.18.0", "http-proxy": "1.18.1", "i18next-scanner": "4.1.0", "jsdom": "16.5.0", "mocha": "5.2.0", "mocha-webdriver": "0.2.9", "moment-locales-webpack-plugin": "^1.2.0", "nodemon": "^2.0.4", "otplib": "12.0.1", "selenium-webdriver": "3.6.0", "sinon": "7.1.1", "source-map-loader": "^0.2.4", "tmp-promise": "1.0.5", "ts-interface-builder": "0.3.2", "typescript": "4.7.4", "webpack": "5.73.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.4", "@gristlabs/express-session": "1.17.0", "@gristlabs/moment-guess": "1.2.4-grist.1", "@gristlabs/pidusage": "2.0.17", "@gristlabs/sqlite3": "4.1.1-grist.6", "@popperjs/core": "2.3.3", "accept-language-parser": "1.5.0", "async-mutex": "0.2.4", "axios": "0.21.2", "backbone": "1.3.3", "bootstrap": "3.3.5", "bootstrap-datepicker": "1.9.0", "bowser": "2.7.0", "brace": "0.11.1", "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": "4.0.0", "diff-match-patch": "1.0.5", "double-ended-queue": "2.1.0-0", "electron": "19.0.9", "exceljs": "4.2.1", "express": "4.16.4", "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-fs-backend": "1.1.5", "i18next-http-middleware": "3.2.1", "image-size": "0.6.3", "jquery": "3.5.0", "js-yaml": "3.14.1", "jsesc": "3.0.2", "jsonwebtoken": "8.3.0", "knockout": "3.5.0", "locale-currency": "0.0.2", "lodash": "4.17.21", "minio": "7.0.32", "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", "pg": "8.6.0", "plotly.js-basic-dist": "2.13.2", "popper-max-size-modifier": "0.2.0", "popweasel": "0.1.18", "qrcode": "1.5.0", "randomcolor": "0.5.3", "redis": "3.1.1", "redlock": "3.1.2", "saml2-js": "2.0.5", "short-uuid": "3.1.1", "tmp": "0.0.33", "ts-interface-checker": "1.0.2", "typeorm": "0.3.9", "underscore": "1.12.1", "uuid": "3.3.2", "winston": "2.4.5", "ws": "6.2.2" }, "resolutions": { "jquery": "3.5.0", "ts-interface-checker": "1.0.2" } }