@reventlessdev/reventless-spec 3.0.0-alpha.123 → 3.0.0-alpha.125

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 (43) hide show
  1. package/CHANGELOG.md +56 -0
  2. package/package.json +5 -3
  3. package/run-certify-trait.mjs +2 -0
  4. package/run-graft-trait.mjs +2 -0
  5. package/run-trait-manifest.mjs +2 -0
  6. package/schema/platform-api.graphql +41 -3
  7. package/src/components/Aggregate.res +22 -0
  8. package/src/components/AutomationSlice.res +29 -3
  9. package/src/components/CapabilityManifest.res +52 -24
  10. package/src/components/CapabilityManifest.res.mjs +35 -11
  11. package/src/components/InboundTranslationSlice.res +14 -0
  12. package/src/components/OutboundTranslationSlice.res +24 -0
  13. package/src/components/Plugin.res +202 -422
  14. package/src/components/Plugin.res.mjs +65 -3
  15. package/src/components/StateChangeSlice.res +22 -0
  16. package/src/components/TraitCertificate.res +105 -0
  17. package/src/components/TraitCertificate.res.mjs +65 -0
  18. package/src/components/TraitManifest.res +90 -0
  19. package/src/components/TraitManifest.res.mjs +48 -0
  20. package/src/generator/CertifyTrait.res +190 -0
  21. package/src/generator/CertifyTrait.res.mjs +154 -0
  22. package/src/generator/GraftTrait.res +230 -0
  23. package/src/generator/GraftTrait.res.mjs +193 -0
  24. package/src/generator/PlatformCodegen.res +44 -30
  25. package/src/generator/PlatformCodegen.res.mjs +36 -17
  26. package/src/generator/TraitManifestCli.res +138 -0
  27. package/src/generator/TraitManifestCli.res.mjs +105 -0
  28. package/src/semantic/Capabilities.res +19 -3
  29. package/src/semantic/Capabilities.res.mjs +18 -2
  30. package/src/semantic/CapabilityNeed.res +81 -0
  31. package/src/semantic/CapabilityNeed.res.mjs +46 -0
  32. package/src/semantic/Currency.res +519 -502
  33. package/src/semantic/Currency.res.mjs +7 -655
  34. package/src/semantic/Messaging.res +127 -0
  35. package/src/semantic/Messaging.res.mjs +57 -0
  36. package/src/semantic/Money.res +123 -21
  37. package/src/semantic/Money.res.mjs +49 -2
  38. package/src/types/Trait.res +62 -0
  39. package/src/types/Trait.res.mjs +18 -0
  40. package/src/types/Transition.res +71 -0
  41. package/src/types/Transition.res.mjs +36 -0
  42. package/scripts/generate-currency.mjs +0 -215
  43. package/scripts/iso-4217-list-one.xml +0 -1956
@@ -3,709 +3,61 @@
3
3
  import * as Sury from "sury";
4
4
 
