@_linked/core 1.0.0-next.20260224083238 → 1.1.0

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 (129) hide show
  1. package/CHANGELOG.md +4 -12
  2. package/README.md +40 -186
  3. package/lib/cjs/index.js +0 -2
  4. package/lib/cjs/index.js.map +1 -1
  5. package/lib/cjs/interfaces/IQuadStore.d.ts +7 -19
  6. package/lib/cjs/interfaces/IQueryParser.d.ts +13 -0
  7. package/lib/cjs/interfaces/IQueryParser.js +10 -0
  8. package/lib/cjs/interfaces/IQueryParser.js.map +1 -0
  9. package/lib/cjs/queries/CreateQuery.d.ts +8 -7
  10. package/lib/cjs/queries/CreateQuery.js +4 -4
  11. package/lib/cjs/queries/CreateQuery.js.map +1 -1
  12. package/lib/cjs/queries/DeleteQuery.d.ts +8 -7
  13. package/lib/cjs/queries/DeleteQuery.js +4 -4
  14. package/lib/cjs/queries/DeleteQuery.js.map +1 -1
  15. package/lib/cjs/queries/QueryFactory.d.ts +2 -0
  16. package/lib/cjs/queries/QueryFactory.js +3 -0
  17. package/lib/cjs/queries/QueryFactory.js.map +1 -1
  18. package/lib/cjs/queries/QueryParser.d.ts +1 -6
  19. package/lib/cjs/queries/QueryParser.js +22 -14
  20. package/lib/cjs/queries/QueryParser.js.map +1 -1
  21. package/lib/cjs/queries/SelectQuery.d.ts +27 -18
  22. package/lib/cjs/queries/SelectQuery.js +45 -54
  23. package/lib/cjs/queries/SelectQuery.js.map +1 -1
  24. package/lib/cjs/queries/UpdateQuery.d.ts +9 -8
  25. package/lib/cjs/queries/UpdateQuery.js +4 -4
  26. package/lib/cjs/queries/UpdateQuery.js.map +1 -1
  27. package/lib/cjs/shapes/SHACL.d.ts +0 -1
  28. package/lib/cjs/shapes/SHACL.js +2 -82
  29. package/lib/cjs/shapes/SHACL.js.map +1 -1
  30. package/lib/cjs/shapes/Shape.d.ts +10 -11
  31. package/lib/cjs/shapes/Shape.js +5 -11
  32. package/lib/cjs/shapes/Shape.js.map +1 -1
  33. package/lib/cjs/test-helpers/query-fixtures.d.ts +88 -671
  34. package/lib/cjs/test-helpers/query-fixtures.js +1 -39
  35. package/lib/cjs/test-helpers/query-fixtures.js.map +1 -1
  36. package/lib/cjs/utils/LinkedStorage.d.ts +7 -7
  37. package/lib/cjs/utils/LinkedStorage.js +3 -4
  38. package/lib/cjs/utils/LinkedStorage.js.map +1 -1
  39. package/lib/esm/index.js +0 -2
  40. package/lib/esm/index.js.map +1 -1
  41. package/lib/esm/interfaces/IQuadStore.d.ts +7 -19
  42. package/lib/esm/interfaces/IQueryParser.d.ts +13 -0
  43. package/lib/esm/interfaces/IQueryParser.js +7 -0
  44. package/lib/esm/interfaces/IQueryParser.js.map +1 -0
  45. package/lib/esm/queries/CreateQuery.d.ts +8 -7
  46. package/lib/esm/queries/CreateQuery.js +4 -4
  47. package/lib/esm/queries/CreateQuery.js.map +1 -1
  48. package/lib/esm/queries/DeleteQuery.d.ts +8 -7
  49. package/lib/esm/queries/DeleteQuery.js +4 -4
  50. package/lib/esm/queries/DeleteQuery.js.map +1 -1
  51. package/lib/esm/queries/QueryFactory.d.ts +2 -0
  52. package/lib/esm/queries/QueryFactory.js +3 -0
  53. package/lib/esm/queries/QueryFactory.js.map +1 -1
  54. package/lib/esm/queries/QueryParser.d.ts +1 -6
  55. package/lib/esm/queries/QueryParser.js +23 -14
  56. package/lib/esm/queries/QueryParser.js.map +1 -1
  57. package/lib/esm/queries/SelectQuery.d.ts +27 -18
  58. package/lib/esm/queries/SelectQuery.js +45 -54
  59. package/lib/esm/queries/SelectQuery.js.map +1 -1
  60. package/lib/esm/queries/UpdateQuery.d.ts +9 -8
  61. package/lib/esm/queries/UpdateQuery.js +4 -4
  62. package/lib/esm/queries/UpdateQuery.js.map +1 -1
  63. package/lib/esm/shapes/SHACL.d.ts +0 -1
  64. package/lib/esm/shapes/SHACL.js +2 -82
  65. package/lib/esm/shapes/SHACL.js.map +1 -1
  66. package/lib/esm/shapes/Shape.d.ts +10 -11
  67. package/lib/esm/shapes/Shape.js +5 -11
  68. package/lib/esm/shapes/Shape.js.map +1 -1
  69. package/lib/esm/test-helpers/query-fixtures.d.ts +88 -671
  70. package/lib/esm/test-helpers/query-fixtures.js +0 -38
  71. package/lib/esm/test-helpers/query-fixtures.js.map +1 -1
  72. package/lib/esm/utils/LinkedStorage.d.ts +7 -7
  73. package/lib/esm/utils/LinkedStorage.js +3 -4
  74. package/lib/esm/utils/LinkedStorage.js.map +1 -1
  75. package/package.json +1 -1
  76. package/lib/cjs/queries/IRAliasScope.d.ts +0 -20
  77. package/lib/cjs/queries/IRAliasScope.js +0 -52
  78. package/lib/cjs/queries/IRAliasScope.js.map +0 -1
  79. package/lib/cjs/queries/IRCanonicalize.d.ts +0 -36
  80. package/lib/cjs/queries/IRCanonicalize.js +0 -112
  81. package/lib/cjs/queries/IRCanonicalize.js.map +0 -1
  82. package/lib/cjs/queries/IRDesugar.d.ts +0 -98
  83. package/lib/cjs/queries/IRDesugar.js +0 -244
  84. package/lib/cjs/queries/IRDesugar.js.map +0 -1
  85. package/lib/cjs/queries/IRLower.d.ts +0 -8
  86. package/lib/cjs/queries/IRLower.js +0 -238
  87. package/lib/cjs/queries/IRLower.js.map +0 -1
  88. package/lib/cjs/queries/IRMutation.d.ts +0 -23
  89. package/lib/cjs/queries/IRMutation.js +0 -77
  90. package/lib/cjs/queries/IRMutation.js.map +0 -1
  91. package/lib/cjs/queries/IRPipeline.d.ts +0 -8
  92. package/lib/cjs/queries/IRPipeline.js +0 -25
  93. package/lib/cjs/queries/IRPipeline.js.map +0 -1
  94. package/lib/cjs/queries/IRProjection.d.ts +0 -27
  95. package/lib/cjs/queries/IRProjection.js +0 -84
  96. package/lib/cjs/queries/IRProjection.js.map +0 -1
  97. package/lib/cjs/queries/IntermediateRepresentation.d.ts +0 -200
  98. package/lib/cjs/queries/IntermediateRepresentation.js +0 -3
  99. package/lib/cjs/queries/IntermediateRepresentation.js.map +0 -1
  100. package/lib/cjs/test-helpers/query-capture-store.d.ts +0 -5
  101. package/lib/cjs/test-helpers/query-capture-store.js +0 -59
  102. package/lib/cjs/test-helpers/query-capture-store.js.map +0 -1
  103. package/lib/esm/queries/IRAliasScope.d.ts +0 -20
  104. package/lib/esm/queries/IRAliasScope.js +0 -47
  105. package/lib/esm/queries/IRAliasScope.js.map +0 -1
  106. package/lib/esm/queries/IRCanonicalize.d.ts +0 -36
  107. package/lib/esm/queries/IRCanonicalize.js +0 -107
  108. package/lib/esm/queries/IRCanonicalize.js.map +0 -1
  109. package/lib/esm/queries/IRDesugar.d.ts +0 -98
  110. package/lib/esm/queries/IRDesugar.js +0 -240
  111. package/lib/esm/queries/IRDesugar.js.map +0 -1
  112. package/lib/esm/queries/IRLower.d.ts +0 -8
  113. package/lib/esm/queries/IRLower.js +0 -234
  114. package/lib/esm/queries/IRLower.js.map +0 -1
  115. package/lib/esm/queries/IRMutation.d.ts +0 -23
  116. package/lib/esm/queries/IRMutation.js +0 -71
  117. package/lib/esm/queries/IRMutation.js.map +0 -1
  118. package/lib/esm/queries/IRPipeline.d.ts +0 -8
  119. package/lib/esm/queries/IRPipeline.js +0 -21
  120. package/lib/esm/queries/IRPipeline.js.map +0 -1
  121. package/lib/esm/queries/IRProjection.d.ts +0 -27
  122. package/lib/esm/queries/IRProjection.js +0 -78
  123. package/lib/esm/queries/IRProjection.js.map +0 -1
  124. package/lib/esm/queries/IntermediateRepresentation.d.ts +0 -200
  125. package/lib/esm/queries/IntermediateRepresentation.js +0 -2
  126. package/lib/esm/queries/IntermediateRepresentation.js.map +0 -1
  127. package/lib/esm/test-helpers/query-capture-store.d.ts +0 -5
  128. package/lib/esm/test-helpers/query-capture-store.js +0 -55
  129. package/lib/esm/test-helpers/query-capture-store.js.map +0 -1
