@balena/lf-to-abstract-sql 4.4.0 → 4.5.0

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.
@@ -1,18 +1,43 @@
1
+ - commits:
2
+ - subject: Reference property type for informative references
3
+ hash: 647c05a1111f39fb5f1b03de59a641cf32050bf6
4
+ body: ""
5
+ footer:
6
+ Change-type: minor
7
+ change-type: minor
8
+ Signed-off-by: Harald Fischer <harald@balena.io>
9
+ signed-off-by: Harald Fischer <harald@balena.io>
10
+ author: Harald Fischer
11
+ nested: []
12
+ version: 4.5.0
13
+ title: "'Reference property type'"
14
+ date: 2022-02-16T14:12:59.889Z
15
+ - commits:
16
+ - subject: Respect negated verbs for link tables and foreign keys
17
+ hash: e1a76937586d85db1c054f4d01fbf1f878772273
18
+ body: ""
19
+ footer:
20
+ Change-type: patch
21
+ change-type: patch
22
+ author: Pagan Gazzard
23
+ nested: []
24
+ version: 4.4.1
25
+ date: 2021-12-16T17:05:43.999Z
1
26
  - commits:
2
27
  - subject: Support the join optimization for `AND` clauses
3
28
  hash: 968b6755664f48d5d84b8af63597986adbfbbc36
4
- body: ''
29
+ body: ""
5
30
  footer:
6
31
  Change-type: minor
7
32
  change-type: minor
8
33
  author: Pagan Gazzard
9
34
  nested: []
10
35
  version: 4.4.0
11
- date: 2021-12-06T16:58:41.542Z
36
+ date: 2021-12-06T16:54:33.974Z
12
37
  - commits:
13
38
  - subject: Add an automatic `is of` reverse relationship for concept types
14
39
  hash: f84a80730b68b34203bfec29f97e5dac6b464857
15
- body: ''
40
+ body: ""
16
41
  footer:
17
42
  Change-type: minor
18
43
  change-type: minor
@@ -23,14 +48,12 @@
23
48
  - commits:
24
49
  - subject: Delete CODEOWNERS
25
50
  hash: cb88bffb06f6b1cc21a2df9ef22cfb4886fb0696
26
- body: ''
51
+ body: ""
27
52
  footer:
28
53
  Change-type: patch
29
54
  change-type: patch
30
- See: >-
31
- https://www.flowdock.com/app/rulemotion/pub/threads/trLcZFnSX9fLZn4LiaIv4xuBbah
32
- see: >-
33
- https://www.flowdock.com/app/rulemotion/pub/threads/trLcZFnSX9fLZn4LiaIv4xuBbah
55
+ See: https://www.flowdock.com/app/rulemotion/pub/threads/trLcZFnSX9fLZn4LiaIv4xuBbah
56
+ see: https://www.flowdock.com/app/rulemotion/pub/threads/trLcZFnSX9fLZn4LiaIv4xuBbah
34
57
  author: Thodoris Greasidis
35
58
  nested: []
36
59
  version: 4.2.2
@@ -38,7 +61,7 @@
38
61
  - commits:
39
62
  - subject: Correctly use the native name result in the generated abstract sql
40
63
  hash: 94ec88b994d5e924da272cf473ac59f5e9916bc6
41
- body: ''
64
+ body: ""
42
65
  footer:
43
66
  Change-type: patch
44
67
  change-type: patch
@@ -59,7 +82,7 @@
59
82
  - commits:
60
83
  - subject: Add support for a `Name` role binding in the lf validator
61
84
  hash: 5d84fe2abf2b6a34fa35e9d985443eb71f87a1d9
62
- body: ''
85
+ body: ""
63
86
  footer:
64
87
  Change-type: minor
65
88
  change-type: minor
@@ -82,7 +105,7 @@
82
105
  - commits:
83
106
  - subject: Update dependencies
84
107
  hash: 5739ec4e6a5da71bfcfe1cb6a9b5c3e13dc1f56e
85
- body: ''
108
+ body: ""
86
109
  footer:
87
110
  Change-type: patch
88
111
  change-type: patch
@@ -92,7 +115,7 @@
92
115
  - commits:
93
116
  - subject: Add support for negative numbers for embedded data
94
117
  hash: a5d4f168e66ee209b673f7b20bfc4eb7e2ad657a
95
- body: ''
118
+ body: ""
96
119
  footer:
97
120
  Change-type: minor
98
121
  change-type: minor
@@ -106,8 +129,7 @@
106
129
  This allows specifying the correct type to cast to when
107
130
  necessary
108
131
 
109
- rather than relying on the fact the currently all type functions
110
- happen
132
+ rather than relying on the fact the currently all type functions happen
111
133
 
112
134
  to be integers
113
135
  footer:
@@ -119,7 +141,7 @@
119
141
  - commits:
120
142
  - subject: Update dependencies
121
143
  hash: 394b8c4d10ef16da163e05734ffb65a84717e204
122
- body: ''
144
+ body: ""
123
145
  footer:
124
146
  Change-type: patch
125
147
  change-type: patch
@@ -129,7 +151,7 @@
129
151
  - commits:
130
152
  - subject: Update dependencies
131
153
  hash: 33be8837bde82d29f182506f4b93e33157bea185
132
- body: ''
154
+ body: ""
133
155
  footer:
134
156
  Change-type: minor
135
157
  change-type: minor
@@ -141,7 +163,7 @@
141
163
  - commits:
142
164
  - subject: Omit AbstractSqlField props when null to match the expected types
143
165
  hash: e3875ffb74fb362a2e9535e82d35fdaa26eb4b68
144
- body: ''
166
+ body: ""
145
167
  footer:
146
168
  Change-type: minor
147
169
  change-type: minor
@@ -149,7 +171,7 @@
149
171
  nested: []
150
172
  - subject: Convert tests from coffeescript to javascript
151
173
  hash: b3fd9a0b212ae9684f98c6977f82d354f5352bcb
152
- body: ''
174
+ body: ""
153
175
  footer:
154
176
  Change-type: patch
155
177
  change-type: patch
@@ -160,35 +182,35 @@
160
182
  - commits:
161
183
  - subject: Include linting as part of the tests
162
184
  hash: 3c898aff5a6495b58ab963f6d979646dc43ca134
163
- body: ''
185
+ body: ""
164
186
  footer:
165
187
  Change-type: patch
166
188
  change-type: patch
167
189
  author: Pagan Gazzard
168
190
  - subject: Convert from UMD module to commonjs module
169
191
  hash: 998c4ca6be517cf401883f725c8937f3a55c87fa
170
- body: ''
192
+ body: ""
171
193
  footer:
172
194
  Change-type: major
173
195
  change-type: major
174
196
  author: Pagan Gazzard
175
197
  - subject: Rename to @balena/lf-to-abstract-sql
