@arkadia/data 0.1.8 → 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 +2 -17
- package/dist/core/Decoder.d.ts +0 -1
- package/dist/core/Decoder.d.ts.map +1 -1
- package/dist/core/Decoder.js +16 -23
- package/dist/core/Decoder.js.map +1 -1
- package/dist/core/Encoder.d.ts.map +1 -1
- package/dist/core/Encoder.js +10 -5
- package/dist/core/Encoder.js.map +1 -1
- package/dist/models/Meta.d.ts +2 -2
- package/dist/models/Meta.js +3 -3
- package/dist/models/Schema.js +1 -1
- package/package.json +2 -2
- package/src/core/Decoder.ts +16 -22
- package/src/core/Encoder.ts +9 -5
- package/src/models/Meta.ts +3 -3
- package/src/models/Schema.ts +1 -1
- package/tests/00.meta.test.ts +2 -2
- package/tests/00.schema.test.ts +2 -2
- package/tests/06.meta.test.ts +57 -251
package/README.md
CHANGED
|
@@ -1,8 +1,3 @@
|
|
|
1
|
-
Masz absolutną rację. Przepraszam za wprowadzenie w błąd – w obecnej strukturze paczka NPM `@arkadia/data` jest **czystą biblioteką** (library) do użycia w kodzie, a narzędzie CLI (`akd`) jest dostępne tylko w wersji Pythonowej.
|
|
2
|
-
|
|
3
|
-
Oto poprawiony `README.md` dla paczki TypeScript/NPM, usunięto z niego sekcje o CLI i `npx`.
|
|
4
|
-
|
|
5
|
-
````markdown
|
|
6
1
|
# @arkadia/data
|
|
7
2
|
|
|
8
3
|
```text
|
|
@@ -33,6 +28,7 @@ Oto poprawiony `README.md` dla paczki TypeScript/NPM, usunięto z niego sekcje o
|
|
|
33
28
|
WW
|
|
34
29
|
MW
|
|
35
30
|
```
|
|
31
|
+
|
|
36
32
|
````
|
|
37
33
|
|
|
38
34
|
> **The High-Density, Token-Efficient Data Protocol for Large Language Models.**
|
|
@@ -224,14 +220,6 @@ AKD allows you to inject metadata that is **visible to the LLM** but **ignored b
|
|
|
224
220
|
|
|
225
221
|
---
|
|
226
222
|
|
|
227
|
-
## 🔮 Roadmap
|
|
228
|
-
|
|
229
|
-
- **Binary Types:** Hex (`~[hex]1A...~`) and Base64 (`~[b64]...~`) support.
|
|
230
|
-
- **Pointers:** Reference existing objects by ID (`*User[1]`).
|
|
231
|
-
- **Ranges:** Numeric range validation in schema (`score: 0..100`).
|
|
232
|
-
|
|
233
|
-
---
|
|
234
|
-
|
|
235
223
|
## 📄 License
|
|
236
224
|
|
|
237
225
|
This project is licensed under the [MIT License]().
|
|
@@ -239,7 +227,4 @@ This project is licensed under the [MIT License]().
|
|
|
239
227
|
<div align="center">
|
|
240
228
|
<sub>Built by <strong>Arkadia Solutions</strong>. Engineering the kernel of distributed intelligence.</sub>
|
|
241
229
|
</div>
|
|
242
|
-
|
|
243
|
-
```
|
|
244
|
-
|
|
245
|
-
```
|
|
230
|
+
````
|
package/dist/core/Decoder.d.ts
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Decoder.d.ts","sourceRoot":"","sources":["../../src/core/Decoder.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,IAAI,EAAa,MAAM,gBAAgB,CAAC;AACjD,OAAO,EAAE,MAAM,EAAc,MAAM,kBAAkB,CAAC;AAmBtD,qBAAa,WAAW;IACtB,OAAO,EAAE,MAAM,CAAC;IAChB,QAAQ,EAAE,MAAM,CAAC;IACjB,OAAO,EAAE,MAAM,CAAM;IACrB,MAAM,EAAE,MAAM,GAAG,IAAI,CAAQ;IAC7B,IAAI,EAAE,IAAI,GAAG,IAAI,CAAQ;gBAGvB,OAAO,EAAE,MAAM,EACf,QAAQ,EAAE,MAAM,EAChB,MAAM,GAAE,MAAM,GAAG,IAAW,EAC5B,IAAI,GAAE,IAAI,GAAG,IAAW;IAQ1B,QAAQ,IAAI,MAAM;CAGnB;AAED,qBAAa,aAAa;IACxB,OAAO,EAAE,MAAM,CAAC;IAChB,QAAQ,EAAE,MAAM,CAAC;IACjB,MAAM,EAAE,MAAM,GAAG,IAAI,CAAC;IACtB,IAAI,EAAE,IAAI,GAAG,IAAI,CAAC;gBAGhB,OAAO,EAAE,MAAM,EACf,QAAQ,EAAE,MAAM,EAChB,MAAM,GAAE,MAAM,GAAG,IAAW,EAC5B,IAAI,GAAE,IAAI,GAAG,IAAW;IAQ1B,QAAQ,IAAI,MAAM;CAGnB;AAED,MAAM,WAAW,YAAY;IAC3B,IAAI,EAAE,IAAI,CAAC;IACX,MAAM,EAAE,MAAM,GAAG,IAAI,CAAC;IACtB,MAAM,EAAE,WAAW,EAAE,CAAC;IACtB,QAAQ,EAAE,aAAa,EAAE,CAAC;CAC3B;AAID,qBAAa,OAAO;IAClB,OAAO,CAAC,MAAM,CAAC,UAAU,CAQtB;IACH,OAAO,CAAC,MAAM,CAAC,kBAAkB,CAQ/B;IACF,OAAO,CAAC,MAAM,CAAC,UAAU,CAAM;IAE/B,OAAO,CAAC,IAAI,CAAS;IACrB,OAAO,CAAC,KAAK,CAAU;IAGvB,OAAO,CAAC,CAAC,CAAa;IACtB,OAAO,CAAC,IAAI,CAAa;IACzB,OAAO,CAAC,GAAG,CAAa;IAGxB,OAAO,CAAC,WAAW,CAA4B;IAG/C,OAAO,CAAC,SAAS,CAAc;IAC/B,OAAO,CAAC,WAAW,CAAgB;IACnC,OAAO,CAAC,MAAM,CAAqB;IACnC,OAAO,CAAC,QAAQ,CAAuB;IACvC,OAAO,CAAC,YAAY,CAAkC;gBAGpD,IAAI,EAAE,MAAM,EACZ,MAAM,GAAE,MAAW,EACnB,gBAAgB,GAAE,OAAe,EACjC,KAAK,GAAE,OAAe;IAcjB,MAAM,IAAI,YAAY;IA8E7B,OAAO,CAAC,gBAAgB;IAqBxB,OAAO,CAAC,eAAe;IAkBvB,OAAO,CAAC,sBAAsB;IAyE9B,OAAO,CAAC,eAAe;IAiDvB,OAAO,CAAC,SAAS;IAmCjB,OAAO,CAAC,sBAAsB;IAU9B,OAAO,CAAC,yBAAyB;IAcjC,OAAO,CAAC,SAAS;IAyDjB,OAAO,CAAC,qBAAqB;IA0D7B,OAAO,CAAC,gBAAgB;IA+ExB,OAAO,CAAC,SAAS;IAwBjB,OAAO,CAAC,iBAAiB;IAqCzB,OAAO,CAAC,mBAAmB;
|
|
1
|
+
{"version":3,"file":"Decoder.d.ts","sourceRoot":"","sources":["../../src/core/Decoder.ts"],"names":[],"mappings":"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"}
|
package/dist/core/Decoder.js
CHANGED
|
@@ -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(
|
|
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
|
-
|
|
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
|
// =========================================================
|
package/dist/core/Decoder.js.map
CHANGED
|
@@ -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;
|
|
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"}
|
package/dist/core/Encoder.js
CHANGED
|
@@ -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[
|
|
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('
|
|
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
|
-
|
|
206
|
-
|
|
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(
|
|
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
|
package/dist/core/Encoder.js.map
CHANGED
|
@@ -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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"}
|
package/dist/models/Meta.d.ts
CHANGED
|
@@ -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 (
|
|
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
|
|
45
|
+
* Example: <MetaInfo $required #tag $key=val >
|
|
46
46
|
*/
|
|
47
47
|
toString(): string;
|
|
48
48
|
}
|
package/dist/models/Meta.js
CHANGED
|
@@ -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 (
|
|
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
|
|
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('
|
|
79
|
+
parts.push('$required');
|
|
80
80
|
}
|
|
81
81
|
// 2. Tags
|
|
82
82
|
for (const t of this.tags) {
|
package/dist/models/Schema.js
CHANGED
|
@@ -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('
|
|
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.
|
|
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",
|
|
@@ -31,7 +31,7 @@
|
|
|
31
31
|
"@eslint/js": "^9.39.2",
|
|
32
32
|
"@types/node": "^20.19.31",
|
|
33
33
|
"eslint": "^9.39.2",
|
|
34
|
-
"eslint-config-prettier": "^10.1.
|
|
34
|
+
"eslint-config-prettier": "^10.1.9",
|
|
35
35
|
"globals": "^17.3.0",
|
|
36
36
|
"prettier": "^3.8.1",
|
|
37
37
|
"rimraf": "^6.1.2",
|
package/src/core/Decoder.ts
CHANGED
|
@@ -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(
|
|
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
|
-
|
|
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
|
// =========================================================
|
package/src/core/Encoder.ts
CHANGED
|
@@ -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[
|
|
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('
|
|
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
|
-
|
|
251
|
-
|
|
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(
|
|
272
|
+
this.c(`//${pad}`, Colors.SCHEMA) + content + this.c(`${pad}//`, Colors.SCHEMA);
|
|
269
273
|
return this.config.compact ? wrappedContent + ' ' : ' ' + wrappedContent + ' ';
|
|
270
274
|
}
|
|
271
275
|
|
package/src/models/Meta.ts
CHANGED
|
@@ -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 (
|
|
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
|
|
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('
|
|
101
|
+
parts.push('$required');
|
|
102
102
|
}
|
|
103
103
|
|
|
104
104
|
// 2. Tags
|
package/src/models/Schema.ts
CHANGED
|
@@ -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('
|
|
195
|
+
if (this.required) details.push('$required');
|
|
196
196
|
|
|
197
197
|
const attrKeys = Object.keys(this.attr);
|
|
198
198
|
if (attrKeys.length > 0)
|
package/tests/00.meta.test.ts
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { describe,
|
|
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
|
|
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'],
|
package/tests/00.schema.test.ts
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { describe,
|
|
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"
|
|
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: {
|
package/tests/06.meta.test.ts
CHANGED
|
@@ -8,7 +8,7 @@ describe('AK Data Metadata (Meta)', () => {
|
|
|
8
8
|
// ==================================================================================
|
|
9
9
|
|
|
10
10
|
it('should handle comments', () => {
|
|
11
|
-
/** Validates that comments
|
|
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
|
-
|
|
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
|
-
'
|
|
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
|
-
|
|
45
|
+
// $schema1 //
|
|
48
46
|
/* comm1 */
|
|
49
47
|
[a:int]
|
|
50
48
|
>
|
|
51
49
|
$attr=3
|
|
52
50
|
[
|
|
53
|
-
|
|
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
|
-
'<[
|
|
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
|
-
|
|
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
|
-
|
|
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
|
|
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
|
-
|
|
112
|
-
expect(schema
|
|
113
|
-
expect(schema
|
|
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
|
-
'<[
|
|
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 = '
|
|
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,
|
|
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
|
-
|
|
177
|
-
|
|
178
|
-
expect(
|
|
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
|
-
//
|
|
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('
|
|
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
|
-
'
|
|
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
|
-
|
|
155
|
+
// $listAttr="GlobalList" $b=4 /*com-in*/ //
|
|
239
156
|
/* comm-after-header-0 */
|
|
240
157
|
[
|
|
241
|
-
|
|
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
|
-
|
|
263
|
-
|
|
264
|
-
expect(
|
|
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
|
-
'<[
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
'<[
|
|
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
|
-
|
|
203
|
+
// listAttr="GlobalList" //
|
|
308
204
|
[
|
|
309
205
|
/* Missing $ prefix */
|
|
310
|
-
|
|
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
|
-
|
|
319
|
-
|
|
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
|
-
'<[
|
|
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
|
-
|
|
226
|
+
// $id=0 /*comm2 /* comm2.5*/ */ //
|
|
348
227
|
|
|
349
228
|
/* comm3 */
|
|
350
229
|
|
|
351
230
|
/* Modifiers block before field name */
|
|
352
|
-
|
|
231
|
+
$required $key=101 id:int,
|
|
353
232
|
|
|
354
233
|
$desc="User Name"
|
|
355
234
|
name: string
|
|
356
235
|
>
|
|
357
|
-
( /* comment0 */
|
|
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
|
-
|
|
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
|
-
'
|
|
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
|
-
//
|
|
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
|
-
|
|
270
|
+
// $level=0 //
|
|
429
271
|
[
|
|
430
|
-
|
|
272
|
+
// $level=1 //
|
|
431
273
|
1, 2
|
|
432
274
|
],
|
|
433
275
|
[
|
|
434
|
-
|
|
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
|
-
//
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
503
|
-
|
|
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
|
});
|