@altopelago/aeon-profiles 0.9.4 → 0.9.6

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
@@ -55,6 +55,35 @@ export type CompileResult = {
55
55
  };
56
56
  ```
57
57
 
58
+ Profile metadata:
59
+
60
+ ```ts
61
+ export interface CollectionSemantics {
62
+ ordered: boolean;
63
+ heterogeneous: boolean;
64
+ unique: boolean;
65
+ fixedLength: boolean;
66
+ }
67
+
68
+ export interface ObjectContainerSemantics {
69
+ ordered: boolean;
70
+ heterogeneous: boolean;
71
+ uniqueKeys: boolean;
72
+ }
73
+
74
+ export interface NodeContainerSemantics {
75
+ ordered: boolean;
76
+ heterogeneous: boolean;
77
+ uniqueAttributes: boolean;
78
+ mixedContent: boolean;
79
+ }
80
+
81
+ export interface ProfileCapabilities {
82
+ references: boolean;
83
+ clones: boolean;
84
+ }
85
+ ```
86
+
58
87
  Processor contract:
59
88
 
60
89
  ```ts
@@ -67,6 +96,11 @@ export interface Processor {
67
96
  export interface Profile {
68
97
  id: string;
69
98
  version?: string;
99
+ modeDefault?: 'strict' | 'loose';
100
+ datatypePolicyDefault?: 'reserved_only' | 'allow_custom';
101
+ collections?: Readonly<Record<string, CollectionSemantics>>;
102
+ containers?: Readonly<Record<string, ObjectContainerSemantics | NodeContainerSemantics>>;
103
+ capabilities?: ProfileCapabilities;
70
104
  compile(input: unknown, ctx: CompileCtx): readonly AssignmentEvent[] | void;
71
105
  processors?: readonly Processor[];
72
106
  }
@@ -82,7 +116,7 @@ Built-in processors:
82
116
 
83
117
  Built-in profiles:
84
118
  - `core` — form-only AES output
85
- - `aeon.gp.profile.v1` — AEON GP profile contract
119
+ - `aeon.gp.profile.v1` — AEON GP profile contract, including strict/reserved-only defaults, collection semantics for `list`/`tuple`, container semantics for `object`/`node`, and required processor capabilities
86
120
  - `json` — resolves references for JSON interoperability
87
121
 
88
122
  ## Tests
@@ -1 +1 @@
1
- {"version":3,"file":"aeon-gp-core.d.ts","sourceRoot":"","sources":["../../src/profiles/aeon-gp-core.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAc,MAAM,aAAa,CAAC;AAGvD,eAAO,MAAM,iBAAiB,EAAE,OAI/B,CAAC"}
1
+ {"version":3,"file":"aeon-gp-core.d.ts","sourceRoot":"","sources":["../../src/profiles/aeon-gp-core.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAc,MAAM,aAAa,CAAC;AAGvD,eAAO,MAAM,iBAAiB,EAAE,OAqC/B,CAAC"}
@@ -2,6 +2,39 @@ import { compileWithCore } from './core-compile.js';
2
2
  export const aeonGpCoreProfile = {
3
3
  id: 'aeon.gp.profile.v1',
4
4
  version: '1',
5
+ modeDefault: 'strict',
6
+ datatypePolicyDefault: 'reserved_only',
7
+ collections: {
8
+ list: {
9
+ ordered: false,
10
+ heterogeneous: true,
11
+ unique: false,
12
+ fixedLength: false,
13
+ },
14
+ tuple: {
15
+ ordered: true,
16
+ heterogeneous: true,
17
+ unique: false,
18
+ fixedLength: true,
19
+ },
20
+ },
21
+ containers: {
22
+ object: {
23
+ ordered: false,
24
+ heterogeneous: true,
25
+ uniqueKeys: true,
26
+ },
27
+ node: {
28
+ ordered: true,
29
+ heterogeneous: true,
30
+ uniqueAttributes: true,
31
+ mixedContent: true,
32
+ },
33
+ },
34
+ capabilities: {
35
+ references: true,
36
+ clones: true,
37
+ },
5
38
  compile: (input, ctx) => compileWithCore(input, ctx),
6
39
  };
7
40
  //# sourceMappingURL=aeon-gp-core.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"aeon-gp-core.js","sourceRoot":"","sources":["../../src/profiles/aeon-gp-core.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AAEpD,MAAM,CAAC,MAAM,iBAAiB,GAAY;IACtC,EAAE,EAAE,oBAAoB;IACxB,OAAO,EAAE,GAAG;IACZ,OAAO,EAAE,CAAC,KAAK,EAAE,GAAe,EAAE,EAAE,CAAC,eAAe,CAAC,KAAK,EAAE,GAAG,CAAC;CACnE,CAAC"}
1
+ {"version":3,"file":"aeon-gp-core.js","sourceRoot":"","sources":["../../src/profiles/aeon-gp-core.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AAEpD,MAAM,CAAC,MAAM,iBAAiB,GAAY;IACtC,EAAE,EAAE,oBAAoB;IACxB,OAAO,EAAE,GAAG;IACZ,WAAW,EAAE,QAAQ;IACrB,qBAAqB,EAAE,eAAe;IACtC,WAAW,EAAE;QACT,IAAI,EAAE;YACF,OAAO,EAAE,KAAK;YACd,aAAa,EAAE,IAAI;YACnB,MAAM,EAAE,KAAK;YACb,WAAW,EAAE,KAAK;SACrB;QACD,KAAK,EAAE;YACH,OAAO,EAAE,IAAI;YACb,aAAa,EAAE,IAAI;YACnB,MAAM,EAAE,KAAK;YACb,WAAW,EAAE,IAAI;SACpB;KACJ;IACD,UAAU,EAAE;QACR,MAAM,EAAE;YACJ,OAAO,EAAE,KAAK;YACd,aAAa,EAAE,IAAI;YACnB,UAAU,EAAE,IAAI;SACnB;QACD,IAAI,EAAE;YACF,OAAO,EAAE,IAAI;YACb,aAAa,EAAE,IAAI;YACnB,gBAAgB,EAAE,IAAI;YACtB,YAAY,EAAE,IAAI;SACrB;KACJ;IACD,YAAY,EAAE;QACV,UAAU,EAAE,IAAI;QAChB,MAAM,EAAE,IAAI;KACf;IACD,OAAO,EAAE,CAAC,KAAK,EAAE,GAAe,EAAE,EAAE,CAAC,eAAe,CAAC,KAAK,EAAE,GAAG,CAAC;CACnE,CAAC"}
package/dist/types.d.ts CHANGED
@@ -48,9 +48,36 @@ export interface Processor {
48
48
  readonly order?: number;
49
49
  apply(aes: readonly AssignmentEvent[], ctx: ProcessorCtx): readonly AssignmentEvent[];
50
50
  }
51
+ export interface CollectionSemantics {
52
+ readonly ordered: boolean;
53
+ readonly heterogeneous: boolean;
54
+ readonly unique: boolean;
55
+ readonly fixedLength: boolean;
56
+ }
57
+ export interface ObjectContainerSemantics {
58
+ readonly ordered: boolean;
59
+ readonly heterogeneous: boolean;
60
+ readonly uniqueKeys: boolean;
61
+ }
62
+ export interface NodeContainerSemantics {
63
+ readonly ordered: boolean;
64
+ readonly heterogeneous: boolean;
65
+ readonly uniqueAttributes: boolean;
66
+ readonly mixedContent: boolean;
67
+ }
68
+ export type ContainerSemantics = ObjectContainerSemantics | NodeContainerSemantics;
69
+ export interface ProfileCapabilities {
70
+ readonly references: boolean;
71
+ readonly clones: boolean;
72
+ }
51
73
  export interface Profile {
52
74
  readonly id: string;
53
75
  readonly version?: string;
76
+ readonly modeDefault?: 'strict' | 'loose';
77
+ readonly datatypePolicyDefault?: 'reserved_only' | 'allow_custom';
78
+ readonly collections?: Readonly<Record<string, CollectionSemantics>>;
79
+ readonly containers?: Readonly<Record<string, ContainerSemantics>>;
80
+ readonly capabilities?: ProfileCapabilities;
54
81
  compile(input: unknown, ctx: CompileCtx): readonly AssignmentEvent[] | void;
55
82
  readonly processors?: readonly Processor[];
56
83
  }
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@altopelago/aeon-profiles",
3
- "version": "0.9.4",
3
+ "version": "0.9.6",
4
4
  "description": "Built-in AEON finalization profiles and profile helpers.",
5
5
  "license": "MIT",
6
6
  "type": "module",
@@ -47,9 +47,9 @@
47
47
  "access": "public"
48
48
  },
49
49
  "dependencies": {
50
- "@altopelago/aeon-core": "0.9.4",
51
- "@altopelago/aeon-lexer": "0.9.4",
52
- "@altopelago/aeon-aes": "0.9.4"
50
+ "@altopelago/aeon-core": "0.9.6",
51
+ "@altopelago/aeon-aes": "0.9.6",
52
+ "@altopelago/aeon-lexer": "0.9.6"
53
53
  },
54
54
  "scripts": {
55
55
  "build": "tsc -p tsconfig.json",