176
198
  hash: 29aef57618f13597d99f839b4e63f9dab465c303
177
- body: ''
199
+ body: ""
178
200
  footer:
179
201
  Change-type: major
180
202
  change-type: major
181
203
  author: Pagan Gazzard
182
204
  - subject: Drop support for node 8
183
205
  hash: f3fa70101981f2d9a751a5bd0052dadbdc897604
184
- body: ''
206
+ body: ""
185
207
  footer:
186
208
  Change-type: major
187
209
  change-type: major
188
210
  author: Pagan Gazzard
189
211
  - subject: Move @balena/sbvr-parser to production dependencies
190
212
  hash: cf4653791f11a556196af95434d80fdf1187e17d
191
- body: ''
213
+ body: ""
192
214
  footer:
193
215
  Change-type: patch
194
216
  change-type: patch
@@ -208,7 +230,7 @@
208
230
  - commits:
209
231
  - subject: Update to mocha 7.x
210
232
  hash: f9b2009c28f50a0635738a2c49d1be17491a05b3
211
- body: ''
233
+ body: ""
212
234
  footer:
213
235
  Change-type: patch
214
236
  change-type: patch
@@ -218,21 +240,21 @@
218
240
  - commits:
219
241
  - subject: Convert coffeescript tests to javascript
220
242
  hash: 4e4a14476fb29242dbcd278cf079738900fdb0c8
221
- body: ''
243
+ body: ""
222
244
  footer:
223
245
  Change-type: patch
224
246
  change-type: patch
225
247
  author: Pagan Gazzard
226
248
  - subject: Drop support for node 6/8
227
249
  hash: fc61a212d5918a552ef6bbf8698413d096953429
228
- body: ''
250
+ body: ""
229
251
  footer:
230
252
  Change-type: major
231
253
  change-type: major
232
254
  author: Pagan Gazzard
233
255
  - subject: Rename to @balena/sbvr-parser
234
256
  hash: f7c3e6b15c907a25661f02ab54046f9f7faa64b5
235
- body: ''
257
+ body: ""
236
258
  footer:
237
259
  Change-type: major
238
260
  change-type: major
@@ -240,16 +262,16 @@
240
262
  version: sbvr-parser-1.0.0
241
263
  date: 2020-05-08T18:44:57.766Z
242
264
  - commits:
243
- - subject: 'CI: Add nodejs 14 to the test matrix'
265
+ - subject: "CI: Add nodejs 14 to the test matrix"
244
266
  hash: b532a53263ba8c853851ba524d62d2c2862e976f
245
- body: ''
267
+ body: ""
246
268
  footer:
247
269
  Change-type: patch
248
270
  change-type: patch
249
271
  author: Pagan Gazzard
250
- - subject: 'CI: Remove circleci publishing in favor of balenaCI'
272
+ - subject: "CI: Remove circleci publishing in favor of balenaCI"
251
273
  hash: 899c978e14b686681a40ff46ce992b432974d257
252
- body: ''
274
+ body: ""
253
275
  footer:
254
276
  Change-type: patch
255
277
  change-type: patch
@@ -259,7 +281,7 @@
259
281
  - commits:
260
282
  - subject: Update to to @balena/sbvr-types
261
283
  hash: 5092a2ed3c12c286661ec75dc7901adc5e5debba
262
- body: ''
284
+ body: ""
263
285
  footer:
264
286
  Change-type: patch
265
287
  change-type: patch
@@ -269,7 +291,7 @@
269
291
  - commits:
270
292
  - subject: Update to @balena/lint 5.x
271
293
  hash: 7df67c7d823941cb513227b18a06af273fb71e64
272
- body: ''
294
+ body: ""
273
295
  footer:
274
296
  Change-type: patch
275
297
  change-type: patch
@@ -279,7 +301,7 @@
279
301
  - commits:
280
302
  - subject: Reduce lodash usage
281
303
  hash: 275276c0c0a49a2ce638666c404d4a23495a01ff
282
- body: ''
304
+ body: ""
283
305
  footer:
284
306
  Change-type: patch
285
307
  change-type: patch
@@ -289,9 +311,9 @@
289
311
  version: 3.2.6
290
312
  date: 2020-05-11T14:25:47.833Z
291
313
  - commits:
292
- - subject: 'CI: Add nodejs 14 to the test matrix'
314
+ - subject: "CI: Add nodejs 14 to the test matrix"
293
315
  hash: ed093ef0606bfac0c5af3dbfdd718f2d8fed8a08
294
- body: ''
316
+ body: ""
295
317
  footer:
296
318
  Change-type: patch
297
319
  change-type: patch
@@ -311,65 +333,63 @@
311
333
  - commits:
312
334
  - subject: Convert `fetchProcessing` to synchronous functions
313
335
  hash: a7cb7833d852dfec2b5bd02c3aad785266cd1c5c
314
- body: ''
336
+ body: ""
315
337
  footer:
316
338
  Change-type: major
317
339
  change-type: major
318
340
  author: Pagan Gazzard
319
341
  - subject: Update to bcrypt 4.x
320
342
  hash: aadd9f09db11f39a706118bf0d605b9476f6bfb5
321
- body: ''
343
+ body: ""
322
344
  footer:
323
345
  Change-type: major
324
346
  change-type: major
325
347
  author: Pagan Gazzard
326
348
  - subject: Enable strict tsconfig
327
349
  hash: 5690af1c28d8f42677f1f12960a8a6f346aea2fe
328
- body: ''
350
+ body: ""
329
351
  footer:
330
352
  Change-type: patch
331
353
  change-type: patch
332
354
  author: Pagan Gazzard
333
355
  - subject: Make use of `import type` where relevant
334
356
  hash: d19c7b52ecf7d1269812852faae5797a77f06290
335
- body: ''
357
+ body: ""
336
358
  footer:
337
359
  Change-type: patch
338
360
  change-type: patch
339
361
  author: Pagan Gazzard
340
362
  - subject: Update to balena-lint 5.x
341
363
  hash: 5d402bcbaa1ab496013f83de61d15ae87df22af6
342
- body: ''
364
+ body: ""
343
365
  footer:
344
366
  Change-type: patch
345
367
  change-type: patch
346
368
  author: Pagan Gazzard
347
369
  - subject: Rename to @balena/sbvr-types
348
370
  hash: 3748302289afab7ae713995b56c694b477c29228
349
- body: ''
371
+ body: ""
350
372
  footer:
351
373
  Change-type: major
352
374
  change-type: major
353
375
  author: Pagan Gazzard
354
376
  - subject: Drop node 8 support
355
377
  hash: 00ef44e2cea050c977150faaf9b5db8fb74d0116
356
- body: ''
378
+ body: ""
357
379
  footer:
358
380
  Change-type: major
359
381
  change-type: major
360
382
  author: Pagan Gazzard
361
383
  - subject: Update tsconfig target to es2018
