@_linked/core 2.8.0-next.20260620064950 → 2.8.0-next.20260624100616

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.
Files changed (62) hide show
  1. package/CHANGELOG.md +57 -0
  2. package/lib/cjs/index.d.ts +3 -0
  3. package/lib/cjs/index.js +9 -1
  4. package/lib/cjs/index.js.map +1 -1
  5. package/lib/cjs/ontologies/linked-core.d.ts +3 -0
  6. package/lib/cjs/ontologies/linked-core.js +10 -0
  7. package/lib/cjs/ontologies/linked-core.js.map +1 -1
  8. package/lib/cjs/ontologies/shacl.d.ts +7 -0
  9. package/lib/cjs/ontologies/shacl.js +14 -0
  10. package/lib/cjs/ontologies/shacl.js.map +1 -1
  11. package/lib/cjs/shapes/List.d.ts +27 -8
  12. package/lib/cjs/shapes/List.js +36 -28
  13. package/lib/cjs/shapes/List.js.map +1 -1
  14. package/lib/cjs/shapes/PathNode.d.ts +20 -0
  15. package/lib/cjs/shapes/PathNode.js +81 -0
  16. package/lib/cjs/shapes/PathNode.js.map +1 -0
  17. package/lib/cjs/shapes/SHACL.d.ts +19 -0
  18. package/lib/cjs/shapes/SHACL.js +3 -0
  19. package/lib/cjs/shapes/SHACL.js.map +1 -1
  20. package/lib/cjs/shapes/serializePathToNodeData.d.ts +24 -0
  21. package/lib/cjs/shapes/serializePathToNodeData.js +51 -0
  22. package/lib/cjs/shapes/serializePathToNodeData.js.map +1 -0
  23. package/lib/cjs/shapes/syncShapes.d.ts +14 -0
  24. package/lib/cjs/shapes/syncShapes.js +141 -0
  25. package/lib/cjs/shapes/syncShapes.js.map +1 -0
  26. package/lib/cjs/sparql/irToAlgebra.d.ts +10 -1
  27. package/lib/cjs/sparql/irToAlgebra.js +148 -6
  28. package/lib/cjs/sparql/irToAlgebra.js.map +1 -1
  29. package/lib/cjs/utils/Package.d.ts +14 -0
  30. package/lib/cjs/utils/Package.js +43 -2
  31. package/lib/cjs/utils/Package.js.map +1 -1
  32. package/lib/esm/index.d.ts +3 -0
  33. package/lib/esm/index.js +5 -0
  34. package/lib/esm/index.js.map +1 -1
  35. package/lib/esm/ontologies/linked-core.d.ts +3 -0
  36. package/lib/esm/ontologies/linked-core.js +10 -0
  37. package/lib/esm/ontologies/linked-core.js.map +1 -1
  38. package/lib/esm/ontologies/shacl.d.ts +7 -0
  39. package/lib/esm/ontologies/shacl.js +14 -0
  40. package/lib/esm/ontologies/shacl.js.map +1 -1
  41. package/lib/esm/shapes/List.d.ts +27 -8
  42. package/lib/esm/shapes/List.js +35 -28
  43. package/lib/esm/shapes/List.js.map +1 -1
  44. package/lib/esm/shapes/PathNode.d.ts +20 -0
  45. package/lib/esm/shapes/PathNode.js +78 -0
  46. package/lib/esm/shapes/PathNode.js.map +1 -0
  47. package/lib/esm/shapes/SHACL.d.ts +19 -0
  48. package/lib/esm/shapes/SHACL.js +3 -0
  49. package/lib/esm/shapes/SHACL.js.map +1 -1
  50. package/lib/esm/shapes/serializePathToNodeData.d.ts +24 -0
  51. package/lib/esm/shapes/serializePathToNodeData.js +48 -0
  52. package/lib/esm/shapes/serializePathToNodeData.js.map +1 -0
  53. package/lib/esm/shapes/syncShapes.d.ts +14 -0
  54. package/lib/esm/shapes/syncShapes.js +138 -0
  55. package/lib/esm/shapes/syncShapes.js.map +1 -0
  56. package/lib/esm/sparql/irToAlgebra.d.ts +10 -1
  57. package/lib/esm/sparql/irToAlgebra.js +147 -6
  58. package/lib/esm/sparql/irToAlgebra.js.map +1 -1
  59. package/lib/esm/utils/Package.d.ts +14 -0
  60. package/lib/esm/utils/Package.js +43 -2
  61. package/lib/esm/utils/Package.js.map +1 -1
  62. package/package.json +1 -1
@@ -1,16 +1,35 @@
1
1
  import { Shape } from './Shape.js';
2
2
  /**
3
- * A lightweight list shape for query metadata.
4
- * This is no longer backed by RDF list quads in core.
3
+ * SHACL/RDF ordered-list cell shape (`rdf:List`).
4
+ *
5
+ * A list is a chain of cells: `first` holds the value, `rest` points to the next cell
6
+ * (or `rdf:nil`). The cell is `dependent` (it has no independent existence) and `rest` is
7
+ * a `contains` edge, so deleting/replacing a list cascade-cleans the whole spine — while
8
+ * `first` is NOT a `contains` edge, so the list's *contents* (shared IRIs/values) are kept.
5
9
  */
6
10
  export declare class List<T = unknown> extends Shape {
7
11
  static targetClass: import("../utils/NodeReference.js").NodeReferenceValue;
8
12
  get first(): T;
9
13
  get rest(): List<T>;
10
- private items;
11
- static fromItems<T>(items: T[]): List<T>;
12
- getContents(): T[];
13
- isEmpty(): boolean;
14
- addItem(item: T): void;
15
- addItems(items: T[]): void;
16
14
  }
