@balena/pinejs 20.1.0-build-large-file-uploads-2-1a7d50e8660ff52fe7df8d6ef9ce8b6b707027dc-1 → 21.0.0-build-21-x-aded34a9c5c670522247399b3cc4dc7814430d5e-1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (88) hide show
  1. package/.pinejs-cache.json +1 -1
  2. package/.versionbot/CHANGELOG.yml +339 -17
  3. package/CHANGELOG.md +79 -5
  4. package/Gruntfile.cts +1 -1
  5. package/VERSION +1 -1
  6. package/build/browser.cts +0 -1
  7. package/build/module.cts +0 -1
  8. package/build/server.cts +0 -1
  9. package/out/bin/utils.js +2 -3
  10. package/out/bin/utils.js.map +1 -1
  11. package/out/config-loader/env.d.ts +0 -5
  12. package/out/config-loader/env.js +0 -7
  13. package/out/config-loader/env.js.map +1 -1
  14. package/out/database-layer/db.js.map +1 -1
  15. package/out/express-emulator/express.js +4 -1
  16. package/out/express-emulator/express.js.map +1 -1
  17. package/out/migrator/async.js +6 -7
  18. package/out/migrator/async.js.map +1 -1
  19. package/out/sbvr-api/abstract-sql.js +19 -11
  20. package/out/sbvr-api/abstract-sql.js.map +1 -1
  21. package/out/sbvr-api/cached-compile.js +2 -1
  22. package/out/sbvr-api/cached-compile.js.map +1 -1
  23. package/out/sbvr-api/control-flow.js.map +1 -1
  24. package/out/sbvr-api/errors.js +1 -1
  25. package/out/sbvr-api/errors.js.map +1 -1
  26. package/out/sbvr-api/hooks.d.ts +1 -2
  27. package/out/sbvr-api/hooks.js.map +1 -1
  28. package/out/sbvr-api/sbvr-utils.d.ts +0 -10
  29. package/out/sbvr-api/sbvr-utils.js +7 -48
  30. package/out/sbvr-api/sbvr-utils.js.map +1 -1
  31. package/out/sbvr-api/translations.js +4 -17
  32. package/out/sbvr-api/translations.js.map +1 -1
  33. package/out/sbvr-api/uri-parser.d.ts +7 -1
  34. package/out/sbvr-api/uri-parser.js +0 -2
  35. package/out/sbvr-api/uri-parser.js.map +1 -1
  36. package/out/server-glue/module.js +1 -13
  37. package/out/server-glue/module.js.map +1 -1
  38. package/out/tasks/index.d.ts +1 -1
  39. package/out/tasks/index.js +2 -2
  40. package/out/tasks/index.js.map +1 -1
  41. package/out/tasks/worker.d.ts +3 -2
  42. package/out/tasks/worker.js +2 -1
  43. package/out/tasks/worker.js.map +1 -1
  44. package/out/webresource-handler/handlers/NoopHandler.js +0 -1
  45. package/out/webresource-handler/handlers/NoopHandler.js.map +1 -1
  46. package/out/webresource-handler/index.d.ts +0 -42
  47. package/out/webresource-handler/index.js +2 -25
  48. package/out/webresource-handler/index.js.map +1 -1
  49. package/package.json +32 -32
  50. package/src/bin/utils.ts +5 -3
  51. package/src/config-loader/env.ts +0 -14
  52. package/src/database-layer/db.ts +6 -2
  53. package/src/express-emulator/express.js +4 -1
  54. package/src/migrator/async.ts +20 -21
  55. package/src/sbvr-api/abstract-sql.ts +30 -25
  56. package/src/sbvr-api/cached-compile.ts +2 -1
  57. package/src/sbvr-api/control-flow.ts +1 -1
  58. package/src/sbvr-api/errors.ts +1 -1
  59. package/src/sbvr-api/express-extension.ts +1 -1
  60. package/src/sbvr-api/hooks.ts +2 -2
  61. package/src/sbvr-api/sbvr-utils.ts +9 -58
  62. package/src/sbvr-api/translations.ts +5 -18
  63. package/src/sbvr-api/uri-parser.ts +11 -4
  64. package/src/server-glue/module.ts +1 -15
  65. package/src/tasks/index.ts +2 -2
  66. package/src/tasks/worker.ts +6 -2
  67. package/src/webresource-handler/handlers/NoopHandler.ts +3 -1
  68. package/src/webresource-handler/index.ts +1 -86
  69. package/out/data-server/sbvr-server.d.ts +0 -17
  70. package/out/data-server/sbvr-server.js +0 -350
  71. package/out/data-server/sbvr-server.js.map +0 -1
  72. package/out/http-transactions/transaction.sbvr +0 -59
  73. package/out/http-transactions/transactions.d.ts +0 -3
  74. package/out/http-transactions/transactions.js +0 -305
  75. package/out/http-transactions/transactions.js.map +0 -1
  76. package/out/webresource-handler/multipartUpload.d.ts +0 -12
  77. package/out/webresource-handler/multipartUpload.js +0 -251
  78. package/out/webresource-handler/multipartUpload.js.map +0 -1
  79. package/out/webresource-handler/webresource.d.ts +0 -42
  80. package/out/webresource-handler/webresource.js +0 -2
  81. package/out/webresource-handler/webresource.js.map +0 -1
  82. package/out/webresource-handler/webresource.sbvr +0 -60
  83. package/src/data-server/sbvr-server.ts +0 -412
  84. package/src/http-transactions/transaction.sbvr +0 -59
  85. package/src/http-transactions/transactions.js +0 -305
  86. package/src/webresource-handler/multipartUpload.ts +0 -368
  87. package/src/webresource-handler/webresource.sbvr +0 -60
  88. package/src/webresource-handler/webresource.ts +0 -48