362
384
  hash: 6119c1595882069982d6021d3444513ddfa04aa4
363
- body: ''
385
+ body: ""
364
386
  footer:
365
387
  Change-type: major
366
388
  change-type: major
367
389
  author: Pagan Gazzard
368
- - subject: >-
369
- Convert all returned promises to native promises instead of
370
- bluebird
390
+ - subject: Convert all returned promises to native promises instead of bluebird
371
391
  hash: 1ae01b42d101d9764658a8553560477f0e7d7a86
372
- body: ''
392
+ body: ""
373
393
  footer:
374
394
  Change-type: major
375
395
  change-type: major
@@ -379,7 +399,7 @@
379
399
  - commits:
380
400
  - subject: Switch to balena-lint
381
401
  hash: ab0228a798c1babb11891a469f8385b50c5426ef
382
- body: ''
402
+ body: ""
383
403
  footer:
384
404
  Change-type: patch
385
405
  change-type: patch
@@ -389,7 +409,7 @@
389
409
  - commits:
390
410
  - subject: Improve typings
391
411
  hash: 82dfb240b97128267d26d44b12ed4ac2ddcfc8b7
392
- body: ''
412
+ body: ""
393
413
  footer:
394
414
  Change-type: patch
395
415
  change-type: patch
@@ -399,7 +419,7 @@
399
419
  - commits:
400
420
  - subject: Remove unused imports
401
421
  hash: f4f8d1a55903e352db46efaace69d3b91da9016b
402
- body: ''
422
+ body: ""
403
423
  footer:
404
424
  Change-type: patch
405
425
  change-type: patch
@@ -409,7 +429,7 @@
409
429
  - commits:
410
430
  - subject: Remove production lodash dependency
411
431
  hash: b819dc89d6cc55957b6c870c0fa44411d1d37bd0
412
- body: ''
432
+ body: ""
413
433
  footer:
414
434
  Change-type: patch
415
435
  change-type: patch
@@ -421,63 +441,63 @@
421
441
  - commits:
422
442
  - subject: Switch to native some
423
443
  hash: 9db59aa4e6d5bd2447671cdf048dcac41ce3229a
424
- body: ''
444
+ body: ""
425
445
  footer:
426
446
  Change-type: patch
427
447
  change-type: patch
428
448
  author: Pagan Gazzard
429
449
  - subject: Switch to native findIndex
430
450
  hash: 41edb97a980d1e206a15d57d4f07a5707b767201
431
- body: ''
451
+ body: ""
432
452
  footer:
433
453
  Change-type: patch
434
454
  change-type: patch
435
455
  author: Pagan Gazzard
436
456
  - subject: Switch to native every
437
457
  hash: 22e9532c671d8b5db90f6907bef9adba9159d2fe
438
- body: ''
458
+ body: ""
439
459
  footer:
440
460
  Change-type: patch
441
461
  change-type: patch
442
462
  author: Pagan Gazzard
443
463
  - subject: Switch to native find
444
464
  hash: baf6ef67ddc40096d55999df05cfe0781616b4e3
445
- body: ''
465
+ body: ""
446
466
  footer:
447
467
  Change-type: patch
448
468
  change-type: patch
449
469
  author: Pagan Gazzard
450
470
  - subject: Switch to native forEach where possible
451
471
  hash: e417e3b6decaad51c6a24053ba3a734b43cd7de4
452
- body: ''
472
+ body: ""
453
473
  footer:
454
474
  Change-type: patch
455
475
  change-type: patch
456
476
  author: Pagan Gazzard
457
477
  - subject: Switch to native includes
458
478
  hash: 5768d76d2ebc2a457c890a181a39aa8879552dee
459
- body: ''
479
+ body: ""
460
480
  footer:
461
481
  Change-type: patch
462
482
  change-type: patch
463
483
  author: Pagan Gazzard
464
484
  - subject: Switch to native array type checking
465
485
  hash: 3f3ecfbc69ab6b1f9606d8183354cea3111111bf
466
- body: ''
486
+ body: ""
467
487
  footer:
468
488
  Change-type: patch
469
489
  change-type: patch
470
490
  author: Pagan Gazzard
471
491
  - subject: Switch to native string type checking
472
492
  hash: 93b0ee63ecc4740a2de9c5b01a703ddca94533fb
473
- body: ''
493
+ body: ""
474
494
  footer:
475
495
  Change-type: patch
476
496
  change-type: patch
477
497
  author: Pagan Gazzard
478
498
  - subject: Switch to native Object.assign
479
499
  hash: bf1f7a2564bbd8fb01b0b298b872d79e676f7a18
480
- body: ''
500
+ body: ""
481
501
  footer:
482
502
  Change-type: patch
483
503
  change-type: patch
@@ -487,7 +507,7 @@
487
507
  - commits:
488
508
  - subject: Always treat numbered terms as if they're used
489
509
  hash: 78cf69b82166d736865e73f5b01bc403da468569
490
- body: ''
510
+ body: ""
491
511
  footer:
492
512
  Change-type: patch
493
513
  change-type: patch
@@ -506,30 +526,30 @@
506
526
  author: Pagan Gazzard
507
527
  nested:
508
528
  - commits:
509
- - subject: 'CI: Remove circleci deploy in favor of balenaCI'
529
+ - subject: "CI: Remove circleci deploy in favor of balenaCI"
510
530
  hash: 9e1137a305c6ded5c11209d292dab1c5cbabd0ee
511
- body: ''
531
+ body: ""
512
532
  footer:
513
533
  Change-type: patch
514
534
  change-type: patch
515
535
  author: Pagan Gazzard
516
- - subject: 'CI: Add node 12 to the test matrix'
536
+ - subject: "CI: Add node 12 to the test matrix"
517
537
  hash: ccad733c04197834893804a6f8ccb8c76a1bf562
518
- body: ''
538
+ body: ""
519
539
  footer:
520
540
  Change-type: patch
521
541
  change-type: patch
522
542
  author: Pagan Gazzard
523
- - subject: 'CI: Remove node 6 from the test matrix'
543
+ - subject: "CI: Remove node 6 from the test matrix"
524
544
  hash: 5dd121cd02ffd37962ecefbfe0c1f9ab76168285
525
- body: ''
545
+ body: ""
526
546
  footer:
527
547
  Change-type: patch
528
548
  change-type: patch
529
549
  author: Pagan Gazzard
530
550
  - subject: Update dependencies and use resin-lint for automatic lint fixes
531
551
  hash: caab18277ab22f8d60c6feca21d731b69239f963
532
- body: ''
552
+ body: ""
533
553
  footer:
534
554
  Change-type: patch
535
555
  change-type: patch
@@ -539,21 +559,21 @@
539
559
  - commits:
540
560
  - subject: Add node 12 to the test matrix
541
561
  hash: ecd938076fa0b473e0149940e71ac909a5f2cdfd
