@undefineds.co/xpod 0.1.0-local.202602081751

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 (970) hide show
  1. package/LICENSE +22 -0
  2. package/README.md +146 -0
  3. package/components/components.jsonld +72 -0
  4. package/components/context.jsonld +1635 -0
  5. package/config/bun.json +90 -0
  6. package/config/cli.json +260 -0
  7. package/config/cloud.json +469 -0
  8. package/config/extensions.local.initializer.json +23 -0
  9. package/config/local.json +261 -0
  10. package/config/logging/configurable.json +18 -0
  11. package/config/main.json +200 -0
  12. package/config/main.vanilla.json +6 -0
  13. package/config/resolver.json +347 -0
  14. package/config/search.json +66 -0
  15. package/config/seed.dev.json +29 -0
  16. package/config/seeds/admin.example.json +11 -0
  17. package/config/seeds/test.json +11 -0
  18. package/config/terminal.json +22 -0
  19. package/config/vector.json +35 -0
  20. package/config/xpod.base.json +155 -0
  21. package/config/xpod.cluster.json +419 -0
  22. package/config/xpod.json +233 -0
  23. package/dist/agents/AgentExecutorFactory.d.ts +67 -0
  24. package/dist/agents/AgentExecutorFactory.js +193 -0
  25. package/dist/agents/AgentExecutorFactory.js.map +1 -0
  26. package/dist/agents/AgentManager.d.ts +114 -0
  27. package/dist/agents/AgentManager.js +289 -0
  28. package/dist/agents/AgentManager.js.map +1 -0
  29. package/dist/agents/BaseAgentExecutor.d.ts +67 -0
  30. package/dist/agents/BaseAgentExecutor.js +101 -0
  31. package/dist/agents/BaseAgentExecutor.js.map +1 -0
  32. package/dist/agents/ClaudeExecutor.d.ts +63 -0
  33. package/dist/agents/ClaudeExecutor.js +335 -0
  34. package/dist/agents/ClaudeExecutor.js.map +1 -0
  35. package/dist/agents/CodeBuddyExecutor.d.ts +54 -0
  36. package/dist/agents/CodeBuddyExecutor.js +273 -0
  37. package/dist/agents/CodeBuddyExecutor.js.map +1 -0
  38. package/dist/agents/IndexAgent.d.ts +70 -0
  39. package/dist/agents/IndexAgent.js +417 -0
  40. package/dist/agents/IndexAgent.js.map +1 -0
  41. package/dist/agents/index.d.ts +22 -0
  42. package/dist/agents/index.js +48 -0
  43. package/dist/agents/index.js.map +1 -0
  44. package/dist/agents/schema/agent-config.d.ts +58 -0
  45. package/dist/agents/schema/agent-config.js +74 -0
  46. package/dist/agents/schema/agent-config.js.map +1 -0
  47. package/dist/agents/schema/tables.d.ts +46 -0
  48. package/dist/agents/schema/tables.js +64 -0
  49. package/dist/agents/schema/tables.js.map +1 -0
  50. package/dist/agents/types.d.ts +266 -0
  51. package/dist/agents/types.js +9 -0
  52. package/dist/agents/types.js.map +1 -0
  53. package/dist/ai/index.d.ts +5 -0
  54. package/dist/ai/index.js +22 -0
  55. package/dist/ai/index.js.map +1 -0
  56. package/dist/ai/schema/config.d.ts +27 -0
  57. package/dist/ai/schema/config.js +36 -0
  58. package/dist/ai/schema/config.js.map +1 -0
  59. package/dist/ai/schema/index.d.ts +8 -0
  60. package/dist/ai/schema/index.js +27 -0
  61. package/dist/ai/schema/index.js.map +1 -0
  62. package/dist/ai/schema/model.d.ts +40 -0
  63. package/dist/ai/schema/model.js +60 -0
  64. package/dist/ai/schema/model.js.map +1 -0
  65. package/dist/ai/schema/provider.d.ts +21 -0
  66. package/dist/ai/schema/provider.js +30 -0
  67. package/dist/ai/schema/provider.js.map +1 -0
  68. package/dist/ai/schema/types.d.ts +52 -0
  69. package/dist/ai/schema/types.js +62 -0
  70. package/dist/ai/schema/types.js.map +1 -0
  71. package/dist/ai/schema/vector-store.d.ts +53 -0
  72. package/dist/ai/schema/vector-store.js +65 -0
  73. package/dist/ai/schema/vector-store.js.map +1 -0
  74. package/dist/ai/service/CredentialReader.d.ts +7 -0
  75. package/dist/ai/service/CredentialReader.js +10 -0
  76. package/dist/ai/service/CredentialReader.js.map +1 -0
  77. package/dist/ai/service/CredentialReaderImpl.d.ts +6 -0
  78. package/dist/ai/service/CredentialReaderImpl.js +55 -0
  79. package/dist/ai/service/CredentialReaderImpl.js.map +1 -0
  80. package/dist/ai/service/EmbeddingService.d.ts +8 -0
  81. package/dist/ai/service/EmbeddingService.js +10 -0
  82. package/dist/ai/service/EmbeddingService.js.map +1 -0
  83. package/dist/ai/service/EmbeddingServiceImpl.d.ts +11 -0
  84. package/dist/ai/service/EmbeddingServiceImpl.js +73 -0
  85. package/dist/ai/service/EmbeddingServiceImpl.js.map +1 -0
  86. package/dist/ai/service/ProviderRegistry.d.ts +26 -0
  87. package/dist/ai/service/ProviderRegistry.js +10 -0
  88. package/dist/ai/service/ProviderRegistry.js.map +1 -0
  89. package/dist/ai/service/ProviderRegistryImpl.d.ts +14 -0
  90. package/dist/ai/service/ProviderRegistryImpl.js +112 -0
  91. package/dist/ai/service/ProviderRegistryImpl.js.map +1 -0
  92. package/dist/ai/service/index.d.ts +10 -0
  93. package/dist/ai/service/index.js +29 -0
  94. package/dist/ai/service/index.js.map +1 -0
  95. package/dist/ai/service/types.d.ts +12 -0
  96. package/dist/ai/service/types.js +6 -0
  97. package/dist/ai/service/types.js.map +1 -0
  98. package/dist/api/ApiServer.d.ts +77 -0
  99. package/dist/api/ApiServer.js +191 -0
  100. package/dist/api/ApiServer.js.map +1 -0
  101. package/dist/api/auth/AuthContext.d.ts +41 -0
  102. package/dist/api/auth/AuthContext.js +44 -0
  103. package/dist/api/auth/AuthContext.js.map +1 -0
  104. package/dist/api/auth/Authenticator.d.ts +23 -0
  105. package/dist/api/auth/Authenticator.js +3 -0
  106. package/dist/api/auth/Authenticator.js.map +1 -0
  107. package/dist/api/auth/ClientCredentialsAuthenticator.d.ts +56 -0
  108. package/dist/api/auth/ClientCredentialsAuthenticator.js +191 -0
  109. package/dist/api/auth/ClientCredentialsAuthenticator.js.map +1 -0
  110. package/dist/api/auth/MultiAuthenticator.d.ts +15 -0
  111. package/dist/api/auth/MultiAuthenticator.js +36 -0
  112. package/dist/api/auth/MultiAuthenticator.js.map +1 -0
  113. package/dist/api/auth/NodeTokenAuthenticator.d.ts +21 -0
  114. package/dist/api/auth/NodeTokenAuthenticator.js +124 -0
  115. package/dist/api/auth/NodeTokenAuthenticator.js.map +1 -0
  116. package/dist/api/auth/SolidTokenAuthenticator.d.ts +27 -0
  117. package/dist/api/auth/SolidTokenAuthenticator.js +144 -0
  118. package/dist/api/auth/SolidTokenAuthenticator.js.map +1 -0
  119. package/dist/api/auth/index.d.ts +5 -0
  120. package/dist/api/auth/index.js +23 -0
  121. package/dist/api/auth/index.js.map +1 -0
  122. package/dist/api/chatkit/ai-provider.d.ts +44 -0
  123. package/dist/api/chatkit/ai-provider.js +157 -0
  124. package/dist/api/chatkit/ai-provider.js.map +1 -0
  125. package/dist/api/chatkit/index.d.ts +11 -0
  126. package/dist/api/chatkit/index.js +44 -0
  127. package/dist/api/chatkit/index.js.map +1 -0
  128. package/dist/api/chatkit/pod-store.d.ts +154 -0
  129. package/dist/api/chatkit/pod-store.js +794 -0
  130. package/dist/api/chatkit/pod-store.js.map +1 -0
  131. package/dist/api/chatkit/schema.d.ts +139 -0
  132. package/dist/api/chatkit/schema.js +168 -0
  133. package/dist/api/chatkit/schema.js.map +1 -0
  134. package/dist/api/chatkit/service.d.ts +143 -0
  135. package/dist/api/chatkit/service.js +442 -0
  136. package/dist/api/chatkit/service.js.map +1 -0
  137. package/dist/api/chatkit/store.d.ts +63 -0
  138. package/dist/api/chatkit/store.js +178 -0
  139. package/dist/api/chatkit/store.js.map +1 -0
  140. package/dist/api/chatkit/types.d.ts +461 -0
  141. package/dist/api/chatkit/types.js +50 -0
  142. package/dist/api/chatkit/types.js.map +1 -0
  143. package/dist/api/container/cloud.d.ts +12 -0
  144. package/dist/api/container/cloud.js +97 -0
  145. package/dist/api/container/cloud.js.map +1 -0
  146. package/dist/api/container/common.d.ts +11 -0
  147. package/dist/api/container/common.js +82 -0
  148. package/dist/api/container/common.js.map +1 -0
  149. package/dist/api/container/index.d.ts +16 -0
  150. package/dist/api/container/index.js +90 -0
  151. package/dist/api/container/index.js.map +1 -0
  152. package/dist/api/container/local.d.ts +13 -0
  153. package/dist/api/container/local.js +197 -0
  154. package/dist/api/container/local.js.map +1 -0
  155. package/dist/api/container/routes.d.ts +11 -0
  156. package/dist/api/container/routes.js +129 -0
  157. package/dist/api/container/routes.js.map +1 -0
  158. package/dist/api/container/types.d.ts +92 -0
  159. package/dist/api/container/types.js +8 -0
  160. package/dist/api/container/types.js.map +1 -0
  161. package/dist/api/handlers/AdminHandler.d.ts +6 -0
  162. package/dist/api/handlers/AdminHandler.js +330 -0
  163. package/dist/api/handlers/AdminHandler.js.map +1 -0
  164. package/dist/api/handlers/ApiKeyHandler.d.ts +15 -0
  165. package/dist/api/handlers/ApiKeyHandler.js +159 -0
  166. package/dist/api/handlers/ApiKeyHandler.js.map +1 -0
  167. package/dist/api/handlers/ChatHandler.d.ts +60 -0
  168. package/dist/api/handlers/ChatHandler.js +230 -0
  169. package/dist/api/handlers/ChatHandler.js.map +1 -0
  170. package/dist/api/handlers/ChatKitHandler.d.ts +18 -0
  171. package/dist/api/handlers/ChatKitHandler.js +151 -0
  172. package/dist/api/handlers/ChatKitHandler.js.map +1 -0
  173. package/dist/api/handlers/DashboardHandler.d.ts +14 -0
  174. package/dist/api/handlers/DashboardHandler.js +117 -0
  175. package/dist/api/handlers/DashboardHandler.js.map +1 -0
  176. package/dist/api/handlers/DdnsHandler.d.ts +19 -0
  177. package/dist/api/handlers/DdnsHandler.js +306 -0
  178. package/dist/api/handlers/DdnsHandler.js.map +1 -0
  179. package/dist/api/handlers/DevHandler.d.ts +18 -0
  180. package/dist/api/handlers/DevHandler.js +276 -0
  181. package/dist/api/handlers/DevHandler.js.map +1 -0
  182. package/dist/api/handlers/NodeHandler.d.ts +16 -0
  183. package/dist/api/handlers/NodeHandler.js +190 -0
  184. package/dist/api/handlers/NodeHandler.js.map +1 -0
  185. package/dist/api/handlers/PodManagementHandler.d.ts +39 -0
  186. package/dist/api/handlers/PodManagementHandler.js +294 -0
  187. package/dist/api/handlers/PodManagementHandler.js.map +1 -0
  188. package/dist/api/handlers/QuotaHandler.d.ts +21 -0
  189. package/dist/api/handlers/QuotaHandler.js +209 -0
  190. package/dist/api/handlers/QuotaHandler.js.map +1 -0
  191. package/dist/api/handlers/SignalHandler.d.ts +13 -0
  192. package/dist/api/handlers/SignalHandler.js +122 -0
  193. package/dist/api/handlers/SignalHandler.js.map +1 -0
  194. package/dist/api/handlers/SubdomainClientHandler.d.ts +24 -0
  195. package/dist/api/handlers/SubdomainClientHandler.js +169 -0
  196. package/dist/api/handlers/SubdomainClientHandler.js.map +1 -0
  197. package/dist/api/handlers/SubdomainHandler.d.ts +17 -0
  198. package/dist/api/handlers/SubdomainHandler.js +312 -0
  199. package/dist/api/handlers/SubdomainHandler.js.map +1 -0
  200. package/dist/api/handlers/VectorHandler.d.ts +15 -0
  201. package/dist/api/handlers/VectorHandler.js +293 -0
  202. package/dist/api/handlers/VectorHandler.js.map +1 -0
  203. package/dist/api/handlers/VectorStoreHandler.d.ts +20 -0
  204. package/dist/api/handlers/VectorStoreHandler.js +348 -0
  205. package/dist/api/handlers/VectorStoreHandler.js.map +1 -0
  206. package/dist/api/handlers/VectorStoreWebhookHandler.d.ts +74 -0
  207. package/dist/api/handlers/VectorStoreWebhookHandler.js +121 -0
  208. package/dist/api/handlers/VectorStoreWebhookHandler.js.map +1 -0
  209. package/dist/api/handlers/WebIdProfileHandler.d.ts +14 -0
  210. package/dist/api/handlers/WebIdProfileHandler.js +204 -0
  211. package/dist/api/handlers/WebIdProfileHandler.js.map +1 -0
  212. package/dist/api/handlers/index.d.ts +11 -0
  213. package/dist/api/handlers/index.js +28 -0
  214. package/dist/api/handlers/index.js.map +1 -0
  215. package/dist/api/index.d.ts +12 -0
  216. package/dist/api/index.js +29 -0
  217. package/dist/api/index.js.map +1 -0
  218. package/dist/api/main.d.ts +14 -0
  219. package/dist/api/main.js +106 -0
  220. package/dist/api/main.js.map +1 -0
  221. package/dist/api/middleware/AuthMiddleware.d.ts +35 -0
  222. package/dist/api/middleware/AuthMiddleware.js +51 -0
  223. package/dist/api/middleware/AuthMiddleware.js.map +1 -0
  224. package/dist/api/middleware/index.d.ts +1 -0
  225. package/dist/api/middleware/index.js +18 -0
  226. package/dist/api/middleware/index.js.map +1 -0
  227. package/dist/api/models/model-provider.schema.d.ts +12 -0
  228. package/dist/api/models/model-provider.schema.js +21 -0
  229. package/dist/api/models/model-provider.schema.js.map +1 -0
  230. package/dist/api/models/namespaces.d.ts +9 -0
  231. package/dist/api/models/namespaces.js +34 -0
  232. package/dist/api/models/namespaces.js.map +1 -0
  233. package/dist/api/service/InternalPodService.d.ts +19 -0
  234. package/dist/api/service/InternalPodService.js +82 -0
  235. package/dist/api/service/InternalPodService.js.map +1 -0
  236. package/dist/api/service/VectorService.d.ts +156 -0
  237. package/dist/api/service/VectorService.js +202 -0
  238. package/dist/api/service/VectorService.js.map +1 -0
  239. package/dist/api/service/VectorStoreService.d.ts +262 -0
  240. package/dist/api/service/VectorStoreService.js +985 -0
  241. package/dist/api/service/VectorStoreService.js.map +1 -0
  242. package/dist/api/service/VercelChatService.d.ts +28 -0
  243. package/dist/api/service/VercelChatService.js +289 -0
  244. package/dist/api/service/VercelChatService.js.map +1 -0
  245. package/dist/api/store/DrizzleClientCredentialsStore.d.ts +56 -0
  246. package/dist/api/store/DrizzleClientCredentialsStore.js +145 -0
  247. package/dist/api/store/DrizzleClientCredentialsStore.js.map +1 -0
  248. package/dist/api/store/index.d.ts +1 -0
  249. package/dist/api/store/index.js +18 -0
  250. package/dist/api/store/index.js.map +1 -0
  251. package/dist/components/components.jsonld +88 -0
  252. package/dist/components/context.jsonld +1962 -0
  253. package/dist/credential/index.d.ts +1 -0
  254. package/dist/credential/index.js +18 -0
  255. package/dist/credential/index.js.map +1 -0
  256. package/dist/credential/schema/index.d.ts +2 -0
  257. package/dist/credential/schema/index.js +19 -0
  258. package/dist/credential/schema/index.js.map +1 -0
  259. package/dist/credential/schema/tables.d.ts +31 -0
  260. package/dist/credential/schema/tables.js +42 -0
  261. package/dist/credential/schema/tables.js.map +1 -0
  262. package/dist/credential/schema/types.d.ts +20 -0
  263. package/dist/credential/schema/types.js +26 -0
  264. package/dist/credential/schema/types.js.map +1 -0
  265. package/dist/dns/DnsProvider.d.ts +46 -0
  266. package/dist/dns/DnsProvider.js +3 -0
  267. package/dist/dns/DnsProvider.js.map +1 -0
  268. package/dist/dns/DnsProvider.jsonld +161 -0
  269. package/dist/dns/cloudflare/CloudflareDnsProvider.d.ts +51 -0
  270. package/dist/dns/cloudflare/CloudflareDnsProvider.js +227 -0
  271. package/dist/dns/cloudflare/CloudflareDnsProvider.js.map +1 -0
  272. package/dist/dns/cloudflare/index.d.ts +1 -0
  273. package/dist/dns/cloudflare/index.js +18 -0
  274. package/dist/dns/cloudflare/index.js.map +1 -0
  275. package/dist/dns/tencent/TencentDnsProvider.d.ts +42 -0
  276. package/dist/dns/tencent/TencentDnsProvider.js +221 -0
  277. package/dist/dns/tencent/TencentDnsProvider.js.map +1 -0
  278. package/dist/dns/tencent/TencentDnsProvider.jsonld +239 -0
  279. package/dist/document/Chunker.d.ts +64 -0
  280. package/dist/document/Chunker.js +8 -0
  281. package/dist/document/Chunker.js.map +1 -0
  282. package/dist/document/DocumentParser.d.ts +58 -0
  283. package/dist/document/DocumentParser.js +8 -0
  284. package/dist/document/DocumentParser.js.map +1 -0
  285. package/dist/document/HeadingChunker.d.ts +34 -0
  286. package/dist/document/HeadingChunker.js +182 -0
  287. package/dist/document/HeadingChunker.js.map +1 -0
  288. package/dist/document/JinaDocumentParser.d.ts +40 -0
  289. package/dist/document/JinaDocumentParser.js +129 -0
  290. package/dist/document/JinaDocumentParser.js.map +1 -0
  291. package/dist/document/index.d.ts +7 -0
  292. package/dist/document/index.js +26 -0
  293. package/dist/document/index.js.map +1 -0
  294. package/dist/edge/DdnsManager.d.ts +53 -0
  295. package/dist/edge/DdnsManager.js +153 -0
  296. package/dist/edge/DdnsManager.js.map +1 -0
  297. package/dist/edge/Dns01CertificateProvisioner.d.ts +27 -0
  298. package/dist/edge/Dns01CertificateProvisioner.js +160 -0
  299. package/dist/edge/Dns01CertificateProvisioner.js.map +1 -0
  300. package/dist/edge/Dns01CertificateProvisioner.jsonld +148 -0
  301. package/dist/edge/EdgeNodeAgent.d.ts +56 -0
  302. package/dist/edge/EdgeNodeAgent.js +230 -0
  303. package/dist/edge/EdgeNodeAgent.js.map +1 -0
  304. package/dist/edge/EdgeNodeAgent.jsonld +89 -0
  305. package/dist/edge/EdgeNodeAgentInitializer.d.ts +25 -0
  306. package/dist/edge/EdgeNodeAgentInitializer.js +64 -0
  307. package/dist/edge/EdgeNodeAgentInitializer.js.map +1 -0
  308. package/dist/edge/EdgeNodeCapabilityDetector.d.ts +98 -0
  309. package/dist/edge/EdgeNodeCapabilityDetector.js +425 -0
  310. package/dist/edge/EdgeNodeCapabilityDetector.js.map +1 -0
  311. package/dist/edge/EdgeNodeCertificateProvisioner.d.ts +3 -0
  312. package/dist/edge/EdgeNodeCertificateProvisioner.js +3 -0
  313. package/dist/edge/EdgeNodeCertificateProvisioner.js.map +1 -0
  314. package/dist/edge/EdgeNodeCertificateProvisioner.jsonld +21 -0
  315. package/dist/edge/EdgeNodeDnsCoordinator.d.ts +38 -0
  316. package/dist/edge/EdgeNodeDnsCoordinator.js +201 -0
  317. package/dist/edge/EdgeNodeDnsCoordinator.js.map +1 -0
  318. package/dist/edge/EdgeNodeDnsCoordinator.jsonld +212 -0
  319. package/dist/edge/EdgeNodeHealthProbeService.d.ts +25 -0
  320. package/dist/edge/EdgeNodeHealthProbeService.js +208 -0
  321. package/dist/edge/EdgeNodeHealthProbeService.js.map +1 -0
  322. package/dist/edge/EdgeNodeHealthProbeService.jsonld +176 -0
  323. package/dist/edge/EdgeNodeModeDetector.d.ts +50 -0
  324. package/dist/edge/EdgeNodeModeDetector.js +194 -0
  325. package/dist/edge/EdgeNodeModeDetector.js.map +1 -0
  326. package/dist/edge/EdgeNodeModeDetector.jsonld +114 -0
  327. package/dist/edge/EdgeNodeTunnelManager.d.ts +23 -0
  328. package/dist/edge/EdgeNodeTunnelManager.js +99 -0
  329. package/dist/edge/EdgeNodeTunnelManager.js.map +1 -0
  330. package/dist/edge/EdgeNodeTunnelManager.jsonld +128 -0
  331. package/dist/edge/FrpTunnelManager.d.ts +30 -0
  332. package/dist/edge/FrpTunnelManager.js +151 -0
  333. package/dist/edge/FrpTunnelManager.js.map +1 -0
  334. package/dist/edge/FrpTunnelManager.jsonld +192 -0
  335. package/dist/edge/LocalNetworkManager.d.ts +41 -0
  336. package/dist/edge/LocalNetworkManager.js +115 -0
  337. package/dist/edge/LocalNetworkManager.js.map +1 -0
  338. package/dist/edge/acme/AcmeCertificateManager.d.ts +65 -0
  339. package/dist/edge/acme/AcmeCertificateManager.js +233 -0
  340. package/dist/edge/acme/AcmeCertificateManager.js.map +1 -0
  341. package/dist/edge/acme/AcmeCertificateManager.jsonld +373 -0
  342. package/dist/edge/acme/ClusterCertificateManager.d.ts +40 -0
  343. package/dist/edge/acme/ClusterCertificateManager.js +184 -0
  344. package/dist/edge/acme/ClusterCertificateManager.js.map +1 -0
  345. package/dist/edge/acme/DnsChallengeClient.d.ts +15 -0
  346. package/dist/edge/acme/DnsChallengeClient.js +40 -0
  347. package/dist/edge/acme/DnsChallengeClient.js.map +1 -0
  348. package/dist/edge/acme/utils.d.ts +4 -0
  349. package/dist/edge/acme/utils.js +17 -0
  350. package/dist/edge/acme/utils.js.map +1 -0
  351. package/dist/edge/frp/FrpRelay.d.ts +11 -0
  352. package/dist/edge/frp/FrpRelay.js +29 -0
  353. package/dist/edge/frp/FrpRelay.js.map +1 -0
  354. package/dist/edge/frp/FrpcProcessManager.d.ts +51 -0
  355. package/dist/edge/frp/FrpcProcessManager.js +174 -0
  356. package/dist/edge/frp/FrpcProcessManager.js.map +1 -0
  357. package/dist/edge/interfaces/EdgeNodeTunnelManager.d.ts +6 -0
  358. package/dist/edge/interfaces/EdgeNodeTunnelManager.js +3 -0
  359. package/dist/edge/interfaces/EdgeNodeTunnelManager.js.map +1 -0
  360. package/dist/edge/interfaces/EdgeNodeTunnelManager.jsonld +21 -0
  361. package/dist/embedding/CredentialReader.d.ts +7 -0
  362. package/dist/embedding/CredentialReader.js +10 -0
  363. package/dist/embedding/CredentialReader.js.map +1 -0
  364. package/dist/embedding/CredentialReader.jsonld +22 -0
  365. package/dist/embedding/CredentialReaderImpl.d.ts +6 -0
  366. package/dist/embedding/CredentialReaderImpl.js +55 -0
  367. package/dist/embedding/CredentialReaderImpl.js.map +1 -0
  368. package/dist/embedding/CredentialReaderImpl.jsonld +31 -0
  369. package/dist/embedding/EmbeddingService.d.ts +8 -0
  370. package/dist/embedding/EmbeddingService.js +10 -0
  371. package/dist/embedding/EmbeddingService.js.map +1 -0
  372. package/dist/embedding/EmbeddingService.jsonld +26 -0
  373. package/dist/embedding/EmbeddingServiceImpl.d.ts +11 -0
  374. package/dist/embedding/EmbeddingServiceImpl.js +73 -0
  375. package/dist/embedding/EmbeddingServiceImpl.js.map +1 -0
  376. package/dist/embedding/EmbeddingServiceImpl.jsonld +53 -0
  377. package/dist/embedding/ProviderRegistry.d.ts +26 -0
  378. package/dist/embedding/ProviderRegistry.js +10 -0
  379. package/dist/embedding/ProviderRegistry.js.map +1 -0
  380. package/dist/embedding/ProviderRegistry.jsonld +30 -0
  381. package/dist/embedding/ProviderRegistryImpl.d.ts +14 -0
  382. package/dist/embedding/ProviderRegistryImpl.js +112 -0
  383. package/dist/embedding/ProviderRegistryImpl.js.map +1 -0
  384. package/dist/embedding/ProviderRegistryImpl.jsonld +40 -0
  385. package/dist/embedding/index.d.ts +5 -0
  386. package/dist/embedding/index.js +22 -0
  387. package/dist/embedding/index.js.map +1 -0
  388. package/dist/embedding/schema/index.d.ts +1 -0
  389. package/dist/embedding/schema/index.js +18 -0
  390. package/dist/embedding/schema/index.js.map +1 -0
  391. package/dist/embedding/schema/tables.d.ts +70 -0
  392. package/dist/embedding/schema/tables.js +102 -0
  393. package/dist/embedding/schema/tables.js.map +1 -0
  394. package/dist/embedding/types.d.ts +12 -0
  395. package/dist/embedding/types.js +6 -0
  396. package/dist/embedding/types.js.map +1 -0
  397. package/dist/gateway/port-finder.d.ts +4 -0
  398. package/dist/gateway/port-finder.js +15 -0
  399. package/dist/gateway/port-finder.js.map +1 -0
  400. package/dist/gateway/proxy.d.ts +22 -0
  401. package/dist/gateway/proxy.js +149 -0
  402. package/dist/gateway/proxy.js.map +1 -0
  403. package/dist/gateway/supervisor.d.ts +2 -0
  404. package/dist/gateway/supervisor.js +7 -0
  405. package/dist/gateway/supervisor.js.map +1 -0
  406. package/dist/gateway/types.d.ts +1 -0
  407. package/dist/gateway/types.js +3 -0
  408. package/dist/gateway/types.js.map +1 -0
  409. package/dist/http/AppStaticAssetHandler.d.ts +8 -0
  410. package/dist/http/AppStaticAssetHandler.js +27 -0
  411. package/dist/http/AppStaticAssetHandler.js.map +1 -0
  412. package/dist/http/AppStaticAssetHandler.jsonld +26 -0
  413. package/dist/http/ClusterIngressRouter.d.ts +93 -0
  414. package/dist/http/ClusterIngressRouter.js +355 -0
  415. package/dist/http/ClusterIngressRouter.js.map +1 -0
  416. package/dist/http/ClusterIngressRouter.jsonld +227 -0
  417. package/dist/http/ClusterWebSocketConfigurator.d.ts +59 -0
  418. package/dist/http/ClusterWebSocketConfigurator.js +226 -0
  419. package/dist/http/ClusterWebSocketConfigurator.js.map +1 -0
  420. package/dist/http/ClusterWebSocketConfigurator.jsonld +145 -0
  421. package/dist/http/EdgeNodeDirectDebugHttpHandler.d.ts +25 -0
  422. package/dist/http/EdgeNodeDirectDebugHttpHandler.js +126 -0
  423. package/dist/http/EdgeNodeDirectDebugHttpHandler.js.map +1 -0
  424. package/dist/http/EdgeNodeDirectDebugHttpHandler.jsonld +151 -0
  425. package/dist/http/EdgeNodeProxyHttpHandler.d.ts +28 -0
  426. package/dist/http/EdgeNodeProxyHttpHandler.js +190 -0
  427. package/dist/http/EdgeNodeProxyHttpHandler.js.map +1 -0
  428. package/dist/http/EdgeNodeProxyHttpHandler.jsonld +162 -0
  429. package/dist/http/PodRoutingHttpHandler.d.ts +64 -0
  430. package/dist/http/PodRoutingHttpHandler.js +233 -0
  431. package/dist/http/PodRoutingHttpHandler.js.map +1 -0
  432. package/dist/http/PodRoutingHttpHandler.jsonld +171 -0
  433. package/dist/http/RequestIdHttpHandler.d.ts +15 -0
  434. package/dist/http/RequestIdHttpHandler.js +59 -0
  435. package/dist/http/RequestIdHttpHandler.js.map +1 -0
  436. package/dist/http/RouterHttpHandler.d.ts +21 -0
  437. package/dist/http/RouterHttpHandler.js +49 -0
  438. package/dist/http/RouterHttpHandler.js.map +1 -0
  439. package/dist/http/RouterHttpHandler.jsonld +80 -0
  440. package/dist/http/RouterHttpRoute.d.ts +6 -0
  441. package/dist/http/RouterHttpRoute.js +11 -0
  442. package/dist/http/RouterHttpRoute.js.map +1 -0
  443. package/dist/http/RouterHttpRoute.jsonld +48 -0
  444. package/dist/http/SignalInterceptHttpHandler.d.ts +24 -0
  445. package/dist/http/SignalInterceptHttpHandler.js +47 -0
  446. package/dist/http/SignalInterceptHttpHandler.js.map +1 -0
  447. package/dist/http/SignalInterceptHttpHandler.jsonld +103 -0
  448. package/dist/http/SubgraphSparqlHttpHandler.d.ts +70 -0
  449. package/dist/http/SubgraphSparqlHttpHandler.js +640 -0
  450. package/dist/http/SubgraphSparqlHttpHandler.js.map +1 -0
  451. package/dist/http/SubgraphSparqlHttpHandler.jsonld +363 -0
  452. package/dist/http/TracingHandler.d.ts +19 -0
  453. package/dist/http/TracingHandler.js +60 -0
  454. package/dist/http/TracingHandler.js.map +1 -0
  455. package/dist/http/TracingHandler.jsonld +37 -0
  456. package/dist/http/admin/EdgeNodeAdminHttpHandler.d.ts +45 -0
  457. package/dist/http/admin/EdgeNodeAdminHttpHandler.js +292 -0
  458. package/dist/http/admin/EdgeNodeAdminHttpHandler.js.map +1 -0
  459. package/dist/http/admin/EdgeNodeCertificateHttpHandler.d.ts +33 -0
  460. package/dist/http/admin/EdgeNodeCertificateHttpHandler.js +172 -0
  461. package/dist/http/admin/EdgeNodeCertificateHttpHandler.js.map +1 -0
  462. package/dist/http/admin/EdgeNodeCertificateHttpHandler.jsonld +182 -0
  463. package/dist/http/admin/EdgeNodeSignalHttpHandler.d.ts +71 -0
  464. package/dist/http/admin/EdgeNodeSignalHttpHandler.js +674 -0
  465. package/dist/http/admin/EdgeNodeSignalHttpHandler.js.map +1 -0
  466. package/dist/http/admin/EdgeNodeSignalHttpHandler.jsonld +406 -0
  467. package/dist/http/cluster/PodMigrationHttpHandler.d.ts +52 -0
  468. package/dist/http/cluster/PodMigrationHttpHandler.js +208 -0
  469. package/dist/http/cluster/PodMigrationHttpHandler.js.map +1 -0
  470. package/dist/http/cluster/PodMigrationHttpHandler.jsonld +169 -0
  471. package/dist/http/quota/QuotaAdminHttpHandler.d.ts +34 -0
  472. package/dist/http/quota/QuotaAdminHttpHandler.js +241 -0
  473. package/dist/http/quota/QuotaAdminHttpHandler.js.map +1 -0
  474. package/dist/http/quota/QuotaAdminHttpHandler.jsonld +171 -0
  475. package/dist/http/search/SearchHttpHandler.d.ts +59 -0
  476. package/dist/http/search/SearchHttpHandler.js +312 -0
  477. package/dist/http/search/SearchHttpHandler.js.map +1 -0
  478. package/dist/http/search/index.d.ts +1 -0
  479. package/dist/http/search/index.js +18 -0
  480. package/dist/http/search/index.js.map +1 -0
  481. package/dist/http/terminal/TerminalHttpHandler.d.ts +45 -0
  482. package/dist/http/terminal/TerminalHttpHandler.js +306 -0
  483. package/dist/http/terminal/TerminalHttpHandler.js.map +1 -0
  484. package/dist/http/terminal/TerminalHttpHandler.jsonld +232 -0
  485. package/dist/http/terminal/index.d.ts +1 -0
  486. package/dist/http/terminal/index.js +18 -0
  487. package/dist/http/terminal/index.js.map +1 -0
  488. package/dist/http/vector/VectorHttpHandler.d.ts +42 -0
  489. package/dist/http/vector/VectorHttpHandler.js +301 -0
  490. package/dist/http/vector/VectorHttpHandler.js.map +1 -0
  491. package/dist/http/vector/VectorHttpHandler.jsonld +157 -0
  492. package/dist/http/vector/index.d.ts +1 -0
  493. package/dist/http/vector/index.js +18 -0
  494. package/dist/http/vector/index.js.map +1 -0
  495. package/dist/ice/IceServerProvider.d.ts +85 -0
  496. package/dist/ice/IceServerProvider.js +122 -0
  497. package/dist/ice/IceServerProvider.js.map +1 -0
  498. package/dist/ice/index.d.ts +8 -0
  499. package/dist/ice/index.js +25 -0
  500. package/dist/ice/index.js.map +1 -0
  501. package/dist/identity/CenterNodeRegistrationService.d.ts +102 -0
  502. package/dist/identity/CenterNodeRegistrationService.js +266 -0
  503. package/dist/identity/CenterNodeRegistrationService.js.map +1 -0
  504. package/dist/identity/CenterNodeRegistrationService.jsonld +251 -0
  505. package/dist/identity/ReactAppViewHandler.d.ts +31 -0
  506. package/dist/identity/ReactAppViewHandler.js +79 -0
  507. package/dist/identity/ReactAppViewHandler.js.map +1 -0
  508. package/dist/identity/ReactAppViewHandler.jsonld +99 -0
  509. package/dist/identity/drizzle/AccountRepository.d.ts +31 -0
  510. package/dist/identity/drizzle/AccountRepository.js +130 -0
  511. package/dist/identity/drizzle/AccountRepository.js.map +1 -0
  512. package/dist/identity/drizzle/AccountRoleRepository.d.ts +23 -0
  513. package/dist/identity/drizzle/AccountRoleRepository.js +233 -0
  514. package/dist/identity/drizzle/AccountRoleRepository.js.map +1 -0
  515. package/dist/identity/drizzle/DdnsRepository.d.ts +87 -0
  516. package/dist/identity/drizzle/DdnsRepository.js +284 -0
  517. package/dist/identity/drizzle/DdnsRepository.js.map +1 -0
  518. package/dist/identity/drizzle/DrizzleIndexedStorage.d.ts +26 -0
  519. package/dist/identity/drizzle/DrizzleIndexedStorage.js +159 -0
  520. package/dist/identity/drizzle/DrizzleIndexedStorage.js.map +1 -0
  521. package/dist/identity/drizzle/DrizzleIndexedStorage.jsonld +130 -0
  522. package/dist/identity/drizzle/EdgeNodeRepository.d.ts +155 -0
  523. package/dist/identity/drizzle/EdgeNodeRepository.js +555 -0
  524. package/dist/identity/drizzle/EdgeNodeRepository.js.map +1 -0
  525. package/dist/identity/drizzle/PodLookupRepository.d.ts +59 -0
  526. package/dist/identity/drizzle/PodLookupRepository.js +153 -0
  527. package/dist/identity/drizzle/PodLookupRepository.js.map +1 -0
  528. package/dist/identity/drizzle/WebIdProfileRepository.d.ts +58 -0
  529. package/dist/identity/drizzle/WebIdProfileRepository.js +157 -0
  530. package/dist/identity/drizzle/WebIdProfileRepository.js.map +1 -0
  531. package/dist/identity/drizzle/db.d.ts +60 -0
  532. package/dist/identity/drizzle/db.js +269 -0
  533. package/dist/identity/drizzle/db.js.map +1 -0
  534. package/dist/identity/drizzle/schema.d.ts +1 -0
  535. package/dist/identity/drizzle/schema.js +20 -0
  536. package/dist/identity/drizzle/schema.js.map +1 -0
  537. package/dist/identity/drizzle/schema.pg.d.ts +20 -0
  538. package/dist/identity/drizzle/schema.pg.js +103 -0
  539. package/dist/identity/drizzle/schema.pg.js.map +1 -0
  540. package/dist/identity/drizzle/schema.sqlite.d.ts +872 -0
  541. package/dist/identity/drizzle/schema.sqlite.js +100 -0
  542. package/dist/identity/drizzle/schema.sqlite.js.map +1 -0
  543. package/dist/identity/oidc/AutoDetectIdentityProviderHandler.d.ts +43 -0
  544. package/dist/identity/oidc/AutoDetectIdentityProviderHandler.js +92 -0
  545. package/dist/identity/oidc/AutoDetectIdentityProviderHandler.js.map +1 -0
  546. package/dist/identity/oidc/AutoDetectIdentityProviderHandler.jsonld +122 -0
  547. package/dist/identity/oidc/AutoDetectOidcHandler.d.ts +55 -0
  548. package/dist/identity/oidc/AutoDetectOidcHandler.js +137 -0
  549. package/dist/identity/oidc/AutoDetectOidcHandler.js.map +1 -0
  550. package/dist/identity/oidc/AutoDetectOidcHandler.jsonld +138 -0
  551. package/dist/identity/oidc/DisabledIdentityProviderHandler.d.ts +51 -0
  552. package/dist/identity/oidc/DisabledIdentityProviderHandler.js +104 -0
  553. package/dist/identity/oidc/DisabledIdentityProviderHandler.js.map +1 -0
  554. package/dist/identity/oidc/DisabledIdentityProviderHandler.jsonld +111 -0
  555. package/dist/identity/oidc/DisabledOidcHandler.d.ts +55 -0
  556. package/dist/identity/oidc/DisabledOidcHandler.js +132 -0
  557. package/dist/identity/oidc/DisabledOidcHandler.js.map +1 -0
  558. package/dist/identity/oidc/DisabledOidcHandler.jsonld +157 -0
  559. package/dist/index.d.ts +80 -0
  560. package/dist/index.js +155 -0
  561. package/dist/index.js.map +1 -0
  562. package/dist/legacy/DrizzleClientCredentialsStore.d.ts +51 -0
  563. package/dist/legacy/DrizzleClientCredentialsStore.js +142 -0
  564. package/dist/legacy/DrizzleClientCredentialsStore.js.map +1 -0
  565. package/dist/legacy/DrizzleIndexedStorage.d.ts +26 -0
  566. package/dist/legacy/DrizzleIndexedStorage.js +159 -0
  567. package/dist/legacy/DrizzleIndexedStorage.js.map +1 -0
  568. package/dist/legacy/DrizzleQuotaService.d.ts +16 -0
  569. package/dist/legacy/DrizzleQuotaService.js +37 -0
  570. package/dist/legacy/DrizzleQuotaService.js.map +1 -0
  571. package/dist/libs/backends/index.d.ts +6 -0
  572. package/dist/libs/backends/index.js +31 -0
  573. package/dist/libs/backends/index.js.map +1 -0
  574. package/dist/libs/backends/sqlup.d.ts +44 -0
  575. package/dist/libs/backends/sqlup.js +437 -0
  576. package/dist/libs/backends/sqlup.js.map +1 -0
  577. package/dist/logging/ConfigurableLoggerFactory.d.ts +24 -0
  578. package/dist/logging/ConfigurableLoggerFactory.js +77 -0
  579. package/dist/logging/ConfigurableLoggerFactory.js.map +1 -0
  580. package/dist/logging/ConfigurableLoggerFactory.jsonld +169 -0
  581. package/dist/logging/LogContext.d.ts +5 -0
  582. package/dist/logging/LogContext.js +6 -0
  583. package/dist/logging/LogContext.js.map +1 -0
  584. package/dist/main.d.ts +2 -0
  585. package/dist/main.js +148 -0
  586. package/dist/main.js.map +1 -0
  587. package/dist/network/LocalNetworkDetector.d.ts +65 -0
  588. package/dist/network/LocalNetworkDetector.js +185 -0
  589. package/dist/network/LocalNetworkDetector.js.map +1 -0
  590. package/dist/network/index.d.ts +4 -0
  591. package/dist/network/index.js +21 -0
  592. package/dist/network/index.js.map +1 -0
  593. package/dist/pods/ReservedSuffixIdentifierGenerator.d.ts +13 -0
  594. package/dist/pods/ReservedSuffixIdentifierGenerator.js +26 -0
  595. package/dist/pods/ReservedSuffixIdentifierGenerator.js.map +1 -0
  596. package/dist/pods/ReservedSuffixIdentifierGenerator.jsonld +75 -0
  597. package/dist/quota/DefaultQuotaService.d.ts +16 -0
  598. package/dist/quota/DefaultQuotaService.js +37 -0
  599. package/dist/quota/DefaultQuotaService.js.map +1 -0
  600. package/dist/quota/DefaultQuotaService.jsonld +85 -0
  601. package/dist/quota/DrizzleQuotaService.d.ts +16 -0
  602. package/dist/quota/DrizzleQuotaService.js +37 -0
  603. package/dist/quota/DrizzleQuotaService.js.map +1 -0
  604. package/dist/quota/DrizzleQuotaService.jsonld +87 -0
  605. package/dist/quota/NoopQuotaService.d.ts +7 -0
  606. package/dist/quota/NoopQuotaService.js +15 -0
  607. package/dist/quota/NoopQuotaService.js.map +1 -0
  608. package/dist/quota/NoopQuotaService.jsonld +36 -0
  609. package/dist/quota/QuotaService.d.ts +6 -0
  610. package/dist/quota/QuotaService.js +3 -0
  611. package/dist/quota/QuotaService.js.map +1 -0
  612. package/dist/quota/QuotaService.jsonld +33 -0
  613. package/dist/sdk/SignalingClientAdapter.d.ts +38 -0
  614. package/dist/sdk/SignalingClientAdapter.js +99 -0
  615. package/dist/sdk/SignalingClientAdapter.js.map +1 -0
  616. package/dist/sdk/createFetch.d.ts +23 -0
  617. package/dist/sdk/createFetch.js +258 -0
  618. package/dist/sdk/createFetch.js.map +1 -0
  619. package/dist/sdk/index.d.ts +29 -0
  620. package/dist/sdk/index.js +34 -0
  621. package/dist/sdk/index.js.map +1 -0
  622. package/dist/sdk/xpodFetch.d.ts +112 -0
  623. package/dist/sdk/xpodFetch.js +251 -0
  624. package/dist/sdk/xpodFetch.js.map +1 -0
  625. package/dist/service/EdgeNodeCertificateService.d.ts +45 -0
  626. package/dist/service/EdgeNodeCertificateService.js +164 -0
  627. package/dist/service/EdgeNodeCertificateService.js.map +1 -0
  628. package/dist/service/EdgeNodeCertificateService.jsonld +216 -0
  629. package/dist/service/EdgeNodeHeartbeatService.d.ts +68 -0
  630. package/dist/service/EdgeNodeHeartbeatService.js +262 -0
  631. package/dist/service/EdgeNodeHeartbeatService.js.map +1 -0
  632. package/dist/service/PodMigrationService.d.ts +43 -0
  633. package/dist/service/PodMigrationService.js +72 -0
  634. package/dist/service/PodMigrationService.js.map +1 -0
  635. package/dist/service/PodMigrationService.jsonld +76 -0
  636. package/dist/signaling/SignalingClient.d.ts +142 -0
  637. package/dist/signaling/SignalingClient.js +305 -0
  638. package/dist/signaling/SignalingClient.js.map +1 -0
  639. package/dist/signaling/SignalingService.d.ts +104 -0
  640. package/dist/signaling/SignalingService.js +440 -0
  641. package/dist/signaling/SignalingService.js.map +1 -0
  642. package/dist/signaling/index.d.ts +11 -0
  643. package/dist/signaling/index.js +28 -0
  644. package/dist/signaling/index.js.map +1 -0
  645. package/dist/signaling/types.d.ts +237 -0
  646. package/dist/signaling/types.js +18 -0
  647. package/dist/signaling/types.js.map +1 -0
  648. package/dist/storage/DrizzleCompat.d.ts +15 -0
  649. package/dist/storage/DrizzleCompat.js +60 -0
  650. package/dist/storage/DrizzleCompat.js.map +1 -0
  651. package/dist/storage/LockingResourceStore.d.ts +8 -0
  652. package/dist/storage/LockingResourceStore.js +68 -0
  653. package/dist/storage/LockingResourceStore.js.map +1 -0
  654. package/dist/storage/MigratableDataAccessor.d.ts +63 -0
  655. package/dist/storage/MigratableDataAccessor.js +11 -0
  656. package/dist/storage/MigratableDataAccessor.js.map +1 -0
  657. package/dist/storage/MigratableDataAccessor.jsonld +60 -0
  658. package/dist/storage/ObservableResourceStore.d.ts +89 -0
  659. package/dist/storage/ObservableResourceStore.js +125 -0
  660. package/dist/storage/ObservableResourceStore.js.map +1 -0
  661. package/dist/storage/RepresentationPartialConvertingStore.d.ts +22 -0
  662. package/dist/storage/RepresentationPartialConvertingStore.js +94 -0
  663. package/dist/storage/RepresentationPartialConvertingStore.js.map +1 -0
  664. package/dist/storage/RepresentationPartialConvertingStore.jsonld +332 -0
  665. package/dist/storage/SparqlUpdateResourceStore.d.ts +30 -0
  666. package/dist/storage/SparqlUpdateResourceStore.js +292 -0
  667. package/dist/storage/SparqlUpdateResourceStore.js.map +1 -0
  668. package/dist/storage/SparqlUpdateResourceStore.jsonld +112 -0
  669. package/dist/storage/SqliteCompat.d.ts +60 -0
  670. package/dist/storage/SqliteCompat.js +158 -0
  671. package/dist/storage/SqliteCompat.js.map +1 -0
  672. package/dist/storage/accessors/MinioDataAccessor.d.ts +127 -0
  673. package/dist/storage/accessors/MinioDataAccessor.js +249 -0
  674. package/dist/storage/accessors/MinioDataAccessor.js.map +1 -0
  675. package/dist/storage/accessors/MinioDataAccessor.jsonld +138 -0
  676. package/dist/storage/accessors/MixDataAccessor.d.ts +43 -0
  677. package/dist/storage/accessors/MixDataAccessor.js +130 -0
  678. package/dist/storage/accessors/MixDataAccessor.js.map +1 -0
  679. package/dist/storage/accessors/MixDataAccessor.jsonld +101 -0
  680. package/dist/storage/accessors/QuadstoreSparqlDataAccessor.d.ts +146 -0
  681. package/dist/storage/accessors/QuadstoreSparqlDataAccessor.js +415 -0
  682. package/dist/storage/accessors/QuadstoreSparqlDataAccessor.js.map +1 -0
  683. package/dist/storage/accessors/QuadstoreSparqlDataAccessor.jsonld +180 -0
  684. package/dist/storage/accessors/QuintStoreSparqlDataAccessor.d.ts +95 -0
  685. package/dist/storage/accessors/QuintStoreSparqlDataAccessor.js +376 -0
  686. package/dist/storage/accessors/QuintStoreSparqlDataAccessor.js.map +1 -0
  687. package/dist/storage/accessors/QuintStoreSparqlDataAccessor.jsonld +168 -0
  688. package/dist/storage/accessors/TieredMinioDataAccessor.d.ts +150 -0
  689. package/dist/storage/accessors/TieredMinioDataAccessor.js +582 -0
  690. package/dist/storage/accessors/TieredMinioDataAccessor.js.map +1 -0
  691. package/dist/storage/accessors/TieredMinioDataAccessor.jsonld +333 -0
  692. package/dist/storage/database/PostgresPoolManager.d.ts +56 -0
  693. package/dist/storage/database/PostgresPoolManager.js +117 -0
  694. package/dist/storage/database/PostgresPoolManager.js.map +1 -0
  695. package/dist/storage/keyvalue/PostgresKeyValueStorage.d.ts +34 -0
  696. package/dist/storage/keyvalue/PostgresKeyValueStorage.js +146 -0
  697. package/dist/storage/keyvalue/PostgresKeyValueStorage.js.map +1 -0
  698. package/dist/storage/keyvalue/PostgresKeyValueStorage.jsonld +192 -0
  699. package/dist/storage/keyvalue/RedisKeyValueStorage.d.ts +30 -0
  700. package/dist/storage/keyvalue/RedisKeyValueStorage.js +133 -0
  701. package/dist/storage/keyvalue/RedisKeyValueStorage.js.map +1 -0
  702. package/dist/storage/keyvalue/RedisKeyValueStorage.jsonld +237 -0
  703. package/dist/storage/keyvalue/SqliteKeyValueStorage.d.ts +30 -0
  704. package/dist/storage/keyvalue/SqliteKeyValueStorage.js +164 -0
  705. package/dist/storage/keyvalue/SqliteKeyValueStorage.js.map +1 -0
  706. package/dist/storage/keyvalue/SqliteKeyValueStorage.jsonld +167 -0
  707. package/dist/storage/quint/BaseQuintStore.d.ts +80 -0
  708. package/dist/storage/quint/BaseQuintStore.js +535 -0
  709. package/dist/storage/quint/BaseQuintStore.js.map +1 -0
  710. package/dist/storage/quint/BaseQuintStore.jsonld +175 -0
  711. package/dist/storage/quint/PgQuintStore.d.ts +61 -0
  712. package/dist/storage/quint/PgQuintStore.drizzle.d.ts +45 -0
  713. package/dist/storage/quint/PgQuintStore.drizzle.js +327 -0
  714. package/dist/storage/quint/PgQuintStore.drizzle.js.map +1 -0
  715. package/dist/storage/quint/PgQuintStore.js +275 -0
  716. package/dist/storage/quint/PgQuintStore.js.map +1 -0
  717. package/dist/storage/quint/PgQuintStore.jsonld +258 -0
  718. package/dist/storage/quint/SqliteQuintStore.d.ts +55 -0
  719. package/dist/storage/quint/SqliteQuintStore.js +630 -0
  720. package/dist/storage/quint/SqliteQuintStore.js.map +1 -0
  721. package/dist/storage/quint/SqliteQuintStore.jsonld +157 -0
  722. package/dist/storage/quint/index.d.ts +11 -0
  723. package/dist/storage/quint/index.js +30 -0
  724. package/dist/storage/quint/index.js.map +1 -0
  725. package/dist/storage/quint/schema.d.ts +82 -0
  726. package/dist/storage/quint/schema.js +33 -0
  727. package/dist/storage/quint/schema.js.map +1 -0
  728. package/dist/storage/quint/serialization.d.ts +56 -0
  729. package/dist/storage/quint/serialization.js +198 -0
  730. package/dist/storage/quint/serialization.js.map +1 -0
  731. package/dist/storage/quint/types.d.ts +152 -0
  732. package/dist/storage/quint/types.js +27 -0
  733. package/dist/storage/quint/types.js.map +1 -0
  734. package/dist/storage/quint/types.jsonld +78 -0
  735. package/dist/storage/quota/PerAccountQuotaStrategy.d.ts +19 -0
  736. package/dist/storage/quota/PerAccountQuotaStrategy.js +63 -0
  737. package/dist/storage/quota/PerAccountQuotaStrategy.js.map +1 -0
  738. package/dist/storage/quota/PerAccountQuotaStrategy.jsonld +113 -0
  739. package/dist/storage/quota/UsageRepository.d.ts +46 -0
  740. package/dist/storage/quota/UsageRepository.js +278 -0
  741. package/dist/storage/quota/UsageRepository.js.map +1 -0
  742. package/dist/storage/quota/UsageTrackingStore.d.ts +37 -0
  743. package/dist/storage/quota/UsageTrackingStore.js +355 -0
  744. package/dist/storage/quota/UsageTrackingStore.js.map +1 -0
  745. package/dist/storage/quota/UsageTrackingStore.jsonld +193 -0
  746. package/dist/storage/sparql/AlgebraUtils.d.ts +48 -0
  747. package/dist/storage/sparql/AlgebraUtils.js +118 -0
  748. package/dist/storage/sparql/AlgebraUtils.js.map +1 -0
  749. package/dist/storage/sparql/ComunicaOptimizedEngine.d.ts +59 -0
  750. package/dist/storage/sparql/ComunicaOptimizedEngine.js +254 -0
  751. package/dist/storage/sparql/ComunicaOptimizedEngine.js.map +1 -0
  752. package/dist/storage/sparql/ComunicaQuintEngine.d.ts +134 -0
  753. package/dist/storage/sparql/ComunicaQuintEngine.js +727 -0
  754. package/dist/storage/sparql/ComunicaQuintEngine.js.map +1 -0
  755. package/dist/storage/sparql/ExpressionEvaluator.d.ts +54 -0
  756. package/dist/storage/sparql/ExpressionEvaluator.js +340 -0
  757. package/dist/storage/sparql/ExpressionEvaluator.js.map +1 -0
  758. package/dist/storage/sparql/FilterPushdownExtractor.d.ts +74 -0
  759. package/dist/storage/sparql/FilterPushdownExtractor.js +409 -0
  760. package/dist/storage/sparql/FilterPushdownExtractor.js.map +1 -0
  761. package/dist/storage/sparql/OptimizedQuadstoreEngine.d.ts +65 -0
  762. package/dist/storage/sparql/OptimizedQuadstoreEngine.js +327 -0
  763. package/dist/storage/sparql/OptimizedQuadstoreEngine.js.map +1 -0
  764. package/dist/storage/sparql/OptimizedQuadstoreSource.d.ts +46 -0
  765. package/dist/storage/sparql/OptimizedQuadstoreSource.js +118 -0
  766. package/dist/storage/sparql/OptimizedQuadstoreSource.js.map +1 -0
  767. package/dist/storage/sparql/PatternBuilder.d.ts +41 -0
  768. package/dist/storage/sparql/PatternBuilder.js +118 -0
  769. package/dist/storage/sparql/PatternBuilder.js.map +1 -0
  770. package/dist/storage/sparql/QueryOptimizer.d.ts +125 -0
  771. package/dist/storage/sparql/QueryOptimizer.js +363 -0
  772. package/dist/storage/sparql/QueryOptimizer.js.map +1 -0
  773. package/dist/storage/sparql/QuintEngine.d.ts +92 -0
  774. package/dist/storage/sparql/QuintEngine.js +150 -0
  775. package/dist/storage/sparql/QuintEngine.js.map +1 -0
  776. package/dist/storage/sparql/QuintQuerySource.d.ts +227 -0
  777. package/dist/storage/sparql/QuintQuerySource.js +918 -0
  778. package/dist/storage/sparql/QuintQuerySource.js.map +1 -0
  779. package/dist/storage/sparql/SimpleSparqlExecutor.d.ts +40 -0
  780. package/dist/storage/sparql/SimpleSparqlExecutor.js +131 -0
  781. package/dist/storage/sparql/SimpleSparqlExecutor.js.map +1 -0
  782. package/dist/storage/sparql/SubgraphQueryEngine.d.ts +74 -0
  783. package/dist/storage/sparql/SubgraphQueryEngine.js +248 -0
  784. package/dist/storage/sparql/SubgraphQueryEngine.js.map +1 -0
  785. package/dist/storage/sparql/SubgraphQueryEngine.jsonld +250 -0
  786. package/dist/storage/vector/PostgresVectorStore.d.ts +46 -0
  787. package/dist/storage/vector/PostgresVectorStore.js +291 -0
  788. package/dist/storage/vector/PostgresVectorStore.js.map +1 -0
  789. package/dist/storage/vector/PostgresVectorStore.jsonld +142 -0
  790. package/dist/storage/vector/SqliteVectorStore.d.ts +44 -0
  791. package/dist/storage/vector/SqliteVectorStore.js +282 -0
  792. package/dist/storage/vector/SqliteVectorStore.js.map +1 -0
  793. package/dist/storage/vector/SqliteVectorStore.jsonld +137 -0
  794. package/dist/storage/vector/VectorIndexingListener.d.ts +114 -0
  795. package/dist/storage/vector/VectorIndexingListener.js +351 -0
  796. package/dist/storage/vector/VectorIndexingListener.js.map +1 -0
  797. package/dist/storage/vector/VectorStore.d.ts +42 -0
  798. package/dist/storage/vector/VectorStore.js +50 -0
  799. package/dist/storage/vector/VectorStore.js.map +1 -0
  800. package/dist/storage/vector/VectorStore.jsonld +87 -0
  801. package/dist/storage/vector/VectorStoreInit.d.ts +28 -0
  802. package/dist/storage/vector/VectorStoreInit.js +104 -0
  803. package/dist/storage/vector/VectorStoreInit.js.map +1 -0
  804. package/dist/storage/vector/index.d.ts +5 -0
  805. package/dist/storage/vector/index.js +22 -0
  806. package/dist/storage/vector/index.js.map +1 -0
  807. package/dist/storage/vector/types.d.ts +39 -0
  808. package/dist/storage/vector/types.js +8 -0
  809. package/dist/storage/vector/types.js.map +1 -0
  810. package/dist/subdomain/SubdomainClient.d.ts +156 -0
  811. package/dist/subdomain/SubdomainClient.js +220 -0
  812. package/dist/subdomain/SubdomainClient.js.map +1 -0
  813. package/dist/subdomain/SubdomainService.d.ts +114 -0
  814. package/dist/subdomain/SubdomainService.js +212 -0
  815. package/dist/subdomain/SubdomainService.js.map +1 -0
  816. package/dist/subdomain/SubdomainService.jsonld +261 -0
  817. package/dist/subdomain/index.d.ts +2 -0
  818. package/dist/subdomain/index.js +9 -0
  819. package/dist/subdomain/index.js.map +1 -0
  820. package/dist/supervisor/Supervisor.d.ts +20 -0
  821. package/dist/supervisor/Supervisor.js +174 -0
  822. package/dist/supervisor/Supervisor.js.map +1 -0
  823. package/dist/supervisor/index.d.ts +2 -0
  824. package/dist/supervisor/index.js +6 -0
  825. package/dist/supervisor/index.js.map +1 -0
  826. package/dist/supervisor/types.d.ts +19 -0
  827. package/dist/supervisor/types.js +3 -0
  828. package/dist/supervisor/types.js.map +1 -0
  829. package/dist/task/DrizzleTaskQueue.d.ts +60 -0
  830. package/dist/task/DrizzleTaskQueue.js +171 -0
  831. package/dist/task/DrizzleTaskQueue.js.map +1 -0
  832. package/dist/task/TaskExecutor.d.ts +82 -0
  833. package/dist/task/TaskExecutor.js +198 -0
  834. package/dist/task/TaskExecutor.js.map +1 -0
  835. package/dist/task/index.d.ts +10 -0
  836. package/dist/task/index.js +20 -0
  837. package/dist/task/index.js.map +1 -0
  838. package/dist/task/schema.d.ts +53 -0
  839. package/dist/task/schema.js +71 -0
  840. package/dist/task/schema.js.map +1 -0
  841. package/dist/task/types.d.ts +186 -0
  842. package/dist/task/types.js +12 -0
  843. package/dist/task/types.js.map +1 -0
  844. package/dist/terminal/AclPermissionService.d.ts +28 -0
  845. package/dist/terminal/AclPermissionService.js +141 -0
  846. package/dist/terminal/AclPermissionService.js.map +1 -0
  847. package/dist/terminal/BubblewrapSandbox.d.ts +51 -0
  848. package/dist/terminal/BubblewrapSandbox.js +147 -0
  849. package/dist/terminal/BubblewrapSandbox.js.map +1 -0
  850. package/dist/terminal/TerminalSession.d.ts +33 -0
  851. package/dist/terminal/TerminalSession.js +164 -0
  852. package/dist/terminal/TerminalSession.js.map +1 -0
  853. package/dist/terminal/TerminalSessionManager.d.ts +69 -0
  854. package/dist/terminal/TerminalSessionManager.js +196 -0
  855. package/dist/terminal/TerminalSessionManager.js.map +1 -0
  856. package/dist/terminal/index.d.ts +5 -0
  857. package/dist/terminal/index.js +22 -0
  858. package/dist/terminal/index.js.map +1 -0
  859. package/dist/terminal/sandbox/BubblewrapSandbox.d.ts +8 -0
  860. package/dist/terminal/sandbox/BubblewrapSandbox.js +105 -0
  861. package/dist/terminal/sandbox/BubblewrapSandbox.js.map +1 -0
  862. package/dist/terminal/sandbox/MacOSSandbox.d.ts +19 -0
  863. package/dist/terminal/sandbox/MacOSSandbox.js +120 -0
  864. package/dist/terminal/sandbox/MacOSSandbox.js.map +1 -0
  865. package/dist/terminal/sandbox/index.d.ts +29 -0
  866. package/dist/terminal/sandbox/index.js +113 -0
  867. package/dist/terminal/sandbox/index.js.map +1 -0
  868. package/dist/terminal/sandbox/types.d.ts +38 -0
  869. package/dist/terminal/sandbox/types.js +3 -0
  870. package/dist/terminal/sandbox/types.js.map +1 -0
  871. package/dist/terminal/types.d.ts +80 -0
  872. package/dist/terminal/types.js +16 -0
  873. package/dist/terminal/types.js.map +1 -0
  874. package/dist/tunnel/CloudflareTunnelProvider.d.ts +120 -0
  875. package/dist/tunnel/CloudflareTunnelProvider.js +376 -0
  876. package/dist/tunnel/CloudflareTunnelProvider.js.map +1 -0
  877. package/dist/tunnel/CloudflareTunnelProvider.jsonld +204 -0
  878. package/dist/tunnel/LocalTunnelProvider.d.ts +85 -0
  879. package/dist/tunnel/LocalTunnelProvider.js +295 -0
  880. package/dist/tunnel/LocalTunnelProvider.js.map +1 -0
  881. package/dist/tunnel/LocalTunnelProvider.jsonld +142 -0
  882. package/dist/tunnel/SakuraFrpTunnelProvider.d.ts +59 -0
  883. package/dist/tunnel/SakuraFrpTunnelProvider.js +207 -0
  884. package/dist/tunnel/SakuraFrpTunnelProvider.js.map +1 -0
  885. package/dist/tunnel/TunnelProvider.d.ts +91 -0
  886. package/dist/tunnel/TunnelProvider.js +10 -0
  887. package/dist/tunnel/TunnelProvider.js.map +1 -0
  888. package/dist/tunnel/TunnelProvider.jsonld +144 -0
  889. package/dist/tunnel/index.d.ts +3 -0
  890. package/dist/tunnel/index.js +8 -0
  891. package/dist/tunnel/index.js.map +1 -0
  892. package/dist/util/LockContext.d.ts +3 -0
  893. package/dist/util/LockContext.js +6 -0
  894. package/dist/util/LockContext.js.map +1 -0
  895. package/dist/util/ResourceStoreFetch.d.ts +11 -0
  896. package/dist/util/ResourceStoreFetch.js +147 -0
  897. package/dist/util/ResourceStoreFetch.js.map +1 -0
  898. package/dist/util/database/DatabaseMaintenance.d.ts +23 -0
  899. package/dist/util/database/DatabaseMaintenance.js +82 -0
  900. package/dist/util/database/DatabaseMaintenance.js.map +1 -0
  901. package/dist/util/identifiers/ClusterIdentifierStrategy.d.ts +23 -0
  902. package/dist/util/identifiers/ClusterIdentifierStrategy.js +73 -0
  903. package/dist/util/identifiers/ClusterIdentifierStrategy.js.map +1 -0
  904. package/dist/util/identifiers/ClusterIdentifierStrategy.jsonld +90 -0
  905. package/dist/util/identifiers/MultiDomainIdentifierStrategy.d.ts +40 -0
  906. package/dist/util/identifiers/MultiDomainIdentifierStrategy.js +73 -0
  907. package/dist/util/identifiers/MultiDomainIdentifierStrategy.js.map +1 -0
  908. package/dist/util/identifiers/MultiDomainIdentifierStrategy.jsonld +90 -0
  909. package/dist/util/identifiers/PathBasedPodIdentifierStrategy.d.ts +78 -0
  910. package/dist/util/identifiers/PathBasedPodIdentifierStrategy.js +182 -0
  911. package/dist/util/identifiers/PathBasedPodIdentifierStrategy.js.map +1 -0
  912. package/dist/util/identifiers/PathBasedPodIdentifierStrategy.jsonld +88 -0
  913. package/dist/util/identifiers/SubdomainPodIdentifierStrategy.d.ts +68 -0
  914. package/dist/util/identifiers/SubdomainPodIdentifierStrategy.js +149 -0
  915. package/dist/util/identifiers/SubdomainPodIdentifierStrategy.js.map +1 -0
  916. package/dist/util/identifiers/SubdomainPodIdentifierStrategy.jsonld +84 -0
  917. package/dist/util/locking/DebugRedisLocker.d.ts +8 -0
  918. package/dist/util/locking/DebugRedisLocker.js +33 -0
  919. package/dist/util/locking/DebugRedisLocker.js.map +1 -0
  920. package/dist/util/logger.d.ts +13 -0
  921. package/dist/util/logger.js +36 -0
  922. package/dist/util/logger.js.map +1 -0
  923. package/dist/util/stream/BandwidthThrottleTransform.d.ts +8 -0
  924. package/dist/util/stream/BandwidthThrottleTransform.js +55 -0
  925. package/dist/util/stream/BandwidthThrottleTransform.js.map +1 -0
  926. package/dist/vocab/external.d.ts +216 -0
  927. package/dist/vocab/external.js +276 -0
  928. package/dist/vocab/external.js.map +1 -0
  929. package/dist/vocab/index.d.ts +26 -0
  930. package/dist/vocab/index.js +46 -0
  931. package/dist/vocab/index.js.map +1 -0
  932. package/dist/vocab/udfs.d.ts +184 -0
  933. package/dist/vocab/udfs.js +217 -0
  934. package/dist/vocab/udfs.js.map +1 -0
  935. package/dist/webrtc/WebRTCClient.d.ts +109 -0
  936. package/dist/webrtc/WebRTCClient.js +344 -0
  937. package/dist/webrtc/WebRTCClient.js.map +1 -0
  938. package/dist/webrtc/WebRTCPeerManager.d.ts +112 -0
  939. package/dist/webrtc/WebRTCPeerManager.js +289 -0
  940. package/dist/webrtc/WebRTCPeerManager.js.map +1 -0
  941. package/dist/webrtc/WeriftPeerConnectionFactory.d.ts +13 -0
  942. package/dist/webrtc/WeriftPeerConnectionFactory.js +255 -0
  943. package/dist/webrtc/WeriftPeerConnectionFactory.js.map +1 -0
  944. package/dist/webrtc/index.d.ts +13 -0
  945. package/dist/webrtc/index.js +30 -0
  946. package/dist/webrtc/index.js.map +1 -0
  947. package/dist/webrtc/types.d.ts +169 -0
  948. package/dist/webrtc/types.js +6 -0
  949. package/dist/webrtc/types.js.map +1 -0
  950. package/dist/xpod.single.cjs +826 -0
  951. package/dist/xpod.single.cjs.map +7 -0
  952. package/package.json +173 -0
  953. package/static/app/assets/index.css +1 -0
  954. package/static/app/assets/main.js +11 -0
  955. package/static/app/auth.html +21 -0
  956. package/static/app/index.html +14 -0
  957. package/static/app/vite.svg +1 -0
  958. package/static/dashboard/assets/dashboard-G96F8267.js +52 -0
  959. package/static/dashboard/assets/dashboard-PJyGDppf.css +1 -0
  960. package/static/dashboard/auth.html +21 -0
  961. package/static/dashboard/index.html +13 -0
  962. package/static/dashboard/vite.svg +1 -0
  963. package/static/landing/index.html +165 -0
  964. package/templates/identity/index.html.ejs +12 -0
  965. package/templates/identity/login.html.ejs +49 -0
  966. package/templates/identity/oidc/consent.html.ejs +103 -0
  967. package/templates/identity/password/forgot.html.ejs +49 -0
  968. package/templates/identity/password/login.html.ejs +58 -0
  969. package/templates/identity/password/register.html.ejs +65 -0
  970. package/templates/main.html.ejs +1 -0
