@primmel/primmel 1.10.0 → 1.11.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 (71) hide show
  1. package/dist/src/check-rules.d.ts.map +1 -1
  2. package/dist/src/check-rules.js +11 -0
  3. package/dist/src/check-rules.js.map +1 -1
  4. package/dist/src/check.d.ts.map +1 -1
  5. package/dist/src/check.js +102 -0
  6. package/dist/src/check.js.map +1 -1
  7. package/dist/src/ser-des/config/decisionRule.d.ts +5 -0
  8. package/dist/src/ser-des/config/decisionRule.d.ts.map +1 -0
  9. package/dist/src/ser-des/config/decisionRule.js +357 -0
  10. package/dist/src/ser-des/config/decisionRule.js.map +1 -0
  11. package/dist/src/ser-des/config/declaration.d.ts +9 -0
  12. package/dist/src/ser-des/config/declaration.d.ts.map +1 -0
  13. package/dist/src/ser-des/config/declaration.js +288 -0
  14. package/dist/src/ser-des/config/declaration.js.map +1 -0
  15. package/dist/src/ser-des/config/frameworkDocument.d.ts +9 -0
  16. package/dist/src/ser-des/config/frameworkDocument.d.ts.map +1 -0
  17. package/dist/src/ser-des/config/frameworkDocument.js +254 -0
  18. package/dist/src/ser-des/config/frameworkDocument.js.map +1 -0
  19. package/dist/src/ser-des/config/governanceOrgan.d.ts +5 -0
  20. package/dist/src/ser-des/config/governanceOrgan.d.ts.map +1 -0
  21. package/dist/src/ser-des/config/governanceOrgan.js +111 -0
  22. package/dist/src/ser-des/config/governanceOrgan.js.map +1 -0
  23. package/dist/src/ser-des/config/index.d.ts.map +1 -1
  24. package/dist/src/ser-des/config/index.js +91 -0
  25. package/dist/src/ser-des/config/index.js.map +1 -1
  26. package/dist/src/ser-des/config/participantKind.d.ts +5 -0
  27. package/dist/src/ser-des/config/participantKind.d.ts.map +1 -0
  28. package/dist/src/ser-des/config/participantKind.js +329 -0
  29. package/dist/src/ser-des/config/participantKind.js.map +1 -0
  30. package/dist/src/ser-des/config/scheme.d.ts +7 -0
  31. package/dist/src/ser-des/config/scheme.d.ts.map +1 -0
  32. package/dist/src/ser-des/config/scheme.js +434 -0
  33. package/dist/src/ser-des/config/scheme.js.map +1 -0
  34. package/dist/src/ser-des/package.d.ts +3 -0
  35. package/dist/src/ser-des/package.d.ts.map +1 -1
  36. package/dist/src/ser-des/package.js +44 -5
  37. package/dist/src/ser-des/package.js.map +1 -1
  38. package/dist/src/ser-des/parse.d.ts.map +1 -1
  39. package/dist/src/ser-des/parse.js +12 -0
  40. package/dist/src/ser-des/parse.js.map +1 -1
  41. package/dist/src/ser-des/types.d.ts +19 -0
  42. package/dist/src/ser-des/types.d.ts.map +1 -1
  43. package/dist/src/types/DecisionRule.d.ts +84 -0
  44. package/dist/src/types/DecisionRule.d.ts.map +1 -0
  45. package/dist/src/types/DecisionRule.js +17 -0
  46. package/dist/src/types/DecisionRule.js.map +1 -0
  47. package/dist/src/types/Declaration.d.ts +68 -0
  48. package/dist/src/types/Declaration.d.ts.map +1 -0
  49. package/dist/src/types/Declaration.js +22 -0
  50. package/dist/src/types/Declaration.js.map +1 -0
  51. package/dist/src/types/FrameworkDocument.d.ts +57 -0
  52. package/dist/src/types/FrameworkDocument.d.ts.map +1 -0
  53. package/dist/src/types/FrameworkDocument.js +21 -0
  54. package/dist/src/types/FrameworkDocument.js.map +1 -0
  55. package/dist/src/types/GovernanceOrgan.d.ts +23 -0
  56. package/dist/src/types/GovernanceOrgan.d.ts.map +1 -0
  57. package/dist/src/types/GovernanceOrgan.js +14 -0
  58. package/dist/src/types/GovernanceOrgan.js.map +1 -0
  59. package/dist/src/types/ParticipantKind.d.ts +82 -0
  60. package/dist/src/types/ParticipantKind.d.ts.map +1 -0
  61. package/dist/src/types/ParticipantKind.js +22 -0
  62. package/dist/src/types/ParticipantKind.js.map +1 -0
  63. package/dist/src/types/Scheme.d.ts +99 -0
  64. package/dist/src/types/Scheme.d.ts.map +1 -0
  65. package/dist/src/types/Scheme.js +24 -0
  66. package/dist/src/types/Scheme.js.map +1 -0
  67. package/dist/src/types/Standard.d.ts +19 -0
  68. package/dist/src/types/Standard.d.ts.map +1 -1
  69. package/dist-browser/index.mjs +990 -178
  70. package/dist-cli/primmel.mjs +1715 -4
  71. package/package.json +1 -1