542
- body: ''
562
+ body: ""
543
563
  footer:
544
564
  Change-type: patch
545
565
  change-type: patch
546
566
  author: Pagan Gazzard
547
567
  - subject: Update dependencies
548
568
  hash: 3aacccdbb1962f5cb7eeec8ca5fa62c5f42145e3
549
- body: ''
569
+ body: ""
550
570
  footer:
551
571
  Change-type: patch
552
572
  change-type: patch
553
573
  author: Pagan Gazzard
554
574
  - subject: Add CODEOWNERS
555
575
  hash: d04a524767359dca21b7dfefc07e7e05a5607934
556
- body: ''
576
+ body: ""
557
577
  footer:
558
578
  Change-type: patch
559
579
  change-type: patch
@@ -563,7 +583,7 @@
563
583
  - commits:
564
584
  - subject: Add CODEOWNERS
565
585
  hash: e9931f0bad2fc7b74366fcf1359642714e3d8cbe
566
- body: ''
586
+ body: ""
567
587
  footer:
568
588
  Change-type: patch
569
589
  change-type: patch
@@ -573,7 +593,7 @@
573
593
  - commits:
574
594
  - subject: Add support for using `of` instead of `that is of`
575
595
  hash: 15466b993e738e16bb20d597460f673c438c6c93
576
- body: ''
596
+ body: ""
577
597
  footer:
578
598
  Change-type: patch
579
599
  change-type: patch
@@ -583,7 +603,7 @@
583
603
  - commits:
584
604
  - subject: Add support for `a given` as a universal quantification
585
605
  hash: 2946841869fd9424786ae70c6c2d28948f624179
586
- body: ''
606
+ body: ""
587
607
  footer:
588
608
  Change-type: patch
589
609
  change-type: patch
@@ -591,9 +611,9 @@
591
611
  version: sbvr-parser-0.2.5
592
612
  date: 2019-12-30T17:43:37.528Z
593
613
  - commits:
594
- - subject: 'Allow including terms as part of a verb by using `[]` brackets'
614
+ - subject: Allow including terms as part of a verb by using `[]` brackets
595
615
  hash: 40129b411ba8b2357c03ac2815e0182f806c3531
596
- body: ''
616
+ body: ""
597
617
  footer:
598
618
  Change-type: patch
599
619
  change-type: patch
@@ -615,9 +635,9 @@
615
635
  version: 3.2.0
616
636
  date: 2020-04-13T16:48:53.658Z
617
637
  - commits:
618
- - subject: 'CI: Remove circleci publishing in favor of balenaCI'
638
+ - subject: "CI: Remove circleci publishing in favor of balenaCI"
619
639
  hash: 857edf20512d8876483751083d3738fd792b1a34
620
- body: ''
640
+ body: ""
621
641
  footer:
622
642
  Change-type: patch
623
643
  change-type: patch
@@ -627,7 +647,7 @@
627
647
  - commits:
628
648
  - subject: Add CODEOWNERS
629
649
  hash: 84138a590beefb6a5efeb67e271fe26ec8706d4c
630
- body: ''
650
+ body: ""
631
651
  footer:
632
652
  Change-type: patch
633
653
  change-type: patch
@@ -637,7 +657,7 @@
637
657
  - commits:
638
658
  - subject: Add support for enum definitions on fact types
639
659
  hash: c78811ce696b4408c365dafe091af50f674be5cf
640
- body: ''
660
+ body: ""
641
661
  footer:
642
662
  Change-type: minor
643
663
  change-type: minor
@@ -647,7 +667,7 @@
647
667
  - commits:
648
668
  - subject: Fix `updateModifiedAt` formatting
649
669
  hash: 8791bf7a0fe088472d1ace8a6ebd6b9d721b3759
650
- body: ''
670
+ body: ""
651
671
  footer:
652
672
  Change-type: patch
653
673
  change-type: patch
@@ -657,21 +677,21 @@
657
677
  - commits:
658
678
  - subject: Add node 12 tests
659
679
  hash: 83bc641d081b6cb8ba3cc9c027e0d789dfee4380
660
- body: ''
680
+ body: ""
661
681
  footer:
662
682
  Change-type: patch
663
683
  change-type: patch
664
684
  author: Pagan Gazzard
665
685
  - subject: Add repo.yml for upstream changelogs
666
686
  hash: e877b3cbb7c314cd4a3632b9aed309ba392448d4
667
- body: ''
687
+ body: ""
668
688
  footer:
669
689
  Change-type: patch
670
690
  change-type: patch
671
691
  author: Pagan Gazzard
672
692
  - subject: Add .versionbot/CHANGELOG.yml for downstream changelogs
673
693
  hash: 42abf7389d8bc95c621e2f012ecae9edfca24580
674
- body: ''
694
+ body: ""
675
695
  footer:
676
696
  Change-type: patch
677
697
  change-type: patch
@@ -680,41 +700,41 @@
680
700
  date: 2019-05-08T15:55:22.023Z
681
701
  - commits:
682
702
  - author: Pagan Gazzard
683
- body: ''
703
+ body: ""
684
704
  footers:
685
705
  change-type: major
686
706
  hash: dc10a94a8547b413ced003e87cd4c8272b1b3b59
687
707
  subject: Add automatic modified at fields
688
- date: '2019-03-08T15:40:33Z'
708
+ date: 2019-03-08T15:40:33Z
689
709
  version: 3.0.0
690
710
  - commits:
691
711
  - author: Pagan Gazzard
692
- body: ''
712
+ body: ""
693
713
  footers:
694
714
  change-type: minor
695
715
  hash: 20de60f7f2deaf974897eba428354e638d288d31
696
716
  subject: Switch to generating commonjs format
697
717
  - author: Pagan Gazzard
698
- body: ''
718
+ body: ""
699
719
  footers:
700
720
  change-type: minor
701
721
  hash: 1cda4b293c10f7a715d39019394bb6ed7e679df2
702
722
  subject: Switch to using a prepare script so npm git installs can work
703
723
  - author: Pagan Gazzard
704
- body: ''
724
+ body: ""
705
725
  hash: bd58688933d06e87391ee6b01d3fae688066438e
706
726
  subject: Update dev dependencies
707
- date: '2018-11-03T13:13:33Z'
727
+ date: 2018-11-03T13:13:33Z
708
728
  version: 2.1.0
709
729
  - commits:
710
730
  - author: Pagan Gazzard
711
- body: ''
731
+ body: ""
712
732
  footers:
713
733
  change-type: patch
714
734
  signed-off-by: Pagan Gazzard <page@resin.io>
715
735
  hash: 907c645b227dc21aa9372aef06da73dfd12c1406
716
736
  subject: Update dependencies
717
- date: '2018-10-11T11:55:02Z'
737
+ date: 2018-10-11T11:55:02Z
718
738
  version: 2.0.8