@@ -4,13 +4,6 @@ import { ShapeSet } from '../collections/ShapeSet.js';
4
4
  import { CoreSet } from '../collections/CoreSet.js';
5
5
  import { CoreMap } from '../collections/CoreMap.js';
6
6
  import { NodeReferenceValue, Prettify, QueryFactory, ShapeReferenceValue } from './QueryFactory.js';
7
- import type { RawSelectInput } from './IRDesugar.js';
8
- import type { IRSelectQuery } from './IntermediateRepresentation.js';
9
- /**
10
- * The canonical SelectQuery type — an IR AST node representing a select query.
11
- * This is the type received by IQuadStore.selectQuery().
12
- */
13
- export type SelectQuery = IRSelectQuery;
14
7
  /**
15
8
  * ###################################
16
9
  * #### TYPES FOR QUERY BUILDING ####
@@ -36,11 +29,34 @@ export type SortByPath = {
36
29
  paths: QueryPath[];
37
30
  direction: 'ASC' | 'DESC';
38
31
  };
32
+ /**
33
+ * A LinkedQuery is used to build a query, when complete it can be turned into a LinkedQueryObject
34
+ * that is used to send across the network as it can be serialized to JSON
35
+ * @todo add | UpdateQuery and others
36
+ */
37
+ export interface LinkedQuery {
38
+ type: string;
39
+ }
39
40
  export type SubQueryPaths = SelectPath;
