@balena/pinejs 15.0.0-build-15-x-4681209f5dd8d896491fb5ed64aea47df511c14d-1 → 15.0.0-build-15-x-bf3a44dfe299de8966cf9bc201fa13fdf9d4a747-1

Sign up to get free protection for your applications and to get access to all the features.
Files changed (51) hide show
  1. package/.pinejs-cache.json +1 -1
  2. package/.versionbot/CHANGELOG.yml +1479 -103
  3. package/CHANGELOG.md +523 -2
  4. package/Dockerfile +1 -1
  5. package/out/bin/odata-compiler.js +4 -1
  6. package/out/bin/odata-compiler.js.map +1 -1
  7. package/out/config-loader/config-loader.d.ts +5 -2
  8. package/out/config-loader/config-loader.js +46 -18
  9. package/out/config-loader/config-loader.js.map +1 -1
  10. package/out/database-layer/db.d.ts +1 -0
  11. package/out/database-layer/db.js +3 -0
  12. package/out/database-layer/db.js.map +1 -1
  13. package/out/migrator/async.js +14 -8
  14. package/out/migrator/async.js.map +1 -1
  15. package/out/migrator/utils.d.ts +3 -4
  16. package/out/migrator/utils.js +11 -1
  17. package/out/migrator/utils.js.map +1 -1
  18. package/out/passport-pinejs/passport-pinejs.d.ts +1 -1
  19. package/out/passport-pinejs/passport-pinejs.js +3 -3
  20. package/out/passport-pinejs/passport-pinejs.js.map +1 -1
  21. package/out/pinejs-session-store/pinejs-session-store.d.ts +1 -1
  22. package/out/sbvr-api/abstract-sql.js +2 -1
  23. package/out/sbvr-api/abstract-sql.js.map +1 -1
  24. package/out/sbvr-api/hooks.d.ts +3 -3
  25. package/out/sbvr-api/hooks.js +44 -29
  26. package/out/sbvr-api/hooks.js.map +1 -1
  27. package/out/sbvr-api/permissions.js +6 -4
  28. package/out/sbvr-api/permissions.js.map +1 -1
  29. package/out/sbvr-api/sbvr-utils.d.ts +11 -5
  30. package/out/sbvr-api/sbvr-utils.js +151 -61
  31. package/out/sbvr-api/sbvr-utils.js.map +1 -1
  32. package/out/sbvr-api/translations.d.ts +6 -0
  33. package/out/sbvr-api/translations.js +150 -0
  34. package/out/sbvr-api/translations.js.map +1 -0
  35. package/out/sbvr-api/uri-parser.d.ts +5 -2
  36. package/out/sbvr-api/uri-parser.js +2 -0
  37. package/out/sbvr-api/uri-parser.js.map +1 -1
  38. package/package.json +19 -17
  39. package/src/bin/odata-compiler.ts +4 -2
  40. package/src/config-loader/config-loader.ts +84 -29
  41. package/src/database-layer/db.ts +3 -0
  42. package/src/migrator/async.ts +22 -12
  43. package/src/migrator/utils.ts +16 -5
  44. package/src/passport-pinejs/passport-pinejs.ts +4 -4
  45. package/src/sbvr-api/abstract-sql.ts +4 -2
  46. package/src/sbvr-api/hooks.ts +80 -33
  47. package/src/sbvr-api/permissions.ts +15 -7
  48. package/src/sbvr-api/sbvr-utils.ts +258 -84
  49. package/src/sbvr-api/translations.ts +248 -0
  50. package/src/sbvr-api/uri-parser.ts +9 -2
  51. package/tsconfig.dev.json +1 -0
