@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.
- package/.pinejs-cache.json +1 -1
- package/.versionbot/CHANGELOG.yml +1479 -103
- package/CHANGELOG.md +523 -2
- package/Dockerfile +1 -1
- package/out/bin/odata-compiler.js +4 -1
- package/out/bin/odata-compiler.js.map +1 -1
- package/out/config-loader/config-loader.d.ts +5 -2
- package/out/config-loader/config-loader.js +46 -18
- package/out/config-loader/config-loader.js.map +1 -1
- package/out/database-layer/db.d.ts +1 -0
- package/out/database-layer/db.js +3 -0
- package/out/database-layer/db.js.map +1 -1
- package/out/migrator/async.js +14 -8
- package/out/migrator/async.js.map +1 -1
- package/out/migrator/utils.d.ts +3 -4
- package/out/migrator/utils.js +11 -1
- package/out/migrator/utils.js.map +1 -1
- package/out/passport-pinejs/passport-pinejs.d.ts +1 -1
- package/out/passport-pinejs/passport-pinejs.js +3 -3
- package/out/passport-pinejs/passport-pinejs.js.map +1 -1
- package/out/pinejs-session-store/pinejs-session-store.d.ts +1 -1
- package/out/sbvr-api/abstract-sql.js +2 -1
- package/out/sbvr-api/abstract-sql.js.map +1 -1
- package/out/sbvr-api/hooks.d.ts +3 -3
- package/out/sbvr-api/hooks.js +44 -29
- package/out/sbvr-api/hooks.js.map +1 -1
- package/out/sbvr-api/permissions.js +6 -4
- package/out/sbvr-api/permissions.js.map +1 -1
- package/out/sbvr-api/sbvr-utils.d.ts +11 -5
- package/out/sbvr-api/sbvr-utils.js +151 -61
- package/out/sbvr-api/sbvr-utils.js.map +1 -1
- package/out/sbvr-api/translations.d.ts +6 -0
- package/out/sbvr-api/translations.js +150 -0
- package/out/sbvr-api/translations.js.map +1 -0
- package/out/sbvr-api/uri-parser.d.ts +5 -2
- package/out/sbvr-api/uri-parser.js +2 -0
- package/out/sbvr-api/uri-parser.js.map +1 -1
- package/package.json +19 -17
- package/src/bin/odata-compiler.ts +4 -2
- package/src/config-loader/config-loader.ts +84 -29
- package/src/database-layer/db.ts +3 -0
- package/src/migrator/async.ts +22 -12
- package/src/migrator/utils.ts +16 -5
- package/src/passport-pinejs/passport-pinejs.ts +4 -4
- package/src/sbvr-api/abstract-sql.ts +4 -2
- package/src/sbvr-api/hooks.ts +80 -33
- package/src/sbvr-api/permissions.ts +15 -7
- package/src/sbvr-api/sbvr-utils.ts +258 -84
- package/src/sbvr-api/translations.ts +248 -0
- package/src/sbvr-api/uri-parser.ts +9 -2
- 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-
|
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
|
-
|
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
@@ -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":";;AAAA,mCAAyE;
|
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
|
-
|
81
|
-
|
82
|
-
|
83
|
-
|
84
|
-
|
85
|
-
|
86
|
-
|
87
|
-
|
88
|
-
|
89
|
-
|
90
|
-
|
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
|
-
|
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
|
200
|
-
|
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) {
|