@arkadia/data 0.1.9 → 0.1.10

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/README.md CHANGED
@@ -220,14 +220,6 @@ AKD allows you to inject metadata that is **visible to the LLM** but **ignored b
220
220
 
221
221
  ---
222
222
 
223
- ## 🔮 Roadmap
224
-
225
- - **Binary Types:** Hex (`~[hex]1A...~`) and Base64 (`~[b64]...~`) support.
226
- - **Pointers:** Reference existing objects by ID (`*User[1]`).
227
- - **Ranges:** Numeric range validation in schema (`score: 0..100`).
228
-
229
- ---
230
-
231
223
  ## 📄 License
232
224
 
233
225
  This project is licensed under the [MIT License]().
@@ -56,7 +56,6 @@ export declare class Decoder {
56
56
  private parseMetaBlock;
57
57
  private parseMetaAttribute;
58
58
  private parseMetaTag;
59
- private parseMetaFlag;
60
59
  private parseIdent;
61
60
  private parseString;
62
61
  private parseNumber;
@@ -1 +1 @@
1
- {"version":3,"file":"Decoder.d.ts","sourceRoot":"","sources":["../../src/core/Decoder.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"Decoder.d.ts","sourceRoot":"","sources":["../../src/core/Decoder.ts"],"names":[],"mappings":"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"}
@@ -507,7 +507,7 @@ class Decoder {
507
507
  this.pendingMeta.comments.push(this.parseCommentBlock());
508
508
  continue;
509
509
  }
510
- if (ch === '/' && nextCh !== '*') {
510
+ if (ch === '/' && nextCh === '/') {
511
511
  this.parseMetaBlock(obj);
512
512
  continue;
513
513
  }
@@ -558,15 +558,17 @@ class Decoder {
558
558
  this.parseMetaAttribute(this.pendingMeta);
559
559
  else if (ch === '#')
560
560
  this.parseMetaTag(this.pendingMeta);
561
- else if (ch === '!')
562
- this.parseMetaFlag(this.pendingMeta);
563
561
  else
564
562
  this.advance(1);
565
563
  }
566
564
  parseMetaBlock(obj = null) {
567
- this.expect('/');
568
- this._dbg('START meta header /.../');
569
565
  const meta = new Meta_1.MetaInfo();
566
+ if (!(this.peek() === '/' && this.peekNext() === '/')) {
567
+ this.addError("Expected '//' to start meta block");
568
+ return meta;
569
+ }
570
+ this.advance(2); // consume //
571
+ this._dbg('START meta header //...//');
570
572
  while (!this.eof()) {
571
573
  this.skipWhitespace();
572
574
  const ch = this.peek();
@@ -575,8 +577,8 @@ class Decoder {
575
577
  meta.comments.push(this.parseCommentBlock());
576
578
  continue;
577
579
  }
578
- if (ch === '/') {
579
- this.advance(1);
580
+ if (ch === '/' && nextCh === '/') {
581
+ this.advance(2);
580
582
  break;
581
583
  }
582
584
  if (ch === '$') {
@@ -587,10 +589,6 @@ class Decoder {
587
589
  this.parseMetaTag(meta);
588
590
  continue;
589
591
  }
590
- if (ch === '!') {
591
- this.parseMetaFlag(meta);
592
- continue;
593
- }
594
592
  // Implicit Attribute (Legacy support: key=value without $)
595
593
  if (/[a-zA-Z0-9_]/.test(ch || '')) {
596
594
  const key = this.parseIdent();
@@ -626,7 +624,13 @@ class Decoder {
626
624
  this.advance(1);
627
625
  val = this.parsePrimitiveValue();
628
626
  }
629
- meta.attr[key] = val;
627
+ if (key === 'required') {
628
+ meta.required = true;
629
+ this._dbg('Meta Flag: $required');
630
+ }
631
+ else {
632
+ meta.attr[key] = val;
633
+ }
630
634
  this._dbg(`Meta Attr: $${key}=${val}`);
631
635
  }
632
636
  parseMetaTag(meta) {
@@ -635,17 +639,6 @@ class Decoder {
635
639
  meta.tags.push(tag);
636
640
  this._dbg(`Meta Tag: #${tag}`);
637
641
  }
638
- parseMetaFlag(meta) {
639
- this.advance(1); // !
640
- const flag = this.parseIdent();
641
- if (flag === 'required') {
642
- meta.required = true;
643
- this._dbg('Meta Flag: !required');
644
- }
645
- else {
646
- this.addWarning(`Unknown flag: !${flag}`);
647
- }
648
- }
649
642
  // =========================================================
650
643
  // HELPERS & LOW-LEVEL PARSERS
651
644
  // =========================================================
@@ -1 +1 @@
1
- {"version":3,"file":"Decoder.js","sourceRoot":"","sources":["../../src/core/Decoder.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"Decoder.js","sourceRoot":"","sources":["../../src/core/Decoder.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"Encoder.d.ts","sourceRoot":"","sources":["../../src/core/Encoder.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,WAAW,CAAC;AAE1C,OAAO,EAAE,IAAI,EAAa,MAAM,gBAAgB,CAAC;AACjD,OAAO,EAAE,MAAM,EAAE,MAAM,kBAAkB,CAAC;AAe1C,qBAAa,OAAO;IAClB,OAAO,CAAC,MAAM,CAAgB;gBAElB,MAAM,EAAE,aAAa;IAQ1B,MAAM,CAAC,IAAI,EAAE,IAAI,EAAE,WAAW,GAAE,MAAU,EAAE,aAAa,GAAE,OAAc,GAAG,MAAM;IAyClF,YAAY,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,WAAW,GAAE,OAAc,GAAG,MAAM;IA2ExF,OAAO,CAAC,kBAAkB;IAqC1B,OAAO,CAAC,oBAAoB;IAe5B,OAAO,CAAC,YAAY;IAYpB,OAAO,CAAC,YAAY;IAmBpB,OAAO,CAAC,eAAe;IA+CvB,OAAO,CAAC,UAAU;IAIlB,OAAO,CAAC,WAAW;IAOnB,OAAO,CAAC,CAAC;IAKT,OAAO,CAAC,mBAAmB;IAM3B,OAAO,CAAC,cAAc;IAQtB,OAAO,CAAC,YAAY;IAsBpB,OAAO,CAAC,UAAU;IASlB,OAAO,CAAC,SAAS;IAMjB,OAAO,CAAC,UAAU;IAwElB,OAAO,CAAC,YAAY;CAqBrB"}
1
+ {"version":3,"file":"Encoder.d.ts","sourceRoot":"","sources":["../../src/core/Encoder.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,WAAW,CAAC;AAE1C,OAAO,EAAE,IAAI,EAAa,MAAM,gBAAgB,CAAC;AACjD,OAAO,EAAE,MAAM,EAAE,MAAM,kBAAkB,CAAC;AAe1C,qBAAa,OAAO;IAClB,OAAO,CAAC,MAAM,CAAgB;gBAElB,MAAM,EAAE,aAAa;IAQ1B,MAAM,CAAC,IAAI,EAAE,IAAI,EAAE,WAAW,GAAE,MAAU,EAAE,aAAa,GAAE,OAAc,GAAG,MAAM;IAyClF,YAAY,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,WAAW,GAAE,OAAc,GAAG,MAAM;IA2ExF,OAAO,CAAC,kBAAkB;IAqC1B,OAAO,CAAC,oBAAoB;IAe5B,OAAO,CAAC,YAAY;IAYpB,OAAO,CAAC,YAAY;IAmBpB,OAAO,CAAC,eAAe;IAmDvB,OAAO,CAAC,UAAU;IAIlB,OAAO,CAAC,WAAW;IAOnB,OAAO,CAAC,CAAC;IAKT,OAAO,CAAC,mBAAmB;IAM3B,OAAO,CAAC,cAAc;IAQtB,OAAO,CAAC,YAAY;IAsBpB,OAAO,CAAC,UAAU;IASlB,OAAO,CAAC,SAAS;IAMjB,OAAO,CAAC,UAAU;IAwElB,OAAO,CAAC,YAAY;CAqBrB"}
@@ -11,7 +11,7 @@ Colors.NULL = '\x1b[90m'; // gray
11
11
  Colors.TYPE = '\x1b[96m'; // cyan
12
12
  Colors.KEY = '\x1b[93m'; // yellow
13
13
  Colors.SCHEMA = '\x1b[91m'; // red (for @TypeName)
14
- Colors.TAG = '\x1b[91m';
14
+ Colors.TAG = '\x1b[35m';
15
15
  Colors.ATTR = '\x1b[93m';
16
16
  class Encoder {
17
17
  constructor(config) {
@@ -196,14 +196,19 @@ class Encoder {
196
196
  }
197
197
  // 2. Modifiers
198
198
  if (obj.required) {
199
- items.push(this.c('!required', Colors.TAG));
199
+ items.push(this.c('$required', Colors.TAG));
200
200
  }
201
201
  // 3. Attributes & Tags
202
202
  if (this.config.includeMeta) {
203
203
  const currentAttr = obj.attr || {};
204
204
  for (const [k, v] of Object.entries(currentAttr)) {
205
- const valStr = this.primitiveValue(v);
206
- items.push(this.c(`$${k}=`, Colors.ATTR) + valStr);
205
+ if (typeof v === 'boolean' && v === true) {
206
+ items.push(this.c(`$${k}`, Colors.ATTR));
207
+ }
208
+ else {
209
+ const valStr = this.primitiveValue(v);
210
+ items.push(this.c(`$${k}=`, Colors.ATTR) + valStr);
211
+ }
207
212
  }
208
213
  const currentTags = obj.tags || [];
209
214
  for (const t of currentTags) {
@@ -215,7 +220,7 @@ class Encoder {
215
220
  }
216
221
  const content = items.join(' ');
217
222
  if (wrapped) {
218
- const wrappedContent = this.c(`/${pad}`, Colors.SCHEMA) + content + this.c(`${pad}/`, Colors.SCHEMA);
223
+ const wrappedContent = this.c(`//${pad}`, Colors.SCHEMA) + content + this.c(`${pad}//`, Colors.SCHEMA);
219
224
  return this.config.compact ? wrappedContent + ' ' : ' ' + wrappedContent + ' ';
220
225
  }
221
226
  // Inline: /* c1 */ !req $a=1
@@ -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":"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"}
@@ -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.10",
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,10 +725,6 @@ 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
730
  if (/[a-zA-Z0-9_]/.test(ch || '')) {
@@ -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,17 +782,6 @@ 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
  // =========================================================
@@ -12,7 +12,7 @@ class Colors {
12
12
  static TYPE = '\x1b[96m'; // cyan
13
13
  static KEY = '\x1b[93m'; // yellow
14
14
  static SCHEMA = '\x1b[91m'; // red (for @TypeName)
15
- static TAG = '\x1b[91m';
15
+ static TAG = '\x1b[35m';
16
16
  static ATTR = '\x1b[93m';
17
17
  }
18
18
 
@@ -240,15 +240,19 @@ export class Encoder {
240
240
 
241
241
  // 2. Modifiers
242
242
  if ((obj as Schema).required) {
243
- items.push(this.c('!required', Colors.TAG));
243
+ items.push(this.c('$required', Colors.TAG));
244
244
  }
245
245
 
246
246
  // 3. Attributes & Tags
247
247
  if (this.config.includeMeta) {
248
248
  const currentAttr = obj.attr || {};
249
249
  for (const [k, v] of Object.entries(currentAttr)) {
250
- const valStr = this.primitiveValue(v);
251
- items.push(this.c(`$${k}=`, Colors.ATTR) + valStr);
250
+ if (typeof v === 'boolean' && v === true) {
251
+ items.push(this.c(`$${k}`, Colors.ATTR));
252
+ } else {
253
+ const valStr = this.primitiveValue(v);
254
+ items.push(this.c(`$${k}=`, Colors.ATTR) + valStr);
255
+ }
252
256
  }
253
257
 
254
258
  const currentTags = obj.tags || [];
@@ -265,7 +269,7 @@ export class Encoder {
265
269
 
266
270
  if (wrapped) {
267
271
  const wrappedContent =
268
- this.c(`/${pad}`, Colors.SCHEMA) + content + this.c(`${pad}/`, Colors.SCHEMA);
272
+ this.c(`//${pad}`, Colors.SCHEMA) + content + this.c(`${pad}//`, Colors.SCHEMA);
269
273
  return this.config.compact ? wrappedContent + ' ' : ' ' + wrappedContent + ' ';
270
274
  }
271
275
 
@@ -53,7 +53,7 @@ export class Meta {
53
53
 
54
54
  /**
55
55
  * A temporary container (DTO) holding parsed metadata from a / ... / block.
56
- * It contains BOTH Schema constraints (!required) and Node attributes ($key=val).
56
+ * It contains BOTH Schema constraints ($required) and Node attributes ($key=val).
57
57
  */
58
58
  export class MetaInfo extends Meta {
59
59
  required: boolean;
@@ -91,14 +91,14 @@ export class MetaInfo extends Meta {
91
91
 
92
92
  /**
93
93
  * Debug representation mimicking the actual ADF format style.
94
- * Example: <MetaInfo !required #tag $key=val >
94
+ * Example: <MetaInfo $required #tag $key=val >
95
95
  */
96
96
  toString(): string {
97
97
  const parts: string[] = [];
98
98
 
99
99
  // 1. Flags
100
100
  if (this.required) {
101
- parts.push('!required');
101
+ parts.push('$required');
102
102
  }
103
103
 
104
104
  // 2. Tags
@@ -192,7 +192,7 @@ export class Schema extends Meta {
192
192
  // 3. Details
193
193
  const details: string[] = [];
194
194
 
195
- if (this.required) details.push('!required');
195
+ if (this.required) details.push('$required');
196
196
 
197
197
  const attrKeys = Object.keys(this.attr);
198
198
  if (attrKeys.length > 0)
@@ -1,4 +1,4 @@
1
- import { describe, it, expect } from 'vitest';
1
+ import { describe, expect, it } from 'vitest';
2
2
  import { MetaInfo } from '../src/index';
3
3
 
4
4
  describe('AK Data Meta', () => {
@@ -9,7 +9,7 @@ describe('AK Data Meta', () => {
9
9
  tags: ['tag1', 'tag2'],
10
10
  required: true,
11
11
  });
12
- const expected = '<MetaInfo !required #tag1 #tag2 $foo="bar" /* This is a comme.. */>';
12
+ const expected = '<MetaInfo $required #tag1 #tag2 $foo="bar" /* This is a comme.. */>';
13
13
  // const expectedJSON
14
14
  const expected_val = {
15
15
  comments: ['This is a comment'],
@@ -1,4 +1,4 @@
1
- import { describe, it, expect } from 'vitest';
1
+ import { describe, expect, it } from 'vitest';
2
2
  import { Schema, SchemaKind } from '../src/index';
3
3
 
4
4
  describe('AI Schema test', () => {
@@ -11,7 +11,7 @@ describe('AI Schema test', () => {
11
11
  required: true,
12
12
  });
13
13
  const expected =
14
- '<Schema(DICT) name="TestSchema" !required attr=["foo"] tags=[tag1, tag2] comments=1>';
14
+ '<Schema(DICT) name="TestSchema" $required attr=["foo"] tags=[tag1, tag2] comments=1>';
15
15
  const expected_val = {
16
16
  comments: ['This is a comment'],
17
17
  attr: {
@@ -8,7 +8,7 @@ describe('AK Data Metadata (Meta)', () => {
8
8
  // ==================================================================================
9
9
 
10
10
  it('should handle comments', () => {
11
- /** Validates that comments /.../ are ignored or handled. */
11
+ /** Validates that comments / * ... * / are handled correctly. */
12
12
  const text = '@User<id:int /*primary key*/, name:string> @User(5, "Bob")';
13
13
  // Note: int normalizes to number in TS
14
14
  const expected = '@User</*primary key*/ id:number,name:string>(5,"Bob")';
@@ -16,8 +16,6 @@ describe('AK Data Metadata (Meta)', () => {
16
16
  const res = decode(text, { debug: false });
17
17
  expect(res.errors).toHaveLength(0);
18
18
 
19
- // If the parser attaches schema comments to fields correctly, good.
20
- // Here we just ensure data parsing works despite comments.
21
19
  expect(res.node.fields['id'].value).toBe(5);
22
20
 
23
21
  assertRoundtrip(text, expected, false);
@@ -28,14 +26,14 @@ describe('AK Data Metadata (Meta)', () => {
28
26
  $a0=5
29
27
  <
30
28
  /* c1 */
31
- / $a1 /* c0 *//
29
+ // $a1 /* c0 *///
32
30
  /* c2 */ $a2=2 /* c3 */ $a3=3 a:number
33
31
  >
34
32
  ($a6 /*a*/ 3)
35
33
  `;
36
34
 
37
35
  const expected =
38
- '<//*c0*/ $a0=5 $a1=true/ /*c1*/ /*c2*/ /*c3*/ $a2=2 $a3=3 a:number>(/*a*/ $a6=true 3)';
36
+ '<///*c0*/ $a0=5 $a1// /*c1*/ /*c2*/ /*c3*/ $a2=2 $a3=3 a:number>(/*a*/ $a6 3)';
39
37
  assertRoundtrip(akdText, expected, false);
40
38
  });
41
39
 
@@ -44,21 +42,20 @@ describe('AK Data Metadata (Meta)', () => {
44
42
  $attr=5
45
43
  <
46
44
  /* comm2 */
47
- / $schema1 /
45
+ // $schema1 //
48
46
  /* comm1 */
49
47
  [a:int]
50
48
  >
51
49
  $attr=3
52
50
  [
53
- / /*meta for list*/ $attr=4 /
51
+ // /*meta for list*/ $attr=4 //
54
52
  /*item1*/ $attr5 (3 $attr6),
55
53
  /*item2*/ {a:5},
56
54
  ]
57
55
  `;
58
56
 
59
- // Note: int -> number
60
57
  const expected =
61
- '<[//*comm2*/ /*comm1*/ $attr=5 $schema1=true/ a:number]>[//*meta for list*/ $attr=4/ (//*item1*/ $attr5=true/ $attr6=true 3),(//*item2*// 5)]';
58
+ '<[///*comm2*/ /*comm1*/ $attr=5 $schema1// a:number]>[///*meta for list*/ $attr=4// (///*item1*/ $attr5// $attr6 3),(///*item2*/// 5)]';
62
59
  assertRoundtrip(akdText, expected, false);
63
60
  });
64
61
 
@@ -67,17 +64,11 @@ describe('AK Data Metadata (Meta)', () => {
67
64
  // ==============================================================================
68
65
 
69
66
  it('should handle list schema with meta', () => {
70
- /**
71
- * Verifies that an empty schema definition < ... > correctly parses:
72
- * 1. Comments (including nested ones).
73
- * 2. Attributes ($key=val).
74
- * 3. Tags (#tag).
75
- */
76
67
  const akdText = `
77
68
  /* 0 */
78
69
  <
79
70
  /* commentm0 */ /* com1 /*com1.2*/ */
80
- / $listAttr="GlobalList" $b=4 #tag /
71
+ // $listAttr="GlobalList" $b=4 #tag //
81
72
  /* comment4 */
82
73
  id:number
83
74
  >
@@ -93,152 +84,78 @@ describe('AK Data Metadata (Meta)', () => {
93
84
 
94
85
  const result = decode(akdText, { debug: false });
95
86
  const node = result.node;
96
- const errors = result.errors;
97
87
 
98
- // 1. Assert no syntax errors
99
- expect(errors).toHaveLength(0);
88
+ expect(result.errors).toHaveLength(0);
100
89
 
101
- // 2. Check Schema Basics
102
90
  const schema = node.schema;
103
91
  expect(schema).not.toBeNull();
104
- expect(schema.kind).toBe(SchemaKind.LIST); // Default kind for <...>
105
-
106
- // 3. Verify Attributes ($key=val)
107
- // Parser casts to number if possible
108
- expect(schema.attr['listAttr']).toBe('GlobalList');
109
- expect(schema.attr['b']).toBe(4);
92
+ expect(schema!.kind).toBe(SchemaKind.LIST);
110
93
 
111
- // 4. Verify Tags (#tag)
112
- expect(schema.tags).toContain('tag');
113
- expect(schema.tags).toHaveLength(1);
114
-
115
- // 5. Verify Comments
116
- // We expect multiple comments to be collected
117
- expect(schema.comments.length).toBeGreaterThan(0);
118
- expect(schema.comments.some((c) => c.includes('0'))).toBe(true);
94
+ expect(schema!.attr['listAttr']).toBe('GlobalList');
95
+ expect(schema!.attr['b']).toBe(4);
96
+ expect(schema!.tags).toContain('tag');
119
97
 
120
98
  const expected =
121
- '<[//*0*/ $listAttr="GlobalList" $b=4 #tag/ number]>[//*a*/ /*b*/ $val=3 #tag1/ 1,2,3]';
99
+ '<[///*0*/ $listAttr="GlobalList" $b=4 #tag// number]>[///*a*/ /*b*/ $val=3 #tag1// 1,2,3]';
122
100
  assertRoundtrip(akdText, expected, false);
123
101
  });
124
102
 
125
103
  it('should encode manual schema with meta', () => {
126
- /**
127
- * Verifies that a Schema with meta/comments is encoded correctly.
128
- * Expected format: < / $attr=val #tag / any >
129
- */
130
-
131
- // 1. Prepare Schema manually
132
104
  const schema = new Schema(SchemaKind.RECORD);
133
105
  schema.comments = ['comment1', 'comment2'];
134
106
  schema.attr = { key: 'value', count: 10 };
135
107
  schema.tags = ['myTag'];
136
108
 
137
- // Create a node using this schema
138
109
  const node = new Node(schema, { value: null });
139
- const expected = '<//*comment1*/ /*comment2*/ $key="value" $count=10 #myTag/ any>(null)';
110
+ const expected = '<///*comment1*/ /*comment2*/ $key="value" $count=10 #myTag// any>(null)';
140
111
 
141
112
  assertRoundtrip(node, expected, false);
142
113
  });
143
114
 
144
115
  it('should round trip schema encode decode', () => {
145
- /**
146
- * Verifies that a Schema with meta/comments can be encoded to text
147
- * and then decoded back, preserving all metadata (Round-Trip).
148
- */
149
-
150
- // 1. Prepare Schema manually
151
116
  const originalSchema = new Schema(SchemaKind.RECORD);
152
117
  originalSchema.comments = ['comment1', 'comment2'];
153
118
  originalSchema.attr = { key: 'value', count: 10, isActive: true };
154
119
  originalSchema.tags = ['myTag', 'urgent'];
155
120
 
156
- // Create a node using this schema
157
121
  const originalNode = new Node(originalSchema, { value: null });
158
122
 
159
- // 2. Encode to String
160
- // Important: We must enable include_comments to verify them after decoding
161
123
  const encodedText = encode(originalNode, {
162
124
  includeComments: true,
163
- compact: true, // Test compact mode (one line)
125
+ compact: true,
164
126
  colorize: false,
165
127
  });
166
128
 
167
- // 3. Decode back to Node
168
129
  const result = decode(encodedText, { debug: false });
169
130
  const decodedNode = result.node;
170
- const errors = result.errors;
171
-
172
- // 4. Verify No Errors
173
- expect(errors).toHaveLength(0);
174
- expect(decodedNode).not.toBeNull();
175
131
 
176
- // 5. Verify Schema Integrity
177
- const decodedSchema = decodedNode.schema;
178
- expect(decodedSchema).not.toBeNull();
179
- expect(decodedSchema.kind).toBe(SchemaKind.RECORD);
180
-
181
- // 6. Verify Meta Data (Attributes)
182
- expect(decodedSchema.attr['key']).toBe('value');
183
- expect(decodedSchema.attr['count']).toBe(10);
184
- expect(decodedSchema.attr['isActive']).toBe(true);
185
-
186
- // 7. Verify Tags
187
- expect(decodedSchema.tags).toContain('myTag');
188
- expect(decodedSchema.tags).toContain('urgent');
189
- expect(decodedSchema.tags).toHaveLength(2);
190
-
191
- // 8. Verify Comments
192
- expect(decodedSchema.comments).toHaveLength(2);
193
- expect(decodedSchema.comments).toContain('comment1');
194
- expect(decodedSchema.comments).toContain('comment2');
132
+ expect(result.errors).toHaveLength(0);
133
+ expect(decodedNode.schema!.attr['key']).toBe('value');
134
+ expect(decodedNode.schema!.tags).toContain('urgent');
195
135
 
196
- // Additional checks for configuration flags
136
+ // Test cleaning meta
197
137
  const decodedTextClean = encode(decodedNode, {
198
138
  compact: true,
199
139
  includeMeta: false,
200
140
  includeComments: false,
201
141
  });
202
142
 
203
- // Assertions for No Meta
204
143
  expect(decodedTextClean).not.toContain('$key');
205
- expect(decodedTextClean).not.toContain('#myTag');
206
- expect(decodedTextClean).not.toContain('/'); // No meta block
207
- // Empty schema without meta encodes to <any> or similar
208
- expect(decodedTextClean).toContain('<any>');
209
-
210
- // B. Encode WITH Meta (includeMeta=true) but NO Type (includeType=false)
211
- const decodedTextWithMeta = encode(decodedNode, {
212
- compact: true,
213
- includeType: false,
214
- includeMeta: true,
215
- includeComments: false,
216
- });
217
-
218
- // Assertions for With Meta
219
- expect(decodedTextWithMeta).toContain('$key=');
220
- expect(decodedTextWithMeta).toContain('#myTag');
221
- expect(decodedTextWithMeta).toContain('$count=10');
222
- expect(decodedTextWithMeta).toContain('/');
144
+ expect(decodedTextClean).not.toContain('//');
223
145
 
224
146
  const expected =
225
- '<//*comment1*/ /*comment2*/ $key="value" $count=10 $isActive=true #myTag #urgent/ any>(null)';
147
+ '<///*comment1*/ /*comment2*/ $key="value" $count=10 $isActive #myTag #urgent// any>(null)';
226
148
  assertRoundtrip(originalNode, expected, false);
227
149
  });
228
150
 
229
151
  it('should handle meta schema list vs element', () => {
230
- /**
231
- * Tests nested metadata within a type definition:
232
- * Outer: / $listAttr="GlobalList" / -> Applies to the entire List
233
- * Inner: / $elemAttr="InnerRecord" / -> Applies to the Element (Record) inside
234
- */
235
152
  const akdText = `
236
153
  <
237
154
  /* comm-header-0 */ /* comm-header-1 /* comm-header-1.1*/ */
238
- / $listAttr="GlobalList" $b=4 /*com-in*/ /
155
+ // $listAttr="GlobalList" $b=4 /*com-in*/ //
239
156
  /* comm-after-header-0 */
240
157
  [
241
- / $elemAttr="InnerRecord" #elem0 /* comm-inside-header-0 */ /
158
+ // $elemAttr="InnerRecord" #elem0 /* comm-inside-header-0 */ //
242
159
  /* comm-inside-field-0 */ #elem1 id: int
243
160
  ]
244
161
  >
@@ -247,30 +164,13 @@ describe('AK Data Metadata (Meta)', () => {
247
164
 
248
165
  const results = decode(akdText, { debug: false });
249
166
  const node = results.node;
250
- const errors = results.errors;
251
-
252
- expect(errors).toHaveLength(0);
253
-
254
- // 1. Check List Meta (Outer)
255
- expect(node.isList).toBe(true);
256
- // Access attributes via .attr (Mixin)
257
- expect(node.schema.attr['listAttr']).toBe('GlobalList');
258
- expect(node.schema.attr['elemAttr']).toBe('InnerRecord');
259
-
260
- expect(node.schema.attr['b']).toBe(4);
261
167
 
262
- // 2. Check Element Meta (Inner Record)
263
- const elemSchema = node.schema.element!;
264
- expect(elemSchema.kind).toBe(SchemaKind.RECORD);
265
- expect(elemSchema.attr).toStrictEqual({});
266
-
267
- // Check if element meta propagated to actual data elements (depends on implementation)
268
- // Usually schema meta is on schema, data meta is on data node.
269
- // Here we check the schema attached to the element node.
270
- expect(node.elements[0].schema.attr).toStrictEqual({});
168
+ expect(results.errors).toHaveLength(0);
169
+ expect(node.schema!.attr['listAttr']).toBe('GlobalList');
170
+ expect(node.schema!.attr['elemAttr']).toBe('InnerRecord');
271
171
 
272
172
  const expected =
273
- '<[//*com-in*/ /*comm-header-0*/ /*comm-header-1 /* comm-header-1.1*/*/ /*comm-after-header-0*/ /*comm-inside-header-0*/ $listAttr="GlobalList" $b=4 $elemAttr="InnerRecord" #elem0/ /*comm-inside-field-0*/ #elem1 id:number]>[(//*comm-data-v1*/ /*comm-data-v2*// 1)]';
173
+ '<[///*com-in*/ /*comm-header-0*/ /*comm-header-1 /* comm-header-1.1*/*/ /*comm-after-header-0*/ /*comm-inside-header-0*/ $listAttr="GlobalList" $b=4 $elemAttr="InnerRecord" #elem0// /*comm-inside-field-0*/ #elem1 id:number]>[(///*comm-data-v1*/ /*comm-data-v2*/// 1)]';
274
174
  assertRoundtrip(akdText, expected, false);
275
175
  });
276
176
 
@@ -278,12 +178,12 @@ describe('AK Data Metadata (Meta)', () => {
278
178
  const akdText = `
279
179
  <
280
180
  /* header-com-0 */
281
- / #tag_header /
181
+ // #tag_header //
282
182
  /* comm-data-v1 */ #tag1 v1: number /* comm-data-v2 */ #tag2,
283
183
  /* comm-data-v3 */ #tag3 v2: number /* comm-data-v3 */ #tag4
284
184
  >
285
185
  [
286
- / #tag_list /
186
+ // #tag_list //
287
187
  /* comm-data-v1 */ #tag1 1 /* comm-data-v2 */ #tag2
288
188
  /* comm-data-v3 */ #tag3 2 /* comm-data-v3 */ #tag4
289
189
  ]
@@ -293,21 +193,17 @@ describe('AK Data Metadata (Meta)', () => {
293
193
  expect(results.errors).toHaveLength(0);
294
194
 
295
195
  const expected =
296
- '<[/#tag_header/ number]>[/#tag_list/ /*comm-data-v1*/ #tag1 1,/*comm-data-v2*/ /*comm-data-v3*/ /*comm-data-v3*/ #tag2 #tag3 #tag4 2]';
196
+ '<[//#tag_header// number]>[//#tag_list// /*comm-data-v1*/ #tag1 1,/*comm-data-v2*/ /*comm-data-v3*/ /*comm-data-v3*/ #tag2 #tag3 #tag4 2]';
297
197
  assertRoundtrip(akdText, expected, false);
298
198
  });
299
199
 
300
200
  it('should warn on meta schema with implicit values', () => {
301
- /**
302
- * Tests handling of malformed meta blocks.
303
- * In the input: / listAttr="GlobalList" / is missing '$' prefix for attribute.
304
- */
305
201
  const akdText = `
306
202
  <
307
- / listAttr="GlobalList" /
203
+ // listAttr="GlobalList" //
308
204
  [
309
205
  /* Missing $ prefix */
310
- / $elemAttr="InnerRecord" /* fixed input */ /
206
+ // $elemAttr="InnerRecord" /* fixed input */ //
311
207
  /* comments2 */ id: int
312
208
  ]
313
209
  >
@@ -315,123 +211,69 @@ describe('AK Data Metadata (Meta)', () => {
315
211
  `;
316
212
 
317
213
  const results = decode(akdText, { debug: false });
318
- const node = results.node;
319
- const warnings = results.warnings;
320
-
321
- // If the input was fixed above, errors should be 0.
322
- // Because we have: listAttr="GlobalList" (implicit), it should be a warning.
323
- expect(warnings.length).toBeGreaterThan(0);
324
- expect(warnings[0].message).toContain("Implicit attribute 'listAttr'");
325
-
326
- // 1. Check List Meta (Outer)
327
- expect(node.isList).toBe(true);
328
- expect(node.schema.attr['listAttr']).toBe('GlobalList');
329
-
330
- // 2. Check Element Meta (Inner Record)
331
- const elemSchema = node.schema.element!;
332
- expect(elemSchema.kind).toBe(SchemaKind.RECORD);
333
- expect(node.schema.attr['elemAttr']).toBe('InnerRecord');
214
+ expect(results.warnings.length).toBeGreaterThan(0);
215
+ expect(results.warnings[0].message).toContain("Implicit attribute 'listAttr'");
334
216
 
335
217
  const expected =
336
- '<[//*fixed input*/ $listAttr="GlobalList" $elemAttr="InnerRecord"/ /*Missing $ prefix*/ /*comments2*/ id:number]>[(1)]';
218
+ '<[///*fixed input*/ $listAttr="GlobalList" $elemAttr="InnerRecord"// /*Missing $ prefix*/ /*comments2*/ id:number]>[(1)]';
337
219
  assertRoundtrip(akdText, expected, false);
338
220
  });
339
221
 
340
222
  it('should handle meta schema field modifiers', () => {
341
- /**
342
- * Tests field modifiers inside a record definition: !required, $key=value.
343
- */
344
223
  const akdText = `
345
224
  <
346
225
  /* comm0 */
347
- / $id=0 /*comm2 /* comm2.5*/ */ /
226
+ // $id=0 /*comm2 /* comm2.5*/ */ //
348
227
 
349
228
  /* comm3 */
350
229
 
351
230
  /* Modifiers block before field name */
352
- !required $key=101 id:int,
231
+ $required $key=101 id:int,
353
232
 
354
233
  $desc="User Name"
355
234
  name: string
356
235
  >
357
- ( /* comment0 */ / $id=3 /*comment2*/ / /*comment3*/ 1, "Alice" $id=65 #alice /*comment4*/ )
236
+ ( /* comment0 */ // $id=3 /*comment2*/ // /*comment3*/ 1, "Alice" $id=65 #alice /*comment4*/ )
358
237
  `;
359
238
 
360
239
  const results = decode(akdText, { debug: false });
361
240
  const node = results.node;
362
241
  expect(results.errors).toHaveLength(0);
363
242
 
364
- expect(node.isRecord).toBe(true);
365
-
366
- // Retrieve field definitions from schema
367
- const fields = node.schema.fields;
368
-
369
- // Field 'id'
370
- const fId = fields.find((f) => f.name === 'id')!;
371
- expect(fId).toBeDefined();
243
+ const fId = node.schema!.fields.find((f) => f.name === 'id')!;
372
244
  expect(fId.required).toBe(true);
373
245
  expect(fId.attr['key']).toBe(101);
374
-
375
- // Field 'name'
376
- const fName = fields.find((f) => f.name === 'name')!;
377
- expect(fName).toBeDefined();
378
- expect(fName.required).toBe(false); // Default
379
- expect(fName.attr['desc']).toBe('User Name');
380
-
381
- // Check Instance Data Meta (the node itself, not the schema)
382
- // The record instance has / $id=3 /
383
246
  expect(node.attr['id']).toBe(3);
384
247
 
385
248
  const expected =
386
- '<//*comm2 /* comm2.5*/*/ $id=0/ /*comm0*/ /*comm3*/ /*Modifiers block before field name*/ !required $key=101 id:number,$desc="User Name" name:string>(//*comment2*/ $id=3/ /*comment0*/ /*comment3*/ 1,/*comment4*/ $id=65 #alice "Alice")';
249
+ '<///*comm2 /* comm2.5*/*/ $id=0// /*comm0*/ /*comm3*/ /*Modifiers block before field name*/ $required $key=101 id:number,$desc="User Name" name:string>(///*comment2*/ $id=3// /*comment0*/ /*comment3*/ 1,/*comment4*/ $id=65 #alice "Alice")';
387
250
  assertRoundtrip(akdText, expected, false);
388
251
  });
389
252
 
390
- // ==============================================================================
391
- // 2. DATA BLOCK META (Metadata inside data blocks [ ... ])
392
- // ==============================================================================
393
-
394
253
  it('should handle meta data block list primitive', () => {
395
- /**
396
- * Tests metadata inside a data block for a simple list.
397
- * Syntax: [ / @size=3 / 1, 2, 3 ]
398
- */
399
- const akdText = '[ / $size=3 $author="me" / 1, 2, 3 ]';
254
+ const akdText = '[ // $size=3 $author="me" // 1, 2, 3 ]';
400
255
 
401
256
  const results = decode(akdText, { debug: false });
402
257
  const node = results.node;
403
258
  expect(results.errors).toHaveLength(0);
404
259
 
405
- expect(node.isList).toBe(true);
406
- // Meta should go to this specific node's attributes
407
260
  expect(node.attr['size']).toBe(3);
408
261
  expect(node.attr['author']).toBe('me');
409
262
 
410
- // Check content
411
- expect(node.elements).toHaveLength(3);
412
- expect(node.elements[0].value).toBe(1);
413
-
414
- const expected = '<[number]>[/$size=3 $author="me"/ 1,2,3]';
263
+ const expected = '<[number]>[//$size=3 $author="me"// 1,2,3]';
415
264
  assertRoundtrip(akdText, expected, false);
416
265
  });
417
266
 
418
- // ==============================================================================
419
- // 3. NESTED META (Lists within lists)
420
- // ==============================================================================
421
-
422
267
  it('should handle meta nested lists', () => {
423
- /**
424
- * Tests metadata assignment in nested lists.
425
- */
426
268
  const akdText = `
427
269
  [
428
- / $level=0 /
270
+ // $level=0 //
429
271
  [
430
- / $level=1 /
272
+ // $level=1 //
431
273
  1, 2
432
274
  ],
433
275
  [
434
- / $level=2 /
276
+ // $level=2 //
435
277
  3, 4
436
278
  ]
437
279
  ]
@@ -441,70 +283,34 @@ describe('AK Data Metadata (Meta)', () => {
441
283
  const node = results.node;
442
284
  expect(results.errors).toHaveLength(0);
443
285
 
444
- // Root Node
445
- expect(node.isList).toBe(true);
446
286
  expect(node.attr['level']).toBe(0);
287
+ expect(node.elements[0].attr['level']).toBe(1);
288
+ expect(node.elements[1].attr['level']).toBe(2);
447
289
 
448
- // Inner Node 1
449
- const inner1 = node.elements[0];
450
- expect(inner1.isList).toBe(true);
451
- expect(inner1.attr['level']).toBe(1);
452
-
453
- // Inner Node 2
454
- const inner2 = node.elements[1];
455
- expect(inner2.isList).toBe(true);
456
- expect(inner2.attr['level']).toBe(2);
457
-
458
- const expected = '<[[number]]>[/$level=0/ [/$level=1/ 1,2],[/$level=2/ 3,4]]';
290
+ const expected = '<[[number]]>[//$level=0// [//$level=1// 1,2],[//$level=2// 3,4]]';
459
291
  assertRoundtrip(akdText, expected, false);
460
292
  });
461
293
 
462
- // ==============================================================================
463
- // 4. EDGE CASES & OVERRIDES
464
- // ==============================================================================
465
-
466
294
  it('should handle meta mixed with type override', () => {
467
- /**
468
- * Tests a scenario where we have metadata for the list AND a type override for an element.
469
- */
470
- const akdText = '[ / $info="mixed" / 1, 2, <string> "3" ]';
471
- const expected = '<[number]>[/$info="mixed"/ 1,2,<string> "3"]';
295
+ const akdText = '[ // $info="mixed" // 1, 2, <string> "3" ]';
296
+ const expected = '<[number]>[//$info="mixed"// 1,2,<string> "3"]';
472
297
 
473
298
  const result = decode(akdText, { debug: false });
474
- const node = result.node;
475
299
  expect(result.errors).toHaveLength(0);
300
+ expect(result.node.attr['info']).toBe('mixed');
301
+ expect(result.node.schema!.element?.typeName).toBe('number');
476
302
 
477
- // List Meta
478
- expect(node.attr['info']).toBe('mixed');
479
-
480
- // List Type Inference (Should be Number based on first element '1')
481
- expect(node.schema.element?.typeName).toBe('number');
482
-
483
- // Element Override
484
- const elLast = node.elements[2];
485
- expect(elLast.schema.typeName).toBe('string');
486
- expect(elLast.value).toBe('3');
487
-
488
- assertRoundtrip(node, expected, false);
303
+ assertRoundtrip(result.node, expected, false);
489
304
  });
490
305
 
491
306
  it('should handle meta and explicit type in data', () => {
492
- /**
493
- * Tests a scenario where an explicit type is provided inside the / ... / block.
494
- * The parser must understand that type is the list type, and @tag is metadata.
495
- */
496
- const akdText = '[ / $tag=1 / 1, 2 ]';
307
+ const akdText = '[ // $tag=1 // 1, 2 ]';
497
308
 
498
309
  const result = decode(akdText, { debug: false });
499
- const node = result.node;
500
310
  expect(result.errors).toHaveLength(0);
311
+ expect(result.node.attr['tag']).toBe(1);
501
312
 
502
- expect(node.isList).toBe(true);
503
- // Inferred type
504
- expect(node.schema.element?.typeName).toBe('number');
505
- expect(Object.keys(node.attr)).toHaveLength(1);
506
-
507
- const expected = '<[number]>[/$tag=1/ 1,2]';
508
- assertRoundtrip(node, expected, false);
313
+ const expected = '<[number]>[//$tag=1// 1,2]';
314
+ assertRoundtrip(result.node, expected, false);
509
315
  });
510
316
  });