40
41
  /**
41
42
  * A QueryPath is an array of QuerySteps, representing the path of properties that were requested to reach a certain value
42
43
  */
43
44
  export type QueryPath = (QueryStep | SubQueryPaths)[] | WherePath;
45
+ /**
46
+ * A plain JS object that represents a LinkedQuery created by a Shape.select(...) call
47
+ * It can be sent across the network.
48
+ * @see LinkedQuery
49
+ */
50
+ export interface SelectQuery<S extends Shape = Shape, ResultType = any> extends LinkedQuery {
51
+ select: SelectPath;
52
+ where?: WherePath;
53
+ sortBy?: SortByPath;
54
+ subject?: S | QResult<S>;
55
+ limit?: number;
56
+ offset?: number;
57
+ shape?: ShapeType<S>;
58
+ singleResult?: boolean;
59
+ }
44
60
  /**
45
61
  * Much like a querypath, except it can only contain QuerySteps
46
62
  */
@@ -63,7 +79,8 @@ export type WhereAndOr = {
63
79
  andOr: AndOrQueryToken[];
64
80
  };
65
81
  /**
66
- * A WhereQuery is a (sub)query that is used to filter down the results of its parent query.
82
+ * A WhereQuery is a (sub)query that is used to filter down the results of its parent query
83
+ * Hence it extends LinkedQuery and can do anything a normal query can
67
84
  */
