@undefineds.co/xpod 0.3.58 → 0.3.61
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/README.md +3 -0
- package/config/cli.json +88 -0
- package/config/cloud.json +32 -1
- package/config/components-ignore.json +3 -0
- package/config/extensions.local.initializer.json +44 -0
- package/config/resolver.json +86 -0
- package/config/xpod.base.json +4 -0
- package/dist/agents/AgentExecutorFactory.d.ts +3 -3
- package/dist/agents/AgentExecutorFactory.js +28 -15
- package/dist/agents/AgentExecutorFactory.js.map +1 -1
- package/dist/agents/BaseAgentExecutor.d.ts +2 -1
- package/dist/agents/BaseAgentExecutor.js +1 -0
- package/dist/agents/BaseAgentExecutor.js.map +1 -1
- package/dist/agents/ClaudeExecutor.d.ts +3 -1
- package/dist/agents/ClaudeExecutor.js +18 -12
- package/dist/agents/ClaudeExecutor.js.map +1 -1
- package/dist/agents/config/resolve.js +0 -21
- package/dist/agents/config/resolve.js.map +1 -1
- package/dist/agents/config/types.d.ts +2 -7
- package/dist/agents/config/types.js +2 -1
- package/dist/agents/config/types.js.map +1 -1
- package/dist/agents/types.d.ts +18 -0
- package/dist/agents/types.js.map +1 -1
- package/dist/ai/schema/types.d.ts +2 -1
- package/dist/ai/schema/types.js +1 -0
- package/dist/ai/schema/types.js.map +1 -1
- package/dist/ai/service/CredentialReader.d.ts +3 -1
- package/dist/ai/service/CredentialReader.js.map +1 -1
- package/dist/ai/service/CredentialReaderImpl.d.ts +3 -1
- package/dist/ai/service/CredentialReaderImpl.js +24 -2
- package/dist/ai/service/CredentialReaderImpl.js.map +1 -1
- package/dist/ai/service/EmbeddingServiceImpl.js +13 -2
- package/dist/ai/service/EmbeddingServiceImpl.js.map +1 -1
- package/dist/ai/service/ProviderRegistry.d.ts +4 -0
- package/dist/ai/service/ProviderRegistry.js.map +1 -1
- package/dist/ai/service/ProviderRegistry.jsonld +4 -0
- package/dist/ai/service/ProviderRegistryImpl.d.ts +4 -1
- package/dist/ai/service/ProviderRegistryImpl.js +26 -4
- package/dist/ai/service/ProviderRegistryImpl.js.map +1 -1
- package/dist/ai/service/ProviderRegistryImpl.jsonld +12 -0
- package/dist/ai/service/defaultEmbeddingProfile.d.ts +5 -0
- package/dist/ai/service/defaultEmbeddingProfile.js +31 -0
- package/dist/ai/service/defaultEmbeddingProfile.js.map +1 -0
- package/dist/ai/service/index.d.ts +1 -0
- package/dist/ai/service/index.js +1 -0
- package/dist/ai/service/index.js.map +1 -1
- package/dist/ai/service/types.d.ts +1 -0
- package/dist/ai/service/types.js.map +1 -1
- package/dist/api/ApiServer.js +17 -2
- package/dist/api/ApiServer.js.map +1 -1
- package/dist/api/ai-gateway/AiGatewayService.d.ts +106 -0
- package/dist/api/ai-gateway/AiGatewayService.js +527 -0
- package/dist/api/ai-gateway/AiGatewayService.js.map +1 -0
- package/dist/api/ai-gateway/auth/AiConnectionInvocationKeyIssuer.d.ts +38 -0
- package/dist/api/ai-gateway/auth/AiConnectionInvocationKeyIssuer.js +128 -0
- package/dist/api/ai-gateway/auth/AiConnectionInvocationKeyIssuer.js.map +1 -0
- package/dist/api/ai-gateway/auth/ClientCredentialsInternalPodAccessTokenProvider.d.ts +25 -0
- package/dist/api/ai-gateway/auth/ClientCredentialsInternalPodAccessTokenProvider.js +91 -0
- package/dist/api/ai-gateway/auth/ClientCredentialsInternalPodAccessTokenProvider.js.map +1 -0
- package/dist/api/ai-gateway/auth/GatewayApiKey.d.ts +28 -0
- package/dist/api/ai-gateway/auth/GatewayApiKey.js +162 -0
- package/dist/api/ai-gateway/auth/GatewayApiKey.js.map +1 -0
- package/dist/api/ai-gateway/auth/GatewayApiKeyAuthenticator.d.ts +56 -0
- package/dist/api/ai-gateway/auth/GatewayApiKeyAuthenticator.js +143 -0
- package/dist/api/ai-gateway/auth/GatewayApiKeyAuthenticator.js.map +1 -0
- package/dist/api/ai-gateway/auth/GatewayKeyLocatorCodec.d.ts +26 -0
- package/dist/api/ai-gateway/auth/GatewayKeyLocatorCodec.js +97 -0
- package/dist/api/ai-gateway/auth/GatewayKeyLocatorCodec.js.map +1 -0
- package/dist/api/ai-gateway/auth/GatewayPrincipal.d.ts +20 -0
- package/dist/api/ai-gateway/auth/GatewayPrincipal.js +37 -0
- package/dist/api/ai-gateway/auth/GatewayPrincipal.js.map +1 -0
- package/dist/api/ai-gateway/auth/InvocationTokenCodec.d.ts +41 -0
- package/dist/api/ai-gateway/auth/InvocationTokenCodec.js +221 -0
- package/dist/api/ai-gateway/auth/InvocationTokenCodec.js.map +1 -0
- package/dist/api/ai-gateway/auth/PodGatewayAccessKeyRepository.d.ts +54 -0
- package/dist/api/ai-gateway/auth/PodGatewayAccessKeyRepository.js +152 -0
- package/dist/api/ai-gateway/auth/PodGatewayAccessKeyRepository.js.map +1 -0
- package/dist/api/ai-gateway/connect/index.d.ts +367 -0
- package/dist/api/ai-gateway/connect/index.js +1061 -0
- package/dist/api/ai-gateway/connect/index.js.map +1 -0
- package/dist/api/ai-gateway/credentials/CloudKmsWrapper.d.ts +40 -0
- package/dist/api/ai-gateway/credentials/CloudKmsWrapper.js +59 -0
- package/dist/api/ai-gateway/credentials/CloudKmsWrapper.js.map +1 -0
- package/dist/api/ai-gateway/credentials/CredentialVault.d.ts +14 -0
- package/dist/api/ai-gateway/credentials/CredentialVault.js +11 -0
- package/dist/api/ai-gateway/credentials/CredentialVault.js.map +1 -0
- package/dist/api/ai-gateway/credentials/KeyWrapper.d.ts +27 -0
- package/dist/api/ai-gateway/credentials/KeyWrapper.js +3 -0
- package/dist/api/ai-gateway/credentials/KeyWrapper.js.map +1 -0
- package/dist/api/ai-gateway/credentials/LocalKeychainWrapper.d.ts +27 -0
- package/dist/api/ai-gateway/credentials/LocalKeychainWrapper.js +145 -0
- package/dist/api/ai-gateway/credentials/LocalKeychainWrapper.js.map +1 -0
- package/dist/api/ai-gateway/credentials/SecretCellCredentialVault.d.ts +13 -0
- package/dist/api/ai-gateway/credentials/SecretCellCredentialVault.js +133 -0
- package/dist/api/ai-gateway/credentials/SecretCellCredentialVault.js.map +1 -0
- package/dist/api/ai-gateway/credentials/SecretCellKeyWrapper.d.ts +23 -0
- package/dist/api/ai-gateway/credentials/SecretCellKeyWrapper.js +62 -0
- package/dist/api/ai-gateway/credentials/SecretCellKeyWrapper.js.map +1 -0
- package/dist/api/ai-gateway/credentials/WebCryptoCredentialVault.d.ts +23 -0
- package/dist/api/ai-gateway/credentials/WebCryptoCredentialVault.js +173 -0
- package/dist/api/ai-gateway/credentials/WebCryptoCredentialVault.js.map +1 -0
- package/dist/api/ai-gateway/errors.d.ts +21 -0
- package/dist/api/ai-gateway/errors.js +50 -0
- package/dist/api/ai-gateway/errors.js.map +1 -0
- package/dist/api/ai-gateway/protocol/ChatCompletionsFrontend.d.ts +6 -0
- package/dist/api/ai-gateway/protocol/ChatCompletionsFrontend.js +111 -0
- package/dist/api/ai-gateway/protocol/ChatCompletionsFrontend.js.map +1 -0
- package/dist/api/ai-gateway/protocol/MessagesFrontend.d.ts +6 -0
- package/dist/api/ai-gateway/protocol/MessagesFrontend.js +99 -0
- package/dist/api/ai-gateway/protocol/MessagesFrontend.js.map +1 -0
- package/dist/api/ai-gateway/protocol/ResponsesFrontend.d.ts +6 -0
- package/dist/api/ai-gateway/protocol/ResponsesFrontend.js +232 -0
- package/dist/api/ai-gateway/protocol/ResponsesFrontend.js.map +1 -0
- package/dist/api/ai-gateway/protocol/index.d.ts +3 -0
- package/dist/api/ai-gateway/protocol/index.js +10 -0
- package/dist/api/ai-gateway/protocol/index.js.map +1 -0
- package/dist/api/ai-gateway/providers/AnthropicRuntimeAdapter.d.ts +7 -0
- package/dist/api/ai-gateway/providers/AnthropicRuntimeAdapter.js +37 -0
- package/dist/api/ai-gateway/providers/AnthropicRuntimeAdapter.js.map +1 -0
- package/dist/api/ai-gateway/providers/BailianRuntimeAdapter.d.ts +9 -0
- package/dist/api/ai-gateway/providers/BailianRuntimeAdapter.js +127 -0
- package/dist/api/ai-gateway/providers/BailianRuntimeAdapter.js.map +1 -0
- package/dist/api/ai-gateway/providers/DeepSeekRuntimeAdapter.d.ts +8 -0
- package/dist/api/ai-gateway/providers/DeepSeekRuntimeAdapter.js +47 -0
- package/dist/api/ai-gateway/providers/DeepSeekRuntimeAdapter.js.map +1 -0
- package/dist/api/ai-gateway/providers/KimiRuntimeAdapter.d.ts +8 -0
- package/dist/api/ai-gateway/providers/KimiRuntimeAdapter.js +57 -0
- package/dist/api/ai-gateway/providers/KimiRuntimeAdapter.js.map +1 -0
- package/dist/api/ai-gateway/providers/OpenAiCompatibleRuntimeAdapter.d.ts +1 -0
- package/dist/api/ai-gateway/providers/OpenAiCompatibleRuntimeAdapter.js +6 -0
- package/dist/api/ai-gateway/providers/OpenAiCompatibleRuntimeAdapter.js.map +1 -0
- package/dist/api/ai-gateway/providers/OpenAiRuntimeAdapter.d.ts +13 -0
- package/dist/api/ai-gateway/providers/OpenAiRuntimeAdapter.js +34 -0
- package/dist/api/ai-gateway/providers/OpenAiRuntimeAdapter.js.map +1 -0
- package/dist/api/ai-gateway/providers/ProviderRegistry.d.ts +68 -0
- package/dist/api/ai-gateway/providers/ProviderRegistry.js +288 -0
- package/dist/api/ai-gateway/providers/ProviderRegistry.js.map +1 -0
- package/dist/api/ai-gateway/providers/ProviderRuntimeAdapter.d.ts +88 -0
- package/dist/api/ai-gateway/providers/ProviderRuntimeAdapter.js +645 -0
- package/dist/api/ai-gateway/providers/ProviderRuntimeAdapter.js.map +1 -0
- package/dist/api/ai-gateway/providers/ProviderRuntimeRegistry.d.ts +13 -0
- package/dist/api/ai-gateway/providers/ProviderRuntimeRegistry.js +48 -0
- package/dist/api/ai-gateway/providers/ProviderRuntimeRegistry.js.map +1 -0
- package/dist/api/ai-gateway/providers/index.d.ts +9 -0
- package/dist/api/ai-gateway/providers/index.js +26 -0
- package/dist/api/ai-gateway/providers/index.js.map +1 -0
- package/dist/api/ai-gateway/quota/AnthropicQuotaAdapter.d.ts +5 -0
- package/dist/api/ai-gateway/quota/AnthropicQuotaAdapter.js +21 -0
- package/dist/api/ai-gateway/quota/AnthropicQuotaAdapter.js.map +1 -0
- package/dist/api/ai-gateway/quota/BailianQuotaAdapter.d.ts +5 -0
- package/dist/api/ai-gateway/quota/BailianQuotaAdapter.js +21 -0
- package/dist/api/ai-gateway/quota/BailianQuotaAdapter.js.map +1 -0
- package/dist/api/ai-gateway/quota/DeepSeekQuotaAdapter.d.ts +10 -0
- package/dist/api/ai-gateway/quota/DeepSeekQuotaAdapter.js +83 -0
- package/dist/api/ai-gateway/quota/DeepSeekQuotaAdapter.js.map +1 -0
- package/dist/api/ai-gateway/quota/KimiQuotaAdapter.d.ts +10 -0
- package/dist/api/ai-gateway/quota/KimiQuotaAdapter.js +70 -0
- package/dist/api/ai-gateway/quota/KimiQuotaAdapter.js.map +1 -0
- package/dist/api/ai-gateway/quota/OpenAiQuotaAdapter.d.ts +5 -0
- package/dist/api/ai-gateway/quota/OpenAiQuotaAdapter.js +21 -0
- package/dist/api/ai-gateway/quota/OpenAiQuotaAdapter.js.map +1 -0
- package/dist/api/ai-gateway/quota/ProviderQuotaAdapter.d.ts +214 -0
- package/dist/api/ai-gateway/quota/ProviderQuotaAdapter.js +511 -0
- package/dist/api/ai-gateway/quota/ProviderQuotaAdapter.js.map +1 -0
- package/dist/api/ai-gateway/quota/index.d.ts +6 -0
- package/dist/api/ai-gateway/quota/index.js +23 -0
- package/dist/api/ai-gateway/quota/index.js.map +1 -0
- package/dist/api/ai-gateway/routing/InMemorySessionAffinityStore.d.ts +26 -0
- package/dist/api/ai-gateway/routing/InMemorySessionAffinityStore.js +67 -0
- package/dist/api/ai-gateway/routing/InMemorySessionAffinityStore.js.map +1 -0
- package/dist/api/ai-gateway/routing/ModelRouter.d.ts +84 -0
- package/dist/api/ai-gateway/routing/ModelRouter.js +274 -0
- package/dist/api/ai-gateway/routing/ModelRouter.js.map +1 -0
- package/dist/api/ai-gateway/routing/RedisSessionAffinityStore.d.ts +39 -0
- package/dist/api/ai-gateway/routing/RedisSessionAffinityStore.js +122 -0
- package/dist/api/ai-gateway/routing/RedisSessionAffinityStore.js.map +1 -0
- package/dist/api/ai-gateway/routing/SessionAffinityStore.d.ts +49 -0
- package/dist/api/ai-gateway/routing/SessionAffinityStore.js +66 -0
- package/dist/api/ai-gateway/routing/SessionAffinityStore.js.map +1 -0
- package/dist/api/ai-gateway/service-access/AiConnectionServiceAccess.d.ts +25 -0
- package/dist/api/ai-gateway/service-access/AiConnectionServiceAccess.js +50 -0
- package/dist/api/ai-gateway/service-access/AiConnectionServiceAccess.js.map +1 -0
- package/dist/api/ai-gateway/types.d.ts +112 -0
- package/dist/api/ai-gateway/types.js +305 -0
- package/dist/api/ai-gateway/types.js.map +1 -0
- package/dist/api/auth/AuthContext.d.ts +18 -3
- package/dist/api/auth/AuthContext.js +13 -2
- package/dist/api/auth/AuthContext.js.map +1 -1
- package/dist/api/auth/Authenticator.d.ts +3 -0
- package/dist/api/auth/Authenticator.js.map +1 -1
- package/dist/api/auth/ClientCredentialsAuthenticator.d.ts +2 -6
- package/dist/api/auth/ClientCredentialsAuthenticator.js +12 -30
- package/dist/api/auth/ClientCredentialsAuthenticator.js.map +1 -1
- package/dist/api/auth/SolidTokenAuthenticator.d.ts +2 -0
- package/dist/api/auth/SolidTokenAuthenticator.js +88 -2
- package/dist/api/auth/SolidTokenAuthenticator.js.map +1 -1
- package/dist/api/auth/TokenIdentity.d.ts +6 -0
- package/dist/api/auth/TokenIdentity.js +31 -0
- package/dist/api/auth/TokenIdentity.js.map +1 -0
- package/dist/api/chatkit/ai-provider.d.ts +9 -23
- package/dist/api/chatkit/ai-provider.js +30 -153
- package/dist/api/chatkit/ai-provider.js.map +1 -1
- package/dist/api/chatkit/default-agent.d.ts +24 -15
- package/dist/api/chatkit/default-agent.js +24 -83
- package/dist/api/chatkit/default-agent.js.map +1 -1
- package/dist/api/chatkit/index.d.ts +2 -1
- package/dist/api/chatkit/index.js +3 -1
- package/dist/api/chatkit/index.js.map +1 -1
- package/dist/api/chatkit/pod-store.d.ts +13 -1
- package/dist/api/chatkit/pod-store.js +127 -7
- package/dist/api/chatkit/pod-store.js.map +1 -1
- package/dist/api/chatkit/runtime/AcpAgentRuntime.d.ts +0 -1
- package/dist/api/chatkit/runtime/AcpAgentRuntime.js +14 -51
- package/dist/api/chatkit/runtime/AcpAgentRuntime.js.map +1 -1
- package/dist/api/chatkit/runtime/AcpRunner.js +2 -1
- package/dist/api/chatkit/runtime/AcpRunner.js.map +1 -1
- package/dist/api/chatkit/runtime/CodexRuntimeProjector.d.ts +15 -1
- package/dist/api/chatkit/runtime/CodexRuntimeProjector.js +52 -34
- package/dist/api/chatkit/runtime/CodexRuntimeProjector.js.map +1 -1
- package/dist/api/chatkit/service.d.ts +8 -1
- package/dist/api/chatkit/service.js +46 -5
- package/dist/api/chatkit/service.js.map +1 -1
- package/dist/api/chatkit/store.d.ts +23 -1
- package/dist/api/chatkit/store.js +56 -0
- package/dist/api/chatkit/store.js.map +1 -1
- package/dist/api/chatkit/types.d.ts +1 -0
- package/dist/api/chatkit/types.js.map +1 -1
- package/dist/api/container/common.js +286 -13
- package/dist/api/container/common.js.map +1 -1
- package/dist/api/container/index.js +126 -6
- package/dist/api/container/index.js.map +1 -1
- package/dist/api/container/local.js +50 -6
- package/dist/api/container/local.js.map +1 -1
- package/dist/api/container/rdf.d.ts +15 -0
- package/dist/api/container/rdf.js +90 -0
- package/dist/api/container/rdf.js.map +1 -0
- package/dist/api/container/routes.js +151 -11
- package/dist/api/container/routes.js.map +1 -1
- package/dist/api/container/types.d.ts +96 -0
- package/dist/api/container/types.js.map +1 -1
- package/dist/api/handlers/AdminHandler.d.ts +25 -2
- package/dist/api/handlers/AdminHandler.js +60 -10
- package/dist/api/handlers/AdminHandler.js.map +1 -1
- package/dist/api/handlers/AiClientConfigurationHandler.d.ts +7 -0
- package/dist/api/handlers/AiClientConfigurationHandler.js +202 -0
- package/dist/api/handlers/AiClientConfigurationHandler.js.map +1 -0
- package/dist/api/handlers/AiGatewayHandler.d.ts +23 -0
- package/dist/api/handlers/AiGatewayHandler.js +231 -0
- package/dist/api/handlers/AiGatewayHandler.js.map +1 -0
- package/dist/api/handlers/AiGatewayManagementHandler.d.ts +24 -0
- package/dist/api/handlers/AiGatewayManagementHandler.js +503 -0
- package/dist/api/handlers/AiGatewayManagementHandler.js.map +1 -0
- package/dist/api/handlers/ChatHandler.d.ts +11 -12
- package/dist/api/handlers/ChatHandler.js +12 -219
- package/dist/api/handlers/ChatHandler.js.map +1 -1
- package/dist/api/handlers/DashboardHandler.js +22 -116
- package/dist/api/handlers/DashboardHandler.js.map +1 -1
- package/dist/api/handlers/NetworkSettingsHandler.d.ts +97 -0
- package/dist/api/handlers/NetworkSettingsHandler.js +511 -0
- package/dist/api/handlers/NetworkSettingsHandler.js.map +1 -0
- package/dist/api/handlers/PodSettingsHandler.d.ts +79 -0
- package/dist/api/handlers/PodSettingsHandler.js +162 -0
- package/dist/api/handlers/PodSettingsHandler.js.map +1 -0
- package/dist/api/handlers/ProvisionHandler.d.ts +3 -1
- package/dist/api/handlers/ProvisionHandler.js +22 -87
- package/dist/api/handlers/ProvisionHandler.js.map +1 -1
- package/dist/api/handlers/RdfStatsHandler.d.ts +6 -0
- package/dist/api/handlers/RdfStatsHandler.js +85 -0
- package/dist/api/handlers/RdfStatsHandler.js.map +1 -0
- package/dist/api/handlers/SettingsHandler.d.ts +5 -0
- package/dist/api/handlers/SettingsHandler.js +13 -0
- package/dist/api/handlers/SettingsHandler.js.map +1 -0
- package/dist/api/handlers/StaticSpaHandler.d.ts +8 -0
- package/dist/api/handlers/StaticSpaHandler.js +102 -0
- package/dist/api/handlers/StaticSpaHandler.js.map +1 -0
- package/dist/api/handlers/index.d.ts +1 -0
- package/dist/api/handlers/index.js +1 -0
- package/dist/api/handlers/index.js.map +1 -1
- package/dist/api/http/readBoundedJsonBody.d.ts +14 -0
- package/dist/api/http/readBoundedJsonBody.js +58 -0
- package/dist/api/http/readBoundedJsonBody.js.map +1 -0
- package/dist/api/middleware/AuthMiddleware.d.ts +1 -0
- package/dist/api/middleware/AuthMiddleware.js +33 -4
- package/dist/api/middleware/AuthMiddleware.js.map +1 -1
- package/dist/api/runs/AgentRuntimeTypes.d.ts +18 -3
- package/dist/api/runs/AgentRuntimeTypes.js +61 -0
- package/dist/api/runs/AgentRuntimeTypes.js.map +1 -1
- package/dist/api/runs/InngestRunExecutionBackend.d.ts +28 -3
- package/dist/api/runs/InngestRunExecutionBackend.js +26 -3
- package/dist/api/runs/InngestRunExecutionBackend.js.map +1 -1
- package/dist/api/runs/ManagedRunWorker.d.ts +4 -1
- package/dist/api/runs/ManagedRunWorker.js +39 -8
- package/dist/api/runs/ManagedRunWorker.js.map +1 -1
- package/dist/api/runs/PiAgentRuntimeDriver.d.ts +5 -1
- package/dist/api/runs/PiAgentRuntimeDriver.js +94 -57
- package/dist/api/runs/PiAgentRuntimeDriver.js.map +1 -1
- package/dist/api/runs/RdfRunContextRetriever.d.ts +46 -0
- package/dist/api/runs/RdfRunContextRetriever.js +277 -0
- package/dist/api/runs/RdfRunContextRetriever.js.map +1 -0
- package/dist/api/runs/RunExecutionBackend.d.ts +38 -0
- package/dist/api/runs/RunExecutionBackend.js.map +1 -1
- package/dist/api/runs/RunStateCenter.d.ts +18 -3
- package/dist/api/runs/RunStateCenter.js +85 -24
- package/dist/api/runs/RunStateCenter.js.map +1 -1
- package/dist/api/runtime.js +163 -3
- package/dist/api/runtime.js.map +1 -1
- package/dist/api/service/AiClientConfigurationService.d.ts +97 -0
- package/dist/api/service/AiClientConfigurationService.js +379 -0
- package/dist/api/service/AiClientConfigurationService.js.map +1 -0
- package/dist/api/service/RdfBenchmarkReportCatalog.d.ts +86 -0
- package/dist/api/service/RdfBenchmarkReportCatalog.js +349 -0
- package/dist/api/service/RdfBenchmarkReportCatalog.js.map +1 -0
- package/dist/api/service/RdfBenchmarkReportGate.d.ts +78 -0
- package/dist/api/service/RdfBenchmarkReportGate.js +197 -0
- package/dist/api/service/RdfBenchmarkReportGate.js.map +1 -0
- package/dist/api/service/RdfSearchIndexingService.d.ts +113 -0
- package/dist/api/service/RdfSearchIndexingService.js +272 -0
- package/dist/api/service/RdfSearchIndexingService.js.map +1 -0
- package/dist/api/service/RdfSearchIndexingSolidFsSyncer.d.ts +27 -0
- package/dist/api/service/RdfSearchIndexingSolidFsSyncer.js +90 -0
- package/dist/api/service/RdfSearchIndexingSolidFsSyncer.js.map +1 -0
- package/dist/api/service/RdfStorageStatsService.d.ts +31 -0
- package/dist/api/service/RdfStorageStatsService.js +97 -0
- package/dist/api/service/RdfStorageStatsService.js.map +1 -0
- package/dist/api/service/VectorStoreService.d.ts +2 -0
- package/dist/api/service/VectorStoreService.js +70 -2
- package/dist/api/service/VectorStoreService.js.map +1 -1
- package/dist/api/service/VercelChatService.d.ts +27 -38
- package/dist/api/service/VercelChatService.js +153 -505
- package/dist/api/service/VercelChatService.js.map +1 -1
- package/dist/api/service/provider-http-transport.d.ts +21 -0
- package/dist/api/service/provider-http-transport.js +108 -2
- package/dist/api/service/provider-http-transport.js.map +1 -1
- package/dist/api/service/provider-registry.d.ts +5 -7
- package/dist/api/service/provider-registry.js +81 -64
- package/dist/api/service/provider-registry.js.map +1 -1
- package/dist/api/tasks/InngestTaskScheduler.d.ts +44 -4
- package/dist/api/tasks/TaskMaterializer.d.ts +10 -1
- package/dist/api/tasks/TaskMaterializer.js +39 -4
- package/dist/api/tasks/TaskMaterializer.js.map +1 -1
- package/dist/api/tasks/TaskService.d.ts +5 -1
- package/dist/api/tasks/TaskService.js +3 -0
- package/dist/api/tasks/TaskService.js.map +1 -1
- package/dist/cli/commands/rdf.d.ts +9 -0
- package/dist/cli/commands/rdf.js +66 -1
- package/dist/cli/commands/rdf.js.map +1 -1
- package/dist/cli/commands/start.js +3 -0
- package/dist/cli/commands/start.js.map +1 -1
- package/dist/cli/lib/solid-auth.d.ts +3 -3
- package/dist/cli/lib/solid-auth.js +4 -4
- package/dist/cli/lib/solid-auth.js.map +1 -1
- package/dist/components/components.jsonld +16 -0
- package/dist/components/context.jsonld +815 -28
- package/dist/document/Chunker.jsonld +110 -0
- package/dist/document/{DocumentParser.d.ts → DocumentReader.d.ts} +23 -11
- package/dist/document/{DocumentParser.js → DocumentReader.js} +2 -2
- package/dist/document/DocumentReader.js.map +1 -0
- package/dist/document/DocumentReader.jsonld +82 -0
- package/dist/document/HeadingChunker.jsonld +41 -0
- package/dist/document/{JinaDocumentParser.d.ts → JinaReader.d.ts} +7 -7
- package/dist/document/{JinaDocumentParser.js → JinaReader.js} +12 -12
- package/dist/document/JinaReader.js.map +1 -0
- package/dist/document/JinaReader.jsonld +133 -0
- package/dist/document/L0SourceSummary.d.ts +103 -0
- package/dist/document/L0SourceSummary.js +157 -0
- package/dist/document/L0SourceSummary.js.map +1 -0
- package/dist/document/L0SourceSummary.jsonld +326 -0
- package/dist/document/PaddleOcrReader.d.ts +40 -0
- package/dist/document/PaddleOcrReader.js +53 -0
- package/dist/document/PaddleOcrReader.js.map +1 -0
- package/dist/document/PaddleOcrReader.jsonld +234 -0
- package/dist/document/ReaderAiConfig.d.ts +50 -0
- package/dist/document/ReaderAiConfig.js +109 -0
- package/dist/document/ReaderAiConfig.js.map +1 -0
- package/dist/document/ReaderAiConfig.jsonld +185 -0
- package/dist/document/ReaderPolicy.d.ts +89 -0
- package/dist/document/ReaderPolicy.js +158 -0
- package/dist/document/ReaderPolicy.js.map +1 -0
- package/dist/document/ReaderPolicy.jsonld +218 -0
- package/dist/document/index.d.ts +6 -2
- package/dist/document/index.js +6 -2
- package/dist/document/index.js.map +1 -1
- package/dist/edge/DdnsManager.d.ts +1 -1
- package/dist/edge/DdnsManager.js.map +1 -1
- package/dist/edge/EdgeNodeAgent.d.ts +4 -0
- package/dist/edge/EdgeNodeAgent.js +6 -0
- package/dist/edge/EdgeNodeAgent.js.map +1 -1
- package/dist/edge/EdgeNodeAgent.jsonld +8 -0
- package/dist/edge/EdgeNodeAgentInitializer.d.ts +16 -0
- package/dist/edge/EdgeNodeAgentInitializer.js +51 -0
- package/dist/edge/EdgeNodeAgentInitializer.js.map +1 -1
- package/dist/edge/EdgeNodeAgentInitializer.jsonld +250 -0
- package/dist/edge/EdgeNodeCertificateCapabilityBridge.d.ts +34 -0
- package/dist/edge/EdgeNodeCertificateCapabilityBridge.js +111 -0
- package/dist/edge/EdgeNodeCertificateCapabilityBridge.js.map +1 -0
- package/dist/edge/acme/AcmeCertificateManager.d.ts +14 -1
- package/dist/edge/acme/AcmeCertificateManager.js +67 -7
- package/dist/edge/acme/AcmeCertificateManager.js.map +1 -1
- package/dist/edge/acme/AcmeCertificateManager.jsonld +22 -2
- package/dist/edge/acme/ClusterCertificateManager.d.ts +12 -0
- package/dist/edge/acme/ClusterCertificateManager.js +38 -0
- package/dist/edge/acme/ClusterCertificateManager.js.map +1 -1
- package/dist/extensions/ExtensionRuntime.d.ts +17 -0
- package/dist/extensions/ExtensionRuntime.js +171 -0
- package/dist/extensions/ExtensionRuntime.js.map +1 -0
- package/dist/extensions/PodCredentialResolver.d.ts +23 -0
- package/dist/extensions/PodCredentialResolver.js +139 -0
- package/dist/extensions/PodCredentialResolver.js.map +1 -0
- package/dist/extensions/index.d.ts +3 -0
- package/dist/extensions/index.js +20 -0
- package/dist/extensions/index.js.map +1 -0
- package/dist/extensions/types.d.ts +73 -0
- package/dist/extensions/types.js +3 -0
- package/dist/extensions/types.js.map +1 -0
- package/dist/http/SubgraphSparqlHttpHandler.d.ts +20 -1
- package/dist/http/SubgraphSparqlHttpHandler.js +324 -43
- package/dist/http/SubgraphSparqlHttpHandler.js.map +1 -1
- package/dist/http/SubgraphSparqlHttpHandler.jsonld +87 -0
- package/dist/identity/drizzle/EdgeNodeRepository.js +3 -2
- package/dist/identity/drizzle/EdgeNodeRepository.js.map +1 -1
- package/dist/identity/drizzle/schema.pg.js +1 -1
- package/dist/identity/drizzle/schema.pg.js.map +1 -1
- package/dist/identity/drizzle/schema.sqlite.js +1 -1
- package/dist/identity/drizzle/schema.sqlite.js.map +1 -1
- package/dist/identity/oidc/ScopedPickWebIdHandler.js +5 -5
- package/dist/identity/oidc/ScopedPickWebIdHandler.js.map +1 -1
- package/dist/index.d.ts +12 -2
- package/dist/index.js +13 -1
- package/dist/index.js.map +1 -1
- package/dist/main.js +3 -0
- package/dist/main.js.map +1 -1
- package/dist/provision/LocalProvisionState.d.ts +28 -0
- package/dist/provision/LocalProvisionState.js +124 -0
- package/dist/provision/LocalProvisionState.js.map +1 -0
- package/dist/provision/ProvisionCodeCodec.d.ts +7 -3
- package/dist/provision/ProvisionCodeCodec.js +10 -3
- package/dist/provision/ProvisionCodeCodec.js.map +1 -1
- package/dist/provision/ProvisionPodCreator.d.ts +15 -1
- package/dist/provision/ProvisionPodCreator.js +68 -1
- package/dist/provision/ProvisionPodCreator.js.map +1 -1
- package/dist/provision/ProvisionPodCreator.jsonld +31 -0
- package/dist/provision/ServiceAccessTokenCodec.d.ts +45 -0
- package/dist/provision/ServiceAccessTokenCodec.js +86 -0
- package/dist/provision/ServiceAccessTokenCodec.js.map +1 -0
- package/dist/runtime/GatewayAdminProxyAuth.d.ts +29 -0
- package/dist/runtime/GatewayAdminProxyAuth.js +108 -0
- package/dist/runtime/GatewayAdminProxyAuth.js.map +1 -0
- package/dist/runtime/Proxy.d.ts +10 -0
- package/dist/runtime/Proxy.js +64 -6
- package/dist/runtime/Proxy.js.map +1 -1
- package/dist/runtime/XpodRuntime.js +1 -0
- package/dist/runtime/XpodRuntime.js.map +1 -1
- package/dist/runtime/bootstrap.d.ts +1 -0
- package/dist/runtime/bootstrap.js +29 -0
- package/dist/runtime/bootstrap.js.map +1 -1
- package/dist/runtime/css-process.d.ts +1 -0
- package/dist/runtime/css-process.js +1 -0
- package/dist/runtime/css-process.js.map +1 -1
- package/dist/runtime/index.d.ts +1 -0
- package/dist/runtime/index.js +3 -1
- package/dist/runtime/index.js.map +1 -1
- package/dist/runtime/lifecycle.d.ts +3 -1
- package/dist/runtime/lifecycle.js +3 -1
- package/dist/runtime/lifecycle.js.map +1 -1
- package/dist/runtime/runner/node/NodeGatewayRuntimeRunner.js +2 -0
- package/dist/runtime/runner/node/NodeGatewayRuntimeRunner.js.map +1 -1
- package/dist/runtime/runner/types.d.ts +3 -0
- package/dist/runtime/runner/types.js.map +1 -1
- package/dist/runtime/runtime-types.d.ts +2 -0
- package/dist/runtime/runtime-types.js.map +1 -1
- package/dist/runtime/safe-env.d.ts +15 -0
- package/dist/runtime/safe-env.js +109 -0
- package/dist/runtime/safe-env.js.map +1 -0
- package/dist/security/index.d.ts +1 -0
- package/dist/security/index.js +18 -0
- package/dist/security/index.js.map +1 -0
- package/dist/security/secret-cell/DeploymentRootKeyProvider.d.ts +17 -0
- package/dist/security/secret-cell/DeploymentRootKeyProvider.js +61 -0
- package/dist/security/secret-cell/DeploymentRootKeyProvider.js.map +1 -0
- package/dist/security/secret-cell/DeploymentRootKeyProvider.jsonld +124 -0
- package/dist/security/secret-cell/SecretCellVault.d.ts +55 -0
- package/dist/security/secret-cell/SecretCellVault.js +242 -0
- package/dist/security/secret-cell/SecretCellVault.js.map +1 -0
- package/dist/security/secret-cell/SecretCellVault.jsonld +207 -0
- package/dist/security/secret-cell/index.d.ts +2 -0
- package/dist/security/secret-cell/index.js +11 -0
- package/dist/security/secret-cell/index.js.map +1 -0
- package/dist/solidfs/CompositeSolidFsSyncer.d.ts +18 -0
- package/dist/solidfs/CompositeSolidFsSyncer.js +32 -0
- package/dist/solidfs/CompositeSolidFsSyncer.js.map +1 -0
- package/dist/solidfs/LocalSolidFS.js +25 -1
- package/dist/solidfs/LocalSolidFS.js.map +1 -1
- package/dist/solidfs/RdfIndexSolidFsSyncer.d.ts +41 -2
- package/dist/solidfs/RdfIndexSolidFsSyncer.js +331 -21
- package/dist/solidfs/RdfIndexSolidFsSyncer.js.map +1 -1
- package/dist/solidfs/SolidFsMetaNotes.d.ts +25 -0
- package/dist/solidfs/SolidFsMetaNotes.js +103 -0
- package/dist/solidfs/SolidFsMetaNotes.js.map +1 -0
- package/dist/solidfs/SolidFsSyncJournal.d.ts +2 -2
- package/dist/solidfs/SolidFsSyncJournal.js +9 -4
- package/dist/solidfs/SolidFsSyncJournal.js.map +1 -1
- package/dist/solidfs/SolidFsSyncJournal.jsonld +119 -0
- package/dist/solidfs/WorkspacePrompt.d.ts +13 -0
- package/dist/solidfs/WorkspacePrompt.js +42 -0
- package/dist/solidfs/WorkspacePrompt.js.map +1 -0
- package/dist/solidfs/index.d.ts +3 -0
- package/dist/solidfs/index.js +3 -0
- package/dist/solidfs/index.js.map +1 -1
- package/dist/solidfs/types.d.ts +12 -2
- package/dist/solidfs/types.js.map +1 -1
- package/dist/storage/accessors/MixDataAccessor.d.ts +36 -4
- package/dist/storage/accessors/MixDataAccessor.js +222 -23
- package/dist/storage/accessors/MixDataAccessor.js.map +1 -1
- package/dist/storage/accessors/MixDataAccessor.jsonld +89 -0
- package/dist/storage/accessors/SolidRdfDataAccessor.d.ts +6 -1
- package/dist/storage/accessors/SolidRdfDataAccessor.js +35 -0
- package/dist/storage/accessors/SolidRdfDataAccessor.js.map +1 -1
- package/dist/storage/accessors/SolidRdfDataAccessor.jsonld +20 -0
- package/dist/storage/database/PostgresPoolManager.d.ts +1 -0
- package/dist/storage/database/PostgresPoolManager.js +2 -2
- package/dist/storage/database/PostgresPoolManager.js.map +1 -1
- package/dist/storage/locking/UrlAwareRedisLocker.d.ts +2 -0
- package/dist/storage/locking/UrlAwareRedisLocker.js +65 -0
- package/dist/storage/locking/UrlAwareRedisLocker.js.map +1 -1
- package/dist/storage/locking/UrlAwareRedisLocker.jsonld +19 -0
- package/dist/storage/rdf/PostgresRdfEngine.d.ts +286 -9
- package/dist/storage/rdf/PostgresRdfEngine.js +10773 -2084
- package/dist/storage/rdf/PostgresRdfEngine.js.map +1 -1
- package/dist/storage/rdf/PostgresRdfEngine.jsonld +1693 -89
- package/dist/storage/rdf/PostgresRdfSqlExecutor.d.ts +24 -0
- package/dist/storage/rdf/PostgresRdfSqlExecutor.js +131 -0
- package/dist/storage/rdf/PostgresRdfSqlExecutor.js.map +1 -0
- package/dist/storage/rdf/PostgresRdfTextIndex.d.ts +54 -0
- package/dist/storage/rdf/PostgresRdfTextIndex.js +1255 -0
- package/dist/storage/rdf/PostgresRdfTextIndex.js.map +1 -0
- package/dist/storage/rdf/PostgresRdfTextIndex.jsonld +487 -0
- package/dist/storage/rdf/PostgresRdfVectorIndex.d.ts +46 -0
- package/dist/storage/rdf/PostgresRdfVectorIndex.js +1165 -0
- package/dist/storage/rdf/PostgresRdfVectorIndex.js.map +1 -0
- package/dist/storage/rdf/PostgresRdfVectorIndex.jsonld +423 -0
- package/dist/storage/rdf/Rdf3xIndex.d.ts +14 -1
- package/dist/storage/rdf/Rdf3xIndex.js +286 -2
- package/dist/storage/rdf/Rdf3xIndex.js.map +1 -1
- package/dist/storage/rdf/Rdf3xIndex.jsonld +36 -0
- package/dist/storage/rdf/Rdf3xSchema.d.ts +5 -1
- package/dist/storage/rdf/Rdf3xSchema.js +17 -3
- package/dist/storage/rdf/Rdf3xSchema.js.map +1 -1
- package/dist/storage/rdf/RdfAccessScope.d.ts +22 -0
- package/dist/storage/rdf/RdfAccessScope.js +345 -0
- package/dist/storage/rdf/RdfAccessScope.js.map +1 -0
- package/dist/storage/rdf/RdfAccessScope.jsonld +45 -0
- package/dist/storage/rdf/RdfFusionRankPlan.d.ts +2 -0
- package/dist/storage/rdf/RdfFusionRankPlan.js +186 -0
- package/dist/storage/rdf/RdfFusionRankPlan.js.map +1 -0
- package/dist/storage/rdf/RdfJoinShape.d.ts +8 -0
- package/dist/storage/rdf/RdfJoinShape.js +31 -0
- package/dist/storage/rdf/RdfJoinShape.js.map +1 -0
- package/dist/storage/rdf/RdfQuadIndex.d.ts +5 -2
- package/dist/storage/rdf/RdfQuadIndex.js +94 -6
- package/dist/storage/rdf/RdfQuadIndex.js.map +1 -1
- package/dist/storage/rdf/RdfQuadIndex.jsonld +12 -0
- package/dist/storage/rdf/RdfQueryExecutor.d.ts +3 -4
- package/dist/storage/rdf/RdfQueryExecutor.js +235 -8
- package/dist/storage/rdf/RdfQueryExecutor.js.map +1 -1
- package/dist/storage/rdf/RdfSearchSourceFilter.d.ts +10 -0
- package/dist/storage/rdf/RdfSearchSourceFilter.js +83 -0
- package/dist/storage/rdf/RdfSearchSourceFilter.js.map +1 -0
- package/dist/storage/rdf/RdfSparqlAdapter.d.ts +27 -1
- package/dist/storage/rdf/RdfSparqlAdapter.js +265 -3
- package/dist/storage/rdf/RdfSparqlAdapter.js.map +1 -1
- package/dist/storage/rdf/RdfSparqlAdapter.jsonld +8 -0
- package/dist/storage/rdf/RdfTermDictionary.d.ts +7 -1
- package/dist/storage/rdf/RdfTermDictionary.js +139 -0
- package/dist/storage/rdf/RdfTermDictionary.js.map +1 -1
- package/dist/storage/rdf/RdfTermDictionary.jsonld +4 -0
- package/dist/storage/rdf/RdfTextIndex.d.ts +45 -2
- package/dist/storage/rdf/RdfTextIndex.js +810 -114
- package/dist/storage/rdf/RdfTextIndex.js.map +1 -1
- package/dist/storage/rdf/RdfTextIndex.jsonld +193 -0
- package/dist/storage/rdf/RdfTextProjection.d.ts +10 -0
- package/dist/storage/rdf/RdfTextProjection.js +258 -0
- package/dist/storage/rdf/RdfTextProjection.js.map +1 -0
- package/dist/storage/rdf/RdfVectorIndex.d.ts +30 -2
- package/dist/storage/rdf/RdfVectorIndex.js +461 -38
- package/dist/storage/rdf/RdfVectorIndex.js.map +1 -1
- package/dist/storage/rdf/RdfVectorIndex.jsonld +163 -0
- package/dist/storage/rdf/SolidRdfEngine.d.ts +12 -9
- package/dist/storage/rdf/SolidRdfEngine.js +48 -22
- package/dist/storage/rdf/SolidRdfEngine.js.map +1 -1
- package/dist/storage/rdf/SolidRdfEngine.jsonld +33 -43
- package/dist/storage/rdf/SolidRdfSparqlEngine.d.ts +19 -8
- package/dist/storage/rdf/SolidRdfSparqlEngine.js +674 -44
- package/dist/storage/rdf/SolidRdfSparqlEngine.js.map +1 -1
- package/dist/storage/rdf/SolidRdfSparqlEngine.jsonld +51 -0
- package/dist/storage/rdf/index.d.ts +9 -5
- package/dist/storage/rdf/index.js +42 -1
- package/dist/storage/rdf/index.js.map +1 -1
- package/dist/storage/rdf/models-benchmark.d.ts +264 -2
- package/dist/storage/rdf/models-benchmark.js +4207 -155
- package/dist/storage/rdf/models-benchmark.js.map +1 -1
- package/dist/storage/rdf/types.d.ts +833 -4
- package/dist/storage/rdf/types.js.map +1 -1
- package/dist/storage/rdf/types.jsonld +348 -0
- package/dist/storage/sparql/CompatibilitySparqlEngine.d.ts +14 -13
- package/dist/storage/sparql/CompatibilitySparqlEngine.js +24 -24
- package/dist/storage/sparql/CompatibilitySparqlEngine.js.map +1 -1
- package/dist/storage/sparql/CompatibilitySparqlEngineImpl.d.ts +14 -13
- package/dist/storage/sparql/CompatibilitySparqlEngineImpl.js +30 -18
- package/dist/storage/sparql/CompatibilitySparqlEngineImpl.js.map +1 -1
- package/dist/storage/sparql/SubgraphQueryEngine.d.ts +21 -12
- package/dist/storage/sparql/SubgraphQueryEngine.js +12 -12
- package/dist/storage/sparql/SubgraphQueryEngine.js.map +1 -1
- package/dist/terminal/sandbox/MacOSSandbox.js +2 -1
- package/dist/terminal/sandbox/MacOSSandbox.js.map +1 -1
- package/dist/terminal/sandbox/index.js +2 -1
- package/dist/terminal/sandbox/index.js.map +1 -1
- package/dist/test-utils/no-auth-xpod.js +3 -0
- package/dist/test-utils/no-auth-xpod.js.map +1 -1
- package/dist/tunnel/LocalTunnelProvider.d.ts +3 -0
- package/dist/tunnel/LocalTunnelProvider.js +17 -1
- package/dist/tunnel/LocalTunnelProvider.js.map +1 -1
- package/dist/tunnel/LocalTunnelProvider.jsonld +23 -0
- package/dist/tunnel/SakuraFrpTunnelProvider.d.ts +3 -0
- package/dist/tunnel/SakuraFrpTunnelProvider.js +18 -2
- package/dist/tunnel/SakuraFrpTunnelProvider.js.map +1 -1
- package/dist/tunnel/TunnelProfiles.d.ts +22 -0
- package/dist/tunnel/TunnelProfiles.js +208 -0
- package/dist/tunnel/TunnelProfiles.js.map +1 -0
- package/dist/tunnel/index.d.ts +2 -0
- package/dist/tunnel/index.js +4 -1
- package/dist/tunnel/index.js.map +1 -1
- package/dist/util/identifiers/ClusterIdentifierStrategy.d.ts +3 -0
- package/dist/util/identifiers/ClusterIdentifierStrategy.js +18 -2
- package/dist/util/identifiers/ClusterIdentifierStrategy.js.map +1 -1
- package/dist/util/identifiers/ClusterIdentifierStrategy.jsonld +5 -1
- package/node_modules/@undefineds.co/ai-connection/dist/AiClientConfigurationSection.d.ts +55 -0
- package/node_modules/@undefineds.co/ai-connection/dist/AiClientConfigurationSection.js +167 -0
- package/node_modules/@undefineds.co/ai-connection/dist/AiConnectionHeader.d.ts +3 -0
- package/node_modules/@undefineds.co/ai-connection/dist/AiConnectionHeader.js +8 -0
- package/node_modules/@undefineds.co/ai-connection/dist/AiConnectionList.d.ts +4 -0
- package/node_modules/@undefineds.co/ai-connection/dist/AiConnectionList.js +36 -0
- package/node_modules/@undefineds.co/ai-connection/dist/AiConnectionMain.d.ts +4 -0
- package/node_modules/@undefineds.co/ai-connection/dist/AiConnectionMain.js +37 -0
- package/node_modules/@undefineds.co/ai-connection/dist/AiConnectionMainHeader.d.ts +3 -0
- package/node_modules/@undefineds.co/ai-connection/dist/AiConnectionMainHeader.js +7 -0
- package/node_modules/@undefineds.co/ai-connection/dist/AiConnectionPanel.d.ts +14 -0
- package/node_modules/@undefineds.co/ai-connection/dist/AiConnectionPanel.js +333 -0
- package/node_modules/@undefineds.co/ai-connection/dist/AiProviderCard.d.ts +22 -0
- package/node_modules/@undefineds.co/ai-connection/dist/AiProviderCard.js +43 -0
- package/node_modules/@undefineds.co/ai-connection/dist/AiQuotaCard.d.ts +8 -0
- package/node_modules/@undefineds.co/ai-connection/dist/AiQuotaCard.js +6 -0
- package/node_modules/@undefineds.co/ai-connection/dist/ai-connection-client.d.ts +120 -0
- package/node_modules/@undefineds.co/ai-connection/dist/ai-connection-client.js +414 -0
- package/node_modules/@undefineds.co/ai-connection/dist/client-config/base-adapter.d.ts +32 -0
- package/node_modules/@undefineds.co/ai-connection/dist/client-config/base-adapter.js +212 -0
- package/node_modules/@undefineds.co/ai-connection/dist/client-config/codex.d.ts +14 -0
- package/node_modules/@undefineds.co/ai-connection/dist/client-config/codex.js +90 -0
- package/node_modules/@undefineds.co/ai-connection/dist/client-config/index.cjs +668 -0
- package/node_modules/@undefineds.co/ai-connection/dist/client-config/index.d.ts +6 -0
- package/node_modules/@undefineds.co/ai-connection/dist/client-config/index.js +6 -0
- package/node_modules/@undefineds.co/ai-connection/dist/client-config/json-env-adapter.d.ts +21 -0
- package/node_modules/@undefineds.co/ai-connection/dist/client-config/json-env-adapter.js +82 -0
- package/node_modules/@undefineds.co/ai-connection/dist/client-config/pi.d.ts +13 -0
- package/node_modules/@undefineds.co/ai-connection/dist/client-config/pi.js +83 -0
- package/node_modules/@undefineds.co/ai-connection/dist/client-config/transaction.d.ts +17 -0
- package/node_modules/@undefineds.co/ai-connection/dist/client-config/transaction.js +153 -0
- package/node_modules/@undefineds.co/ai-connection/dist/client-config/types.d.ts +40 -0
- package/node_modules/@undefineds.co/ai-connection/dist/client-config/types.js +1 -0
- package/node_modules/@undefineds.co/ai-connection/dist/controller.d.ts +42 -0
- package/node_modules/@undefineds.co/ai-connection/dist/controller.js +289 -0
- package/node_modules/@undefineds.co/ai-connection/dist/index.d.ts +16 -0
- package/node_modules/@undefineds.co/ai-connection/dist/index.js +41 -0
- package/node_modules/@undefineds.co/ai-connection/dist/manifest.d.ts +1 -0
- package/node_modules/@undefineds.co/ai-connection/dist/manifest.js +18 -0
- package/node_modules/@undefineds.co/ai-connection/dist/service-access.d.ts +3 -0
- package/node_modules/@undefineds.co/ai-connection/dist/service-access.js +133 -0
- package/node_modules/@undefineds.co/ai-connection/package.json +50 -0
- package/node_modules/@undefineds.co/extension-sdk/README.md +299 -0
- package/node_modules/@undefineds.co/extension-sdk/dist/index.d.ts +5 -0
- package/node_modules/@undefineds.co/extension-sdk/dist/index.js +5 -0
- package/node_modules/@undefineds.co/extension-sdk/dist/layout.d.ts +16 -0
- package/node_modules/@undefineds.co/extension-sdk/dist/layout.js +36 -0
- package/node_modules/@undefineds.co/extension-sdk/dist/manifest.d.ts +27 -0
- package/node_modules/@undefineds.co/extension-sdk/dist/manifest.js +79 -0
- package/node_modules/@undefineds.co/extension-sdk/dist/react/app-layout.d.ts +7 -0
- package/node_modules/@undefineds.co/extension-sdk/dist/react/app-layout.js +8 -0
- package/node_modules/@undefineds.co/extension-sdk/dist/react/auth-boundary.d.ts +27 -0
- package/node_modules/@undefineds.co/extension-sdk/dist/react/auth-boundary.js +49 -0
- package/node_modules/@undefineds.co/extension-sdk/dist/react/layout-context.d.ts +11 -0
- package/node_modules/@undefineds.co/extension-sdk/dist/react/layout-context.js +9 -0
- package/node_modules/@undefineds.co/extension-sdk/dist/react/workspace-layout.d.ts +38 -0
- package/node_modules/@undefineds.co/extension-sdk/dist/react/workspace-layout.js +132 -0
- package/node_modules/@undefineds.co/extension-sdk/dist/react.d.ts +12 -0
- package/node_modules/@undefineds.co/extension-sdk/dist/react.js +19 -0
- package/node_modules/@undefineds.co/extension-sdk/dist/testing.d.ts +7 -0
- package/node_modules/@undefineds.co/extension-sdk/dist/testing.js +27 -0
- package/node_modules/@undefineds.co/extension-sdk/dist/web.d.ts +225 -0
- package/node_modules/@undefineds.co/extension-sdk/dist/web.js +142 -0
- package/node_modules/@undefineds.co/extension-sdk/package.json +49 -0
- package/node_modules/@undefineds.co/shared-ui/dist/badge.d.ts +8 -0
- package/node_modules/@undefineds.co/shared-ui/dist/badge.js +17 -0
- package/node_modules/@undefineds.co/shared-ui/dist/button.d.ts +10 -0
- package/node_modules/@undefineds.co/shared-ui/dist/button.js +30 -0
- package/node_modules/@undefineds.co/shared-ui/dist/card.d.ts +7 -0
- package/node_modules/@undefineds.co/shared-ui/dist/card.js +15 -0
- package/node_modules/@undefineds.co/shared-ui/dist/index.d.ts +6 -0
- package/node_modules/@undefineds.co/shared-ui/dist/index.js +6 -0
- package/node_modules/@undefineds.co/shared-ui/dist/input.d.ts +4 -0
- package/node_modules/@undefineds.co/shared-ui/dist/input.js +5 -0
- package/node_modules/@undefineds.co/shared-ui/dist/theme.css +121 -0
- package/node_modules/@undefineds.co/shared-ui/dist/utils.d.ts +2 -0
- package/node_modules/@undefineds.co/shared-ui/dist/utils.js +5 -0
- package/node_modules/@undefineds.co/shared-ui/dist/workspace.d.ts +23 -0
- package/node_modules/@undefineds.co/shared-ui/dist/workspace.js +38 -0
- package/node_modules/@undefineds.co/shared-ui/package.json +39 -0
- package/node_modules/@undefineds.co/solid-sdk/dist/index.d.ts +3 -0
- package/node_modules/@undefineds.co/solid-sdk/dist/index.js +3 -0
- package/node_modules/@undefineds.co/solid-sdk/dist/pod-runtime.d.ts +45 -0
- package/node_modules/@undefineds.co/solid-sdk/dist/pod-runtime.js +147 -0
- package/node_modules/@undefineds.co/solid-sdk/dist/react.d.ts +15 -0
- package/node_modules/@undefineds.co/solid-sdk/dist/react.js +15 -0
- package/node_modules/@undefineds.co/solid-sdk/dist/session.d.ts +42 -0
- package/node_modules/@undefineds.co/solid-sdk/dist/session.js +127 -0
- package/node_modules/@undefineds.co/solid-sdk/package.json +45 -0
- package/package.json +32 -12
- package/static/app/assets/index-BoYHJ6si.js +230 -0
- package/static/app/assets/inrupt-smoke.js +2 -2
- package/static/app/assets/main.css +1 -1
- package/static/app/assets/main.js +9 -9
- package/static/dashboard/assets/NetworkPage-Brt79fuQ.js +2 -0
- package/static/dashboard/assets/PaneListHeader-57nvMwH6.js +1 -0
- package/static/dashboard/assets/PodPage-CM6do1vB.js +2 -0
- package/static/dashboard/assets/ServicesPage-BUNxGJRz.js +1 -0
- package/static/dashboard/assets/card-B9Zjf_2p.js +1 -0
- package/static/dashboard/assets/dashboard-8C6o666W.js +305 -0
- package/static/dashboard/assets/dashboard-CSdewNeA.css +1 -0
- package/static/dashboard/assets/database-DPh9wDY9.js +1 -0
- package/static/dashboard/assets/external-link-VbMQvVMz.js +1 -0
- package/static/dashboard/assets/index-RfiFckzb.js +51 -0
- package/static/dashboard/assets/refresh-cw-BxVxNxNr.js +1 -0
- package/static/dashboard/assets/services-status-context-DKmJ7ISr.js +1 -0
- package/static/dashboard/dashboard.html +2 -2
- package/static/settings/assets/ModelsPage-D_IH7AH3.js +1 -0
- package/static/settings/assets/PaneListHeader-Bgaze006.js +1 -0
- package/static/settings/assets/PodPage-Cy1VNObw.js +2 -0
- package/static/settings/assets/ServicesPage-BsFaxVWC.js +1 -0
- package/static/settings/assets/SettingsPage-UafNWE_p.js +48 -0
- package/static/settings/assets/card-B_bXSIn-.js +1 -0
- package/static/settings/assets/services-status-context-DiX-AbrP.js +1 -0
- package/static/settings/assets/settings-B30oMfZq.js +305 -0
- package/static/settings/assets/settings-CSdewNeA.css +1 -0
- package/static/settings/assets/workspace-layout-Dv1Yn9Ci.js +1 -0
- package/static/settings/auth.html +21 -0
- package/static/settings/reachability.html +221 -0
- package/static/settings/reachability.svg +7 -0
- package/static/settings/reachability.webmanifest +18 -0
- package/static/settings/settings.html +13 -0
- package/static/settings/signal-pod.html +293 -0
- package/static/settings/vite.svg +1 -0
- package/dist/api/service/ai-gateway-transport.d.ts +0 -25
- package/dist/api/service/ai-gateway-transport.js +0 -136
- package/dist/api/service/ai-gateway-transport.js.map +0 -1
- package/dist/api/service/chat-protocol-adapters.d.ts +0 -5
- package/dist/api/service/chat-protocol-adapters.js +0 -146
- package/dist/api/service/chat-protocol-adapters.js.map +0 -1
- package/dist/api/service/chat-routing.d.ts +0 -8
- package/dist/api/service/chat-routing.js +0 -16
- package/dist/api/service/chat-routing.js.map +0 -1
- package/dist/api/service/platform-ai-config.d.ts +0 -10
- package/dist/api/service/platform-ai-config.js +0 -76
- package/dist/api/service/platform-ai-config.js.map +0 -1
- package/dist/document/DocumentParser.js.map +0 -1
- package/dist/document/JinaDocumentParser.js.map +0 -1
- package/static/app/assets/index-C1yksyT4.js +0 -171
- package/static/dashboard/assets/dashboard-BssaVKTn.css +0 -1
- package/static/dashboard/assets/dashboard-Ckuadl3C.js +0 -54
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"MixDataAccessor.js","sourceRoot":"","sources":["../../../src/storage/accessors/MixDataAccessor.ts"],"names":[],"mappings":"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","sourcesContent":["import { Readable } from 'stream';\nimport { getLoggerFor } from 'global-logger-factory';\nimport arrayifyStream from 'arrayify-stream';\nimport { DataFactory, Parser, Writer, termToId } from 'n3';\nimport jsonld from 'jsonld';\nimport { rdfParser } from 'rdf-parse';\nimport { Parser as SparqlParser } from 'sparqljs';\n\nimport type { Quad, Term } from '@rdfjs/types';\nimport {\n isContainerIdentifier,\n RepresentationMetadata,\n INTERNAL_QUADS,\n FoundHttpError,\n NotFoundHttpError,\n POSIX,\n SOLID_META,\n XSD,\n toLiteral,\n guardStream,\n addResourceMetadata,\n updateModifiedDate,\n} from '@solid/community-server';\nimport type {\n Representation,\n ResourceIdentifier,\n Guarded,\n DataAccessor,\n} from '@solid/community-server';\nimport {\n RdfSparqlAdapter,\n UnsupportedSparqlQueryError,\n type RdfSparqlUpdateDeltaOperation,\n} from '../rdf/RdfSparqlAdapter';\nimport {\n isLineAddressableRdfPath,\n isRdfDocumentPath,\n rdfContentTypeForPath,\n} from '../rdf/RdfContentTypes';\nimport { RdfQuadIndex } from '../rdf/RdfQuadIndex';\nimport { serializeRdfXml } from '../rdf/RdfXmlSerializer';\nimport { SolidRdfEngine } from '../rdf/SolidRdfEngine';\nimport type {\n RdfBindingRow,\n RdfQuery,\n RdfQueryPattern,\n RdfQueryTermPattern,\n RdfSourceInput,\n RdfValuesBindingSource,\n} from '../rdf/types';\nimport { metadataRequestContext } from '../MetadataRequestContext';\n\nexport interface LocalRdfDocument {\n data: Guarded<Readable>;\n metadata: RepresentationMetadata;\n}\n\nexport interface LocalRdfReadableAccessor {\n getLocalRdfDocument(identifier: ResourceIdentifier): Promise<LocalRdfDocument>;\n}\n\nexport interface LocalRdfIndexAccessor {\n syncLocalRdfDocument(\n identifier: ResourceIdentifier,\n data?: Guarded<Readable>,\n contentType?: string,\n options?: LocalRdfSyncOptions,\n ): Promise<void>;\n deleteLocalRdfIndex(identifier: ResourceIdentifier): Promise<void>;\n}\n\nexport interface LocalRdfSyncOptions {\n source?: string;\n workspace?: string;\n localPath?: string;\n sourceVersion?: string;\n}\n\nexport interface SourceScopedStructuredRdfAccessor {\n writeRdfSourceDocument(\n identifier: ResourceIdentifier,\n quads: Quad[],\n metadata: RepresentationMetadata,\n source: RdfSourceInput,\n ): Promise<void>;\n deleteRdfSourceDocument(identifier: ResourceIdentifier): Promise<void>;\n}\n\ninterface LocalRdfGraphState {\n quads: Quad[];\n existed: boolean;\n}\n\ninterface LocalRdfAuthorityPatch {\n identifier: ResourceIdentifier;\n previousQuads: Quad[];\n previousExists: boolean;\n nextQuads: Quad[];\n}\n\n/**\n * MixDataAccessor - Routes data to appropriate storage based on content type\n * \n * - RDF data (internal/quads) -> structuredDataAccessor (Solid RDF engine by default)\n * - RDF file mirrors (.ttl/.jsonld) -> rdfFileDataAccessor (local FileSystem)\n * - Other data (binary, text, etc.) -> unstructuredDataAccessor (FileSystem, Minio, etc.)\n * \n * This uses composition instead of inheritance, allowing any DataAccessor\n * to be used as the RDF storage backend.\n */\nexport class MixDataAccessor implements DataAccessor {\n protected readonly logger = getLoggerFor(this);\n private readonly rdfSparqlAdapter = new RdfSparqlAdapter();\n \n private readonly structuredDataAccessor: DataAccessor;\n private readonly unstructuredDataAccessor: DataAccessor;\n private readonly rdfFileDataAccessor: DataAccessor;\n private readonly presignedRedirectEnabled: boolean;\n private readonly mirrorContainersToUnstructured: boolean;\n\n constructor(\n structuredDataAccessor: DataAccessor,\n unstructuredDataAccessor: DataAccessor,\n presignedRedirectEnabled = false,\n mirrorContainersToUnstructured = true,\n rdfFileDataAccessor: DataAccessor = unstructuredDataAccessor,\n ) {\n this.structuredDataAccessor = structuredDataAccessor;\n this.unstructuredDataAccessor = unstructuredDataAccessor;\n this.rdfFileDataAccessor = rdfFileDataAccessor;\n this.presignedRedirectEnabled = presignedRedirectEnabled;\n this.mirrorContainersToUnstructured = mirrorContainersToUnstructured;\n }\n\n /**\n * This accessor supports all types of data.\n */\n public async canHandle(representation: Representation): Promise<void> {\n return void 0;\n }\n\n /**\n * Checks if the given representation is unstructured (non-RDF).\n */\n private isUnstructured(metadata: RepresentationMetadata): boolean {\n return metadata.contentType !== INTERNAL_QUADS;\n }\n\n public async getData(identifier: ResourceIdentifier): Promise<Guarded<Readable>> {\n const metadata = await this.getMetadata(identifier);\n if (this.isUnstructured(metadata)) {\n // When presigned redirect is enabled and the unstructured accessor supports it,\n // generate a presigned URL and throw FoundHttpError to trigger a 302 redirect.\n if (this.presignedRedirectEnabled) {\n const accessor = this.unstructuredDataAccessor as { getPresignedUrl?: (id: ResourceIdentifier, expires?: number) => Promise<string> };\n if (typeof accessor.getPresignedUrl === 'function') {\n const presignedUrl = await accessor.getPresignedUrl(identifier);\n this.logger.debug(`Presigned redirect: ${identifier.path}`);\n throw new FoundHttpError(presignedUrl);\n }\n }\n return await this.unstructuredDataAccessor.getData(identifier);\n }\n return await this.structuredDataAccessor.getData(identifier);\n }\n\n /**\n * Read the local RDF file mirror used by SolidFS/local-first HTTP reads.\n *\n * `getData()` intentionally keeps returning the structured quad stream for\n * CSS internals. This method is the explicit file-content path for callers\n * that need a real Turtle/JSON-LD byte stream.\n */\n public async getLocalRdfDocument(identifier: ResourceIdentifier): Promise<LocalRdfDocument> {\n if (isContainerIdentifier(identifier)) {\n throw new NotFoundHttpError();\n }\n\n if (this.isByLineRdfIdentifier(identifier)) {\n try {\n return {\n data: await this.rdfFileDataAccessor.getData(identifier),\n metadata: await this.getExistingLocalRdfMetadata(identifier),\n };\n } catch (error) {\n if (!NotFoundHttpError.isInstance(error)) {\n throw error;\n }\n }\n }\n\n const metadata = await this.getMetadata(identifier);\n if (!this.isLocalMirroredRdf(identifier, metadata)) {\n throw new NotFoundHttpError();\n }\n\n try {\n return {\n data: await this.rdfFileDataAccessor.getData(identifier),\n metadata: await this.getLocalRdfMetadata(identifier, metadata),\n };\n } catch (error) {\n if (!NotFoundHttpError.isInstance(error)) {\n throw error;\n }\n }\n\n await this.refreshLocalRdfMirror(identifier);\n\n return {\n data: await this.rdfFileDataAccessor.getData(identifier),\n metadata: await this.getLocalRdfMetadata(identifier, metadata),\n };\n }\n\n public async getMetadata(identifier: ResourceIdentifier): Promise<RepresentationMetadata> {\n const cache = metadataRequestContext.getStore()?.metadataCache;\n const cacheKey = identifier.path;\n const cached = cache?.get(cacheKey);\n if (cached) {\n if (cached.kind === 'miss') {\n throw new NotFoundHttpError();\n }\n return new RepresentationMetadata(cached.metadata);\n }\n\n try {\n const metadata = await this.structuredDataAccessor.getMetadata(identifier);\n\n if (!metadata.contentType) {\n metadata.contentType = INTERNAL_QUADS;\n }\n\n cache?.set(cacheKey, { kind: 'hit', metadata: new RepresentationMetadata(metadata) });\n return metadata;\n } catch (error) {\n if (NotFoundHttpError.isInstance(error)) {\n cache?.set(cacheKey, { kind: 'miss' });\n }\n throw error;\n }\n }\n\n public async* getChildren(identifier: ResourceIdentifier): AsyncIterableIterator<RepresentationMetadata> {\n // Children metadata is stored in the structured accessor\n yield* this.structuredDataAccessor.getChildren(identifier);\n }\n\n public async writeContainer(\n identifier: ResourceIdentifier,\n metadata: RepresentationMetadata,\n ): Promise<void> {\n if (this.mirrorContainersToUnstructured && this.isUnstructured(metadata)) {\n await this.unstructuredDataAccessor.writeContainer(identifier, metadata);\n }\n await this.structuredDataAccessor.writeContainer(identifier, metadata);\n this.invalidateMetadataCache(identifier);\n }\n\n public async writeDocument(\n identifier: ResourceIdentifier,\n data: Guarded<Readable>,\n metadata: RepresentationMetadata,\n ): Promise<void> {\n if (this.isUnstructured(metadata)) {\n await this.writeUnstructuredDocument(identifier, data, metadata);\n this.invalidateMetadataCache(identifier);\n return;\n }\n await this.writeRdfDocument(identifier, data, metadata);\n this.invalidateMetadataCache(identifier);\n }\n\n public async writeMetadata(identifier: ResourceIdentifier, metadata: RepresentationMetadata): Promise<void> {\n // Metadata always goes to structured storage\n await this.structuredDataAccessor.writeMetadata(identifier, metadata);\n this.invalidateMetadataCache(identifier);\n }\n\n public async deleteResource(identifier: ResourceIdentifier): Promise<void> {\n const metadata = await this.getMetadata(identifier);\n \n // RDF by-line resources are mirrored to local file storage so shell tools\n // can operate on real files; remove that mirror together with the index.\n if (this.isLocalMirroredRdf(identifier, metadata)) {\n await this.deleteRdfFileResourceIfPresent(identifier);\n } else if (this.isUnstructured(metadata)) {\n await this.deleteUnstructuredResourceIfPresent(identifier);\n }\n \n // Always delete from structured storage (contains metadata)\n await this.structuredDataAccessor.deleteResource(identifier);\n this.invalidateMetadataCache(identifier);\n }\n\n /**\n * Execute SPARQL UPDATE.\n *\n * Supported embedded deltas patch the local RDF authority file first and then\n * rebuild the structured RDF index. The structured accessor decides whether\n * unsupported shapes have an explicitly configured compatibility path.\n */\n public async executeSparqlUpdate(query: string, baseIri?: string): Promise<void> {\n if (baseIri) {\n const identifier = { path: baseIri };\n if (await this.shouldApplyLocalRdfSparqlUpdate(identifier)) {\n try {\n const writtenIdentifiers = await this.executeLocalRdfSparqlUpdate(query, identifier, new Set([identifier.path]));\n for (const writtenIdentifier of writtenIdentifiers) {\n this.invalidateMetadataCache(writtenIdentifier);\n }\n return;\n } catch (error) {\n if (!(error instanceof UnsupportedSparqlQueryError)) {\n throw error;\n }\n }\n }\n }\n\n const accessor = this.structuredDataAccessor as { executeSparqlUpdate?: (query: string, baseIri?: string) => Promise<void> };\n if (typeof accessor.executeSparqlUpdate !== 'function') {\n throw new Error('Structured data accessor does not support SPARQL UPDATE');\n }\n await accessor.executeSparqlUpdate(query, baseIri);\n if (baseIri) {\n const identifier = { path: baseIri };\n await this.refreshLocalRdfMirror(identifier);\n this.invalidateMetadataCache(identifier);\n }\n }\n\n private async shouldApplyLocalRdfSparqlUpdate(identifier: ResourceIdentifier): Promise<boolean> {\n if (this.isByLineRdfIdentifier(identifier)) {\n return true;\n }\n\n try {\n return this.isLocalMirroredRdf(identifier, await this.getMetadata(identifier));\n } catch (error) {\n if (NotFoundHttpError.isInstance(error)) {\n return true;\n }\n throw error;\n }\n }\n\n private async executeLocalRdfSparqlUpdate(\n query: string,\n identifier: ResourceIdentifier,\n localRdfAuthorityIris: ReadonlySet<string>,\n ): Promise<ResourceIdentifier[]> {\n const parsed = new SparqlParser({ baseIRI: identifier.path }).parse(query);\n const delta = this.rdfSparqlAdapter.compileUpdateDelta(parsed, this.parentContainer(identifier).path, {\n defaultGraph: identifier.path,\n });\n const writableGraphIris = this.localRdfDeltaWriteGraphIris(delta.operations, localRdfAuthorityIris);\n const graphStates = await this.loadLocalRdfDeltaGraphs(delta.operations, writableGraphIris, localRdfAuthorityIris);\n const graphQuads = new Map([...graphStates].map(([ graphIri, state ]) => [graphIri, state.quads]));\n const nextQuadsByGraph = this.applyLocalRdfDelta(graphQuads, delta.operations, writableGraphIris);\n const patches = writableGraphIris.map((graphIri): LocalRdfAuthorityPatch => {\n const previous = graphStates.get(graphIri);\n return {\n identifier: { path: graphIri },\n previousQuads: previous?.quads ?? [],\n previousExists: previous?.existed ?? false,\n nextQuads: nextQuadsByGraph.get(graphIri) ?? [],\n };\n });\n await this.writeLocalRdfAuthorityPatches(patches);\n return patches.map((patch) => patch.identifier);\n }\n\n private applyLocalRdfDelta(\n graphQuads: Map<string, Quad[]>,\n operations: RdfSparqlUpdateDeltaOperation[],\n writableGraphIris: string[],\n ): Map<string, Quad[]> {\n const writableGraphs = new Set(writableGraphIris);\n const byGraph = new Map<string, Map<string, Quad>>();\n for (const [ graphIri, quads ] of graphQuads) {\n byGraph.set(graphIri, new Map(quads.map((quad) => [this.quadKey(quad), quad])));\n }\n const currentQuads = (): Quad[] => [...byGraph.values()].flatMap((quads) => [...quads.values()]);\n const writableQuads = (graphIri: string): Map<string, Quad> => {\n let quads = byGraph.get(graphIri);\n if (!quads) {\n quads = new Map();\n byGraph.set(graphIri, quads);\n }\n return quads;\n };\n const deleteQuads = (quads: Quad[]): void => {\n for (const quad of quads) {\n const target = writableQuads(this.localRdfWriteGraphIri(quad.graph, writableGraphs));\n target.delete(this.quadKey(quad));\n }\n };\n const insertQuads = (quads: Quad[]): void => {\n for (const quad of quads) {\n const target = writableQuads(this.localRdfWriteGraphIri(quad.graph, writableGraphs));\n target.set(this.quadKey(quad), quad);\n }\n };\n\n for (const operation of operations) {\n if (operation.type === 'insert') {\n insertQuads(operation.quads);\n continue;\n }\n\n if (operation.type === 'delete') {\n deleteQuads(operation.quads);\n continue;\n }\n\n if (operation.type === 'insertDeleteWhere') {\n const rows = this.queryLocalUpdateBindings(currentQuads(), operation.query);\n deleteQuads(this.rdfSparqlAdapter.materializeDeleteWhere(operation.deletes, rows));\n insertQuads(this.rdfSparqlAdapter.materializeDeleteWhere(operation.inserts, rows));\n continue;\n }\n\n if (operation.type === 'insertWhere') {\n const rows = this.queryLocalUpdateBindings(currentQuads(), operation.query);\n insertQuads(this.rdfSparqlAdapter.materializeDeleteWhere(operation.inserts, rows));\n continue;\n }\n\n const rows = this.queryLocalUpdateBindings(currentQuads(), operation.query);\n deleteQuads(this.rdfSparqlAdapter.materializeDeleteWhere(operation.template, rows));\n }\n\n return new Map(writableGraphIris.map((graphIri) => [graphIri, [...(byGraph.get(graphIri)?.values() ?? [])]]));\n }\n\n private async loadLocalRdfDeltaGraphs(\n operations: RdfSparqlUpdateDeltaOperation[],\n writableGraphIris: readonly string[],\n localRdfAuthorityIris: ReadonlySet<string>,\n ): Promise<Map<string, LocalRdfGraphState>> {\n const graphIris = this.localRdfDeltaGraphIris(operations, writableGraphIris);\n const graphStates = new Map<string, LocalRdfGraphState>();\n for (const graphIri of graphIris) {\n const graphIdentifier = { path: graphIri };\n if (!this.isLocalRdfAuthorityIdentifier(graphIdentifier, localRdfAuthorityIris)) {\n throw new UnsupportedSparqlQueryError('Embedded local RDF update only supports by-line local RDF graph documents');\n }\n const existing = await this.readLocalRdfState(graphIdentifier);\n const graph = DataFactory.namedNode(graphIri);\n const quads = existing.text.length > 0\n ? await this.parseLocalRdf(graphIdentifier, existing.text, this.localRdfContentType(graphIdentifier))\n .then((items) => items.map((quad) => this.toGraphQuad(quad, graph)))\n : [];\n graphStates.set(graphIri, { quads, existed: existing.existed });\n }\n return graphStates;\n }\n\n private localRdfDeltaGraphIris(\n operations: RdfSparqlUpdateDeltaOperation[],\n writableGraphIris: readonly string[],\n ): string[] {\n const graphIris = new Set<string>(writableGraphIris);\n for (const operation of operations) {\n const graphTerms = operation.type === 'deleteWhere'\n ? [\n ...operation.template.map((item) => item.graph),\n ...this.queryGraphTerms(operation.query),\n ]\n : operation.type === 'insertDeleteWhere'\n ? [\n ...operation.deletes.map((item) => item.graph),\n ...operation.inserts.map((item) => item.graph),\n ...this.queryGraphTerms(operation.query),\n ]\n : operation.type === 'insertWhere'\n ? [\n ...operation.inserts.map((item) => item.graph),\n ...this.queryGraphTerms(operation.query),\n ]\n : operation.quads.map((quad) => quad.graph);\n for (const graph of graphTerms) {\n this.addNamedGraphIris(graph, graphIris);\n }\n }\n return [...graphIris];\n }\n\n private localRdfDeltaWriteGraphIris(\n operations: RdfSparqlUpdateDeltaOperation[],\n localRdfAuthorityIris: ReadonlySet<string>,\n ): string[] {\n const graphIris = new Set<string>();\n for (const operation of operations) {\n if (operation.type === 'deleteWhere') {\n this.addWritableTemplateGraphIris(operation.template.map((item) => item.graph), operation.query, graphIris, localRdfAuthorityIris);\n continue;\n }\n if (operation.type === 'insertDeleteWhere') {\n this.addWritableTemplateGraphIris([\n ...operation.deletes.map((item) => item.graph),\n ...operation.inserts.map((item) => item.graph),\n ], operation.query, graphIris, localRdfAuthorityIris);\n continue;\n }\n if (operation.type === 'insertWhere') {\n this.addWritableTemplateGraphIris(operation.inserts.map((item) => item.graph), operation.query, graphIris, localRdfAuthorityIris);\n continue;\n }\n const graphTerms = operation.quads.map((quad) => quad.graph);\n for (const graph of graphTerms) {\n this.addWritableNamedGraphIri(graph, graphIris, localRdfAuthorityIris);\n }\n }\n if (graphIris.size === 0) {\n throw new UnsupportedSparqlQueryError('Embedded local RDF update requires explicit local RDF graph write targets');\n }\n return [...graphIris];\n }\n\n private addWritableTemplateGraphIris(\n graphs: RdfQueryTermPattern[],\n query: RdfQuery,\n graphIris: Set<string>,\n localRdfAuthorityIris: ReadonlySet<string>,\n ): void {\n for (const graph of graphs) {\n if (this.isQueryVariable(graph)) {\n this.addWritableGraphVariableIris(query, graph.variable, graphIris, localRdfAuthorityIris);\n continue;\n }\n this.addWritableNamedGraphIri(graph, graphIris, localRdfAuthorityIris);\n }\n }\n\n private addWritableGraphVariableIris(\n query: RdfQuery,\n variable: string,\n graphIris: Set<string>,\n localRdfAuthorityIris: ReadonlySet<string>,\n ): void {\n const values = new Set<string>();\n this.collectGraphVariableFilterIris(query, variable, values);\n if (values.size === 0) {\n throw new UnsupportedSparqlQueryError('Embedded local RDF update only supports finite GRAPH variable write targets');\n }\n for (const value of values) {\n this.addWritableNamedGraphIri(DataFactory.namedNode(value) as unknown as Term, graphIris, localRdfAuthorityIris);\n }\n }\n\n private localRdfWriteGraphIri(graph: Term, writableGraphs: Set<string>): string {\n if (graph.termType !== 'NamedNode' || !writableGraphs.has(graph.value)) {\n throw new UnsupportedSparqlQueryError('Embedded local RDF update can only write declared local RDF graph documents');\n }\n return graph.value;\n }\n\n private queryLocalUpdateBindings(\n quads: Quad[],\n query: RdfQuery,\n ): RdfBindingRow[] {\n const index = new RdfQuadIndex({ path: ':memory:' });\n index.open();\n try {\n const engine = new SolidRdfEngine({ index });\n engine.put(quads);\n return engine.query(query).bindings;\n } finally {\n index.close();\n }\n }\n\n private queryGraphTerms(query: RdfQuery): RdfQueryTermPattern[] {\n const graphTerms: RdfQueryTermPattern[] = [];\n const graphVariables = new Set<string>();\n this.collectQueryGraphTerms(query, graphTerms, graphVariables);\n this.collectGraphVariableFilterTerms(query, graphVariables, graphTerms);\n return graphTerms;\n }\n\n private collectQueryGraphTerms(\n query: RdfQuery | {\n patterns: RdfQueryPattern[];\n values?: RdfValuesBindingSource[];\n optional?: RdfQuery['optional'];\n unions?: RdfQuery['unions'];\n minus?: RdfQuery['minus'];\n exists?: RdfQuery['exists'];\n },\n graphTerms: RdfQueryTermPattern[],\n graphVariables: Set<string>,\n ): void {\n for (const pattern of query.patterns) {\n if (!pattern.graph) {\n continue;\n }\n graphTerms.push(pattern.graph);\n if (this.isQueryVariable(pattern.graph)) {\n graphVariables.add(pattern.graph.variable);\n }\n }\n for (const optional of query.optional ?? []) {\n this.collectQueryGraphTerms(Array.isArray(optional) ? { patterns: optional } : optional, graphTerms, graphVariables);\n }\n for (const union of query.unions ?? []) {\n for (const branch of union.branches) {\n this.collectQueryGraphTerms(branch, graphTerms, graphVariables);\n }\n }\n for (const minus of query.minus ?? []) {\n this.collectQueryGraphTerms(minus, graphTerms, graphVariables);\n }\n for (const exists of query.exists ?? []) {\n this.collectQueryGraphTerms(exists, graphTerms, graphVariables);\n }\n }\n\n private collectGraphVariableFilterTerms(\n query: RdfQuery | {\n values?: RdfValuesBindingSource[];\n filters?: RdfQuery['filters'];\n optional?: RdfQuery['optional'];\n unions?: RdfQuery['unions'];\n minus?: RdfQuery['minus'];\n exists?: RdfQuery['exists'];\n },\n graphVariables: Set<string>,\n graphTerms: RdfQueryTermPattern[],\n ): void {\n for (const filter of query.filters ?? []) {\n if (!graphVariables.has(filter.variable)) {\n continue;\n }\n if (filter.value && this.isRdfTerm(filter.value)) {\n graphTerms.push(filter.value);\n }\n for (const value of filter.values ?? []) {\n if (this.isRdfTerm(value)) {\n graphTerms.push(value);\n }\n }\n }\n this.collectGraphVariableValueTerms(query.values ?? [], graphVariables, graphTerms);\n for (const optional of query.optional ?? []) {\n if (!Array.isArray(optional)) {\n this.collectGraphVariableFilterTerms(optional, graphVariables, graphTerms);\n }\n }\n for (const union of query.unions ?? []) {\n for (const branch of union.branches) {\n this.collectGraphVariableFilterTerms(branch, graphVariables, graphTerms);\n }\n }\n for (const minus of query.minus ?? []) {\n this.collectGraphVariableFilterTerms(minus, graphVariables, graphTerms);\n }\n for (const exists of query.exists ?? []) {\n this.collectGraphVariableFilterTerms(exists, graphVariables, graphTerms);\n }\n }\n\n private collectGraphVariableFilterIris(\n query: RdfQuery | {\n values?: RdfValuesBindingSource[];\n filters?: RdfQuery['filters'];\n optional?: RdfQuery['optional'];\n unions?: RdfQuery['unions'];\n minus?: RdfQuery['minus'];\n exists?: RdfQuery['exists'];\n },\n variable: string,\n values: Set<string>,\n ): void {\n for (const filter of query.filters ?? []) {\n if (filter.variable !== variable) {\n continue;\n }\n if ((filter.operator === '$eq' || filter.operator === '$sameTerm') && filter.value && this.isRdfTerm(filter.value)) {\n this.addGraphFilterValueIri(filter.value, values);\n }\n if (filter.operator === '$in') {\n for (const value of filter.values ?? []) {\n if (this.isRdfTerm(value)) {\n this.addGraphFilterValueIri(value, values);\n }\n }\n }\n }\n this.collectGraphVariableValueIris(query.values ?? [], variable, values);\n for (const optional of query.optional ?? []) {\n if (!Array.isArray(optional)) {\n this.collectGraphVariableFilterIris(optional, variable, values);\n }\n }\n for (const union of query.unions ?? []) {\n for (const branch of union.branches) {\n this.collectGraphVariableFilterIris(branch, variable, values);\n }\n }\n for (const minus of query.minus ?? []) {\n this.collectGraphVariableFilterIris(minus, variable, values);\n }\n for (const exists of query.exists ?? []) {\n this.collectGraphVariableFilterIris(exists, variable, values);\n }\n }\n\n private collectGraphVariableValueTerms(\n sources: readonly RdfValuesBindingSource[],\n graphVariables: Set<string>,\n graphTerms: RdfQueryTermPattern[],\n ): void {\n for (const source of sources) {\n for (const variable of source.variables) {\n if (!graphVariables.has(variable)) {\n continue;\n }\n for (const row of source.rows) {\n const value = row[variable];\n if (value) {\n graphTerms.push(value);\n }\n }\n }\n }\n }\n\n private collectGraphVariableValueIris(\n sources: readonly RdfValuesBindingSource[],\n variable: string,\n values: Set<string>,\n ): void {\n for (const source of sources) {\n if (!source.variables.includes(variable)) {\n continue;\n }\n for (const row of source.rows) {\n const value = row[variable];\n if (value) {\n this.addGraphFilterValueIri(value, values);\n }\n }\n }\n }\n\n private addGraphFilterValueIri(value: Term, values: Set<string>): void {\n if (value.termType !== 'NamedNode') {\n throw new UnsupportedSparqlQueryError('Embedded local RDF update GRAPH variable write targets must be named graph documents');\n }\n values.add(value.value);\n }\n\n private addNamedGraphIris(graph: RdfQueryTermPattern | Term, graphIris: Set<string>): void {\n if (this.isRdfTerm(graph)) {\n if (graph.termType !== 'NamedNode') {\n throw new UnsupportedSparqlQueryError('Embedded local RDF update only supports named graph documents');\n }\n graphIris.add(graph.value);\n return;\n }\n const values = (graph as { $in?: unknown }).$in;\n if (Array.isArray(values) && values.every((value) => this.isRdfTerm(value))) {\n for (const value of values) {\n if (value.termType !== 'NamedNode') {\n throw new UnsupportedSparqlQueryError('Embedded local RDF update only supports named graph documents');\n }\n graphIris.add(value.value);\n }\n return;\n }\n if (this.isQueryVariable(graph)) {\n return;\n }\n throw new UnsupportedSparqlQueryError('Embedded local RDF update only supports explicit local RDF graph documents');\n }\n\n private addWritableNamedGraphIri(\n graph: RdfQueryTermPattern | Term,\n graphIris: Set<string>,\n localRdfAuthorityIris: ReadonlySet<string>,\n ): void {\n if (!this.isRdfTerm(graph) || graph.termType !== 'NamedNode') {\n throw new UnsupportedSparqlQueryError('Embedded local RDF update only supports explicit local RDF graph write targets');\n }\n if (!this.isLocalRdfAuthorityIdentifier({ path: graph.value }, localRdfAuthorityIris)) {\n throw new UnsupportedSparqlQueryError('Embedded local RDF update only supports by-line local RDF graph write targets');\n }\n graphIris.add(graph.value);\n }\n\n private isLocalRdfAuthorityIdentifier(\n identifier: ResourceIdentifier,\n localRdfAuthorityIris: ReadonlySet<string>,\n ): boolean {\n return this.isByLineRdfIdentifier(identifier) || localRdfAuthorityIris.has(identifier.path);\n }\n\n private isQueryVariable(value: unknown): value is { variable: string } {\n return Boolean(value && typeof value === 'object' && 'variable' in value);\n }\n\n private isRdfTerm(value: unknown): value is Term {\n return Boolean(value && typeof value === 'object' && 'termType' in value);\n }\n\n private async readLocalRdfState(identifier: ResourceIdentifier): Promise<{ text: string; existed: boolean }> {\n try {\n return {\n text: await this.readStreamText(await this.rdfFileDataAccessor.getData(identifier)),\n existed: true,\n };\n } catch (error) {\n if (NotFoundHttpError.isInstance(error)) {\n await this.refreshLocalRdfMirror(identifier);\n try {\n return {\n text: await this.readStreamText(await this.rdfFileDataAccessor.getData(identifier)),\n existed: true,\n };\n } catch (retryError) {\n if (NotFoundHttpError.isInstance(retryError)) {\n return { text: '', existed: false };\n }\n throw retryError;\n }\n }\n throw error;\n }\n }\n\n private async writeLocalRdfAuthority(identifier: ResourceIdentifier, quads: Quad[]): Promise<void> {\n await this.ensureRdfFileParentContainers(identifier);\n await this.rdfFileDataAccessor.writeDocument(\n identifier,\n guardStream(Readable.from([ await this.serializeQuadsForLocalFile(identifier, quads) ])),\n this.createLocalRdfMetadata(identifier, new RepresentationMetadata(identifier)),\n );\n }\n\n private async writeLocalRdfAuthorityPatches(patches: LocalRdfAuthorityPatch[]): Promise<void> {\n const applied: LocalRdfAuthorityPatch[] = [];\n try {\n for (const patch of patches) {\n let localAuthorityWritten = false;\n try {\n const authorityQuads = patch.nextQuads.map((quad) => this.toDefaultGraphQuad(quad));\n await this.writeLocalRdfAuthority(patch.identifier, authorityQuads);\n localAuthorityWritten = true;\n await this.writeStructuredRdfIndex(patch.identifier, authorityQuads, new RepresentationMetadata(patch.identifier));\n applied.push(patch);\n } catch (error) {\n if (localAuthorityWritten) {\n applied.push(patch);\n }\n throw error;\n }\n }\n } catch (error) {\n await this.rollbackLocalRdfAuthorityPatches(applied);\n throw error;\n }\n }\n\n private async rollbackLocalRdfAuthorityPatches(patches: LocalRdfAuthorityPatch[]): Promise<void> {\n const failures: string[] = [];\n for (const patch of patches.slice().reverse()) {\n try {\n if (patch.previousExists) {\n const authorityQuads = patch.previousQuads.map((quad) => this.toDefaultGraphQuad(quad));\n await this.writeLocalRdfAuthority(patch.identifier, authorityQuads);\n await this.writeStructuredRdfIndex(patch.identifier, authorityQuads, new RepresentationMetadata(patch.identifier));\n } else {\n await this.deleteRdfFileResourceIfPresent(patch.identifier);\n await this.deleteLocalRdfIndex(patch.identifier);\n }\n this.invalidateMetadataCache(patch.identifier);\n } catch (rollbackError) {\n failures.push(`${patch.identifier.path}: ${rollbackError instanceof Error ? rollbackError.message : String(rollbackError)}`);\n }\n }\n if (failures.length > 0) {\n this.logger.warn(`Failed to fully roll back local RDF authority patch: ${failures.join('; ')}`);\n }\n }\n\n private toDefaultGraphQuad(quad: Quad): Quad {\n return DataFactory.quad(quad.subject, quad.predicate, quad.object);\n }\n\n private toGraphQuad(quad: Quad, graph: Term): Quad {\n return DataFactory.quad(quad.subject, quad.predicate, quad.object, graph as any) as Quad;\n }\n\n private quadKey(quad: Quad): string {\n return [quad.graph, quad.subject, quad.predicate, quad.object]\n .map((term) => termToId(term as any))\n .join('\\u001f');\n }\n\n /**\n * Rebuild the structured RDF index from an already-written local RDF file.\n *\n * SolidFS uses this after tools edit `.ttl`/`.jsonld` files directly. The\n * local file remains the content authority; the structured accessor is only\n * refreshed as query/index state.\n */\n public async syncLocalRdfDocument(\n identifier: ResourceIdentifier,\n data?: Guarded<Readable>,\n contentType?: string,\n options?: LocalRdfSyncOptions,\n ): Promise<void> {\n if (!this.isRdfDocumentIdentifier(identifier)) {\n throw new Error(`Cannot sync non RDF document into RDF index: ${identifier.path}`);\n }\n\n const source = data ?? await this.rdfFileDataAccessor.getData(identifier);\n const localContentType = contentType ?? this.localRdfContentType(identifier);\n const text = await this.readStreamText(source);\n if (data) {\n await this.ensureRdfFileParentContainers(identifier);\n await this.rdfFileDataAccessor.writeDocument(\n identifier,\n guardStream(Readable.from([ text ])),\n this.createLocalRdfMetadata(identifier, new RepresentationMetadata(identifier)),\n );\n }\n const quads = await this.parseLocalRdf(identifier, text, localContentType);\n await this.writeStructuredRdfIndex(identifier, quads, new RepresentationMetadata(identifier), {\n ...options,\n contentType: localContentType,\n });\n this.invalidateMetadataCache(identifier);\n }\n\n public async deleteLocalRdfIndex(identifier: ResourceIdentifier): Promise<void> {\n try {\n const sourceScopedAccessor = this.sourceScopedStructuredAccessor();\n if (sourceScopedAccessor) {\n await sourceScopedAccessor.deleteRdfSourceDocument(identifier);\n } else {\n await this.structuredDataAccessor.deleteResource(identifier);\n }\n this.invalidateMetadataCache(identifier);\n } catch (error) {\n if (!NotFoundHttpError.isInstance(error)) {\n throw error;\n }\n }\n }\n\n private async writeRdfDocument(\n identifier: ResourceIdentifier,\n data: Guarded<Readable>,\n metadata: RepresentationMetadata,\n ): Promise<void> {\n const quads = await arrayifyStream<Quad>(data);\n const structuredMetadata = new RepresentationMetadata(metadata);\n addResourceMetadata(structuredMetadata, false);\n updateModifiedDate(structuredMetadata);\n await this.ensureRdfFileParentContainers(identifier);\n\n await this.rdfFileDataAccessor.writeDocument(\n identifier,\n guardStream(Readable.from([ await this.serializeQuadsForLocalFile(identifier, quads) ])),\n this.createLocalRdfMetadata(identifier, metadata),\n );\n\n try {\n await this.writeStructuredRdfIndex(identifier, quads, structuredMetadata);\n } catch (error) {\n await this.deleteRdfFileResourceIfPresent(identifier);\n throw error;\n }\n }\n\n private async writeStructuredRdfIndex(\n identifier: ResourceIdentifier,\n quads: Quad[],\n metadata: RepresentationMetadata,\n options: LocalRdfSyncOptions & { contentType?: string } = {},\n ): Promise<void> {\n const structuredMetadata = new RepresentationMetadata(metadata);\n addResourceMetadata(structuredMetadata, false);\n updateModifiedDate(structuredMetadata);\n const sourceScopedAccessor = this.sourceScopedStructuredAccessor();\n if (sourceScopedAccessor) {\n await sourceScopedAccessor.writeRdfSourceDocument(\n identifier,\n quads,\n structuredMetadata,\n this.rdfSourceInput(identifier, options),\n );\n return;\n }\n\n await this.structuredDataAccessor.writeDocument(identifier, guardStream(Readable.from(quads)), structuredMetadata);\n }\n\n private async refreshLocalRdfMirror(identifier: ResourceIdentifier): Promise<void> {\n let metadata: RepresentationMetadata;\n let quads: Quad[];\n try {\n metadata = await this.structuredDataAccessor.getMetadata(identifier);\n if (!this.isLocalMirroredRdf(identifier, metadata)) {\n return;\n }\n quads = await arrayifyStream<Quad>(await this.structuredDataAccessor.getData(identifier));\n } catch (error) {\n if (NotFoundHttpError.isInstance(error)) {\n await this.deleteRdfFileResourceIfPresent(identifier);\n return;\n }\n throw error;\n }\n\n await this.ensureRdfFileParentContainers(identifier);\n await this.rdfFileDataAccessor.writeDocument(\n identifier,\n guardStream(Readable.from([ await this.serializeQuadsForLocalFile(identifier, quads) ])),\n this.createLocalRdfMetadata(identifier, metadata),\n );\n }\n\n private async getLocalRdfMetadata(\n identifier: ResourceIdentifier,\n sourceMetadata: RepresentationMetadata,\n ): Promise<RepresentationMetadata> {\n try {\n return await this.getExistingLocalRdfMetadata(identifier);\n } catch (error) {\n if (!NotFoundHttpError.isInstance(error)) {\n throw error;\n }\n return this.createLocalRdfMetadata(identifier, sourceMetadata);\n }\n }\n\n private async getExistingLocalRdfMetadata(identifier: ResourceIdentifier): Promise<RepresentationMetadata> {\n try {\n const metadata = await this.rdfFileDataAccessor.getMetadata(identifier);\n metadata.contentType = this.localRdfContentType(identifier);\n return metadata;\n } catch (error) {\n if (NotFoundHttpError.isInstance(error)) {\n throw error;\n }\n this.logger.warn(`Ignoring unreadable local RDF metadata for ${identifier.path}: ${error instanceof Error ? error.message : String(error)}`);\n return this.createLocalRdfMetadata(identifier, new RepresentationMetadata(identifier));\n }\n }\n\n private createLocalRdfMetadata(\n identifier: ResourceIdentifier,\n metadata: RepresentationMetadata,\n ): RepresentationMetadata {\n const localMetadata = new RepresentationMetadata(metadata);\n const graphScopedQuads = localMetadata.quads()\n .filter((quad) => quad.graph.termType !== 'DefaultGraph');\n localMetadata.removeQuads(graphScopedQuads);\n localMetadata.contentType = this.localRdfContentType(identifier);\n return localMetadata;\n }\n\n private localRdfContentType(identifier: ResourceIdentifier): string {\n return rdfContentTypeForPath(identifier.path) ?? 'text/turtle';\n }\n\n private sourceScopedStructuredAccessor(): SourceScopedStructuredRdfAccessor | undefined {\n const accessor = this.structuredDataAccessor as Partial<SourceScopedStructuredRdfAccessor>;\n if (\n typeof accessor.writeRdfSourceDocument === 'function'\n && typeof accessor.deleteRdfSourceDocument === 'function'\n ) {\n return accessor as SourceScopedStructuredRdfAccessor;\n }\n return undefined;\n }\n\n private rdfSourceInput(\n identifier: ResourceIdentifier,\n options: LocalRdfSyncOptions & { contentType?: string },\n ): RdfSourceInput {\n const workspace = options.workspace ?? this.parentContainer(identifier).path;\n return {\n source: options.source ?? identifier.path,\n workspace,\n localPath: options.localPath ?? this.relativePathFromWorkspace(identifier.path, workspace),\n contentType: options.contentType ?? this.localRdfContentType(identifier),\n sourceVersion: options.sourceVersion,\n };\n }\n\n private relativePathFromWorkspace(identifierPath: string, workspaceValue: string): string | undefined {\n try {\n const resource = new URL(identifierPath);\n const workspace = new URL(workspaceValue.endsWith('/') ? workspaceValue : `${workspaceValue}/`);\n if (resource.origin !== workspace.origin || !resource.pathname.startsWith(workspace.pathname)) {\n return undefined;\n }\n return decodeURIComponent(resource.pathname.slice(workspace.pathname.length));\n } catch {\n return undefined;\n }\n }\n\n private isByLineRdfIdentifier(identifier: ResourceIdentifier): boolean {\n return isLineAddressableRdfPath(identifier.path);\n }\n\n private isRdfDocumentIdentifier(identifier: ResourceIdentifier): boolean {\n return isRdfDocumentPath(identifier.path);\n }\n\n private isLocalMirroredRdf(\n identifier: ResourceIdentifier,\n metadata: RepresentationMetadata,\n ): boolean {\n return metadata.contentType === INTERNAL_QUADS || this.isRdfDocumentIdentifier(identifier);\n }\n\n private async serializeQuadsForLocalFile(identifier: ResourceIdentifier, quads: Quad[]): Promise<string> {\n if (this.localRdfContentType(identifier) === 'application/ld+json') {\n const nquads = await this.serializeNQuads(quads);\n const document = await jsonld.fromRDF(nquads, { format: 'application/n-quads' });\n return `${JSON.stringify(document, null, 2)}\\n`;\n }\n\n if (this.localRdfContentType(identifier) === 'application/rdf+xml') {\n return serializeRdfXml(quads);\n }\n\n const writer = new Writer({ format: this.localRdfContentType(identifier) });\n return writer.quadsToString(quads);\n }\n\n private async serializeNQuads(quads: Quad[]): Promise<string> {\n return new Promise((resolve, reject) => {\n const writer = new Writer({ format: 'application/n-quads' });\n writer.addQuads(quads);\n writer.end((error, result) => {\n if (error) {\n reject(error);\n return;\n }\n resolve(result);\n });\n });\n }\n\n private async parseLocalRdf(\n identifier: ResourceIdentifier,\n text: string,\n contentType: string,\n ): Promise<Quad[]> {\n if (contentType === 'application/ld+json') {\n const nquads = await jsonld.toRDF(JSON.parse(text), {\n base: identifier.path,\n format: 'application/n-quads',\n }) as string;\n return new Parser({ format: 'application/n-quads', baseIRI: identifier.path }).parse(nquads);\n }\n\n if (contentType === 'application/rdf+xml') {\n return arrayifyStream<Quad>(rdfParser.parse(Readable.from([ text ]), {\n contentType,\n baseIRI: identifier.path,\n }) as any);\n }\n\n return new Parser({ format: contentType, baseIRI: identifier.path }).parse(text);\n }\n\n private async readStreamText(data: Guarded<Readable>): Promise<string> {\n const chunks = await arrayifyStream(data as any);\n return chunks\n .map((chunk: Buffer | Uint8Array | string) => typeof chunk === 'string' ? chunk : Buffer.from(chunk).toString('utf8'))\n .join('');\n }\n\n /**\n * Write unstructured document: store data in unstructured accessor,\n * then save metadata in structured accessor.\n */\n private async writeUnstructuredDocument(\n identifier: ResourceIdentifier,\n data: Guarded<Readable>,\n metadata: RepresentationMetadata,\n ): Promise<void> {\n await this.ensureUnstructuredParentContainers(identifier);\n\n // Write the actual data to unstructured storage\n await this.unstructuredDataAccessor.writeDocument(identifier, data, metadata);\n \n let updatedMetadata: RepresentationMetadata;\n if (typeof metadata.contentLength === 'number') {\n updatedMetadata = new RepresentationMetadata(metadata);\n updatedMetadata.add(\n POSIX.terms.size,\n toLiteral(metadata.contentLength, XSD.terms.integer),\n SOLID_META.terms.ResponseMetadata,\n );\n } else {\n updatedMetadata = await this.unstructuredDataAccessor.getMetadata(identifier);\n\n const removing: Quad[] = [];\n for (const quad of updatedMetadata.quads()) {\n if (!/^http/.test(quad.predicate.value)) {\n removing.push(quad);\n }\n }\n updatedMetadata.removeQuads(removing);\n }\n \n // Save metadata to structured storage\n try {\n await this.structuredDataAccessor.writeMetadata(identifier, updatedMetadata);\n } catch (error) {\n this.logger.error(`Error writing metadata for ${identifier.path}: ${error}`);\n // Rollback: delete the unstructured data\n await this.unstructuredDataAccessor.deleteResource(identifier);\n throw error;\n }\n }\n\n private async deleteUnstructuredResourceIfPresent(identifier: ResourceIdentifier): Promise<void> {\n try {\n await this.unstructuredDataAccessor.deleteResource(identifier);\n } catch (error: any) {\n if (error?.code !== 'ENOENT' && error?.code !== 'ENOTDIR' && !NotFoundHttpError.isInstance(error)) {\n throw error;\n }\n }\n }\n\n private async deleteRdfFileResourceIfPresent(identifier: ResourceIdentifier): Promise<void> {\n try {\n await this.rdfFileDataAccessor.deleteResource(identifier);\n } catch (error: any) {\n if (error?.code !== 'ENOENT' && error?.code !== 'ENOTDIR' && !NotFoundHttpError.isInstance(error)) {\n throw error;\n }\n }\n }\n\n private async ensureUnstructuredParentContainers(identifier: ResourceIdentifier): Promise<void> {\n await this.ensureParentContainers(identifier, this.unstructuredDataAccessor);\n }\n\n private async ensureRdfFileParentContainers(identifier: ResourceIdentifier): Promise<void> {\n await this.ensureParentContainers(identifier, this.rdfFileDataAccessor);\n }\n\n private async ensureParentContainers(identifier: ResourceIdentifier, accessor: DataAccessor): Promise<void> {\n const containers: ResourceIdentifier[] = [];\n let current = this.parentContainer(identifier);\n\n while (!this.sameIdentifier(current, identifier)) {\n containers.push(current);\n const next = this.parentContainer(current);\n if (this.sameIdentifier(next, current)) {\n break;\n }\n current = next;\n }\n\n for (const container of containers.reverse()) {\n await this.writeContainerIfMissing(accessor, container);\n }\n }\n\n private async writeContainerIfMissing(accessor: DataAccessor, identifier: ResourceIdentifier): Promise<void> {\n try {\n await accessor.getMetadata(identifier);\n return;\n } catch (error) {\n if (!NotFoundHttpError.isInstance(error)) {\n throw error;\n }\n }\n\n await accessor.writeContainer(identifier, new RepresentationMetadata(identifier));\n }\n\n private sameIdentifier(left: ResourceIdentifier, right: ResourceIdentifier): boolean {\n return left.path === right.path;\n }\n\n private parentContainer(identifier: ResourceIdentifier): ResourceIdentifier {\n try {\n const url = new URL(identifier.path);\n if (url.pathname === '/' || url.pathname === '') {\n return { path: url.href.endsWith('/') ? url.href : `${url.href}/` };\n }\n const segments = url.pathname.replace(/\\/+$/u, '').split('/');\n segments.pop();\n url.pathname = `${segments.join('/') || '/'}`.replace(/\\/?$/u, '/');\n url.search = '';\n url.hash = '';\n return { path: url.href };\n } catch {\n const trimmed = identifier.path.replace(/\\/+$/u, '');\n const slashIndex = trimmed.lastIndexOf('/');\n if (slashIndex < 0) {\n return identifier;\n }\n return { path: `${trimmed.slice(0, slashIndex + 1)}` };\n }\n }\n\n private invalidateMetadataCache(identifier: ResourceIdentifier): void {\n const cache = metadataRequestContext.getStore()?.metadataCache;\n if (!cache) {\n return;\n }\n\n const exact = identifier.path;\n const trimmed = exact.endsWith('/') ? exact.replace(/\\/+$/u, '') : exact;\n const withSlash = exact.endsWith('/') ? exact : `${exact}/`;\n cache.delete(exact);\n cache.delete(trimmed);\n cache.delete(withSlash);\n }\n}\n"]}
|
|
1
|
+
{"version":3,"file":"MixDataAccessor.js","sourceRoot":"","sources":["../../../src/storage/accessors/MixDataAccessor.ts"],"names":[],"mappings":"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","sourcesContent":["import { createHash, randomUUID } from 'node:crypto';\nimport path from 'node:path';\nimport { Readable } from 'stream';\nimport { getLoggerFor } from 'global-logger-factory';\nimport arrayifyStream from 'arrayify-stream';\nimport { DataFactory, Parser, Writer, termToId } from 'n3';\nimport jsonld from 'jsonld';\nimport { rdfParser } from 'rdf-parse';\nimport { Parser as SparqlParser } from 'sparqljs';\n\nimport type { Quad, Term } from '@rdfjs/types';\nimport {\n isContainerIdentifier,\n RepresentationMetadata,\n INTERNAL_QUADS,\n FoundHttpError,\n NotFoundHttpError,\n POSIX,\n SOLID_META,\n XSD,\n toLiteral,\n guardStream,\n addResourceMetadata,\n updateModifiedDate,\n} from '@solid/community-server';\nimport type {\n Representation,\n ResourceIdentifier,\n Guarded,\n DataAccessor,\n FileIdentifierMapper,\n} from '@solid/community-server';\nimport {\n RdfSparqlAdapter,\n UnsupportedSparqlQueryError,\n type RdfSparqlUpdateDeltaOperation,\n} from '../rdf/RdfSparqlAdapter';\nimport {\n isLineAddressableRdfPath,\n isRdfDocumentPath,\n rdfContentTypeForPath,\n} from '../rdf/RdfContentTypes';\nimport { createRdfEntityTextChunks } from '../rdf/RdfTextProjection';\nimport { RdfQuadIndex } from '../rdf/RdfQuadIndex';\nimport { serializeRdfXml } from '../rdf/RdfXmlSerializer';\nimport { SolidRdfEngine } from '../rdf/SolidRdfEngine';\nimport { rdfAccessGraphAllowed, type RdfAccessScope } from '../rdf/RdfAccessScope';\nimport type {\n RdfBindingRow,\n RdfQuery,\n RdfQueryPattern,\n RdfQueryTermPattern,\n RdfSourceInput,\n RdfTextChunkInput,\n RdfTextSourceInput,\n RdfTermRewriteInput,\n RdfTermRewriteResult,\n RdfVectorChunkInput,\n RdfVectorSourceInput,\n RdfValuesBindingSource,\n} from '../rdf/types';\nimport { metadataRequestContext } from '../MetadataRequestContext';\nimport type { SolidFsChange, SolidFsManifest } from '../../solidfs/types';\n\nexport interface LocalRdfDocument {\n data: Guarded<Readable>;\n metadata: RepresentationMetadata;\n}\n\nexport interface LocalRdfReadableAccessor {\n getLocalRdfDocument(identifier: ResourceIdentifier): Promise<LocalRdfDocument>;\n}\n\nexport interface LocalRdfIndexAccessor {\n syncLocalRdfDocument(\n identifier: ResourceIdentifier,\n data?: Guarded<Readable>,\n contentType?: string,\n options?: LocalRdfSyncOptions,\n ): Promise<void>;\n deleteLocalRdfIndex(identifier: ResourceIdentifier): Promise<void>;\n moveLocalRdfIndex?(\n previousIdentifier: ResourceIdentifier,\n nextIdentifier: ResourceIdentifier,\n options?: LocalRdfMoveOptions,\n ): Promise<number>;\n rewriteTerms?(input: RdfTermRewriteInput): Promise<RdfTermRewriteResult> | RdfTermRewriteResult;\n}\n\nexport interface LocalRdfSyncOptions {\n source?: string;\n workspace?: string;\n localPath?: string;\n sourceVersion?: string;\n}\n\nexport interface LocalRdfMoveOptions extends LocalRdfSyncOptions {\n previousSource?: string;\n}\n\nexport interface SourceScopedStructuredRdfAccessor {\n writeRdfSourceDocument(\n identifier: ResourceIdentifier,\n quads: Quad[],\n metadata: RepresentationMetadata,\n source: RdfSourceInput,\n ): Promise<void>;\n deleteRdfSourceDocument(identifier: ResourceIdentifier): Promise<void>;\n moveRdfSourceDocument?(oldSource: string, next: RdfSourceInput): Promise<number>;\n indexTextSource?(source: RdfTextSourceInput, text: string, chunks?: RdfTextChunkInput[]): Promise<void>;\n deleteTextSource?(source: string): Promise<number>;\n indexVectorSource?(source: RdfVectorSourceInput, chunks: RdfVectorChunkInput[]): Promise<void>;\n deleteVectorSource?(source: string): Promise<number>;\n}\n\nexport interface LocalRdfAuthorityJournalOperation {\n id: string;\n}\n\nexport interface LocalRdfAuthorityJournal {\n recordLocalCommitted(\n change: SolidFsChange,\n workspace: SolidFsManifest,\n txId?: string,\n ): Promise<LocalRdfAuthorityJournalOperation>;\n markDone(id: string): Promise<void>;\n markRetryableFailure(id: string, error: unknown): Promise<void>;\n markReconcileRequired(id: string, reason: string): Promise<void>;\n}\n\ninterface LocalRdfGraphState {\n quads: Quad[];\n existed: boolean;\n}\n\ninterface LocalRdfAuthorityPatch {\n identifier: ResourceIdentifier;\n previousQuads: Quad[];\n previousExists: boolean;\n nextQuads: Quad[];\n}\n\ninterface LocalRdfAuthorityJournalPatch {\n patch: LocalRdfAuthorityPatch;\n operation: LocalRdfAuthorityJournalOperation;\n}\n\ninterface LocalRdfAuthorityJournalPatchDraft {\n patch: LocalRdfAuthorityPatch;\n change: SolidFsChange;\n workspace: SolidFsManifest;\n txId?: string;\n}\n\n/**\n * MixDataAccessor - Routes data to appropriate storage based on content type\n * \n * - RDF data (internal/quads) -> structuredDataAccessor (Solid RDF engine by default)\n * - RDF file mirrors (.ttl/.jsonld) -> rdfFileDataAccessor (local FileSystem)\n * - Other data (binary, text, etc.) -> unstructuredDataAccessor (FileSystem, Minio, etc.)\n * \n * This uses composition instead of inheritance, allowing any DataAccessor\n * to be used as the RDF storage backend.\n */\nexport class MixDataAccessor implements DataAccessor {\n protected readonly logger = getLoggerFor(this);\n private readonly rdfSparqlAdapter = new RdfSparqlAdapter();\n \n private readonly structuredDataAccessor: DataAccessor;\n private readonly unstructuredDataAccessor: DataAccessor;\n private readonly rdfFileDataAccessor: DataAccessor;\n private readonly rdfFileMapper?: FileIdentifierMapper;\n private readonly localRdfAuthorityJournal?: LocalRdfAuthorityJournal;\n private readonly presignedRedirectEnabled: boolean;\n private readonly mirrorContainersToUnstructured: boolean;\n private readonly textSearchIndexingEnabled: boolean;\n\n constructor(\n structuredDataAccessor: DataAccessor,\n unstructuredDataAccessor: DataAccessor,\n presignedRedirectEnabled = false,\n mirrorContainersToUnstructured = true,\n rdfFileDataAccessor: DataAccessor = unstructuredDataAccessor,\n textSearchIndexingEnabled = false,\n rdfFileMapper?: FileIdentifierMapper,\n localRdfAuthorityJournal?: LocalRdfAuthorityJournal,\n ) {\n this.structuredDataAccessor = structuredDataAccessor;\n this.unstructuredDataAccessor = unstructuredDataAccessor;\n this.rdfFileDataAccessor = rdfFileDataAccessor;\n this.rdfFileMapper = rdfFileMapper;\n this.localRdfAuthorityJournal = localRdfAuthorityJournal;\n this.presignedRedirectEnabled = presignedRedirectEnabled;\n this.mirrorContainersToUnstructured = mirrorContainersToUnstructured;\n this.textSearchIndexingEnabled = textSearchIndexingEnabled;\n }\n\n /**\n * This accessor supports all types of data.\n */\n public async canHandle(representation: Representation): Promise<void> {\n return void 0;\n }\n\n /**\n * Checks if the given representation is unstructured (non-RDF).\n */\n private isUnstructured(metadata: RepresentationMetadata): boolean {\n return metadata.contentType !== INTERNAL_QUADS;\n }\n\n public async getData(identifier: ResourceIdentifier): Promise<Guarded<Readable>> {\n const metadata = await this.getMetadata(identifier);\n if (this.isUnstructured(metadata)) {\n // When presigned redirect is enabled and the unstructured accessor supports it,\n // generate a presigned URL and throw FoundHttpError to trigger a 302 redirect.\n if (this.presignedRedirectEnabled) {\n const accessor = this.unstructuredDataAccessor as { getPresignedUrl?: (id: ResourceIdentifier, expires?: number) => Promise<string> };\n if (typeof accessor.getPresignedUrl === 'function') {\n const presignedUrl = await accessor.getPresignedUrl(identifier);\n this.logger.debug(`Presigned redirect: ${identifier.path}`);\n throw new FoundHttpError(presignedUrl);\n }\n }\n return await this.unstructuredDataAccessor.getData(identifier);\n }\n return await this.structuredDataAccessor.getData(identifier);\n }\n\n /**\n * Read the local RDF file mirror used by SolidFS/local-first HTTP reads.\n *\n * `getData()` intentionally keeps returning the structured quad stream for\n * CSS internals. This method is the explicit file-content path for callers\n * that need a real Turtle/JSON-LD byte stream.\n */\n public async getLocalRdfDocument(identifier: ResourceIdentifier): Promise<LocalRdfDocument> {\n if (isContainerIdentifier(identifier)) {\n throw new NotFoundHttpError();\n }\n\n if (this.isByLineRdfIdentifier(identifier)) {\n try {\n return {\n data: await this.rdfFileDataAccessor.getData(identifier),\n metadata: await this.getExistingLocalRdfMetadata(identifier),\n };\n } catch (error) {\n if (!NotFoundHttpError.isInstance(error)) {\n throw error;\n }\n }\n }\n\n const metadata = await this.getMetadata(identifier);\n if (!this.isLocalMirroredRdf(identifier, metadata)) {\n throw new NotFoundHttpError();\n }\n\n try {\n return {\n data: await this.rdfFileDataAccessor.getData(identifier),\n metadata: await this.getLocalRdfMetadata(identifier, metadata),\n };\n } catch (error) {\n if (!NotFoundHttpError.isInstance(error)) {\n throw error;\n }\n }\n\n await this.refreshLocalRdfMirror(identifier);\n\n return {\n data: await this.rdfFileDataAccessor.getData(identifier),\n metadata: await this.getLocalRdfMetadata(identifier, metadata),\n };\n }\n\n public async getMetadata(identifier: ResourceIdentifier): Promise<RepresentationMetadata> {\n const cache = metadataRequestContext.getStore()?.metadataCache;\n const cacheKey = identifier.path;\n const cached = cache?.get(cacheKey);\n if (cached) {\n if (cached.kind === 'miss') {\n throw new NotFoundHttpError();\n }\n return new RepresentationMetadata(cached.metadata);\n }\n\n try {\n const metadata = await this.structuredDataAccessor.getMetadata(identifier);\n\n if (!metadata.contentType) {\n metadata.contentType = INTERNAL_QUADS;\n }\n\n cache?.set(cacheKey, { kind: 'hit', metadata: new RepresentationMetadata(metadata) });\n return metadata;\n } catch (error) {\n if (NotFoundHttpError.isInstance(error)) {\n cache?.set(cacheKey, { kind: 'miss' });\n }\n throw error;\n }\n }\n\n public async* getChildren(identifier: ResourceIdentifier): AsyncIterableIterator<RepresentationMetadata> {\n // Children metadata is stored in the structured accessor\n yield* this.structuredDataAccessor.getChildren(identifier);\n }\n\n public async writeContainer(\n identifier: ResourceIdentifier,\n metadata: RepresentationMetadata,\n ): Promise<void> {\n if (this.mirrorContainersToUnstructured && this.isUnstructured(metadata)) {\n await this.unstructuredDataAccessor.writeContainer(identifier, metadata);\n }\n await this.structuredDataAccessor.writeContainer(identifier, metadata);\n this.invalidateMetadataCache(identifier);\n }\n\n public async writeDocument(\n identifier: ResourceIdentifier,\n data: Guarded<Readable>,\n metadata: RepresentationMetadata,\n ): Promise<void> {\n if (this.isUnstructured(metadata)) {\n await this.writeUnstructuredDocument(identifier, data, metadata);\n this.invalidateMetadataCache(identifier);\n return;\n }\n await this.writeRdfDocument(identifier, data, metadata);\n this.invalidateMetadataCache(identifier);\n }\n\n public async writeMetadata(identifier: ResourceIdentifier, metadata: RepresentationMetadata): Promise<void> {\n // Metadata always goes to structured storage\n await this.structuredDataAccessor.writeMetadata(identifier, metadata);\n this.invalidateMetadataCache(identifier);\n }\n\n public async deleteResource(identifier: ResourceIdentifier): Promise<void> {\n const metadata = await this.getMetadata(identifier);\n \n // RDF by-line resources are mirrored to local file storage so shell tools\n // can operate on real files; remove that mirror together with the index.\n if (this.isLocalMirroredRdf(identifier, metadata)) {\n await this.deleteRdfFileResourceIfPresent(identifier);\n await this.deleteSearchIndexes(identifier);\n } else if (this.isUnstructured(metadata)) {\n await this.deleteUnstructuredResourceIfPresent(identifier);\n }\n \n // Always delete from structured storage (contains metadata)\n await this.structuredDataAccessor.deleteResource(identifier);\n this.invalidateMetadataCache(identifier);\n }\n\n /**\n * Execute SPARQL UPDATE.\n *\n * Supported embedded deltas patch the local RDF authority file first and then\n * rebuild the structured RDF index. The structured accessor decides whether\n * unsupported shapes have an explicitly configured compatibility path.\n */\n public async executeSparqlUpdate(\n query: string,\n baseIri?: string,\n accessScope?: RdfAccessScope,\n ): Promise<void> {\n if (baseIri) {\n const identifier = { path: baseIri };\n if (await this.shouldApplyLocalRdfSparqlUpdate(identifier)) {\n try {\n const writtenIdentifiers = await this.executeLocalRdfSparqlUpdate(\n query,\n identifier,\n new Set([identifier.path]),\n accessScope,\n );\n for (const writtenIdentifier of writtenIdentifiers) {\n this.invalidateMetadataCache(writtenIdentifier);\n }\n return;\n } catch (error) {\n if (!(error instanceof UnsupportedSparqlQueryError)) {\n throw error;\n }\n }\n }\n }\n\n const accessor = this.structuredDataAccessor as { executeSparqlUpdate?: (query: string, baseIri?: string) => Promise<void> };\n if (typeof accessor.executeSparqlUpdate !== 'function') {\n throw new Error('Structured data accessor does not support SPARQL UPDATE');\n }\n await accessor.executeSparqlUpdate(query, baseIri);\n if (baseIri) {\n const identifier = { path: baseIri };\n await this.refreshLocalRdfMirror(identifier);\n this.invalidateMetadataCache(identifier);\n }\n }\n\n private async shouldApplyLocalRdfSparqlUpdate(identifier: ResourceIdentifier): Promise<boolean> {\n if (this.isByLineRdfIdentifier(identifier)) {\n return true;\n }\n\n try {\n return this.isLocalMirroredRdf(identifier, await this.getMetadata(identifier));\n } catch (error) {\n if (NotFoundHttpError.isInstance(error)) {\n return true;\n }\n throw error;\n }\n }\n\n private async executeLocalRdfSparqlUpdate(\n query: string,\n identifier: ResourceIdentifier,\n localRdfAuthorityIris: ReadonlySet<string>,\n accessScope?: RdfAccessScope,\n ): Promise<ResourceIdentifier[]> {\n const parsed = new SparqlParser({ baseIRI: identifier.path }).parse(query);\n const delta = this.rdfSparqlAdapter.compileUpdateDelta(parsed, this.parentContainer(identifier).path, {\n defaultGraph: identifier.path,\n });\n const writableGraphIris = this.localRdfDeltaWriteGraphIris(delta.operations, localRdfAuthorityIris);\n const graphStates = await this.loadLocalRdfDeltaGraphs(delta.operations, writableGraphIris, localRdfAuthorityIris);\n const graphQuads = new Map([...graphStates].map(([ graphIri, state ]) => [graphIri, state.quads]));\n const nextQuadsByGraph = this.applyLocalRdfDelta(\n graphQuads,\n delta.operations,\n writableGraphIris,\n accessScope,\n );\n const patches = writableGraphIris.map((graphIri): LocalRdfAuthorityPatch => {\n const previous = graphStates.get(graphIri);\n return {\n identifier: { path: graphIri },\n previousQuads: previous?.quads ?? [],\n previousExists: previous?.existed ?? false,\n nextQuads: nextQuadsByGraph.get(graphIri) ?? [],\n };\n });\n await this.writeLocalRdfAuthorityPatches(patches);\n return patches.map((patch) => patch.identifier);\n }\n\n private applyLocalRdfDelta(\n graphQuads: Map<string, Quad[]>,\n operations: RdfSparqlUpdateDeltaOperation[],\n writableGraphIris: string[],\n accessScope?: RdfAccessScope,\n ): Map<string, Quad[]> {\n const writableGraphs = new Set(writableGraphIris);\n const byGraph = new Map<string, Map<string, Quad>>();\n for (const [ graphIri, quads ] of graphQuads) {\n byGraph.set(graphIri, new Map(quads.map((quad) => [this.quadKey(quad), quad])));\n }\n const currentQuads = (): Quad[] => [...byGraph.entries()]\n .filter(([ graphIri ]) => !accessScope || rdfAccessGraphAllowed(graphIri, accessScope))\n .flatMap(([, quads ]) => [...quads.values()]);\n const writableQuads = (graphIri: string): Map<string, Quad> => {\n let quads = byGraph.get(graphIri);\n if (!quads) {\n quads = new Map();\n byGraph.set(graphIri, quads);\n }\n return quads;\n };\n const deleteQuads = (quads: Quad[]): void => {\n for (const quad of quads) {\n const target = writableQuads(this.localRdfWriteGraphIri(quad.graph, writableGraphs));\n target.delete(this.quadKey(quad));\n }\n };\n const insertQuads = (quads: Quad[]): void => {\n for (const quad of quads) {\n const target = writableQuads(this.localRdfWriteGraphIri(quad.graph, writableGraphs));\n target.set(this.quadKey(quad), quad);\n }\n };\n\n for (const operation of operations) {\n if (operation.type === 'insert') {\n insertQuads(operation.quads);\n continue;\n }\n\n if (operation.type === 'delete') {\n deleteQuads(operation.quads);\n continue;\n }\n\n if (operation.type === 'insertDeleteWhere') {\n const rows = this.queryLocalUpdateBindings(currentQuads(), operation.query);\n deleteQuads(this.rdfSparqlAdapter.materializeDeleteWhere(operation.deletes, rows));\n insertQuads(this.rdfSparqlAdapter.materializeDeleteWhere(operation.inserts, rows));\n continue;\n }\n\n if (operation.type === 'insertWhere') {\n const rows = this.queryLocalUpdateBindings(currentQuads(), operation.query);\n insertQuads(this.rdfSparqlAdapter.materializeDeleteWhere(operation.inserts, rows));\n continue;\n }\n\n const rows = this.queryLocalUpdateBindings(currentQuads(), operation.query);\n deleteQuads(this.rdfSparqlAdapter.materializeDeleteWhere(operation.template, rows));\n }\n\n return new Map(writableGraphIris.map((graphIri) => [graphIri, [...(byGraph.get(graphIri)?.values() ?? [])]]));\n }\n\n private async loadLocalRdfDeltaGraphs(\n operations: RdfSparqlUpdateDeltaOperation[],\n writableGraphIris: readonly string[],\n localRdfAuthorityIris: ReadonlySet<string>,\n ): Promise<Map<string, LocalRdfGraphState>> {\n const graphIris = this.localRdfDeltaGraphIris(operations, writableGraphIris);\n const graphStates = new Map<string, LocalRdfGraphState>();\n for (const graphIri of graphIris) {\n const graphIdentifier = { path: graphIri };\n if (!this.isLocalRdfAuthorityIdentifier(graphIdentifier, localRdfAuthorityIris)) {\n throw new UnsupportedSparqlQueryError('Embedded local RDF update only supports by-line local RDF graph documents');\n }\n const existing = await this.readLocalRdfState(graphIdentifier);\n const graph = DataFactory.namedNode(graphIri);\n const quads = existing.text.length > 0\n ? await this.parseLocalRdf(graphIdentifier, existing.text, this.localRdfContentType(graphIdentifier))\n .then((items) => items.map((quad) => this.toGraphQuad(quad, graph)))\n : [];\n graphStates.set(graphIri, { quads, existed: existing.existed });\n }\n return graphStates;\n }\n\n private localRdfDeltaGraphIris(\n operations: RdfSparqlUpdateDeltaOperation[],\n writableGraphIris: readonly string[],\n ): string[] {\n const graphIris = new Set<string>(writableGraphIris);\n for (const operation of operations) {\n const graphTerms = operation.type === 'deleteWhere'\n ? [\n ...operation.template.map((item) => item.graph),\n ...this.queryGraphTerms(operation.query),\n ]\n : operation.type === 'insertDeleteWhere'\n ? [\n ...operation.deletes.map((item) => item.graph),\n ...operation.inserts.map((item) => item.graph),\n ...this.queryGraphTerms(operation.query),\n ]\n : operation.type === 'insertWhere'\n ? [\n ...operation.inserts.map((item) => item.graph),\n ...this.queryGraphTerms(operation.query),\n ]\n : operation.quads.map((quad) => quad.graph);\n for (const graph of graphTerms) {\n this.addNamedGraphIris(graph, graphIris);\n }\n }\n return [...graphIris];\n }\n\n private localRdfDeltaWriteGraphIris(\n operations: RdfSparqlUpdateDeltaOperation[],\n localRdfAuthorityIris: ReadonlySet<string>,\n ): string[] {\n const graphIris = new Set<string>();\n for (const operation of operations) {\n if (operation.type === 'deleteWhere') {\n this.addWritableTemplateGraphIris(operation.template.map((item) => item.graph), operation.query, graphIris, localRdfAuthorityIris);\n continue;\n }\n if (operation.type === 'insertDeleteWhere') {\n this.addWritableTemplateGraphIris([\n ...operation.deletes.map((item) => item.graph),\n ...operation.inserts.map((item) => item.graph),\n ], operation.query, graphIris, localRdfAuthorityIris);\n continue;\n }\n if (operation.type === 'insertWhere') {\n this.addWritableTemplateGraphIris(operation.inserts.map((item) => item.graph), operation.query, graphIris, localRdfAuthorityIris);\n continue;\n }\n const graphTerms = operation.quads.map((quad) => quad.graph);\n for (const graph of graphTerms) {\n this.addWritableNamedGraphIri(graph, graphIris, localRdfAuthorityIris);\n }\n }\n if (graphIris.size === 0) {\n throw new UnsupportedSparqlQueryError('Embedded local RDF update requires explicit local RDF graph write targets');\n }\n return [...graphIris];\n }\n\n private addWritableTemplateGraphIris(\n graphs: RdfQueryTermPattern[],\n query: RdfQuery,\n graphIris: Set<string>,\n localRdfAuthorityIris: ReadonlySet<string>,\n ): void {\n for (const graph of graphs) {\n if (this.isQueryVariable(graph)) {\n this.addWritableGraphVariableIris(query, graph.variable, graphIris, localRdfAuthorityIris);\n continue;\n }\n this.addWritableNamedGraphIri(graph, graphIris, localRdfAuthorityIris);\n }\n }\n\n private addWritableGraphVariableIris(\n query: RdfQuery,\n variable: string,\n graphIris: Set<string>,\n localRdfAuthorityIris: ReadonlySet<string>,\n ): void {\n const values = new Set<string>();\n this.collectGraphVariableFilterIris(query, variable, values);\n if (values.size === 0) {\n throw new UnsupportedSparqlQueryError('Embedded local RDF update only supports finite GRAPH variable write targets');\n }\n for (const value of values) {\n this.addWritableNamedGraphIri(DataFactory.namedNode(value) as unknown as Term, graphIris, localRdfAuthorityIris);\n }\n }\n\n private localRdfWriteGraphIri(graph: Term, writableGraphs: Set<string>): string {\n if (graph.termType !== 'NamedNode' || !writableGraphs.has(graph.value)) {\n throw new UnsupportedSparqlQueryError('Embedded local RDF update can only write declared local RDF graph documents');\n }\n return graph.value;\n }\n\n private queryLocalUpdateBindings(\n quads: Quad[],\n query: RdfQuery,\n ): RdfBindingRow[] {\n const index = new RdfQuadIndex({ path: ':memory:' });\n index.open();\n try {\n const engine = new SolidRdfEngine({ index });\n engine.put(quads);\n return engine.query(query).bindings;\n } finally {\n index.close();\n }\n }\n\n private queryGraphTerms(query: RdfQuery): RdfQueryTermPattern[] {\n const graphTerms: RdfQueryTermPattern[] = [];\n const graphVariables = new Set<string>();\n this.collectQueryGraphTerms(query, graphTerms, graphVariables);\n this.collectGraphVariableFilterTerms(query, graphVariables, graphTerms);\n return graphTerms;\n }\n\n private collectQueryGraphTerms(\n query: RdfQuery | {\n patterns: RdfQueryPattern[];\n values?: RdfValuesBindingSource[];\n optional?: RdfQuery['optional'];\n unions?: RdfQuery['unions'];\n minus?: RdfQuery['minus'];\n exists?: RdfQuery['exists'];\n },\n graphTerms: RdfQueryTermPattern[],\n graphVariables: Set<string>,\n ): void {\n for (const pattern of query.patterns) {\n if (!pattern.graph) {\n continue;\n }\n graphTerms.push(pattern.graph);\n if (this.isQueryVariable(pattern.graph)) {\n graphVariables.add(pattern.graph.variable);\n }\n }\n for (const optional of query.optional ?? []) {\n this.collectQueryGraphTerms(Array.isArray(optional) ? { patterns: optional } : optional, graphTerms, graphVariables);\n }\n for (const union of query.unions ?? []) {\n for (const branch of union.branches) {\n this.collectQueryGraphTerms(branch, graphTerms, graphVariables);\n }\n }\n for (const minus of query.minus ?? []) {\n this.collectQueryGraphTerms(minus, graphTerms, graphVariables);\n }\n for (const exists of query.exists ?? []) {\n this.collectQueryGraphTerms(exists, graphTerms, graphVariables);\n }\n }\n\n private collectGraphVariableFilterTerms(\n query: RdfQuery | {\n values?: RdfValuesBindingSource[];\n filters?: RdfQuery['filters'];\n optional?: RdfQuery['optional'];\n unions?: RdfQuery['unions'];\n minus?: RdfQuery['minus'];\n exists?: RdfQuery['exists'];\n },\n graphVariables: Set<string>,\n graphTerms: RdfQueryTermPattern[],\n ): void {\n for (const filter of query.filters ?? []) {\n if (!graphVariables.has(filter.variable)) {\n continue;\n }\n if (filter.value && this.isRdfTerm(filter.value)) {\n graphTerms.push(filter.value);\n }\n for (const value of filter.values ?? []) {\n if (this.isRdfTerm(value)) {\n graphTerms.push(value);\n }\n }\n }\n this.collectGraphVariableValueTerms(query.values ?? [], graphVariables, graphTerms);\n for (const optional of query.optional ?? []) {\n if (!Array.isArray(optional)) {\n this.collectGraphVariableFilterTerms(optional, graphVariables, graphTerms);\n }\n }\n for (const union of query.unions ?? []) {\n for (const branch of union.branches) {\n this.collectGraphVariableFilterTerms(branch, graphVariables, graphTerms);\n }\n }\n for (const minus of query.minus ?? []) {\n this.collectGraphVariableFilterTerms(minus, graphVariables, graphTerms);\n }\n for (const exists of query.exists ?? []) {\n this.collectGraphVariableFilterTerms(exists, graphVariables, graphTerms);\n }\n }\n\n private collectGraphVariableFilterIris(\n query: RdfQuery | {\n values?: RdfValuesBindingSource[];\n filters?: RdfQuery['filters'];\n optional?: RdfQuery['optional'];\n unions?: RdfQuery['unions'];\n minus?: RdfQuery['minus'];\n exists?: RdfQuery['exists'];\n },\n variable: string,\n values: Set<string>,\n ): void {\n for (const filter of query.filters ?? []) {\n if (filter.variable !== variable) {\n continue;\n }\n if ((filter.operator === '$eq' || filter.operator === '$sameTerm') && filter.value && this.isRdfTerm(filter.value)) {\n this.addGraphFilterValueIri(filter.value, values);\n }\n if (filter.operator === '$in') {\n for (const value of filter.values ?? []) {\n if (this.isRdfTerm(value)) {\n this.addGraphFilterValueIri(value, values);\n }\n }\n }\n }\n this.collectGraphVariableValueIris(query.values ?? [], variable, values);\n for (const optional of query.optional ?? []) {\n if (!Array.isArray(optional)) {\n this.collectGraphVariableFilterIris(optional, variable, values);\n }\n }\n for (const union of query.unions ?? []) {\n for (const branch of union.branches) {\n this.collectGraphVariableFilterIris(branch, variable, values);\n }\n }\n for (const minus of query.minus ?? []) {\n this.collectGraphVariableFilterIris(minus, variable, values);\n }\n for (const exists of query.exists ?? []) {\n this.collectGraphVariableFilterIris(exists, variable, values);\n }\n }\n\n private collectGraphVariableValueTerms(\n sources: readonly RdfValuesBindingSource[],\n graphVariables: Set<string>,\n graphTerms: RdfQueryTermPattern[],\n ): void {\n for (const source of sources) {\n for (const variable of source.variables) {\n if (!graphVariables.has(variable)) {\n continue;\n }\n for (const row of source.rows) {\n const value = row[variable];\n if (value) {\n graphTerms.push(value);\n }\n }\n }\n }\n }\n\n private collectGraphVariableValueIris(\n sources: readonly RdfValuesBindingSource[],\n variable: string,\n values: Set<string>,\n ): void {\n for (const source of sources) {\n if (!source.variables.includes(variable)) {\n continue;\n }\n for (const row of source.rows) {\n const value = row[variable];\n if (value) {\n this.addGraphFilterValueIri(value, values);\n }\n }\n }\n }\n\n private addGraphFilterValueIri(value: Term, values: Set<string>): void {\n if (value.termType !== 'NamedNode') {\n throw new UnsupportedSparqlQueryError('Embedded local RDF update GRAPH variable write targets must be named graph documents');\n }\n values.add(value.value);\n }\n\n private addNamedGraphIris(graph: RdfQueryTermPattern | Term, graphIris: Set<string>): void {\n if (this.isRdfTerm(graph)) {\n if (graph.termType !== 'NamedNode') {\n throw new UnsupportedSparqlQueryError('Embedded local RDF update only supports named graph documents');\n }\n graphIris.add(graph.value);\n return;\n }\n const values = (graph as { $in?: unknown }).$in;\n if (Array.isArray(values) && values.every((value) => this.isRdfTerm(value))) {\n for (const value of values) {\n if (value.termType !== 'NamedNode') {\n throw new UnsupportedSparqlQueryError('Embedded local RDF update only supports named graph documents');\n }\n graphIris.add(value.value);\n }\n return;\n }\n if (this.isQueryVariable(graph)) {\n return;\n }\n throw new UnsupportedSparqlQueryError('Embedded local RDF update only supports explicit local RDF graph documents');\n }\n\n private addWritableNamedGraphIri(\n graph: RdfQueryTermPattern | Term,\n graphIris: Set<string>,\n localRdfAuthorityIris: ReadonlySet<string>,\n ): void {\n if (!this.isRdfTerm(graph) || graph.termType !== 'NamedNode') {\n throw new UnsupportedSparqlQueryError('Embedded local RDF update only supports explicit local RDF graph write targets');\n }\n if (!this.isLocalRdfAuthorityIdentifier({ path: graph.value }, localRdfAuthorityIris)) {\n throw new UnsupportedSparqlQueryError('Embedded local RDF update only supports by-line local RDF graph write targets');\n }\n graphIris.add(graph.value);\n }\n\n private isLocalRdfAuthorityIdentifier(\n identifier: ResourceIdentifier,\n localRdfAuthorityIris: ReadonlySet<string>,\n ): boolean {\n return this.isByLineRdfIdentifier(identifier) || localRdfAuthorityIris.has(identifier.path);\n }\n\n private isQueryVariable(value: unknown): value is { variable: string } {\n return Boolean(value && typeof value === 'object' && 'variable' in value);\n }\n\n private isRdfTerm(value: unknown): value is Term {\n return Boolean(value && typeof value === 'object' && 'termType' in value);\n }\n\n private async readLocalRdfState(identifier: ResourceIdentifier): Promise<{ text: string; existed: boolean }> {\n try {\n return {\n text: await this.readStreamText(await this.rdfFileDataAccessor.getData(identifier)),\n existed: true,\n };\n } catch (error) {\n if (NotFoundHttpError.isInstance(error)) {\n await this.refreshLocalRdfMirror(identifier);\n try {\n return {\n text: await this.readStreamText(await this.rdfFileDataAccessor.getData(identifier)),\n existed: true,\n };\n } catch (retryError) {\n if (NotFoundHttpError.isInstance(retryError)) {\n return { text: '', existed: false };\n }\n throw retryError;\n }\n }\n throw error;\n }\n }\n\n private async writeLocalRdfAuthority(identifier: ResourceIdentifier, quads: Quad[]): Promise<void> {\n await this.ensureRdfFileParentContainers(identifier);\n await this.rdfFileDataAccessor.writeDocument(\n identifier,\n guardStream(Readable.from([ await this.serializeQuadsForLocalFile(identifier, quads) ])),\n this.createLocalRdfMetadata(identifier, new RepresentationMetadata(identifier)),\n );\n }\n\n private async writeLocalRdfAuthorityPatches(patches: LocalRdfAuthorityPatch[]): Promise<void> {\n const applied: LocalRdfAuthorityPatch[] = [];\n const journalPatches: LocalRdfAuthorityJournalPatch[] = [];\n const journalDrafts = await this.prepareLocalRdfAuthorityJournalPatches(patches);\n try {\n for (let index = 0; index < patches.length; index += 1) {\n const patch = patches[index];\n const authorityQuads = patch.nextQuads.map((quad) => this.toDefaultGraphQuad(quad));\n await this.writeLocalRdfAuthority(patch.identifier, authorityQuads);\n applied.push(patch);\n const operation = await this.recordLocalRdfAuthorityJournalPatch(journalDrafts[index]);\n if (operation) {\n journalPatches.push({ patch, operation });\n }\n }\n\n for (const patch of applied) {\n const authorityQuads = patch.nextQuads.map((quad) => this.toDefaultGraphQuad(quad));\n await this.writeStructuredRdfIndex(patch.identifier, authorityQuads, new RepresentationMetadata(patch.identifier));\n await this.syncTextSearchIndex(\n patch.identifier,\n await this.serializeQuadsForLocalFile(patch.identifier, authorityQuads),\n {},\n authorityQuads,\n );\n }\n\n for (const journalPatch of journalPatches) {\n await this.localRdfAuthorityJournal?.markDone(journalPatch.operation.id);\n }\n } catch (error) {\n await this.markLocalRdfAuthorityJournalFailure(journalPatches, error);\n await this.rollbackLocalRdfAuthorityPatches(applied);\n throw error;\n }\n }\n\n private async prepareLocalRdfAuthorityJournalPatches(\n patches: LocalRdfAuthorityPatch[],\n ): Promise<LocalRdfAuthorityJournalPatchDraft[]> {\n if (!this.localRdfAuthorityJournal || !this.rdfFileMapper || patches.length === 0) {\n return [];\n }\n\n const mapped = await Promise.all(patches.map(async (patch) => ({\n patch,\n link: await this.rdfFileMapper!.mapUrlToFilePath(patch.identifier, false, this.localRdfContentType(patch.identifier)),\n })));\n const workspace = this.localRdfPatchWorkspace(\n mapped.map(({ patch }) => patch.identifier.path),\n mapped.map(({ link }) => link.filePath),\n );\n const txId = localRdfPatchTxId(workspace, mapped.map(({ patch, link }) => ({\n path: this.localRdfPatchRelativePath(patch.identifier.path, workspace.workspace, link.filePath, workspace.cwd),\n resource: patch.identifier.path,\n sourcePath: link.filePath,\n type: patch.previousExists ? 'updated' : 'created',\n })));\n\n return mapped.map(({ patch, link }): LocalRdfAuthorityJournalPatchDraft => ({\n patch,\n workspace,\n txId,\n change: {\n path: this.localRdfPatchRelativePath(patch.identifier.path, workspace.workspace, link.filePath, workspace.cwd),\n resource: patch.identifier.path,\n source: 'filesystem',\n sourcePath: link.filePath,\n contentType: this.localRdfContentType(patch.identifier),\n projection: 'direct',\n type: patch.previousExists ? 'updated' : 'created',\n },\n }));\n }\n\n private async recordLocalRdfAuthorityJournalPatch(\n draft: LocalRdfAuthorityJournalPatchDraft | undefined,\n ): Promise<LocalRdfAuthorityJournalOperation | undefined> {\n if (!draft || !this.localRdfAuthorityJournal) {\n return undefined;\n }\n return this.localRdfAuthorityJournal.recordLocalCommitted(draft.change, draft.workspace, draft.txId);\n }\n\n private async markLocalRdfAuthorityJournalFailure(\n journalPatches: LocalRdfAuthorityJournalPatch[],\n error: unknown,\n ): Promise<void> {\n if (!this.localRdfAuthorityJournal || journalPatches.length === 0) {\n return;\n }\n const message = `Local RDF authority patch did not complete; rollback/reconcile required: ${error instanceof Error ? error.message : String(error)}`;\n for (const journalPatch of journalPatches) {\n try {\n await this.localRdfAuthorityJournal.markRetryableFailure(journalPatch.operation.id, error);\n await this.localRdfAuthorityJournal.markReconcileRequired(journalPatch.operation.id, message);\n } catch (journalError) {\n this.logger.warn(`Failed to update local RDF authority journal for ${journalPatch.patch.identifier.path}: ${journalError instanceof Error ? journalError.message : String(journalError)}`);\n }\n }\n }\n\n private localRdfPatchWorkspace(\n resourcePaths: string[],\n filePaths: string[],\n ): SolidFsManifest {\n const workspace = commonHttpContainer(resourcePaths) ?? this.parentContainer({ path: resourcePaths[0] }).path;\n const cwd = commonDirectory(filePaths);\n return {\n workspace,\n cwd,\n projection: 'direct',\n entries: [],\n };\n }\n\n private localRdfPatchRelativePath(\n identifierPath: string,\n workspace: string,\n filePath: string,\n cwd: string,\n ): string {\n const relative = this.relativePathFromWorkspace(identifierPath, workspace)\n ?? path.relative(cwd, filePath).split(path.sep).join('/');\n return relative && relative.length > 0 ? relative : path.basename(filePath);\n }\n\n private async rollbackLocalRdfAuthorityPatches(patches: LocalRdfAuthorityPatch[]): Promise<void> {\n const failures: string[] = [];\n for (const patch of patches.slice().reverse()) {\n try {\n if (patch.previousExists) {\n const authorityQuads = patch.previousQuads.map((quad) => this.toDefaultGraphQuad(quad));\n await this.writeLocalRdfAuthority(patch.identifier, authorityQuads);\n await this.writeStructuredRdfIndex(patch.identifier, authorityQuads, new RepresentationMetadata(patch.identifier));\n await this.syncTextSearchIndex(\n patch.identifier,\n await this.serializeQuadsForLocalFile(patch.identifier, authorityQuads),\n {},\n authorityQuads,\n );\n } else {\n await this.deleteRdfFileResourceIfPresent(patch.identifier);\n await this.deleteLocalRdfIndex(patch.identifier);\n await this.deleteSearchIndexes(patch.identifier);\n }\n this.invalidateMetadataCache(patch.identifier);\n } catch (rollbackError) {\n failures.push(`${patch.identifier.path}: ${rollbackError instanceof Error ? rollbackError.message : String(rollbackError)}`);\n }\n }\n if (failures.length > 0) {\n this.logger.warn(`Failed to fully roll back local RDF authority patch: ${failures.join('; ')}`);\n }\n }\n\n private toDefaultGraphQuad(quad: Quad): Quad {\n return DataFactory.quad(quad.subject, quad.predicate, quad.object);\n }\n\n private toGraphQuad(quad: Quad, graph: Term): Quad {\n return DataFactory.quad(quad.subject, quad.predicate, quad.object, graph as any) as Quad;\n }\n\n private quadKey(quad: Quad): string {\n return [quad.graph, quad.subject, quad.predicate, quad.object]\n .map((term) => termToId(term as any))\n .join('\\u001f');\n }\n\n /**\n * Rebuild the structured RDF index from an already-written local RDF file.\n *\n * SolidFS uses this after tools edit `.ttl`/`.jsonld` files directly. The\n * local file remains the content authority; the structured accessor is only\n * refreshed as query/index state.\n */\n public async syncLocalRdfDocument(\n identifier: ResourceIdentifier,\n data?: Guarded<Readable>,\n contentType?: string,\n options?: LocalRdfSyncOptions,\n ): Promise<void> {\n if (!this.isRdfDocumentIdentifier(identifier)) {\n throw new Error(`Cannot sync non RDF document into RDF index: ${identifier.path}`);\n }\n\n const source = data ?? await this.rdfFileDataAccessor.getData(identifier);\n const localContentType = contentType ?? this.localRdfContentType(identifier);\n const text = await this.readStreamText(source);\n if (data) {\n await this.ensureRdfFileParentContainers(identifier);\n await this.rdfFileDataAccessor.writeDocument(\n identifier,\n guardStream(Readable.from([ text ])),\n this.createLocalRdfMetadata(identifier, new RepresentationMetadata(identifier)),\n );\n }\n const quads = await this.parseLocalRdf(identifier, text, localContentType);\n await this.writeStructuredRdfIndex(identifier, quads, new RepresentationMetadata(identifier), {\n ...options,\n contentType: localContentType,\n });\n await this.syncTextSearchIndex(identifier, text, {\n ...options,\n contentType: localContentType,\n }, quads);\n this.invalidateMetadataCache(identifier);\n }\n\n public async deleteLocalRdfIndex(identifier: ResourceIdentifier): Promise<void> {\n try {\n const sourceScopedAccessor = this.sourceScopedStructuredAccessor();\n if (sourceScopedAccessor) {\n await sourceScopedAccessor.deleteRdfSourceDocument(identifier);\n } else {\n await this.structuredDataAccessor.deleteResource(identifier);\n }\n await this.deleteSearchIndexes(identifier);\n this.invalidateMetadataCache(identifier);\n } catch (error) {\n if (!NotFoundHttpError.isInstance(error)) {\n throw error;\n }\n }\n }\n\n public async moveLocalRdfIndex(\n previousIdentifier: ResourceIdentifier,\n nextIdentifier: ResourceIdentifier,\n options: LocalRdfMoveOptions = {},\n ): Promise<number> {\n const sourceScopedAccessor = this.sourceScopedStructuredAccessor();\n if (!sourceScopedAccessor?.moveRdfSourceDocument) {\n return 0;\n }\n\n const moved = await sourceScopedAccessor.moveRdfSourceDocument(\n options.previousSource ?? previousIdentifier.path,\n this.rdfSourceInput(nextIdentifier, options),\n );\n if (moved > 0) {\n this.invalidateMetadataCache(previousIdentifier);\n this.invalidateMetadataCache(nextIdentifier);\n }\n return moved;\n }\n\n private async writeRdfDocument(\n identifier: ResourceIdentifier,\n data: Guarded<Readable>,\n metadata: RepresentationMetadata,\n ): Promise<void> {\n const quads = await arrayifyStream<Quad>(data);\n const structuredMetadata = new RepresentationMetadata(metadata);\n addResourceMetadata(structuredMetadata, false);\n updateModifiedDate(structuredMetadata);\n await this.ensureRdfFileParentContainers(identifier);\n const text = await this.serializeQuadsForLocalFile(identifier, quads);\n\n await this.rdfFileDataAccessor.writeDocument(\n identifier,\n guardStream(Readable.from([ text ])),\n this.createLocalRdfMetadata(identifier, metadata),\n );\n\n try {\n await this.writeStructuredRdfIndex(identifier, quads, structuredMetadata);\n await this.syncTextSearchIndex(identifier, text, {}, quads);\n } catch (error) {\n await this.deleteRdfFileResourceIfPresent(identifier);\n await this.deleteSearchIndexes(identifier);\n throw error;\n }\n }\n\n private async writeStructuredRdfIndex(\n identifier: ResourceIdentifier,\n quads: Quad[],\n metadata: RepresentationMetadata,\n options: LocalRdfSyncOptions & { contentType?: string } = {},\n ): Promise<void> {\n const structuredMetadata = new RepresentationMetadata(metadata);\n addResourceMetadata(structuredMetadata, false);\n updateModifiedDate(structuredMetadata);\n const sourceScopedAccessor = this.sourceScopedStructuredAccessor();\n if (sourceScopedAccessor) {\n await sourceScopedAccessor.writeRdfSourceDocument(\n identifier,\n quads,\n structuredMetadata,\n this.rdfSourceInput(identifier, options),\n );\n return;\n }\n\n await this.structuredDataAccessor.writeDocument(identifier, guardStream(Readable.from(quads)), structuredMetadata);\n }\n\n private async refreshLocalRdfMirror(identifier: ResourceIdentifier): Promise<void> {\n let metadata: RepresentationMetadata;\n let quads: Quad[];\n try {\n metadata = await this.structuredDataAccessor.getMetadata(identifier);\n if (!this.isLocalMirroredRdf(identifier, metadata)) {\n return;\n }\n quads = await arrayifyStream<Quad>(await this.structuredDataAccessor.getData(identifier));\n } catch (error) {\n if (NotFoundHttpError.isInstance(error)) {\n await this.deleteRdfFileResourceIfPresent(identifier);\n return;\n }\n throw error;\n }\n\n await this.ensureRdfFileParentContainers(identifier);\n const text = await this.serializeQuadsForLocalFile(identifier, quads);\n await this.rdfFileDataAccessor.writeDocument(\n identifier,\n guardStream(Readable.from([ text ])),\n this.createLocalRdfMetadata(identifier, metadata),\n );\n await this.syncTextSearchIndex(identifier, text, {}, quads);\n }\n\n private async getLocalRdfMetadata(\n identifier: ResourceIdentifier,\n sourceMetadata: RepresentationMetadata,\n ): Promise<RepresentationMetadata> {\n try {\n return await this.getExistingLocalRdfMetadata(identifier);\n } catch (error) {\n if (!NotFoundHttpError.isInstance(error)) {\n throw error;\n }\n return this.createLocalRdfMetadata(identifier, sourceMetadata);\n }\n }\n\n private async getExistingLocalRdfMetadata(identifier: ResourceIdentifier): Promise<RepresentationMetadata> {\n try {\n const metadata = await this.rdfFileDataAccessor.getMetadata(identifier);\n metadata.contentType = this.localRdfContentType(identifier);\n return metadata;\n } catch (error) {\n if (NotFoundHttpError.isInstance(error)) {\n throw error;\n }\n this.logger.warn(`Ignoring unreadable local RDF metadata for ${identifier.path}: ${error instanceof Error ? error.message : String(error)}`);\n return this.createLocalRdfMetadata(identifier, new RepresentationMetadata(identifier));\n }\n }\n\n private createLocalRdfMetadata(\n identifier: ResourceIdentifier,\n metadata: RepresentationMetadata,\n ): RepresentationMetadata {\n const localMetadata = new RepresentationMetadata(metadata);\n const graphScopedQuads = localMetadata.quads()\n .filter((quad) => quad.graph.termType !== 'DefaultGraph');\n localMetadata.removeQuads(graphScopedQuads);\n localMetadata.contentType = this.localRdfContentType(identifier);\n return localMetadata;\n }\n\n private localRdfContentType(identifier: ResourceIdentifier): string {\n return rdfContentTypeForPath(identifier.path) ?? 'text/turtle';\n }\n\n private sourceScopedStructuredAccessor(): SourceScopedStructuredRdfAccessor | undefined {\n const accessor = this.structuredDataAccessor as Partial<SourceScopedStructuredRdfAccessor>;\n if (\n typeof accessor.writeRdfSourceDocument === 'function'\n && typeof accessor.deleteRdfSourceDocument === 'function'\n ) {\n return accessor as SourceScopedStructuredRdfAccessor;\n }\n return undefined;\n }\n\n private async syncTextSearchIndex(\n identifier: ResourceIdentifier,\n text: string,\n options: LocalRdfSyncOptions & { contentType?: string } = {},\n quads?: Quad[],\n ): Promise<void> {\n if (!this.textSearchIndexingEnabled || !this.isByLineRdfIdentifier(identifier)) {\n return;\n }\n const accessor = this.sourceScopedStructuredAccessor();\n if (!accessor?.indexTextSource) {\n return;\n }\n const source = this.rdfSourceInput(identifier, options);\n await accessor.indexTextSource(\n source,\n text,\n quads ? createRdfEntityTextChunks(source, quads) : undefined,\n );\n }\n\n private async deleteSearchIndexes(identifier: ResourceIdentifier): Promise<void> {\n if (!this.textSearchIndexingEnabled || !this.isByLineRdfIdentifier(identifier)) {\n return;\n }\n const accessor = this.sourceScopedStructuredAccessor();\n await accessor?.deleteTextSource?.(identifier.path);\n }\n\n private rdfSourceInput(\n identifier: ResourceIdentifier,\n options: LocalRdfSyncOptions & { contentType?: string },\n ): RdfSourceInput {\n const workspace = options.workspace ?? this.parentContainer(identifier).path;\n return {\n source: options.source ?? identifier.path,\n workspace,\n localPath: options.localPath ?? this.relativePathFromWorkspace(identifier.path, workspace),\n contentType: options.contentType ?? this.localRdfContentType(identifier),\n sourceVersion: options.sourceVersion,\n };\n }\n\n private relativePathFromWorkspace(identifierPath: string, workspaceValue: string): string | undefined {\n try {\n const resource = new URL(identifierPath);\n const workspace = new URL(workspaceValue.endsWith('/') ? workspaceValue : `${workspaceValue}/`);\n if (resource.origin !== workspace.origin || !resource.pathname.startsWith(workspace.pathname)) {\n return undefined;\n }\n return decodeURIComponent(resource.pathname.slice(workspace.pathname.length));\n } catch {\n return undefined;\n }\n }\n\n private isByLineRdfIdentifier(identifier: ResourceIdentifier): boolean {\n return isLineAddressableRdfPath(identifier.path);\n }\n\n private isRdfDocumentIdentifier(identifier: ResourceIdentifier): boolean {\n return isRdfDocumentPath(identifier.path);\n }\n\n private isLocalMirroredRdf(\n identifier: ResourceIdentifier,\n metadata: RepresentationMetadata,\n ): boolean {\n return metadata.contentType === INTERNAL_QUADS || this.isRdfDocumentIdentifier(identifier);\n }\n\n private async serializeQuadsForLocalFile(identifier: ResourceIdentifier, quads: Quad[]): Promise<string> {\n if (this.localRdfContentType(identifier) === 'application/ld+json') {\n const nquads = await this.serializeNQuads(quads);\n const document = await jsonld.fromRDF(nquads, { format: 'application/n-quads' });\n return `${JSON.stringify(document, null, 2)}\\n`;\n }\n\n if (this.localRdfContentType(identifier) === 'application/rdf+xml') {\n return serializeRdfXml(quads);\n }\n\n const writer = new Writer({ format: this.localRdfContentType(identifier) });\n return writer.quadsToString(quads);\n }\n\n private async serializeNQuads(quads: Quad[]): Promise<string> {\n return new Promise((resolve, reject) => {\n const writer = new Writer({ format: 'application/n-quads' });\n writer.addQuads(quads);\n writer.end((error, result) => {\n if (error) {\n reject(error);\n return;\n }\n resolve(result);\n });\n });\n }\n\n private async parseLocalRdf(\n identifier: ResourceIdentifier,\n text: string,\n contentType: string,\n ): Promise<Quad[]> {\n if (contentType === 'application/ld+json') {\n const nquads = await jsonld.toRDF(JSON.parse(text), {\n base: identifier.path,\n format: 'application/n-quads',\n }) as string;\n return new Parser({ format: 'application/n-quads', baseIRI: identifier.path }).parse(nquads);\n }\n\n if (contentType === 'application/rdf+xml') {\n return arrayifyStream<Quad>(rdfParser.parse(Readable.from([ text ]), {\n contentType,\n baseIRI: identifier.path,\n }) as any);\n }\n\n return new Parser({ format: contentType, baseIRI: identifier.path }).parse(text);\n }\n\n private async readStreamText(data: Guarded<Readable>): Promise<string> {\n const chunks = await arrayifyStream(data as any);\n return chunks\n .map((chunk: Buffer | Uint8Array | string) => typeof chunk === 'string' ? chunk : Buffer.from(chunk).toString('utf8'))\n .join('');\n }\n\n /**\n * Write unstructured document: store data in unstructured accessor,\n * then save metadata in structured accessor.\n */\n private async writeUnstructuredDocument(\n identifier: ResourceIdentifier,\n data: Guarded<Readable>,\n metadata: RepresentationMetadata,\n ): Promise<void> {\n await this.ensureUnstructuredParentContainers(identifier);\n\n // Write the actual data to unstructured storage\n await this.unstructuredDataAccessor.writeDocument(identifier, data, metadata);\n \n let updatedMetadata: RepresentationMetadata;\n if (typeof metadata.contentLength === 'number') {\n updatedMetadata = new RepresentationMetadata(metadata);\n updatedMetadata.add(\n POSIX.terms.size,\n toLiteral(metadata.contentLength, XSD.terms.integer),\n SOLID_META.terms.ResponseMetadata,\n );\n } else {\n updatedMetadata = await this.unstructuredDataAccessor.getMetadata(identifier);\n\n const removing: Quad[] = [];\n for (const quad of updatedMetadata.quads()) {\n if (!/^http/.test(quad.predicate.value)) {\n removing.push(quad);\n }\n }\n updatedMetadata.removeQuads(removing);\n }\n \n // Save metadata to structured storage\n try {\n await this.structuredDataAccessor.writeMetadata(identifier, updatedMetadata);\n } catch (error) {\n this.logger.error(`Error writing metadata for ${identifier.path}: ${error}`);\n // Rollback: delete the unstructured data\n await this.unstructuredDataAccessor.deleteResource(identifier);\n throw error;\n }\n }\n\n private async deleteUnstructuredResourceIfPresent(identifier: ResourceIdentifier): Promise<void> {\n try {\n await this.unstructuredDataAccessor.deleteResource(identifier);\n } catch (error: any) {\n if (error?.code !== 'ENOENT' && error?.code !== 'ENOTDIR' && !NotFoundHttpError.isInstance(error)) {\n throw error;\n }\n }\n }\n\n private async deleteRdfFileResourceIfPresent(identifier: ResourceIdentifier): Promise<void> {\n try {\n await this.rdfFileDataAccessor.deleteResource(identifier);\n } catch (error: any) {\n if (error?.code !== 'ENOENT' && error?.code !== 'ENOTDIR' && !NotFoundHttpError.isInstance(error)) {\n throw error;\n }\n }\n }\n\n private async ensureUnstructuredParentContainers(identifier: ResourceIdentifier): Promise<void> {\n await this.ensureParentContainers(identifier, this.unstructuredDataAccessor);\n }\n\n private async ensureRdfFileParentContainers(identifier: ResourceIdentifier): Promise<void> {\n await this.ensureParentContainers(identifier, this.rdfFileDataAccessor);\n }\n\n private async ensureParentContainers(identifier: ResourceIdentifier, accessor: DataAccessor): Promise<void> {\n const containers: ResourceIdentifier[] = [];\n let current = this.parentContainer(identifier);\n\n while (!this.sameIdentifier(current, identifier)) {\n containers.push(current);\n const next = this.parentContainer(current);\n if (this.sameIdentifier(next, current)) {\n break;\n }\n current = next;\n }\n\n for (const container of containers.reverse()) {\n await this.writeContainerIfMissing(accessor, container);\n }\n }\n\n private async writeContainerIfMissing(accessor: DataAccessor, identifier: ResourceIdentifier): Promise<void> {\n try {\n await accessor.getMetadata(identifier);\n return;\n } catch (error) {\n if (!NotFoundHttpError.isInstance(error)) {\n throw error;\n }\n }\n\n await accessor.writeContainer(identifier, new RepresentationMetadata(identifier));\n }\n\n private sameIdentifier(left: ResourceIdentifier, right: ResourceIdentifier): boolean {\n return left.path === right.path;\n }\n\n private parentContainer(identifier: ResourceIdentifier): ResourceIdentifier {\n try {\n const url = new URL(identifier.path);\n if (url.pathname === '/' || url.pathname === '') {\n return { path: url.href.endsWith('/') ? url.href : `${url.href}/` };\n }\n const segments = url.pathname.replace(/\\/+$/u, '').split('/');\n segments.pop();\n url.pathname = `${segments.join('/') || '/'}`.replace(/\\/?$/u, '/');\n url.search = '';\n url.hash = '';\n return { path: url.href };\n } catch {\n const trimmed = identifier.path.replace(/\\/+$/u, '');\n const slashIndex = trimmed.lastIndexOf('/');\n if (slashIndex < 0) {\n return identifier;\n }\n return { path: `${trimmed.slice(0, slashIndex + 1)}` };\n }\n }\n\n private invalidateMetadataCache(identifier: ResourceIdentifier): void {\n const cache = metadataRequestContext.getStore()?.metadataCache;\n if (!cache) {\n return;\n }\n\n const exact = identifier.path;\n const trimmed = exact.endsWith('/') ? exact.replace(/\\/+$/u, '') : exact;\n const withSlash = exact.endsWith('/') ? exact : `${exact}/`;\n cache.delete(exact);\n cache.delete(trimmed);\n cache.delete(withSlash);\n }\n}\n\nfunction localRdfPatchTxId(\n manifest: SolidFsManifest,\n changes: Array<Pick<SolidFsChange, 'path' | 'resource' | 'sourcePath' | 'type'>>,\n): string | undefined {\n if (changes.length <= 1) {\n return undefined;\n }\n\n const digest = createHash('sha256')\n .update(JSON.stringify({\n workspace: manifest.workspace,\n projection: manifest.projection,\n cwd: manifest.cwd,\n changes,\n nonce: randomUUID(),\n }))\n .digest('hex')\n .slice(0, 32);\n return `solidfs_tx_${digest}`;\n}\n\nfunction commonHttpContainer(resourcePaths: string[]): string | undefined {\n const urls: URL[] = [];\n for (const resourcePath of resourcePaths) {\n try {\n const url = new URL(resourcePath);\n if (url.protocol !== 'http:' && url.protocol !== 'https:') {\n return undefined;\n }\n url.hash = '';\n url.search = '';\n urls.push(url);\n } catch {\n return undefined;\n }\n }\n if (urls.length === 0) {\n return undefined;\n }\n const origin = urls[0].origin;\n if (!urls.every((url) => url.origin === origin)) {\n return undefined;\n }\n\n const parentSegments = urls.map((url) => {\n const parts = url.pathname.replace(/\\/+$/u, '').split('/').filter(Boolean);\n parts.pop();\n return parts;\n });\n const common: string[] = [];\n const first = parentSegments[0];\n for (let index = 0; index < first.length; index += 1) {\n const value = first[index];\n if (!parentSegments.every((segments) => segments[index] === value)) {\n break;\n }\n common.push(value);\n }\n\n const workspace = new URL(urls[0].href);\n workspace.pathname = `/${common.join('/')}${common.length > 0 ? '/' : ''}`;\n workspace.hash = '';\n workspace.search = '';\n return workspace.href;\n}\n\nfunction commonDirectory(filePaths: string[]): string {\n if (filePaths.length === 0) {\n return process.cwd();\n }\n const directories = filePaths.map((filePath) => path.resolve(path.dirname(filePath)).split(path.sep));\n const first = directories[0];\n const common: string[] = [];\n for (let index = 0; index < first.length; index += 1) {\n const value = first[index];\n if (!directories.every((segments) => segments[index] === value)) {\n break;\n }\n common.push(value);\n }\n const joined = common.join(path.sep);\n return joined.length > 0 ? joined : path.parse(path.resolve(filePaths[0])).root;\n}\n"]}
|
|
@@ -38,6 +38,30 @@
|
|
|
38
38
|
]
|
|
39
39
|
}
|
|
40
40
|
},
|
|
41
|
+
{
|
|
42
|
+
"@id": "undefineds:dist/storage/accessors/MixDataAccessor.jsonld#MixDataAccessor_textSearchIndexingEnabled",
|
|
43
|
+
"range": {
|
|
44
|
+
"@type": "ParameterRangeUnion",
|
|
45
|
+
"parameterRangeElements": [
|
|
46
|
+
"xsd:boolean",
|
|
47
|
+
{
|
|
48
|
+
"@type": "ParameterRangeUndefined"
|
|
49
|
+
}
|
|
50
|
+
]
|
|
51
|
+
}
|
|
52
|
+
},
|
|
53
|
+
{
|
|
54
|
+
"@id": "undefineds:dist/storage/accessors/MixDataAccessor.jsonld#MixDataAccessor_localRdfAuthorityJournal",
|
|
55
|
+
"range": {
|
|
56
|
+
"@type": "ParameterRangeUnion",
|
|
57
|
+
"parameterRangeElements": [
|
|
58
|
+
"undefineds:dist/storage/accessors/MixDataAccessor.jsonld#LocalRdfAuthorityJournal",
|
|
59
|
+
{
|
|
60
|
+
"@type": "ParameterRangeUndefined"
|
|
61
|
+
}
|
|
62
|
+
]
|
|
63
|
+
}
|
|
64
|
+
},
|
|
41
65
|
{
|
|
42
66
|
"@id": "undefineds:dist/storage/accessors/MixDataAccessor.jsonld#MixDataAccessor_structuredDataAccessor",
|
|
43
67
|
"range": "css:dist/storage/accessors/DataAccessor.jsonld#DataAccessor"
|
|
@@ -57,6 +81,18 @@
|
|
|
57
81
|
}
|
|
58
82
|
]
|
|
59
83
|
}
|
|
84
|
+
},
|
|
85
|
+
{
|
|
86
|
+
"@id": "undefineds:dist/storage/accessors/MixDataAccessor.jsonld#MixDataAccessor_rdfFileMapper",
|
|
87
|
+
"range": {
|
|
88
|
+
"@type": "ParameterRangeUnion",
|
|
89
|
+
"parameterRangeElements": [
|
|
90
|
+
"css:dist/storage/mapping/FileIdentifierMapper.jsonld#FileIdentifierMapper",
|
|
91
|
+
{
|
|
92
|
+
"@type": "ParameterRangeUndefined"
|
|
93
|
+
}
|
|
94
|
+
]
|
|
95
|
+
}
|
|
60
96
|
}
|
|
61
97
|
],
|
|
62
98
|
"memberFields": [
|
|
@@ -83,6 +119,14 @@
|
|
|
83
119
|
"@id": "undefineds:dist/storage/accessors/MixDataAccessor.jsonld#MixDataAccessor__member_rdfFileDataAccessor",
|
|
84
120
|
"memberFieldName": "rdfFileDataAccessor"
|
|
85
121
|
},
|
|
122
|
+
{
|
|
123
|
+
"@id": "undefineds:dist/storage/accessors/MixDataAccessor.jsonld#MixDataAccessor__member_rdfFileMapper",
|
|
124
|
+
"memberFieldName": "rdfFileMapper"
|
|
125
|
+
},
|
|
126
|
+
{
|
|
127
|
+
"@id": "undefineds:dist/storage/accessors/MixDataAccessor.jsonld#MixDataAccessor__member_localRdfAuthorityJournal",
|
|
128
|
+
"memberFieldName": "localRdfAuthorityJournal"
|
|
129
|
+
},
|
|
86
130
|
{
|
|
87
131
|
"@id": "undefineds:dist/storage/accessors/MixDataAccessor.jsonld#MixDataAccessor__member_presignedRedirectEnabled",
|
|
88
132
|
"memberFieldName": "presignedRedirectEnabled"
|
|
@@ -91,6 +135,10 @@
|
|
|
91
135
|
"@id": "undefineds:dist/storage/accessors/MixDataAccessor.jsonld#MixDataAccessor__member_mirrorContainersToUnstructured",
|
|
92
136
|
"memberFieldName": "mirrorContainersToUnstructured"
|
|
93
137
|
},
|
|
138
|
+
{
|
|
139
|
+
"@id": "undefineds:dist/storage/accessors/MixDataAccessor.jsonld#MixDataAccessor__member_textSearchIndexingEnabled",
|
|
140
|
+
"memberFieldName": "textSearchIndexingEnabled"
|
|
141
|
+
},
|
|
94
142
|
{
|
|
95
143
|
"@id": "undefineds:dist/storage/accessors/MixDataAccessor.jsonld#MixDataAccessor__member_constructor",
|
|
96
144
|
"memberFieldName": "constructor"
|
|
@@ -239,6 +287,26 @@
|
|
|
239
287
|
"@id": "undefineds:dist/storage/accessors/MixDataAccessor.jsonld#MixDataAccessor__member_writeLocalRdfAuthorityPatches",
|
|
240
288
|
"memberFieldName": "writeLocalRdfAuthorityPatches"
|
|
241
289
|
},
|
|
290
|
+
{
|
|
291
|
+
"@id": "undefineds:dist/storage/accessors/MixDataAccessor.jsonld#MixDataAccessor__member_prepareLocalRdfAuthorityJournalPatches",
|
|
292
|
+
"memberFieldName": "prepareLocalRdfAuthorityJournalPatches"
|
|
293
|
+
},
|
|
294
|
+
{
|
|
295
|
+
"@id": "undefineds:dist/storage/accessors/MixDataAccessor.jsonld#MixDataAccessor__member_recordLocalRdfAuthorityJournalPatch",
|
|
296
|
+
"memberFieldName": "recordLocalRdfAuthorityJournalPatch"
|
|
297
|
+
},
|
|
298
|
+
{
|
|
299
|
+
"@id": "undefineds:dist/storage/accessors/MixDataAccessor.jsonld#MixDataAccessor__member_markLocalRdfAuthorityJournalFailure",
|
|
300
|
+
"memberFieldName": "markLocalRdfAuthorityJournalFailure"
|
|
301
|
+
},
|
|
302
|
+
{
|
|
303
|
+
"@id": "undefineds:dist/storage/accessors/MixDataAccessor.jsonld#MixDataAccessor__member_localRdfPatchWorkspace",
|
|
304
|
+
"memberFieldName": "localRdfPatchWorkspace"
|
|
305
|
+
},
|
|
306
|
+
{
|
|
307
|
+
"@id": "undefineds:dist/storage/accessors/MixDataAccessor.jsonld#MixDataAccessor__member_localRdfPatchRelativePath",
|
|
308
|
+
"memberFieldName": "localRdfPatchRelativePath"
|
|
309
|
+
},
|
|
242
310
|
{
|
|
243
311
|
"@id": "undefineds:dist/storage/accessors/MixDataAccessor.jsonld#MixDataAccessor__member_rollbackLocalRdfAuthorityPatches",
|
|
244
312
|
"memberFieldName": "rollbackLocalRdfAuthorityPatches"
|
|
@@ -263,6 +331,10 @@
|
|
|
263
331
|
"@id": "undefineds:dist/storage/accessors/MixDataAccessor.jsonld#MixDataAccessor__member_deleteLocalRdfIndex",
|
|
264
332
|
"memberFieldName": "deleteLocalRdfIndex"
|
|
265
333
|
},
|
|
334
|
+
{
|
|
335
|
+
"@id": "undefineds:dist/storage/accessors/MixDataAccessor.jsonld#MixDataAccessor__member_moveLocalRdfIndex",
|
|
336
|
+
"memberFieldName": "moveLocalRdfIndex"
|
|
337
|
+
},
|
|
266
338
|
{
|
|
267
339
|
"@id": "undefineds:dist/storage/accessors/MixDataAccessor.jsonld#MixDataAccessor__member_writeRdfDocument",
|
|
268
340
|
"memberFieldName": "writeRdfDocument"
|
|
@@ -295,6 +367,14 @@
|
|
|
295
367
|
"@id": "undefineds:dist/storage/accessors/MixDataAccessor.jsonld#MixDataAccessor__member_sourceScopedStructuredAccessor",
|
|
296
368
|
"memberFieldName": "sourceScopedStructuredAccessor"
|
|
297
369
|
},
|
|
370
|
+
{
|
|
371
|
+
"@id": "undefineds:dist/storage/accessors/MixDataAccessor.jsonld#MixDataAccessor__member_syncTextSearchIndex",
|
|
372
|
+
"memberFieldName": "syncTextSearchIndex"
|
|
373
|
+
},
|
|
374
|
+
{
|
|
375
|
+
"@id": "undefineds:dist/storage/accessors/MixDataAccessor.jsonld#MixDataAccessor__member_deleteSearchIndexes",
|
|
376
|
+
"memberFieldName": "deleteSearchIndexes"
|
|
377
|
+
},
|
|
298
378
|
{
|
|
299
379
|
"@id": "undefineds:dist/storage/accessors/MixDataAccessor.jsonld#MixDataAccessor__member_rdfSourceInput",
|
|
300
380
|
"memberFieldName": "rdfSourceInput"
|
|
@@ -387,6 +467,15 @@
|
|
|
387
467
|
},
|
|
388
468
|
{
|
|
389
469
|
"@id": "undefineds:dist/storage/accessors/MixDataAccessor.jsonld#MixDataAccessor_rdfFileDataAccessor"
|
|
470
|
+
},
|
|
471
|
+
{
|
|
472
|
+
"@id": "undefineds:dist/storage/accessors/MixDataAccessor.jsonld#MixDataAccessor_textSearchIndexingEnabled"
|
|
473
|
+
},
|
|
474
|
+
{
|
|
475
|
+
"@id": "undefineds:dist/storage/accessors/MixDataAccessor.jsonld#MixDataAccessor_rdfFileMapper"
|
|
476
|
+
},
|
|
477
|
+
{
|
|
478
|
+
"@id": "undefineds:dist/storage/accessors/MixDataAccessor.jsonld#MixDataAccessor_localRdfAuthorityJournal"
|
|
390
479
|
}
|
|
391
480
|
]
|
|
392
481
|
}
|