@primmel/primmel 1.1.0 → 1.2.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.
- package/dist/index.d.ts +2 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +4 -1
- package/dist/index.js.map +1 -1
- package/dist/src/duplicate-id.d.ts +12 -0
- package/dist/src/duplicate-id.d.ts.map +1 -0
- package/dist/src/duplicate-id.js +38 -0
- package/dist/src/duplicate-id.js.map +1 -0
- package/dist/src/ser-des/config/approval.d.ts.map +1 -1
- package/dist/src/ser-des/config/approval.js +26 -34
- package/dist/src/ser-des/config/approval.js.map +1 -1
- package/dist/src/ser-des/config/calculation.d.ts.map +1 -1
- package/dist/src/ser-des/config/calculation.js +22 -17
- package/dist/src/ser-des/config/calculation.js.map +1 -1
- package/dist/src/ser-des/config/data.d.ts.map +1 -1
- package/dist/src/ser-des/config/data.js +68 -123
- package/dist/src/ser-des/config/data.js.map +1 -1
- package/dist/src/ser-des/config/event.js +4 -4
- package/dist/src/ser-des/config/event.js.map +1 -1
- package/dist/src/ser-des/config/field-parser.d.ts +11 -0
- package/dist/src/ser-des/config/field-parser.d.ts.map +1 -0
- package/dist/src/ser-des/config/field-parser.js +108 -0
- package/dist/src/ser-des/config/field-parser.js.map +1 -0
- package/dist/src/ser-des/config/figure.js +4 -4
- package/dist/src/ser-des/config/figure.js.map +1 -1
- package/dist/src/ser-des/config/flow.d.ts.map +1 -1
- package/dist/src/ser-des/config/flow.js +22 -12
- package/dist/src/ser-des/config/flow.js.map +1 -1
- package/dist/src/ser-des/config/form.d.ts.map +1 -1
- package/dist/src/ser-des/config/form.js +25 -103
- package/dist/src/ser-des/config/form.js.map +1 -1
- package/dist/src/ser-des/config/gateway.d.ts.map +1 -1
- package/dist/src/ser-des/config/gateway.js +10 -18
- package/dist/src/ser-des/config/gateway.js.map +1 -1
- package/dist/src/ser-des/config/index.d.ts +21 -1
- package/dist/src/ser-des/config/index.d.ts.map +1 -1
- package/dist/src/ser-des/config/index.js +247 -196
- package/dist/src/ser-des/config/index.js.map +1 -1
- package/dist/src/ser-des/config/link.js +4 -4
- package/dist/src/ser-des/config/link.js.map +1 -1
- package/dist/src/ser-des/config/mapProfile.d.ts.map +1 -1
- package/dist/src/ser-des/config/mapProfile.js +20 -29
- package/dist/src/ser-des/config/mapProfile.js.map +1 -1
- package/dist/src/ser-des/config/metadata.js +11 -11
- package/dist/src/ser-des/config/metadata.js.map +1 -1
- package/dist/src/ser-des/config/note.d.ts.map +1 -1
- package/dist/src/ser-des/config/note.js +19 -27
- package/dist/src/ser-des/config/note.js.map +1 -1
- package/dist/src/ser-des/config/process.d.ts.map +1 -1
- package/dist/src/ser-des/config/process.js +33 -41
- package/dist/src/ser-des/config/process.js.map +1 -1
- package/dist/src/ser-des/config/provision.d.ts.map +1 -1
- package/dist/src/ser-des/config/provision.js +19 -27
- package/dist/src/ser-des/config/provision.js.map +1 -1
- package/dist/src/ser-des/config/reference.js +4 -4
- package/dist/src/ser-des/config/reference.js.map +1 -1
- package/dist/src/ser-des/config/role.d.ts.map +1 -1
- package/dist/src/ser-des/config/role.js +8 -14
- package/dist/src/ser-des/config/role.js.map +1 -1
- package/dist/src/ser-des/config/stateMachine.js +12 -12
- package/dist/src/ser-des/config/stateMachine.js.map +1 -1
- package/dist/src/ser-des/config/subform.d.ts.map +1 -1
- package/dist/src/ser-des/config/subform.js +14 -98
- package/dist/src/ser-des/config/subform.js.map +1 -1
- package/dist/src/ser-des/config/symbol.d.ts.map +1 -1
- package/dist/src/ser-des/config/symbol.js +34 -42
- package/dist/src/ser-des/config/symbol.js.map +1 -1
- package/dist/src/ser-des/config/table.js +5 -5
- package/dist/src/ser-des/config/table.js.map +1 -1
- package/dist/src/ser-des/config/term.d.ts +5 -0
- package/dist/src/ser-des/config/term.d.ts.map +1 -0
- package/dist/src/ser-des/config/term.js +63 -0
- package/dist/src/ser-des/config/term.js.map +1 -0
- package/dist/src/ser-des/config/viewProfile.d.ts.map +1 -1
- package/dist/src/ser-des/config/viewProfile.js +15 -23
- package/dist/src/ser-des/config/viewProfile.js.map +1 -1
- package/dist/src/ser-des/includes.d.ts +4 -0
- package/dist/src/ser-des/includes.d.ts.map +1 -1
- package/dist/src/ser-des/includes.js +21 -2
- package/dist/src/ser-des/includes.js.map +1 -1
- package/dist/src/ser-des/index.d.ts +19 -0
- package/dist/src/ser-des/index.d.ts.map +1 -1
- package/dist/src/ser-des/index.js +25 -0
- package/dist/src/ser-des/index.js.map +1 -1
- package/dist/src/ser-des/parse-block.d.ts +48 -0
- package/dist/src/ser-des/parse-block.d.ts.map +1 -0
- package/dist/src/ser-des/parse-block.js +108 -0
- package/dist/src/ser-des/parse-block.js.map +1 -0
- package/dist/src/ser-des/parse.d.ts +13 -0
- package/dist/src/ser-des/parse.d.ts.map +1 -1
- package/dist/src/ser-des/parse.js +53 -14
- package/dist/src/ser-des/parse.js.map +1 -1
- package/dist/src/ser-des/resolve.d.ts +16 -3
- package/dist/src/ser-des/resolve.d.ts.map +1 -1
- package/dist/src/ser-des/resolve.js +41 -57
- package/dist/src/ser-des/resolve.js.map +1 -1
- package/dist/src/ser-des/tokenize.d.ts +46 -2
- package/dist/src/ser-des/tokenize.d.ts.map +1 -1
- package/dist/src/ser-des/tokenize.js +141 -123
- package/dist/src/ser-des/tokenize.js.map +1 -1
- package/dist/src/ser-des/types.d.ts +7 -2
- package/dist/src/ser-des/types.d.ts.map +1 -1
- package/dist/src/types/Standard.d.ts +4 -2
- package/dist/src/types/Standard.d.ts.map +1 -1
- package/dist/src/types/Term.d.ts +21 -0
- package/dist/src/types/Term.d.ts.map +1 -0
- package/dist/src/types/Term.js +3 -0
- package/dist/src/types/Term.js.map +1 -0
- package/dist/src/validate.d.ts +34 -0
- package/dist/src/validate.d.ts.map +1 -0
- package/dist/src/validate.js +154 -0
- package/dist/src/validate.js.map +1 -0
- package/package.json +1 -1
|
@@ -2,6 +2,7 @@
|
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.dumpSubformType = exports.parseSubform = void 0;
|
|
4
4
|
const tokenize_1 = require("../tokenize");
|
|
5
|
+
const field_parser_1 = require("./field-parser");
|
|
5
6
|
const parseSubform = function (id, data) {
|
|
6
7
|
const result = {
|
|
7
8
|
id,
|
|
@@ -17,7 +18,7 @@ const parseSubform = function (id, data) {
|
|
|
17
18
|
const command = t[i++];
|
|
18
19
|
if (i < t.length) {
|
|
19
20
|
if (command === 'description') {
|
|
20
|
-
result.description = (0, tokenize_1.
|
|
21
|
+
result.description = (0, tokenize_1.unwrapBlock)(t[i++]);
|
|
21
22
|
}
|
|
22
23
|
else if (command === 'type') {
|
|
23
24
|
const v = t[i++];
|
|
@@ -29,15 +30,15 @@ const parseSubform = function (id, data) {
|
|
|
29
30
|
}
|
|
30
31
|
}
|
|
31
32
|
else if (command === 'parameters') {
|
|
32
|
-
result.parameters = parseParameters((0, tokenize_1.
|
|
33
|
+
result.parameters = parseParameters((0, tokenize_1.unwrapBlock)(t[i++]));
|
|
33
34
|
}
|
|
34
35
|
else if (command === 'field') {
|
|
35
36
|
// field is followed by `name [: type] { ... }`
|
|
36
37
|
const fieldName = t[i++];
|
|
37
38
|
if (i < t.length) {
|
|
38
|
-
const fieldBlock = (0, tokenize_1.
|
|
39
|
+
const fieldBlock = (0, tokenize_1.unwrapBlock)(t[i++]);
|
|
39
40
|
// Determine if there's a type spec between name and {
|
|
40
|
-
const field =
|
|
41
|
+
const field = (0, field_parser_1.parseFormField)(fieldName, fieldBlock);
|
|
41
42
|
result.fields.push(field);
|
|
42
43
|
}
|
|
43
44
|
}
|
|
@@ -74,21 +75,21 @@ function parseParameters(block) {
|
|
|
74
75
|
let defaultValue = '';
|
|
75
76
|
let mapping = null;
|
|
76
77
|
if (i < t.length && t[i].startsWith('{')) {
|
|
77
|
-
const propBlock = (0, tokenize_1.
|
|
78
|
+
const propBlock = (0, tokenize_1.unwrapBlock)(t[i++]);
|
|
78
79
|
const pt = (0, tokenize_1.tokenizePackage)(propBlock);
|
|
79
80
|
let j = 0;
|
|
80
81
|
while (j < pt.length) {
|
|
81
82
|
const cmd = pt[j++];
|
|
82
83
|
if (j < pt.length) {
|
|
83
84
|
if (cmd === 'description') {
|
|
84
|
-
description = (0, tokenize_1.
|
|
85
|
+
description = (0, tokenize_1.unwrapBlock)(pt[j++]);
|
|
85
86
|
}
|
|
86
87
|
else if (cmd === 'default') {
|
|
87
|
-
defaultValue = (0, tokenize_1.
|
|
88
|
+
defaultValue = (0, tokenize_1.unwrapBlock)(pt[j++]);
|
|
88
89
|
hasDefault = true;
|
|
89
90
|
}
|
|
90
91
|
else if (cmd === 'mapping') {
|
|
91
|
-
const mapBlock = (0, tokenize_1.
|
|
92
|
+
const mapBlock = (0, tokenize_1.unwrapBlock)(pt[j++]);
|
|
92
93
|
mapping = {};
|
|
93
94
|
// Map block format: { A: 5, B: 5, C: 3 }
|
|
94
95
|
const mt = (0, tokenize_1.tokenizePackage)(mapBlock);
|
|
@@ -100,7 +101,7 @@ function parseParameters(block) {
|
|
|
100
101
|
k++;
|
|
101
102
|
}
|
|
102
103
|
if (k < mt.length) {
|
|
103
|
-
mapping[key] = (0, tokenize_1.
|
|
104
|
+
mapping[key] = (0, tokenize_1.unwrapBlock)(mt[k++]);
|
|
104
105
|
}
|
|
105
106
|
}
|
|
106
107
|
}
|
|
@@ -115,103 +116,18 @@ function parseParameters(block) {
|
|
|
115
116
|
}
|
|
116
117
|
return params;
|
|
117
118
|
}
|
|
118
|
-
function parseField(name, block) {
|
|
119
|
-
// Simplified: capture properties without full type-spec parsing
|
|
120
|
-
const field = {
|
|
121
|
-
name,
|
|
122
|
-
type: 'string',
|
|
123
|
-
label: '',
|
|
124
|
-
definition: '',
|
|
125
|
-
unit: '',
|
|
126
|
-
required: false,
|
|
127
|
-
measurementMethod: '',
|
|
128
|
-
calculationId: null,
|
|
129
|
-
calculationBindings: [],
|
|
130
|
-
derivation: '',
|
|
131
|
-
evaluation: null,
|
|
132
|
-
values: [],
|
|
133
|
-
defaultValue: '',
|
|
134
|
-
hasDefault: false,
|
|
135
|
-
referenceIds: [],
|
|
136
|
-
fields: [],
|
|
137
|
-
itemsType: '',
|
|
138
|
-
subformRef: null,
|
|
139
|
-
};
|
|
140
|
-
if (block && block.trim()) {
|
|
141
|
-
const t = (0, tokenize_1.tokenizePackage)(block);
|
|
142
|
-
let i = 0;
|
|
143
|
-
// Skip leading type spec (handled by caller or ': type' before {)
|
|
144
|
-
while (i < t.length) {
|
|
145
|
-
const cmd = t[i++];
|
|
146
|
-
if (i < t.length) {
|
|
147
|
-
if (cmd === 'label') {
|
|
148
|
-
field.label = (0, tokenize_1.removePackage)(t[i++]);
|
|
149
|
-
}
|
|
150
|
-
else if (cmd === 'definition') {
|
|
151
|
-
field.definition = (0, tokenize_1.removePackage)(t[i++]);
|
|
152
|
-
}
|
|
153
|
-
else if (cmd === 'unit') {
|
|
154
|
-
field.unit = (0, tokenize_1.removePackage)(t[i++]);
|
|
155
|
-
}
|
|
156
|
-
else if (cmd === 'required') {
|
|
157
|
-
field.required = (0, tokenize_1.removePackage)(t[i++]) === 'true';
|
|
158
|
-
}
|
|
159
|
-
else if (cmd === 'measurement_method') {
|
|
160
|
-
field.measurementMethod = (0, tokenize_1.removePackage)(t[i++]);
|
|
161
|
-
}
|
|
162
|
-
else if (cmd === 'calculation') {
|
|
163
|
-
field.calculationId = (0, tokenize_1.removePackage)(t[i++]);
|
|
164
|
-
}
|
|
165
|
-
else if (cmd === 'calculation_bindings') {
|
|
166
|
-
// Skip the binding block (raw)
|
|
167
|
-
(0, tokenize_1.removePackage)(t[i++]);
|
|
168
|
-
}
|
|
169
|
-
else if (cmd === 'derivation') {
|
|
170
|
-
field.derivation = (0, tokenize_1.removePackage)(t[i++]);
|
|
171
|
-
}
|
|
172
|
-
else if (cmd === 'evaluation') {
|
|
173
|
-
// Skip evaluation block
|
|
174
|
-
(0, tokenize_1.removePackage)(t[i++]);
|
|
175
|
-
}
|
|
176
|
-
else if (cmd === 'values') {
|
|
177
|
-
field.values = (0, tokenize_1.tokenizePackage)(t[i++]);
|
|
178
|
-
}
|
|
179
|
-
else if (cmd === 'default') {
|
|
180
|
-
field.defaultValue = (0, tokenize_1.removePackage)(t[i++]);
|
|
181
|
-
field.hasDefault = true;
|
|
182
|
-
}
|
|
183
|
-
else if (cmd === 'min_items' || cmd === 'max_items') {
|
|
184
|
-
// Placeholders or integers — store raw
|
|
185
|
-
(0, tokenize_1.removePackage)(t[i++]);
|
|
186
|
-
}
|
|
187
|
-
else if (cmd === 'items' || cmd === 'fields') {
|
|
188
|
-
// Nested block — skip for now
|
|
189
|
-
(0, tokenize_1.removePackage)(t[i++]);
|
|
190
|
-
}
|
|
191
|
-
else if (cmd === 'reference') {
|
|
192
|
-
field.referenceIds = (0, tokenize_1.tokenizePackage)(t[i++]);
|
|
193
|
-
}
|
|
194
|
-
else {
|
|
195
|
-
// Unknown property, skip its value
|
|
196
|
-
(0, tokenize_1.removePackage)(t[i++]);
|
|
197
|
-
}
|
|
198
|
-
}
|
|
199
|
-
}
|
|
200
|
-
}
|
|
201
|
-
return field;
|
|
202
|
-
}
|
|
203
119
|
const dumpSubformType = function (sf) {
|
|
204
120
|
let out = 'subform ' + sf.id + ' {\n';
|
|
205
121
|
out += ' type ' + sf.shapeType + '\n';
|
|
206
122
|
if (sf.description) {
|
|
207
|
-
out += ' description "' + sf.description + '"\n';
|
|
123
|
+
out += ' description "' + (0, tokenize_1.escapeString)(sf.description) + '"\n';
|
|
208
124
|
}
|
|
209
125
|
if (sf.parameters.length > 0) {
|
|
210
126
|
out += ' parameters {\n';
|
|
211
127
|
for (const p of sf.parameters) {
|
|
212
128
|
let line = ' ' + p.name + ' : ' + p.type + ' { ';
|
|
213
129
|
if (p.description) {
|
|
214
|
-
line += 'description "' + p.description + '" ';
|
|
130
|
+
line += 'description "' + (0, tokenize_1.escapeString)(p.description) + '" ';
|
|
215
131
|
}
|
|
216
132
|
if (p.hasDefault) {
|
|
217
133
|
line += 'default ' + p.defaultValue + ' ';
|
|
@@ -231,10 +147,10 @@ const dumpSubformType = function (sf) {
|
|
|
231
147
|
for (const f of sf.fields) {
|
|
232
148
|
out += ' field ' + f.name + ' { ';
|
|
233
149
|
if (f.label) {
|
|
234
|
-
out += 'label "' + f.label + '" ';
|
|
150
|
+
out += 'label "' + (0, tokenize_1.escapeString)(f.label) + '" ';
|
|
235
151
|
}
|
|
236
152
|
if (f.unit) {
|
|
237
|
-
out += 'unit "' + f.unit + '" ';
|
|
153
|
+
out += 'unit "' + (0, tokenize_1.escapeString)(f.unit) + '" ';
|
|
238
154
|
}
|
|
239
155
|
if (f.required) {
|
|
240
156
|
out += 'required true ';
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"subform.js","sourceRoot":"","sources":["../../../../src/ser-des/config/subform.ts"],"names":[],"mappings":";;;AACA,
|
|
1
|
+
{"version":3,"file":"subform.js","sourceRoot":"","sources":["../../../../src/ser-des/config/subform.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"symbol.d.ts","sourceRoot":"","sources":["../../../../src/ser-des/config/symbol.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,UAAU,CAAC;
|
|
1
|
+
{"version":3,"file":"symbol.d.ts","sourceRoot":"","sources":["../../../../src/ser-des/config/symbol.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,UAAU,CAAC;AAGzD,OAAO,KAAK,MAAM,MAAM,oBAAoB,CAAC;AAC7C,OAAO,KAAK,EAAc,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AAYvE,eAAO,MAAM,WAAW,EAAE,MAoDzB,CAAC;AAEF,eAAO,MAAM,aAAa,EAAE,QAAQ,CAAC,MAAM,EAAE,gBAAgB,CAY5D,CAAC;AAEF,eAAO,MAAM,UAAU,EAAE,MAAM,CAAC,MAAM,CAyBrC,CAAC"}
|
|
@@ -2,6 +2,7 @@
|
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.dumpSymbol = exports.resolveSymbol = exports.parseSymbol = void 0;
|
|
4
4
|
const tokenize_1 = require("../tokenize");
|
|
5
|
+
const parse_block_1 = require("../parse-block");
|
|
5
6
|
const resolve_1 = require("../resolve");
|
|
6
7
|
const VALID_SYMBOL_TYPES = [
|
|
7
8
|
'number',
|
|
@@ -24,46 +25,37 @@ const parseSymbol = function (id, data) {
|
|
|
24
25
|
ref: [],
|
|
25
26
|
},
|
|
26
27
|
};
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
}
|
|
39
|
-
else if (command === 'type') {
|
|
40
|
-
const v = t[i++];
|
|
41
|
-
if (!VALID_SYMBOL_TYPES.includes(v)) {
|
|
42
|
-
throw new Error(`Parsing error: symbol. ID ${id}: Unknown type ${v} (valid: ${VALID_SYMBOL_TYPES.join(', ')})`);
|
|
43
|
-
}
|
|
44
|
-
result.type = v;
|
|
45
|
-
}
|
|
46
|
-
else if (command === 'unit') {
|
|
47
|
-
result.unit = (0, tokenize_1.removePackage)(t[i++]);
|
|
48
|
-
}
|
|
49
|
-
else if (command === 'latex') {
|
|
50
|
-
result.latex = (0, tokenize_1.removePackage)(t[i++]);
|
|
51
|
-
}
|
|
52
|
-
else if (command === 'values') {
|
|
53
|
-
result.values = (0, tokenize_1.tokenizePackage)(t[i++]);
|
|
54
|
-
}
|
|
55
|
-
else if (command === 'reference') {
|
|
56
|
-
result._relations.ref = (0, tokenize_1.tokenizePackage)(t[i++]);
|
|
57
|
-
}
|
|
58
|
-
else {
|
|
59
|
-
i++; // forward-compatible: skip unknown keyword value
|
|
60
|
-
}
|
|
61
|
-
}
|
|
62
|
-
else {
|
|
63
|
-
throw new Error(`Parsing error: symbol. ID ${id}: Expecting value for ${command}`);
|
|
28
|
+
(0, parse_block_1.forEachEntry)(data, (command, value) => {
|
|
29
|
+
if (command === 'name') {
|
|
30
|
+
result.name = (0, parse_block_1.unwrapped)(value);
|
|
31
|
+
}
|
|
32
|
+
else if (command === 'definition') {
|
|
33
|
+
result.definition = (0, parse_block_1.unwrapped)(value);
|
|
34
|
+
}
|
|
35
|
+
else if (command === 'type') {
|
|
36
|
+
const v = value();
|
|
37
|
+
if (!VALID_SYMBOL_TYPES.includes(v)) {
|
|
38
|
+
throw new Error(`Parsing error: symbol. ID ${id}: Unknown type ${v} (valid: ${VALID_SYMBOL_TYPES.join(', ')})`);
|
|
64
39
|
}
|
|
40
|
+
result.type = v;
|
|
65
41
|
}
|
|
66
|
-
|
|
42
|
+
else if (command === 'unit') {
|
|
43
|
+
result.unit = (0, parse_block_1.unwrapped)(value);
|
|
44
|
+
}
|
|
45
|
+
else if (command === 'latex') {
|
|
46
|
+
result.latex = (0, parse_block_1.unwrapped)(value);
|
|
47
|
+
}
|
|
48
|
+
else if (command === 'values') {
|
|
49
|
+
result.values = (0, tokenize_1.tokenizePackage)(value());
|
|
50
|
+
}
|
|
51
|
+
else if (command === 'reference') {
|
|
52
|
+
result._relations.ref = (0, tokenize_1.tokenizePackage)(value());
|
|
53
|
+
}
|
|
54
|
+
else {
|
|
55
|
+
return false;
|
|
56
|
+
}
|
|
57
|
+
return true;
|
|
58
|
+
}, { construct: 'symbol', id });
|
|
67
59
|
return ctx => {
|
|
68
60
|
ctx.symbols[id] = result;
|
|
69
61
|
return ctx;
|
|
@@ -83,16 +75,16 @@ const resolveSymbol = function (ctx, unresolved) {
|
|
|
83
75
|
exports.resolveSymbol = resolveSymbol;
|
|
84
76
|
const dumpSymbol = function (s) {
|
|
85
77
|
let out = 'symbol ' + s.id + ' {\n';
|
|
86
|
-
out += ' name "' + s.name + '"\n';
|
|
78
|
+
out += ' name "' + (0, tokenize_1.escapeString)(s.name) + '"\n';
|
|
87
79
|
if (s.definition) {
|
|
88
|
-
out += ' definition "' + s.definition + '"\n';
|
|
80
|
+
out += ' definition "' + (0, tokenize_1.escapeString)(s.definition) + '"\n';
|
|
89
81
|
}
|
|
90
82
|
out += ' type ' + s.type + '\n';
|
|
91
83
|
if (s.unit && s.unit !== '1') {
|
|
92
|
-
out += ' unit "' + s.unit + '"\n';
|
|
84
|
+
out += ' unit "' + (0, tokenize_1.escapeString)(s.unit) + '"\n';
|
|
93
85
|
}
|
|
94
86
|
if (s.latex) {
|
|
95
|
-
out += ' latex "' + s.latex + '"\n';
|
|
87
|
+
out += ' latex "' + (0, tokenize_1.escapeString)(s.latex) + '"\n';
|
|
96
88
|
}
|
|
97
89
|
if (s.values.length > 0) {
|
|
98
90
|
out += ' values ' + s.values.join(' ') + '\n';
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"symbol.js","sourceRoot":"","sources":["../../../../src/ser-des/config/symbol.ts"],"names":[],"mappings":";;;AACA,
|
|
1
|
+
{"version":3,"file":"symbol.js","sourceRoot":"","sources":["../../../../src/ser-des/config/symbol.ts"],"names":[],"mappings":"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"}
|
|
@@ -18,21 +18,21 @@ const parseTable = function (id, data) {
|
|
|
18
18
|
const command = t[i++];
|
|
19
19
|
if (i < t.length) {
|
|
20
20
|
if (command === 'title') {
|
|
21
|
-
result.title = (0, tokenize_1.
|
|
21
|
+
result.title = (0, tokenize_1.unwrapBlock)(t[i++]);
|
|
22
22
|
}
|
|
23
23
|
else if (command === 'columns') {
|
|
24
|
-
result.columns = (0, tokenize_1.
|
|
24
|
+
result.columns = (0, tokenize_1.unwrapBlock)(t[i++]);
|
|
25
25
|
}
|
|
26
26
|
else if (command === 'display') {
|
|
27
|
-
result.display = (0, tokenize_1.
|
|
27
|
+
result.display = (0, tokenize_1.unwrapBlock)(t[i++]);
|
|
28
28
|
}
|
|
29
29
|
else if (command === 'domain') {
|
|
30
30
|
// Domain block is captured as raw package string
|
|
31
|
-
result.domain = (0, tokenize_1.
|
|
31
|
+
result.domain = (0, tokenize_1.unwrapBlock)(t[i++]);
|
|
32
32
|
}
|
|
33
33
|
else if (command === 'data') {
|
|
34
34
|
// Data block contains CSV-like rows
|
|
35
|
-
const dataBlock = (0, tokenize_1.
|
|
35
|
+
const dataBlock = (0, tokenize_1.unwrapBlock)(t[i++]);
|
|
36
36
|
result.data = parseTableData(dataBlock);
|
|
37
37
|
}
|
|
38
38
|
else {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"table.js","sourceRoot":"","sources":["../../../../src/ser-des/config/table.ts"],"names":[],"mappings":";;;AACA,
|
|
1
|
+
{"version":3,"file":"table.js","sourceRoot":"","sources":["../../../../src/ser-des/config/table.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"term.d.ts","sourceRoot":"","sources":["../../../../src/ser-des/config/term.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,UAAU,CAAC;AAG/C,OAAO,KAAK,IAAI,MAAM,kBAAkB,CAAC;AAEzC,eAAO,MAAM,SAAS,EAAE,MAmCvB,CAAC;AAEF,eAAO,MAAM,QAAQ,EAAE,MAAM,CAAC,IAAI,CAoBjC,CAAC"}
|
|
@@ -0,0 +1,63 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.dumpTerm = exports.parseTerm = void 0;
|
|
4
|
+
const tokenize_1 = require("../tokenize");
|
|
5
|
+
const parse_block_1 = require("../parse-block");
|
|
6
|
+
const parseTerm = function (id, data) {
|
|
7
|
+
const result = {
|
|
8
|
+
id,
|
|
9
|
+
label: '',
|
|
10
|
+
definition: '',
|
|
11
|
+
symbolId: '',
|
|
12
|
+
referenceIds: [],
|
|
13
|
+
ref: [],
|
|
14
|
+
};
|
|
15
|
+
(0, parse_block_1.forEachEntry)(data, (command, value) => {
|
|
16
|
+
if (command === 'label') {
|
|
17
|
+
result.label = (0, parse_block_1.unwrapped)(value);
|
|
18
|
+
}
|
|
19
|
+
else if (command === 'definition') {
|
|
20
|
+
result.definition = (0, parse_block_1.unwrapped)(value);
|
|
21
|
+
}
|
|
22
|
+
else if (command === 'symbol') {
|
|
23
|
+
// symbol reference may be a bare ID (e.g. `symbol Emax`) or a
|
|
24
|
+
// quoted string (`symbol "Emax"`). stripWrapping handles both.
|
|
25
|
+
result.symbolId = (0, tokenize_1.stripWrapping)(value());
|
|
26
|
+
}
|
|
27
|
+
else if (command === 'reference') {
|
|
28
|
+
result.referenceIds = (0, tokenize_1.tokenizePackage)(value());
|
|
29
|
+
}
|
|
30
|
+
else {
|
|
31
|
+
return false;
|
|
32
|
+
}
|
|
33
|
+
return true;
|
|
34
|
+
}, { construct: 'term', id });
|
|
35
|
+
return ctx => {
|
|
36
|
+
ctx.terms[id] = result;
|
|
37
|
+
return ctx;
|
|
38
|
+
};
|
|
39
|
+
};
|
|
40
|
+
exports.parseTerm = parseTerm;
|
|
41
|
+
const dumpTerm = function (term) {
|
|
42
|
+
let out = 'term ' + term.id + ' {\n';
|
|
43
|
+
if (term.label) {
|
|
44
|
+
out += ' label "' + (0, tokenize_1.escapeString)(term.label) + '"\n';
|
|
45
|
+
}
|
|
46
|
+
if (term.definition) {
|
|
47
|
+
out += ' definition "' + (0, tokenize_1.escapeString)(term.definition) + '"\n';
|
|
48
|
+
}
|
|
49
|
+
if (term.symbolId) {
|
|
50
|
+
out += ' symbol ' + term.symbolId + '\n';
|
|
51
|
+
}
|
|
52
|
+
if (term.referenceIds.length > 0) {
|
|
53
|
+
out += ' reference {\n';
|
|
54
|
+
for (const r of term.referenceIds) {
|
|
55
|
+
out += ' ' + r + '\n';
|
|
56
|
+
}
|
|
57
|
+
out += ' }\n';
|
|
58
|
+
}
|
|
59
|
+
out += '}\n';
|
|
60
|
+
return out;
|
|
61
|
+
};
|
|
62
|
+
exports.dumpTerm = dumpTerm;
|
|
63
|
+
//# sourceMappingURL=term.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"term.js","sourceRoot":"","sources":["../../../../src/ser-des/config/term.ts"],"names":[],"mappings":";;;AACA,0CAA2E;AAC3E,gDAAyD;AAGlD,MAAM,SAAS,GAAW,UAAU,EAAE,EAAE,IAAI;IACjD,MAAM,MAAM,GAAS;QACnB,EAAE;QACF,KAAK,EAAE,EAAE;QACT,UAAU,EAAE,EAAE;QACd,QAAQ,EAAE,EAAE;QACZ,YAAY,EAAE,EAAE;QAChB,GAAG,EAAE,EAAE;KACR,CAAC;IAEF,IAAA,0BAAY,EACV,IAAI,EACJ,CAAC,OAAO,EAAE,KAAK,EAAE,EAAE;QACjB,IAAI,OAAO,KAAK,OAAO,EAAE,CAAC;YACxB,MAAM,CAAC,KAAK,GAAG,IAAA,uBAAS,EAAC,KAAK,CAAC,CAAC;QAClC,CAAC;aAAM,IAAI,OAAO,KAAK,YAAY,EAAE,CAAC;YACpC,MAAM,CAAC,UAAU,GAAG,IAAA,uBAAS,EAAC,KAAK,CAAC,CAAC;QACvC,CAAC;aAAM,IAAI,OAAO,KAAK,QAAQ,EAAE,CAAC;YAChC,8DAA8D;YAC9D,+DAA+D;YAC/D,MAAM,CAAC,QAAQ,GAAG,IAAA,wBAAa,EAAC,KAAK,EAAE,CAAC,CAAC;QAC3C,CAAC;aAAM,IAAI,OAAO,KAAK,WAAW,EAAE,CAAC;YACnC,MAAM,CAAC,YAAY,GAAG,IAAA,0BAAe,EAAC,KAAK,EAAE,CAAC,CAAC;QACjD,CAAC;aAAM,CAAC;YACN,OAAO,KAAK,CAAC;QACf,CAAC;QACD,OAAO,IAAI,CAAC;IACd,CAAC,EACD,EAAE,SAAS,EAAE,MAAM,EAAE,EAAE,EAAE,CAC1B,CAAC;IAEF,OAAO,GAAG,CAAC,EAAE;QACX,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC,GAAG,MAAM,CAAC;QACvB,OAAO,GAAG,CAAC;IACb,CAAC,CAAC;AACJ,CAAC,CAAC;AAnCW,QAAA,SAAS,aAmCpB;AAEK,MAAM,QAAQ,GAAiB,UAAU,IAAI;IAClD,IAAI,GAAG,GAAW,OAAO,GAAG,IAAI,CAAC,EAAE,GAAG,MAAM,CAAC;IAC7C,IAAI,IAAI,CAAC,KAAK,EAAE,CAAC;QACf,GAAG,IAAI,WAAW,GAAG,IAAA,uBAAY,EAAC,IAAI,CAAC,KAAK,CAAC,GAAG,KAAK,CAAC;IACxD,CAAC;IACD,IAAI,IAAI,CAAC,UAAU,EAAE,CAAC;QACpB,GAAG,IAAI,gBAAgB,GAAG,IAAA,uBAAY,EAAC,IAAI,CAAC,UAAU,CAAC,GAAG,KAAK,CAAC;IAClE,CAAC;IACD,IAAI,IAAI,CAAC,QAAQ,EAAE,CAAC;QAClB,GAAG,IAAI,WAAW,GAAG,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC;IAC5C,CAAC;IACD,IAAI,IAAI,CAAC,YAAY,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACjC,GAAG,IAAI,iBAAiB,CAAC;QACzB,KAAK,MAAM,CAAC,IAAI,IAAI,CAAC,YAAY,EAAE,CAAC;YAClC,GAAG,IAAI,MAAM,GAAG,CAAC,GAAG,IAAI,CAAC;QAC3B,CAAC;QACD,GAAG,IAAI,OAAO,CAAC;IACjB,CAAC;IACD,GAAG,IAAI,KAAK,CAAC;IACb,OAAO,GAAG,CAAC;AACb,CAAC,CAAC;AApBW,QAAA,QAAQ,YAoBnB"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"viewProfile.d.ts","sourceRoot":"","sources":["../../../../src/ser-des/config/viewProfile.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,UAAU,CAAC;
|
|
1
|
+
{"version":3,"file":"viewProfile.d.ts","sourceRoot":"","sources":["../../../../src/ser-des/config/viewProfile.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,UAAU,CAAC;AAG/C,OAAO,KAAK,WAAW,MAAM,yBAAyB,CAAC;AAEvD,eAAO,MAAM,gBAAgB,EAAE,MA6B9B,CAAC;AAEF,eAAO,MAAM,eAAe,EAAE,MAAM,CAAC,WAAW,CAa/C,CAAC"}
|
|
@@ -2,6 +2,7 @@
|
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.dumpViewProfile = exports.parseViewProfile = void 0;
|
|
4
4
|
const tokenize_1 = require("../tokenize");
|
|
5
|
+
const parse_block_1 = require("../parse-block");
|
|
5
6
|
const parseViewProfile = function (id, data) {
|
|
6
7
|
const result = {
|
|
7
8
|
id,
|
|
@@ -9,30 +10,21 @@ const parseViewProfile = function (id, data) {
|
|
|
9
10
|
roles: [],
|
|
10
11
|
visibleElements: [],
|
|
11
12
|
};
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
while (i < t.length) {
|
|
16
|
-
const command = t[i++];
|
|
17
|
-
if (i < t.length) {
|
|
18
|
-
if (command === 'description') {
|
|
19
|
-
result.description = (0, tokenize_1.removePackage)(t[i++]);
|
|
20
|
-
}
|
|
21
|
-
else if (command === 'roles') {
|
|
22
|
-
result.roles = (0, tokenize_1.tokenizePackage)(t[i++]);
|
|
23
|
-
}
|
|
24
|
-
else if (command === 'visible') {
|
|
25
|
-
result.visibleElements = (0, tokenize_1.tokenizePackage)(t[i++]);
|
|
26
|
-
}
|
|
27
|
-
else {
|
|
28
|
-
i++; // forward-compatible: skip unknown keyword value
|
|
29
|
-
}
|
|
30
|
-
}
|
|
31
|
-
else {
|
|
32
|
-
throw new Error(`Parsing error: view_profile. ID ${id}: Expecting value for ${command}`);
|
|
33
|
-
}
|
|
13
|
+
(0, parse_block_1.forEachEntry)(data, (command, value) => {
|
|
14
|
+
if (command === 'description') {
|
|
15
|
+
result.description = (0, parse_block_1.unwrapped)(value);
|
|
34
16
|
}
|
|
35
|
-
|
|
17
|
+
else if (command === 'roles') {
|
|
18
|
+
result.roles = (0, tokenize_1.tokenizePackage)(value());
|
|
19
|
+
}
|
|
20
|
+
else if (command === 'visible') {
|
|
21
|
+
result.visibleElements = (0, tokenize_1.tokenizePackage)(value());
|
|
22
|
+
}
|
|
23
|
+
else {
|
|
24
|
+
return false;
|
|
25
|
+
}
|
|
26
|
+
return true;
|
|
27
|
+
}, { construct: 'view_profile', id });
|
|
36
28
|
return ctx => {
|
|
37
29
|
ctx.viewProfiles[id] = result;
|
|
38
30
|
return ctx;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"viewProfile.js","sourceRoot":"","sources":["../../../../src/ser-des/config/viewProfile.ts"],"names":[],"mappings":";;;AACA,
|
|
1
|
+
{"version":3,"file":"viewProfile.js","sourceRoot":"","sources":["../../../../src/ser-des/config/viewProfile.ts"],"names":[],"mappings":";;;AACA,0CAA8C;AAC9C,gDAAyD;AAGlD,MAAM,gBAAgB,GAAW,UAAU,EAAE,EAAE,IAAI;IACxD,MAAM,MAAM,GAAgB;QAC1B,EAAE;QACF,WAAW,EAAE,EAAE;QACf,KAAK,EAAE,EAAE;QACT,eAAe,EAAE,EAAE;KACpB,CAAC;IAEF,IAAA,0BAAY,EACV,IAAI,EACJ,CAAC,OAAO,EAAE,KAAK,EAAE,EAAE;QACjB,IAAI,OAAO,KAAK,aAAa,EAAE,CAAC;YAC9B,MAAM,CAAC,WAAW,GAAG,IAAA,uBAAS,EAAC,KAAK,CAAC,CAAC;QACxC,CAAC;aAAM,IAAI,OAAO,KAAK,OAAO,EAAE,CAAC;YAC/B,MAAM,CAAC,KAAK,GAAG,IAAA,0BAAe,EAAC,KAAK,EAAE,CAAC,CAAC;QAC1C,CAAC;aAAM,IAAI,OAAO,KAAK,SAAS,EAAE,CAAC;YACjC,MAAM,CAAC,eAAe,GAAG,IAAA,0BAAe,EAAC,KAAK,EAAE,CAAC,CAAC;QACpD,CAAC;aAAM,CAAC;YACN,OAAO,KAAK,CAAC;QACf,CAAC;QACD,OAAO,IAAI,CAAC;IACd,CAAC,EACD,EAAE,SAAS,EAAE,cAAc,EAAE,EAAE,EAAE,CAClC,CAAC;IAEF,OAAO,GAAG,CAAC,EAAE;QACX,GAAG,CAAC,YAAY,CAAC,EAAE,CAAC,GAAG,MAAM,CAAC;QAC9B,OAAO,GAAG,CAAC;IACb,CAAC,CAAC;AACJ,CAAC,CAAC;AA7BW,QAAA,gBAAgB,oBA6B3B;AAEK,MAAM,eAAe,GAAwB,UAAU,EAAE;IAC9D,IAAI,GAAG,GAAG,eAAe,GAAG,EAAE,CAAC,EAAE,GAAG,MAAM,CAAC;IAC3C,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC;QACnB,GAAG,IAAI,iBAAiB,GAAG,EAAE,CAAC,WAAW,GAAG,KAAK,CAAC;IACpD,CAAC;IACD,IAAI,EAAE,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACxB,GAAG,IAAI,UAAU,GAAG,EAAE,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC;IAChD,CAAC;IACD,IAAI,EAAE,CAAC,eAAe,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QAClC,GAAG,IAAI,YAAY,GAAG,EAAE,CAAC,eAAe,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC;IAC5D,CAAC;IACD,GAAG,IAAI,KAAK,CAAC;IACb,OAAO,GAAG,CAAC;AACb,CAAC,CAAC;AAbW,QAAA,eAAe,mBAa1B"}
|
|
@@ -7,6 +7,10 @@
|
|
|
7
7
|
* Include paths are resolved relative to the directory of the
|
|
8
8
|
* including file. Absolute paths are also supported.
|
|
9
9
|
*
|
|
10
|
+
* Comment-aware: lines starting (after optional whitespace) with `#`
|
|
11
|
+
* or `//` are skipped, so a comment like `// include "ignored.mmel"`
|
|
12
|
+
* is NOT expanded. This matches the tokenizer's comment handling.
|
|
13
|
+
*
|
|
10
14
|
* Cycles are detected and rejected.
|
|
11
15
|
*/
|
|
12
16
|
export declare function preprocessIncludes(filePath: string, _seen?: Set<string>): string;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"includes.d.ts","sourceRoot":"","sources":["../../../src/ser-des/includes.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"includes.d.ts","sourceRoot":"","sources":["../../../src/ser-des/includes.ts"],"names":[],"mappings":"AAoBA;;;;;;;;;;;;;;GAcG;AACH,wBAAgB,kBAAkB,CAChC,QAAQ,EAAE,MAAM,EAChB,KAAK,GAAE,GAAG,CAAC,MAAM,CAAa,GAC7B,MAAM,CA0CR"}
|
|
@@ -7,12 +7,17 @@
|
|
|
7
7
|
//
|
|
8
8
|
// Design: recursive, relative-path, cycle-detecting. Follows the
|
|
9
9
|
// same convention as C preprocessor #include and AsciiDoc include::.
|
|
10
|
+
//
|
|
11
|
+
// Comment-aware: `#` and `//` comments containing `include "foo"` are
|
|
12
|
+
// NOT expanded. The tokenizer's own comment-stripping logic is mirrored
|
|
13
|
+
// here so the two stages agree on what counts as content.
|
|
10
14
|
// ─────────────────────────────────────────────────────────────────────
|
|
11
15
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
12
16
|
exports.preprocessIncludes = preprocessIncludes;
|
|
13
17
|
const fs_1 = require("fs");
|
|
14
18
|
const path_1 = require("path");
|
|
15
19
|
const INCLUDE_RE = /^include\s+"([^"]+)"/gm;
|
|
20
|
+
const COMMENT_LINE_RE = /^[ \t]*(#|\/\/)/;
|
|
16
21
|
/**
|
|
17
22
|
* Preprocess include directives in a .mmel file.
|
|
18
23
|
*
|
|
@@ -22,6 +27,10 @@ const INCLUDE_RE = /^include\s+"([^"]+)"/gm;
|
|
|
22
27
|
* Include paths are resolved relative to the directory of the
|
|
23
28
|
* including file. Absolute paths are also supported.
|
|
24
29
|
*
|
|
30
|
+
* Comment-aware: lines starting (after optional whitespace) with `#`
|
|
31
|
+
* or `//` are skipped, so a comment like `// include "ignored.mmel"`
|
|
32
|
+
* is NOT expanded. This matches the tokenizer's comment handling.
|
|
33
|
+
*
|
|
25
34
|
* Cycles are detected and rejected.
|
|
26
35
|
*/
|
|
27
36
|
function preprocessIncludes(filePath, _seen = new Set()) {
|
|
@@ -38,8 +47,18 @@ function preprocessIncludes(filePath, _seen = new Set()) {
|
|
|
38
47
|
const content = (0, fs_1.readFileSync)(absPath, 'utf8');
|
|
39
48
|
const dir = (0, path_1.dirname)(absPath);
|
|
40
49
|
// Replace each include directive with the preprocessed content of
|
|
41
|
-
// the referenced file
|
|
42
|
-
|
|
50
|
+
// the referenced file. Skip comment lines so a `// include "..."` in
|
|
51
|
+
// a comment doesn't get falsely expanded.
|
|
52
|
+
return content.replace(INCLUDE_RE, (match, includePath) => {
|
|
53
|
+
// Look backward from the match start to the start of the line —
|
|
54
|
+
// if everything before the match on this line is whitespace
|
|
55
|
+
// followed by `#` or `//`, the match is inside a comment.
|
|
56
|
+
const matchEnd = INCLUDE_RE.lastIndex;
|
|
57
|
+
const lineStart = content.lastIndexOf('\n', matchEnd - match.length) + 1;
|
|
58
|
+
const prefix = content.slice(lineStart, matchEnd - match.length);
|
|
59
|
+
if (COMMENT_LINE_RE.test(prefix)) {
|
|
60
|
+
return match; // in a comment — leave untouched
|
|
61
|
+
}
|
|
43
62
|
const resolved = (0, path_1.isAbsolute)(includePath)
|
|
44
63
|
? includePath
|
|
45
64
|
: (0, path_1.resolve)(dir, includePath);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"includes.js","sourceRoot":"","sources":["../../../src/ser-des/includes.ts"],"names":[],"mappings":";AAAA,wEAAwE;AACxE,wBAAwB;AACxB,EAAE;AACF,uEAAuE;AACvE,gEAAgE;AAChE,EAAE;AACF,iEAAiE;AACjE,qEAAqE;AACrE,wEAAwE;;
|
|
1
|
+
{"version":3,"file":"includes.js","sourceRoot":"","sources":["../../../src/ser-des/includes.ts"],"names":[],"mappings":";AAAA,wEAAwE;AACxE,wBAAwB;AACxB,EAAE;AACF,uEAAuE;AACvE,gEAAgE;AAChE,EAAE;AACF,iEAAiE;AACjE,qEAAqE;AACrE,EAAE;AACF,sEAAsE;AACtE,wEAAwE;AACxE,0DAA0D;AAC1D,wEAAwE;;AAuBxE,gDA6CC;AAlED,2BAA8C;AAC9C,+BAAoD;AAEpD,MAAM,UAAU,GAAG,wBAAwB,CAAC;AAC5C,MAAM,eAAe,GAAG,iBAAiB,CAAC;AAE1C;;;;;;;;;;;;;;GAcG;AACH,SAAgB,kBAAkB,CAChC,QAAgB,EAChB,QAAqB,IAAI,GAAG,EAAE;IAE9B,MAAM,OAAO,GAAG,IAAA,cAAO,EAAC,QAAQ,CAAC,CAAC;IAElC,IAAI,KAAK,CAAC,GAAG,CAAC,OAAO,CAAC,EAAE,CAAC;QACvB,MAAM,IAAI,KAAK,CACb,2BAA2B,OAAO,YAAY,CAAC,GAAG,KAAK,EAAE,OAAO,CAAC;aAC9D,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,CAAC;aAC5B,IAAI,CAAC,KAAK,CAAC,GAAG,CAClB,CAAC;IACJ,CAAC;IACD,KAAK,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;IAEnB,IAAI,CAAC,IAAA,eAAU,EAAC,OAAO,CAAC,EAAE,CAAC;QACzB,MAAM,IAAI,KAAK,CAAC,2BAA2B,OAAO,EAAE,CAAC,CAAC;IACxD,CAAC;IAED,MAAM,OAAO,GAAG,IAAA,iBAAY,EAAC,OAAO,EAAE,MAAM,CAAC,CAAC;IAC9C,MAAM,GAAG,GAAG,IAAA,cAAO,EAAC,OAAO,CAAC,CAAC;IAE7B,kEAAkE;IAClE,qEAAqE;IACrE,0CAA0C;IAC1C,OAAO,OAAO,CAAC,OAAO,CAAC,UAAU,EAAE,CAAC,KAAK,EAAE,WAAmB,EAAE,EAAE;QAChE,gEAAgE;QAChE,4DAA4D;QAC5D,0DAA0D;QAC1D,MAAM,QAAQ,GAAG,UAAU,CAAC,SAAS,CAAC;QACtC,MAAM,SAAS,GAAG,OAAO,CAAC,WAAW,CAAC,IAAI,EAAE,QAAQ,GAAG,KAAK,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;QACzE,MAAM,MAAM,GAAG,OAAO,CAAC,KAAK,CAAC,SAAS,EAAE,QAAQ,GAAG,KAAK,CAAC,MAAM,CAAC,CAAC;QACjE,IAAI,eAAe,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC;YACjC,OAAO,KAAK,CAAC,CAAC,iCAAiC;QACjD,CAAC;QAED,MAAM,QAAQ,GAAG,IAAA,iBAAU,EAAC,WAAW,CAAC;YACtC,CAAC,CAAC,WAAW;YACb,CAAC,CAAC,IAAA,cAAO,EAAC,GAAG,EAAE,WAAW,CAAC,CAAC;QAE9B,qCAAqC;QACrC,MAAM,OAAO,GAAG,QAAQ,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,GAAG,QAAQ,OAAO,CAAC;QAE3E,OAAO,kBAAkB,CAAC,OAAO,EAAE,IAAI,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC;IACrD,CAAC,CAAC,CAAC;AACL,CAAC"}
|