68
85
  export type AndOrQueryToken = {
69
86
  and?: WherePath;
@@ -80,9 +97,6 @@ export declare enum WhereMethods {
80
97
  export type QueryShapeProps<T extends Shape, Source, Property extends string | number | symbol = any> = {
81
98
  [P in keyof T]: ToQueryBuilderObject<T[P], QShape<T, Source, Property>, P>;
82
99
  };
83
- export type SelectAllQueryResponse<T extends Shape> = Array<QueryShapeProps<T, null, ''>[Exclude<Extract<{
84
- [K in keyof T]-?: T[K] extends (...args: any[]) => any ? never : K;
85
- }[keyof T], string>, Extract<keyof Shape, string>>]>;
86
100
  /**
87
101
  * This type states that the ShapeSet has access to the same methods as the shape of all the items in the set
88
102
  * (this is enabled with the QueryShapeSet.proxifyShapeSet method)
@@ -257,7 +271,6 @@ export declare class QueryShapeSet<S extends Shape = Shape, Source = any, Proper
257
271
  size(): SetSize<this>;
258
272
  where(validation: WhereClause<S>): this;
259
273
  select<QF = unknown>(subQueryFn: QueryBuildFn<S, QF>): SelectQueryFactory<S, QF, QueryShapeSet<S, Source, Property>>;
260
- selectAll(): SelectQueryFactory<S, SelectAllQueryResponse<S>, QueryShapeSet<S, Source, Property>>;
261
274
  some(validation: WhereClause<S>): SetEvaluation;
262
275
  every(validation: WhereClause<S>): SetEvaluation;
263
276
  private someOrEvery;
@@ -273,7 +286,6 @@ export declare class QueryShape<S extends Shape = Shape, Source = any, Property
273
286
  as<ShapeClass extends typeof Shape>(shape: ShapeClass): QShape<InstanceType<ShapeClass>, Source, Property>;
274
287
  equals(otherValue: NodeReferenceValue | QShape<any>): Evaluation;
275
288
  select<QF = unknown>(subQueryFn: QueryBuildFn<S, QF>): SelectQueryFactory<S, QF, QueryShape<S, Source, Property>>;
276
- selectAll(): SelectQueryFactory<S, SelectAllQueryResponse<S>, QueryShape<S, Source, Property>>;
277
289
  }
278
290
  export declare class Evaluation {
279
291
  value: QueryBuilderObject | QueryPrimitiveSet;
@@ -352,12 +364,9 @@ export declare class SelectQueryFactory<S extends Shape, ResponseType = any, Sou
352
364
  where(validation: WhereClause<S>): this;
353
365
  exec(): Promise<QueryResponseToResultType<ResponseType>[]>;
354
366
  /**
355
- * Returns the raw pipeline input for this query.
356
- * Used internally by build() and by test helpers that need
357
- * to feed factory state into individual pipeline stages.
367
+ * Turns the LinkedQuery into a SelectQuery, which is a plain JS object that can be serialized to JSON
358
368
  */
359
- toRawInput(): RawSelectInput;
360
- build(): SelectQuery;
369
+ getQueryObject(): SelectQuery<S>;
361
370
  getSubject(): {
362
371
  id: string;
363
372
  } | S | ShapeSet<S>;
@@ -5,8 +5,6 @@ import { CoreSet } from '../collections/CoreSet.js';
5
5
  import { getPropertyShapeByLabel, getShapeClass } from '../utils/ShapeClass.js';
6
6
  import { QueryFactory } from './QueryFactory.js';
7
7
  import { xsd } from '../ontologies/xsd.js';
8
- import { buildSelectQuery, } from './IRPipeline.js';
9
- import { QueryParser } from './QueryParser.js';
10
8
  const isSameRef = (a, b) => !!a && !!b && a.id === b.id;
11
9
  export var WhereMethods;
12
10
  (function (WhereMethods) {
@@ -243,26 +241,18 @@ export class BoundComponent extends QueryBuilderObject {
243
241
  throw new Error('Unknown value type for query object. Keep to this format: {propName: Shape.query(s => ...)}');
244
242
  }
245
243
  }
246
- throw new Error('Unknown data query type. Expected a SelectQueryFactory (from Shape.query()) or an object with 1 key whose value is a SelectQueryFactory');
244
+ throw new Error('Unknown data query type. Expected a LinkedQuery (from Shape.query()) or an object with 1 key whose value is a LinkedQuery');
247
245
  }
248
246
  getPropertyPath() {
249
247
  let sourcePath = this.source.getPropertyPath();
250
248
  let requestQuery = this.getParentQueryFactory();
251
- let compSelectQuery = requestQuery.getQueryPaths();
249
+ let compSelectQuery = requestQuery.getQueryObject().select;
252
250
  if (Array.isArray(sourcePath)) {
253
- if (Array.isArray(compSelectQuery)) {
254
- // QueryPath[] unwrap single-element arrays for compact representation
255
- const unwrapped = compSelectQuery.length === 1
256
- ? Array.isArray(compSelectQuery[0]) && compSelectQuery[0].length === 1
257
- ? compSelectQuery[0][0]
258
- : compSelectQuery[0]
259
- : compSelectQuery;
260
- sourcePath.push(unwrapped);
261
- }
262
- else {
263
- // CustomQueryObject
264
- sourcePath.push(compSelectQuery);
265
- }
251
+ sourcePath.push(compSelectQuery.length === 1
252
+ ? compSelectQuery[0].length === 1
253
+ ? compSelectQuery[0][0]
254
+ : compSelectQuery[0]
255
+ : compSelectQuery);
266
256
  }
267
257
  return sourcePath;
268
258
  }
@@ -457,13 +447,6 @@ export class QueryShapeSet extends QueryBuilderObject {
457
447
  subQuery.parentQueryPath = this.getPropertyPath();
458
448
  return subQuery;
459
449
  }
460
- selectAll() {
461
- let leastSpecificShape = this.getOriginalValue().getLeastSpecificShape();
462
- const propertyLabels = leastSpecificShape.shape
463
- .getUniquePropertyShapes()
464
- .map((propertyShape) => propertyShape.label);
465
- return this.select((shape) => propertyLabels.map((label) => shape[label]));
466
- }
467
450
  some(validation) {
468
451
  return this.someOrEvery(validation, WhereMethods.SOME);
469
452
  }
@@ -577,13 +560,6 @@ export class QueryShape extends QueryBuilderObject {
577
560
  subQuery.parentQueryPath = this.getPropertyPath();
578
561
  return subQuery;
579
562
  }
580
- selectAll() {
581
- let leastSpecificShape = getShapeClass(this.getOriginalValue().nodeShape.id);
582
- const propertyLabels = leastSpecificShape.shape
583
- .getUniquePropertyShapes()
584
- .map((propertyShape) => propertyShape.label);
585
- return this.select((shape) => propertyLabels.map((label) => shape[label]));
586
- }
587
563
  }
588
564
  export class Evaluation {
589
565
  constructor(value, method, args) {
@@ -650,6 +626,14 @@ export class Evaluation {
650
626
  }
651
627
  class SetEvaluation extends Evaluation {
652
628
  }
629
+ // class QueryBoolean extends QueryBuilderObject<boolean> {
630
+ // constructor(
631
+ // property?: PropertyShape,
632
+ // subject?: QueryShape<any> | QueryShapeSet<any>,
633
+ // ) {
634
+ // super(property, subject);
635
+ // }
636
+ // }
653
637
  /**
654
638
  * The class that is used for when JS primitives are converted to a QueryValue
655
639
  * This is extended by QueryString, QueryNumber, QueryBoolean, etc
@@ -813,33 +797,40 @@ export class SelectQueryFactory extends QueryFactory {
813
797
  return this;
814
798
  }
815
799
  exec() {
816
- return QueryParser.selectQuery(this);
800
+ return Shape.queryParser.selectQuery(this);
817
801
  }
818
802
  /**
819
- * Returns the raw pipeline input for this query.
820
- * Used internally by build() and by test helpers that need
821
- * to feed factory state into individual pipeline stages.
803
+ * Turns the LinkedQuery into a SelectQuery, which is a plain JS object that can be serialized to JSON
822
804
  */
823
- toRawInput() {
824
- const input = {
825
- select: this.getQueryPaths(),
826
- subject: this.getSubject(),
827
- limit: this.limit,
828
- offset: this.offset,
829
- shape: this.shape,
830
- sortBy: this.getSortByPath(),
831
- singleResult: this.singleResult ||
832
- !!(this.subject &&
833
- ('id' in this.subject || 'id' in this.subject)),
834
- };
835
- if (this.wherePath) {
836
- input.where = this.wherePath;
805
+ getQueryObject() {
806
+ try {
807
+ let queryPaths = this.getQueryPaths();
808
+ let selectQuery = {
809
+ type: 'select',
810
+ select: queryPaths,
811
+ subject: this.getSubject(),
812
+ limit: this.limit,
813
+ offset: this.offset,
814
+ shape: this.shape,
815
+ sortBy: this.getSortByPath(),
816
+ //the query is selecting a single result if it explicitly requested it, or if the subject is a specific subject (with a URI or ID)
817
+ singleResult: this.singleResult ||
818
+ !!(this.subject &&
819
+ ('id' in this.subject || 'id' in this.subject)),
820
+ };
821
+ if (this.wherePath) {
822
+ selectQuery.where = this.wherePath;
823
+ }
824
+ return selectQuery;
825
+ }
826
+ catch (err) {
827
+ console.error('Error in getQueryObject', err);
828
+ throw err;
837
829
  }
838
- return input;
839
- }
840
- build() {
841
- return buildSelectQuery(this.toRawInput());
842
830
  }
831
+ // applyTo(subject) {
832
+ // return new LinkedQuery(this.shape, this.queryBuildFn, subject);
833
+ // }
843
834
  getSubject() {
844
835
  var _a, _b;
845
836
  //if the subject is a QueryShape which comes from query context
@@ -924,7 +915,7 @@ export class SelectQueryFactory extends QueryFactory {
924
915
  });
925
916
  }
926
917
  isValidResult(qResult) {
927
- let select = this.getQueryPaths();
918
+ let select = this.getQueryObject().select;
928
919
  if (Array.isArray(select)) {
929
920
  return this.isValidQueryPathsResult(qResult, select);
930
921
  }
@@ -1 +1 @@
1
- {"version":3,"file":"SelectQuery.js","sourceRoot":"","sources":["../../../src/queries/SelectQuery.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"SelectQuery.js","sourceRoot":"","sources":["../../../src/queries/SelectQuery.ts"],"names":[],"mappings":"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"}
@@ -1,16 +1,17 @@
1
1
  import { Shape } from '../shapes/Shape.js';
2
- import { NodeDescriptionValue, NodeReferenceValue, UpdatePartial } from './QueryFactory.js';
2
+ import { AddId, NodeDescriptionValue, NodeReferenceValue, UpdatePartial } from './QueryFactory.js';
3
+ import { NodeShape } from '../shapes/SHACL.js';
3
4
  import { MutationQueryFactory } from './MutationQuery.js';
4
- import { IRUpdateMutation } from './IntermediateRepresentation.js';
5
- /**
6
- * The canonical UpdateQuery type — an IR AST node representing an update mutation.
7
- * This is the type received by IQuadStore.updateQuery().
8
- */
9
- export type UpdateQuery = IRUpdateMutation;
5
+ export type UpdateQuery<ResponseType = null> = {
6
+ type: 'update';
7
+ id: string;
8
+ shape: NodeShape;
9
+ updates: NodeDescriptionValue;
10
+ };
10
11
  export declare class UpdateQueryFactory<ShapeType extends Shape, U extends UpdatePartial<ShapeType>> extends MutationQueryFactory {
11
12
  shapeClass: typeof Shape;
12
13
  readonly id: string;
13
14
  readonly fields: NodeDescriptionValue;
14
15
  constructor(shapeClass: typeof Shape, id: string | NodeReferenceValue, updateObjectOrFn: U);
15
- build(): UpdateQuery;
16
+ getQueryObject(): UpdateQuery<AddId<U>>;
16
17
  }
@@ -1,6 +1,5 @@
1
1
  import { toNodeReference, } from './QueryFactory.js';
2
2
  import { MutationQueryFactory } from './MutationQuery.js';
3
- import { buildCanonicalUpdateMutationIR } from './IRMutation.js';
4
3
  export class UpdateQueryFactory extends MutationQueryFactory {
5
4
  constructor(shapeClass, id, updateObjectOrFn) {
6
5
  super();
@@ -8,12 +7,13 @@ export class UpdateQueryFactory extends MutationQueryFactory {
8
7
  this.id = toNodeReference(id).id;
9
8
  this.fields = this.convertUpdateObject(updateObjectOrFn, this.shapeClass.shape);
10
9
  }
11
- build() {
12
- return buildCanonicalUpdateMutationIR({
10
+ getQueryObject() {
11
+ return {
12
+ type: 'update',
13
13
  id: this.id,
14
14
  shape: this.shapeClass.shape,
15
15
  updates: this.fields,
16
- });
16
+ };
17
17
  }
18
18
  }
19
19
  //# sourceMappingURL=UpdateQuery.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"UpdateQuery.js","sourceRoot":"","sources":["../../../src/queries/UpdateQuery.ts"],"names":[],"mappings":"AACA,OAAO,EAKL,eAAe,GAChB,MAAM,mBAAmB,CAAC;AAC3B,OAAO,EAAC,oBAAoB,EAAC,MAAM,oBAAoB,CAAC;AAExD,OAAO,EAAC,8BAA8B,EAAC,MAAM,iBAAiB,CAAC;AAQ/D,MAAM,OAAO,kBAGX,SAAQ,oBAAoB;IAI5B,YACS,UAAwB,EAC/B,EAA+B,EAC/B,gBAAmB;QAEnB,KAAK,EAAE,CAAC;QAJD,eAAU,GAAV,UAAU,CAAc;QAK/B,IAAI,CAAC,EAAE,GAAG,eAAe,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC;QACjC,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,mBAAmB,CACpC,gBAAgB,EAChB,IAAI,CAAC,UAAU,CAAC,KAAK,CACtB,CAAC;IACJ,CAAC;IAED,KAAK;QACH,OAAO,8BAA8B,CAAC;YACpC,EAAE,EAAE,IAAI,CAAC,EAAE;YACX,KAAK,EAAE,IAAI,CAAC,UAAU,CAAC,KAAK;YAC5B,OAAO,EAAE,IAAI,CAAC,MAAM;SACrB,CAAC,CAAC;IACL,CAAC;CACF"}
1
+ {"version":3,"file":"UpdateQuery.js","sourceRoot":"","sources":["../../../src/queries/UpdateQuery.ts"],"names":[],"mappings":"AACA,OAAO,EAKL,eAAe,GAChB,MAAM,mBAAmB,CAAC;AAE3B,OAAO,EAAC,oBAAoB,EAAC,MAAM,oBAAoB,CAAC;AASxD,MAAM,OAAO,kBAGX,SAAQ,oBAAoB;IAI5B,YACS,UAAwB,EAC/B,EAA+B,EAC/B,gBAAmB;QAEnB,KAAK,EAAE,CAAC;QAJD,eAAU,GAAV,UAAU,CAAc;QAK/B,IAAI,CAAC,EAAE,GAAG,eAAe,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC;QACjC,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,mBAAmB,CACpC,gBAAgB,EAChB,IAAI,CAAC,UAAU,CAAC,KAAK,CACtB,CAAC;IACJ,CAAC;IAED,cAAc;QACZ,OAAO;YACL,IAAI,EAAE,QAAQ;YACd,EAAE,EAAE,IAAI,CAAC,EAAE;YACX,KAAK,EAAE,IAAI,CAAC,UAAU,CAAC,KAAK;YAC5B,OAAO,EAAE,IAAI,CAAC,MAAM;SACrB,CAAC;IACJ,CAAC;CACF"}
@@ -151,7 +151,6 @@ export declare class NodeShape extends Shape {
151
151
  get properties(): QResult<PropertyShape>[];
152
152
  addPropertyShape(propertyShape: PropertyShape): void;
153
153
  getPropertyShapes(includeSuperClasses?: boolean): PropertyShape[];
154
- getUniquePropertyShapes(): PropertyShape[];
155
154
  getPropertyShape(label: string, checkSubShapes?: boolean): PropertyShape;
156
155
  validateNode(_node?: unknown): boolean;
157
156
  equals(other: NodeShape): boolean;
@@ -41,9 +41,6 @@ const normalizeNodeKind = (nodeKind, defaultNodeKind) => {
41
41
  }
42
42
  return nodeKind;
43
43
  };
44
- const EXPLICIT_NODE_KIND_SYMBOL = Symbol('explicitNodeKind');
45
- const EXPLICIT_MIN_COUNT_SYMBOL = Symbol('explicitMinCount');
46
- const EXPLICIT_MAX_COUNT_SYMBOL = Symbol('explicitMaxCount');
47
44
  export class NodeShape extends Shape {
48
45
  constructor(node) {
49
46
  super(node);
@@ -83,17 +80,6 @@ export class NodeShape extends Shape {
83
80
  }
84
81
  return res;
85
82
  }
86
- getUniquePropertyShapes() {
87
- const uniquePropertyShapes = [];
88
- const seen = new Set();
89
- this.getPropertyShapes(true).forEach((propertyShape) => {
90
- if (!seen.has(propertyShape.label)) {
91
- seen.add(propertyShape.label);
92
- uniquePropertyShapes.push(propertyShape);
93
- }
94
- });
95
- return uniquePropertyShapes;
96
- }
97
83
  getPropertyShape(label, checkSubShapes = true) {
98
84
  let shapeClass = getShapeClass(this.id);
99
85
  let res;
@@ -218,20 +204,7 @@ const connectValueShape = (config, propertyKey, property) => {
218
204
  }
219
205
  };
220
206
  export function registerPropertyShape(shape, propertyShape) {
221
- const inherited = shape.getPropertyShape(propertyShape.label, true);
222
207
  const existing = shape.getPropertyShape(propertyShape.label, false);
223
- if (!existing && inherited) {
224
- if (!propertyShape[EXPLICIT_MIN_COUNT_SYMBOL]) {
225
- propertyShape.minCount = inherited.minCount;
226
- }
227
- if (!propertyShape[EXPLICIT_MAX_COUNT_SYMBOL]) {
228
- propertyShape.maxCount = inherited.maxCount;
229
- }
230
- if (!propertyShape[EXPLICIT_NODE_KIND_SYMBOL]) {
231
- propertyShape.nodeKind = inherited.nodeKind;
232
- }
233
- validateOverrideTightening(shape, inherited, propertyShape);
234
- }
235
208
  if (existing) {
236
209
  Object.assign(existing, propertyShape);
237
210
  return existing;
@@ -240,53 +213,6 @@ export function registerPropertyShape(shape, propertyShape) {
240
213
  shape.addPropertyShape(propertyShape);
241
214
  return propertyShape;
242
215
  }
243
- const ATOMIC_NODE_KINDS = [
244
- shacl.BlankNode.id,
245
- shacl.IRI.id,
246
- shacl.Literal.id,
247
- ];
248
- const nodeKindToAtomics = (nodeKind) => {
249
- if (!(nodeKind === null || nodeKind === void 0 ? void 0 : nodeKind.id)) {
250
- return new Set();
251
- }
252
- switch (nodeKind.id) {
253
- case shacl.BlankNode.id:
254
- case shacl.IRI.id:
255
- case shacl.Literal.id:
256
- return new Set([nodeKind.id]);
257
- case shacl.BlankNodeOrIRI.id:
258
- return new Set([shacl.BlankNode.id, shacl.IRI.id]);
259
- case shacl.IRIOrLiteral.id:
260
- return new Set([shacl.IRI.id, shacl.Literal.id]);
261
- case shacl.BlankNodeOrLiteral.id:
262
- return new Set([shacl.BlankNode.id, shacl.Literal.id]);
263
- default:
264
- return new Set(ATOMIC_NODE_KINDS);
265
- }
266
- };
267
- const throwOverrideError = (shape, propertyShape, message) => {
268
- throw new Error(`Invalid override for ${shape.label}.${propertyShape.label}: ${message}`);
269
- };
270
- const validateOverrideTightening = (shape, base, override) => {
271
- if (typeof base.minCount === 'number' &&
272
- typeof override.minCount === 'number' &&
273
- override.minCount < base.minCount) {
274
- throwOverrideError(shape, override, `minCount cannot be lowered (${base.minCount} -> ${override.minCount}).`);
275
- }
276
- if (typeof base.maxCount === 'number' &&
277
- typeof override.maxCount === 'number' &&
278
- override.maxCount > base.maxCount) {
279
- throwOverrideError(shape, override, `maxCount cannot be increased (${base.maxCount} -> ${override.maxCount}).`);
280
- }
281
- if (base.nodeKind && override.nodeKind) {
282
- const baseKinds = nodeKindToAtomics(base.nodeKind);
283
- const overrideKinds = nodeKindToAtomics(override.nodeKind);
284
- const widensNodeKind = [...overrideKinds].some((kind) => !baseKinds.has(kind));
285
- if (widensNodeKind) {
286
- throwOverrideError(shape, override, `nodeKind cannot be widened (${base.nodeKind.id} -> ${override.nodeKind.id}).`);
287
- }
288
- }
289
- };
290
216
  export function createPropertyShape(config, propertyKey, defaultNodeKind = null, shapeClass = null) {
291
217
  const propertyShape = new PropertyShape();
292
218
  propertyShape.path = normalizePathInput(config.path);
@@ -300,16 +226,12 @@ export function createPropertyShape(config, propertyKey, defaultNodeKind = null,
300
226
  if (config.required) {
301
227
  propertyShape.minCount = 1;
302
228
  }
303
- else if (config.minCount !== undefined) {
229
+ else if (config.minCount) {
304
230
  propertyShape.minCount = config.minCount;
305
231
  }
306
- propertyShape[EXPLICIT_MIN_COUNT_SYMBOL] =
307
- config.required === true || config.minCount !== undefined;
308
- if (config.maxCount !== undefined) {
232
+ if (config.maxCount) {
309
233
  propertyShape.maxCount = config.maxCount;
310
234
  }
311
- propertyShape[EXPLICIT_MAX_COUNT_SYMBOL] =
312
- config.maxCount !== undefined;
313
235
  if (config.datatype) {
314
236
  propertyShape.datatype = toPlainNodeRef(config.datatype);
315
237
  }
@@ -335,8 +257,6 @@ export function createPropertyShape(config, propertyKey, defaultNodeKind = null,
335
257
  propertyShape.sortBy = normalizePathInput(config.sortBy);
336
258
  }
337
259
  propertyShape.nodeKind = normalizeNodeKind(config.nodeKind, defaultNodeKind);
338
- propertyShape[EXPLICIT_NODE_KIND_SYMBOL] =
339
- config.nodeKind !== undefined;
340
260
  if (shapeClass) {
341
261
  onShapeSetup(shapeClass, (shape) => {
342
262
  connectValueShape(config, propertyKey, propertyShape);