@undefineds.co/xpod 0.3.18 → 0.3.23

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 (115) hide show
  1. package/config/bun.json +57 -11
  2. package/config/cloud.json +14 -12
  3. package/config/local.json +16 -14
  4. package/config/xpod.json +47 -9
  5. package/dist/api/matrix/PodMatrixStore.d.ts +4 -7
  6. package/dist/api/matrix/PodMatrixStore.js +116 -148
  7. package/dist/api/matrix/PodMatrixStore.js.map +1 -1
  8. package/dist/api/matrix/types.d.ts +2 -0
  9. package/dist/api/matrix/types.js.map +1 -1
  10. package/dist/api/runs/PiAgentRuntimeDriver.d.ts +1 -0
  11. package/dist/api/runs/PiAgentRuntimeDriver.js +4 -1
  12. package/dist/api/runs/PiAgentRuntimeDriver.js.map +1 -1
  13. package/dist/components/components.jsonld +3 -0
  14. package/dist/components/context.jsonld +71 -32
  15. package/dist/http/SubgraphSparqlHttpHandler.d.ts +1 -0
  16. package/dist/http/SubgraphSparqlHttpHandler.js +27 -4
  17. package/dist/http/SubgraphSparqlHttpHandler.js.map +1 -1
  18. package/dist/http/SubgraphSparqlHttpHandler.jsonld +4 -0
  19. package/dist/http/vector/VectorHttpHandler.d.ts +5 -1
  20. package/dist/http/vector/VectorHttpHandler.js +5 -5
  21. package/dist/http/vector/VectorHttpHandler.js.map +1 -1
  22. package/dist/http/vector/VectorHttpHandler.jsonld +40 -28
  23. package/dist/index.d.ts +5 -2
  24. package/dist/index.js +9 -4
  25. package/dist/index.js.map +1 -1
  26. package/dist/runtime/Proxy.d.ts +3 -0
  27. package/dist/runtime/Proxy.js +31 -7
  28. package/dist/runtime/Proxy.js.map +1 -1
  29. package/dist/solidfs/LocalSolidFS.js +31 -124
  30. package/dist/solidfs/LocalSolidFS.js.map +1 -1
  31. package/dist/solidfs/SolidFsPathUtils.d.ts +13 -0
  32. package/dist/solidfs/SolidFsPathUtils.js +114 -0
  33. package/dist/solidfs/SolidFsPathUtils.js.map +1 -0
  34. package/dist/solidfs/SolidFsSyncJournal.d.ts +117 -0
  35. package/dist/solidfs/SolidFsSyncJournal.js +553 -0
  36. package/dist/solidfs/SolidFsSyncJournal.js.map +1 -0
  37. package/dist/solidfs/index.d.ts +1 -0
  38. package/dist/solidfs/index.js +1 -0
  39. package/dist/solidfs/index.js.map +1 -1
  40. package/dist/solidfs/types.d.ts +1 -0
  41. package/dist/solidfs/types.js.map +1 -1
  42. package/dist/storage/SparqlUpdateResourceStore.js +94 -33
  43. package/dist/storage/SparqlUpdateResourceStore.js.map +1 -1
  44. package/dist/storage/accessors/MixDataAccessor.d.ts +22 -5
  45. package/dist/storage/accessors/MixDataAccessor.js +376 -61
  46. package/dist/storage/accessors/MixDataAccessor.js.map +1 -1
  47. package/dist/storage/accessors/MixDataAccessor.jsonld +73 -5
  48. package/dist/storage/accessors/QuadstoreSparqlDataAccessor.js +32 -10
  49. package/dist/storage/accessors/QuadstoreSparqlDataAccessor.js.map +1 -1
  50. package/dist/storage/accessors/QuintStoreSparqlDataAccessor.js +28 -6
  51. package/dist/storage/accessors/QuintStoreSparqlDataAccessor.js.map +1 -1
  52. package/dist/storage/accessors/SolidRdfDataAccessor.d.ts +45 -0
  53. package/dist/storage/accessors/SolidRdfDataAccessor.js +277 -0
  54. package/dist/storage/accessors/SolidRdfDataAccessor.js.map +1 -0
  55. package/dist/storage/accessors/SolidRdfDataAccessor.jsonld +161 -0
  56. package/dist/storage/rdf/Rdf3xIndex.d.ts +122 -0
  57. package/dist/storage/rdf/Rdf3xIndex.js +2695 -0
  58. package/dist/storage/rdf/Rdf3xIndex.js.map +1 -0
  59. package/dist/storage/rdf/Rdf3xIndex.jsonld +528 -0
  60. package/dist/storage/rdf/Rdf3xSchema.d.ts +20 -0
  61. package/dist/storage/rdf/Rdf3xSchema.js +65 -0
  62. package/dist/storage/rdf/Rdf3xSchema.js.map +1 -0
  63. package/dist/storage/rdf/RdfLocalQueryEngine.d.ts +10 -4
  64. package/dist/storage/rdf/RdfLocalQueryEngine.js +607 -127
  65. package/dist/storage/rdf/RdfLocalQueryEngine.js.map +1 -1
  66. package/dist/storage/rdf/RdfQuadIndex.d.ts +12 -1
  67. package/dist/storage/rdf/RdfQuadIndex.js +152 -22
  68. package/dist/storage/rdf/RdfQuadIndex.js.map +1 -1
  69. package/dist/storage/rdf/RdfQuadIndex.jsonld +36 -4
  70. package/dist/storage/rdf/RdfSparqlAdapter.d.ts +20 -2
  71. package/dist/storage/rdf/RdfSparqlAdapter.js +364 -40
  72. package/dist/storage/rdf/RdfSparqlAdapter.js.map +1 -1
  73. package/dist/storage/rdf/RdfSparqlAdapter.jsonld +60 -0
  74. package/dist/storage/rdf/RdfTermDictionary.d.ts +8 -0
  75. package/dist/storage/rdf/RdfTermDictionary.js +141 -70
  76. package/dist/storage/rdf/RdfTermDictionary.js.map +1 -1
  77. package/dist/storage/rdf/RdfTermDictionary.jsonld +24 -0
  78. package/dist/storage/rdf/RdfTextIndex.js +10 -3
  79. package/dist/storage/rdf/RdfTextIndex.js.map +1 -1
  80. package/dist/storage/rdf/SolidRdfEngine.d.ts +15 -6
  81. package/dist/storage/rdf/SolidRdfEngine.js +218 -25
  82. package/dist/storage/rdf/SolidRdfEngine.js.map +1 -1
  83. package/dist/storage/rdf/SolidRdfEngine.jsonld +70 -7
  84. package/dist/storage/rdf/SolidRdfSparqlEngine.d.ts +11 -7
  85. package/dist/storage/rdf/SolidRdfSparqlEngine.js +60 -47
  86. package/dist/storage/rdf/SolidRdfSparqlEngine.js.map +1 -1
  87. package/dist/storage/rdf/SolidRdfSparqlEngine.jsonld +9 -5
  88. package/dist/storage/rdf/index.d.ts +2 -2
  89. package/dist/storage/rdf/index.js +3 -3
  90. package/dist/storage/rdf/index.js.map +1 -1
  91. package/dist/storage/rdf/models-benchmark.d.ts +12 -1
  92. package/dist/storage/rdf/models-benchmark.js +549 -32
  93. package/dist/storage/rdf/models-benchmark.js.map +1 -1
  94. package/dist/storage/rdf/types.d.ts +81 -7
  95. package/dist/storage/rdf/types.js.map +1 -1
  96. package/dist/storage/sparql/CompatibilitySparqlEngine.d.ts +36 -0
  97. package/dist/storage/sparql/CompatibilitySparqlEngine.js +96 -0
  98. package/dist/storage/sparql/CompatibilitySparqlEngine.js.map +1 -0
  99. package/dist/storage/sparql/CompatibilitySparqlEngine.jsonld +123 -0
  100. package/dist/storage/sparql/CompatibilitySparqlEngineImpl.d.ts +35 -0
  101. package/dist/storage/sparql/CompatibilitySparqlEngineImpl.js +112 -0
  102. package/dist/storage/sparql/CompatibilitySparqlEngineImpl.js.map +1 -0
  103. package/dist/storage/sparql/SubgraphQueryEngine.d.ts +1 -36
  104. package/dist/storage/sparql/SubgraphQueryEngine.js +2 -115
  105. package/dist/storage/sparql/SubgraphQueryEngine.js.map +1 -1
  106. package/dist/storage/sparql/SubgraphQueryEngine.jsonld +1 -124
  107. package/dist/terminal/AclPermissionService.d.ts +2 -1
  108. package/dist/terminal/AclPermissionService.js +26 -3
  109. package/dist/terminal/AclPermissionService.js.map +1 -1
  110. package/dist/terminal/TerminalSessionManager.js +25 -3
  111. package/dist/terminal/TerminalSessionManager.js.map +1 -1
  112. package/package.json +1 -1
  113. package/dist/storage/rdf/Rdf3xTripleIndex.d.ts +0 -55
  114. package/dist/storage/rdf/Rdf3xTripleIndex.js +0 -1235
  115. package/dist/storage/rdf/Rdf3xTripleIndex.js.map +0 -1
