@undefineds.co/xpod 0.3.74 → 0.4.0-rc.139

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 (363) hide show
  1. package/bin/xpod.js +43 -8
  2. package/config/bun.json +45 -48
  3. package/config/cloud.json +13 -90
  4. package/config/components-ignore.json +0 -1
  5. package/config/local.json +111 -63
  6. package/config/resolver.json +4 -2
  7. package/config/terminal.json +4 -1
  8. package/config/xpod.base.json +16 -8
  9. package/config/xpod.json +51 -54
  10. package/dist/acceptance/PublicCloudSemanticConformance.d.ts +4 -0
  11. package/dist/acceptance/PublicCloudSemanticConformance.js +214 -0
  12. package/dist/acceptance/QleverSearchConformance.d.ts +39 -0
  13. package/dist/acceptance/QleverSearchConformance.js +686 -0
  14. package/dist/acceptance/QleverSemanticConformance.d.ts +3 -0
  15. package/dist/acceptance/QleverSemanticConformance.js +178 -0
  16. package/dist/acceptance/RdfSemanticConformance.d.ts +114 -0
  17. package/dist/acceptance/RdfSemanticConformance.js +307 -0
  18. package/dist/acceptance/run-installed-qlever-conformance.d.ts +12 -0
  19. package/dist/acceptance/run-installed-qlever-conformance.js +87 -0
  20. package/dist/acceptance/run-installed-rdf-conformance.d.ts +12 -0
  21. package/dist/acceptance/run-installed-rdf-conformance.js +88 -0
  22. package/dist/ai/service/EmbeddingProviderError.d.ts +7 -0
  23. package/dist/ai/service/EmbeddingProviderError.js +42 -0
  24. package/dist/api/ai-gateway/connect/index.js +5 -2
  25. package/dist/api/auth/AuthContext.d.ts +5 -0
  26. package/dist/api/auth/AuthContext.js +10 -0
  27. package/dist/api/container/common.js +21 -8
  28. package/dist/api/container/rdf.d.ts +1 -0
  29. package/dist/api/container/rdf.js +43 -4
  30. package/dist/api/container/types.d.ts +4 -0
  31. package/dist/api/runs/InngestRunExecutionBackend.d.ts +2 -2
  32. package/dist/api/runs/PiAgentRuntimeDriver.d.ts +2 -0
  33. package/dist/api/runs/PiAgentRuntimeDriver.js +1 -0
  34. package/dist/api/runs/RdfRunContextRetriever.d.ts +8 -0
  35. package/dist/api/runs/RdfRunContextRetriever.js +23 -1
  36. package/dist/api/runtime.js +20 -6
  37. package/dist/api/service/RdfSearchIndexingService.d.ts +37 -3
  38. package/dist/api/service/RdfSearchIndexingService.js +130 -18
  39. package/dist/api/service/RdfSearchIndexingSolidFsSyncer.d.ts +8 -0
  40. package/dist/api/service/RdfSearchIndexingSolidFsSyncer.js +102 -15
  41. package/dist/api/service/RdfSearchReconciliationWorker.d.ts +76 -0
  42. package/dist/api/service/RdfSearchReconciliationWorker.js +294 -0
  43. package/dist/api/tasks/InngestTaskScheduler.d.ts +4 -4
  44. package/dist/components/components.jsonld +9 -12
  45. package/dist/components/context.jsonld +227 -348
  46. package/dist/document/MarkdownRetrievalPointProjector.d.ts +33 -0
  47. package/dist/document/MarkdownRetrievalPointProjector.js +196 -0
  48. package/dist/document/MarkdownRetrievalPointProjector.jsonld +135 -0
  49. package/dist/document/ReaderMaterialization.d.ts +34 -0
  50. package/dist/document/ReaderMaterialization.js +3 -0
  51. package/dist/document/ReaderMaterialization.jsonld +151 -0
  52. package/dist/document/ReaderMaterializationRepository.d.ts +27 -0
  53. package/dist/document/ReaderMaterializationRepository.js +400 -0
  54. package/dist/document/ReaderMaterializationRepository.jsonld +84 -0
  55. package/dist/document/index.d.ts +3 -1
  56. package/dist/document/index.js +3 -1
  57. package/dist/http/SubgraphSparqlHttpHandler.js +34 -54
  58. package/dist/http/search/SearchHttpHandler.js +14 -12
  59. package/dist/http/terminal/TerminalHttpHandler.d.ts +3 -0
  60. package/dist/http/terminal/TerminalHttpHandler.js +1 -0
  61. package/dist/http/terminal/TerminalHttpHandler.jsonld +11 -0
  62. package/dist/identity/drizzle/DrizzleIndexedStorage.js +19 -39
  63. package/dist/identity/drizzle/db.d.ts +1 -0
  64. package/dist/identity/drizzle/db.js +35 -0
  65. package/dist/index.d.ts +9 -17
  66. package/dist/index.js +14 -22
  67. package/dist/provision/ProvisionPodCreator.d.ts +1 -1
  68. package/dist/provision/ProvisionPodCreator.js +4 -3
  69. package/dist/runtime/css-process.js +0 -1
  70. package/dist/search/RdfSearchIntentSink.d.ts +17 -0
  71. package/dist/search/RdfSearchIntentSink.js +46 -0
  72. package/dist/search/RdfSearchIntentSink.jsonld +47 -0
  73. package/dist/search/RdfSearchReconciliationRepository.d.ts +81 -0
  74. package/dist/search/RdfSearchReconciliationRepository.js +771 -0
  75. package/dist/solidfs/LocalRdfAuthorityRecoveryInitializer.d.ts +15 -0
  76. package/dist/solidfs/LocalRdfAuthorityRecoveryInitializer.js +48 -0
  77. package/dist/solidfs/LocalRdfAuthorityRecoveryInitializer.jsonld +99 -0
  78. package/dist/solidfs/RdfIndexSolidFsSyncer.js +22 -4
  79. package/dist/solidfs/SolidFsSyncJournal.d.ts +7 -1
  80. package/dist/solidfs/SolidFsSyncJournal.js +20 -5
  81. package/dist/solidfs/SolidFsSyncJournal.jsonld +43 -0
  82. package/dist/solidfs/index.d.ts +1 -0
  83. package/dist/solidfs/index.js +1 -0
  84. package/dist/storage/SparqlUpdateResourceStore.js +3 -3
  85. package/dist/storage/accessors/MixDataAccessor.d.ts +21 -29
  86. package/dist/storage/accessors/MixDataAccessor.js +182 -399
  87. package/dist/storage/accessors/MixDataAccessor.jsonld +109 -87
  88. package/dist/storage/accessors/SolidRdfDataAccessor.d.ts +12 -8
  89. package/dist/storage/accessors/SolidRdfDataAccessor.js +189 -59
  90. package/dist/storage/accessors/SolidRdfDataAccessor.jsonld +14 -29
  91. package/dist/storage/rdf/LocalQleverNativeSparqlClient.d.ts +55 -0
  92. package/dist/storage/rdf/LocalQleverNativeSparqlClient.js +519 -0
  93. package/dist/storage/rdf/LocalQleverNativeSparqlClient.jsonld +314 -0
  94. package/dist/storage/rdf/PostgresRdfEngine.d.ts +3 -1
  95. package/dist/storage/rdf/PostgresRdfEngine.js +111 -74
  96. package/dist/storage/rdf/PostgresRdfEngine.jsonld +12 -22
  97. package/dist/storage/rdf/PostgresRdfSchemaValidation.d.ts +8 -0
  98. package/dist/storage/rdf/PostgresRdfSchemaValidation.js +82 -0
  99. package/dist/storage/rdf/PostgresRdfTextIndex.d.ts +6 -3
  100. package/dist/storage/rdf/PostgresRdfTextIndex.js +158 -80
  101. package/dist/storage/rdf/PostgresRdfTextIndex.jsonld +16 -4
  102. package/dist/storage/rdf/PostgresRdfVectorIndex.d.ts +4 -5
  103. package/dist/storage/rdf/PostgresRdfVectorIndex.js +124 -120
  104. package/dist/storage/rdf/PostgresRdfVectorIndex.jsonld +14 -18
  105. package/dist/storage/rdf/QleverSparqlEngine.d.ts +35 -0
  106. package/dist/storage/rdf/QleverSparqlEngine.js +185 -0
  107. package/dist/storage/rdf/QleverSparqlEngine.jsonld +70 -0
  108. package/dist/storage/rdf/Rdf3xIndex.js +20 -16
  109. package/dist/storage/rdf/RdfAccessScope.d.ts +4 -0
  110. package/dist/storage/rdf/RdfAccessScope.js +74 -9
  111. package/dist/storage/rdf/RdfAccessScope.jsonld +16 -0
  112. package/dist/storage/rdf/RdfEngineRdfJsSource.d.ts +14 -0
  113. package/dist/storage/rdf/RdfEngineRdfJsSource.js +179 -0
  114. package/dist/storage/rdf/RdfQuadIndex.d.ts +13 -14
  115. package/dist/storage/rdf/RdfQuadIndex.js +286 -99
  116. package/dist/storage/rdf/RdfQuadIndex.jsonld +10 -22
  117. package/dist/storage/rdf/RdfQueryExecutor.js +10 -4
  118. package/dist/storage/rdf/RdfQuerySparqlEngine.d.ts +33 -0
  119. package/dist/storage/rdf/RdfQuerySparqlEngine.js +215 -0
  120. package/dist/storage/rdf/RdfQuerySparqlEngine.jsonld +78 -0
  121. package/dist/storage/rdf/RdfSparqlAdapter.d.ts +0 -4
  122. package/dist/storage/rdf/RdfSparqlAdapter.js +75 -173
  123. package/dist/storage/rdf/RdfSparqlBoundary.d.ts +37 -0
  124. package/dist/storage/rdf/RdfSparqlBoundary.js +247 -0
  125. package/dist/storage/rdf/RdfSparqlSerialization.d.ts +3 -0
  126. package/dist/storage/rdf/RdfSparqlSerialization.js +19 -0
  127. package/dist/storage/rdf/RdfSqliteConnection.d.ts +7 -0
  128. package/dist/storage/rdf/RdfSqliteConnection.js +23 -0
  129. package/dist/storage/rdf/RdfTermDictionary.d.ts +0 -8
  130. package/dist/storage/rdf/RdfTermDictionary.js +0 -136
  131. package/dist/storage/rdf/RdfTermDictionary.jsonld +0 -32
  132. package/dist/storage/rdf/RdfTermSemantics.d.ts +6 -0
  133. package/dist/storage/rdf/RdfTermSemantics.js +29 -0
  134. package/dist/storage/rdf/RdfTextIndex.d.ts +5 -6
  135. package/dist/storage/rdf/RdfTextIndex.js +187 -115
  136. package/dist/storage/rdf/RdfTextIndex.jsonld +10 -14
  137. package/dist/storage/rdf/RdfVectorIndex.d.ts +4 -4
  138. package/dist/storage/rdf/RdfVectorIndex.js +156 -233
  139. package/dist/storage/rdf/RdfVectorIndex.jsonld +10 -14
  140. package/dist/storage/rdf/SolidRdfEngine.d.ts +16 -21
  141. package/dist/storage/rdf/SolidRdfEngine.js +28 -308
  142. package/dist/storage/rdf/SolidRdfEngine.jsonld +26 -148
  143. package/dist/storage/rdf/XpodComunicaQueryEngine.d.ts +10 -0
  144. package/dist/storage/rdf/XpodComunicaQueryEngine.js +72 -0
  145. package/dist/storage/rdf/index.d.ts +7 -6
  146. package/dist/storage/rdf/index.js +17 -12
  147. package/dist/storage/rdf/models-benchmark.d.ts +5 -1
  148. package/dist/storage/rdf/models-benchmark.js +17 -19
  149. package/dist/storage/rdf/types.d.ts +68 -6
  150. package/dist/storage/rdf/types.jsonld +69 -0
  151. package/dist/storage/sparql/SubgraphQueryEngine.d.ts +13 -7
  152. package/dist/storage/sparql/SubgraphQueryEngine.js +6 -6
  153. package/dist/storage/vector/index.d.ts +0 -1
  154. package/dist/storage/vector/index.js +0 -1
  155. package/dist/terminal/AclPermissionService.d.ts +4 -5
  156. package/dist/terminal/AclPermissionService.js +55 -75
  157. package/dist/terminal/TerminalSessionManager.d.ts +3 -2
  158. package/dist/terminal/TerminalSessionManager.js +3 -3
  159. package/node_modules/@undefineds.co/drizzle-solid/dist/core/execution/ldp-executor.d.ts +1 -0
  160. package/node_modules/@undefineds.co/drizzle-solid/dist/core/execution/ldp-executor.d.ts.map +1 -1
  161. package/node_modules/@undefineds.co/drizzle-solid/dist/core/execution/ldp-executor.js +29 -26
  162. package/node_modules/@undefineds.co/drizzle-solid/dist/core/execution/ldp-executor.js.map +1 -1
  163. package/node_modules/@undefineds.co/drizzle-solid/dist/core/execution/sparql-strategy.d.ts.map +1 -1
  164. package/node_modules/@undefineds.co/drizzle-solid/dist/core/execution/sparql-strategy.js +9 -4
  165. package/node_modules/@undefineds.co/drizzle-solid/dist/core/execution/sparql-strategy.js.map +1 -1
  166. package/node_modules/@undefineds.co/drizzle-solid/dist/core/notifications/notifications-client.d.ts +1 -0
  167. package/node_modules/@undefineds.co/drizzle-solid/dist/core/notifications/notifications-client.d.ts.map +1 -1
  168. package/node_modules/@undefineds.co/drizzle-solid/dist/core/notifications/notifications-client.js +6 -3
  169. package/node_modules/@undefineds.co/drizzle-solid/dist/core/notifications/notifications-client.js.map +1 -1
  170. package/node_modules/@undefineds.co/drizzle-solid/dist/core/pod-database.js +3 -3
  171. package/node_modules/@undefineds.co/drizzle-solid/dist/core/pod-database.js.map +1 -1
  172. package/node_modules/@undefineds.co/drizzle-solid/dist/core/query-builders/select-query-builder.d.ts +6 -0
  173. package/node_modules/@undefineds.co/drizzle-solid/dist/core/query-builders/select-query-builder.d.ts.map +1 -1
  174. package/node_modules/@undefineds.co/drizzle-solid/dist/core/query-builders/select-query-builder.js +13 -3
  175. package/node_modules/@undefineds.co/drizzle-solid/dist/core/query-builders/select-query-builder.js.map +1 -1
  176. package/node_modules/@undefineds.co/drizzle-solid/dist/core/query-where-policy.d.ts +1 -0
  177. package/node_modules/@undefineds.co/drizzle-solid/dist/core/query-where-policy.d.ts.map +1 -1
  178. package/node_modules/@undefineds.co/drizzle-solid/dist/core/query-where-policy.js +31 -0
  179. package/node_modules/@undefineds.co/drizzle-solid/dist/core/query-where-policy.js.map +1 -1
  180. package/node_modules/@undefineds.co/drizzle-solid/dist/core/sparql/builder/expression-builder.d.ts.map +1 -1
  181. package/node_modules/@undefineds.co/drizzle-solid/dist/core/sparql/builder/expression-builder.js +5 -0
  182. package/node_modules/@undefineds.co/drizzle-solid/dist/core/sparql/builder/expression-builder.js.map +1 -1
  183. package/node_modules/@undefineds.co/drizzle-solid/dist/core/sparql-executor.d.ts +1 -0
  184. package/node_modules/@undefineds.co/drizzle-solid/dist/core/sparql-executor.d.ts.map +1 -1
  185. package/node_modules/@undefineds.co/drizzle-solid/dist/core/sparql-executor.js +45 -0
  186. package/node_modules/@undefineds.co/drizzle-solid/dist/core/sparql-executor.js.map +1 -1
  187. package/node_modules/@undefineds.co/drizzle-solid/dist/esm/core/execution/ldp-executor.d.ts +1 -0
  188. package/node_modules/@undefineds.co/drizzle-solid/dist/esm/core/execution/ldp-executor.d.ts.map +1 -1
  189. package/node_modules/@undefineds.co/drizzle-solid/dist/esm/core/execution/ldp-executor.js +29 -26
  190. package/node_modules/@undefineds.co/drizzle-solid/dist/esm/core/execution/ldp-executor.js.map +1 -1
  191. package/node_modules/@undefineds.co/drizzle-solid/dist/esm/core/execution/sparql-strategy.d.ts.map +1 -1
  192. package/node_modules/@undefineds.co/drizzle-solid/dist/esm/core/execution/sparql-strategy.js +9 -4
  193. package/node_modules/@undefineds.co/drizzle-solid/dist/esm/core/execution/sparql-strategy.js.map +1 -1
  194. package/node_modules/@undefineds.co/drizzle-solid/dist/esm/core/notifications/notifications-client.d.ts +1 -0
  195. package/node_modules/@undefineds.co/drizzle-solid/dist/esm/core/notifications/notifications-client.d.ts.map +1 -1
  196. package/node_modules/@undefineds.co/drizzle-solid/dist/esm/core/notifications/notifications-client.js +6 -3
  197. package/node_modules/@undefineds.co/drizzle-solid/dist/esm/core/notifications/notifications-client.js.map +1 -1
  198. package/node_modules/@undefineds.co/drizzle-solid/dist/esm/core/pod-database.js +3 -3
  199. package/node_modules/@undefineds.co/drizzle-solid/dist/esm/core/pod-database.js.map +1 -1
  200. package/node_modules/@undefineds.co/drizzle-solid/dist/esm/core/query-builders/select-query-builder.d.ts +6 -0
  201. package/node_modules/@undefineds.co/drizzle-solid/dist/esm/core/query-builders/select-query-builder.d.ts.map +1 -1
  202. package/node_modules/@undefineds.co/drizzle-solid/dist/esm/core/query-builders/select-query-builder.js +14 -4
  203. package/node_modules/@undefineds.co/drizzle-solid/dist/esm/core/query-builders/select-query-builder.js.map +1 -1
  204. package/node_modules/@undefineds.co/drizzle-solid/dist/esm/core/query-where-policy.d.ts +1 -0
  205. package/node_modules/@undefineds.co/drizzle-solid/dist/esm/core/query-where-policy.d.ts.map +1 -1
  206. package/node_modules/@undefineds.co/drizzle-solid/dist/esm/core/query-where-policy.js +30 -0
  207. package/node_modules/@undefineds.co/drizzle-solid/dist/esm/core/query-where-policy.js.map +1 -1
  208. package/node_modules/@undefineds.co/drizzle-solid/dist/esm/core/sparql/builder/expression-builder.d.ts.map +1 -1
  209. package/node_modules/@undefineds.co/drizzle-solid/dist/esm/core/sparql/builder/expression-builder.js +5 -0
  210. package/node_modules/@undefineds.co/drizzle-solid/dist/esm/core/sparql/builder/expression-builder.js.map +1 -1
  211. package/node_modules/@undefineds.co/drizzle-solid/dist/esm/core/sparql-executor.d.ts +1 -0
  212. package/node_modules/@undefineds.co/drizzle-solid/dist/esm/core/sparql-executor.d.ts.map +1 -1
  213. package/node_modules/@undefineds.co/drizzle-solid/dist/esm/core/sparql-executor.js +45 -0
  214. package/node_modules/@undefineds.co/drizzle-solid/dist/esm/core/sparql-executor.js.map +1 -1
  215. package/node_modules/@undefineds.co/drizzle-solid/package.json +5 -4
  216. package/package.json +19 -8
  217. package/static/app/assets/{index-36TJKN-3.js → index-BikOyGPu.js} +34 -34
  218. package/static/app/assets/inrupt-smoke.js +2 -2
  219. package/static/app/assets/main.css +1 -1
  220. package/static/app/assets/main.js +11 -11
  221. package/static/auth-callback/assets/{AiConfigContext-DNfRNaZQ.js → AiConfigContext-iQ74JmRZ.js} +1 -1
  222. package/static/auth-callback/assets/{AiConfigPage-BBiTOm3o.js → AiConfigPage-BBDKE1gJ.js} +1 -1
  223. package/static/auth-callback/assets/{DocumentProcessingPanel-BzpEwqKT.js → DocumentProcessingPanel-D9NntIEK.js} +1 -1
  224. package/static/auth-callback/assets/{IndexLifecyclePanel-CvXMwooQ.js → IndexLifecyclePanel-BG07yBdA.js} +1 -1
  225. package/static/auth-callback/assets/{IndexSubjectPanel-CayA221L.js → IndexSubjectPanel-B-bUnU3G.js} +1 -1
  226. package/static/auth-callback/assets/{ModelAssignmentsPanel-Iew2QgtR.js → ModelAssignmentsPanel-C7I-Nqy-.js} +1 -1
  227. package/static/auth-callback/assets/{ModelsPage-CTJKAUA3.js → ModelsPage-C2hxyrmI.js} +1 -1
  228. package/static/auth-callback/assets/{NetworkPage--8ZCjIHB.js → NetworkPage-IGIc2q1Y.js} +1 -1
  229. package/static/auth-callback/assets/{PaneListHeader-BT-OGKL7.js → PaneListHeader-CebuPl_g.js} +1 -1
  230. package/static/auth-callback/assets/{SearchIndexingPanel-CFjjk1-C.js → SearchIndexingPanel-6HnZSg00.js} +1 -1
  231. package/static/auth-callback/assets/{StatusSubjectPanel-DAN5Ej9q.js → StatusSubjectPanel-votxBkr5.js} +1 -1
  232. package/static/auth-callback/assets/{StatusWorkspace-CEgmKJcX.js → StatusWorkspace-Cksl61zX.js} +1 -1
  233. package/static/auth-callback/assets/{SystemSettingsPage-Bk0TB4RU.js → SystemSettingsPage-CKZFUaZT.js} +1 -1
  234. package/static/auth-callback/assets/{SystemSettingsSubjectPanel-CKl8ukiz.js → SystemSettingsSubjectPanel-pzfUcCf4.js} +1 -1
  235. package/static/auth-callback/assets/{activity-BOtct9Ie.js → activity-DQL6kZHZ.js} +1 -1
  236. package/static/auth-callback/assets/auth-callback-B_s8Ye5Z.css +1 -0
  237. package/static/auth-callback/assets/{auth-callback-ai6OMe6C.js → auth-callback-BxQMd_Mc.js} +39 -39
  238. package/static/auth-callback/assets/{badge-DGSg5wio.js → badge-DvW4LUHH.js} +1 -1
  239. package/static/auth-callback/assets/{download-4eVPmxQ_.js → download-Cx_uaCR1.js} +1 -1
  240. package/static/auth-callback/assets/{external-link-BlD92fAM.js → external-link-D6L6ExH1.js} +1 -1
  241. package/static/auth-callback/assets/{index-FrugCRsJ.js → index-BAS_hxGu.js} +1 -1
  242. package/static/auth-callback/assets/{index-7ppych8q.js → index-BmBjpCoD.js} +1 -1
  243. package/static/auth-callback/assets/{index-browser-dwpJ2mdT.js → index-browser-pdn4D3M4.js} +1 -1
  244. package/static/auth-callback/assets/{key-round-BFOQbNNp.js → key-round-BTBzOggq.js} +1 -1
  245. package/static/auth-callback/assets/{rotate-ccw-BySVgaAP.js → rotate-ccw-eV7Cx8sB.js} +1 -1
  246. package/static/auth-callback/assets/{skeleton-CgcxPTqc.js → skeleton-Bg4GYgBM.js} +1 -1
  247. package/static/auth-callback/assets/{waypoints-DM902DhB.js → waypoints-CJbydf0B.js} +1 -1
  248. package/static/auth-callback/assets/{workspace-layout-DlZlN49Q.js → workspace-layout-C6Hh8Xf-.js} +1 -1
  249. package/static/auth-callback/auth-callback.html +2 -2
  250. package/static/dashboard/assets/{AiConfigContext-VnWI7bOR.js → AiConfigContext-BkJj28vK.js} +1 -1
  251. package/static/dashboard/assets/{AiConfigPage-Dn3oxXcA.js → AiConfigPage-Cs9B4uyp.js} +1 -1
  252. package/static/dashboard/assets/{DocumentProcessingPanel-CAF1uLi3.js → DocumentProcessingPanel-BBWmM7mS.js} +1 -1
  253. package/static/dashboard/assets/{IndexLifecyclePanel-D9zVZwu8.js → IndexLifecyclePanel-D5xGTT_i.js} +1 -1
  254. package/static/dashboard/assets/{IndexSubjectPanel-_JCGwJmO.js → IndexSubjectPanel-d-mjDthn.js} +1 -1
  255. package/static/dashboard/assets/{ModelAssignmentsPanel-DtlxQxFa.js → ModelAssignmentsPanel-C-OLNbqf.js} +1 -1
  256. package/static/dashboard/assets/{ModelsPage-CCNTpXM5.js → ModelsPage-CBrLjuUn.js} +1 -1
  257. package/static/dashboard/assets/{NetworkPage-BAKv9unq.js → NetworkPage-BlYk8L1z.js} +1 -1
  258. package/static/dashboard/assets/{PaneListHeader-Dr1jq2Ii.js → PaneListHeader-A5oZJQC0.js} +1 -1
  259. package/static/dashboard/assets/{SearchIndexingPanel-BW0pPrQB.js → SearchIndexingPanel-Bs1j8ZP2.js} +1 -1
  260. package/static/dashboard/assets/{StatusSubjectPanel-c9iebk4M.js → StatusSubjectPanel-Qao3orvi.js} +1 -1
  261. package/static/dashboard/assets/{StatusWorkspace-KZ7zrrmB.js → StatusWorkspace-rDM0yDtk.js} +1 -1
  262. package/static/dashboard/assets/{SystemSettingsPage-fVSfJMi9.js → SystemSettingsPage-FPRPkKaR.js} +1 -1
  263. package/static/dashboard/assets/{SystemSettingsSubjectPanel-DUSxcVT8.js → SystemSettingsSubjectPanel-CjlJAxnX.js} +1 -1
  264. package/static/dashboard/assets/{activity-Dg4XxJA8.js → activity-CJ5K6hYC.js} +1 -1
  265. package/static/dashboard/assets/{badge-OHMG7sYk.js → badge-L-NMOi1P.js} +1 -1
  266. package/static/dashboard/assets/dashboard-B_s8Ye5Z.css +1 -0
  267. package/static/dashboard/assets/{dashboard-UuQZ5g0B.js → dashboard-DyjAyYxx.js} +34 -34
  268. package/static/dashboard/assets/{download-CkbQhuL2.js → download-Bi4u5K5B.js} +1 -1
  269. package/static/dashboard/assets/{external-link-C15frgwD.js → external-link-jmhLDfvT.js} +1 -1
  270. package/static/dashboard/assets/{index-BiU8tNWd.js → index-BoaGJBxf.js} +1 -1
  271. package/static/dashboard/assets/{index-JUkJUI4K.js → index-C22TAEi4.js} +1 -1
  272. package/static/dashboard/assets/{key-round-BVREfX5D.js → key-round-Dk1VmMrn.js} +1 -1
  273. package/static/dashboard/assets/{rotate-ccw-cPEquKE_.js → rotate-ccw-DIfLsSwi.js} +1 -1
  274. package/static/dashboard/assets/{skeleton-BPM2LdA5.js → skeleton-BGPJMHb-.js} +1 -1
  275. package/static/dashboard/assets/{waypoints-Cd3kODMk.js → waypoints-CY53egpu.js} +1 -1
  276. package/static/dashboard/assets/{workspace-layout-BP3gLLXb.js → workspace-layout-CoHkcx70.js} +1 -1
  277. package/static/dashboard/dashboard.html +2 -2
  278. package/static/settings/assets/{AiConfigContext-B-D3riwG.js → AiConfigContext-BcEPlEJe.js} +1 -1
  279. package/static/settings/assets/{AiConfigPage-CAYT-CgT.js → AiConfigPage-D-t3ZUhg.js} +1 -1
  280. package/static/settings/assets/{DocumentProcessingPanel-D__vS86O.js → DocumentProcessingPanel-m2SasiMO.js} +1 -1
  281. package/static/settings/assets/{IndexLifecyclePanel-CuYEAG62.js → IndexLifecyclePanel-BNmAvx8V.js} +1 -1
  282. package/static/settings/assets/{IndexSubjectPanel-Do71gQQC.js → IndexSubjectPanel-C5-L2AcW.js} +1 -1
  283. package/static/settings/assets/{ModelAssignmentsPanel-Cn3kSze7.js → ModelAssignmentsPanel-Cfpkf02Y.js} +1 -1
  284. package/static/settings/assets/{ModelsPage-BKO0ARYt.js → ModelsPage-DZrACwVN.js} +1 -1
  285. package/static/settings/assets/{NetworkPage-XPYrdyVd.js → NetworkPage-BlrGGfqL.js} +1 -1
  286. package/static/settings/assets/{PaneListHeader-BAiQcCss.js → PaneListHeader-C3TCs1RI.js} +1 -1
  287. package/static/settings/assets/{SearchIndexingPanel-Bx3Fco0x.js → SearchIndexingPanel-Cyp3CUzX.js} +1 -1
  288. package/static/settings/assets/{StatusSubjectPanel-BzKzXmSL.js → StatusSubjectPanel-gRkb8WEX.js} +1 -1
  289. package/static/settings/assets/{StatusWorkspace-NjLpo9xp.js → StatusWorkspace-Dptx4Ec2.js} +1 -1
  290. package/static/settings/assets/{SystemSettingsPage-CclI_Lpv.js → SystemSettingsPage-BWgGUQbs.js} +1 -1
  291. package/static/settings/assets/{SystemSettingsSubjectPanel-CMnSE-8N.js → SystemSettingsSubjectPanel-VflUvpgC.js} +1 -1
  292. package/static/settings/assets/{activity-DYpNPFzG.js → activity-D7iNhTkQ.js} +1 -1
  293. package/static/settings/assets/{badge-C7Vhmg28.js → badge-DO0r_RT4.js} +1 -1
  294. package/static/settings/assets/{download-DdXcAiwj.js → download-CsJlNSbd.js} +1 -1
  295. package/static/settings/assets/{external-link-D7thdQae.js → external-link-BCR7SHme.js} +1 -1
  296. package/static/settings/assets/{index-CwBKvDQZ.js → index-Cgq16ekN.js} +1 -1
  297. package/static/settings/assets/{index-BnYbrf5s.js → index-SrhQvcrU.js} +1 -1
  298. package/static/settings/assets/{index-browser-DYzi1DO1.js → index-browser-THpcMCnz.js} +1 -1
  299. package/static/settings/assets/{key-round-BXErodZA.js → key-round-Dd3jk1BT.js} +1 -1
  300. package/static/settings/assets/{rotate-ccw-DPyOBmDD.js → rotate-ccw-tiL14i1d.js} +1 -1
  301. package/static/settings/assets/settings-B_s8Ye5Z.css +1 -0
  302. package/static/settings/assets/{settings-BGpEf8nx.js → settings-CVLDPejo.js} +34 -34
  303. package/static/settings/assets/{skeleton-S9l3JIr9.js → skeleton-DBxLuNgU.js} +1 -1
  304. package/static/settings/assets/{waypoints-C5By7zWc.js → waypoints-DS3e3hv7.js} +1 -1
  305. package/static/settings/assets/{workspace-layout-Bb6RVAEx.js → workspace-layout-mucrxyTK.js} +1 -1
  306. package/static/settings/settings.html +2 -2
  307. package/config/search.json +0 -66
  308. package/dist/document/HeadingChunker.jsonld +0 -41
  309. package/dist/security/secret-cell/DeploymentRootKeyProvider.jsonld +0 -124
  310. package/dist/security/secret-cell/SecretCellVault.jsonld +0 -207
  311. package/dist/storage/PostgresDerivedIndexJournal.d.ts +0 -47
  312. package/dist/storage/PostgresDerivedIndexJournal.js +0 -408
  313. package/dist/storage/PostgresDerivedIndexJournal.jsonld +0 -303
  314. package/dist/storage/RdfDerivedIndexingListener.d.ts +0 -32
  315. package/dist/storage/RdfDerivedIndexingListener.js +0 -135
  316. package/dist/storage/RdfDerivedIndexingListener.jsonld +0 -228
  317. package/dist/storage/accessors/QuadstoreSparqlDataAccessor.d.ts +0 -148
  318. package/dist/storage/accessors/QuadstoreSparqlDataAccessor.js +0 -436
  319. package/dist/storage/accessors/QuadstoreSparqlDataAccessor.jsonld +0 -172
  320. package/dist/storage/accessors/QuintStoreSparqlDataAccessor.d.ts +0 -102
  321. package/dist/storage/accessors/QuintStoreSparqlDataAccessor.js +0 -474
  322. package/dist/storage/accessors/QuintStoreSparqlDataAccessor.jsonld +0 -192
  323. package/dist/storage/rdf/RdfSparqlAdapter.jsonld +0 -486
  324. package/dist/storage/rdf/ShadowRdfQuintStore.d.ts +0 -59
  325. package/dist/storage/rdf/ShadowRdfQuintStore.js +0 -216
  326. package/dist/storage/rdf/ShadowRdfQuintStore.jsonld +0 -312
  327. package/dist/storage/rdf/SolidRdfSparqlEngine.d.ts +0 -107
  328. package/dist/storage/rdf/SolidRdfSparqlEngine.js +0 -1117
  329. package/dist/storage/rdf/SolidRdfSparqlEngine.jsonld +0 -312
  330. package/dist/storage/sparql/AlgebraUtils.d.ts +0 -48
  331. package/dist/storage/sparql/AlgebraUtils.js +0 -118
  332. package/dist/storage/sparql/CompatibilitySparqlEngine.d.ts +0 -37
  333. package/dist/storage/sparql/CompatibilitySparqlEngine.js +0 -96
  334. package/dist/storage/sparql/CompatibilitySparqlEngine.jsonld +0 -123
  335. package/dist/storage/sparql/CompatibilitySparqlEngineImpl.d.ts +0 -36
  336. package/dist/storage/sparql/CompatibilitySparqlEngineImpl.js +0 -124
  337. package/dist/storage/sparql/ComunicaOptimizedEngine.d.ts +0 -59
  338. package/dist/storage/sparql/ComunicaOptimizedEngine.js +0 -254
  339. package/dist/storage/sparql/ComunicaQuintEngine.d.ts +0 -143
  340. package/dist/storage/sparql/ComunicaQuintEngine.js +0 -781
  341. package/dist/storage/sparql/ExpressionEvaluator.d.ts +0 -54
  342. package/dist/storage/sparql/ExpressionEvaluator.js +0 -340
  343. package/dist/storage/sparql/FilterPushdownExtractor.d.ts +0 -74
  344. package/dist/storage/sparql/FilterPushdownExtractor.js +0 -421
  345. package/dist/storage/sparql/OptimizedQuadstoreEngine.d.ts +0 -65
  346. package/dist/storage/sparql/OptimizedQuadstoreEngine.js +0 -327
  347. package/dist/storage/sparql/OptimizedQuadstoreSource.d.ts +0 -46
  348. package/dist/storage/sparql/OptimizedQuadstoreSource.js +0 -118
  349. package/dist/storage/sparql/PatternBuilder.d.ts +0 -41
  350. package/dist/storage/sparql/PatternBuilder.js +0 -118
  351. package/dist/storage/sparql/QueryOptimizer.d.ts +0 -125
  352. package/dist/storage/sparql/QueryOptimizer.js +0 -375
  353. package/dist/storage/sparql/QuintEngine.d.ts +0 -92
  354. package/dist/storage/sparql/QuintEngine.js +0 -150
  355. package/dist/storage/sparql/QuintQuerySource.d.ts +0 -241
  356. package/dist/storage/sparql/QuintQuerySource.js +0 -1069
  357. package/dist/storage/sparql/SimpleSparqlExecutor.d.ts +0 -40
  358. package/dist/storage/sparql/SimpleSparqlExecutor.js +0 -131
  359. package/dist/storage/vector/VectorIndexingListener.d.ts +0 -114
  360. package/dist/storage/vector/VectorIndexingListener.js +0 -346
  361. package/static/auth-callback/assets/auth-callback-rWdEQY5f.css +0 -1
  362. package/static/dashboard/assets/dashboard-rWdEQY5f.css +0 -1
  363. package/static/settings/assets/settings-rWdEQY5f.css +0 -1