5
5
  let schema = Sury.union([
6
- Sury.literal("AED"),
7
- Sury.literal("AFN"),
8
- Sury.literal("ALL"),
9
- Sury.literal("AMD"),
10
- Sury.literal("AOA"),
11
- Sury.literal("ARS"),
12
6
  Sury.literal("AUD"),
13
- Sury.literal("AWG"),
14
- Sury.literal("AZN"),
15
- Sury.literal("BAM"),
16
- Sury.literal("BBD"),
17
- Sury.literal("BDT"),
18
- Sury.literal("BHD"),
19
- Sury.literal("BIF"),
20
- Sury.literal("BMD"),
21
- Sury.literal("BND"),
22
- Sury.literal("BOB"),
23
- Sury.literal("BOV"),
24
- Sury.literal("BRL"),
25
- Sury.literal("BSD"),
26
- Sury.literal("BTN"),
27
- Sury.literal("BWP"),
28
- Sury.literal("BYN"),
29
- Sury.literal("BZD"),
30
7
  Sury.literal("CAD"),
31
- Sury.literal("CDF"),
32
- Sury.literal("CHE"),
33
8
  Sury.literal("CHF"),
34
- Sury.literal("CHW"),
35
- Sury.literal("CLF"),
36
- Sury.literal("CLP"),
37
9
  Sury.literal("CNY"),
38
- Sury.literal("COP"),
39
- Sury.literal("COU"),
40
- Sury.literal("CRC"),
41
- Sury.literal("CUP"),
42
- Sury.literal("CVE"),
43
- Sury.literal("CZK"),
44
- Sury.literal("DJF"),
45
- Sury.literal("DKK"),
46
- Sury.literal("DOP"),
47
- Sury.literal("DZD"),
48
- Sury.literal("EGP"),
49
- Sury.literal("ERN"),
50
- Sury.literal("ETB"),
51
10
  Sury.literal("EUR"),
52
- Sury.literal("FJD"),
53
- Sury.literal("FKP"),
54
11
  Sury.literal("GBP"),
55
- Sury.literal("GEL"),
56
- Sury.literal("GHS"),
57
- Sury.literal("GIP"),
58
- Sury.literal("GMD"),
59
- Sury.literal("GNF"),
60
- Sury.literal("GTQ"),
61
- Sury.literal("GYD"),
62
- Sury.literal("HKD"),
63
- Sury.literal("HNL"),
64
- Sury.literal("HTG"),
65
- Sury.literal("HUF"),
66
- Sury.literal("IDR"),
67
- Sury.literal("ILS"),
68
- Sury.literal("INR"),
69
- Sury.literal("IQD"),
70
- Sury.literal("IRR"),
71
- Sury.literal("ISK"),
72
- Sury.literal("JMD"),
73
- Sury.literal("JOD"),
74
12
  Sury.literal("JPY"),
75
- Sury.literal("KES"),
76
- Sury.literal("KGS"),
77
- Sury.literal("KHR"),
78
- Sury.literal("KMF"),
79
- Sury.literal("KPW"),
80
- Sury.literal("KRW"),
81
- Sury.literal("KWD"),
82
- Sury.literal("KYD"),
83
- Sury.literal("KZT"),
84
- Sury.literal("LAK"),
85
- Sury.literal("LBP"),
86
- Sury.literal("LKR"),
87
- Sury.literal("LRD"),
88
- Sury.literal("LSL"),
89
- Sury.literal("LYD"),
90
- Sury.literal("MAD"),
91
- Sury.literal("MDL"),
92
- Sury.literal("MGA"),
93
- Sury.literal("MKD"),
94
- Sury.literal("MMK"),
95
- Sury.literal("MNT"),
96
- Sury.literal("MOP"),
97
- Sury.literal("MRU"),
98
- Sury.literal("MUR"),
99
- Sury.literal("MVR"),
100
- Sury.literal("MWK"),
101
- Sury.literal("MXN"),
102
- Sury.literal("MXV"),
103
- Sury.literal("MYR"),
104
- Sury.literal("MZN"),
105
- Sury.literal("NAD"),
106
- Sury.literal("NGN"),
107
- Sury.literal("NIO"),
108
13
  Sury.literal("NOK"),
109
- Sury.literal("NPR"),
110
- Sury.literal("NZD"),
111
- Sury.literal("OMR"),
112
- Sury.literal("PAB"),
113
- Sury.literal("PEN"),
114
- Sury.literal("PGK"),
115
- Sury.literal("PHP"),
116
- Sury.literal("PKR"),
117
- Sury.literal("PLN"),
118
- Sury.literal("PYG"),
119
- Sury.literal("QAR"),
120
- Sury.literal("RON"),
121
- Sury.literal("RSD"),
122
- Sury.literal("RUB"),
123
- Sury.literal("RWF"),
124
- Sury.literal("SAR"),
125
- Sury.literal("SBD"),
126
- Sury.literal("SCR"),
127
- Sury.literal("SDG"),
128
14
  Sury.literal("SEK"),
129
- Sury.literal("SGD"),
130
- Sury.literal("SHP"),
131
- Sury.literal("SLE"),
132
- Sury.literal("SOS"),
133
- Sury.literal("SRD"),
134
- Sury.literal("SSP"),
135
- Sury.literal("STN"),
136
- Sury.literal("SVC"),
137
- Sury.literal("SYP"),
138
- Sury.literal("SZL"),
139
- Sury.literal("THB"),
140
- Sury.literal("TJS"),
141
- Sury.literal("TMT"),
142
- Sury.literal("TND"),
143
- Sury.literal("TOP"),
144
- Sury.literal("TRY"),
145
- Sury.literal("TTD"),
146
- Sury.literal("TWD"),
147
- Sury.literal("TZS"),
148
- Sury.literal("UAH"),
149
- Sury.literal("UGX"),
150
- Sury.literal("USD"),
151
- Sury.literal("USN"),
152
- Sury.literal("UYI"),
153
- Sury.literal("UYU"),
154
- Sury.literal("UYW"),
155
- Sury.literal("UZS"),
156
- Sury.literal("VED"),
157
- Sury.literal("VES"),
158
- Sury.literal("VND"),
159
- Sury.literal("VUV"),
160
- Sury.literal("WST"),
161
- Sury.literal("XAD"),
162
- Sury.literal("XAF"),
163
- Sury.literal("XCD"),
164
- Sury.literal("XCG"),
165
- Sury.literal("XOF"),
166
- Sury.literal("XPF"),
167
- Sury.literal("YER"),
168
- Sury.literal("ZAR"),
169
- Sury.literal("ZMW"),
170
- Sury.literal("ZWG")
15
+ Sury.literal("USD")
171
16
  ]);