@@ -5,6 +5,7 @@ export interface RdfTermRow {
5
5
  id: number;
6
6
  kind: RdfTermKind;
7
7
  value: string;
8
+ value_head: string;
8
9
  datatype_id: number | null;
9
10
  lang: string | null;
10
11
  hash: string;
@@ -40,6 +41,7 @@ export interface RdfQuadIndexOptions {
40
41
  path: string;
41
42
  debug?: boolean;
42
43
  }
44
+ export type RdfDerivedIndexProfile = 'baseline' | 'rdf3x';
43
45
  export interface RdfShadowAutoBackfillOptions {
44
46
  enabled?: boolean;
45
47
  clear?: boolean;
@@ -76,6 +78,30 @@ export interface RdfIndexStats {
76
78
  literalDatatypeDistribution: RdfLiteralDatatypeDistribution[];
77
79
  cardinalityDistributions: RdfCardinalityDistributions;
78
80
  }
81
+ export interface RdfEngineStorageStats {
82
+ derivedIndexProfile: RdfDerivedIndexProfile;
83
+ facts: RdfIndexStats;
84
+ rdf3x?: {
85
+ stats: Rdf3xIndexStats;
86
+ syncedWithFacts: boolean;
87
+ };
88
+ factsBytes: number;
89
+ derivedBytes: number;
90
+ totalBytes: number;
91
+ derivedToFactsRatio: number;
92
+ totalToFactsRatio: number;
93
+ }
94
+ export interface RdfDerivedIndexRefreshResult {
95
+ derivedIndexProfile: RdfDerivedIndexProfile;
96
+ factsDataVersion: number;
97
+ rdf3x?: {
98
+ refreshed: boolean;
99
+ previousFactsDataVersion: number;
100
+ factsDataVersion: number;
101
+ syncedWithFacts: boolean;
102
+ rebuild?: Rdf3xRebuildResult;
103
+ };
104
+ }
79
105
  export interface RdfIndexSpaceObject {
80
106
  name: string;
81
107
  kind: 'table' | 'index' | 'internal' | 'unknown';
@@ -138,27 +164,50 @@ export type Rdf3xPatternKey = 'graph' | Rdf3xTermKey;
138
164
  export type Rdf3xPermutationName = 'SPO' | 'SOP' | 'PSO' | 'POS' | 'OSP' | 'OPS';
139
165
  export type Rdf3xPairProjectionName = 'SP' | 'SO' | 'PS' | 'PO' | 'OS' | 'OP';
140
166
  export type Rdf3xTermProjectionName = 'S' | 'P' | 'O';
141
- export interface Rdf3xTripleIndexOptions {
167
+ export interface Rdf3xIndexOptions {
142
168
  path: string;
143
169
  debug?: boolean;
144
170
  }
145
171
  export interface Rdf3xGraphPrefixPattern {
146
172
  $startsWith: string;
147
173
  }
148
- export interface Rdf3xNumericObjectRangePattern {
174
+ export interface Rdf3xTermInPattern {
175
+ $in: Term[];
176
+ }
177
+ export interface Rdf3xTermNotInPattern {
178
+ $notIn: Term[];
179
+ }
180
+ export type Rdf3xTermTypePatternValue = 'iri' | 'blank' | 'literal' | 'numeric';
181
+ export interface Rdf3xTermMetadataPattern {
182
+ $termType?: Rdf3xTermTypePatternValue;
183
+ $language?: string;
184
+ $notLanguage?: string;
185
+ $langMatches?: string;
186
+ $datatype?: Term;
187
+ $notDatatype?: Term;
188
+ }
189
+ export interface Rdf3xObjectRangePattern {
149
190
  $gt?: Term | string | number;
150
191
  $gte?: Term | string | number;
151
192
  $lt?: Term | string | number;
152
193
  $lte?: Term | string | number;
153
194
  }
195
+ export type Rdf3xNumericObjectRangePattern = Rdf3xObjectRangePattern;
196
+ export interface Rdf3xObjectTextSearchPattern {
197
+ $contains?: string;
198
+ $endsWith?: string;
199
+ }
200
+ export interface Rdf3xObjectOperatorPattern extends Rdf3xObjectRangePattern, Rdf3xObjectTextSearchPattern, Rdf3xTermMetadataPattern {
201
+ }
154
202
  export interface Rdf3xTriplePattern {
155
- graph?: Term | Rdf3xGraphPrefixPattern;
156
- subject?: Term;
157
- predicate?: Term;
158
- object?: Term | Rdf3xNumericObjectRangePattern;
203
+ graph?: Term | Rdf3xGraphPrefixPattern | Rdf3xTermInPattern | Rdf3xTermNotInPattern | Rdf3xTermMetadataPattern;
204
+ subject?: Term | Rdf3xTermInPattern | Rdf3xTermNotInPattern | Rdf3xTermMetadataPattern;
205
+ predicate?: Term | Rdf3xTermInPattern | Rdf3xTermNotInPattern | Rdf3xTermMetadataPattern;
206
+ object?: Term | Rdf3xObjectOperatorPattern | Rdf3xTermInPattern | Rdf3xTermNotInPattern;
159
207
  }
160
208
  export interface Rdf3xTripleScanOptions {
161
209
  order?: Array<'graph' | 'subject' | 'predicate' | 'object'>;
210
+ orderDirections?: Array<'asc' | 'desc'>;
162
211
  reverse?: boolean;
163
212
  limit?: number;
164
213
  offset?: number;
@@ -175,6 +224,10 @@ export interface Rdf3xTripleScanResult {
175
224
  quads: Quad[];
176
225
  metrics: Rdf3xIndexMetrics;
177
226
  }
227
+ export interface Rdf3xCountResult {
228
+ count: number;
229
+ metrics: Rdf3xIndexMetrics;
230
+ }
178
231
  export interface Rdf3xJoinOptions {
179
232
  orderBy?: RdfQuadJoinOrder[];
180
233
  limit?: number;
@@ -182,6 +235,7 @@ export interface Rdf3xJoinOptions {
182
235
  project?: string[];
183
236
  distinct?: boolean;
184
237
  countMatchedRows?: boolean;
238
+ values?: RdfValuesBindingSource[];
185
239
  }
186
240
  export interface Rdf3xJoinMetrics {
187
241
  engine: 'solid-rdf3x';
@@ -200,6 +254,7 @@ export interface Rdf3xRebuildResult {
200
254
  uniqueTriples: number;
201
255
  memberships: number;
202
256
  projectionRows: number;
257
+ factsDataVersion: number;
203
258
  durationMs: number;
204
259
  }
205
260
  export interface Rdf3xCardinalityEstimate {
@@ -212,6 +267,7 @@ export interface Rdf3xIndexStats {
212
267
  uniqueTriples: number;
213
268
  membershipCount: number;
214
269
  graphCount: number;
270
+ factsDataVersion: number;
215
271
  permutationRows: Record<Rdf3xPermutationName, number>;
216
272
  pairProjectionRows: Record<Rdf3xPairProjectionName, number>;
217
273
  termProjectionRows: Record<Rdf3xTermProjectionName, number>;
@@ -311,6 +367,7 @@ export interface RdfQueryAggregate {
311
367
  as: string;
312
368
  variable?: string;
313
369
  distinct?: boolean;
370
+ distinctVariables?: string[];
314
371
  }
315
372
  export type RdfBindExpression = {
316
373
  type: 'term';
@@ -330,6 +387,14 @@ export type RdfBindExpression = {
330
387
  } | {
331
388
  type: 'upperCase';
332
389
  expression: RdfBindExpression;
390
+ } | {
391
+ type: 'coalesce';
392
+ expressions: RdfBindExpression[];
393
+ } | {
394
+ type: 'if';
395
+ condition: RdfQueryFilter[];
396
+ then: RdfBindExpression;
397
+ else: RdfBindExpression;
333
398
  } | {
334
399
  type: 'substring';
335
400
  expression: RdfBindExpression;
@@ -342,12 +407,20 @@ export type RdfBindExpression = {
342
407
  type: 'iri';
343
408
  expression: RdfBindExpression;
344
409
  base: string;
410
+ } | {
411
+ type: 'strdt';
412
+ lexical: RdfBindExpression;
413
+ datatype: RdfBindExpression;
414
+ } | {
415
+ type: 'strlang';
416
+ lexical: RdfBindExpression;
417
+ language: RdfBindExpression;
345
418
  };
346
419
  export interface RdfQueryBind {
347
420
  variable: string;
348
421
  expression: RdfBindExpression;
349
422
  }
350
- export type RdfQueryFilterOperator = '$eq' | '$ne' | '$gt' | '$gte' | '$lt' | '$lte' | '$in' | '$notIn' | '$startsWith' | '$contains' | '$endsWith' | '$regex' | '$bound' | '$termType' | '$sameTerm' | '$lang' | '$notLang' | '$langMatches' | '$datatype' | '$notDatatype';
423
+ export type RdfQueryFilterOperator = '$eq' | '$ne' | '$gt' | '$gte' | '$lt' | '$lte' | '$in' | '$notIn' | '$startsWith' | '$contains' | '$endsWith' | '$regex' | '$notStartsWith' | '$notContains' | '$notEndsWith' | '$notRegex' | '$bound' | '$termType' | '$notTermType' | '$sameTerm' | '$notSameTerm' | '$lang' | '$notLang' | '$langIn' | '$notLangIn' | '$langMatches' | '$notLangMatches' | '$datatype' | '$notDatatype' | '$datatypeIn' | '$notDatatypeIn';
351
424
  export type RdfQueryFilterValue = Term | string | number | boolean;
352
425
  export interface RdfQueryFilter {
353
426
  variable: string;
@@ -446,6 +519,7 @@ export interface RdfLocalQuery {
446
519
  export interface RdfUnionQueryBranch {
447
520
  patterns: RdfQueryPattern[];
448
521
  values?: RdfValuesBindingSource[];
522
+ unions?: RdfUnionQueryGroup[];
449
523
  optional?: Array<RdfQueryPattern[] | RdfOptionalQueryGroup>;
450
524
  binds?: RdfQueryBind[];
451
525
  filters?: RdfQueryFilter[];
@@ -1 +1 @@
1
- {"version":3,"file":"types.js","sourceRoot":"","sources":["../../../src/storage/rdf/types.ts"],"names":[],"mappings":"","sourcesContent":["import type { Quad, Term } from '@rdfjs/types';\nimport type { QueryOptions, QuintPattern, TermMatch, TermName } from '../quint/types';\n\nexport type RdfTermKind = 'iri' | 'literal' | 'blank' | 'default_graph';\n\nexport interface RdfTermRow {\n id: number;\n kind: RdfTermKind;\n value: string;\n datatype_id: number | null;\n lang: string | null;\n hash: string;\n normalized_text: string | null;\n numeric_value: number | null;\n created_at: string;\n}\n\nexport interface RdfSourceInput {\n source: string;\n workspace: string;\n localPath?: string;\n contentType?: string;\n sourceVersion?: string;\n}\n\nexport interface RdfSourceRow {\n id: number;\n source: string;\n workspace: string;\n local_path: string | null;\n content_type: string | null;\n last_indexed_at: string | null;\n source_version: string | null;\n}\n\nexport interface RdfQuadRow {\n graph_id: number;\n subject_id: number;\n predicate_id: number;\n object_id: number;\n source_file_id: number | null;\n source_line_no: number | null;\n}\n\nexport interface RdfQuadIndexOptions {\n path: string;\n debug?: boolean;\n}\n\nexport interface RdfShadowAutoBackfillOptions {\n enabled?: boolean;\n clear?: boolean;\n batchSize?: number;\n}\n\nexport interface RdfIndexPutOptions {\n source?: RdfSourceInput;\n sourceLineNo?: number;\n}\n\nexport interface RdfIndexMetrics {\n engine: 'solid-rdf';\n indexChoice: string;\n /** Rows matched before LIMIT/OFFSET are applied. */\n matchedRows: number;\n returnedRows: number;\n durationMs: number;\n queryPlan?: string[];\n}\n\nexport interface RdfCardinalityEstimate {\n rows: number;\n source:\n | 'exact-count'\n | 'cached-exact-count'\n | 'exact-distinct-count'\n | 'cached-exact-distinct-count'\n | 'exact-distinct-tuple-count'\n | 'cached-exact-distinct-tuple-count';\n indexChoice: string;\n}\n\nexport interface RdfIndexStats {\n termCount: number;\n quadCount: number;\n sourceCount: number;\n graphCount: number;\n databaseBytes: number;\n tableBytes: number;\n indexBytes: number;\n spaceObjects: RdfIndexSpaceObject[];\n serializedTermTextBytes: number;\n literalDatatypeDistribution: RdfLiteralDatatypeDistribution[];\n cardinalityDistributions: RdfCardinalityDistributions;\n}\n\nexport interface RdfIndexSpaceObject {\n name: string;\n kind: 'table' | 'index' | 'internal' | 'unknown';\n tableName?: string;\n bytes: number;\n pages: number;\n estimated?: boolean;\n}\n\nexport interface RdfLiteralDatatypeDistribution {\n datatype: string;\n termCount: number;\n objectQuadCount: number;\n}\n\nexport interface RdfCardinalityTerm {\n value: string;\n kind: RdfTermKind;\n datatype?: string;\n language?: string;\n}\n\nexport interface RdfGraphCardinality {\n graph: RdfCardinalityTerm;\n quadCount: number;\n distinctSubjects: number;\n distinctPredicates: number;\n distinctObjects: number;\n}\n\nexport interface RdfPredicateCardinality {\n predicate: RdfCardinalityTerm;\n quadCount: number;\n graphCount: number;\n distinctSubjects: number;\n distinctObjects: number;\n}\n\nexport interface RdfPredicateObjectCardinality {\n predicate: RdfCardinalityTerm;\n object: RdfCardinalityTerm;\n quadCount: number;\n graphCount: number;\n distinctSubjects: number;\n}\n\nexport interface RdfSubjectPredicateCardinality {\n subject: RdfCardinalityTerm;\n predicate: RdfCardinalityTerm;\n quadCount: number;\n graphCount: number;\n distinctObjects: number;\n}\n\nexport interface RdfCardinalityDistributions {\n graphs: RdfGraphCardinality[];\n predicates: RdfPredicateCardinality[];\n predicateObjects: RdfPredicateObjectCardinality[];\n subjectPredicates: RdfSubjectPredicateCardinality[];\n}\n\nexport interface RdfQuadIndexScanResult {\n quads: Quad[];\n metrics: RdfIndexMetrics;\n}\n\nexport type Rdf3xTermKey = 'subject' | 'predicate' | 'object';\nexport type Rdf3xPatternKey = 'graph' | Rdf3xTermKey;\nexport type Rdf3xPermutationName = 'SPO' | 'SOP' | 'PSO' | 'POS' | 'OSP' | 'OPS';\nexport type Rdf3xPairProjectionName = 'SP' | 'SO' | 'PS' | 'PO' | 'OS' | 'OP';\nexport type Rdf3xTermProjectionName = 'S' | 'P' | 'O';\n\nexport interface Rdf3xTripleIndexOptions {\n path: string;\n debug?: boolean;\n}\n\nexport interface Rdf3xGraphPrefixPattern {\n $startsWith: string;\n}\n\nexport interface Rdf3xNumericObjectRangePattern {\n $gt?: Term | string | number;\n $gte?: Term | string | number;\n $lt?: Term | string | number;\n $lte?: Term | string | number;\n}\n\nexport interface Rdf3xTriplePattern {\n graph?: Term | Rdf3xGraphPrefixPattern;\n subject?: Term;\n predicate?: Term;\n object?: Term | Rdf3xNumericObjectRangePattern;\n}\n\nexport interface Rdf3xTripleScanOptions {\n order?: Array<'graph' | 'subject' | 'predicate' | 'object'>;\n reverse?: boolean;\n limit?: number;\n offset?: number;\n}\n\nexport interface Rdf3xIndexMetrics {\n engine: 'solid-rdf3x';\n indexChoice: Rdf3xPermutationName | 'source-membership' | 'none';\n matchedRows: number;\n returnedRows: number;\n durationMs: number;\n queryPlan?: string[];\n}\n\nexport interface Rdf3xTripleScanResult {\n quads: Quad[];\n metrics: Rdf3xIndexMetrics;\n}\n\nexport interface Rdf3xJoinOptions {\n orderBy?: RdfQuadJoinOrder[];\n limit?: number;\n offset?: number;\n project?: string[];\n distinct?: boolean;\n countMatchedRows?: boolean;\n}\n\nexport interface Rdf3xJoinMetrics {\n engine: 'solid-rdf3x';\n indexChoice: string;\n matchedRows: number;\n returnedRows: number;\n durationMs: number;\n queryPlan?: string[];\n}\n\nexport interface Rdf3xJoinScanResult {\n bindings: RdfBindingRow[];\n metrics: Rdf3xJoinMetrics;\n}\n\nexport interface Rdf3xRebuildResult {\n scannedQuads: number;\n uniqueTriples: number;\n memberships: number;\n projectionRows: number;\n durationMs: number;\n}\n\nexport interface Rdf3xCardinalityEstimate {\n uniqueTriples: number;\n matchingQuads: number;\n source: 'projection-stat' | 'term-stat' | 'exact-triple' | 'exact-membership' | 'full-count';\n indexChoice: Rdf3xPermutationName | 'source-membership' | 'none';\n}\n\nexport interface Rdf3xIndexStats {\n uniqueTriples: number;\n membershipCount: number;\n graphCount: number;\n permutationRows: Record<Rdf3xPermutationName, number>;\n pairProjectionRows: Record<Rdf3xPairProjectionName, number>;\n termProjectionRows: Record<Rdf3xTermProjectionName, number>;\n databaseBytes: number;\n tableBytes: number;\n indexBytes: number;\n spaceObjects: RdfIndexSpaceObject[];\n}\n\nexport interface Rdf3xShadowBindingDiff {\n missingFromRdf3x: string[];\n extraInRdf3x: string[];\n}\n\nexport interface Rdf3xShadowQuadDiff {\n missingFromRdf3x: string[];\n extraInRdf3x: string[];\n}\n\nexport interface Rdf3xShadowScanResult {\n matched: boolean;\n orderedMatch: boolean;\n primary: Quad[];\n rdf3x: Quad[];\n diff: Rdf3xShadowQuadDiff;\n primaryMetrics: RdfIndexMetrics;\n rdf3xMetrics: Rdf3xIndexMetrics;\n rebuild: Rdf3xRebuildResult;\n}\n\nexport interface Rdf3xShadowJoinResult {\n matched: boolean;\n orderedMatch: boolean;\n primary: RdfBindingRow[];\n rdf3x: RdfBindingRow[];\n diff: Rdf3xShadowBindingDiff;\n primaryMetrics: RdfIndexMetrics;\n rdf3xMetrics: Rdf3xJoinMetrics;\n rebuild: Rdf3xRebuildResult;\n}\n\nexport type RdfQuadTupleConstraint = Partial<Record<RdfQueryPatternKey, Term>>;\n\nexport interface RdfQuadTupleConstraintSource {\n columns: RdfQueryPatternKey[];\n rows: RdfQuadTupleConstraint[];\n}\n\nexport interface RdfQuadJoinPattern {\n pattern: QuintPattern;\n variables: Partial<Record<RdfQueryPatternKey, string>>;\n}\n\nexport interface RdfQuadJoinOrder {\n variable: string;\n direction?: 'asc' | 'desc';\n}\n\nexport interface RdfQuadScanOptions extends QueryOptions {\n orderDirections?: Array<'asc' | 'desc'>;\n}\n\nexport interface RdfQuadJoinOptions {\n orderBy?: RdfQuadJoinOrder[];\n limit?: number;\n offset?: number;\n project?: string[];\n distinct?: boolean;\n countMatchedRows?: boolean;\n}\n\nexport interface RdfQuadJoinAggregateOptions {\n aggregates: RdfQueryAggregate[];\n}\n\nexport type RdfQuadJoinCountOptions = RdfQuadJoinAggregateOptions;\n\nexport interface RdfQuadJoinGroupAggregateHaving {\n aggregate: string;\n operator: '$eq' | '$ne' | '$gt' | '$gte' | '$lt' | '$lte';\n value: number;\n}\n\nexport type RdfQuadJoinGroupCountHaving = RdfQuadJoinGroupAggregateHaving;\n\nexport interface RdfPatternQuery {\n pattern: QuintPattern;\n options?: QueryOptions;\n}\n\nexport interface RdfQueryVariable {\n variable: string;\n}\n\nexport type RdfQueryTermPattern = TermMatch | RdfQueryVariable;\n\nexport interface RdfQueryPattern {\n graph?: RdfQueryTermPattern;\n subject?: RdfQueryTermPattern;\n predicate?: RdfQueryTermPattern;\n object?: RdfQueryTermPattern;\n}\n\nexport interface RdfConstructTemplate {\n subject: RdfQueryTermPattern;\n predicate: RdfQueryTermPattern;\n object: RdfQueryTermPattern;\n}\n\nexport interface RdfQueryOrder {\n variable: string;\n direction?: 'asc' | 'desc';\n}\n\nexport type RdfQueryAggregateType = 'count' | 'sum' | 'avg' | 'min' | 'max';\n\nexport interface RdfQueryAggregate {\n type: RdfQueryAggregateType;\n as: string;\n variable?: string;\n distinct?: boolean;\n}\n\nexport type RdfBindExpression =\n | { type: 'term'; term: Term }\n | { type: 'variable'; variable: string }\n | { type: 'stringValue'; variable: string }\n | { type: 'stringLength'; variable: string }\n | { type: 'lowerCase'; expression: RdfBindExpression }\n | { type: 'upperCase'; expression: RdfBindExpression }\n | {\n type: 'substring';\n expression: RdfBindExpression;\n start: RdfBindExpression;\n length?: RdfBindExpression;\n }\n | { type: 'concat'; expressions: RdfBindExpression[] }\n | { type: 'iri'; expression: RdfBindExpression; base: string };\n\nexport interface RdfQueryBind {\n variable: string;\n expression: RdfBindExpression;\n}\n\nexport type RdfQueryFilterOperator =\n | '$eq'\n | '$ne'\n | '$gt'\n | '$gte'\n | '$lt'\n | '$lte'\n | '$in'\n | '$notIn'\n | '$startsWith'\n | '$contains'\n | '$endsWith'\n | '$regex'\n | '$bound'\n | '$termType'\n | '$sameTerm'\n | '$lang'\n | '$notLang'\n | '$langMatches'\n | '$datatype'\n | '$notDatatype';\n\nexport type RdfQueryFilterValue = Term | string | number | boolean;\n\nexport interface RdfQueryFilter {\n variable: string;\n operator: RdfQueryFilterOperator;\n operand?: 'stringLength' | 'stringValue' | 'lowerStringValue' | 'upperStringValue';\n value?: RdfQueryFilterValue;\n values?: RdfQueryFilterValue[];\n variable2?: string;\n flags?: string;\n source?: 'filter' | 'values';\n}\n\nexport interface RdfValuesBindingSource {\n variables: string[];\n rows: RdfBindingRow[];\n}\n\nexport interface RdfSearchScope {\n workspace?: string;\n sourcePrefix?: string;\n}\n\nexport interface RdfTextSearchPattern {\n query: string;\n scope?: RdfSearchScope;\n limit?: number;\n offset?: number;\n orderBy?: RdfTextSearchOrder[];\n source?: string;\n chunk?: string;\n content?: string;\n heading?: string;\n score?: string;\n workspace?: string;\n localPath?: string;\n contentType?: string;\n ordinal?: string;\n level?: string;\n startOffset?: string;\n endOffset?: string;\n}\n\nexport type RdfVectorDistanceMetric = 'cosine' | 'dot' | 'euclidean';\n\nexport type RdfSearchOrderDirection = 'asc' | 'desc';\nexport type RdfTextSearchOrderField = 'score' | 'source' | 'localPath' | 'ordinal' | 'startOffset' | 'endOffset';\nexport type RdfVectorSearchOrderField = RdfTextSearchOrderField | 'distance';\n\nexport interface RdfTextSearchOrder {\n field: RdfTextSearchOrderField;\n direction?: RdfSearchOrderDirection;\n}\n\nexport interface RdfVectorSearchOrder {\n field: RdfVectorSearchOrderField;\n direction?: RdfSearchOrderDirection;\n}\n\nexport interface RdfVectorSearchPattern {\n embedding: number[];\n metric?: RdfVectorDistanceMetric;\n vectorModel?: string;\n scope?: RdfSearchScope;\n limit?: number;\n offset?: number;\n threshold?: number;\n orderBy?: RdfVectorSearchOrder[];\n source?: string;\n chunk?: string;\n content?: string;\n heading?: string;\n score?: string;\n distance?: string;\n workspace?: string;\n localPath?: string;\n contentType?: string;\n ordinal?: string;\n level?: string;\n startOffset?: string;\n endOffset?: string;\n model?: string;\n}\n\nexport interface RdfLocalQuery {\n patterns: RdfQueryPattern[];\n values?: RdfValuesBindingSource[];\n textSearch?: RdfTextSearchPattern[];\n vectorSearch?: RdfVectorSearchPattern[];\n unions?: RdfUnionQueryGroup[];\n minus?: RdfMinusQueryGroup[];\n exists?: RdfExistsQueryGroup[];\n optional?: Array<RdfQueryPattern[] | RdfOptionalQueryGroup>;\n binds?: RdfQueryBind[];\n filters?: RdfQueryFilter[];\n having?: RdfQueryFilter[];\n select?: string[];\n distinct?: boolean;\n groupBy?: string[];\n aggregates?: RdfQueryAggregate[];\n aggregate?: RdfQueryAggregate;\n orderBy?: RdfQueryOrder[];\n limit?: number;\n offset?: number;\n}\n\nexport interface RdfUnionQueryBranch {\n patterns: RdfQueryPattern[];\n values?: RdfValuesBindingSource[];\n optional?: Array<RdfQueryPattern[] | RdfOptionalQueryGroup>;\n binds?: RdfQueryBind[];\n filters?: RdfQueryFilter[];\n}\n\nexport interface RdfUnionQueryGroup {\n branches: RdfUnionQueryBranch[];\n}\n\nexport interface RdfMinusQueryGroup {\n patterns: RdfQueryPattern[];\n values?: RdfValuesBindingSource[];\n unions?: RdfUnionQueryGroup[];\n optional?: Array<RdfQueryPattern[] | RdfOptionalQueryGroup>;\n binds?: RdfQueryBind[];\n filters?: RdfQueryFilter[];\n}\n\nexport interface RdfExistsQueryGroup {\n patterns: RdfQueryPattern[];\n values?: RdfValuesBindingSource[];\n unions?: RdfUnionQueryGroup[];\n optional?: Array<RdfQueryPattern[] | RdfOptionalQueryGroup>;\n binds?: RdfQueryBind[];\n filters?: RdfQueryFilter[];\n}\n\nexport interface RdfOptionalQueryGroup {\n patterns: RdfQueryPattern[];\n values?: RdfValuesBindingSource[];\n unions?: RdfUnionQueryGroup[];\n optional?: Array<RdfQueryPattern[] | RdfOptionalQueryGroup>;\n minus?: RdfMinusQueryGroup[];\n exists?: RdfExistsQueryGroup[];\n binds?: RdfQueryBind[];\n filters?: RdfQueryFilter[];\n}\n\nexport type RdfBindingRow = Record<string, Term>;\n\nexport interface RdfQuadJoinScanResult {\n bindings: RdfBindingRow[];\n metrics: RdfIndexMetrics;\n}\n\nexport interface RdfQuadJoinGroupAggregateOptions {\n groupBy: string[];\n aggregates: RdfQueryAggregate[];\n having?: RdfQuadJoinGroupAggregateHaving[];\n orderBy?: RdfQuadJoinOrder[];\n limit?: number;\n offset?: number;\n}\n\nexport type RdfQuadJoinGroupCountOptions = RdfQuadJoinGroupAggregateOptions;\n\nexport interface RdfLocalQueryMetrics {\n engine: 'solid-rdf';\n plan: string[];\n scannedRows: number;\n joinedRows: number;\n returnedRows: number;\n durationMs: number;\n indexChoices: string[];\n cardinalityEstimates?: number;\n distinctCardinalityEstimates?: number;\n searchCardinalityEstimates?: number;\n filtersApplied: number;\n filtersPushedDown: number;\n}\n\nexport interface RdfLocalQueryResult {\n bindings: RdfBindingRow[];\n count?: number;\n metrics: RdfLocalQueryMetrics;\n}\n\nexport type RdfQueryPatternKey = TermName;\n\nexport interface RdfShadowDiff {\n missingFromPrimary: string[];\n extraInPrimary: string[];\n}\n\nexport interface RdfShadowBackfillOptions {\n clear?: boolean;\n batchSize?: number;\n}\n\nexport interface RdfShadowBackfillResult {\n scannedRows: number;\n indexedRows: number;\n batchCount: number;\n durationMs: number;\n}\n\nexport interface RdfShadowScanResult {\n matched: boolean;\n orderedMatch: boolean;\n primary: Quad[];\n compatibility: Quad[];\n diff: RdfShadowDiff;\n metrics: RdfIndexMetrics;\n}\n\nexport interface RdfTextIndexOptions {\n path: string;\n}\n\nexport interface RdfTextSourceInput {\n source: string;\n workspace: string;\n localPath?: string;\n contentType?: string;\n sourceVersion?: string;\n sourceHash?: string;\n}\n\nexport interface RdfTextChunkInput {\n chunkKey: string;\n ordinal: number;\n level: number;\n heading?: string;\n path?: string[];\n content: string;\n startOffset: number;\n endOffset: number;\n}\n\nexport interface RdfTextChunkRow {\n id: number;\n source_id: number;\n source: string;\n workspace: string;\n local_path: string | null;\n content_type: string | null;\n source_version: string | null;\n source_hash: string | null;\n chunk_key: string;\n ordinal: number;\n level: number;\n heading: string | null;\n path: string | null;\n content: string;\n start_offset: number;\n end_offset: number;\n normalized_text: string;\n token_count: number;\n updated_at: string;\n}\n\nexport interface RdfTextSearchOptions {\n query: string;\n source?: string;\n workspace?: string;\n sourcePrefix?: string;\n limit?: number;\n offset?: number;\n orderBy?: RdfTextSearchOrder[];\n}\n\nexport interface RdfTextSearchResult {\n source: string;\n workspace: string;\n localPath?: string;\n contentType?: string;\n sourceVersion?: string;\n sourceHash?: string;\n chunkKey: string;\n ordinal: number;\n level: number;\n heading?: string;\n path: string[];\n content: string;\n startOffset: number;\n endOffset: number;\n score: number;\n}\n\nexport interface RdfSearchCardinalityEstimate {\n rows: number;\n source: 'text-normalized-scan' | 'text-term-posting' | 'vector-candidate-count' | 'vector-component-score';\n indexChoice: string;\n}\n\nexport interface RdfTextIndexStats {\n sourceCount: number;\n chunkCount: number;\n databaseBytes: number;\n termDocumentFrequency: RdfTextTermDocumentFrequency[];\n}\n\nexport interface RdfTextTermDocumentFrequency {\n term: string;\n sourceCount: number;\n chunkCount: number;\n totalOccurrences: number;\n}\n\nexport interface RdfVectorIndexOptions {\n path: string;\n defaultMetric?: RdfVectorDistanceMetric;\n}\n\nexport interface RdfVectorSourceInput {\n source: string;\n workspace: string;\n localPath?: string;\n contentType?: string;\n sourceVersion?: string;\n sourceHash?: string;\n}\n\nexport interface RdfVectorChunkInput {\n chunkKey: string;\n ordinal: number;\n level: number;\n embedding: number[];\n model?: string;\n heading?: string;\n path?: string[];\n content: string;\n startOffset: number;\n endOffset: number;\n}\n\nexport interface RdfVectorChunkRow {\n id: number;\n source_id: number;\n source: string;\n workspace: string;\n local_path: string | null;\n content_type: string | null;\n source_version: string | null;\n source_hash: string | null;\n chunk_key: string;\n ordinal: number;\n level: number;\n heading: string | null;\n path: string | null;\n content: string;\n start_offset: number;\n end_offset: number;\n embedding_json: string;\n dimensions: number;\n magnitude: number;\n model: string;\n updated_at: string;\n}\n\nexport interface RdfVectorSearchOptions {\n embedding: number[];\n metric?: RdfVectorDistanceMetric;\n model?: string;\n source?: string;\n workspace?: string;\n sourcePrefix?: string;\n limit?: number;\n offset?: number;\n threshold?: number;\n orderBy?: RdfVectorSearchOrder[];\n}\n\nexport interface RdfVectorSearchResult {\n source: string;\n workspace: string;\n localPath?: string;\n contentType?: string;\n sourceVersion?: string;\n sourceHash?: string;\n chunkKey: string;\n ordinal: number;\n level: number;\n heading?: string;\n path: string[];\n content: string;\n startOffset: number;\n endOffset: number;\n embedding: number[];\n model?: string;\n score: number;\n distance: number;\n}\n\nexport interface RdfVectorIndexStats {\n sourceCount: number;\n chunkCount: number;\n componentCount: number;\n databaseBytes: number;\n modelDistribution: RdfVectorModelDistribution[];\n}\n\nexport interface RdfVectorModelDistribution {\n model: string;\n dimensions: number;\n sourceCount: number;\n chunkCount: number;\n minMagnitude: number;\n maxMagnitude: number;\n averageMagnitude: number;\n}\n\nexport interface RdfTermSelection {\n sql: string;\n params: unknown[];\n indexHint: string;\n}\n\nexport interface RdfTermLookup {\n id: number;\n term: Term;\n}\n"]}
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../../../src/storage/rdf/types.ts"],"names":[],"mappings":"","sourcesContent":["import type { Quad, Term } from '@rdfjs/types';\nimport type { QueryOptions, QuintPattern, TermMatch, TermName } from '../quint/types';\n\nexport type RdfTermKind = 'iri' | 'literal' | 'blank' | 'default_graph';\n\nexport interface RdfTermRow {\n id: number;\n kind: RdfTermKind;\n value: string;\n value_head: string;\n datatype_id: number | null;\n lang: string | null;\n hash: string;\n normalized_text: string | null;\n numeric_value: number | null;\n created_at: string;\n}\n\nexport interface RdfSourceInput {\n source: string;\n workspace: string;\n localPath?: string;\n contentType?: string;\n sourceVersion?: string;\n}\n\nexport interface RdfSourceRow {\n id: number;\n source: string;\n workspace: string;\n local_path: string | null;\n content_type: string | null;\n last_indexed_at: string | null;\n source_version: string | null;\n}\n\nexport interface RdfQuadRow {\n graph_id: number;\n subject_id: number;\n predicate_id: number;\n object_id: number;\n source_file_id: number | null;\n source_line_no: number | null;\n}\n\nexport interface RdfQuadIndexOptions {\n path: string;\n debug?: boolean;\n}\n\nexport type RdfDerivedIndexProfile = 'baseline' | 'rdf3x';\n\nexport interface RdfShadowAutoBackfillOptions {\n enabled?: boolean;\n clear?: boolean;\n batchSize?: number;\n}\n\nexport interface RdfIndexPutOptions {\n source?: RdfSourceInput;\n sourceLineNo?: number;\n}\n\nexport interface RdfIndexMetrics {\n engine: 'solid-rdf';\n indexChoice: string;\n /** Rows matched before LIMIT/OFFSET are applied. */\n matchedRows: number;\n returnedRows: number;\n durationMs: number;\n queryPlan?: string[];\n}\n\nexport interface RdfCardinalityEstimate {\n rows: number;\n source:\n | 'exact-count'\n | 'cached-exact-count'\n | 'exact-distinct-count'\n | 'cached-exact-distinct-count'\n | 'exact-distinct-tuple-count'\n | 'cached-exact-distinct-tuple-count';\n indexChoice: string;\n}\n\nexport interface RdfIndexStats {\n termCount: number;\n quadCount: number;\n sourceCount: number;\n graphCount: number;\n databaseBytes: number;\n tableBytes: number;\n indexBytes: number;\n spaceObjects: RdfIndexSpaceObject[];\n serializedTermTextBytes: number;\n literalDatatypeDistribution: RdfLiteralDatatypeDistribution[];\n cardinalityDistributions: RdfCardinalityDistributions;\n}\n\nexport interface RdfEngineStorageStats {\n derivedIndexProfile: RdfDerivedIndexProfile;\n facts: RdfIndexStats;\n rdf3x?: {\n stats: Rdf3xIndexStats;\n syncedWithFacts: boolean;\n };\n factsBytes: number;\n derivedBytes: number;\n totalBytes: number;\n derivedToFactsRatio: number;\n totalToFactsRatio: number;\n}\n\nexport interface RdfDerivedIndexRefreshResult {\n derivedIndexProfile: RdfDerivedIndexProfile;\n factsDataVersion: number;\n rdf3x?: {\n refreshed: boolean;\n previousFactsDataVersion: number;\n factsDataVersion: number;\n syncedWithFacts: boolean;\n rebuild?: Rdf3xRebuildResult;\n };\n}\n\nexport interface RdfIndexSpaceObject {\n name: string;\n kind: 'table' | 'index' | 'internal' | 'unknown';\n tableName?: string;\n bytes: number;\n pages: number;\n estimated?: boolean;\n}\n\nexport interface RdfLiteralDatatypeDistribution {\n datatype: string;\n termCount: number;\n objectQuadCount: number;\n}\n\nexport interface RdfCardinalityTerm {\n value: string;\n kind: RdfTermKind;\n datatype?: string;\n language?: string;\n}\n\nexport interface RdfGraphCardinality {\n graph: RdfCardinalityTerm;\n quadCount: number;\n distinctSubjects: number;\n distinctPredicates: number;\n distinctObjects: number;\n}\n\nexport interface RdfPredicateCardinality {\n predicate: RdfCardinalityTerm;\n quadCount: number;\n graphCount: number;\n distinctSubjects: number;\n distinctObjects: number;\n}\n\nexport interface RdfPredicateObjectCardinality {\n predicate: RdfCardinalityTerm;\n object: RdfCardinalityTerm;\n quadCount: number;\n graphCount: number;\n distinctSubjects: number;\n}\n\nexport interface RdfSubjectPredicateCardinality {\n subject: RdfCardinalityTerm;\n predicate: RdfCardinalityTerm;\n quadCount: number;\n graphCount: number;\n distinctObjects: number;\n}\n\nexport interface RdfCardinalityDistributions {\n graphs: RdfGraphCardinality[];\n predicates: RdfPredicateCardinality[];\n predicateObjects: RdfPredicateObjectCardinality[];\n subjectPredicates: RdfSubjectPredicateCardinality[];\n}\n\nexport interface RdfQuadIndexScanResult {\n quads: Quad[];\n metrics: RdfIndexMetrics;\n}\n\nexport type Rdf3xTermKey = 'subject' | 'predicate' | 'object';\nexport type Rdf3xPatternKey = 'graph' | Rdf3xTermKey;\nexport type Rdf3xPermutationName = 'SPO' | 'SOP' | 'PSO' | 'POS' | 'OSP' | 'OPS';\nexport type Rdf3xPairProjectionName = 'SP' | 'SO' | 'PS' | 'PO' | 'OS' | 'OP';\nexport type Rdf3xTermProjectionName = 'S' | 'P' | 'O';\n\nexport interface Rdf3xIndexOptions {\n path: string;\n debug?: boolean;\n}\n\nexport interface Rdf3xGraphPrefixPattern {\n $startsWith: string;\n}\n\nexport interface Rdf3xTermInPattern {\n $in: Term[];\n}\n\nexport interface Rdf3xTermNotInPattern {\n $notIn: Term[];\n}\n\nexport type Rdf3xTermTypePatternValue = 'iri' | 'blank' | 'literal' | 'numeric';\n\nexport interface Rdf3xTermMetadataPattern {\n $termType?: Rdf3xTermTypePatternValue;\n $language?: string;\n $notLanguage?: string;\n $langMatches?: string;\n $datatype?: Term;\n $notDatatype?: Term;\n}\n\nexport interface Rdf3xObjectRangePattern {\n $gt?: Term | string | number;\n $gte?: Term | string | number;\n $lt?: Term | string | number;\n $lte?: Term | string | number;\n}\n\nexport type Rdf3xNumericObjectRangePattern = Rdf3xObjectRangePattern;\n\nexport interface Rdf3xObjectTextSearchPattern {\n $contains?: string;\n $endsWith?: string;\n}\n\nexport interface Rdf3xObjectOperatorPattern extends Rdf3xObjectRangePattern, Rdf3xObjectTextSearchPattern, Rdf3xTermMetadataPattern {}\n\nexport interface Rdf3xTriplePattern {\n graph?: Term | Rdf3xGraphPrefixPattern | Rdf3xTermInPattern | Rdf3xTermNotInPattern | Rdf3xTermMetadataPattern;\n subject?: Term | Rdf3xTermInPattern | Rdf3xTermNotInPattern | Rdf3xTermMetadataPattern;\n predicate?: Term | Rdf3xTermInPattern | Rdf3xTermNotInPattern | Rdf3xTermMetadataPattern;\n object?: Term | Rdf3xObjectOperatorPattern | Rdf3xTermInPattern | Rdf3xTermNotInPattern;\n}\n\nexport interface Rdf3xTripleScanOptions {\n order?: Array<'graph' | 'subject' | 'predicate' | 'object'>;\n orderDirections?: Array<'asc' | 'desc'>;\n reverse?: boolean;\n limit?: number;\n offset?: number;\n}\n\nexport interface Rdf3xIndexMetrics {\n engine: 'solid-rdf3x';\n indexChoice: Rdf3xPermutationName | 'source-membership' | 'none';\n matchedRows: number;\n returnedRows: number;\n durationMs: number;\n queryPlan?: string[];\n}\n\nexport interface Rdf3xTripleScanResult {\n quads: Quad[];\n metrics: Rdf3xIndexMetrics;\n}\n\nexport interface Rdf3xCountResult {\n count: number;\n metrics: Rdf3xIndexMetrics;\n}\n\nexport interface Rdf3xJoinOptions {\n orderBy?: RdfQuadJoinOrder[];\n limit?: number;\n offset?: number;\n project?: string[];\n distinct?: boolean;\n countMatchedRows?: boolean;\n values?: RdfValuesBindingSource[];\n}\n\nexport interface Rdf3xJoinMetrics {\n engine: 'solid-rdf3x';\n indexChoice: string;\n matchedRows: number;\n returnedRows: number;\n durationMs: number;\n queryPlan?: string[];\n}\n\nexport interface Rdf3xJoinScanResult {\n bindings: RdfBindingRow[];\n metrics: Rdf3xJoinMetrics;\n}\n\nexport interface Rdf3xRebuildResult {\n scannedQuads: number;\n uniqueTriples: number;\n memberships: number;\n projectionRows: number;\n factsDataVersion: number;\n durationMs: number;\n}\n\nexport interface Rdf3xCardinalityEstimate {\n uniqueTriples: number;\n matchingQuads: number;\n source: 'projection-stat' | 'term-stat' | 'exact-triple' | 'exact-membership' | 'full-count';\n indexChoice: Rdf3xPermutationName | 'source-membership' | 'none';\n}\n\nexport interface Rdf3xIndexStats {\n uniqueTriples: number;\n membershipCount: number;\n graphCount: number;\n factsDataVersion: number;\n permutationRows: Record<Rdf3xPermutationName, number>;\n pairProjectionRows: Record<Rdf3xPairProjectionName, number>;\n termProjectionRows: Record<Rdf3xTermProjectionName, number>;\n databaseBytes: number;\n tableBytes: number;\n indexBytes: number;\n spaceObjects: RdfIndexSpaceObject[];\n}\n\nexport interface Rdf3xShadowBindingDiff {\n missingFromRdf3x: string[];\n extraInRdf3x: string[];\n}\n\nexport interface Rdf3xShadowQuadDiff {\n missingFromRdf3x: string[];\n extraInRdf3x: string[];\n}\n\nexport interface Rdf3xShadowScanResult {\n matched: boolean;\n orderedMatch: boolean;\n primary: Quad[];\n rdf3x: Quad[];\n diff: Rdf3xShadowQuadDiff;\n primaryMetrics: RdfIndexMetrics;\n rdf3xMetrics: Rdf3xIndexMetrics;\n rebuild: Rdf3xRebuildResult;\n}\n\nexport interface Rdf3xShadowJoinResult {\n matched: boolean;\n orderedMatch: boolean;\n primary: RdfBindingRow[];\n rdf3x: RdfBindingRow[];\n diff: Rdf3xShadowBindingDiff;\n primaryMetrics: RdfIndexMetrics;\n rdf3xMetrics: Rdf3xJoinMetrics;\n rebuild: Rdf3xRebuildResult;\n}\n\nexport type RdfQuadTupleConstraint = Partial<Record<RdfQueryPatternKey, Term>>;\n\nexport interface RdfQuadTupleConstraintSource {\n columns: RdfQueryPatternKey[];\n rows: RdfQuadTupleConstraint[];\n}\n\nexport interface RdfQuadJoinPattern {\n pattern: QuintPattern;\n variables: Partial<Record<RdfQueryPatternKey, string>>;\n}\n\nexport interface RdfQuadJoinOrder {\n variable: string;\n direction?: 'asc' | 'desc';\n}\n\nexport interface RdfQuadScanOptions extends QueryOptions {\n orderDirections?: Array<'asc' | 'desc'>;\n}\n\nexport interface RdfQuadJoinOptions {\n orderBy?: RdfQuadJoinOrder[];\n limit?: number;\n offset?: number;\n project?: string[];\n distinct?: boolean;\n countMatchedRows?: boolean;\n}\n\nexport interface RdfQuadJoinAggregateOptions {\n aggregates: RdfQueryAggregate[];\n}\n\nexport type RdfQuadJoinCountOptions = RdfQuadJoinAggregateOptions;\n\nexport interface RdfQuadJoinGroupAggregateHaving {\n aggregate: string;\n operator: '$eq' | '$ne' | '$gt' | '$gte' | '$lt' | '$lte';\n value: number;\n}\n\nexport type RdfQuadJoinGroupCountHaving = RdfQuadJoinGroupAggregateHaving;\n\nexport interface RdfPatternQuery {\n pattern: QuintPattern;\n options?: QueryOptions;\n}\n\nexport interface RdfQueryVariable {\n variable: string;\n}\n\nexport type RdfQueryTermPattern = TermMatch | RdfQueryVariable;\n\nexport interface RdfQueryPattern {\n graph?: RdfQueryTermPattern;\n subject?: RdfQueryTermPattern;\n predicate?: RdfQueryTermPattern;\n object?: RdfQueryTermPattern;\n}\n\nexport interface RdfConstructTemplate {\n subject: RdfQueryTermPattern;\n predicate: RdfQueryTermPattern;\n object: RdfQueryTermPattern;\n}\n\nexport interface RdfQueryOrder {\n variable: string;\n direction?: 'asc' | 'desc';\n}\n\nexport type RdfQueryAggregateType = 'count' | 'sum' | 'avg' | 'min' | 'max';\n\nexport interface RdfQueryAggregate {\n type: RdfQueryAggregateType;\n as: string;\n variable?: string;\n distinct?: boolean;\n distinctVariables?: string[];\n}\n\nexport type RdfBindExpression =\n | { type: 'term'; term: Term }\n | { type: 'variable'; variable: string }\n | { type: 'stringValue'; variable: string }\n | { type: 'stringLength'; variable: string }\n | { type: 'lowerCase'; expression: RdfBindExpression }\n | { type: 'upperCase'; expression: RdfBindExpression }\n | { type: 'coalesce'; expressions: RdfBindExpression[] }\n | { type: 'if'; condition: RdfQueryFilter[]; then: RdfBindExpression; else: RdfBindExpression }\n | {\n type: 'substring';\n expression: RdfBindExpression;\n start: RdfBindExpression;\n length?: RdfBindExpression;\n }\n | { type: 'concat'; expressions: RdfBindExpression[] }\n | { type: 'iri'; expression: RdfBindExpression; base: string }\n | { type: 'strdt'; lexical: RdfBindExpression; datatype: RdfBindExpression }\n | { type: 'strlang'; lexical: RdfBindExpression; language: RdfBindExpression };\n\nexport interface RdfQueryBind {\n variable: string;\n expression: RdfBindExpression;\n}\n\nexport type RdfQueryFilterOperator =\n | '$eq'\n | '$ne'\n | '$gt'\n | '$gte'\n | '$lt'\n | '$lte'\n | '$in'\n | '$notIn'\n | '$startsWith'\n | '$contains'\n | '$endsWith'\n | '$regex'\n | '$notStartsWith'\n | '$notContains'\n | '$notEndsWith'\n | '$notRegex'\n | '$bound'\n | '$termType'\n | '$notTermType'\n | '$sameTerm'\n | '$notSameTerm'\n | '$lang'\n | '$notLang'\n | '$langIn'\n | '$notLangIn'\n | '$langMatches'\n | '$notLangMatches'\n | '$datatype'\n | '$notDatatype'\n | '$datatypeIn'\n | '$notDatatypeIn';\n\nexport type RdfQueryFilterValue = Term | string | number | boolean;\n\nexport interface RdfQueryFilter {\n variable: string;\n operator: RdfQueryFilterOperator;\n operand?: 'stringLength' | 'stringValue' | 'lowerStringValue' | 'upperStringValue';\n value?: RdfQueryFilterValue;\n values?: RdfQueryFilterValue[];\n variable2?: string;\n flags?: string;\n source?: 'filter' | 'values';\n}\n\nexport interface RdfValuesBindingSource {\n variables: string[];\n rows: RdfBindingRow[];\n}\n\nexport interface RdfSearchScope {\n workspace?: string;\n sourcePrefix?: string;\n}\n\nexport interface RdfTextSearchPattern {\n query: string;\n scope?: RdfSearchScope;\n limit?: number;\n offset?: number;\n orderBy?: RdfTextSearchOrder[];\n source?: string;\n chunk?: string;\n content?: string;\n heading?: string;\n score?: string;\n workspace?: string;\n localPath?: string;\n contentType?: string;\n ordinal?: string;\n level?: string;\n startOffset?: string;\n endOffset?: string;\n}\n\nexport type RdfVectorDistanceMetric = 'cosine' | 'dot' | 'euclidean';\n\nexport type RdfSearchOrderDirection = 'asc' | 'desc';\nexport type RdfTextSearchOrderField = 'score' | 'source' | 'localPath' | 'ordinal' | 'startOffset' | 'endOffset';\nexport type RdfVectorSearchOrderField = RdfTextSearchOrderField | 'distance';\n\nexport interface RdfTextSearchOrder {\n field: RdfTextSearchOrderField;\n direction?: RdfSearchOrderDirection;\n}\n\nexport interface RdfVectorSearchOrder {\n field: RdfVectorSearchOrderField;\n direction?: RdfSearchOrderDirection;\n}\n\nexport interface RdfVectorSearchPattern {\n embedding: number[];\n metric?: RdfVectorDistanceMetric;\n vectorModel?: string;\n scope?: RdfSearchScope;\n limit?: number;\n offset?: number;\n threshold?: number;\n orderBy?: RdfVectorSearchOrder[];\n source?: string;\n chunk?: string;\n content?: string;\n heading?: string;\n score?: string;\n distance?: string;\n workspace?: string;\n localPath?: string;\n contentType?: string;\n ordinal?: string;\n level?: string;\n startOffset?: string;\n endOffset?: string;\n model?: string;\n}\n\nexport interface RdfLocalQuery {\n patterns: RdfQueryPattern[];\n values?: RdfValuesBindingSource[];\n textSearch?: RdfTextSearchPattern[];\n vectorSearch?: RdfVectorSearchPattern[];\n unions?: RdfUnionQueryGroup[];\n minus?: RdfMinusQueryGroup[];\n exists?: RdfExistsQueryGroup[];\n optional?: Array<RdfQueryPattern[] | RdfOptionalQueryGroup>;\n binds?: RdfQueryBind[];\n filters?: RdfQueryFilter[];\n having?: RdfQueryFilter[];\n select?: string[];\n distinct?: boolean;\n groupBy?: string[];\n aggregates?: RdfQueryAggregate[];\n aggregate?: RdfQueryAggregate;\n orderBy?: RdfQueryOrder[];\n limit?: number;\n offset?: number;\n}\n\nexport interface RdfUnionQueryBranch {\n patterns: RdfQueryPattern[];\n values?: RdfValuesBindingSource[];\n unions?: RdfUnionQueryGroup[];\n optional?: Array<RdfQueryPattern[] | RdfOptionalQueryGroup>;\n binds?: RdfQueryBind[];\n filters?: RdfQueryFilter[];\n}\n\nexport interface RdfUnionQueryGroup {\n branches: RdfUnionQueryBranch[];\n}\n\nexport interface RdfMinusQueryGroup {\n patterns: RdfQueryPattern[];\n values?: RdfValuesBindingSource[];\n unions?: RdfUnionQueryGroup[];\n optional?: Array<RdfQueryPattern[] | RdfOptionalQueryGroup>;\n binds?: RdfQueryBind[];\n filters?: RdfQueryFilter[];\n}\n\nexport interface RdfExistsQueryGroup {\n patterns: RdfQueryPattern[];\n values?: RdfValuesBindingSource[];\n unions?: RdfUnionQueryGroup[];\n optional?: Array<RdfQueryPattern[] | RdfOptionalQueryGroup>;\n binds?: RdfQueryBind[];\n filters?: RdfQueryFilter[];\n}\n\nexport interface RdfOptionalQueryGroup {\n patterns: RdfQueryPattern[];\n values?: RdfValuesBindingSource[];\n unions?: RdfUnionQueryGroup[];\n optional?: Array<RdfQueryPattern[] | RdfOptionalQueryGroup>;\n minus?: RdfMinusQueryGroup[];\n exists?: RdfExistsQueryGroup[];\n binds?: RdfQueryBind[];\n filters?: RdfQueryFilter[];\n}\n\nexport type RdfBindingRow = Record<string, Term>;\n\nexport interface RdfQuadJoinScanResult {\n bindings: RdfBindingRow[];\n metrics: RdfIndexMetrics;\n}\n\nexport interface RdfQuadJoinGroupAggregateOptions {\n groupBy: string[];\n aggregates: RdfQueryAggregate[];\n having?: RdfQuadJoinGroupAggregateHaving[];\n orderBy?: RdfQuadJoinOrder[];\n limit?: number;\n offset?: number;\n}\n\nexport type RdfQuadJoinGroupCountOptions = RdfQuadJoinGroupAggregateOptions;\n\nexport interface RdfLocalQueryMetrics {\n engine: 'solid-rdf';\n plan: string[];\n scannedRows: number;\n joinedRows: number;\n returnedRows: number;\n durationMs: number;\n indexChoices: string[];\n cardinalityEstimates?: number;\n distinctCardinalityEstimates?: number;\n searchCardinalityEstimates?: number;\n filtersApplied: number;\n filtersPushedDown: number;\n}\n\nexport interface RdfLocalQueryResult {\n bindings: RdfBindingRow[];\n count?: number;\n metrics: RdfLocalQueryMetrics;\n}\n\nexport type RdfQueryPatternKey = TermName;\n\nexport interface RdfShadowDiff {\n missingFromPrimary: string[];\n extraInPrimary: string[];\n}\n\nexport interface RdfShadowBackfillOptions {\n clear?: boolean;\n batchSize?: number;\n}\n\nexport interface RdfShadowBackfillResult {\n scannedRows: number;\n indexedRows: number;\n batchCount: number;\n durationMs: number;\n}\n\nexport interface RdfShadowScanResult {\n matched: boolean;\n orderedMatch: boolean;\n primary: Quad[];\n compatibility: Quad[];\n diff: RdfShadowDiff;\n metrics: RdfIndexMetrics;\n}\n\nexport interface RdfTextIndexOptions {\n path: string;\n}\n\nexport interface RdfTextSourceInput {\n source: string;\n workspace: string;\n localPath?: string;\n contentType?: string;\n sourceVersion?: string;\n sourceHash?: string;\n}\n\nexport interface RdfTextChunkInput {\n chunkKey: string;\n ordinal: number;\n level: number;\n heading?: string;\n path?: string[];\n content: string;\n startOffset: number;\n endOffset: number;\n}\n\nexport interface RdfTextChunkRow {\n id: number;\n source_id: number;\n source: string;\n workspace: string;\n local_path: string | null;\n content_type: string | null;\n source_version: string | null;\n source_hash: string | null;\n chunk_key: string;\n ordinal: number;\n level: number;\n heading: string | null;\n path: string | null;\n content: string;\n start_offset: number;\n end_offset: number;\n normalized_text: string;\n token_count: number;\n updated_at: string;\n}\n\nexport interface RdfTextSearchOptions {\n query: string;\n source?: string;\n workspace?: string;\n sourcePrefix?: string;\n limit?: number;\n offset?: number;\n orderBy?: RdfTextSearchOrder[];\n}\n\nexport interface RdfTextSearchResult {\n source: string;\n workspace: string;\n localPath?: string;\n contentType?: string;\n sourceVersion?: string;\n sourceHash?: string;\n chunkKey: string;\n ordinal: number;\n level: number;\n heading?: string;\n path: string[];\n content: string;\n startOffset: number;\n endOffset: number;\n score: number;\n}\n\nexport interface RdfSearchCardinalityEstimate {\n rows: number;\n source: 'text-normalized-scan' | 'text-term-posting' | 'vector-candidate-count' | 'vector-component-score';\n indexChoice: string;\n}\n\nexport interface RdfTextIndexStats {\n sourceCount: number;\n chunkCount: number;\n databaseBytes: number;\n termDocumentFrequency: RdfTextTermDocumentFrequency[];\n}\n\nexport interface RdfTextTermDocumentFrequency {\n term: string;\n sourceCount: number;\n chunkCount: number;\n totalOccurrences: number;\n}\n\nexport interface RdfVectorIndexOptions {\n path: string;\n defaultMetric?: RdfVectorDistanceMetric;\n}\n\nexport interface RdfVectorSourceInput {\n source: string;\n workspace: string;\n localPath?: string;\n contentType?: string;\n sourceVersion?: string;\n sourceHash?: string;\n}\n\nexport interface RdfVectorChunkInput {\n chunkKey: string;\n ordinal: number;\n level: number;\n embedding: number[];\n model?: string;\n heading?: string;\n path?: string[];\n content: string;\n startOffset: number;\n endOffset: number;\n}\n\nexport interface RdfVectorChunkRow {\n id: number;\n source_id: number;\n source: string;\n workspace: string;\n local_path: string | null;\n content_type: string | null;\n source_version: string | null;\n source_hash: string | null;\n chunk_key: string;\n ordinal: number;\n level: number;\n heading: string | null;\n path: string | null;\n content: string;\n start_offset: number;\n end_offset: number;\n embedding_json: string;\n dimensions: number;\n magnitude: number;\n model: string;\n updated_at: string;\n}\n\nexport interface RdfVectorSearchOptions {\n embedding: number[];\n metric?: RdfVectorDistanceMetric;\n model?: string;\n source?: string;\n workspace?: string;\n sourcePrefix?: string;\n limit?: number;\n offset?: number;\n threshold?: number;\n orderBy?: RdfVectorSearchOrder[];\n}\n\nexport interface RdfVectorSearchResult {\n source: string;\n workspace: string;\n localPath?: string;\n contentType?: string;\n sourceVersion?: string;\n sourceHash?: string;\n chunkKey: string;\n ordinal: number;\n level: number;\n heading?: string;\n path: string[];\n content: string;\n startOffset: number;\n endOffset: number;\n embedding: number[];\n model?: string;\n score: number;\n distance: number;\n}\n\nexport interface RdfVectorIndexStats {\n sourceCount: number;\n chunkCount: number;\n componentCount: number;\n databaseBytes: number;\n modelDistribution: RdfVectorModelDistribution[];\n}\n\nexport interface RdfVectorModelDistribution {\n model: string;\n dimensions: number;\n sourceCount: number;\n chunkCount: number;\n minMagnitude: number;\n maxMagnitude: number;\n averageMagnitude: number;\n}\n\nexport interface RdfTermSelection {\n sql: string;\n params: unknown[];\n indexHint: string;\n}\n\nexport interface RdfTermLookup {\n id: number;\n term: Term;\n}\n"]}
@@ -0,0 +1,36 @@
1
+ import type { Quad } from '@rdfjs/types';
2
+ import type { AsyncIterator } from 'asynciterator';
3
+ import type { SparqlEngine } from './SubgraphQueryEngine';
4
+ import type { QuintStore } from '../quint/types';
5
+ /**
6
+ * @deprecated Compatibility wrapper preserved for older call sites.
7
+ * Mainline xpod uses SolidRdfEngine for server-owned Pod queries.
8
+ *
9
+ * This file intentionally avoids static Comunica imports so exposing the
10
+ * component type does not load the compatibility implementation.
11
+ */
12
+ export declare class QuadstoreSparqlEngine implements SparqlEngine {
13
+ private readonly delegate;
14
+ constructor(endpoint: string);
15
+ queryBindings(query: string, basePath: string): Promise<any>;
16
+ queryQuads(query: string, basePath: string): Promise<any>;
17
+ queryBoolean(query: string, basePath: string): Promise<boolean>;
18
+ queryVoid(query: string, basePath: string): Promise<void>;
19
+ constructGraph(graph: string, basePath: string): Promise<AsyncIterator<Quad>>;
20
+ listGraphs(basePath: string): Promise<Set<string>>;
21
+ close(): Promise<void>;
22
+ }
23
+ /**
24
+ * Comunica-backed compatibility engine component.
25
+ */
26
+ export declare class QuintstoreSparqlEngine implements SparqlEngine {
27
+ private readonly delegate;
28
+ constructor(store: QuintStore);
29
+ queryBindings(query: string, basePath: string): Promise<any>;
30
+ queryQuads(query: string, basePath: string): Promise<any>;
31
+ queryBoolean(query: string, basePath: string): Promise<boolean>;
32
+ queryVoid(query: string, basePath: string): Promise<void>;
33
+ constructGraph(graph: string, basePath: string): Promise<AsyncIterator<Quad>>;
34
+ listGraphs(basePath: string): Promise<Set<string>>;
35
+ close(): Promise<void>;
36
+ }
@@ -0,0 +1,96 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
15
+ }) : function(o, v) {
16
+ o["default"] = v;
17
+ });
18
+ var __importStar = (this && this.__importStar) || function (mod) {
19
+ if (mod && mod.__esModule) return mod;
20
+ var result = {};
21
+ if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
22
+ __setModuleDefault(result, mod);
23
+ return result;
24
+ };
25
+ Object.defineProperty(exports, "__esModule", { value: true });
26
+ exports.QuintstoreSparqlEngine = exports.QuadstoreSparqlEngine = void 0;
27
+ async function loadCompatibilityModule() {
28
+ return Promise.resolve().then(() => __importStar(require('./CompatibilitySparqlEngineImpl')));
29
+ }
30
+ /**
31
+ * @deprecated Compatibility wrapper preserved for older call sites.
32
+ * Mainline xpod uses SolidRdfEngine for server-owned Pod queries.
33
+ *
34
+ * This file intentionally avoids static Comunica imports so exposing the
35
+ * component type does not load the compatibility implementation.
36
+ */
37
+ class QuadstoreSparqlEngine {
38
+ constructor(endpoint) {
39
+ this.delegate = loadCompatibilityModule()
40
+ .then(({ QuadstoreSparqlEngine }) => new QuadstoreSparqlEngine(endpoint));
41
+ }
42
+ async queryBindings(query, basePath) {
43
+ return (await this.delegate).queryBindings(query, basePath);
44
+ }
45
+ async queryQuads(query, basePath) {
46
+ return (await this.delegate).queryQuads(query, basePath);
47
+ }
48
+ async queryBoolean(query, basePath) {
49
+ return (await this.delegate).queryBoolean(query, basePath);
50
+ }
51
+ async queryVoid(query, basePath) {
52
+ await (await this.delegate).queryVoid(query, basePath);
53
+ }
54
+ async constructGraph(graph, basePath) {
55
+ return (await this.delegate).constructGraph(graph, basePath);
56
+ }
57
+ async listGraphs(basePath) {
58
+ return (await this.delegate).listGraphs(basePath);
59
+ }
60
+ async close() {
61
+ await (await this.delegate).close();
62
+ }
63
+ }
64
+ exports.QuadstoreSparqlEngine = QuadstoreSparqlEngine;
65
+ /**
66
+ * Comunica-backed compatibility engine component.
67
+ */
68
+ class QuintstoreSparqlEngine {
69
+ constructor(store) {
70
+ this.delegate = loadCompatibilityModule()
71
+ .then(({ QuintstoreSparqlEngine }) => new QuintstoreSparqlEngine(store));
72
+ }
73
+ async queryBindings(query, basePath) {
74
+ return (await this.delegate).queryBindings(query, basePath);
75
+ }
76
+ async queryQuads(query, basePath) {
77
+ return (await this.delegate).queryQuads(query, basePath);
78
+ }
79
+ async queryBoolean(query, basePath) {
80
+ return (await this.delegate).queryBoolean(query, basePath);
81
+ }
82
+ async queryVoid(query, basePath) {
83
+ await (await this.delegate).queryVoid(query, basePath);
84
+ }
85
+ async constructGraph(graph, basePath) {
86
+ return (await this.delegate).constructGraph(graph, basePath);
87
+ }
88
+ async listGraphs(basePath) {
89
+ return (await this.delegate).listGraphs(basePath);
90
+ }
91
+ async close() {
92
+ await (await this.delegate).close();
93
+ }
94
+ }
95
+ exports.QuintstoreSparqlEngine = QuintstoreSparqlEngine;
96
+ //# sourceMappingURL=CompatibilitySparqlEngine.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"CompatibilitySparqlEngine.js","sourceRoot":"","sources":["../../../src/storage/sparql/CompatibilitySparqlEngine.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;AAOA,KAAK,UAAU,uBAAuB;IACpC,yDAAc,iCAAiC,IAAE;AACnD,CAAC;AAED;;;;;;GAMG;AACH,MAAa,qBAAqB;IAGhC,YAAmB,QAAgB;QACjC,IAAI,CAAC,QAAQ,GAAG,uBAAuB,EAAE;aACtC,IAAI,CAAC,CAAC,EAAE,qBAAqB,EAAE,EAAE,EAAE,CAAC,IAAI,qBAAqB,CAAC,QAAQ,CAAC,CAAC,CAAC;IAC9E,CAAC;IAEM,KAAK,CAAC,aAAa,CAAC,KAAa,EAAE,QAAgB;QACxD,OAAO,CAAC,MAAM,IAAI,CAAC,QAAQ,CAAC,CAAC,aAAa,CAAC,KAAK,EAAE,QAAQ,CAAC,CAAC;IAC9D,CAAC;IAEM,KAAK,CAAC,UAAU,CAAC,KAAa,EAAE,QAAgB;QACrD,OAAO,CAAC,MAAM,IAAI,CAAC,QAAQ,CAAC,CAAC,UAAU,CAAC,KAAK,EAAE,QAAQ,CAAC,CAAC;IAC3D,CAAC;IAEM,KAAK,CAAC,YAAY,CAAC,KAAa,EAAE,QAAgB;QACvD,OAAO,CAAC,MAAM,IAAI,CAAC,QAAQ,CAAC,CAAC,YAAY,CAAC,KAAK,EAAE,QAAQ,CAAC,CAAC;IAC7D,CAAC;IAEM,KAAK,CAAC,SAAS,CAAC,KAAa,EAAE,QAAgB;QACpD,MAAM,CAAC,MAAM,IAAI,CAAC,QAAQ,CAAC,CAAC,SAAS,CAAC,KAAK,EAAE,QAAQ,CAAC,CAAC;IACzD,CAAC;IAEM,KAAK,CAAC,cAAc,CAAC,KAAa,EAAE,QAAgB;QACzD,OAAO,CAAC,MAAM,IAAI,CAAC,QAAQ,CAAC,CAAC,cAAc,CAAC,KAAK,EAAE,QAAQ,CAAC,CAAC;IAC/D,CAAC;IAEM,KAAK,CAAC,UAAU,CAAC,QAAgB;QACtC,OAAO,CAAC,MAAM,IAAI,CAAC,QAAQ,CAAC,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC;IACpD,CAAC;IAEM,KAAK,CAAC,KAAK;QAChB,MAAM,CAAC,MAAM,IAAI,CAAC,QAAQ,CAAC,CAAC,KAAK,EAAE,CAAC;IACtC,CAAC;CACF;AAnCD,sDAmCC;AAED;;GAEG;AACH,MAAa,sBAAsB;IAGjC,YAAmB,KAAiB;QAClC,IAAI,CAAC,QAAQ,GAAG,uBAAuB,EAAE;aACtC,IAAI,CAAC,CAAC,EAAE,sBAAsB,EAAE,EAAE,EAAE,CAAC,IAAI,sBAAsB,CAAC,KAAK,CAAC,CAAC,CAAC;IAC7E,CAAC;IAEM,KAAK,CAAC,aAAa,CAAC,KAAa,EAAE,QAAgB;QACxD,OAAO,CAAC,MAAM,IAAI,CAAC,QAAQ,CAAC,CAAC,aAAa,CAAC,KAAK,EAAE,QAAQ,CAAC,CAAC;IAC9D,CAAC;IAEM,KAAK,CAAC,UAAU,CAAC,KAAa,EAAE,QAAgB;QACrD,OAAO,CAAC,MAAM,IAAI,CAAC,QAAQ,CAAC,CAAC,UAAU,CAAC,KAAK,EAAE,QAAQ,CAAC,CAAC;IAC3D,CAAC;IAEM,KAAK,CAAC,YAAY,CAAC,KAAa,EAAE,QAAgB;QACvD,OAAO,CAAC,MAAM,IAAI,CAAC,QAAQ,CAAC,CAAC,YAAY,CAAC,KAAK,EAAE,QAAQ,CAAC,CAAC;IAC7D,CAAC;IAEM,KAAK,CAAC,SAAS,CAAC,KAAa,EAAE,QAAgB;QACpD,MAAM,CAAC,MAAM,IAAI,CAAC,QAAQ,CAAC,CAAC,SAAS,CAAC,KAAK,EAAE,QAAQ,CAAC,CAAC;IACzD,CAAC;IAEM,KAAK,CAAC,cAAc,CAAC,KAAa,EAAE,QAAgB;QACzD,OAAO,CAAC,MAAM,IAAI,CAAC,QAAQ,CAAC,CAAC,cAAc,CAAC,KAAK,EAAE,QAAQ,CAAC,CAAC;IAC/D,CAAC;IAEM,KAAK,CAAC,UAAU,CAAC,QAAgB;QACtC,OAAO,CAAC,MAAM,IAAI,CAAC,QAAQ,CAAC,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC;IACpD,CAAC;IAEM,KAAK,CAAC,KAAK;QAChB,MAAM,CAAC,MAAM,IAAI,CAAC,QAAQ,CAAC,CAAC,KAAK,EAAE,CAAC;IACtC,CAAC;CACF;AAnCD,wDAmCC","sourcesContent":["import type { Quad } from '@rdfjs/types';\nimport type { AsyncIterator } from 'asynciterator';\nimport type { SparqlEngine } from './SubgraphQueryEngine';\nimport type { QuintStore } from '../quint/types';\n\ntype CompatibilityModule = typeof import('./CompatibilitySparqlEngineImpl');\n\nasync function loadCompatibilityModule(): Promise<CompatibilityModule> {\n return import('./CompatibilitySparqlEngineImpl');\n}\n\n/**\n * @deprecated Compatibility wrapper preserved for older call sites.\n * Mainline xpod uses SolidRdfEngine for server-owned Pod queries.\n *\n * This file intentionally avoids static Comunica imports so exposing the\n * component type does not load the compatibility implementation.\n */\nexport class QuadstoreSparqlEngine implements SparqlEngine {\n private readonly delegate: Promise<SparqlEngine>;\n\n public constructor(endpoint: string) {\n this.delegate = loadCompatibilityModule()\n .then(({ QuadstoreSparqlEngine }) => new QuadstoreSparqlEngine(endpoint));\n }\n\n public async queryBindings(query: string, basePath: string): Promise<any> {\n return (await this.delegate).queryBindings(query, basePath);\n }\n\n public async queryQuads(query: string, basePath: string): Promise<any> {\n return (await this.delegate).queryQuads(query, basePath);\n }\n\n public async queryBoolean(query: string, basePath: string): Promise<boolean> {\n return (await this.delegate).queryBoolean(query, basePath);\n }\n\n public async queryVoid(query: string, basePath: string): Promise<void> {\n await (await this.delegate).queryVoid(query, basePath);\n }\n\n public async constructGraph(graph: string, basePath: string): Promise<AsyncIterator<Quad>> {\n return (await this.delegate).constructGraph(graph, basePath);\n }\n\n public async listGraphs(basePath: string): Promise<Set<string>> {\n return (await this.delegate).listGraphs(basePath);\n }\n\n public async close(): Promise<void> {\n await (await this.delegate).close();\n }\n}\n\n/**\n * Comunica-backed compatibility engine component.\n */\nexport class QuintstoreSparqlEngine implements SparqlEngine {\n private readonly delegate: Promise<SparqlEngine>;\n\n public constructor(store: QuintStore) {\n this.delegate = loadCompatibilityModule()\n .then(({ QuintstoreSparqlEngine }) => new QuintstoreSparqlEngine(store));\n }\n\n public async queryBindings(query: string, basePath: string): Promise<any> {\n return (await this.delegate).queryBindings(query, basePath);\n }\n\n public async queryQuads(query: string, basePath: string): Promise<any> {\n return (await this.delegate).queryQuads(query, basePath);\n }\n\n public async queryBoolean(query: string, basePath: string): Promise<boolean> {\n return (await this.delegate).queryBoolean(query, basePath);\n }\n\n public async queryVoid(query: string, basePath: string): Promise<void> {\n await (await this.delegate).queryVoid(query, basePath);\n }\n\n public async constructGraph(graph: string, basePath: string): Promise<AsyncIterator<Quad>> {\n return (await this.delegate).constructGraph(graph, basePath);\n }\n\n public async listGraphs(basePath: string): Promise<Set<string>> {\n return (await this.delegate).listGraphs(basePath);\n }\n\n public async close(): Promise<void> {\n await (await this.delegate).close();\n }\n}\n"]}
@@ -0,0 +1,123 @@
1
+ {
2
+ "@context": [
3
+ "https://linkedsoftwaredependencies.org/bundles/npm/@undefineds.co/xpod/^0.0.0/components/context.jsonld"
4
+ ],
5
+ "@id": "npmd:@undefineds.co/xpod",
6
+ "components": [
7
+ {
8
+ "@id": "undefineds:dist/storage/sparql/CompatibilitySparqlEngine.jsonld#QuadstoreSparqlEngine",
9
+ "@type": "Class",
10
+ "requireElement": "QuadstoreSparqlEngine",
11
+ "extends": [
12
+ "undefineds:dist/storage/sparql/SubgraphQueryEngine.jsonld#SparqlEngine"
13
+ ],
14
+ "parameters": [
15
+ {
16
+ "@id": "undefineds:dist/storage/sparql/CompatibilitySparqlEngine.jsonld#QuadstoreSparqlEngine_endpoint",
17
+ "range": "xsd:string"
18
+ }
19
+ ],
20
+ "memberFields": [
21
+ {
22
+ "@id": "undefineds:dist/storage/sparql/CompatibilitySparqlEngine.jsonld#QuadstoreSparqlEngine__member_delegate",
23
+ "memberFieldName": "delegate"
24
+ },
25
+ {
26
+ "@id": "undefineds:dist/storage/sparql/CompatibilitySparqlEngine.jsonld#QuadstoreSparqlEngine__member_constructor",
27
+ "memberFieldName": "constructor"
28
+ },
29
+ {
30
+ "@id": "undefineds:dist/storage/sparql/CompatibilitySparqlEngine.jsonld#QuadstoreSparqlEngine__member_queryBindings",
31
+ "memberFieldName": "queryBindings"
32
+ },
33
+ {
34
+ "@id": "undefineds:dist/storage/sparql/CompatibilitySparqlEngine.jsonld#QuadstoreSparqlEngine__member_queryQuads",
35
+ "memberFieldName": "queryQuads"
36
+ },
37
+ {
38
+ "@id": "undefineds:dist/storage/sparql/CompatibilitySparqlEngine.jsonld#QuadstoreSparqlEngine__member_queryBoolean",
39
+ "memberFieldName": "queryBoolean"
40
+ },
41
+ {
42
+ "@id": "undefineds:dist/storage/sparql/CompatibilitySparqlEngine.jsonld#QuadstoreSparqlEngine__member_queryVoid",
43
+ "memberFieldName": "queryVoid"
44
+ },
45
+ {
46
+ "@id": "undefineds:dist/storage/sparql/CompatibilitySparqlEngine.jsonld#QuadstoreSparqlEngine__member_constructGraph",
47
+ "memberFieldName": "constructGraph"
48
+ },
49
+ {
50
+ "@id": "undefineds:dist/storage/sparql/CompatibilitySparqlEngine.jsonld#QuadstoreSparqlEngine__member_listGraphs",
51
+ "memberFieldName": "listGraphs"
52
+ },
53
+ {
54
+ "@id": "undefineds:dist/storage/sparql/CompatibilitySparqlEngine.jsonld#QuadstoreSparqlEngine__member_close",
55
+ "memberFieldName": "close"
56
+ }
57
+ ],
58
+ "constructorArguments": [
59
+ {
60
+ "@id": "undefineds:dist/storage/sparql/CompatibilitySparqlEngine.jsonld#QuadstoreSparqlEngine_endpoint"
61
+ }
62
+ ]
63
+ },
64
+ {
65
+ "@id": "undefineds:dist/storage/sparql/CompatibilitySparqlEngine.jsonld#QuintstoreSparqlEngine",
66
+ "@type": "Class",
67
+ "requireElement": "QuintstoreSparqlEngine",
68
+ "extends": [
69
+ "undefineds:dist/storage/sparql/SubgraphQueryEngine.jsonld#SparqlEngine"
70
+ ],
71
+ "comment": "Comunica-backed compatibility engine component.",
72
+ "parameters": [
73
+ {
74
+ "@id": "undefineds:dist/storage/sparql/CompatibilitySparqlEngine.jsonld#QuintstoreSparqlEngine_store",
75
+ "range": "undefineds:dist/storage/quint/types.jsonld#QuintStore"
76
+ }
77
+ ],
78
+ "memberFields": [
79
+ {
80
+ "@id": "undefineds:dist/storage/sparql/CompatibilitySparqlEngine.jsonld#QuintstoreSparqlEngine__member_delegate",
81
+ "memberFieldName": "delegate"
82
+ },
83
+ {
84
+ "@id": "undefineds:dist/storage/sparql/CompatibilitySparqlEngine.jsonld#QuintstoreSparqlEngine__member_constructor",
85
+ "memberFieldName": "constructor"
86
+ },
87
+ {
88
+ "@id": "undefineds:dist/storage/sparql/CompatibilitySparqlEngine.jsonld#QuintstoreSparqlEngine__member_queryBindings",
89
+ "memberFieldName": "queryBindings"
90
+ },
91
+ {
92
+ "@id": "undefineds:dist/storage/sparql/CompatibilitySparqlEngine.jsonld#QuintstoreSparqlEngine__member_queryQuads",
93
+ "memberFieldName": "queryQuads"
94
+ },
95
+ {
96
+ "@id": "undefineds:dist/storage/sparql/CompatibilitySparqlEngine.jsonld#QuintstoreSparqlEngine__member_queryBoolean",
97
+ "memberFieldName": "queryBoolean"
98
+ },
99
+ {
100
+ "@id": "undefineds:dist/storage/sparql/CompatibilitySparqlEngine.jsonld#QuintstoreSparqlEngine__member_queryVoid",
101
+ "memberFieldName": "queryVoid"
102
+ },
103
+ {
104
+ "@id": "undefineds:dist/storage/sparql/CompatibilitySparqlEngine.jsonld#QuintstoreSparqlEngine__member_constructGraph",
105
+ "memberFieldName": "constructGraph"
106
+ },
107
+ {
108
+ "@id": "undefineds:dist/storage/sparql/CompatibilitySparqlEngine.jsonld#QuintstoreSparqlEngine__member_listGraphs",
109
+ "memberFieldName": "listGraphs"
110
+ },
111
+ {
112
+ "@id": "undefineds:dist/storage/sparql/CompatibilitySparqlEngine.jsonld#QuintstoreSparqlEngine__member_close",
113
+ "memberFieldName": "close"
114
+ }
115
+ ],
116
+ "constructorArguments": [
117
+ {
118
+ "@id": "undefineds:dist/storage/sparql/CompatibilitySparqlEngine.jsonld#QuintstoreSparqlEngine_store"
119
+ }
120
+ ]
121
+ }
122
+ ]
123
+ }
@@ -0,0 +1,35 @@
1
+ import type { Quad } from '@rdfjs/types';
2
+ import type { AsyncIterator } from 'asynciterator';
3
+ import type { SparqlEngine } from './SubgraphQueryEngine';
4
+ import type { QuintStore } from '../quint/types';
5
+ /**
6
+ * @deprecated Compatibility wrapper preserved for older call sites.
7
+ * Mainline xpod uses SolidRdfEngine for server-owned Pod queries.
8
+ */
9
+ export declare class QuadstoreSparqlEngine implements SparqlEngine {
10
+ private readonly delegate;
11
+ constructor(endpoint: string);
12
+ queryBindings(query: string, basePath: string): Promise<any>;
13
+ queryQuads(query: string, basePath: string): Promise<any>;
14
+ queryBoolean(query: string, basePath: string): Promise<boolean>;
15
+ queryVoid(query: string, basePath: string): Promise<void>;
16
+ constructGraph(graph: string, basePath: string): Promise<AsyncIterator<Quad>>;
17
+ listGraphs(basePath: string): Promise<Set<string>>;
18
+ close(): Promise<void>;
19
+ }
20
+ /**
21
+ * Comunica-backed compatibility engine.
22
+ */
23
+ export declare class QuintstoreSparqlEngine implements SparqlEngine {
24
+ private readonly store;
25
+ private readonly engine;
26
+ private readonly ready;
27
+ constructor(store: QuintStore);
28
+ queryBindings(query: string, basePath: string): Promise<any>;
29
+ queryQuads(query: string, basePath: string): Promise<any>;
30
+ queryBoolean(query: string, basePath: string): Promise<boolean>;
31
+ queryVoid(query: string, basePath: string): Promise<void>;
32
+ constructGraph(graph: string, basePath: string): Promise<AsyncIterator<Quad>>;
33
+ listGraphs(basePath: string): Promise<Set<string>>;
34
+ close(): Promise<void>;
35
+ }