package/CHANGELOG.md CHANGED
@@ -5,8 +5,9 @@ automatically by Versionist. DO NOT EDIT THIS FILE MANUALLY!
5
5
  This project adheres to [Semantic Versioning](http://semver.org/).
6
6
 
7
7
  # v15.0.0
8
- ## (2023-01-30)
8
+ ## (2023-04-25)
9
9
 
10
+ * Update grunt [Harald Fischer]
10
11
  * Do not convert `null` to the default value in `customApiKeyMiddleware` [Pagan Gazzard]
11
12
  * Use `{ value: modelValue }` for se and odataMetadata model entries [Pagan Gazzard]
12
13
  * Switch mysql `sql_mode` from `ANSI_QUOTES` to `ANSI` [Pagan Gazzard]
@@ -19,7 +20,527 @@ This project adheres to [Semantic Versioning](http://semver.org/).
19
20
  * Remove support for `DEBUG` env var in favor of only `PINEJS_DEBUG` [Pagan Gazzard]
20
21
  * Set minimum supported nodejs version to 16.13.0 and tsconfig to es2021 [Pagan Gazzard]
21
22
  * Reflect the usage of BOOLEAN/JSON database types [Pagan Gazzard]
22
- * Update dependencies [Pagan Gazzard]
23
+
24
+ <details>
25
+ <summary> Update dependencies [Pagan Gazzard] </summary>
26
+
27
+ > ## abstract-sql-compiler-8.4.1
28
+ > ### (2023-04-25)
29
+ >
30
+ > * Add much finer grained typings for abstract-sql-optimizer [Pagan Gazzard]
31
+ >
32
+ > ## abstract-sql-compiler-8.4.0
33
+ > ### (2023-04-24)
34
+ >
35
+ > * Add support for using field type nodes with an AggregateJSON node [Pagan Gazzard]
36
+ >
37
+ > ## abstract-sql-compiler-8.3.13
38
+ > ### (2023-04-24)
39
+ >
40
+ > * Deprecate `AliasableFromTypeNodes` type as it's redundant [Pagan Gazzard]
41
+ >
42
+ > ## abstract-sql-compiler-8.3.12
43
+ > ### (2023-04-17)
44
+ >
45
+ > * Revert tightening of `OrderBy` to only field nodes [Pagan Gazzard]
46
+ >
47
+ > ## abstract-sql-compiler-8.3.11
48
+ > ### (2023-04-13)
49
+ >
50
+ > * Do not allow ON clauses for CROSS JOIN as it is invalid [Pagan Gazzard]
51
+ > * Stop accepting `ExtractJSONPathAsText`/`ToJSON` as unknown node types [Pagan Gazzard]
52
+ >
53
+ > ## abstract-sql-compiler-8.3.10
54
+ > ### (2023-04-13)
55
+ >
56
+ > * Fix DateNode/AnyNode typings [Pagan Gazzard]
57
+ >
58
+ > ## abstract-sql-compiler-8.3.9
59
+ > ### (2023-04-13)
60
+ >
61
+ >
62
+ > <details>
63
+ > <summary> Update dependencies [Pagan Gazzard] </summary>
64
+ >
65
+ >> ### sbvr-types-3.5.0
66
+ >> #### (2023-03-21)
67
+ >>
68
+ >> * Add Big Serial type [Josh Bowling]
69
+ >>
70
+ >> ### sbvr-types-3.4.19
71
+ >> #### (2022-12-08)
72
+ >>
73
+ >> * Flowzone: Allow external contributions [Josh Bowling]
74
+ >>
75
+ >
76
+ > </details>
77
+ >
78
+ >
79
+ > ## abstract-sql-compiler-8.3.8
80
+ > ### (2023-04-12)
81
+ >
82
+ > * Improve typings [Pagan Gazzard]
83
+ >
84
+ > ## abstract-sql-compiler-8.3.7
85
+ > ### (2023-04-12)
86
+ >
87
+ > * Remove typing for non-existent JSON node [Pagan Gazzard]
88
+ >
89
+ > ## abstract-sql-compiler-8.3.6
90
+ > ### (2023-04-12)
91
+ >
92
+ > * Tighten the `isXValue` function typings [Pagan Gazzard]
93
+ >
94
+ > ## abstract-sql-compiler-8.3.5
95
+ > ### (2023-04-12)
96
+ >
97
+ > * Correctly treat `Value` nodes as rewritten to `Text` by the optimizer [Pagan Gazzard]
98
+ > * Add EmbeddedTextNode typing [Pagan Gazzard]
99
+ >
100
+ > ## abstract-sql-compiler-8.3.4
101
+ > ### (2023-04-12)
102
+ >
103
+ > * Enforce the first argument of ExtractJSONPathAsText is a JSON type node [Pagan Gazzard]
104
+ >
105
+ > ## abstract-sql-compiler-8.3.3
106
+ > ### (2023-04-12)
107
+ >
108
+ > * Improve node typings [Pagan Gazzard]
109
+ >
110
+ > ## abstract-sql-compiler-8.3.2
111
+ > ### (2023-04-12)
112
+ >
113
+ > * Add more node typings [Pagan Gazzard]
114
+ >
115
+ > ## abstract-sql-compiler-8.3.1
116
+ > ### (2023-04-12)
117
+ >
118
+ > * Add more node typings [Pagan Gazzard]
119
+ >
120
+ > ## abstract-sql-compiler-8.3.0
121
+ > ### (2023-04-11)
122
+ >
123
+ > * Support boolean nodes in a ValuesNode [Pagan Gazzard]
124
+ >
125
+ > ## abstract-sql-compiler-8.2.0
126
+ > ### (2023-04-11)
127
+ >
128
+ > * Add `Between` node type [Pagan Gazzard]
129
+ >
130
+ > ## abstract-sql-compiler-8.1.0
131
+ > ### (2023-04-11)
132
+ >
133
+ > * Add `BitwiseAnd`/`BitwiseShiftRight` node types [Pagan Gazzard]
134
+ >
135
+ > ## abstract-sql-compiler-8.0.2
136
+ > ### (2023-04-06)
137
+ >
138
+ > * Add `NotInNode` type [Pagan Gazzard]
139
+ > * Add `IsDistinctFromNode`/`IsNotDistinctFromNode` types [Pagan Gazzard]
140
+ > * Add `CharacterLengthNode` type [Pagan Gazzard]
141
+ >
142
+ > ## abstract-sql-compiler-8.0.1
143
+ > ### (2023-04-06)
144
+ >
145
+ > * Adds Cast node type to tree parsing [Otávio Jacobi]
146
+ >
147
+ > ## abstract-sql-to-typescript-1.5.0
148
+ > ### (2023-03-01)
149
+ >
150
+ > * Adds native SQL Date type [Otávio Jacobi]
151
+ >
152
+ > ## abstract-sql-to-typescript-1.4.2
153
+ > ### (2023-02-15)
154
+ >
155
+ > * Update typings to the minimal subset of the abstract sql model we need [Pagan Gazzard]
156
+ >
157
+ > ## abstract-sql-to-typescript-1.4.1
158
+ > ### (2023-02-14)
159
+ >
160
+ > * Update `abstract-sql-compiler` and `odata-to-abstract-sql` [Carol Schulze]
161
+ >
162
+ > ## abstract-sql-to-typescript-1.4.0
163
+ > ### (2022-12-20)
164
+ >
165
+ > * Generate properties for reverse navigation relations using synonyms [Thodoris Greasidis]
166
+ >
167
+ > ## abstract-sql-to-typescript-1.3.1
168
+ > ### (2022-12-08)
169
+ >
170
+ > * Flowzone: Allow external contributions [Josh Bowling]
171
+ >
172
+ > ## odata-to-abstract-sql-5.9.6
173
+ > ### (2023-04-25)
174
+ >
175
+ > * Collapse `AliasedFunction` into `FunctionMatch` [Pagan Gazzard]
176
+ >
177
+ > ## odata-to-abstract-sql-5.9.5
178
+ > ### (2023-04-25)
179
+ >
180
+ >
181
+ > <details>
182
+ > <summary> Improve typings [Pagan Gazzard] </summary>
183
+ >
184
+ >> ### abstract-sql-compiler-8.4.1
185
+ >> #### (2023-04-25)
186
+ >>
187
+ >> * Add much finer grained typings for abstract-sql-optimizer [Pagan Gazzard]
188
+ >>
189
+ >
190
+ > </details>
191
+ >
192
+ >
193
+ > ## odata-to-abstract-sql-5.9.4
194
+ > ### (2023-04-24)
195
+ >
196
+ >
197
+ > <details>
198
+ > <summary> Update dependencies [Pagan Gazzard] </summary>
199
+ >
200
+ >> ### abstract-sql-compiler-8.4.0
201
+ >> #### (2023-04-24)
202
+ >>
203
+ >> * Add support for using field type nodes with an AggregateJSON node [Pagan Gazzard]
204
+ >>
205
+ >> ### abstract-sql-compiler-8.3.13
206
+ >> #### (2023-04-24)
207
+ >>
208
+ >> * Deprecate `AliasableFromTypeNodes` type as it's redundant [Pagan Gazzard]
209
+ >>
210
+ >> ### abstract-sql-compiler-8.3.12
211
+ >> #### (2023-04-17)
212
+ >>
213
+ >> * Revert tightening of `OrderBy` to only field nodes [Pagan Gazzard]
214
+ >>
215
+ >> ### abstract-sql-compiler-8.3.11
216
+ >> #### (2023-04-13)
217
+ >>
218
+ >> * Do not allow ON clauses for CROSS JOIN as it is invalid [Pagan Gazzard]
219
+ >> * Stop accepting `ExtractJSONPathAsText`/`ToJSON` as unknown node types [Pagan Gazzard]
220
+ >>
221
+ >> ### abstract-sql-compiler-8.3.10
222
+ >> #### (2023-04-13)
223
+ >>
224
+ >> * Fix DateNode/AnyNode typings [Pagan Gazzard]
225
+ >>
226
+ >> ### abstract-sql-compiler-8.3.9
227
+ >> #### (2023-04-13)
228
+ >>
229
+ >>
230
+ >> <details>
231
+ >> <summary> Update dependencies [Pagan Gazzard] </summary>
232
+ >>
233
+ >>> #### sbvr-types-3.5.0
234
+ >>> ##### (2023-03-21)
235
+ >>>
236
+ >>> * Add Big Serial type [Josh Bowling]
237
+ >>>
238
+ >>> #### sbvr-types-3.4.19
239
+ >>> ##### (2022-12-08)
240
+ >>>
241
+ >>> * Flowzone: Allow external contributions [Josh Bowling]
242
+ >>>
243
+ >>
244
+ >> </details>
245
+ >>
246
+ >>
247
+ >> ### abstract-sql-compiler-8.3.8
248
+ >> #### (2023-04-12)
249
+ >>
250
+ >> * Improve typings [Pagan Gazzard]
251
+ >>
252
+ >> ### abstract-sql-compiler-8.3.7
253
+ >> #### (2023-04-12)
254
+ >>
255
+ >> * Remove typing for non-existent JSON node [Pagan Gazzard]
256
+ >>
257
+ >> ### abstract-sql-compiler-8.3.6
258
+ >> #### (2023-04-12)
259
+ >>
260
+ >> * Tighten the `isXValue` function typings [Pagan Gazzard]
261
+ >>
262
+ >> ### abstract-sql-compiler-8.3.5
263
+ >> #### (2023-04-12)
264
+ >>
265
+ >> * Correctly treat `Value` nodes as rewritten to `Text` by the optimizer [Pagan Gazzard]
266
+ >> * Add EmbeddedTextNode typing [Pagan Gazzard]
267
+ >>
268
+ >> ### abstract-sql-compiler-8.3.4
269
+ >> #### (2023-04-12)
270
+ >>
271
+ >> * Enforce the first argument of ExtractJSONPathAsText is a JSON type node [Pagan Gazzard]
272
+ >>
273
+ >> ### abstract-sql-compiler-8.3.3
274
+ >> #### (2023-04-12)
275
+ >>
276
+ >> * Improve node typings [Pagan Gazzard]
277
+ >>
278
+ >> ### abstract-sql-compiler-8.3.2
279
+ >> #### (2023-04-12)
280
+ >>
281
+ >> * Add more node typings [Pagan Gazzard]
282
+ >>
283
+ >> ### abstract-sql-compiler-8.3.1
284
+ >> #### (2023-04-12)
285
+ >>
286
+ >> * Add more node typings [Pagan Gazzard]
287
+ >>
288
+ >> ### abstract-sql-compiler-8.3.0
289
+ >> #### (2023-04-11)
290
+ >>
291
+ >> * Support boolean nodes in a ValuesNode [Pagan Gazzard]
292
+ >>
293
+ >> ### abstract-sql-compiler-8.2.0
294
+ >> #### (2023-04-11)
295
+ >>
296
+ >> * Add `Between` node type [Pagan Gazzard]
297
+ >>
298
+ >> ### abstract-sql-compiler-8.1.0
299
+ >> #### (2023-04-11)
300
+ >>
301
+ >> * Add `BitwiseAnd`/`BitwiseShiftRight` node types [Pagan Gazzard]
302
+ >>
303
+ >> ### abstract-sql-compiler-8.0.2
304
+ >> #### (2023-04-06)
305
+ >>
306
+ >> * Add `NotInNode` type [Pagan Gazzard]
307
+ >> * Add `IsDistinctFromNode`/`IsNotDistinctFromNode` types [Pagan Gazzard]
308
+ >> * Add `CharacterLengthNode` type [Pagan Gazzard]
309
+ >>
310
+ >> ### abstract-sql-compiler-8.0.1
311
+ >> #### (2023-04-06)
312
+ >>
313
+ >> * Adds Cast node type to tree parsing [Otávio Jacobi]
314
+ >>
315
+ >> ### odata-parser-2.4.6
316
+ >> #### (2023-02-24)
317
+ >>
318
+ >> * Improve typings [Pagan Gazzard]
319
+ >>
320
+ >> ### odata-parser-2.4.5
321
+ >> #### (2023-02-23)
322
+ >>
323
+ >> * Use const/let as appropriate [Pagan Gazzard]
324
+ >>
325
+ >> ### odata-parser-2.4.4
326
+ >> #### (2023-02-23)
327
+ >>
328
+ >> * Use shorthand object notation [Pagan Gazzard]
329
+ >>
330
+ >> ### odata-parser-2.4.3
331
+ >> #### (2023-02-23)
332
+ >>
333
+ >> * Update dependencies [Pagan Gazzard]
334
+ >>
335
+ >
336
+ > </details>
337
+ >
338
+ >
339
+ > ## odata-to-abstract-sql-5.9.3
340
+ > ### (2023-03-08)
341
+ >
342
+ > * Fixes ODataBindings imported types [Otávio Jacobi]
343
+ >
344
+ > ## sbvr-types-3.5.0
345
+ > ### (2023-03-21)
346
+ >
347
+ > * Add Big Serial type [Josh Bowling]
348
+ >
349
+ > ## sbvr-types-3.4.19
350
+ > ### (2022-12-08)
351
+ >
352
+ > * Flowzone: Allow external contributions [Josh Bowling]
353
+ >
354
+
355
+ </details>
356
+
357
+ # v14.62.9
358
+ ## (2023-04-21)
359
+
360
+ * Narrow the registered express HTTP methods [fisehara]
361
+
362
+ # v14.62.8
363
+ ## (2023-04-19)
364
+
365
+ * Add test cases for native translations [Harald Fischer]
366
+
367
+ # v14.62.7
368
+ ## (2023-04-18)
369
+
370
+ * Update select sql typing [Josh Bowling]
371
+
372
+ # v14.62.6
373
+ ## (2023-04-11)
374
+
375
+ * Guard against translations aliasing to a field that does not exist [Pagan Gazzard]
376
+
377
+ # v14.62.5
378
+ ## (2023-03-23)
379
+
380
+ * Fix resourceName to resourceName native translation [fisehara]
381
+
382
+ # v14.62.4
383
+ ## (2023-02-28)
384
+
385
+ * Rollback async migration tx on failed async mgmt tx [fisehara]
386
+
387
+ # v14.62.3
388
+ ## (2023-02-27)
389
+
390
+ * Fix `isAsyncMigration` to accept mixed fn and sql async migrations [Pagan Gazzard]
391
+
392
+ # v14.62.2
393
+ ## (2023-02-27)
394
+
395
+ * Fix async migrator typings when mixing migrator fns and sql [Pagan Gazzard]
396
+
397
+ # v14.62.1
398
+ ## (2023-02-24)
399
+
400
+
401
+ <details>
402
+ <summary> Update @balena/odata-parser to 2.4.6 [Pagan Gazzard] </summary>
403
+
404
+ > ## odata-parser-2.4.6
405
+ > ### (2023-02-24)
406
+ >
407
+ > * Improve typings [Pagan Gazzard]
408
+ >
409
+ > ## odata-parser-2.4.5
410
+ > ### (2023-02-23)
411
+ >
412
+ > * Use const/let as appropriate [Pagan Gazzard]
413
+ >
414
+ > ## odata-parser-2.4.4
415
+ > ### (2023-02-23)
416
+ >
417
+ > * Use shorthand object notation [Pagan Gazzard]
418
+ >
419
+ > ## odata-parser-2.4.3
420
+ > ### (2023-02-23)
421
+ >
422
+ > * Update dependencies [Pagan Gazzard]
423
+ >
424
+
425
+ </details>
426
+
427
+ # v14.62.0
428
+ ## (2023-02-20)
429
+
430
+ * Use `affectedIds` to narrow the number of rows checked by rules [Carol Schulze]
431
+
432
+ # v14.61.5
433
+ ## (2023-02-20)
434
+
435
+ * Fixes setting only finalized async migration as executed [Harald Fischer]
436
+
437
+ # v14.61.4
438
+ ## (2023-02-20)
439
+
440
+ * Fixes implicit any type [Harald Fischer]
441
+
442
+ # v14.61.3
443
+ ## (2023-02-15)
444
+
445
+ * Tests: use transpile-only for faster tests [Pagan Gazzard]
446
+ * Tests: type-check tests as part of tsconfig.dev.json and fix typing error [Pagan Gazzard]
447
+
448
+ # v14.61.2
449
+ ## (2023-02-15)
450
+
451
+ * Fix read-only hook args when there is a read-only or no transaction [Pagan Gazzard]
452
+
453
+ # v14.61.1
454
+ ## (2023-02-15)
455
+
456
+
457
+ <details>
458
+ <summary> Update dependencies [Pagan Gazzard] </summary>
459
+
460
+ > ## abstract-sql-compiler-7.26.0
461
+ > ### (2023-02-07)
462
+ >
463
+ > * Optimize schema during compilation [Carol Schulze]
464
+ >
465
+ > ## abstract-sql-to-typescript-1.4.2
466
+ > ### (2023-02-15)
467
+ >
468
+ > * Update typings to the minimal subset of the abstract sql model we need [Pagan Gazzard]
469
+ >
470
+ > ## abstract-sql-to-typescript-1.4.1
471
+ > ### (2023-02-14)
472
+ >
473
+ > * Update `abstract-sql-compiler` and `odata-to-abstract-sql` [Carol Schulze]
474
+ >
475
+ > ## abstract-sql-to-typescript-1.4.0
476
+ > ### (2022-12-20)
477
+ >
478
+ > * Generate properties for reverse navigation relations using synonyms [Thodoris Greasidis]
479
+ >
480
+ > ## abstract-sql-to-typescript-1.3.1
481
+ > ### (2022-12-08)
482
+ >
483
+ > * Flowzone: Allow external contributions [Josh Bowling]
484
+ >
485
+ > ## odata-to-abstract-sql-5.9.2
486
+ > ### (2023-02-15)
487
+ >
488
+ > * Update typings to the minimal subset of the abstract sql model we need [Pagan Gazzard]
489
+ >
490
+ > ## odata-to-abstract-sql-5.9.1
491
+ > ### (2023-02-13)
492
+ >
493
+ >
494
+ > <details>
495
+ > <summary> Update dependency @balena/lf-to-abstract-sql to 5.0.0 [Renovate Bot] </summary>
496
+ >
497
+ >> ### lf-to-abstract-sql-5.0.0
498
+ >> #### (2023-02-10)
499
+ >>
500
+ >> * Expand `lfInfo` to also include the root table name [Carol Schulze]
501
+ >>
502
+ >
503
+ > </details>
504
+ >
505
+ >
506
+ > ## odata-to-abstract-sql-5.9.0
507
+ > ### (2023-02-13)
508
+ >
509
+ >
510
+ > <details>
511
+ > <summary> Update dependency @balena/abstract-sql-compiler to 8.0.0 [Renovate Bot] </summary>
512
+ >
513
+ >> ### abstract-sql-compiler-8.0.0
514
+ >> #### (2023-02-13)
515
+ >>
516
+ >> * Add binds for affected IDs in compiled rules [Carol Schulze]
517
+ >>
518
+ >
519
+ > </details>
520
+ >
521
+ >
522
+ > ## odata-to-abstract-sql-5.8.1
523
+ > ### (2023-02-13)
524
+ >
525
+ > * Cache the `ResourceMapping` result to avoid unnecessary work [Pagan Gazzard]
526
+ >
527
+
528
+ </details>
529
+
530
+ # v14.61.0
531
+ ## (2023-02-03)
532
+
533
+ * Add support for models that are translated to other (newer) models [Pagan Gazzard]
534
+
535
+ # v14.60.1
536
+ ## (2023-01-31)
537
+
538
+ * chore(deps): update dependency grunt to 1.6.1 [Renovate Bot]
539
+
540
+ # v14.60.0
541
+ ## (2023-01-30)
542
+
543
+ * Revert "chore(deps): update node.js to v19" [fisehara]
23
544
 
24
545
  # v14.59.1
25
546
  ## (2023-01-26)
package/Dockerfile CHANGED
@@ -1,4 +1,4 @@
1
- FROM node:19-alpine as runner
1
+ FROM node:16-alpine as runner
2
2
 
3
3
  WORKDIR /usr/src/pine
4
4
 
@@ -5,17 +5,20 @@ const commander_1 = require("commander");
5
5
  const generateAbstractSqlQuery = (modelFile, odata) => {
6
6
  const { memoizedParseOdata, translateUri } = require('../sbvr-api/uri-parser');
7
7
  const odataAST = memoizedParseOdata(odata);
8
+ const vocabulary = '';
8
9
  return translateUri({
9
10
  engine: commander_1.program.opts().engine,
10
11
  method: 'GET',
11
12
  url: odata,
12
13
  resourceName: odataAST.tree.resource,
14
+ originalResourceName: odataAST.tree.resource,
13
15
  odataQuery: odataAST.tree,
14
16
  odataBinds: odataAST.binds,
15
17
  values: {},
16
- vocabulary: '',
18
+ vocabulary,
17
19
  abstractSqlModel: (0, utils_1.getAbstractSqlModelFromFile)(modelFile),
18
20
  custom: {},
21
+ translateVersions: [vocabulary],
19
22
  });
20
23
  };
21
24
  const parseOData = (odata, outputFile) => {
@@ -1 +1 @@
1
- {"version":3,"file":"odata-compiler.js","sourceRoot":"","sources":["../../src/bin/odata-compiler.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"odata-compiler.js","sourceRoot":"","sources":["../../src/bin/odata-compiler.ts"],"names":[],"mappings":"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"}
@@ -1,9 +1,10 @@
1
1
  import type * as Express from 'express';
2
- import type { AbstractSqlModel } from '@balena/abstract-sql-compiler';
2
+ import type { AbstractSqlModel, Definition } from '@balena/abstract-sql-compiler';
3
3
  import type { Database } from '../database-layer/db';
4
- import type { Resolvable } from '../sbvr-api/common-types';
4
+ import type { Dictionary, Resolvable } from '../sbvr-api/common-types';
5
5
  import { Migrations } from '../migrator/utils';
6
6
  import * as sbvrUtils from '../sbvr-api/sbvr-utils';
7
+ import { AliasValidNodeType } from '../sbvr-api/translations';
7
8
  export type SetupFunction = (app: Express.Application, sbvrUtilsInstance: typeof sbvrUtils, db: Database) => Resolvable<void>;
8
9
  export interface Model {
9
10
  apiRoot?: string;
@@ -21,6 +22,8 @@ export interface Model {
21
22
  logging?: {
22
23
  [key in keyof Console | 'default']?: boolean;
23
24
  };
25
+ translateTo?: Model['apiRoot'];
26
+ translations?: Dictionary<Definition | Dictionary<string | AliasValidNodeType>>;
24
27
  }
25
28
  export interface User {
26
29
  username: string;
@@ -77,25 +77,48 @@ const setup = (app) => {
77
77
  }
78
78
  }));
79
79
  }
80
- await Promise.all(data.models.map(async (model) => {
81
- if ((model.abstractSql != null || model.modelText != null) &&
82
- model.apiRoot != null) {
83
- try {
84
- await sbvrUtils.executeModel(tx, model);
85
- const apiRoute = `/${model.apiRoot}/*`;
86
- app.options(apiRoute, (_req, res) => res.status(200).end());
87
- app.all(apiRoute, sbvrUtils.handleODataRequest);
88
- console.info('Successfully executed ' + model.modelName + ' model.');
89
- }
90
- catch (err) {
91
- const message = `Failed to execute ${model.modelName} model from ${model.modelFile}`;
92
- if (_.isError(err)) {
93
- err.message = message;
94
- throw err;
80
+ const modelPromises = _(data.models)
81
+ .filter((model) => (model.abstractSql != null || model.modelText != null) &&
82
+ model.apiRoot != null)
83
+ .keyBy((model) => model.apiRoot)
84
+ .mapValues(async (model) => {
85
+ try {
86
+ const { translateTo, translations } = model;
87
+ if (translateTo != null) {
88
+ await null;
89
+ if (modelPromises[translateTo] == null) {
90
+ throw new Error(`Cannot translate to non-existent version '${translateTo}'`);
95
91
  }
96
- throw new Error(message);
92
+ await modelPromises[translateTo];
93
+ }
94
+ else if (translations != null) {
95
+ throw new Error('Cannot have translations without a translateTo target');
97
96
  }
97
+ await sbvrUtils.executeModel(tx, model);
98
+ const apiRoute = `/${model.apiRoot}/*`;
99
+ app
100
+ .route(apiRoute)
101
+ .options((_req, res) => res.status(200).end())
102
+ .get(sbvrUtils.handleODataRequest)
103
+ .put(sbvrUtils.handleODataRequest)
104
+ .post(sbvrUtils.handleODataRequest)
105
+ .patch(sbvrUtils.handleODataRequest)
106
+ .merge(sbvrUtils.handleODataRequest)
107
+ .delete(sbvrUtils.handleODataRequest);
108
+ console.info('Successfully executed ' + model.modelName + ' model.');
98
109
  }
110
+ catch (err) {
111
+ const message = `Failed to execute '${model.modelName}' model from '${model.modelFile}'`;
112
+ if (_.isError(err)) {
113
+ err.message = `${message} due to: ${err.message}`;
114
+ throw err;
115
+ }
116
+ throw new Error(message);
117
+ }
118
+ })
119
+ .value();
120
+ await Promise.all(Object.values(modelPromises));
121
+ await Promise.all(data.models.map(async (model) => {
99
122
  if (model.customServerCode != null) {
100
123
  let customCode;
101
124
  if (typeof model.customServerCode === 'string') {
@@ -196,8 +219,13 @@ const setup = (app) => {
196
219
  case '.coffee':
197
220
  case '.ts':
198
221
  case '.js':
199
- const migration = nodeRequire(filePath);
200
- assignMigrationWithCategory(migrationKey, migration.default ?? migration);
222
+ const loadeMigration = nodeRequire(filePath);
223
+ const migration = loadeMigration.default ?? loadeMigration;
224
+ if (!(0, utils_1.isAsyncMigration)(migration) &&
225
+ !(0, utils_1.isSyncMigration)(migration)) {
226
+ throw new Error(`loaded migraton file at ${filePath} is neither a synchron nor a asyncron migration definition`);
227
+ }
228
+ assignMigrationWithCategory(migrationKey, migration);
201
229
  break;
202
230
  case '.sql':
203
231
  if (migrationCategory === utils_1.MigrationCategories.async) {