gristlabs_grist-core/package.json
Paul Fitzpatrick d8df2404c2 (core) return to using meaningful SQL types for columns
Summary:
Previously in {{D1053}} we switched to using BLOB as the "type" for all columns, to prevent SQLite from casting data unexpectedly.  This diff now returns to more meaningful types.  We apply marshalling to values when being placed in a column where a cast might occur, to inhibit such casting.

The benefit is that Grist documents become easier to interact with via regular database clients/libraries, which often rely on the column type more than a purely SQLite tool would.

On column type conversion, we run all blobs in the column through a decode/encode cycle so if they no longer need to be marshalled they revert to native type.  This could be optimized further, it is somewhat brute force.

Test Plan: Updated tests and reference document

Reviewers: dsagal

Reviewed By: dsagal

Differential Revision: https://phab.getgrist.com/D2755
2021-03-25 10:26:39 -04:00

110 lines
3.4 KiB
JSON

{
"name": "grist-core",
"version": "0.7.1",
"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": "tsc --build -w --preserveWatchOutput & catw app/client/*.css app/client/*/*.css -o static/bundle.css -v & webpack --config buildtools/webpack.config.js --mode development --watch --hide-modules & NODE_PATH=_build:_build/stubs nodemon -w _build/app/server -w _build/app/common _build/stubs/app/server/server.js & wait",
"install:python": "buildtools/prepare_python.sh",
"build:prod": "tsc --build && webpack --config buildtools/webpack.config.js --mode production && cat app/client/*.css app/client/*/*.css > static/bundle.css",
"start:prod": "NODE_PATH=_build:_build/stubs node _build/stubs/app/server/server.js"
},
"keywords": [
"grist",
"spreadsheet",
"database"
],
"author": {
"name": "Grist Labs Inc.",
"email": "info@getgrist.com"
},
"private": false,
"devDependencies": {
"@types/backbone": "1.3.43",
"@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/fs-extra": "5.0.4",
"@types/image-size": "0.0.29",
"@types/js-yaml": "3.11.2",
"@types/lodash": "4.14.117",
"@types/moment-timezone": "0.5.9",
"@types/node": "^10",
"@types/node-fetch": "2.1.2",
"@types/numeral": "0.0.25",
"@types/pidusage": "2.0.1",
"@types/plotly.js": "1.44.15",
"@types/redlock": "3.0.2",
"@types/sqlite3": "3.1.6",
"@types/tmp": "0.0.33",
"@types/uuid": "3.4.4",
"catw": "1.0.1",
"moment-locales-webpack-plugin": "^1.2.0",
"nodemon": "^2.0.4",
"source-map-loader": "^0.2.4",
"stats-webpack-plugin": "^0.7.0",
"typescript": "3.9.3",
"webpack": "4.41.0",
"webpack-cli": "3.3.2"
},
"dependencies": {
"@gristlabs/connect-sqlite3": "0.9.11",
"@gristlabs/express-session": "1.17.0",
"@gristlabs/pidusage": "2.0.17",
"@gristlabs/sqlite3": "4.0.6-grist.2",
"@popperjs/core": "2.3.3",
"async-mutex": "0.2.4",
"axios": "0.18.0",
"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",
"components-jqueryui": "1.12.1",
"cookie-parser": "1.4.3",
"csv": "4.0.0",
"diff-match-patch": "1.0.5",
"double-ended-queue": "2.1.0-0",
"electron": "3.0.7",
"express": "4.16.4",
"file-type": "14.1.4",
"fs-extra": "7.0.0",
"grain-rpc": "0.1.6",
"grainjs": "1.0.1",
"i18n-iso-countries": "6.1.0",
"image-size": "0.6.3",
"jquery": "2.2.1",
"js-yaml": "3.12.0",
"knockout": "3.5.0",
"lodash": "4.17.15",
"moment": "2.22.2",
"moment-timezone": "0.5.21",
"morgan": "1.9.1",
"mousetrap": "1.6.2",
"multiparty": "4.2.1",
"node-fetch": "2.2.0",
"numeral": "2.0.6",
"plotly.js-basic-dist": "1.51.1",
"popper-max-size-modifier": "0.2.0",
"popweasel": "0.1.18",
"randomcolor": "0.5.3",
"redis": "2.8.0",
"redlock": "3.1.2",
"short-uuid": "3.1.1",
"tmp": "0.0.33",
"ts-interface-checker": "0.1.6",
"typeorm": "0.2.18",
"uuid": "3.3.2",
"winston": "2.4.4",
"ws": "6.1.0"
},
"resolutions": {
"jquery": "2.2.1",
"ts-interface-checker": "0.1.6"
}
}