@arkadia/data 0.1.9 → 0.1.11

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1,6 +1,7 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.Encoder = void 0;
4
+ const Node_1 = require("../models/Node");
4
5
  class Colors {
5
6
  }
6
7
  Colors.RESET = '\x1b[0m';
@@ -11,7 +12,7 @@ Colors.NULL = '\x1b[90m'; // gray
11
12
  Colors.TYPE = '\x1b[96m'; // cyan
12
13
  Colors.KEY = '\x1b[93m'; // yellow
13
14
  Colors.SCHEMA = '\x1b[91m'; // red (for @TypeName)
14
- Colors.TAG = '\x1b[91m';
15
+ Colors.TAG = '\x1b[35m';
15
16
  Colors.ATTR = '\x1b[93m';
16
17
  class Encoder {
17
18
  constructor(config) {
@@ -66,7 +67,8 @@ class Encoder {
66
67
  const pad = this.config.compact ? '' : ' ';
67
68
  // Avoid printing internal/default type names
68
69
  if (schema.typeName && schema.isRecord && !schema.isAny) {
69
- prefix = this.c(`@${schema.typeName}`, Colors.SCHEMA);
70
+ const escapedName = this.escapeIdent(schema.typeName);
71
+ prefix = this.c(`@${escapedName}`, Colors.SCHEMA);
70
72
  }
71
73
  // Przygotowanie meta (ale jeszcze nie użycie, bo w liście może się zmienić)
72
74
  // W Pythonie: meta = self._meta_wrapped(schema) if include_meta else ""
@@ -76,7 +78,8 @@ class Encoder {
76
78
  const metaPrefix = includeMeta ? this.metaInline(schema) : '';
77
79
  // Python: return ind + ((meta_prefix + " ") if meta_prefix else "") + self._c(...)
78
80
  const metaStr = metaPrefix ? metaPrefix + ' ' : '';
79
- return ind + metaStr + this.c(schema.typeName, Colors.TYPE);
81
+ const escapedType = this.escapeIdent(schema.typeName);
82
+ return ind + metaStr + this.c(escapedType, Colors.TYPE);
80
83
  }
81
84
  // --- LIST ---
82
85
  // --- DEBUG ---
@@ -129,7 +132,7 @@ class Encoder {
129
132
  str += metaPrefix + ' ';
130
133
  }
131
134
  // 3. Field Name
132
- str += this.c(field.name, Colors.KEY);
135
+ str += this.c(this.escapeIdent(field.name), Colors.KEY);
133
136
  // 4. Field Type
134
137
  const fieldType = this.encodeSchema(field, 0, false).trim();
135
138
  // Logic to decide when to print the type signature
@@ -162,13 +165,13 @@ class Encoder {
162
165
  }
163
166
  getTypeLabel(schema) {
164
167
  if (schema.isPrimitive)
165
- return schema.typeName || 'any';
168
+ return this.escapeIdent(schema.typeName || 'any');
166
169
  if (schema.isList) {
167
170
  const inner = schema.element ? this.getTypeLabel(schema.element) : 'any';
168
171
  return `[${inner}]`;
169
172
  }
170
173
  if (schema.isRecord && schema.typeName && schema.typeName !== 'any') {
171
- return schema.typeName;
174
+ return this.escapeIdent(schema.typeName);
172
175
  }
173
176
  return 'any';
174
177
  }
@@ -196,14 +199,20 @@ class Encoder {
196
199
  }
197
200
  // 2. Modifiers
198
201
  if (obj.required) {
199
- items.push(this.c('!required', Colors.TAG));
202
+ items.push(this.c('$required', Colors.TAG));
200
203
  }
201
204
  // 3. Attributes & Tags
202
205
  if (this.config.includeMeta) {
203
206
  const currentAttr = obj.attr || {};
204
207
  for (const [k, v] of Object.entries(currentAttr)) {
205
- const valStr = this.primitiveValue(v);
206
- items.push(this.c(`$${k}=`, Colors.ATTR) + valStr);
208
+ const escapedKey = this.escapeIdent(k);
209
+ if (typeof v === 'boolean' && v === true) {
210
+ items.push(this.c(`$${escapedKey}`, Colors.ATTR));
211
+ }
212
+ else {
213
+ const valStr = this.primitiveValue(v);
214
+ items.push(this.c(`$${escapedKey}=`, Colors.ATTR) + valStr);
215
+ }
207
216
  }
208
217
  const currentTags = obj.tags || [];
209
218
  for (const t of currentTags) {
@@ -215,7 +224,7 @@ class Encoder {
215
224
  }
216
225
  const content = items.join(' ');
217
226
  if (wrapped) {
218
- const wrappedContent = this.c(`/${pad}`, Colors.SCHEMA) + content + this.c(`${pad}/`, Colors.SCHEMA);
227
+ const wrappedContent = this.c(`//${pad}`, Colors.SCHEMA) + content + this.c(`${pad}//`, Colors.SCHEMA);
219
228
  return this.config.compact ? wrappedContent + ' ' : ' ' + wrappedContent + ' ';
220
229
  }
221
230
  // Inline: /* c1 */ !req $a=1
@@ -265,45 +274,65 @@ class Encoder {
265
274
  // Wrap in quotes and colorize
266
275
  return this.c(`"${content}"`, Colors.STRING);
267
276
  }
277
+ /**
278
+ * Wraps identifier in backticks if it contains spaces or special characters.
279
+ * Regex: [a-zA-Z_][a-zA-Z0-9_]*
280
+ */
281
+ escapeIdent(name) {
282
+ if (!name)
283
+ return '';
284
+ // Standard identifier pattern
285
+ const pattern = /^[a-zA-Z_][a-zA-Z0-9_]*$/;
286
+ if (pattern.test(name)) {
287
+ return name;
288
+ }
289
+ // If it doesn't match, wrap it in backticks
290
+ return `\`${name}\``;
291
+ }
268
292
  // -------------------------------------------------------------
269
293
  // LIST
270
294
  // -------------------------------------------------------------
271
- listHeader(node) {
272
- let header = '[';
273
- if (this.config.includeArraySize) {
274
- const size = node.elements.length;
275
- header += `${this.c('$size', Colors.KEY)}=${this.c(String(size), Colors.NUMBER)}${this.c(':', Colors.TYPE)}`;
276
- }
277
- return header;
278
- }
279
- joinLines(items, sep) {
280
- if (this.config.compact)
281
- return items.join(sep);
282
- if (sep === '\n')
283
- return items.join(sep);
284
- return items.join(`${sep} `);
285
- }
286
295
  encodeList(node, indent, includeSchema = false) {
287
296
  const ind = ' '.repeat(indent);
288
297
  const childIndent = indent + this.config.indent;
298
+ const isPrompt = this.config.promptOutput;
299
+ if (this.config.includeArraySize) {
300
+ node.attr['size'] = node.elements.length;
301
+ }
289
302
  const innerMeta = this.metaWrapped(node);
290
- // 1. Generate Header Schema (if requested)
303
+ // 1. Generate Header Schema (Standard only)
291
304
  let schemaHeader = '';
292
- if (includeSchema && node.schema && node.schema.element) {
305
+ if (!isPrompt && includeSchema && node.schema && node.schema.element) {
293
306
  schemaHeader = this.encodeSchema(node.schema.element, 0).trim();
294
- }
295
- if (schemaHeader) {
296
- schemaHeader = schemaHeader + ' ';
307
+ if (schemaHeader)
308
+ schemaHeader += ' ';
297
309
  }
298
310
  const expectedChild = node.schema ? node.schema.element : null;
311
+ // --- PROMPT MODE (Full Structural Expansion) ---
312
+ if (isPrompt) {
313
+ let res = ind + '[\n';
314
+ if (innerMeta) {
315
+ res += ' '.repeat(childIndent) + innerMeta.trim() + '\n';
316
+ }
317
+ if (node.schema && node.schema.element) {
318
+ // Force recursion into the element's structure using a Dummy Node
319
+ const dummy = new Node_1.Node(node.schema.element, { value: null });
320
+ // We trim() the blueprint because we manually handle child indentation
321
+ const blueprint = this.encode(dummy, childIndent, false).trim();
322
+ res += ' '.repeat(childIndent) + blueprint + ',\n';
323
+ res += ' '.repeat(childIndent) + '... /* repeat pattern for additional items */\n';
324
+ }
325
+ else {
326
+ res += ' '.repeat(childIndent) + '/* any content */\n';
327
+ }
328
+ res += ind + ']';
329
+ return res;
330
+ }
299
331
  // --- COMPACT MODE ---
300
332
  if (this.config.compact) {
301
333
  const items = [];
302
334
  for (const el of node.elements) {
303
- // IMPORTANT: We disable schema inclusion for elements to avoid duplication <...>
304
- // unless types mismatch drastically.
305
335
  let val = this.encode(el, 0, false).trim();
306
- // Check compatibility & Inject override if needed
307
336
  if (!this.schemasAreCompatible(el.schema, expectedChild)) {
308
337
  const label = el.schema ? this.getTypeLabel(el.schema) : 'any';
309
338
  const tag = this.c(`<${label}>`, Colors.SCHEMA);
@@ -314,27 +343,28 @@ class Encoder {
314
343
  return ind + '[' + innerMeta + schemaHeader + items.join(',') + ']';
315
344
  }
316
345
  // --- PRETTY MODE ---
317
- const header = this.listHeader(node);
318
- const out = [ind + header];
346
+ let res = ind + '[\n';
319
347
  if (innerMeta) {
320
- out.push(' '.repeat(childIndent) + innerMeta.trim());
348
+ res += ' '.repeat(childIndent) + innerMeta.trim() + '\n';
321
349
  }
322
350
  if (schemaHeader) {
323
- out.push(' '.repeat(childIndent) + schemaHeader.trim());
351
+ res += ' '.repeat(childIndent) + schemaHeader.trim() + '\n';
324
352
  }
353
+ const elementLines = [];
325
354
  for (const el of node.elements) {
326
- // IMPORTANT: Disable schema for children
327
- let val = this.encode(el, childIndent - this.config.startIndent, false).trim();
328
- // Check compatibility & Inject override if needed
355
+ let val = this.encode(el, 0, false).trim();
329
356
  if (!this.schemasAreCompatible(el.schema, expectedChild)) {
330
357
  const label = el.schema ? this.getTypeLabel(el.schema) : 'any';
331
358
  const tag = this.c(`<${label}>`, Colors.SCHEMA);
332
359
  val = `${tag} ${val}`;
333
360
  }
334
- out.push(' '.repeat(childIndent) + val);
361
+ elementLines.push(' '.repeat(childIndent) + val);
335
362
  }
336
- out.push(ind + ']');
337
- return this.joinLines(out, '\n');
363
+ if (elementLines.length > 0) {
364
+ res += elementLines.join(',\n') + '\n';
365
+ }
366
+ res += ind + ']';
367
+ return res;
338
368
  }
339
369
  // -------------------------------------------------------------
340
370
  // RECORD
@@ -342,24 +372,55 @@ class Encoder {
342
372
  encodeRecord(node, indent) {
343
373
  const innerMeta = this.metaWrapped(node);
344
374
  const parts = [];
345
- if (node.schema.fields && node.schema.fields.length > 0) {
375
+ const isPrompt = this.config.promptOutput;
376
+ const baseInd = ' '.repeat(indent);
377
+ const childInd = ' '.repeat(indent + this.config.indent);
378
+ if (node.schema && node.schema.fields && node.schema.fields.length > 0) {
346
379
  for (const fieldDef of node.schema.fields) {
347
- const fieldNode = node.fields[fieldDef.name];
348
- if (fieldNode) {
349
- let val = this.encode(fieldNode, indent - this.config.startIndent, false).trim();
350
- val = this.applyTypeTag(val, fieldNode.schema, fieldDef);
351
- parts.push(val);
380
+ if (isPrompt) {
381
+ // --- PROMPT MODE: Type Label or Structural Expansion ---
382
+ const fieldName = this.escapeIdent(fieldDef.name);
383
+ let fieldValStructure;
384
+ if (fieldDef.isPrimitive) {
385
+ // For primitives, use the type name (e.g., "number")
386
+ fieldValStructure = this.c(this.getTypeLabel(fieldDef), Colors.TYPE);
387
+ }
388
+ else {
389
+ // For structures (Records/Lists), recurse to get { } or [ ]
390
+ const dummyField = new Node_1.Node(fieldDef, { value: null });
391
+ fieldValStructure = this.encode(dummyField, indent + this.config.indent, false).trim();
392
+ }
393
+ let line = `${this.c(fieldName, Colors.KEY)}: ${fieldValStructure}`;
394
+ if (fieldDef.comments && fieldDef.comments.length > 0) {
395
+ const comment = fieldDef.comments[0].trim();
396
+ line += ` ${this.c(`/* ${comment} */`, Colors.NULL)}`;
397
+ }
398
+ parts.push(line);
352
399
  }
353
400
  else {
354
- parts.push(this.c('null', Colors.NULL));
401
+ // --- STANDARD MODE (Data values) ---
402
+ const fieldNode = node.fields[fieldDef.name];
403
+ if (fieldNode) {
404
+ let val = this.encode(fieldNode, 0, false).trim();
405
+ val = this.applyTypeTag(val, fieldNode.schema, fieldDef);
406
+ parts.push(val);
407
+ }
408
+ else {
409
+ parts.push(this.c('null', Colors.NULL));
410
+ }
355
411
  }
356
412
  }
357
- const sep = this.config.compact ? ',' : ', ';
358
- return '(' + innerMeta + parts.join(sep) + ')';
359
413
  }
360
414
  else {
361
- return '(' + innerMeta + this.c('null', Colors.NULL) + ')';
415
+ parts.push(this.c('null', Colors.NULL));
416
+ }
417
+ if (isPrompt) {
418
+ const body = parts.join(',\n' + childInd);
419
+ const metaStr = innerMeta ? childInd + innerMeta.trim() + '\n' : '';
420
+ return '{\n' + metaStr + childInd + body + '\n' + baseInd + '}';
362
421
  }
422
+ const sep = this.config.compact ? ',' : ', ';
423
+ return '(' + innerMeta + parts.join(sep) + ')';
363
424
  }
364
425
  }
365
426
  exports.Encoder = Encoder;
@@ -1 +1 @@
1
- {"version":3,"file":"Encoder.js","sourceRoot":"","sources":["../../src/core/Encoder.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"Encoder.js","sourceRoot":"","sources":["../../src/core/Encoder.ts"],"names":[],"mappings":";;;AAEA,yCAAiD;AAGjD,MAAM,MAAM;;AACH,YAAK,GAAG,SAAS,CAAC;AAClB,aAAM,GAAG,UAAU,CAAC,CAAC,QAAQ;AAC7B,aAAM,GAAG,UAAU,CAAC,CAAC,OAAO;AAC5B,WAAI,GAAG,UAAU,CAAC,CAAC,UAAU;AAC7B,WAAI,GAAG,UAAU,CAAC,CAAC,OAAO;AAC1B,WAAI,GAAG,UAAU,CAAC,CAAC,OAAO;AAC1B,UAAG,GAAG,UAAU,CAAC,CAAC,SAAS;AAC3B,aAAM,GAAG,UAAU,CAAC,CAAC,sBAAsB;AAC3C,UAAG,GAAG,UAAU,CAAC;AACjB,WAAI,GAAG,UAAU,CAAC;AAG3B,MAAa,OAAO;IAGlB,YAAY,MAAqB;QAC/B,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;IACvB,CAAC;IAED,gEAAgE;IAChE,eAAe;IACf,gEAAgE;IAEzD,MAAM,CAAC,IAAU,EAAE,cAAsB,CAAC,EAAE,gBAAyB,IAAI;QAC9E,MAAM,UAAU,GAAG,IAAI,CAAC,MAAM,CAAC,WAAW,GAAG,WAAW,CAAC;QACzD,IAAI,YAAY,GAAG,EAAE,CAAC;QAEtB,iDAAiD;QACjD,MAAM,kBAAkB,GAAG,aAAa,IAAI,IAAI,CAAC,MAAM,KAAK,IAAI,IAAI,IAAI,CAAC,MAAM,CAAC,aAAa,CAAC;QAE9F,IAAI,kBAAkB,EAAE,CAAC;YACvB,IAAI,IAAI,GAAG,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,MAAO,EAAE,UAAU,CAAC,CAAC,IAAI,EAAE,CAAC;YAE9D,6EAA6E;YAC7E,IAAI,IAAI,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,EAAE,CAAC;gBAC3D,IAAI,GAAG,IAAI,IAAI,GAAG,CAAC;YACrB,CAAC;YAED,IAAI,IAAI,EAAE,CAAC;gBACT,IAAI,IAAI,CAAC,MAAM,CAAC,OAAO,EAAE,CAAC;oBACxB,YAAY,GAAG,IAAI,CAAC;gBACtB,CAAC;qBAAM,CAAC;oBACN,uCAAuC;oBACvC,YAAY,GAAG,IAAI,GAAG,IAAI,GAAG,GAAG,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC;gBACtD,CAAC;YACH,CAAC;QACH,CAAC;QAED,iBAAiB;QACjB,IAAI,IAAI,GAAG,EAAE,CAAC;QACd,IAAI,IAAI,CAAC,MAAM,EAAE,CAAC;YAChB,IAAI,GAAG,IAAI,CAAC,UAAU,CAAC,IAAI,EAAE,UAAU,EAAE,KAAK,CAAC,CAAC;QAClD,CAAC;aAAM,IAAI,IAAI,CAAC,WAAW,EAAE,CAAC;YAC5B,IAAI,GAAG,IAAI,CAAC,mBAAmB,CAAC,IAAI,CAAC,CAAC;QACxC,CAAC;aAAM,IAAI,IAAI,CAAC,QAAQ,EAAE,CAAC;YACzB,IAAI,GAAG,IAAI,CAAC,YAAY,CAAC,IAAI,EAAE,UAAU,CAAC,CAAC;QAC7C,CAAC;aAAM,CAAC;YACN,IAAI,GAAG,IAAI,CAAC,CAAC,CAAC,MAAM,EAAE,MAAM,CAAC,IAAI,CAAC,CAAC;QACrC,CAAC;QAED,yCAAyC;QACzC,OAAO,GAAG,YAAY,GAAG,IAAI,EAAE,CAAC;IAClC,CAAC;IAEM,YAAY,CAAC,MAAc,EAAE,MAAc,EAAE,cAAuB,IAAI;QAC7E,IAAI,CAAC,MAAM;YAAE,OAAO,EAAE,CAAC;QAEvB,MAAM,GAAG,GAAG,GAAG,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;QAC/B,IAAI,MAAM,GAAG,EAAE,CAAC;QAEhB,MAAM,GAAG,GAAG,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC;QAE3C,6CAA6C;QAC7C,IAAI,MAAM,CAAC,QAAQ,IAAI,MAAM,CAAC,QAAQ,IAAI,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC;YACxD,MAAM,WAAW,GAAG,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;YACtD,MAAM,GAAG,IAAI,CAAC,CAAC,CAAC,IAAI,WAAW,EAAE,EAAE,MAAM,CAAC,MAAM,CAAC,CAAC;QACpD,CAAC;QAED,4EAA4E;QAC5E,wEAAwE;QACxE,0FAA0F;QAE1F,oBAAoB;QACpB,IAAI,MAAM,CAAC,WAAW,EAAE,CAAC;YACvB,MAAM,UAAU,GAAG,WAAW,CAAC,CAAC,CAAC,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;YAC9D,mFAAmF;YACnF,MAAM,OAAO,GAAG,UAAU,CAAC,CAAC,CAAC,UAAU,GAAG,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC;YACnD,MAAM,WAAW,GAAG,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;YACtD,OAAO,GAAG,GAAG,OAAO,GAAG,IAAI,CAAC,CAAC,CAAC,WAAW,EAAE,MAAM,CAAC,IAAI,CAAC,CAAC;QAC1D,CAAC;QAED,eAAe;QACf,gBAAgB;QAChB,IAAI,MAAM,CAAC,MAAM,EAAE,CAAC;YAClB,IAAI,MAAM,CAAC,OAAO,EAAE,CAAC;gBACnB,MAAM,CAAC,SAAS,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;gBACjC,MAAM,CAAC,OAAO,CAAC,SAAS,EAAE,CAAC;YAC7B,CAAC;YACD,MAAM,QAAQ,GAAG,WAAW,CAAC,CAAC,CAAC,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;YAE7D,4CAA4C;YAC5C,IAAI,MAAM,CAAC,OAAO,IAAI,MAAM,CAAC,OAAO,CAAC,QAAQ,EAAE,CAAC;gBAC9C,0DAA0D;gBAC1D,MAAM,WAAW,GAAG,IAAI,CAAC,kBAAkB,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;gBAE5D,2DAA2D;gBAC3D,OAAO,GAAG,GAAG,MAAM,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,QAAQ,GAAG,WAAW,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,CAAC;YACzF,CAAC;YAED,uBAAuB;YACvB,MAAM,KAAK,GAAG,IAAI,CAAC,YAAY,CAAC,MAAM,CAAC,OAAQ,EAAE,CAAC,EAAE,KAAK,CAAC,CAAC,IAAI,EAAE,CAAC;YAClE,OAAO,GAAG,GAAG,GAAG,GAAG,QAAQ,GAAG,IAAI,CAAC,CAAC,CAAC,KAAK,EAAE,MAAM,CAAC,IAAI,CAAC,GAAG,GAAG,CAAC;QACjE,CAAC;QAED,iBAAiB;QACjB,IAAI,MAAM,CAAC,QAAQ,EAAE,CAAC;YACpB,kDAAkD;YAClD,MAAM,UAAU,GAAG,WAAW,CAAC,CAAC,CAAC,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;YAE/D,IAAI,CAAC,MAAM,CAAC,MAAM,IAAI,MAAM,CAAC,MAAM,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;gBACjD,wEAAwE;gBACxE,+EAA+E;gBAC/E,IAAI,CAAC,MAAM,IAAI,CAAC,UAAU,IAAI,MAAM,CAAC,KAAK,EAAE,CAAC;oBAC3C,OAAO,EAAE,CAAC;gBACZ,CAAC;gBACD,OAAO,GAAG,GAAG,MAAM,GAAG,GAAG,GAAG,GAAG,GAAG,UAAU,GAAG,KAAK,GAAG,GAAG,GAAG,GAAG,CAAC;YACnE,CAAC;YAED,gBAAgB;YAChB,MAAM,WAAW,GAAG,IAAI,CAAC,kBAAkB,CAAC,MAAM,CAAC,CAAC;YAEpD,2DAA2D;YAC3D,OAAO,GAAG,GAAG,MAAM,GAAG,GAAG,GAAG,GAAG,GAAG,UAAU,GAAG,WAAW,GAAG,GAAG,GAAG,GAAG,CAAC;QACzE,CAAC;QAED,iBAAiB;QACjB,MAAM,IAAI,GAAG,WAAW,CAAC,CAAC,CAAC,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;QACzD,OAAO,GAAG,GAAG,IAAI,IAAI,MAAM,CAAC;IAC9B,CAAC;IAED,qDAAqD;IAC7C,kBAAkB,CAAC,MAAc;QACvC,MAAM,KAAK,GAAa,EAAE,CAAC;QAC3B,MAAM,GAAG,GAAG,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC;QAE3C,KAAK,MAAM,KAAK,IAAI,MAAM,CAAC,MAAM,EAAE,CAAC;YAClC,IAAI,GAAG,GAAG,EAAE,CAAC;YAEb,MAAM,UAAU,GAAG,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC;YAC1C,IAAI,UAAU,EAAE,CAAC;gBACf,GAAG,IAAI,UAAU,GAAG,GAAG,CAAC;YAC1B,CAAC;YAED,gBAAgB;YAChB,GAAG,IAAI,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,IAAI,CAAC,EAAE,MAAM,CAAC,GAAG,CAAC,CAAC;YAExD,gBAAgB;YAChB,MAAM,SAAS,GAAG,IAAI,CAAC,YAAY,CAAC,KAAK,EAAE,CAAC,EAAE,KAAK,CAAC,CAAC,IAAI,EAAE,CAAC;YAE5D,mDAAmD;YACnD,MAAM,WAAW,GAAG,CAAC,KAAK,CAAC,WAAW,CAAC;YACvC,MAAM,mBAAmB,GAAG,IAAI,CAAC,MAAM,CAAC,WAAW,IAAI,KAAK,CAAC,QAAQ,KAAK,KAAK,CAAC;YAEhF,IAAI,SAAS,IAAI,CAAC,WAAW,IAAI,mBAAmB,CAAC,EAAE,CAAC;gBACtD,GAAG,IAAI,IAAI,GAAG,GAAG,IAAI,CAAC,CAAC,CAAC,SAAS,EAAE,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC;YACpD,CAAC;YAED,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;QAClB,CAAC;QAED,MAAM,GAAG,GAAG,IAAI,GAAG,EAAE,CAAC;QACtB,OAAO,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IACzB,CAAC;IAED,gEAAgE;IAChE,qCAAqC;IACrC,gEAAgE;IAExD,oBAAoB,CAAC,UAAyB,EAAE,cAA6B;QACnF,IAAI,CAAC,cAAc,IAAI,cAAc,CAAC,KAAK;YAAE,OAAO,IAAI,CAAC;QACzD,IAAI,CAAC,UAAU;YAAE,OAAO,IAAI,CAAC;QAE7B,qBAAqB;QACrB,IAAI,UAAU,CAAC,IAAI,KAAK,cAAc,CAAC,IAAI;YAAE,OAAO,KAAK,CAAC;QAE1D,0DAA0D;QAC1D,IAAI,UAAU,CAAC,WAAW,IAAI,cAAc,CAAC,WAAW,EAAE,CAAC;YACzD,OAAO,UAAU,CAAC,QAAQ,KAAK,cAAc,CAAC,QAAQ,CAAC;QACzD,CAAC;QAED,OAAO,IAAI,CAAC;IACd,CAAC;IAEO,YAAY,CAAC,MAAc;QACjC,IAAI,MAAM,CAAC,WAAW;YAAE,OAAO,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC,QAAQ,IAAI,KAAK,CAAC,CAAC;QAC1E,IAAI,MAAM,CAAC,MAAM,EAAE,CAAC;YAClB,MAAM,KAAK,GAAG,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC,YAAY,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC;YACzE,OAAO,IAAI,KAAK,GAAG,CAAC;QACtB,CAAC;QACD,IAAI,MAAM,CAAC,QAAQ,IAAI,MAAM,CAAC,QAAQ,IAAI,MAAM,CAAC,QAAQ,KAAK,KAAK,EAAE,CAAC;YACpE,OAAO,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;QAC3C,CAAC;QACD,OAAO,KAAK,CAAC;IACf,CAAC;IAEO,YAAY,CAClB,MAAc,EACd,UAAyB,EACzB,cAA6B;QAE7B,IAAI,IAAI,CAAC,oBAAoB,CAAC,UAAU,EAAE,cAAc,CAAC,EAAE,CAAC;YAC1D,OAAO,MAAM,CAAC;QAChB,CAAC;QAED,qCAAqC;QACrC,MAAM,KAAK,GAAG,UAAU,CAAC,CAAC,CAAC,IAAI,CAAC,YAAY,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC;QACjE,MAAM,GAAG,GAAG,IAAI,CAAC,CAAC,CAAC,IAAI,KAAK,GAAG,EAAE,MAAM,CAAC,MAAM,CAAC,CAAC;QAChD,OAAO,GAAG,GAAG,IAAI,MAAM,EAAE,CAAC;IAC5B,CAAC;IAED,gEAAgE;IAChE,oCAAoC;IACpC,gEAAgE;IAExD,eAAe,CAAC,GAAS,EAAE,UAAmB,KAAK;QACzD,MAAM,KAAK,GAAa,EAAE,CAAC;QAC3B,MAAM,GAAG,GAAG,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC;QAE3C,cAAc;QACd,IAAI,IAAI,CAAC,MAAM,CAAC,eAAe,IAAI,GAAG,CAAC,QAAQ,EAAE,CAAC;YAChD,KAAK,MAAM,CAAC,IAAI,GAAG,CAAC,QAAQ,EAAE,CAAC;gBAC7B,MAAM,OAAO,GAAG,CAAC,CAAC,IAAI,EAAE,CAAC;gBACzB,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,GAAG,GAAG,OAAO,GAAG,GAAG,IAAI,EAAE,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC;YAChE,CAAC;QACH,CAAC;QAED,eAAe;QACf,IAAK,GAAc,CAAC,QAAQ,EAAE,CAAC;YAC7B,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,WAAW,EAAE,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC;QAC9C,CAAC;QAED,uBAAuB;QACvB,IAAI,IAAI,CAAC,MAAM,CAAC,WAAW,EAAE,CAAC;YAC5B,MAAM,WAAW,GAAG,GAAG,CAAC,IAAI,IAAI,EAAE,CAAC;YACnC,KAAK,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,WAAW,CAAC,EAAE,CAAC;gBACjD,MAAM,UAAU,GAAG,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC;gBACvC,IAAI,OAAO,CAAC,KAAK,SAAS,IAAI,CAAC,KAAK,IAAI,EAAE,CAAC;oBACzC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,UAAU,EAAE,EAAE,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC;gBACpD,CAAC;qBAAM,CAAC;oBACN,MAAM,MAAM,GAAG,IAAI,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC;oBACtC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,UAAU,GAAG,EAAE,MAAM,CAAC,IAAI,CAAC,GAAG,MAAM,CAAC,CAAC;gBAC9D,CAAC;YACH,CAAC;YAED,MAAM,WAAW,GAAG,GAAG,CAAC,IAAI,IAAI,EAAE,CAAC;YACnC,KAAK,MAAM,CAAC,IAAI,WAAW,EAAE,CAAC;gBAC5B,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,EAAE,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC;YAC1C,CAAC;QACH,CAAC;QAED,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YACvB,OAAO,EAAE,CAAC;QACZ,CAAC;QAED,MAAM,OAAO,GAAG,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;QAEhC,IAAI,OAAO,EAAE,CAAC;YACZ,MAAM,cAAc,GAClB,IAAI,CAAC,CAAC,CAAC,KAAK,GAAG,EAAE,EAAE,MAAM,CAAC,MAAM,CAAC,GAAG,OAAO,GAAG,IAAI,CAAC,CAAC,CAAC,GAAG,GAAG,IAAI,EAAE,MAAM,CAAC,MAAM,CAAC,CAAC;YAClF,OAAO,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,cAAc,GAAG,GAAG,CAAC,CAAC,CAAC,GAAG,GAAG,cAAc,GAAG,GAAG,CAAC;QACjF,CAAC;QAED,6BAA6B;QAC7B,OAAO,OAAO,CAAC;IACjB,CAAC;IAEO,UAAU,CAAC,GAAS;QAC1B,OAAO,IAAI,CAAC,eAAe,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC;IAC1C,CAAC;IAEO,WAAW,CAAC,GAAS;QAC3B,OAAO,IAAI,CAAC,eAAe,CAAC,GAAG,EAAE,IAAI,CAAC,CAAC;IACzC,CAAC;IAED,gEAAgE;IAChE,UAAU;IACV,gEAAgE;IACxD,CAAC,CAAC,IAAY,EAAE,KAAa;QACnC,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,QAAQ;YAAE,OAAO,IAAI,CAAC;QACvC,OAAO,GAAG,KAAK,GAAG,IAAI,GAAG,MAAM,CAAC,KAAK,EAAE,CAAC;IAC1C,CAAC;IAEO,mBAAmB,CAAC,IAAU;QACpC,MAAM,SAAS,GAAG,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC;QACxC,MAAM,GAAG,GAAG,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,KAAkB,CAAC,CAAC;QACzD,OAAO,CAAC,SAAS,CAAC,CAAC,CAAC,SAAS,GAAG,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,GAAG,CAAC;IAClD,CAAC;IAEO,cAAc,CAAC,CAAY;QACjC,IAAI,OAAO,CAAC,KAAK,QAAQ;YAAE,OAAO,IAAI,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC;QACvD,IAAI,CAAC,KAAK,IAAI;YAAE,OAAO,IAAI,CAAC,CAAC,CAAC,MAAM,EAAE,MAAM,CAAC,IAAI,CAAC,CAAC;QACnD,IAAI,CAAC,KAAK,KAAK;YAAE,OAAO,IAAI,CAAC,CAAC,CAAC,OAAO,EAAE,MAAM,CAAC,IAAI,CAAC,CAAC;QACrD,IAAI,CAAC,KAAK,IAAI,IAAI,CAAC,KAAK,SAAS;YAAE,OAAO,IAAI,CAAC,CAAC,CAAC,MAAM,EAAE,MAAM,CAAC,IAAI,CAAC,CAAC;QACtE,OAAO,IAAI,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,MAAM,CAAC,MAAM,CAAC,CAAC;IAC1C,CAAC;IAEO,YAAY,CAAC,CAAS;QAC5B,+CAA+C;QAC/C,oEAAoE;QACpE,IAAI,OAAO,GAAG,CAAC,CAAC,OAAO,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC;QAEvC,mBAAmB;QACnB,iBAAiB;QACjB,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;QAEvC,0DAA0D;QAC1D,IAAI,IAAI,CAAC,MAAM,CAAC,cAAc,EAAE,CAAC;YAC/B,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC,OAAO,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC,OAAO,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC;QACtF,CAAC;QAED,8BAA8B;QAC9B,OAAO,IAAI,CAAC,CAAC,CAAC,IAAI,OAAO,GAAG,EAAE,MAAM,CAAC,MAAM,CAAC,CAAC;IAC/C,CAAC;IAED;;;OAGG;IACK,WAAW,CAAC,IAAY;QAC9B,IAAI,CAAC,IAAI;YAAE,OAAO,EAAE,CAAC;QAErB,8BAA8B;QAC9B,MAAM,OAAO,GAAG,0BAA0B,CAAC;QAE3C,IAAI,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC;YACvB,OAAO,IAAI,CAAC;QACd,CAAC;QAED,4CAA4C;QAC5C,OAAO,KAAK,IAAI,IAAI,CAAC;IACvB,CAAC;IAED,gEAAgE;IAChE,OAAO;IACP,gEAAgE;IACxD,UAAU,CAAC,IAAU,EAAE,MAAc,EAAE,gBAAyB,KAAK;QAC3E,MAAM,GAAG,GAAG,GAAG,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;QAC/B,MAAM,WAAW,GAAG,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC;QAChD,MAAM,QAAQ,GAAG,IAAI,CAAC,MAAM,CAAC,YAAY,CAAC;QAE1C,IAAI,IAAI,CAAC,MAAM,CAAC,gBAAgB,EAAE,CAAC;YACjC,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,GAAG,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC;QAC3C,CAAC;QACD,MAAM,SAAS,GAAG,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC;QAEzC,4CAA4C;QAC5C,IAAI,YAAY,GAAG,EAAE,CAAC;QACtB,IAAI,CAAC,QAAQ,IAAI,aAAa,IAAI,IAAI,CAAC,MAAM,IAAI,IAAI,CAAC,MAAM,CAAC,OAAO,EAAE,CAAC;YACrE,YAAY,GAAG,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,MAAM,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;YAChE,IAAI,YAAY;gBAAE,YAAY,IAAI,GAAG,CAAC;QACxC,CAAC;QAED,MAAM,aAAa,GAAG,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC;QAE/D,kDAAkD;QAClD,IAAI,QAAQ,EAAE,CAAC;YACb,IAAI,GAAG,GAAG,GAAG,GAAG,KAAK,CAAC;YACtB,IAAI,SAAS,EAAE,CAAC;gBACd,GAAG,IAAI,GAAG,CAAC,MAAM,CAAC,WAAW,CAAC,GAAG,SAAS,CAAC,IAAI,EAAE,GAAG,IAAI,CAAC;YAC3D,CAAC;YAED,IAAI,IAAI,CAAC,MAAM,IAAI,IAAI,CAAC,MAAM,CAAC,OAAO,EAAE,CAAC;gBACvC,kEAAkE;gBAClE,MAAM,KAAK,GAAG,IAAI,WAAI,CAAC,IAAI,CAAC,MAAM,CAAC,OAAO,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC;gBAE7D,uEAAuE;gBACvE,MAAM,SAAS,GAAG,IAAI,CAAC,MAAM,CAAC,KAAK,EAAE,WAAW,EAAE,KAAK,CAAC,CAAC,IAAI,EAAE,CAAC;gBAEhE,GAAG,IAAI,GAAG,CAAC,MAAM,CAAC,WAAW,CAAC,GAAG,SAAS,GAAG,KAAK,CAAC;gBACnD,GAAG,IAAI,GAAG,CAAC,MAAM,CAAC,WAAW,CAAC,GAAG,iDAAiD,CAAC;YACrF,CAAC;iBAAM,CAAC;gBACN,GAAG,IAAI,GAAG,CAAC,MAAM,CAAC,WAAW,CAAC,GAAG,qBAAqB,CAAC;YACzD,CAAC;YAED,GAAG,IAAI,GAAG,GAAG,GAAG,CAAC;YACjB,OAAO,GAAG,CAAC;QACb,CAAC;QAED,uBAAuB;QACvB,IAAI,IAAI,CAAC,MAAM,CAAC,OAAO,EAAE,CAAC;YACxB,MAAM,KAAK,GAAa,EAAE,CAAC;YAC3B,KAAK,MAAM,EAAE,IAAI,IAAI,CAAC,QAAQ,EAAE,CAAC;gBAC/B,IAAI,GAAG,GAAG,IAAI,CAAC,MAAM,CAAC,EAAE,EAAE,CAAC,EAAE,KAAK,CAAC,CAAC,IAAI,EAAE,CAAC;gBAC3C,IAAI,CAAC,IAAI,CAAC,oBAAoB,CAAC,EAAE,CAAC,MAAM,EAAE,aAAa,CAAC,EAAE,CAAC;oBACzD,MAAM,KAAK,GAAG,EAAE,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,YAAY,CAAC,EAAE,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC;oBAC/D,MAAM,GAAG,GAAG,IAAI,CAAC,CAAC,CAAC,IAAI,KAAK,GAAG,EAAE,MAAM,CAAC,MAAM,CAAC,CAAC;oBAChD,GAAG,GAAG,GAAG,GAAG,IAAI,GAAG,EAAE,CAAC;gBACxB,CAAC;gBACD,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;YAClB,CAAC;YACD,OAAO,GAAG,GAAG,GAAG,GAAG,SAAS,GAAG,YAAY,GAAG,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,GAAG,CAAC;QACtE,CAAC;QAED,sBAAsB;QACtB,IAAI,GAAG,GAAG,GAAG,GAAG,KAAK,CAAC;QACtB,IAAI,SAAS,EAAE,CAAC;YACd,GAAG,IAAI,GAAG,CAAC,MAAM,CAAC,WAAW,CAAC,GAAG,SAAS,CAAC,IAAI,EAAE,GAAG,IAAI,CAAC;QAC3D,CAAC;QACD,IAAI,YAAY,EAAE,CAAC;YACjB,GAAG,IAAI,GAAG,CAAC,MAAM,CAAC,WAAW,CAAC,GAAG,YAAY,CAAC,IAAI,EAAE,GAAG,IAAI,CAAC;QAC9D,CAAC;QAED,MAAM,YAAY,GAAa,EAAE,CAAC;QAClC,KAAK,MAAM,EAAE,IAAI,IAAI,CAAC,QAAQ,EAAE,CAAC;YAC/B,IAAI,GAAG,GAAG,IAAI,CAAC,MAAM,CAAC,EAAE,EAAE,CAAC,EAAE,KAAK,CAAC,CAAC,IAAI,EAAE,CAAC;YAC3C,IAAI,CAAC,IAAI,CAAC,oBAAoB,CAAC,EAAE,CAAC,MAAM,EAAE,aAAa,CAAC,EAAE,CAAC;gBACzD,MAAM,KAAK,GAAG,EAAE,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,YAAY,CAAC,EAAE,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC;gBAC/D,MAAM,GAAG,GAAG,IAAI,CAAC,CAAC,CAAC,IAAI,KAAK,GAAG,EAAE,MAAM,CAAC,MAAM,CAAC,CAAC;gBAChD,GAAG,GAAG,GAAG,GAAG,IAAI,GAAG,EAAE,CAAC;YACxB,CAAC;YACD,YAAY,CAAC,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,WAAW,CAAC,GAAG,GAAG,CAAC,CAAC;QACnD,CAAC;QAED,IAAI,YAAY,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YAC5B,GAAG,IAAI,YAAY,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,IAAI,CAAC;QACzC,CAAC;QAED,GAAG,IAAI,GAAG,GAAG,GAAG,CAAC;QACjB,OAAO,GAAG,CAAC;IACb,CAAC;IAED,gEAAgE;IAChE,SAAS;IACT,gEAAgE;IACxD,YAAY,CAAC,IAAU,EAAE,MAAc;QAC7C,MAAM,SAAS,GAAG,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC;QACzC,MAAM,KAAK,GAAa,EAAE,CAAC;QAC3B,MAAM,QAAQ,GAAG,IAAI,CAAC,MAAM,CAAC,YAAY,CAAC;QAC1C,MAAM,OAAO,GAAG,GAAG,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;QACnC,MAAM,QAAQ,GAAG,GAAG,CAAC,MAAM,CAAC,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;QAEzD,IAAI,IAAI,CAAC,MAAM,IAAI,IAAI,CAAC,MAAM,CAAC,MAAM,IAAI,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YACvE,KAAK,MAAM,QAAQ,IAAI,IAAI,CAAC,MAAM,CAAC,MAAM,EAAE,CAAC;gBAC1C,IAAI,QAAQ,EAAE,CAAC;oBACb,0DAA0D;oBAC1D,MAAM,SAAS,GAAG,IAAI,CAAC,WAAW,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;oBAClD,IAAI,iBAAyB,CAAC;oBAE9B,IAAI,QAAQ,CAAC,WAAW,EAAE,CAAC;wBACzB,qDAAqD;wBACrD,iBAAiB,GAAG,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,YAAY,CAAC,QAAQ,CAAC,EAAE,MAAM,CAAC,IAAI,CAAC,CAAC;oBACvE,CAAC;yBAAM,CAAC;wBACN,4DAA4D;wBAC5D,MAAM,UAAU,GAAG,IAAI,WAAI,CAAC,QAAQ,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC;wBACvD,iBAAiB,GAAG,IAAI,CAAC,MAAM,CAAC,UAAU,EAAE,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC,IAAI,EAAE,CAAC;oBACzF,CAAC;oBAED,IAAI,IAAI,GAAG,GAAG,IAAI,CAAC,CAAC,CAAC,SAAS,EAAE,MAAM,CAAC,GAAG,CAAC,KAAK,iBAAiB,EAAE,CAAC;oBAEpE,IAAI,QAAQ,CAAC,QAAQ,IAAI,QAAQ,CAAC,QAAQ,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;wBACtD,MAAM,OAAO,GAAG,QAAQ,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;wBAC5C,IAAI,IAAI,IAAI,IAAI,CAAC,CAAC,CAAC,MAAM,OAAO,KAAK,EAAE,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC;oBACxD,CAAC;oBACD,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;gBACnB,CAAC;qBAAM,CAAC;oBACN,sCAAsC;oBACtC,MAAM,SAAS,GAAG,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;oBAC7C,IAAI,SAAS,EAAE,CAAC;wBACd,IAAI,GAAG,GAAG,IAAI,CAAC,MAAM,CAAC,SAAS,EAAE,CAAC,EAAE,KAAK,CAAC,CAAC,IAAI,EAAE,CAAC;wBAClD,GAAG,GAAG,IAAI,CAAC,YAAY,CAAC,GAAG,EAAE,SAAS,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC;wBACzD,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;oBAClB,CAAC;yBAAM,CAAC;wBACN,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,MAAM,EAAE,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC;oBAC1C,CAAC;gBACH,CAAC;YACH,CAAC;QACH,CAAC;aAAM,CAAC;YACN,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,MAAM,EAAE,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC;QAC1C,CAAC;QAED,IAAI,QAAQ,EAAE,CAAC;YACb,MAAM,IAAI,GAAG,KAAK,CAAC,IAAI,CAAC,KAAK,GAAG,QAAQ,CAAC,CAAC;YAC1C,MAAM,OAAO,GAAG,SAAS,CAAC,CAAC,CAAC,QAAQ,GAAG,SAAS,CAAC,IAAI,EAAE,GAAG,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC;YACpE,OAAO,KAAK,GAAG,OAAO,GAAG,QAAQ,GAAG,IAAI,GAAG,IAAI,GAAG,OAAO,GAAG,GAAG,CAAC;QAClE,CAAC;QAED,MAAM,GAAG,GAAG,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC;QAC7C,OAAO,GAAG,GAAG,SAAS,GAAG,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,GAAG,CAAC;IACjD,CAAC;CACF;AA7dD,0BA6dC"}
@@ -24,7 +24,7 @@ export declare class Meta {
24
24
  }
25
25
  /**
26
26
  * A temporary container (DTO) holding parsed metadata from a / ... / block.
27
- * It contains BOTH Schema constraints (!required) and Node attributes ($key=val).
27
+ * It contains BOTH Schema constraints ($required) and Node attributes ($key=val).
28
28
  */
29
29
  export declare class MetaInfo extends Meta {
30
30
  required: boolean;
@@ -42,7 +42,7 @@ export declare class MetaInfo extends Meta {
42
42
  isEmpty(): boolean;
43
43
  /**
44
44
  * Debug representation mimicking the actual ADF format style.
45
- * Example: <MetaInfo !required #tag $key=val >
45
+ * Example: <MetaInfo $required #tag $key=val >
46
46
  */
47
47
  toString(): string;
48
48
  }
@@ -40,7 +40,7 @@ class Meta {
40
40
  exports.Meta = Meta;
41
41
  /**
42
42
  * A temporary container (DTO) holding parsed metadata from a / ... / block.
43
- * It contains BOTH Schema constraints (!required) and Node attributes ($key=val).
43
+ * It contains BOTH Schema constraints ($required) and Node attributes ($key=val).
44
44
  */
45
45
  class MetaInfo extends Meta {
46
46
  constructor(props = {}) {
@@ -70,13 +70,13 @@ class MetaInfo extends Meta {
70
70
  }
71
71
  /**
72
72
  * Debug representation mimicking the actual ADF format style.
73
- * Example: <MetaInfo !required #tag $key=val >
73
+ * Example: <MetaInfo $required #tag $key=val >
74
74
  */
75
75
  toString() {
76
76
  const parts = [];
77
77
  // 1. Flags
78
78
  if (this.required) {
79
- parts.push('!required');
79
+ parts.push('$required');
80
80
  }
81
81
  // 2. Tags
82
82
  for (const t of this.tags) {
@@ -145,7 +145,7 @@ class Schema extends Meta_1.Meta {
145
145
  // 3. Details
146
146
  const details = [];
147
147
  if (this.required)
148
- details.push('!required');
148
+ details.push('$required');
149
149
  const attrKeys = Object.keys(this.attr);
150
150
  if (attrKeys.length > 0)
151
151
  details.push(`attr=[${attrKeys.map((a) => '"' + a + '"').join(', ')}]`);
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@arkadia/data",
3
- "version": "0.1.9",
3
+ "version": "0.1.11",
4
4
  "description": "Parser and Stringifier for Arkadia Data Format (AKD)",
5
5
  "main": "dist/index.js",
6
6
  "types": "dist/index.d.ts",
@@ -635,7 +635,7 @@ export class Decoder {
635
635
  continue;
636
636
  }
637
637
 
638
- if (ch === '/' && nextCh !== '*') {
638
+ if (ch === '/' && nextCh === '/') {
639
639
  this.parseMetaBlock(obj);
640
640
  continue;
641
641
  }
@@ -689,15 +689,19 @@ export class Decoder {
689
689
  const ch = this.peek();
690
690
  if (ch === '$') this.parseMetaAttribute(this.pendingMeta);
691
691
  else if (ch === '#') this.parseMetaTag(this.pendingMeta);
692
- else if (ch === '!') this.parseMetaFlag(this.pendingMeta);
693
692
  else this.advance(1);
694
693
  }
695
694
 
696
695
  private parseMetaBlock(obj: Node | Schema | null = null): MetaInfo {
697
- this.expect('/');
698
- this._dbg('START meta header /.../');
699
696
  const meta = new MetaInfo();
700
697
 
698
+ if (!(this.peek() === '/' && this.peekNext() === '/')) {
699
+ this.addError("Expected '//' to start meta block");
700
+ return meta;
701
+ }
702
+ this.advance(2); // consume //
703
+ this._dbg('START meta header //...//');
704
+
701
705
  while (!this.eof()) {
702
706
  this.skipWhitespace();
703
707
  const ch = this.peek();
@@ -708,8 +712,8 @@ export class Decoder {
708
712
  continue;
709
713
  }
710
714
 
711
- if (ch === '/') {
712
- this.advance(1);
715
+ if (ch === '/' && nextCh === '/') {
716
+ this.advance(2);
713
717
  break;
714
718
  }
715
719
 
@@ -721,13 +725,9 @@ export class Decoder {
721
725
  this.parseMetaTag(meta);
722
726
  continue;
723
727
  }
724
- if (ch === '!') {
725
- this.parseMetaFlag(meta);
726
- continue;
727
- }
728
728
 
729
729
  // Implicit Attribute (Legacy support: key=value without $)
730
- if (/[a-zA-Z0-9_]/.test(ch || '')) {
730
+ if (/[a-zA-Z0-9_`]/.test(ch || '')) {
731
731
  const key = this.parseIdent();
732
732
  let val: Primitive = true;
733
733
 
@@ -766,7 +766,12 @@ export class Decoder {
766
766
  this.advance(1);
767
767
  val = this.parsePrimitiveValue();
768
768
  }
769
- meta.attr[key] = val;
769
+ if (key === 'required') {
770
+ meta.required = true;
771
+ this._dbg('Meta Flag: $required');
772
+ } else {
773
+ meta.attr[key] = val;
774
+ }
770
775
  this._dbg(`Meta Attr: $${key}=${val}`);
771
776
  }
772
777
 
@@ -777,36 +782,59 @@ export class Decoder {
777
782
  this._dbg(`Meta Tag: #${tag}`);
778
783
  }
779
784
 
780
- private parseMetaFlag(meta: MetaInfo): void {
781
- this.advance(1); // !
782
- const flag = this.parseIdent();
783
- if (flag === 'required') {
784
- meta.required = true;
785
- this._dbg('Meta Flag: !required');
786
- } else {
787
- this.addWarning(`Unknown flag: !${flag}`);
788
- }
789
- }
790
-
791
785
  // =========================================================
792
786
  // HELPERS & LOW-LEVEL PARSERS
793
787
  // =========================================================
794
788
 
789
+ /**
790
+ * Parses an identifier.
791
+ * Supports:
792
+ * 1. Escaped identifiers: `Any characters here`
793
+ * 2. Standard identifiers: [a-zA-Z_][a-zA-Z0-9_]*
794
+ */
795
795
  private parseIdent(): string {
796
796
  this.skipWhitespace();
797
- const start = this.i;
798
797
  if (this.eof()) return '';
799
798
 
800
- const ch = this.text[this.i];
801
- if (!/[a-zA-Z_]/.test(ch)) return '';
799
+ // 1. Escaped identifier logic (Backticks)
800
+ if (this.text[this.i] === '`') {
801
+ this.advance(1); // Skip opening backtick
802
+ const startIdx = this.i;
803
+
804
+ while (!this.eof()) {
805
+ if (this.text[this.i] === '`') {
806
+ const ident = this.text.substring(startIdx, this.i);
807
+ this.advance(1); // Skip closing backtick
808
+ return ident;
809
+ }
810
+ this.advance(1);
811
+ }
812
+ // If EOF is reached without closing backtick, return partial
813
+ return this.text.substring(startIdx, this.i);
814
+ }
815
+
816
+ // 2. Standard identifier logic
817
+ const startIdx = this.i;
818
+ const firstChar = this.text[this.i];
819
+
820
+ // Standard names must start with a letter or underscore
821
+ if (!/[a-zA-Z_]/.test(firstChar)) {
822
+ return '';
823
+ }
802
824
 
803
825
  this.advance(1);
826
+
827
+ // Consume alphanumeric characters and underscores
804
828
  while (!this.eof()) {
805
- const c = this.text[this.i];
806
- if (/[a-zA-Z0-9_]/.test(c)) this.advance(1);
807
- else break;
829
+ const ch = this.text[this.i];
830
+ if (/[a-zA-Z0-9_]/.test(ch)) {
831
+ this.advance(1);
832
+ } else {
833
+ break;
834
+ }
808
835
  }
809
- return this.text.substring(start, this.i);
836
+
837
+ return this.text.substring(startIdx, this.i);
810
838
  }
811
839
 
812
840
  private parseString(): Node {