gristlabs_grist-core/package.json
Dmitry S 11afc08f65 (core) Improve API Console and link from Document Settings.
Summary:
Changes to building and serving:
- Remove unpkg dependencies, add npm module for swagger-ui-dist instead.
- Move apiconsole JS logic into core/app/client/apiconsole.ts, and use TypeScript.
- Add symlinks to swagger in static/ and core/static/.
- Refactor loadScript, and add loadCssFile; use these to load swagger-ui resources.

Changes to console itself:
- Support docId, workspaceId, orgId URL parameters. When present, the matching
  value in dropdowns is moved to the front and marked as "(Current)".
- Fix the ordering of example values, particularly for workspaces.
- Remove unwanted example values.
- Hide confusing "Authorize" button.
- Hide API keys, and rely consistently on cookies for executing API calls.

Integration into Grist:
- Added a button to Document Settings, just under document ID in "API".
- The button opens a separate page, passing in org, workspace, and doc info for the current doc.

Test Plan: Only tested manually, no automated tests yet.

Reviewers: jarek

Reviewed By: jarek

Differential Revision: https://phab.getgrist.com/D4173
2024-01-29 10:08:19 -05:00

212 lines
7.6 KiB
JSON

{
"name": "grist-core",
"version": "1.1.10",
"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=1 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/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: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": "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/marked": "4.0.8",
"@types/mime-types": "2.1.0",
"@types/minio": "7.0.15",
"@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.15",
"@types/sinon": "5.0.5",
"@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": "^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",
"mocha": "10.2.0",
"mocha-webdriver": "0.3.2",
"moment-locales-webpack-plugin": "^1.2.0",
"nodemon": "^2.0.4",
"otplib": "12.0.1",
"proper-lockfile": "4.1.2",
"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.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": "0.21.2",
"backbone": "1.3.3",
"bootstrap": "3.3.5",
"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": "4.0.0",
"currency-symbol-map": "5.1.0",
"diff-match-patch": "1.0.5",
"dompurify": "3.0.6",
"double-ended-queue": "2.1.0-0",
"exceljs": "4.2.1",
"express": "4.18.2",
"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": "8.3.0",
"knockout": "3.5.0",
"locale-currency": "0.0.2",
"lodash": "4.17.21",
"marked": "4.2.12",
"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",
"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": "2.0.5",
"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.9",
"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"
]
}
}