@@ -0,0 +1 @@
1
+ {"version":3,"file":"QuintQuerySource.js","sourceRoot":"","sources":["../../../src/storage/sparql/QuintQuerySource.ts"],"names":[],"mappings":"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","sourcesContent":["/**\n * QuintQuerySource - IQuerySource implementation for QuintStore\n * \n * This implements Comunica's IQuerySource interface to enable proper FILTER pushdown.\n * Unlike RDF.Store.match() which only receives 4 terms, IQuerySource.queryBindings()\n * receives the full SPARQL algebra including FILTER expressions.\n * \n * Design:\n * - Delegates filter extraction to FilterPushdownExtractor\n * - Delegates pattern building to PatternBuilder\n * - Delegates in-memory evaluation to ExpressionEvaluator\n * - Coordinates these components to execute queries efficiently\n */\n\nimport type { Quad, Term, Variable, Bindings } from '@rdfjs/types';\nimport type { AsyncIterator } from 'asynciterator';\nimport { ArrayIterator, BufferedIterator, wrap } from 'asynciterator';\nimport { Algebra, Util as AlgebraUtil } from 'sparqlalgebrajs';\nimport { DataFactory } from 'rdf-data-factory';\n\nimport type { QuintStore, QuintPattern, QueryOptions, TermName, TermOperators, CompoundPattern, CompoundResult } from '../quint/types';\nimport type { SecurityFilters } from './ComunicaQuintEngine';\nimport { FilterPushdownExtractor, type PushdownFilters, type PushdownResult } from './FilterPushdownExtractor';\nimport { PatternBuilder } from './PatternBuilder';\nimport { ExpressionEvaluator } from './ExpressionEvaluator';\nimport { extractVariables } from './AlgebraUtils';\nimport { deserializeObject } from '../quint/serialization';\n\n// Re-export types from Comunica - we define them here to avoid complex import paths\nexport interface IActionContext {\n get<V>(key: { name: string }): V | undefined;\n getSafe<V>(key: { name: string }): V;\n has(key: { name: string }): boolean;\n}\n\nexport interface FragmentSelectorShape {\n type: 'operation' | 'conjunction' | 'disjunction' | 'negation' | 'arity';\n operation?: {\n operationType: 'type' | 'pattern' | 'wildcard';\n type?: string;\n pattern?: Algebra.Operation;\n };\n children?: FragmentSelectorShape[];\n child?: FragmentSelectorShape;\n variablesOptional?: Variable[];\n joinBindings?: true;\n filterBindings?: true;\n min?: number;\n max?: number;\n}\n\nexport interface BindingsStream extends AsyncIterator<Bindings> {\n // AsyncIterator with metadata property\n}\n\nexport interface IQueryBindingsOptions {\n joinBindings?: {\n bindings: BindingsStream;\n metadata: unknown;\n };\n filterBindings?: {\n bindings: BindingsStream;\n metadata: unknown;\n };\n}\n\nexport interface MetadataValidationState {\n // Metadata validation state\n}\n\n/**\n * IQuerySource interface compatible with Comunica\n */\nexport interface IQuerySource {\n referenceValue: unknown;\n getSelectorShape(context: IActionContext): Promise<FragmentSelectorShape>;\n queryBindings(operation: Algebra.Operation, context: IActionContext, options?: IQueryBindingsOptions): BindingsStream;\n queryQuads(operation: Algebra.Operation, context: IActionContext): AsyncIterator<Quad>;\n queryBoolean(operation: Algebra.Ask, context: IActionContext): Promise<boolean>;\n queryVoid(operation: Algebra.Update, context: IActionContext): Promise<void>;\n toString(): string;\n}\n\ninterface OptimizeParams {\n limit?: number;\n offset?: number;\n order?: TermName[];\n /** 原始 ORDER BY 变量名,用于分析绑定位置 */\n orderVarName?: string;\n reverse?: boolean;\n}\n\nconst dataFactory = new DataFactory();\n\n/**\n * QuintQuerySource implements IQuerySource for QuintStore\n * \n * Key features:\n * 1. Declares support for FILTER operations via getSelectorShape()\n * 2. Receives full SPARQL algebra in queryBindings() including FILTERs\n * 3. Extracts filter conditions and pushes them down to QuintStore\n * 4. Applies security filters (ACL) unconditionally\n * 5. Tree-based evaluation for remaining non-pushdownable expressions\n */\nexport class QuintQuerySource implements IQuerySource {\n public readonly referenceValue: unknown;\n \n private readonly store: QuintStore;\n private readonly debug: boolean;\n private readonly bindingsFactory: any; // BindingsFactory from Comunica\n \n // Closures to get current query context\n private readonly getSecurityFilters: () => SecurityFilters | undefined;\n private readonly getOptimizeParams: () => OptimizeParams | null;\n private readonly getFilterExpression: ((varName: string) => Algebra.Expression | undefined) | undefined;\n \n // Delegate components\n private readonly filterExtractor: FilterPushdownExtractor;\n private readonly patternBuilder: PatternBuilder;\n private readonly expressionEvaluator: ExpressionEvaluator;\n \n constructor(\n store: QuintStore,\n options: {\n debug?: boolean;\n bindingsFactory: any;\n getSecurityFilters: () => SecurityFilters | undefined;\n getOptimizeParams: () => OptimizeParams | null;\n getFilterExpression?: (varName: string) => Algebra.Expression | undefined;\n }\n ) {\n this.store = store;\n this.referenceValue = store; // Reference for source identification\n this.debug = options.debug ?? false;\n this.bindingsFactory = options.bindingsFactory;\n this.getSecurityFilters = options.getSecurityFilters;\n this.getOptimizeParams = options.getOptimizeParams;\n this.getFilterExpression = options.getFilterExpression;\n \n // Initialize delegate components\n this.filterExtractor = new FilterPushdownExtractor();\n this.patternBuilder = new PatternBuilder(this.getSecurityFilters);\n this.expressionEvaluator = new ExpressionEvaluator(\n store,\n this.patternBuilder,\n this.extractPatternAndFilter.bind(this)\n );\n }\n\n /**\n * Declare the operations this source supports\n * \n * We support:\n * - Basic quad patterns (for simple queries)\n * - FILTER operations (for filter pushdown)\n * - BGP operations (for multi-pattern queries)\n * - joinBindings: allows Comunica to push JOIN operations down to us\n * \n * The joinBindings support enables ActorRdfJoinMultiBindSource to push\n * multiple patterns to us efficiently, using SQL JOINs instead of\n * Comunica's nested loop approach.\n */\n async getSelectorShape(_context: IActionContext): Promise<FragmentSelectorShape> {\n // Check if store supports compound queries\n const supportsCompound = !!this.store.getCompound;\n \n return {\n type: 'disjunction',\n children: [\n // Support basic patterns with joinBindings\n {\n type: 'operation',\n operation: {\n operationType: 'pattern',\n pattern: {\n type: 'pattern',\n subject: dataFactory.variable('s'),\n predicate: dataFactory.variable('p'),\n object: dataFactory.variable('o'),\n graph: dataFactory.variable('g'),\n } as Algebra.Pattern,\n },\n variablesOptional: [\n dataFactory.variable('s'),\n dataFactory.variable('p'),\n dataFactory.variable('o'),\n dataFactory.variable('g'),\n ],\n // Allow Comunica to push join bindings to us\n ...(supportsCompound ? { joinBindings: true } : {}),\n },\n // Support BGP operations (multi-pattern queries)\n {\n type: 'operation',\n operation: {\n operationType: 'type',\n type: Algebra.types.BGP,\n },\n ...(supportsCompound ? { joinBindings: true } : {}),\n },\n // Support FILTER operations\n {\n type: 'operation',\n operation: {\n operationType: 'type',\n type: Algebra.types.FILTER,\n },\n ...(supportsCompound ? { joinBindings: true } : {}),\n },\n // Support JOIN operations (for receiving compound queries from Comunica)\n {\n type: 'operation',\n operation: {\n operationType: 'type',\n type: Algebra.types.JOIN,\n },\n ...(supportsCompound ? { joinBindings: true } : {}),\n },\n ],\n };\n }\n\n /**\n * Query bindings - main entry point for SPARQL queries\n * \n * When Comunica's ActorRdfJoinMultiBindSource selects us for a join operation,\n * it passes options.joinBindings containing bindings from the first pattern.\n * We need to use these bindings to filter our query results efficiently.\n */\n queryBindings(operation: Algebra.Operation, _context: IActionContext, options?: IQueryBindingsOptions): BindingsStream {\n if (this.debug) {\n console.log(`[QuintQuerySource] queryBindings() called with operation type: ${operation.type}`);\n console.log(`[QuintQuerySource] Has joinBindings: ${!!options?.joinBindings}`);\n console.log(`[QuintQuerySource] Has filterBindings: ${!!options?.filterBindings}`);\n // Log operation structure\n if (operation.type === 'join' && (operation as any).input) {\n console.log(`[QuintQuerySource] JOIN inputs: ${(operation as any).input?.length || 0}`);\n }\n }\n\n // Wrap async execution in an iterator using wrap()\n const variables = this.getVariablesFromOperation(operation);\n const resultIterator = wrap(this.executeQuery(operation, options).then(results => results));\n\n // Add metadata for Comunica\n // Variables must be in format { variable: Variable, canBeUndef: boolean }\n const variablesMetadata = variables.map(v => ({ variable: v, canBeUndef: false }));\n resultIterator.setProperty('metadata', {\n state: { invalidate: () => {}, invalid: false, addInvalidateListener: () => {} },\n cardinality: { type: 'estimate' as const, value: Number.POSITIVE_INFINITY },\n variables: variablesMetadata,\n });\n\n return resultIterator as BindingsStream;\n }\n\n /**\n * Execute query and return bindings\n * \n * If options.joinBindings is provided, we need to:\n * 1. Collect bindings from the stream (these are from the first pattern in the JOIN)\n * 2. Extract variable values that overlap with our patterns\n * 3. Use those values as IN conditions in our query\n * 4. JOIN the results with the incoming bindings\n */\n private async executeQuery(operation: Algebra.Operation, options?: IQueryBindingsOptions): Promise<Bindings[]> {\n // Handle joinBindings from Comunica (bind join)\n if (options?.joinBindings && this.store.getCompound) {\n return this.executeBindJoin(operation, options.joinBindings);\n }\n\n const { pattern, patterns, filter } = this.extractPatternAndFilter(operation);\n \n // Check if we can use compound query (multiple patterns with same subject variable)\n if (patterns && patterns.length > 1 && this.store.getCompound) {\n const compoundResult = await this.tryCompoundQuery(patterns, filter, operation);\n if (compoundResult) {\n return compoundResult;\n }\n // Fall back to single pattern execution if compound query not applicable\n }\n\n const variables = extractVariables(pattern);\n\n // Try to get pre-extracted filter expressions for variables in this pattern\n let combinedFilter = filter;\n if (this.getFilterExpression && !filter) {\n // Check if any variable in the pattern has a pre-extracted filter\n for (const variable of variables) {\n const preExtractedFilter = this.getFilterExpression(variable.value);\n if (preExtractedFilter) {\n if (this.debug) {\n console.log(`[QuintQuerySource] Found pre-extracted filter for ?${variable.value}`);\n }\n if (combinedFilter) {\n // Combine with AND\n combinedFilter = {\n type: 'expression',\n expressionType: 'operator',\n operator: '&&',\n args: [combinedFilter, preExtractedFilter],\n } as Algebra.OperatorExpression;\n } else {\n combinedFilter = preExtractedFilter;\n }\n }\n }\n }\n\n // Extract pushdownable filters\n let pushdownFilters: PushdownFilters = {};\n let remainder: Algebra.Expression | null = combinedFilter;\n let orBranches: PushdownFilters[] | undefined;\n let orNonPushdownBranches: Algebra.Expression[] | undefined;\n\n if (combinedFilter) {\n const result = this.filterExtractor.extractPushdownFilters(combinedFilter, pattern);\n pushdownFilters = result.filters;\n remainder = result.remainder;\n orBranches = result.orBranches;\n orNonPushdownBranches = result.orNonPushdownBranches;\n }\n\n if (this.debug) {\n console.log(`[QuintQuerySource] Pushdown filters:`, JSON.stringify(pushdownFilters, null, 2));\n console.log(`[QuintQuerySource] OR branches:`, orBranches?.length || 0);\n console.log(`[QuintQuerySource] OR non-pushdown branches:`, orNonPushdownBranches?.length || 0);\n console.log(`[QuintQuerySource] Has remainder:`, remainder !== null);\n }\n\n // Get query options\n // NOTE: Comunica handles OFFSET, we only pass limit to QuintStore\n // If there's an offset, we need to fetch limit + offset records\n // and let Comunica skip the first `offset` records\n const optimizeParams = this.getOptimizeParams();\n const queryOptions: QueryOptions = {};\n if (optimizeParams?.limit) {\n // Fetch enough records for Comunica to apply offset\n queryOptions.limit = optimizeParams.limit + (optimizeParams.offset || 0);\n }\n // Don't pass offset to QuintStore - Comunica handles it\n \n // 处理 ORDER BY 下推\n if (optimizeParams?.order) {\n // 直接使用已映射的 order\n queryOptions.order = optimizeParams.order;\n } else if (optimizeParams?.orderVarName) {\n // 通过 pattern 分析变量绑定位置\n const orderField = this.findVariableBinding(optimizeParams.orderVarName, pattern);\n if (orderField) {\n queryOptions.order = [orderField];\n if (this.debug) {\n console.log(`[QuintQuerySource] ORDER BY ?${optimizeParams.orderVarName} -> ${orderField} (via pattern analysis)`);\n }\n }\n }\n if (optimizeParams?.reverse) queryOptions.reverse = optimizeParams.reverse;\n\n let results: Bindings[];\n\n // Handle OR branches (union semantics)\n if (orBranches && orBranches.length > 0) {\n results = await this.executeOrBranches(pattern, variables, orBranches, orNonPushdownBranches, queryOptions);\n if (this.debug) {\n console.log(`[QuintQuerySource] OR pushdown branches returned ${results.length} unique results`);\n }\n } else if (Object.keys(pushdownFilters).length > 0) {\n // Build pattern with pushdown filters\n const quintPattern = this.patternBuilder.buildQuintPattern(pattern, pushdownFilters);\n const quads = await this.store.get(quintPattern, queryOptions);\n results = this.quadsToBindings(quads, variables, pattern);\n if (this.debug) {\n console.log(`[QuintQuerySource] Pushdown query returned ${results.length} results`);\n }\n } else {\n // No pushdown, get all matching quads\n const quintPattern = this.patternBuilder.buildBasePattern(pattern);\n const quads = await this.store.get(quintPattern, queryOptions);\n results = this.quadsToBindings(quads, variables, pattern);\n if (this.debug) {\n console.log(`[QuintQuerySource] Base query returned ${results.length} results`);\n }\n }\n\n // NOTE: We don't apply in-memory filter for pre-extracted filters\n // because Comunica will handle the final filtering after JOIN\n // Only apply remainder if it's from the original operation's filter\n if (remainder && filter) {\n results = await this.expressionEvaluator.evaluateFilterTree(remainder, results, pattern);\n if (this.debug) {\n console.log(`[QuintQuerySource] After in-memory filter: ${results.length} results`);\n }\n }\n\n return results;\n }\n\n /**\n * Execute a bind join: use incoming bindings to filter our query\n * \n * This is called when Comunica's ActorRdfJoinMultiBindSource pushes bindings to us.\n * We use SQL IN clause to efficiently query only the rows matching the incoming bindings.\n */\n private async executeBindJoin(\n operation: Algebra.Operation,\n joinBindings: NonNullable<IQueryBindingsOptions['joinBindings']>\n ): Promise<Bindings[]> {\n // Collect all incoming bindings\n const incomingBindings: Bindings[] = [];\n for await (const binding of joinBindings.bindings) {\n incomingBindings.push(binding);\n }\n\n if (this.debug) {\n console.log(`[QuintQuerySource] executeBindJoin: received ${incomingBindings.length} bindings`);\n }\n\n if (incomingBindings.length === 0) {\n return [];\n }\n\n // Extract patterns from the operation\n const { pattern, patterns, filter } = this.extractPatternAndFilter(operation);\n const allPatterns = patterns || [pattern];\n\n // Find overlapping variables between incoming bindings and our patterns\n // These are the JOIN keys\n const incomingVars = new Set<string>();\n const firstBinding = incomingBindings[0];\n for (const key of firstBinding.keys()) {\n incomingVars.add(key.value);\n }\n\n // Find which pattern variables overlap with incoming bindings\n // Typically this would be the subject variable\n const patternVars = new Map<string, { patternIdx: number; field: TermName }>();\n for (let i = 0; i < allPatterns.length; i++) {\n const p = allPatterns[i];\n if (p.subject?.termType === 'Variable' && incomingVars.has(p.subject.value)) {\n patternVars.set(p.subject.value, { patternIdx: i, field: 'subject' });\n }\n if (p.predicate?.termType === 'Variable' && incomingVars.has(p.predicate.value)) {\n patternVars.set(p.predicate.value, { patternIdx: i, field: 'predicate' });\n }\n if (p.object?.termType === 'Variable' && incomingVars.has(p.object.value)) {\n patternVars.set(p.object.value, { patternIdx: i, field: 'object' });\n }\n if (p.graph?.termType === 'Variable' && incomingVars.has(p.graph.value)) {\n patternVars.set(p.graph.value, { patternIdx: i, field: 'graph' });\n }\n }\n\n if (this.debug) {\n console.log(`[QuintQuerySource] Overlapping variables:`, [...patternVars.keys()]);\n }\n\n if (patternVars.size === 0) {\n // No overlapping variables - just execute normally and return cartesian product\n // This shouldn't happen in typical use cases\n const results = await this.executeQuery(operation);\n return this.cartesianJoin(incomingBindings, results);\n }\n\n // Use the first overlapping variable as the join key\n const [joinVarName, joinInfo] = [...patternVars.entries()][0];\n \n // Collect unique values for the join variable from incoming bindings\n const joinValues = new Set<string>();\n for (const binding of incomingBindings) {\n const term = binding.get(dataFactory.variable(joinVarName));\n if (term) {\n joinValues.add(term.value);\n }\n }\n\n if (this.debug) {\n console.log(`[QuintQuerySource] Join variable: ?${joinVarName}, ${joinValues.size} unique values`);\n }\n\n // Build compound query with IN filter on join variable\n if (allPatterns.length > 1) {\n // Multiple patterns - use compound query\n return this.executeBindJoinCompound(\n allPatterns, filter, joinVarName, joinInfo.field, \n [...joinValues], incomingBindings\n );\n } else {\n // Single pattern - use simple query with IN filter\n return this.executeBindJoinSimple(\n pattern, filter, joinVarName, joinInfo.field,\n [...joinValues], incomingBindings\n );\n }\n }\n\n /**\n * Execute bind join for a single pattern using IN filter\n */\n private async executeBindJoinSimple(\n pattern: Algebra.Pattern,\n filter: Algebra.Expression | null,\n joinVarName: string,\n joinField: TermName,\n joinValues: string[],\n incomingBindings: Bindings[]\n ): Promise<Bindings[]> {\n const variables = extractVariables(pattern);\n\n // Build pattern with IN filter for join values\n let pushdownFilters: PushdownFilters = {};\n \n if (filter) {\n const result = this.filterExtractor.extractPushdownFilters(filter, pattern);\n pushdownFilters = result.filters;\n }\n\n // Add IN filter for join values\n pushdownFilters[joinField] = {\n ...pushdownFilters[joinField],\n $in: joinValues,\n };\n\n const quintPattern = this.patternBuilder.buildQuintPattern(pattern, pushdownFilters);\n const quads = await this.store.get(quintPattern);\n const queryResults = this.quadsToBindings(quads, variables, pattern);\n\n if (this.debug) {\n console.log(`[QuintQuerySource] Bind join simple: ${queryResults.length} results from DB`);\n }\n\n // Join with incoming bindings\n return this.hashJoin(incomingBindings, queryResults, joinVarName);\n }\n\n /**\n * Execute bind join for multiple patterns using compound query\n */\n private async executeBindJoinCompound(\n patterns: Algebra.Pattern[],\n filter: Algebra.Expression | null,\n joinVarName: string,\n joinField: TermName,\n joinValues: string[],\n incomingBindings: Bindings[]\n ): Promise<Bindings[]> {\n // Build QuintPattern for each pattern\n const quintPatterns: QuintPattern[] = [];\n const filtersByPattern = this.distributeFiltersToPatterns(filter, patterns);\n\n for (let i = 0; i < patterns.length; i++) {\n const pattern = patterns[i];\n const patternFilters = filtersByPattern.get(i) || {};\n \n // Add IN filter for join values on the first pattern\n if (i === 0) {\n patternFilters[joinField] = {\n ...patternFilters[joinField],\n $in: joinValues,\n };\n }\n \n const quintPattern = this.patternBuilder.buildQuintPattern(pattern, patternFilters);\n quintPatterns.push(quintPattern);\n }\n\n // Build compound pattern\n const compound: CompoundPattern = {\n patterns: quintPatterns,\n joinOn: joinField,\n select: this.buildSelectForPatterns(patterns),\n };\n\n const results = await this.store.getCompound!(compound);\n const queryResults = this.compoundResultsToBindings(results, patterns);\n\n if (this.debug) {\n console.log(`[QuintQuerySource] Bind join compound: ${queryResults.length} results from DB`);\n }\n\n // Join with incoming bindings\n return this.hashJoin(incomingBindings, queryResults, joinVarName);\n }\n\n /**\n * Hash join two binding sets on a common variable\n */\n private hashJoin(\n left: Bindings[],\n right: Bindings[],\n joinVarName: string\n ): Bindings[] {\n // Build hash table on right side\n const rightIndex = new Map<string, Bindings[]>();\n const joinVar = dataFactory.variable(joinVarName);\n \n for (const binding of right) {\n const term = binding.get(joinVar);\n if (term) {\n const key = term.value;\n if (!rightIndex.has(key)) {\n rightIndex.set(key, []);\n }\n rightIndex.get(key)!.push(binding);\n }\n }\n\n // Probe with left side\n const results: Bindings[] = [];\n for (const leftBinding of left) {\n const term = leftBinding.get(joinVar);\n if (term) {\n const key = term.value;\n const matches = rightIndex.get(key);\n if (matches) {\n for (const rightBinding of matches) {\n // Merge bindings\n const merged = this.mergeBindings(leftBinding, rightBinding);\n if (merged) {\n results.push(merged);\n }\n }\n }\n }\n }\n\n return results;\n }\n\n /**\n * Merge two bindings, returning null if they conflict\n */\n private mergeBindings(left: Bindings, right: Bindings): Bindings | null {\n const entries: [Variable, Term][] = [];\n \n // Add all from left\n for (const key of left.keys()) {\n const term = left.get(key);\n if (term) {\n entries.push([key, term]);\n }\n }\n \n // Add from right, checking for conflicts\n for (const key of right.keys()) {\n const rightTerm = right.get(key);\n const leftTerm = left.get(key);\n \n if (rightTerm) {\n if (leftTerm) {\n // Both have this variable - must match\n if (leftTerm.value !== rightTerm.value || leftTerm.termType !== rightTerm.termType) {\n return null; // Conflict\n }\n // Same value, already in entries\n } else {\n // Only right has it\n entries.push([key, rightTerm]);\n }\n }\n }\n \n return this.bindingsFactory.bindings(entries);\n }\n\n /**\n * Cartesian product of two binding sets\n */\n private cartesianJoin(left: Bindings[], right: Bindings[]): Bindings[] {\n const results: Bindings[] = [];\n for (const l of left) {\n for (const r of right) {\n const merged = this.mergeBindings(l, r);\n if (merged) {\n results.push(merged);\n }\n }\n }\n return results;\n }\n\n /**\n * Execute OR branches with union semantics\n */\n private async executeOrBranches(\n pattern: Algebra.Pattern,\n variables: Variable[],\n orBranches: PushdownFilters[],\n orNonPushdownBranches: Algebra.Expression[] | undefined,\n queryOptions: QueryOptions\n ): Promise<Bindings[]> {\n const seen = new Set<string>();\n const results: Bindings[] = [];\n\n // Execute each pushdownable branch\n for (const branchFilters of orBranches) {\n const quintPattern = this.patternBuilder.buildQuintPattern(pattern, branchFilters);\n const quads = await this.store.get(quintPattern, queryOptions);\n const bindings = this.quadsToBindings(quads, variables, pattern);\n \n for (const binding of bindings) {\n const key = this.expressionEvaluator.getBindingKey(binding);\n if (!seen.has(key)) {\n seen.add(key);\n results.push(binding);\n }\n }\n }\n\n // Handle non-pushdownable OR branches\n if (orNonPushdownBranches && orNonPushdownBranches.length > 0) {\n // Get base results without filter for in-memory evaluation\n const quintPattern = this.patternBuilder.buildBasePattern(pattern);\n const quads = await this.store.get(quintPattern, queryOptions);\n const candidates = this.quadsToBindings(quads, variables, pattern);\n \n // Evaluate each non-pushdownable branch\n for (const branchExpr of orNonPushdownBranches) {\n const branchResults = await this.expressionEvaluator.evaluateFilterTree(branchExpr, candidates, pattern);\n for (const binding of branchResults) {\n const key = this.expressionEvaluator.getBindingKey(binding);\n if (!seen.has(key)) {\n seen.add(key);\n results.push(binding);\n }\n }\n }\n }\n\n return results;\n }\n\n /**\n * Try to execute a compound query for multiple patterns joined by same subject\n * Returns null if compound query is not applicable\n */\n private async tryCompoundQuery(\n patterns: Algebra.Pattern[],\n filter: Algebra.Expression | null,\n _operation: Algebra.Operation\n ): Promise<Bindings[] | null> {\n // Check if all patterns share the same subject variable\n const subjectVars = patterns.map(p => \n p.subject?.termType === 'Variable' ? p.subject.value : null\n );\n const uniqueSubjectVars = [...new Set(subjectVars.filter(v => v !== null))];\n \n if (uniqueSubjectVars.length !== 1) {\n // Not all patterns share the same subject variable\n if (this.debug) {\n console.log(`[QuintQuerySource] Cannot use compound query: different subject variables`, subjectVars);\n }\n return null;\n }\n\n const joinVar = uniqueSubjectVars[0];\n if (this.debug) {\n console.log(`[QuintQuerySource] Using compound query with ${patterns.length} patterns, joined on ?${joinVar}`);\n }\n\n // Build QuintPattern for each pattern, including filter conditions\n const quintPatterns: QuintPattern[] = [];\n const filtersByPattern = this.distributeFiltersToPatterns(filter, patterns);\n\n for (let i = 0; i < patterns.length; i++) {\n const pattern = patterns[i];\n const patternFilters = filtersByPattern.get(i) || {};\n \n const quintPattern = this.patternBuilder.buildQuintPattern(pattern, patternFilters);\n quintPatterns.push(quintPattern);\n }\n\n // Build compound pattern\n const compound: CompoundPattern = {\n patterns: quintPatterns,\n joinOn: 'subject',\n select: this.buildSelectForPatterns(patterns),\n };\n\n // Execute compound query\n const optimizeParams = this.getOptimizeParams();\n const queryOptions: QueryOptions = {};\n if (optimizeParams?.limit) {\n queryOptions.limit = optimizeParams.limit + (optimizeParams.offset || 0);\n }\n\n const results = await this.store.getCompound!(compound, queryOptions);\n\n // Convert CompoundResult to Bindings\n return this.compoundResultsToBindings(results, patterns);\n }\n\n /**\n * Distribute filter conditions to their respective patterns\n * Returns a map of pattern index -> PushdownFilters\n */\n private distributeFiltersToPatterns(\n filter: Algebra.Expression | null,\n patterns: Algebra.Pattern[]\n ): Map<number, PushdownFilters> {\n const result = new Map<number, PushdownFilters>();\n \n if (!filter) return result;\n\n // Build a map of variable name to pattern index\n const varToPatternIdx = new Map<string, number>();\n for (let i = 0; i < patterns.length; i++) {\n const p = patterns[i];\n if (p.object?.termType === 'Variable') {\n varToPatternIdx.set(p.object.value, i);\n }\n }\n\n // Extract filters and distribute them\n for (let i = 0; i < patterns.length; i++) {\n const patternResult = this.filterExtractor.extractPushdownFilters(filter, patterns[i]);\n if (Object.keys(patternResult.filters).length > 0) {\n result.set(i, patternResult.filters);\n }\n }\n\n return result;\n }\n\n /**\n * Build SELECT clause config for patterns\n */\n private buildSelectForPatterns(patterns: Algebra.Pattern[]): CompoundPattern['select'] {\n const select: NonNullable<CompoundPattern['select']> = [];\n \n for (let i = 0; i < patterns.length; i++) {\n const p = patterns[i];\n \n // Select object if it's a variable\n if (p.object?.termType === 'Variable') {\n select.push({\n pattern: i,\n field: 'object',\n alias: `p${i}_${p.object.value}`,\n });\n }\n \n // Select predicate if it's a variable\n if (p.predicate?.termType === 'Variable') {\n select.push({\n pattern: i,\n field: 'predicate',\n alias: `p${i}_${p.predicate.value}`,\n });\n }\n\n // Select graph if it's a variable\n if (p.graph?.termType === 'Variable') {\n select.push({\n pattern: i,\n field: 'graph',\n alias: `p${i}_${p.graph.value}`,\n });\n }\n }\n\n return select;\n }\n\n /**\n * Convert CompoundResult array to Bindings array\n */\n private compoundResultsToBindings(\n results: CompoundResult[],\n patterns: Algebra.Pattern[]\n ): Bindings[] {\n // Collect all variables from all patterns\n const variables: Variable[] = [];\n const varNames = new Set<string>();\n \n for (const p of patterns) {\n if (p.subject?.termType === 'Variable' && !varNames.has(p.subject.value)) {\n variables.push(p.subject as Variable);\n varNames.add(p.subject.value);\n }\n if (p.predicate?.termType === 'Variable' && !varNames.has(p.predicate.value)) {\n variables.push(p.predicate as Variable);\n varNames.add(p.predicate.value);\n }\n if (p.object?.termType === 'Variable' && !varNames.has(p.object.value)) {\n variables.push(p.object as Variable);\n varNames.add(p.object.value);\n }\n if (p.graph?.termType === 'Variable' && !varNames.has(p.graph.value)) {\n variables.push(p.graph as Variable);\n varNames.add(p.graph.value);\n }\n }\n\n return results.map(result => {\n const entries: [Variable, Term][] = [];\n \n for (const v of variables) {\n const varName = v.value;\n \n // Check if this is the join variable (subject)\n if (patterns[0].subject?.termType === 'Variable' && \n patterns[0].subject.value === varName) {\n // Use joinValue for subject\n const term = dataFactory.namedNode(result.joinValue);\n entries.push([v, term]);\n continue;\n }\n \n // Look for the variable in bindings\n for (let i = 0; i < patterns.length; i++) {\n const p = patterns[i];\n \n if (p.object?.termType === 'Variable' && p.object.value === varName) {\n const alias = `p${i}_${varName}`;\n const value = result.bindings[alias];\n if (value !== undefined) {\n // Deserialize the value\n const term = this.deserializeValue(value);\n entries.push([v, term]);\n break;\n }\n }\n \n if (p.predicate?.termType === 'Variable' && p.predicate.value === varName) {\n const alias = `p${i}_${varName}`;\n const value = result.bindings[alias];\n if (value !== undefined) {\n const term = dataFactory.namedNode(value);\n entries.push([v, term]);\n break;\n }\n }\n\n if (p.graph?.termType === 'Variable' && p.graph.value === varName) {\n const alias = `p${i}_${varName}`;\n const value = result.bindings[alias];\n if (value !== undefined) {\n const term = dataFactory.namedNode(value);\n entries.push([v, term]);\n break;\n }\n }\n }\n }\n \n return this.bindingsFactory.bindings(entries);\n });\n }\n\n /**\n * Deserialize a value from storage format to RDF Term\n * Uses the same deserialization logic as QuintStore\n */\n private deserializeValue(value: string): Term {\n return deserializeObject(value);\n }\n\n /**\n * Convert quads to bindings based on pattern variables\n */\n private quadsToBindings(quads: Quad[], variables: Variable[], pattern: Algebra.Pattern): Bindings[] {\n if (this.debug) {\n console.log(`[QuintQuerySource] quadsToBindings: ${quads.length} quads, ${variables.length} variables`);\n console.log(`[QuintQuerySource] Variables:`, variables.map(v => v.value));\n console.log(`[QuintQuerySource] Pattern:`, {\n subject: pattern.subject?.termType === 'Variable' ? `?${pattern.subject.value}` : pattern.subject?.value,\n predicate: pattern.predicate?.termType === 'Variable' ? `?${pattern.predicate.value}` : pattern.predicate?.value,\n object: pattern.object?.termType === 'Variable' ? `?${pattern.object.value}` : pattern.object?.value,\n graph: pattern.graph?.termType === 'Variable' ? `?${pattern.graph.value}` : pattern.graph?.value || pattern.graph?.termType,\n });\n }\n return quads.map(quad => {\n const entries: [Variable, Term][] = [];\n for (const v of variables) {\n const term = this.getTermForVariable(v, quad, pattern);\n if (term) {\n entries.push([v, term]);\n }\n }\n if (this.debug && entries.length !== variables.length) {\n console.log(`[QuintQuerySource] Warning: only ${entries.length} of ${variables.length} variables bound`);\n }\n return this.bindingsFactory.bindings(entries);\n });\n }\n\n /**\n * Get the term from quad that matches the variable position in pattern\n */\n private getTermForVariable(variable: Variable, quad: Quad, pattern: Algebra.Pattern): Term | null {\n const varName = variable.value;\n \n // Check which position in the pattern this variable is in\n if (pattern.subject?.termType === 'Variable' && pattern.subject.value === varName) {\n return quad.subject;\n }\n if (pattern.predicate?.termType === 'Variable' && pattern.predicate.value === varName) {\n return quad.predicate;\n }\n if (pattern.object?.termType === 'Variable' && pattern.object.value === varName) {\n return quad.object;\n }\n if (pattern.graph?.termType === 'Variable' && pattern.graph.value === varName) {\n return quad.graph;\n }\n \n return null;\n }\n\n /**\n * Extract BGP pattern and filter from operation\n * Returns either a single pattern or multiple patterns (from BGP or JOIN)\n */\n extractPatternAndFilter(operation: Algebra.Operation): { \n pattern: Algebra.Pattern; \n patterns?: Algebra.Pattern[]; // Multiple patterns from BGP or JOIN\n filter: Algebra.Expression | null;\n } {\n let pattern: Algebra.Pattern | null = null;\n let patterns: Algebra.Pattern[] | undefined;\n let filter: Algebra.Expression | null = null;\n\n // Walk the algebra tree to find pattern(s) and filter\n AlgebraUtil.recurseOperation(operation, {\n [Algebra.types.JOIN]: (op: Algebra.Join) => {\n // JOIN contains multiple patterns - extract them all\n if (op.input && op.input.length > 0) {\n const extractedPatterns: Algebra.Pattern[] = [];\n for (const input of op.input) {\n if (input.type === Algebra.types.PATTERN) {\n extractedPatterns.push(input as Algebra.Pattern);\n } else {\n // Recurse into nested operation to find patterns\n const nested = this.extractPatternAndFilter(input);\n if (nested.patterns) {\n extractedPatterns.push(...nested.patterns);\n } else if (nested.pattern) {\n extractedPatterns.push(nested.pattern);\n }\n // Also collect filter from nested operations\n if (nested.filter && !filter) {\n filter = nested.filter;\n }\n }\n }\n if (extractedPatterns.length > 0) {\n patterns = extractedPatterns;\n if (!pattern) {\n pattern = patterns[0];\n }\n }\n }\n return false; // Don't recurse further\n },\n [Algebra.types.BGP]: (op: Algebra.Bgp) => {\n // BGP contains multiple patterns - this is what we want for compound queries\n if (op.patterns && op.patterns.length > 0) {\n patterns = op.patterns as Algebra.Pattern[];\n if (!pattern) {\n pattern = patterns[0];\n }\n }\n return false; // Don't recurse into individual patterns\n },\n [Algebra.types.PATTERN]: (op: Algebra.Pattern) => {\n if (!pattern) pattern = op;\n return false;\n },\n [Algebra.types.FILTER]: (op: Algebra.Filter) => {\n filter = op.expression;\n return true; // Continue to find pattern inside filter\n },\n });\n\n if (!pattern) {\n // Create empty pattern if none found\n pattern = {\n type: 'pattern',\n subject: dataFactory.variable('s'),\n predicate: dataFactory.variable('p'),\n object: dataFactory.variable('o'),\n graph: dataFactory.defaultGraph(),\n } as Algebra.Pattern;\n }\n\n return { pattern, patterns, filter };\n }\n\n /**\n * Get variables from operation\n */\n private getVariablesFromOperation(operation: Algebra.Operation): Variable[] {\n const { pattern, patterns } = this.extractPatternAndFilter(operation);\n \n if (patterns && patterns.length > 1) {\n // Collect variables from all patterns\n const allVars: Variable[] = [];\n const seen = new Set<string>();\n for (const p of patterns) {\n for (const v of extractVariables(p)) {\n if (!seen.has(v.value)) {\n seen.add(v.value);\n allVars.push(v);\n }\n }\n }\n return allVars;\n }\n \n return extractVariables(pattern);\n }\n\n // ============================================================\n // Required IQuerySource Methods\n // ============================================================\n\n queryQuads(operation: Algebra.Operation, _context: IActionContext): AsyncIterator<Quad> {\n const { pattern } = this.extractPatternAndFilter(operation);\n const quintPattern = this.patternBuilder.buildBasePattern(pattern);\n const resultIterator = wrap(this.store.get(quintPattern));\n \n resultIterator.setProperty('metadata', {\n state: { invalidate: () => {}, invalid: false, addInvalidateListener: () => {} },\n cardinality: { type: 'estimate' as const, value: Number.POSITIVE_INFINITY },\n });\n\n return resultIterator;\n }\n\n async queryBoolean(operation: Algebra.Ask, _context: IActionContext): Promise<boolean> {\n const { pattern } = this.extractPatternAndFilter(operation.input);\n const quintPattern = this.patternBuilder.buildBasePattern(pattern);\n const results = await this.store.get(quintPattern, { limit: 1 });\n return results.length > 0;\n }\n\n queryVoid(_operation: Algebra.Update, _context: IActionContext): Promise<void> {\n throw new Error('queryVoid is not implemented');\n }\n\n /**\n * 在 pattern 中查找变量绑定到哪个位置\n * \n * 例如:{ ?s <http://schema.org/name> ?name }\n * - ?s 绑定到 subject\n * - ?name 绑定到 object\n */\n private findVariableBinding(varName: string, pattern: Algebra.Pattern): TermName | null {\n if (pattern.subject?.termType === 'Variable' && pattern.subject.value === varName) {\n return 'subject';\n }\n if (pattern.predicate?.termType === 'Variable' && pattern.predicate.value === varName) {\n return 'predicate';\n }\n if (pattern.object?.termType === 'Variable' && pattern.object.value === varName) {\n return 'object';\n }\n if (pattern.graph?.termType === 'Variable' && pattern.graph.value === varName) {\n return 'graph';\n }\n return null;\n }\n\n toString(): string {\n return `QuintQuerySource(${this.store.constructor.name})`;\n }\n}\n"]}
@@ -0,0 +1,40 @@
1
+ /**
2
+ * SimpleSparqlExecutor - 绕过 Comunica 执行简单 SPARQL UPDATE
3
+ *
4
+ * 针对 Pod 创建场景优化:
5
+ * - 直接解析 INSERT DATA / DELETE DATA
6
+ * - 不经过 Comunica 的复杂查询计划
7
+ * - 批量执行,减少事务开销
8
+ */
9
+ import type { QuintStore } from '../quint/types';
10
+ /**
11
+ * 简单的 SPARQL UPDATE 解析器
12
+ * 只处理 INSERT DATA / DELETE DATA 的简单形式
13
+ */
14
+ export declare class SimpleSparqlExecutor {
15
+ private readonly store;
16
+ constructor(store: QuintStore);
17
+ /**
18
+ * 尝试执行简单的 SPARQL UPDATE
19
+ * @returns true 如果成功执行,false 如果不支持该查询格式
20
+ */
21
+ tryExecute(query: string): Promise<boolean>;
22
+ /**
23
+ * 解析简单的 SPARQL UPDATE
24
+ * 支持的格式:
25
+ * - INSERT DATA { GRAPH <uri> { ... } }
26
+ * - DELETE DATA { GRAPH <uri> { ... } }
27
+ * - INSERT DATA { ... }
28
+ * - DELETE DATA { ... }
29
+ */
30
+ private parseSimpleUpdate;
31
+ /**
32
+ * 从代码块解析三元组
33
+ * 简单实现,只处理基本格式
34
+ */
35
+ private parseQuadsFromBlock;
36
+ /**
37
+ * 解析 Turtle 格式的三元组(简化版)
38
+ */
39
+ private parseTriples;
40
+ }
@@ -0,0 +1,131 @@
1
+ "use strict";
2
+ /**
3
+ * SimpleSparqlExecutor - 绕过 Comunica 执行简单 SPARQL UPDATE
4
+ *
5
+ * 针对 Pod 创建场景优化:
6
+ * - 直接解析 INSERT DATA / DELETE DATA
7
+ * - 不经过 Comunica 的复杂查询计划
8
+ * - 批量执行,减少事务开销
9
+ */
10
+ Object.defineProperty(exports, "__esModule", { value: true });
11
+ exports.SimpleSparqlExecutor = void 0;
12
+ /**
13
+ * 简单的 SPARQL UPDATE 解析器
14
+ * 只处理 INSERT DATA / DELETE DATA 的简单形式
15
+ */
16
+ class SimpleSparqlExecutor {
17
+ constructor(store) {
18
+ this.store = store;
19
+ }
20
+ /**
21
+ * 尝试执行简单的 SPARQL UPDATE
22
+ * @returns true 如果成功执行,false 如果不支持该查询格式
23
+ */
24
+ async tryExecute(query) {
25
+ const pattern = this.parseSimpleUpdate(query);
26
+ if (!pattern) {
27
+ return false; // 不支持,让调用方使用 Comunica
28
+ }
29
+ if (pattern.type === 'insert') {
30
+ await this.store.multiPut(pattern.quads);
31
+ }
32
+ else {
33
+ // 逐条删除(因为 QuintStore 没有 multiDel 方法)
34
+ for (const q of pattern.quads) {
35
+ await this.store.del({
36
+ graph: q.graph,
37
+ subject: q.subject,
38
+ predicate: q.predicate,
39
+ object: q.object,
40
+ });
41
+ }
42
+ }
43
+ return true;
44
+ }
45
+ /**
46
+ * 解析简单的 SPARQL UPDATE
47
+ * 支持的格式:
48
+ * - INSERT DATA { GRAPH <uri> { ... } }
49
+ * - DELETE DATA { GRAPH <uri> { ... } }
50
+ * - INSERT DATA { ... }
51
+ * - DELETE DATA { ... }
52
+ */
53
+ parseSimpleUpdate(query) {
54
+ const trimmed = query.trim();
55
+ // 检查是否是 INSERT DATA
56
+ const insertMatch = trimmed.match(/^INSERT\s+DATA\s*\{/i);
57
+ if (insertMatch) {
58
+ const quads = this.parseQuadsFromBlock(trimmed, 'INSERT DATA');
59
+ if (quads) {
60
+ return { type: 'insert', quads };
61
+ }
62
+ }
63
+ // 检查是否是 DELETE DATA
64
+ const deleteMatch = trimmed.match(/^DELETE\s+DATA\s*\{/i);
65
+ if (deleteMatch) {
66
+ const quads = this.parseQuadsFromBlock(trimmed, 'DELETE DATA');
67
+ if (quads) {
68
+ return { type: 'delete', quads };
69
+ }
70
+ }
71
+ return null; // 不支持
72
+ }
73
+ /**
74
+ * 从代码块解析三元组
75
+ * 简单实现,只处理基本格式
76
+ */
77
+ parseQuadsFromBlock(query, prefix) {
78
+ // 提取大括号内的内容
79
+ const blockStart = query.indexOf('{');
80
+ const blockEnd = query.lastIndexOf('}');
81
+ if (blockStart === -1 || blockEnd === -1 || blockEnd <= blockStart) {
82
+ return null;
83
+ }
84
+ let content = query.slice(blockStart + 1, blockEnd).trim();
85
+ // 检查是否有 GRAPH 块
86
+ const graphMatch = content.match(/GRAPH\s*<([^>]+)>\s*\{/);
87
+ if (graphMatch) {
88
+ const graphUri = graphMatch[1];
89
+ const graphBlockStart = content.indexOf('{', content.indexOf('GRAPH'));
90
+ const graphBlockEnd = content.indexOf('}', graphBlockStart);
91
+ if (graphBlockStart === -1 || graphBlockEnd === -1) {
92
+ return null;
93
+ }
94
+ content = content.slice(graphBlockStart + 1, graphBlockEnd).trim();
95
+ // 解析三元组并添加 graph
96
+ const triples = this.parseTriples(content);
97
+ if (!triples)
98
+ return null;
99
+ const { DataFactory } = require('n3');
100
+ const { namedNode } = DataFactory;
101
+ return triples.map(t => ({
102
+ ...t,
103
+ graph: namedNode(graphUri),
104
+ }));
105
+ }
106
+ // 没有 GRAPH,使用默认图
107
+ return this.parseTriples(content);
108
+ }
109
+ /**
110
+ * 解析 Turtle 格式的三元组(简化版)
111
+ */
112
+ parseTriples(content) {
113
+ // 简化实现:使用 N3 Parser
114
+ try {
115
+ const { Parser, DataFactory } = require('n3');
116
+ const { defaultGraph } = DataFactory;
117
+ const parser = new Parser();
118
+ const quads = parser.parse(content);
119
+ // 为没有 graph 的 quad 添加默认图
120
+ return quads.map((q) => ({
121
+ ...q,
122
+ graph: q.graph || defaultGraph(),
123
+ }));
124
+ }
125
+ catch (error) {
126
+ return null;
127
+ }
128
+ }
129
+ }
130
+ exports.SimpleSparqlExecutor = SimpleSparqlExecutor;
131
+ //# sourceMappingURL=SimpleSparqlExecutor.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"SimpleSparqlExecutor.js","sourceRoot":"","sources":["../../../src/storage/sparql/SimpleSparqlExecutor.ts"],"names":[],"mappings":";AAAA;;;;;;;GAOG;;;AAiBH;;;GAGG;AACH,MAAa,oBAAoB;IAC/B,YAA6B,KAAiB;QAAjB,UAAK,GAAL,KAAK,CAAY;IAAG,CAAC;IAElD;;;OAGG;IACH,KAAK,CAAC,UAAU,CAAC,KAAa;QAC5B,MAAM,OAAO,GAAG,IAAI,CAAC,iBAAiB,CAAC,KAAK,CAAC,CAAC;QAC9C,IAAI,CAAC,OAAO,EAAE,CAAC;YACb,OAAO,KAAK,CAAC,CAAC,sBAAsB;QACtC,CAAC;QAED,IAAI,OAAO,CAAC,IAAI,KAAK,QAAQ,EAAE,CAAC;YAC9B,MAAM,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;QAC3C,CAAC;aAAM,CAAC;YACN,qCAAqC;YACrC,KAAK,MAAM,CAAC,IAAI,OAAO,CAAC,KAAK,EAAE,CAAC;gBAC9B,MAAM,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC;oBACnB,KAAK,EAAE,CAAC,CAAC,KAAK;oBACd,OAAO,EAAE,CAAC,CAAC,OAAO;oBAClB,SAAS,EAAE,CAAC,CAAC,SAAS;oBACtB,MAAM,EAAE,CAAC,CAAC,MAAM;iBACjB,CAAC,CAAC;YACL,CAAC;QACH,CAAC;QACD,OAAO,IAAI,CAAC;IACd,CAAC;IAED;;;;;;;OAOG;IACK,iBAAiB,CAAC,KAAa;QACrC,MAAM,OAAO,GAAG,KAAK,CAAC,IAAI,EAAE,CAAC;QAE7B,oBAAoB;QACpB,MAAM,WAAW,GAAG,OAAO,CAAC,KAAK,CAAC,sBAAsB,CAAC,CAAC;QAC1D,IAAI,WAAW,EAAE,CAAC;YAChB,MAAM,KAAK,GAAG,IAAI,CAAC,mBAAmB,CAAC,OAAO,EAAE,aAAa,CAAC,CAAC;YAC/D,IAAI,KAAK,EAAE,CAAC;gBACV,OAAO,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE,CAAC;YACnC,CAAC;QACH,CAAC;QAED,oBAAoB;QACpB,MAAM,WAAW,GAAG,OAAO,CAAC,KAAK,CAAC,sBAAsB,CAAC,CAAC;QAC1D,IAAI,WAAW,EAAE,CAAC;YAChB,MAAM,KAAK,GAAG,IAAI,CAAC,mBAAmB,CAAC,OAAO,EAAE,aAAa,CAAC,CAAC;YAC/D,IAAI,KAAK,EAAE,CAAC;gBACV,OAAO,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE,CAAC;YACnC,CAAC;QACH,CAAC;QAED,OAAO,IAAI,CAAC,CAAC,MAAM;IACrB,CAAC;IAED;;;OAGG;IACK,mBAAmB,CAAC,KAAa,EAAE,MAAc;QACvD,YAAY;QACZ,MAAM,UAAU,GAAG,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;QACtC,MAAM,QAAQ,GAAG,KAAK,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC;QACxC,IAAI,UAAU,KAAK,CAAC,CAAC,IAAI,QAAQ,KAAK,CAAC,CAAC,IAAI,QAAQ,IAAI,UAAU,EAAE,CAAC;YACnE,OAAO,IAAI,CAAC;QACd,CAAC;QAED,IAAI,OAAO,GAAG,KAAK,CAAC,KAAK,CAAC,UAAU,GAAG,CAAC,EAAE,QAAQ,CAAC,CAAC,IAAI,EAAE,CAAC;QAE3D,gBAAgB;QAChB,MAAM,UAAU,GAAG,OAAO,CAAC,KAAK,CAAC,wBAAwB,CAAC,CAAC;QAC3D,IAAI,UAAU,EAAE,CAAC;YACf,MAAM,QAAQ,GAAG,UAAU,CAAC,CAAC,CAAC,CAAC;YAC/B,MAAM,eAAe,GAAG,OAAO,CAAC,OAAO,CAAC,GAAG,EAAE,OAAO,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC;YACvE,MAAM,aAAa,GAAG,OAAO,CAAC,OAAO,CAAC,GAAG,EAAE,eAAe,CAAC,CAAC;YAC5D,IAAI,eAAe,KAAK,CAAC,CAAC,IAAI,aAAa,KAAK,CAAC,CAAC,EAAE,CAAC;gBACnD,OAAO,IAAI,CAAC;YACd,CAAC;YACD,OAAO,GAAG,OAAO,CAAC,KAAK,CAAC,eAAe,GAAG,CAAC,EAAE,aAAa,CAAC,CAAC,IAAI,EAAE,CAAC;YAEnE,iBAAiB;YACjB,MAAM,OAAO,GAAG,IAAI,CAAC,YAAY,CAAC,OAAO,CAAC,CAAC;YAC3C,IAAI,CAAC,OAAO;gBAAE,OAAO,IAAI,CAAC;YAE1B,MAAM,EAAE,WAAW,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;YACtC,MAAM,EAAE,SAAS,EAAE,GAAG,WAAW,CAAC;YAClC,OAAO,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;gBACvB,GAAG,CAAC;gBACJ,KAAK,EAAE,SAAS,CAAC,QAAQ,CAAC;aAC3B,CAAC,CAAC,CAAC;QACN,CAAC;QAED,iBAAiB;QACjB,OAAO,IAAI,CAAC,YAAY,CAAC,OAAO,CAAC,CAAC;IACpC,CAAC;IAED;;OAEG;IACK,YAAY,CAAC,OAAe;QAClC,oBAAoB;QACpB,IAAI,CAAC;YACH,MAAM,EAAE,MAAM,EAAE,WAAW,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;YAC9C,MAAM,EAAE,YAAY,EAAE,GAAG,WAAW,CAAC;YAErC,MAAM,MAAM,GAAG,IAAI,MAAM,EAAE,CAAC;YAC5B,MAAM,KAAK,GAAG,MAAM,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;YAEpC,yBAAyB;YACzB,OAAO,KAAK,CAAC,GAAG,CAAC,CAAC,CAAO,EAAE,EAAE,CAAC,CAAC;gBAC7B,GAAG,CAAC;gBACJ,KAAK,EAAE,CAAC,CAAC,KAAK,IAAI,YAAY,EAAE;aACjC,CAAC,CAAC,CAAC;QACN,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,OAAO,IAAI,CAAC;QACd,CAAC;IACH,CAAC;CACF;AA3HD,oDA2HC","sourcesContent":["/**\n * SimpleSparqlExecutor - 绕过 Comunica 执行简单 SPARQL UPDATE\n * \n * 针对 Pod 创建场景优化:\n * - 直接解析 INSERT DATA / DELETE DATA\n * - 不经过 Comunica 的复杂查询计划\n * - 批量执行,减少事务开销\n */\n\nimport type { Quad } from '@rdfjs/types';\nimport type { QuintStore } from '../quint/types';\n\ninterface InsertDataPattern {\n type: 'insert';\n quads: Quad[];\n}\n\ninterface DeleteDataPattern {\n type: 'delete';\n quads: Quad[];\n}\n\ntype SparqlPattern = InsertDataPattern | DeleteDataPattern | null;\n\n/**\n * 简单的 SPARQL UPDATE 解析器\n * 只处理 INSERT DATA / DELETE DATA 的简单形式\n */\nexport class SimpleSparqlExecutor {\n constructor(private readonly store: QuintStore) {}\n\n /**\n * 尝试执行简单的 SPARQL UPDATE\n * @returns true 如果成功执行,false 如果不支持该查询格式\n */\n async tryExecute(query: string): Promise<boolean> {\n const pattern = this.parseSimpleUpdate(query);\n if (!pattern) {\n return false; // 不支持,让调用方使用 Comunica\n }\n\n if (pattern.type === 'insert') {\n await this.store.multiPut(pattern.quads);\n } else {\n // 逐条删除(因为 QuintStore 没有 multiDel 方法)\n for (const q of pattern.quads) {\n await this.store.del({\n graph: q.graph,\n subject: q.subject,\n predicate: q.predicate,\n object: q.object,\n });\n }\n }\n return true;\n }\n\n /**\n * 解析简单的 SPARQL UPDATE\n * 支持的格式:\n * - INSERT DATA { GRAPH <uri> { ... } }\n * - DELETE DATA { GRAPH <uri> { ... } }\n * - INSERT DATA { ... }\n * - DELETE DATA { ... }\n */\n private parseSimpleUpdate(query: string): SparqlPattern {\n const trimmed = query.trim();\n \n // 检查是否是 INSERT DATA\n const insertMatch = trimmed.match(/^INSERT\\s+DATA\\s*\\{/i);\n if (insertMatch) {\n const quads = this.parseQuadsFromBlock(trimmed, 'INSERT DATA');\n if (quads) {\n return { type: 'insert', quads };\n }\n }\n \n // 检查是否是 DELETE DATA\n const deleteMatch = trimmed.match(/^DELETE\\s+DATA\\s*\\{/i);\n if (deleteMatch) {\n const quads = this.parseQuadsFromBlock(trimmed, 'DELETE DATA');\n if (quads) {\n return { type: 'delete', quads };\n }\n }\n \n return null; // 不支持\n }\n\n /**\n * 从代码块解析三元组\n * 简单实现,只处理基本格式\n */\n private parseQuadsFromBlock(query: string, prefix: string): Quad[] | null {\n // 提取大括号内的内容\n const blockStart = query.indexOf('{');\n const blockEnd = query.lastIndexOf('}');\n if (blockStart === -1 || blockEnd === -1 || blockEnd <= blockStart) {\n return null;\n }\n \n let content = query.slice(blockStart + 1, blockEnd).trim();\n \n // 检查是否有 GRAPH 块\n const graphMatch = content.match(/GRAPH\\s*<([^>]+)>\\s*\\{/);\n if (graphMatch) {\n const graphUri = graphMatch[1];\n const graphBlockStart = content.indexOf('{', content.indexOf('GRAPH'));\n const graphBlockEnd = content.indexOf('}', graphBlockStart);\n if (graphBlockStart === -1 || graphBlockEnd === -1) {\n return null;\n }\n content = content.slice(graphBlockStart + 1, graphBlockEnd).trim();\n \n // 解析三元组并添加 graph\n const triples = this.parseTriples(content);\n if (!triples) return null;\n \n const { DataFactory } = require('n3');\n const { namedNode } = DataFactory;\n return triples.map(t => ({\n ...t,\n graph: namedNode(graphUri),\n }));\n }\n \n // 没有 GRAPH,使用默认图\n return this.parseTriples(content);\n }\n\n /**\n * 解析 Turtle 格式的三元组(简化版)\n */\n private parseTriples(content: string): Quad[] | null {\n // 简化实现:使用 N3 Parser\n try {\n const { Parser, DataFactory } = require('n3');\n const { defaultGraph } = DataFactory;\n \n const parser = new Parser();\n const quads = parser.parse(content);\n \n // 为没有 graph 的 quad 添加默认图\n return quads.map((q: Quad) => ({\n ...q,\n graph: q.graph || defaultGraph(),\n }));\n } catch (error) {\n return null;\n }\n }\n}\n"]}
@@ -0,0 +1,74 @@
1
+ import type { Quad } from '@rdfjs/types';
2
+ import type { AsyncIterator } from 'asynciterator';
3
+ import type { QuintStore } from '../quint/types';
4
+ /**
5
+ * SPARQL Engine interface - common abstraction for SPARQL query engines
6
+ */
7
+ export interface SparqlEngine {
8
+ queryBindings(query: string, basePath: string): Promise<any>;
9
+ queryQuads(query: string, basePath: string): Promise<any>;
10
+ queryBoolean(query: string, basePath: string): Promise<boolean>;
11
+ queryVoid(query: string, basePath: string): Promise<void>;
12
+ constructGraph(graph: string, basePath: string): Promise<AsyncIterator<Quad>>;
13
+ listGraphs(basePath: string): Promise<Set<string>>;
14
+ close(): Promise<void>;
15
+ }
16
+ /**
17
+ * Quadstore-based SPARQL engine implementation
18
+ */
19
+ export declare class QuadstoreSparqlEngine implements SparqlEngine {
20
+ private readonly store;
21
+ private readonly engine;
22
+ private readonly optimizedEngine;
23
+ private readonly ready;
24
+ constructor(endpoint: string);
25
+ queryBindings(query: string, basePath: string): Promise<any>;
26
+ queryQuads(query: string, basePath: string): Promise<any>;
27
+ queryBoolean(query: string, basePath: string): Promise<boolean>;
28
+ queryVoid(query: string, basePath: string): Promise<void>;
29
+ constructGraph(graph: string, basePath: string): Promise<AsyncIterator<Quad>>;
30
+ listGraphs(basePath: string): Promise<Set<string>>;
31
+ close(): Promise<void>;
32
+ private createContext;
33
+ private isInScope;
34
+ }
35
+ /**
36
+ * QuintStore-based SPARQL engine implementation
37
+ *
38
+ * Uses security filters to enforce access boundaries,
39
+ * which are pushed down to the storage layer.
40
+ */
41
+ export declare class QuintstoreSparqlEngine implements SparqlEngine {
42
+ private readonly store;
43
+ private readonly engine;
44
+ private readonly ready;
45
+ constructor(store: QuintStore);
46
+ queryBindings(query: string, basePath: string): Promise<any>;
47
+ queryQuads(query: string, basePath: string): Promise<any>;
48
+ queryBoolean(query: string, basePath: string): Promise<boolean>;
49
+ queryVoid(query: string, basePath: string): Promise<void>;
50
+ constructGraph(graph: string, basePath: string): Promise<AsyncIterator<Quad>>;
51
+ listGraphs(basePath: string): Promise<Set<string>>;
52
+ close(): Promise<void>;
53
+ }
54
+ /**
55
+ * SubgraphQueryEngine - SPARQL engine with subgraph (tenant) isolation
56
+ *
57
+ * Wraps a SparqlEngine implementation for use in the system.
58
+ */
59
+ export declare class SubgraphQueryEngine {
60
+ private readonly logger;
61
+ private readonly impl;
62
+ /**
63
+ * Create a SubgraphQueryEngine
64
+ * @param engine - A SparqlEngine implementation (QuadstoreSparqlEngine or QuintstoreSparqlEngine)
65
+ */
66
+ constructor(engine: SparqlEngine);
67
+ queryBindings(query: string, basePath: string): Promise<any>;
68
+ queryQuads(query: string, basePath: string): Promise<any>;
69
+ queryBoolean(query: string, basePath: string): Promise<boolean>;
70
+ queryVoid(query: string, basePath: string): Promise<void>;
71
+ constructGraph(graph: string, basePath: string): Promise<AsyncIterator<Quad>>;
72
+ listGraphs(basePath: string): Promise<Set<string>>;
73
+ close(): Promise<void>;
74
+ }