@@ -0,0 +1,434 @@
1
+ "use strict";
2
+ // ─────────────────────────────────────────────────────────────────────
3
+ // The scheme-architecture constructs (smart TODO.roadmap/40; the
4
+ // packages-as-SSOT epic) — B 18:2025 3.37/3.38, §5.4, clause 15:
5
+ //
6
+ // scheme_definition scheme_a {
7
+ // label "Scheme A"
8
+ // term "3.37"
9
+ // clause "5.4.3"
10
+ // definition "Advanced level of the OIML-CS where accreditation or
11
+ // peer assessment is used as the basis for demonstrating
12
+ // compliance."
13
+ // demonstration {
14
+ // method peer_evaluation
15
+ // clause "5.4.3.1"
16
+ // basis { accreditation peer_assessment }
17
+ // note "Compliance demonstrated by peer evaluation on the basis
18
+ // of an accreditation assessment or a peer assessment …"
19
+ // }
20
+ // source { doc "urn:oiml:pub:b:18:2025" clause "3.37" }
21
+ // }
22
+ //
23
+ // scheme_lifecycle category_scheme {
24
+ // applies_to instrument_category
25
+ // initial SCHEME_B
26
+ // entry {
27
+ // action category_included
28
+ // automatic true
29
+ // clause "15.1"
30
+ // conditions_ref auto_inclusion
31
+ // description "A category of measuring instrument … is
32
+ // automatically included in the OIML-CS in Scheme B when the
33
+ // conditions of §4.2 are met (§15.1) …"
34
+ // }
35
+ // transition SCHEME_B -> SCHEME_A action transition_period_elapsed {
36
+ // clause "15.2"
37
+ // description "Two years after inclusion in the OIML-CS, the
38
+ // category automatically transitions to Scheme A (§15.2) …"
39
+ // }
40
+ // trigger two-year-transition {
41
+ // kind timer
42
+ // action transition_period_elapsed
43
+ // window { years 2 }
44
+ // clause "15.2"
45
+ // deferrable true
46
+ // deferral_note "The Management Committee may propose to the CIML
47
+ // that a category does not automatically transition …"
48
+ // description "The two-year Scheme-B window opened by the
49
+ // category's inclusion …"
50
+ // }
51
+ // source { doc "urn:oiml:pub:b:18:2025" clause "15" }
52
+ // }
53
+ //
54
+ // The transition surface deliberately mirrors the state_machine grammar
55
+ // (`transition <From> -> <To> action <Action> { … }`).
56
+ // ─────────────────────────────────────────────────────────────────────
57
+ Object.defineProperty(exports, "__esModule", { value: true });
58
+ exports.dumpSchemeLifecycle = exports.parseSchemeLifecycle = exports.dumpSchemeDefinition = exports.parseSchemeDefinition = void 0;
59
+ const tokenize_1 = require("../tokenize");
60
+ const parse_block_1 = require("../parse-block");
61
+ const field_parser_1 = require("./field-parser");
62
+ function parseDemonstration(block) {
63
+ const demonstration = {
64
+ method: '',
65
+ clause: '',
66
+ basis: [],
67
+ note: '',
68
+ };
69
+ (0, parse_block_1.forEachEntry)(block, (keyword, value) => {
70
+ if (keyword === 'method') {
71
+ demonstration.method = (0, tokenize_1.stripWrapping)(value());
72
+ }
73
+ else if (keyword === 'clause') {
74
+ demonstration.clause = (0, tokenize_1.stripWrapping)(value());
75
+ }
76
+ else if (keyword === 'basis') {
77
+ demonstration.basis = (0, tokenize_1.tokenizePackage)((0, tokenize_1.unwrapBlock)(value())).filter(s => s.length > 0);
78
+ }
79
+ else if (keyword === 'note') {
80
+ demonstration.note = (0, tokenize_1.stripWrapping)(value());
81
+ }
82
+ else {
83
+ return false;
84
+ }
85
+ return true;
86
+ }, { construct: 'scheme_definition demonstration', id: '' });
87
+ return demonstration;
88
+ }
89
+ const parseSchemeDefinition = (id, data) => {
90
+ const scheme = {
91
+ id,
92
+ label: '',
93
+ term: '',
94
+ clause: '',
95
+ definition: '',
96
+ demonstration: null,
97
+ source: { doc: '', clause: '' },
98
+ };
99
+ (0, parse_block_1.forEachEntry)(data, (keyword, value) => {
100
+ if (keyword === 'label') {
101
+ scheme.label = (0, tokenize_1.stripWrapping)(value());
102
+ }
103
+ else if (keyword === 'term') {
104
+ scheme.term = (0, tokenize_1.stripWrapping)(value());
105
+ }
106
+ else if (keyword === 'clause') {
107
+ scheme.clause = (0, tokenize_1.stripWrapping)(value());
108
+ }
109
+ else if (keyword === 'definition') {
110
+ scheme.definition = (0, tokenize_1.stripWrapping)(value());
111
+ }
112
+ else if (keyword === 'demonstration') {
113
+ scheme.demonstration = parseDemonstration((0, tokenize_1.unwrapBlock)(value()));
114
+ }
115
+ else if (keyword === 'source') {
116
+ scheme.source = (0, field_parser_1.readSource)((0, tokenize_1.unwrapBlock)(value()));
117
+ }
118
+ else {
119
+ return false;
120
+ }
121
+ return true;
122
+ }, { construct: 'scheme_definition', id });
123
+ return ctx => {
124
+ ctx.schemeDefinitions[id] = scheme;
125
+ return ctx;
126
+ };
127
+ };
128
+ exports.parseSchemeDefinition = parseSchemeDefinition;
129
+ function dumpSourceBlock(src) {
130
+ let out = ' source {\n';
131
+ if (src.doc) {
132
+ out += ' doc "' + (0, tokenize_1.escapeString)(src.doc) + '"\n';
133
+ }
134
+ if (src.clause) {
135
+ out += ' clause "' + (0, tokenize_1.escapeString)(src.clause) + '"\n';
136
+ }
137
+ out += ' }\n';
138
+ return out;
139
+ }
140
+ const dumpSchemeDefinition = function (s) {
141
+ let out = 'scheme_definition ' + s.id + ' {\n';
142
+ if (s.label) {
143
+ out += ' label "' + (0, tokenize_1.escapeString)(s.label) + '"\n';
144
+ }
145
+ if (s.term) {
146
+ out += ' term "' + (0, tokenize_1.escapeString)(s.term) + '"\n';
147
+ }
148
+ if (s.clause) {
149
+ out += ' clause "' + (0, tokenize_1.escapeString)(s.clause) + '"\n';
150
+ }
151
+ if (s.definition) {
152
+ out += ' definition "' + (0, tokenize_1.escapeString)(s.definition) + '"\n';
153
+ }
154
+ if (s.demonstration) {
155
+ const d = s.demonstration;
156
+ out += ' demonstration {\n';
157
+ if (d.method) {
158
+ out += ' method ' + (0, field_parser_1.dumpBareSafe)(d.method) + '\n';
159
+ }
160
+ if (d.clause) {
161
+ out += ' clause "' + (0, tokenize_1.escapeString)(d.clause) + '"\n';
162
+ }
163
+ if (d.basis.length > 0) {
164
+ out += ' basis { ' + d.basis.map(field_parser_1.dumpBareSafe).join(' ') + ' }\n';
165
+ }
166
+ if (d.note) {
167
+ out += ' note "' + (0, tokenize_1.escapeString)(d.note) + '"\n';
168
+ }
169
+ out += ' }\n';
170
+ }
171
+ if (s.source.doc || s.source.clause) {
172
+ out += dumpSourceBlock(s.source);
173
+ }
174
+ out += '}\n';
175
+ return out;
176
+ };
177
+ exports.dumpSchemeDefinition = dumpSchemeDefinition;
178
+ function parseEntry(block) {
179
+ const entry = {
180
+ action: '',
181
+ automatic: false,
182
+ clause: '',
183
+ conditions_ref: '',
184
+ description: '',
185
+ };
186
+ (0, parse_block_1.forEachEntry)(block, (keyword, value) => {
187
+ if (keyword === 'action') {
188
+ entry.action = (0, tokenize_1.stripWrapping)(value());
189
+ }
190
+ else if (keyword === 'automatic') {
191
+ entry.automatic = value() === 'true';
192
+ }
193
+ else if (keyword === 'clause') {
194
+ entry.clause = (0, tokenize_1.stripWrapping)(value());
195
+ }
196
+ else if (keyword === 'conditions_ref') {
197
+ entry.conditions_ref = (0, tokenize_1.stripWrapping)(value());
198
+ }
199
+ else if (keyword === 'description') {
200
+ entry.description = (0, tokenize_1.stripWrapping)(value());
201
+ }
202
+ else {
203
+ return false;
204
+ }
205
+ return true;
206
+ }, { construct: 'scheme_lifecycle entry', id: '' });
207
+ return entry;
208
+ }
209
+ function parseTransition(block) {
210
+ const facets = {
211
+ clause: '',
212
+ decided_by: '',
213
+ on_proposal_of: '',
214
+ description: '',
215
+ };
216
+ (0, parse_block_1.forEachEntry)(block, (keyword, value) => {
217
+ if (keyword === 'clause') {
218
+ facets.clause = (0, tokenize_1.stripWrapping)(value());
219
+ }
220
+ else if (keyword === 'decided_by') {
221
+ facets.decided_by = (0, tokenize_1.stripWrapping)(value());
222
+ }
223
+ else if (keyword === 'on_proposal_of') {
224
+ facets.on_proposal_of = (0, tokenize_1.stripWrapping)(value());
225
+ }
226
+ else if (keyword === 'description') {
227
+ facets.description = (0, tokenize_1.stripWrapping)(value());
228
+ }
229
+ else {
230
+ return false;
231
+ }
232
+ return true;
233
+ }, { construct: 'scheme_lifecycle transition', id: '' });
234
+ return facets;
235
+ }
236
+ function parseTrigger(id, block) {
237
+ const trigger = {
238
+ id,
239
+ kind: '',
240
+ action: '',
241
+ windowYears: 0,
242
+ windowMonths: 0,
243
+ clause: '',
244
+ deferrable: false,
245
+ deferral_note: '',
246
+ description: '',
247
+ };
248
+ (0, parse_block_1.forEachEntry)(block, (keyword, value) => {
249
+ if (keyword === 'kind') {
250
+ trigger.kind = (0, tokenize_1.stripWrapping)(value());
251
+ }
252
+ else if (keyword === 'action') {
253
+ trigger.action = (0, tokenize_1.stripWrapping)(value());
254
+ }
255
+ else if (keyword === 'window') {
256
+ const wt = (0, tokenize_1.tokenizePackage)((0, tokenize_1.unwrapBlock)(value()));
257
+ for (let i = 0; i + 1 < wt.length; i += 2) {
258
+ if (wt[i] === 'years') {
259
+ trigger.windowYears = parseInt((0, tokenize_1.stripWrapping)(wt[i + 1]), 10) || 0;
260
+ }
261
+ else if (wt[i] === 'months') {
262
+ trigger.windowMonths = parseInt((0, tokenize_1.stripWrapping)(wt[i + 1]), 10) || 0;
263
+ }
264
+ }
265
+ }
266
+ else if (keyword === 'clause') {
267
+ trigger.clause = (0, tokenize_1.stripWrapping)(value());
268
+ }
269
+ else if (keyword === 'deferrable') {
270
+ trigger.deferrable = value() === 'true';
271
+ }
272
+ else if (keyword === 'deferral_note') {
273
+ trigger.deferral_note = (0, tokenize_1.stripWrapping)(value());
274
+ }
275
+ else if (keyword === 'description') {
276
+ trigger.description = (0, tokenize_1.stripWrapping)(value());
277
+ }
278
+ else {
279
+ return false;
280
+ }
281
+ return true;
282
+ }, { construct: 'scheme_lifecycle trigger', id });
283
+ return trigger;
284
+ }
285
+ const parseSchemeLifecycle = (id, data) => {
286
+ const lifecycle = {
287
+ id,
288
+ applies_to: '',
289
+ initial: '',
290
+ entry: null,
291
+ transitions: [],
292
+ triggers: [],
293
+ source: { doc: '', clause: '' },
294
+ };
295
+ (0, parse_block_1.forEachEntry)(data, (keyword, value, peek) => {
296
+ if (keyword === 'applies_to') {
297
+ lifecycle.applies_to = (0, tokenize_1.stripWrapping)(value());
298
+ }
299
+ else if (keyword === 'initial') {
300
+ lifecycle.initial = (0, tokenize_1.stripWrapping)(value());
301
+ }
302
+ else if (keyword === 'entry') {
303
+ lifecycle.entry = parseEntry((0, tokenize_1.unwrapBlock)(value()));
304
+ }
305
+ else if (keyword === 'transition') {
306
+ // transition <From> -> <To> action <ActionName> { … } — the
307
+ // state_machine surface, with framework facets in the block.
308
+ const from = (0, tokenize_1.stripWrapping)(value());
309
+ const arrow = peek();
310
+ if (arrow === undefined || (arrow !== '->' && arrow !== '→')) {
311
+ throw new Error(`Parsing error: scheme_lifecycle. ID ${id}: transition ${from} is missing its '->'`);
312
+ }
313
+ value(); // the arrow
314
+ const to = (0, tokenize_1.stripWrapping)(value());
315
+ let action = '';
316
+ if (peek() === 'action') {
317
+ value(); // 'action'
318
+ action = (0, tokenize_1.stripWrapping)(value());
319
+ }
320
+ const head = peek();
321
+ if (head === undefined || !head.startsWith('{')) {
322
+ throw new Error(`Parsing error: scheme_lifecycle. ID ${id}: transition ${from} -> ${to} is missing its block`);
323
+ }
324
+ const facets = parseTransition((0, tokenize_1.unwrapBlock)(value()));
325
+ lifecycle.transitions.push({ from, to, action, ...facets });
326
+ }
327
+ else if (keyword === 'trigger') {
328
+ const trigId = (0, tokenize_1.stripWrapping)(value());
329
+ const head = peek();
330
+ if (head === undefined || !head.startsWith('{')) {
331
+ throw new Error(`Parsing error: scheme_lifecycle. ID ${id}: trigger ${trigId} is missing its block`);
332
+ }
333
+ lifecycle.triggers.push(parseTrigger(trigId, (0, tokenize_1.unwrapBlock)(value())));
334
+ }
335
+ else if (keyword === 'source') {
336
+ lifecycle.source = (0, field_parser_1.readSource)((0, tokenize_1.unwrapBlock)(value()));
337
+ }
338
+ else {
339
+ return false;
340
+ }
341
+ return true;
342
+ }, { construct: 'scheme_lifecycle', id });
343
+ return ctx => {
344
+ ctx.schemeLifecycles[id] = lifecycle;
345
+ return ctx;
346
+ };
347
+ };
348
+ exports.parseSchemeLifecycle = parseSchemeLifecycle;
349
+ const dumpSchemeLifecycle = function (l) {
350
+ let out = 'scheme_lifecycle ' + l.id + ' {\n';
351
+ if (l.applies_to) {
352
+ out += ' applies_to ' + (0, field_parser_1.dumpBareSafe)(l.applies_to) + '\n';
353
+ }
354
+ if (l.initial) {
355
+ out += ' initial ' + (0, field_parser_1.dumpBareSafe)(l.initial) + '\n';
356
+ }
357
+ if (l.entry) {
358
+ const e = l.entry;
359
+ out += ' entry {\n';
360
+ if (e.action) {
361
+ out += ' action ' + (0, field_parser_1.dumpBareSafe)(e.action) + '\n';
362
+ }
363
+ out += ' automatic ' + (e.automatic ? 'true' : 'false') + '\n';
364
+ if (e.clause) {
365
+ out += ' clause "' + (0, tokenize_1.escapeString)(e.clause) + '"\n';
366
+ }
367
+ if (e.conditions_ref) {
368
+ out += ' conditions_ref ' + (0, field_parser_1.dumpBareSafe)(e.conditions_ref) + '\n';
369
+ }
370
+ if (e.description) {
371
+ out += ' description "' + (0, tokenize_1.escapeString)(e.description) + '"\n';
372
+ }
373
+ out += ' }\n';
374
+ }
375
+ for (const t of l.transitions) {
376
+ out += ' transition ' + (0, field_parser_1.dumpBareSafe)(t.from) + ' -> ' + (0, field_parser_1.dumpBareSafe)(t.to);
377
+ if (t.action) {
378
+ out += ' action ' + (0, field_parser_1.dumpBareSafe)(t.action);
379
+ }
380
+ out += ' {\n';
381
+ if (t.clause) {
382
+ out += ' clause "' + (0, tokenize_1.escapeString)(t.clause) + '"\n';
383
+ }
384
+ if (t.decided_by) {
385
+ out += ' decided_by ' + (0, field_parser_1.dumpBareSafe)(t.decided_by) + '\n';
386
+ }
387
+ if (t.on_proposal_of) {
388
+ out += ' on_proposal_of ' + (0, field_parser_1.dumpBareSafe)(t.on_proposal_of) + '\n';
389
+ }
390
+ if (t.description) {
391
+ out += ' description "' + (0, tokenize_1.escapeString)(t.description) + '"\n';
392
+ }
393
+ out += ' }\n';
394
+ }
395
+ for (const tr of l.triggers) {
396
+ out += ' trigger ' + (0, field_parser_1.dumpBareSafe)(tr.id) + ' {\n';
397
+ if (tr.kind) {
398
+ out += ' kind ' + (0, field_parser_1.dumpBareSafe)(tr.kind) + '\n';
399
+ }
400
+ if (tr.action) {
401
+ out += ' action ' + (0, field_parser_1.dumpBareSafe)(tr.action) + '\n';
402
+ }
403
+ if (tr.windowYears > 0 || tr.windowMonths > 0) {
404
+ let w = ' window {';
405
+ if (tr.windowYears > 0) {
406
+ w += ' years ' + tr.windowYears;
407
+ }
408
+ if (tr.windowMonths > 0) {
409
+ w += ' months ' + tr.windowMonths;
410
+ }
411
+ out += w + ' }\n';
412
+ }
413
+ if (tr.clause) {
414
+ out += ' clause "' + (0, tokenize_1.escapeString)(tr.clause) + '"\n';
415
+ }
416
+ if (tr.deferrable) {
417
+ out += ' deferrable true\n';
418
+ }
419
+ if (tr.deferral_note) {
420
+ out += ' deferral_note "' + (0, tokenize_1.escapeString)(tr.deferral_note) + '"\n';
421
+ }
422
+ if (tr.description) {
423
+ out += ' description "' + (0, tokenize_1.escapeString)(tr.description) + '"\n';
424
+ }
425
+ out += ' }\n';
426
+ }
427
+ if (l.source.doc || l.source.clause) {
428
+ out += dumpSourceBlock(l.source);
429
+ }
430
+ out += '}\n';
431
+ return out;
432
+ };
433
+ exports.dumpSchemeLifecycle = dumpSchemeLifecycle;
434
+ //# sourceMappingURL=scheme.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"scheme.js","sourceRoot":"","sources":["../../../../src/ser-des/config/scheme.ts"],"names":[],"mappings":"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"}
@@ -1,6 +1,7 @@
1
1
  import Standard from '../types/Standard';
