@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.
- package/LICENSE +22 -0
- package/README.md +146 -0
- package/components/components.jsonld +72 -0
- package/components/context.jsonld +1635 -0
- package/config/bun.json +90 -0
- package/config/cli.json +260 -0
- package/config/cloud.json +469 -0
- package/config/extensions.local.initializer.json +23 -0
- package/config/local.json +261 -0
- package/config/logging/configurable.json +18 -0
- package/config/main.json +200 -0
- package/config/main.vanilla.json +6 -0
- package/config/resolver.json +347 -0
- package/config/search.json +66 -0
- package/config/seed.dev.json +29 -0
- package/config/seeds/admin.example.json +11 -0
- package/config/seeds/test.json +11 -0
- package/config/terminal.json +22 -0
- package/config/vector.json +35 -0
- package/config/xpod.base.json +155 -0
- package/config/xpod.cluster.json +419 -0
- package/config/xpod.json +233 -0
- package/dist/agents/AgentExecutorFactory.d.ts +67 -0
- package/dist/agents/AgentExecutorFactory.js +193 -0
- package/dist/agents/AgentExecutorFactory.js.map +1 -0
- package/dist/agents/AgentManager.d.ts +114 -0
- package/dist/agents/AgentManager.js +289 -0
- package/dist/agents/AgentManager.js.map +1 -0
- package/dist/agents/BaseAgentExecutor.d.ts +67 -0
- package/dist/agents/BaseAgentExecutor.js +101 -0
- package/dist/agents/BaseAgentExecutor.js.map +1 -0
- package/dist/agents/ClaudeExecutor.d.ts +63 -0
- package/dist/agents/ClaudeExecutor.js +335 -0
- package/dist/agents/ClaudeExecutor.js.map +1 -0
- package/dist/agents/CodeBuddyExecutor.d.ts +54 -0
- package/dist/agents/CodeBuddyExecutor.js +273 -0
- package/dist/agents/CodeBuddyExecutor.js.map +1 -0
- package/dist/agents/IndexAgent.d.ts +70 -0
- package/dist/agents/IndexAgent.js +417 -0
- package/dist/agents/IndexAgent.js.map +1 -0
- package/dist/agents/index.d.ts +22 -0
- package/dist/agents/index.js +48 -0
- package/dist/agents/index.js.map +1 -0
- package/dist/agents/schema/agent-config.d.ts +58 -0
- package/dist/agents/schema/agent-config.js +74 -0
- package/dist/agents/schema/agent-config.js.map +1 -0
- package/dist/agents/schema/tables.d.ts +46 -0
- package/dist/agents/schema/tables.js +64 -0
- package/dist/agents/schema/tables.js.map +1 -0
- package/dist/agents/types.d.ts +266 -0
- package/dist/agents/types.js +9 -0
- package/dist/agents/types.js.map +1 -0
- package/dist/ai/index.d.ts +5 -0
- package/dist/ai/index.js +22 -0
- package/dist/ai/index.js.map +1 -0
- package/dist/ai/schema/config.d.ts +27 -0
- package/dist/ai/schema/config.js +36 -0
- package/dist/ai/schema/config.js.map +1 -0
- package/dist/ai/schema/index.d.ts +8 -0
- package/dist/ai/schema/index.js +27 -0
- package/dist/ai/schema/index.js.map +1 -0
- package/dist/ai/schema/model.d.ts +40 -0
- package/dist/ai/schema/model.js +60 -0
- package/dist/ai/schema/model.js.map +1 -0
- package/dist/ai/schema/provider.d.ts +21 -0
- package/dist/ai/schema/provider.js +30 -0
- package/dist/ai/schema/provider.js.map +1 -0
- package/dist/ai/schema/types.d.ts +52 -0
- package/dist/ai/schema/types.js +62 -0
- package/dist/ai/schema/types.js.map +1 -0
- package/dist/ai/schema/vector-store.d.ts +53 -0
- package/dist/ai/schema/vector-store.js +65 -0
- package/dist/ai/schema/vector-store.js.map +1 -0
- package/dist/ai/service/CredentialReader.d.ts +7 -0
- package/dist/ai/service/CredentialReader.js +10 -0
- package/dist/ai/service/CredentialReader.js.map +1 -0
- package/dist/ai/service/CredentialReaderImpl.d.ts +6 -0
- package/dist/ai/service/CredentialReaderImpl.js +55 -0
- package/dist/ai/service/CredentialReaderImpl.js.map +1 -0
- package/dist/ai/service/EmbeddingService.d.ts +8 -0
- package/dist/ai/service/EmbeddingService.js +10 -0
- package/dist/ai/service/EmbeddingService.js.map +1 -0
- package/dist/ai/service/EmbeddingServiceImpl.d.ts +11 -0
- package/dist/ai/service/EmbeddingServiceImpl.js +73 -0
- package/dist/ai/service/EmbeddingServiceImpl.js.map +1 -0
- package/dist/ai/service/ProviderRegistry.d.ts +26 -0
- package/dist/ai/service/ProviderRegistry.js +10 -0
- package/dist/ai/service/ProviderRegistry.js.map +1 -0
- package/dist/ai/service/ProviderRegistryImpl.d.ts +14 -0
- package/dist/ai/service/ProviderRegistryImpl.js +112 -0
- package/dist/ai/service/ProviderRegistryImpl.js.map +1 -0
- package/dist/ai/service/index.d.ts +10 -0
- package/dist/ai/service/index.js +29 -0
- package/dist/ai/service/index.js.map +1 -0
- package/dist/ai/service/types.d.ts +12 -0
- package/dist/ai/service/types.js +6 -0
- package/dist/ai/service/types.js.map +1 -0
- package/dist/api/ApiServer.d.ts +77 -0
- package/dist/api/ApiServer.js +191 -0
- package/dist/api/ApiServer.js.map +1 -0
- package/dist/api/auth/AuthContext.d.ts +41 -0
- package/dist/api/auth/AuthContext.js +44 -0
- package/dist/api/auth/AuthContext.js.map +1 -0
- package/dist/api/auth/Authenticator.d.ts +23 -0
- package/dist/api/auth/Authenticator.js +3 -0
- package/dist/api/auth/Authenticator.js.map +1 -0
- package/dist/api/auth/ClientCredentialsAuthenticator.d.ts +56 -0
- package/dist/api/auth/ClientCredentialsAuthenticator.js +191 -0
- package/dist/api/auth/ClientCredentialsAuthenticator.js.map +1 -0
- package/dist/api/auth/MultiAuthenticator.d.ts +15 -0
- package/dist/api/auth/MultiAuthenticator.js +36 -0
- package/dist/api/auth/MultiAuthenticator.js.map +1 -0
- package/dist/api/auth/NodeTokenAuthenticator.d.ts +21 -0
- package/dist/api/auth/NodeTokenAuthenticator.js +124 -0
- package/dist/api/auth/NodeTokenAuthenticator.js.map +1 -0
- package/dist/api/auth/SolidTokenAuthenticator.d.ts +27 -0
- package/dist/api/auth/SolidTokenAuthenticator.js +144 -0
- package/dist/api/auth/SolidTokenAuthenticator.js.map +1 -0
- package/dist/api/auth/index.d.ts +5 -0
- package/dist/api/auth/index.js +23 -0
- package/dist/api/auth/index.js.map +1 -0
- package/dist/api/chatkit/ai-provider.d.ts +44 -0
- package/dist/api/chatkit/ai-provider.js +157 -0
- package/dist/api/chatkit/ai-provider.js.map +1 -0
- package/dist/api/chatkit/index.d.ts +11 -0
- package/dist/api/chatkit/index.js +44 -0
- package/dist/api/chatkit/index.js.map +1 -0
- package/dist/api/chatkit/pod-store.d.ts +154 -0
- package/dist/api/chatkit/pod-store.js +794 -0
- package/dist/api/chatkit/pod-store.js.map +1 -0
- package/dist/api/chatkit/schema.d.ts +139 -0
- package/dist/api/chatkit/schema.js +168 -0
- package/dist/api/chatkit/schema.js.map +1 -0
- package/dist/api/chatkit/service.d.ts +143 -0
- package/dist/api/chatkit/service.js +442 -0
- package/dist/api/chatkit/service.js.map +1 -0
- package/dist/api/chatkit/store.d.ts +63 -0
- package/dist/api/chatkit/store.js +178 -0
- package/dist/api/chatkit/store.js.map +1 -0
- package/dist/api/chatkit/types.d.ts +461 -0
- package/dist/api/chatkit/types.js +50 -0
- package/dist/api/chatkit/types.js.map +1 -0
- package/dist/api/container/cloud.d.ts +12 -0
- package/dist/api/container/cloud.js +97 -0
- package/dist/api/container/cloud.js.map +1 -0
- package/dist/api/container/common.d.ts +11 -0
- package/dist/api/container/common.js +82 -0
- package/dist/api/container/common.js.map +1 -0
- package/dist/api/container/index.d.ts +16 -0
- package/dist/api/container/index.js +90 -0
- package/dist/api/container/index.js.map +1 -0
- package/dist/api/container/local.d.ts +13 -0
- package/dist/api/container/local.js +197 -0
- package/dist/api/container/local.js.map +1 -0
- package/dist/api/container/routes.d.ts +11 -0
- package/dist/api/container/routes.js +129 -0
- package/dist/api/container/routes.js.map +1 -0
- package/dist/api/container/types.d.ts +92 -0
- package/dist/api/container/types.js +8 -0
- package/dist/api/container/types.js.map +1 -0
- package/dist/api/handlers/AdminHandler.d.ts +6 -0
- package/dist/api/handlers/AdminHandler.js +330 -0
- package/dist/api/handlers/AdminHandler.js.map +1 -0
- package/dist/api/handlers/ApiKeyHandler.d.ts +15 -0
- package/dist/api/handlers/ApiKeyHandler.js +159 -0
- package/dist/api/handlers/ApiKeyHandler.js.map +1 -0
- package/dist/api/handlers/ChatHandler.d.ts +60 -0
- package/dist/api/handlers/ChatHandler.js +230 -0
- package/dist/api/handlers/ChatHandler.js.map +1 -0
- package/dist/api/handlers/ChatKitHandler.d.ts +18 -0
- package/dist/api/handlers/ChatKitHandler.js +151 -0
- package/dist/api/handlers/ChatKitHandler.js.map +1 -0
- package/dist/api/handlers/DashboardHandler.d.ts +14 -0
- package/dist/api/handlers/DashboardHandler.js +117 -0
- package/dist/api/handlers/DashboardHandler.js.map +1 -0
- package/dist/api/handlers/DdnsHandler.d.ts +19 -0
- package/dist/api/handlers/DdnsHandler.js +306 -0
- package/dist/api/handlers/DdnsHandler.js.map +1 -0
- package/dist/api/handlers/DevHandler.d.ts +18 -0
- package/dist/api/handlers/DevHandler.js +276 -0
- package/dist/api/handlers/DevHandler.js.map +1 -0
- package/dist/api/handlers/NodeHandler.d.ts +16 -0
- package/dist/api/handlers/NodeHandler.js +190 -0
- package/dist/api/handlers/NodeHandler.js.map +1 -0
- package/dist/api/handlers/PodManagementHandler.d.ts +39 -0
- package/dist/api/handlers/PodManagementHandler.js +294 -0
- package/dist/api/handlers/PodManagementHandler.js.map +1 -0
- package/dist/api/handlers/QuotaHandler.d.ts +21 -0
- package/dist/api/handlers/QuotaHandler.js +209 -0
- package/dist/api/handlers/QuotaHandler.js.map +1 -0
- package/dist/api/handlers/SignalHandler.d.ts +13 -0
- package/dist/api/handlers/SignalHandler.js +122 -0
- package/dist/api/handlers/SignalHandler.js.map +1 -0
- package/dist/api/handlers/SubdomainClientHandler.d.ts +24 -0
- package/dist/api/handlers/SubdomainClientHandler.js +169 -0
- package/dist/api/handlers/SubdomainClientHandler.js.map +1 -0
- package/dist/api/handlers/SubdomainHandler.d.ts +17 -0
- package/dist/api/handlers/SubdomainHandler.js +312 -0
- package/dist/api/handlers/SubdomainHandler.js.map +1 -0
- package/dist/api/handlers/VectorHandler.d.ts +15 -0
- package/dist/api/handlers/VectorHandler.js +293 -0
- package/dist/api/handlers/VectorHandler.js.map +1 -0
- package/dist/api/handlers/VectorStoreHandler.d.ts +20 -0
- package/dist/api/handlers/VectorStoreHandler.js +348 -0
- package/dist/api/handlers/VectorStoreHandler.js.map +1 -0
- package/dist/api/handlers/VectorStoreWebhookHandler.d.ts +74 -0
- package/dist/api/handlers/VectorStoreWebhookHandler.js +121 -0
- package/dist/api/handlers/VectorStoreWebhookHandler.js.map +1 -0
- package/dist/api/handlers/WebIdProfileHandler.d.ts +14 -0
- package/dist/api/handlers/WebIdProfileHandler.js +204 -0
- package/dist/api/handlers/WebIdProfileHandler.js.map +1 -0
- package/dist/api/handlers/index.d.ts +11 -0
- package/dist/api/handlers/index.js +28 -0
- package/dist/api/handlers/index.js.map +1 -0
- package/dist/api/index.d.ts +12 -0
- package/dist/api/index.js +29 -0
- package/dist/api/index.js.map +1 -0
- package/dist/api/main.d.ts +14 -0
- package/dist/api/main.js +106 -0
- package/dist/api/main.js.map +1 -0
- package/dist/api/middleware/AuthMiddleware.d.ts +35 -0
- package/dist/api/middleware/AuthMiddleware.js +51 -0
- package/dist/api/middleware/AuthMiddleware.js.map +1 -0
- package/dist/api/middleware/index.d.ts +1 -0
- package/dist/api/middleware/index.js +18 -0
- package/dist/api/middleware/index.js.map +1 -0
- package/dist/api/models/model-provider.schema.d.ts +12 -0
- package/dist/api/models/model-provider.schema.js +21 -0
- package/dist/api/models/model-provider.schema.js.map +1 -0
- package/dist/api/models/namespaces.d.ts +9 -0
- package/dist/api/models/namespaces.js +34 -0
- package/dist/api/models/namespaces.js.map +1 -0
- package/dist/api/service/InternalPodService.d.ts +19 -0
- package/dist/api/service/InternalPodService.js +82 -0
- package/dist/api/service/InternalPodService.js.map +1 -0
- package/dist/api/service/VectorService.d.ts +156 -0
- package/dist/api/service/VectorService.js +202 -0
- package/dist/api/service/VectorService.js.map +1 -0
- package/dist/api/service/VectorStoreService.d.ts +262 -0
- package/dist/api/service/VectorStoreService.js +985 -0
- package/dist/api/service/VectorStoreService.js.map +1 -0
- package/dist/api/service/VercelChatService.d.ts +28 -0
- package/dist/api/service/VercelChatService.js +289 -0
- package/dist/api/service/VercelChatService.js.map +1 -0
- package/dist/api/store/DrizzleClientCredentialsStore.d.ts +56 -0
- package/dist/api/store/DrizzleClientCredentialsStore.js +145 -0
- package/dist/api/store/DrizzleClientCredentialsStore.js.map +1 -0
- package/dist/api/store/index.d.ts +1 -0
- package/dist/api/store/index.js +18 -0
- package/dist/api/store/index.js.map +1 -0
- package/dist/components/components.jsonld +88 -0
- package/dist/components/context.jsonld +1962 -0
- package/dist/credential/index.d.ts +1 -0
- package/dist/credential/index.js +18 -0
- package/dist/credential/index.js.map +1 -0
- package/dist/credential/schema/index.d.ts +2 -0
- package/dist/credential/schema/index.js +19 -0
- package/dist/credential/schema/index.js.map +1 -0
- package/dist/credential/schema/tables.d.ts +31 -0
- package/dist/credential/schema/tables.js +42 -0
- package/dist/credential/schema/tables.js.map +1 -0
- package/dist/credential/schema/types.d.ts +20 -0
- package/dist/credential/schema/types.js +26 -0
- package/dist/credential/schema/types.js.map +1 -0
- package/dist/dns/DnsProvider.d.ts +46 -0
- package/dist/dns/DnsProvider.js +3 -0
- package/dist/dns/DnsProvider.js.map +1 -0
- package/dist/dns/DnsProvider.jsonld +161 -0
- package/dist/dns/cloudflare/CloudflareDnsProvider.d.ts +51 -0
- package/dist/dns/cloudflare/CloudflareDnsProvider.js +227 -0
- package/dist/dns/cloudflare/CloudflareDnsProvider.js.map +1 -0
- package/dist/dns/cloudflare/index.d.ts +1 -0
- package/dist/dns/cloudflare/index.js +18 -0
- package/dist/dns/cloudflare/index.js.map +1 -0
- package/dist/dns/tencent/TencentDnsProvider.d.ts +42 -0
- package/dist/dns/tencent/TencentDnsProvider.js +221 -0
- package/dist/dns/tencent/TencentDnsProvider.js.map +1 -0
- package/dist/dns/tencent/TencentDnsProvider.jsonld +239 -0
- package/dist/document/Chunker.d.ts +64 -0
- package/dist/document/Chunker.js +8 -0
- package/dist/document/Chunker.js.map +1 -0
- package/dist/document/DocumentParser.d.ts +58 -0
- package/dist/document/DocumentParser.js +8 -0
- package/dist/document/DocumentParser.js.map +1 -0
- package/dist/document/HeadingChunker.d.ts +34 -0
- package/dist/document/HeadingChunker.js +182 -0
- package/dist/document/HeadingChunker.js.map +1 -0
- package/dist/document/JinaDocumentParser.d.ts +40 -0
- package/dist/document/JinaDocumentParser.js +129 -0
- package/dist/document/JinaDocumentParser.js.map +1 -0
- package/dist/document/index.d.ts +7 -0
- package/dist/document/index.js +26 -0
- package/dist/document/index.js.map +1 -0
- package/dist/edge/DdnsManager.d.ts +53 -0
- package/dist/edge/DdnsManager.js +153 -0
- package/dist/edge/DdnsManager.js.map +1 -0
- package/dist/edge/Dns01CertificateProvisioner.d.ts +27 -0
- package/dist/edge/Dns01CertificateProvisioner.js +160 -0
- package/dist/edge/Dns01CertificateProvisioner.js.map +1 -0
- package/dist/edge/Dns01CertificateProvisioner.jsonld +148 -0
- package/dist/edge/EdgeNodeAgent.d.ts +56 -0
- package/dist/edge/EdgeNodeAgent.js +230 -0
- package/dist/edge/EdgeNodeAgent.js.map +1 -0
- package/dist/edge/EdgeNodeAgent.jsonld +89 -0
- package/dist/edge/EdgeNodeAgentInitializer.d.ts +25 -0
- package/dist/edge/EdgeNodeAgentInitializer.js +64 -0
- package/dist/edge/EdgeNodeAgentInitializer.js.map +1 -0
- package/dist/edge/EdgeNodeCapabilityDetector.d.ts +98 -0
- package/dist/edge/EdgeNodeCapabilityDetector.js +425 -0
- package/dist/edge/EdgeNodeCapabilityDetector.js.map +1 -0
- package/dist/edge/EdgeNodeCertificateProvisioner.d.ts +3 -0
- package/dist/edge/EdgeNodeCertificateProvisioner.js +3 -0
- package/dist/edge/EdgeNodeCertificateProvisioner.js.map +1 -0
- package/dist/edge/EdgeNodeCertificateProvisioner.jsonld +21 -0
- package/dist/edge/EdgeNodeDnsCoordinator.d.ts +38 -0
- package/dist/edge/EdgeNodeDnsCoordinator.js +201 -0
- package/dist/edge/EdgeNodeDnsCoordinator.js.map +1 -0
- package/dist/edge/EdgeNodeDnsCoordinator.jsonld +212 -0
- package/dist/edge/EdgeNodeHealthProbeService.d.ts +25 -0
- package/dist/edge/EdgeNodeHealthProbeService.js +208 -0
- package/dist/edge/EdgeNodeHealthProbeService.js.map +1 -0
- package/dist/edge/EdgeNodeHealthProbeService.jsonld +176 -0
- package/dist/edge/EdgeNodeModeDetector.d.ts +50 -0
- package/dist/edge/EdgeNodeModeDetector.js +194 -0
- package/dist/edge/EdgeNodeModeDetector.js.map +1 -0
- package/dist/edge/EdgeNodeModeDetector.jsonld +114 -0
- package/dist/edge/EdgeNodeTunnelManager.d.ts +23 -0
- package/dist/edge/EdgeNodeTunnelManager.js +99 -0
- package/dist/edge/EdgeNodeTunnelManager.js.map +1 -0
- package/dist/edge/EdgeNodeTunnelManager.jsonld +128 -0
- package/dist/edge/FrpTunnelManager.d.ts +30 -0
- package/dist/edge/FrpTunnelManager.js +151 -0
- package/dist/edge/FrpTunnelManager.js.map +1 -0
- package/dist/edge/FrpTunnelManager.jsonld +192 -0
- package/dist/edge/LocalNetworkManager.d.ts +41 -0
- package/dist/edge/LocalNetworkManager.js +115 -0
- package/dist/edge/LocalNetworkManager.js.map +1 -0
- package/dist/edge/acme/AcmeCertificateManager.d.ts +65 -0
- package/dist/edge/acme/AcmeCertificateManager.js +233 -0
- package/dist/edge/acme/AcmeCertificateManager.js.map +1 -0
- package/dist/edge/acme/AcmeCertificateManager.jsonld +373 -0
- package/dist/edge/acme/ClusterCertificateManager.d.ts +40 -0
- package/dist/edge/acme/ClusterCertificateManager.js +184 -0
- package/dist/edge/acme/ClusterCertificateManager.js.map +1 -0
- package/dist/edge/acme/DnsChallengeClient.d.ts +15 -0
- package/dist/edge/acme/DnsChallengeClient.js +40 -0
- package/dist/edge/acme/DnsChallengeClient.js.map +1 -0
- package/dist/edge/acme/utils.d.ts +4 -0
- package/dist/edge/acme/utils.js +17 -0
- package/dist/edge/acme/utils.js.map +1 -0
- package/dist/edge/frp/FrpRelay.d.ts +11 -0
- package/dist/edge/frp/FrpRelay.js +29 -0
- package/dist/edge/frp/FrpRelay.js.map +1 -0
- package/dist/edge/frp/FrpcProcessManager.d.ts +51 -0
- package/dist/edge/frp/FrpcProcessManager.js +174 -0
- package/dist/edge/frp/FrpcProcessManager.js.map +1 -0
- package/dist/edge/interfaces/EdgeNodeTunnelManager.d.ts +6 -0
- package/dist/edge/interfaces/EdgeNodeTunnelManager.js +3 -0
- package/dist/edge/interfaces/EdgeNodeTunnelManager.js.map +1 -0
- package/dist/edge/interfaces/EdgeNodeTunnelManager.jsonld +21 -0
- package/dist/embedding/CredentialReader.d.ts +7 -0
- package/dist/embedding/CredentialReader.js +10 -0
- package/dist/embedding/CredentialReader.js.map +1 -0
- package/dist/embedding/CredentialReader.jsonld +22 -0
- package/dist/embedding/CredentialReaderImpl.d.ts +6 -0
- package/dist/embedding/CredentialReaderImpl.js +55 -0
- package/dist/embedding/CredentialReaderImpl.js.map +1 -0
- package/dist/embedding/CredentialReaderImpl.jsonld +31 -0
- package/dist/embedding/EmbeddingService.d.ts +8 -0
- package/dist/embedding/EmbeddingService.js +10 -0
- package/dist/embedding/EmbeddingService.js.map +1 -0
- package/dist/embedding/EmbeddingService.jsonld +26 -0
- package/dist/embedding/EmbeddingServiceImpl.d.ts +11 -0
- package/dist/embedding/EmbeddingServiceImpl.js +73 -0
- package/dist/embedding/EmbeddingServiceImpl.js.map +1 -0
- package/dist/embedding/EmbeddingServiceImpl.jsonld +53 -0
- package/dist/embedding/ProviderRegistry.d.ts +26 -0
- package/dist/embedding/ProviderRegistry.js +10 -0
- package/dist/embedding/ProviderRegistry.js.map +1 -0
- package/dist/embedding/ProviderRegistry.jsonld +30 -0
- package/dist/embedding/ProviderRegistryImpl.d.ts +14 -0
- package/dist/embedding/ProviderRegistryImpl.js +112 -0
- package/dist/embedding/ProviderRegistryImpl.js.map +1 -0
- package/dist/embedding/ProviderRegistryImpl.jsonld +40 -0
- package/dist/embedding/index.d.ts +5 -0
- package/dist/embedding/index.js +22 -0
- package/dist/embedding/index.js.map +1 -0
- package/dist/embedding/schema/index.d.ts +1 -0
- package/dist/embedding/schema/index.js +18 -0
- package/dist/embedding/schema/index.js.map +1 -0
- package/dist/embedding/schema/tables.d.ts +70 -0
- package/dist/embedding/schema/tables.js +102 -0
- package/dist/embedding/schema/tables.js.map +1 -0
- package/dist/embedding/types.d.ts +12 -0
- package/dist/embedding/types.js +6 -0
- package/dist/embedding/types.js.map +1 -0
- package/dist/gateway/port-finder.d.ts +4 -0
- package/dist/gateway/port-finder.js +15 -0
- package/dist/gateway/port-finder.js.map +1 -0
- package/dist/gateway/proxy.d.ts +22 -0
- package/dist/gateway/proxy.js +149 -0
- package/dist/gateway/proxy.js.map +1 -0
- package/dist/gateway/supervisor.d.ts +2 -0
- package/dist/gateway/supervisor.js +7 -0
- package/dist/gateway/supervisor.js.map +1 -0
- package/dist/gateway/types.d.ts +1 -0
- package/dist/gateway/types.js +3 -0
- package/dist/gateway/types.js.map +1 -0
- package/dist/http/AppStaticAssetHandler.d.ts +8 -0
- package/dist/http/AppStaticAssetHandler.js +27 -0
- package/dist/http/AppStaticAssetHandler.js.map +1 -0
- package/dist/http/AppStaticAssetHandler.jsonld +26 -0
- package/dist/http/ClusterIngressRouter.d.ts +93 -0
- package/dist/http/ClusterIngressRouter.js +355 -0
- package/dist/http/ClusterIngressRouter.js.map +1 -0
- package/dist/http/ClusterIngressRouter.jsonld +227 -0
- package/dist/http/ClusterWebSocketConfigurator.d.ts +59 -0
- package/dist/http/ClusterWebSocketConfigurator.js +226 -0
- package/dist/http/ClusterWebSocketConfigurator.js.map +1 -0
- package/dist/http/ClusterWebSocketConfigurator.jsonld +145 -0
- package/dist/http/EdgeNodeDirectDebugHttpHandler.d.ts +25 -0
- package/dist/http/EdgeNodeDirectDebugHttpHandler.js +126 -0
- package/dist/http/EdgeNodeDirectDebugHttpHandler.js.map +1 -0
- package/dist/http/EdgeNodeDirectDebugHttpHandler.jsonld +151 -0
- package/dist/http/EdgeNodeProxyHttpHandler.d.ts +28 -0
- package/dist/http/EdgeNodeProxyHttpHandler.js +190 -0
- package/dist/http/EdgeNodeProxyHttpHandler.js.map +1 -0
- package/dist/http/EdgeNodeProxyHttpHandler.jsonld +162 -0
- package/dist/http/PodRoutingHttpHandler.d.ts +64 -0
- package/dist/http/PodRoutingHttpHandler.js +233 -0
- package/dist/http/PodRoutingHttpHandler.js.map +1 -0
- package/dist/http/PodRoutingHttpHandler.jsonld +171 -0
- package/dist/http/RequestIdHttpHandler.d.ts +15 -0
- package/dist/http/RequestIdHttpHandler.js +59 -0
- package/dist/http/RequestIdHttpHandler.js.map +1 -0
- package/dist/http/RouterHttpHandler.d.ts +21 -0
- package/dist/http/RouterHttpHandler.js +49 -0
- package/dist/http/RouterHttpHandler.js.map +1 -0
- package/dist/http/RouterHttpHandler.jsonld +80 -0
- package/dist/http/RouterHttpRoute.d.ts +6 -0
- package/dist/http/RouterHttpRoute.js +11 -0
- package/dist/http/RouterHttpRoute.js.map +1 -0
- package/dist/http/RouterHttpRoute.jsonld +48 -0
- package/dist/http/SignalInterceptHttpHandler.d.ts +24 -0
- package/dist/http/SignalInterceptHttpHandler.js +47 -0
- package/dist/http/SignalInterceptHttpHandler.js.map +1 -0
- package/dist/http/SignalInterceptHttpHandler.jsonld +103 -0
- package/dist/http/SubgraphSparqlHttpHandler.d.ts +70 -0
- package/dist/http/SubgraphSparqlHttpHandler.js +640 -0
- package/dist/http/SubgraphSparqlHttpHandler.js.map +1 -0
- package/dist/http/SubgraphSparqlHttpHandler.jsonld +363 -0
- package/dist/http/TracingHandler.d.ts +19 -0
- package/dist/http/TracingHandler.js +60 -0
- package/dist/http/TracingHandler.js.map +1 -0
- package/dist/http/TracingHandler.jsonld +37 -0
- package/dist/http/admin/EdgeNodeAdminHttpHandler.d.ts +45 -0
- package/dist/http/admin/EdgeNodeAdminHttpHandler.js +292 -0
- package/dist/http/admin/EdgeNodeAdminHttpHandler.js.map +1 -0
- package/dist/http/admin/EdgeNodeCertificateHttpHandler.d.ts +33 -0
- package/dist/http/admin/EdgeNodeCertificateHttpHandler.js +172 -0
- package/dist/http/admin/EdgeNodeCertificateHttpHandler.js.map +1 -0
- package/dist/http/admin/EdgeNodeCertificateHttpHandler.jsonld +182 -0
- package/dist/http/admin/EdgeNodeSignalHttpHandler.d.ts +71 -0
- package/dist/http/admin/EdgeNodeSignalHttpHandler.js +674 -0
- package/dist/http/admin/EdgeNodeSignalHttpHandler.js.map +1 -0
- package/dist/http/admin/EdgeNodeSignalHttpHandler.jsonld +406 -0
- package/dist/http/cluster/PodMigrationHttpHandler.d.ts +52 -0
- package/dist/http/cluster/PodMigrationHttpHandler.js +208 -0
- package/dist/http/cluster/PodMigrationHttpHandler.js.map +1 -0
- package/dist/http/cluster/PodMigrationHttpHandler.jsonld +169 -0
- package/dist/http/quota/QuotaAdminHttpHandler.d.ts +34 -0
- package/dist/http/quota/QuotaAdminHttpHandler.js +241 -0
- package/dist/http/quota/QuotaAdminHttpHandler.js.map +1 -0
- package/dist/http/quota/QuotaAdminHttpHandler.jsonld +171 -0
- package/dist/http/search/SearchHttpHandler.d.ts +59 -0
- package/dist/http/search/SearchHttpHandler.js +312 -0
- package/dist/http/search/SearchHttpHandler.js.map +1 -0
- package/dist/http/search/index.d.ts +1 -0
- package/dist/http/search/index.js +18 -0
- package/dist/http/search/index.js.map +1 -0
- package/dist/http/terminal/TerminalHttpHandler.d.ts +45 -0
- package/dist/http/terminal/TerminalHttpHandler.js +306 -0
- package/dist/http/terminal/TerminalHttpHandler.js.map +1 -0
- package/dist/http/terminal/TerminalHttpHandler.jsonld +232 -0
- package/dist/http/terminal/index.d.ts +1 -0
- package/dist/http/terminal/index.js +18 -0
- package/dist/http/terminal/index.js.map +1 -0
- package/dist/http/vector/VectorHttpHandler.d.ts +42 -0
- package/dist/http/vector/VectorHttpHandler.js +301 -0
- package/dist/http/vector/VectorHttpHandler.js.map +1 -0
- package/dist/http/vector/VectorHttpHandler.jsonld +157 -0
- package/dist/http/vector/index.d.ts +1 -0
- package/dist/http/vector/index.js +18 -0
- package/dist/http/vector/index.js.map +1 -0
- package/dist/ice/IceServerProvider.d.ts +85 -0
- package/dist/ice/IceServerProvider.js +122 -0
- package/dist/ice/IceServerProvider.js.map +1 -0
- package/dist/ice/index.d.ts +8 -0
- package/dist/ice/index.js +25 -0
- package/dist/ice/index.js.map +1 -0
- package/dist/identity/CenterNodeRegistrationService.d.ts +102 -0
- package/dist/identity/CenterNodeRegistrationService.js +266 -0
- package/dist/identity/CenterNodeRegistrationService.js.map +1 -0
- package/dist/identity/CenterNodeRegistrationService.jsonld +251 -0
- package/dist/identity/ReactAppViewHandler.d.ts +31 -0
- package/dist/identity/ReactAppViewHandler.js +79 -0
- package/dist/identity/ReactAppViewHandler.js.map +1 -0
- package/dist/identity/ReactAppViewHandler.jsonld +99 -0
- package/dist/identity/drizzle/AccountRepository.d.ts +31 -0
- package/dist/identity/drizzle/AccountRepository.js +130 -0
- package/dist/identity/drizzle/AccountRepository.js.map +1 -0
- package/dist/identity/drizzle/AccountRoleRepository.d.ts +23 -0
- package/dist/identity/drizzle/AccountRoleRepository.js +233 -0
- package/dist/identity/drizzle/AccountRoleRepository.js.map +1 -0
- package/dist/identity/drizzle/DdnsRepository.d.ts +87 -0
- package/dist/identity/drizzle/DdnsRepository.js +284 -0
- package/dist/identity/drizzle/DdnsRepository.js.map +1 -0
- package/dist/identity/drizzle/DrizzleIndexedStorage.d.ts +26 -0
- package/dist/identity/drizzle/DrizzleIndexedStorage.js +159 -0
- package/dist/identity/drizzle/DrizzleIndexedStorage.js.map +1 -0
- package/dist/identity/drizzle/DrizzleIndexedStorage.jsonld +130 -0
- package/dist/identity/drizzle/EdgeNodeRepository.d.ts +155 -0
- package/dist/identity/drizzle/EdgeNodeRepository.js +555 -0
- package/dist/identity/drizzle/EdgeNodeRepository.js.map +1 -0
- package/dist/identity/drizzle/PodLookupRepository.d.ts +59 -0
- package/dist/identity/drizzle/PodLookupRepository.js +153 -0
- package/dist/identity/drizzle/PodLookupRepository.js.map +1 -0
- package/dist/identity/drizzle/WebIdProfileRepository.d.ts +58 -0
- package/dist/identity/drizzle/WebIdProfileRepository.js +157 -0
- package/dist/identity/drizzle/WebIdProfileRepository.js.map +1 -0
- package/dist/identity/drizzle/db.d.ts +60 -0
- package/dist/identity/drizzle/db.js +269 -0
- package/dist/identity/drizzle/db.js.map +1 -0
- package/dist/identity/drizzle/schema.d.ts +1 -0
- package/dist/identity/drizzle/schema.js +20 -0
- package/dist/identity/drizzle/schema.js.map +1 -0
- package/dist/identity/drizzle/schema.pg.d.ts +20 -0
- package/dist/identity/drizzle/schema.pg.js +103 -0
- package/dist/identity/drizzle/schema.pg.js.map +1 -0
- package/dist/identity/drizzle/schema.sqlite.d.ts +872 -0
- package/dist/identity/drizzle/schema.sqlite.js +100 -0
- package/dist/identity/drizzle/schema.sqlite.js.map +1 -0
- package/dist/identity/oidc/AutoDetectIdentityProviderHandler.d.ts +43 -0
- package/dist/identity/oidc/AutoDetectIdentityProviderHandler.js +92 -0
- package/dist/identity/oidc/AutoDetectIdentityProviderHandler.js.map +1 -0
- package/dist/identity/oidc/AutoDetectIdentityProviderHandler.jsonld +122 -0
- package/dist/identity/oidc/AutoDetectOidcHandler.d.ts +55 -0
- package/dist/identity/oidc/AutoDetectOidcHandler.js +137 -0
- package/dist/identity/oidc/AutoDetectOidcHandler.js.map +1 -0
- package/dist/identity/oidc/AutoDetectOidcHandler.jsonld +138 -0
- package/dist/identity/oidc/DisabledIdentityProviderHandler.d.ts +51 -0
- package/dist/identity/oidc/DisabledIdentityProviderHandler.js +104 -0
- package/dist/identity/oidc/DisabledIdentityProviderHandler.js.map +1 -0
- package/dist/identity/oidc/DisabledIdentityProviderHandler.jsonld +111 -0
- package/dist/identity/oidc/DisabledOidcHandler.d.ts +55 -0
- package/dist/identity/oidc/DisabledOidcHandler.js +132 -0
- package/dist/identity/oidc/DisabledOidcHandler.js.map +1 -0
- package/dist/identity/oidc/DisabledOidcHandler.jsonld +157 -0
- package/dist/index.d.ts +80 -0
- package/dist/index.js +155 -0
- package/dist/index.js.map +1 -0
- package/dist/legacy/DrizzleClientCredentialsStore.d.ts +51 -0
- package/dist/legacy/DrizzleClientCredentialsStore.js +142 -0
- package/dist/legacy/DrizzleClientCredentialsStore.js.map +1 -0
- package/dist/legacy/DrizzleIndexedStorage.d.ts +26 -0
- package/dist/legacy/DrizzleIndexedStorage.js +159 -0
- package/dist/legacy/DrizzleIndexedStorage.js.map +1 -0
- package/dist/legacy/DrizzleQuotaService.d.ts +16 -0
- package/dist/legacy/DrizzleQuotaService.js +37 -0
- package/dist/legacy/DrizzleQuotaService.js.map +1 -0
- package/dist/libs/backends/index.d.ts +6 -0
- package/dist/libs/backends/index.js +31 -0
- package/dist/libs/backends/index.js.map +1 -0
- package/dist/libs/backends/sqlup.d.ts +44 -0
- package/dist/libs/backends/sqlup.js +437 -0
- package/dist/libs/backends/sqlup.js.map +1 -0
- package/dist/logging/ConfigurableLoggerFactory.d.ts +24 -0
- package/dist/logging/ConfigurableLoggerFactory.js +77 -0
- package/dist/logging/ConfigurableLoggerFactory.js.map +1 -0
- package/dist/logging/ConfigurableLoggerFactory.jsonld +169 -0
- package/dist/logging/LogContext.d.ts +5 -0
- package/dist/logging/LogContext.js +6 -0
- package/dist/logging/LogContext.js.map +1 -0
- package/dist/main.d.ts +2 -0
- package/dist/main.js +148 -0
- package/dist/main.js.map +1 -0
- package/dist/network/LocalNetworkDetector.d.ts +65 -0
- package/dist/network/LocalNetworkDetector.js +185 -0
- package/dist/network/LocalNetworkDetector.js.map +1 -0
- package/dist/network/index.d.ts +4 -0
- package/dist/network/index.js +21 -0
- package/dist/network/index.js.map +1 -0
- package/dist/pods/ReservedSuffixIdentifierGenerator.d.ts +13 -0
- package/dist/pods/ReservedSuffixIdentifierGenerator.js +26 -0
- package/dist/pods/ReservedSuffixIdentifierGenerator.js.map +1 -0
- package/dist/pods/ReservedSuffixIdentifierGenerator.jsonld +75 -0
- package/dist/quota/DefaultQuotaService.d.ts +16 -0
- package/dist/quota/DefaultQuotaService.js +37 -0
- package/dist/quota/DefaultQuotaService.js.map +1 -0
- package/dist/quota/DefaultQuotaService.jsonld +85 -0
- package/dist/quota/DrizzleQuotaService.d.ts +16 -0
- package/dist/quota/DrizzleQuotaService.js +37 -0
- package/dist/quota/DrizzleQuotaService.js.map +1 -0
- package/dist/quota/DrizzleQuotaService.jsonld +87 -0
- package/dist/quota/NoopQuotaService.d.ts +7 -0
- package/dist/quota/NoopQuotaService.js +15 -0
- package/dist/quota/NoopQuotaService.js.map +1 -0
- package/dist/quota/NoopQuotaService.jsonld +36 -0
- package/dist/quota/QuotaService.d.ts +6 -0
- package/dist/quota/QuotaService.js +3 -0
- package/dist/quota/QuotaService.js.map +1 -0
- package/dist/quota/QuotaService.jsonld +33 -0
- package/dist/sdk/SignalingClientAdapter.d.ts +38 -0
- package/dist/sdk/SignalingClientAdapter.js +99 -0
- package/dist/sdk/SignalingClientAdapter.js.map +1 -0
- package/dist/sdk/createFetch.d.ts +23 -0
- package/dist/sdk/createFetch.js +258 -0
- package/dist/sdk/createFetch.js.map +1 -0
- package/dist/sdk/index.d.ts +29 -0
- package/dist/sdk/index.js +34 -0
- package/dist/sdk/index.js.map +1 -0
- package/dist/sdk/xpodFetch.d.ts +112 -0
- package/dist/sdk/xpodFetch.js +251 -0
- package/dist/sdk/xpodFetch.js.map +1 -0
- package/dist/service/EdgeNodeCertificateService.d.ts +45 -0
- package/dist/service/EdgeNodeCertificateService.js +164 -0
- package/dist/service/EdgeNodeCertificateService.js.map +1 -0
- package/dist/service/EdgeNodeCertificateService.jsonld +216 -0
- package/dist/service/EdgeNodeHeartbeatService.d.ts +68 -0
- package/dist/service/EdgeNodeHeartbeatService.js +262 -0
- package/dist/service/EdgeNodeHeartbeatService.js.map +1 -0
- package/dist/service/PodMigrationService.d.ts +43 -0
- package/dist/service/PodMigrationService.js +72 -0
- package/dist/service/PodMigrationService.js.map +1 -0
- package/dist/service/PodMigrationService.jsonld +76 -0
- package/dist/signaling/SignalingClient.d.ts +142 -0
- package/dist/signaling/SignalingClient.js +305 -0
- package/dist/signaling/SignalingClient.js.map +1 -0
- package/dist/signaling/SignalingService.d.ts +104 -0
- package/dist/signaling/SignalingService.js +440 -0
- package/dist/signaling/SignalingService.js.map +1 -0
- package/dist/signaling/index.d.ts +11 -0
- package/dist/signaling/index.js +28 -0
- package/dist/signaling/index.js.map +1 -0
- package/dist/signaling/types.d.ts +237 -0
- package/dist/signaling/types.js +18 -0
- package/dist/signaling/types.js.map +1 -0
- package/dist/storage/DrizzleCompat.d.ts +15 -0
- package/dist/storage/DrizzleCompat.js +60 -0
- package/dist/storage/DrizzleCompat.js.map +1 -0
- package/dist/storage/LockingResourceStore.d.ts +8 -0
- package/dist/storage/LockingResourceStore.js +68 -0
- package/dist/storage/LockingResourceStore.js.map +1 -0
- package/dist/storage/MigratableDataAccessor.d.ts +63 -0
- package/dist/storage/MigratableDataAccessor.js +11 -0
- package/dist/storage/MigratableDataAccessor.js.map +1 -0
- package/dist/storage/MigratableDataAccessor.jsonld +60 -0
- package/dist/storage/ObservableResourceStore.d.ts +89 -0
- package/dist/storage/ObservableResourceStore.js +125 -0
- package/dist/storage/ObservableResourceStore.js.map +1 -0
- package/dist/storage/RepresentationPartialConvertingStore.d.ts +22 -0
- package/dist/storage/RepresentationPartialConvertingStore.js +94 -0
- package/dist/storage/RepresentationPartialConvertingStore.js.map +1 -0
- package/dist/storage/RepresentationPartialConvertingStore.jsonld +332 -0
- package/dist/storage/SparqlUpdateResourceStore.d.ts +30 -0
- package/dist/storage/SparqlUpdateResourceStore.js +292 -0
- package/dist/storage/SparqlUpdateResourceStore.js.map +1 -0
- package/dist/storage/SparqlUpdateResourceStore.jsonld +112 -0
- package/dist/storage/SqliteCompat.d.ts +60 -0
- package/dist/storage/SqliteCompat.js +158 -0
- package/dist/storage/SqliteCompat.js.map +1 -0
- package/dist/storage/accessors/MinioDataAccessor.d.ts +127 -0
- package/dist/storage/accessors/MinioDataAccessor.js +249 -0
- package/dist/storage/accessors/MinioDataAccessor.js.map +1 -0
- package/dist/storage/accessors/MinioDataAccessor.jsonld +138 -0
- package/dist/storage/accessors/MixDataAccessor.d.ts +43 -0
- package/dist/storage/accessors/MixDataAccessor.js +130 -0
- package/dist/storage/accessors/MixDataAccessor.js.map +1 -0
- package/dist/storage/accessors/MixDataAccessor.jsonld +101 -0
- package/dist/storage/accessors/QuadstoreSparqlDataAccessor.d.ts +146 -0
- package/dist/storage/accessors/QuadstoreSparqlDataAccessor.js +415 -0
- package/dist/storage/accessors/QuadstoreSparqlDataAccessor.js.map +1 -0
- package/dist/storage/accessors/QuadstoreSparqlDataAccessor.jsonld +180 -0
- package/dist/storage/accessors/QuintStoreSparqlDataAccessor.d.ts +95 -0
- package/dist/storage/accessors/QuintStoreSparqlDataAccessor.js +376 -0
- package/dist/storage/accessors/QuintStoreSparqlDataAccessor.js.map +1 -0
- package/dist/storage/accessors/QuintStoreSparqlDataAccessor.jsonld +168 -0
- package/dist/storage/accessors/TieredMinioDataAccessor.d.ts +150 -0
- package/dist/storage/accessors/TieredMinioDataAccessor.js +582 -0
- package/dist/storage/accessors/TieredMinioDataAccessor.js.map +1 -0
- package/dist/storage/accessors/TieredMinioDataAccessor.jsonld +333 -0
- package/dist/storage/database/PostgresPoolManager.d.ts +56 -0
- package/dist/storage/database/PostgresPoolManager.js +117 -0
- package/dist/storage/database/PostgresPoolManager.js.map +1 -0
- package/dist/storage/keyvalue/PostgresKeyValueStorage.d.ts +34 -0
- package/dist/storage/keyvalue/PostgresKeyValueStorage.js +146 -0
- package/dist/storage/keyvalue/PostgresKeyValueStorage.js.map +1 -0
- package/dist/storage/keyvalue/PostgresKeyValueStorage.jsonld +192 -0
- package/dist/storage/keyvalue/RedisKeyValueStorage.d.ts +30 -0
- package/dist/storage/keyvalue/RedisKeyValueStorage.js +133 -0
- package/dist/storage/keyvalue/RedisKeyValueStorage.js.map +1 -0
- package/dist/storage/keyvalue/RedisKeyValueStorage.jsonld +237 -0
- package/dist/storage/keyvalue/SqliteKeyValueStorage.d.ts +30 -0
- package/dist/storage/keyvalue/SqliteKeyValueStorage.js +164 -0
- package/dist/storage/keyvalue/SqliteKeyValueStorage.js.map +1 -0
- package/dist/storage/keyvalue/SqliteKeyValueStorage.jsonld +167 -0
- package/dist/storage/quint/BaseQuintStore.d.ts +80 -0
- package/dist/storage/quint/BaseQuintStore.js +535 -0
- package/dist/storage/quint/BaseQuintStore.js.map +1 -0
- package/dist/storage/quint/BaseQuintStore.jsonld +175 -0
- package/dist/storage/quint/PgQuintStore.d.ts +61 -0
- package/dist/storage/quint/PgQuintStore.drizzle.d.ts +45 -0
- package/dist/storage/quint/PgQuintStore.drizzle.js +327 -0
- package/dist/storage/quint/PgQuintStore.drizzle.js.map +1 -0
- package/dist/storage/quint/PgQuintStore.js +275 -0
- package/dist/storage/quint/PgQuintStore.js.map +1 -0
- package/dist/storage/quint/PgQuintStore.jsonld +258 -0
- package/dist/storage/quint/SqliteQuintStore.d.ts +55 -0
- package/dist/storage/quint/SqliteQuintStore.js +630 -0
- package/dist/storage/quint/SqliteQuintStore.js.map +1 -0
- package/dist/storage/quint/SqliteQuintStore.jsonld +157 -0
- package/dist/storage/quint/index.d.ts +11 -0
- package/dist/storage/quint/index.js +30 -0
- package/dist/storage/quint/index.js.map +1 -0
- package/dist/storage/quint/schema.d.ts +82 -0
- package/dist/storage/quint/schema.js +33 -0
- package/dist/storage/quint/schema.js.map +1 -0
- package/dist/storage/quint/serialization.d.ts +56 -0
- package/dist/storage/quint/serialization.js +198 -0
- package/dist/storage/quint/serialization.js.map +1 -0
- package/dist/storage/quint/types.d.ts +152 -0
- package/dist/storage/quint/types.js +27 -0
- package/dist/storage/quint/types.js.map +1 -0
- package/dist/storage/quint/types.jsonld +78 -0
- package/dist/storage/quota/PerAccountQuotaStrategy.d.ts +19 -0
- package/dist/storage/quota/PerAccountQuotaStrategy.js +63 -0
- package/dist/storage/quota/PerAccountQuotaStrategy.js.map +1 -0
- package/dist/storage/quota/PerAccountQuotaStrategy.jsonld +113 -0
- package/dist/storage/quota/UsageRepository.d.ts +46 -0
- package/dist/storage/quota/UsageRepository.js +278 -0
- package/dist/storage/quota/UsageRepository.js.map +1 -0
- package/dist/storage/quota/UsageTrackingStore.d.ts +37 -0
- package/dist/storage/quota/UsageTrackingStore.js +355 -0
- package/dist/storage/quota/UsageTrackingStore.js.map +1 -0
- package/dist/storage/quota/UsageTrackingStore.jsonld +193 -0
- package/dist/storage/sparql/AlgebraUtils.d.ts +48 -0
- package/dist/storage/sparql/AlgebraUtils.js +118 -0
- package/dist/storage/sparql/AlgebraUtils.js.map +1 -0
- package/dist/storage/sparql/ComunicaOptimizedEngine.d.ts +59 -0
- package/dist/storage/sparql/ComunicaOptimizedEngine.js +254 -0
- package/dist/storage/sparql/ComunicaOptimizedEngine.js.map +1 -0
- package/dist/storage/sparql/ComunicaQuintEngine.d.ts +134 -0
- package/dist/storage/sparql/ComunicaQuintEngine.js +727 -0
- package/dist/storage/sparql/ComunicaQuintEngine.js.map +1 -0
- package/dist/storage/sparql/ExpressionEvaluator.d.ts +54 -0
- package/dist/storage/sparql/ExpressionEvaluator.js +340 -0
- package/dist/storage/sparql/ExpressionEvaluator.js.map +1 -0
- package/dist/storage/sparql/FilterPushdownExtractor.d.ts +74 -0
- package/dist/storage/sparql/FilterPushdownExtractor.js +409 -0
- package/dist/storage/sparql/FilterPushdownExtractor.js.map +1 -0
- package/dist/storage/sparql/OptimizedQuadstoreEngine.d.ts +65 -0
- package/dist/storage/sparql/OptimizedQuadstoreEngine.js +327 -0
- package/dist/storage/sparql/OptimizedQuadstoreEngine.js.map +1 -0
- package/dist/storage/sparql/OptimizedQuadstoreSource.d.ts +46 -0
- package/dist/storage/sparql/OptimizedQuadstoreSource.js +118 -0
- package/dist/storage/sparql/OptimizedQuadstoreSource.js.map +1 -0
- package/dist/storage/sparql/PatternBuilder.d.ts +41 -0
- package/dist/storage/sparql/PatternBuilder.js +118 -0
- package/dist/storage/sparql/PatternBuilder.js.map +1 -0
- package/dist/storage/sparql/QueryOptimizer.d.ts +125 -0
- package/dist/storage/sparql/QueryOptimizer.js +363 -0
- package/dist/storage/sparql/QueryOptimizer.js.map +1 -0
- package/dist/storage/sparql/QuintEngine.d.ts +92 -0
- package/dist/storage/sparql/QuintEngine.js +150 -0
- package/dist/storage/sparql/QuintEngine.js.map +1 -0
- package/dist/storage/sparql/QuintQuerySource.d.ts +227 -0
- package/dist/storage/sparql/QuintQuerySource.js +918 -0
- package/dist/storage/sparql/QuintQuerySource.js.map +1 -0
- package/dist/storage/sparql/SimpleSparqlExecutor.d.ts +40 -0
- package/dist/storage/sparql/SimpleSparqlExecutor.js +131 -0
- package/dist/storage/sparql/SimpleSparqlExecutor.js.map +1 -0
- package/dist/storage/sparql/SubgraphQueryEngine.d.ts +74 -0
- package/dist/storage/sparql/SubgraphQueryEngine.js +248 -0
- package/dist/storage/sparql/SubgraphQueryEngine.js.map +1 -0
- package/dist/storage/sparql/SubgraphQueryEngine.jsonld +250 -0
- package/dist/storage/vector/PostgresVectorStore.d.ts +46 -0
- package/dist/storage/vector/PostgresVectorStore.js +291 -0
- package/dist/storage/vector/PostgresVectorStore.js.map +1 -0
- package/dist/storage/vector/PostgresVectorStore.jsonld +142 -0
- package/dist/storage/vector/SqliteVectorStore.d.ts +44 -0
- package/dist/storage/vector/SqliteVectorStore.js +282 -0
- package/dist/storage/vector/SqliteVectorStore.js.map +1 -0
- package/dist/storage/vector/SqliteVectorStore.jsonld +137 -0
- package/dist/storage/vector/VectorIndexingListener.d.ts +114 -0
- package/dist/storage/vector/VectorIndexingListener.js +351 -0
- package/dist/storage/vector/VectorIndexingListener.js.map +1 -0
- package/dist/storage/vector/VectorStore.d.ts +42 -0
- package/dist/storage/vector/VectorStore.js +50 -0
- package/dist/storage/vector/VectorStore.js.map +1 -0
- package/dist/storage/vector/VectorStore.jsonld +87 -0
- package/dist/storage/vector/VectorStoreInit.d.ts +28 -0
- package/dist/storage/vector/VectorStoreInit.js +104 -0
- package/dist/storage/vector/VectorStoreInit.js.map +1 -0
- package/dist/storage/vector/index.d.ts +5 -0
- package/dist/storage/vector/index.js +22 -0
- package/dist/storage/vector/index.js.map +1 -0
- package/dist/storage/vector/types.d.ts +39 -0
- package/dist/storage/vector/types.js +8 -0
- package/dist/storage/vector/types.js.map +1 -0
- package/dist/subdomain/SubdomainClient.d.ts +156 -0
- package/dist/subdomain/SubdomainClient.js +220 -0
- package/dist/subdomain/SubdomainClient.js.map +1 -0
- package/dist/subdomain/SubdomainService.d.ts +114 -0
- package/dist/subdomain/SubdomainService.js +212 -0
- package/dist/subdomain/SubdomainService.js.map +1 -0
- package/dist/subdomain/SubdomainService.jsonld +261 -0
- package/dist/subdomain/index.d.ts +2 -0
- package/dist/subdomain/index.js +9 -0
- package/dist/subdomain/index.js.map +1 -0
- package/dist/supervisor/Supervisor.d.ts +20 -0
- package/dist/supervisor/Supervisor.js +174 -0
- package/dist/supervisor/Supervisor.js.map +1 -0
- package/dist/supervisor/index.d.ts +2 -0
- package/dist/supervisor/index.js +6 -0
- package/dist/supervisor/index.js.map +1 -0
- package/dist/supervisor/types.d.ts +19 -0
- package/dist/supervisor/types.js +3 -0
- package/dist/supervisor/types.js.map +1 -0
- package/dist/task/DrizzleTaskQueue.d.ts +60 -0
- package/dist/task/DrizzleTaskQueue.js +171 -0
- package/dist/task/DrizzleTaskQueue.js.map +1 -0
- package/dist/task/TaskExecutor.d.ts +82 -0
- package/dist/task/TaskExecutor.js +198 -0
- package/dist/task/TaskExecutor.js.map +1 -0
- package/dist/task/index.d.ts +10 -0
- package/dist/task/index.js +20 -0
- package/dist/task/index.js.map +1 -0
- package/dist/task/schema.d.ts +53 -0
- package/dist/task/schema.js +71 -0
- package/dist/task/schema.js.map +1 -0
- package/dist/task/types.d.ts +186 -0
- package/dist/task/types.js +12 -0
- package/dist/task/types.js.map +1 -0
- package/dist/terminal/AclPermissionService.d.ts +28 -0
- package/dist/terminal/AclPermissionService.js +141 -0
- package/dist/terminal/AclPermissionService.js.map +1 -0
- package/dist/terminal/BubblewrapSandbox.d.ts +51 -0
- package/dist/terminal/BubblewrapSandbox.js +147 -0
- package/dist/terminal/BubblewrapSandbox.js.map +1 -0
- package/dist/terminal/TerminalSession.d.ts +33 -0
- package/dist/terminal/TerminalSession.js +164 -0
- package/dist/terminal/TerminalSession.js.map +1 -0
- package/dist/terminal/TerminalSessionManager.d.ts +69 -0
- package/dist/terminal/TerminalSessionManager.js +196 -0
- package/dist/terminal/TerminalSessionManager.js.map +1 -0
- package/dist/terminal/index.d.ts +5 -0
- package/dist/terminal/index.js +22 -0
- package/dist/terminal/index.js.map +1 -0
- package/dist/terminal/sandbox/BubblewrapSandbox.d.ts +8 -0
- package/dist/terminal/sandbox/BubblewrapSandbox.js +105 -0
- package/dist/terminal/sandbox/BubblewrapSandbox.js.map +1 -0
- package/dist/terminal/sandbox/MacOSSandbox.d.ts +19 -0
- package/dist/terminal/sandbox/MacOSSandbox.js +120 -0
- package/dist/terminal/sandbox/MacOSSandbox.js.map +1 -0
- package/dist/terminal/sandbox/index.d.ts +29 -0
- package/dist/terminal/sandbox/index.js +113 -0
- package/dist/terminal/sandbox/index.js.map +1 -0
- package/dist/terminal/sandbox/types.d.ts +38 -0
- package/dist/terminal/sandbox/types.js +3 -0
- package/dist/terminal/sandbox/types.js.map +1 -0
- package/dist/terminal/types.d.ts +80 -0
- package/dist/terminal/types.js +16 -0
- package/dist/terminal/types.js.map +1 -0
- package/dist/tunnel/CloudflareTunnelProvider.d.ts +120 -0
- package/dist/tunnel/CloudflareTunnelProvider.js +376 -0
- package/dist/tunnel/CloudflareTunnelProvider.js.map +1 -0
- package/dist/tunnel/CloudflareTunnelProvider.jsonld +204 -0
- package/dist/tunnel/LocalTunnelProvider.d.ts +85 -0
- package/dist/tunnel/LocalTunnelProvider.js +295 -0
- package/dist/tunnel/LocalTunnelProvider.js.map +1 -0
- package/dist/tunnel/LocalTunnelProvider.jsonld +142 -0
- package/dist/tunnel/SakuraFrpTunnelProvider.d.ts +59 -0
- package/dist/tunnel/SakuraFrpTunnelProvider.js +207 -0
- package/dist/tunnel/SakuraFrpTunnelProvider.js.map +1 -0
- package/dist/tunnel/TunnelProvider.d.ts +91 -0
- package/dist/tunnel/TunnelProvider.js +10 -0
- package/dist/tunnel/TunnelProvider.js.map +1 -0
- package/dist/tunnel/TunnelProvider.jsonld +144 -0
- package/dist/tunnel/index.d.ts +3 -0
- package/dist/tunnel/index.js +8 -0
- package/dist/tunnel/index.js.map +1 -0
- package/dist/util/LockContext.d.ts +3 -0
- package/dist/util/LockContext.js +6 -0
- package/dist/util/LockContext.js.map +1 -0
- package/dist/util/ResourceStoreFetch.d.ts +11 -0
- package/dist/util/ResourceStoreFetch.js +147 -0
- package/dist/util/ResourceStoreFetch.js.map +1 -0
- package/dist/util/database/DatabaseMaintenance.d.ts +23 -0
- package/dist/util/database/DatabaseMaintenance.js +82 -0
- package/dist/util/database/DatabaseMaintenance.js.map +1 -0
- package/dist/util/identifiers/ClusterIdentifierStrategy.d.ts +23 -0
- package/dist/util/identifiers/ClusterIdentifierStrategy.js +73 -0
- package/dist/util/identifiers/ClusterIdentifierStrategy.js.map +1 -0
- package/dist/util/identifiers/ClusterIdentifierStrategy.jsonld +90 -0
- package/dist/util/identifiers/MultiDomainIdentifierStrategy.d.ts +40 -0
- package/dist/util/identifiers/MultiDomainIdentifierStrategy.js +73 -0
- package/dist/util/identifiers/MultiDomainIdentifierStrategy.js.map +1 -0
- package/dist/util/identifiers/MultiDomainIdentifierStrategy.jsonld +90 -0
- package/dist/util/identifiers/PathBasedPodIdentifierStrategy.d.ts +78 -0
- package/dist/util/identifiers/PathBasedPodIdentifierStrategy.js +182 -0
- package/dist/util/identifiers/PathBasedPodIdentifierStrategy.js.map +1 -0
- package/dist/util/identifiers/PathBasedPodIdentifierStrategy.jsonld +88 -0
- package/dist/util/identifiers/SubdomainPodIdentifierStrategy.d.ts +68 -0
- package/dist/util/identifiers/SubdomainPodIdentifierStrategy.js +149 -0
- package/dist/util/identifiers/SubdomainPodIdentifierStrategy.js.map +1 -0
- package/dist/util/identifiers/SubdomainPodIdentifierStrategy.jsonld +84 -0
- package/dist/util/locking/DebugRedisLocker.d.ts +8 -0
- package/dist/util/locking/DebugRedisLocker.js +33 -0
- package/dist/util/locking/DebugRedisLocker.js.map +1 -0
- package/dist/util/logger.d.ts +13 -0
- package/dist/util/logger.js +36 -0
- package/dist/util/logger.js.map +1 -0
- package/dist/util/stream/BandwidthThrottleTransform.d.ts +8 -0
- package/dist/util/stream/BandwidthThrottleTransform.js +55 -0
- package/dist/util/stream/BandwidthThrottleTransform.js.map +1 -0
- package/dist/vocab/external.d.ts +216 -0
- package/dist/vocab/external.js +276 -0
- package/dist/vocab/external.js.map +1 -0
- package/dist/vocab/index.d.ts +26 -0
- package/dist/vocab/index.js +46 -0
- package/dist/vocab/index.js.map +1 -0
- package/dist/vocab/udfs.d.ts +184 -0
- package/dist/vocab/udfs.js +217 -0
- package/dist/vocab/udfs.js.map +1 -0
- package/dist/webrtc/WebRTCClient.d.ts +109 -0
- package/dist/webrtc/WebRTCClient.js +344 -0
- package/dist/webrtc/WebRTCClient.js.map +1 -0
- package/dist/webrtc/WebRTCPeerManager.d.ts +112 -0
- package/dist/webrtc/WebRTCPeerManager.js +289 -0
- package/dist/webrtc/WebRTCPeerManager.js.map +1 -0
- package/dist/webrtc/WeriftPeerConnectionFactory.d.ts +13 -0
- package/dist/webrtc/WeriftPeerConnectionFactory.js +255 -0
- package/dist/webrtc/WeriftPeerConnectionFactory.js.map +1 -0
- package/dist/webrtc/index.d.ts +13 -0
- package/dist/webrtc/index.js +30 -0
- package/dist/webrtc/index.js.map +1 -0
- package/dist/webrtc/types.d.ts +169 -0
- package/dist/webrtc/types.js +6 -0
- package/dist/webrtc/types.js.map +1 -0
- package/dist/xpod.single.cjs +826 -0
- package/dist/xpod.single.cjs.map +7 -0
- package/package.json +173 -0
- package/static/app/assets/index.css +1 -0
- package/static/app/assets/main.js +11 -0
- package/static/app/auth.html +21 -0
- package/static/app/index.html +14 -0
- package/static/app/vite.svg +1 -0
- package/static/dashboard/assets/dashboard-G96F8267.js +52 -0
- package/static/dashboard/assets/dashboard-PJyGDppf.css +1 -0
- package/static/dashboard/auth.html +21 -0
- package/static/dashboard/index.html +13 -0
- package/static/dashboard/vite.svg +1 -0
- package/static/landing/index.html +165 -0
- package/templates/identity/index.html.ejs +12 -0
- package/templates/identity/login.html.ejs +49 -0
- package/templates/identity/oidc/consent.html.ejs +103 -0
- package/templates/identity/password/forgot.html.ejs +49 -0
- package/templates/identity/password/login.html.ejs +58 -0
- package/templates/identity/password/register.html.ejs +65 -0
- package/templates/main.html.ejs +1 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"QueryOptimizer.js","sourceRoot":"","sources":["../../../src/storage/sparql/QueryOptimizer.ts"],"names":[],"mappings":"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","sourcesContent":["/**\n * QueryOptimizer - 统一的查询优化层\n * \n * 职责:\n * 1. 分析 SPARQL algebra,识别可优化的模式\n * 2. 选择最优执行策略\n * 3. 执行优化后的查询\n * \n * 支持的优化:\n * - OPTIONAL 优化:批量获取属性,避免指数级 LEFT JOIN\n * - Compound Query:多 pattern SQL JOIN,避免 JS 层 hash join\n * - FILTER 下推:条件下推到 SQL 层\n * \n * 设计原则:\n * - 所有优化逻辑集中在此类\n * - 对外暴露统一的接口\n * - 优化失败时优雅降级到 Comunica 默认行为\n */\n\nimport type { Bindings, Term, Variable } from '@rdfjs/types';\nimport type { Algebra } from 'sparqlalgebrajs';\nimport { DataFactory } from 'rdf-data-factory';\n\nimport type { QuintStore, AttributeMap } from '../quint/types';\n\nconst dataFactory = new DataFactory();\n\n/**\n * OPTIONAL 优化分析结果\n */\nexport interface OptionalAnalysis {\n /** 是否可优化 */\n canOptimize: boolean;\n /** 核心查询(不含 OPTIONAL) */\n coreOperation?: Algebra.Operation;\n /** subject 变量名 */\n subjectVar?: string;\n /** 要获取的属性 predicates */\n optionalPredicates?: string[];\n /** 各 OPTIONAL 的变量名 */\n optionalVars?: Map<string, string>; // predicate -> variable\n /** 不能优化的原因 */\n reason?: string;\n}\n\n/**\n * Compound Query 优化分析结果\n */\nexport interface CompoundAnalysis {\n /** 是否可优化 */\n canOptimize: boolean;\n /** 所有 patterns */\n patterns?: Algebra.Pattern[];\n /** JOIN 变量名 */\n joinVar?: string;\n /** JOIN 字段 */\n joinField?: 'subject' | 'predicate' | 'object' | 'graph';\n /** 不能优化的原因 */\n reason?: string;\n}\n\n/**\n * 查询优化结果\n */\nexport interface OptimizationResult {\n /** 优化类型 */\n type: 'optional' | 'compound' | 'none';\n /** 分析结果 */\n analysis: OptionalAnalysis | CompoundAnalysis | null;\n}\n\nexport interface QueryOptimizerOptions {\n debug?: boolean;\n bindingsFactory: any;\n}\n\n/**\n * QueryOptimizer - 查询优化器\n */\nexport class QueryOptimizer {\n private readonly store: QuintStore;\n private readonly debug: boolean;\n private readonly bindingsFactory: any;\n\n constructor(store: QuintStore, options: QueryOptimizerOptions) {\n this.store = store;\n this.debug = options.debug ?? false;\n this.bindingsFactory = options.bindingsFactory;\n }\n\n // ============================================================\n // 公共接口\n // ============================================================\n\n /**\n * 分析查询,确定最佳优化策略\n */\n analyzeQuery(algebra: Algebra.Operation): OptimizationResult {\n // 先检查 OPTIONAL 优化(优先级最高)\n if (this.store.getAttributes) {\n const optionalAnalysis = this.analyzeOptional(algebra);\n if (optionalAnalysis.canOptimize) {\n return { type: 'optional', analysis: optionalAnalysis };\n }\n }\n\n // 检查 Compound Query 优化\n if (this.store.getCompound) {\n const compoundAnalysis = this.analyzeCompound(algebra);\n if (compoundAnalysis.canOptimize) {\n return { type: 'compound', analysis: compoundAnalysis };\n }\n }\n\n return { type: 'none', analysis: null };\n }\n\n /**\n * 执行 OPTIONAL 优化查询\n * \n * @param analysis OPTIONAL 分析结果\n * @param coreBindings 核心查询的绑定结果\n * @param orderOptions 排序选项(可选)\n */\n async executeOptionalOptimized(\n analysis: OptionalAnalysis,\n coreBindings: Bindings[],\n orderOptions?: { varName: string; reverse?: boolean }\n ): Promise<Bindings[]> {\n const { subjectVar, optionalPredicates, optionalVars } = analysis;\n \n if (!subjectVar || !optionalPredicates || !optionalVars) {\n throw new Error('Invalid OptionalAnalysis');\n }\n\n if (coreBindings.length === 0) {\n return [];\n }\n\n // 提取所有 subject 值\n const subjects: string[] = [];\n for (const binding of coreBindings) {\n const subjectTerm = binding.get(dataFactory.variable(subjectVar));\n if (subjectTerm && subjectTerm.termType === 'NamedNode') {\n subjects.push(subjectTerm.value);\n }\n }\n\n if (this.debug) {\n console.log(`[QueryOptimizer] OPTIONAL: ${coreBindings.length} bindings, ${subjects.length} subjects`);\n }\n\n // 批量获取属性\n const attributeMap = await this.store.getAttributes!(\n subjects,\n optionalPredicates,\n undefined // TODO: 支持 graph 过滤\n );\n\n if (this.debug) {\n console.log(`[QueryOptimizer] getAttributes returned data for ${attributeMap.size} subjects`);\n }\n\n // 组装结果\n let results = this.assembleOptionalResults(coreBindings, attributeMap, subjectVar, optionalVars);\n\n // 应用排序\n if (orderOptions?.varName && results.length > 1) {\n results = this.sortBindings(results, orderOptions.varName, orderOptions.reverse ?? false);\n if (this.debug) {\n console.log(`[QueryOptimizer] Applied ORDER BY ?${orderOptions.varName} ${orderOptions.reverse ? 'DESC' : 'ASC'}`);\n }\n }\n\n return results;\n }\n\n /**\n * 对 Bindings 数组按指定变量排序\n */\n private sortBindings(bindings: Bindings[], varName: string, reverse: boolean): Bindings[] {\n const orderVar = dataFactory.variable(varName);\n \n return [...bindings].sort((a, b) => {\n const aVal = a.get(orderVar);\n const bVal = b.get(orderVar);\n \n // null/undefined 值排在最后\n if (!aVal && !bVal) return 0;\n if (!aVal) return 1;\n if (!bVal) return -1;\n \n // 比较值\n let cmp: number;\n if (aVal.termType === 'Literal' && bVal.termType === 'Literal') {\n // 对于字面量,先尝试数值比较\n const aNum = parseFloat(aVal.value);\n const bNum = parseFloat(bVal.value);\n if (!isNaN(aNum) && !isNaN(bNum)) {\n cmp = aNum - bNum;\n } else {\n // 字符串比较\n cmp = aVal.value.localeCompare(bVal.value);\n }\n } else {\n // 其他类型用字符串比较\n cmp = aVal.value.localeCompare(bVal.value);\n }\n \n return reverse ? -cmp : cmp;\n });\n }\n\n // ============================================================\n // OPTIONAL 优化\n // ============================================================\n\n /**\n * 分析查询是否可以进行 OPTIONAL 优化\n * \n * 可优化条件:\n * 1. 有核心条件(BGP 或带 FILTER 的 BGP)\n * 2. 有 OPTIONAL(>= 1 个)\n * 3. 所有 OPTIONAL 都是简单的属性获取:?s <pred> ?var\n * 4. 所有 OPTIONAL 使用同一个 subject 变量\n * 5. OPTIONAL 内部没有额外的 FILTER\n */\n analyzeOptional(algebra: Algebra.Operation): OptionalAnalysis {\n // 从 project -> slice -> orderby -> ... 找到实际的查询结构\n let current = algebra;\n while (current.type === 'project' || current.type === 'slice' || \n current.type === 'distinct' || current.type === 'reduced' ||\n current.type === 'orderby') {\n current = (current as any).input;\n }\n\n // 收集所有 leftjoin(OPTIONAL)和核心操作\n const leftJoins: Algebra.LeftJoin[] = [];\n let coreOp: Algebra.Operation | null = null;\n\n const collectLeftJoins = (op: Algebra.Operation): void => {\n if (op.type === 'leftjoin') {\n const lj = op as Algebra.LeftJoin;\n leftJoins.push(lj);\n collectLeftJoins(lj.input[0]);\n } else {\n coreOp = op;\n }\n };\n\n collectLeftJoins(current);\n\n if (leftJoins.length < 1) {\n return { canOptimize: false, reason: 'No OPTIONAL found' };\n }\n\n if (!coreOp) {\n return { canOptimize: false, reason: 'No core operation found' };\n }\n\n // 分析核心操作获取 subject 变量\n const subjectVar = this.extractSubjectVariable(coreOp);\n if (!subjectVar) {\n return { canOptimize: false, reason: 'Cannot determine subject variable from core operation' };\n }\n\n // 分析所有 OPTIONAL\n const optionalPredicates: string[] = [];\n const optionalVars = new Map<string, string>();\n\n for (const lj of leftJoins) {\n // 检查是否有额外的 filter\n if ((lj as any).expression) {\n return { canOptimize: false, reason: 'OPTIONAL contains FILTER expression' };\n }\n\n const patternInfo = this.extractSimplePattern(lj.input[1]);\n if (!patternInfo) {\n return { canOptimize: false, reason: 'OPTIONAL is not a simple pattern' };\n }\n\n if (patternInfo.subjectVar !== subjectVar) {\n return { \n canOptimize: false, \n reason: `OPTIONAL subject ?${patternInfo.subjectVar} doesn't match core subject ?${subjectVar}` \n };\n }\n\n if (!patternInfo.predicate) {\n return { canOptimize: false, reason: 'OPTIONAL predicate must be a constant' };\n }\n\n optionalPredicates.push(patternInfo.predicate);\n if (patternInfo.objectVar) {\n optionalVars.set(patternInfo.predicate, patternInfo.objectVar);\n }\n }\n\n return {\n canOptimize: true,\n coreOperation: coreOp,\n subjectVar,\n optionalPredicates,\n optionalVars,\n };\n }\n\n // ============================================================\n // Compound Query 优化\n // ============================================================\n\n /**\n * 分析查询是否可以进行 Compound Query 优化\n */\n analyzeCompound(algebra: Algebra.Operation): CompoundAnalysis {\n // 从 project -> slice -> ... 找到实际的查询结构\n let current = algebra;\n while (current.type === 'project' || current.type === 'slice' || \n current.type === 'distinct' || current.type === 'reduced' ||\n current.type === 'filter') {\n current = (current as any).input;\n }\n\n // 检查是否是 BGP 或 JOIN\n let patterns: Algebra.Pattern[] = [];\n\n if (current.type === 'bgp') {\n const bgp = current as Algebra.Bgp;\n patterns = bgp.patterns as Algebra.Pattern[];\n } else if (current.type === 'join') {\n const join = current as Algebra.Join;\n patterns = this.extractPatternsFromJoin(join);\n }\n\n if (patterns.length < 2) {\n return { canOptimize: false, reason: 'Need at least 2 patterns for compound query' };\n }\n\n // 检查所有 pattern 是否共享同一个 subject 变量\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 return { canOptimize: false, reason: 'Patterns do not share the same subject variable' };\n }\n\n return {\n canOptimize: true,\n patterns,\n joinVar: uniqueSubjectVars[0]!,\n joinField: 'subject',\n };\n }\n\n // ============================================================\n // 辅助方法\n // ============================================================\n\n /**\n * 从核心操作提取 subject 变量\n */\n private extractSubjectVariable(op: Algebra.Operation): string | null {\n if (op.type === 'pattern') {\n const pattern = op as Algebra.Pattern;\n if (pattern.subject?.termType === 'Variable') {\n return pattern.subject.value;\n }\n } else if (op.type === 'bgp') {\n const bgp = op as Algebra.Bgp;\n if (bgp.patterns.length > 0) {\n const firstPattern = bgp.patterns[0] as Algebra.Pattern;\n if (firstPattern.subject?.termType === 'Variable') {\n return firstPattern.subject.value;\n }\n }\n } else if (op.type === 'filter') {\n return this.extractSubjectVariable((op as Algebra.Filter).input);\n } else if (op.type === 'join') {\n const join = op as Algebra.Join;\n if (join.input && join.input.length > 0) {\n return this.extractSubjectVariable(join.input[0]);\n }\n }\n return null;\n }\n\n /**\n * 从 OPTIONAL 的右操作数提取简单 pattern 信息\n */\n private extractSimplePattern(op: Algebra.Operation): {\n subjectVar: string;\n predicate: string | null;\n objectVar: string | null;\n } | null {\n if (op.type === 'pattern') {\n const pattern = op as Algebra.Pattern;\n if (pattern.subject?.termType !== 'Variable') {\n return null;\n }\n return {\n subjectVar: pattern.subject.value,\n predicate: pattern.predicate?.termType === 'NamedNode' ? pattern.predicate.value : null,\n objectVar: pattern.object?.termType === 'Variable' ? pattern.object.value : null,\n };\n } else if (op.type === 'bgp') {\n const bgp = op as Algebra.Bgp;\n if (bgp.patterns.length === 1) {\n return this.extractSimplePattern(bgp.patterns[0] as Algebra.Operation);\n }\n }\n return null;\n }\n\n /**\n * 从 JOIN 操作提取所有 patterns\n */\n private extractPatternsFromJoin(join: Algebra.Join): Algebra.Pattern[] {\n const patterns: Algebra.Pattern[] = [];\n \n for (const input of join.input) {\n if (input.type === 'pattern') {\n patterns.push(input as Algebra.Pattern);\n } else if (input.type === 'bgp') {\n patterns.push(...(input as Algebra.Bgp).patterns as Algebra.Pattern[]);\n } else if (input.type === 'join') {\n patterns.push(...this.extractPatternsFromJoin(input as Algebra.Join));\n }\n }\n\n return patterns;\n }\n\n /**\n * 组装 OPTIONAL 优化结果\n */\n private assembleOptionalResults(\n coreBindings: Bindings[],\n attributeMap: AttributeMap,\n subjectVar: string,\n optionalVars: Map<string, string>\n ): Bindings[] {\n const results: Bindings[] = [];\n \n for (const coreBinding of coreBindings) {\n const subjectTerm = coreBinding.get(dataFactory.variable(subjectVar));\n if (!subjectTerm || subjectTerm.termType !== 'NamedNode') {\n results.push(coreBinding);\n continue;\n }\n\n const subjectAttrs = attributeMap.get(subjectTerm.value);\n \n // 创建包含所有 OPTIONAL 变量的新 binding\n const entries: [Variable, Term][] = [];\n \n // 复制核心 binding 的所有变量\n for (const v of coreBinding.keys()) {\n const term = coreBinding.get(v);\n if (term) {\n entries.push([v as Variable, term]);\n }\n }\n\n // 添加 OPTIONAL 变量\n for (const [predicate, varName] of optionalVars) {\n const values = subjectAttrs?.get(predicate);\n if (values && values.length > 0) {\n entries.push([dataFactory.variable(varName), values[0]]);\n }\n }\n\n results.push(this.bindingsFactory.bindings(entries));\n }\n\n return results;\n }\n}\n"]}
|
|
@@ -0,0 +1,92 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* QuintEngine - Configurable SPARQL engine backed by QuintStore
|
|
3
|
+
*
|
|
4
|
+
* Store type (SQLite/PostgreSQL) determined by endpoint scheme.
|
|
5
|
+
*
|
|
6
|
+
* Usage:
|
|
7
|
+
* ```json
|
|
8
|
+
* {
|
|
9
|
+
* "@type": "QuintEngine",
|
|
10
|
+
* "endpoint": "postgresql://user:pass@localhost/db"
|
|
11
|
+
* }
|
|
12
|
+
* ```
|
|
13
|
+
*/
|
|
14
|
+
import type { Bindings, ResultStream } from '@rdfjs/types';
|
|
15
|
+
import type { Quad } from '@rdfjs/types';
|
|
16
|
+
import type { QuintStore } from '../quint/types';
|
|
17
|
+
import { ComunicaQuintEngine, type QueryContext } from './ComunicaQuintEngine';
|
|
18
|
+
export interface QuintEngineArgs {
|
|
19
|
+
/**
|
|
20
|
+
* Connection string with scheme prefix:
|
|
21
|
+
* - SQLite: 'sqlite:/path/to/db' or 'sqlite::memory:'
|
|
22
|
+
* - PostgreSQL: 'postgresql://user:pass@host/db' or 'postgres://...'
|
|
23
|
+
*/
|
|
24
|
+
endpoint: string;
|
|
25
|
+
/**
|
|
26
|
+
* Enable debug logging
|
|
27
|
+
*/
|
|
28
|
+
debug?: boolean;
|
|
29
|
+
}
|
|
30
|
+
/**
|
|
31
|
+
* QuintEngine - Injectable SPARQL engine with configurable backend
|
|
32
|
+
*
|
|
33
|
+
* This class provides a unified interface for SPARQL queries backed by
|
|
34
|
+
* either SQLite or PostgreSQL QuintStore implementations.
|
|
35
|
+
*/
|
|
36
|
+
export declare class QuintEngine {
|
|
37
|
+
private readonly store;
|
|
38
|
+
private readonly engine;
|
|
39
|
+
private readonly storeType;
|
|
40
|
+
private isOpen;
|
|
41
|
+
constructor(args: QuintEngineArgs);
|
|
42
|
+
/**
|
|
43
|
+
* Parse endpoint string to extract store type and connection string
|
|
44
|
+
*
|
|
45
|
+
* Formats:
|
|
46
|
+
* - sqlite:/path/to/db -> SQLite with file path
|
|
47
|
+
* - sqlite::memory: -> SQLite in-memory
|
|
48
|
+
* - postgresql://user:pass@host/db -> PostgreSQL
|
|
49
|
+
* - postgres://user:pass@host/db -> PostgreSQL (alias)
|
|
50
|
+
*/
|
|
51
|
+
private parseEndpoint;
|
|
52
|
+
/**
|
|
53
|
+
* Open the underlying store connection
|
|
54
|
+
*/
|
|
55
|
+
open(): Promise<void>;
|
|
56
|
+
/**
|
|
57
|
+
* Close the store connection
|
|
58
|
+
*/
|
|
59
|
+
close(): Promise<void>;
|
|
60
|
+
/**
|
|
61
|
+
* Ensure store is open, auto-open if needed
|
|
62
|
+
*/
|
|
63
|
+
private ensureOpen;
|
|
64
|
+
/**
|
|
65
|
+
* Execute SELECT query
|
|
66
|
+
*/
|
|
67
|
+
queryBindings(query: string, context?: QueryContext): Promise<ResultStream<Bindings>>;
|
|
68
|
+
/**
|
|
69
|
+
* Execute ASK query
|
|
70
|
+
*/
|
|
71
|
+
queryBoolean(query: string, context?: QueryContext): Promise<boolean>;
|
|
72
|
+
/**
|
|
73
|
+
* Execute CONSTRUCT/DESCRIBE query
|
|
74
|
+
*/
|
|
75
|
+
queryQuads(query: string, context?: QueryContext): Promise<ResultStream<Quad>>;
|
|
76
|
+
/**
|
|
77
|
+
* Execute UPDATE query (INSERT/DELETE)
|
|
78
|
+
*/
|
|
79
|
+
queryVoid(query: string, context?: QueryContext): Promise<void>;
|
|
80
|
+
/**
|
|
81
|
+
* Get the underlying QuintStore for direct operations
|
|
82
|
+
*/
|
|
83
|
+
getStore(): QuintStore;
|
|
84
|
+
/**
|
|
85
|
+
* Get the underlying ComunicaQuintEngine
|
|
86
|
+
*/
|
|
87
|
+
getEngine(): ComunicaQuintEngine;
|
|
88
|
+
/**
|
|
89
|
+
* Get the store type
|
|
90
|
+
*/
|
|
91
|
+
getStoreType(): 'sqlite' | 'postgresql';
|
|
92
|
+
}
|
|
@@ -0,0 +1,150 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/**
|
|
3
|
+
* QuintEngine - Configurable SPARQL engine backed by QuintStore
|
|
4
|
+
*
|
|
5
|
+
* Store type (SQLite/PostgreSQL) determined by endpoint scheme.
|
|
6
|
+
*
|
|
7
|
+
* Usage:
|
|
8
|
+
* ```json
|
|
9
|
+
* {
|
|
10
|
+
* "@type": "QuintEngine",
|
|
11
|
+
* "endpoint": "postgresql://user:pass@localhost/db"
|
|
12
|
+
* }
|
|
13
|
+
* ```
|
|
14
|
+
*/
|
|
15
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
16
|
+
exports.QuintEngine = void 0;
|
|
17
|
+
const SqliteQuintStore_1 = require("../quint/SqliteQuintStore");
|
|
18
|
+
const PgQuintStore_1 = require("../quint/PgQuintStore");
|
|
19
|
+
const ComunicaQuintEngine_1 = require("./ComunicaQuintEngine");
|
|
20
|
+
/**
|
|
21
|
+
* QuintEngine - Injectable SPARQL engine with configurable backend
|
|
22
|
+
*
|
|
23
|
+
* This class provides a unified interface for SPARQL queries backed by
|
|
24
|
+
* either SQLite or PostgreSQL QuintStore implementations.
|
|
25
|
+
*/
|
|
26
|
+
class QuintEngine {
|
|
27
|
+
constructor(args) {
|
|
28
|
+
this.isOpen = false;
|
|
29
|
+
const { storeType, connectionString } = this.parseEndpoint(args.endpoint);
|
|
30
|
+
this.storeType = storeType;
|
|
31
|
+
// Create appropriate store based on scheme
|
|
32
|
+
if (storeType === 'postgresql') {
|
|
33
|
+
this.store = new PgQuintStore_1.PgQuintStore({
|
|
34
|
+
connectionString,
|
|
35
|
+
});
|
|
36
|
+
}
|
|
37
|
+
else {
|
|
38
|
+
this.store = new SqliteQuintStore_1.SqliteQuintStore({
|
|
39
|
+
path: connectionString,
|
|
40
|
+
});
|
|
41
|
+
}
|
|
42
|
+
this.engine = new ComunicaQuintEngine_1.ComunicaQuintEngine(this.store, {
|
|
43
|
+
debug: args.debug,
|
|
44
|
+
});
|
|
45
|
+
}
|
|
46
|
+
/**
|
|
47
|
+
* Parse endpoint string to extract store type and connection string
|
|
48
|
+
*
|
|
49
|
+
* Formats:
|
|
50
|
+
* - sqlite:/path/to/db -> SQLite with file path
|
|
51
|
+
* - sqlite::memory: -> SQLite in-memory
|
|
52
|
+
* - postgresql://user:pass@host/db -> PostgreSQL
|
|
53
|
+
* - postgres://user:pass@host/db -> PostgreSQL (alias)
|
|
54
|
+
*/
|
|
55
|
+
parseEndpoint(endpoint) {
|
|
56
|
+
if (endpoint.startsWith('sqlite:')) {
|
|
57
|
+
// sqlite:/path/to/db or sqlite::memory:
|
|
58
|
+
const path = endpoint.slice('sqlite:'.length);
|
|
59
|
+
return {
|
|
60
|
+
storeType: 'sqlite',
|
|
61
|
+
connectionString: path || ':memory:',
|
|
62
|
+
};
|
|
63
|
+
}
|
|
64
|
+
if (endpoint.startsWith('postgresql://') || endpoint.startsWith('postgres://')) {
|
|
65
|
+
return {
|
|
66
|
+
storeType: 'postgresql',
|
|
67
|
+
connectionString: endpoint,
|
|
68
|
+
};
|
|
69
|
+
}
|
|
70
|
+
// Default: treat as SQLite file path for backward compatibility
|
|
71
|
+
return {
|
|
72
|
+
storeType: 'sqlite',
|
|
73
|
+
connectionString: endpoint,
|
|
74
|
+
};
|
|
75
|
+
}
|
|
76
|
+
/**
|
|
77
|
+
* Open the underlying store connection
|
|
78
|
+
*/
|
|
79
|
+
async open() {
|
|
80
|
+
if (!this.isOpen) {
|
|
81
|
+
await this.store.open();
|
|
82
|
+
this.isOpen = true;
|
|
83
|
+
}
|
|
84
|
+
}
|
|
85
|
+
/**
|
|
86
|
+
* Close the store connection
|
|
87
|
+
*/
|
|
88
|
+
async close() {
|
|
89
|
+
if (this.isOpen) {
|
|
90
|
+
await this.store.close();
|
|
91
|
+
this.isOpen = false;
|
|
92
|
+
}
|
|
93
|
+
}
|
|
94
|
+
/**
|
|
95
|
+
* Ensure store is open, auto-open if needed
|
|
96
|
+
*/
|
|
97
|
+
async ensureOpen() {
|
|
98
|
+
if (!this.isOpen) {
|
|
99
|
+
await this.open();
|
|
100
|
+
}
|
|
101
|
+
}
|
|
102
|
+
/**
|
|
103
|
+
* Execute SELECT query
|
|
104
|
+
*/
|
|
105
|
+
async queryBindings(query, context) {
|
|
106
|
+
await this.ensureOpen();
|
|
107
|
+
return this.engine.queryBindings(query, context);
|
|
108
|
+
}
|
|
109
|
+
/**
|
|
110
|
+
* Execute ASK query
|
|
111
|
+
*/
|
|
112
|
+
async queryBoolean(query, context) {
|
|
113
|
+
await this.ensureOpen();
|
|
114
|
+
return this.engine.queryBoolean(query, context);
|
|
115
|
+
}
|
|
116
|
+
/**
|
|
117
|
+
* Execute CONSTRUCT/DESCRIBE query
|
|
118
|
+
*/
|
|
119
|
+
async queryQuads(query, context) {
|
|
120
|
+
await this.ensureOpen();
|
|
121
|
+
return this.engine.queryQuads(query, context);
|
|
122
|
+
}
|
|
123
|
+
/**
|
|
124
|
+
* Execute UPDATE query (INSERT/DELETE)
|
|
125
|
+
*/
|
|
126
|
+
async queryVoid(query, context) {
|
|
127
|
+
await this.ensureOpen();
|
|
128
|
+
return this.engine.queryVoid(query, context);
|
|
129
|
+
}
|
|
130
|
+
/**
|
|
131
|
+
* Get the underlying QuintStore for direct operations
|
|
132
|
+
*/
|
|
133
|
+
getStore() {
|
|
134
|
+
return this.store;
|
|
135
|
+
}
|
|
136
|
+
/**
|
|
137
|
+
* Get the underlying ComunicaQuintEngine
|
|
138
|
+
*/
|
|
139
|
+
getEngine() {
|
|
140
|
+
return this.engine;
|
|
141
|
+
}
|
|
142
|
+
/**
|
|
143
|
+
* Get the store type
|
|
144
|
+
*/
|
|
145
|
+
getStoreType() {
|
|
146
|
+
return this.storeType;
|
|
147
|
+
}
|
|
148
|
+
}
|
|
149
|
+
exports.QuintEngine = QuintEngine;
|
|
150
|
+
//# sourceMappingURL=QuintEngine.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"QuintEngine.js","sourceRoot":"","sources":["../../../src/storage/sparql/QuintEngine.ts"],"names":[],"mappings":"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","sourcesContent":["/**\n * QuintEngine - Configurable SPARQL engine backed by QuintStore\n * \n * Store type (SQLite/PostgreSQL) determined by endpoint scheme.\n * \n * Usage:\n * ```json\n * {\n * \"@type\": \"QuintEngine\",\n * \"endpoint\": \"postgresql://user:pass@localhost/db\"\n * }\n * ```\n */\n\nimport type { Bindings, ResultStream } from '@rdfjs/types';\nimport type { Quad } from '@rdfjs/types';\n\nimport type { QuintStore } from '../quint/types';\nimport { SqliteQuintStore } from '../quint/SqliteQuintStore';\nimport { PgQuintStore } from '../quint/PgQuintStore';\nimport { ComunicaQuintEngine, type QueryContext } from './ComunicaQuintEngine';\n\nexport interface QuintEngineArgs {\n /**\n * Connection string with scheme prefix:\n * - SQLite: 'sqlite:/path/to/db' or 'sqlite::memory:'\n * - PostgreSQL: 'postgresql://user:pass@host/db' or 'postgres://...'\n */\n endpoint: string;\n \n /**\n * Enable debug logging\n */\n debug?: boolean;\n}\n\n/**\n * QuintEngine - Injectable SPARQL engine with configurable backend\n * \n * This class provides a unified interface for SPARQL queries backed by\n * either SQLite or PostgreSQL QuintStore implementations.\n */\nexport class QuintEngine {\n private readonly store: QuintStore;\n private readonly engine: ComunicaQuintEngine;\n private readonly storeType: 'sqlite' | 'postgresql';\n private isOpen = false;\n\n public constructor(args: QuintEngineArgs) {\n const { storeType, connectionString } = this.parseEndpoint(args.endpoint);\n this.storeType = storeType;\n \n // Create appropriate store based on scheme\n if (storeType === 'postgresql') {\n this.store = new PgQuintStore({\n connectionString,\n });\n } else {\n this.store = new SqliteQuintStore({\n path: connectionString,\n });\n }\n \n this.engine = new ComunicaQuintEngine(this.store, {\n debug: args.debug,\n });\n }\n\n /**\n * Parse endpoint string to extract store type and connection string\n * \n * Formats:\n * - sqlite:/path/to/db -> SQLite with file path\n * - sqlite::memory: -> SQLite in-memory\n * - postgresql://user:pass@host/db -> PostgreSQL\n * - postgres://user:pass@host/db -> PostgreSQL (alias)\n */\n private parseEndpoint(endpoint: string): { storeType: 'sqlite' | 'postgresql'; connectionString: string } {\n if (endpoint.startsWith('sqlite:')) {\n // sqlite:/path/to/db or sqlite::memory:\n const path = endpoint.slice('sqlite:'.length);\n return { \n storeType: 'sqlite', \n connectionString: path || ':memory:',\n };\n }\n \n if (endpoint.startsWith('postgresql://') || endpoint.startsWith('postgres://')) {\n return { \n storeType: 'postgresql', \n connectionString: endpoint,\n };\n }\n \n // Default: treat as SQLite file path for backward compatibility\n return { \n storeType: 'sqlite', \n connectionString: endpoint,\n };\n }\n\n /**\n * Open the underlying store connection\n */\n public async open(): Promise<void> {\n if (!this.isOpen) {\n await this.store.open();\n this.isOpen = true;\n }\n }\n\n /**\n * Close the store connection\n */\n public async close(): Promise<void> {\n if (this.isOpen) {\n await this.store.close();\n this.isOpen = false;\n }\n }\n\n /**\n * Ensure store is open, auto-open if needed\n */\n private async ensureOpen(): Promise<void> {\n if (!this.isOpen) {\n await this.open();\n }\n }\n\n /**\n * Execute SELECT query\n */\n public async queryBindings(query: string, context?: QueryContext): Promise<ResultStream<Bindings>> {\n await this.ensureOpen();\n return this.engine.queryBindings(query, context);\n }\n\n /**\n * Execute ASK query\n */\n public async queryBoolean(query: string, context?: QueryContext): Promise<boolean> {\n await this.ensureOpen();\n return this.engine.queryBoolean(query, context);\n }\n\n /**\n * Execute CONSTRUCT/DESCRIBE query\n */\n public async queryQuads(query: string, context?: QueryContext): Promise<ResultStream<Quad>> {\n await this.ensureOpen();\n return this.engine.queryQuads(query, context);\n }\n\n /**\n * Execute UPDATE query (INSERT/DELETE)\n */\n public async queryVoid(query: string, context?: QueryContext): Promise<void> {\n await this.ensureOpen();\n return this.engine.queryVoid(query, context);\n }\n\n /**\n * Get the underlying QuintStore for direct operations\n */\n public getStore(): QuintStore {\n return this.store;\n }\n\n /**\n * Get the underlying ComunicaQuintEngine\n */\n public getEngine(): ComunicaQuintEngine {\n return this.engine;\n }\n\n /**\n * Get the store type\n */\n public getStoreType(): 'sqlite' | 'postgresql' {\n return this.storeType;\n }\n}\n"]}
|
|
@@ -0,0 +1,227 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* QuintQuerySource - IQuerySource implementation for QuintStore
|
|
3
|
+
*
|
|
4
|
+
* This implements Comunica's IQuerySource interface to enable proper FILTER pushdown.
|
|
5
|
+
* Unlike RDF.Store.match() which only receives 4 terms, IQuerySource.queryBindings()
|
|
6
|
+
* receives the full SPARQL algebra including FILTER expressions.
|
|
7
|
+
*
|
|
8
|
+
* Design:
|
|
9
|
+
* - Delegates filter extraction to FilterPushdownExtractor
|
|
10
|
+
* - Delegates pattern building to PatternBuilder
|
|
11
|
+
* - Delegates in-memory evaluation to ExpressionEvaluator
|
|
12
|
+
* - Coordinates these components to execute queries efficiently
|
|
13
|
+
*/
|
|
14
|
+
import type { Quad, Variable, Bindings } from '@rdfjs/types';
|
|
15
|
+
import type { AsyncIterator } from 'asynciterator';
|
|
16
|
+
import { Algebra } from 'sparqlalgebrajs';
|
|
17
|
+
import type { QuintStore, TermName } from '../quint/types';
|
|
18
|
+
import type { SecurityFilters } from './ComunicaQuintEngine';
|
|
19
|
+
export interface IActionContext {
|
|
20
|
+
get<V>(key: {
|
|
21
|
+
name: string;
|
|
22
|
+
}): V | undefined;
|
|
23
|
+
getSafe<V>(key: {
|
|
24
|
+
name: string;
|
|
25
|
+
}): V;
|
|
26
|
+
has(key: {
|
|
27
|
+
name: string;
|
|
28
|
+
}): boolean;
|
|
29
|
+
}
|
|
30
|
+
export interface FragmentSelectorShape {
|
|
31
|
+
type: 'operation' | 'conjunction' | 'disjunction' | 'negation' | 'arity';
|
|
32
|
+
operation?: {
|
|
33
|
+
operationType: 'type' | 'pattern' | 'wildcard';
|
|
34
|
+
type?: string;
|
|
35
|
+
pattern?: Algebra.Operation;
|
|
36
|
+
};
|
|
37
|
+
children?: FragmentSelectorShape[];
|
|
38
|
+
child?: FragmentSelectorShape;
|
|
39
|
+
variablesOptional?: Variable[];
|
|
40
|
+
joinBindings?: true;
|
|
41
|
+
filterBindings?: true;
|
|
42
|
+
min?: number;
|
|
43
|
+
max?: number;
|
|
44
|
+
}
|
|
45
|
+
export interface BindingsStream extends AsyncIterator<Bindings> {
|
|
46
|
+
}
|
|
47
|
+
export interface IQueryBindingsOptions {
|
|
48
|
+
joinBindings?: {
|
|
49
|
+
bindings: BindingsStream;
|
|
50
|
+
metadata: unknown;
|
|
51
|
+
};
|
|
52
|
+
filterBindings?: {
|
|
53
|
+
bindings: BindingsStream;
|
|
54
|
+
metadata: unknown;
|
|
55
|
+
};
|
|
56
|
+
}
|
|
57
|
+
export interface MetadataValidationState {
|
|
58
|
+
}
|
|
59
|
+
/**
|
|
60
|
+
* IQuerySource interface compatible with Comunica
|
|
61
|
+
*/
|
|
62
|
+
export interface IQuerySource {
|
|
63
|
+
referenceValue: unknown;
|
|
64
|
+
getSelectorShape(context: IActionContext): Promise<FragmentSelectorShape>;
|
|
65
|
+
queryBindings(operation: Algebra.Operation, context: IActionContext, options?: IQueryBindingsOptions): BindingsStream;
|
|
66
|
+
queryQuads(operation: Algebra.Operation, context: IActionContext): AsyncIterator<Quad>;
|
|
67
|
+
queryBoolean(operation: Algebra.Ask, context: IActionContext): Promise<boolean>;
|
|
68
|
+
queryVoid(operation: Algebra.Update, context: IActionContext): Promise<void>;
|
|
69
|
+
toString(): string;
|
|
70
|
+
}
|
|
71
|
+
interface OptimizeParams {
|
|
72
|
+
limit?: number;
|
|
73
|
+
offset?: number;
|
|
74
|
+
order?: TermName[];
|
|
75
|
+
/** 原始 ORDER BY 变量名,用于分析绑定位置 */
|
|
76
|
+
orderVarName?: string;
|
|
77
|
+
reverse?: boolean;
|
|
78
|
+
}
|
|
79
|
+
/**
|
|
80
|
+
* QuintQuerySource implements IQuerySource for QuintStore
|
|
81
|
+
*
|
|
82
|
+
* Key features:
|
|
83
|
+
* 1. Declares support for FILTER operations via getSelectorShape()
|
|
84
|
+
* 2. Receives full SPARQL algebra in queryBindings() including FILTERs
|
|
85
|
+
* 3. Extracts filter conditions and pushes them down to QuintStore
|
|
86
|
+
* 4. Applies security filters (ACL) unconditionally
|
|
87
|
+
* 5. Tree-based evaluation for remaining non-pushdownable expressions
|
|
88
|
+
*/
|
|
89
|
+
export declare class QuintQuerySource implements IQuerySource {
|
|
90
|
+
readonly referenceValue: unknown;
|
|
91
|
+
private readonly store;
|
|
92
|
+
private readonly debug;
|
|
93
|
+
private readonly bindingsFactory;
|
|
94
|
+
private readonly getSecurityFilters;
|
|
95
|
+
private readonly getOptimizeParams;
|
|
96
|
+
private readonly getFilterExpression;
|
|
97
|
+
private readonly filterExtractor;
|
|
98
|
+
private readonly patternBuilder;
|
|
99
|
+
private readonly expressionEvaluator;
|
|
100
|
+
constructor(store: QuintStore, options: {
|
|
101
|
+
debug?: boolean;
|
|
102
|
+
bindingsFactory: any;
|
|
103
|
+
getSecurityFilters: () => SecurityFilters | undefined;
|
|
104
|
+
getOptimizeParams: () => OptimizeParams | null;
|
|
105
|
+
getFilterExpression?: (varName: string) => Algebra.Expression | undefined;
|
|
106
|
+
});
|
|
107
|
+
/**
|
|
108
|
+
* Declare the operations this source supports
|
|
109
|
+
*
|
|
110
|
+
* We support:
|
|
111
|
+
* - Basic quad patterns (for simple queries)
|
|
112
|
+
* - FILTER operations (for filter pushdown)
|
|
113
|
+
* - BGP operations (for multi-pattern queries)
|
|
114
|
+
* - joinBindings: allows Comunica to push JOIN operations down to us
|
|
115
|
+
*
|
|
116
|
+
* The joinBindings support enables ActorRdfJoinMultiBindSource to push
|
|
117
|
+
* multiple patterns to us efficiently, using SQL JOINs instead of
|
|
118
|
+
* Comunica's nested loop approach.
|
|
119
|
+
*/
|
|
120
|
+
getSelectorShape(_context: IActionContext): Promise<FragmentSelectorShape>;
|
|
121
|
+
/**
|
|
122
|
+
* Query bindings - main entry point for SPARQL queries
|
|
123
|
+
*
|
|
124
|
+
* When Comunica's ActorRdfJoinMultiBindSource selects us for a join operation,
|
|
125
|
+
* it passes options.joinBindings containing bindings from the first pattern.
|
|
126
|
+
* We need to use these bindings to filter our query results efficiently.
|
|
127
|
+
*/
|
|
128
|
+
queryBindings(operation: Algebra.Operation, _context: IActionContext, options?: IQueryBindingsOptions): BindingsStream;
|
|
129
|
+
/**
|
|
130
|
+
* Execute query and return bindings
|
|
131
|
+
*
|
|
132
|
+
* If options.joinBindings is provided, we need to:
|
|
133
|
+
* 1. Collect bindings from the stream (these are from the first pattern in the JOIN)
|
|
134
|
+
* 2. Extract variable values that overlap with our patterns
|
|
135
|
+
* 3. Use those values as IN conditions in our query
|
|
136
|
+
* 4. JOIN the results with the incoming bindings
|
|
137
|
+
*/
|
|
138
|
+
private executeQuery;
|
|
139
|
+
/**
|
|
140
|
+
* Execute a bind join: use incoming bindings to filter our query
|
|
141
|
+
*
|
|
142
|
+
* This is called when Comunica's ActorRdfJoinMultiBindSource pushes bindings to us.
|
|
143
|
+
* We use SQL IN clause to efficiently query only the rows matching the incoming bindings.
|
|
144
|
+
*/
|
|
145
|
+
private executeBindJoin;
|
|
146
|
+
/**
|
|
147
|
+
* Execute bind join for a single pattern using IN filter
|
|
148
|
+
*/
|
|
149
|
+
private executeBindJoinSimple;
|
|
150
|
+
/**
|
|
151
|
+
* Execute bind join for multiple patterns using compound query
|
|
152
|
+
*/
|
|
153
|
+
private executeBindJoinCompound;
|
|
154
|
+
/**
|
|
155
|
+
* Hash join two binding sets on a common variable
|
|
156
|
+
*/
|
|
157
|
+
private hashJoin;
|
|
158
|
+
/**
|
|
159
|
+
* Merge two bindings, returning null if they conflict
|
|
160
|
+
*/
|
|
161
|
+
private mergeBindings;
|
|
162
|
+
/**
|
|
163
|
+
* Cartesian product of two binding sets
|
|
164
|
+
*/
|
|
165
|
+
private cartesianJoin;
|
|
166
|
+
/**
|
|
167
|
+
* Execute OR branches with union semantics
|
|
168
|
+
*/
|
|
169
|
+
private executeOrBranches;
|
|
170
|
+
/**
|
|
171
|
+
* Try to execute a compound query for multiple patterns joined by same subject
|
|
172
|
+
* Returns null if compound query is not applicable
|
|
173
|
+
*/
|
|
174
|
+
private tryCompoundQuery;
|
|
175
|
+
/**
|
|
176
|
+
* Distribute filter conditions to their respective patterns
|
|
177
|
+
* Returns a map of pattern index -> PushdownFilters
|
|
178
|
+
*/
|
|
179
|
+
private distributeFiltersToPatterns;
|
|
180
|
+
/**
|
|
181
|
+
* Build SELECT clause config for patterns
|
|
182
|
+
*/
|
|
183
|
+
private buildSelectForPatterns;
|
|
184
|
+
/**
|
|
185
|
+
* Convert CompoundResult array to Bindings array
|
|
186
|
+
*/
|
|
187
|
+
private compoundResultsToBindings;
|
|
188
|
+
/**
|
|
189
|
+
* Deserialize a value from storage format to RDF Term
|
|
190
|
+
* Uses the same deserialization logic as QuintStore
|
|
191
|
+
*/
|
|
192
|
+
private deserializeValue;
|
|
193
|
+
/**
|
|
194
|
+
* Convert quads to bindings based on pattern variables
|
|
195
|
+
*/
|
|
196
|
+
private quadsToBindings;
|
|
197
|
+
/**
|
|
198
|
+
* Get the term from quad that matches the variable position in pattern
|
|
199
|
+
*/
|
|
200
|
+
private getTermForVariable;
|
|
201
|
+
/**
|
|
202
|
+
* Extract BGP pattern and filter from operation
|
|
203
|
+
* Returns either a single pattern or multiple patterns (from BGP or JOIN)
|
|
204
|
+
*/
|
|
205
|
+
extractPatternAndFilter(operation: Algebra.Operation): {
|
|
206
|
+
pattern: Algebra.Pattern;
|
|
207
|
+
patterns?: Algebra.Pattern[];
|
|
208
|
+
filter: Algebra.Expression | null;
|
|
209
|
+
};
|
|
210
|
+
/**
|
|
211
|
+
* Get variables from operation
|
|
212
|
+
*/
|
|
213
|
+
private getVariablesFromOperation;
|
|
214
|
+
queryQuads(operation: Algebra.Operation, _context: IActionContext): AsyncIterator<Quad>;
|
|
215
|
+
queryBoolean(operation: Algebra.Ask, _context: IActionContext): Promise<boolean>;
|
|
216
|
+
queryVoid(_operation: Algebra.Update, _context: IActionContext): Promise<void>;
|
|
217
|
+
/**
|
|
218
|
+
* 在 pattern 中查找变量绑定到哪个位置
|
|
219
|
+
*
|
|
220
|
+
* 例如:{ ?s <http://schema.org/name> ?name }
|
|
221
|
+
* - ?s 绑定到 subject
|
|
222
|
+
* - ?name 绑定到 object
|
|
223
|
+
*/
|
|
224
|
+
private findVariableBinding;
|
|
225
|
+
toString(): string;
|
|
226
|
+
}
|
|
227
|
+
export {};
|