719
739
  - commits:
720
740
  - author: Pagan Gazzard
@@ -724,226 +744,211 @@
724
744
  signed-off-by: Pagan Gazzard <page@resin.io>
725
745
  hash: 170490ab05b92c16995fdd1ff153ead3c374ac4c
726
746
  subject: Keep the index intact when replacing the id field
727
- date: '2018-09-18T12:51:12Z'
747
+ date: 2018-09-18T12:51:12Z
728
748
  version: 2.0.7
729
749
  - commits:
730
750
  - author: Pagan Gazzard
731
- body: ''
751
+ body: ""
732
752
  footers:
733
753
  change-type: patch
734
754
  signed-off-by: Pagan Gazzard <page@resin.io>
735
755
  hash: 34de0f9712b35ca8896738efd42a46d04fdf0f51
736
- subject: 'Resolve synonyms for link tables, fixing term forms on term forms'
737
- date: '2018-09-07T14:32:06Z'
756
+ subject: Resolve synonyms for link tables, fixing term forms on term forms
757
+ date: 2018-09-07T14:32:06Z
738
758
  version: 2.0.6
739
759
  - commits:
740
760
  - author: Tim Perry
741
- body: ''
761
+ body: ""
742
762
  footers:
743
763
  change-type: patch
744
764
  hash: 6abbfb0266b2b3c7a5d1fd32155302cd75874539
745
765
  subject: Ensure the correct FK field name is used in link table rules
746
766
  - author: Tim Perry
747
- body: ''
767
+ body: ""
748
768
  hash: 4ad82a7367d9b4d4eeaa0b88f2db8b357acad42d
749
769
  subject: Fix FK field name generation in tests too
750
770
  - author: Tim Perry
751
- body: ''
771
+ body: ""
752
772
  hash: 11d2f20b5feb2e8dc9cfe8f2b2cce06ec7a2cc4c
753
773
  subject: Fix FK field names to use the correct verb as well
754
774
  - author: Tim Perry
755
- body: ''
775
+ body: ""
756
776
  hash: 4b936ca0e0822da65fe785d56c53eca9d1d74bb5
757
777
  subject: Fix FK field names even if you override the DB table name
758
- date: '2018-06-04T14:35:15Z'
778
+ date: 2018-06-04T14:35:15Z
759
779
  version: 2.0.5
760
780
  - commits:
761
781
  - author: Pagan Gazzard
762
- body: ''
782
+ body: ""
763
783
  footers:
764
784
  change-type: patch
765
785
  hash: c2d2da51b1f5088ebea2396e493cad5d428260d9
766
786
  subject: Update dependencies
767
- date: '2018-05-10T07:51:41Z'
787
+ date: 2018-05-10T07:51:41Z
768
788
  version: 2.0.4
769
789
  - commits:
770
790
  - author: Pagan Gazzard
771
- body: ''
791
+ body: ""
772
792
  footers:
773
793
  change-type: patch
774
794
  hash: d2fc0a93ef7c86653827afb7a7e2e61ff6f46414
775
- subject: 'Require npm 4+ to publish, to avoid issues with publishing'
776
- date: '2018-05-10T06:57:56Z'
795
+ subject: Require npm 4+ to publish, to avoid issues with publishing
796
+ date: 2018-05-10T06:57:56Z
777
797
  version: 2.0.3
778
798
  - commits:
779
799
  - author: Pagan Gazzard
780
- body: >-
781
- This fixes issues where the wrong attribute name would be used when
800
+ body: This fixes issues where the wrong attribute name would be used when
782
801
  generating the abstract sql using those relationships
783
802
  footers:
784
803
  change-type: patch
785
804
  hash: 10d30670ff5c008e169af5909bbdd5ff583f19c4
786
- subject: >-
787
- Make sure the canonical fact types for term forms include the linked
805
+ subject: Make sure the canonical fact types for term forms include the linked
788
806
  verb.
789
- date: '2018-05-07T15:39:44Z'
807
+ date: 2018-05-07T15:39:44Z
790
808
  version: 2.0.2
791
809
  - commits:
792
810
  - author: Pagan Gazzard
793
- body: ''
811
+ body: ""
794
812
  footers:
795
813
  change-type: patch
796
814
  hash: 996e618755fb86fadb9fa0da9f22d0d430aaca9c
797
815
  subject: Move circle.yml to .circleci/config.yml
798
816
  - author: Pagan Gazzard
799
- body: ''
817
+ body: ""
800
818
  footers:
801
819
  change-type: patch
802
820
  hash: 88f1c49ac3d14a3234110e622675e0284a34b58b
803
821
  subject: Add node 10 to the circleci tests
804
- date: '2018-04-30T16:23:56Z'
822
+ date: 2018-04-30T16:23:56Z
805
823
  version: 2.0.1
806
824
  - commits:
807
825
  - author: Pagan Gazzard
808
- body: ''
826
+ body: ""
809
827
  footers:
810
828
  change-type: major
811
829
  hash: a1b1cea2836243b11350d62c76e7687a95d501b7
812
- subject: >-
813
- Switch references to use the `resourceName` which is the lookup key for
830
+ subject: Switch references to use the `resourceName` which is the lookup key for
814
831
  the `tables` entry of the abstract sql model, and will allow for much
815
832
  easier lookups.
816
- date: '2018-04-25T18:42:30Z'
833
+ date: 2018-04-25T18:42:30Z
817
834
  version: 2.0.0
818
835
  - commits:
819
836
  - author: Pagan Gazzard
820
- body: ''
837
+ body: ""
821
838
  footers:
822
839
  change-type: patch
823
840
  hash: 571f4d520450f1d502c3bcf4fce51f1eb053e483
824
841
  subject: Set up circleci auto-publishing
825
- date: '2017-12-11T17:52:29Z'
842
+ date: 2017-12-11T17:52:29Z
826
843
  version: 1.0.4
827
844
  - commits:
828
845
  - author: Pagan Gazzard
829
- body: >-
830
- eg `pilot/pilot__can_fly__plane` will now work alongside
846
+ body: eg `pilot/pilot__can_fly__plane` will now work alongside
831
847
  `pilot/can_fly__plane`
832
848
  footers:
833
849
  change-type: patch
834
850
  hash: 9de3b93b2d59d75429f2e52596933662802b1282
835
- subject: >-
836
- Include the full relationship which includes the first term for all
851
+ subject: Include the full relationship which includes the first term for all
837
852
  foreign keys, rather than just term forms.
838
- date: '2017-10-03T18:50:12Z'
853
+ date: 2017-10-03T18:50:12Z
839
854
  version: 1.0.3
840
855
  - commits:
841
856
  - author: Pagan Gazzard
842
- body: ''
857
+ body: ""
843
858
  footers:
844
859
  change-type: patch
845
860
  hash: 343aeda3ff777c1bb1bf5b13d7be1486a0a2e517