2
2
  import type { LoadOptions, LoadResult } from './index';
3
3
  import type { PackageManifest } from '../types/Package';
4
+ import type { ParseContext } from './types';
4
5
  export interface PackageFile {
5
6
  path: string;
6
7
  role: 'manifest' | 'content';
@@ -118,4 +119,6 @@ export declare class CompositionError extends Error {
118
119
  * `extends` (treated as one more uses entry), first occurrence wins.
119
120
  */
120
121
  export declare function effectiveUses(manifest: PackageManifest): string[];
122
+ /** The id-keyed ParseContext collections that merge across packages. */
123
+ export declare const MERGE_FIELDS: (keyof ParseContext)[];
121
124
  //# sourceMappingURL=package.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"package.d.ts","sourceRoot":"","sources":["../../../src/ser-des/package.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"package.d.ts","sourceRoot":"","sources":["../../../src/ser-des/package.ts"],"names":[],"mappings":"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"}
@@ -9,6 +9,9 @@
9
9
  // <dir>/specification/**/*.prl — requirements/conformance/tables/symbols/calcs
10
10
  // <dir>/execution/**/*.prl — forms/subforms/test-report
11
11
  // <dir>/evaluation/*.prl — workflow/state-machines/processes/roles/etc.
12
+ // <dir>/framework/**/*.prl — the certification-framework registers (v3.3:
13
+ // participant kinds, organs, declarations, schemes,
14
+ // documents, decision rules)
12
15
  // <dir>/*.prl — terminology/references/notes/etc. (root level)
13
16
  //
14
17
  // Merge semantics: files are preprocessed (includes resolved) and parsed
@@ -23,7 +26,7 @@
23
26
  // untouched: same joined stream, same parse, same resolution.
24
27
  // ─────────────────────────────────────────────────────────────────────
25
28
  Object.defineProperty(exports, "__esModule", { value: true });
26
- exports.CompositionError = void 0;
29
+ exports.MERGE_FIELDS = exports.CompositionError = void 0;
27
30
  exports.packageFiles = packageFiles;
28
31
  exports.loadPackage = loadPackage;
29
32
  exports.groupBySourceFile = groupBySourceFile;
@@ -44,6 +47,7 @@ const CONVENTION_DIRS = [
44
47
  'specification',
45
48
  'execution',
46
49
  'evaluation',
50
+ 'framework',
47
51
  ];
48
52
  function collectPrlFiles(dir) {
49
53
  const out = [];
@@ -300,7 +304,11 @@ function extendsDeprecationIssue(m) {
300
304
  };
301
305
  }
302
306
  /** The id-keyed ParseContext collections that merge across packages. */
303
- const MERGE_FIELDS = [
307
+ // The composition contract (TODO.roadmap/05): every id-keyed
308
+ // ParseContext collection MUST appear here — a missing field is
309
+ // silently dropped from `uses` composition. test/merge-fields.test.ts
310
+ // guards the equivalence at runtime.
311
+ exports.MERGE_FIELDS = [
304
312
  'approvals',
305
313
  'roles',
306
314
  'processes',
@@ -360,6 +368,37 @@ const MERGE_FIELDS = [
360
368
  // protection.
361
369
  'formulasUsed',
362
370
  'texts',
371
+ // The certification-framework registers (smart TODO.roadmap/40; the
372
+ // packages-as-SSOT epic) — the framework package's participant kinds
373
+ // and organs compose into every scheme-side model through `uses`.
374
+ 'participantKinds',
375
+ 'governanceOrgans',
376
+ 'declarationKinds',
377
+ 'declarationStatuses',
378
+ 'declarationGates',
379
+ 'schemeDefinitions',
380
+ 'schemeLifecycles',
381
+ 'frameworkDocuments',
382
+ 'documentPrecedences',
383
+ 'autoInclusions',
384
+ 'decisionRules',
385
+ // The pre-existing drift closed (the packages-as-SSOT epic): these
386
+ // collections existed as constructs but were never merged, so `uses`
387
+ // composition silently dropped them — comments, predicates, the
388
+ // artifact registers, the activity archetypes, connector profiles,
389
+ // monitors, passports, dataspaces, policies, and the top-level
390
+ // dimensions all compose with the same no-redefine semantics now.
391
+ 'comments',
392
+ 'predicates',
393
+ 'artifactDefinitions',
394
+ 'artifactInstances',
395
+ 'activityArchetypes',
396
+ 'connectorProfiles',
397
+ 'monitors',
398
+ 'passports',
399
+ 'dataspaces',
400
+ 'policies',
401
+ 'dimensions',
363
402
  ];
364
403
  /** Parse one package's content files (manifest excluded) as a single
365
404
  * stream, keeping each file's joined-stream range for provenance. */
@@ -435,11 +474,11 @@ function composePackage(rootDir, options, rootManifest, withProvenance = false)
435
474
  pkgChunks.set(id, parsed.chunks);
436
475
  }
437
476
  const provenance = new Map();
438
- for (const field of MERGE_FIELDS) {
477
+ for (const field of exports.MERGE_FIELDS) {
439
478
  provenance.set(field, new Map());
440
479
  }
441
480
  const acc = ctxs.get(order[0]);
442
- for (const field of MERGE_FIELDS) {
481
+ for (const field of exports.MERGE_FIELDS) {
443
482
  for (const key of Object.keys(acc[field])) {
444
483
  provenance.get(field).set(key, order[0]);
445
484
  }
@@ -480,7 +519,7 @@ function composePackage(rootDir, options, rootManifest, withProvenance = false)
480
519
  for (const id of order.slice(1)) {
481
520
  const next = ctxs.get(id);
482
521
  pinGuard(id, next);
483
- for (const field of MERGE_FIELDS) {
522
+ for (const field of exports.MERGE_FIELDS) {
484
523
  const target = acc[field];
485
524
  const pm = provenance.get(field);
486
525
  for (const [key, value] of Object.entries(next[field])) {