172
17
 
173
18
  let all = [
174
- "AED",
175
- "AFN",
176
- "ALL",
177
- "AMD",
178
- "AOA",
179
- "ARS",
180
19
  "AUD",
181
- "AWG",
182
- "AZN",
183
- "BAM",
184
- "BBD",
185
- "BDT",
186
- "BHD",
187
- "BIF",
188
- "BMD",
189
- "BND",
190
- "BOB",
191
- "BOV",
192
- "BRL",
193
- "BSD",
194
- "BTN",
195
- "BWP",
196
- "BYN",
197
- "BZD",
198
20
  "CAD",
199
- "CDF",
200
- "CHE",
201
21
  "CHF",
202
- "CHW",
203
- "CLF",
204
- "CLP",
205
22
  "CNY",
206
- "COP",
207
- "COU",
208
- "CRC",
209
- "CUP",
210
- "CVE",
211
- "CZK",
212
- "DJF",
213
- "DKK",
214
- "DOP",
215
- "DZD",
216
- "EGP",
217
- "ERN",
218
- "ETB",
219
23
  "EUR",
220
- "FJD",
221
- "FKP",
222
24
  "GBP",
223
- "GEL",
224
- "GHS",
225
- "GIP",
226
- "GMD",
227
- "GNF",
228
- "GTQ",
229
- "GYD",
230
- "HKD",
231
- "HNL",
232
- "HTG",
233
- "HUF",
234
- "IDR",
235
- "ILS",
236
- "INR",
237
- "IQD",
238
- "IRR",
239
- "ISK",
240
- "JMD",
241
- "JOD",
242
25
  "JPY",
243
- "KES",
244
- "KGS",
245
- "KHR",
246
- "KMF",
247
- "KPW",
248
- "KRW",
249
- "KWD",
250
- "KYD",
251
- "KZT",
252
- "LAK",
253
- "LBP",
254
- "LKR",
255
- "LRD",
256
- "LSL",
257
- "LYD",
258
- "MAD",
259
- "MDL",
260
- "MGA",
261
- "MKD",
262
- "MMK",
263
- "MNT",
264
- "MOP",
265
- "MRU",
266
- "MUR",
267
- "MVR",
268
- "MWK",
269
- "MXN",
270
- "MXV",
271
- "MYR",
272
- "MZN",
273
- "NAD",
274
- "NGN",
275
- "NIO",
276
26
  "NOK",
277
- "NPR",
278
- "NZD",
279
- "OMR",
280
- "PAB",
281
- "PEN",
282
- "PGK",
283
- "PHP",
284
- "PKR",
285
- "PLN",
286
- "PYG",
287
- "QAR",
288
- "RON",
289
- "RSD",
290
- "RUB",
291
- "RWF",
292
- "SAR",
293
- "SBD",
294
- "SCR",
295
- "SDG",
296
27
  "SEK",
297
- "SGD",
298
- "SHP",
299
- "SLE",
300
- "SOS",
301
- "SRD",
302
- "SSP",
303
- "STN",
304
- "SVC",
305
- "SYP",
306
- "SZL",
307
- "THB",
308
- "TJS",
309
- "TMT",
310
- "TND",
311
- "TOP",
312
- "TRY",
313
- "TTD",
314
- "TWD",
315
- "TZS",
316
- "UAH",
317
- "UGX",
318
- "USD",
319
- "USN",
320
- "UYI",
321
- "UYU",
322
- "UYW",
323
- "UZS",
324
- "VED",
325
- "VES",
326
- "VND",
327
- "VUV",
328
- "WST",
329
- "XAD",
330
- "XAF",
331
- "XCD",
332
- "XCG",
333
- "XOF",
334
- "XPF",
335
- "YER",
336
- "ZAR",
337
- "ZMW",
338
- "ZWG"
28
+ "USD"
339
29
  ];