846
861
  subject: Add relationship info for concept types
847
- date: '2017-09-21T13:13:57Z'
862
+ date: 2017-09-21T13:13:57Z
848
863
  version: 1.0.2
849
864
  - commits:
850
865
  - author: Giovanni Garufi
851
- body: ''
866
+ body: ""
852
867
  footers:
853
868
  change-type: patch
854
869
  hash: a0d7f5f8d95180e412d3197b11b580a3d64c52e4
855
870
  subject: Added negation across all factTypes
856
871
  - author: Giovanni Garufi
857
- body: ''
872
+ body: ""
858
873
  footers:
859
874
  change-type: patch
860
875
  hash: 868643ed348c7fab371b5c595a43e39b43d11643
861
876
  subject: Added versionist
862
- date: '2017-09-19T15:52:07Z'
877
+ date: 2017-09-19T15:52:07Z
863
878
  version: 1.0.1
864
879
  - commits:
865
880
  - author: Pagan Gazzard
866
- body: ''
881
+ body: ""
867
882
  hash: 9ed0fdf516c07fb853b0356fab2c510be05e2a8d
868
883
  subject: Remove tables that should not exist from the output.
869
884
  - author: Pagan Gazzard
870
- body: ''
885
+ body: ""
871
886
  hash: e7a72cf38704660cc7286524b919661a2d83c165
872
- subject: >-
873
- Change table names to keep spaces in terms and verbs, but `-` between
887
+ subject: Change table names to keep spaces in terms and verbs, but `-` between
874
888
  them, matching fields, eg 'pilot-can fly-plane'
875
889
  - author: Pagan Gazzard
876
- body: ''
890
+ body: ""
877
891
  hash: 1c4e1b392b33c54cf9d3aefd11b8207ed02ceeb8
878
- subject: >-
879
- Switch to generating field names as "verb-term", except when the verb is
880
- 'has'
892
+ subject: Switch to generating field names as "verb-term", except when the verb
893
+ is 'has'
881
894
  - author: Pagan Gazzard
882
- body: ''
895
+ body: ""
883
896
  hash: 64b5d0c75b9115b01398789636cfc813954cafd4
884
897
  subject: Add `modelName` to the table info.
885
898
  - author: Pagan Gazzard
886
- body: ''
899
+ body: ""
887
900
  hash: a02033b3e480fbe99be282d10027605afde8dcfb
888
- subject: >-
889
- Pass the resource name into CreateTable so it can handle the table
901
+ subject: Pass the resource name into CreateTable so it can handle the table
890
902
  assignment
891
903
  - author: Pagan Gazzard
892
- body: ''
904
+ body: ""
893
905
  hash: eaecd374782f0d9c92974e63aa48e35305ba6824
894
906
  subject: Use a GetReference rule to consolidate foreign key references creation
895
907
  - author: Pagan Gazzard
896
- body: ''
908
+ body: ""
897
909
  hash: cf2ede4a834c83f9abfe324a22cf12e1e776eb03
898
- subject: >-
899
- Add relationship info for attributes, foreign keys, boolean attributes,
910
+ subject: Add relationship info for attributes, foreign keys, boolean attributes,
900
911
  and from link tables (fact types) to its component terms.
901
912
  - author: Pagan Gazzard
902
- body: ''
913
+ body: ""
903
914
  hash: 2b164ecd8513be7571ac4a6f8a5afd92784f52fd
904
915
  subject: Add a list of synonyms to the result
905
916
  - author: Pagan Gazzard
906
- body: ''
917
+ body: ""
907
918
  hash: 2a1267d6952bff60abf8e2700e989fff724430d7
908
- subject: >-
909
- Add ordering to attribute handling so it's possible to rely on
919
+ subject: Add ordering to attribute handling so it's possible to rely on
910
920
  encountering attributes in a specific order
911
921
  - author: Pagan Gazzard
912
- body: ''
922
+ body: ""
913
923
  hash: c6eefad355fa6798c33d0ba0c6e5f34174b0f4bd
914
924
  subject: Add relationship info for synonymous form relationships
915
925
  - author: Pagan Gazzard
916
- body: ''
926
+ body: ""
917
927
  hash: 72f20ff368ebce44fae8c20f31b279e73ce3afe8
918
- subject: >-
919
- Remove 'BooleanAttribute'/'Attribute'/'ForeignKey' placeholder tables
928
+ subject: Remove 'BooleanAttribute'/'Attribute'/'ForeignKey' placeholder tables
920
929
  from the output.
921
930
  - author: Pagan Gazzard
922
- body: ''
931
+ body: ""
923
932
  hash: 561d8c7e0152e32646cb54f176471a9792687676
924
- subject: >-
925
- Add relationship info from the first term of a fact type to the fact
933
+ subject: Add relationship info from the first term of a fact type to the fact
926
934
  type table
927
935
  - author: Pagan Gazzard
928
- body: ''
936
+ body: ""
929
937
  hash: 33fef756c8059b574ecebab793055b9b33a78057
930
- subject: >-
931
- Add relationship info from the first term of a synonymous form to the
938
+ subject: Add relationship info from the first term of a synonymous form to the
932
939
  fact type table
933
940
  - author: Pagan Gazzard
934
- body: ''
941
+ body: ""
935
942
  hash: 233fe9d2f4bed55a428de705e9d6c9b8defbac4d
936
- subject: >-
937
- Add relationship info from the term form of a fact type to it's
943
+ subject: Add relationship info from the term form of a fact type to it's
938
944
  component terms
939
945
  - author: Pagan Gazzard
940
- body: ''
946
+ body: ""
941
947
  hash: 62e600bd778239f60f79c4593f89897a7fdf8f09
942
- subject: >-
943
- Update to sbvr-parser ^0.1.0 so we can rely on the `has`/`is of`
948
+ subject: Update to sbvr-parser ^0.1.0 so we can rely on the `has`/`is of`
944
949
  synonymous forms being in the LF.
945
950
  - author: Pagan Gazzard
946
- body: ''
951
+ body: ""
947
952
  hash: 1ce4a2164c914d1e5216c34bea85ba538274ffdb
948
953
  subject: Make sure synonyms are resolved when adding relationship info
949
954
  - author: Pagan Gazzard
@@ -951,35 +956,32 @@
951
956
  Instead we consistently use the original resource name via synonym
952
957
  resolution.
953
958
 
954
- This also fixes an issue where relationships info for foreign keys of
955
- term form tables was incorrect
959
+ This also fixes an issue where relationships info for foreign keys of term form tables was incorrect
956
960
  hash: 37413bbdc76154cbfa0bf4d4f1a23671b2d63e55
957
- subject: >-
958
- Stop adding a alias for the term form of a fact type to the returned
961
+ subject: Stop adding a alias for the term form of a fact type to the returned
959
962
  tables list
960
963
  - author: Pagan Gazzard
