@undefineds.co/drizzle-solid 0.2.6
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/CHANGELOG-DRAFT.md +444 -0
- package/LICENSE +21 -0
- package/README.md +563 -0
- package/dist/core/aggregates.d.ts +19 -0
- package/dist/core/aggregates.d.ts.map +1 -0
- package/dist/core/aggregates.js +51 -0
- package/dist/core/aggregates.js.map +1 -0
- package/dist/core/ast-to-sparql.d.ts +62 -0
- package/dist/core/ast-to-sparql.d.ts.map +1 -0
- package/dist/core/ast-to-sparql.js +107 -0
- package/dist/core/ast-to-sparql.js.map +1 -0
- package/dist/core/compile-time-types.d.ts +37 -0
- package/dist/core/compile-time-types.d.ts.map +1 -0
- package/dist/core/compile-time-types.js +71 -0
- package/dist/core/compile-time-types.js.map +1 -0
- package/dist/core/comunica-patch.d.ts +7 -0
- package/dist/core/comunica-patch.d.ts.map +1 -0
- package/dist/core/comunica-patch.js +76 -0
- package/dist/core/comunica-patch.js.map +1 -0
- package/dist/core/conflict-resolution.d.ts +110 -0
- package/dist/core/conflict-resolution.d.ts.map +1 -0
- package/dist/core/conflict-resolution.js +251 -0
- package/dist/core/conflict-resolution.js.map +1 -0
- package/dist/core/discovery/composite-discovery.d.ts +18 -0
- package/dist/core/discovery/composite-discovery.d.ts.map +1 -0
- package/dist/core/discovery/composite-discovery.js +118 -0
- package/dist/core/discovery/composite-discovery.js.map +1 -0
- package/dist/core/discovery/index.d.ts +7 -0
- package/dist/core/discovery/index.d.ts.map +1 -0
- package/dist/core/discovery/index.js +23 -0
- package/dist/core/discovery/index.js.map +1 -0
- package/dist/core/discovery/interop-discovery.d.ts +36 -0
- package/dist/core/discovery/interop-discovery.d.ts.map +1 -0
- package/dist/core/discovery/interop-discovery.js +646 -0
- package/dist/core/discovery/interop-discovery.js.map +1 -0
- package/dist/core/discovery/interop-tables.d.ts +37 -0
- package/dist/core/discovery/interop-tables.d.ts.map +1 -0
- package/dist/core/discovery/interop-tables.js +68 -0
- package/dist/core/discovery/interop-tables.js.map +1 -0
- package/dist/core/discovery/interop-types.d.ts +36 -0
- package/dist/core/discovery/interop-types.d.ts.map +1 -0
- package/dist/core/discovery/interop-types.js +42 -0
- package/dist/core/discovery/interop-types.js.map +1 -0
- package/dist/core/discovery/provider-cache.d.ts +99 -0
- package/dist/core/discovery/provider-cache.d.ts.map +1 -0
- package/dist/core/discovery/provider-cache.js +296 -0
- package/dist/core/discovery/provider-cache.js.map +1 -0
- package/dist/core/discovery/typeindex-discovery.d.ts +30 -0
- package/dist/core/discovery/typeindex-discovery.d.ts.map +1 -0
- package/dist/core/discovery/typeindex-discovery.js +136 -0
- package/dist/core/discovery/typeindex-discovery.js.map +1 -0
- package/dist/core/discovery/types.d.ts +128 -0
- package/dist/core/discovery/types.d.ts.map +1 -0
- package/dist/core/discovery/types.js +3 -0
- package/dist/core/discovery/types.js.map +1 -0
- package/dist/core/execution/index.d.ts +14 -0
- package/dist/core/execution/index.d.ts.map +1 -0
- package/dist/core/execution/index.js +20 -0
- package/dist/core/execution/index.js.map +1 -0
- package/dist/core/execution/ldp-executor.d.ts +66 -0
- package/dist/core/execution/ldp-executor.d.ts.map +1 -0
- package/dist/core/execution/ldp-executor.js +584 -0
- package/dist/core/execution/ldp-executor.js.map +1 -0
- package/dist/core/execution/ldp-strategy.d.ts +53 -0
- package/dist/core/execution/ldp-strategy.d.ts.map +1 -0
- package/dist/core/execution/ldp-strategy.js +104 -0
- package/dist/core/execution/ldp-strategy.js.map +1 -0
- package/dist/core/execution/pod-executor-types.d.ts +9 -0
- package/dist/core/execution/pod-executor-types.d.ts.map +1 -0
- package/dist/core/execution/pod-executor-types.js +3 -0
- package/dist/core/execution/pod-executor-types.js.map +1 -0
- package/dist/core/execution/pod-executor.d.ts +59 -0
- package/dist/core/execution/pod-executor.d.ts.map +1 -0
- package/dist/core/execution/pod-executor.js +221 -0
- package/dist/core/execution/pod-executor.js.map +1 -0
- package/dist/core/execution/sparql-strategy.d.ts +80 -0
- package/dist/core/execution/sparql-strategy.d.ts.map +1 -0
- package/dist/core/execution/sparql-strategy.js +306 -0
- package/dist/core/execution/sparql-strategy.js.map +1 -0
- package/dist/core/execution/strategy-factory.d.ts +54 -0
- package/dist/core/execution/strategy-factory.d.ts.map +1 -0
- package/dist/core/execution/strategy-factory.js +78 -0
- package/dist/core/execution/strategy-factory.js.map +1 -0
- package/dist/core/execution/types.d.ts +80 -0
- package/dist/core/execution/types.d.ts.map +1 -0
- package/dist/core/execution/types.js +8 -0
- package/dist/core/execution/types.js.map +1 -0
- package/dist/core/expressions.d.ts +35 -0
- package/dist/core/expressions.d.ts.map +1 -0
- package/dist/core/expressions.js +53 -0
- package/dist/core/expressions.js.map +1 -0
- package/dist/core/federated/executor.d.ts +95 -0
- package/dist/core/federated/executor.d.ts.map +1 -0
- package/dist/core/federated/executor.js +425 -0
- package/dist/core/federated/executor.js.map +1 -0
- package/dist/core/federated/index.d.ts +3 -0
- package/dist/core/federated/index.d.ts.map +1 -0
- package/dist/core/federated/index.js +19 -0
- package/dist/core/federated/index.js.map +1 -0
- package/dist/core/federated/types.d.ts +69 -0
- package/dist/core/federated/types.d.ts.map +1 -0
- package/dist/core/federated/types.js +8 -0
- package/dist/core/federated/types.js.map +1 -0
- package/dist/core/notifications/channels/base-channel.d.ts +29 -0
- package/dist/core/notifications/channels/base-channel.d.ts.map +1 -0
- package/dist/core/notifications/channels/base-channel.js +63 -0
- package/dist/core/notifications/channels/base-channel.js.map +1 -0
- package/dist/core/notifications/channels/index.d.ts +4 -0
- package/dist/core/notifications/channels/index.d.ts.map +1 -0
- package/dist/core/notifications/channels/index.js +11 -0
- package/dist/core/notifications/channels/index.js.map +1 -0
- package/dist/core/notifications/channels/sse-channel.d.ts +50 -0
- package/dist/core/notifications/channels/sse-channel.d.ts.map +1 -0
- package/dist/core/notifications/channels/sse-channel.js +210 -0
- package/dist/core/notifications/channels/sse-channel.js.map +1 -0
- package/dist/core/notifications/channels/websocket-channel.d.ts +16 -0
- package/dist/core/notifications/channels/websocket-channel.d.ts.map +1 -0
- package/dist/core/notifications/channels/websocket-channel.js +87 -0
- package/dist/core/notifications/channels/websocket-channel.js.map +1 -0
- package/dist/core/notifications/index.d.ts +3 -0
- package/dist/core/notifications/index.d.ts.map +1 -0
- package/dist/core/notifications/index.js +6 -0
- package/dist/core/notifications/index.js.map +1 -0
- package/dist/core/notifications/notifications-client.d.ts +87 -0
- package/dist/core/notifications/notifications-client.d.ts.map +1 -0
- package/dist/core/notifications/notifications-client.js +460 -0
- package/dist/core/notifications/notifications-client.js.map +1 -0
- package/dist/core/notifications/types.d.ts +228 -0
- package/dist/core/notifications/types.d.ts.map +1 -0
- package/dist/core/notifications/types.js +7 -0
- package/dist/core/notifications/types.js.map +1 -0
- package/dist/core/pod-database.d.ts +383 -0
- package/dist/core/pod-database.d.ts.map +1 -0
- package/dist/core/pod-database.js +1212 -0
- package/dist/core/pod-database.js.map +1 -0
- package/dist/core/pod-dialect.d.ts +294 -0
- package/dist/core/pod-dialect.d.ts.map +1 -0
- package/dist/core/pod-dialect.js +1300 -0
- package/dist/core/pod-dialect.js.map +1 -0
- package/dist/core/pod-discovery.d.ts +20 -0
- package/dist/core/pod-discovery.d.ts.map +1 -0
- package/dist/core/pod-discovery.js +115 -0
- package/dist/core/pod-discovery.js.map +1 -0
- package/dist/core/pod-session.d.ts +44 -0
- package/dist/core/pod-session.d.ts.map +1 -0
- package/dist/core/pod-session.js +116 -0
- package/dist/core/pod-session.js.map +1 -0
- package/dist/core/pod-table.d.ts +710 -0
- package/dist/core/pod-table.d.ts.map +1 -0
- package/dist/core/pod-table.js +1300 -0
- package/dist/core/pod-table.js.map +1 -0
- package/dist/core/profile-manager.d.ts +90 -0
- package/dist/core/profile-manager.d.ts.map +1 -0
- package/dist/core/profile-manager.js +168 -0
- package/dist/core/profile-manager.js.map +1 -0
- package/dist/core/publish-manager.d.ts +90 -0
- package/dist/core/publish-manager.d.ts.map +1 -0
- package/dist/core/publish-manager.js +147 -0
- package/dist/core/publish-manager.js.map +1 -0
- package/dist/core/query-builders/delete-query-builder.d.ts +36 -0
- package/dist/core/query-builders/delete-query-builder.d.ts.map +1 -0
- package/dist/core/query-builders/delete-query-builder.js +144 -0
- package/dist/core/query-builders/delete-query-builder.js.map +1 -0
- package/dist/core/query-builders/helpers.d.ts +4 -0
- package/dist/core/query-builders/helpers.d.ts.map +1 -0
- package/dist/core/query-builders/helpers.js +30 -0
- package/dist/core/query-builders/helpers.js.map +1 -0
- package/dist/core/query-builders/index.d.ts +6 -0
- package/dist/core/query-builders/index.d.ts.map +1 -0
- package/dist/core/query-builders/index.js +12 -0
- package/dist/core/query-builders/index.js.map +1 -0
- package/dist/core/query-builders/insert-query-builder.d.ts +27 -0
- package/dist/core/query-builders/insert-query-builder.d.ts.map +1 -0
- package/dist/core/query-builders/insert-query-builder.js +128 -0
- package/dist/core/query-builders/insert-query-builder.js.map +1 -0
- package/dist/core/query-builders/select-query-builder.d.ts +106 -0
- package/dist/core/query-builders/select-query-builder.d.ts.map +1 -0
- package/dist/core/query-builders/select-query-builder.js +1264 -0
- package/dist/core/query-builders/select-query-builder.js.map +1 -0
- package/dist/core/query-builders/types.d.ts +37 -0
- package/dist/core/query-builders/types.d.ts.map +1 -0
- package/dist/core/query-builders/types.js +3 -0
- package/dist/core/query-builders/types.js.map +1 -0
- package/dist/core/query-builders/update-query-builder.d.ts +38 -0
- package/dist/core/query-builders/update-query-builder.d.ts.map +1 -0
- package/dist/core/query-builders/update-query-builder.js +168 -0
- package/dist/core/query-builders/update-query-builder.js.map +1 -0
- package/dist/core/query-conditions.d.ts +52 -0
- package/dist/core/query-conditions.d.ts.map +1 -0
- package/dist/core/query-conditions.js +134 -0
- package/dist/core/query-conditions.js.map +1 -0
- package/dist/core/rdf-constants.d.ts +16 -0
- package/dist/core/rdf-constants.d.ts.map +1 -0
- package/dist/core/rdf-constants.js +38 -0
- package/dist/core/rdf-constants.js.map +1 -0
- package/dist/core/rdf-schema-parser.d.ts +34 -0
- package/dist/core/rdf-schema-parser.d.ts.map +1 -0
- package/dist/core/rdf-schema-parser.js +143 -0
- package/dist/core/rdf-schema-parser.js.map +1 -0
- package/dist/core/resource-resolver/base-resolver.d.ts +29 -0
- package/dist/core/resource-resolver/base-resolver.d.ts.map +1 -0
- package/dist/core/resource-resolver/base-resolver.js +82 -0
- package/dist/core/resource-resolver/base-resolver.js.map +1 -0
- package/dist/core/resource-resolver/document-resolver.d.ts +20 -0
- package/dist/core/resource-resolver/document-resolver.d.ts.map +1 -0
- package/dist/core/resource-resolver/document-resolver.js +105 -0
- package/dist/core/resource-resolver/document-resolver.js.map +1 -0
- package/dist/core/resource-resolver/factory.d.ts +27 -0
- package/dist/core/resource-resolver/factory.d.ts.map +1 -0
- package/dist/core/resource-resolver/factory.js +58 -0
- package/dist/core/resource-resolver/factory.js.map +1 -0
- package/dist/core/resource-resolver/fragment-resolver.d.ts +20 -0
- package/dist/core/resource-resolver/fragment-resolver.d.ts.map +1 -0
- package/dist/core/resource-resolver/fragment-resolver.js +60 -0
- package/dist/core/resource-resolver/fragment-resolver.js.map +1 -0
- package/dist/core/resource-resolver/index.d.ts +11 -0
- package/dist/core/resource-resolver/index.d.ts.map +1 -0
- package/dist/core/resource-resolver/index.js +18 -0
- package/dist/core/resource-resolver/index.js.map +1 -0
- package/dist/core/resource-resolver/types.d.ts +57 -0
- package/dist/core/resource-resolver/types.d.ts.map +1 -0
- package/dist/core/resource-resolver/types.js +9 -0
- package/dist/core/resource-resolver/types.js.map +1 -0
- package/dist/core/runtime/pod-runtime.d.ts +34 -0
- package/dist/core/runtime/pod-runtime.d.ts.map +1 -0
- package/dist/core/runtime/pod-runtime.js +125 -0
- package/dist/core/runtime/pod-runtime.js.map +1 -0
- package/dist/core/schema/columns.d.ts +74 -0
- package/dist/core/schema/columns.d.ts.map +1 -0
- package/dist/core/schema/columns.js +295 -0
- package/dist/core/schema/columns.js.map +1 -0
- package/dist/core/schema/defs.d.ts +92 -0
- package/dist/core/schema/defs.d.ts.map +1 -0
- package/dist/core/schema/defs.js +43 -0
- package/dist/core/schema/defs.js.map +1 -0
- package/dist/core/schema/factories.d.ts +29 -0
- package/dist/core/schema/factories.d.ts.map +1 -0
- package/dist/core/schema/factories.js +117 -0
- package/dist/core/schema/factories.js.map +1 -0
- package/dist/core/schema/index.d.ts +9 -0
- package/dist/core/schema/index.d.ts.map +1 -0
- package/dist/core/schema/index.js +25 -0
- package/dist/core/schema/index.js.map +1 -0
- package/dist/core/schema/pod-table.d.ts +93 -0
- package/dist/core/schema/pod-table.d.ts.map +1 -0
- package/dist/core/schema/pod-table.js +294 -0
- package/dist/core/schema/pod-table.js.map +1 -0
- package/dist/core/schema/relations.d.ts +26 -0
- package/dist/core/schema/relations.d.ts.map +1 -0
- package/dist/core/schema/relations.js +36 -0
- package/dist/core/schema/relations.js.map +1 -0
- package/dist/core/schema/solid-schema.d.ts +19 -0
- package/dist/core/schema/solid-schema.d.ts.map +1 -0
- package/dist/core/schema/solid-schema.js +93 -0
- package/dist/core/schema/solid-schema.js.map +1 -0
- package/dist/core/schema/types.d.ts +45 -0
- package/dist/core/schema/types.d.ts.map +1 -0
- package/dist/core/schema/types.js +3 -0
- package/dist/core/schema/types.js.map +1 -0
- package/dist/core/schema/utils.d.ts +15 -0
- package/dist/core/schema/utils.d.ts.map +1 -0
- package/dist/core/schema/utils.js +44 -0
- package/dist/core/schema/utils.js.map +1 -0
- package/dist/core/select-plan.d.ts +45 -0
- package/dist/core/select-plan.d.ts.map +1 -0
- package/dist/core/select-plan.js +3 -0
- package/dist/core/select-plan.js.map +1 -0
- package/dist/core/services/pod-services.d.ts +41 -0
- package/dist/core/services/pod-services.d.ts.map +1 -0
- package/dist/core/services/pod-services.js +79 -0
- package/dist/core/services/pod-services.js.map +1 -0
- package/dist/core/shape/generator.d.ts +12 -0
- package/dist/core/shape/generator.d.ts.map +1 -0
- package/dist/core/shape/generator.js +109 -0
- package/dist/core/shape/generator.js.map +1 -0
- package/dist/core/shape/index.d.ts +4 -0
- package/dist/core/shape/index.d.ts.map +1 -0
- package/dist/core/shape/index.js +20 -0
- package/dist/core/shape/index.js.map +1 -0
- package/dist/core/shape/manager.d.ts +45 -0
- package/dist/core/shape/manager.d.ts.map +1 -0
- package/dist/core/shape/manager.js +393 -0
- package/dist/core/shape/manager.js.map +1 -0
- package/dist/core/shape/shacl-parser.d.ts +19 -0
- package/dist/core/shape/shacl-parser.d.ts.map +1 -0
- package/dist/core/shape/shacl-parser.js +215 -0
- package/dist/core/shape/shacl-parser.js.map +1 -0
- package/dist/core/shape/shacl.d.ts +11 -0
- package/dist/core/shape/shacl.d.ts.map +1 -0
- package/dist/core/shape/shacl.js +130 -0
- package/dist/core/shape/shacl.js.map +1 -0
- package/dist/core/shape/types.d.ts +149 -0
- package/dist/core/shape/types.d.ts.map +1 -0
- package/dist/core/shape/types.js +45 -0
- package/dist/core/shape/types.js.map +1 -0
- package/dist/core/shape/validator.d.ts +11 -0
- package/dist/core/shape/validator.d.ts.map +1 -0
- package/dist/core/shape/validator.js +232 -0
- package/dist/core/shape/validator.js.map +1 -0
- package/dist/core/solid-n3-client.d.ts +86 -0
- package/dist/core/solid-n3-client.d.ts.map +1 -0
- package/dist/core/solid-n3-client.js +279 -0
- package/dist/core/solid-n3-client.js.map +1 -0
- package/dist/core/sparql/builder/expression-builder.d.ts +42 -0
- package/dist/core/sparql/builder/expression-builder.d.ts.map +1 -0
- package/dist/core/sparql/builder/expression-builder.js +259 -0
- package/dist/core/sparql/builder/expression-builder.js.map +1 -0
- package/dist/core/sparql/builder/select-builder.d.ts +35 -0
- package/dist/core/sparql/builder/select-builder.d.ts.map +1 -0
- package/dist/core/sparql/builder/select-builder.js +446 -0
- package/dist/core/sparql/builder/select-builder.js.map +1 -0
- package/dist/core/sparql/builder/update-builder.d.ts +33 -0
- package/dist/core/sparql/builder/update-builder.d.ts.map +1 -0
- package/dist/core/sparql/builder/update-builder.js +523 -0
- package/dist/core/sparql/builder/update-builder.js.map +1 -0
- package/dist/core/sparql/helpers.d.ts +19 -0
- package/dist/core/sparql/helpers.d.ts.map +1 -0
- package/dist/core/sparql/helpers.js +172 -0
- package/dist/core/sparql/helpers.js.map +1 -0
- package/dist/core/sparql/types.d.ts +10 -0
- package/dist/core/sparql/types.d.ts.map +1 -0
- package/dist/core/sparql/types.js +3 -0
- package/dist/core/sparql/types.js.map +1 -0
- package/dist/core/sparql-executor.d.ts +34 -0
- package/dist/core/sparql-executor.d.ts.map +1 -0
- package/dist/core/sparql-executor.js +712 -0
- package/dist/core/sparql-executor.js.map +1 -0
- package/dist/core/subject/index.d.ts +29 -0
- package/dist/core/subject/index.d.ts.map +1 -0
- package/dist/core/subject/index.js +51 -0
- package/dist/core/subject/index.js.map +1 -0
- package/dist/core/subject/resolver.d.ts +92 -0
- package/dist/core/subject/resolver.d.ts.map +1 -0
- package/dist/core/subject/resolver.js +359 -0
- package/dist/core/subject/resolver.js.map +1 -0
- package/dist/core/subject/types.d.ts +90 -0
- package/dist/core/subject/types.d.ts.map +1 -0
- package/dist/core/subject/types.js +8 -0
- package/dist/core/subject/types.js.map +1 -0
- package/dist/core/triple/builder.d.ts +86 -0
- package/dist/core/triple/builder.d.ts.map +1 -0
- package/dist/core/triple/builder.js +304 -0
- package/dist/core/triple/builder.js.map +1 -0
- package/dist/core/triple/handlers/array.d.ts +23 -0
- package/dist/core/triple/handlers/array.d.ts.map +1 -0
- package/dist/core/triple/handlers/array.js +119 -0
- package/dist/core/triple/handlers/array.js.map +1 -0
- package/dist/core/triple/handlers/default.d.ts +20 -0
- package/dist/core/triple/handlers/default.d.ts.map +1 -0
- package/dist/core/triple/handlers/default.js +96 -0
- package/dist/core/triple/handlers/default.js.map +1 -0
- package/dist/core/triple/handlers/index.d.ts +35 -0
- package/dist/core/triple/handlers/index.d.ts.map +1 -0
- package/dist/core/triple/handlers/index.js +67 -0
- package/dist/core/triple/handlers/index.js.map +1 -0
- package/dist/core/triple/handlers/inline.d.ts +35 -0
- package/dist/core/triple/handlers/inline.d.ts.map +1 -0
- package/dist/core/triple/handlers/inline.js +190 -0
- package/dist/core/triple/handlers/inline.js.map +1 -0
- package/dist/core/triple/handlers/inverse.d.ts +22 -0
- package/dist/core/triple/handlers/inverse.d.ts.map +1 -0
- package/dist/core/triple/handlers/inverse.js +68 -0
- package/dist/core/triple/handlers/inverse.js.map +1 -0
- package/dist/core/triple/handlers/uri.d.ts +28 -0
- package/dist/core/triple/handlers/uri.d.ts.map +1 -0
- package/dist/core/triple/handlers/uri.js +66 -0
- package/dist/core/triple/handlers/uri.js.map +1 -0
- package/dist/core/triple/index.d.ts +9 -0
- package/dist/core/triple/index.d.ts.map +1 -0
- package/dist/core/triple/index.js +21 -0
- package/dist/core/triple/index.js.map +1 -0
- package/dist/core/triple/types.d.ts +152 -0
- package/dist/core/triple/types.d.ts.map +1 -0
- package/dist/core/triple/types.js +8 -0
- package/dist/core/triple/types.js.map +1 -0
- package/dist/core/typeindex-manager.d.ts +124 -0
- package/dist/core/typeindex-manager.d.ts.map +1 -0
- package/dist/core/typeindex-manager.js +662 -0
- package/dist/core/typeindex-manager.js.map +1 -0
- package/dist/core/types.d.ts +57 -0
- package/dist/core/types.d.ts.map +1 -0
- package/dist/core/types.js +4 -0
- package/dist/core/types.js.map +1 -0
- package/dist/core/uri/index.d.ts +8 -0
- package/dist/core/uri/index.d.ts.map +1 -0
- package/dist/core/uri/index.js +12 -0
- package/dist/core/uri/index.js.map +1 -0
- package/dist/core/uri/resolver.d.ts +79 -0
- package/dist/core/uri/resolver.d.ts.map +1 -0
- package/dist/core/uri/resolver.js +458 -0
- package/dist/core/uri/resolver.js.map +1 -0
- package/dist/core/uri/types.d.ts +143 -0
- package/dist/core/uri/types.d.ts.map +1 -0
- package/dist/core/uri/types.js +8 -0
- package/dist/core/uri/types.js.map +1 -0
- package/dist/core/utils/origin-auth.d.ts +28 -0
- package/dist/core/utils/origin-auth.d.ts.map +1 -0
- package/dist/core/utils/origin-auth.js +46 -0
- package/dist/core/utils/origin-auth.js.map +1 -0
- package/dist/core/utils/pod-root.d.ts +15 -0
- package/dist/core/utils/pod-root.d.ts.map +1 -0
- package/dist/core/utils/pod-root.js +72 -0
- package/dist/core/utils/pod-root.js.map +1 -0
- package/dist/core/zod-integration.d.ts +95 -0
- package/dist/core/zod-integration.d.ts.map +1 -0
- package/dist/core/zod-integration.js +236 -0
- package/dist/core/zod-integration.js.map +1 -0
- package/dist/driver.d.ts +23 -0
- package/dist/driver.d.ts.map +1 -0
- package/dist/driver.js +34 -0
- package/dist/driver.js.map +1 -0
- package/dist/esm/core/aggregates.d.ts +19 -0
- package/dist/esm/core/aggregates.d.ts.map +1 -0
- package/dist/esm/core/aggregates.js +43 -0
- package/dist/esm/core/aggregates.js.map +1 -0
- package/dist/esm/core/ast-to-sparql.d.ts +62 -0
- package/dist/esm/core/ast-to-sparql.d.ts.map +1 -0
- package/dist/esm/core/ast-to-sparql.js +103 -0
- package/dist/esm/core/ast-to-sparql.js.map +1 -0
- package/dist/esm/core/compile-time-types.d.ts +37 -0
- package/dist/esm/core/compile-time-types.d.ts.map +1 -0
- package/dist/esm/core/compile-time-types.js +64 -0
- package/dist/esm/core/compile-time-types.js.map +1 -0
- package/dist/esm/core/comunica-patch.d.ts +7 -0
- package/dist/esm/core/comunica-patch.d.ts.map +1 -0
- package/dist/esm/core/comunica-patch.js +76 -0
- package/dist/esm/core/comunica-patch.js.map +1 -0
- package/dist/esm/core/conflict-resolution.d.ts +110 -0
- package/dist/esm/core/conflict-resolution.d.ts.map +1 -0
- package/dist/esm/core/conflict-resolution.js +245 -0
- package/dist/esm/core/conflict-resolution.js.map +1 -0
- package/dist/esm/core/discovery/composite-discovery.d.ts +18 -0
- package/dist/esm/core/discovery/composite-discovery.d.ts.map +1 -0
- package/dist/esm/core/discovery/composite-discovery.js +114 -0
- package/dist/esm/core/discovery/composite-discovery.js.map +1 -0
- package/dist/esm/core/discovery/index.d.ts +7 -0
- package/dist/esm/core/discovery/index.d.ts.map +1 -0
- package/dist/esm/core/discovery/index.js +7 -0
- package/dist/esm/core/discovery/index.js.map +1 -0
- package/dist/esm/core/discovery/interop-discovery.d.ts +36 -0
- package/dist/esm/core/discovery/interop-discovery.d.ts.map +1 -0
- package/dist/esm/core/discovery/interop-discovery.js +642 -0
- package/dist/esm/core/discovery/interop-discovery.js.map +1 -0
- package/dist/esm/core/discovery/interop-tables.d.ts +37 -0
- package/dist/esm/core/discovery/interop-tables.d.ts.map +1 -0
- package/dist/esm/core/discovery/interop-tables.js +65 -0
- package/dist/esm/core/discovery/interop-tables.js.map +1 -0
- package/dist/esm/core/discovery/interop-types.d.ts +36 -0
- package/dist/esm/core/discovery/interop-types.d.ts.map +1 -0
- package/dist/esm/core/discovery/interop-types.js +39 -0
- package/dist/esm/core/discovery/interop-types.js.map +1 -0
- package/dist/esm/core/discovery/provider-cache.d.ts +99 -0
- package/dist/esm/core/discovery/provider-cache.d.ts.map +1 -0
- package/dist/esm/core/discovery/provider-cache.js +292 -0
- package/dist/esm/core/discovery/provider-cache.js.map +1 -0
- package/dist/esm/core/discovery/typeindex-discovery.d.ts +30 -0
- package/dist/esm/core/discovery/typeindex-discovery.d.ts.map +1 -0
- package/dist/esm/core/discovery/typeindex-discovery.js +132 -0
- package/dist/esm/core/discovery/typeindex-discovery.js.map +1 -0
- package/dist/esm/core/discovery/types.d.ts +128 -0
- package/dist/esm/core/discovery/types.d.ts.map +1 -0
- package/dist/esm/core/discovery/types.js +2 -0
- package/dist/esm/core/discovery/types.js.map +1 -0
- package/dist/esm/core/execution/index.d.ts +14 -0
- package/dist/esm/core/execution/index.d.ts.map +1 -0
- package/dist/esm/core/execution/index.js +13 -0
- package/dist/esm/core/execution/index.js.map +1 -0
- package/dist/esm/core/execution/ldp-executor.d.ts +66 -0
- package/dist/esm/core/execution/ldp-executor.d.ts.map +1 -0
- package/dist/esm/core/execution/ldp-executor.js +580 -0
- package/dist/esm/core/execution/ldp-executor.js.map +1 -0
- package/dist/esm/core/execution/ldp-strategy.d.ts +53 -0
- package/dist/esm/core/execution/ldp-strategy.d.ts.map +1 -0
- package/dist/esm/core/execution/ldp-strategy.js +100 -0
- package/dist/esm/core/execution/ldp-strategy.js.map +1 -0
- package/dist/esm/core/execution/pod-executor-types.d.ts +9 -0
- package/dist/esm/core/execution/pod-executor-types.d.ts.map +1 -0
- package/dist/esm/core/execution/pod-executor-types.js +2 -0
- package/dist/esm/core/execution/pod-executor-types.js.map +1 -0
- package/dist/esm/core/execution/pod-executor.d.ts +59 -0
- package/dist/esm/core/execution/pod-executor.d.ts.map +1 -0
- package/dist/esm/core/execution/pod-executor.js +217 -0
- package/dist/esm/core/execution/pod-executor.js.map +1 -0
- package/dist/esm/core/execution/sparql-strategy.d.ts +80 -0
- package/dist/esm/core/execution/sparql-strategy.d.ts.map +1 -0
- package/dist/esm/core/execution/sparql-strategy.js +269 -0
- package/dist/esm/core/execution/sparql-strategy.js.map +1 -0
- package/dist/esm/core/execution/strategy-factory.d.ts +54 -0
- package/dist/esm/core/execution/strategy-factory.d.ts.map +1 -0
- package/dist/esm/core/execution/strategy-factory.js +74 -0
- package/dist/esm/core/execution/strategy-factory.js.map +1 -0
- package/dist/esm/core/execution/types.d.ts +80 -0
- package/dist/esm/core/execution/types.d.ts.map +1 -0
- package/dist/esm/core/execution/types.js +7 -0
- package/dist/esm/core/execution/types.js.map +1 -0
- package/dist/esm/core/expressions.d.ts +35 -0
- package/dist/esm/core/expressions.d.ts.map +1 -0
- package/dist/esm/core/expressions.js +45 -0
- package/dist/esm/core/expressions.js.map +1 -0
- package/dist/esm/core/federated/executor.d.ts +95 -0
- package/dist/esm/core/federated/executor.d.ts.map +1 -0
- package/dist/esm/core/federated/executor.js +421 -0
- package/dist/esm/core/federated/executor.js.map +1 -0
- package/dist/esm/core/federated/index.d.ts +3 -0
- package/dist/esm/core/federated/index.d.ts.map +1 -0
- package/dist/esm/core/federated/index.js +3 -0
- package/dist/esm/core/federated/index.js.map +1 -0
- package/dist/esm/core/federated/types.d.ts +69 -0
- package/dist/esm/core/federated/types.d.ts.map +1 -0
- package/dist/esm/core/federated/types.js +7 -0
- package/dist/esm/core/federated/types.js.map +1 -0
- package/dist/esm/core/notifications/channels/base-channel.d.ts +29 -0
- package/dist/esm/core/notifications/channels/base-channel.d.ts.map +1 -0
- package/dist/esm/core/notifications/channels/base-channel.js +58 -0
- package/dist/esm/core/notifications/channels/base-channel.js.map +1 -0
- package/dist/esm/core/notifications/channels/index.d.ts +4 -0
- package/dist/esm/core/notifications/channels/index.d.ts.map +1 -0
- package/dist/esm/core/notifications/channels/index.js +4 -0
- package/dist/esm/core/notifications/channels/index.js.map +1 -0
- package/dist/esm/core/notifications/channels/sse-channel.d.ts +50 -0
- package/dist/esm/core/notifications/channels/sse-channel.d.ts.map +1 -0
- package/dist/esm/core/notifications/channels/sse-channel.js +206 -0
- package/dist/esm/core/notifications/channels/sse-channel.js.map +1 -0
- package/dist/esm/core/notifications/channels/websocket-channel.d.ts +16 -0
- package/dist/esm/core/notifications/channels/websocket-channel.d.ts.map +1 -0
- package/dist/esm/core/notifications/channels/websocket-channel.js +83 -0
- package/dist/esm/core/notifications/channels/websocket-channel.js.map +1 -0
- package/dist/esm/core/notifications/index.d.ts +3 -0
- package/dist/esm/core/notifications/index.d.ts.map +1 -0
- package/dist/esm/core/notifications/index.js +2 -0
- package/dist/esm/core/notifications/index.js.map +1 -0
- package/dist/esm/core/notifications/notifications-client.d.ts +87 -0
- package/dist/esm/core/notifications/notifications-client.d.ts.map +1 -0
- package/dist/esm/core/notifications/notifications-client.js +456 -0
- package/dist/esm/core/notifications/notifications-client.js.map +1 -0
- package/dist/esm/core/notifications/types.d.ts +228 -0
- package/dist/esm/core/notifications/types.d.ts.map +1 -0
- package/dist/esm/core/notifications/types.js +6 -0
- package/dist/esm/core/notifications/types.js.map +1 -0
- package/dist/esm/core/pod-database.d.ts +383 -0
- package/dist/esm/core/pod-database.d.ts.map +1 -0
- package/dist/esm/core/pod-database.js +1175 -0
- package/dist/esm/core/pod-database.js.map +1 -0
- package/dist/esm/core/pod-dialect.d.ts +294 -0
- package/dist/esm/core/pod-dialect.d.ts.map +1 -0
- package/dist/esm/core/pod-dialect.js +1296 -0
- package/dist/esm/core/pod-dialect.js.map +1 -0
- package/dist/esm/core/pod-discovery.d.ts +20 -0
- package/dist/esm/core/pod-discovery.d.ts.map +1 -0
- package/dist/esm/core/pod-discovery.js +109 -0
- package/dist/esm/core/pod-discovery.js.map +1 -0
- package/dist/esm/core/pod-session.d.ts +44 -0
- package/dist/esm/core/pod-session.d.ts.map +1 -0
- package/dist/esm/core/pod-session.js +109 -0
- package/dist/esm/core/pod-session.js.map +1 -0
- package/dist/esm/core/pod-table.d.ts +710 -0
- package/dist/esm/core/pod-table.d.ts.map +1 -0
- package/dist/esm/core/pod-table.js +1249 -0
- package/dist/esm/core/pod-table.js.map +1 -0
- package/dist/esm/core/profile-manager.d.ts +90 -0
- package/dist/esm/core/profile-manager.d.ts.map +1 -0
- package/dist/esm/core/profile-manager.js +164 -0
- package/dist/esm/core/profile-manager.js.map +1 -0
- package/dist/esm/core/publish-manager.d.ts +90 -0
- package/dist/esm/core/publish-manager.d.ts.map +1 -0
- package/dist/esm/core/publish-manager.js +143 -0
- package/dist/esm/core/publish-manager.js.map +1 -0
- package/dist/esm/core/query-builders/delete-query-builder.d.ts +36 -0
- package/dist/esm/core/query-builders/delete-query-builder.d.ts.map +1 -0
- package/dist/esm/core/query-builders/delete-query-builder.js +140 -0
- package/dist/esm/core/query-builders/delete-query-builder.js.map +1 -0
- package/dist/esm/core/query-builders/helpers.d.ts +4 -0
- package/dist/esm/core/query-builders/helpers.d.ts.map +1 -0
- package/dist/esm/core/query-builders/helpers.js +26 -0
- package/dist/esm/core/query-builders/helpers.js.map +1 -0
- package/dist/esm/core/query-builders/index.d.ts +6 -0
- package/dist/esm/core/query-builders/index.d.ts.map +1 -0
- package/dist/esm/core/query-builders/index.js +5 -0
- package/dist/esm/core/query-builders/index.js.map +1 -0
- package/dist/esm/core/query-builders/insert-query-builder.d.ts +27 -0
- package/dist/esm/core/query-builders/insert-query-builder.d.ts.map +1 -0
- package/dist/esm/core/query-builders/insert-query-builder.js +124 -0
- package/dist/esm/core/query-builders/insert-query-builder.js.map +1 -0
- package/dist/esm/core/query-builders/select-query-builder.d.ts +106 -0
- package/dist/esm/core/query-builders/select-query-builder.d.ts.map +1 -0
- package/dist/esm/core/query-builders/select-query-builder.js +1260 -0
- package/dist/esm/core/query-builders/select-query-builder.js.map +1 -0
- package/dist/esm/core/query-builders/types.d.ts +37 -0
- package/dist/esm/core/query-builders/types.d.ts.map +1 -0
- package/dist/esm/core/query-builders/types.js +2 -0
- package/dist/esm/core/query-builders/types.js.map +1 -0
- package/dist/esm/core/query-builders/update-query-builder.d.ts +38 -0
- package/dist/esm/core/query-builders/update-query-builder.d.ts.map +1 -0
- package/dist/esm/core/query-builders/update-query-builder.js +164 -0
- package/dist/esm/core/query-builders/update-query-builder.js.map +1 -0
- package/dist/esm/core/query-conditions.d.ts +52 -0
- package/dist/esm/core/query-conditions.d.ts.map +1 -0
- package/dist/esm/core/query-conditions.js +111 -0
- package/dist/esm/core/query-conditions.js.map +1 -0
- package/dist/esm/core/rdf-constants.d.ts +16 -0
- package/dist/esm/core/rdf-constants.d.ts.map +1 -0
- package/dist/esm/core/rdf-constants.js +32 -0
- package/dist/esm/core/rdf-constants.js.map +1 -0
- package/dist/esm/core/rdf-schema-parser.d.ts +34 -0
- package/dist/esm/core/rdf-schema-parser.d.ts.map +1 -0
- package/dist/esm/core/rdf-schema-parser.js +136 -0
- package/dist/esm/core/rdf-schema-parser.js.map +1 -0
- package/dist/esm/core/resource-resolver/base-resolver.d.ts +29 -0
- package/dist/esm/core/resource-resolver/base-resolver.d.ts.map +1 -0
- package/dist/esm/core/resource-resolver/base-resolver.js +78 -0
- package/dist/esm/core/resource-resolver/base-resolver.js.map +1 -0
- package/dist/esm/core/resource-resolver/document-resolver.d.ts +20 -0
- package/dist/esm/core/resource-resolver/document-resolver.d.ts.map +1 -0
- package/dist/esm/core/resource-resolver/document-resolver.js +101 -0
- package/dist/esm/core/resource-resolver/document-resolver.js.map +1 -0
- package/dist/esm/core/resource-resolver/factory.d.ts +27 -0
- package/dist/esm/core/resource-resolver/factory.d.ts.map +1 -0
- package/dist/esm/core/resource-resolver/factory.js +53 -0
- package/dist/esm/core/resource-resolver/factory.js.map +1 -0
- package/dist/esm/core/resource-resolver/fragment-resolver.d.ts +20 -0
- package/dist/esm/core/resource-resolver/fragment-resolver.d.ts.map +1 -0
- package/dist/esm/core/resource-resolver/fragment-resolver.js +56 -0
- package/dist/esm/core/resource-resolver/fragment-resolver.js.map +1 -0
- package/dist/esm/core/resource-resolver/index.d.ts +11 -0
- package/dist/esm/core/resource-resolver/index.d.ts.map +1 -0
- package/dist/esm/core/resource-resolver/index.js +10 -0
- package/dist/esm/core/resource-resolver/index.js.map +1 -0
- package/dist/esm/core/resource-resolver/types.d.ts +57 -0
- package/dist/esm/core/resource-resolver/types.d.ts.map +1 -0
- package/dist/esm/core/resource-resolver/types.js +8 -0
- package/dist/esm/core/resource-resolver/types.js.map +1 -0
- package/dist/esm/core/runtime/pod-runtime.d.ts +34 -0
- package/dist/esm/core/runtime/pod-runtime.d.ts.map +1 -0
- package/dist/esm/core/runtime/pod-runtime.js +121 -0
- package/dist/esm/core/runtime/pod-runtime.js.map +1 -0
- package/dist/esm/core/schema/columns.d.ts +74 -0
- package/dist/esm/core/schema/columns.d.ts.map +1 -0
- package/dist/esm/core/schema/columns.js +282 -0
- package/dist/esm/core/schema/columns.js.map +1 -0
- package/dist/esm/core/schema/defs.d.ts +92 -0
- package/dist/esm/core/schema/defs.d.ts.map +1 -0
- package/dist/esm/core/schema/defs.js +36 -0
- package/dist/esm/core/schema/defs.js.map +1 -0
- package/dist/esm/core/schema/factories.d.ts +29 -0
- package/dist/esm/core/schema/factories.d.ts.map +1 -0
- package/dist/esm/core/schema/factories.js +89 -0
- package/dist/esm/core/schema/factories.js.map +1 -0
- package/dist/esm/core/schema/index.d.ts +9 -0
- package/dist/esm/core/schema/index.d.ts.map +1 -0
- package/dist/esm/core/schema/index.js +9 -0
- package/dist/esm/core/schema/index.js.map +1 -0
- package/dist/esm/core/schema/pod-table.d.ts +93 -0
- package/dist/esm/core/schema/pod-table.d.ts.map +1 -0
- package/dist/esm/core/schema/pod-table.js +289 -0
- package/dist/esm/core/schema/pod-table.js.map +1 -0
- package/dist/esm/core/schema/relations.d.ts +26 -0
- package/dist/esm/core/schema/relations.d.ts.map +1 -0
- package/dist/esm/core/schema/relations.js +33 -0
- package/dist/esm/core/schema/relations.js.map +1 -0
- package/dist/esm/core/schema/solid-schema.d.ts +19 -0
- package/dist/esm/core/schema/solid-schema.d.ts.map +1 -0
- package/dist/esm/core/schema/solid-schema.js +87 -0
- package/dist/esm/core/schema/solid-schema.js.map +1 -0
- package/dist/esm/core/schema/types.d.ts +45 -0
- package/dist/esm/core/schema/types.d.ts.map +1 -0
- package/dist/esm/core/schema/types.js +2 -0
- package/dist/esm/core/schema/types.js.map +1 -0
- package/dist/esm/core/schema/utils.d.ts +15 -0
- package/dist/esm/core/schema/utils.d.ts.map +1 -0
- package/dist/esm/core/schema/utils.js +40 -0
- package/dist/esm/core/schema/utils.js.map +1 -0
- package/dist/esm/core/select-plan.d.ts +45 -0
- package/dist/esm/core/select-plan.d.ts.map +1 -0
- package/dist/esm/core/select-plan.js +2 -0
- package/dist/esm/core/select-plan.js.map +1 -0
- package/dist/esm/core/services/pod-services.d.ts +41 -0
- package/dist/esm/core/services/pod-services.d.ts.map +1 -0
- package/dist/esm/core/services/pod-services.js +75 -0
- package/dist/esm/core/services/pod-services.js.map +1 -0
- package/dist/esm/core/shape/generator.d.ts +12 -0
- package/dist/esm/core/shape/generator.d.ts.map +1 -0
- package/dist/esm/core/shape/generator.js +106 -0
- package/dist/esm/core/shape/generator.js.map +1 -0
- package/dist/esm/core/shape/index.d.ts +4 -0
- package/dist/esm/core/shape/index.d.ts.map +1 -0
- package/dist/esm/core/shape/index.js +4 -0
- package/dist/esm/core/shape/index.js.map +1 -0
- package/dist/esm/core/shape/manager.d.ts +45 -0
- package/dist/esm/core/shape/manager.d.ts.map +1 -0
- package/dist/esm/core/shape/manager.js +389 -0
- package/dist/esm/core/shape/manager.js.map +1 -0
- package/dist/esm/core/shape/shacl-parser.d.ts +19 -0
- package/dist/esm/core/shape/shacl-parser.d.ts.map +1 -0
- package/dist/esm/core/shape/shacl-parser.js +210 -0
- package/dist/esm/core/shape/shacl-parser.js.map +1 -0
- package/dist/esm/core/shape/shacl.d.ts +11 -0
- package/dist/esm/core/shape/shacl.d.ts.map +1 -0
- package/dist/esm/core/shape/shacl.js +127 -0
- package/dist/esm/core/shape/shacl.js.map +1 -0
- package/dist/esm/core/shape/types.d.ts +149 -0
- package/dist/esm/core/shape/types.d.ts.map +1 -0
- package/dist/esm/core/shape/types.js +42 -0
- package/dist/esm/core/shape/types.js.map +1 -0
- package/dist/esm/core/shape/validator.d.ts +11 -0
- package/dist/esm/core/shape/validator.d.ts.map +1 -0
- package/dist/esm/core/shape/validator.js +229 -0
- package/dist/esm/core/shape/validator.js.map +1 -0
- package/dist/esm/core/solid-n3-client.d.ts +86 -0
- package/dist/esm/core/solid-n3-client.d.ts.map +1 -0
- package/dist/esm/core/solid-n3-client.js +275 -0
- package/dist/esm/core/solid-n3-client.js.map +1 -0
- package/dist/esm/core/sparql/builder/expression-builder.d.ts +42 -0
- package/dist/esm/core/sparql/builder/expression-builder.d.ts.map +1 -0
- package/dist/esm/core/sparql/builder/expression-builder.js +255 -0
- package/dist/esm/core/sparql/builder/expression-builder.js.map +1 -0
- package/dist/esm/core/sparql/builder/select-builder.d.ts +35 -0
- package/dist/esm/core/sparql/builder/select-builder.d.ts.map +1 -0
- package/dist/esm/core/sparql/builder/select-builder.js +409 -0
- package/dist/esm/core/sparql/builder/select-builder.js.map +1 -0
- package/dist/esm/core/sparql/builder/update-builder.d.ts +33 -0
- package/dist/esm/core/sparql/builder/update-builder.d.ts.map +1 -0
- package/dist/esm/core/sparql/builder/update-builder.js +486 -0
- package/dist/esm/core/sparql/builder/update-builder.js.map +1 -0
- package/dist/esm/core/sparql/helpers.d.ts +19 -0
- package/dist/esm/core/sparql/helpers.d.ts.map +1 -0
- package/dist/esm/core/sparql/helpers.js +165 -0
- package/dist/esm/core/sparql/helpers.js.map +1 -0
- package/dist/esm/core/sparql/types.d.ts +10 -0
- package/dist/esm/core/sparql/types.d.ts.map +1 -0
- package/dist/esm/core/sparql/types.js +2 -0
- package/dist/esm/core/sparql/types.js.map +1 -0
- package/dist/esm/core/sparql-executor.d.ts +34 -0
- package/dist/esm/core/sparql-executor.d.ts.map +1 -0
- package/dist/esm/core/sparql-executor.js +708 -0
- package/dist/esm/core/sparql-executor.js.map +1 -0
- package/dist/esm/core/subject/index.d.ts +29 -0
- package/dist/esm/core/subject/index.d.ts.map +1 -0
- package/dist/esm/core/subject/index.js +49 -0
- package/dist/esm/core/subject/index.js.map +1 -0
- package/dist/esm/core/subject/resolver.d.ts +92 -0
- package/dist/esm/core/subject/resolver.d.ts.map +1 -0
- package/dist/esm/core/subject/resolver.js +355 -0
- package/dist/esm/core/subject/resolver.js.map +1 -0
- package/dist/esm/core/subject/types.d.ts +90 -0
- package/dist/esm/core/subject/types.d.ts.map +1 -0
- package/dist/esm/core/subject/types.js +7 -0
- package/dist/esm/core/subject/types.js.map +1 -0
- package/dist/esm/core/triple/builder.d.ts +86 -0
- package/dist/esm/core/triple/builder.d.ts.map +1 -0
- package/dist/esm/core/triple/builder.js +300 -0
- package/dist/esm/core/triple/builder.js.map +1 -0
- package/dist/esm/core/triple/handlers/array.d.ts +23 -0
- package/dist/esm/core/triple/handlers/array.d.ts.map +1 -0
- package/dist/esm/core/triple/handlers/array.js +115 -0
- package/dist/esm/core/triple/handlers/array.js.map +1 -0
- package/dist/esm/core/triple/handlers/default.d.ts +20 -0
- package/dist/esm/core/triple/handlers/default.d.ts.map +1 -0
- package/dist/esm/core/triple/handlers/default.js +92 -0
- package/dist/esm/core/triple/handlers/default.js.map +1 -0
- package/dist/esm/core/triple/handlers/index.d.ts +35 -0
- package/dist/esm/core/triple/handlers/index.d.ts.map +1 -0
- package/dist/esm/core/triple/handlers/index.js +59 -0
- package/dist/esm/core/triple/handlers/index.js.map +1 -0
- package/dist/esm/core/triple/handlers/inline.d.ts +35 -0
- package/dist/esm/core/triple/handlers/inline.d.ts.map +1 -0
- package/dist/esm/core/triple/handlers/inline.js +186 -0
- package/dist/esm/core/triple/handlers/inline.js.map +1 -0
- package/dist/esm/core/triple/handlers/inverse.d.ts +22 -0
- package/dist/esm/core/triple/handlers/inverse.d.ts.map +1 -0
- package/dist/esm/core/triple/handlers/inverse.js +64 -0
- package/dist/esm/core/triple/handlers/inverse.js.map +1 -0
- package/dist/esm/core/triple/handlers/uri.d.ts +28 -0
- package/dist/esm/core/triple/handlers/uri.d.ts.map +1 -0
- package/dist/esm/core/triple/handlers/uri.js +62 -0
- package/dist/esm/core/triple/handlers/uri.js.map +1 -0
- package/dist/esm/core/triple/index.d.ts +9 -0
- package/dist/esm/core/triple/index.d.ts.map +1 -0
- package/dist/esm/core/triple/index.js +10 -0
- package/dist/esm/core/triple/index.js.map +1 -0
- package/dist/esm/core/triple/types.d.ts +152 -0
- package/dist/esm/core/triple/types.d.ts.map +1 -0
- package/dist/esm/core/triple/types.js +7 -0
- package/dist/esm/core/triple/types.js.map +1 -0
- package/dist/esm/core/typeindex-manager.d.ts +124 -0
- package/dist/esm/core/typeindex-manager.d.ts.map +1 -0
- package/dist/esm/core/typeindex-manager.js +658 -0
- package/dist/esm/core/typeindex-manager.js.map +1 -0
- package/dist/esm/core/types.d.ts +57 -0
- package/dist/esm/core/types.d.ts.map +1 -0
- package/dist/esm/core/types.js +3 -0
- package/dist/esm/core/types.js.map +1 -0
- package/dist/esm/core/uri/index.d.ts +8 -0
- package/dist/esm/core/uri/index.d.ts.map +1 -0
- package/dist/esm/core/uri/index.js +8 -0
- package/dist/esm/core/uri/index.js.map +1 -0
- package/dist/esm/core/uri/resolver.d.ts +79 -0
- package/dist/esm/core/uri/resolver.d.ts.map +1 -0
- package/dist/esm/core/uri/resolver.js +454 -0
- package/dist/esm/core/uri/resolver.js.map +1 -0
- package/dist/esm/core/uri/types.d.ts +143 -0
- package/dist/esm/core/uri/types.d.ts.map +1 -0
- package/dist/esm/core/uri/types.js +7 -0
- package/dist/esm/core/uri/types.js.map +1 -0
- package/dist/esm/core/utils/origin-auth.d.ts +28 -0
- package/dist/esm/core/utils/origin-auth.d.ts.map +1 -0
- package/dist/esm/core/utils/origin-auth.js +42 -0
- package/dist/esm/core/utils/origin-auth.js.map +1 -0
- package/dist/esm/core/utils/pod-root.d.ts +15 -0
- package/dist/esm/core/utils/pod-root.d.ts.map +1 -0
- package/dist/esm/core/utils/pod-root.js +69 -0
- package/dist/esm/core/utils/pod-root.js.map +1 -0
- package/dist/esm/core/zod-integration.d.ts +95 -0
- package/dist/esm/core/zod-integration.d.ts.map +1 -0
- package/dist/esm/core/zod-integration.js +227 -0
- package/dist/esm/core/zod-integration.js.map +1 -0
- package/dist/esm/driver.d.ts +23 -0
- package/dist/esm/driver.d.ts.map +1 -0
- package/dist/esm/driver.js +30 -0
- package/dist/esm/driver.js.map +1 -0
- package/dist/esm/index.d.ts +23 -0
- package/dist/esm/index.d.ts.map +1 -0
- package/dist/esm/index.js +44 -0
- package/dist/esm/index.js.map +1 -0
- package/dist/esm/solid.d.ts +21 -0
- package/dist/esm/solid.d.ts.map +1 -0
- package/dist/esm/solid.js +30 -0
- package/dist/esm/solid.js.map +1 -0
- package/dist/esm/test-utils/real-test-helpers.d.ts +5 -0
- package/dist/esm/test-utils/real-test-helpers.d.ts.map +1 -0
- package/dist/esm/test-utils/real-test-helpers.js +17 -0
- package/dist/esm/test-utils/real-test-helpers.js.map +1 -0
- package/dist/esm/types/sparql-types.d.ts +27 -0
- package/dist/esm/types/sparql-types.d.ts.map +1 -0
- package/dist/esm/types/sparql-types.js +3 -0
- package/dist/esm/types/sparql-types.js.map +1 -0
- package/dist/esm/utils/find-by-iri.d.ts +9 -0
- package/dist/esm/utils/find-by-iri.d.ts.map +1 -0
- package/dist/esm/utils/find-by-iri.js +22 -0
- package/dist/esm/utils/find-by-iri.js.map +1 -0
- package/dist/esm/utils/helpers.d.ts +17 -0
- package/dist/esm/utils/helpers.d.ts.map +1 -0
- package/dist/esm/utils/helpers.js +59 -0
- package/dist/esm/utils/helpers.js.map +1 -0
- package/dist/esm/utils/namespace.d.ts +4 -0
- package/dist/esm/utils/namespace.d.ts.map +1 -0
- package/dist/esm/utils/namespace.js +30 -0
- package/dist/esm/utils/namespace.js.map +1 -0
- package/dist/esm/utils/rdf-helpers.d.ts +17 -0
- package/dist/esm/utils/rdf-helpers.d.ts.map +1 -0
- package/dist/esm/utils/rdf-helpers.js +47 -0
- package/dist/esm/utils/rdf-helpers.js.map +1 -0
- package/dist/esm/utils/rdf-validation.d.ts +25 -0
- package/dist/esm/utils/rdf-validation.d.ts.map +1 -0
- package/dist/esm/utils/rdf-validation.js +288 -0
- package/dist/esm/utils/rdf-validation.js.map +1 -0
- package/dist/esm/utils/thing-operations.d.ts +28 -0
- package/dist/esm/utils/thing-operations.d.ts.map +1 -0
- package/dist/esm/utils/thing-operations.js +249 -0
- package/dist/esm/utils/thing-operations.js.map +1 -0
- package/dist/index.d.ts +23 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +156 -0
- package/dist/index.js.map +1 -0
- package/dist/solid.d.ts +21 -0
- package/dist/solid.d.ts.map +1 -0
- package/dist/solid.js +35 -0
- package/dist/solid.js.map +1 -0
- package/dist/test-utils/real-test-helpers.d.ts +5 -0
- package/dist/test-utils/real-test-helpers.d.ts.map +1 -0
- package/dist/test-utils/real-test-helpers.js +22 -0
- package/dist/test-utils/real-test-helpers.js.map +1 -0
- package/dist/types/sparql-types.d.ts +27 -0
- package/dist/types/sparql-types.d.ts.map +1 -0
- package/dist/types/sparql-types.js +4 -0
- package/dist/types/sparql-types.js.map +1 -0
- package/dist/utils/find-by-iri.d.ts +9 -0
- package/dist/utils/find-by-iri.d.ts.map +1 -0
- package/dist/utils/find-by-iri.js +25 -0
- package/dist/utils/find-by-iri.js.map +1 -0
- package/dist/utils/helpers.d.ts +17 -0
- package/dist/utils/helpers.d.ts.map +1 -0
- package/dist/utils/helpers.js +65 -0
- package/dist/utils/helpers.js.map +1 -0
- package/dist/utils/namespace.d.ts +4 -0
- package/dist/utils/namespace.d.ts.map +1 -0
- package/dist/utils/namespace.js +33 -0
- package/dist/utils/namespace.js.map +1 -0
- package/dist/utils/rdf-helpers.d.ts +17 -0
- package/dist/utils/rdf-helpers.d.ts.map +1 -0
- package/dist/utils/rdf-helpers.js +53 -0
- package/dist/utils/rdf-helpers.js.map +1 -0
- package/dist/utils/rdf-validation.d.ts +25 -0
- package/dist/utils/rdf-validation.d.ts.map +1 -0
- package/dist/utils/rdf-validation.js +292 -0
- package/dist/utils/rdf-validation.js.map +1 -0
- package/dist/utils/thing-operations.d.ts +28 -0
- package/dist/utils/thing-operations.d.ts.map +1 -0
- package/dist/utils/thing-operations.js +256 -0
- package/dist/utils/thing-operations.js.map +1 -0
- package/package.json +98 -0
package/README.md
ADDED
|
@@ -0,0 +1,563 @@
|
|
|
1
|
+
# Drizzle Solid
|
|
2
|
+
|
|
3
|
+
一个为Solid Pod设计的类型安全ORM,基于Drizzle ORM构建,让您能够像操作传统数据库一样操作Solid Pod中的RDF数据。
|
|
4
|
+
|
|
5
|
+
## ✨ 特性
|
|
6
|
+
|
|
7
|
+
- 🔒 **类型安全**: 完整的 TypeScript 支持与严格模式提示
|
|
8
|
+
- 🧭 **Drizzle 对齐**: 沿用 Drizzle ORM 的查询构建器与错误形态,降低迁移成本
|
|
9
|
+
- 🌐 **Solid 实测**: CSS 集成测试覆盖 CRUD、条件组合、聚合与联结场景
|
|
10
|
+
- 🔁 **智能回退**: SQL 查询自动转换为 SPARQL;当 CSS/Comunica 无法处理过滤器或聚合时由方言拉取数据并在内存中回放
|
|
11
|
+
- 🔧 **灵活映射**: 自定义命名空间、谓词和列类型(字符串、数字、布尔、时间、JSON/Object)
|
|
12
|
+
|
|
13
|
+
## 🔋 服务器支持
|
|
14
|
+
|
|
15
|
+
drizzle-solid 支持两种 Solid 服务器:
|
|
16
|
+
|
|
17
|
+
### 能力对比
|
|
18
|
+
|
|
19
|
+
| 能力 | 原生 CSS | xpod |
|
|
20
|
+
|------|----------|------|
|
|
21
|
+
| **基础 CRUD** | ✅ LDP 模式 | ✅ LDP 模式 |
|
|
22
|
+
| **SPARQL SELECT** | ❌ 不支持(Comunica 客户端执行) | ✅ 服务端索引下推 |
|
|
23
|
+
| **SPARQL UPDATE** | ⚠️ 仅 BGP 写入 | ✅ 完整支持 |
|
|
24
|
+
| **条件查询** (where) | Comunica 读文件到内存 | 索引下推(单 Pod) |
|
|
25
|
+
| **聚合函数** (count/sum/avg) | Comunica 读文件到内存 | 索引下推(单 Pod) |
|
|
26
|
+
| **GROUP BY / JOIN** | Comunica 读文件到内存 | 索引下推(单 Pod) |
|
|
27
|
+
| **联邦查询** (跨 Pod) | Comunica 内存处理 | Comunica 内存处理 |
|
|
28
|
+
| **SPARQL 端点** | ❌ 不支持 | ✅ `/-/sparql` Sidecar |
|
|
29
|
+
| **SPARQL 1.1 覆盖率** | - | ~90% |
|
|
30
|
+
|
|
31
|
+
### 原生 Community Solid Server (CSS)
|
|
32
|
+
|
|
33
|
+
原生 CSS **不支持 SPARQL SELECT**,drizzle-solid 通过 **Comunica 客户端**读取文件到内存后执行查询:
|
|
34
|
+
- ✅ 基本的 CRUD 操作(LDP)
|
|
35
|
+
- ⚠️ 写入仅支持 BGP(Basic Graph Pattern)
|
|
36
|
+
- ⚠️ 所有查询由 Comunica 客户端在内存中执行
|
|
37
|
+
|
|
38
|
+
### xpod - 扩展的 CSS (推荐)
|
|
39
|
+
|
|
40
|
+
**xpod** 使用 **QuintStore**(五元组存储,GSPOV)替代文件存储,通过 6 组索引实现查询下推:
|
|
41
|
+
|
|
42
|
+
- ✅ **SPARQL SELECT 服务端执行**:查询下推到 QuintStore 索引
|
|
43
|
+
- ✅ **Sidecar API**:`/-/sparql` 端点,权限继承自资源路径
|
|
44
|
+
- ✅ **混合存储**:RDF → QuintStore 索引,非 RDF → 文件系统
|
|
45
|
+
- ⚠️ **联邦查询**:跨 Pod 查询仍需 Comunica 内存处理
|
|
46
|
+
- ⚠️ **SPARQL 覆盖**:约 90% W3C SPARQL 1.1 测试通过
|
|
47
|
+
|
|
48
|
+
**仓库**:https://github.com/undefinedsco/xpod | **详细对比**:[xpod 特性文档](./docs/xpod-features.md)
|
|
49
|
+
|
|
50
|
+
## 🚀 快速开始
|
|
51
|
+
|
|
52
|
+
### 安装
|
|
53
|
+
|
|
54
|
+
```bash
|
|
55
|
+
yarn add drizzle-solid
|
|
56
|
+
```
|
|
57
|
+
|
|
58
|
+
### 基本用法
|
|
59
|
+
|
|
60
|
+
```typescript
|
|
61
|
+
import { drizzle } from 'drizzle-solid';
|
|
62
|
+
import { podTable, string, int } from 'drizzle-solid';
|
|
63
|
+
import { Session } from '@inrupt/solid-client-authn-node';
|
|
64
|
+
|
|
65
|
+
// 定义表结构
|
|
66
|
+
const profileTable = podTable('profile', {
|
|
67
|
+
name: string('name'),
|
|
68
|
+
email: string('email'),
|
|
69
|
+
age: int('age')
|
|
70
|
+
}, {
|
|
71
|
+
// 相对 Pod 根的容器/资源路径,不需要 idp:// 前缀
|
|
72
|
+
base: '/profiles/',
|
|
73
|
+
type: 'https://schema.org/Person'
|
|
74
|
+
});
|
|
75
|
+
|
|
76
|
+
// 自定义 subject 模板示例:按年月目录、文件名是 id,仍指向单独文件
|
|
77
|
+
const logsTable = podTable('logs', {
|
|
78
|
+
id: string('id').primaryKey(),
|
|
79
|
+
message: string('message')
|
|
80
|
+
}, {
|
|
81
|
+
type: 'https://schema.org/DigitalDocument',
|
|
82
|
+
base: '/logs/',
|
|
83
|
+
subjectTemplate: '{yyyy}/{MM}/{dd}/{id}.ttl'
|
|
84
|
+
});
|
|
85
|
+
|
|
86
|
+
// subjectTemplate(选填):
|
|
87
|
+
// - 作用:控制每条记录主体 URI 的形态,支持占位符 {yyyy}/{MM}/{dd}/{HH}/{mm}/{ss}/{id}。
|
|
88
|
+
// - 推断:未指定时按 base 判断:base 是容器(以 / 结尾且包含表名)→ document 模式;base 是具体文件 → fragment 模式。模板含 #(如 '#{id}')也强制 fragment;其他模板按 document 处理,可用 {yyyy}/{MM}/{dd}/{id}.ttl 等。
|
|
89
|
+
// - document 模式:每条记录独立文件,URI 形如 .../users/{id}.ttl,SELECT/UPDATE/DELETE 由 Comunica dereference 目标文件后本地求值;适合记录级隔离/按目录分片。
|
|
90
|
+
// - fragment 模式:多条记录共享同一文件,主体是片段(.../file.ttl#{id}),SELECT 同样由 Comunica 拉取该文件求值;适合小表或聚合存放的数据。
|
|
91
|
+
// - 示例:subjectTemplate: '{yyyy}/{MM}/{dd}/{id}.ttl'(document 分日期分片);subjectTemplate: '#{id}'(fragment,共享文件)。
|
|
92
|
+
|
|
93
|
+
// 创建数据库连接
|
|
94
|
+
const session = new Session(); // 已认证的session
|
|
95
|
+
const db = drizzle(session);
|
|
96
|
+
|
|
97
|
+
// 初始化需要使用的表(创建容器、资源并注册 TypeIndex)
|
|
98
|
+
await db.init([profileTable]);
|
|
99
|
+
|
|
100
|
+
// 查询数据
|
|
101
|
+
const profiles = await db.select().from(profileTable);
|
|
102
|
+
|
|
103
|
+
// 插入数据
|
|
104
|
+
await db.insert(profileTable).values({
|
|
105
|
+
name: 'Alice',
|
|
106
|
+
email: 'alice@example.com',
|
|
107
|
+
age: 30
|
|
108
|
+
});
|
|
109
|
+
|
|
110
|
+
// 使用 SPARQL 端点(适用于 xpod)
|
|
111
|
+
const sparqlTable = podTable('posts', {
|
|
112
|
+
id: string('id').primaryKey(),
|
|
113
|
+
title: string('title'),
|
|
114
|
+
}, {
|
|
115
|
+
type: 'https://schema.org/CreativeWork',
|
|
116
|
+
base: '/data/posts.ttl', // 资源路径
|
|
117
|
+
sparqlEndpoint: '/data/posts.ttl/-/sparql' // xpod Sidecar 模式端点
|
|
118
|
+
// 💡 xpod 使用 Sidecar 模式:在资源路径后添加 /-/sparql 后缀
|
|
119
|
+
// - 文件资源: /data/posts.ttl/-/sparql
|
|
120
|
+
// - 容器: /data/users/-/sparql
|
|
121
|
+
});
|
|
122
|
+
await db.init([sparqlTable]); // 不会创建容器,直接使用端点执行 SPARQL UPDATE/SELECT
|
|
123
|
+
await db.insert(sparqlTable).values({ id: 'post-1', title: 'Hello SPARQL' });
|
|
124
|
+
|
|
125
|
+
### SPARQL Endpoint 模式兼容性说明 (重要!)
|
|
126
|
+
|
|
127
|
+
当 `podTable` 配置 `sparqlEndpoint` 时,Drizzle Solid 会直接使用该端点执行所有 CRUD 操作。理解其行为模式对于数据一致性至关重要:
|
|
128
|
+
|
|
129
|
+
1. **Fragment Mode (聚合 Named Graph)**:
|
|
130
|
+
* **定义**: 当表的 `base` 指向一个具体资源 URL (例如 `/data/posts.ttl`),或者 `subjectTemplate` 使用片段 (例如 `'#{id}'`) 时,Drizzle Solid 会将所有数据操作集中在 `base` 对应的单一 Named Graph (`GRAPH <base_url>`) 中。
|
|
131
|
+
* **行为**: 在此模式下,LDP 读写与 SPARQL 读写**完全兼容且互操作**。LDP 对 `base` 资源的 PATCH/GET 操作,与 SPARQL 对 `GRAPH <base_url>` 的 DML/SELECT 操作,都作用于相同的数据集,并能互相可见。**这是 SPARQL Endpoint 模式下的推荐用法**。
|
|
132
|
+
* **示例**: `base: '/data/posts.ttl'`, `subjectTemplate: '#{id}'`。所有 posts 都存储在 `posts.ttl` 文件对应的 Named Graph 中。
|
|
133
|
+
|
|
134
|
+
2. **Document Mode (聚合视图,写操作不兼容)**:
|
|
135
|
+
* **定义**: 当表的 `base` 指向一个容器 URL (例如 `/data/users/`),且 `subjectTemplate` 生成文件路径 (例如 `'{id}.ttl'`) 时。
|
|
136
|
+
* **读操作 (SELECT)**: SPARQL SELECT 查询指向容器的 `/sparql` 端点时,Community Solid Server (CSS) 会**聚合该容器内所有 LDP 子文件**的数据,形成一个统一的视图。因此,通过 LDP PUT 写入的子文件 (例如 `alice.ttl`),**可以被 SPARQL SELECT 查询到**。
|
|
137
|
+
* **写操作 (DML)**: SPARQL INSERT/UPDATE/DELETE 操作是针对**容器的聚合 Named Graph** (`GRAPH <container_url>`)。这些操作**不会**直接创建、修改或删除 LDP 子文件。
|
|
138
|
+
* 例如,通过 SPARQL INSERT 写入 `bob`,数据会存在容器 Graph 中,但**不会**创建 `bob.ttl` 文件 (LDP GET `/data/users/bob.ttl` 将返回 404)。
|
|
139
|
+
* 通过 SPARQL UPDATE `alice`,只会修改容器 Graph 中的 `alice` 数据(SPARQL 视图),而**不会**更新 `alice.ttl` 文件本身 (LDP GET `/data/users/alice.ttl` 将显示旧数据)。
|
|
140
|
+
* **结论**: 在 Document Mode 下,SPARQL 读操作可以兼容 LDP 资源(因为聚合),但 **写操作与 LDP 资源的物理文件视图不兼容**。这意味着 LDP 客户端可能无法看到 SPARQL DML 操作的影响,反之亦然。**不建议混合使用 LDP Document Mode 和 SPARQL DML 操作**,除非您明确理解其数据存储的视图差异,并仅利用 SPARQL 作为聚合查询工具。
|
|
141
|
+
|
|
142
|
+
|
|
143
|
+
```
|
|
144
|
+
|
|
145
|
+
## 📚 示例教程
|
|
146
|
+
|
|
147
|
+
我们提供了完整的示例来帮助您快速上手:
|
|
148
|
+
|
|
149
|
+
### 🏗️ 示例1: 快速开始
|
|
150
|
+
|
|
151
|
+
```bash
|
|
152
|
+
yarn example:quick
|
|
153
|
+
```
|
|
154
|
+
|
|
155
|
+
这个示例展示:
|
|
156
|
+
- 如何连接到 Solid Pod 并定义表结构
|
|
157
|
+
- 使用 Drizzle 风格 API 执行插入、查询、更新、删除
|
|
158
|
+
|
|
159
|
+
### 📖 示例2: 关系查询
|
|
160
|
+
|
|
161
|
+
```bash
|
|
162
|
+
yarn example:query
|
|
163
|
+
```
|
|
164
|
+
|
|
165
|
+
这个示例展示:
|
|
166
|
+
- 如何定义表之间的关系
|
|
167
|
+
- 使用 `with` 进行关联查询
|
|
168
|
+
- 嵌套数据的加载方式
|
|
169
|
+
|
|
170
|
+
### 🛠️ 示例3: 零配置数据发现
|
|
171
|
+
|
|
172
|
+
```bash
|
|
173
|
+
yarn example:discovery
|
|
174
|
+
```
|
|
175
|
+
|
|
176
|
+
这个示例展示:
|
|
177
|
+
- 如何使用 TypeIndex 自动发现数据位置
|
|
178
|
+
- SAI (Solid Application Interoperability) 数据授权
|
|
179
|
+
- 无需硬编码路径的数据访问
|
|
180
|
+
|
|
181
|
+
## 📖 详细文档
|
|
182
|
+
|
|
183
|
+
### 表定义
|
|
184
|
+
|
|
185
|
+
```typescript
|
|
186
|
+
import { podTable, string, int, boolean, date, uri, eq, gte, and } from 'drizzle-solid';
|
|
187
|
+
|
|
188
|
+
const userTable = podTable('users', {
|
|
189
|
+
name: string('name'), // foaf:name
|
|
190
|
+
email: string('email'), // foaf:mbox
|
|
191
|
+
age: int('age'), // foaf:age
|
|
192
|
+
verified: boolean('verified'), // 自定义谓词
|
|
193
|
+
createdAt: date('createdAt'), // dcterms:created
|
|
194
|
+
organization: uri('organization')
|
|
195
|
+
.predicate('https://schema.org/member') // <org> schema:member <person>
|
|
196
|
+
.inverse()
|
|
197
|
+
}, {
|
|
198
|
+
// 目标 Turtle 资源,必填,可以是相对 Pod 路径或绝对 URL
|
|
199
|
+
base: 'data/users.ttl',
|
|
200
|
+
// 主体类型
|
|
201
|
+
type: 'https://schema.org/Person',
|
|
202
|
+
// 可选:注册 TypeIndex(仅在提供 typeIndex 时才会尝试)
|
|
203
|
+
typeIndex: 'private' // 'public' | 'private' | undefined
|
|
204
|
+
});
|
|
205
|
+
|
|
206
|
+
// 初始化:在 CRUD 前确保容器/资源存在(会按 base 自动创建)
|
|
207
|
+
await db.init([userTable]);
|
|
208
|
+
```
|
|
209
|
+
|
|
210
|
+
- 使用 `.inverse()` 可以把列映射为 `<object> predicate <subject>` 方向,适合例如 `<org> schema:member <person>` 这样的反向边;查询/写入都会自动交换 RDF 三元组的主体和宾语。
|
|
211
|
+
|
|
212
|
+
### Drizzle 风格查询:`db.query` + `findByIRI`
|
|
213
|
+
|
|
214
|
+
将 schema 传入 `drizzle(session, { schema })` 后,可通过 Drizzle 对齐的查询助手调用:
|
|
215
|
+
|
|
216
|
+
```ts
|
|
217
|
+
import * as schema from './schema';
|
|
218
|
+
const db = drizzle(session, { schema });
|
|
219
|
+
|
|
220
|
+
const users = await db.query.users.findMany({
|
|
221
|
+
where: { verified: true },
|
|
222
|
+
orderBy: [{ column: schema.users.name, direction: 'asc' }],
|
|
223
|
+
with: {
|
|
224
|
+
posts: true // 根据子表 referenceTarget + @id 预加载关联行
|
|
225
|
+
}
|
|
226
|
+
});
|
|
227
|
+
|
|
228
|
+
// 通过 IRI 查找单条记录(推荐使用 db.findByIri)
|
|
229
|
+
const alice = await db.findByIri(schema.users, 'https://pod.example/data/users.ttl#alice');
|
|
230
|
+
```
|
|
231
|
+
|
|
232
|
+
- `findMany/findFirst/findById/count` 与 Drizzle ORM 行为一致,复用现有 `select` 管道。
|
|
233
|
+
- `with` 支持基于 `reference(target)` 的引用外键(通过 `@id` 关联),结果会嵌套数组挂在相应键上。
|
|
234
|
+
- `db.findByIri(table, iri)` 可直接接受绝对 IRI 或 fragment(无协议时按 `id` 匹配),推荐使用此方法。
|
|
235
|
+
- TypeIndex 注册策略:仅当表配置了 `typeIndex: 'private' | 'public'` 时才会尝试写入 TypeIndex;未配置则跳过。
|
|
236
|
+
|
|
237
|
+
### 支持的列类型
|
|
238
|
+
|
|
239
|
+
Drizzle Solid 完全兼容所有 Drizzle ORM 数据库方言的列类型:
|
|
240
|
+
|
|
241
|
+
#### 基础类型
|
|
242
|
+
```typescript
|
|
243
|
+
// 字符串类型
|
|
244
|
+
string('name') // 通用字符串
|
|
245
|
+
text('content') // 文本内容
|
|
246
|
+
varchar('title') // 可变长度字符串
|
|
247
|
+
char('code') // 固定长度字符串
|
|
248
|
+
|
|
249
|
+
// 数字类型
|
|
250
|
+
int('count') // MySQL 风格整数
|
|
251
|
+
integer('id') // PostgreSQL 风格整数
|
|
252
|
+
bigint('large') // 大整数
|
|
253
|
+
smallint('small') // 小整数
|
|
254
|
+
tinyint('tiny') // 微整数 (MySQL)
|
|
255
|
+
mediumint('medium') // 中等整数 (MySQL)
|
|
256
|
+
serial('auto') // 自增序列
|
|
257
|
+
|
|
258
|
+
// 浮点数类型(内部映射为 xsd:decimal)
|
|
259
|
+
real('price') // 实数
|
|
260
|
+
decimal('amount') // 十进制数
|
|
261
|
+
numeric('value') // 数值
|
|
262
|
+
float('ratio') // 单精度浮点
|
|
263
|
+
double('precise') // 双精度浮点
|
|
264
|
+
|
|
265
|
+
// 布尔类型
|
|
266
|
+
boolean('active') // 布尔值
|
|
267
|
+
|
|
268
|
+
// 日期时间类型
|
|
269
|
+
date('birthday') // 日期
|
|
270
|
+
datetime('event') // 日期时间
|
|
271
|
+
timestamp('created') // 时间戳
|
|
272
|
+
|
|
273
|
+
// JSON 类型
|
|
274
|
+
json('data') // JSON 数据
|
|
275
|
+
jsonb('config') // 二进制 JSON (PostgreSQL)
|
|
276
|
+
object('metadata') // 对象类型 (扩展)
|
|
277
|
+
```
|
|
278
|
+
|
|
279
|
+
### 查询操作
|
|
280
|
+
|
|
281
|
+
```typescript
|
|
282
|
+
// 查询所有记录
|
|
283
|
+
const users = await db.select().from(userTable);
|
|
284
|
+
|
|
285
|
+
// 条件查询
|
|
286
|
+
const adults = await db.select()
|
|
287
|
+
.from(userTable)
|
|
288
|
+
.where(gte(userTable.age, 18));
|
|
289
|
+
|
|
290
|
+
// 选择特定字段
|
|
291
|
+
const names = await db.select({ name: userTable.name })
|
|
292
|
+
.from(userTable);
|
|
293
|
+
|
|
294
|
+
// 使用条件构建器
|
|
295
|
+
const verifiedAdults = await db.select()
|
|
296
|
+
.from(userTable)
|
|
297
|
+
.where(and(gte(userTable.age, 18), eq(userTable.verified, true)));
|
|
298
|
+
|
|
299
|
+
// 排序、分页查询
|
|
300
|
+
const recentUsers = await db.select()
|
|
301
|
+
.from(userTable)
|
|
302
|
+
.orderBy(userTable.createdAt, 'desc') // 默认升序,可显式指定 'desc'
|
|
303
|
+
.limit(10) // 取前 10 条
|
|
304
|
+
.offset(10); // 跳过前 10 条,实现分页
|
|
305
|
+
|
|
306
|
+
// DISTINCT 查询,去重后返回唯一记录
|
|
307
|
+
const uniqueEmails = await db.select({ email: userTable.email })
|
|
308
|
+
.from(userTable)
|
|
309
|
+
.distinct();
|
|
310
|
+
```
|
|
311
|
+
|
|
312
|
+
### 聚合查询
|
|
313
|
+
|
|
314
|
+
```typescript
|
|
315
|
+
import { count, max } from 'drizzle-solid';
|
|
316
|
+
|
|
317
|
+
const stats = await db
|
|
318
|
+
.select({
|
|
319
|
+
totalUsers: count(),
|
|
320
|
+
oldestAge: max(userTable.age)
|
|
321
|
+
})
|
|
322
|
+
.from(userTable)
|
|
323
|
+
.where(gte(userTable.age, 18));
|
|
324
|
+
|
|
325
|
+
console.log(stats[0]);
|
|
326
|
+
// { totalUsers: 42, oldestAge: 63 }
|
|
327
|
+
```
|
|
328
|
+
|
|
329
|
+
> 当前聚合支持 `count/sum/avg/min/max`,由客户端在内存中计算,选择列表需全部为聚合字段;`JOIN` 与 `GROUP BY` 亦已通过客户端回放实现(在 CSS 升级至最新 Comunica 前仍保留此策略)。
|
|
330
|
+
|
|
331
|
+
### 插入数据
|
|
332
|
+
|
|
333
|
+
```typescript
|
|
334
|
+
// 插入单条记录
|
|
335
|
+
await db.insert(userTable).values({
|
|
336
|
+
name: 'Bob',
|
|
337
|
+
email: 'bob@example.com',
|
|
338
|
+
age: 25
|
|
339
|
+
});
|
|
340
|
+
|
|
341
|
+
// 批量插入
|
|
342
|
+
await db.insert(userTable).values([
|
|
343
|
+
{ name: 'Alice', email: 'alice@example.com', age: 30 },
|
|
344
|
+
{ name: 'Charlie', email: 'charlie@example.com', age: 35 }
|
|
345
|
+
]);
|
|
346
|
+
```
|
|
347
|
+
|
|
348
|
+
### 更新数据
|
|
349
|
+
|
|
350
|
+
```typescript
|
|
351
|
+
await db.update(userTable)
|
|
352
|
+
.set({ age: 26 })
|
|
353
|
+
.where(eq(userTable.name, 'Bob'));
|
|
354
|
+
```
|
|
355
|
+
|
|
356
|
+
### 删除数据
|
|
357
|
+
|
|
358
|
+
```typescript
|
|
359
|
+
await db.delete(userTable)
|
|
360
|
+
.where(eq(userTable.name, 'Bob'));
|
|
361
|
+
```
|
|
362
|
+
|
|
363
|
+
## 🔍 数据发现与零配置访问 (Data Discovery & Interoperability)
|
|
364
|
+
|
|
365
|
+
Drizzle Solid 实现了 Solid 的 **TypeIndex** 和 **SAI (Application Interoperability)** 规范,这意味着您**不需要**硬编码数据的具体路径(`base`)。只要定义好 RDF 类型,Drizzle 就会自动帮您找到数据,无论它是在您自己的 Pod 里,还是别人通过 SAI 授权给您的。
|
|
366
|
+
|
|
367
|
+
### 核心概念
|
|
368
|
+
|
|
369
|
+
- **TypeIndex**: 您的“个人数据索引”,记录了“我的笔记在哪里”、“我的联系人在哪里”。适合单用户场景。
|
|
370
|
+
- **SAI Discovery**: 一种更高级的发现机制,用于发现**跨 Pod** 共享的数据(例如 Alice 分享给 Bob 的聊天室)。适合社交、协作场景。
|
|
371
|
+
|
|
372
|
+
### 如何启用自动发现?
|
|
373
|
+
|
|
374
|
+
只需在定义表时,移除 `base` 属性,并设置 `typeIndex: 'private'`(或 `'public'`):
|
|
375
|
+
|
|
376
|
+
```typescript
|
|
377
|
+
const messageTable = podTable('message', {
|
|
378
|
+
id: id(),
|
|
379
|
+
content: string('content').predicate('http://schema.org/text'),
|
|
380
|
+
}, {
|
|
381
|
+
type: 'http://schema.org/Message',
|
|
382
|
+
typeIndex: 'private' // ✨ 开启自动发现魔法
|
|
383
|
+
});
|
|
384
|
+
|
|
385
|
+
// 当您执行查询时,Drizzle 会自动:
|
|
386
|
+
// 1. 查您的 Private TypeIndex
|
|
387
|
+
// 2. 如果没找到,查 SAI Agent Registry (查看是否有授权给您的数据)
|
|
388
|
+
// 3. 找到数据位置后,自动定向查询
|
|
389
|
+
const messages = await db.select().from(messageTable);
|
|
390
|
+
```
|
|
391
|
+
|
|
392
|
+
### 跨 Pod 聊天应用示例 (SAI Chat)
|
|
393
|
+
|
|
394
|
+
这是一个展示如何利用 SAI 发现机制构建“零配置”聊天应用的完整示例。Bob 不需要知道 Alice 的聊天室 URL,只要 Alice 授权了,Bob 的应用就能自动发现并加入聊天。
|
|
395
|
+
|
|
396
|
+
> 查看完整可运行代码:[`examples/04-sai-chat.ts`](examples/04-sai-chat.ts)
|
|
397
|
+
|
|
398
|
+
```typescript
|
|
399
|
+
// 1. 定义通用的消息表(不绑定具体路径)
|
|
400
|
+
const messageTable = podTable('message', {
|
|
401
|
+
id: id(),
|
|
402
|
+
content: string('content').predicate('http://schema.org/text'),
|
|
403
|
+
author: uri('author').predicate('http://schema.org/author'),
|
|
404
|
+
createdAt: datetime('createdAt').predicate('http://schema.org/dateCreated')
|
|
405
|
+
}, {
|
|
406
|
+
type: 'http://schema.org/Message',
|
|
407
|
+
typeIndex: 'private', // 启用发现
|
|
408
|
+
autoRegister: false // 对于访客 Bob,不仅不需要注册,而且不能注册到自己的 TypeIndex
|
|
409
|
+
});
|
|
410
|
+
|
|
411
|
+
// 2. Alice (房主) 初始化聊天室
|
|
412
|
+
// Alice 需要明确指定存储位置 (base)
|
|
413
|
+
const aliceChatTable = podTable('message', { ...messageTable.columns }, {
|
|
414
|
+
...messageTable.config,
|
|
415
|
+
base: 'https://alice.pod/data/chat/room.ttl',
|
|
416
|
+
subjectTemplate: '#{id}' // 强制单文件存储模式
|
|
417
|
+
});
|
|
418
|
+
await db.insert(aliceChatTable).values({ ... });
|
|
419
|
+
|
|
420
|
+
// ... (Alice 通过 SAI 授权给 Bob,此处省略 SAI 注册代码) ...
|
|
421
|
+
|
|
422
|
+
// 3. Bob (访客) 发现并回复
|
|
423
|
+
// Bob 初始化 Drizzle 时,完全不需要知道 room.ttl 的地址
|
|
424
|
+
const bobDb = drizzle(bobSession);
|
|
425
|
+
|
|
426
|
+
// 读取:自动发现 Alice 分享的数据
|
|
427
|
+
const messages = await bobDb.select().from(messageTable);
|
|
428
|
+
console.log(messages); // 包含 Alice 的消息
|
|
429
|
+
|
|
430
|
+
// 写入:自动向发现的地址写入回复
|
|
431
|
+
await bobDb.insert(messageTable).values({
|
|
432
|
+
content: 'Hi Alice! I found your chat room!',
|
|
433
|
+
author: bobSession.info.webId
|
|
434
|
+
});
|
|
435
|
+
```
|
|
436
|
+
|
|
437
|
+
### Discovery 策略
|
|
438
|
+
|
|
439
|
+
Drizzle Solid 使用组合策略 (`CompositeDiscovery`):
|
|
440
|
+
1. **TypeIndex 优先**:检查用户的 `privateTypeIndex.ttl` 和 `publicTypeIndex.ttl`。
|
|
441
|
+
2. **SAI 后备**:如果 TypeIndex 未命中,检查用户的 Profile -> RegistrySet -> Agent Registry,寻找匹配当前 ClientID 的 Data Grant。
|
|
442
|
+
|
|
443
|
+
这种设计确保了既能兼容旧的 Solid 应用(基于 TypeIndex),又能支持未来的互操作性规范(SAI)。
|
|
444
|
+
|
|
445
|
+
架构说明见 `docs/guides/architecture.md`。
|
|
446
|
+
|
|
447
|
+
## ✅ 当前 SQL 支持范围
|
|
448
|
+
|
|
449
|
+
- 已实现:`select/insert/update/delete`、Drizzle 风格的 `where` 条件构建器(`eq/ne/lt/gte/like/inArray/not` 等)、`orderBy`、`limit/offset`、`distinct`、嵌套布尔组合,以及 `count/sum/avg/min/max` 聚合、`leftJoin/innerJoin` 和 `GROUP BY`。
|
|
450
|
+
- 运行策略:
|
|
451
|
+
- **xpod + 单 Pod**:查询下推到 QuintStore 索引执行
|
|
452
|
+
- **原生 CSS / 联邦查询**:Comunica 将数据读入内存后执行
|
|
453
|
+
- 未实现:`rightJoin`/`fullJoin`(待评估 xpod 支持情况)
|
|
454
|
+
- 未覆盖:`HAVING`、窗口函数、`UNION/UNION ALL`、子查询与跨容器联结;如需这些能力,请暂时改用手写 SPARQL 或拆分查询。
|
|
455
|
+
|
|
456
|
+
## 🗺️ Roadmap
|
|
457
|
+
|
|
458
|
+
- **`rightJoin`/`fullJoin` 支持**: 待评估 xpod SPARQL 能力后实现,详见[设计方案](docs/guides/right-full-join-sparql-design.md)。
|
|
459
|
+
|
|
460
|
+
## 🔧 配置
|
|
461
|
+
|
|
462
|
+
### 自定义命名空间
|
|
463
|
+
|
|
464
|
+
Drizzle Solid 不再内置 vocab 常量,请从 RDF vocab 库(例如 `@inrupt/vocab-common-rdf`)导入需要的术语;若需要扩展缺失字段,可使用 `extendNamespace`:
|
|
465
|
+
|
|
466
|
+
```typescript
|
|
467
|
+
import { podTable, string, extendNamespace } from 'drizzle-solid';
|
|
468
|
+
import { SCHEMA_INRUPT as SCHEMA } from '@inrupt/vocab-common-rdf';
|
|
469
|
+
|
|
470
|
+
const LINQ = extendNamespace(
|
|
471
|
+
{ prefix: 'linq', uri: 'https://linq.dev/ns/' },
|
|
472
|
+
{ favorite: 'profile#favorite' },
|
|
473
|
+
{ namespace: 'https://linq.dev/ns/' }
|
|
474
|
+
);
|
|
475
|
+
|
|
476
|
+
const customTable = podTable('custom', {
|
|
477
|
+
title: string('title').predicate(`${SCHEMA.NAMESPACE}title`),
|
|
478
|
+
favorite: string('favorite').predicate(LINQ.favorite)
|
|
479
|
+
}, {
|
|
480
|
+
base: 'idp:///custom/index.ttl', // 目标资源
|
|
481
|
+
type: `${SCHEMA.NAMESPACE}CreativeWork`,
|
|
482
|
+
namespace: LINQ
|
|
483
|
+
});
|
|
484
|
+
```
|
|
485
|
+
|
|
486
|
+
### 认证配置
|
|
487
|
+
|
|
488
|
+
```typescript
|
|
489
|
+
import { Session } from '@inrupt/solid-client-authn-node';
|
|
490
|
+
|
|
491
|
+
const session = new Session();
|
|
492
|
+
await session.login({
|
|
493
|
+
oidcIssuer: 'https://solidcommunity.net',
|
|
494
|
+
redirectUrl: 'http://localhost:3000/callback',
|
|
495
|
+
clientName: 'My Solid App'
|
|
496
|
+
});
|
|
497
|
+
|
|
498
|
+
const db = drizzle(session);
|
|
499
|
+
```
|
|
500
|
+
|
|
501
|
+
### `base` / `@id` / `id` 与 Pod 根的关系
|
|
502
|
+
|
|
503
|
+
- `podUrl`(Pod 根)由 WebID 推导,所有相对路径都基于它解析。
|
|
504
|
+
- `base` 是表的目标 Turtle 资源(必填),可为相对路径或绝对 URL。示例:`base: '/data/contacts.ttl'` → `https://pod.example/data/contacts.ttl`。
|
|
505
|
+
- 写入:
|
|
506
|
+
- 提供 `@id` 则直接作为 subject;
|
|
507
|
+
- 提供 `id`(或库自动生成)则 subject 形如 `base#<id>`(或按表的 subject 模板选择 `#`/`/`)。
|
|
508
|
+
- 查询:
|
|
509
|
+
- `where({ '@id': 'https://…#foo' })` 精确匹配该 subject;
|
|
510
|
+
- `where({ id: 'foo' })` 匹配 fragment 为 `foo` 且落在该表 `base` 下的 subject。
|
|
511
|
+
- `base` 同时决定存储地址(PUT/PATCH 目标)和 subject 生成;`podUrl` 只负责解析相对的 `base`。
|
|
512
|
+
|
|
513
|
+
## 🏗️ 架构
|
|
514
|
+
|
|
515
|
+
Drizzle Solid基于以下组件构建:
|
|
516
|
+
|
|
517
|
+
- **PodDialect**: Solid Pod的Drizzle方言实现
|
|
518
|
+
- **SPARQL转换器**: 将Drizzle查询转换为SPARQL
|
|
519
|
+
- **Comunica执行器**: 执行SPARQL查询
|
|
520
|
+
- **类型系统**: 完整的TypeScript类型支持
|
|
521
|
+
|
|
522
|
+
### Comunica CRUD 流程
|
|
523
|
+
|
|
524
|
+
- 查询会经过 AST → SPARQL 转换;若 Comunica 无法执行带过滤器/聚合的 `UPDATE`/`DELETE`,方言会先通过 `SELECT` 拉取命中的 subject,再以 PATCH 方式回写,实现与 SQL 行级操作一致的语义。
|
|
525
|
+
- `PodDialect` 会自动推导目标容器与 `.ttl` 资源文件路径,必要时发送 `HEAD`/`PUT` 请求确保容器和资源已经存在,再交由 Comunica 处理数据修改。
|
|
526
|
+
- 插入会预先读取现有资源以检测重复 subject,避免重复写入;删除或更新只针对匹配的 subject 生成最小化补丁。
|
|
527
|
+
- 对于 `JOIN`、`GROUP BY` 与聚合,选取的数据仍由 SPARQL 拉取,但结果会在内存中组合或聚合,直到 CSS 升级到支持完整 SPARQL 1.1 为止。
|
|
528
|
+
|
|
529
|
+
## 🤝 贡献
|
|
530
|
+
|
|
531
|
+
欢迎贡献代码!请阅读 [CONTRIBUTING.md](CONTRIBUTING.md) 了解测试要求、提交流程与验证内容。
|
|
532
|
+
|
|
533
|
+
在提交 PR 之前,请同步运行完整的 CSS 集成测试(覆盖 CRUD、TypeIndex 等场景):
|
|
534
|
+
|
|
535
|
+
```bash
|
|
536
|
+
SOLID_ENABLE_REAL_TESTS=true npx vitest run tests/integration/css --runInBand
|
|
537
|
+
```
|
|
538
|
+
|
|
539
|
+
> `SOLID_ENABLE_REAL_TESTS=true` 会启用真实 Pod,`--runInBand` 保证所有 suite 共用一个会话并顺序执行,避免对 OIDC 服务造成并发压力。
|
|
540
|
+
|
|
541
|
+
## 📄 许可证
|
|
542
|
+
|
|
543
|
+
MIT License - 查看[LICENSE](LICENSE)文件了解详情。
|
|
544
|
+
|
|
545
|
+
## 🔗 相关链接
|
|
546
|
+
|
|
547
|
+
- [Drizzle ORM](https://orm.drizzle.team/)
|
|
548
|
+
- [Solid Project](https://solidproject.org/)
|
|
549
|
+
- [Community Solid Server](https://github.com/CommunitySolidServer/CommunitySolidServer)
|
|
550
|
+
- [Inrupt Solid Client](https://github.com/inrupt/solid-client-js)
|
|
551
|
+
|
|
552
|
+
|
|
553
|
+
## 📞 支持
|
|
554
|
+
|
|
555
|
+
如果遇到问题,可先查阅:
|
|
556
|
+
|
|
557
|
+
1. `docs/quick-start-local.md` 获取本地 CSS 启动与疑难解答
|
|
558
|
+
2. `examples/README.md` 了解脚本入口与运行方式
|
|
559
|
+
3. [Issue 列表](https://github.com/undefinedsco/drizzle-solid/issues) 提交复现步骤与日志
|
|
560
|
+
|
|
561
|
+
---
|
|
562
|
+
|
|
563
|
+
**开始您的 Solid 数据之旅!** 🚀
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
import { PodColumnBase } from './schema';
|
|
2
|
+
export type AggregateFunction = 'count' | 'sum' | 'avg' | 'min' | 'max';
|
|
3
|
+
export interface AggregateExpression {
|
|
4
|
+
kind: 'aggregate';
|
|
5
|
+
func: AggregateFunction;
|
|
6
|
+
column?: PodColumnBase | string;
|
|
7
|
+
distinct?: boolean;
|
|
8
|
+
}
|
|
9
|
+
interface AggregateOptions {
|
|
10
|
+
distinct?: boolean;
|
|
11
|
+
}
|
|
12
|
+
export declare function count(column?: PodColumnBase | string, options?: AggregateOptions): AggregateExpression;
|
|
13
|
+
export declare function sum(column: PodColumnBase | string, options?: AggregateOptions): AggregateExpression;
|
|
14
|
+
export declare function avg(column: PodColumnBase | string, options?: AggregateOptions): AggregateExpression;
|
|
15
|
+
export declare function min(column: PodColumnBase | string, options?: AggregateOptions): AggregateExpression;
|
|
16
|
+
export declare function max(column: PodColumnBase | string, options?: AggregateOptions): AggregateExpression;
|
|
17
|
+
export declare function isAggregateExpression(value: unknown): value is AggregateExpression;
|
|
18
|
+
export {};
|
|
19
|
+
//# sourceMappingURL=aggregates.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"aggregates.d.ts","sourceRoot":"","sources":["../../src/core/aggregates.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AAEzC,MAAM,MAAM,iBAAiB,GAAG,OAAO,GAAG,KAAK,GAAG,KAAK,GAAG,KAAK,GAAG,KAAK,CAAC;AAExE,MAAM,WAAW,mBAAmB;IAClC,IAAI,EAAE,WAAW,CAAC;IAClB,IAAI,EAAE,iBAAiB,CAAC;IACxB,MAAM,CAAC,EAAE,aAAa,GAAG,MAAM,CAAC;IAChC,QAAQ,CAAC,EAAE,OAAO,CAAC;CACpB;AAED,UAAU,gBAAgB;IACxB,QAAQ,CAAC,EAAE,OAAO,CAAC;CACpB;AA8BD,wBAAgB,KAAK,CACnB,MAAM,CAAC,EAAE,aAAa,GAAG,MAAM,EAC/B,OAAO,CAAC,EAAE,gBAAgB,GACzB,mBAAmB,CAErB;AAED,wBAAgB,GAAG,CACjB,MAAM,EAAE,aAAa,GAAG,MAAM,EAC9B,OAAO,CAAC,EAAE,gBAAgB,GACzB,mBAAmB,CAGrB;AAED,wBAAgB,GAAG,CACjB,MAAM,EAAE,aAAa,GAAG,MAAM,EAC9B,OAAO,CAAC,EAAE,gBAAgB,GACzB,mBAAmB,CAGrB;AAED,wBAAgB,GAAG,CACjB,MAAM,EAAE,aAAa,GAAG,MAAM,EAC9B,OAAO,CAAC,EAAE,gBAAgB,GACzB,mBAAmB,CAGrB;AAED,wBAAgB,GAAG,CACjB,MAAM,EAAE,aAAa,GAAG,MAAM,EAC9B,OAAO,CAAC,EAAE,gBAAgB,GACzB,mBAAmB,CAGrB;AAED,wBAAgB,qBAAqB,CAAC,KAAK,EAAE,OAAO,GAAG,KAAK,IAAI,mBAAmB,CAElF"}
|
|
@@ -0,0 +1,51 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.count = count;
|
|
4
|
+
exports.sum = sum;
|
|
5
|
+
exports.avg = avg;
|
|
6
|
+
exports.min = min;
|
|
7
|
+
exports.max = max;
|
|
8
|
+
exports.isAggregateExpression = isAggregateExpression;
|
|
9
|
+
function normalizeOptions(options) {
|
|
10
|
+
return options ? { ...options } : {};
|
|
11
|
+
}
|
|
12
|
+
function toColumnName(column) {
|
|
13
|
+
return column;
|
|
14
|
+
}
|
|
15
|
+
function ensureColumn(func, column) {
|
|
16
|
+
if (!column) {
|
|
17
|
+
throw new Error(`${func.toUpperCase()} aggregate requires a column reference`);
|
|
18
|
+
}
|
|
19
|
+
}
|
|
20
|
+
function createAggregate(func, column, options) {
|
|
21
|
+
const normalized = normalizeOptions(options);
|
|
22
|
+
return {
|
|
23
|
+
kind: 'aggregate',
|
|
24
|
+
func,
|
|
25
|
+
column: toColumnName(column),
|
|
26
|
+
distinct: normalized.distinct
|
|
27
|
+
};
|
|
28
|
+
}
|
|
29
|
+
function count(column, options) {
|
|
30
|
+
return createAggregate('count', column, options);
|
|
31
|
+
}
|
|
32
|
+
function sum(column, options) {
|
|
33
|
+
ensureColumn('sum', column);
|
|
34
|
+
return createAggregate('sum', column, options);
|
|
35
|
+
}
|
|
36
|
+
function avg(column, options) {
|
|
37
|
+
ensureColumn('avg', column);
|
|
38
|
+
return createAggregate('avg', column, options);
|
|
39
|
+
}
|
|
40
|
+
function min(column, options) {
|
|
41
|
+
ensureColumn('min', column);
|
|
42
|
+
return createAggregate('min', column, options);
|
|
43
|
+
}
|
|
44
|
+
function max(column, options) {
|
|
45
|
+
ensureColumn('max', column);
|
|
46
|
+
return createAggregate('max', column, options);
|
|
47
|
+
}
|
|
48
|
+
function isAggregateExpression(value) {
|
|
49
|
+
return !!value && typeof value === 'object' && value.kind === 'aggregate';
|
|
50
|
+
}
|
|
51
|
+
//# sourceMappingURL=aggregates.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"aggregates.js","sourceRoot":"","sources":["../../src/core/aggregates.ts"],"names":[],"mappings":";;AA2CA,sBAKC;AAED,kBAMC;AAED,kBAMC;AAED,kBAMC;AAED,kBAMC;AAED,sDAEC;AArED,SAAS,gBAAgB,CAAC,OAA0B;IAClD,OAAO,OAAO,CAAC,CAAC,CAAC,EAAE,GAAG,OAAO,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;AACvC,CAAC;AAED,SAAS,YAAY,CAAC,MAA+B;IACnD,OAAO,MAAM,CAAC;AAChB,CAAC;AAED,SAAS,YAAY,CAAC,IAAyC,EAAE,MAA+B;IAC9F,IAAI,CAAC,MAAM,EAAE,CAAC;QACZ,MAAM,IAAI,KAAK,CAAC,GAAG,IAAI,CAAC,WAAW,EAAE,wCAAwC,CAAC,CAAC;IACjF,CAAC;AACH,CAAC;AAED,SAAS,eAAe,CACtB,IAAuB,EACvB,MAA+B,EAC/B,OAA0B;IAE1B,MAAM,UAAU,GAAG,gBAAgB,CAAC,OAAO,CAAC,CAAC;IAC7C,OAAO;QACL,IAAI,EAAE,WAAW;QACjB,IAAI;QACJ,MAAM,EAAE,YAAY,CAAC,MAAM,CAAC;QAC5B,QAAQ,EAAE,UAAU,CAAC,QAAQ;KAC9B,CAAC;AACJ,CAAC;AAED,SAAgB,KAAK,CACnB,MAA+B,EAC/B,OAA0B;IAE1B,OAAO,eAAe,CAAC,OAAO,EAAE,MAAM,EAAE,OAAO,CAAC,CAAC;AACnD,CAAC;AAED,SAAgB,GAAG,CACjB,MAA8B,EAC9B,OAA0B;IAE1B,YAAY,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC;IAC5B,OAAO,eAAe,CAAC,KAAK,EAAE,MAAM,EAAE,OAAO,CAAC,CAAC;AACjD,CAAC;AAED,SAAgB,GAAG,CACjB,MAA8B,EAC9B,OAA0B;IAE1B,YAAY,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC;IAC5B,OAAO,eAAe,CAAC,KAAK,EAAE,MAAM,EAAE,OAAO,CAAC,CAAC;AACjD,CAAC;AAED,SAAgB,GAAG,CACjB,MAA8B,EAC9B,OAA0B;IAE1B,YAAY,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC;IAC5B,OAAO,eAAe,CAAC,KAAK,EAAE,MAAM,EAAE,OAAO,CAAC,CAAC;AACjD,CAAC;AAED,SAAgB,GAAG,CACjB,MAA8B,EAC9B,OAA0B;IAE1B,YAAY,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC;IAC5B,OAAO,eAAe,CAAC,KAAK,EAAE,MAAM,EAAE,OAAO,CAAC,CAAC;AACjD,CAAC;AAED,SAAgB,qBAAqB,CAAC,KAAc;IAClD,OAAO,CAAC,CAAC,KAAK,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAK,KAA6B,CAAC,IAAI,KAAK,WAAW,CAAC;AACrG,CAAC"}
|