15
+ /**
16
+ * Node-data for a single cell / the `rdf:nil` terminal. Accepted by the create pipeline.
17
+ */
18
+ export type RdfListNodeData = {
19
+ id: string;
20
+ } | {
21
+ shape: typeof List;
22
+ first: unknown;
23
+ rest: RdfListNodeData;
24
+ __id?: string;
25
+ };
26
+ /**
27
+ * Build the nested `List` node-data chain for an ordered `rdf:List`, terminating at `rdf:nil`.
28
+ * Pass `opts.base` to mint deterministic cell ids (`{base}/0`, `{base}/1`, …); otherwise the
29
+ * create pipeline mints ids. The empty list serializes to `rdf:nil`.
30
+ *
31
+ * @example Playlist.create({ tracks: rdfList([t1, t2, t3]) })
32
+ */
33
+ export declare function rdfList<T>(items: T[], opts?: {
34
+ base?: string;
35
+ }): RdfListNodeData;
@@ -7,7 +7,6 @@ var __decorate = (this && this.__decorate) || function (decorators, target, key,
7
7
  var __metadata = (this && this.__metadata) || function (k, v) {
8
8
  if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
9
9
  };
10
- var List_1;
11
10
  /*
12
11
  * This Source Code Form is subject to the terms of the Mozilla Public
13
12
  * License, v. 2.0. If a copy of the MPL was not distributed with this
@@ -18,37 +17,20 @@ import { Shape } from './Shape.js';
18
17
  import { linkedProperty, objectProperty } from './SHACL.js';
19
18
  import { rdf } from '../ontologies/rdf.js';
20
19
  /**
21
- * A lightweight list shape for query metadata.
22
- * This is no longer backed by RDF list quads in core.
20
+ * SHACL/RDF ordered-list cell shape (`rdf:List`).
21
+ *
22
+ * A list is a chain of cells: `first` holds the value, `rest` points to the next cell
23
+ * (or `rdf:nil`). The cell is `dependent` (it has no independent existence) and `rest` is
24
+ * a `contains` edge, so deleting/replacing a list cascade-cleans the whole spine — while
25
+ * `first` is NOT a `contains` edge, so the list's *contents* (shared IRIs/values) are kept.
23
26
  */
24
- let List = List_1 = class List extends Shape {
25
- constructor() {
26
- super(...arguments);
27
- this.items = [];
28
- }
27
+ let List = class List extends Shape {
29
28
  get first() {
30
29
  return null;
31
30
  }
32
31
  get rest() {
33
32
  return null;
34
33
  }
35
- static fromItems(items) {
36
- const list = new List_1();
37
- list.items = [...items];
38
- return list;
39
- }
40
- getContents() {
41
- return [...this.items];
42
- }
43
- isEmpty() {
44
- return this.items.length === 0;
45
- }
46
- addItem(item) {
47
- this.items.push(item);
48
- }
49
- addItems(items) {
50
- this.items.push(...items);
51
- }
52
34
  };
53
35
  List.targetClass = rdf.List;
54
36
  __decorate([
@@ -57,12 +39,37 @@ __decorate([
57
39
  __metadata("design:paramtypes", [])
58
40
  ], List.prototype, "first", null);
59
41
  __decorate([
60
- objectProperty({ path: rdf.rest, maxCount: 1, shape: List }),
42
+ objectProperty({ path: rdf.rest, maxCount: 1, shape: List, contains: true }),
61
43
  __metadata("design:type", List),
62
44
  __metadata("design:paramtypes", [])
63
45
  ], List.prototype, "rest", null);
64
- List = List_1 = __decorate([
65
- linkedShape
46
+ List = __decorate([
47
+ linkedShape({ dependent: true })
66
48
  ], List);
67
49
  export { List };
50
+ /**
51
+ * Build the nested `List` node-data chain for an ordered `rdf:List`, terminating at `rdf:nil`.
52
+ * Pass `opts.base` to mint deterministic cell ids (`{base}/0`, `{base}/1`, …); otherwise the
53
+ * create pipeline mints ids. The empty list serializes to `rdf:nil`.
54
+ *
55
+ * @example Playlist.create({ tracks: rdfList([t1, t2, t3]) })
56
+ */
57
+ export function rdfList(items, opts) {
58
+ const base = opts === null || opts === void 0 ? void 0 : opts.base;
59
+ const build = (i) => {
60
+ if (i >= items.length) {
61
+ return { id: rdf.nil.id };
62
+ }
63
+ const cell = {
64
+ shape: List,
65
+ first: items[i],
66
+ rest: build(i + 1),
67
+ };
68
+ if (base !== undefined) {
69
+ cell.__id = `${base}/${i}`;
70
+ }
71
+ return cell;
72
+ };
73
+ return build(0);
74
+ }
68
75
  //# sourceMappingURL=List.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"List.js","sourceRoot":"","sources":["../../../src/shapes/List.ts"],"names":[],"mappings":";;;;;;;;;;AAAA;;;;GAIG;AACH,OAAO,EAAC,WAAW,EAAC,MAAM,eAAe,CAAC;AAC1C,OAAO,EAAC,KAAK,EAAC,MAAM,YAAY,CAAC;AACjC,OAAO,EAAC,cAAc,EAAE,cAAc,EAAC,MAAM,YAAY,CAAC;AAC1D,OAAO,EAAC,GAAG,EAAC,MAAM,sBAAsB,CAAC;AAEzC;;;GAGG;AAEI,IAAM,IAAI,YAAV,MAAM,IAAkB,SAAQ,KAAK;IAArC;;QAaG,UAAK,GAAQ,EAAE,CAAC;IAuB1B,CAAC;IAjCC,IACI,KAAK;QACP,OAAO,IAAI,CAAC;IACd,CAAC;IAED,IACI,IAAI;QACN,OAAO,IAAI,CAAC;IACd,CAAC;IAID,MAAM,CAAC,SAAS,CAAI,KAAU;QAC5B,MAAM,IAAI,GAAG,IAAI,MAAI,EAAK,CAAC;QAC3B,IAAI,CAAC,KAAK,GAAG,CAAC,GAAG,KAAK,CAAC,CAAC;QACxB,OAAO,IAAI,CAAC;IACd,CAAC;IAED,WAAW;QACT,OAAO,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC;IACzB,CAAC;IAED,OAAO;QACL,OAAO,IAAI,CAAC,KAAK,CAAC,MAAM,KAAK,CAAC,CAAC;IACjC,CAAC;IAED,OAAO,CAAC,IAAO;QACb,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IACxB,CAAC;IAED,QAAQ,CAAC,KAAU;QACjB,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,KAAK,CAAC,CAAC;IAC5B,CAAC;;AAlCM,gBAAW,GAAG,GAAG,CAAC,IAAI,AAAX,CAAY;AAE9B;IAAC,cAAc,CAAC,EAAC,IAAI,EAAE,GAAG,CAAC,KAAK,EAAE,QAAQ,EAAE,CAAC,EAAC,CAAC;;;iCAG9C;AAED;IAAC,cAAc,CAAC,EAAC,IAAI,EAAE,GAAG,CAAC,IAAI,EAAE,QAAQ,EAAE,CAAC,EAAE,KAAK,EAAE,IAAI,EAAC,CAAC;8BAC/C,IAAI;;gCAEf;AAXU,IAAI;IADhB,WAAW;GACC,IAAI,CAoChB"}
1
+ {"version":3,"file":"List.js","sourceRoot":"","sources":["../../../src/shapes/List.ts"],"names":[],"mappings":";;;;;;;;;AAAA;;;;GAIG;AACH,OAAO,EAAC,WAAW,EAAC,MAAM,eAAe,CAAC;AAC1C,OAAO,EAAC,KAAK,EAAC,MAAM,YAAY,CAAC;AACjC,OAAO,EAAC,cAAc,EAAE,cAAc,EAAC,MAAM,YAAY,CAAC;AAC1D,OAAO,EAAC,GAAG,EAAC,MAAM,sBAAsB,CAAC;AAEzC;;;;;;;GAOG;AAEI,IAAM,IAAI,GAAV,MAAM,IAAkB,SAAQ,KAAK;IAG1C,IACI,KAAK;QACP,OAAO,IAAI,CAAC;IACd,CAAC;IAED,IACI,IAAI;QACN,OAAO,IAAI,CAAC;IACd,CAAC;;AAVM,gBAAW,GAAG,GAAG,CAAC,IAAI,AAAX,CAAY;AAE9B;IAAC,cAAc,CAAC,EAAC,IAAI,EAAE,GAAG,CAAC,KAAK,EAAE,QAAQ,EAAE,CAAC,EAAC,CAAC;;;iCAG9C;AAED;IAAC,cAAc,CAAC,EAAC,IAAI,EAAE,GAAG,CAAC,IAAI,EAAE,QAAQ,EAAE,CAAC,EAAE,KAAK,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAC,CAAC;8BAC/D,IAAI;;gCAEf;AAXU,IAAI;IADhB,WAAW,CAAC,EAAC,SAAS,EAAE,IAAI,EAAC,CAAC;GAClB,IAAI,CAYhB;;AASD;;;;;;GAMG;AACH,MAAM,UAAU,OAAO,CACrB,KAAU,EACV,IAAsB;IAEtB,MAAM,IAAI,GAAG,IAAI,aAAJ,IAAI,uBAAJ,IAAI,CAAE,IAAI,CAAC;IACxB,MAAM,KAAK,GAAG,CAAC,CAAS,EAAmB,EAAE;QAC3C,IAAI,CAAC,IAAI,KAAK,CAAC,MAAM,EAAE,CAAC;YACtB,OAAO,EAAC,EAAE,EAAE,GAAG,CAAC,GAAG,CAAC,EAAE,EAAC,CAAC;QAC1B,CAAC;QACD,MAAM,IAAI,GAAoB;YAC5B,KAAK,EAAE,IAAI;YACX,KAAK,EAAE,KAAK,CAAC,CAAC,CAAC;YACf,IAAI,EAAE,KAAK,CAAC,CAAC,GAAG,CAAC,CAAC;SACnB,CAAC;QACF,IAAI,IAAI,KAAK,SAAS,EAAE,CAAC;YACvB,IAAI,CAAC,IAAI,GAAG,GAAG,IAAI,IAAI,CAAC,EAAE,CAAC;QAC7B,CAAC;QACD,OAAO,IAAI,CAAC;IACd,CAAC,CAAC;IACF,OAAO,KAAK,CAAC,CAAC,CAAC,CAAC;AAClB,CAAC"}
@@ -0,0 +1,20 @@
1
+ import { Shape } from './Shape.js';
2
+ import { List } from './List.js';
3
+ /**
4
+ * Operator node for SHACL property paths that are NOT a simple predicate or a sequence:
5
+ * inverse (`sh:inversePath`), alternative (`sh:alternativePath` → an `rdf:List`), and the
6
+ * cardinality forms (`sh:zeroOrMorePath`/`sh:oneOrMorePath`/`sh:zeroOrOnePath`).
7
+ *
8
+ * Each operator edge is `contains` (the operand subtree is owned), and the node itself is
9
+ * `dependent`, so a property-shape's complex `sh:path` cascade-cleans on delete/replace.
10
+ * Operands are polymorphic (a predicate IRI, a nested `PathNode`, or a `List`), so no fixed
11
+ * `valueShape` is declared except for `alternativePath`, which is always an `rdf:List`.
12
+ */
13
+ export declare class PathNode extends Shape {
14
+ static targetClass: import("../utils/NodeReference.js").NodeReferenceValue;
15
+ get inversePath(): unknown;
16
+ get alternativePath(): List;
17
+ get zeroOrMorePath(): unknown;
18
+ get oneOrMorePath(): unknown;
19
+ get zeroOrOnePath(): unknown;
20
+ }
@@ -0,0 +1,78 @@
1
+ var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
2
+ var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
3
+ if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
4
+ else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
5
+ return c > 3 && r && Object.defineProperty(target, key, r), r;
6
+ };
7
+ var __metadata = (this && this.__metadata) || function (k, v) {
8
+ if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
9
+ };
10
+ /*
11
+ * This Source Code Form is subject to the terms of the Mozilla Public
12
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
13
+ * file, You can obtain one at https://mozilla.org/MPL/2.0/.
14
+ */
15
+ import { linkedShape } from '../package.js';
16
+ import { Shape } from './Shape.js';
17
+ import { objectProperty } from './SHACL.js';
18
+ import { shacl } from '../ontologies/shacl.js';
19
+ import { coreOntology } from '../ontologies/linked-core.js';
20
+ import { List } from './List.js';
21
+ /**
22
+ * Operator node for SHACL property paths that are NOT a simple predicate or a sequence:
23
+ * inverse (`sh:inversePath`), alternative (`sh:alternativePath` → an `rdf:List`), and the
24
+ * cardinality forms (`sh:zeroOrMorePath`/`sh:oneOrMorePath`/`sh:zeroOrOnePath`).
25
+ *
26
+ * Each operator edge is `contains` (the operand subtree is owned), and the node itself is
27
+ * `dependent`, so a property-shape's complex `sh:path` cascade-cleans on delete/replace.
28
+ * Operands are polymorphic (a predicate IRI, a nested `PathNode`, or a `List`), so no fixed
29
+ * `valueShape` is declared except for `alternativePath`, which is always an `rdf:List`.
30
+ */
31
+ let PathNode = class PathNode extends Shape {
32
+ get inversePath() {
33
+ return null;
34
+ }
35
+ get alternativePath() {
36
+ return null;
37
+ }
38
+ get zeroOrMorePath() {
39
+ return null;
40
+ }
41
+ get oneOrMorePath() {
42
+ return null;
43
+ }
44
+ get zeroOrOnePath() {
45
+ return null;
46
+ }
47
+ };
48
+ PathNode.targetClass = coreOntology.PathNode;
49
+ __decorate([
50
+ objectProperty({ path: shacl.inversePath, maxCount: 1, contains: true }),
51
+ __metadata("design:type", Object),
52
+ __metadata("design:paramtypes", [])
53
+ ], PathNode.prototype, "inversePath", null);
54
+ __decorate([
55
+ objectProperty({ path: shacl.alternativePath, maxCount: 1, shape: List, contains: true }),
56
+ __metadata("design:type", List),
57
+ __metadata("design:paramtypes", [])
58
+ ], PathNode.prototype, "alternativePath", null);
59
+ __decorate([
60
+ objectProperty({ path: shacl.zeroOrMorePath, maxCount: 1, contains: true }),
61
+ __metadata("design:type", Object),
62
+ __metadata("design:paramtypes", [])
63
+ ], PathNode.prototype, "zeroOrMorePath", null);
64
+ __decorate([
65
+ objectProperty({ path: shacl.oneOrMorePath, maxCount: 1, contains: true }),
66
+ __metadata("design:type", Object),
67
+ __metadata("design:paramtypes", [])
68
+ ], PathNode.prototype, "oneOrMorePath", null);
69
+ __decorate([
70
+ objectProperty({ path: shacl.zeroOrOnePath, maxCount: 1, contains: true }),
71
+ __metadata("design:type", Object),
72
+ __metadata("design:paramtypes", [])
73
+ ], PathNode.prototype, "zeroOrOnePath", null);
74
+ PathNode = __decorate([
75
+ linkedShape({ dependent: true })
76
+ ], PathNode);
77
+ export { PathNode };
78
+ //# sourceMappingURL=PathNode.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"PathNode.js","sourceRoot":"","sources":["../../../src/shapes/PathNode.ts"],"names":[],"mappings":";;;;;;;;;AAAA;;;;GAIG;AACH,OAAO,EAAC,WAAW,EAAC,MAAM,eAAe,CAAC;AAC1C,OAAO,EAAC,KAAK,EAAC,MAAM,YAAY,CAAC;AACjC,OAAO,EAAC,cAAc,EAAC,MAAM,YAAY,CAAC;AAC1C,OAAO,EAAC,KAAK,EAAC,MAAM,wBAAwB,CAAC;AAC7C,OAAO,EAAC,YAAY,EAAC,MAAM,8BAA8B,CAAC;AAC1D,OAAO,EAAC,IAAI,EAAC,MAAM,WAAW,CAAC;AAE/B;;;;;;;;;GASG;AAEI,IAAM,QAAQ,GAAd,MAAM,QAAS,SAAQ,KAAK;IAGjC,IACI,WAAW;QACb,OAAO,IAAI,CAAC;IACd,CAAC;IAED,IACI,eAAe;QACjB,OAAO,IAAI,CAAC;IACd,CAAC;IAED,IACI,cAAc;QAChB,OAAO,IAAI,CAAC;IACd,CAAC;IAED,IACI,aAAa;QACf,OAAO,IAAI,CAAC;IACd,CAAC;IAED,IACI,aAAa;QACf,OAAO,IAAI,CAAC;IACd,CAAC;;AAzBM,oBAAW,GAAG,YAAY,CAAC,QAAQ,AAAxB,CAAyB;AAE3C;IAAC,cAAc,CAAC,EAAC,IAAI,EAAE,KAAK,CAAC,WAAW,EAAE,QAAQ,EAAE,CAAC,EAAE,QAAQ,EAAE,IAAI,EAAC,CAAC;;;2CAGtE;AAED;IAAC,cAAc,CAAC,EAAC,IAAI,EAAE,KAAK,CAAC,eAAe,EAAE,QAAQ,EAAE,CAAC,EAAE,KAAK,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAC,CAAC;8BACjE,IAAI;;+CAE1B;AAED;IAAC,cAAc,CAAC,EAAC,IAAI,EAAE,KAAK,CAAC,cAAc,EAAE,QAAQ,EAAE,CAAC,EAAE,QAAQ,EAAE,IAAI,EAAC,CAAC;;;8CAGzE;AAED;IAAC,cAAc,CAAC,EAAC,IAAI,EAAE,KAAK,CAAC,aAAa,EAAE,QAAQ,EAAE,CAAC,EAAE,QAAQ,EAAE,IAAI,EAAC,CAAC;;;6CAGxE;AAED;IAAC,cAAc,CAAC,EAAC,IAAI,EAAE,KAAK,CAAC,aAAa,EAAE,QAAQ,EAAE,CAAC,EAAE,QAAQ,EAAE,IAAI,EAAC,CAAC;;;6CAGxE;AA1BU,QAAQ;IADpB,WAAW,CAAC,EAAC,SAAS,EAAE,IAAI,EAAC,CAAC;GAClB,QAAQ,CA2BpB"}
@@ -134,6 +134,11 @@ export interface ObjectPropertyShapeConfig extends PropertyShapeConfig {
134
134
  * You need to provide a class that extends Shape.
135
135
  */
136
136
  shape?: typeof Shape | [string, string];
137
+ /**
138
+ * Marks this property as *containment* (composition): the value(s) are owned by the subject
139
+ * and the delete/update cascade removes the owned subtree.
140
+ */
141
+ contains?: boolean;
137
142
  }
138
143
  export interface PropertyShapeConfig {
139
144
  /**
@@ -216,6 +221,15 @@ export declare class NodeShape extends Shape {
216
221
  description?: string;
217
222
  targetClass?: NodeReferenceValue;
218
223
  extends?: NodeReferenceValue;
224
+ /**
225
+ * Composition marker: instances of this shape are *dependent* — they have no
226
+ * independent existence and may be cascade-deleted when reached through a `contains` property.
227
+ */
228
+ dependent?: boolean;
229
+ /** sh:closed — target nodes with undeclared properties are invalid. */
230
+ closed?: boolean;
231
+ /** sh:ignoredProperties — extra properties permitted when the shape is closed. */
232
+ ignoredProperties?: NodeReferenceValue[];
219
233
  private propertyShapes;
220
234
  constructor(node?: string | NodeReferenceValue);
221
235
  nodeRef?: NodeReferenceValue;
@@ -251,6 +265,11 @@ export declare class PropertyShape extends Shape {
251
265
  defaultValue?: unknown;
252
266
  sortBy?: PathExpr;
253
267
  valueShape?: NodeReferenceValue;
268
+ /**
269
+ * Composition marker: the value(s) of this property are *owned* by the subject.
270
+ * The delete/update cascade follows this edge and removes the owned subtree.
271
+ */
272
+ contains?: boolean;
254
273
  parentNodeShape?: NodeShape;
255
274
  constructor();
256
275
  get label(): string;
@@ -407,6 +407,9 @@ export function createPropertyShape(config, propertyKey, defaultNodeKind = null,
407
407
  if (config.class) {
408
408
  propertyShape.class = toNodeReference(config.class);
409
409
  }
410
+ if (config.contains) {
411
+ propertyShape.contains = true;
412
+ }
410
413
  if (config.equals) {
411
414
  propertyShape.equalsConstraint = toNodeReference(config.equals);
412
415
  }
@@ -1 +1 @@
1
- {"version":3,"file":"SHACL.js","sourceRoot":"","sources":["../../../src/shapes/SHACL.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"SHACL.js","sourceRoot":"","sources":["../../../src/shapes/SHACL.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,24 @@
1
+ import type { PathExpr } from '../paths/PropertyPathExpr.js';
2
+ import type { NodeReferenceValue } from '../utils/NodeReference.js';
3
+ import { List } from './List.js';
4
+ import { PathNode } from './PathNode.js';
5
+ /**
6
+ * Node-data the create pipeline accepts for a `sh:path` value: an IRI reference (simple path),
7
+ * an `rdf:List` (sequence / alternative members), or a `PathNode` operator node.
8
+ */
9
+ export type PathNodeData = NodeReferenceValue | {
10
+ shape: typeof List | typeof PathNode;
11
+ __id?: string;
12
+ [k: string]: unknown;
13
+ };
14
+ /**
15
+ * Translate a `PathExpr` into create-pipeline node-data for `sh:path`.
16
+ *
17
+ * - simple `PathRef` → `{id}` (a shared predicate IRI; NOT owned)
18
+ * - sequence → an `rdf:List` of segments (via {@link rdfList})
19
+ * - inverse / alternative / cardinality → a `PathNode` operator node (alt's operand is an `rdf:List`)
20
+ *
21
+ * `base` seeds deterministic ids for the minted owned nodes (`{base}/inv`, `{base}/seq/0`, …) so a
22
+ * re-sync overwrites them in place; the owned subtree is cleaned by the containment cascade.
23
+ */
24
+ export declare function serializePathToNodeData(path: PathExpr, base: string): PathNodeData;
@@ -0,0 +1,48 @@
1
+ import { isPathRef } from '../paths/PropertyPathExpr.js';
2
+ import { rdfList } from './List.js';
3
+ import { PathNode } from './PathNode.js';
4
+ /**
5
+ * Translate a `PathExpr` into create-pipeline node-data for `sh:path`.
6
+ *
7
+ * - simple `PathRef` → `{id}` (a shared predicate IRI; NOT owned)
8
+ * - sequence → an `rdf:List` of segments (via {@link rdfList})
9
+ * - inverse / alternative / cardinality → a `PathNode` operator node (alt's operand is an `rdf:List`)
10
+ *
11
+ * `base` seeds deterministic ids for the minted owned nodes (`{base}/inv`, `{base}/seq/0`, …) so a
12
+ * re-sync overwrites them in place; the owned subtree is cleaned by the containment cascade.
13
+ */
14
+ export function serializePathToNodeData(path, base) {
15
+ const serialize = (e, b) => {
16
+ if (isPathRef(e)) {
17
+ return { id: typeof e === 'string' ? e : e.id };
18
+ }
19
+ if ('seq' in e) {
20
+ return rdfList(e.seq.map((s, i) => serialize(s, `${b}/seq/${i}`)), { base: `${b}/seq` });
21
+ }
22
+ if ('inv' in e) {
23
+ return { shape: PathNode, __id: `${b}/inv`, inversePath: serialize(e.inv, `${b}/inv`) };
24
+ }
25
+ if ('alt' in e) {
26
+ return {
27
+ shape: PathNode,
28
+ __id: `${b}/alt`,
29
+ alternativePath: rdfList(e.alt.map((a, i) => serialize(a, `${b}/alt/${i}`)), { base: `${b}/alt` }),
30
+ };
31
+ }
32
+ if ('zeroOrMore' in e) {
33
+ return { shape: PathNode, __id: `${b}/zom`, zeroOrMorePath: serialize(e.zeroOrMore, `${b}/zom`) };
34
+ }
35
+ if ('oneOrMore' in e) {
36
+ return { shape: PathNode, __id: `${b}/oom`, oneOrMorePath: serialize(e.oneOrMore, `${b}/oom`) };
37
+ }
38
+ if ('zeroOrOne' in e) {
39
+ return { shape: PathNode, __id: `${b}/zoo`, zeroOrOnePath: serialize(e.zeroOrOne, `${b}/zoo`) };
40
+ }
41
+ if ('negatedPropertySet' in e) {
42
+ throw new Error('negatedPropertySet cannot be serialized to SHACL sh:path — no SHACL representation.');
43
+ }
44
+ throw new Error(`Unknown PathExpr shape: ${JSON.stringify(e)}`);
45
+ };
46
+ return serialize(path, base);
47
+ }
48
+ //# sourceMappingURL=serializePathToNodeData.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"serializePathToNodeData.js","sourceRoot":"","sources":["../../../src/shapes/serializePathToNodeData.ts"],"names":[],"mappings":"AAMA,OAAO,EAAC,SAAS,EAAC,MAAM,8BAA8B,CAAC;AAEvD,OAAO,EAAO,OAAO,EAAC,MAAM,WAAW,CAAC;AACxC,OAAO,EAAC,QAAQ,EAAC,MAAM,eAAe,CAAC;AAUvC;;;;;;;;;GASG;AACH,MAAM,UAAU,uBAAuB,CAAC,IAAc,EAAE,IAAY;IAClE,MAAM,SAAS,GAAG,CAAC,CAAW,EAAE,CAAS,EAAgB,EAAE;QACzD,IAAI,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC;YACjB,OAAO,EAAC,EAAE,EAAE,OAAO,CAAC,KAAK,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,EAAC,CAAC;QAChD,CAAC;QACD,IAAI,KAAK,IAAI,CAAC,EAAE,CAAC;YACf,OAAO,OAAO,CACZ,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,SAAS,CAAC,CAAC,EAAE,GAAG,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,EAClD,EAAC,IAAI,EAAE,GAAG,CAAC,MAAM,EAAC,CACH,CAAC;QACpB,CAAC;QACD,IAAI,KAAK,IAAI,CAAC,EAAE,CAAC;YACf,OAAO,EAAC,KAAK,EAAE,QAAQ,EAAE,IAAI,EAAE,GAAG,CAAC,MAAM,EAAE,WAAW,EAAE,SAAS,CAAC,CAAC,CAAC,GAAG,EAAE,GAAG,CAAC,MAAM,CAAC,EAAC,CAAC;QACxF,CAAC;QACD,IAAI,KAAK,IAAI,CAAC,EAAE,CAAC;YACf,OAAO;gBACL,KAAK,EAAE,QAAQ;gBACf,IAAI,EAAE,GAAG,CAAC,MAAM;gBAChB,eAAe,EAAE,OAAO,CACtB,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,SAAS,CAAC,CAAC,EAAE,GAAG,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,EAClD,EAAC,IAAI,EAAE,GAAG,CAAC,MAAM,EAAC,CACnB;aACF,CAAC;QACJ,CAAC;QACD,IAAI,YAAY,IAAI,CAAC,EAAE,CAAC;YACtB,OAAO,EAAC,KAAK,EAAE,QAAQ,EAAE,IAAI,EAAE,GAAG,CAAC,MAAM,EAAE,cAAc,EAAE,SAAS,CAAC,CAAC,CAAC,UAAU,EAAE,GAAG,CAAC,MAAM,CAAC,EAAC,CAAC;QAClG,CAAC;QACD,IAAI,WAAW,IAAI,CAAC,EAAE,CAAC;YACrB,OAAO,EAAC,KAAK,EAAE,QAAQ,EAAE,IAAI,EAAE,GAAG,CAAC,MAAM,EAAE,aAAa,EAAE,SAAS,CAAC,CAAC,CAAC,SAAS,EAAE,GAAG,CAAC,MAAM,CAAC,EAAC,CAAC;QAChG,CAAC;QACD,IAAI,WAAW,IAAI,CAAC,EAAE,CAAC;YACrB,OAAO,EAAC,KAAK,EAAE,QAAQ,EAAE,IAAI,EAAE,GAAG,CAAC,MAAM,EAAE,aAAa,EAAE,SAAS,CAAC,CAAC,CAAC,SAAS,EAAE,GAAG,CAAC,MAAM,CAAC,EAAC,CAAC;QAChG,CAAC;QACD,IAAI,oBAAoB,IAAI,CAAC,EAAE,CAAC;YAC9B,MAAM,IAAI,KAAK,CACb,qFAAqF,CACtF,CAAC;QACJ,CAAC;QACD,MAAM,IAAI,KAAK,CAAC,2BAA2B,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;IAClE,CAAC,CAAC;IACF,OAAO,SAAS,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;AAC/B,CAAC"}
@@ -0,0 +1,14 @@
1
+ /**
2
+ * Plan an idempotent sync of all code-registered (non-framework) NodeShapes into the store as
3
+ * SHACL data — the forward (code → graph) materialization of arch-05 "code is canonical".
4
+ *
5
+ * Returns built-but-unexecuted thunks; the caller controls execution and batching:
6
+ * ```ts
7
+ * await Promise.all((await syncShapes()).map((run) => run()));
8
+ * ```
9
+ * Each in-code shape's thunk runs `delete → create` in order (the delete cascade-cleans the old
10
+ * property shapes / list / path subtrees via the containment cascade, the create rebuilds them).
11
+ * Shapes present in the store but no longer in code are deleted as orphans (their owned subtree
12
+ * cascades too). Reads existing shape IRIs via the global query dispatch for orphan detection.
13
+ */
14
+ export declare function syncShapes(): Promise<Array<() => Promise<void>>>;
@@ -0,0 +1,138 @@
1
+ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
2
+ function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
3
+ return new (P || (P = Promise))(function (resolve, reject) {
4
+ function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
5
+ function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
6
+ function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
7
+ step((generator = generator.apply(thisArg, _arguments || [])).next());
8
+ });
9
+ };
10
+ /*
11
+ * This Source Code Form is subject to the terms of the Mozilla Public
12
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
13
+ * file, You can obtain one at https://mozilla.org/MPL/2.0/.
14
+ */
15
+ import { getAllShapeClasses } from '../utils/ShapeClass.js';
16
+ import { NodeShape } from './SHACL.js';
17
+ import { DeleteBuilder } from '../queries/DeleteBuilder.js';
18
+ import { rdfList } from './List.js';
19
+ import { serializePathToNodeData } from './serializePathToNodeData.js';
20
+ /**
21
+ * The npm scope of framework shapes (NodeShape/PropertyShape/List/PathNode/Shape) that
22
+ * describe the meta-model itself and must never be synced as user data.
23
+ */
24
+ const FRAMEWORK_PACKAGE = '@_linked/core';
25
+ /** Build the create-pipeline data object for a single PropertyShape (flattened under shapeIri). */
26
+ function buildPropertyShapeData(ps, shapeIri) {
27
+ const psIri = `${shapeIri}/${ps.label}`;
28
+ const d = {
29
+ __id: psIri,
30
+ path: serializePathToNodeData(ps.path, psIri),
31
+ };
32
+ if (ps.nodeKind)
33
+ d.nodeKind = ps.nodeKind;
34
+ if (ps.datatype)
35
+ d.datatype = ps.datatype;
36
+ if (typeof ps.minCount === 'number')
37
+ d.minCount = ps.minCount;
38
+ if (typeof ps.maxCount === 'number')
39
+ d.maxCount = ps.maxCount;
40
+ if (ps.name)
41
+ d.name = ps.name;
42
+ if (ps.description)
43
+ d.description = ps.description;
44
+ if (typeof ps.order === 'number')
45
+ d.order = ps.order;
46
+ if (ps.group)
47
+ d.group = ps.group;
48
+ if (ps.class)
49
+ d.class = ps.class;
50
+ if (ps.in)
51
+ d.in = rdfList(ps.in, { base: `${psIri}/in` });
52
+ if (ps.equalsConstraint)
53
+ d.equals = ps.equalsConstraint;
54
+ if (ps.disjoint)
55
+ d.disjoint = ps.disjoint;
56
+ if (ps.lessThan)
57
+ d.lessThan = ps.lessThan;
58
+ if (ps.lessThanOrEquals)
59
+ d.lessThanOrEquals = ps.lessThanOrEquals;
60
+ if (ps.hasValueConstraint !== undefined)
61
+ d.hasValue = ps.hasValueConstraint;
62
+ if (ps.valueShape)
63
+ d.valueShape = ps.valueShape;
64
+ if (ps.contains)
65
+ d.contains = true;
66
+ return d;
67
+ }
68
+ /** Build the create-pipeline data object for a NodeShape and its (flattened) property shapes. */
69
+ function buildNodeShapeData(nodeShape, shapeIri) {
70
+ const d = {};
71
+ if (nodeShape.targetClass)
72
+ d.targetClass = nodeShape.targetClass;
73
+ if (nodeShape.description)
74
+ d.description = nodeShape.description;
75
+ if (nodeShape.extends)
76
+ d.extends = nodeShape.extends;
77
+ if (nodeShape.dependent)
78
+ d.dependent = true;
79
+ if (nodeShape.closed !== undefined)
80
+ d.closed = nodeShape.closed;
81
+ if (nodeShape.ignoredProperties && nodeShape.ignoredProperties.length) {
82
+ d.ignoredProperties = nodeShape.ignoredProperties;
83
+ }
84
+ // Flatten: emit own + inherited property shapes (deduped by label) under this shape.
85
+ d.properties = nodeShape
86
+ .getUniquePropertyShapes()
87
+ .map((ps) => buildPropertyShapeData(ps, shapeIri));
88
+ return d;
89
+ }
90
+ /**
91
+ * Plan an idempotent sync of all code-registered (non-framework) NodeShapes into the store as
92
+ * SHACL data — the forward (code → graph) materialization of arch-05 "code is canonical".
93
+ *
94
+ * Returns built-but-unexecuted thunks; the caller controls execution and batching:
95
+ * ```ts
96
+ * await Promise.all((await syncShapes()).map((run) => run()));
97
+ * ```
98
+ * Each in-code shape's thunk runs `delete → create` in order (the delete cascade-cleans the old
99
+ * property shapes / list / path subtrees via the containment cascade, the create rebuilds them).
100
+ * Shapes present in the store but no longer in code are deleted as orphans (their owned subtree
101
+ * cascades too). Reads existing shape IRIs via the global query dispatch for orphan detection.
102
+ */
103
+ export function syncShapes() {
104
+ return __awaiter(this, void 0, void 0, function* () {
105
+ // 1. Enumerate code-registered user shapes (exclude framework/meta shapes).
106
+ const userShapes = [];
107
+ for (const [iri, shapeClass] of getAllShapeClasses()) {
108
+ if (!(shapeClass === null || shapeClass === void 0 ? void 0 : shapeClass.shape))
109
+ continue;
110
+ const pkg = shapeClass.packageName;
111
+ // Skip framework/meta shapes: the core package, and the base `Shape` which is registered
112
+ // directly (no applyLinkedShape) and therefore carries no packageName.
113
+ if (!pkg || pkg === FRAMEWORK_PACKAGE)
114
+ continue;
115
+ userShapes.push({ iri, nodeShape: shapeClass.shape });
116
+ }
117
+ const localShapeIris = new Set(userShapes.map((s) => s.iri));
118
+ // 2. Identity-read existing NodeShape IRIs (ids only) for orphan detection.
119
+ const existingRows = (yield NodeShape.select());
120
+ const existingShapeIris = new Set(existingRows.map((r) => r.id));
121
+ const thunks = [];
122
+ // 3. Per in-code shape: delete (cascade) then recreate.
123
+ for (const { iri, nodeShape } of userShapes) {
124
+ const data = buildNodeShapeData(nodeShape, iri);
125
+ thunks.push(() => DeleteBuilder.from(NodeShape, { id: iri }).exec()
126
+ .then(() => (NodeShape.create(data).withId(iri).exec()))
127
+ .then(() => undefined));
128
+ }
129
+ // 4. Orphan shapes (in store, not in code) → delete (cascade cleans their owned subtree).
130
+ for (const iri of existingShapeIris) {
131
+ if (!localShapeIris.has(iri)) {
132
+ thunks.push(() => DeleteBuilder.from(NodeShape, { id: iri }).exec().then(() => undefined));
133
+ }
134
+ }
135
+ return thunks;
136
+ });
137
+ }
138
+ //# sourceMappingURL=syncShapes.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"syncShapes.js","sourceRoot":"","sources":["../../../src/shapes/syncShapes.ts"],"names":[],"mappings":";;;;;;;;;AAAA;;;;GAIG;AACH,OAAO,EAAC,kBAAkB,EAAC,MAAM,wBAAwB,CAAC;AAC1D,OAAO,EAAC,SAAS,EAAgB,MAAM,YAAY,CAAC;AACpD,OAAO,EAAC,aAAa,EAAC,MAAM,6BAA6B,CAAC;AAC1D,OAAO,EAAC,OAAO,EAAC,MAAM,WAAW,CAAC;AAClC,OAAO,EAAC,uBAAuB,EAAC,MAAM,8BAA8B,CAAC;AAErE;;;GAGG;AACH,MAAM,iBAAiB,GAAG,eAAe,CAAC;AAE1C,mGAAmG;AACnG,SAAS,sBAAsB,CAAC,EAAiB,EAAE,QAAgB;IACjE,MAAM,KAAK,GAAG,GAAG,QAAQ,IAAI,EAAE,CAAC,KAAK,EAAE,CAAC;IACxC,MAAM,CAAC,GAA4B;QACjC,IAAI,EAAE,KAAK;QACX,IAAI,EAAE,uBAAuB,CAAC,EAAE,CAAC,IAAI,EAAE,KAAK,CAAC;KAC9C,CAAC;IACF,IAAI,EAAE,CAAC,QAAQ;QAAE,CAAC,CAAC,QAAQ,GAAG,EAAE,CAAC,QAAQ,CAAC;IAC1C,IAAI,EAAE,CAAC,QAAQ;QAAE,CAAC,CAAC,QAAQ,GAAG,EAAE,CAAC,QAAQ,CAAC;IAC1C,IAAI,OAAO,EAAE,CAAC,QAAQ,KAAK,QAAQ;QAAE,CAAC,CAAC,QAAQ,GAAG,EAAE,CAAC,QAAQ,CAAC;IAC9D,IAAI,OAAO,EAAE,CAAC,QAAQ,KAAK,QAAQ;QAAE,CAAC,CAAC,QAAQ,GAAG,EAAE,CAAC,QAAQ,CAAC;IAC9D,IAAI,EAAE,CAAC,IAAI;QAAE,CAAC,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI,CAAC;IAC9B,IAAI,EAAE,CAAC,WAAW;QAAE,CAAC,CAAC,WAAW,GAAG,EAAE,CAAC,WAAW,CAAC;IACnD,IAAI,OAAO,EAAE,CAAC,KAAK,KAAK,QAAQ;QAAE,CAAC,CAAC,KAAK,GAAG,EAAE,CAAC,KAAK,CAAC;IACrD,IAAI,EAAE,CAAC,KAAK;QAAE,CAAC,CAAC,KAAK,GAAG,EAAE,CAAC,KAAK,CAAC;IACjC,IAAI,EAAE,CAAC,KAAK;QAAE,CAAC,CAAC,KAAK,GAAG,EAAE,CAAC,KAAK,CAAC;IACjC,IAAI,EAAE,CAAC,EAAE;QAAE,CAAC,CAAC,EAAE,GAAG,OAAO,CAAC,EAAE,CAAC,EAAE,EAAE,EAAC,IAAI,EAAE,GAAG,KAAK,KAAK,EAAC,CAAC,CAAC;IACxD,IAAI,EAAE,CAAC,gBAAgB;QAAE,CAAC,CAAC,MAAM,GAAG,EAAE,CAAC,gBAAgB,CAAC;IACxD,IAAI,EAAE,CAAC,QAAQ;QAAE,CAAC,CAAC,QAAQ,GAAG,EAAE,CAAC,QAAQ,CAAC;IAC1C,IAAI,EAAE,CAAC,QAAQ;QAAE,CAAC,CAAC,QAAQ,GAAG,EAAE,CAAC,QAAQ,CAAC;IAC1C,IAAI,EAAE,CAAC,gBAAgB;QAAE,CAAC,CAAC,gBAAgB,GAAG,EAAE,CAAC,gBAAgB,CAAC;IAClE,IAAI,EAAE,CAAC,kBAAkB,KAAK,SAAS;QAAE,CAAC,CAAC,QAAQ,GAAG,EAAE,CAAC,kBAAkB,CAAC;IAC5E,IAAI,EAAE,CAAC,UAAU;QAAE,CAAC,CAAC,UAAU,GAAG,EAAE,CAAC,UAAU,CAAC;IAChD,IAAI,EAAE,CAAC,QAAQ;QAAE,CAAC,CAAC,QAAQ,GAAG,IAAI,CAAC;IACnC,OAAO,CAAC,CAAC;AACX,CAAC;AAED,iGAAiG;AACjG,SAAS,kBAAkB,CAAC,SAAoB,EAAE,QAAgB;IAChE,MAAM,CAAC,GAA4B,EAAE,CAAC;IACtC,IAAI,SAAS,CAAC,WAAW;QAAE,CAAC,CAAC,WAAW,GAAG,SAAS,CAAC,WAAW,CAAC;IACjE,IAAI,SAAS,CAAC,WAAW;QAAE,CAAC,CAAC,WAAW,GAAG,SAAS,CAAC,WAAW,CAAC;IACjE,IAAI,SAAS,CAAC,OAAO;QAAE,CAAC,CAAC,OAAO,GAAG,SAAS,CAAC,OAAO,CAAC;IACrD,IAAI,SAAS,CAAC,SAAS;QAAE,CAAC,CAAC,SAAS,GAAG,IAAI,CAAC;IAC5C,IAAI,SAAS,CAAC,MAAM,KAAK,SAAS;QAAE,CAAC,CAAC,MAAM,GAAG,SAAS,CAAC,MAAM,CAAC;IAChE,IAAI,SAAS,CAAC,iBAAiB,IAAI,SAAS,CAAC,iBAAiB,CAAC,MAAM,EAAE,CAAC;QACtE,CAAC,CAAC,iBAAiB,GAAG,SAAS,CAAC,iBAAiB,CAAC;IACpD,CAAC;IACD,qFAAqF;IACrF,CAAC,CAAC,UAAU,GAAG,SAAS;SACrB,uBAAuB,EAAE;SACzB,GAAG,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,sBAAsB,CAAC,EAAE,EAAE,QAAQ,CAAC,CAAC,CAAC;IACrD,OAAO,CAAC,CAAC;AACX,CAAC;AAED;;;;;;;;;;;;GAYG;AACH,MAAM,UAAgB,UAAU;;QAC9B,4EAA4E;QAC5E,MAAM,UAAU,GAA+C,EAAE,CAAC;QAClE,KAAK,MAAM,CAAC,GAAG,EAAE,UAAU,CAAC,IAAI,kBAAkB,EAAE,EAAE,CAAC;YACrD,IAAI,CAAC,CAAA,UAAU,aAAV,UAAU,uBAAV,UAAU,CAAE,KAAK,CAAA;gBAAE,SAAS;YACjC,MAAM,GAAG,GAAI,UAAqC,CAAC,WAAW,CAAC;YAC/D,yFAAyF;YACzF,uEAAuE;YACvE,IAAI,CAAC,GAAG,IAAI,GAAG,KAAK,iBAAiB;gBAAE,SAAS;YAChD,UAAU,CAAC,IAAI,CAAC,EAAC,GAAG,EAAE,SAAS,EAAE,UAAU,CAAC,KAAK,EAAC,CAAC,CAAC;QACtD,CAAC;QACD,MAAM,cAAc,GAAG,IAAI,GAAG,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;QAE7D,4EAA4E;QAC5E,MAAM,YAAY,GAAG,CAAC,MAAO,SAE3B,CAAC,MAAM,EAAE,CAAwB,CAAC;QACpC,MAAM,iBAAiB,GAAG,IAAI,GAAG,CAAC,YAAY,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;QAEjE,MAAM,MAAM,GAA+B,EAAE,CAAC;QAE9C,wDAAwD;QACxD,KAAK,MAAM,EAAC,GAAG,EAAE,SAAS,EAAC,IAAI,UAAU,EAAE,CAAC;YAC1C,MAAM,IAAI,GAAG,kBAAkB,CAAC,SAAS,EAAE,GAAG,CAAC,CAAC;YAChD,MAAM,CAAC,IAAI,CAAC,GAAG,EAAE,CACd,aAAa,CAAC,IAAI,CAAC,SAAS,EAAE,EAAC,EAAE,EAAE,GAAG,EAAC,CAAC,CAAC,IAAI,EAAuB;iBAClE,IAAI,CAAC,GAAG,EAAE,CACT,CAAE,SAAS,CAAC,MAAM,CAAC,IAAa,CAAC,CAAC,MAAM,CAAC,GAAG,CAE1C,CAAC,IAAI,EAAE,CAAC,CACX;iBACA,IAAI,CAAC,GAAG,EAAE,CAAC,SAAS,CAAC,CACzB,CAAC;QACJ,CAAC;QAED,0FAA0F;QAC1F,KAAK,MAAM,GAAG,IAAI,iBAAiB,EAAE,CAAC;YACpC,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC;gBAC7B,MAAM,CAAC,IAAI,CAAC,GAAG,EAAE,CACd,aAAa,CAAC,IAAI,CAAC,SAAS,EAAE,EAAC,EAAE,EAAE,GAAG,EAAC,CAAC,CAAC,IAAI,EAAuB,CAAC,IAAI,CACxE,GAAG,EAAE,CAAC,SAAS,CAChB,CACF,CAAC;YACJ,CAAC;QACH,CAAC;QAED,OAAO,MAAM,CAAC;IAChB,CAAC;CAAA"}