@lionweb/validation 0.6.1-beta.0 → 0.6.1-beta.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (160) hide show
  1. package/dist/diff/LionWebJsonDiff.d.ts.map +1 -1
  2. package/dist/diff/LionWebJsonDiff.js +18 -23
  3. package/dist/diff/LionWebJsonDiff.js.map +1 -1
  4. package/dist/diff/changes/ContainmentChange.d.ts +2 -2
  5. package/dist/diff/changes/ContainmentChange.d.ts.map +1 -1
  6. package/dist/diff/changes/ContainmentChange.js.map +1 -1
  7. package/dist/diff/changes/ReferenceChange.d.ts +3 -3
  8. package/dist/diff/changes/ReferenceChange.d.ts.map +1 -1
  9. package/dist/diff/changes/ReferenceChange.js.map +1 -1
  10. package/dist/index.d.ts +2 -0
  11. package/dist/index.d.ts.map +1 -1
  12. package/dist/index.js +2 -0
  13. package/dist/index.js.map +1 -1
  14. package/dist/issues/LanguageIssues.d.ts +37 -13
  15. package/dist/issues/LanguageIssues.d.ts.map +1 -1
  16. package/dist/issues/LanguageIssues.js +49 -13
  17. package/dist/issues/LanguageIssues.js.map +1 -1
  18. package/dist/issues/ReferenceIssues.d.ts +6 -6
  19. package/dist/issues/ReferenceIssues.d.ts.map +1 -1
  20. package/dist/issues/ReferenceIssues.js +6 -6
  21. package/dist/issues/ReferenceIssues.js.map +1 -1
  22. package/dist/issues/SyntaxIssues.d.ts +9 -9
  23. package/dist/issues/SyntaxIssues.d.ts.map +1 -1
  24. package/dist/issues/SyntaxIssues.js +9 -9
  25. package/dist/issues/SyntaxIssues.js.map +1 -1
  26. package/dist/issues/ValidationIssue.d.ts +7 -1
  27. package/dist/issues/ValidationIssue.d.ts.map +1 -1
  28. package/dist/issues/ValidationIssue.js +9 -1
  29. package/dist/issues/ValidationIssue.js.map +1 -1
  30. package/dist/json/LionWebJson.d.ts +1 -14
  31. package/dist/json/LionWebJson.d.ts.map +1 -1
  32. package/dist/json/LionWebJson.js +4 -14
  33. package/dist/json/LionWebJson.js.map +1 -1
  34. package/dist/json/LionWebJsonChunkWrapper.d.ts +20 -8
  35. package/dist/json/LionWebJsonChunkWrapper.d.ts.map +1 -1
  36. package/dist/json/LionWebJsonChunkWrapper.js +50 -22
  37. package/dist/json/LionWebJsonChunkWrapper.js.map +1 -1
  38. package/dist/json/M3definitions.d.ts +176 -0
  39. package/dist/json/M3definitions.d.ts.map +1 -0
  40. package/dist/json/M3definitions.js +174 -0
  41. package/dist/json/M3definitions.js.map +1 -0
  42. package/dist/json/NodeUtils.d.ts +3 -9
  43. package/dist/json/NodeUtils.d.ts.map +1 -1
  44. package/dist/json/NodeUtils.js +18 -31
  45. package/dist/json/NodeUtils.js.map +1 -1
  46. package/dist/json/index.d.ts +1 -2
  47. package/dist/json/index.d.ts.map +1 -1
  48. package/dist/json/index.js +1 -2
  49. package/dist/json/index.js.map +1 -1
  50. package/dist/languages/CompositeLionWebLanguageWrapper.d.ts +24 -0
  51. package/dist/languages/CompositeLionWebLanguageWrapper.d.ts.map +1 -0
  52. package/dist/languages/CompositeLionWebLanguageWrapper.js +56 -0
  53. package/dist/languages/CompositeLionWebLanguageWrapper.js.map +1 -0
  54. package/dist/languages/LanguageRegistry.d.ts +19 -0
  55. package/dist/languages/LanguageRegistry.d.ts.map +1 -0
  56. package/dist/languages/LanguageRegistry.js +37 -0
  57. package/dist/languages/LanguageRegistry.js.map +1 -0
  58. package/dist/languages/LanguageUtils.d.ts +35 -0
  59. package/dist/languages/LanguageUtils.d.ts.map +1 -0
  60. package/dist/languages/LanguageUtils.js +52 -0
  61. package/dist/languages/LanguageUtils.js.map +1 -0
  62. package/dist/languages/LionCore-M3.json +2356 -0
  63. package/{src/json/std-builtins-copy.json → dist/languages/LionCore-builtins.json} +57 -52
  64. package/dist/languages/LionWebLanguageWrapper.d.ts +31 -0
  65. package/dist/languages/LionWebLanguageWrapper.d.ts.map +1 -0
  66. package/dist/languages/LionWebLanguageWrapper.js +69 -0
  67. package/dist/languages/LionWebLanguageWrapper.js.map +1 -0
  68. package/dist/languages/MetaPointerMap.d.ts +11 -0
  69. package/dist/languages/MetaPointerMap.d.ts.map +1 -0
  70. package/dist/languages/MetaPointerMap.js +39 -0
  71. package/dist/languages/MetaPointerMap.js.map +1 -0
  72. package/dist/languages/index.d.ts +3 -0
  73. package/dist/languages/index.d.ts.map +1 -0
  74. package/dist/languages/index.js +3 -0
  75. package/dist/languages/index.js.map +1 -0
  76. package/dist/runners/FileUtils.d.ts +4 -4
  77. package/dist/runners/FileUtils.d.ts.map +1 -1
  78. package/dist/runners/FileUtils.js +8 -32
  79. package/dist/runners/FileUtils.js.map +1 -1
  80. package/dist/runners/RunCheckFolder.js +3 -1
  81. package/dist/runners/RunCheckFolder.js.map +1 -1
  82. package/dist/runners/RunCheckFolderWithLanguage.js +7 -3
  83. package/dist/runners/RunCheckFolderWithLanguage.js.map +1 -1
  84. package/dist/runners/RunCheckOneFile.js +3 -1
  85. package/dist/runners/RunCheckOneFile.js.map +1 -1
  86. package/dist/runners/RunCheckOneFileWithLanguage.js +12 -3
  87. package/dist/runners/RunCheckOneFileWithLanguage.js.map +1 -1
  88. package/dist/runners/Utils.d.ts.map +1 -1
  89. package/dist/runners/Utils.js +0 -1
  90. package/dist/runners/Utils.js.map +1 -1
  91. package/dist/util/graphs.d.ts +18 -0
  92. package/dist/util/graphs.d.ts.map +1 -0
  93. package/dist/util/graphs.js +27 -0
  94. package/dist/util/graphs.js.map +1 -0
  95. package/dist/validators/LionWebLanguageReferenceValidator.d.ts +5 -4
  96. package/dist/validators/LionWebLanguageReferenceValidator.d.ts.map +1 -1
  97. package/dist/validators/LionWebLanguageReferenceValidator.js +96 -34
  98. package/dist/validators/LionWebLanguageReferenceValidator.js.map +1 -1
  99. package/dist/validators/LionWebLanguageValidator.d.ts +15 -3
  100. package/dist/validators/LionWebLanguageValidator.d.ts.map +1 -1
  101. package/dist/validators/LionWebLanguageValidator.js +54 -21
  102. package/dist/validators/LionWebLanguageValidator.js.map +1 -1
  103. package/dist/validators/LionWebReferenceValidator.d.ts.map +1 -1
  104. package/dist/validators/LionWebReferenceValidator.js +0 -5
  105. package/dist/validators/LionWebReferenceValidator.js.map +1 -1
  106. package/dist/validators/LionWebSyntaxValidator.d.ts +1 -1
  107. package/dist/validators/LionWebSyntaxValidator.js +1 -1
  108. package/dist/validators/LionWebValidator.d.ts +3 -3
  109. package/dist/validators/LionWebValidator.d.ts.map +1 -1
  110. package/dist/validators/LionWebValidator.js +5 -8
  111. package/dist/validators/LionWebValidator.js.map +1 -1
  112. package/package.json +5 -5
  113. package/src/diff/LionWebJsonDiff.ts +18 -23
  114. package/src/diff/changes/ContainmentChange.ts +1 -1
  115. package/src/diff/changes/ReferenceChange.ts +2 -2
  116. package/src/index.ts +2 -0
  117. package/src/issues/LanguageIssues.ts +49 -14
  118. package/src/issues/ReferenceIssues.ts +6 -6
  119. package/src/issues/SyntaxIssues.ts +9 -9
  120. package/src/issues/ValidationIssue.ts +12 -2
  121. package/src/json/LionCore_M3.json +2320 -0
  122. package/src/json/LionCore_builtins.json +231 -0
  123. package/src/json/LionWebJson.ts +5 -14
  124. package/src/json/LionWebJsonChunkWrapper.ts +59 -30
  125. package/src/json/M3definitions.ts +177 -0
  126. package/src/json/NodeUtils.ts +21 -39
  127. package/src/json/index.ts +1 -2
  128. package/src/languages/CompositeLionWebLanguageWrapper.ts +57 -0
  129. package/src/languages/LanguageRegistry.ts +44 -0
  130. package/src/languages/LanguageUtils.ts +61 -0
  131. package/src/languages/LionCore-M3.json +2356 -0
  132. package/src/languages/LionCore-builtins.json +372 -0
  133. package/src/languages/LionWebLanguageWrapper.ts +95 -0
  134. package/src/languages/MetaPointerMap.ts +40 -0
  135. package/src/languages/index.ts +2 -0
  136. package/src/runners/FileUtils.ts +9 -36
  137. package/src/runners/RunCheckFolder.ts +3 -1
  138. package/src/runners/RunCheckFolderWithLanguage.ts +7 -7
  139. package/src/runners/RunCheckOneFile.ts +3 -1
  140. package/src/runners/RunCheckOneFileWithLanguage.ts +12 -7
  141. package/src/runners/Utils.ts +0 -1
  142. package/src/tmp.json +574 -0
  143. package/src/tryout.js +21 -0
  144. package/src/util/graphs.ts +36 -0
  145. package/src/validators/LionWebLanguageReferenceValidator.ts +110 -48
  146. package/src/validators/LionWebLanguageValidator.ts +62 -21
  147. package/src/validators/LionWebReferenceValidator.ts +0 -5
  148. package/src/validators/LionWebSyntaxValidator.ts +2 -2
  149. package/src/validators/LionWebValidator.ts +5 -9
  150. package/structure.puml +25 -0
  151. package/dist/json/LanguageUtils.d.ts +0 -9
  152. package/dist/json/LanguageUtils.d.ts.map +0 -1
  153. package/dist/json/LanguageUtils.js +0 -30
  154. package/dist/json/LanguageUtils.js.map +0 -1
  155. package/dist/json/LionWebLanguageDefinition.d.ts +0 -48
  156. package/dist/json/LionWebLanguageDefinition.d.ts.map +0 -1
  157. package/dist/json/LionWebLanguageDefinition.js +0 -126
  158. package/dist/json/LionWebLanguageDefinition.js.map +0 -1
  159. package/src/json/LanguageUtils.ts +0 -52
  160. package/src/json/LionWebLanguageDefinition.ts +0 -144