@@ -0,0 +1,37 @@
1
+ export interface UnsupportedSparqlQueryErrorOptions {
2
+ code?: string;
3
+ capability?: string;
4
+ hint?: string;
5
+ correction?: SparqlCorrection;
6
+ }
7
+ export type SparqlCorrectionAction = 'rewrite_query' | 'constrain_graph_scope' | 'materialize_intermediate' | 'route_external_executor' | 'use_write_api';
8
+ export type SparqlCorrectionTarget = 'embedded_rdf_engine' | 'trusted_client_or_federated_engine' | 'pod_write_api';
9
+ export interface SparqlCorrection {
10
+ capability: string;
11
+ primaryAction: SparqlCorrectionAction;
12
+ availableActions: SparqlCorrectionAction[];
13
+ target: SparqlCorrectionTarget;
14
+ message: string;
15
+ }
16
+ export declare class UnsupportedSparqlQueryError extends Error {
17
+ readonly code: string;
18
+ readonly capability: string;
19
+ readonly hint: string;
20
+ readonly correction: SparqlCorrection;
21
+ constructor(message: string, options?: UnsupportedSparqlQueryErrorOptions);
22
+ }
23
+ export declare class DisabledSparqlFeatureError extends Error {
24
+ constructor(message: string);
25
+ }
26
+ export declare class NativeSparqlExecutionError extends Error {
27
+ readonly code = "rdf.sparql.native_execution_error";
28
+ constructor(message: string);
29
+ }
30
+ export declare class NativeSparqlTimeoutError extends Error {
31
+ readonly timeoutMs: number;
32
+ readonly code = "rdf.sparql.timeout";
33
+ constructor(timeoutMs: number, detail?: string);
34
+ }
35
+ export declare function sparqlCorrectionForCapability(capability: string): SparqlCorrection;
36
+ /** Validate only the server-owned graph and SERVICE boundary before native QLever execution. */
37
+ export declare function assertServerOwnedNativeSparqlQuery(query: string, basePath: string): boolean;
@@ -0,0 +1,247 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.NativeSparqlTimeoutError = exports.NativeSparqlExecutionError = exports.DisabledSparqlFeatureError = exports.UnsupportedSparqlQueryError = void 0;
4
+ exports.sparqlCorrectionForCapability = sparqlCorrectionForCapability;
5
+ exports.assertServerOwnedNativeSparqlQuery = assertServerOwnedNativeSparqlQuery;
6
+ const sparqljs_1 = require("sparqljs");
7
+ const QLEVER_SERVICE_HOST = 'qlever.cs.uni-freiburg.de';
8
+ const QLEVER_EXTENSION_SERVICE_ENDPOINTS = new Set([
9
+ `https://${QLEVER_SERVICE_HOST}/pathSearch/`,
10
+ `https://${QLEVER_SERVICE_HOST}/spatialSearch/`,
11
+ `https://${QLEVER_SERVICE_HOST}/textSearch/`,
12
+ `https://${QLEVER_SERVICE_HOST}/external-values/`,
13
+ ]);
14
+ const QLEVER_EXTENSION_SERVICE_PREFIXES = [
15
+ `https://${QLEVER_SERVICE_HOST}/external-values-`,
16
+ `http://${QLEVER_SERVICE_HOST}/builtin-functions/cached-result-with-name-`,
17
+ `https://${QLEVER_SERVICE_HOST}/materializedView/`,
18
+ ];
19
+ class UnsupportedSparqlQueryError extends Error {
20
+ constructor(message, options = {}) {
21
+ const normalizedMessage = normalizeUnsupportedSparqlMessage(message);
22
+ super(normalizedMessage);
23
+ this.name = 'UnsupportedSparqlQueryError';
24
+ this.code = options.code ?? 'rdf.sparql.unsupported_query_shape';
25
+ this.capability = options.capability ?? inferUnsupportedSparqlCapability(normalizedMessage);
26
+ this.hint = options.hint ?? unsupportedSparqlHint(this.capability);
27
+ this.correction = options.correction ?? sparqlCorrectionForCapability(this.capability);
28
+ }
29
+ }
30
+ exports.UnsupportedSparqlQueryError = UnsupportedSparqlQueryError;
31
+ function normalizeUnsupportedSparqlMessage(message) {
32
+ const noFallbackMatch = /^No compatibility SPARQL fallback configured for ([^:]+):\s*(.+)$/i.exec(message);
33
+ if (noFallbackMatch) {
34
+ return `Embedded SPARQL engine cannot execute ${noFallbackMatch[1]}: ${normalizeEmbeddedUnsupportedReason(noFallbackMatch[2])}`;
35
+ }
36
+ return normalizeEmbeddedUnsupportedReason(message);
37
+ }
38
+ function normalizeEmbeddedUnsupportedReason(reason) {
39
+ let normalized = reason
40
+ .replace(/\s+fallback to compatibility engine\b/gi, ' is not supported by the embedded RDF engine')
41
+ .replace(/\bis handled by the compatibility engine\b/gi, 'is not supported by the embedded RDF engine')
42
+ .replace(/\bcompatibility fallback\b/gi, 'embedded RDF engine');
43
+ if (/^unsupported shape$/i.test(normalized.trim())) {
44
+ normalized = 'Query shape is not supported by the embedded RDF engine';
45
+ }
46
+ return normalized;
47
+ }
48
+ class DisabledSparqlFeatureError extends Error {
49
+ constructor(message) {
50
+ super(message);
51
+ this.name = 'DisabledSparqlFeatureError';
52
+ }
53
+ }
54
+ exports.DisabledSparqlFeatureError = DisabledSparqlFeatureError;
55
+ class NativeSparqlExecutionError extends Error {
56
+ constructor(message) {
57
+ super(message.startsWith('Native SPARQL engine failed:') ? message : `Native SPARQL engine failed: ${message}`);
58
+ this.code = 'rdf.sparql.native_execution_error';
59
+ this.name = 'NativeSparqlExecutionError';
60
+ }
61
+ }
62
+ exports.NativeSparqlExecutionError = NativeSparqlExecutionError;
63
+ class NativeSparqlTimeoutError extends Error {
64
+ constructor(timeoutMs, detail) {
65
+ super(`Native SPARQL query timed out after ${timeoutMs}ms${detail ? `: ${detail}` : ''}`);
66
+ this.timeoutMs = timeoutMs;
67
+ this.code = 'rdf.sparql.timeout';
68
+ this.name = 'NativeSparqlTimeoutError';
69
+ }
70
+ }
71
+ exports.NativeSparqlTimeoutError = NativeSparqlTimeoutError;
72
+ function inferUnsupportedSparqlCapability(message) {
73
+ const normalized = message.toLowerCase();
74
+ if (normalized.includes('subquer'))
75
+ return 'sparql.query.subquery';
76
+ if (normalized.includes('rdf-star'))
77
+ return 'sparql.query.rdf_star';
78
+ if (normalized.includes('property path'))
79
+ return 'sparql.query.property_path';
80
+ if (normalized.includes('default graph'))
81
+ return 'sparql.graph.default';
82
+ if (normalized.includes('graph variable'))
83
+ return 'sparql.graph.variable';
84
+ if (normalized.includes('graph outside') || normalized.includes('dataset scope'))
85
+ return 'sparql.graph.scope';
86
+ if (normalized.includes('update'))
87
+ return 'sparql.update.authority';
88
+ if (normalized.includes('construct'))
89
+ return 'sparql.query.construct';
90
+ if (normalized.includes('describe'))
91
+ return 'sparql.query.describe';
92
+ if (normalized.includes('wildcard'))
93
+ return 'sparql.query.wildcard_projection';
94
+ if (normalized.includes('having'))
95
+ return 'sparql.query.having';
96
+ if (normalized.includes('group by') || normalized.includes('grouped'))
97
+ return 'sparql.query.group';
98
+ if (normalized.includes('aggregate'))
99
+ return 'sparql.query.aggregate';
100
+ if (normalized.includes('values'))
101
+ return 'sparql.query.values';
102
+ if (/\bbind\b/.test(normalized))
103
+ return 'sparql.query.bind';
104
+ if (normalized.includes('minus'))
105
+ return 'sparql.query.minus';
106
+ if (normalized.includes('exists'))
107
+ return 'sparql.query.exists';
108
+ if (normalized.includes('optional'))
109
+ return 'sparql.query.optional';
110
+ if (normalized.includes('union'))
111
+ return 'sparql.query.union';
112
+ if (normalized.includes('filter'))
113
+ return 'sparql.query.filter';
114
+ if (normalized.includes('function'))
115
+ return 'sparql.query.function';
116
+ return 'sparql.query.shape';
117
+ }
118
+ function unsupportedSparqlHint(capability) {
119
+ switch (capability) {
120
+ case 'sparql.query.subquery':
121
+ return 'Flatten the subquery, materialize its intermediate result, or route it through a trusted external executor.';
122
+ case 'sparql.query.property_path':
123
+ return 'Rewrite the property path as explicit predicate patterns, or use a QLever-supported path expression.';
124
+ case 'sparql.graph.default':
125
+ return 'Use explicit named GRAPH clauses inside the Pod base path.';
126
+ case 'sparql.graph.variable':
127
+ return 'Constrain graph variables to finite named graphs inside the Pod base path.';
128
+ case 'sparql.graph.scope':
129
+ return 'Limit GRAPH, FROM, and USING targets to graph documents inside the current Pod base path.';
130
+ case 'sparql.update.authority':
131
+ return 'Send the update through the Pod write authority so QLever can prepare an atomic source-file delta.';
132
+ default:
133
+ return 'Rewrite the query to a QLever-supported shape, or route it through a trusted external executor.';
134
+ }
135
+ }
136
+ function sparqlCorrectionForCapability(capability) {
137
+ if (capability === 'sparql.geosparql') {
138
+ return {
139
+ capability,
140
+ primaryAction: 'route_external_executor',
141
+ availableActions: ['route_external_executor', 'materialize_intermediate'],
142
+ target: 'trusted_client_or_federated_engine',
143
+ message: 'Route GeoSPARQL to a trusted external executor until Xpod has a concrete native product workload.',
144
+ };
145
+ }
146
+ if (capability === 'sparql.federation.service') {
147
+ return {
148
+ capability,
149
+ primaryAction: 'route_external_executor',
150
+ availableActions: ['route_external_executor'],
151
+ target: 'trusted_client_or_federated_engine',
152
+ message: 'Execute SERVICE federation from a trusted client-side or federated query layer.',
153
+ };
154
+ }
155
+ if (capability === 'sparql.update.authority' || capability === 'sparql.update.embedded_delta') {
156
+ return {
157
+ capability,
158
+ primaryAction: 'use_write_api',
159
+ availableActions: ['use_write_api', 'rewrite_query'],
160
+ target: 'pod_write_api',
161
+ message: 'Apply the update through the Pod write authority and its QLever prepared-delta contract.',
162
+ };
163
+ }
164
+ if (capability === 'sparql.query.subquery' || capability === 'sparql.query.rdf_star') {
165
+ return {
166
+ capability,
167
+ primaryAction: 'materialize_intermediate',
168
+ availableActions: ['materialize_intermediate', 'rewrite_query', 'route_external_executor'],
169
+ target: 'embedded_rdf_engine',
170
+ message: 'Materialize the unsupported intermediate result before retrying, or route it through a trusted external executor.',
171
+ };
172
+ }
173
+ if (capability.startsWith('sparql.graph.')) {
174
+ return {
175
+ capability,
176
+ primaryAction: 'constrain_graph_scope',
177
+ availableActions: ['constrain_graph_scope', 'rewrite_query'],
178
+ target: 'embedded_rdf_engine',
179
+ message: 'Constrain graph scope to named graph documents inside the current Pod base path.',
180
+ };
181
+ }
182
+ return {
183
+ capability,
184
+ primaryAction: 'rewrite_query',
185
+ availableActions: ['rewrite_query', 'route_external_executor'],
186
+ target: 'embedded_rdf_engine',
187
+ message: 'Rewrite the query to a QLever-supported shape, or route it through a trusted external executor.',
188
+ };
189
+ }
190
+ /** Validate only the server-owned graph and SERVICE boundary before native QLever execution. */
191
+ function assertServerOwnedNativeSparqlQuery(query, basePath) {
192
+ const parsed = new sparqljs_1.Parser({ baseIRI: basePath }).parse(query);
193
+ const usesQleverExtensionService = assertNoExternalService(parsed);
194
+ if (parsed.type !== 'update') {
195
+ assertNativeDatasetScope(queryFromClause(parsed), basePath);
196
+ }
197
+ return usesQleverExtensionService;
198
+ }
199
+ function isQleverExtensionServiceEndpoint(value) {
200
+ if (value === null || typeof value !== 'object')
201
+ return false;
202
+ const endpoint = value;
203
+ if (endpoint.termType !== 'NamedNode' || typeof endpoint.value !== 'string')
204
+ return false;
205
+ return QLEVER_EXTENSION_SERVICE_ENDPOINTS.has(endpoint.value)
206
+ || QLEVER_EXTENSION_SERVICE_PREFIXES.some((prefix) => endpoint.value.startsWith(prefix));
207
+ }
208
+ function assertNoExternalService(value) {
209
+ if (Array.isArray(value)) {
210
+ let usesQleverExtensionService = false;
211
+ for (const item of value) {
212
+ if (assertNoExternalService(item))
213
+ usesQleverExtensionService = true;
214
+ }
215
+ return usesQleverExtensionService;
216
+ }
217
+ if (value === null || typeof value !== 'object')
218
+ return false;
219
+ const record = value;
220
+ let usesQleverExtensionService = false;
221
+ if (record.type === 'service') {
222
+ if (!isQleverExtensionServiceEndpoint(record.name)) {
223
+ throw new DisabledSparqlFeatureError('SPARQL SERVICE federation is disabled for server-owned Pod queries');
224
+ }
225
+ usesQleverExtensionService = true;
226
+ }
227
+ for (const child of Object.values(record)) {
228
+ if (assertNoExternalService(child))
229
+ usesQleverExtensionService = true;
230
+ }
231
+ return usesQleverExtensionService;
232
+ }
233
+ function assertNativeDatasetScope(datasets, basePath) {
234
+ for (const graph of [...datasets.default, ...datasets.named]) {
235
+ if (!graph.value.startsWith(basePath)) {
236
+ throw new DisabledSparqlFeatureError(`SPARQL dataset graph is outside the server-owned Pod scope: ${graph.value}`);
237
+ }
238
+ }
239
+ }
240
+ function queryFromClause(query) {
241
+ const from = 'from' in query ? query.from : undefined;
242
+ return {
243
+ default: from?.default ?? [],
244
+ named: from?.named ?? [],
245
+ };
246
+ }
247
+ //# sourceMappingURL=RdfSparqlBoundary.js.map
@@ -0,0 +1,3 @@
1
+ export declare function validateSparqlIri(value: string): string;
2
+ export declare function serializeSparqlIri(value: string): string;
3
+ export declare function serializeSparqlString(value: string): string;
@@ -0,0 +1,19 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.validateSparqlIri = validateSparqlIri;
4
+ exports.serializeSparqlIri = serializeSparqlIri;
5
+ exports.serializeSparqlString = serializeSparqlString;
6
+ const INVALID_IRIREF_CHARACTER = /[<>"{}|^`\\\u0000-\u0020]/u;
7
+ function validateSparqlIri(value) {
8
+ if (INVALID_IRIREF_CHARACTER.test(value)) {
9
+ throw new Error(`Unsafe IRI for SPARQL query: ${value}`);
10
+ }
11
+ return value;
12
+ }
13
+ function serializeSparqlIri(value) {
14
+ return `<${validateSparqlIri(value)}>`;
15
+ }
16
+ function serializeSparqlString(value) {
17
+ return JSON.stringify(value);
18
+ }
19
+ //# sourceMappingURL=RdfSparqlSerialization.js.map
@@ -0,0 +1,7 @@
1
+ import type { SqliteDatabase, SqliteRuntime } from '../SqliteRuntime';
2
+ /**
3
+ * Open the SQLite file shared by Local facts, FTS, VEC, and the QLever reader.
4
+ * WAL lets the long-lived native reader coexist with short authority writes;
5
+ * busy_timeout bounds transient writer contention instead of failing at once.
6
+ */
7
+ export declare function openRdfSqliteDatabase(sqliteRuntime: SqliteRuntime, path: string): SqliteDatabase;
@@ -0,0 +1,23 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.openRdfSqliteDatabase = openRdfSqliteDatabase;
4
+ /**
5
+ * Open the SQLite file shared by Local facts, FTS, VEC, and the QLever reader.
6
+ * WAL lets the long-lived native reader coexist with short authority writes;
7
+ * busy_timeout bounds transient writer contention instead of failing at once.
8
+ */
9
+ function openRdfSqliteDatabase(sqliteRuntime, path) {
10
+ const db = sqliteRuntime.openDatabase(path);
11
+ if (!isInMemorySqlitePath(path)) {
12
+ db.exec(`
13
+ PRAGMA journal_mode = WAL;
14
+ PRAGMA busy_timeout = 5000;
15
+ PRAGMA synchronous = NORMAL;
16
+ `);
17
+ }
18
+ return db;
19
+ }
20
+ function isInMemorySqlitePath(path) {
21
+ return path === ':memory:' || path.startsWith(':memory:');
22
+ }
23
+ //# sourceMappingURL=RdfSqliteConnection.js.map
@@ -10,7 +10,6 @@ export declare class RdfTermDictionary {
10
10
  private readonly termCache;
11
11
  private readonly idCache;
12
12
  constructor(db: SqliteDatabase);
13
- initialize(): void;
14
13
  getOrCreate(term: Term): number;
15
14
  find(term: Term): number | undefined;
16
15
  termForId(id: number): Term;
@@ -25,15 +24,8 @@ export declare class RdfTermDictionary {
25
24
  private toIdentity;
26
25
  private identity;
27
26
  private numericValueForLiteral;
28
- private ensureSafeTermTableSchema;
29
- private createSafeTermTable;
30
- private dropUnsafeRawTextIndexes;
31
- private ensureValueHeadColumn;
32
- private ensureNumericValueColumn;
33
- private backfillNumericValues;
34
27
  private identityCacheKey;
35
28
  private rowMatchesIdentity;
36
- private termTableColumns;
37
29
  private rowToTerm;
38
30
  }
39
31
  export declare function rdfTermValueHead(value: string): string;
@@ -15,20 +15,6 @@ class RdfTermDictionary {
15
15
  this.termCache = new Map();
16
16
  this.idCache = new Map();
17
17
  }
18
- initialize() {
19
- this.ensureSafeTermTableSchema();
20
- this.dropUnsafeRawTextIndexes();
21
- this.ensureValueHeadColumn();
22
- this.ensureNumericValueColumn();
23
- this.db.exec(`
24
- CREATE UNIQUE INDEX IF NOT EXISTS rdf_terms_identity_hash ON rdf_terms (hash);
25
- CREATE INDEX IF NOT EXISTS rdf_terms_kind_value_head ON rdf_terms (kind, value_head);
26
- CREATE INDEX IF NOT EXISTS rdf_terms_kind_datatype ON rdf_terms (kind, datatype_id);
27
- CREATE INDEX IF NOT EXISTS rdf_terms_kind_lang ON rdf_terms (kind, lang);
28
- CREATE INDEX IF NOT EXISTS rdf_terms_kind_numeric_value ON rdf_terms (kind, numeric_value);
29
- `);
30
- this.backfillNumericValues();
31
- }
32
18
  getOrCreate(term) {
33
19
  const identity = this.toIdentity(term);
34
20
  const cacheKey = this.identityCacheKey(identity);
@@ -368,125 +354,6 @@ class RdfTermDictionary {
368
354
  const numeric = (0, RdfTermSemantics_1.rdfNumericValue)(value);
369
355
  return Number.isFinite(numeric) ? numeric : null;
370
356
  }
371
- ensureSafeTermTableSchema() {
372
- const table = this.db
373
- .prepare("SELECT sql FROM sqlite_schema WHERE type = 'table' AND name = 'rdf_terms'")
374
- .get();
375
- if (!table) {
376
- this.createSafeTermTable('rdf_terms');
377
- return;
378
- }
379
- const columns = this.termTableColumns();
380
- const hasRawUniqueConstraint = table.sql?.includes('UNIQUE (kind, value, datatype_id, lang)') ?? false;
381
- if (!hasRawUniqueConstraint && columns.has('value_head') && columns.has('numeric_value')) {
382
- return;
383
- }
384
- const foreignKeys = this.db.prepare('PRAGMA foreign_keys').get()?.foreign_keys ?? 0;
385
- this.db.exec('PRAGMA foreign_keys = OFF;');
386
- try {
387
- this.db.transaction(() => {
388
- this.db.exec('DROP TABLE IF EXISTS rdf_terms_next;');
389
- this.createSafeTermTable('rdf_terms_next');
390
- this.db.exec(`
391
- INSERT INTO rdf_terms_next (
392
- id,
393
- kind,
394
- value,
395
- value_head,
396
- datatype_id,
397
- lang,
398
- hash,
399
- normalized_text,
400
- numeric_value,
401
- created_at
402
- )
403
- SELECT
404
- id,
405
- kind,
406
- value,
407
- substr(value, 1, ${exports.RDF_TERM_VALUE_HEAD_LENGTH}),
408
- datatype_id,
409
- lang,
410
- hash,
411
- normalized_text,
412
- ${columns.has('numeric_value') ? 'numeric_value' : 'NULL'},
413
- created_at
414
- FROM rdf_terms;
415
- `);
416
- this.db.exec(`
417
- DROP TABLE rdf_terms;
418
- ALTER TABLE rdf_terms_next RENAME TO rdf_terms;
419
- `);
420
- })();
421
- }
422
- finally {
423
- if (foreignKeys) {
424
- this.db.exec('PRAGMA foreign_keys = ON;');
425
- }
426
- }
427
- }
428
- createSafeTermTable(name) {
429
- this.db.exec(`
430
- CREATE TABLE IF NOT EXISTS ${name} (
431
- id INTEGER PRIMARY KEY AUTOINCREMENT,
432
- kind TEXT NOT NULL,
433
- value TEXT NOT NULL,
434
- value_head TEXT NOT NULL,
435
- datatype_id INTEGER,
436
- lang TEXT,
437
- hash TEXT NOT NULL,
438
- normalized_text TEXT,
439
- numeric_value REAL,
440
- created_at TEXT NOT NULL DEFAULT (strftime('%Y-%m-%dT%H:%M:%fZ', 'now'))
441
- );
442
- `);
443
- }
444
- dropUnsafeRawTextIndexes() {
445
- this.db.exec(`
446
- DROP INDEX IF EXISTS rdf_terms_hash;
447
- DROP INDEX IF EXISTS rdf_terms_kind_value;
448
- DROP INDEX IF EXISTS rdf_terms_normalized_text;
449
- `);
450
- }
451
- ensureValueHeadColumn() {
452
- const columns = this.termTableColumns();
453
- if (!columns.has('value_head')) {
454
- this.db.exec('ALTER TABLE rdf_terms ADD COLUMN value_head TEXT;');
455
- }
456
- this.db.exec(`
457
- UPDATE rdf_terms
458
- SET value_head = substr(value, 1, ${exports.RDF_TERM_VALUE_HEAD_LENGTH})
459
- WHERE value_head IS NULL;
460
- `);
461
- }
462
- ensureNumericValueColumn() {
463
- const columns = this.termTableColumns();
464
- if (columns.has('numeric_value')) {
465
- return;
466
- }
467
- this.db.exec('ALTER TABLE rdf_terms ADD COLUMN numeric_value REAL;');
468
- }
469
- backfillNumericValues() {
470
- const rows = this.db.prepare(`
471
- SELECT literal.*
472
- FROM rdf_terms literal
473
- JOIN rdf_terms datatype ON datatype.id = literal.datatype_id
474
- WHERE literal.kind = 'literal'
475
- AND literal.numeric_value IS NULL
476
- AND datatype.kind = 'iri'
477
- `).all();
478
- const update = this.db.prepare('UPDATE rdf_terms SET numeric_value = ? WHERE id = ?');
479
- for (const row of rows) {
480
- const datatype = this.termForId(row.datatype_id);
481
- if (datatype.termType !== 'NamedNode') {
482
- continue;
483
- }
484
- const numericValue = this.numericValueForLiteral(row.value, datatype.value);
485
- if (numericValue !== null) {
486
- update.run(numericValue, row.id);
487
- }
488
- }
489
- }
490
357
  identityCacheKey(identity) {
491
358
  return [
492
359
  identity.kind,
@@ -501,9 +368,6 @@ class RdfTermDictionary {
501
368
  && row.datatype_id === identity.datatypeId
502
369
  && row.lang === identity.lang;
503
370
  }
504
- termTableColumns() {
505
- return new Set(this.db.prepare('PRAGMA table_info(rdf_terms)').all().map((column) => column.name));
506
- }
507
371
  rowToTerm(row) {
508
372
  switch (row.kind) {
509
373
  case 'iri':
@@ -31,10 +31,6 @@
31
31
  "@id": "undefineds:dist/storage/rdf/RdfTermDictionary.jsonld#RdfTermDictionary__member_constructor",
32
32
  "memberFieldName": "constructor"
33
33
  },
34
- {
35
- "@id": "undefineds:dist/storage/rdf/RdfTermDictionary.jsonld#RdfTermDictionary__member_initialize",
36
- "memberFieldName": "initialize"
37
- },
38
34
  {
39
35
  "@id": "undefineds:dist/storage/rdf/RdfTermDictionary.jsonld#RdfTermDictionary__member_getOrCreate",
40
36
  "memberFieldName": "getOrCreate"
@@ -91,30 +87,6 @@
91
87
  "@id": "undefineds:dist/storage/rdf/RdfTermDictionary.jsonld#RdfTermDictionary__member_numericValueForLiteral",
92
88
  "memberFieldName": "numericValueForLiteral"
93
89
  },
94
- {
95
- "@id": "undefineds:dist/storage/rdf/RdfTermDictionary.jsonld#RdfTermDictionary__member_ensureSafeTermTableSchema",
96
- "memberFieldName": "ensureSafeTermTableSchema"
97
- },
98
- {
99
- "@id": "undefineds:dist/storage/rdf/RdfTermDictionary.jsonld#RdfTermDictionary__member_createSafeTermTable",
100
- "memberFieldName": "createSafeTermTable"
101
- },
102
- {
103
- "@id": "undefineds:dist/storage/rdf/RdfTermDictionary.jsonld#RdfTermDictionary__member_dropUnsafeRawTextIndexes",
104
- "memberFieldName": "dropUnsafeRawTextIndexes"
105
- },
106
- {
107
- "@id": "undefineds:dist/storage/rdf/RdfTermDictionary.jsonld#RdfTermDictionary__member_ensureValueHeadColumn",
108
- "memberFieldName": "ensureValueHeadColumn"
109
- },
110
- {
111
- "@id": "undefineds:dist/storage/rdf/RdfTermDictionary.jsonld#RdfTermDictionary__member_ensureNumericValueColumn",
112
- "memberFieldName": "ensureNumericValueColumn"
113
- },
114
- {
115
- "@id": "undefineds:dist/storage/rdf/RdfTermDictionary.jsonld#RdfTermDictionary__member_backfillNumericValues",
116
- "memberFieldName": "backfillNumericValues"
117
- },
118
90
  {
119
91
  "@id": "undefineds:dist/storage/rdf/RdfTermDictionary.jsonld#RdfTermDictionary__member_identityCacheKey",
120
92
  "memberFieldName": "identityCacheKey"
@@ -123,10 +95,6 @@
123
95
  "@id": "undefineds:dist/storage/rdf/RdfTermDictionary.jsonld#RdfTermDictionary__member_rowMatchesIdentity",
124
96
  "memberFieldName": "rowMatchesIdentity"
125
97
  },
126
- {
127
- "@id": "undefineds:dist/storage/rdf/RdfTermDictionary.jsonld#RdfTermDictionary__member_termTableColumns",
128
- "memberFieldName": "termTableColumns"
129
- },
130
98
  {
131
99
  "@id": "undefineds:dist/storage/rdf/RdfTermDictionary.jsonld#RdfTermDictionary__member_rowToTerm",
132
100
  "memberFieldName": "rowToTerm"
@@ -4,3 +4,9 @@ export declare function isRdfNumericDatatype(datatype: string): boolean;
4
4
  export declare function isFiniteNumericLexical(value: string | number): boolean;
5
5
  export declare function rdfNumericValue(value: string | number): number;
6
6
  export declare function isRdfNumericTerm(term: Term): boolean;
7
+ /**
8
+ * Completes the numeric ORDER BY relation where SPARQL value comparison is
9
+ * unordered: Xpod and QLever place NaN after every other numeric value.
10
+ * All non-NaN comparisons stay owned by the query evaluator.
11
+ */
12
+ export declare function compareRdfNumericNaNOrder(left: Term | undefined, right: Term | undefined): -1 | 0 | 1 | undefined;
@@ -5,6 +5,7 @@ exports.isRdfNumericDatatype = isRdfNumericDatatype;
5
5
  exports.isFiniteNumericLexical = isFiniteNumericLexical;
6
6
  exports.rdfNumericValue = rdfNumericValue;
7
7
  exports.isRdfNumericTerm = isRdfNumericTerm;
8
+ exports.compareRdfNumericNaNOrder = compareRdfNumericNaNOrder;
8
9
  exports.RDF_NUMERIC_DATATYPES = [
9
10
  'http://www.w3.org/2001/XMLSchema#integer',
10
11
  'http://www.w3.org/2001/XMLSchema#decimal',
@@ -37,4 +38,32 @@ function isRdfNumericTerm(term) {
37
38
  && isRdfNumericDatatype(term.datatype.value)
38
39
  && isFiniteNumericLexical(term.value);
39
40
  }
41
+ /**
42
+ * Completes the numeric ORDER BY relation where SPARQL value comparison is
43
+ * unordered: Xpod and QLever place NaN after every other numeric value.
44
+ * All non-NaN comparisons stay owned by the query evaluator.
45
+ */
46
+ function compareRdfNumericNaNOrder(left, right) {
47
+ if (!isRdfNumericLiteral(left) || !isRdfNumericLiteral(right)) {
48
+ return undefined;
49
+ }
50
+ const leftNaN = isRdfNaNTerm(left);
51
+ const rightNaN = isRdfNaNTerm(right);
52
+ if (!leftNaN && !rightNaN) {
53
+ return undefined;
54
+ }
55
+ if (leftNaN === rightNaN) {
56
+ return 0;
57
+ }
58
+ return leftNaN ? 1 : -1;
59
+ }
60
+ function isRdfNumericLiteral(term) {
61
+ return term?.termType === 'Literal' && isRdfNumericDatatype(term.datatype.value);
62
+ }
63
+ function isRdfNaNTerm(term) {
64
+ const datatype = term.datatype.value;
65
+ return term.value === 'NaN'
66
+ && (datatype === 'http://www.w3.org/2001/XMLSchema#double'
67
+ || datatype === 'http://www.w3.org/2001/XMLSchema#float');
68
+ }
40
69
  //# sourceMappingURL=RdfTermSemantics.js.map
@@ -1,6 +1,6 @@
1
- import type { RdfTextChunkInput, RdfTextChunkRow, RdfTextIndexOptions, RdfTextIndexSyncLike, RdfTextRebuildStatus, RdfTextRebuildStatusInput, RdfTextSearchOrder, RdfTextIndexStats, RdfSearchCardinalityEstimate, RdfTextSearchOptions, RdfTextSearchResult, RdfTextSourceMetadata, RdfTextSourceInput, RdfTextTermDocumentFrequency, RdfTextRetrievalKind } from './types';
1
+ import type { RdfTextChunkInput, RdfTextChunkRow, RdfTextIndexOptions, RdfTextIndexSyncLike, RdfTextRebuildStatus, RdfTextRebuildStatusInput, RdfTextSearchOrder, RdfTextIndexStats, RdfSearchCardinalityEstimate, RdfTextSearchOptions, RdfTextSearchResult, RdfTextSourceListOptions, RdfTextSourceMetadata, RdfTextSourceInput, RdfTextTermDocumentFrequency, RdfTextRetrievalKind } from './types';
2
2
  export declare const RDF_TEXT_TERM_MAX_INDEX_LENGTH = 256;
3
- export declare const RDF_TEXT_SCHEMA_VERSION = 2;
3
+ export declare const RDF_TEXT_SCHEMA_VERSION = 3;
4
4
  export declare class RdfTextIndex implements RdfTextIndexSyncLike {
5
5
  private readonly options;
6
6
  private readonly sqliteRuntime;
@@ -11,20 +11,19 @@ export declare class RdfTextIndex implements RdfTextIndexSyncLike {
11
11
  clear(): void;
12
12
  schemaVersion(): number;
13
13
  sourceMetadata(source: string): RdfTextSourceMetadata | undefined;
14
+ listSources(options?: RdfTextSourceListOptions): RdfTextSourceMetadata[];
14
15
  recordRebuildStatus(input: RdfTextRebuildStatusInput): void;
15
16
  rebuildStatus(source: string): RdfTextRebuildStatus | undefined;
16
17
  indexText(source: RdfTextSourceInput, text: string, chunks?: RdfTextChunkInput[]): void;
17
18
  moveSource(oldSource: string, next: RdfTextSourceInput): number;
18
19
  deleteSource(source: string): number;
20
+ listSourceChunks(sourceKey: string): RdfTextSearchResult[];
19
21
  search(options: RdfTextSearchOptions): RdfTextSearchResult[];
20
22
  estimateSearchCardinality(options: RdfTextSearchOptions): RdfSearchCardinalityEstimate;
21
23
  stats(): RdfTextIndexStats;
22
24
  termDocumentFrequency(limit?: number): RdfTextTermDocumentFrequency[];
23
25
  private initializeSchema;
24
- private ensureSourceKeyColumn;
25
- private ensureChunkRetrievalColumns;
26
- private ensureEntityProvenanceColumns;
27
- private backfillTermPostings;
26
+ private validateSchema;
28
27
  private upsertSource;
29
28
  private chunkText;
30
29
  private estimateDatabaseBytes;