961
- body: ''
964
+ body: ""
962
965
  hash: b5136f12c5f38e4eb820ee68e021bc1bab938075
963
- subject: >-
964
- Switched relationships info to terminate with a $ property, this fixes
966
+ subject: Switched relationships info to terminate with a $ property, this fixes
965
967
  cases where one relationship is a subset of another
966
- date: '2017-03-03T02:10:47Z'
968
+ date: 2017-03-03T02:10:47Z
967
969
  version: 1.0.0
968
970
  - commits:
969
971
  - author: Pagan Gazzard
970
- body: ''
972
+ body: ""
971
973
  hash: dab03975dba3b8305c10f4f59fe2186338ced9bb
972
974
  subject: Switch to only adding concept type joins if they're actually needed.
973
975
  - author: Pagan Gazzard
974
- body: ''
976
+ body: ""
975
977
  hash: 52c160fb1a175445be3749ccb88d2d0418e773f1
976
978
  subject: Add a test for a self-referential fact type and synonymous form.
977
- date: '2017-01-13T01:37:52Z'
979
+ date: 2017-01-13T01:37:52Z
978
980
  version: 0.0.19
979
981
  - commits:
980
982
  - author: Pagan Gazzard
981
- body: ''
983
+ body: ""
982
984
  hash: 4ba58ff5c73f0c72583db383b6955390760d8854
983
985
  subject: Add support for concept type on term form fact types.
984
- date: '2016-07-18T18:11:03Z'
986
+ date: 2016-07-18T18:11:03Z
985
987
  version: 0.0.18
package/CHANGELOG.md CHANGED
@@ -4,6 +4,14 @@ All notable changes to this project will be documented in this file
4
4
  automatically by Versionist. DO NOT EDIT THIS FILE MANUALLY!
5
5
  This project adheres to [Semantic Versioning](http://semver.org/).
6
6
 
7
+ ## 4.5.0 - 2022-02-16
8
+
9
+ * Reference property type for informative references [Harald Fischer]
10
+
11
+ ## 4.4.1 - 2021-12-16
12
+
13
+ * Respect negated verbs for link tables and foreign keys [Pagan Gazzard]
14
+
7
15
  ## 4.4.0 - 2021-12-06
8
16
 
9
17
  * Support the join optimization for `AND` clauses [Pagan Gazzard]
@@ -111,7 +111,7 @@ var OMeta = require("ometa-js/lib/ometajs/core"), SBVRCompilerLibs = require("./
111
111
  return attributes[attributeName] = attributeVals;
112
112
  });
113
113
  });
114
- attrOrder = [ "DatabaseTableName", "DatabaseIDField", "DatabasePrimitive", "TermForm", "ConceptType", "SynonymousForm", "Synonym", "ReferenceScheme", "ForeignKey", "Attribute", "Unique" ];
114
+ attrOrder = [ "DatabaseTableName", "DatabaseIDField", "DatabasePrimitive", "TermForm", "ConceptType", "SynonymousForm", "Synonym", "ReferenceScheme", "ForeignKey", "ReferenceType", "Attribute", "Unique" ];
115
115
  return function() {
116
116
  attrOrder.forEach(function(attributeName) {
117
117
  attributes.hasOwnProperty(attributeName) && $elf._applyWithArgs.apply($elf, [ "Attr" + attributeName, termOrFactType ].concat(attributes[attributeName]));
@@ -274,6 +274,15 @@ var OMeta = require("ometa-js/lib/ometajs/core"), SBVRCompilerLibs = require("./
274
274
  delete this.relationships[linkResourceName];
275
275
  return this.tables[linkResourceName] = "ForeignKey";
276
276
  },
277
+ AttrReferenceType: function(factType) {
278
+ var $elf = this, _fromIdx = this.input.idx, baseTable, fieldID, fkName, referenceType;
279
+ referenceType = this.anything();
280
+ baseTable = this._applyWithArgs("GetTable", factType[0][1]);
281
+ fkName = this._applyWithArgs("FactTypeFieldName", factType);
282
+ fieldID = this._applyWithArgs("GetTableFieldID", baseTable, fkName);
283
+ this._pred(!1 !== fieldID);
284
+ return baseTable.fields[fieldID].references.type = referenceType;
285
+ },
277
286
  AttrUnique: function(factType) {
278
287
  var $elf = this, _fromIdx = this.input.idx, baseTable, fieldID, required, uniqueField;
279
288
  required = this.anything();
@@ -664,7 +673,7 @@ var OMeta = require("ometa-js/lib/ometajs/core"), SBVRCompilerLibs = require("./
664
673
  return factType.join("-");
665
674
  },
666
675
  LinkTable: function(actualFactType) {
667
- var $elf = this, _fromIdx = this.input.idx, binds, linkTable, query, tableAlias;
676
+ var $elf = this, _fromIdx = this.input.idx, binds, linkTable, negated, operator, query, tableAlias;
668
677
  binds = this._applyWithArgs("RoleBindings", actualFactType);
669
678
  tableAlias = this._applyWithArgs("LinkTableAlias", binds, actualFactType);
670
679
  linkTable = this._applyWithArgs("GetTable", actualFactType);
@@ -680,10 +689,17 @@ var OMeta = require("ometa-js/lib/ometajs/core"), SBVRCompilerLibs = require("./
680
689
  $elf.CreateLinkTableResolver(query, tableAlias, bind, relationshipMapping);
681
690
  }
682
691
  });
683
- return [ "Exists", query ];
692
+ negated = actualFactType[1][2];
693
+ operator = this._or(function() {
694
+ this._pred(negated);
695
+ return "NotExists";
696
+ }, function() {
697
+ return "Exists";
698
+ });
699
+ return [ operator, query ];
684
700
  },
685
701
  ForeignKey: function(actualFactType) {
686
- var $elf = this, _fromIdx = this.input.idx, bindFrom, bindTo, binds, fieldName, tableTo;
702
+ var $elf = this, _fromIdx = this.input.idx, bindFrom, bindTo, binds, fieldName, negated, operator, tableTo;
687
703
  this._pred("ForeignKey" == this.GetTable(actualFactType));
688
704
  this._or(function() {
689
705
  binds = this._applyWithArgs("RoleBindings", actualFactType);
@@ -699,7 +715,14 @@ var OMeta = require("ometa-js/lib/ometajs/core"), SBVRCompilerLibs = require("./
699
715
  bindFrom.used();
700
716
  return bindTo.used();
701
717
  }).call(this);
702
- return [ "Equals", [ "ReferencedField", bindFrom.binding[1], fieldName ], [ "ReferencedField", bindTo.binding[1], tableTo.idField ] ];
718
+ negated = actualFactType[1][2];
719
+ operator = this._or(function() {
720
+ this._pred(negated);
721
+ return "NotEquals";
722
+ }, function() {
723
+ return "Equals";
724
+ });
725
+ return [ operator, [ "ReferencedField", bindFrom.binding[1], fieldName ], [ "ReferencedField", bindTo.binding[1], tableTo.idField ] ];
703
726
  },
704
727
  BooleanAttribute: function(actualFactType) {
705
728
  var $elf = this, _fromIdx = this.input.idx, attributeName, binds, negated;
@@ -84,6 +84,7 @@ export ometa LF2AbstractSQL <: SBVRCompilerLibs {
84
84
  'Synonym',
85
85
  'ReferenceScheme',
86
86
  'ForeignKey',
87
+ 'ReferenceType',
87
88
  'Attribute',
88
89
  'Unique'
89
90
  ]}:attrOrder
@@ -236,6 +237,13 @@ export ometa LF2AbstractSQL <: SBVRCompilerLibs {
236
237
  GetResourceName(factType):linkResourceName
237
238
  {delete this.relationships[linkResourceName]}
238
239
  {this.tables[linkResourceName] = 'ForeignKey'},
240
+ AttrReferenceType :factType =
241
+ :referenceType
242
+ GetTable(factType[0][1]):baseTable
243
+ FactTypeFieldName(factType):fkName
244
+ GetTableFieldID(baseTable, fkName):fieldID
245
+ ?(fieldID !== false)
246
+ {baseTable.fields[fieldID].references.type = referenceType},
239
247
  AttrUnique :factType =
240
248
  :required
241
249
  GetTable(factType):baseTable
@@ -560,7 +568,12 @@ export ometa LF2AbstractSQL <: SBVRCompilerLibs {
560
568
  }
561
569
  })
562
570
  }
563
- -> ['Exists', query],
571
+ {actualFactType[1][2]}:negated
572
+ ( ?negated
573
+ -> 'NotExists'
574
+ | -> 'Exists'
575
+ ):operator
576
+ -> [operator, query],
564
577
 
565
578
  ForeignKey :actualFactType =
566
579
  ?(this.GetTable(actualFactType) == 'ForeignKey')
@@ -576,7 +589,12 @@ export ometa LF2AbstractSQL <: SBVRCompilerLibs {
576
589
  bindFrom.used();
577
590
  bindTo.used();
578
591
  }
579
- -> ['Equals', ['ReferencedField', bindFrom.binding[1], fieldName], ['ReferencedField', bindTo.binding[1], tableTo.idField]],
592
+ {actualFactType[1][2]}:negated
593
+ ( ?negated
594
+ -> 'NotEquals'
595
+ | -> 'Equals'
596
+ ):operator
597
+ -> [operator, ['ReferencedField', bindFrom.binding[1], fieldName], ['ReferencedField', bindTo.binding[1], tableTo.idField]],
580
598
 
581
599
  BooleanAttribute :actualFactType =
582
600
  ?(this.GetTable(actualFactType) == 'BooleanAttribute')
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@balena/lf-to-abstract-sql",
3
- "version": "4.4.0",
3
+ "version": "4.5.0",
4
4
  "description": "LF to Abstract SQL translator.",
5
5
  "main": "index.js",
6
6
  "scripts": {
@@ -16,7 +16,7 @@
16
16
  "author": "",
17
17
  "license": "BSD",
18
18
  "dependencies": {
19
- "@balena/sbvr-parser": "^1.2.5",
19
+ "@balena/sbvr-parser": "^1.4.0",
20
20
  "lodash": "^4.17.21",
21
21
  "ometa-js": "^1.5.4"
22
22
  },
@@ -35,6 +35,6 @@
35
35
  "_": "test/**/*.js"
36
36
  },
37
37
  "versionist": {
38
- "publishedAt": "2021-12-06T16:58:41.621Z"
38
+ "publishedAt": "2022-02-16T14:13:00.020Z"
39
39
  }
40
40
  }