@@ -9,7 +9,6 @@ export function getFilesRecursive(dirPath: string, arrayOfFiles: string[]) {
9
9
  files.forEach(function (file: string) {
10
10
  if (fs.statSync(dirPath + "/" + file).isDirectory()) {
11
11
  arrayOfFiles = getFilesRecursive(dirPath + "/" + file, arrayOfFiles)
12
- // arrayOfFiles.push(path.join(dirPath, "/", file));
13
12
  } else {
14
13
  arrayOfFiles.push(path.join(dirPath, "/", file))
15
14
  }
package/src/tmp.json ADDED
@@ -0,0 +1,574 @@
1
+ [
2
+ {
3
+ "id" : "subStringProp-id",
4
+ "classifier" : {
5
+ "language": "LionCore-M3",
6
+ "version" : "2023.1",
7
+ "key" : "Property"
8
+ },
9
+ "properties" : [
10
+ {
11
+ "property": {
12
+ "language": "LionCore-M3",
13
+ "version" : "2023.1",
14
+ "key" : "Feature-optional"
15
+ },
16
+ "value" : "true"
17
+ },
18
+ {
19
+ "property": {
20
+ "language": "LionCore-builtins",
21
+ "version" : "2023.1",
22
+ "key" : "LionCore-builtins-INamed-name"
23
+ },
24
+ "value" : "SubStringProperty"
25
+ },
26
+ {
27
+ "property": {
28
+ "language": "LionCore-M3",
29
+ "version" : "2023.1",
30
+ "key" : "IKeyed-key"
31
+ },
32
+ "value" : "myConcept-subStringProp"
33
+ }
34
+ ],
35
+ "containments": [],
36
+ "references" : [
37
+ {
38
+ "reference": {
39
+ "language": "LionCore-M3",
40
+ "version" : "2023.1",
41
+ "key" : "Property-type"
42
+ },
43
+ "targets" : [
44
+ {
45
+ "resolveInfo": "String",
46
+ "reference" : "LionCore-builtins-String"
47
+ }
48
+ ]
49
+ }
50
+ ],
51
+ "annotations" : [],
52
+ "parent" : "mySubConcept-id"
53
+ },
54
+ {
55
+ "id" : "stringProp-id",
56
+ "classifier" : {
57
+ "language": "LionCore-M3",
58
+ "version" : "2023.1",
59
+ "key" : "Property"
60
+ },
61
+ "properties" : [
62
+ {
63
+ "property": {
64
+ "language": "LionCore-M3",
65
+ "version" : "2023.1",
66
+ "key" : "Feature-optional"
67
+ },
68
+ "value" : "true"
69
+ },
70
+ {
71
+ "property": {
72
+ "language": "LionCore-builtins",
73
+ "version" : "2023.1",
74
+ "key" : "LionCore-builtins-INamed-name"
75
+ },
76
+ "value" : "StringProperty"
77
+ },
78
+ {
79
+ "property": {
80
+ "language": "LionCore-M3",
81
+ "version" : "2023.1",
82
+ "key" : "IKeyed-key"
83
+ },
84
+ "value" : "myConcept-stringProp"
85
+ }
86
+ ],
87
+ "containments": [],
88
+ "references" : [
89
+ {
90
+ "reference": {
91
+ "language": "LionCore-M3",
92
+ "version" : "2023.1",
93
+ "key" : "Property-type"
94
+ },
95
+ "targets" : [
96
+ {
97
+ "resolveInfo": "String",
98
+ "reference" : "LionCore-builtins-String"
99
+ }
100
+ ]
101
+ }
102
+ ],
103
+ "annotations" : [],
104
+ "parent" : "myConcept-id"
105
+ },
106
+ {
107
+ "id" : "booleanProp-id",
108
+ "classifier" : {
109
+ "language": "LionCore-M3",
110
+ "version" : "2023.1",
111
+ "key" : "Property"
112
+ },
113
+ "properties" : [
114
+ {
115
+ "property": {
116
+ "language": "LionCore-M3",
117
+ "version" : "2023.1",
118
+ "key" : "Feature-optional"
119
+ },
120
+ "value" : "true"
121
+ },
122
+ {
123
+ "property": {
124
+ "language": "LionCore-builtins",
125
+ "version" : "2023.1",
126
+ "key" : "LionCore-builtins-INamed-name"
127
+ },
128
+ "value" : "BooleanProperty"
129
+ },
130
+ {
131
+ "property": {
132
+ "language": "LionCore-M3",
133
+ "version" : "2023.1",
134
+ "key" : "IKeyed-key"
135
+ },
136
+ "value" : "myConcept-booleanProp"
137
+ }
138
+ ],
139
+ "containments": [],
140
+ "references" : [
141
+ {
142
+ "reference": {
143
+ "language": "LionCore-M3",
144
+ "version" : "2023.1",
145
+ "key" : "Property-type"
146
+ },
147
+ "targets" : [
148
+ {
149
+ "resolveInfo": "Boolean",
150
+ "reference" : "LionCore-builtins-Boolean"
151
+ }
152
+ ]
153
+ }
154
+ ],
155
+ "annotations" : [],
156
+ "parent" : "myConcept-id"
157
+ },
158
+ {
159
+ "id" : "integerProp-id",
160
+ "classifier" : {
161
+ "language": "LionCore-M3",
162
+ "version" : "2023.1",
163
+ "key" : "Property"
164
+ },
165
+ "properties" : [
166
+ {
167
+ "property": {
168
+ "language": "LionCore-M3",
169
+ "version" : "2023.1",
170
+ "key" : "Feature-optional"
171
+ },
172
+ "value" : "true"
173
+ },
174
+ {
175
+ "property": {
176
+ "language": "LionCore-builtins",
177
+ "version" : "2023.1",
178
+ "key" : "LionCore-builtins-INamed-name"
179
+ },
180
+ "value" : "IntegerProperty"
181
+ },
182
+ {
183
+ "property": {
184
+ "language": "LionCore-M3",
185
+ "version" : "2023.1",
186
+ "key" : "IKeyed-key"
187
+ },
188
+ "value" : "myConcept-integerProp"
189
+ }
190
+ ],
191
+ "containments": [],
192
+ "references" : [
193
+ {
194
+ "reference": {
195
+ "language": "LionCore-M3",
196
+ "version" : "2023.1",
197
+ "key" : "Property-type"
198
+ },
199
+ "targets" : [
200
+ {
201
+ "resolveInfo": "Integer",
202
+ "reference" : "LionCore-builtins-Integer"
203
+ }
204
+ ]
205
+ }
206
+ ],
207
+ "annotations" : [],
208
+ "parent" : "myConcept-id"
209
+ },
210
+ {
211
+ "id" : "jsonProp-id",
212
+ "classifier" : {
213
+ "language": "LionCore-M3",
214
+ "version" : "2023.1",
215
+ "key" : "Property"
216
+ },
217
+ "properties" : [
218
+ {
219
+ "property": {
220
+ "language": "LionCore-M3",
221
+ "version" : "2023.1",
222
+ "key" : "Feature-optional"
223
+ },
224
+ "value" : "true"
225
+ },
226
+ {
227
+ "property": {
228
+ "language": "LionCore-builtins",
229
+ "version" : "2023.1",
230
+ "key" : "LionCore-builtins-INamed-name"
231
+ },
232
+ "value" : "JSONProperty"
233
+ },
234
+ {
235
+ "property": {
236
+ "language": "LionCore-M3",
237
+ "version" : "2023.1",
238
+ "key" : "IKeyed-key"
239
+ },
240
+ "value" : "myConcept-jsonProp"
241
+ }
242
+ ],
243
+ "containments": [],
244
+ "references" : [
245
+ {
246
+ "reference": {
247
+ "language": "LionCore-M3",
248
+ "version" : "2023.1",
249
+ "key" : "Property-type"
250
+ },
251
+ "targets" : [
252
+ {
253
+ "resolveInfo": "JSON",
254
+ "reference" : "LionCore-builtins-JSON"
255
+ }
256
+ ]
257
+ }
258
+ ],
259
+ "annotations" : [],
260
+ "parent" : "myConcept-id"
261
+ },
262
+ {
263
+ "id" : "enumAProp-id",
264
+ "classifier" : {
265
+ "language": "LionCore-M3",
266
+ "version" : "2023.1",
267
+ "key" : "Property"
268
+ },
269
+ "properties" : [
270
+ {
271
+ "property": {
272
+ "language": "LionCore-M3",
273
+ "version" : "2023.1",
274
+ "key" : "Feature-optional"
275
+ },
276
+ "value" : "true"
277
+ },
278
+ {
279
+ "property": {
280
+ "language": "LionCore-builtins",
281
+ "version" : "2023.1",
282
+ "key" : "LionCore-builtins-INamed-name"
283
+ },
284
+ "value" : "EnumerationProperty"
285
+ },
286
+ {
287
+ "property": {
288
+ "language": "LionCore-M3",
289
+ "version" : "2023.1",
290
+ "key" : "IKeyed-key"
291
+ },
292
+ "value" : "myConcept-enumAProp"
293
+ }
294
+ ],
295
+ "containments": [],
296
+ "references" : [
297
+ {
298
+ "reference": {
299
+ "language": "LionCore-M3",
300
+ "version" : "2023.1",
301
+ "key" : "Property-type"
302
+ },
303
+ "targets" : [
304
+ {
305
+ "resolveInfo": "EnumA",
306
+ "reference" : "enumA-id"
307
+ }
308
+ ]
309
+ }
310
+ ],
311
+ "annotations" : [],
312
+ "parent" : "myConcept-id"
313
+ },
314
+ {
315
+ "id" : "combinedIfaceStringProp-id",
316
+ "classifier" : {
317
+ "language": "LionCore-M3",
318
+ "version" : "2023.1",
319
+ "key" : "Property"
320
+ },
321
+ "properties" : [
322
+ {
323
+ "property": {
324
+ "language": "LionCore-M3",
325
+ "version" : "2023.1",
326
+ "key" : "Feature-optional"
327
+ },
328
+ "value" : "true"
329
+ },
330
+ {
331
+ "property": {
332
+ "language": "LionCore-builtins",
333
+ "version" : "2023.1",
334
+ "key" : "LionCore-builtins-INamed-name"
335
+ },
336
+ "value" : "CombinedIfaceStringProperty"
337
+ },
338
+ {
339
+ "property": {
340
+ "language": "LionCore-M3",
341
+ "version" : "2023.1",
342
+ "key" : "IKeyed-key"
343
+ },
344
+ "value" : "combinedIface-ifaceStringProp"
345
+ }
346
+ ],
347
+ "containments": [],
348
+ "references" : [
349
+ {
350
+ "reference": {
351
+ "language": "LionCore-M3",
352
+ "version" : "2023.1",
353
+ "key" : "Property-type"
354
+ },
355
+ "targets" : [
356
+ {
357
+ "resolveInfo": "String",
358
+ "reference" : "LionCore-builtins-String"
359
+ }
360
+ ]
361
+ }
362
+ ],
363
+ "annotations" : [],
364
+ "parent" : "combinedIface-id"
365
+ },
366
+ {
367
+ "id" : "subIfaceStringProp-id",
368
+ "classifier" : {
369
+ "language": "LionCore-M3",
370
+ "version" : "2023.1",
371
+ "key" : "Property"
372
+ },
373
+ "properties" : [
374
+ {
375
+ "property": {
376
+ "language": "LionCore-M3",
377
+ "version" : "2023.1",
378
+ "key" : "Feature-optional"
379
+ },
380
+ "value" : "true"
381
+ },
382
+ {
383
+ "property": {
384
+ "language": "LionCore-builtins",
385
+ "version" : "2023.1",
386
+ "key" : "LionCore-builtins-INamed-name"
387
+ },
388
+ "value" : "SubIfaceStringProperty"
389
+ },
390
+ {
391
+ "property": {
392
+ "language": "LionCore-M3",
393
+ "version" : "2023.1",
394
+ "key" : "IKeyed-key"
395
+ },
396
+ "value" : "subIface-ifaceStringProp"
397
+ }
398
+ ],
399
+ "containments": [],
400
+ "references" : [
401
+ {
402
+ "reference": {
403
+ "language": "LionCore-M3",
404
+ "version" : "2023.1",
405
+ "key" : "Property-type"
406
+ },
407
+ "targets" : [
408
+ {
409
+ "resolveInfo": "String",
410
+ "reference" : "LionCore-builtins-String"
411
+ }
412
+ ]
413
+ }
414
+ ],
415
+ "annotations" : [],
416
+ "parent" : "subIface-id"
417
+ },
418
+ {
419
+ "id" : "ifaceStringProp-id",
420
+ "classifier" : {
421
+ "language": "LionCore-M3",
422
+ "version" : "2023.1",
423
+ "key" : "Property"
424
+ },
425
+ "properties" : [
426
+ {
427
+ "property": {
428
+ "language": "LionCore-M3",
429
+ "version" : "2023.1",
430
+ "key" : "Feature-optional"
431
+ },
432
+ "value" : "true"
433
+ },
434
+ {
435
+ "property": {
436
+ "language": "LionCore-builtins",
437
+ "version" : "2023.1",
438
+ "key" : "LionCore-builtins-INamed-name"
439
+ },
440
+ "value" : "MyIfaceStringProperty"
441
+ },
442
+ {
443
+ "property": {
444
+ "language": "LionCore-M3",
445
+ "version" : "2023.1",
446
+ "key" : "IKeyed-key"
447
+ },
448
+ "value" : "myIface-ifaceStringProp"
449
+ }
450
+ ],
451
+ "containments": [],
452
+ "references" : [
453
+ {
454
+ "reference": {
455
+ "language": "LionCore-M3",
456
+ "version" : "2023.1",
457
+ "key" : "Property-type"
458
+ },
459
+ "targets" : [
460
+ {
461
+ "resolveInfo": "String",
462
+ "reference" : "LionCore-builtins-String"
463
+ }
464
+ ]
465
+ }
466
+ ],
467
+ "annotations" : [],
468
+ "parent" : "myIface-id"
469
+ },
470
+ {
471
+ "id" : "otherIfaceStringProp-id",
472
+ "classifier" : {
473
+ "language": "LionCore-M3",
474
+ "version" : "2023.1",
475
+ "key" : "Property"
476
+ },
477
+ "properties" : [
478
+ {
479
+ "property": {
480
+ "language": "LionCore-M3",
481
+ "version" : "2023.1",
482
+ "key" : "Feature-optional"
483
+ },
484
+ "value" : "true"
485
+ },
486
+ {
487
+ "property": {
488
+ "language": "LionCore-builtins",
489
+ "version" : "2023.1",
490
+ "key" : "LionCore-builtins-INamed-name"
491
+ },
492
+ "value" : "OtherIfaceStringProperty"
493
+ },
494
+ {
495
+ "property": {
496
+ "language": "LionCore-M3",
497
+ "version" : "2023.1",
498
+ "key" : "IKeyed-key"
499
+ },
500
+ "value" : "otherIface-ifaceStringProp"
501
+ }
502
+ ],
503
+ "containments": [],
504
+ "references" : [
505
+ {
506
+ "reference": {
507
+ "language": "LionCore-M3",
508
+ "version" : "2023.1",
509
+ "key" : "Property-type"
510
+ },
511
+ "targets" : [
512
+ {
513
+ "resolveInfo": "String",
514
+ "reference" : "LionCore-builtins-String"
515
+ }
516
+ ]
517
+ }
518
+ ],
519
+ "annotations" : [],
520
+ "parent" : "otherIface-id"
521
+ },
522
+ {
523
+ "id" : "separateIfaceStringProp-id",
524
+ "classifier" : {
525
+ "language": "LionCore-M3",
526
+ "version" : "2023.1",
527
+ "key" : "Property"
528
+ },
529
+ "properties" : [
530
+ {
531
+ "property": {
532
+ "language": "LionCore-M3",
533
+ "version" : "2023.1",
534
+ "key" : "Feature-optional"
535
+ },
536
+ "value" : "true"
537
+ },
538
+ {
539
+ "property": {
540
+ "language": "LionCore-builtins",
541
+ "version" : "2023.1",
542
+ "key" : "LionCore-builtins-INamed-name"
543
+ },
544
+ "value" : "SeparateIfaceStringProperty"
545
+ },
546
+ {
547
+ "property": {
548
+ "language": "LionCore-M3",
549
+ "version" : "2023.1",
550
+ "key" : "IKeyed-key"
551
+ },
552
+ "value" : "separateIface-ifaceStringProp"
553
+ }
554
+ ],
555
+ "containments": [],
556
+ "references" : [
557
+ {
558
+ "reference": {
559
+ "language": "LionCore-M3",
560
+ "version" : "2023.1",
561
+ "key" : "Property-type"
562
+ },
563
+ "targets" : [
564
+ {
565
+ "resolveInfo": "String",
566
+ "reference" : "LionCore-builtins-String"
567
+ }
568
+ ]
569
+ }
570
+ ],
571
+ "annotations" : [],
572
+ "parent" : "separateIface-id"
573
+ }
574
+ ]
package/src/tryout.js ADDED
@@ -0,0 +1,21 @@
1
+ const object1 = {id: "1", log: "gsgs"}
2
+ const object2 = {id: "1", log: "gsgs"}
3
+
4
+ console.log("== " + object1 == object2)
5
+ console.log("=== " + object1 === object2)
6
+ console.log("is " + Object.is(object1 , object2))
7
+
8
+ const map = new Map()
9
+
10
+ map.set(object1, "1")
11
+ console.log("haskey 1 " + map.has(object1))
12
+ console.log("haskey 2 " + map.has(object2))
13
+
14
+
15
+ let ourMap = new Map();
16
+
17
+ ourMap.set(Symbol.for(object1), "some value");
18
+ ourMap.set(Symbol.for(object2), "this value should be updated");
19
+
20
+ console.log("1: " + ourMap.get((Symbol.for(object1))))
21
+ console.log("2: " + ourMap.get((Symbol.for(object2))))
@@ -0,0 +1,36 @@
1
+ // NB This is an almost identical copy of packages/core/utils/recursion.ts
2
+ // Copied to avoid package dependencies
3
+ /**
4
+ * Type def. of a generic "flatMap" function.
5
+ */
6
+ export type ResultMapper<T, R> = (t: T) => R[]
7
+
8
+ /**
9
+ * Returns a function that performs a "flatMap" on a graph that's specified as a start vertex. and a function that computes (outgoing) edges.
10
+ * The "flatMap" is performed depth-first, and doesn't loop on cycles.
11
+ *
12
+ * @param mapper The function that calculates the result values
13
+ * @param nextVertices The function that calculates the next edges to visit.
14
+ * @returns A function that takes a starting vertex and resursively calculates the result values for each vertex visited.
15
+ */
16
+ export const visitAndMap =
17
+ <T, R>(mapper: ResultMapper<T, R>, nextVertices: (t: T) => T[]): ResultMapper<T, R> =>
18
+ (startVertex: T): R[] => {
19
+ const visited: T[] = []
20
+ const rs: R[] = []
21
+ const recurse = (t: T) => {
22
+ if (visited.indexOf(t) > -1) {
23
+ return
24
+ }
25
+ visited.push(t)
26
+ rs.push(...mapper(t))
27
+ nextVertices(t).forEach(recurse)
28
+ }
29
+ recurse(startVertex)
30
+ return rs
31
+ }
32
+
33
+ /**
34
+ * A mapper function that returns the node itself as result
35
+ */
36
+ export const selfMapper = <T>(t: T) => [t]