@undefineds.co/xpod 0.2.0-preview.2 → 0.2.1
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 +191 -203
- package/bin/xpod.js +90 -1
- package/config/bun.json +1 -1
- package/config/cli.json +5 -0
- package/config/test.local.json +6 -0
- package/dist/agents/AgentExecutorFactory.d.ts +9 -8
- package/dist/agents/AgentExecutorFactory.js +45 -36
- package/dist/agents/AgentExecutorFactory.js.map +1 -1
- package/dist/agents/AgentManager.d.ts +7 -5
- package/dist/agents/AgentManager.js +36 -35
- package/dist/agents/AgentManager.js.map +1 -1
- package/dist/agents/config/agent-meta-schema.d.ts +3 -27
- package/dist/agents/config/agent-meta-schema.js +3 -33
- package/dist/agents/config/agent-meta-schema.js.map +1 -1
- package/dist/agents/config/resolve.d.ts +1 -1
- package/dist/agents/config/resolve.js +47 -42
- package/dist/agents/config/resolve.js.map +1 -1
- package/dist/agents/config/types.d.ts +11 -5
- package/dist/agents/config/types.js.map +1 -1
- package/dist/agents/index.d.ts +1 -1
- package/dist/agents/index.js +4 -4
- package/dist/agents/index.js.map +1 -1
- package/dist/agents/schema/agent-config.d.ts +2 -58
- package/dist/agents/schema/agent-config.js +11 -53
- package/dist/agents/schema/agent-config.js.map +1 -1
- package/dist/agents/schema/create-agent-schema.d.ts +25 -0
- package/dist/agents/schema/create-agent-schema.js +34 -0
- package/dist/agents/schema/create-agent-schema.js.map +1 -0
- package/dist/agents/schema/tables.d.ts +6 -40
- package/dist/agents/schema/tables.js +13 -52
- package/dist/agents/schema/tables.js.map +1 -1
- package/dist/agents/types.d.ts +3 -3
- package/dist/agents/types.js.map +1 -1
- package/dist/ai/schema/config.d.ts +1 -25
- package/dist/ai/schema/config.js +2 -32
- package/dist/ai/schema/config.js.map +1 -1
- package/dist/ai/schema/model.d.ts +3 -38
- package/dist/ai/schema/model.js +8 -48
- package/dist/ai/schema/model.js.map +1 -1
- package/dist/ai/schema/provider.d.ts +1 -19
- package/dist/ai/schema/provider.js +2 -26
- package/dist/ai/schema/provider.js.map +1 -1
- package/dist/ai/schema/vector-store.d.ts +2 -49
- package/dist/ai/schema/vector-store.js +3 -61
- package/dist/ai/schema/vector-store.js.map +1 -1
- package/dist/ai/service/CredentialReaderImpl.js +1 -1
- package/dist/ai/service/CredentialReaderImpl.js.map +1 -1
- package/dist/ai/service/DefaultAiConfigService.js.map +1 -1
- package/dist/api/ApiServer.d.ts +7 -3
- package/dist/api/ApiServer.js +14 -15
- package/dist/api/ApiServer.js.map +1 -1
- package/dist/api/auth/AuthContext.d.ts +1 -0
- package/dist/api/auth/AuthContext.js.map +1 -1
- package/dist/api/auth/ClientCredentialsAuthenticator.d.ts +2 -1
- package/dist/api/auth/ClientCredentialsAuthenticator.js +9 -5
- package/dist/api/auth/ClientCredentialsAuthenticator.js.map +1 -1
- package/dist/api/auth/SolidTokenAuthenticator.js +1 -0
- package/dist/api/auth/SolidTokenAuthenticator.js.map +1 -1
- package/dist/api/chatkit/ai-provider.js +1 -0
- package/dist/api/chatkit/ai-provider.js.map +1 -1
- package/dist/api/chatkit/pod-store.d.ts +29 -34
- package/dist/api/chatkit/pod-store.js +366 -176
- package/dist/api/chatkit/pod-store.js.map +1 -1
- package/dist/api/chatkit/schema.d.ts +30 -30
- package/dist/api/chatkit/schema.js +9 -9
- package/dist/api/chatkit/schema.js.map +1 -1
- package/dist/api/chatkit/service.d.ts +3 -0
- package/dist/api/chatkit/service.js +66 -38
- package/dist/api/chatkit/service.js.map +1 -1
- package/dist/api/chatkit/store.d.ts +16 -15
- package/dist/api/chatkit/store.js +20 -11
- package/dist/api/chatkit/store.js.map +1 -1
- package/dist/api/chatkit/types.d.ts +35 -27
- package/dist/api/chatkit/types.js +38 -0
- package/dist/api/chatkit/types.js.map +1 -1
- package/dist/api/container/common.js +2 -0
- package/dist/api/container/common.js.map +1 -1
- package/dist/api/container/types.d.ts +3 -0
- package/dist/api/container/types.js.map +1 -1
- package/dist/api/handlers/ChatKitV1Handler.js +32 -4
- package/dist/api/handlers/ChatKitV1Handler.js.map +1 -1
- package/dist/api/handlers/DashboardHandler.js +1 -1
- package/dist/api/handlers/DashboardHandler.js.map +1 -1
- package/dist/api/main.d.ts +1 -1
- package/dist/api/main.js +4 -94
- package/dist/api/main.js.map +1 -1
- package/dist/api/models/namespaces.d.ts +2 -9
- package/dist/api/models/namespaces.js +21 -31
- package/dist/api/models/namespaces.js.map +1 -1
- package/dist/api/runtime.d.ts +2 -0
- package/dist/api/runtime.js +26 -1
- package/dist/api/runtime.js.map +1 -1
- package/dist/api/service/VectorStoreService.js +40 -34
- package/dist/api/service/VectorStoreService.js.map +1 -1
- package/dist/api/service/VercelChatService.d.ts +19 -1
- package/dist/api/service/VercelChatService.js +268 -8
- package/dist/api/service/VercelChatService.js.map +1 -1
- package/dist/cli/commands/auth.js +92 -14
- package/dist/cli/commands/auth.js.map +1 -1
- package/dist/cli/commands/backup.js +11 -8
- package/dist/cli/commands/backup.js.map +1 -1
- package/dist/cli/commands/config.d.ts +2 -0
- package/dist/cli/commands/config.js +10 -2
- package/dist/cli/commands/config.js.map +1 -1
- package/dist/cli/commands/doctor.js +3 -3
- package/dist/cli/commands/doctor.js.map +1 -1
- package/dist/cli/commands/import.d.ts +0 -2
- package/dist/cli/commands/import.js +14 -12
- package/dist/cli/commands/import.js.map +1 -1
- package/dist/cli/commands/login.d.ts +9 -0
- package/dist/cli/commands/login.js +106 -0
- package/dist/cli/commands/login.js.map +1 -0
- package/dist/cli/commands/start.js +7 -4
- package/dist/cli/commands/start.js.map +1 -1
- package/dist/cli/index.d.ts +1 -1
- package/dist/cli/index.js +208 -30
- package/dist/cli/index.js.map +1 -1
- package/dist/cli/lib/agent-session.d.ts +37 -0
- package/dist/cli/lib/agent-session.js +211 -0
- package/dist/cli/lib/agent-session.js.map +1 -0
- package/dist/cli/lib/auth-helper.d.ts +22 -0
- package/dist/cli/lib/auth-helper.js +59 -0
- package/dist/cli/lib/auth-helper.js.map +1 -0
- package/dist/cli/lib/credentials-store.d.ts +23 -2
- package/dist/cli/lib/credentials-store.js +52 -5
- package/dist/cli/lib/credentials-store.js.map +1 -1
- package/dist/cli/lib/ensure-ai-credentials.d.ts +13 -0
- package/dist/cli/lib/ensure-ai-credentials.js +40 -0
- package/dist/cli/lib/ensure-ai-credentials.js.map +1 -0
- package/dist/cli/lib/import/db-connector.js +5 -6
- package/dist/cli/lib/import/db-connector.js.map +1 -1
- package/dist/cli/lib/import/pod-writer.d.ts +2 -2
- package/dist/cli/lib/import/pod-writer.js +2 -2
- package/dist/cli/lib/import/pod-writer.js.map +1 -1
- package/dist/cli/lib/import/types.d.ts +1 -6
- package/dist/cli/lib/import/types.js.map +1 -1
- package/dist/cli/lib/model-manager.d.ts +37 -0
- package/dist/cli/lib/model-manager.js +251 -0
- package/dist/cli/lib/model-manager.js.map +1 -0
- package/dist/cli/lib/oauth-credential-manager.d.ts +37 -0
- package/dist/cli/lib/oauth-credential-manager.js +129 -0
- package/dist/cli/lib/oauth-credential-manager.js.map +1 -0
- package/dist/cli/lib/oauth-providers/codebuddy.d.ts +25 -0
- package/dist/cli/lib/oauth-providers/codebuddy.js +69 -0
- package/dist/cli/lib/oauth-providers/codebuddy.js.map +1 -0
- package/dist/cli/lib/oauth-providers/index.d.ts +12 -0
- package/dist/cli/lib/oauth-providers/index.js +23 -0
- package/dist/cli/lib/oauth-providers/index.js.map +1 -0
- package/dist/cli/lib/pi-optional.d.ts +84 -0
- package/dist/cli/lib/pi-optional.js +35 -0
- package/dist/cli/lib/pi-optional.js.map +1 -0
- package/dist/cli/lib/pod-ai-config.d.ts +26 -0
- package/dist/cli/lib/pod-ai-config.js +99 -0
- package/dist/cli/lib/pod-ai-config.js.map +1 -0
- package/dist/cli/lib/pod-thread-store.js +12 -10
- package/dist/cli/lib/pod-thread-store.js.map +1 -1
- package/dist/cli/lib/prompt.d.ts +17 -0
- package/dist/cli/lib/prompt.js +74 -0
- package/dist/cli/lib/prompt.js.map +1 -0
- package/dist/cli/lib/secretary-prompt.d.ts +6 -0
- package/dist/cli/lib/secretary-prompt.js +85 -0
- package/dist/cli/lib/secretary-prompt.js.map +1 -0
- package/dist/cli/lib/solid-auth.d.ts +20 -9
- package/dist/cli/lib/solid-auth.js +50 -36
- package/dist/cli/lib/solid-auth.js.map +1 -1
- package/dist/cli/seed.d.ts +7 -0
- package/dist/cli/seed.js +66 -55
- package/dist/cli/seed.js.map +1 -1
- package/dist/credential/schema/tables.d.ts +9 -31
- package/dist/credential/schema/tables.js +5 -39
- package/dist/credential/schema/tables.js.map +1 -1
- package/dist/http/vector/VectorHttpHandler.d.ts +2 -0
- package/dist/http/vector/VectorHttpHandler.js +20 -3
- package/dist/http/vector/VectorHttpHandler.js.map +1 -1
- package/dist/http/vector/VectorHttpHandler.jsonld +8 -0
- package/dist/identity/drizzle/ServiceTokenRepository.js +9 -10
- package/dist/identity/drizzle/ServiceTokenRepository.js.map +1 -1
- package/dist/identity/drizzle/db.js +7 -20
- package/dist/identity/drizzle/db.js.map +1 -1
- package/dist/identity/drizzle/schema.pg.js +16 -16
- package/dist/identity/drizzle/schema.pg.js.map +1 -1
- package/dist/identity/drizzle/schema.sqlite.d.ts +636 -89
- package/dist/index.d.ts +1 -0
- package/dist/index.js +1 -0
- package/dist/index.js.map +1 -1
- package/dist/main.d.ts +1 -1
- package/dist/main.js +8 -4
- package/dist/main.js.map +1 -1
- package/dist/provision/ProvisionCodeCodec.d.ts +1 -1
- package/dist/provision/ProvisionCodeCodec.js +3 -0
- package/dist/provision/ProvisionCodeCodec.js.map +1 -1
- package/dist/runtime/Proxy.d.ts +6 -3
- package/dist/runtime/Proxy.js +31 -60
- package/dist/runtime/Proxy.js.map +1 -1
- package/dist/runtime/XpodRuntime.d.ts +2 -48
- package/dist/runtime/XpodRuntime.js +56 -329
- package/dist/runtime/XpodRuntime.js.map +1 -1
- package/dist/runtime/bootstrap.d.ts +27 -0
- package/dist/runtime/bootstrap.js +182 -0
- package/dist/runtime/bootstrap.js.map +1 -0
- package/dist/runtime/compat/ensureBunUndiciCompat.d.ts +1 -0
- package/dist/runtime/compat/ensureBunUndiciCompat.js +54 -0
- package/dist/runtime/compat/ensureBunUndiciCompat.js.map +1 -0
- package/dist/runtime/configure-drizzle-solid.d.ts +1 -0
- package/dist/runtime/configure-drizzle-solid.js +20 -0
- package/dist/runtime/configure-drizzle-solid.js.map +1 -0
- package/dist/runtime/driver/node/NodeRuntimeDriver.d.ts +10 -0
- package/dist/runtime/driver/node/NodeRuntimeDriver.js +21 -0
- package/dist/runtime/driver/node/NodeRuntimeDriver.js.map +1 -0
- package/dist/runtime/driver/types.d.ts +11 -0
- package/dist/runtime/driver/types.js +3 -0
- package/dist/runtime/driver/types.js.map +1 -0
- package/dist/runtime/env-utils.d.ts +3 -2
- package/dist/runtime/env-utils.js +8 -21
- package/dist/runtime/env-utils.js.map +1 -1
- package/dist/runtime/environment.d.ts +9 -0
- package/dist/runtime/environment.js +25 -0
- package/dist/runtime/environment.js.map +1 -0
- package/dist/runtime/host/node/NodeRuntimeHost.d.ts +21 -0
- package/dist/runtime/host/node/NodeRuntimeHost.js +165 -0
- package/dist/runtime/host/node/NodeRuntimeHost.js.map +1 -0
- package/dist/runtime/host/types.d.ts +50 -0
- package/dist/runtime/host/types.js +3 -0
- package/dist/runtime/host/types.js.map +1 -0
- package/dist/runtime/index.d.ts +20 -2
- package/dist/runtime/index.js +42 -18
- package/dist/runtime/index.js.map +1 -1
- package/dist/runtime/lifecycle.d.ts +53 -0
- package/dist/runtime/lifecycle.js +137 -0
- package/dist/runtime/lifecycle.js.map +1 -0
- package/dist/runtime/package-root.d.ts +3 -0
- package/dist/runtime/package-root.js +17 -0
- package/dist/runtime/package-root.js.map +1 -0
- package/dist/runtime/platform/node/NodeRuntimePlatform.d.ts +19 -0
- package/dist/runtime/platform/node/NodeRuntimePlatform.js +58 -0
- package/dist/runtime/platform/node/NodeRuntimePlatform.js.map +1 -0
- package/dist/runtime/platform/types.d.ts +16 -0
- package/dist/runtime/platform/types.js +3 -0
- package/dist/runtime/platform/types.js.map +1 -0
- package/dist/runtime/port-finder.d.ts +1 -4
- package/dist/runtime/port-finder.js +98 -7
- package/dist/runtime/port-finder.js.map +1 -1
- package/dist/runtime/runner/node/CommunitySolidServerCssRunner.d.ts +7 -0
- package/dist/{storage/DrizzleCompat.js → runtime/runner/node/CommunitySolidServerCssRunner.js} +22 -32
- package/dist/runtime/runner/node/CommunitySolidServerCssRunner.js.map +1 -0
- package/dist/runtime/runner/node/NodeApiRuntimeRunner.d.ts +7 -0
- package/dist/runtime/runner/node/NodeApiRuntimeRunner.js +20 -0
- package/dist/runtime/runner/node/NodeApiRuntimeRunner.js.map +1 -0
- package/dist/runtime/runner/node/NodeGatewayRuntimeRunner.d.ts +6 -0
- package/dist/runtime/runner/node/NodeGatewayRuntimeRunner.js +24 -0
- package/dist/runtime/runner/node/NodeGatewayRuntimeRunner.js.map +1 -0
- package/dist/runtime/runner/types.d.ts +44 -0
- package/dist/runtime/runner/types.js +3 -0
- package/dist/runtime/runner/types.js.map +1 -0
- package/dist/runtime/runtime-types.d.ts +60 -0
- package/dist/runtime/runtime-types.js +3 -0
- package/dist/runtime/runtime-types.js.map +1 -0
- package/dist/runtime/socket-fetch.d.ts +3 -0
- package/dist/runtime/socket-fetch.js +111 -31
- package/dist/runtime/socket-fetch.js.map +1 -1
- package/dist/runtime/socket-http.d.ts +2 -0
- package/dist/runtime/socket-http.js +24 -14
- package/dist/runtime/socket-http.js.map +1 -1
- package/dist/runtime/socket-origin-registry.d.ts +2 -0
- package/dist/runtime/socket-origin-registry.js +45 -0
- package/dist/runtime/socket-origin-registry.js.map +1 -0
- package/dist/runtime/socket-shim.d.ts +1 -0
- package/dist/runtime/socket-shim.js +22 -0
- package/dist/runtime/socket-shim.js.map +1 -0
- package/dist/runtime/socket-transport.d.ts +16 -0
- package/dist/runtime/socket-transport.js +77 -0
- package/dist/runtime/socket-transport.js.map +1 -0
- package/dist/storage/NodeSqliteDrizzle.d.ts +1 -0
- package/dist/storage/NodeSqliteDrizzle.js +187 -0
- package/dist/storage/NodeSqliteDrizzle.js.map +1 -0
- package/dist/storage/SqliteRuntime.d.ts +6 -0
- package/dist/storage/SqliteRuntime.js +17 -0
- package/dist/storage/SqliteRuntime.js.map +1 -0
- package/dist/storage/accessors/QuadstoreSparqlDataAccessor.d.ts +4 -2
- package/dist/storage/accessors/QuadstoreSparqlDataAccessor.js +16 -20
- package/dist/storage/accessors/QuadstoreSparqlDataAccessor.js.map +1 -1
- package/dist/storage/accessors/QuadstoreSparqlDataAccessor.jsonld +0 -8
- package/dist/storage/keyvalue/RedisKeyValueStorage.d.ts +1 -0
- package/dist/storage/keyvalue/RedisKeyValueStorage.js +11 -2
- package/dist/storage/keyvalue/RedisKeyValueStorage.js.map +1 -1
- package/dist/storage/keyvalue/RedisKeyValueStorage.jsonld +4 -0
- package/dist/storage/keyvalue/SqliteKeyValueStorage.d.ts +2 -0
- package/dist/storage/keyvalue/SqliteKeyValueStorage.js +17 -25
- package/dist/storage/keyvalue/SqliteKeyValueStorage.js.map +1 -1
- package/dist/storage/keyvalue/SqliteKeyValueStorage.jsonld +8 -0
- package/dist/storage/locking/UrlAwareRedisLocker.d.ts +2 -0
- package/dist/storage/locking/UrlAwareRedisLocker.js +22 -0
- package/dist/storage/locking/UrlAwareRedisLocker.js.map +1 -1
- package/dist/storage/locking/UrlAwareRedisLocker.jsonld +8 -0
- package/dist/storage/quint/BaseQuintStore.d.ts +1 -1
- package/dist/storage/quint/BaseQuintStore.js +2 -2
- package/dist/storage/quint/BaseQuintStore.js.map +1 -1
- package/dist/storage/quint/SqliteQuintStore.d.ts +1 -0
- package/dist/storage/quint/SqliteQuintStore.js +12 -18
- package/dist/storage/quint/SqliteQuintStore.js.map +1 -1
- package/dist/storage/quint/SqliteQuintStore.jsonld +4 -0
- package/dist/storage/quint/schema.d.ts +40 -5
- package/dist/storage/quint/serialization.d.ts +5 -1
- package/dist/storage/quint/serialization.js +28 -9
- package/dist/storage/quint/serialization.js.map +1 -1
- package/dist/storage/redis/RedisClientLifecycle.d.ts +11 -0
- package/dist/storage/redis/RedisClientLifecycle.js +72 -0
- package/dist/storage/redis/RedisClientLifecycle.js.map +1 -0
- package/dist/storage/sparql/SubgraphQueryEngine.d.ts +3 -8
- package/dist/storage/sparql/SubgraphQueryEngine.js +12 -109
- package/dist/storage/sparql/SubgraphQueryEngine.js.map +1 -1
- package/dist/storage/sparql/SubgraphQueryEngine.jsonld +2 -27
- package/dist/storage/sqlite/backends/BunSqliteRuntime.d.ts +2 -0
- package/dist/storage/sqlite/backends/BunSqliteRuntime.js +50 -0
- package/dist/storage/sqlite/backends/BunSqliteRuntime.js.map +1 -0
- package/dist/storage/sqlite/backends/NodeSqliteRuntime.d.ts +2 -0
- package/dist/storage/sqlite/backends/NodeSqliteRuntime.js +58 -0
- package/dist/storage/sqlite/backends/NodeSqliteRuntime.js.map +1 -0
- package/dist/storage/sqlite/factory.d.ts +4 -0
- package/dist/storage/sqlite/factory.js +36 -0
- package/dist/storage/sqlite/factory.js.map +1 -0
- package/dist/storage/sqlite/shared.d.ts +4 -0
- package/dist/storage/sqlite/shared.js +25 -0
- package/dist/storage/sqlite/shared.js.map +1 -0
- package/dist/storage/sqlite/types.d.ts +29 -0
- package/dist/storage/sqlite/types.js +3 -0
- package/dist/storage/sqlite/types.js.map +1 -0
- package/dist/storage/vector/PostgresVectorStore.d.ts +1 -0
- package/dist/storage/vector/PostgresVectorStore.js +19 -9
- package/dist/storage/vector/PostgresVectorStore.js.map +1 -1
- package/dist/storage/vector/PostgresVectorStore.jsonld +4 -0
- package/dist/storage/vector/SqliteVecExtension.d.ts +3 -0
- package/dist/storage/vector/SqliteVecExtension.js +16 -0
- package/dist/storage/vector/SqliteVecExtension.js.map +1 -0
- package/dist/storage/vector/SqliteVectorStore.d.ts +1 -0
- package/dist/storage/vector/SqliteVectorStore.js +7 -11
- package/dist/storage/vector/SqliteVectorStore.js.map +1 -1
- package/dist/storage/vector/SqliteVectorStore.jsonld +4 -0
- package/dist/task/DrizzleTaskQueue.d.ts +1 -5
- package/dist/task/DrizzleTaskQueue.js +6 -6
- package/dist/task/DrizzleTaskQueue.js.map +1 -1
- package/dist/task/schema.d.ts +10 -10
- package/dist/task/schema.js +1 -1
- package/dist/task/schema.js.map +1 -1
- package/dist/test-utils/seed-pod.js +3 -2
- package/dist/test-utils/seed-pod.js.map +1 -1
- package/dist/vocab/udfs.d.ts +34 -2
- package/dist/vocab/udfs.js +37 -2
- package/dist/vocab/udfs.js.map +1 -1
- package/node_modules/@undefineds.co/drizzle-solid/LICENSE +21 -0
- package/node_modules/@undefineds.co/drizzle-solid/README.md +254 -0
- package/node_modules/@undefineds.co/drizzle-solid/README.zh-CN.md +254 -0
- package/node_modules/@undefineds.co/drizzle-solid/dist/core/aggregates.d.ts +19 -0
- package/node_modules/@undefineds.co/drizzle-solid/dist/core/aggregates.d.ts.map +1 -0
- package/node_modules/@undefineds.co/drizzle-solid/dist/core/aggregates.js +51 -0
- package/node_modules/@undefineds.co/drizzle-solid/dist/core/aggregates.js.map +1 -0
- package/node_modules/@undefineds.co/drizzle-solid/dist/core/ast-to-sparql.d.ts +64 -0
- package/node_modules/@undefineds.co/drizzle-solid/dist/core/ast-to-sparql.d.ts.map +1 -0
- package/node_modules/@undefineds.co/drizzle-solid/dist/core/ast-to-sparql.js +88 -0
- package/node_modules/@undefineds.co/drizzle-solid/dist/core/ast-to-sparql.js.map +1 -0
- package/node_modules/@undefineds.co/drizzle-solid/dist/core/compile-time-types.d.ts +40 -0
- package/node_modules/@undefineds.co/drizzle-solid/dist/core/compile-time-types.d.ts.map +1 -0
- package/node_modules/@undefineds.co/drizzle-solid/dist/core/compile-time-types.js +73 -0
- package/node_modules/@undefineds.co/drizzle-solid/dist/core/compile-time-types.js.map +1 -0
- package/node_modules/@undefineds.co/drizzle-solid/dist/core/comunica-patch.d.ts +2 -0
- package/node_modules/@undefineds.co/drizzle-solid/dist/core/comunica-patch.d.ts.map +1 -0
- package/node_modules/@undefineds.co/drizzle-solid/dist/core/comunica-patch.js +72 -0
- package/node_modules/@undefineds.co/drizzle-solid/dist/core/comunica-patch.js.map +1 -0
- package/node_modules/@undefineds.co/drizzle-solid/dist/core/conflict-resolution.d.ts +110 -0
- package/node_modules/@undefineds.co/drizzle-solid/dist/core/conflict-resolution.d.ts.map +1 -0
- package/node_modules/@undefineds.co/drizzle-solid/dist/core/conflict-resolution.js +252 -0
- package/node_modules/@undefineds.co/drizzle-solid/dist/core/conflict-resolution.js.map +1 -0
- package/node_modules/@undefineds.co/drizzle-solid/dist/core/discovery/composite-discovery.d.ts +18 -0
- package/node_modules/@undefineds.co/drizzle-solid/dist/core/discovery/composite-discovery.d.ts.map +1 -0
- package/node_modules/@undefineds.co/drizzle-solid/dist/core/discovery/composite-discovery.js +118 -0
- package/node_modules/@undefineds.co/drizzle-solid/dist/core/discovery/composite-discovery.js.map +1 -0
- package/node_modules/@undefineds.co/drizzle-solid/dist/core/discovery/index.d.ts +7 -0
- package/node_modules/@undefineds.co/drizzle-solid/dist/core/discovery/index.d.ts.map +1 -0
- package/node_modules/@undefineds.co/drizzle-solid/dist/core/discovery/index.js +23 -0
- package/node_modules/@undefineds.co/drizzle-solid/dist/core/discovery/index.js.map +1 -0
- package/node_modules/@undefineds.co/drizzle-solid/dist/core/discovery/interop-discovery.d.ts +36 -0
- package/node_modules/@undefineds.co/drizzle-solid/dist/core/discovery/interop-discovery.d.ts.map +1 -0
- package/node_modules/@undefineds.co/drizzle-solid/dist/core/discovery/interop-discovery.js +646 -0
- package/node_modules/@undefineds.co/drizzle-solid/dist/core/discovery/interop-discovery.js.map +1 -0
- package/node_modules/@undefineds.co/drizzle-solid/dist/core/discovery/interop-tables.d.ts +37 -0
- package/node_modules/@undefineds.co/drizzle-solid/dist/core/discovery/interop-tables.d.ts.map +1 -0
- package/node_modules/@undefineds.co/drizzle-solid/dist/core/discovery/interop-tables.js +68 -0
- package/node_modules/@undefineds.co/drizzle-solid/dist/core/discovery/interop-tables.js.map +1 -0
- package/node_modules/@undefineds.co/drizzle-solid/dist/core/discovery/interop-types.d.ts +36 -0
- package/node_modules/@undefineds.co/drizzle-solid/dist/core/discovery/interop-types.d.ts.map +1 -0
- package/node_modules/@undefineds.co/drizzle-solid/dist/core/discovery/interop-types.js +42 -0
- package/node_modules/@undefineds.co/drizzle-solid/dist/core/discovery/interop-types.js.map +1 -0
- package/node_modules/@undefineds.co/drizzle-solid/dist/core/discovery/provider-cache.d.ts +99 -0
- package/node_modules/@undefineds.co/drizzle-solid/dist/core/discovery/provider-cache.d.ts.map +1 -0
- package/node_modules/@undefineds.co/drizzle-solid/dist/core/discovery/provider-cache.js +296 -0
- package/node_modules/@undefineds.co/drizzle-solid/dist/core/discovery/provider-cache.js.map +1 -0
- package/node_modules/@undefineds.co/drizzle-solid/dist/core/discovery/typeindex-discovery.d.ts +30 -0
- package/node_modules/@undefineds.co/drizzle-solid/dist/core/discovery/typeindex-discovery.d.ts.map +1 -0
- package/node_modules/@undefineds.co/drizzle-solid/dist/core/discovery/typeindex-discovery.js +134 -0
- package/node_modules/@undefineds.co/drizzle-solid/dist/core/discovery/typeindex-discovery.js.map +1 -0
- package/node_modules/@undefineds.co/drizzle-solid/dist/core/discovery/types.d.ts +128 -0
- package/node_modules/@undefineds.co/drizzle-solid/dist/core/discovery/types.d.ts.map +1 -0
- package/node_modules/@undefineds.co/drizzle-solid/dist/core/discovery/types.js +3 -0
- package/node_modules/@undefineds.co/drizzle-solid/dist/core/discovery/types.js.map +1 -0
- package/node_modules/@undefineds.co/drizzle-solid/dist/core/execution/index.d.ts +14 -0
- package/node_modules/@undefineds.co/drizzle-solid/dist/core/execution/index.d.ts.map +1 -0
- package/node_modules/@undefineds.co/drizzle-solid/dist/core/execution/index.js +20 -0
- package/node_modules/@undefineds.co/drizzle-solid/dist/core/execution/index.js.map +1 -0
- package/node_modules/@undefineds.co/drizzle-solid/dist/core/execution/ldp-executor.d.ts +67 -0
- package/node_modules/@undefineds.co/drizzle-solid/dist/core/execution/ldp-executor.d.ts.map +1 -0
- package/node_modules/@undefineds.co/drizzle-solid/dist/core/execution/ldp-executor.js +594 -0
- package/node_modules/@undefineds.co/drizzle-solid/dist/core/execution/ldp-executor.js.map +1 -0
- package/node_modules/@undefineds.co/drizzle-solid/dist/core/execution/ldp-strategy.d.ts +53 -0
- package/node_modules/@undefineds.co/drizzle-solid/dist/core/execution/ldp-strategy.d.ts.map +1 -0
- package/node_modules/@undefineds.co/drizzle-solid/dist/core/execution/ldp-strategy.js +104 -0
- package/node_modules/@undefineds.co/drizzle-solid/dist/core/execution/ldp-strategy.js.map +1 -0
- package/node_modules/@undefineds.co/drizzle-solid/dist/core/execution/pod-executor-types.d.ts +9 -0
- package/node_modules/@undefineds.co/drizzle-solid/dist/core/execution/pod-executor-types.d.ts.map +1 -0
- package/node_modules/@undefineds.co/drizzle-solid/dist/core/execution/pod-executor-types.js +3 -0
- package/node_modules/@undefineds.co/drizzle-solid/dist/core/execution/pod-executor-types.js.map +1 -0
- package/node_modules/@undefineds.co/drizzle-solid/dist/core/execution/pod-executor.d.ts +59 -0
- package/node_modules/@undefineds.co/drizzle-solid/dist/core/execution/pod-executor.d.ts.map +1 -0
- package/node_modules/@undefineds.co/drizzle-solid/dist/core/execution/pod-executor.js +228 -0
- package/node_modules/@undefineds.co/drizzle-solid/dist/core/execution/pod-executor.js.map +1 -0
- package/node_modules/@undefineds.co/drizzle-solid/dist/core/execution/sparql-strategy.d.ts +29 -0
- package/node_modules/@undefineds.co/drizzle-solid/dist/core/execution/sparql-strategy.d.ts.map +1 -0
- package/node_modules/@undefineds.co/drizzle-solid/dist/core/execution/sparql-strategy.js +98 -0
- package/node_modules/@undefineds.co/drizzle-solid/dist/core/execution/sparql-strategy.js.map +1 -0
- package/node_modules/@undefineds.co/drizzle-solid/dist/core/execution/strategy-factory.d.ts +41 -0
- package/node_modules/@undefineds.co/drizzle-solid/dist/core/execution/strategy-factory.d.ts.map +1 -0
- package/node_modules/@undefineds.co/drizzle-solid/dist/core/execution/strategy-factory.js +63 -0
- package/node_modules/@undefineds.co/drizzle-solid/dist/core/execution/strategy-factory.js.map +1 -0
- package/node_modules/@undefineds.co/drizzle-solid/dist/core/execution/types.d.ts +80 -0
- package/node_modules/@undefineds.co/drizzle-solid/dist/core/execution/types.d.ts.map +1 -0
- package/node_modules/@undefineds.co/drizzle-solid/dist/core/execution/types.js +8 -0
- package/node_modules/@undefineds.co/drizzle-solid/dist/core/execution/types.js.map +1 -0
- package/node_modules/@undefineds.co/drizzle-solid/dist/core/expressions.d.ts +40 -0
- package/node_modules/@undefineds.co/drizzle-solid/dist/core/expressions.d.ts.map +1 -0
- package/node_modules/@undefineds.co/drizzle-solid/dist/core/expressions.js +60 -0
- package/node_modules/@undefineds.co/drizzle-solid/dist/core/expressions.js.map +1 -0
- package/node_modules/@undefineds.co/drizzle-solid/dist/core/federated/executor.d.ts +98 -0
- package/node_modules/@undefineds.co/drizzle-solid/dist/core/federated/executor.d.ts.map +1 -0
- package/node_modules/@undefineds.co/drizzle-solid/dist/core/federated/executor.js +430 -0
- package/node_modules/@undefineds.co/drizzle-solid/dist/core/federated/executor.js.map +1 -0
- package/node_modules/@undefineds.co/drizzle-solid/dist/core/federated/index.d.ts +3 -0
- package/node_modules/@undefineds.co/drizzle-solid/dist/core/federated/index.d.ts.map +1 -0
- package/node_modules/@undefineds.co/drizzle-solid/dist/core/federated/index.js +19 -0
- package/node_modules/@undefineds.co/drizzle-solid/dist/core/federated/index.js.map +1 -0
- package/node_modules/@undefineds.co/drizzle-solid/dist/core/federated/types.d.ts +69 -0
- package/node_modules/@undefineds.co/drizzle-solid/dist/core/federated/types.d.ts.map +1 -0
- package/node_modules/@undefineds.co/drizzle-solid/dist/core/federated/types.js +8 -0
- package/node_modules/@undefineds.co/drizzle-solid/dist/core/federated/types.js.map +1 -0
- package/node_modules/@undefineds.co/drizzle-solid/dist/core/notifications/channels/base-channel.d.ts +29 -0
- package/node_modules/@undefineds.co/drizzle-solid/dist/core/notifications/channels/base-channel.d.ts.map +1 -0
- package/node_modules/@undefineds.co/drizzle-solid/dist/core/notifications/channels/base-channel.js +63 -0
- package/node_modules/@undefineds.co/drizzle-solid/dist/core/notifications/channels/base-channel.js.map +1 -0
- package/node_modules/@undefineds.co/drizzle-solid/dist/core/notifications/channels/index.d.ts +4 -0
- package/node_modules/@undefineds.co/drizzle-solid/dist/core/notifications/channels/index.d.ts.map +1 -0
- package/node_modules/@undefineds.co/drizzle-solid/dist/core/notifications/channels/index.js +11 -0
- package/node_modules/@undefineds.co/drizzle-solid/dist/core/notifications/channels/index.js.map +1 -0
- package/node_modules/@undefineds.co/drizzle-solid/dist/core/notifications/channels/sse-channel.d.ts +50 -0
- package/node_modules/@undefineds.co/drizzle-solid/dist/core/notifications/channels/sse-channel.d.ts.map +1 -0
- package/node_modules/@undefineds.co/drizzle-solid/dist/core/notifications/channels/sse-channel.js +210 -0
- package/node_modules/@undefineds.co/drizzle-solid/dist/core/notifications/channels/sse-channel.js.map +1 -0
- package/node_modules/@undefineds.co/drizzle-solid/dist/core/notifications/channels/websocket-channel.d.ts +16 -0
- package/node_modules/@undefineds.co/drizzle-solid/dist/core/notifications/channels/websocket-channel.d.ts.map +1 -0
- package/node_modules/@undefineds.co/drizzle-solid/dist/core/notifications/channels/websocket-channel.js +87 -0
- package/node_modules/@undefineds.co/drizzle-solid/dist/core/notifications/channels/websocket-channel.js.map +1 -0
- package/node_modules/@undefineds.co/drizzle-solid/dist/core/notifications/index.d.ts +3 -0
- package/node_modules/@undefineds.co/drizzle-solid/dist/core/notifications/index.d.ts.map +1 -0
- package/node_modules/@undefineds.co/drizzle-solid/dist/core/notifications/index.js +6 -0
- package/node_modules/@undefineds.co/drizzle-solid/dist/core/notifications/index.js.map +1 -0
- package/node_modules/@undefineds.co/drizzle-solid/dist/core/notifications/notifications-client.d.ts +87 -0
- package/node_modules/@undefineds.co/drizzle-solid/dist/core/notifications/notifications-client.d.ts.map +1 -0
- package/node_modules/@undefineds.co/drizzle-solid/dist/core/notifications/notifications-client.js +460 -0
- package/node_modules/@undefineds.co/drizzle-solid/dist/core/notifications/notifications-client.js.map +1 -0
- package/node_modules/@undefineds.co/drizzle-solid/dist/core/notifications/types.d.ts +228 -0
- package/node_modules/@undefineds.co/drizzle-solid/dist/core/notifications/types.d.ts.map +1 -0
- package/node_modules/@undefineds.co/drizzle-solid/dist/core/notifications/types.js +7 -0
- package/node_modules/@undefineds.co/drizzle-solid/dist/core/notifications/types.js.map +1 -0
- package/node_modules/@undefineds.co/drizzle-solid/dist/core/order-by.d.ts +9 -0
- package/node_modules/@undefineds.co/drizzle-solid/dist/core/order-by.d.ts.map +1 -0
- package/node_modules/@undefineds.co/drizzle-solid/dist/core/order-by.js +20 -0
- package/node_modules/@undefineds.co/drizzle-solid/dist/core/order-by.js.map +1 -0
- package/node_modules/@undefineds.co/drizzle-solid/dist/core/pod-database.d.ts +429 -0
- package/node_modules/@undefineds.co/drizzle-solid/dist/core/pod-database.d.ts.map +1 -0
- package/node_modules/@undefineds.co/drizzle-solid/dist/core/pod-database.js +1342 -0
- package/node_modules/@undefineds.co/drizzle-solid/dist/core/pod-database.js.map +1 -0
- package/node_modules/@undefineds.co/drizzle-solid/dist/core/pod-dialect.d.ts +295 -0
- package/node_modules/@undefineds.co/drizzle-solid/dist/core/pod-dialect.d.ts.map +1 -0
- package/node_modules/@undefineds.co/drizzle-solid/dist/core/pod-dialect.js +1223 -0
- package/node_modules/@undefineds.co/drizzle-solid/dist/core/pod-dialect.js.map +1 -0
- package/node_modules/@undefineds.co/drizzle-solid/dist/core/pod-discovery.d.ts +20 -0
- package/node_modules/@undefineds.co/drizzle-solid/dist/core/pod-discovery.d.ts.map +1 -0
- package/node_modules/@undefineds.co/drizzle-solid/dist/core/pod-discovery.js +115 -0
- package/node_modules/@undefineds.co/drizzle-solid/dist/core/pod-discovery.js.map +1 -0
- package/node_modules/@undefineds.co/drizzle-solid/dist/core/pod-session.d.ts +49 -0
- package/node_modules/@undefineds.co/drizzle-solid/dist/core/pod-session.d.ts.map +1 -0
- package/node_modules/@undefineds.co/drizzle-solid/dist/core/pod-session.js +122 -0
- package/node_modules/@undefineds.co/drizzle-solid/dist/core/pod-session.js.map +1 -0
- package/node_modules/@undefineds.co/drizzle-solid/dist/core/profile-manager.d.ts +90 -0
- package/node_modules/@undefineds.co/drizzle-solid/dist/core/profile-manager.d.ts.map +1 -0
- package/node_modules/@undefineds.co/drizzle-solid/dist/core/profile-manager.js +168 -0
- package/node_modules/@undefineds.co/drizzle-solid/dist/core/profile-manager.js.map +1 -0
- package/node_modules/@undefineds.co/drizzle-solid/dist/core/query-builders/delete-query-builder.d.ts +31 -0
- package/node_modules/@undefineds.co/drizzle-solid/dist/core/query-builders/delete-query-builder.d.ts.map +1 -0
- package/node_modules/@undefineds.co/drizzle-solid/dist/core/query-builders/delete-query-builder.js +173 -0
- package/node_modules/@undefineds.co/drizzle-solid/dist/core/query-builders/delete-query-builder.js.map +1 -0
- package/node_modules/@undefineds.co/drizzle-solid/dist/core/query-builders/helpers.d.ts +11 -0
- package/node_modules/@undefineds.co/drizzle-solid/dist/core/query-builders/helpers.d.ts.map +1 -0
- package/node_modules/@undefineds.co/drizzle-solid/dist/core/query-builders/helpers.js +199 -0
- package/node_modules/@undefineds.co/drizzle-solid/dist/core/query-builders/helpers.js.map +1 -0
- package/node_modules/@undefineds.co/drizzle-solid/dist/core/query-builders/index.d.ts +6 -0
- package/node_modules/@undefineds.co/drizzle-solid/dist/core/query-builders/index.d.ts.map +1 -0
- package/node_modules/@undefineds.co/drizzle-solid/dist/core/query-builders/index.js +12 -0
- package/node_modules/@undefineds.co/drizzle-solid/dist/core/query-builders/index.js.map +1 -0
- package/node_modules/@undefineds.co/drizzle-solid/dist/core/query-builders/insert-query-builder.d.ts +34 -0
- package/node_modules/@undefineds.co/drizzle-solid/dist/core/query-builders/insert-query-builder.d.ts.map +1 -0
- package/node_modules/@undefineds.co/drizzle-solid/dist/core/query-builders/insert-query-builder.js +172 -0
- package/node_modules/@undefineds.co/drizzle-solid/dist/core/query-builders/insert-query-builder.js.map +1 -0
- package/node_modules/@undefineds.co/drizzle-solid/dist/core/query-builders/select-query-builder.d.ts +150 -0
- package/node_modules/@undefineds.co/drizzle-solid/dist/core/query-builders/select-query-builder.d.ts.map +1 -0
- package/node_modules/@undefineds.co/drizzle-solid/dist/core/query-builders/select-query-builder.js +1821 -0
- package/node_modules/@undefineds.co/drizzle-solid/dist/core/query-builders/select-query-builder.js.map +1 -0
- package/node_modules/@undefineds.co/drizzle-solid/dist/core/query-builders/types.d.ts +39 -0
- package/node_modules/@undefineds.co/drizzle-solid/dist/core/query-builders/types.d.ts.map +1 -0
- package/node_modules/@undefineds.co/drizzle-solid/dist/core/query-builders/types.js +3 -0
- package/node_modules/@undefineds.co/drizzle-solid/dist/core/query-builders/types.js.map +1 -0
- package/node_modules/@undefineds.co/drizzle-solid/dist/core/query-builders/update-query-builder.d.ts +34 -0
- package/node_modules/@undefineds.co/drizzle-solid/dist/core/query-builders/update-query-builder.d.ts.map +1 -0
- package/node_modules/@undefineds.co/drizzle-solid/dist/core/query-builders/update-query-builder.js +212 -0
- package/node_modules/@undefineds.co/drizzle-solid/dist/core/query-builders/update-query-builder.js.map +1 -0
- package/node_modules/@undefineds.co/drizzle-solid/dist/core/query-conditions.d.ts +60 -0
- package/node_modules/@undefineds.co/drizzle-solid/dist/core/query-conditions.d.ts.map +1 -0
- package/node_modules/@undefineds.co/drizzle-solid/dist/core/query-conditions.js +134 -0
- package/node_modules/@undefineds.co/drizzle-solid/dist/core/query-conditions.js.map +1 -0
- package/node_modules/@undefineds.co/drizzle-solid/dist/core/query-where-policy.d.ts +7 -0
- package/node_modules/@undefineds.co/drizzle-solid/dist/core/query-where-policy.d.ts.map +1 -0
- package/node_modules/@undefineds.co/drizzle-solid/dist/core/query-where-policy.js +83 -0
- package/node_modules/@undefineds.co/drizzle-solid/dist/core/query-where-policy.js.map +1 -0
- package/node_modules/@undefineds.co/drizzle-solid/dist/core/rdf-constants.d.ts +16 -0
- package/node_modules/@undefineds.co/drizzle-solid/dist/core/rdf-constants.d.ts.map +1 -0
- package/node_modules/@undefineds.co/drizzle-solid/dist/core/rdf-constants.js +38 -0
- package/node_modules/@undefineds.co/drizzle-solid/dist/core/rdf-constants.js.map +1 -0
- package/node_modules/@undefineds.co/drizzle-solid/dist/core/rdf-schema-parser.d.ts +34 -0
- package/node_modules/@undefineds.co/drizzle-solid/dist/core/rdf-schema-parser.d.ts.map +1 -0
- package/node_modules/@undefineds.co/drizzle-solid/dist/core/rdf-schema-parser.js +143 -0
- package/node_modules/@undefineds.co/drizzle-solid/dist/core/rdf-schema-parser.js.map +1 -0
- package/node_modules/@undefineds.co/drizzle-solid/dist/core/resource-resolver/base-resolver.d.ts +126 -0
- package/node_modules/@undefineds.co/drizzle-solid/dist/core/resource-resolver/base-resolver.d.ts.map +1 -0
- package/node_modules/@undefineds.co/drizzle-solid/dist/core/resource-resolver/base-resolver.js +429 -0
- package/node_modules/@undefineds.co/drizzle-solid/dist/core/resource-resolver/base-resolver.js.map +1 -0
- package/node_modules/@undefineds.co/drizzle-solid/dist/core/resource-resolver/document-resolver.d.ts +36 -0
- package/node_modules/@undefineds.co/drizzle-solid/dist/core/resource-resolver/document-resolver.d.ts.map +1 -0
- package/node_modules/@undefineds.co/drizzle-solid/dist/core/resource-resolver/document-resolver.js +161 -0
- package/node_modules/@undefineds.co/drizzle-solid/dist/core/resource-resolver/document-resolver.js.map +1 -0
- package/node_modules/@undefineds.co/drizzle-solid/dist/core/resource-resolver/factory.d.ts +27 -0
- package/node_modules/@undefineds.co/drizzle-solid/dist/core/resource-resolver/factory.d.ts.map +1 -0
- package/node_modules/@undefineds.co/drizzle-solid/dist/core/resource-resolver/factory.js +58 -0
- package/node_modules/@undefineds.co/drizzle-solid/dist/core/resource-resolver/factory.js.map +1 -0
- package/node_modules/@undefineds.co/drizzle-solid/dist/core/resource-resolver/fragment-resolver.d.ts +34 -0
- package/node_modules/@undefineds.co/drizzle-solid/dist/core/resource-resolver/fragment-resolver.d.ts.map +1 -0
- package/node_modules/@undefineds.co/drizzle-solid/dist/core/resource-resolver/fragment-resolver.js +72 -0
- package/node_modules/@undefineds.co/drizzle-solid/dist/core/resource-resolver/fragment-resolver.js.map +1 -0
- package/node_modules/@undefineds.co/drizzle-solid/dist/core/resource-resolver/index.d.ts +11 -0
- package/node_modules/@undefineds.co/drizzle-solid/dist/core/resource-resolver/index.d.ts.map +1 -0
- package/node_modules/@undefineds.co/drizzle-solid/dist/core/resource-resolver/index.js +18 -0
- package/node_modules/@undefineds.co/drizzle-solid/dist/core/resource-resolver/index.js.map +1 -0
- package/node_modules/@undefineds.co/drizzle-solid/dist/core/resource-resolver/types.d.ts +57 -0
- package/node_modules/@undefineds.co/drizzle-solid/dist/core/resource-resolver/types.d.ts.map +1 -0
- package/node_modules/@undefineds.co/drizzle-solid/dist/core/resource-resolver/types.js +9 -0
- package/node_modules/@undefineds.co/drizzle-solid/dist/core/resource-resolver/types.js.map +1 -0
- package/node_modules/@undefineds.co/drizzle-solid/dist/core/runtime/pod-runtime.d.ts +59 -0
- package/node_modules/@undefineds.co/drizzle-solid/dist/core/runtime/pod-runtime.d.ts.map +1 -0
- package/node_modules/@undefineds.co/drizzle-solid/dist/core/runtime/pod-runtime.js +186 -0
- package/node_modules/@undefineds.co/drizzle-solid/dist/core/runtime/pod-runtime.js.map +1 -0
- package/node_modules/@undefineds.co/drizzle-solid/dist/core/schema/columns.d.ts +74 -0
- package/node_modules/@undefineds.co/drizzle-solid/dist/core/schema/columns.d.ts.map +1 -0
- package/node_modules/@undefineds.co/drizzle-solid/dist/core/schema/columns.js +295 -0
- package/node_modules/@undefineds.co/drizzle-solid/dist/core/schema/columns.js.map +1 -0
- package/node_modules/@undefineds.co/drizzle-solid/dist/core/schema/defs.d.ts +92 -0
- package/node_modules/@undefineds.co/drizzle-solid/dist/core/schema/defs.d.ts.map +1 -0
- package/node_modules/@undefineds.co/drizzle-solid/dist/core/schema/defs.js +43 -0
- package/node_modules/@undefineds.co/drizzle-solid/dist/core/schema/defs.js.map +1 -0
- package/node_modules/@undefineds.co/drizzle-solid/dist/core/schema/factories.d.ts +29 -0
- package/node_modules/@undefineds.co/drizzle-solid/dist/core/schema/factories.d.ts.map +1 -0
- package/node_modules/@undefineds.co/drizzle-solid/dist/core/schema/factories.js +117 -0
- package/node_modules/@undefineds.co/drizzle-solid/dist/core/schema/factories.js.map +1 -0
- package/node_modules/@undefineds.co/drizzle-solid/dist/core/schema/index.d.ts +9 -0
- package/node_modules/@undefineds.co/drizzle-solid/dist/core/schema/index.d.ts.map +1 -0
- package/node_modules/@undefineds.co/drizzle-solid/dist/core/schema/index.js +25 -0
- package/node_modules/@undefineds.co/drizzle-solid/dist/core/schema/index.js.map +1 -0
- package/node_modules/@undefineds.co/drizzle-solid/dist/core/schema/pod-table.d.ts +100 -0
- package/node_modules/@undefineds.co/drizzle-solid/dist/core/schema/pod-table.d.ts.map +1 -0
- package/node_modules/@undefineds.co/drizzle-solid/dist/core/schema/pod-table.js +370 -0
- package/node_modules/@undefineds.co/drizzle-solid/dist/core/schema/pod-table.js.map +1 -0
- package/node_modules/@undefineds.co/drizzle-solid/dist/core/schema/relations.d.ts +26 -0
- package/node_modules/@undefineds.co/drizzle-solid/dist/core/schema/relations.d.ts.map +1 -0
- package/node_modules/@undefineds.co/drizzle-solid/dist/core/schema/relations.js +36 -0
- package/node_modules/@undefineds.co/drizzle-solid/dist/core/schema/relations.js.map +1 -0
- package/node_modules/@undefineds.co/drizzle-solid/dist/core/schema/solid-schema.d.ts +19 -0
- package/node_modules/@undefineds.co/drizzle-solid/dist/core/schema/solid-schema.d.ts.map +1 -0
- package/node_modules/@undefineds.co/drizzle-solid/dist/core/schema/solid-schema.js +93 -0
- package/node_modules/@undefineds.co/drizzle-solid/dist/core/schema/solid-schema.js.map +1 -0
- package/node_modules/@undefineds.co/drizzle-solid/dist/core/schema/types.d.ts +45 -0
- package/node_modules/@undefineds.co/drizzle-solid/dist/core/schema/types.d.ts.map +1 -0
- package/node_modules/@undefineds.co/drizzle-solid/dist/core/schema/types.js +3 -0
- package/node_modules/@undefineds.co/drizzle-solid/dist/core/schema/types.js.map +1 -0
- package/node_modules/@undefineds.co/drizzle-solid/dist/core/schema/utils.d.ts +15 -0
- package/node_modules/@undefineds.co/drizzle-solid/dist/core/schema/utils.d.ts.map +1 -0
- package/node_modules/@undefineds.co/drizzle-solid/dist/core/schema/utils.js +44 -0
- package/node_modules/@undefineds.co/drizzle-solid/dist/core/schema/utils.js.map +1 -0
- package/node_modules/@undefineds.co/drizzle-solid/dist/core/select-plan.d.ts +50 -0
- package/node_modules/@undefineds.co/drizzle-solid/dist/core/select-plan.d.ts.map +1 -0
- package/node_modules/@undefineds.co/drizzle-solid/dist/core/select-plan.js +3 -0
- package/node_modules/@undefineds.co/drizzle-solid/dist/core/select-plan.js.map +1 -0
- package/node_modules/@undefineds.co/drizzle-solid/dist/core/services/pod-services.d.ts +43 -0
- package/node_modules/@undefineds.co/drizzle-solid/dist/core/services/pod-services.d.ts.map +1 -0
- package/node_modules/@undefineds.co/drizzle-solid/dist/core/services/pod-services.js +81 -0
- package/node_modules/@undefineds.co/drizzle-solid/dist/core/services/pod-services.js.map +1 -0
- package/node_modules/@undefineds.co/drizzle-solid/dist/core/shape/generator.d.ts +12 -0
- package/node_modules/@undefineds.co/drizzle-solid/dist/core/shape/generator.d.ts.map +1 -0
- package/node_modules/@undefineds.co/drizzle-solid/dist/core/shape/generator.js +109 -0
- package/node_modules/@undefineds.co/drizzle-solid/dist/core/shape/generator.js.map +1 -0
- package/node_modules/@undefineds.co/drizzle-solid/dist/core/shape/index.d.ts +4 -0
- package/node_modules/@undefineds.co/drizzle-solid/dist/core/shape/index.d.ts.map +1 -0
- package/node_modules/@undefineds.co/drizzle-solid/dist/core/shape/index.js +20 -0
- package/node_modules/@undefineds.co/drizzle-solid/dist/core/shape/index.js.map +1 -0
- package/node_modules/@undefineds.co/drizzle-solid/dist/core/shape/manager.d.ts +45 -0
- package/node_modules/@undefineds.co/drizzle-solid/dist/core/shape/manager.d.ts.map +1 -0
- package/node_modules/@undefineds.co/drizzle-solid/dist/core/shape/manager.js +393 -0
- package/node_modules/@undefineds.co/drizzle-solid/dist/core/shape/manager.js.map +1 -0
- package/node_modules/@undefineds.co/drizzle-solid/dist/core/shape/shacl-parser.d.ts +19 -0
- package/node_modules/@undefineds.co/drizzle-solid/dist/core/shape/shacl-parser.d.ts.map +1 -0
- package/node_modules/@undefineds.co/drizzle-solid/dist/core/shape/shacl-parser.js +215 -0
- package/node_modules/@undefineds.co/drizzle-solid/dist/core/shape/shacl-parser.js.map +1 -0
- package/node_modules/@undefineds.co/drizzle-solid/dist/core/shape/shacl.d.ts +11 -0
- package/node_modules/@undefineds.co/drizzle-solid/dist/core/shape/shacl.d.ts.map +1 -0
- package/node_modules/@undefineds.co/drizzle-solid/dist/core/shape/shacl.js +130 -0
- package/node_modules/@undefineds.co/drizzle-solid/dist/core/shape/shacl.js.map +1 -0
- package/node_modules/@undefineds.co/drizzle-solid/dist/core/shape/types.d.ts +149 -0
- package/node_modules/@undefineds.co/drizzle-solid/dist/core/shape/types.d.ts.map +1 -0
- package/node_modules/@undefineds.co/drizzle-solid/dist/core/shape/types.js +45 -0
- package/node_modules/@undefineds.co/drizzle-solid/dist/core/shape/types.js.map +1 -0
- package/node_modules/@undefineds.co/drizzle-solid/dist/core/shape/validator.d.ts +11 -0
- package/node_modules/@undefineds.co/drizzle-solid/dist/core/shape/validator.d.ts.map +1 -0
- package/node_modules/@undefineds.co/drizzle-solid/dist/core/shape/validator.js +232 -0
- package/node_modules/@undefineds.co/drizzle-solid/dist/core/shape/validator.js.map +1 -0
- package/node_modules/@undefineds.co/drizzle-solid/dist/core/solid-n3-client.d.ts +86 -0
- package/node_modules/@undefineds.co/drizzle-solid/dist/core/solid-n3-client.d.ts.map +1 -0
- package/node_modules/@undefineds.co/drizzle-solid/dist/core/solid-n3-client.js +290 -0
- package/node_modules/@undefineds.co/drizzle-solid/dist/core/solid-n3-client.js.map +1 -0
- package/node_modules/@undefineds.co/drizzle-solid/dist/core/sparql/builder/expression-builder.d.ts +53 -0
- package/node_modules/@undefineds.co/drizzle-solid/dist/core/sparql/builder/expression-builder.d.ts.map +1 -0
- package/node_modules/@undefineds.co/drizzle-solid/dist/core/sparql/builder/expression-builder.js +440 -0
- package/node_modules/@undefineds.co/drizzle-solid/dist/core/sparql/builder/expression-builder.js.map +1 -0
- package/node_modules/@undefineds.co/drizzle-solid/dist/core/sparql/builder/select-builder.d.ts +44 -0
- package/node_modules/@undefineds.co/drizzle-solid/dist/core/sparql/builder/select-builder.d.ts.map +1 -0
- package/node_modules/@undefineds.co/drizzle-solid/dist/core/sparql/builder/select-builder.js +613 -0
- package/node_modules/@undefineds.co/drizzle-solid/dist/core/sparql/builder/select-builder.js.map +1 -0
- package/node_modules/@undefineds.co/drizzle-solid/dist/core/sparql/builder/update-builder.d.ts +33 -0
- package/node_modules/@undefineds.co/drizzle-solid/dist/core/sparql/builder/update-builder.d.ts.map +1 -0
- package/node_modules/@undefineds.co/drizzle-solid/dist/core/sparql/builder/update-builder.js +512 -0
- package/node_modules/@undefineds.co/drizzle-solid/dist/core/sparql/builder/update-builder.js.map +1 -0
- package/node_modules/@undefineds.co/drizzle-solid/dist/core/sparql/helpers.d.ts +19 -0
- package/node_modules/@undefineds.co/drizzle-solid/dist/core/sparql/helpers.d.ts.map +1 -0
- package/node_modules/@undefineds.co/drizzle-solid/dist/core/sparql/helpers.js +172 -0
- package/node_modules/@undefineds.co/drizzle-solid/dist/core/sparql/helpers.js.map +1 -0
- package/node_modules/@undefineds.co/drizzle-solid/dist/core/sparql/types.d.ts +10 -0
- package/node_modules/@undefineds.co/drizzle-solid/dist/core/sparql/types.d.ts.map +1 -0
- package/node_modules/@undefineds.co/drizzle-solid/dist/core/sparql/types.js +3 -0
- package/node_modules/@undefineds.co/drizzle-solid/dist/core/sparql/types.js.map +1 -0
- package/node_modules/@undefineds.co/drizzle-solid/dist/core/sparql-engine.d.ts +16 -0
- package/node_modules/@undefineds.co/drizzle-solid/dist/core/sparql-engine.d.ts.map +1 -0
- package/node_modules/@undefineds.co/drizzle-solid/dist/core/sparql-engine.js +128 -0
- package/node_modules/@undefineds.co/drizzle-solid/dist/core/sparql-engine.js.map +1 -0
- package/node_modules/@undefineds.co/drizzle-solid/dist/core/sparql-executor.d.ts +39 -0
- package/node_modules/@undefineds.co/drizzle-solid/dist/core/sparql-executor.d.ts.map +1 -0
- package/node_modules/@undefineds.co/drizzle-solid/dist/core/sparql-executor.js +721 -0
- package/node_modules/@undefineds.co/drizzle-solid/dist/core/sparql-executor.js.map +1 -0
- package/node_modules/@undefineds.co/drizzle-solid/dist/core/subject/index.d.ts +29 -0
- package/node_modules/@undefineds.co/drizzle-solid/dist/core/subject/index.d.ts.map +1 -0
- package/node_modules/@undefineds.co/drizzle-solid/dist/core/subject/index.js +51 -0
- package/node_modules/@undefineds.co/drizzle-solid/dist/core/subject/index.js.map +1 -0
- package/node_modules/@undefineds.co/drizzle-solid/dist/core/subject/resolver.d.ts +115 -0
- package/node_modules/@undefineds.co/drizzle-solid/dist/core/subject/resolver.d.ts.map +1 -0
- package/node_modules/@undefineds.co/drizzle-solid/dist/core/subject/resolver.js +464 -0
- package/node_modules/@undefineds.co/drizzle-solid/dist/core/subject/resolver.js.map +1 -0
- package/node_modules/@undefineds.co/drizzle-solid/dist/core/subject/types.d.ts +97 -0
- package/node_modules/@undefineds.co/drizzle-solid/dist/core/subject/types.d.ts.map +1 -0
- package/node_modules/@undefineds.co/drizzle-solid/dist/core/subject/types.js +8 -0
- package/node_modules/@undefineds.co/drizzle-solid/dist/core/subject/types.js.map +1 -0
- package/node_modules/@undefineds.co/drizzle-solid/dist/core/triple/builder.d.ts +86 -0
- package/node_modules/@undefineds.co/drizzle-solid/dist/core/triple/builder.d.ts.map +1 -0
- package/node_modules/@undefineds.co/drizzle-solid/dist/core/triple/builder.js +340 -0
- package/node_modules/@undefineds.co/drizzle-solid/dist/core/triple/builder.js.map +1 -0
- package/node_modules/@undefineds.co/drizzle-solid/dist/core/triple/handlers/array.d.ts +23 -0
- package/node_modules/@undefineds.co/drizzle-solid/dist/core/triple/handlers/array.d.ts.map +1 -0
- package/node_modules/@undefineds.co/drizzle-solid/dist/core/triple/handlers/array.js +119 -0
- package/node_modules/@undefineds.co/drizzle-solid/dist/core/triple/handlers/array.js.map +1 -0
- package/node_modules/@undefineds.co/drizzle-solid/dist/core/triple/handlers/default.d.ts +20 -0
- package/node_modules/@undefineds.co/drizzle-solid/dist/core/triple/handlers/default.d.ts.map +1 -0
- package/node_modules/@undefineds.co/drizzle-solid/dist/core/triple/handlers/default.js +96 -0
- package/node_modules/@undefineds.co/drizzle-solid/dist/core/triple/handlers/default.js.map +1 -0
- package/node_modules/@undefineds.co/drizzle-solid/dist/core/triple/handlers/index.d.ts +35 -0
- package/node_modules/@undefineds.co/drizzle-solid/dist/core/triple/handlers/index.d.ts.map +1 -0
- package/node_modules/@undefineds.co/drizzle-solid/dist/core/triple/handlers/index.js +67 -0
- package/node_modules/@undefineds.co/drizzle-solid/dist/core/triple/handlers/index.js.map +1 -0
- package/node_modules/@undefineds.co/drizzle-solid/dist/core/triple/handlers/inline.d.ts +35 -0
- package/node_modules/@undefineds.co/drizzle-solid/dist/core/triple/handlers/inline.d.ts.map +1 -0
- package/node_modules/@undefineds.co/drizzle-solid/dist/core/triple/handlers/inline.js +190 -0
- package/node_modules/@undefineds.co/drizzle-solid/dist/core/triple/handlers/inline.js.map +1 -0
- package/node_modules/@undefineds.co/drizzle-solid/dist/core/triple/handlers/inverse.d.ts +26 -0
- package/node_modules/@undefineds.co/drizzle-solid/dist/core/triple/handlers/inverse.d.ts.map +1 -0
- package/node_modules/@undefineds.co/drizzle-solid/dist/core/triple/handlers/inverse.js +89 -0
- package/node_modules/@undefineds.co/drizzle-solid/dist/core/triple/handlers/inverse.js.map +1 -0
- package/node_modules/@undefineds.co/drizzle-solid/dist/core/triple/handlers/uri.d.ts +28 -0
- package/node_modules/@undefineds.co/drizzle-solid/dist/core/triple/handlers/uri.d.ts.map +1 -0
- package/node_modules/@undefineds.co/drizzle-solid/dist/core/triple/handlers/uri.js +66 -0
- package/node_modules/@undefineds.co/drizzle-solid/dist/core/triple/handlers/uri.js.map +1 -0
- package/node_modules/@undefineds.co/drizzle-solid/dist/core/triple/index.d.ts +9 -0
- package/node_modules/@undefineds.co/drizzle-solid/dist/core/triple/index.d.ts.map +1 -0
- package/node_modules/@undefineds.co/drizzle-solid/dist/core/triple/index.js +21 -0
- package/node_modules/@undefineds.co/drizzle-solid/dist/core/triple/index.js.map +1 -0
- package/node_modules/@undefineds.co/drizzle-solid/dist/core/triple/types.d.ts +152 -0
- package/node_modules/@undefineds.co/drizzle-solid/dist/core/triple/types.d.ts.map +1 -0
- package/node_modules/@undefineds.co/drizzle-solid/dist/core/triple/types.js +8 -0
- package/node_modules/@undefineds.co/drizzle-solid/dist/core/triple/types.js.map +1 -0
- package/node_modules/@undefineds.co/drizzle-solid/dist/core/typeindex-manager.d.ts +130 -0
- package/node_modules/@undefineds.co/drizzle-solid/dist/core/typeindex-manager.d.ts.map +1 -0
- package/node_modules/@undefineds.co/drizzle-solid/dist/core/typeindex-manager.js +686 -0
- package/node_modules/@undefineds.co/drizzle-solid/dist/core/typeindex-manager.js.map +1 -0
- package/node_modules/@undefineds.co/drizzle-solid/dist/core/types.d.ts +57 -0
- package/node_modules/@undefineds.co/drizzle-solid/dist/core/types.d.ts.map +1 -0
- package/node_modules/@undefineds.co/drizzle-solid/dist/core/types.js +4 -0
- package/node_modules/@undefineds.co/drizzle-solid/dist/core/types.js.map +1 -0
- package/node_modules/@undefineds.co/drizzle-solid/dist/core/uri/index.d.ts +8 -0
- package/node_modules/@undefineds.co/drizzle-solid/dist/core/uri/index.d.ts.map +1 -0
- package/node_modules/@undefineds.co/drizzle-solid/dist/core/uri/index.js +12 -0
- package/node_modules/@undefineds.co/drizzle-solid/dist/core/uri/index.js.map +1 -0
- package/node_modules/@undefineds.co/drizzle-solid/dist/core/uri/resolver.d.ts +146 -0
- package/node_modules/@undefineds.co/drizzle-solid/dist/core/uri/resolver.d.ts.map +1 -0
- package/node_modules/@undefineds.co/drizzle-solid/dist/core/uri/resolver.js +625 -0
- package/node_modules/@undefineds.co/drizzle-solid/dist/core/uri/resolver.js.map +1 -0
- package/node_modules/@undefineds.co/drizzle-solid/dist/core/uri/types.d.ts +150 -0
- package/node_modules/@undefineds.co/drizzle-solid/dist/core/uri/types.d.ts.map +1 -0
- package/node_modules/@undefineds.co/drizzle-solid/dist/core/uri/types.js +8 -0
- package/node_modules/@undefineds.co/drizzle-solid/dist/core/uri/types.js.map +1 -0
- package/node_modules/@undefineds.co/drizzle-solid/dist/core/utils/debug-logger.d.ts +19 -0
- package/node_modules/@undefineds.co/drizzle-solid/dist/core/utils/debug-logger.d.ts.map +1 -0
- package/node_modules/@undefineds.co/drizzle-solid/dist/core/utils/debug-logger.js +59 -0
- package/node_modules/@undefineds.co/drizzle-solid/dist/core/utils/debug-logger.js.map +1 -0
- package/node_modules/@undefineds.co/drizzle-solid/dist/core/utils/origin-auth.d.ts +28 -0
- package/node_modules/@undefineds.co/drizzle-solid/dist/core/utils/origin-auth.d.ts.map +1 -0
- package/node_modules/@undefineds.co/drizzle-solid/dist/core/utils/origin-auth.js +46 -0
- package/node_modules/@undefineds.co/drizzle-solid/dist/core/utils/origin-auth.js.map +1 -0
- package/node_modules/@undefineds.co/drizzle-solid/dist/core/utils/pod-root.d.ts +15 -0
- package/node_modules/@undefineds.co/drizzle-solid/dist/core/utils/pod-root.d.ts.map +1 -0
- package/node_modules/@undefineds.co/drizzle-solid/dist/core/utils/pod-root.js +72 -0
- package/node_modules/@undefineds.co/drizzle-solid/dist/core/utils/pod-root.js.map +1 -0
- package/node_modules/@undefineds.co/drizzle-solid/dist/core/zod-integration.d.ts +97 -0
- package/node_modules/@undefineds.co/drizzle-solid/dist/core/zod-integration.d.ts.map +1 -0
- package/node_modules/@undefineds.co/drizzle-solid/dist/core/zod-integration.js +236 -0
- package/node_modules/@undefineds.co/drizzle-solid/dist/core/zod-integration.js.map +1 -0
- package/node_modules/@undefineds.co/drizzle-solid/dist/driver.d.ts +52 -0
- package/node_modules/@undefineds.co/drizzle-solid/dist/driver.d.ts.map +1 -0
- package/node_modules/@undefineds.co/drizzle-solid/dist/driver.js +32 -0
- package/node_modules/@undefineds.co/drizzle-solid/dist/driver.js.map +1 -0
- package/node_modules/@undefineds.co/drizzle-solid/dist/esm/core/aggregates.d.ts +19 -0
- package/node_modules/@undefineds.co/drizzle-solid/dist/esm/core/aggregates.d.ts.map +1 -0
- package/node_modules/@undefineds.co/drizzle-solid/dist/esm/core/aggregates.js +43 -0
- package/node_modules/@undefineds.co/drizzle-solid/dist/esm/core/aggregates.js.map +1 -0
- package/node_modules/@undefineds.co/drizzle-solid/dist/esm/core/ast-to-sparql.d.ts +64 -0
- package/node_modules/@undefineds.co/drizzle-solid/dist/esm/core/ast-to-sparql.d.ts.map +1 -0
- package/node_modules/@undefineds.co/drizzle-solid/dist/esm/core/ast-to-sparql.js +84 -0
- package/node_modules/@undefineds.co/drizzle-solid/dist/esm/core/ast-to-sparql.js.map +1 -0
- package/node_modules/@undefineds.co/drizzle-solid/dist/esm/core/compile-time-types.d.ts +40 -0
- package/node_modules/@undefineds.co/drizzle-solid/dist/esm/core/compile-time-types.d.ts.map +1 -0
- package/node_modules/@undefineds.co/drizzle-solid/dist/esm/core/compile-time-types.js +66 -0
- package/node_modules/@undefineds.co/drizzle-solid/dist/esm/core/compile-time-types.js.map +1 -0
- package/node_modules/@undefineds.co/drizzle-solid/dist/esm/core/comunica-patch.d.ts +2 -0
- package/node_modules/@undefineds.co/drizzle-solid/dist/esm/core/comunica-patch.d.ts.map +1 -0
- package/node_modules/@undefineds.co/drizzle-solid/dist/esm/core/comunica-patch.js +68 -0
- package/node_modules/@undefineds.co/drizzle-solid/dist/esm/core/comunica-patch.js.map +1 -0
- package/node_modules/@undefineds.co/drizzle-solid/dist/esm/core/conflict-resolution.d.ts +110 -0
- package/node_modules/@undefineds.co/drizzle-solid/dist/esm/core/conflict-resolution.d.ts.map +1 -0
- package/node_modules/@undefineds.co/drizzle-solid/dist/esm/core/conflict-resolution.js +246 -0
- package/node_modules/@undefineds.co/drizzle-solid/dist/esm/core/conflict-resolution.js.map +1 -0
- package/node_modules/@undefineds.co/drizzle-solid/dist/esm/core/discovery/composite-discovery.d.ts +18 -0
- package/node_modules/@undefineds.co/drizzle-solid/dist/esm/core/discovery/composite-discovery.d.ts.map +1 -0
- package/node_modules/@undefineds.co/drizzle-solid/dist/esm/core/discovery/composite-discovery.js +114 -0
- package/node_modules/@undefineds.co/drizzle-solid/dist/esm/core/discovery/composite-discovery.js.map +1 -0
- package/node_modules/@undefineds.co/drizzle-solid/dist/esm/core/discovery/index.d.ts +7 -0
- package/node_modules/@undefineds.co/drizzle-solid/dist/esm/core/discovery/index.d.ts.map +1 -0
- package/node_modules/@undefineds.co/drizzle-solid/dist/esm/core/discovery/index.js +7 -0
- package/node_modules/@undefineds.co/drizzle-solid/dist/esm/core/discovery/index.js.map +1 -0
- package/node_modules/@undefineds.co/drizzle-solid/dist/esm/core/discovery/interop-discovery.d.ts +36 -0
- package/node_modules/@undefineds.co/drizzle-solid/dist/esm/core/discovery/interop-discovery.d.ts.map +1 -0
- package/node_modules/@undefineds.co/drizzle-solid/dist/esm/core/discovery/interop-discovery.js +642 -0
- package/node_modules/@undefineds.co/drizzle-solid/dist/esm/core/discovery/interop-discovery.js.map +1 -0
- package/node_modules/@undefineds.co/drizzle-solid/dist/esm/core/discovery/interop-tables.d.ts +37 -0
- package/node_modules/@undefineds.co/drizzle-solid/dist/esm/core/discovery/interop-tables.d.ts.map +1 -0
- package/node_modules/@undefineds.co/drizzle-solid/dist/esm/core/discovery/interop-tables.js +65 -0
- package/node_modules/@undefineds.co/drizzle-solid/dist/esm/core/discovery/interop-tables.js.map +1 -0
- package/node_modules/@undefineds.co/drizzle-solid/dist/esm/core/discovery/interop-types.d.ts +36 -0
- package/node_modules/@undefineds.co/drizzle-solid/dist/esm/core/discovery/interop-types.d.ts.map +1 -0
- package/node_modules/@undefineds.co/drizzle-solid/dist/esm/core/discovery/interop-types.js +39 -0
- package/node_modules/@undefineds.co/drizzle-solid/dist/esm/core/discovery/interop-types.js.map +1 -0
- package/node_modules/@undefineds.co/drizzle-solid/dist/esm/core/discovery/provider-cache.d.ts +99 -0
- package/node_modules/@undefineds.co/drizzle-solid/dist/esm/core/discovery/provider-cache.d.ts.map +1 -0
- package/node_modules/@undefineds.co/drizzle-solid/dist/esm/core/discovery/provider-cache.js +292 -0
- package/node_modules/@undefineds.co/drizzle-solid/dist/esm/core/discovery/provider-cache.js.map +1 -0
- package/node_modules/@undefineds.co/drizzle-solid/dist/esm/core/discovery/typeindex-discovery.d.ts +30 -0
- package/node_modules/@undefineds.co/drizzle-solid/dist/esm/core/discovery/typeindex-discovery.d.ts.map +1 -0
- package/node_modules/@undefineds.co/drizzle-solid/dist/esm/core/discovery/typeindex-discovery.js +130 -0
- package/node_modules/@undefineds.co/drizzle-solid/dist/esm/core/discovery/typeindex-discovery.js.map +1 -0
- package/node_modules/@undefineds.co/drizzle-solid/dist/esm/core/discovery/types.d.ts +128 -0
- package/node_modules/@undefineds.co/drizzle-solid/dist/esm/core/discovery/types.d.ts.map +1 -0
- package/node_modules/@undefineds.co/drizzle-solid/dist/esm/core/discovery/types.js +2 -0
- package/node_modules/@undefineds.co/drizzle-solid/dist/esm/core/discovery/types.js.map +1 -0
- package/node_modules/@undefineds.co/drizzle-solid/dist/esm/core/execution/index.d.ts +14 -0
- package/node_modules/@undefineds.co/drizzle-solid/dist/esm/core/execution/index.d.ts.map +1 -0
- package/node_modules/@undefineds.co/drizzle-solid/dist/esm/core/execution/index.js +13 -0
- package/node_modules/@undefineds.co/drizzle-solid/dist/esm/core/execution/index.js.map +1 -0
- package/node_modules/@undefineds.co/drizzle-solid/dist/esm/core/execution/ldp-executor.d.ts +67 -0
- package/node_modules/@undefineds.co/drizzle-solid/dist/esm/core/execution/ldp-executor.d.ts.map +1 -0
- package/node_modules/@undefineds.co/drizzle-solid/dist/esm/core/execution/ldp-executor.js +590 -0
- package/node_modules/@undefineds.co/drizzle-solid/dist/esm/core/execution/ldp-executor.js.map +1 -0
- package/node_modules/@undefineds.co/drizzle-solid/dist/esm/core/execution/ldp-strategy.d.ts +53 -0
- package/node_modules/@undefineds.co/drizzle-solid/dist/esm/core/execution/ldp-strategy.d.ts.map +1 -0
- package/node_modules/@undefineds.co/drizzle-solid/dist/esm/core/execution/ldp-strategy.js +100 -0
- package/node_modules/@undefineds.co/drizzle-solid/dist/esm/core/execution/ldp-strategy.js.map +1 -0
- package/node_modules/@undefineds.co/drizzle-solid/dist/esm/core/execution/pod-executor-types.d.ts +9 -0
- package/node_modules/@undefineds.co/drizzle-solid/dist/esm/core/execution/pod-executor-types.d.ts.map +1 -0
- package/node_modules/@undefineds.co/drizzle-solid/dist/esm/core/execution/pod-executor-types.js +2 -0
- package/node_modules/@undefineds.co/drizzle-solid/dist/esm/core/execution/pod-executor-types.js.map +1 -0
- package/node_modules/@undefineds.co/drizzle-solid/dist/esm/core/execution/pod-executor.d.ts +59 -0
- package/node_modules/@undefineds.co/drizzle-solid/dist/esm/core/execution/pod-executor.d.ts.map +1 -0
- package/node_modules/@undefineds.co/drizzle-solid/dist/esm/core/execution/pod-executor.js +224 -0
- package/node_modules/@undefineds.co/drizzle-solid/dist/esm/core/execution/pod-executor.js.map +1 -0
- package/node_modules/@undefineds.co/drizzle-solid/dist/esm/core/execution/sparql-strategy.d.ts +29 -0
- package/node_modules/@undefineds.co/drizzle-solid/dist/esm/core/execution/sparql-strategy.d.ts.map +1 -0
- package/node_modules/@undefineds.co/drizzle-solid/dist/esm/core/execution/sparql-strategy.js +61 -0
- package/node_modules/@undefineds.co/drizzle-solid/dist/esm/core/execution/sparql-strategy.js.map +1 -0
- package/node_modules/@undefineds.co/drizzle-solid/dist/esm/core/execution/strategy-factory.d.ts +41 -0
- package/node_modules/@undefineds.co/drizzle-solid/dist/esm/core/execution/strategy-factory.d.ts.map +1 -0
- package/node_modules/@undefineds.co/drizzle-solid/dist/esm/core/execution/strategy-factory.js +59 -0
- package/node_modules/@undefineds.co/drizzle-solid/dist/esm/core/execution/strategy-factory.js.map +1 -0
- package/node_modules/@undefineds.co/drizzle-solid/dist/esm/core/execution/types.d.ts +80 -0
- package/node_modules/@undefineds.co/drizzle-solid/dist/esm/core/execution/types.d.ts.map +1 -0
- package/node_modules/@undefineds.co/drizzle-solid/dist/esm/core/execution/types.js +7 -0
- package/node_modules/@undefineds.co/drizzle-solid/dist/esm/core/execution/types.js.map +1 -0
- package/node_modules/@undefineds.co/drizzle-solid/dist/esm/core/expressions.d.ts +40 -0
- package/node_modules/@undefineds.co/drizzle-solid/dist/esm/core/expressions.d.ts.map +1 -0
- package/node_modules/@undefineds.co/drizzle-solid/dist/esm/core/expressions.js +51 -0
- package/node_modules/@undefineds.co/drizzle-solid/dist/esm/core/expressions.js.map +1 -0
- package/node_modules/@undefineds.co/drizzle-solid/dist/esm/core/federated/executor.d.ts +98 -0
- package/node_modules/@undefineds.co/drizzle-solid/dist/esm/core/federated/executor.d.ts.map +1 -0
- package/node_modules/@undefineds.co/drizzle-solid/dist/esm/core/federated/executor.js +426 -0
- package/node_modules/@undefineds.co/drizzle-solid/dist/esm/core/federated/executor.js.map +1 -0
- package/node_modules/@undefineds.co/drizzle-solid/dist/esm/core/federated/index.d.ts +3 -0
- package/node_modules/@undefineds.co/drizzle-solid/dist/esm/core/federated/index.d.ts.map +1 -0
- package/node_modules/@undefineds.co/drizzle-solid/dist/esm/core/federated/index.js +3 -0
- package/node_modules/@undefineds.co/drizzle-solid/dist/esm/core/federated/index.js.map +1 -0
- package/node_modules/@undefineds.co/drizzle-solid/dist/esm/core/federated/types.d.ts +69 -0
- package/node_modules/@undefineds.co/drizzle-solid/dist/esm/core/federated/types.d.ts.map +1 -0
- package/node_modules/@undefineds.co/drizzle-solid/dist/esm/core/federated/types.js +7 -0
- package/node_modules/@undefineds.co/drizzle-solid/dist/esm/core/federated/types.js.map +1 -0
- package/node_modules/@undefineds.co/drizzle-solid/dist/esm/core/notifications/channels/base-channel.d.ts +29 -0
- package/node_modules/@undefineds.co/drizzle-solid/dist/esm/core/notifications/channels/base-channel.d.ts.map +1 -0
- package/node_modules/@undefineds.co/drizzle-solid/dist/esm/core/notifications/channels/base-channel.js +58 -0
- package/node_modules/@undefineds.co/drizzle-solid/dist/esm/core/notifications/channels/base-channel.js.map +1 -0
- package/node_modules/@undefineds.co/drizzle-solid/dist/esm/core/notifications/channels/index.d.ts +4 -0
- package/node_modules/@undefineds.co/drizzle-solid/dist/esm/core/notifications/channels/index.d.ts.map +1 -0
- package/node_modules/@undefineds.co/drizzle-solid/dist/esm/core/notifications/channels/index.js +4 -0
- package/node_modules/@undefineds.co/drizzle-solid/dist/esm/core/notifications/channels/index.js.map +1 -0
- package/node_modules/@undefineds.co/drizzle-solid/dist/esm/core/notifications/channels/sse-channel.d.ts +50 -0
- package/node_modules/@undefineds.co/drizzle-solid/dist/esm/core/notifications/channels/sse-channel.d.ts.map +1 -0
- package/node_modules/@undefineds.co/drizzle-solid/dist/esm/core/notifications/channels/sse-channel.js +206 -0
- package/node_modules/@undefineds.co/drizzle-solid/dist/esm/core/notifications/channels/sse-channel.js.map +1 -0
- package/node_modules/@undefineds.co/drizzle-solid/dist/esm/core/notifications/channels/websocket-channel.d.ts +16 -0
- package/node_modules/@undefineds.co/drizzle-solid/dist/esm/core/notifications/channels/websocket-channel.d.ts.map +1 -0
- package/node_modules/@undefineds.co/drizzle-solid/dist/esm/core/notifications/channels/websocket-channel.js +83 -0
- package/node_modules/@undefineds.co/drizzle-solid/dist/esm/core/notifications/channels/websocket-channel.js.map +1 -0
- package/node_modules/@undefineds.co/drizzle-solid/dist/esm/core/notifications/index.d.ts +3 -0
- package/node_modules/@undefineds.co/drizzle-solid/dist/esm/core/notifications/index.d.ts.map +1 -0
- package/node_modules/@undefineds.co/drizzle-solid/dist/esm/core/notifications/index.js +2 -0
- package/node_modules/@undefineds.co/drizzle-solid/dist/esm/core/notifications/index.js.map +1 -0
- package/node_modules/@undefineds.co/drizzle-solid/dist/esm/core/notifications/notifications-client.d.ts +87 -0
- package/node_modules/@undefineds.co/drizzle-solid/dist/esm/core/notifications/notifications-client.d.ts.map +1 -0
- package/node_modules/@undefineds.co/drizzle-solid/dist/esm/core/notifications/notifications-client.js +456 -0
- package/node_modules/@undefineds.co/drizzle-solid/dist/esm/core/notifications/notifications-client.js.map +1 -0
- package/node_modules/@undefineds.co/drizzle-solid/dist/esm/core/notifications/types.d.ts +228 -0
- package/node_modules/@undefineds.co/drizzle-solid/dist/esm/core/notifications/types.d.ts.map +1 -0
- package/node_modules/@undefineds.co/drizzle-solid/dist/esm/core/notifications/types.js +6 -0
- package/node_modules/@undefineds.co/drizzle-solid/dist/esm/core/notifications/types.js.map +1 -0
- package/node_modules/@undefineds.co/drizzle-solid/dist/esm/core/order-by.d.ts +9 -0
- package/node_modules/@undefineds.co/drizzle-solid/dist/esm/core/order-by.d.ts.map +1 -0
- package/node_modules/@undefineds.co/drizzle-solid/dist/esm/core/order-by.js +15 -0
- package/node_modules/@undefineds.co/drizzle-solid/dist/esm/core/order-by.js.map +1 -0
- package/node_modules/@undefineds.co/drizzle-solid/dist/esm/core/pod-database.d.ts +429 -0
- package/node_modules/@undefineds.co/drizzle-solid/dist/esm/core/pod-database.d.ts.map +1 -0
- package/node_modules/@undefineds.co/drizzle-solid/dist/esm/core/pod-database.js +1305 -0
- package/node_modules/@undefineds.co/drizzle-solid/dist/esm/core/pod-database.js.map +1 -0
- package/node_modules/@undefineds.co/drizzle-solid/dist/esm/core/pod-dialect.d.ts +295 -0
- package/node_modules/@undefineds.co/drizzle-solid/dist/esm/core/pod-dialect.d.ts.map +1 -0
- package/node_modules/@undefineds.co/drizzle-solid/dist/esm/core/pod-dialect.js +1219 -0
- package/node_modules/@undefineds.co/drizzle-solid/dist/esm/core/pod-dialect.js.map +1 -0
- package/node_modules/@undefineds.co/drizzle-solid/dist/esm/core/pod-discovery.d.ts +20 -0
- package/node_modules/@undefineds.co/drizzle-solid/dist/esm/core/pod-discovery.d.ts.map +1 -0
- package/node_modules/@undefineds.co/drizzle-solid/dist/esm/core/pod-discovery.js +109 -0
- package/node_modules/@undefineds.co/drizzle-solid/dist/esm/core/pod-discovery.js.map +1 -0
- package/node_modules/@undefineds.co/drizzle-solid/dist/esm/core/pod-session.d.ts +49 -0
- package/node_modules/@undefineds.co/drizzle-solid/dist/esm/core/pod-session.d.ts.map +1 -0
- package/node_modules/@undefineds.co/drizzle-solid/dist/esm/core/pod-session.js +115 -0
- package/node_modules/@undefineds.co/drizzle-solid/dist/esm/core/pod-session.js.map +1 -0
- package/node_modules/@undefineds.co/drizzle-solid/dist/esm/core/profile-manager.d.ts +90 -0
- package/node_modules/@undefineds.co/drizzle-solid/dist/esm/core/profile-manager.d.ts.map +1 -0
- package/node_modules/@undefineds.co/drizzle-solid/dist/esm/core/profile-manager.js +164 -0
- package/node_modules/@undefineds.co/drizzle-solid/dist/esm/core/profile-manager.js.map +1 -0
- package/node_modules/@undefineds.co/drizzle-solid/dist/esm/core/query-builders/delete-query-builder.d.ts +31 -0
- package/node_modules/@undefineds.co/drizzle-solid/dist/esm/core/query-builders/delete-query-builder.d.ts.map +1 -0
- package/node_modules/@undefineds.co/drizzle-solid/dist/esm/core/query-builders/delete-query-builder.js +169 -0
- package/node_modules/@undefineds.co/drizzle-solid/dist/esm/core/query-builders/delete-query-builder.js.map +1 -0
- package/node_modules/@undefineds.co/drizzle-solid/dist/esm/core/query-builders/helpers.d.ts +11 -0
- package/node_modules/@undefineds.co/drizzle-solid/dist/esm/core/query-builders/helpers.d.ts.map +1 -0
- package/node_modules/@undefineds.co/drizzle-solid/dist/esm/core/query-builders/helpers.js +190 -0
- package/node_modules/@undefineds.co/drizzle-solid/dist/esm/core/query-builders/helpers.js.map +1 -0
- package/node_modules/@undefineds.co/drizzle-solid/dist/esm/core/query-builders/index.d.ts +6 -0
- package/node_modules/@undefineds.co/drizzle-solid/dist/esm/core/query-builders/index.d.ts.map +1 -0
- package/node_modules/@undefineds.co/drizzle-solid/dist/esm/core/query-builders/index.js +5 -0
- package/node_modules/@undefineds.co/drizzle-solid/dist/esm/core/query-builders/index.js.map +1 -0
- package/node_modules/@undefineds.co/drizzle-solid/dist/esm/core/query-builders/insert-query-builder.d.ts +34 -0
- package/node_modules/@undefineds.co/drizzle-solid/dist/esm/core/query-builders/insert-query-builder.d.ts.map +1 -0
- package/node_modules/@undefineds.co/drizzle-solid/dist/esm/core/query-builders/insert-query-builder.js +168 -0
- package/node_modules/@undefineds.co/drizzle-solid/dist/esm/core/query-builders/insert-query-builder.js.map +1 -0
- package/node_modules/@undefineds.co/drizzle-solid/dist/esm/core/query-builders/select-query-builder.d.ts +150 -0
- package/node_modules/@undefineds.co/drizzle-solid/dist/esm/core/query-builders/select-query-builder.d.ts.map +1 -0
- package/node_modules/@undefineds.co/drizzle-solid/dist/esm/core/query-builders/select-query-builder.js +1817 -0
- package/node_modules/@undefineds.co/drizzle-solid/dist/esm/core/query-builders/select-query-builder.js.map +1 -0
- package/node_modules/@undefineds.co/drizzle-solid/dist/esm/core/query-builders/types.d.ts +39 -0
- package/node_modules/@undefineds.co/drizzle-solid/dist/esm/core/query-builders/types.d.ts.map +1 -0
- package/node_modules/@undefineds.co/drizzle-solid/dist/esm/core/query-builders/types.js +2 -0
- package/node_modules/@undefineds.co/drizzle-solid/dist/esm/core/query-builders/types.js.map +1 -0
- package/node_modules/@undefineds.co/drizzle-solid/dist/esm/core/query-builders/update-query-builder.d.ts +34 -0
- package/node_modules/@undefineds.co/drizzle-solid/dist/esm/core/query-builders/update-query-builder.d.ts.map +1 -0
- package/node_modules/@undefineds.co/drizzle-solid/dist/esm/core/query-builders/update-query-builder.js +208 -0
- package/node_modules/@undefineds.co/drizzle-solid/dist/esm/core/query-builders/update-query-builder.js.map +1 -0
- package/node_modules/@undefineds.co/drizzle-solid/dist/esm/core/query-conditions.d.ts +60 -0
- package/node_modules/@undefineds.co/drizzle-solid/dist/esm/core/query-conditions.d.ts.map +1 -0
- package/node_modules/@undefineds.co/drizzle-solid/dist/esm/core/query-conditions.js +111 -0
- package/node_modules/@undefineds.co/drizzle-solid/dist/esm/core/query-conditions.js.map +1 -0
- package/node_modules/@undefineds.co/drizzle-solid/dist/esm/core/query-where-policy.d.ts +7 -0
- package/node_modules/@undefineds.co/drizzle-solid/dist/esm/core/query-where-policy.d.ts.map +1 -0
- package/node_modules/@undefineds.co/drizzle-solid/dist/esm/core/query-where-policy.js +78 -0
- package/node_modules/@undefineds.co/drizzle-solid/dist/esm/core/query-where-policy.js.map +1 -0
- package/node_modules/@undefineds.co/drizzle-solid/dist/esm/core/rdf-constants.d.ts +16 -0
- package/node_modules/@undefineds.co/drizzle-solid/dist/esm/core/rdf-constants.d.ts.map +1 -0
- package/node_modules/@undefineds.co/drizzle-solid/dist/esm/core/rdf-constants.js +32 -0
- package/node_modules/@undefineds.co/drizzle-solid/dist/esm/core/rdf-constants.js.map +1 -0
- package/node_modules/@undefineds.co/drizzle-solid/dist/esm/core/rdf-schema-parser.d.ts +34 -0
- package/node_modules/@undefineds.co/drizzle-solid/dist/esm/core/rdf-schema-parser.d.ts.map +1 -0
- package/node_modules/@undefineds.co/drizzle-solid/dist/esm/core/rdf-schema-parser.js +136 -0
- package/node_modules/@undefineds.co/drizzle-solid/dist/esm/core/rdf-schema-parser.js.map +1 -0
- package/node_modules/@undefineds.co/drizzle-solid/dist/esm/core/resource-resolver/base-resolver.d.ts +126 -0
- package/node_modules/@undefineds.co/drizzle-solid/dist/esm/core/resource-resolver/base-resolver.d.ts.map +1 -0
- package/node_modules/@undefineds.co/drizzle-solid/dist/esm/core/resource-resolver/base-resolver.js +425 -0
- package/node_modules/@undefineds.co/drizzle-solid/dist/esm/core/resource-resolver/base-resolver.js.map +1 -0
- package/node_modules/@undefineds.co/drizzle-solid/dist/esm/core/resource-resolver/document-resolver.d.ts +36 -0
- package/node_modules/@undefineds.co/drizzle-solid/dist/esm/core/resource-resolver/document-resolver.d.ts.map +1 -0
- package/node_modules/@undefineds.co/drizzle-solid/dist/esm/core/resource-resolver/document-resolver.js +157 -0
- package/node_modules/@undefineds.co/drizzle-solid/dist/esm/core/resource-resolver/document-resolver.js.map +1 -0
- package/node_modules/@undefineds.co/drizzle-solid/dist/esm/core/resource-resolver/factory.d.ts +27 -0
- package/node_modules/@undefineds.co/drizzle-solid/dist/esm/core/resource-resolver/factory.d.ts.map +1 -0
- package/node_modules/@undefineds.co/drizzle-solid/dist/esm/core/resource-resolver/factory.js +53 -0
- package/node_modules/@undefineds.co/drizzle-solid/dist/esm/core/resource-resolver/factory.js.map +1 -0
- package/node_modules/@undefineds.co/drizzle-solid/dist/esm/core/resource-resolver/fragment-resolver.d.ts +34 -0
- package/node_modules/@undefineds.co/drizzle-solid/dist/esm/core/resource-resolver/fragment-resolver.d.ts.map +1 -0
- package/node_modules/@undefineds.co/drizzle-solid/dist/esm/core/resource-resolver/fragment-resolver.js +68 -0
- package/node_modules/@undefineds.co/drizzle-solid/dist/esm/core/resource-resolver/fragment-resolver.js.map +1 -0
- package/node_modules/@undefineds.co/drizzle-solid/dist/esm/core/resource-resolver/index.d.ts +11 -0
- package/node_modules/@undefineds.co/drizzle-solid/dist/esm/core/resource-resolver/index.d.ts.map +1 -0
- package/node_modules/@undefineds.co/drizzle-solid/dist/esm/core/resource-resolver/index.js +10 -0
- package/node_modules/@undefineds.co/drizzle-solid/dist/esm/core/resource-resolver/index.js.map +1 -0
- package/node_modules/@undefineds.co/drizzle-solid/dist/esm/core/resource-resolver/types.d.ts +57 -0
- package/node_modules/@undefineds.co/drizzle-solid/dist/esm/core/resource-resolver/types.d.ts.map +1 -0
- package/node_modules/@undefineds.co/drizzle-solid/dist/esm/core/resource-resolver/types.js +8 -0
- package/node_modules/@undefineds.co/drizzle-solid/dist/esm/core/resource-resolver/types.js.map +1 -0
- package/node_modules/@undefineds.co/drizzle-solid/dist/esm/core/runtime/pod-runtime.d.ts +59 -0
- package/node_modules/@undefineds.co/drizzle-solid/dist/esm/core/runtime/pod-runtime.d.ts.map +1 -0
- package/node_modules/@undefineds.co/drizzle-solid/dist/esm/core/runtime/pod-runtime.js +182 -0
- package/node_modules/@undefineds.co/drizzle-solid/dist/esm/core/runtime/pod-runtime.js.map +1 -0
- package/node_modules/@undefineds.co/drizzle-solid/dist/esm/core/schema/columns.d.ts +74 -0
- package/node_modules/@undefineds.co/drizzle-solid/dist/esm/core/schema/columns.d.ts.map +1 -0
- package/node_modules/@undefineds.co/drizzle-solid/dist/esm/core/schema/columns.js +282 -0
- package/node_modules/@undefineds.co/drizzle-solid/dist/esm/core/schema/columns.js.map +1 -0
- package/node_modules/@undefineds.co/drizzle-solid/dist/esm/core/schema/defs.d.ts +92 -0
- package/node_modules/@undefineds.co/drizzle-solid/dist/esm/core/schema/defs.d.ts.map +1 -0
- package/node_modules/@undefineds.co/drizzle-solid/dist/esm/core/schema/defs.js +36 -0
- package/node_modules/@undefineds.co/drizzle-solid/dist/esm/core/schema/defs.js.map +1 -0
- package/node_modules/@undefineds.co/drizzle-solid/dist/esm/core/schema/factories.d.ts +29 -0
- package/node_modules/@undefineds.co/drizzle-solid/dist/esm/core/schema/factories.d.ts.map +1 -0
- package/node_modules/@undefineds.co/drizzle-solid/dist/esm/core/schema/factories.js +89 -0
- package/node_modules/@undefineds.co/drizzle-solid/dist/esm/core/schema/factories.js.map +1 -0
- package/node_modules/@undefineds.co/drizzle-solid/dist/esm/core/schema/index.d.ts +9 -0
- package/node_modules/@undefineds.co/drizzle-solid/dist/esm/core/schema/index.d.ts.map +1 -0
- package/node_modules/@undefineds.co/drizzle-solid/dist/esm/core/schema/index.js +9 -0
- package/node_modules/@undefineds.co/drizzle-solid/dist/esm/core/schema/index.js.map +1 -0
- package/node_modules/@undefineds.co/drizzle-solid/dist/esm/core/schema/pod-table.d.ts +100 -0
- package/node_modules/@undefineds.co/drizzle-solid/dist/esm/core/schema/pod-table.d.ts.map +1 -0
- package/node_modules/@undefineds.co/drizzle-solid/dist/esm/core/schema/pod-table.js +364 -0
- package/node_modules/@undefineds.co/drizzle-solid/dist/esm/core/schema/pod-table.js.map +1 -0
- package/node_modules/@undefineds.co/drizzle-solid/dist/esm/core/schema/relations.d.ts +26 -0
- package/node_modules/@undefineds.co/drizzle-solid/dist/esm/core/schema/relations.d.ts.map +1 -0
- package/node_modules/@undefineds.co/drizzle-solid/dist/esm/core/schema/relations.js +33 -0
- package/node_modules/@undefineds.co/drizzle-solid/dist/esm/core/schema/relations.js.map +1 -0
- package/node_modules/@undefineds.co/drizzle-solid/dist/esm/core/schema/solid-schema.d.ts +19 -0
- package/node_modules/@undefineds.co/drizzle-solid/dist/esm/core/schema/solid-schema.d.ts.map +1 -0
- package/node_modules/@undefineds.co/drizzle-solid/dist/esm/core/schema/solid-schema.js +87 -0
- package/node_modules/@undefineds.co/drizzle-solid/dist/esm/core/schema/solid-schema.js.map +1 -0
- package/node_modules/@undefineds.co/drizzle-solid/dist/esm/core/schema/types.d.ts +45 -0
- package/node_modules/@undefineds.co/drizzle-solid/dist/esm/core/schema/types.d.ts.map +1 -0
- package/node_modules/@undefineds.co/drizzle-solid/dist/esm/core/schema/types.js +2 -0
- package/node_modules/@undefineds.co/drizzle-solid/dist/esm/core/schema/types.js.map +1 -0
- package/node_modules/@undefineds.co/drizzle-solid/dist/esm/core/schema/utils.d.ts +15 -0
- package/node_modules/@undefineds.co/drizzle-solid/dist/esm/core/schema/utils.d.ts.map +1 -0
- package/node_modules/@undefineds.co/drizzle-solid/dist/esm/core/schema/utils.js +40 -0
- package/node_modules/@undefineds.co/drizzle-solid/dist/esm/core/schema/utils.js.map +1 -0
- package/node_modules/@undefineds.co/drizzle-solid/dist/esm/core/select-plan.d.ts +50 -0
- package/node_modules/@undefineds.co/drizzle-solid/dist/esm/core/select-plan.d.ts.map +1 -0
- package/node_modules/@undefineds.co/drizzle-solid/dist/esm/core/select-plan.js +2 -0
- package/node_modules/@undefineds.co/drizzle-solid/dist/esm/core/select-plan.js.map +1 -0
- package/node_modules/@undefineds.co/drizzle-solid/dist/esm/core/services/pod-services.d.ts +43 -0
- package/node_modules/@undefineds.co/drizzle-solid/dist/esm/core/services/pod-services.d.ts.map +1 -0
- package/node_modules/@undefineds.co/drizzle-solid/dist/esm/core/services/pod-services.js +77 -0
- package/node_modules/@undefineds.co/drizzle-solid/dist/esm/core/services/pod-services.js.map +1 -0
- package/node_modules/@undefineds.co/drizzle-solid/dist/esm/core/shape/generator.d.ts +12 -0
- package/node_modules/@undefineds.co/drizzle-solid/dist/esm/core/shape/generator.d.ts.map +1 -0
- package/node_modules/@undefineds.co/drizzle-solid/dist/esm/core/shape/generator.js +106 -0
- package/node_modules/@undefineds.co/drizzle-solid/dist/esm/core/shape/generator.js.map +1 -0
- package/node_modules/@undefineds.co/drizzle-solid/dist/esm/core/shape/index.d.ts +4 -0
- package/node_modules/@undefineds.co/drizzle-solid/dist/esm/core/shape/index.d.ts.map +1 -0
- package/node_modules/@undefineds.co/drizzle-solid/dist/esm/core/shape/index.js +4 -0
- package/node_modules/@undefineds.co/drizzle-solid/dist/esm/core/shape/index.js.map +1 -0
- package/node_modules/@undefineds.co/drizzle-solid/dist/esm/core/shape/manager.d.ts +45 -0
- package/node_modules/@undefineds.co/drizzle-solid/dist/esm/core/shape/manager.d.ts.map +1 -0
- package/node_modules/@undefineds.co/drizzle-solid/dist/esm/core/shape/manager.js +389 -0
- package/node_modules/@undefineds.co/drizzle-solid/dist/esm/core/shape/manager.js.map +1 -0
- package/node_modules/@undefineds.co/drizzle-solid/dist/esm/core/shape/shacl-parser.d.ts +19 -0
- package/node_modules/@undefineds.co/drizzle-solid/dist/esm/core/shape/shacl-parser.d.ts.map +1 -0
- package/node_modules/@undefineds.co/drizzle-solid/dist/esm/core/shape/shacl-parser.js +210 -0
- package/node_modules/@undefineds.co/drizzle-solid/dist/esm/core/shape/shacl-parser.js.map +1 -0
- package/node_modules/@undefineds.co/drizzle-solid/dist/esm/core/shape/shacl.d.ts +11 -0
- package/node_modules/@undefineds.co/drizzle-solid/dist/esm/core/shape/shacl.d.ts.map +1 -0
- package/node_modules/@undefineds.co/drizzle-solid/dist/esm/core/shape/shacl.js +127 -0
- package/node_modules/@undefineds.co/drizzle-solid/dist/esm/core/shape/shacl.js.map +1 -0
- package/node_modules/@undefineds.co/drizzle-solid/dist/esm/core/shape/types.d.ts +149 -0
- package/node_modules/@undefineds.co/drizzle-solid/dist/esm/core/shape/types.d.ts.map +1 -0
- package/node_modules/@undefineds.co/drizzle-solid/dist/esm/core/shape/types.js +42 -0
- package/node_modules/@undefineds.co/drizzle-solid/dist/esm/core/shape/types.js.map +1 -0
- package/node_modules/@undefineds.co/drizzle-solid/dist/esm/core/shape/validator.d.ts +11 -0
- package/node_modules/@undefineds.co/drizzle-solid/dist/esm/core/shape/validator.d.ts.map +1 -0
- package/node_modules/@undefineds.co/drizzle-solid/dist/esm/core/shape/validator.js +229 -0
- package/node_modules/@undefineds.co/drizzle-solid/dist/esm/core/shape/validator.js.map +1 -0
- package/node_modules/@undefineds.co/drizzle-solid/dist/esm/core/solid-n3-client.d.ts +86 -0
- package/node_modules/@undefineds.co/drizzle-solid/dist/esm/core/solid-n3-client.d.ts.map +1 -0
- package/node_modules/@undefineds.co/drizzle-solid/dist/esm/core/solid-n3-client.js +286 -0
- package/node_modules/@undefineds.co/drizzle-solid/dist/esm/core/solid-n3-client.js.map +1 -0
- package/node_modules/@undefineds.co/drizzle-solid/dist/esm/core/sparql/builder/expression-builder.d.ts +53 -0
- package/node_modules/@undefineds.co/drizzle-solid/dist/esm/core/sparql/builder/expression-builder.d.ts.map +1 -0
- package/node_modules/@undefineds.co/drizzle-solid/dist/esm/core/sparql/builder/expression-builder.js +436 -0
- package/node_modules/@undefineds.co/drizzle-solid/dist/esm/core/sparql/builder/expression-builder.js.map +1 -0
- package/node_modules/@undefineds.co/drizzle-solid/dist/esm/core/sparql/builder/select-builder.d.ts +44 -0
- package/node_modules/@undefineds.co/drizzle-solid/dist/esm/core/sparql/builder/select-builder.d.ts.map +1 -0
- package/node_modules/@undefineds.co/drizzle-solid/dist/esm/core/sparql/builder/select-builder.js +576 -0
- package/node_modules/@undefineds.co/drizzle-solid/dist/esm/core/sparql/builder/select-builder.js.map +1 -0
- package/node_modules/@undefineds.co/drizzle-solid/dist/esm/core/sparql/builder/update-builder.d.ts +33 -0
- package/node_modules/@undefineds.co/drizzle-solid/dist/esm/core/sparql/builder/update-builder.d.ts.map +1 -0
- package/node_modules/@undefineds.co/drizzle-solid/dist/esm/core/sparql/builder/update-builder.js +475 -0
- package/node_modules/@undefineds.co/drizzle-solid/dist/esm/core/sparql/builder/update-builder.js.map +1 -0
- package/node_modules/@undefineds.co/drizzle-solid/dist/esm/core/sparql/helpers.d.ts +19 -0
- package/node_modules/@undefineds.co/drizzle-solid/dist/esm/core/sparql/helpers.d.ts.map +1 -0
- package/node_modules/@undefineds.co/drizzle-solid/dist/esm/core/sparql/helpers.js +165 -0
- package/node_modules/@undefineds.co/drizzle-solid/dist/esm/core/sparql/helpers.js.map +1 -0
- package/node_modules/@undefineds.co/drizzle-solid/dist/esm/core/sparql/types.d.ts +10 -0
- package/node_modules/@undefineds.co/drizzle-solid/dist/esm/core/sparql/types.d.ts.map +1 -0
- package/node_modules/@undefineds.co/drizzle-solid/dist/esm/core/sparql/types.js +2 -0
- package/node_modules/@undefineds.co/drizzle-solid/dist/esm/core/sparql/types.js.map +1 -0
- package/node_modules/@undefineds.co/drizzle-solid/dist/esm/core/sparql-engine.d.ts +16 -0
- package/node_modules/@undefineds.co/drizzle-solid/dist/esm/core/sparql-engine.d.ts.map +1 -0
- package/node_modules/@undefineds.co/drizzle-solid/dist/esm/core/sparql-engine.js +89 -0
- package/node_modules/@undefineds.co/drizzle-solid/dist/esm/core/sparql-engine.js.map +1 -0
- package/node_modules/@undefineds.co/drizzle-solid/dist/esm/core/sparql-executor.d.ts +39 -0
- package/node_modules/@undefineds.co/drizzle-solid/dist/esm/core/sparql-executor.d.ts.map +1 -0
- package/node_modules/@undefineds.co/drizzle-solid/dist/esm/core/sparql-executor.js +717 -0
- package/node_modules/@undefineds.co/drizzle-solid/dist/esm/core/sparql-executor.js.map +1 -0
- package/node_modules/@undefineds.co/drizzle-solid/dist/esm/core/subject/index.d.ts +29 -0
- package/node_modules/@undefineds.co/drizzle-solid/dist/esm/core/subject/index.d.ts.map +1 -0
- package/node_modules/@undefineds.co/drizzle-solid/dist/esm/core/subject/index.js +49 -0
- package/node_modules/@undefineds.co/drizzle-solid/dist/esm/core/subject/index.js.map +1 -0
- package/node_modules/@undefineds.co/drizzle-solid/dist/esm/core/subject/resolver.d.ts +115 -0
- package/node_modules/@undefineds.co/drizzle-solid/dist/esm/core/subject/resolver.d.ts.map +1 -0
- package/node_modules/@undefineds.co/drizzle-solid/dist/esm/core/subject/resolver.js +460 -0
- package/node_modules/@undefineds.co/drizzle-solid/dist/esm/core/subject/resolver.js.map +1 -0
- package/node_modules/@undefineds.co/drizzle-solid/dist/esm/core/subject/types.d.ts +97 -0
- package/node_modules/@undefineds.co/drizzle-solid/dist/esm/core/subject/types.d.ts.map +1 -0
- package/node_modules/@undefineds.co/drizzle-solid/dist/esm/core/subject/types.js +7 -0
- package/node_modules/@undefineds.co/drizzle-solid/dist/esm/core/subject/types.js.map +1 -0
- package/node_modules/@undefineds.co/drizzle-solid/dist/esm/core/triple/builder.d.ts +86 -0
- package/node_modules/@undefineds.co/drizzle-solid/dist/esm/core/triple/builder.d.ts.map +1 -0
- package/node_modules/@undefineds.co/drizzle-solid/dist/esm/core/triple/builder.js +336 -0
- package/node_modules/@undefineds.co/drizzle-solid/dist/esm/core/triple/builder.js.map +1 -0
- package/node_modules/@undefineds.co/drizzle-solid/dist/esm/core/triple/handlers/array.d.ts +23 -0
- package/node_modules/@undefineds.co/drizzle-solid/dist/esm/core/triple/handlers/array.d.ts.map +1 -0
- package/node_modules/@undefineds.co/drizzle-solid/dist/esm/core/triple/handlers/array.js +115 -0
- package/node_modules/@undefineds.co/drizzle-solid/dist/esm/core/triple/handlers/array.js.map +1 -0
- package/node_modules/@undefineds.co/drizzle-solid/dist/esm/core/triple/handlers/default.d.ts +20 -0
- package/node_modules/@undefineds.co/drizzle-solid/dist/esm/core/triple/handlers/default.d.ts.map +1 -0
- package/node_modules/@undefineds.co/drizzle-solid/dist/esm/core/triple/handlers/default.js +92 -0
- package/node_modules/@undefineds.co/drizzle-solid/dist/esm/core/triple/handlers/default.js.map +1 -0
- package/node_modules/@undefineds.co/drizzle-solid/dist/esm/core/triple/handlers/index.d.ts +35 -0
- package/node_modules/@undefineds.co/drizzle-solid/dist/esm/core/triple/handlers/index.d.ts.map +1 -0
- package/node_modules/@undefineds.co/drizzle-solid/dist/esm/core/triple/handlers/index.js +59 -0
- package/node_modules/@undefineds.co/drizzle-solid/dist/esm/core/triple/handlers/index.js.map +1 -0
- package/node_modules/@undefineds.co/drizzle-solid/dist/esm/core/triple/handlers/inline.d.ts +35 -0
- package/node_modules/@undefineds.co/drizzle-solid/dist/esm/core/triple/handlers/inline.d.ts.map +1 -0
- package/node_modules/@undefineds.co/drizzle-solid/dist/esm/core/triple/handlers/inline.js +186 -0
- package/node_modules/@undefineds.co/drizzle-solid/dist/esm/core/triple/handlers/inline.js.map +1 -0
- package/node_modules/@undefineds.co/drizzle-solid/dist/esm/core/triple/handlers/inverse.d.ts +26 -0
- package/node_modules/@undefineds.co/drizzle-solid/dist/esm/core/triple/handlers/inverse.d.ts.map +1 -0
- package/node_modules/@undefineds.co/drizzle-solid/dist/esm/core/triple/handlers/inverse.js +85 -0
- package/node_modules/@undefineds.co/drizzle-solid/dist/esm/core/triple/handlers/inverse.js.map +1 -0
- package/node_modules/@undefineds.co/drizzle-solid/dist/esm/core/triple/handlers/uri.d.ts +28 -0
- package/node_modules/@undefineds.co/drizzle-solid/dist/esm/core/triple/handlers/uri.d.ts.map +1 -0
- package/node_modules/@undefineds.co/drizzle-solid/dist/esm/core/triple/handlers/uri.js +62 -0
- package/node_modules/@undefineds.co/drizzle-solid/dist/esm/core/triple/handlers/uri.js.map +1 -0
- package/node_modules/@undefineds.co/drizzle-solid/dist/esm/core/triple/index.d.ts +9 -0
- package/node_modules/@undefineds.co/drizzle-solid/dist/esm/core/triple/index.d.ts.map +1 -0
- package/node_modules/@undefineds.co/drizzle-solid/dist/esm/core/triple/index.js +10 -0
- package/node_modules/@undefineds.co/drizzle-solid/dist/esm/core/triple/index.js.map +1 -0
- package/node_modules/@undefineds.co/drizzle-solid/dist/esm/core/triple/types.d.ts +152 -0
- package/node_modules/@undefineds.co/drizzle-solid/dist/esm/core/triple/types.d.ts.map +1 -0
- package/node_modules/@undefineds.co/drizzle-solid/dist/esm/core/triple/types.js +7 -0
- package/node_modules/@undefineds.co/drizzle-solid/dist/esm/core/triple/types.js.map +1 -0
- package/node_modules/@undefineds.co/drizzle-solid/dist/esm/core/typeindex-manager.d.ts +130 -0
- package/node_modules/@undefineds.co/drizzle-solid/dist/esm/core/typeindex-manager.d.ts.map +1 -0
- package/node_modules/@undefineds.co/drizzle-solid/dist/esm/core/typeindex-manager.js +682 -0
- package/node_modules/@undefineds.co/drizzle-solid/dist/esm/core/typeindex-manager.js.map +1 -0
- package/node_modules/@undefineds.co/drizzle-solid/dist/esm/core/types.d.ts +57 -0
- package/node_modules/@undefineds.co/drizzle-solid/dist/esm/core/types.d.ts.map +1 -0
- package/node_modules/@undefineds.co/drizzle-solid/dist/esm/core/types.js +3 -0
- package/node_modules/@undefineds.co/drizzle-solid/dist/esm/core/types.js.map +1 -0
- package/node_modules/@undefineds.co/drizzle-solid/dist/esm/core/uri/index.d.ts +8 -0
- package/node_modules/@undefineds.co/drizzle-solid/dist/esm/core/uri/index.d.ts.map +1 -0
- package/node_modules/@undefineds.co/drizzle-solid/dist/esm/core/uri/index.js +8 -0
- package/node_modules/@undefineds.co/drizzle-solid/dist/esm/core/uri/index.js.map +1 -0
- package/node_modules/@undefineds.co/drizzle-solid/dist/esm/core/uri/resolver.d.ts +146 -0
- package/node_modules/@undefineds.co/drizzle-solid/dist/esm/core/uri/resolver.d.ts.map +1 -0
- package/node_modules/@undefineds.co/drizzle-solid/dist/esm/core/uri/resolver.js +621 -0
- package/node_modules/@undefineds.co/drizzle-solid/dist/esm/core/uri/resolver.js.map +1 -0
- package/node_modules/@undefineds.co/drizzle-solid/dist/esm/core/uri/types.d.ts +150 -0
- package/node_modules/@undefineds.co/drizzle-solid/dist/esm/core/uri/types.d.ts.map +1 -0
- package/node_modules/@undefineds.co/drizzle-solid/dist/esm/core/uri/types.js +7 -0
- package/node_modules/@undefineds.co/drizzle-solid/dist/esm/core/uri/types.js.map +1 -0
- package/node_modules/@undefineds.co/drizzle-solid/dist/esm/core/utils/debug-logger.d.ts +19 -0
- package/node_modules/@undefineds.co/drizzle-solid/dist/esm/core/utils/debug-logger.d.ts.map +1 -0
- package/node_modules/@undefineds.co/drizzle-solid/dist/esm/core/utils/debug-logger.js +53 -0
- package/node_modules/@undefineds.co/drizzle-solid/dist/esm/core/utils/debug-logger.js.map +1 -0
- package/node_modules/@undefineds.co/drizzle-solid/dist/esm/core/utils/origin-auth.d.ts +28 -0
- package/node_modules/@undefineds.co/drizzle-solid/dist/esm/core/utils/origin-auth.d.ts.map +1 -0
- package/node_modules/@undefineds.co/drizzle-solid/dist/esm/core/utils/origin-auth.js +42 -0
- package/node_modules/@undefineds.co/drizzle-solid/dist/esm/core/utils/origin-auth.js.map +1 -0
- package/node_modules/@undefineds.co/drizzle-solid/dist/esm/core/utils/pod-root.d.ts +15 -0
- package/node_modules/@undefineds.co/drizzle-solid/dist/esm/core/utils/pod-root.d.ts.map +1 -0
- package/node_modules/@undefineds.co/drizzle-solid/dist/esm/core/utils/pod-root.js +69 -0
- package/node_modules/@undefineds.co/drizzle-solid/dist/esm/core/utils/pod-root.js.map +1 -0
- package/node_modules/@undefineds.co/drizzle-solid/dist/esm/core/zod-integration.d.ts +97 -0
- package/node_modules/@undefineds.co/drizzle-solid/dist/esm/core/zod-integration.d.ts.map +1 -0
- package/node_modules/@undefineds.co/drizzle-solid/dist/esm/core/zod-integration.js +227 -0
- package/node_modules/@undefineds.co/drizzle-solid/dist/esm/core/zod-integration.js.map +1 -0
- package/node_modules/@undefineds.co/drizzle-solid/dist/esm/driver.d.ts +52 -0
- package/node_modules/@undefineds.co/drizzle-solid/dist/esm/driver.d.ts.map +1 -0
- package/node_modules/@undefineds.co/drizzle-solid/dist/esm/driver.js +28 -0
- package/node_modules/@undefineds.co/drizzle-solid/dist/esm/driver.js.map +1 -0
- package/node_modules/@undefineds.co/drizzle-solid/dist/esm/index.d.ts +27 -0
- package/node_modules/@undefineds.co/drizzle-solid/dist/esm/index.d.ts.map +1 -0
- package/node_modules/@undefineds.co/drizzle-solid/dist/esm/index.js +48 -0
- package/node_modules/@undefineds.co/drizzle-solid/dist/esm/index.js.map +1 -0
- package/node_modules/@undefineds.co/drizzle-solid/dist/esm/package.json +3 -0
- package/node_modules/@undefineds.co/drizzle-solid/dist/esm/pod.d.ts +118 -0
- package/node_modules/@undefineds.co/drizzle-solid/dist/esm/pod.d.ts.map +1 -0
- package/node_modules/@undefineds.co/drizzle-solid/dist/esm/pod.js +146 -0
- package/node_modules/@undefineds.co/drizzle-solid/dist/esm/pod.js.map +1 -0
- package/node_modules/@undefineds.co/drizzle-solid/dist/esm/solid.d.ts +21 -0
- package/node_modules/@undefineds.co/drizzle-solid/dist/esm/solid.d.ts.map +1 -0
- package/node_modules/@undefineds.co/drizzle-solid/dist/esm/solid.js +30 -0
- package/node_modules/@undefineds.co/drizzle-solid/dist/esm/solid.js.map +1 -0
- package/node_modules/@undefineds.co/drizzle-solid/dist/esm/test-utils/real-test-helpers.d.ts +5 -0
- package/node_modules/@undefineds.co/drizzle-solid/dist/esm/test-utils/real-test-helpers.d.ts.map +1 -0
- package/node_modules/@undefineds.co/drizzle-solid/dist/esm/test-utils/real-test-helpers.js +17 -0
- package/node_modules/@undefineds.co/drizzle-solid/dist/esm/test-utils/real-test-helpers.js.map +1 -0
- package/node_modules/@undefineds.co/drizzle-solid/dist/esm/types/sparql-types.d.ts +27 -0
- package/node_modules/@undefineds.co/drizzle-solid/dist/esm/types/sparql-types.d.ts.map +1 -0
- package/node_modules/@undefineds.co/drizzle-solid/dist/esm/types/sparql-types.js +3 -0
- package/node_modules/@undefineds.co/drizzle-solid/dist/esm/types/sparql-types.js.map +1 -0
- package/node_modules/@undefineds.co/drizzle-solid/dist/esm/utils/find-by-iri.d.ts +11 -0
- package/node_modules/@undefineds.co/drizzle-solid/dist/esm/utils/find-by-iri.d.ts.map +1 -0
- package/node_modules/@undefineds.co/drizzle-solid/dist/esm/utils/find-by-iri.js +22 -0
- package/node_modules/@undefineds.co/drizzle-solid/dist/esm/utils/find-by-iri.js.map +1 -0
- package/node_modules/@undefineds.co/drizzle-solid/dist/esm/utils/helpers.d.ts +17 -0
- package/node_modules/@undefineds.co/drizzle-solid/dist/esm/utils/helpers.d.ts.map +1 -0
- package/node_modules/@undefineds.co/drizzle-solid/dist/esm/utils/helpers.js +59 -0
- package/node_modules/@undefineds.co/drizzle-solid/dist/esm/utils/helpers.js.map +1 -0
- package/node_modules/@undefineds.co/drizzle-solid/dist/esm/utils/namespace.d.ts +4 -0
- package/node_modules/@undefineds.co/drizzle-solid/dist/esm/utils/namespace.d.ts.map +1 -0
- package/node_modules/@undefineds.co/drizzle-solid/dist/esm/utils/namespace.js +30 -0
- package/node_modules/@undefineds.co/drizzle-solid/dist/esm/utils/namespace.js.map +1 -0
- package/node_modules/@undefineds.co/drizzle-solid/dist/esm/utils/rdf-helpers.d.ts +17 -0
- package/node_modules/@undefineds.co/drizzle-solid/dist/esm/utils/rdf-helpers.d.ts.map +1 -0
- package/node_modules/@undefineds.co/drizzle-solid/dist/esm/utils/rdf-helpers.js +50 -0
- package/node_modules/@undefineds.co/drizzle-solid/dist/esm/utils/rdf-helpers.js.map +1 -0
- package/node_modules/@undefineds.co/drizzle-solid/dist/esm/utils/rdf-validation.d.ts +27 -0
- package/node_modules/@undefineds.co/drizzle-solid/dist/esm/utils/rdf-validation.d.ts.map +1 -0
- package/node_modules/@undefineds.co/drizzle-solid/dist/esm/utils/rdf-validation.js +327 -0
- package/node_modules/@undefineds.co/drizzle-solid/dist/esm/utils/rdf-validation.js.map +1 -0
- package/node_modules/@undefineds.co/drizzle-solid/dist/esm/utils/thing-operations.d.ts +28 -0
- package/node_modules/@undefineds.co/drizzle-solid/dist/esm/utils/thing-operations.d.ts.map +1 -0
- package/node_modules/@undefineds.co/drizzle-solid/dist/esm/utils/thing-operations.js +249 -0
- package/node_modules/@undefineds.co/drizzle-solid/dist/esm/utils/thing-operations.js.map +1 -0
- package/node_modules/@undefineds.co/drizzle-solid/dist/esm/utils/webid-resolver.d.ts +23 -0
- package/node_modules/@undefineds.co/drizzle-solid/dist/esm/utils/webid-resolver.d.ts.map +1 -0
- package/node_modules/@undefineds.co/drizzle-solid/dist/esm/utils/webid-resolver.js +75 -0
- package/node_modules/@undefineds.co/drizzle-solid/dist/esm/utils/webid-resolver.js.map +1 -0
- package/node_modules/@undefineds.co/drizzle-solid/dist/index.d.ts +27 -0
- package/node_modules/@undefineds.co/drizzle-solid/dist/index.d.ts.map +1 -0
- package/node_modules/@undefineds.co/drizzle-solid/dist/index.js +170 -0
- package/node_modules/@undefineds.co/drizzle-solid/dist/index.js.map +1 -0
- package/node_modules/@undefineds.co/drizzle-solid/dist/pod.d.ts +118 -0
- package/node_modules/@undefineds.co/drizzle-solid/dist/pod.d.ts.map +1 -0
- package/node_modules/@undefineds.co/drizzle-solid/dist/pod.js +153 -0
- package/node_modules/@undefineds.co/drizzle-solid/dist/pod.js.map +1 -0
- package/node_modules/@undefineds.co/drizzle-solid/dist/solid.d.ts +21 -0
- package/node_modules/@undefineds.co/drizzle-solid/dist/solid.d.ts.map +1 -0
- package/node_modules/@undefineds.co/drizzle-solid/dist/solid.js +35 -0
- package/node_modules/@undefineds.co/drizzle-solid/dist/solid.js.map +1 -0
- package/node_modules/@undefineds.co/drizzle-solid/dist/test-utils/real-test-helpers.d.ts +5 -0
- package/node_modules/@undefineds.co/drizzle-solid/dist/test-utils/real-test-helpers.d.ts.map +1 -0
- package/node_modules/@undefineds.co/drizzle-solid/dist/test-utils/real-test-helpers.js +22 -0
- package/node_modules/@undefineds.co/drizzle-solid/dist/test-utils/real-test-helpers.js.map +1 -0
- package/node_modules/@undefineds.co/drizzle-solid/dist/types/sparql-types.d.ts +27 -0
- package/node_modules/@undefineds.co/drizzle-solid/dist/types/sparql-types.d.ts.map +1 -0
- package/node_modules/@undefineds.co/drizzle-solid/dist/types/sparql-types.js +4 -0
- package/node_modules/@undefineds.co/drizzle-solid/dist/types/sparql-types.js.map +1 -0
- package/node_modules/@undefineds.co/drizzle-solid/dist/utils/find-by-iri.d.ts +11 -0
- package/node_modules/@undefineds.co/drizzle-solid/dist/utils/find-by-iri.d.ts.map +1 -0
- package/node_modules/@undefineds.co/drizzle-solid/dist/utils/find-by-iri.js +25 -0
- package/node_modules/@undefineds.co/drizzle-solid/dist/utils/find-by-iri.js.map +1 -0
- package/node_modules/@undefineds.co/drizzle-solid/dist/utils/helpers.d.ts +17 -0
- package/node_modules/@undefineds.co/drizzle-solid/dist/utils/helpers.d.ts.map +1 -0
- package/node_modules/@undefineds.co/drizzle-solid/dist/utils/helpers.js +65 -0
- package/node_modules/@undefineds.co/drizzle-solid/dist/utils/helpers.js.map +1 -0
- package/node_modules/@undefineds.co/drizzle-solid/dist/utils/namespace.d.ts +4 -0
- package/node_modules/@undefineds.co/drizzle-solid/dist/utils/namespace.d.ts.map +1 -0
- package/node_modules/@undefineds.co/drizzle-solid/dist/utils/namespace.js +33 -0
- package/node_modules/@undefineds.co/drizzle-solid/dist/utils/namespace.js.map +1 -0
- package/node_modules/@undefineds.co/drizzle-solid/dist/utils/rdf-helpers.d.ts +17 -0
- package/node_modules/@undefineds.co/drizzle-solid/dist/utils/rdf-helpers.d.ts.map +1 -0
- package/node_modules/@undefineds.co/drizzle-solid/dist/utils/rdf-helpers.js +56 -0
- package/node_modules/@undefineds.co/drizzle-solid/dist/utils/rdf-helpers.js.map +1 -0
- package/node_modules/@undefineds.co/drizzle-solid/dist/utils/rdf-validation.d.ts +27 -0
- package/node_modules/@undefineds.co/drizzle-solid/dist/utils/rdf-validation.d.ts.map +1 -0
- package/node_modules/@undefineds.co/drizzle-solid/dist/utils/rdf-validation.js +331 -0
- package/node_modules/@undefineds.co/drizzle-solid/dist/utils/rdf-validation.js.map +1 -0
- package/node_modules/@undefineds.co/drizzle-solid/dist/utils/thing-operations.d.ts +28 -0
- package/node_modules/@undefineds.co/drizzle-solid/dist/utils/thing-operations.d.ts.map +1 -0
- package/node_modules/@undefineds.co/drizzle-solid/dist/utils/thing-operations.js +256 -0
- package/node_modules/@undefineds.co/drizzle-solid/dist/utils/thing-operations.js.map +1 -0
- package/node_modules/@undefineds.co/drizzle-solid/dist/utils/webid-resolver.d.ts +23 -0
- package/node_modules/@undefineds.co/drizzle-solid/dist/utils/webid-resolver.d.ts.map +1 -0
- package/node_modules/@undefineds.co/drizzle-solid/dist/utils/webid-resolver.js +79 -0
- package/node_modules/@undefineds.co/drizzle-solid/dist/utils/webid-resolver.js.map +1 -0
- package/node_modules/@undefineds.co/drizzle-solid/package.json +122 -0
- package/node_modules/@undefineds.co/models/README.md +578 -0
- package/node_modules/@undefineds.co/models/dist/_drizzle-solid/columns.d.ts +37 -0
- package/node_modules/@undefineds.co/models/dist/_drizzle-solid/columns.js +1 -0
- package/node_modules/@undefineds.co/models/dist/_drizzle-solid/pod-table.d.ts +3 -0
- package/node_modules/@undefineds.co/models/dist/_drizzle-solid/pod-table.js +1 -0
- package/node_modules/@undefineds.co/models/dist/_drizzle-solid/types.d.ts +40 -0
- package/node_modules/@undefineds.co/models/dist/_drizzle-solid/types.js +1 -0
- package/node_modules/@undefineds.co/models/dist/agent.providers.d.ts +13 -0
- package/node_modules/@undefineds.co/models/dist/agent.providers.js +69 -0
- package/node_modules/@undefineds.co/models/dist/agent.repository.d.ts +85 -0
- package/node_modules/@undefineds.co/models/dist/agent.repository.js +7 -0
- package/node_modules/@undefineds.co/models/dist/agent.schema.d.ts +1 -0
- package/node_modules/@undefineds.co/models/dist/agent.schema.js +1 -0
- package/node_modules/@undefineds.co/models/dist/ai-config/index.d.ts +61 -0
- package/node_modules/@undefineds.co/models/dist/ai-config/index.js +294 -0
- package/node_modules/@undefineds.co/models/dist/ai-config.d.ts +1 -0
- package/node_modules/@undefineds.co/models/dist/ai-config.js +1 -0
- package/node_modules/@undefineds.co/models/dist/ai-model.schema.d.ts +1 -0
- package/node_modules/@undefineds.co/models/dist/ai-model.schema.js +1 -0
- package/node_modules/@undefineds.co/models/dist/ai-provider.schema.d.ts +1 -0
- package/node_modules/@undefineds.co/models/dist/ai-provider.schema.js +1 -0
- package/node_modules/@undefineds.co/models/dist/approval.schema.d.ts +1 -0
- package/node_modules/@undefineds.co/models/dist/approval.schema.js +1 -0
- package/node_modules/@undefineds.co/models/dist/audit.schema.d.ts +1 -0
- package/node_modules/@undefineds.co/models/dist/audit.schema.js +1 -0
- package/node_modules/@undefineds.co/models/dist/chat.repository.d.ts +61 -0
- package/node_modules/@undefineds.co/models/dist/chat.repository.js +8 -0
- package/node_modules/@undefineds.co/models/dist/chat.schema.d.ts +1 -0
- package/node_modules/@undefineds.co/models/dist/chat.schema.js +1 -0
- package/node_modules/@undefineds.co/models/dist/chat.utils.d.ts +3 -0
- package/node_modules/@undefineds.co/models/dist/chat.utils.js +30 -0
- package/node_modules/@undefineds.co/models/dist/contact.repository.d.ts +85 -0
- package/node_modules/@undefineds.co/models/dist/contact.repository.js +8 -0
- package/node_modules/@undefineds.co/models/dist/contact.schema.d.ts +1 -0
- package/node_modules/@undefineds.co/models/dist/contact.schema.js +1 -0
- package/node_modules/@undefineds.co/models/dist/core/agent-provider.schema.d.ts +1 -0
- package/node_modules/@undefineds.co/models/dist/core/agent-provider.schema.js +1 -0
- package/node_modules/@undefineds.co/models/dist/core/agent-status.schema.d.ts +12 -0
- package/node_modules/@undefineds.co/models/dist/core/agent-status.schema.js +18 -0
- package/node_modules/@undefineds.co/models/dist/core/agent.schema.d.ts +72 -0
- package/node_modules/@undefineds.co/models/dist/core/agent.schema.js +38 -0
- package/node_modules/@undefineds.co/models/dist/core/ai-config.schema.d.ts +11 -0
- package/node_modules/@undefineds.co/models/dist/core/ai-config.schema.js +18 -0
- package/node_modules/@undefineds.co/models/dist/core/ai-model.schema.d.ts +15 -0
- package/node_modules/@undefineds.co/models/dist/core/ai-model.schema.js +21 -0
- package/node_modules/@undefineds.co/models/dist/core/ai-provider.schema.d.ts +16 -0
- package/node_modules/@undefineds.co/models/dist/core/ai-provider.schema.js +28 -0
- package/node_modules/@undefineds.co/models/dist/core/approval.schema.d.ts +21 -0
- package/node_modules/@undefineds.co/models/dist/core/approval.schema.js +33 -0
- package/node_modules/@undefineds.co/models/dist/core/audit.schema.d.ts +17 -0
- package/node_modules/@undefineds.co/models/dist/core/audit.schema.js +29 -0
- package/node_modules/@undefineds.co/models/dist/core/chat.schema.d.ts +36 -0
- package/node_modules/@undefineds.co/models/dist/core/chat.schema.js +45 -0
- package/node_modules/@undefineds.co/models/dist/core/contact.schema.d.ts +47 -0
- package/node_modules/@undefineds.co/models/dist/core/contact.schema.js +59 -0
- package/node_modules/@undefineds.co/models/dist/core/credential.schema.d.ts +56 -0
- package/node_modules/@undefineds.co/models/dist/core/credential.schema.js +40 -0
- package/node_modules/@undefineds.co/models/dist/core/extension/extension.schema.d.ts +4 -0
- package/node_modules/@undefineds.co/models/dist/core/extension/extension.schema.js +11 -0
- package/node_modules/@undefineds.co/models/dist/core/extension/index.d.ts +1 -0
- package/node_modules/@undefineds.co/models/dist/core/extension/index.js +1 -0
- package/node_modules/@undefineds.co/models/dist/core/extension.d.ts +1 -0
- package/node_modules/@undefineds.co/models/dist/core/extension.js +1 -0
- package/node_modules/@undefineds.co/models/dist/core/favorite/favorite.schema.d.ts +24 -0
- package/node_modules/@undefineds.co/models/dist/core/favorite/favorite.schema.js +34 -0
- package/node_modules/@undefineds.co/models/dist/core/favorite/index.d.ts +1 -0
- package/node_modules/@undefineds.co/models/dist/core/favorite/index.js +1 -0
- package/node_modules/@undefineds.co/models/dist/core/file/file.schema.d.ts +39 -0
- package/node_modules/@undefineds.co/models/dist/core/file/file.schema.js +51 -0
- package/node_modules/@undefineds.co/models/dist/core/file/index.d.ts +1 -0
- package/node_modules/@undefineds.co/models/dist/core/file/index.js +1 -0
- package/node_modules/@undefineds.co/models/dist/core/file.d.ts +1 -0
- package/node_modules/@undefineds.co/models/dist/core/file.js +1 -0
- package/node_modules/@undefineds.co/models/dist/core/grant.schema.d.ts +16 -0
- package/node_modules/@undefineds.co/models/dist/core/grant.schema.js +29 -0
- package/node_modules/@undefineds.co/models/dist/core/import/import-job.schema.d.ts +5 -0
- package/node_modules/@undefineds.co/models/dist/core/import/import-job.schema.js +5 -0
- package/node_modules/@undefineds.co/models/dist/core/import/index.d.ts +1 -0
- package/node_modules/@undefineds.co/models/dist/core/import/index.js +1 -0
- package/node_modules/@undefineds.co/models/dist/core/import.d.ts +1 -0
- package/node_modules/@undefineds.co/models/dist/core/import.js +1 -0
- package/node_modules/@undefineds.co/models/dist/core/inbox-notification.schema.d.ts +9 -0
- package/node_modules/@undefineds.co/models/dist/core/inbox-notification.schema.js +16 -0
- package/node_modules/@undefineds.co/models/dist/core/index.d.ts +31 -0
- package/node_modules/@undefineds.co/models/dist/core/index.js +32 -0
- package/node_modules/@undefineds.co/models/dist/core/knowledge/index.d.ts +1 -0
- package/node_modules/@undefineds.co/models/dist/core/knowledge/index.js +1 -0
- package/node_modules/@undefineds.co/models/dist/core/knowledge/knowledge-folder.schema.d.ts +7 -0
- package/node_modules/@undefineds.co/models/dist/core/knowledge/knowledge-folder.schema.js +6 -0
- package/node_modules/@undefineds.co/models/dist/core/knowledge.d.ts +1 -0
- package/node_modules/@undefineds.co/models/dist/core/knowledge.js +1 -0
- package/node_modules/@undefineds.co/models/dist/core/message.schema.d.ts +33 -0
- package/node_modules/@undefineds.co/models/dist/core/message.schema.js +49 -0
- package/node_modules/@undefineds.co/models/dist/core/namespaces.d.ts +176 -0
- package/node_modules/@undefineds.co/models/dist/core/namespaces.js +289 -0
- package/node_modules/@undefineds.co/models/dist/core/profile.d.ts +16 -0
- package/node_modules/@undefineds.co/models/dist/core/profile.js +19 -0
- package/node_modules/@undefineds.co/models/dist/core/schema.d.ts +304 -0
- package/node_modules/@undefineds.co/models/dist/core/schema.js +46 -0
- package/node_modules/@undefineds.co/models/dist/core/session/index.d.ts +1 -0
- package/node_modules/@undefineds.co/models/dist/core/session/index.js +1 -0
- package/node_modules/@undefineds.co/models/dist/core/session/session.schema.d.ts +6 -0
- package/node_modules/@undefineds.co/models/dist/core/session/session.schema.js +6 -0
- package/node_modules/@undefineds.co/models/dist/core/session.d.ts +1 -0
- package/node_modules/@undefineds.co/models/dist/core/session.js +1 -0
- package/node_modules/@undefineds.co/models/dist/core/settings/index.d.ts +1 -0
- package/node_modules/@undefineds.co/models/dist/core/settings/index.js +1 -0
- package/node_modules/@undefineds.co/models/dist/core/settings/settings.schema.d.ts +49 -0
- package/node_modules/@undefineds.co/models/dist/core/settings/settings.schema.js +63 -0
- package/node_modules/@undefineds.co/models/dist/core/settings.d.ts +1 -0
- package/node_modules/@undefineds.co/models/dist/core/settings.js +1 -0
- package/node_modules/@undefineds.co/models/dist/core/thread.schema.d.ts +28 -0
- package/node_modules/@undefineds.co/models/dist/core/thread.schema.js +36 -0
- package/node_modules/@undefineds.co/models/dist/core/types/collaboration-blocks.d.ts +52 -0
- package/node_modules/@undefineds.co/models/dist/core/types/collaboration-blocks.js +7 -0
- package/node_modules/@undefineds.co/models/dist/core/types/message-block.d.ts +270 -0
- package/node_modules/@undefineds.co/models/dist/core/types/message-block.js +125 -0
- package/node_modules/@undefineds.co/models/dist/core/vector-store.schema.d.ts +25 -0
- package/node_modules/@undefineds.co/models/dist/core/vector-store.schema.js +35 -0
- package/node_modules/@undefineds.co/models/dist/core/vocab/_namespaces.d.ts +1 -0
- package/node_modules/@undefineds.co/models/dist/core/vocab/_namespaces.js +3 -0
- package/node_modules/@undefineds.co/models/dist/core/vocab/chat.vocab.d.ts +16 -0
- package/node_modules/@undefineds.co/models/dist/core/vocab/chat.vocab.js +22 -0
- package/node_modules/@undefineds.co/models/dist/core/vocab/contact.vocab.d.ts +21 -0
- package/node_modules/@undefineds.co/models/dist/core/vocab/contact.vocab.js +22 -0
- package/node_modules/@undefineds.co/models/dist/core/vocab/index.d.ts +6 -0
- package/node_modules/@undefineds.co/models/dist/core/vocab/index.js +6 -0
- package/node_modules/@undefineds.co/models/dist/core/vocab/message.vocab.d.ts +20 -0
- package/node_modules/@undefineds.co/models/dist/core/vocab/message.vocab.js +24 -0
- package/node_modules/@undefineds.co/models/dist/core/vocab/sidecar.vocab.d.ts +46 -0
- package/node_modules/@undefineds.co/models/dist/core/vocab/sidecar.vocab.js +47 -0
- package/node_modules/@undefineds.co/models/dist/core/vocab/thread.vocab.d.ts +11 -0
- package/node_modules/@undefineds.co/models/dist/core/vocab/thread.vocab.js +14 -0
- package/node_modules/@undefineds.co/models/dist/core/vocab/workspace.vocab.d.ts +12 -0
- package/node_modules/@undefineds.co/models/dist/core/vocab/workspace.vocab.js +13 -0
- package/node_modules/@undefineds.co/models/dist/core/vocab.d.ts +1 -0
- package/node_modules/@undefineds.co/models/dist/core/vocab.js +1 -0
- package/node_modules/@undefineds.co/models/dist/core/workspace.schema.d.ts +35 -0
- package/node_modules/@undefineds.co/models/dist/core/workspace.schema.js +106 -0
- package/node_modules/@undefineds.co/models/dist/core.d.ts +1 -0
- package/node_modules/@undefineds.co/models/dist/core.js +1 -0
- package/node_modules/@undefineds.co/models/dist/credential.schema.d.ts +1 -0
- package/node_modules/@undefineds.co/models/dist/credential.schema.js +1 -0
- package/node_modules/@undefineds.co/models/dist/discovery/index.d.ts +31 -0
- package/node_modules/@undefineds.co/models/dist/discovery/index.js +147 -0
- package/node_modules/@undefineds.co/models/dist/discovery/models.json +2623 -0
- package/node_modules/@undefineds.co/models/dist/discovery/providers.json +156 -0
- package/node_modules/@undefineds.co/models/dist/discovery/types.d.ts +103 -0
- package/node_modules/@undefineds.co/models/dist/discovery/types.js +12 -0
- package/node_modules/@undefineds.co/models/dist/discovery/vercel.d.ts +25 -0
- package/node_modules/@undefineds.co/models/dist/discovery/vercel.js +95 -0
- package/node_modules/@undefineds.co/models/dist/discovery.d.ts +1 -0
- package/node_modules/@undefineds.co/models/dist/discovery.js +1 -0
- package/node_modules/@undefineds.co/models/dist/extension/extension.schema.d.ts +1 -0
- package/node_modules/@undefineds.co/models/dist/extension/extension.schema.js +1 -0
- package/node_modules/@undefineds.co/models/dist/extension/index.d.ts +1 -0
- package/node_modules/@undefineds.co/models/dist/extension/index.js +1 -0
- package/node_modules/@undefineds.co/models/dist/extension.d.ts +1 -0
- package/node_modules/@undefineds.co/models/dist/extension.js +1 -0
- package/node_modules/@undefineds.co/models/dist/favorite/favorite.schema.d.ts +1 -0
- package/node_modules/@undefineds.co/models/dist/favorite/favorite.schema.js +1 -0
- package/node_modules/@undefineds.co/models/dist/favorite/index.d.ts +2 -0
- package/node_modules/@undefineds.co/models/dist/favorite/index.js +7 -0
- package/node_modules/@undefineds.co/models/dist/favorite/starred-sync.d.ts +66 -0
- package/node_modules/@undefineds.co/models/dist/favorite/starred-sync.js +156 -0
- package/node_modules/@undefineds.co/models/dist/favorite.d.ts +1 -0
- package/node_modules/@undefineds.co/models/dist/favorite.js +1 -0
- package/node_modules/@undefineds.co/models/dist/file/file.schema.d.ts +1 -0
- package/node_modules/@undefineds.co/models/dist/file/file.schema.js +1 -0
- package/node_modules/@undefineds.co/models/dist/file/index.d.ts +1 -0
- package/node_modules/@undefineds.co/models/dist/file/index.js +1 -0
- package/node_modules/@undefineds.co/models/dist/file.d.ts +1 -0
- package/node_modules/@undefineds.co/models/dist/file.js +1 -0
- package/node_modules/@undefineds.co/models/dist/fixtures/contracts-chat-contact.d.ts +13 -0
- package/node_modules/@undefineds.co/models/dist/fixtures/contracts-chat-contact.js +76 -0
- package/node_modules/@undefineds.co/models/dist/grant.schema.d.ts +1 -0
- package/node_modules/@undefineds.co/models/dist/grant.schema.js +1 -0
- package/node_modules/@undefineds.co/models/dist/import/import-job.schema.d.ts +5 -0
- package/node_modules/@undefineds.co/models/dist/import/import-job.schema.js +5 -0
- package/node_modules/@undefineds.co/models/dist/import/index.d.ts +1 -0
- package/node_modules/@undefineds.co/models/dist/import/index.js +1 -0
- package/node_modules/@undefineds.co/models/dist/import.d.ts +1 -0
- package/node_modules/@undefineds.co/models/dist/import.js +1 -0
- package/node_modules/@undefineds.co/models/dist/inbox-notification.schema.d.ts +1 -0
- package/node_modules/@undefineds.co/models/dist/inbox-notification.schema.js +1 -0
- package/node_modules/@undefineds.co/models/dist/index.d.ts +41 -0
- package/node_modules/@undefineds.co/models/dist/index.js +83 -0
- package/node_modules/@undefineds.co/models/dist/knowledge/index.d.ts +1 -0
- package/node_modules/@undefineds.co/models/dist/knowledge/index.js +1 -0
- package/node_modules/@undefineds.co/models/dist/knowledge/knowledge-folder.schema.d.ts +1 -0
- package/node_modules/@undefineds.co/models/dist/knowledge/knowledge-folder.schema.js +1 -0
- package/node_modules/@undefineds.co/models/dist/knowledge.d.ts +1 -0
- package/node_modules/@undefineds.co/models/dist/knowledge.js +1 -0
- package/node_modules/@undefineds.co/models/dist/message.repository.d.ts +81 -0
- package/node_modules/@undefineds.co/models/dist/message.repository.js +8 -0
- package/node_modules/@undefineds.co/models/dist/message.schema.d.ts +1 -0
- package/node_modules/@undefineds.co/models/dist/message.schema.js +1 -0
- package/node_modules/@undefineds.co/models/dist/namespaces.d.ts +1 -0
- package/node_modules/@undefineds.co/models/dist/namespaces.js +1 -0
- package/node_modules/@undefineds.co/models/dist/profile.d.ts +1 -0
- package/node_modules/@undefineds.co/models/dist/profile.js +1 -0
- package/node_modules/@undefineds.co/models/dist/repository.d.ts +59 -0
- package/node_modules/@undefineds.co/models/dist/repository.js +186 -0
- package/node_modules/@undefineds.co/models/dist/schema.d.ts +1 -0
- package/node_modules/@undefineds.co/models/dist/schema.js +1 -0
- package/node_modules/@undefineds.co/models/dist/session/index.d.ts +1 -0
- package/node_modules/@undefineds.co/models/dist/session/index.js +1 -0
- package/node_modules/@undefineds.co/models/dist/session/session.schema.d.ts +1 -0
- package/node_modules/@undefineds.co/models/dist/session/session.schema.js +1 -0
- package/node_modules/@undefineds.co/models/dist/session.d.ts +1 -0
- package/node_modules/@undefineds.co/models/dist/session.js +1 -0
- package/node_modules/@undefineds.co/models/dist/settings/index.d.ts +1 -0
- package/node_modules/@undefineds.co/models/dist/settings/index.js +1 -0
- package/node_modules/@undefineds.co/models/dist/settings/settings.schema.d.ts +1 -0
- package/node_modules/@undefineds.co/models/dist/settings/settings.schema.js +1 -0
- package/node_modules/@undefineds.co/models/dist/settings.d.ts +1 -0
- package/node_modules/@undefineds.co/models/dist/settings.js +1 -0
- package/node_modules/@undefineds.co/models/dist/sidecar/index.d.ts +2 -0
- package/node_modules/@undefineds.co/models/dist/sidecar/index.js +2 -0
- package/node_modules/@undefineds.co/models/dist/sidecar/persistence-mapping.d.ts +51 -0
- package/node_modules/@undefineds.co/models/dist/sidecar/persistence-mapping.js +44 -0
- package/node_modules/@undefineds.co/models/dist/sidecar/sidecar-events.d.ts +632 -0
- package/node_modules/@undefineds.co/models/dist/sidecar/sidecar-events.js +133 -0
- package/node_modules/@undefineds.co/models/dist/thread.repository.d.ts +41 -0
- package/node_modules/@undefineds.co/models/dist/thread.repository.js +8 -0
- package/node_modules/@undefineds.co/models/dist/thread.schema.d.ts +1 -0
- package/node_modules/@undefineds.co/models/dist/thread.schema.js +1 -0
- package/node_modules/@undefineds.co/models/dist/types/collaboration-blocks.d.ts +52 -0
- package/node_modules/@undefineds.co/models/dist/types/collaboration-blocks.js +7 -0
- package/node_modules/@undefineds.co/models/dist/types/message-block.d.ts +270 -0
- package/node_modules/@undefineds.co/models/dist/types/message-block.js +125 -0
- package/node_modules/@undefineds.co/models/dist/vocab/_namespaces.d.ts +1 -0
- package/node_modules/@undefineds.co/models/dist/vocab/_namespaces.js +3 -0
- package/node_modules/@undefineds.co/models/dist/vocab/chat.vocab.d.ts +16 -0
- package/node_modules/@undefineds.co/models/dist/vocab/chat.vocab.js +22 -0
- package/node_modules/@undefineds.co/models/dist/vocab/contact.vocab.d.ts +21 -0
- package/node_modules/@undefineds.co/models/dist/vocab/contact.vocab.js +22 -0
- package/node_modules/@undefineds.co/models/dist/vocab/index.d.ts +6 -0
- package/node_modules/@undefineds.co/models/dist/vocab/index.js +6 -0
- package/node_modules/@undefineds.co/models/dist/vocab/message.vocab.d.ts +20 -0
- package/node_modules/@undefineds.co/models/dist/vocab/message.vocab.js +24 -0
- package/node_modules/@undefineds.co/models/dist/vocab/sidecar.vocab.d.ts +46 -0
- package/node_modules/@undefineds.co/models/dist/vocab/sidecar.vocab.js +47 -0
- package/node_modules/@undefineds.co/models/dist/vocab/thread.vocab.d.ts +11 -0
- package/node_modules/@undefineds.co/models/dist/vocab/thread.vocab.js +14 -0
- package/node_modules/@undefineds.co/models/dist/vocab/workspace.vocab.d.ts +12 -0
- package/node_modules/@undefineds.co/models/dist/vocab/workspace.vocab.js +13 -0
- package/node_modules/@undefineds.co/models/dist/vocab.d.ts +1 -0
- package/node_modules/@undefineds.co/models/dist/vocab.js +1 -0
- package/node_modules/@undefineds.co/models/dist/workspace.repository.d.ts +45 -0
- package/node_modules/@undefineds.co/models/dist/workspace.repository.js +8 -0
- package/node_modules/@undefineds.co/models/dist/workspace.schema.d.ts +1 -0
- package/node_modules/@undefineds.co/models/dist/workspace.schema.js +1 -0
- package/node_modules/@undefineds.co/models/package.json +67 -0
- package/package.json +77 -49
- package/scripts/patch-jose.js +34 -0
- package/static/app/assets/index.css +1 -0
- package/static/app/assets/main.js +11 -0
- package/dist/libs/backends/index.d.ts +0 -6
- package/dist/libs/backends/index.js +0 -31
- package/dist/libs/backends/index.js.map +0 -1
- package/dist/libs/backends/sqlup.d.ts +0 -44
- package/dist/libs/backends/sqlup.js +0 -437
- package/dist/libs/backends/sqlup.js.map +0 -1
- package/dist/storage/DrizzleCompat.d.ts +0 -15
- package/dist/storage/DrizzleCompat.js.map +0 -1
- package/dist/storage/SqliteCompat.d.ts +0 -60
- package/dist/storage/SqliteCompat.js +0 -158
- package/dist/storage/SqliteCompat.js.map +0 -1
- package/dist/storage/vector/VectorStoreInit.d.ts +0 -28
- package/dist/storage/vector/VectorStoreInit.js +0 -105
- package/dist/storage/vector/VectorStoreInit.js.map +0 -1
|
@@ -1,65 +1,7 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
-
/**
|
|
3
|
-
* VectorStore Schema - Container 级别的知识库配置
|
|
4
|
-
*
|
|
5
|
-
* 存储位置: /settings/ai/vector-stores.ttl
|
|
6
|
-
*/
|
|
7
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
8
3
|
exports.IndexedFile = exports.VectorStore = void 0;
|
|
9
|
-
const
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
* VectorStore - Container 级别的知识库配置
|
|
13
|
-
*
|
|
14
|
-
* RDF 示例:
|
|
15
|
-
* <#vs_abc123> a udfs:VectorStore ;
|
|
16
|
-
* udfs:name "My Notes" ;
|
|
17
|
-
* udfs:container </notes/> ;
|
|
18
|
-
* udfs:chunkingStrategy "auto" ;
|
|
19
|
-
* udfs:status "completed" ;
|
|
20
|
-
* udfs:createdAt "2024-01-15T10:30:00Z"^^xsd:dateTime .
|
|
21
|
-
*/
|
|
22
|
-
exports.VectorStore = (0, drizzle_solid_1.podTable)('VectorStore', {
|
|
23
|
-
id: (0, drizzle_solid_1.string)('id').primaryKey(),
|
|
24
|
-
name: (0, drizzle_solid_1.string)('name'),
|
|
25
|
-
container: (0, drizzle_solid_1.uri)('container'),
|
|
26
|
-
chunkingStrategy: (0, drizzle_solid_1.string)('chunkingStrategy'),
|
|
27
|
-
status: (0, drizzle_solid_1.string)('status'),
|
|
28
|
-
createdAt: (0, drizzle_solid_1.datetime)('createdAt'),
|
|
29
|
-
lastActiveAt: (0, drizzle_solid_1.datetime)('lastActiveAt'),
|
|
30
|
-
}, {
|
|
31
|
-
base: '/settings/ai/vector-stores.ttl',
|
|
32
|
-
type: vocab_1.UDFS.VectorStore,
|
|
33
|
-
namespace: vocab_1.UDFS_NAMESPACE,
|
|
34
|
-
subjectTemplate: '#{id}',
|
|
35
|
-
});
|
|
36
|
-
/**
|
|
37
|
-
* IndexedFile - 全局文件索引状态管理
|
|
38
|
-
*
|
|
39
|
-
* 存储位置: /settings/ai/indexed-files.ttl
|
|
40
|
-
*
|
|
41
|
-
* RDF 示例:
|
|
42
|
-
* <#idx_abc123> a udfs:IndexedFile ;
|
|
43
|
-
* udfs:fileUrl </notes/hello.md> ;
|
|
44
|
-
* udfs:vectorId "123456789"^^xsd:integer ;
|
|
45
|
-
* udfs:chunkingStrategy "auto" ;
|
|
46
|
-
* udfs:status "completed" ;
|
|
47
|
-
* udfs:usageBytes "1024"^^xsd:integer ;
|
|
48
|
-
* udfs:indexedAt "2024-01-15T10:30:00Z"^^xsd:dateTime .
|
|
49
|
-
*/
|
|
50
|
-
exports.IndexedFile = (0, drizzle_solid_1.podTable)('IndexedFile', {
|
|
51
|
-
id: (0, drizzle_solid_1.string)('id').primaryKey(),
|
|
52
|
-
fileUrl: (0, drizzle_solid_1.uri)('fileUrl'),
|
|
53
|
-
vectorId: (0, drizzle_solid_1.int)('vectorId'),
|
|
54
|
-
chunkingStrategy: (0, drizzle_solid_1.string)('chunkingStrategy'),
|
|
55
|
-
status: (0, drizzle_solid_1.string)('status'),
|
|
56
|
-
usageBytes: (0, drizzle_solid_1.int)('usageBytes'),
|
|
57
|
-
lastError: (0, drizzle_solid_1.string)('lastError'),
|
|
58
|
-
indexedAt: (0, drizzle_solid_1.datetime)('indexedAt'),
|
|
59
|
-
}, {
|
|
60
|
-
base: '/settings/ai/indexed-files.ttl',
|
|
61
|
-
type: vocab_1.UDFS.IndexedFile,
|
|
62
|
-
namespace: vocab_1.UDFS_NAMESPACE,
|
|
63
|
-
subjectTemplate: '#{id}',
|
|
64
|
-
});
|
|
4
|
+
const models_1 = require("@undefineds.co/models");
|
|
5
|
+
exports.VectorStore = models_1.linxSchema.vectorStoreTable;
|
|
6
|
+
exports.IndexedFile = models_1.linxSchema.indexedFileTable;
|
|
65
7
|
//# sourceMappingURL=vector-store.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"vector-store.js","sourceRoot":"","sources":["../../../src/ai/schema/vector-store.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"vector-store.js","sourceRoot":"","sources":["../../../src/ai/schema/vector-store.ts"],"names":[],"mappings":";;;AAAA,kDAAmD;AAEtC,QAAA,WAAW,GAAG,mBAAU,CAAC,gBAAuB,CAAC;AAKjD,QAAA,WAAW,GAAG,mBAAU,CAAC,gBAAuB,CAAC","sourcesContent":["import { linxSchema } from '@undefineds.co/models';\n\nexport const VectorStore = linxSchema.vectorStoreTable as any;\n\nexport type VectorStoreRow = typeof VectorStore.$inferSelect;\nexport type VectorStoreInsert = typeof VectorStore.$inferInsert;\n\nexport const IndexedFile = linxSchema.indexedFileTable as any;\n\nexport type IndexedFileRow = typeof IndexedFile.$inferSelect;\nexport type IndexedFileInsert = typeof IndexedFile.$inferInsert;\n"]}
|
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.CredentialReaderImpl = void 0;
|
|
4
4
|
const global_logger_factory_1 = require("global-logger-factory");
|
|
5
|
-
const drizzle_solid_1 = require("drizzle-solid");
|
|
5
|
+
const drizzle_solid_1 = require("@undefineds.co/drizzle-solid");
|
|
6
6
|
const CredentialReader_1 = require("./CredentialReader");
|
|
7
7
|
const tables_1 = require("../../credential/schema/tables");
|
|
8
8
|
const provider_1 = require("../schema/provider");
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"CredentialReaderImpl.js","sourceRoot":"","sources":["../../../src/ai/service/CredentialReaderImpl.ts"],"names":[],"mappings":";;;AAAA,iEAAqD;AACrD,
|
|
1
|
+
{"version":3,"file":"CredentialReaderImpl.js","sourceRoot":"","sources":["../../../src/ai/service/CredentialReaderImpl.ts"],"names":[],"mappings":";;;AAAA,iEAAqD;AACrD,gEAAgE;AAChE,yDAAsD;AAEtD,2DAA4D;AAC5D,iDAA8C;AAC9C,yDAA8E;AAE9E,MAAM,MAAM,GAAG;IACb,UAAU,EAAE,mBAAU;IACtB,QAAQ,EAAE,mBAAQ;CACnB,CAAC;AAEF,MAAa,oBAAqB,SAAQ,mCAAgB;IAA1D;;QACqB,WAAM,GAAG,IAAA,oCAAY,EAAC,IAAI,CAAC,CAAC;IAiDjD,CAAC;IA/CiB,KAAK,CAAC,eAAe,CACnC,UAAkB,EAClB,UAAkB,EAClB,kBAAgC,EAChC,KAAc;QAEd,IAAI,CAAC;YACH,MAAM,OAAO,GAAG;gBACd,IAAI,EAAE,EAAE,UAAU,EAAE,IAAI,EAAE,KAAK,EAAE;gBACjC,KAAK,EAAE,kBAAkB;aAC1B,CAAC;YACF,MAAM,EAAE,GAAQ,IAAA,uBAAO,EAAC,OAAO,EAAE,EAAE,MAAM,EAAE,CAAC,CAAC;YAE7C,kBAAkB;YAClB,MAAM,WAAW,GAAG,GAAG,UAAU,6BAA6B,UAAU,EAAE,CAAC;YAE3E,qCAAqC;YACrC,MAAM,WAAW,GAAG,MAAM,EAAE,CAAC,KAAK,CAAC,UAAU,CAAC,QAAQ,CAAC;gBACrD,KAAK,EAAE,IAAA,mBAAG,EACR,IAAA,kBAAE,EAAC,mBAAU,CAAC,OAAO,EAAE,mBAAW,CAAC,EAAE,CAAC,EACtC,IAAA,kBAAE,EAAC,mBAAU,CAAC,MAAM,EAAE,wBAAgB,CAAC,MAAM,CAAC,EAC9C,IAAA,kBAAE,EAAC,mBAAU,CAAC,QAAQ,EAAE,WAAW,CAAC,CACrC;gBACD,IAAI,EAAE;oBACJ,QAAQ,EAAE,IAAI;iBACf;aACF,CAAC,CAAC;YAEH,IAAI,WAAW,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;gBAC7B,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,4CAA4C,UAAU,EAAE,CAAC,CAAC;gBAC5E,OAAO,IAAI,CAAC;YACd,CAAC;YAED,eAAe;YACf,MAAM,UAAU,GAAG,WAAW,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,EAAE,GAAG,WAAW,CAAC,MAAM,CAAC,CAAQ,CAAC;YAEtF,OAAO;gBACL,QAAQ,EAAE,UAAU;gBACpB,MAAM,EAAE,UAAU,CAAC,MAAM;gBACzB,OAAO,EAAE,UAAU,CAAC,OAAO,IAAI,UAAU,CAAC,QAAQ,EAAE,OAAO,IAAI,SAAS;gBACxE,QAAQ,EAAE,UAAU,CAAC,QAAQ,EAAE,QAAQ,IAAI,SAAS;aACrD,CAAC;QACJ,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,0CAA0C,UAAU,GAAG,EAAE,KAAK,CAAC,CAAC;YAClF,OAAO,IAAI,CAAC;QACd,CAAC;IACH,CAAC;CACF;AAlDD,oDAkDC","sourcesContent":["import { getLoggerFor } from 'global-logger-factory';\nimport { drizzle, eq, and } from '@undefineds.co/drizzle-solid';\nimport { CredentialReader } from './CredentialReader';\nimport type { AiCredential } from './types';\nimport { Credential } from '../../credential/schema/tables';\nimport { Provider } from '../schema/provider';\nimport { ServiceType, CredentialStatus } from '../../credential/schema/types';\n\nconst schema = {\n credential: Credential,\n provider: Provider,\n};\n\nexport class CredentialReaderImpl extends CredentialReader {\n protected readonly logger = getLoggerFor(this);\n\n public override async getAiCredential(\n podBaseUrl: string,\n providerId: string,\n authenticatedFetch: typeof fetch,\n webId?: string,\n ): Promise<AiCredential | null> {\n try {\n const session = {\n info: { isLoggedIn: true, webId },\n fetch: authenticatedFetch,\n };\n const db: any = drizzle(session, { schema });\n\n // 构建 Provider URI\n const providerUri = `${podBaseUrl}settings/ai/providers.ttl#${providerId}`;\n\n // 查询 credential,直接通过 provider URI 过滤\n const credentials = await db.query.credential.findMany({\n where: and(\n eq(Credential.service, ServiceType.AI),\n eq(Credential.status, CredentialStatus.ACTIVE),\n eq(Credential.provider, providerUri),\n ),\n with: {\n provider: true,\n },\n });\n\n if (credentials.length === 0) {\n this.logger.debug(`No active credential found for provider: ${providerId}`);\n return null;\n }\n\n // 随机选择一个(负载均衡)\n const credential = credentials[Math.floor(Math.random() * credentials.length)] as any;\n\n return {\n provider: providerId,\n apiKey: credential.apiKey,\n baseUrl: credential.baseUrl || credential.provider?.baseUrl || undefined,\n proxyUrl: credential.provider?.proxyUrl || undefined,\n };\n } catch (error) {\n this.logger.error(`Failed to read credential for provider ${providerId}:`, error);\n return null;\n }\n }\n}\n"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"DefaultAiConfigService.js","sourceRoot":"","sources":["../../../src/ai/service/DefaultAiConfigService.ts"],"names":[],"mappings":"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","sourcesContent":["/**\n * 默认 AI 配置服务\n *\n * 当用户没有配置任何 AI provider 时,使用 OpenRouter 免费模型\n * 智能识别用户输入中的 AI 配置信息并存储到 Pod\n */\n\nimport { getLoggerFor } from 'global-logger-factory';\nimport { drizzle } from 'drizzle-solid';\nimport { Provider } from '../schema/provider';\nimport { Model } from '../schema/model';\nimport { Credential } from '../../credential/schema/tables';\nimport { ServiceType, CredentialStatus } from '../../credential/schema/types';\n\nconst logger = getLoggerFor('DefaultAiConfigService');\n\nconst schema = {\n provider: Provider,\n model: Model,\n credential: Credential,\n};\n\n/**\n * 默认 AI 配置(OpenRouter 免费模型)\n */\nexport const DEFAULT_AI_CONFIG = {\n baseURL: 'https://openrouter.ai/api/v1',\n apiKey: '', // 用户需要填入自己的 OpenRouter API Key\n model: 'stepfun/step-3.5-flash:free',\n displayName: 'OpenRouter Free',\n};\n\n/**\n * 从用户输入中识别 AI 配置信息\n */\nexport interface ParsedAiConfig {\n provider?: string;\n baseUrl?: string;\n apiKey?: string;\n model?: string;\n proxyUrl?: string;\n}\n\n/**\n * 识别用户输入中的 AI 配置信息\n */\nexport function parseAiConfigFromInput(input: string): ParsedAiConfig | null {\n const result: ParsedAiConfig = {};\n \n // 识别 API Key (常见的 key 格式)\n const apiKeyPatterns = [\n /(?:api[_-]?key|key|token|sk)[\\s:=]+[\"']?([a-zA-Z0-9_\\-]{20,})[\"']?/i,\n /(sk-[a-zA-Z0-9]{20,})/i,\n /([a-f0-9]{32,})/i,\n ];\n \n for (const pattern of apiKeyPatterns) {\n const match = input.match(pattern);\n if (match) {\n result.apiKey = match[1];\n break;\n }\n }\n \n // 识别 Provider / Base URL\n const providerPatterns: Record<string, RegExp[]> = {\n openai: [/openai\\.com/i, /api\\.openai\\.com/i],\n google: [/google.*gemini/i, /generativelanguage\\.googleapis\\.com/i, /gemini/i],\n anthropic: [/anthropic/i, /claude/i, /api\\.anthropic\\.com/i],\n deepseek: [/deepseek/i, /api\\.deepseek\\.com/i],\n openrouter: [/openrouter/i, /openrouter\\.ai/i],\n ollama: [/ollama/i, /localhost:11434/i],\n mistral: [/mistral/i, /api\\.mistral\\.ai/i],\n cohere: [/cohere/i, /api\\.cohere\\.ai/i],\n zhipu: [/zhipu/i, /智谱/i, /bigmodel/i],\n };\n \n for (const [name, patterns] of Object.entries(providerPatterns)) {\n for (const pattern of patterns) {\n if (pattern.test(input)) {\n result.provider = name;\n break;\n }\n }\n if (result.provider) break;\n }\n \n // 识别 Base URL\n const urlPattern = /(https?:\\/\\/[a-zA-Z0-9\\-\\.]+(?:\\:\\d+)?(?:\\/[a-zA-Z0-9\\-\\/]*)?)/i;\n const urlMatch = input.match(urlPattern);\n if (urlMatch) {\n result.baseUrl = urlMatch[1];\n }\n \n // 识别 Model\n const modelPatterns = [\n // OpenAI\n /gpt-4[\\w\\-]*/i,\n /gpt-3\\.5-turbo/i,\n // Google\n /gemini-[\\w\\-]+/i,\n // Anthropic\n /claude-[\\w\\-]+/i,\n // DeepSeek\n /deepseek-[\\w\\-]+/i,\n // Llama\n /llama-[\\d\\.]+[\\w\\-]*/i,\n // Mistral\n /mistral-[\\w\\-]+/i,\n // Qwen\n /qwen[\\w\\-]*/i,\n // 通用\n /[\"']([a-zA-Z0-9\\/\\-\\:]+free)[\"']/i,\n /model[:\\s=]+[\"']?([a-zA-Z0-9\\/\\-\\:_\\.]+)[\"']?/i,\n ];\n \n for (const pattern of modelPatterns) {\n const match = input.match(pattern);\n if (match) {\n result.model = match[0].replace(/[\"']/g, '');\n break;\n }\n }\n \n // 识别 Proxy URL\n const proxyPattern = /proxy[:\\s=]+[\"']?(https?:\\/\\/[^\"'\\s]+)[\"']?/i;\n const proxyMatch = input.match(proxyPattern);\n if (proxyMatch) {\n result.proxyUrl = proxyMatch[1];\n }\n \n // 如果什么都没识别到,返回 null\n if (Object.keys(result).length === 0) {\n return null;\n }\n \n logger.debug(`Parsed AI config from input: ${JSON.stringify(result)}`);\n return result;\n}\n\n/**\n * 获取完整的 AI 配置(默认 + 解析出的)\n */\nexport function getDefaultAiConfig(userInput?: string): {\n baseURL: string;\n apiKey: string;\n model: string;\n displayName: string;\n parsedConfig?: ParsedAiConfig;\n} {\n const parsedConfig = userInput ? parseAiConfigFromInput(userInput) : null;\n \n // 如果用户提供了 baseUrl,使用用户的;否则使用默认\n const baseURL = parsedConfig?.baseUrl || \n (parsedConfig?.provider ? getDefaultBaseUrl(parsedConfig.provider) : DEFAULT_AI_CONFIG.baseURL);\n \n // 使用用户提供的 API Key 或空字符串\n const apiKey = parsedConfig?.apiKey || DEFAULT_AI_CONFIG.apiKey;\n \n // 使用用户提供的模型或默认模型\n const model = parsedConfig?.model || DEFAULT_AI_CONFIG.model;\n \n return {\n baseURL,\n apiKey,\n model,\n displayName: parsedConfig?.provider \n ? `${parsedConfig.provider.charAt(0).toUpperCase() + parsedConfig.provider.slice(1)}` \n : DEFAULT_AI_CONFIG.displayName,\n parsedConfig: parsedConfig || undefined,\n };\n}\n\n/**\n * 根据 provider 名称获取默认 base URL\n */\nfunction getDefaultBaseUrl(provider: string): string {\n const urls: Record<string, string> = {\n openai: 'https://api.openai.com/v1',\n google: 'https://generativelanguage.googleapis.com/v1beta/openai',\n anthropic: 'https://api.anthropic.com/v1',\n deepseek: 'https://api.deepseek.com/v1',\n openrouter: 'https://openrouter.ai/api/v1',\n ollama: 'http://localhost:11434/v1',\n mistral: 'https://api.mistral.ai/v1',\n cohere: 'https://api.cohere.ai/v1',\n zhipu: 'https://open.bigmodel.cn/api/paas/v4',\n };\n return urls[provider.toLowerCase()] || DEFAULT_AI_CONFIG.baseURL;\n}\n\n/**\n * 保存 AI 配置到 Pod\n * \n * 注意:这是一个占位实现,实际的保存逻辑需要调用 PodChatKitStore 的方法\n * 或通过 API 端点进行保存\n */\nexport async function saveAiConfigToPod(\n _podBaseUrl: string,\n config: ParsedAiConfig,\n _authenticatedFetch: typeof fetch,\n _webId?: string,\n): Promise<{ success: boolean; message: string }> {\n const logger = getLoggerFor('DefaultAiConfigService');\n \n // 验证必要的字段\n if (!config.provider && !config.baseUrl) {\n return { success: false, message: '无法识别 AI Provider' };\n }\n if (!config.apiKey) {\n return { success: false, message: '无法识别 API Key' };\n }\n \n const providerId = config.provider || 'custom';\n const displayName = config.provider \n ? config.provider.charAt(0).toUpperCase() + config.provider.slice(1)\n : 'Custom Provider';\n \n logger.debug(`AI config parsed: provider=${providerId}, model=${config.model}`);\n \n return { \n success: true, \n message: `已识别 AI 配置:${displayName}${config.model ? ` (${config.model})` : ''}。请在设置中确认保存。` \n };\n}\n"]}
|
|
1
|
+
{"version":3,"file":"DefaultAiConfigService.js","sourceRoot":"","sources":["../../../src/ai/service/DefaultAiConfigService.ts"],"names":[],"mappings":"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","sourcesContent":["/**\n * 默认 AI 配置服务\n *\n * 当用户没有配置任何 AI provider 时,使用 OpenRouter 免费模型\n * 智能识别用户输入中的 AI 配置信息并存储到 Pod\n */\n\nimport { getLoggerFor } from 'global-logger-factory';\nimport { drizzle } from '@undefineds.co/drizzle-solid';\nimport { Provider } from '../schema/provider';\nimport { Model } from '../schema/model';\nimport { Credential } from '../../credential/schema/tables';\nimport { ServiceType, CredentialStatus } from '../../credential/schema/types';\n\nconst logger = getLoggerFor('DefaultAiConfigService');\n\nconst schema = {\n provider: Provider,\n model: Model,\n credential: Credential,\n};\n\n/**\n * 默认 AI 配置(OpenRouter 免费模型)\n */\nexport const DEFAULT_AI_CONFIG = {\n baseURL: 'https://openrouter.ai/api/v1',\n apiKey: '', // 用户需要填入自己的 OpenRouter API Key\n model: 'stepfun/step-3.5-flash:free',\n displayName: 'OpenRouter Free',\n};\n\n/**\n * 从用户输入中识别 AI 配置信息\n */\nexport interface ParsedAiConfig {\n provider?: string;\n baseUrl?: string;\n apiKey?: string;\n model?: string;\n proxyUrl?: string;\n}\n\n/**\n * 识别用户输入中的 AI 配置信息\n */\nexport function parseAiConfigFromInput(input: string): ParsedAiConfig | null {\n const result: ParsedAiConfig = {};\n \n // 识别 API Key (常见的 key 格式)\n const apiKeyPatterns = [\n /(?:api[_-]?key|key|token|sk)[\\s:=]+[\"']?([a-zA-Z0-9_\\-]{20,})[\"']?/i,\n /(sk-[a-zA-Z0-9]{20,})/i,\n /([a-f0-9]{32,})/i,\n ];\n \n for (const pattern of apiKeyPatterns) {\n const match = input.match(pattern);\n if (match) {\n result.apiKey = match[1];\n break;\n }\n }\n \n // 识别 Provider / Base URL\n const providerPatterns: Record<string, RegExp[]> = {\n openai: [/openai\\.com/i, /api\\.openai\\.com/i],\n google: [/google.*gemini/i, /generativelanguage\\.googleapis\\.com/i, /gemini/i],\n anthropic: [/anthropic/i, /claude/i, /api\\.anthropic\\.com/i],\n deepseek: [/deepseek/i, /api\\.deepseek\\.com/i],\n openrouter: [/openrouter/i, /openrouter\\.ai/i],\n ollama: [/ollama/i, /localhost:11434/i],\n mistral: [/mistral/i, /api\\.mistral\\.ai/i],\n cohere: [/cohere/i, /api\\.cohere\\.ai/i],\n zhipu: [/zhipu/i, /智谱/i, /bigmodel/i],\n };\n \n for (const [name, patterns] of Object.entries(providerPatterns)) {\n for (const pattern of patterns) {\n if (pattern.test(input)) {\n result.provider = name;\n break;\n }\n }\n if (result.provider) break;\n }\n \n // 识别 Base URL\n const urlPattern = /(https?:\\/\\/[a-zA-Z0-9\\-\\.]+(?:\\:\\d+)?(?:\\/[a-zA-Z0-9\\-\\/]*)?)/i;\n const urlMatch = input.match(urlPattern);\n if (urlMatch) {\n result.baseUrl = urlMatch[1];\n }\n \n // 识别 Model\n const modelPatterns = [\n // OpenAI\n /gpt-4[\\w\\-]*/i,\n /gpt-3\\.5-turbo/i,\n // Google\n /gemini-[\\w\\-]+/i,\n // Anthropic\n /claude-[\\w\\-]+/i,\n // DeepSeek\n /deepseek-[\\w\\-]+/i,\n // Llama\n /llama-[\\d\\.]+[\\w\\-]*/i,\n // Mistral\n /mistral-[\\w\\-]+/i,\n // Qwen\n /qwen[\\w\\-]*/i,\n // 通用\n /[\"']([a-zA-Z0-9\\/\\-\\:]+free)[\"']/i,\n /model[:\\s=]+[\"']?([a-zA-Z0-9\\/\\-\\:_\\.]+)[\"']?/i,\n ];\n \n for (const pattern of modelPatterns) {\n const match = input.match(pattern);\n if (match) {\n result.model = match[0].replace(/[\"']/g, '');\n break;\n }\n }\n \n // 识别 Proxy URL\n const proxyPattern = /proxy[:\\s=]+[\"']?(https?:\\/\\/[^\"'\\s]+)[\"']?/i;\n const proxyMatch = input.match(proxyPattern);\n if (proxyMatch) {\n result.proxyUrl = proxyMatch[1];\n }\n \n // 如果什么都没识别到,返回 null\n if (Object.keys(result).length === 0) {\n return null;\n }\n \n logger.debug(`Parsed AI config from input: ${JSON.stringify(result)}`);\n return result;\n}\n\n/**\n * 获取完整的 AI 配置(默认 + 解析出的)\n */\nexport function getDefaultAiConfig(userInput?: string): {\n baseURL: string;\n apiKey: string;\n model: string;\n displayName: string;\n parsedConfig?: ParsedAiConfig;\n} {\n const parsedConfig = userInput ? parseAiConfigFromInput(userInput) : null;\n \n // 如果用户提供了 baseUrl,使用用户的;否则使用默认\n const baseURL = parsedConfig?.baseUrl || \n (parsedConfig?.provider ? getDefaultBaseUrl(parsedConfig.provider) : DEFAULT_AI_CONFIG.baseURL);\n \n // 使用用户提供的 API Key 或空字符串\n const apiKey = parsedConfig?.apiKey || DEFAULT_AI_CONFIG.apiKey;\n \n // 使用用户提供的模型或默认模型\n const model = parsedConfig?.model || DEFAULT_AI_CONFIG.model;\n \n return {\n baseURL,\n apiKey,\n model,\n displayName: parsedConfig?.provider \n ? `${parsedConfig.provider.charAt(0).toUpperCase() + parsedConfig.provider.slice(1)}` \n : DEFAULT_AI_CONFIG.displayName,\n parsedConfig: parsedConfig || undefined,\n };\n}\n\n/**\n * 根据 provider 名称获取默认 base URL\n */\nfunction getDefaultBaseUrl(provider: string): string {\n const urls: Record<string, string> = {\n openai: 'https://api.openai.com/v1',\n google: 'https://generativelanguage.googleapis.com/v1beta/openai',\n anthropic: 'https://api.anthropic.com/v1',\n deepseek: 'https://api.deepseek.com/v1',\n openrouter: 'https://openrouter.ai/api/v1',\n ollama: 'http://localhost:11434/v1',\n mistral: 'https://api.mistral.ai/v1',\n cohere: 'https://api.cohere.ai/v1',\n zhipu: 'https://open.bigmodel.cn/api/paas/v4',\n };\n return urls[provider.toLowerCase()] || DEFAULT_AI_CONFIG.baseURL;\n}\n\n/**\n * 保存 AI 配置到 Pod\n * \n * 注意:这是一个占位实现,实际的保存逻辑需要调用 PodChatKitStore 的方法\n * 或通过 API 端点进行保存\n */\nexport async function saveAiConfigToPod(\n _podBaseUrl: string,\n config: ParsedAiConfig,\n _authenticatedFetch: typeof fetch,\n _webId?: string,\n): Promise<{ success: boolean; message: string }> {\n const logger = getLoggerFor('DefaultAiConfigService');\n \n // 验证必要的字段\n if (!config.provider && !config.baseUrl) {\n return { success: false, message: '无法识别 AI Provider' };\n }\n if (!config.apiKey) {\n return { success: false, message: '无法识别 API Key' };\n }\n \n const providerId = config.provider || 'custom';\n const displayName = config.provider \n ? config.provider.charAt(0).toUpperCase() + config.provider.slice(1)\n : 'Custom Provider';\n \n logger.debug(`AI config parsed: provider=${providerId}, model=${config.model}`);\n \n return { \n success: true, \n message: `已识别 AI 配置:${displayName}${config.model ? ` (${config.model})` : ''}。请在设置中确认保存。` \n };\n}\n"]}
|
package/dist/api/ApiServer.d.ts
CHANGED
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import { type Server, type ServerResponse } from 'node:http';
|
|
2
2
|
import type { AuthMiddleware, AuthenticatedRequest } from './middleware/AuthMiddleware';
|
|
3
|
+
import type { RuntimeHost, RuntimeListenEndpoint } from '../runtime/host/types';
|
|
3
4
|
/**
|
|
4
5
|
* Route handler function
|
|
5
6
|
*/
|
|
@@ -16,8 +17,11 @@ export interface Route {
|
|
|
16
17
|
public?: boolean;
|
|
17
18
|
}
|
|
18
19
|
export interface ApiServerOptions {
|
|
19
|
-
port
|
|
20
|
+
port?: number;
|
|
20
21
|
host?: string;
|
|
22
|
+
socketPath?: string;
|
|
23
|
+
listenEndpoint?: RuntimeListenEndpoint;
|
|
24
|
+
runtimeHost?: RuntimeHost;
|
|
21
25
|
authMiddleware: AuthMiddleware;
|
|
22
26
|
corsOrigins?: string[];
|
|
23
27
|
}
|
|
@@ -26,8 +30,8 @@ export interface ApiServerOptions {
|
|
|
26
30
|
*/
|
|
27
31
|
export declare class ApiServer {
|
|
28
32
|
private readonly logger;
|
|
29
|
-
private readonly
|
|
30
|
-
private readonly
|
|
33
|
+
private readonly runtimeHost;
|
|
34
|
+
private readonly listenEndpoint;
|
|
31
35
|
private readonly authMiddleware;
|
|
32
36
|
private readonly corsOrigins;
|
|
33
37
|
private readonly routes;
|
package/dist/api/ApiServer.js
CHANGED
|
@@ -3,6 +3,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
3
3
|
exports.ApiServer = void 0;
|
|
4
4
|
const node_http_1 = require("node:http");
|
|
5
5
|
const global_logger_factory_1 = require("global-logger-factory");
|
|
6
|
+
const NodeRuntimeHost_1 = require("../runtime/host/node/NodeRuntimeHost");
|
|
6
7
|
/**
|
|
7
8
|
* Standalone API Server
|
|
8
9
|
*/
|
|
@@ -10,8 +11,12 @@ class ApiServer {
|
|
|
10
11
|
constructor(options) {
|
|
11
12
|
this.logger = (0, global_logger_factory_1.getLoggerFor)(this);
|
|
12
13
|
this.routes = [];
|
|
13
|
-
this.
|
|
14
|
-
this.
|
|
14
|
+
this.runtimeHost = options.runtimeHost ?? NodeRuntimeHost_1.nodeRuntimeHost;
|
|
15
|
+
this.listenEndpoint = options.listenEndpoint ?? this.runtimeHost.createListenEndpoint({
|
|
16
|
+
port: options.port,
|
|
17
|
+
host: options.host,
|
|
18
|
+
socketPath: options.socketPath,
|
|
19
|
+
});
|
|
15
20
|
this.authMiddleware = options.authMiddleware;
|
|
16
21
|
this.corsOrigins = options.corsOrigins ?? ['*'];
|
|
17
22
|
}
|
|
@@ -62,11 +67,10 @@ class ApiServer {
|
|
|
62
67
|
}
|
|
63
68
|
});
|
|
64
69
|
});
|
|
65
|
-
this.
|
|
66
|
-
|
|
67
|
-
this.logger.info(`API Server listening on ${this.host}:${this.port}`);
|
|
70
|
+
this.runtimeHost.listen(this.server, this.listenEndpoint).then(() => {
|
|
71
|
+
this.logger.info(`API Server listening on ${this.runtimeHost.formatListenEndpoint(this.listenEndpoint)}`);
|
|
68
72
|
resolve();
|
|
69
|
-
});
|
|
73
|
+
}, reject);
|
|
70
74
|
});
|
|
71
75
|
}
|
|
72
76
|
/**
|
|
@@ -78,15 +82,10 @@ class ApiServer {
|
|
|
78
82
|
resolve();
|
|
79
83
|
return;
|
|
80
84
|
}
|
|
81
|
-
this.
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
else {
|
|
86
|
-
this.logger.info('API Server stopped');
|
|
87
|
-
resolve();
|
|
88
|
-
}
|
|
89
|
-
});
|
|
85
|
+
this.runtimeHost.close(this.server, this.listenEndpoint).then(() => {
|
|
86
|
+
this.logger.info('API Server stopped');
|
|
87
|
+
resolve();
|
|
88
|
+
}, reject);
|
|
90
89
|
});
|
|
91
90
|
}
|
|
92
91
|
/**
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ApiServer.js","sourceRoot":"","sources":["../../src/api/ApiServer.ts"],"names":[],"mappings":"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","sourcesContent":["import { createServer, type Server, type IncomingMessage, type ServerResponse } from 'node:http';\nimport { getLoggerFor } from 'global-logger-factory';\nimport type { AuthMiddleware, AuthenticatedRequest } from './middleware/AuthMiddleware';\n\n/**\n * Route handler function\n */\nexport type RouteHandler = (\n request: AuthenticatedRequest,\n response: ServerResponse,\n params: Record<string, string>,\n) => Promise<void>;\n\n/**\n * Route definition\n */\nexport interface Route {\n method: string;\n pattern: RegExp;\n paramNames: string[];\n handler: RouteHandler;\n /** If true, skip authentication */\n public?: boolean;\n}\n\nexport interface ApiServerOptions {\n port: number;\n host?: string;\n authMiddleware: AuthMiddleware;\n corsOrigins?: string[];\n}\n\n/**\n * Standalone API Server\n */\nexport class ApiServer {\n private readonly logger = getLoggerFor(this);\n private readonly port: number;\n private readonly host: string;\n private readonly authMiddleware: AuthMiddleware;\n private readonly corsOrigins: string[];\n private readonly routes: Route[] = [];\n private server?: Server;\n\n public constructor(options: ApiServerOptions) {\n this.port = options.port;\n this.host = options.host ?? '0.0.0.0';\n this.authMiddleware = options.authMiddleware;\n this.corsOrigins = options.corsOrigins ?? ['*'];\n }\n\n /**\n * Register a route\n */\n public route(\n method: string,\n path: string,\n handler: RouteHandler,\n options?: {\n /** If true, skip authentication for this route */\n public?: boolean;\n },\n ): void {\n const { pattern, paramNames } = this.pathToRegex(path);\n this.routes.push({\n method: method.toUpperCase(),\n pattern,\n paramNames,\n handler,\n public: options?.public,\n });\n this.logger.debug(`Registered route: ${method.toUpperCase()} ${path}${options?.public ? ' (public)' : ''}`);\n }\n\n /**\n * Convenience methods for common HTTP methods\n */\n public get(path: string, handler: RouteHandler, options?: { public?: boolean }): void {\n this.route('GET', path, handler, options);\n }\n\n public post(path: string, handler: RouteHandler, options?: { public?: boolean }): void {\n this.route('POST', path, handler, options);\n }\n\n public put(path: string, handler: RouteHandler, options?: { public?: boolean }): void {\n this.route('PUT', path, handler, options);\n }\n\n public delete(path: string, handler: RouteHandler, options?: { public?: boolean }): void {\n this.route('DELETE', path, handler, options);\n }\n\n public patch(path: string, handler: RouteHandler, options?: { public?: boolean }): void {\n this.route('PATCH', path, handler, options);\n }\n\n /**\n * Start the server\n */\n public async start(): Promise<void> {\n return new Promise((resolve, reject) => {\n this.server = createServer((req, res) => {\n this.handleRequest(req, res).catch((error) => {\n this.logger.error(`Unhandled error: ${error}`);\n if (!res.headersSent) {\n res.statusCode = 500;\n res.setHeader('Content-Type', 'application/json');\n res.end(JSON.stringify({ error: 'Internal Server Error' }));\n }\n });\n });\n\n this.server.on('error', reject);\n\n this.server.listen(this.port, this.host, () => {\n this.logger.info(`API Server listening on ${this.host}:${this.port}`);\n resolve();\n });\n });\n }\n\n /**\n * Stop the server\n */\n public async stop(): Promise<void> {\n return new Promise((resolve, reject) => {\n if (!this.server) {\n resolve();\n return;\n }\n\n this.server.close((error) => {\n if (error) {\n reject(error);\n } else {\n this.logger.info('API Server stopped');\n resolve();\n }\n });\n });\n }\n\n /**\n * Get the underlying HTTP server (for WebSocket upgrade)\n */\n public getHttpServer(): Server | undefined {\n return this.server;\n }\n\n private async handleRequest(request: IncomingMessage, response: ServerResponse): Promise<void> {\n const method = request.method?.toUpperCase() ?? 'GET';\n const url = new URL(request.url ?? '/', `http://${request.headers.host ?? 'localhost'}`);\n const path = url.pathname;\n\n // Handle CORS preflight\n if (method === 'OPTIONS') {\n this.handleCors(request, response);\n response.statusCode = 204;\n response.end();\n return;\n }\n\n // Add CORS headers\n this.handleCors(request, response);\n\n // Find matching route\n const match = this.findRoute(method, path);\n if (!match) {\n response.statusCode = 404;\n response.setHeader('Content-Type', 'application/json');\n response.end(JSON.stringify({ error: 'Not Found' }));\n return;\n }\n\n const { route, params } = match;\n const authRequest = request as AuthenticatedRequest;\n\n // Run auth middleware unless route is public\n if (!route.public) {\n const authOk = await this.authMiddleware.process(authRequest, response);\n if (!authOk) {\n return;\n }\n }\n\n // Execute handler\n try {\n await route.handler(authRequest, response, params);\n } catch (error) {\n this.logger.error(`Route handler error: ${error}`);\n if (!response.headersSent) {\n response.statusCode = 500;\n response.setHeader('Content-Type', 'application/json');\n response.end(JSON.stringify({ error: 'Internal Server Error' }));\n }\n }\n }\n\n private findRoute(method: string, path: string): { route: Route; params: Record<string, string> } | undefined {\n for (const route of this.routes) {\n if (route.method !== method) {\n continue;\n }\n\n const match = route.pattern.exec(path);\n if (match) {\n const params: Record<string, string> = {};\n route.paramNames.forEach((name, index) => {\n params[name] = match[index + 1];\n });\n return { route, params };\n }\n }\n return undefined;\n }\n\n private pathToRegex(path: string): { pattern: RegExp; paramNames: string[] } {\n const paramNames: string[] = [];\n let regexStr = path\n // 先处理通配符 *path 或 * (匹配剩余所有路径)\n .replace(/\\*([a-zA-Z0-9_]*)/g, (_, name) => {\n paramNames.push(name || 'wildcard');\n return '(.*)';\n })\n // 再处理普通参数 :param (只匹配单段)\n .replace(/:([a-zA-Z0-9_]+)/g, (_, name) => {\n paramNames.push(name);\n return '([^/]+)';\n })\n .replace(/\\//g, '\\\\/');\n return {\n pattern: new RegExp(`^${regexStr}$`),\n paramNames,\n };\n }\n\n private handleCors(request: IncomingMessage, response: ServerResponse): void {\n const origin = request.headers.origin;\n\n if (this.corsOrigins.includes('*')) {\n response.setHeader('Access-Control-Allow-Origin', '*');\n } else if (origin && this.corsOrigins.includes(origin)) {\n response.setHeader('Access-Control-Allow-Origin', origin);\n response.setHeader('Vary', 'Origin');\n }\n\n response.setHeader('Access-Control-Allow-Methods', 'GET, POST, PUT, DELETE, PATCH, OPTIONS');\n response.setHeader('Access-Control-Allow-Headers', '*');\n response.setHeader('Access-Control-Max-Age', '86400');\n }\n}\n"]}
|
|
1
|
+
{"version":3,"file":"ApiServer.js","sourceRoot":"","sources":["../../src/api/ApiServer.ts"],"names":[],"mappings":"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","sourcesContent":["import { createServer, type Server, type IncomingMessage, type ServerResponse } from 'node:http';\nimport { getLoggerFor } from 'global-logger-factory';\nimport type { AuthMiddleware, AuthenticatedRequest } from './middleware/AuthMiddleware';\nimport { nodeRuntimeHost } from '../runtime/host/node/NodeRuntimeHost';\nimport type { RuntimeHost, RuntimeListenEndpoint } from '../runtime/host/types';\n\n/**\n * Route handler function\n */\nexport type RouteHandler = (\n request: AuthenticatedRequest,\n response: ServerResponse,\n params: Record<string, string>,\n) => Promise<void>;\n\n/**\n * Route definition\n */\nexport interface Route {\n method: string;\n pattern: RegExp;\n paramNames: string[];\n handler: RouteHandler;\n /** If true, skip authentication */\n public?: boolean;\n}\n\nexport interface ApiServerOptions {\n port?: number;\n host?: string;\n socketPath?: string;\n listenEndpoint?: RuntimeListenEndpoint;\n runtimeHost?: RuntimeHost;\n authMiddleware: AuthMiddleware;\n corsOrigins?: string[];\n}\n\n/**\n * Standalone API Server\n */\nexport class ApiServer {\n private readonly logger = getLoggerFor(this);\n private readonly runtimeHost: RuntimeHost;\n private readonly listenEndpoint: RuntimeListenEndpoint;\n private readonly authMiddleware: AuthMiddleware;\n private readonly corsOrigins: string[];\n private readonly routes: Route[] = [];\n private server?: Server;\n\n public constructor(options: ApiServerOptions) {\n this.runtimeHost = options.runtimeHost ?? nodeRuntimeHost;\n this.listenEndpoint = options.listenEndpoint ?? this.runtimeHost.createListenEndpoint({\n port: options.port,\n host: options.host,\n socketPath: options.socketPath,\n });\n this.authMiddleware = options.authMiddleware;\n this.corsOrigins = options.corsOrigins ?? ['*'];\n }\n\n /**\n * Register a route\n */\n public route(\n method: string,\n path: string,\n handler: RouteHandler,\n options?: {\n /** If true, skip authentication for this route */\n public?: boolean;\n },\n ): void {\n const { pattern, paramNames } = this.pathToRegex(path);\n this.routes.push({\n method: method.toUpperCase(),\n pattern,\n paramNames,\n handler,\n public: options?.public,\n });\n this.logger.debug(`Registered route: ${method.toUpperCase()} ${path}${options?.public ? ' (public)' : ''}`);\n }\n\n /**\n * Convenience methods for common HTTP methods\n */\n public get(path: string, handler: RouteHandler, options?: { public?: boolean }): void {\n this.route('GET', path, handler, options);\n }\n\n public post(path: string, handler: RouteHandler, options?: { public?: boolean }): void {\n this.route('POST', path, handler, options);\n }\n\n public put(path: string, handler: RouteHandler, options?: { public?: boolean }): void {\n this.route('PUT', path, handler, options);\n }\n\n public delete(path: string, handler: RouteHandler, options?: { public?: boolean }): void {\n this.route('DELETE', path, handler, options);\n }\n\n public patch(path: string, handler: RouteHandler, options?: { public?: boolean }): void {\n this.route('PATCH', path, handler, options);\n }\n\n /**\n * Start the server\n */\n public async start(): Promise<void> {\n return new Promise((resolve, reject) => {\n this.server = createServer((req, res) => {\n this.handleRequest(req, res).catch((error) => {\n this.logger.error(`Unhandled error: ${error}`);\n if (!res.headersSent) {\n res.statusCode = 500;\n res.setHeader('Content-Type', 'application/json');\n res.end(JSON.stringify({ error: 'Internal Server Error' }));\n }\n });\n });\n\n this.runtimeHost.listen(this.server, this.listenEndpoint).then(() => {\n this.logger.info(`API Server listening on ${this.runtimeHost.formatListenEndpoint(this.listenEndpoint)}`);\n resolve();\n }, reject);\n });\n }\n\n /**\n * Stop the server\n */\n public async stop(): Promise<void> {\n return new Promise((resolve, reject) => {\n if (!this.server) {\n resolve();\n return;\n }\n\n this.runtimeHost.close(this.server, this.listenEndpoint).then(() => {\n this.logger.info('API Server stopped');\n resolve();\n }, reject);\n });\n }\n\n /**\n * Get the underlying HTTP server (for WebSocket upgrade)\n */\n public getHttpServer(): Server | undefined {\n return this.server;\n }\n\n private async handleRequest(request: IncomingMessage, response: ServerResponse): Promise<void> {\n const method = request.method?.toUpperCase() ?? 'GET';\n const url = new URL(request.url ?? '/', `http://${request.headers.host ?? 'localhost'}`);\n const path = url.pathname;\n\n // Handle CORS preflight\n if (method === 'OPTIONS') {\n this.handleCors(request, response);\n response.statusCode = 204;\n response.end();\n return;\n }\n\n // Add CORS headers\n this.handleCors(request, response);\n\n // Find matching route\n const match = this.findRoute(method, path);\n if (!match) {\n response.statusCode = 404;\n response.setHeader('Content-Type', 'application/json');\n response.end(JSON.stringify({ error: 'Not Found' }));\n return;\n }\n\n const { route, params } = match;\n const authRequest = request as AuthenticatedRequest;\n\n // Run auth middleware unless route is public\n if (!route.public) {\n const authOk = await this.authMiddleware.process(authRequest, response);\n if (!authOk) {\n return;\n }\n }\n\n // Execute handler\n try {\n await route.handler(authRequest, response, params);\n } catch (error) {\n this.logger.error(`Route handler error: ${error}`);\n if (!response.headersSent) {\n response.statusCode = 500;\n response.setHeader('Content-Type', 'application/json');\n response.end(JSON.stringify({ error: 'Internal Server Error' }));\n }\n }\n }\n\n private findRoute(method: string, path: string): { route: Route; params: Record<string, string> } | undefined {\n for (const route of this.routes) {\n if (route.method !== method) {\n continue;\n }\n\n const match = route.pattern.exec(path);\n if (match) {\n const params: Record<string, string> = {};\n route.paramNames.forEach((name, index) => {\n params[name] = match[index + 1];\n });\n return { route, params };\n }\n }\n return undefined;\n }\n\n private pathToRegex(path: string): { pattern: RegExp; paramNames: string[] } {\n const paramNames: string[] = [];\n let regexStr = path\n // 先处理通配符 *path 或 * (匹配剩余所有路径)\n .replace(/\\*([a-zA-Z0-9_]*)/g, (_, name) => {\n paramNames.push(name || 'wildcard');\n return '(.*)';\n })\n // 再处理普通参数 :param (只匹配单段)\n .replace(/:([a-zA-Z0-9_]+)/g, (_, name) => {\n paramNames.push(name);\n return '([^/]+)';\n })\n .replace(/\\//g, '\\\\/');\n return {\n pattern: new RegExp(`^${regexStr}$`),\n paramNames,\n };\n }\n\n private handleCors(request: IncomingMessage, response: ServerResponse): void {\n const origin = request.headers.origin;\n\n if (this.corsOrigins.includes('*')) {\n response.setHeader('Access-Control-Allow-Origin', '*');\n } else if (origin && this.corsOrigins.includes(origin)) {\n response.setHeader('Access-Control-Allow-Origin', origin);\n response.setHeader('Vary', 'Origin');\n }\n\n response.setHeader('Access-Control-Allow-Methods', 'GET, POST, PUT, DELETE, PATCH, OPTIONS');\n response.setHeader('Access-Control-Allow-Headers', '*');\n response.setHeader('Access-Control-Max-Age', '86400');\n }\n}\n"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"AuthContext.js","sourceRoot":"","sources":["../../../src/api/auth/AuthContext.ts"],"names":[],"mappings":";AAAA;;;;;;;GAOG;;
|
|
1
|
+
{"version":3,"file":"AuthContext.js","sourceRoot":"","sources":["../../../src/api/auth/AuthContext.ts"],"names":[],"mappings":";AAAA;;;;;;;GAOG;;AA+BH,kCAEC;AAED,gCAEC;AAKD,4BAEC;AAKD,wCAEC;AAKD,oCAQC;AAED,8BAEC;AAED,sCAEC;AAKD,4BAEC;AAhDD,SAAgB,WAAW,CAAC,GAAgB;IAC1C,OAAO,GAAG,CAAC,IAAI,KAAK,OAAO,CAAC;AAC9B,CAAC;AAED,SAAgB,UAAU,CAAC,GAAgB;IACzC,OAAO,GAAG,CAAC,IAAI,KAAK,MAAM,CAAC;AAC7B,CAAC;AAED;;GAEG;AACH,SAAgB,QAAQ,CAAC,GAAgB;IACvC,OAAO,GAAG,CAAC,IAAI,KAAK,OAAO,CAAC,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,SAAS,CAAC;AACtD,CAAC;AAED;;GAEG;AACH,SAAgB,cAAc,CAAC,GAAgB;IAC7C,OAAO,GAAG,CAAC,IAAI,KAAK,OAAO,CAAC,CAAC,CAAC,GAAG,CAAC,WAAW,CAAC,CAAC,CAAC,SAAS,CAAC;AAC5D,CAAC;AAED;;GAEG;AACH,SAAgB,YAAY,CAAC,GAAgB;IAC3C,IAAI,GAAG,CAAC,IAAI,KAAK,OAAO,EAAE,CAAC;QACzB,OAAO,GAAG,CAAC,SAAS,CAAC;IACvB,CAAC;IACD,IAAI,GAAG,CAAC,IAAI,KAAK,MAAM,EAAE,CAAC;QACxB,OAAO,GAAG,CAAC,SAAS,CAAC;IACvB,CAAC;IACD,OAAO,SAAS,CAAC;AACnB,CAAC;AAED,SAAgB,SAAS,CAAC,GAAgB;IACxC,OAAO,GAAG,CAAC,IAAI,KAAK,MAAM,CAAC,CAAC,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,SAAS,CAAC;AACtD,CAAC;AAED,SAAgB,aAAa,CAAC,GAAgB;IAC5C,OAAO,GAAG,CAAC,IAAI,KAAK,SAAS,CAAC;AAChC,CAAC;AAED;;GAEG;AACH,SAAgB,QAAQ,CAAC,GAAgB,EAAE,KAAa;IACtD,OAAO,GAAG,CAAC,IAAI,KAAK,SAAS,IAAI,GAAG,CAAC,MAAM,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;AAC9D,CAAC","sourcesContent":["/**\n * Authentication context representing the authenticated caller\n * \n * Authenticated caller context.\n * - Solid Token: user provides Bearer or DPoP token\n * - API Key: third-party provides client_id, API Server exchanges for token\n * - Node Token: edge node provides node API key\n */\n\nexport interface SolidAuthContext {\n type: 'solid';\n webId: string;\n accountId?: string;\n clientId?: string;\n clientSecret?: string; // For client credentials auth\n displayName?: string;\n accessToken?: string;\n tokenType?: 'Bearer' | 'DPoP';\n dpopProof?: string;\n /** Whether this was authenticated via API Key (client credentials) */\n viaApiKey?: boolean;\n}\n\nexport interface NodeAuthContext {\n type: 'node';\n nodeId: string;\n accountId?: string;\n}\n\nexport interface ServiceAuthContext {\n type: 'service';\n serviceType: 'local' | 'business' | 'cloud' | 'compute';\n serviceId: string;\n scopes: string[];\n}\n\nexport type AuthContext = SolidAuthContext | NodeAuthContext | ServiceAuthContext;\n\nexport function isSolidAuth(ctx: AuthContext): ctx is SolidAuthContext {\n return ctx.type === 'solid';\n}\n\nexport function isNodeAuth(ctx: AuthContext): ctx is NodeAuthContext {\n return ctx.type === 'node';\n}\n\n/**\n * Get webId from auth context\n */\nexport function getWebId(ctx: AuthContext): string | undefined {\n return ctx.type === 'solid' ? ctx.webId : undefined;\n}\n\n/**\n * Get display name from auth context\n */\nexport function getDisplayName(ctx: AuthContext): string | undefined {\n return ctx.type === 'solid' ? ctx.displayName : undefined;\n}\n\n/**\n * Get accountId from auth context (if available)\n */\nexport function getAccountId(ctx: AuthContext): string | undefined {\n if (ctx.type === 'solid') {\n return ctx.accountId;\n }\n if (ctx.type === 'node') {\n return ctx.accountId;\n }\n return undefined;\n}\n\nexport function getNodeId(ctx: AuthContext): string | undefined {\n return ctx.type === 'node' ? ctx.nodeId : undefined;\n}\n\nexport function isServiceAuth(ctx: AuthContext): ctx is ServiceAuthContext {\n return ctx.type === 'service';\n}\n\n/**\n * Check if a service auth context has the required scope\n */\nexport function hasScope(ctx: AuthContext, scope: string): boolean {\n return ctx.type === 'service' && ctx.scopes.includes(scope);\n}\n"]}
|
|
@@ -6,10 +6,11 @@ import type { Authenticator, AuthResult } from './Authenticator';
|
|
|
6
6
|
export interface TokenCache {
|
|
7
7
|
get(clientId: string): Promise<{
|
|
8
8
|
token: string;
|
|
9
|
+
tokenType?: 'Bearer' | 'DPoP';
|
|
9
10
|
webId: string;
|
|
10
11
|
expiresAt: Date;
|
|
11
12
|
} | undefined>;
|
|
12
|
-
set(clientId: string, token: string, webId: string, expiresAt: Date): Promise<void>;
|
|
13
|
+
set(clientId: string, token: string, webId: string, expiresAt: Date, tokenType?: 'Bearer' | 'DPoP'): Promise<void>;
|
|
13
14
|
}
|
|
14
15
|
export interface ClientCredentialsAuthenticatorOptions {
|
|
15
16
|
tokenCache?: TokenCache;
|
|
@@ -83,21 +83,23 @@ class ClientCredentialsAuthenticator {
|
|
|
83
83
|
accountId: cached.webId,
|
|
84
84
|
clientId,
|
|
85
85
|
clientSecret,
|
|
86
|
+
accessToken: cached.token,
|
|
87
|
+
tokenType: cached.tokenType ?? 'Bearer',
|
|
86
88
|
viaApiKey: true,
|
|
87
89
|
},
|
|
88
90
|
};
|
|
89
91
|
}
|
|
90
92
|
}
|
|
91
93
|
// Exchange for token at CSS endpoint
|
|
92
|
-
|
|
94
|
+
this.logger.debug(`Exchanging client credentials at ${this.tokenEndpoint}`);
|
|
93
95
|
const tokenResult = await this.exchangeForToken(clientId, clientSecret);
|
|
94
|
-
|
|
95
|
-
if (!tokenResult.success || !tokenResult.webId) {
|
|
96
|
+
this.logger.debug(`Token exchange result: success=${tokenResult.success}, webId=${tokenResult.webId}, error=${tokenResult.error}`);
|
|
97
|
+
if (!tokenResult.success || !tokenResult.webId || !tokenResult.token) {
|
|
96
98
|
return { success: false, error: tokenResult.error || 'Token exchange failed' };
|
|
97
99
|
}
|
|
98
100
|
// Cache the token
|
|
99
101
|
if (this.tokenCache && tokenResult.expiresAt) {
|
|
100
|
-
await this.tokenCache.set(clientId, tokenResult.token, tokenResult.webId, tokenResult.expiresAt);
|
|
102
|
+
await this.tokenCache.set(clientId, tokenResult.token, tokenResult.webId, tokenResult.expiresAt, tokenResult.tokenType);
|
|
101
103
|
}
|
|
102
104
|
const context = {
|
|
103
105
|
type: 'solid',
|
|
@@ -105,13 +107,14 @@ class ClientCredentialsAuthenticator {
|
|
|
105
107
|
accountId: tokenResult.webId,
|
|
106
108
|
clientId,
|
|
107
109
|
clientSecret,
|
|
110
|
+
accessToken: tokenResult.token,
|
|
111
|
+
tokenType: tokenResult.tokenType ?? 'Bearer',
|
|
108
112
|
viaApiKey: true,
|
|
109
113
|
};
|
|
110
114
|
this.logger.debug(`Authenticated API Key for webId: ${tokenResult.webId}`);
|
|
111
115
|
return { success: true, context };
|
|
112
116
|
}
|
|
113
117
|
catch (error) {
|
|
114
|
-
console.error(`[ClientCredentialsAuthenticator] API Key authentication error:`, error);
|
|
115
118
|
this.logger.error(`API Key authentication error: ${error}`);
|
|
116
119
|
return { success: false, error: 'Authentication failed' };
|
|
117
120
|
}
|
|
@@ -158,6 +161,7 @@ class ClientCredentialsAuthenticator {
|
|
|
158
161
|
return {
|
|
159
162
|
success: true,
|
|
160
163
|
token: data.access_token,
|
|
164
|
+
tokenType: data.token_type?.toUpperCase() === 'DPOP' ? 'DPoP' : 'Bearer',
|
|
161
165
|
webId,
|
|
162
166
|
expiresAt,
|
|
163
167
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ClientCredentialsAuthenticator.js","sourceRoot":"","sources":["../../../src/api/auth/ClientCredentialsAuthenticator.ts"],"names":[],"mappings":"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","sourcesContent":["import type { IncomingMessage } from 'node:http';\nimport { getLoggerFor } from 'global-logger-factory';\nimport type { Authenticator, AuthResult } from './Authenticator';\nimport type { SolidAuthContext } from './AuthContext';\n\n/**\n * Interface for token cache\n */\nexport interface TokenCache {\n get(clientId: string): Promise<{ token: string; webId: string; expiresAt: Date } | undefined>;\n set(clientId: string, token: string, webId: string, expiresAt: Date): Promise<void>;\n}\n\nexport interface ClientCredentialsAuthenticatorOptions {\n tokenCache?: TokenCache;\n /**\n * CSS token endpoint URL\n */\n tokenEndpoint: string;\n}\n\n/**\n * Authenticator for API Keys in sk-xxx format.\n * \n * Format: sk-base64(client_id:client_secret)\n * \n * This authenticator:\n * 1. Decodes the API Key to get client_id and client_secret\n * 2. Exchanges them for a Solid Token via CSS token endpoint\n * 3. Extracts webId from the token response\n * 4. Returns a SolidAuthContext\n */\nexport class ClientCredentialsAuthenticator implements Authenticator {\n private readonly logger = getLoggerFor(this);\n private readonly tokenCache?: TokenCache;\n private readonly tokenEndpoint: string;\n\n public constructor(options: ClientCredentialsAuthenticatorOptions) {\n this.tokenCache = options.tokenCache;\n this.tokenEndpoint = options.tokenEndpoint;\n }\n\n public canAuthenticate(request: IncomingMessage): boolean {\n const auth = request.headers.authorization;\n if (!auth?.startsWith('Bearer ')) {\n return false;\n }\n // If there's a DPoP header, it's a Solid Token, not an API Key\n if (request.headers.dpop) {\n return false;\n }\n const token = auth.slice(7).trim();\n if (!token) {\n return false;\n }\n // Only handle sk-xxx format or non-JWT tokens\n return token.startsWith('sk-') || !this.isJwt(token);\n }\n\n public async authenticate(request: IncomingMessage): Promise<AuthResult> {\n const authorization = request.headers.authorization;\n if (!authorization?.startsWith('Bearer ')) {\n return { success: false, error: 'Missing Bearer token' };\n }\n\n const token = authorization.slice(7).trim();\n if (!token) {\n return { success: false, error: 'Empty API Key' };\n }\n\n try {\n let clientId: string;\n let clientSecret: string;\n\n // Parse sk-xxx format (base64 encoded client_id:client_secret)\n if (token.startsWith('sk-')) {\n const base64 = token.slice(3);\n try {\n const decoded = Buffer.from(base64, 'base64').toString('utf-8');\n const colonIndex = decoded.indexOf(':');\n if (colonIndex === -1) {\n return { success: false, error: 'Invalid API Key format: missing colon separator' };\n }\n clientId = decoded.slice(0, colonIndex);\n clientSecret = decoded.slice(colonIndex + 1);\n \n if (!clientId || !clientSecret) {\n return { success: false, error: 'Invalid API Key format: empty client_id or client_secret' };\n }\n } catch {\n return { success: false, error: 'Invalid API Key encoding' };\n }\n } else {\n // Non sk- format not supported without database lookup\n return { success: false, error: 'Invalid API Key format: must start with sk-' };\n }\n\n // Check cache first\n if (this.tokenCache) {\n const cached = await this.tokenCache.get(clientId);\n if (cached && cached.expiresAt > new Date()) {\n this.logger.debug(`Using cached token for ${clientId.slice(0, 8)}...`);\n return {\n success: true,\n context: {\n type: 'solid',\n webId: cached.webId,\n accountId: cached.webId,\n clientId,\n clientSecret,\n viaApiKey: true,\n },\n };\n }\n }\n\n // Exchange for token at CSS endpoint\n console.log(`[ClientCredentialsAuthenticator] Exchanging credentials at ${this.tokenEndpoint}`);\n const tokenResult = await this.exchangeForToken(clientId, clientSecret);\n console.log(`[ClientCredentialsAuthenticator] Token exchange result: success=${tokenResult.success}, webId=${tokenResult.webId}, error=${tokenResult.error}`);\n \n if (!tokenResult.success || !tokenResult.webId) {\n return { success: false, error: tokenResult.error || 'Token exchange failed' };\n }\n\n // Cache the token\n if (this.tokenCache && tokenResult.expiresAt) {\n await this.tokenCache.set(clientId, tokenResult.token!, tokenResult.webId, tokenResult.expiresAt);\n }\n\n const context: SolidAuthContext = {\n type: 'solid',\n webId: tokenResult.webId,\n accountId: tokenResult.webId,\n clientId,\n clientSecret,\n viaApiKey: true,\n };\n\n this.logger.debug(`Authenticated API Key for webId: ${tokenResult.webId}`);\n return { success: true, context };\n } catch (error) {\n console.error(`[ClientCredentialsAuthenticator] API Key authentication error:`, error);\n this.logger.error(`API Key authentication error: ${error}`);\n return { success: false, error: 'Authentication failed' };\n }\n }\n\n private async exchangeForToken(clientId: string, clientSecret: string): Promise<{\n success: boolean;\n token?: string;\n webId?: string;\n expiresAt?: Date;\n error?: string;\n }> {\n // 开发模式:跳过 CSS token exchange\n if (process.env.NODE_ENV === 'development') {\n this.logger.warn(`[DEV] Skipping token exchange for ${clientId.slice(0, 8)}...`);\n return {\n success: true,\n token: `dev-token-${clientId}`,\n expiresAt: new Date(Date.now() + 3600000),\n };\n }\n\n try {\n const response = await fetch(this.tokenEndpoint, {\n method: 'POST',\n headers: {\n 'Content-Type': 'application/x-www-form-urlencoded',\n },\n body: new URLSearchParams({\n grant_type: 'client_credentials',\n client_id: clientId,\n client_secret: clientSecret,\n }),\n });\n\n if (!response.ok) {\n const error = await response.text();\n this.logger.warn(`Token exchange failed: ${response.status} ${error}`);\n return { success: false, error: `Token exchange failed: ${response.status}` };\n }\n\n const data = await response.json() as {\n access_token: string;\n expires_in?: number;\n token_type: string;\n webid?: string; // CSS returns webid in response\n };\n\n // Extract webId from token response or decode from JWT\n let webId = data.webid;\n if (!webId && data.access_token) {\n webId = this.extractWebIdFromJwt(data.access_token);\n }\n\n if (!webId) {\n return { success: false, error: 'Could not determine webId from token response' };\n }\n\n const expiresAt = data.expires_in\n ? new Date(Date.now() + data.expires_in * 1000 - 60000) // 1 min buffer\n : new Date(Date.now() + 3600000); // Default 1 hour\n\n return {\n success: true,\n token: data.access_token,\n webId,\n expiresAt,\n };\n } catch (error) {\n this.logger.error(`Token exchange error: ${error}`);\n return { success: false, error: 'Token exchange failed' };\n }\n }\n\n /**\n * Extract webId from JWT access token\n */\n private extractWebIdFromJwt(jwt: string): string | undefined {\n try {\n const parts = jwt.split('.');\n if (parts.length !== 3) {\n return undefined;\n }\n const payload = JSON.parse(Buffer.from(parts[1], 'base64').toString('utf-8'));\n return payload.webid || payload.webId || payload.sub;\n } catch {\n return undefined;\n }\n }\n\n private isJwt(token: string): boolean {\n return /^[A-Za-z0-9_-]+\\.[A-Za-z0-9_-]+\\.[A-Za-z0-9_-]+$/.test(token);\n }\n}\n\n// Re-export for backwards compatibility (these are no longer needed but keep for other code)\nexport interface ClientCredentialsRecord {\n clientId: string;\n webId: string;\n accountId: string;\n displayName?: string;\n createdAt: Date;\n}\n\nexport interface ClientCredentialsStore {\n findByClientId(clientId: string): Promise<ClientCredentialsRecord | undefined>;\n}\n"]}
|
|
1
|
+
{"version":3,"file":"ClientCredentialsAuthenticator.js","sourceRoot":"","sources":["../../../src/api/auth/ClientCredentialsAuthenticator.ts"],"names":[],"mappings":";;;AACA,iEAAqD;AA+BrD;;;;;;;;;;GAUG;AACH,MAAa,8BAA8B;IAKzC,YAAmB,OAA8C;QAJhD,WAAM,GAAG,IAAA,oCAAY,EAAC,IAAI,CAAC,CAAC;QAK3C,IAAI,CAAC,UAAU,GAAG,OAAO,CAAC,UAAU,CAAC;QACrC,IAAI,CAAC,aAAa,GAAG,OAAO,CAAC,aAAa,CAAC;IAC7C,CAAC;IAEM,eAAe,CAAC,OAAwB;QAC7C,MAAM,IAAI,GAAG,OAAO,CAAC,OAAO,CAAC,aAAa,CAAC;QAC3C,IAAI,CAAC,IAAI,EAAE,UAAU,CAAC,SAAS,CAAC,EAAE,CAAC;YACjC,OAAO,KAAK,CAAC;QACf,CAAC;QACD,+DAA+D;QAC/D,IAAI,OAAO,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC;YACzB,OAAO,KAAK,CAAC;QACf,CAAC;QACD,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;QACnC,IAAI,CAAC,KAAK,EAAE,CAAC;YACX,OAAO,KAAK,CAAC;QACf,CAAC;QACD,8CAA8C;QAC9C,OAAO,KAAK,CAAC,UAAU,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;IACvD,CAAC;IAEM,KAAK,CAAC,YAAY,CAAC,OAAwB;QAChD,MAAM,aAAa,GAAG,OAAO,CAAC,OAAO,CAAC,aAAa,CAAC;QACpD,IAAI,CAAC,aAAa,EAAE,UAAU,CAAC,SAAS,CAAC,EAAE,CAAC;YAC1C,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,sBAAsB,EAAE,CAAC;QAC3D,CAAC;QAED,MAAM,KAAK,GAAG,aAAa,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;QAC5C,IAAI,CAAC,KAAK,EAAE,CAAC;YACX,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,eAAe,EAAE,CAAC;QACpD,CAAC;QAED,IAAI,CAAC;YACH,IAAI,QAAgB,CAAC;YACrB,IAAI,YAAoB,CAAC;YAEzB,+DAA+D;YAC/D,IAAI,KAAK,CAAC,UAAU,CAAC,KAAK,CAAC,EAAE,CAAC;gBAC5B,MAAM,MAAM,GAAG,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;gBAC9B,IAAI,CAAC;oBACH,MAAM,OAAO,GAAG,MAAM,CAAC,IAAI,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC;oBAChE,MAAM,UAAU,GAAG,OAAO,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;oBACxC,IAAI,UAAU,KAAK,CAAC,CAAC,EAAE,CAAC;wBACtB,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,iDAAiD,EAAE,CAAC;oBACtF,CAAC;oBACD,QAAQ,GAAG,OAAO,CAAC,KAAK,CAAC,CAAC,EAAE,UAAU,CAAC,CAAC;oBACxC,YAAY,GAAG,OAAO,CAAC,KAAK,CAAC,UAAU,GAAG,CAAC,CAAC,CAAC;oBAE7C,IAAI,CAAC,QAAQ,IAAI,CAAC,YAAY,EAAE,CAAC;wBAC/B,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,0DAA0D,EAAE,CAAC;oBAC/F,CAAC;gBACH,CAAC;gBAAC,MAAM,CAAC;oBACP,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,0BAA0B,EAAE,CAAC;gBAC/D,CAAC;YACH,CAAC;iBAAM,CAAC;gBACN,uDAAuD;gBACvD,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,6CAA6C,EAAE,CAAC;YAClF,CAAC;YAED,oBAAoB;YACpB,IAAI,IAAI,CAAC,UAAU,EAAE,CAAC;gBACpB,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;gBACnD,IAAI,MAAM,IAAI,MAAM,CAAC,SAAS,GAAG,IAAI,IAAI,EAAE,EAAE,CAAC;oBAC5C,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,0BAA0B,QAAQ,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC;oBACvE,OAAO;wBACL,OAAO,EAAE,IAAI;wBACb,OAAO,EAAE;4BACP,IAAI,EAAE,OAAO;4BACb,KAAK,EAAE,MAAM,CAAC,KAAK;4BACnB,SAAS,EAAE,MAAM,CAAC,KAAK;4BACvB,QAAQ;4BACR,YAAY;4BACZ,WAAW,EAAE,MAAM,CAAC,KAAK;4BACzB,SAAS,EAAE,MAAM,CAAC,SAAS,IAAI,QAAQ;4BACvC,SAAS,EAAE,IAAI;yBAChB;qBACF,CAAC;gBACJ,CAAC;YACH,CAAC;YAED,qCAAqC;YACrC,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,oCAAoC,IAAI,CAAC,aAAa,EAAE,CAAC,CAAC;YAC5E,MAAM,WAAW,GAAG,MAAM,IAAI,CAAC,gBAAgB,CAAC,QAAQ,EAAE,YAAY,CAAC,CAAC;YACxE,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,kCAAkC,WAAW,CAAC,OAAO,WAAW,WAAW,CAAC,KAAK,WAAW,WAAW,CAAC,KAAK,EAAE,CAAC,CAAC;YAEnI,IAAI,CAAC,WAAW,CAAC,OAAO,IAAI,CAAC,WAAW,CAAC,KAAK,IAAI,CAAC,WAAW,CAAC,KAAK,EAAE,CAAC;gBACrE,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,WAAW,CAAC,KAAK,IAAI,uBAAuB,EAAE,CAAC;YACjF,CAAC;YAED,kBAAkB;YAClB,IAAI,IAAI,CAAC,UAAU,IAAI,WAAW,CAAC,SAAS,EAAE,CAAC;gBAC7C,MAAM,IAAI,CAAC,UAAU,CAAC,GAAG,CACvB,QAAQ,EACR,WAAW,CAAC,KAAM,EAClB,WAAW,CAAC,KAAK,EACjB,WAAW,CAAC,SAAS,EACrB,WAAW,CAAC,SAAS,CACtB,CAAC;YACJ,CAAC;YAED,MAAM,OAAO,GAAqB;gBAChC,IAAI,EAAE,OAAO;gBACb,KAAK,EAAE,WAAW,CAAC,KAAK;gBACxB,SAAS,EAAE,WAAW,CAAC,KAAK;gBAC5B,QAAQ;gBACR,YAAY;gBACZ,WAAW,EAAE,WAAW,CAAC,KAAK;gBAC9B,SAAS,EAAE,WAAW,CAAC,SAAS,IAAI,QAAQ;gBAC5C,SAAS,EAAE,IAAI;aAChB,CAAC;YAEF,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,oCAAoC,WAAW,CAAC,KAAK,EAAE,CAAC,CAAC;YAC3E,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,CAAC;QACpC,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,iCAAiC,KAAK,EAAE,CAAC,CAAC;YAC5D,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,uBAAuB,EAAE,CAAC;QAC5D,CAAC;IACH,CAAC;IAEO,KAAK,CAAC,gBAAgB,CAAC,QAAgB,EAAE,YAAoB;QAQnE,6BAA6B;QAC7B,IAAI,OAAO,CAAC,GAAG,CAAC,QAAQ,KAAK,aAAa,EAAE,CAAC;YAC3C,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,qCAAqC,QAAQ,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC;YACjF,OAAO;gBACL,OAAO,EAAE,IAAI;gBACb,KAAK,EAAE,aAAa,QAAQ,EAAE;gBAC9B,SAAS,EAAE,IAAI,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,OAAO,CAAC;aAC1C,CAAC;QACJ,CAAC;QAED,IAAI,CAAC;YACH,MAAM,QAAQ,GAAG,MAAM,KAAK,CAAC,IAAI,CAAC,aAAa,EAAE;gBAC/C,MAAM,EAAE,MAAM;gBACd,OAAO,EAAE;oBACP,cAAc,EAAE,mCAAmC;iBACpD;gBACD,IAAI,EAAE,IAAI,eAAe,CAAC;oBACxB,UAAU,EAAE,oBAAoB;oBAChC,SAAS,EAAE,QAAQ;oBACnB,aAAa,EAAE,YAAY;iBAC5B,CAAC;aACH,CAAC,CAAC;YAEH,IAAI,CAAC,QAAQ,CAAC,EAAE,EAAE,CAAC;gBACjB,MAAM,KAAK,GAAG,MAAM,QAAQ,CAAC,IAAI,EAAE,CAAC;gBACpC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,0BAA0B,QAAQ,CAAC,MAAM,IAAI,KAAK,EAAE,CAAC,CAAC;gBACvE,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,0BAA0B,QAAQ,CAAC,MAAM,EAAE,EAAE,CAAC;YAChF,CAAC;YAED,MAAM,IAAI,GAAG,MAAM,QAAQ,CAAC,IAAI,EAK/B,CAAC;YAEF,uDAAuD;YACvD,IAAI,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC;YACvB,IAAI,CAAC,KAAK,IAAI,IAAI,CAAC,YAAY,EAAE,CAAC;gBAChC,KAAK,GAAG,IAAI,CAAC,mBAAmB,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;YACtD,CAAC;YAED,IAAI,CAAC,KAAK,EAAE,CAAC;gBACX,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,+CAA+C,EAAE,CAAC;YACpF,CAAC;YAED,MAAM,SAAS,GAAG,IAAI,CAAC,UAAU;gBAC/B,CAAC,CAAC,IAAI,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,IAAI,CAAC,UAAU,GAAG,IAAI,GAAG,KAAK,CAAC,CAAC,eAAe;gBACvE,CAAC,CAAC,IAAI,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,OAAO,CAAC,CAAC,CAAC,iBAAiB;YAErD,OAAO;gBACL,OAAO,EAAE,IAAI;gBACb,KAAK,EAAE,IAAI,CAAC,YAAY;gBACxB,SAAS,EAAE,IAAI,CAAC,UAAU,EAAE,WAAW,EAAE,KAAK,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,QAAQ;gBACxE,KAAK;gBACL,SAAS;aACV,CAAC;QACJ,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,yBAAyB,KAAK,EAAE,CAAC,CAAC;YACpD,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,uBAAuB,EAAE,CAAC;QAC5D,CAAC;IACH,CAAC;IAED;;OAEG;IACK,mBAAmB,CAAC,GAAW;QACrC,IAAI,CAAC;YACH,MAAM,KAAK,GAAG,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;YAC7B,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;gBACvB,OAAO,SAAS,CAAC;YACnB,CAAC;YACD,MAAM,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,QAAQ,CAAC,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC,CAAC;YAC9E,OAAO,OAAO,CAAC,KAAK,IAAI,OAAO,CAAC,KAAK,IAAI,OAAO,CAAC,GAAG,CAAC;QACvD,CAAC;QAAC,MAAM,CAAC;YACP,OAAO,SAAS,CAAC;QACnB,CAAC;IACH,CAAC;IAEO,KAAK,CAAC,KAAa;QACzB,OAAO,kDAAkD,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IACxE,CAAC;CACF;AAvND,wEAuNC","sourcesContent":["import type { IncomingMessage } from 'node:http';\nimport { getLoggerFor } from 'global-logger-factory';\nimport type { Authenticator, AuthResult } from './Authenticator';\nimport type { SolidAuthContext } from './AuthContext';\n\n/**\n * Interface for token cache\n */\nexport interface TokenCache {\n get(clientId: string): Promise<{\n token: string;\n tokenType?: 'Bearer' | 'DPoP';\n webId: string;\n expiresAt: Date;\n } | undefined>;\n set(\n clientId: string,\n token: string,\n webId: string,\n expiresAt: Date,\n tokenType?: 'Bearer' | 'DPoP',\n ): Promise<void>;\n}\n\nexport interface ClientCredentialsAuthenticatorOptions {\n tokenCache?: TokenCache;\n /**\n * CSS token endpoint URL\n */\n tokenEndpoint: string;\n}\n\n/**\n * Authenticator for API Keys in sk-xxx format.\n * \n * Format: sk-base64(client_id:client_secret)\n * \n * This authenticator:\n * 1. Decodes the API Key to get client_id and client_secret\n * 2. Exchanges them for a Solid Token via CSS token endpoint\n * 3. Extracts webId from the token response\n * 4. Returns a SolidAuthContext\n */\nexport class ClientCredentialsAuthenticator implements Authenticator {\n private readonly logger = getLoggerFor(this);\n private readonly tokenCache?: TokenCache;\n private readonly tokenEndpoint: string;\n\n public constructor(options: ClientCredentialsAuthenticatorOptions) {\n this.tokenCache = options.tokenCache;\n this.tokenEndpoint = options.tokenEndpoint;\n }\n\n public canAuthenticate(request: IncomingMessage): boolean {\n const auth = request.headers.authorization;\n if (!auth?.startsWith('Bearer ')) {\n return false;\n }\n // If there's a DPoP header, it's a Solid Token, not an API Key\n if (request.headers.dpop) {\n return false;\n }\n const token = auth.slice(7).trim();\n if (!token) {\n return false;\n }\n // Only handle sk-xxx format or non-JWT tokens\n return token.startsWith('sk-') || !this.isJwt(token);\n }\n\n public async authenticate(request: IncomingMessage): Promise<AuthResult> {\n const authorization = request.headers.authorization;\n if (!authorization?.startsWith('Bearer ')) {\n return { success: false, error: 'Missing Bearer token' };\n }\n\n const token = authorization.slice(7).trim();\n if (!token) {\n return { success: false, error: 'Empty API Key' };\n }\n\n try {\n let clientId: string;\n let clientSecret: string;\n\n // Parse sk-xxx format (base64 encoded client_id:client_secret)\n if (token.startsWith('sk-')) {\n const base64 = token.slice(3);\n try {\n const decoded = Buffer.from(base64, 'base64').toString('utf-8');\n const colonIndex = decoded.indexOf(':');\n if (colonIndex === -1) {\n return { success: false, error: 'Invalid API Key format: missing colon separator' };\n }\n clientId = decoded.slice(0, colonIndex);\n clientSecret = decoded.slice(colonIndex + 1);\n \n if (!clientId || !clientSecret) {\n return { success: false, error: 'Invalid API Key format: empty client_id or client_secret' };\n }\n } catch {\n return { success: false, error: 'Invalid API Key encoding' };\n }\n } else {\n // Non sk- format not supported without database lookup\n return { success: false, error: 'Invalid API Key format: must start with sk-' };\n }\n\n // Check cache first\n if (this.tokenCache) {\n const cached = await this.tokenCache.get(clientId);\n if (cached && cached.expiresAt > new Date()) {\n this.logger.debug(`Using cached token for ${clientId.slice(0, 8)}...`);\n return {\n success: true,\n context: {\n type: 'solid',\n webId: cached.webId,\n accountId: cached.webId,\n clientId,\n clientSecret,\n accessToken: cached.token,\n tokenType: cached.tokenType ?? 'Bearer',\n viaApiKey: true,\n },\n };\n }\n }\n\n // Exchange for token at CSS endpoint\n this.logger.debug(`Exchanging client credentials at ${this.tokenEndpoint}`);\n const tokenResult = await this.exchangeForToken(clientId, clientSecret);\n this.logger.debug(`Token exchange result: success=${tokenResult.success}, webId=${tokenResult.webId}, error=${tokenResult.error}`);\n \n if (!tokenResult.success || !tokenResult.webId || !tokenResult.token) {\n return { success: false, error: tokenResult.error || 'Token exchange failed' };\n }\n\n // Cache the token\n if (this.tokenCache && tokenResult.expiresAt) {\n await this.tokenCache.set(\n clientId,\n tokenResult.token!,\n tokenResult.webId,\n tokenResult.expiresAt,\n tokenResult.tokenType,\n );\n }\n\n const context: SolidAuthContext = {\n type: 'solid',\n webId: tokenResult.webId,\n accountId: tokenResult.webId,\n clientId,\n clientSecret,\n accessToken: tokenResult.token,\n tokenType: tokenResult.tokenType ?? 'Bearer',\n viaApiKey: true,\n };\n\n this.logger.debug(`Authenticated API Key for webId: ${tokenResult.webId}`);\n return { success: true, context };\n } catch (error) {\n this.logger.error(`API Key authentication error: ${error}`);\n return { success: false, error: 'Authentication failed' };\n }\n }\n\n private async exchangeForToken(clientId: string, clientSecret: string): Promise<{\n success: boolean;\n token?: string;\n tokenType?: 'Bearer' | 'DPoP';\n webId?: string;\n expiresAt?: Date;\n error?: string;\n }> {\n // 开发模式:跳过 CSS token exchange\n if (process.env.NODE_ENV === 'development') {\n this.logger.warn(`[DEV] Skipping token exchange for ${clientId.slice(0, 8)}...`);\n return {\n success: true,\n token: `dev-token-${clientId}`,\n expiresAt: new Date(Date.now() + 3600000),\n };\n }\n\n try {\n const response = await fetch(this.tokenEndpoint, {\n method: 'POST',\n headers: {\n 'Content-Type': 'application/x-www-form-urlencoded',\n },\n body: new URLSearchParams({\n grant_type: 'client_credentials',\n client_id: clientId,\n client_secret: clientSecret,\n }),\n });\n\n if (!response.ok) {\n const error = await response.text();\n this.logger.warn(`Token exchange failed: ${response.status} ${error}`);\n return { success: false, error: `Token exchange failed: ${response.status}` };\n }\n\n const data = await response.json() as {\n access_token: string;\n expires_in?: number;\n token_type: string;\n webid?: string; // CSS returns webid in response\n };\n\n // Extract webId from token response or decode from JWT\n let webId = data.webid;\n if (!webId && data.access_token) {\n webId = this.extractWebIdFromJwt(data.access_token);\n }\n\n if (!webId) {\n return { success: false, error: 'Could not determine webId from token response' };\n }\n\n const expiresAt = data.expires_in\n ? new Date(Date.now() + data.expires_in * 1000 - 60000) // 1 min buffer\n : new Date(Date.now() + 3600000); // Default 1 hour\n\n return {\n success: true,\n token: data.access_token,\n tokenType: data.token_type?.toUpperCase() === 'DPOP' ? 'DPoP' : 'Bearer',\n webId,\n expiresAt,\n };\n } catch (error) {\n this.logger.error(`Token exchange error: ${error}`);\n return { success: false, error: 'Token exchange failed' };\n }\n }\n\n /**\n * Extract webId from JWT access token\n */\n private extractWebIdFromJwt(jwt: string): string | undefined {\n try {\n const parts = jwt.split('.');\n if (parts.length !== 3) {\n return undefined;\n }\n const payload = JSON.parse(Buffer.from(parts[1], 'base64').toString('utf-8'));\n return payload.webid || payload.webId || payload.sub;\n } catch {\n return undefined;\n }\n }\n\n private isJwt(token: string): boolean {\n return /^[A-Za-z0-9_-]+\\.[A-Za-z0-9_-]+\\.[A-Za-z0-9_-]+$/.test(token);\n }\n}\n\n// Re-export for backwards compatibility (these are no longer needed but keep for other code)\nexport interface ClientCredentialsRecord {\n clientId: string;\n webId: string;\n accountId: string;\n displayName?: string;\n createdAt: Date;\n}\n\nexport interface ClientCredentialsStore {\n findByClientId(clientId: string): Promise<ClientCredentialsRecord | undefined>;\n}\n"]}
|
|
@@ -70,6 +70,7 @@ class SolidTokenAuthenticator {
|
|
|
70
70
|
clientId,
|
|
71
71
|
accessToken: rawToken?.trim(),
|
|
72
72
|
tokenType: scheme === 'DPoP' ? 'DPoP' : 'Bearer',
|
|
73
|
+
dpopProof: dpopHeader?.trim(),
|
|
73
74
|
};
|
|
74
75
|
this.logger.debug(`Authenticated Solid token for webId: ${webId}`);
|
|
75
76
|
return { success: true, context };
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"SolidTokenAuthenticator.js","sourceRoot":"","sources":["../../../src/api/auth/SolidTokenAuthenticator.ts"],"names":[],"mappings":"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","sourcesContent":["import type { IncomingMessage } from 'node:http';\nimport { createSolidTokenVerifier } from '@solid/access-token-verifier';\nimport { getLoggerFor } from 'global-logger-factory';\nimport type { Authenticator, AuthResult } from './Authenticator';\nimport type { SolidAuthContext } from './AuthContext';\n\nexport interface SolidTokenAuthenticatorOptions {\n /**\n * Function to resolve accountId from webId (optional)\n */\n resolveAccountId?: (webId: string) => Promise<string | undefined>;\n}\n\n/**\n * Authenticator for Solid access tokens (Bearer or DPoP).\n */\nexport class SolidTokenAuthenticator implements Authenticator {\n private readonly logger = getLoggerFor(this);\n private readonly verify = createSolidTokenVerifier();\n private readonly resolveAccountId?: (webId: string) => Promise<string | undefined>;\n\n public constructor(options: SolidTokenAuthenticatorOptions = {}) {\n this.resolveAccountId = options.resolveAccountId;\n }\n\n public canAuthenticate(request: IncomingMessage): boolean {\n const auth = request.headers.authorization;\n if (!auth) {\n return false;\n }\n const [scheme, token] = auth.split(' ');\n if (!scheme || !token) {\n return false;\n }\n if (scheme !== 'Bearer' && scheme !== 'DPoP') {\n return false;\n }\n return this.isJwt(token.trim());\n }\n\n public async authenticate(request: IncomingMessage): Promise<AuthResult> {\n const authorization = request.headers.authorization;\n if (!authorization) {\n return { success: false, error: 'Missing Authorization header' };\n }\n\n const [scheme, rawToken] = authorization.split(' ');\n const dpopRaw = request.headers.dpop;\n const dpopHeader = Array.isArray(dpopRaw) ? dpopRaw[0] : dpopRaw;\n if (scheme === 'DPoP' && !dpopHeader) {\n return { success: false, error: 'Missing DPoP header' };\n }\n\n try {\n // Build the request URL for verification\n const method = (request.method ?? 'GET') as 'GET' | 'POST' | 'PUT' | 'DELETE' | 'PATCH' | 'HEAD' | 'OPTIONS';\n const url = this.buildRequestUrl(request);\n\n console.log(`[SolidTokenAuthenticator] Verifying DPoP for URL: ${url}, method: ${method}, host header: ${request.headers.host}, x-forwarded-host: ${request.headers['x-forwarded-host']}`);\n\n const dpopOptions = dpopHeader ? {\n header: dpopHeader,\n method,\n url,\n } : undefined;\n\n const payload = await this.verify(authorization, dpopOptions) as unknown as Record<string, unknown>;\n\n const webId = this.extractWebId(payload);\n if (!webId) {\n return { success: false, error: 'Token missing webId claim' };\n }\n\n const clientId = this.extractString(payload, 'client_id') ?? \n this.extractString(payload, 'azp');\n\n let accountId: string | undefined;\n if (this.resolveAccountId) {\n try {\n accountId = await this.resolveAccountId(webId);\n } catch (error) {\n this.logger.warn(`Failed to resolve accountId for webId ${webId}: ${error}`);\n }\n }\n\n const context: SolidAuthContext = {\n type: 'solid',\n webId,\n accountId,\n clientId,\n accessToken: rawToken?.trim(),\n tokenType: scheme === 'DPoP' ? 'DPoP' : 'Bearer',\n };\n\n this.logger.debug(`Authenticated Solid token for webId: ${webId}`);\n return { success: true, context };\n } catch (error) {\n this.logger.warn(`Solid token verification failed: ${error}`);\n return { success: false, error: 'Invalid Solid token' };\n }\n }\n\n private buildRequestUrl(request: IncomingMessage): string {\n const host = this.getHost(request);\n const proto = this.getProtocol(request);\n const prefix = this.getForwardedPrefix(request);\n const path = request.url ?? '/';\n const fullPath = prefix ? this.joinPaths(prefix, path) : path;\n return `${proto}://${host}${fullPath}`;\n }\n\n private getProtocol(request: IncomingMessage): string {\n const forwarded = request.headers['x-forwarded-proto'];\n if (forwarded) {\n const proto = Array.isArray(forwarded) ? forwarded[0] : forwarded;\n return proto?.split(',')[0]?.trim() ?? 'http';\n }\n // Default to http for local development\n return 'http';\n }\n\n private getHost(request: IncomingMessage): string {\n const forwarded = request.headers['x-forwarded-host'];\n if (forwarded) {\n const raw = Array.isArray(forwarded) ? forwarded[0] : forwarded;\n const host = raw?.split(',')[0]?.trim();\n if (host) {\n return host;\n }\n }\n return request.headers.host ?? 'localhost';\n }\n\n private getForwardedPrefix(request: IncomingMessage): string | undefined {\n const forwarded = request.headers['x-forwarded-prefix'];\n if (!forwarded) {\n return undefined;\n }\n const raw = Array.isArray(forwarded) ? forwarded[0] : forwarded;\n const prefix = raw?.split(',')[0]?.trim();\n return prefix && prefix !== '/' ? prefix : undefined;\n }\n\n private joinPaths(prefix: string, path: string): string {\n const normalizedPrefix = prefix.endsWith('/') ? prefix.slice(0, -1) : prefix;\n const normalizedPath = path.startsWith('/') ? path : `/${path}`;\n if (!normalizedPrefix) {\n return normalizedPath;\n }\n return `${normalizedPrefix}${normalizedPath}`;\n }\n\n private isJwt(token: string): boolean {\n return /^[A-Za-z0-9_-]+\\.[A-Za-z0-9_-]+\\.[A-Za-z0-9_-]+$/.test(token);\n }\n\n private extractWebId(payload: Record<string, unknown>): string | undefined {\n return this.extractString(payload, 'webid') ??\n this.extractString(payload, 'webId') ??\n this.extractString(payload, 'sub');\n }\n\n private extractString(obj: Record<string, unknown>, key: string): string | undefined {\n const value = obj[key];\n if (typeof value === 'string' && value.trim().length > 0) {\n return value.trim();\n }\n return undefined;\n }\n}\n"]}
|
|
1
|
+
{"version":3,"file":"SolidTokenAuthenticator.js","sourceRoot":"","sources":["../../../src/api/auth/SolidTokenAuthenticator.ts"],"names":[],"mappings":";;;AACA,wEAAwE;AACxE,iEAAqD;AAWrD;;GAEG;AACH,MAAa,uBAAuB;IAKlC,YAAmB,UAA0C,EAAE;QAJ9C,WAAM,GAAG,IAAA,oCAAY,EAAC,IAAI,CAAC,CAAC;QAC5B,WAAM,GAAG,IAAA,gDAAwB,GAAE,CAAC;QAInD,IAAI,CAAC,gBAAgB,GAAG,OAAO,CAAC,gBAAgB,CAAC;IACnD,CAAC;IAEM,eAAe,CAAC,OAAwB;QAC7C,MAAM,IAAI,GAAG,OAAO,CAAC,OAAO,CAAC,aAAa,CAAC;QAC3C,IAAI,CAAC,IAAI,EAAE,CAAC;YACV,OAAO,KAAK,CAAC;QACf,CAAC;QACD,MAAM,CAAC,MAAM,EAAE,KAAK,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;QACxC,IAAI,CAAC,MAAM,IAAI,CAAC,KAAK,EAAE,CAAC;YACtB,OAAO,KAAK,CAAC;QACf,CAAC;QACD,IAAI,MAAM,KAAK,QAAQ,IAAI,MAAM,KAAK,MAAM,EAAE,CAAC;YAC7C,OAAO,KAAK,CAAC;QACf,CAAC;QACD,OAAO,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC,CAAC;IAClC,CAAC;IAEM,KAAK,CAAC,YAAY,CAAC,OAAwB;QAChD,MAAM,aAAa,GAAG,OAAO,CAAC,OAAO,CAAC,aAAa,CAAC;QACpD,IAAI,CAAC,aAAa,EAAE,CAAC;YACnB,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,8BAA8B,EAAE,CAAC;QACnE,CAAC;QAED,MAAM,CAAC,MAAM,EAAE,QAAQ,CAAC,GAAG,aAAa,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;QACpD,MAAM,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC;QACrC,MAAM,UAAU,GAAG,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC;QACjE,IAAI,MAAM,KAAK,MAAM,IAAI,CAAC,UAAU,EAAE,CAAC;YACrC,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,qBAAqB,EAAE,CAAC;QAC1D,CAAC;QAED,IAAI,CAAC;YACH,yCAAyC;YACzC,MAAM,MAAM,GAAG,CAAC,OAAO,CAAC,MAAM,IAAI,KAAK,CAAqE,CAAC;YAC7G,MAAM,GAAG,GAAG,IAAI,CAAC,eAAe,CAAC,OAAO,CAAC,CAAC;YAE1C,OAAO,CAAC,GAAG,CAAC,qDAAqD,GAAG,aAAa,MAAM,kBAAkB,OAAO,CAAC,OAAO,CAAC,IAAI,uBAAuB,OAAO,CAAC,OAAO,CAAC,kBAAkB,CAAC,EAAE,CAAC,CAAC;YAE3L,MAAM,WAAW,GAAG,UAAU,CAAC,CAAC,CAAC;gBAC/B,MAAM,EAAE,UAAU;gBAClB,MAAM;gBACN,GAAG;aACJ,CAAC,CAAC,CAAC,SAAS,CAAC;YAEd,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC,aAAa,EAAE,WAAW,CAAuC,CAAC;YAEpG,MAAM,KAAK,GAAG,IAAI,CAAC,YAAY,CAAC,OAAO,CAAC,CAAC;YACzC,IAAI,CAAC,KAAK,EAAE,CAAC;gBACX,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,2BAA2B,EAAE,CAAC;YAChE,CAAC;YAED,MAAM,QAAQ,GAAG,IAAI,CAAC,aAAa,CAAC,OAAO,EAAE,WAAW,CAAC;gBACxC,IAAI,CAAC,aAAa,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC;YAEpD,IAAI,SAA6B,CAAC;YAClC,IAAI,IAAI,CAAC,gBAAgB,EAAE,CAAC;gBAC1B,IAAI,CAAC;oBACH,SAAS,GAAG,MAAM,IAAI,CAAC,gBAAgB,CAAC,KAAK,CAAC,CAAC;gBACjD,CAAC;gBAAC,OAAO,KAAK,EAAE,CAAC;oBACf,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,yCAAyC,KAAK,KAAK,KAAK,EAAE,CAAC,CAAC;gBAC/E,CAAC;YACH,CAAC;YAED,MAAM,OAAO,GAAqB;gBAChC,IAAI,EAAE,OAAO;gBACb,KAAK;gBACL,SAAS;gBACT,QAAQ;gBACR,WAAW,EAAE,QAAQ,EAAE,IAAI,EAAE;gBAC7B,SAAS,EAAE,MAAM,KAAK,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,QAAQ;gBAChD,SAAS,EAAE,UAAU,EAAE,IAAI,EAAE;aAC9B,CAAC;YAEF,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,wCAAwC,KAAK,EAAE,CAAC,CAAC;YACnE,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,CAAC;QACpC,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,oCAAoC,KAAK,EAAE,CAAC,CAAC;YAC9D,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,qBAAqB,EAAE,CAAC;QAC1D,CAAC;IACH,CAAC;IAEO,eAAe,CAAC,OAAwB;QAC9C,MAAM,IAAI,GAAG,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;QACnC,MAAM,KAAK,GAAG,IAAI,CAAC,WAAW,CAAC,OAAO,CAAC,CAAC;QACxC,MAAM,MAAM,GAAG,IAAI,CAAC,kBAAkB,CAAC,OAAO,CAAC,CAAC;QAChD,MAAM,IAAI,GAAG,OAAO,CAAC,GAAG,IAAI,GAAG,CAAC;QAChC,MAAM,QAAQ,GAAG,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;QAC9D,OAAO,GAAG,KAAK,MAAM,IAAI,GAAG,QAAQ,EAAE,CAAC;IACzC,CAAC;IAEO,WAAW,CAAC,OAAwB;QAC1C,MAAM,SAAS,GAAG,OAAO,CAAC,OAAO,CAAC,mBAAmB,CAAC,CAAC;QACvD,IAAI,SAAS,EAAE,CAAC;YACd,MAAM,KAAK,GAAG,KAAK,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;YAClE,OAAO,KAAK,EAAE,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,IAAI,MAAM,CAAC;QAChD,CAAC;QACD,wCAAwC;QACxC,OAAO,MAAM,CAAC;IAChB,CAAC;IAEO,OAAO,CAAC,OAAwB;QACtC,MAAM,SAAS,GAAG,OAAO,CAAC,OAAO,CAAC,kBAAkB,CAAC,CAAC;QACtD,IAAI,SAAS,EAAE,CAAC;YACd,MAAM,GAAG,GAAG,KAAK,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;YAChE,MAAM,IAAI,GAAG,GAAG,EAAE,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,CAAC;YACxC,IAAI,IAAI,EAAE,CAAC;gBACT,OAAO,IAAI,CAAC;YACd,CAAC;QACH,CAAC;QACD,OAAO,OAAO,CAAC,OAAO,CAAC,IAAI,IAAI,WAAW,CAAC;IAC7C,CAAC;IAEO,kBAAkB,CAAC,OAAwB;QACjD,MAAM,SAAS,GAAG,OAAO,CAAC,OAAO,CAAC,oBAAoB,CAAC,CAAC;QACxD,IAAI,CAAC,SAAS,EAAE,CAAC;YACf,OAAO,SAAS,CAAC;QACnB,CAAC;QACD,MAAM,GAAG,GAAG,KAAK,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;QAChE,MAAM,MAAM,GAAG,GAAG,EAAE,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,CAAC;QAC1C,OAAO,MAAM,IAAI,MAAM,KAAK,GAAG,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,SAAS,CAAC;IACvD,CAAC;IAEO,SAAS,CAAC,MAAc,EAAE,IAAY;QAC5C,MAAM,gBAAgB,GAAG,MAAM,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC;QAC7E,MAAM,cAAc,GAAG,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,IAAI,EAAE,CAAC;QAChE,IAAI,CAAC,gBAAgB,EAAE,CAAC;YACtB,OAAO,cAAc,CAAC;QACxB,CAAC;QACD,OAAO,GAAG,gBAAgB,GAAG,cAAc,EAAE,CAAC;IAChD,CAAC;IAEO,KAAK,CAAC,KAAa;QACzB,OAAO,kDAAkD,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IACxE,CAAC;IAEO,YAAY,CAAC,OAAgC;QACnD,OAAO,IAAI,CAAC,aAAa,CAAC,OAAO,EAAE,OAAO,CAAC;YACpC,IAAI,CAAC,aAAa,CAAC,OAAO,EAAE,OAAO,CAAC;YACpC,IAAI,CAAC,aAAa,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC;IAC5C,CAAC;IAEO,aAAa,CAAC,GAA4B,EAAE,GAAW;QAC7D,MAAM,KAAK,GAAG,GAAG,CAAC,GAAG,CAAC,CAAC;QACvB,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,CAAC,IAAI,EAAE,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YACzD,OAAO,KAAK,CAAC,IAAI,EAAE,CAAC;QACtB,CAAC;QACD,OAAO,SAAS,CAAC;IACnB,CAAC;CACF;AA1JD,0DA0JC","sourcesContent":["import type { IncomingMessage } from 'node:http';\nimport { createSolidTokenVerifier } from '@solid/access-token-verifier';\nimport { getLoggerFor } from 'global-logger-factory';\nimport type { Authenticator, AuthResult } from './Authenticator';\nimport type { SolidAuthContext } from './AuthContext';\n\nexport interface SolidTokenAuthenticatorOptions {\n /**\n * Function to resolve accountId from webId (optional)\n */\n resolveAccountId?: (webId: string) => Promise<string | undefined>;\n}\n\n/**\n * Authenticator for Solid access tokens (Bearer or DPoP).\n */\nexport class SolidTokenAuthenticator implements Authenticator {\n private readonly logger = getLoggerFor(this);\n private readonly verify = createSolidTokenVerifier();\n private readonly resolveAccountId?: (webId: string) => Promise<string | undefined>;\n\n public constructor(options: SolidTokenAuthenticatorOptions = {}) {\n this.resolveAccountId = options.resolveAccountId;\n }\n\n public canAuthenticate(request: IncomingMessage): boolean {\n const auth = request.headers.authorization;\n if (!auth) {\n return false;\n }\n const [scheme, token] = auth.split(' ');\n if (!scheme || !token) {\n return false;\n }\n if (scheme !== 'Bearer' && scheme !== 'DPoP') {\n return false;\n }\n return this.isJwt(token.trim());\n }\n\n public async authenticate(request: IncomingMessage): Promise<AuthResult> {\n const authorization = request.headers.authorization;\n if (!authorization) {\n return { success: false, error: 'Missing Authorization header' };\n }\n\n const [scheme, rawToken] = authorization.split(' ');\n const dpopRaw = request.headers.dpop;\n const dpopHeader = Array.isArray(dpopRaw) ? dpopRaw[0] : dpopRaw;\n if (scheme === 'DPoP' && !dpopHeader) {\n return { success: false, error: 'Missing DPoP header' };\n }\n\n try {\n // Build the request URL for verification\n const method = (request.method ?? 'GET') as 'GET' | 'POST' | 'PUT' | 'DELETE' | 'PATCH' | 'HEAD' | 'OPTIONS';\n const url = this.buildRequestUrl(request);\n\n console.log(`[SolidTokenAuthenticator] Verifying DPoP for URL: ${url}, method: ${method}, host header: ${request.headers.host}, x-forwarded-host: ${request.headers['x-forwarded-host']}`);\n\n const dpopOptions = dpopHeader ? {\n header: dpopHeader,\n method,\n url,\n } : undefined;\n\n const payload = await this.verify(authorization, dpopOptions) as unknown as Record<string, unknown>;\n\n const webId = this.extractWebId(payload);\n if (!webId) {\n return { success: false, error: 'Token missing webId claim' };\n }\n\n const clientId = this.extractString(payload, 'client_id') ?? \n this.extractString(payload, 'azp');\n\n let accountId: string | undefined;\n if (this.resolveAccountId) {\n try {\n accountId = await this.resolveAccountId(webId);\n } catch (error) {\n this.logger.warn(`Failed to resolve accountId for webId ${webId}: ${error}`);\n }\n }\n\n const context: SolidAuthContext = {\n type: 'solid',\n webId,\n accountId,\n clientId,\n accessToken: rawToken?.trim(),\n tokenType: scheme === 'DPoP' ? 'DPoP' : 'Bearer',\n dpopProof: dpopHeader?.trim(),\n };\n\n this.logger.debug(`Authenticated Solid token for webId: ${webId}`);\n return { success: true, context };\n } catch (error) {\n this.logger.warn(`Solid token verification failed: ${error}`);\n return { success: false, error: 'Invalid Solid token' };\n }\n }\n\n private buildRequestUrl(request: IncomingMessage): string {\n const host = this.getHost(request);\n const proto = this.getProtocol(request);\n const prefix = this.getForwardedPrefix(request);\n const path = request.url ?? '/';\n const fullPath = prefix ? this.joinPaths(prefix, path) : path;\n return `${proto}://${host}${fullPath}`;\n }\n\n private getProtocol(request: IncomingMessage): string {\n const forwarded = request.headers['x-forwarded-proto'];\n if (forwarded) {\n const proto = Array.isArray(forwarded) ? forwarded[0] : forwarded;\n return proto?.split(',')[0]?.trim() ?? 'http';\n }\n // Default to http for local development\n return 'http';\n }\n\n private getHost(request: IncomingMessage): string {\n const forwarded = request.headers['x-forwarded-host'];\n if (forwarded) {\n const raw = Array.isArray(forwarded) ? forwarded[0] : forwarded;\n const host = raw?.split(',')[0]?.trim();\n if (host) {\n return host;\n }\n }\n return request.headers.host ?? 'localhost';\n }\n\n private getForwardedPrefix(request: IncomingMessage): string | undefined {\n const forwarded = request.headers['x-forwarded-prefix'];\n if (!forwarded) {\n return undefined;\n }\n const raw = Array.isArray(forwarded) ? forwarded[0] : forwarded;\n const prefix = raw?.split(',')[0]?.trim();\n return prefix && prefix !== '/' ? prefix : undefined;\n }\n\n private joinPaths(prefix: string, path: string): string {\n const normalizedPrefix = prefix.endsWith('/') ? prefix.slice(0, -1) : prefix;\n const normalizedPath = path.startsWith('/') ? path : `/${path}`;\n if (!normalizedPrefix) {\n return normalizedPath;\n }\n return `${normalizedPrefix}${normalizedPath}`;\n }\n\n private isJwt(token: string): boolean {\n return /^[A-Za-z0-9_-]+\\.[A-Za-z0-9_-]+\\.[A-Za-z0-9_-]+$/.test(token);\n }\n\n private extractWebId(payload: Record<string, unknown>): string | undefined {\n return this.extractString(payload, 'webid') ??\n this.extractString(payload, 'webId') ??\n this.extractString(payload, 'sub');\n }\n\n private extractString(obj: Record<string, unknown>, key: string): string | undefined {\n const value = obj[key];\n if (typeof value === 'string' && value.trim().length > 0) {\n return value.trim();\n }\n return undefined;\n }\n}\n"]}
|