340
30
 
341
31
  function toString(currency) {
342
32
  switch (currency) {
343
- case "AED" :
344
- return "AED";
345
- case "AFN" :
346
- return "AFN";
347
- case "ALL" :
348
- return "ALL";
349
- case "AMD" :
350
- return "AMD";
351
- case "AOA" :
352
- return "AOA";
353
- case "ARS" :
354
- return "ARS";
355
33
  case "AUD" :
356
34
  return "AUD";
357
- case "AWG" :
358
- return "AWG";
359
- case "AZN" :
360
- return "AZN";
361
- case "BAM" :
362
- return "BAM";
363
- case "BBD" :
364
- return "BBD";
365
- case "BDT" :
366
- return "BDT";
367
- case "BHD" :
368
- return "BHD";
369
- case "BIF" :
370
- return "BIF";
371
- case "BMD" :
372
- return "BMD";
373
- case "BND" :
374
- return "BND";
375
- case "BOB" :
376
- return "BOB";
377
- case "BOV" :
378
- return "BOV";
379
- case "BRL" :
380
- return "BRL";
381
- case "BSD" :
382
- return "BSD";
383
- case "BTN" :
384
- return "BTN";
385
- case "BWP" :
386
- return "BWP";
387
- case "BYN" :
388
- return "BYN";
389
- case "BZD" :
390
- return "BZD";
391
35
  case "CAD" :
392
36
  return "CAD";
393
- case "CDF" :
394
- return "CDF";
395
- case "CHE" :
396
- return "CHE";
397
37
  case "CHF" :
398
38
  return "CHF";
399
- case "CHW" :
400
- return "CHW";
401
- case "CLF" :
402
- return "CLF";
403
- case "CLP" :
404
- return "CLP";
405
39
  case "CNY" :
406
40
  return "CNY";
407
- case "COP" :
408
- return "COP";
409
- case "COU" :
410
- return "COU";
411
- case "CRC" :
412
- return "CRC";
413
- case "CUP" :
414
- return "CUP";
415
- case "CVE" :
416
- return "CVE";
417
- case "CZK" :
418
- return "CZK";
419
- case "DJF" :
420
- return "DJF";
421
- case "DKK" :
422
- return "DKK";
423
- case "DOP" :
424
- return "DOP";
425
- case "DZD" :
426
- return "DZD";
427
- case "EGP" :
428
- return "EGP";
429
- case "ERN" :
430
- return "ERN";
431
- case "ETB" :
432
- return "ETB";
433
41
  case "EUR" :
434
42
  return "EUR";
435
- case "FJD" :
436
- return "FJD";
437
- case "FKP" :
438
- return "FKP";
439
43
  case "GBP" :
440
44
  return "GBP";
441
- case "GEL" :
442
- return "GEL";
443
- case "GHS" :
444
- return "GHS";
445
- case "GIP" :
446
- return "GIP";
447
- case "GMD" :
448
- return "GMD";
449
- case "GNF" :
450
- return "GNF";
451
- case "GTQ" :
452
- return "GTQ";
453
- case "GYD" :
454
- return "GYD";
455
- case "HKD" :
456
- return "HKD";
457
- case "HNL" :
458
- return "HNL";
459
- case "HTG" :
460
- return "HTG";
461
- case "HUF" :
462
- return "HUF";
463
- case "IDR" :
464
- return "IDR";
465
- case "ILS" :
466
- return "ILS";
467
- case "INR" :
468
- return "INR";
469
- case "IQD" :
470
- return "IQD";
471
- case "IRR" :
472
- return "IRR";
473
- case "ISK" :
474
- return "ISK";
475
- case "JMD" :
476
- return "JMD";
477
- case "JOD" :
478
- return "JOD";
479
45
  case "JPY" :
480
46
  return "JPY";
481
- case "KES" :
482
- return "KES";
483
- case "KGS" :
484
- return "KGS";
485
- case "KHR" :
486
- return "KHR";
487
- case "KMF" :
488
- return "KMF";
489
- case "KPW" :
490
- return "KPW";
491
- case "KRW" :
492
- return "KRW";
493
- case "KWD" :
494
- return "KWD";
495
- case "KYD" :
496
- return "KYD";
497
- case "KZT" :
498
- return "KZT";
499
- case "LAK" :
500
- return "LAK";
501
- case "LBP" :
502
- return "LBP";
503
- case "LKR" :
504
- return "LKR";
505
- case "LRD" :
506
- return "LRD";
507
- case "LSL" :
508
- return "LSL";
509
- case "LYD" :
510
- return "LYD";
511
- case "MAD" :
512
- return "MAD";
513
- case "MDL" :
514
- return "MDL";
515
- case "MGA" :
516
- return "MGA";
517
- case "MKD" :
518
- return "MKD";
519
- case "MMK" :
520
- return "MMK";
521
- case "MNT" :
522
- return "MNT";
523
- case "MOP" :
524
- return "MOP";
525
- case "MRU" :
526
- return "MRU";
527
- case "MUR" :
528
- return "MUR";
529
- case "MVR" :
530
- return "MVR";
531
- case "MWK" :
532
- return "MWK";
533
- case "MXN" :
534
- return "MXN";
535
- case "MXV" :
536
- return "MXV";
537
- case "MYR" :
538
- return "MYR";
539
- case "MZN" :
540
- return "MZN";
541
- case "NAD" :
542
- return "NAD";
543
- case "NGN" :
544
- return "NGN";
545
- case "NIO" :
546
- return "NIO";
547
47
  case "NOK" :
548
48
  return "NOK";
549
- case "NPR" :
550
- return "NPR";
551
- case "NZD" :
552
- return "NZD";
553
- case "OMR" :
554
- return "OMR";
555
- case "PAB" :
556
- return "PAB";
557
- case "PEN" :
558
- return "PEN";
559
- case "PGK" :
560
- return "PGK";
561
- case "PHP" :
562
- return "PHP";
563
- case "PKR" :
564
- return "PKR";
565
- case "PLN" :
566
- return "PLN";
567
- case "PYG" :
568
- return "PYG";
569
- case "QAR" :
570
- return "QAR";
571
- case "RON" :
572
- return "RON";
573
- case "RSD" :
574
- return "RSD";
575
- case "RUB" :
576
- return "RUB";
577
- case "RWF" :
578
- return "RWF";
579
- case "SAR" :
580
- return "SAR";
581
- case "SBD" :
582
- return "SBD";
583
- case "SCR" :
584
- return "SCR";
585
- case "SDG" :
586
- return "SDG";
587
49
  case "SEK" :
588
50
  return "SEK";
589
- case "SGD" :
590
- return "SGD";
591
- case "SHP" :
592
- return "SHP";
593
- case "SLE" :
594
- return "SLE";
595
- case "SOS" :
596
- return "SOS";
597
- case "SRD" :
598
- return "SRD";
599
- case "SSP" :
600
- return "SSP";
601
- case "STN" :
602
- return "STN";
603
- case "SVC" :
604
- return "SVC";
605
- case "SYP" :
606
- return "SYP";
607
- case "SZL" :
608
- return "SZL";
609
- case "THB" :
610
- return "THB";
611
- case "TJS" :
612
- return "TJS";
613
- case "TMT" :
614
- return "TMT";
615
- case "TND" :
616
- return "TND";
617
- case "TOP" :
618
- return "TOP";
619
- case "TRY" :
620
- return "TRY";
621
- case "TTD" :
622
- return "TTD";
623
- case "TWD" :
624
- return "TWD";
625
- case "TZS" :
626
- return "TZS";
627
- case "UAH" :
628
- return "UAH";
629
- case "UGX" :
630
- return "UGX";
631
51
  case "USD" :
632
52
  return "USD";
633
- case "USN" :
634
- return "USN";
635
- case "UYI" :
636
- return "UYI";
637
- case "UYU" :
638
- return "UYU";
639
- case "UYW" :
640
- return "UYW";
641
- case "UZS" :
642
- return "UZS";
643
- case "VED" :
644
- return "VED";
645
- case "VES" :
646
- return "VES";
647
- case "VND" :
648
- return "VND";
649
- case "VUV" :
650
- return "VUV";
651
- case "WST" :
652
- return "WST";
653
- case "XAD" :
654
- return "XAD";
655
- case "XAF" :
656
- return "XAF";
657
- case "XCD" :
658
- return "XCD";
659
- case "XCG" :
660
- return "XCG";
661
- case "XOF" :
662
- return "XOF";
663
- case "XPF" :
664
- return "XPF";
665
- case "YER" :
666
- return "YER";
667
- case "ZAR" :
668
- return "ZAR";
669
- case "ZMW" :
670
- return "ZMW";
671
- case "ZWG" :
672
- return "ZWG";
673
53
  }
674
54
  }