@@ -1,12 +1,9 @@
1
1
  import type Express from 'express';
2
2
  import type stream from 'node:stream';
3
3
  import * as uriParser from '../sbvr-api/uri-parser.js';
4
- import type { ConfigLoader } from '../server-glue/module.js';
5
4
  import type { WebResourceType as WebResource } from '@balena/sbvr-types';
6
5
  import { TypedError } from 'typed-error';
7
- import type WebresourceModel from './webresource.js';
8
6
  export * from './handlers/index.js';
9
- export type { BeginUploadResponse } from './multipartUpload.js';
10
7
  export interface IncomingFile {
11
8
  fieldname: string;
12
9
  originalname: string;
@@ -18,43 +15,10 @@ export interface UploadResponse {
18
15
  size: number;
19
16
  filename: string;
20
17
  }
21
- export interface BeginMultipartUploadPayload {
22
- filename: string;
23
- content_type: string;
24
- size: number;
25
- chunk_size: number;
26
- }
27
- export interface UploadPart {
28
- url: string;
29
- chunkSize: number;
30
- partNumber: number;
31
- }
32
- export interface BeginMultipartUploadHandlerResponse {
33
- uploadParts: UploadPart[];
34
- fileKey: string;
35
- uploadId: string;
36
- }
37
- export interface CommitMultipartUploadPayload {
38
- fileKey: string;
39
- uploadId: string;
40
- filename: string;
41
- providerCommitData?: Record<string, any>;
42
- }
43
- export interface CancelMultipartUploadPayload {
44
- fileKey: string;
45
- uploadId: string;
46
- }
47
18
  export interface WebResourceHandler {
48
19
  handleFile: (resource: IncomingFile) => Promise<UploadResponse>;
49
20
  removeFile: (fileReference: string) => Promise<void>;
50
21
  onPreRespond: (webResource: WebResource) => Promise<WebResource>;
51
- multipartUpload?: {
52
- begin: (fieldName: string, payload: BeginMultipartUploadPayload) => Promise<BeginMultipartUploadHandlerResponse>;
53
- commit: (commitInfo: CommitMultipartUploadPayload) => Promise<WebResource>;
54
- cancel: (cancelInfo: CancelMultipartUploadPayload) => Promise<void>;
55
- getMinimumPartSize: () => number;
56
- getDefaultPartSize: () => number;
57
- };
58
22
  }
59
23
  export declare class WebResourceError extends TypedError {
60
24
  }
@@ -69,9 +33,3 @@ export declare const getWebResourceFields: (request: uriParser.ParsedODataReques
69
33
  export declare const normalizeHref: (href: string) => string;
70
34
  export declare const getDefaultHandler: () => WebResourceHandler;
71
35
  export declare const setupUploadHooks: (handler: WebResourceHandler, apiRoot: string, resourceName: string) => void;
72
- declare module '../sbvr-api/sbvr-utils.js' {
73
- interface API {
74
- webresource: PinejsClient<WebresourceModel>;
75
- }
76
- }
77
- export declare const config: ConfigLoader.Config;
@@ -7,8 +7,6 @@ import { NoopHandler } from './handlers/NoopHandler.js';
7
7
  import { odataNameToSqlName, sqlNameToODataName, } from '@balena/odata-to-abstract-sql';
8
8
  import { errors, permissions } from '../server-glue/module.js';
9
9
  import { TypedError } from 'typed-error';
10
- import { importSBVR } from '../server-glue/sbvr-loader.js';
11
- import { isMultipartUploadAvailable, multipartUploadHooks, } from './multipartUpload.js';
12
10
  export * from './handlers/index.js';
13
11
  export class WebResourceError extends TypedError {
14
12
  }
@@ -52,7 +50,7 @@ const getRequestUploadValidator = async (req, odataRequest) => {
52
50
  if (!hasPermissions) {
53
51
  return notValidUpload;
54
52
  }
55
- return async (fieldname) => {
53
+ return (fieldname) => {
56
54
  const dbFieldName = odataNameToSqlName(fieldname);
57
55
  return table.fields.some((field) => field.fieldName === dbFieldName && field.dataType === 'WebResource');
58
56
  };
@@ -176,10 +174,7 @@ const deleteFiles = async (keysToDelete, webResourceHandler) => {
176
174
  await Promise.all(promises);
177
175
  };
178
176
  const throwIfWebresourceNotInMultipart = (webResourceFields, { req, request }) => {
179
- if (request.custom.isAction !== 'beginUpload' &&
180
- request.custom.isAction !== 'commitUpload' &&
181
- request.custom.isAction !== 'cancelUpload' &&
182
- !req.is?.('multipart') &&
177
+ if (!req.is?.('multipart') &&
183
178
  webResourceFields.some((field) => request.values[field] != null)) {
184
179
  throw new errors.BadRequestError('Use multipart requests to upload a file.');
185
180
  }
@@ -285,23 +280,5 @@ export const setupUploadHooks = (handler, apiRoot, resourceName) => {
285
280
  sbvrUtils.addPureHook('DELETE', apiRoot, resourceName, getRemoveWebResourceHooks(handler));
286
281
  sbvrUtils.addPureHook('PATCH', apiRoot, resourceName, getRemoveWebResourceHooks(handler));
287
282
  sbvrUtils.addPureHook('POST', apiRoot, resourceName, getCreateWebResourceHooks(handler));
288
- if (isMultipartUploadAvailable(handler)) {
289
- sbvrUtils.addPureHook('POST', apiRoot, resourceName, multipartUploadHooks(handler));
290
- }
291
- };
292
- const initSql = `
293
- CREATE INDEX IF NOT EXISTS idx_multipart_upload_uuid ON "multipart upload" (uuid);
294
- CREATE INDEX IF NOT EXISTS idx_multipart_upload_status ON "multipart upload" (status);
295
- `;
296
- const modelText = await importSBVR('./webresource.sbvr', import.meta);
297
- export const config = {
298
- models: [
299
- {
300
- modelName: 'webresource',
301
- apiRoot: 'webresource',
302
- modelText,
303
- initSql,
304
- },
305
- ],
306
283
  };
307
284
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/webresource-handler/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/webresource-handler/index.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@balena/pinejs",
3
- "version": "20.1.0-build-large-file-uploads-2-1a7d50e8660ff52fe7df8d6ef9ce8b6b707027dc-1",
3
+ "version": "21.0.0-build-21-x-aded34a9c5c670522247399b3cc4dc7814430d5e-1",
4
4
  "main": "out/server-glue/module.js",
5
5
  "type": "module",
6
6
  "repository": "git@github.com:balena-io/pinejs.git",
@@ -18,43 +18,43 @@
18
18
  "webpack-module": "grunt --preload ts-node/register/transpile-only --gruntfile Gruntfile.cts module",
19
19
  "webpack-server": "grunt --preload ts-node/register/transpile-only --gruntfile Gruntfile.cts server",
20
20
  "webpack-build": "npm run webpack-browser && npm run webpack-module && npm run webpack-server",
21
- "lint": "balena-lint -t tsconfig.dev.json -e js -e ts src build typings Gruntfile.cts && npx tsc --project tsconfig.dev.json --noEmit",
21
+ "lint": "balena-lint -t tsconfig.dev.json -e js -e ts src test build typings Gruntfile.cts && npx tsc --project tsconfig.dev.json --noEmit",
22
22
  "test": "npm run build && npm run lint && npm run webpack-build && npm run test:compose && npm run test:generated-types",
23
- "test:compose": "trap 'docker compose -f docker-compose.npm-test.yml down ; echo Stopped ; exit 0' INT; docker compose -f docker-compose.npm-test.yml up -d && sleep 2 && DATABASE_URL=postgres://docker:docker@localhost:5431/postgres PINEJS_WEBRESOURCE_MAXFILESIZE=1000000000 S3_ENDPOINT=http://localhost:43680 S3_ACCESS_KEY=USERNAME S3_SECRET_KEY=PASSWORD S3_STORAGE_ADAPTER_BUCKET=balena-pine-web-resources S3_REGION=us-east-1 PINEJS_QUEUE_CONCURRENCY=1 TZ=UTC PINEJS_WEBRESOURCE_MULTIPART_ENABLED=true npx mocha",
23
+ "test:compose": "trap 'docker compose -f docker-compose.npm-test.yml down ; echo Stopped ; exit 0' INT; docker compose -f docker-compose.npm-test.yml up -d && sleep 2 && DATABASE_URL=postgres://docker:docker@localhost:5431/postgres PINEJS_WEBRESOURCE_MAXFILESIZE=1000000000 S3_ENDPOINT=http://localhost:43680 S3_ACCESS_KEY=USERNAME S3_SECRET_KEY=PASSWORD S3_STORAGE_ADAPTER_BUCKET=balena-pine-web-resources S3_REGION=us-east-1 PINEJS_QUEUE_CONCURRENCY=1 TZ=UTC npx mocha",
24
24
  "test:generated-types": "npm run generate-types && git diff --exit-code ./src/sbvr-api/user.ts ./src/migrator/migrations.ts ./src/sbvr-api/dev.ts",
25
25
  "lint-fix": "balena-lint -t tsconfig.dev.json -e js -e ts --fix src test build typings Gruntfile.cts",
26
- "generate-types": "node ./bin/sbvr-compiler.js generate-types ./src/sbvr-api/user.sbvr ./src/sbvr-api/user.ts && node ./bin/sbvr-compiler.js generate-types ./src/migrator/migrations.sbvr ./src/migrator/migrations.ts && node ./bin/sbvr-compiler.js generate-types ./src/sbvr-api/dev.sbvr ./src/sbvr-api/dev.ts && node ./bin/sbvr-compiler.js generate-types ./src/tasks/tasks.sbvr ./src/tasks/tasks.ts && node ./bin/sbvr-compiler.js generate-types ./src/webresource-handler/webresource.sbvr ./src/webresource-handler/webresource.ts && balena-lint -t tsconfig.dev.json --fix ./src/sbvr-api/user.ts ./src/migrator/migrations.ts ./src/sbvr-api/dev.ts"
26
+ "generate-types": "node ./bin/sbvr-compiler.js generate-types ./src/sbvr-api/user.sbvr ./src/sbvr-api/user.ts && node ./bin/sbvr-compiler.js generate-types ./src/migrator/migrations.sbvr ./src/migrator/migrations.ts && node ./bin/sbvr-compiler.js generate-types ./src/sbvr-api/dev.sbvr ./src/sbvr-api/dev.ts && node ./bin/sbvr-compiler.js generate-types ./src/tasks/tasks.sbvr ./src/tasks/tasks.ts && balena-lint -t tsconfig.dev.json --fix ./src/sbvr-api/user.ts ./src/migrator/migrations.ts ./src/sbvr-api/dev.ts"
27
27
  },
28
28
  "dependencies": {
29
- "@balena/abstract-sql-compiler": "^10.2.0",
29
+ "@balena/abstract-sql-compiler": "^10.2.3",
30
30
  "@balena/abstract-sql-to-typescript": "^5.1.0",
31
31
  "@balena/env-parsing": "^1.2.0",
32
32
  "@balena/lf-to-abstract-sql": "^5.0.3",
33
- "@balena/odata-parser": "^4.1.0",
34
- "@balena/odata-to-abstract-sql": "^7.1.0",
33
+ "@balena/odata-parser": "^4.2.1",
34
+ "@balena/odata-to-abstract-sql": "^7.1.3",
35
35
  "@balena/sbvr-parser": "^1.4.6",
36
- "@balena/sbvr-types": "^9.1.0",
36
+ "@balena/sbvr-types": "^9.2.0",
37
37
  "@types/body-parser": "^1.19.5",
38
38
  "@types/compression": "^1.7.5",
39
39
  "@types/cookie-parser": "^1.4.8",
40
40
  "@types/deep-freeze": "^0.1.5",
41
41
  "@types/express": "^4.17.21",
42
42
  "@types/express-session": "^1.18.1",
43
- "@types/lodash": "^4.17.13",
43
+ "@types/lodash": "^4.17.16",
44
44
  "@types/memoizee": "^0.4.11",
45
45
  "@types/method-override": "^3.0.0",
46
46
  "@types/multer": "^1.4.12",
47
47
  "@types/mysql": "^2.15.26",
48
- "@types/node": "^20.17.11",
48
+ "@types/node": "^20.17.25",
49
49
  "@types/passport": "^1.0.17",
50
50
  "@types/passport-local": "^1.0.38",
51
51
  "@types/passport-strategy": "^0.2.38",
52
- "@types/pg": "^8.11.10",
52
+ "@types/pg": "^8.11.11",
53
53
  "@types/randomstring": "^1.3.0",
54
54
  "@types/websql": "^0.0.30",
55
55
  "ajv": "^8.17.1",
56
56
  "busboy": "^1.6.0",
57
- "commander": "^13.0.0",
57
+ "commander": "^13.1.0",
58
58
  "cron-parser": "^4.9.0",
59
59
  "deep-freeze": "^0.0.1",
60
60
  "eventemitter3": "^5.0.1",
@@ -63,24 +63,24 @@
63
63
  "lodash": "^4.17.21",
64
64
  "memoizee": "^0.4.17",
65
65
  "pinejs-client-core": "^8.1.2",
66
- "randomstring": "^1.3.0",
66
+ "randomstring": "^1.3.1",
67
67
  "typed-error": "^3.2.2"
68
68
  },
69
69
  "devDependencies": {
70
- "@balena/lint": "^8.2.8",
70
+ "@balena/lint": "^9.1.4",
71
71
  "@balena/pinejs": "file:./",
72
- "@balena/pinejs-webresource-s3": "2.0.0-build-new-multiparthandle-interface-89b8ac06df331a867a569ccd702dc90e0ad12959-1",
73
- "@faker-js/faker": "^9.3.0",
72
+ "@balena/pinejs-webresource-s3": "1.0.4-build-pinejs-21-2aa44949589b4b02ac7dac07ac36ac1aec9aeb32-1",
73
+ "@faker-js/faker": "^9.6.0",
74
74
  "@types/busboy": "^1.5.4",
75
- "@types/chai": "^5.0.1",
76
- "@types/grunt": "^0.4.31",
75
+ "@types/chai": "^5.2.0",
76
+ "@types/grunt": "^0.4.32",
77
77
  "@types/mocha": "^10.0.10",
78
78
  "@types/on-finished": "^2.3.4",
79
79
  "@types/request": "^2.48.12",
80
80
  "@types/supertest": "^6.0.2",
81
81
  "@types/terser-webpack-plugin": "^5.2.0",
82
82
  "@types/webpack": "^5.28.5",
83
- "chai": "^5.1.2",
83
+ "chai": "^5.2.0",
84
84
  "grunt": "^1.6.1",
85
85
  "grunt-check-dependencies": "^1.0.0",
86
86
  "grunt-cli": "^1.5.0",
@@ -93,36 +93,36 @@
93
93
  "grunt-ts": "^6.0.0-beta.22",
94
94
  "grunt-webpack": "^7.0.0",
95
95
  "husky": "^9.1.7",
96
- "lint-staged": "^15.3.0",
96
+ "lint-staged": "^15.5.0",
97
97
  "load-grunt-tasks": "^5.1.0",
98
- "mocha": "^11.0.1",
98
+ "mocha": "^11.2.0",
99
99
  "on-finished": "^2.4.1",
100
100
  "pinejs-client-supertest": "^3.0.1",
101
101
  "raw-loader": "^4.0.2",
102
102
  "request": "^2.88.2",
103
103
  "require-npm4-to-publish": "^1.0.0",
104
- "supertest": "^7.0.0",
105
- "terser-webpack-plugin": "^5.3.11",
106
- "ts-loader": "^9.5.1",
104
+ "supertest": "^7.1.0",
105
+ "terser-webpack-plugin": "^5.3.14",
106
+ "ts-loader": "^9.5.2",
107
107
  "ts-node": "^10.9.2",
108
- "typescript": "^5.7.2",
109
- "webpack": "^5.97.1",
108
+ "typescript": "^5.8.2",
109
+ "webpack": "^5.98.0",
110
110
  "webpack-dev-server": "^5.2.0"
111
111
  },
112
112
  "optionalDependencies": {
113
- "@aws-sdk/client-s3": "^3.717.0",
114
- "@aws-sdk/lib-storage": "^3.717.0",
115
- "@aws-sdk/s3-request-presigner": "^3.717.0",
113
+ "@aws-sdk/client-s3": "^3.772.0",
114
+ "@aws-sdk/lib-storage": "^3.772.0",
115
+ "@aws-sdk/s3-request-presigner": "^3.772.0",
116
116
  "bcrypt": "^5.1.1",
117
117
  "body-parser": "^1.20.3",
118
- "compression": "^1.7.5",
118
+ "compression": "^1.8.0",
119
119
  "cookie-parser": "^1.4.7",
120
120
  "express": "^4.21.2",
121
121
  "method-override": "^3.0.0",
122
122
  "mysql": "^2.18.1",
123
123
  "passport": "^0.7.0",
124
124
  "passport-local": "^1.0.0",
125
- "pg": "^8.13.1",
125
+ "pg": "^8.14.1",
126
126
  "pg-connection-string": "^2.7.0",
127
127
  "serve-static": "^1.16.2"
128
128
  },
@@ -148,6 +148,6 @@
148
148
  "recursive": true
149
149
  },
150
150
  "versionist": {
151
- "publishedAt": "2025-02-19T18:02:37.340Z"
151
+ "publishedAt": "2025-03-21T17:22:58.877Z"
152
152
  }
153
153
  }
package/src/bin/utils.ts CHANGED
@@ -1,6 +1,7 @@
1
- process.env.PINEJS_CACHE_FILE =
2
- process.env.PINEJS_CACHE_FILE ||
3
- fileURLToPath(new URL('.pinejs-cache.json', import.meta.url));
1
+ process.env.PINEJS_CACHE_FILE = optionalVar(
2
+ 'PINEJS_CACHE_FILE',
3
+ fileURLToPath(new URL('.pinejs-cache.json', import.meta.url)),
4
+ );
4
5
 
5
6
  import type { SqlModel } from '@balena/abstract-sql-compiler';
6
7
  import type { Config, Model } from '../config-loader/config-loader.js';
@@ -11,6 +12,7 @@ import path from 'path';
11
12
  import '../server-glue/sbvr-loader.js';
12
13
  import { fileURLToPath } from 'url';
13
14
  import { loadSBVR } from '../server-glue/sbvr-loader.js';
15
+ import { optionalVar } from '@balena/env-parsing';
14
16
 
15
17
  export { version } from '../config-loader/env.js';
16
18
 
@@ -46,9 +46,6 @@ export const cache = {
46
46
  odataToAbstractSql: {
47
47
  max: 10000,
48
48
  } as CacheOpts,
49
- abstractSqlCompiler: {
50
- max: 10000,
51
- } as CacheOpts,
52
49
  userPermissions: false as CacheOpts,
53
50
  apiKeyPermissions: false as CacheOpts,
54
51
  apiKeyActorId: false as CacheOpts,
@@ -157,17 +154,6 @@ export const tasks = {
157
154
  queueIntervalMS: intVar('PINEJS_QUEUE_INTERVAL_MS', 1000),
158
155
  };
159
156
 
160
- export const webResource = {
161
- multipartUploadEnabled: boolVar(
162
- 'PINEJS_WEBRESOURCE_MULTIPART_ENABLED',
163
- false,
164
- ),
165
- singleUploadMaxFilesize: intVar(
166
- 'PINEJS_WEBRESOURCE_MAXFILESIZE',
167
- 299 * 1024 * 1024,
168
- ),
169
- };
170
-
171
157
  export const guardTestMockOnly = () => {
172
158
  if (process.env.DEPLOYMENT !== 'TEST') {
173
159
  throw new Error('Attempting to use TEST_MOCK_ONLY outside of tests');
@@ -188,6 +188,7 @@ const getRejectedFunctions: RejectedFunctions = env.DEBUG
188
188
  // In debug mode we create the error here to give the stack trace of where we first closed the transaction,
189
189
  // but it adds significant overhead for a production environment
190
190
  const rejectionValue = new TransactionClosedError(message);
191
+ // eslint-disable-next-line @typescript-eslint/require-await -- We need to return a promise for compatibility reasons.
191
192
  const rejectFn = async () => {
192
193
  // We return a new rejected promise on each call so that errors are automatically logged if the
193
194
  // rejection is not handled (but only if it is not handled)
@@ -199,6 +200,7 @@ const getRejectedFunctions: RejectedFunctions = env.DEBUG
199
200
  };
200
201
  }
201
202
  : (message) => {
203
+ // eslint-disable-next-line @typescript-eslint/require-await -- We need to return a promise for compatibility reasons.
202
204
  const rejectFn = async () => {
203
205
  throw new TransactionClosedError(message);
204
206
  };
@@ -418,8 +420,9 @@ export abstract class Tx {
418
420
  protected abstract _rollback(): Promise<void>;
419
421
  protected abstract _commit(): Promise<void>;
420
422
 
421
- // TODO: Re-enable the lint rule once eslint properly supports abstract class base implementations
423
+ // eslint-disable-next-line @typescript-eslint/require-await -- We need to return a promise for compatibility reasons.
422
424
  public async getTxLevelLock(
425
+ // TODO: Re-enable the lint rule once eslint properly supports abstract class base implementations
423
426
  /* eslint-disable @typescript-eslint/no-unused-vars */
424
427
  _namespaceKey: string,
425
428
  _key: number,
@@ -939,6 +942,7 @@ if (typeof window !== 'undefined' && window.openDatabase != null) {
939
942
  await this.tx.rollback();
940
943
  }
941
944
 
945
+ // eslint-disable-next-line @typescript-eslint/require-await -- We need to return a promise for compatibility reasons.
942
946
  protected async _commit() {
943
947
  this.tx.commit();
944
948
  }
@@ -988,7 +992,7 @@ if (typeof window !== 'undefined' && window.openDatabase != null) {
988
992
  resolve(results);
989
993
  };
990
994
  const errorCallback: SQLStatementErrorCallback = (_tx, err) => {
991
- reject(err);
995
+ reject(err as any as Error);
992
996
  return false;
993
997
  };
994
998
 
@@ -60,7 +60,7 @@ const app = (function () {
60
60
  ) {
61
61
  if (!handlers[method]) {
62
62
  // TODO: Consider changing this to a custom Error
63
- // eslint-disable-next-line no-throw-literal
63
+ // eslint-disable-next-line no-throw-literal, @typescript-eslint/only-throw-error
64
64
  throw [404, null, null];
65
65
  }
66
66
  const req = {
@@ -102,6 +102,7 @@ const app = (function () {
102
102
  },
103
103
  end(/** @type any */ data) {
104
104
  if (this.statusCode >= 400) {
105
+ // eslint-disable-next-line @typescript-eslint/prefer-promise-reject-errors
105
106
  reject([this.statusCode, data, null]);
106
107
  } else {
107
108
  resolve([this.statusCode, data, null]);
@@ -111,12 +112,14 @@ const app = (function () {
111
112
  /** @type undefined | number */ statusCode = this.statusCode,
112
113
  ) {
113
114
  if (statusCode >= 400) {
115
+ // eslint-disable-next-line @typescript-eslint/prefer-promise-reject-errors
114
116
  reject([statusCode, null, null]);
115
117
  } else {
116
118
  resolve([statusCode, null, null]);
117
119
  }
118
120
  },
119
121
  redirect() {
122
+ // eslint-disable-next-line @typescript-eslint/prefer-promise-reject-errors
120
123
  reject([307]);
121
124
  },
122
125
  set() {
@@ -28,7 +28,7 @@ import {
28
28
  import { booleanToEnabledString } from '../config-loader/env.js';
29
29
 
30
30
  export const run = async (tx: Tx, model: ApiRootModel): Promise<void> => {
31
- const { migrations } = model;
31
+ const { migrations, apiRoot: apiRootModelName } = model;
32
32
  if (migrations == null || _.isEmpty(migrations)) {
33
33
  return;
34
34
  }
@@ -38,25 +38,8 @@ export const run = async (tx: Tx, model: ApiRootModel): Promise<void> => {
38
38
  return;
39
39
  }
40
40
 
41
- await $run(tx, model, asyncMigrations);
42
- };
43
-
44
- const $run = async (
45
- setupTx: Tx,
46
- model: ApiRootModel,
47
- migrations: RunnableAsyncMigrations,
48
- ): Promise<void> => {
49
- const modelName = model.apiRoot;
50
-
51
- const asyncMigrationSetup: Array<{
52
- key: string;
53
- initMigrationState: InitialMigrationStatus;
54
- asyncRunnerMigratorFn: (tx: Tx) => Promise<number>;
55
- }> = [];
56
-
57
41
  // get a transaction for setting up the async migrator
58
-
59
- const executedMigrations = await getExecutedMigrations(setupTx, modelName);
42
+ const executedMigrations = await getExecutedMigrations(tx, apiRootModelName);
60
43
 
61
44
  // if the model is new, the sync migration parts (marked by finalize=true) are already marked in the sync migration runner.
62
45
 
@@ -100,10 +83,26 @@ const $run = async (
100
83
  */
101
84
 
102
85
  const pendingMigrations: MigrationTuple[] = filterAndSortPendingMigrations(
103
- migrations,
86
+ asyncMigrations,
104
87
  executedMigrations,
105
88
  );
106
89
 
90
+ // Pass the minimum and simplest parameters to the async migrator runner,
91
+ // so that everything else (eg: finalized migrations) can be GCed,
92
+ await $run(tx, apiRootModelName, pendingMigrations);
93
+ };
94
+
95
+ const $run = async (
96
+ setupTx: Tx,
97
+ apiRootModelName: string,
98
+ pendingMigrations: MigrationTuple[],
99
+ ): Promise<void> => {
100
+ const asyncMigrationSetup: Array<{
101
+ key: string;
102
+ initMigrationState: InitialMigrationStatus;
103
+ asyncRunnerMigratorFn: (tx: Tx) => Promise<number>;
104
+ }> = [];
105
+
107
106
  // Just schedule the migration workers and don't wait for any return of them
108
107
  // the migration workers run until the next deployment and may synchronise with other
109
108
  // instances via database tables: migration lock and migration status
@@ -203,7 +202,7 @@ const $run = async (
203
202
  const $migrationState = await sbvrUtils.db.transaction(
204
203
  async (tx) =>
205
204
  await lockMigrations(
206
- { tx, modelName, blocking: false },
205
+ { tx, modelName: apiRootModelName, blocking: false },
207
206
  async () => {
208
207
  const migrationState = await readMigrationStatus(tx, key);
209
208
 
@@ -9,33 +9,37 @@ import {
9
9
  isBindReference,
10
10
  } from '@balena/odata-to-abstract-sql';
11
11
  import deepFreeze from 'deep-freeze';
12
- import memoize from 'memoizee';
13
- import * as env from '../config-loader/env.js';
14
12
  import { BadRequestError, SqlCompilationError } from './errors.js';
15
13
  import * as sbvrUtils from './sbvr-utils.js';
16
- import type { ODataRequest } from './uri-parser.js';
14
+ import type { CachedSqlQuery, ODataRequest } from './uri-parser.js';
17
15
 
18
- const getMemoizedCompileRule = memoize(
19
- (engine: AbstractSQLCompiler.Engines) =>
20
- env.createCache(
21
- 'abstractSqlCompiler',
22
- (abstractSqlQuery: AbstractSQLCompiler.AbstractSqlQuery) => {
23
- const sqlQuery =
24
- AbstractSQLCompiler[engine].compileRule(abstractSqlQuery);
25
- const modifiedFields =
26
- AbstractSQLCompiler[engine].getModifiedFields(abstractSqlQuery);
27
- if (modifiedFields != null) {
28
- deepFreeze(modifiedFields);
29
- }
30
- return {
31
- sqlQuery,
32
- modifiedFields,
33
- };
34
- },
35
- { weak: true },
36
- ),
37
- { primitive: true },
38
- );
16
+ const compileQuery = (
17
+ engine: AbstractSQLCompiler.Engines,
18
+ abstractSqlQuery: NonNullable<ODataRequest['abstractSqlQuery']>,
19
+ ) => {
20
+ if (!('sqlQuery' in abstractSqlQuery)) {
21
+ const sqlQuery = AbstractSQLCompiler[engine].compileRule(abstractSqlQuery);
22
+ const modifiedFields =
23
+ AbstractSQLCompiler[engine].getModifiedFields(abstractSqlQuery);
24
+ if (modifiedFields != null) {
25
+ deepFreeze(modifiedFields);
26
+ }
27
+ abstractSqlQuery = abstractSqlQuery as any as CachedSqlQuery;
28
+ abstractSqlQuery.length = 0;
29
+ abstractSqlQuery.engine = engine;
30
+ abstractSqlQuery.sqlQuery = sqlQuery;
31
+ abstractSqlQuery.modifiedFields = modifiedFields;
32
+ }
33
+ if (engine !== abstractSqlQuery.engine) {
34
+ throw new Error(
35
+ 'Trying to recompile a cached abstract sql query with a different engine than it was compiled with is not supported',
36
+ );
37
+ }
38
+ return {
39
+ sqlQuery: abstractSqlQuery.sqlQuery,
40
+ modifiedFields: abstractSqlQuery.modifiedFields,
41
+ };
42
+ };
39
43
 
40
44
  export const compileRequest = (request: ODataRequest) => {
41
45
  if (request.abstractSqlQuery != null) {
@@ -44,7 +48,8 @@ export const compileRequest = (request: ODataRequest) => {
44
48
  throw new SqlCompilationError('No database engine specified');
45
49
  }
46
50
  try {
47
- const { sqlQuery, modifiedFields } = getMemoizedCompileRule(engine)(
51
+ const { sqlQuery, modifiedFields } = compileQuery(
52
+ engine,
48
53
  request.abstractSqlQuery,
49
54
  );
50
55
  request.sqlQuery = sqlQuery;
@@ -1,8 +1,9 @@
1
1
  import type Fs from 'fs';
2
2
 
3
+ import { optionalVar } from '@balena/env-parsing';
3
4
  import _ from 'lodash';
4
5
 
5
- const cacheFile = process.env.PINEJS_CACHE_FILE || '.pinejs-cache.json';
6
+ const cacheFile = optionalVar('PINEJS_CACHE_FILE', '.pinejs-cache.json');
6
7
  let cache: null | {
7
8
  [name: string]: {
8
9
  [version: string]: {
@@ -79,7 +79,7 @@ export const fromCallback = <T>(
79
79
  new Promise<T>((resolve, reject) => {
80
80
  resolver((err, result?: T) => {
81
81
  if (err) {
82
- reject(err);
82
+ reject(err as Error);
83
83
  } else {
84
84
  resolve(result as T);
85
85
  }
@@ -24,7 +24,7 @@ export class HttpError extends TypedError {
24
24
  }
25
25
 
26
26
  public getResponseBody() {
27
- return this.body !== undefined ? this.body : this.message;
27
+ return this.body ?? this.message;
28
28
  }
29
29
  }
30
30
 
@@ -5,7 +5,7 @@ declare global {
5
5
  // eslint-disable-next-line @typescript-eslint/no-namespace
6
6
  namespace Express {
7
7
  // Augment Express.User to include the props of our PineUser.
8
- // eslint-disable-next-line @typescript-eslint/no-empty-interface
8
+ // eslint-disable-next-line @typescript-eslint/no-empty-interface, @typescript-eslint/no-empty-object-type
9
9
  interface User extends PineUser {}
10
10
 
11
11
  interface Request {