@@ -0,0 +1,80 @@
1
+ const test = require('./test')();
2
+ const {
3
+ TableSpace,
4
+ term,
5
+ verb,
6
+ factType,
7
+ necessity,
8
+ referenceType,
9
+ } = require('./sbvr-helper');
10
+ const { Table, attribute } = TableSpace();
11
+ let testTerm = term('term');
12
+ let termHistory = term('term history');
13
+ let termHistoryStrict = term('term history strict');
14
+ let termReferenceDefault = term('term reference default');
15
+
16
+ describe('informative term reference', function () {
17
+ // Term: term
18
+ // Term: term history
19
+ // Fact Type: term history references term
20
+ // Necessity: each term history references exactly one term
21
+ // ReferenceType: informative
22
+
23
+ test(Table(testTerm));
24
+ test(Table(termHistory));
25
+ test(Table(factType(termHistory, verb('references'), testTerm)));
26
+ test(
27
+ attribute(
28
+ necessity(
29
+ 'each',
30
+ termHistory,
31
+ verb('references'),
32
+ ['at most', 1],
33
+ testTerm,
34
+ ),
35
+ ),
36
+ );
37
+ test(attribute(referenceType('informative')));
38
+
39
+ // Term: term
40
+ // Term: term history strict
41
+ // Fact Type: term history strict references term
42
+ // Necessity: each term history strict references exactly one term
43
+ // ReferenceType: strict
44
+
45
+ test(Table(termHistoryStrict));
46
+ test(Table(factType(termHistoryStrict, verb('references'), testTerm)));
47
+ test(
48
+ attribute(
49
+ necessity(
50
+ 'each',
51
+ termHistoryStrict,
52
+ verb('references'),
53
+ ['at most', 'one'],
54
+ testTerm,
55
+ ),
56
+ ),
57
+ );
58
+ test(attribute(referenceType('strict')));
59
+
60
+ // Term: term
61
+ // Term: term reference default
62
+ // Fact Type: term reference default references term
63
+ // Necessity: each term reference default references exactly one term
64
+
65
+ // implicit strict reference type
66
+
67
+ test(Table(termReferenceDefault));
68
+ test(Table(factType(termReferenceDefault, verb('references'), testTerm)));
69
+ test(
70
+ attribute(
71
+ necessity(
72
+ 'each',
73
+ termReferenceDefault,
74
+ verb('references'),
75
+ ['at most', 'one'],
76
+ testTerm,
77
+ ),
78
+ ),
79
+ );
80
+ });
@@ -401,6 +401,13 @@ exports.TableSpace = function () {
401
401
  this.property = 'synonyms';
402
402
  this.matches = _.clone(synonyms);
403
403
  break;
404
+ case 'ReferenceType':
405
+ const idx = this.baseTable.fields.findIndex(
406
+ (f) => f.dataType === 'ForeignKey',
407
+ );
408
+ this.baseTable.fields[idx].references.type = lf[1];
409
+ this.matches = _.cloneDeep(this.baseTable);
410
+ break;
404
411
  default:
405
412
  console.log(
406
413
  'Unknown attribute',