675
55
 
676
56
  function exponent(currency) {
677
- switch (currency) {
678
- case "BHD" :
679
- case "IQD" :
680
- case "JOD" :
681
- case "KWD" :
682
- case "LYD" :
683
- case "OMR" :
684
- case "TND" :
685
- return 3;
686
- case "CLF" :
687
- case "UYW" :
688
- return 4;
689
- case "BIF" :
690
- case "CLP" :
691
- case "DJF" :
692
- case "GNF" :
693
- case "ISK" :
694
- case "JPY" :
695
- case "KMF" :
696
- case "KRW" :
697
- case "PYG" :
698
- case "RWF" :
699
- case "UGX" :
700
- case "UYI" :
701
- case "VND" :
702
- case "VUV" :
703
- case "XAF" :
704
- case "XOF" :
705
- case "XPF" :
706
- return 0;
707
- default:
708
- return 2;
57
+ if (currency === "JPY") {
58
+ return 0;
59
+ } else {
60
+ return 2;
709
61
  }
710
62
  }
711
63
 
@@ -725,7 +77,7 @@ function fromString(raw) {
725
77
  } else {
726
78
  return {
727
79
  TAG: "Error",
728
- _0: `expected an ISO 4217 currency code such as "EUR", got ` + JSON.stringify(raw) + `. Codes are upper-case and exactly three letters.`
80
+ _0: `expected one of the ISO 4217 codes this framework admits (` + all.map(toString).join(", ") + `), got ` + JSON.stringify(raw) + `. Codes are upper-case and exactly three letters.`
729
81
  };
730
82
  }
731
83
  }