ramosedb 0.0.1 → 0.4.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/LICENSE +202 -0
- package/NOTICE +17 -0
- package/README.md +57 -2
- package/dist/Auth.d.ts +55 -0
- package/dist/Auth.d.ts.map +1 -0
- package/dist/Auth.js +50 -0
- package/dist/Auth.js.map +1 -0
- package/dist/Database.d.ts +40 -0
- package/dist/Database.d.ts.map +1 -0
- package/dist/Database.js +62 -0
- package/dist/Database.js.map +1 -0
- package/dist/Providers.d.ts +8 -0
- package/dist/Providers.d.ts.map +1 -0
- package/dist/Providers.js +9 -0
- package/dist/Providers.js.map +1 -0
- package/dist/RamoseEnv.d.ts +37 -0
- package/dist/RamoseEnv.d.ts.map +1 -0
- package/dist/RamoseEnv.js +2 -0
- package/dist/RamoseEnv.js.map +1 -0
- package/dist/Server.d.ts +100 -0
- package/dist/Server.d.ts.map +1 -0
- package/dist/Server.js +263 -0
- package/dist/Server.js.map +1 -0
- package/dist/ServerRuntime.d.ts +10 -0
- package/dist/ServerRuntime.d.ts.map +1 -0
- package/dist/ServerRuntime.js +11 -0
- package/dist/ServerRuntime.js.map +1 -0
- package/dist/better-auth/client.d.ts +19 -0
- package/dist/better-auth/client.d.ts.map +1 -0
- package/dist/better-auth/client.js +110 -0
- package/dist/better-auth/client.js.map +1 -0
- package/dist/better-auth/index.d.ts +140 -0
- package/dist/better-auth/index.d.ts.map +1 -0
- package/dist/better-auth/index.js +168 -0
- package/dist/better-auth/index.js.map +1 -0
- package/dist/client/activation.d.ts +2 -0
- package/dist/client/activation.d.ts.map +1 -0
- package/dist/client/activation.js +33 -0
- package/dist/client/activation.js.map +1 -0
- package/dist/client/catalog.d.ts +15 -0
- package/dist/client/catalog.d.ts.map +1 -0
- package/dist/client/catalog.js +48 -0
- package/dist/client/catalog.js.map +1 -0
- package/dist/client/changesets.d.ts +85 -0
- package/dist/client/changesets.d.ts.map +1 -0
- package/dist/client/changesets.js +160 -0
- package/dist/client/changesets.js.map +1 -0
- package/dist/client/client.d.ts +45 -0
- package/dist/client/client.d.ts.map +1 -0
- package/dist/client/client.js +425 -0
- package/dist/client/client.js.map +1 -0
- package/dist/client/database.d.ts +163 -0
- package/dist/client/database.d.ts.map +1 -0
- package/dist/client/database.js +795 -0
- package/dist/client/database.js.map +1 -0
- package/dist/client/entity.d.ts +63 -0
- package/dist/client/entity.d.ts.map +1 -0
- package/dist/client/entity.js +141 -0
- package/dist/client/entity.js.map +1 -0
- package/dist/client/errors.d.ts +67 -0
- package/dist/client/errors.d.ts.map +1 -0
- package/dist/client/errors.js +39 -0
- package/dist/client/errors.js.map +1 -0
- package/dist/client/index.d.ts +13 -0
- package/dist/client/index.d.ts.map +1 -0
- package/dist/client/index.js +6 -0
- package/dist/client/index.js.map +1 -0
- package/dist/client/mutation-schema.d.ts +92 -0
- package/dist/client/mutation-schema.d.ts.map +1 -0
- package/dist/client/mutation-schema.js +2 -0
- package/dist/client/mutation-schema.js.map +1 -0
- package/dist/client/mutation.d.ts +25 -0
- package/dist/client/mutation.d.ts.map +1 -0
- package/dist/client/mutation.js +75 -0
- package/dist/client/mutation.js.map +1 -0
- package/dist/client/operations.d.ts +39 -0
- package/dist/client/operations.d.ts.map +1 -0
- package/dist/client/operations.js +183 -0
- package/dist/client/operations.js.map +1 -0
- package/dist/client/query.d.ts +53 -0
- package/dist/client/query.d.ts.map +1 -0
- package/dist/client/query.js +85 -0
- package/dist/client/query.js.map +1 -0
- package/dist/client/receipt.d.ts +53 -0
- package/dist/client/receipt.d.ts.map +1 -0
- package/dist/client/receipt.js +79 -0
- package/dist/client/receipt.js.map +1 -0
- package/dist/client/submission.d.ts +44 -0
- package/dist/client/submission.d.ts.map +1 -0
- package/dist/client/submission.js +165 -0
- package/dist/client/submission.js.map +1 -0
- package/dist/client/subscription.d.ts +18 -0
- package/dist/client/subscription.d.ts.map +1 -0
- package/dist/client/subscription.js +75 -0
- package/dist/client/subscription.js.map +1 -0
- package/dist/client/sync.d.ts +32 -0
- package/dist/client/sync.d.ts.map +1 -0
- package/dist/client/sync.js +34 -0
- package/dist/client/sync.js.map +1 -0
- package/dist/client/view.d.ts +37 -0
- package/dist/client/view.d.ts.map +1 -0
- package/dist/client/view.js +112 -0
- package/dist/client/view.js.map +1 -0
- package/dist/db/Binding.d.ts +79 -0
- package/dist/db/Binding.d.ts.map +1 -0
- package/dist/db/Binding.js +138 -0
- package/dist/db/Binding.js.map +1 -0
- package/dist/db/Composer.d.ts +7 -0
- package/dist/db/Composer.d.ts.map +1 -0
- package/dist/db/Composer.js +6 -0
- package/dist/db/Composer.js.map +1 -0
- package/dist/db/DatabaseName.d.ts +7 -0
- package/dist/db/DatabaseName.d.ts.map +1 -0
- package/dist/db/DatabaseName.js +9 -0
- package/dist/db/DatabaseName.js.map +1 -0
- package/dist/db/Eid.d.ts +19 -0
- package/dist/db/Eid.d.ts.map +1 -0
- package/dist/db/Eid.js +2 -0
- package/dist/db/Eid.js.map +1 -0
- package/dist/db/Entity.d.ts +133 -0
- package/dist/db/Entity.d.ts.map +1 -0
- package/dist/db/Entity.js +104 -0
- package/dist/db/Entity.js.map +1 -0
- package/dist/db/Errors.d.ts +138 -0
- package/dist/db/Errors.d.ts.map +1 -0
- package/dist/db/Errors.js +171 -0
- package/dist/db/Errors.js.map +1 -0
- package/dist/db/Field.d.ts +170 -0
- package/dist/db/Field.d.ts.map +1 -0
- package/dist/db/Field.js +187 -0
- package/dist/db/Field.js.map +1 -0
- package/dist/db/IdentName.d.ts +94 -0
- package/dist/db/IdentName.d.ts.map +1 -0
- package/dist/db/IdentName.js +34 -0
- package/dist/db/IdentName.js.map +1 -0
- package/dist/db/Operation.d.ts +441 -0
- package/dist/db/Operation.d.ts.map +1 -0
- package/dist/db/Operation.js +237 -0
- package/dist/db/Operation.js.map +1 -0
- package/dist/db/Projection.d.ts +97 -0
- package/dist/db/Projection.d.ts.map +1 -0
- package/dist/db/Projection.js +183 -0
- package/dist/db/Projection.js.map +1 -0
- package/dist/db/Pull.d.ts +361 -0
- package/dist/db/Pull.d.ts.map +1 -0
- package/dist/db/Pull.js +547 -0
- package/dist/db/Pull.js.map +1 -0
- package/dist/db/Schema.d.ts +37 -0
- package/dist/db/Schema.d.ts.map +1 -0
- package/dist/db/Schema.js +94 -0
- package/dist/db/Schema.js.map +1 -0
- package/dist/db/Trait.d.ts +129 -0
- package/dist/db/Trait.d.ts.map +1 -0
- package/dist/db/Trait.js +65 -0
- package/dist/db/Trait.js.map +1 -0
- package/dist/db/Tx.d.ts +128 -0
- package/dist/db/Tx.d.ts.map +1 -0
- package/dist/db/Tx.js +248 -0
- package/dist/db/Tx.js.map +1 -0
- package/dist/db/allocations.d.ts +44 -0
- package/dist/db/allocations.d.ts.map +1 -0
- package/dist/db/allocations.js +70 -0
- package/dist/db/allocations.js.map +1 -0
- package/dist/db/attrRef.d.ts +5 -0
- package/dist/db/attrRef.d.ts.map +1 -0
- package/dist/db/attrRef.js +6 -0
- package/dist/db/attrRef.js.map +1 -0
- package/dist/db/compose.d.ts +26 -0
- package/dist/db/compose.d.ts.map +1 -0
- package/dist/db/compose.js +105 -0
- package/dist/db/compose.js.map +1 -0
- package/dist/db/composition.d.ts +4 -0
- package/dist/db/composition.d.ts.map +1 -0
- package/dist/db/composition.js +24 -0
- package/dist/db/composition.js.map +1 -0
- package/dist/db/creation.d.ts +102 -0
- package/dist/db/creation.d.ts.map +1 -0
- package/dist/db/creation.js +448 -0
- package/dist/db/creation.js.map +1 -0
- package/dist/db/deployedSchema.d.ts +12 -0
- package/dist/db/deployedSchema.d.ts.map +1 -0
- package/dist/db/deployedSchema.js +80 -0
- package/dist/db/deployedSchema.js.map +1 -0
- package/dist/db/documentation.d.ts +4 -0
- package/dist/db/documentation.d.ts.map +1 -0
- package/dist/db/documentation.js +4 -0
- package/dist/db/documentation.js.map +1 -0
- package/dist/db/ensure.d.ts +16 -0
- package/dist/db/ensure.d.ts.map +1 -0
- package/dist/db/ensure.js +48 -0
- package/dist/db/ensure.js.map +1 -0
- package/dist/db/entityArg.d.ts +15 -0
- package/dist/db/entityArg.d.ts.map +1 -0
- package/dist/db/entityArg.js +71 -0
- package/dist/db/entityArg.js.map +1 -0
- package/dist/db/equal.d.ts +4 -0
- package/dist/db/equal.d.ts.map +1 -0
- package/dist/db/equal.js +2 -0
- package/dist/db/equal.js.map +1 -0
- package/dist/db/idents.d.ts +90 -0
- package/dist/db/idents.d.ts.map +1 -0
- package/dist/db/idents.js +2 -0
- package/dist/db/idents.js.map +1 -0
- package/dist/db/index.d.ts +27 -0
- package/dist/db/index.d.ts.map +1 -0
- package/dist/db/index.js +20 -0
- package/dist/db/index.js.map +1 -0
- package/dist/db/internal.d.ts +27 -0
- package/dist/db/internal.d.ts.map +1 -0
- package/dist/db/internal.js +27 -0
- package/dist/db/internal.js.map +1 -0
- package/dist/db/query/cursor.d.ts +13 -0
- package/dist/db/query/cursor.d.ts.map +1 -0
- package/dist/db/query/cursor.js +150 -0
- package/dist/db/query/cursor.js.map +1 -0
- package/dist/db/query/elemFilter.d.ts +7 -0
- package/dist/db/query/elemFilter.d.ts.map +1 -0
- package/dist/db/query/elemFilter.js +280 -0
- package/dist/db/query/elemFilter.js.map +1 -0
- package/dist/db/query/fluent.d.ts +92 -0
- package/dist/db/query/fluent.d.ts.map +1 -0
- package/dist/db/query/fluent.js +125 -0
- package/dist/db/query/fluent.js.map +1 -0
- package/dist/db/query/focus.d.ts +42 -0
- package/dist/db/query/focus.d.ts.map +1 -0
- package/dist/db/query/focus.js +2 -0
- package/dist/db/query/focus.js.map +1 -0
- package/dist/db/query/index.d.ts +7 -0
- package/dist/db/query/index.d.ts.map +1 -0
- package/dist/db/query/index.js +6 -0
- package/dist/db/query/index.js.map +1 -0
- package/dist/db/query/kernel.d.ts +215 -0
- package/dist/db/query/kernel.d.ts.map +1 -0
- package/dist/db/query/kernel.js +284 -0
- package/dist/db/query/kernel.js.map +1 -0
- package/dist/db/query/lib.d.ts +168 -0
- package/dist/db/query/lib.d.ts.map +1 -0
- package/dist/db/query/lib.js +175 -0
- package/dist/db/query/lib.js.map +1 -0
- package/dist/db/query/query.d.ts +209 -0
- package/dist/db/query/query.d.ts.map +1 -0
- package/dist/db/query/query.js +1536 -0
- package/dist/db/query/query.js.map +1 -0
- package/dist/db/query/stdlib/failures.d.ts +91 -0
- package/dist/db/query/stdlib/failures.d.ts.map +1 -0
- package/dist/db/query/stdlib/failures.js +57 -0
- package/dist/db/query/stdlib/failures.js.map +1 -0
- package/dist/db/query/stdlib/implementations.d.ts +5 -0
- package/dist/db/query/stdlib/implementations.d.ts.map +1 -0
- package/dist/db/query/stdlib/implementations.js +208 -0
- package/dist/db/query/stdlib/implementations.js.map +1 -0
- package/dist/db/query/stdlib/index.d.ts +6 -0
- package/dist/db/query/stdlib/index.d.ts.map +1 -0
- package/dist/db/query/stdlib/index.js +6 -0
- package/dist/db/query/stdlib/index.js.map +1 -0
- package/dist/db/query/stdlib/manifest.d.ts +3 -0
- package/dist/db/query/stdlib/manifest.d.ts.map +1 -0
- package/dist/db/query/stdlib/manifest.js +1067 -0
- package/dist/db/query/stdlib/manifest.js.map +1 -0
- package/dist/db/query/stdlib/registry.d.ts +22 -0
- package/dist/db/query/stdlib/registry.d.ts.map +1 -0
- package/dist/db/query/stdlib/registry.js +144 -0
- package/dist/db/query/stdlib/registry.js.map +1 -0
- package/dist/db/query/stdlib/types.d.ts +50 -0
- package/dist/db/query/stdlib/types.d.ts.map +1 -0
- package/dist/db/query/stdlib/types.js +17 -0
- package/dist/db/query/stdlib/types.js.map +1 -0
- package/dist/db/query/stdlib/values.d.ts +17 -0
- package/dist/db/query/stdlib/values.d.ts.map +1 -0
- package/dist/db/query/stdlib/values.js +200 -0
- package/dist/db/query/stdlib/values.js.map +1 -0
- package/dist/db/query/surface.d.ts +15 -0
- package/dist/db/query/surface.d.ts.map +1 -0
- package/dist/db/query/surface.js +14 -0
- package/dist/db/query/surface.js.map +1 -0
- package/dist/db/reachability.d.ts +40 -0
- package/dist/db/reachability.d.ts.map +1 -0
- package/dist/db/reachability.js +118 -0
- package/dist/db/reachability.js.map +1 -0
- package/dist/db/refs.d.ts +46 -0
- package/dist/db/refs.d.ts.map +1 -0
- package/dist/db/refs.js +69 -0
- package/dist/db/refs.js.map +1 -0
- package/dist/db/shapes.d.ts +227 -0
- package/dist/db/shapes.d.ts.map +1 -0
- package/dist/db/shapes.js +246 -0
- package/dist/db/shapes.js.map +1 -0
- package/dist/db/valueTypes.d.ts +92 -0
- package/dist/db/valueTypes.d.ts.map +1 -0
- package/dist/db/valueTypes.js +105 -0
- package/dist/db/valueTypes.js.map +1 -0
- package/dist/errorHttp.d.ts +27 -0
- package/dist/errorHttp.d.ts.map +1 -0
- package/dist/errorHttp.js +95 -0
- package/dist/errorHttp.js.map +1 -0
- package/dist/index.d.ts +7 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +7 -0
- package/dist/index.js.map +1 -0
- package/dist/internal/authorization/authoring/compile.d.ts +132 -0
- package/dist/internal/authorization/authoring/compile.d.ts.map +1 -0
- package/dist/internal/authorization/authoring/compile.js +634 -0
- package/dist/internal/authorization/authoring/compile.js.map +1 -0
- package/dist/internal/authorization/authoring/expr.d.ts +25 -0
- package/dist/internal/authorization/authoring/expr.d.ts.map +1 -0
- package/dist/internal/authorization/authoring/expr.js +56 -0
- package/dist/internal/authorization/authoring/expr.js.map +1 -0
- package/dist/internal/authorization/authoring/index.d.ts +10 -0
- package/dist/internal/authorization/authoring/index.d.ts.map +1 -0
- package/dist/internal/authorization/authoring/index.js +8 -0
- package/dist/internal/authorization/authoring/index.js.map +1 -0
- package/dist/internal/authorization/authoring/invoke.d.ts +8 -0
- package/dist/internal/authorization/authoring/invoke.d.ts.map +1 -0
- package/dist/internal/authorization/authoring/invoke.js +7 -0
- package/dist/internal/authorization/authoring/invoke.js.map +1 -0
- package/dist/internal/authorization/authoring/operations.d.ts +81 -0
- package/dist/internal/authorization/authoring/operations.d.ts.map +1 -0
- package/dist/internal/authorization/authoring/operations.js +591 -0
- package/dist/internal/authorization/authoring/operations.js.map +1 -0
- package/dist/internal/authorization/authoring/path.d.ts +20 -0
- package/dist/internal/authorization/authoring/path.d.ts.map +1 -0
- package/dist/internal/authorization/authoring/path.js +109 -0
- package/dist/internal/authorization/authoring/path.js.map +1 -0
- package/dist/internal/authorization/authoring/policy.d.ts +120 -0
- package/dist/internal/authorization/authoring/policy.d.ts.map +1 -0
- package/dist/internal/authorization/authoring/policy.js +218 -0
- package/dist/internal/authorization/authoring/policy.js.map +1 -0
- package/dist/internal/authorization/authoring/read.d.ts +13 -0
- package/dist/internal/authorization/authoring/read.d.ts.map +1 -0
- package/dist/internal/authorization/authoring/read.js +27 -0
- package/dist/internal/authorization/authoring/read.js.map +1 -0
- package/dist/internal/authorization/authoring/types.d.ts +127 -0
- package/dist/internal/authorization/authoring/types.d.ts.map +1 -0
- package/dist/internal/authorization/authoring/types.js +43 -0
- package/dist/internal/authorization/authoring/types.js.map +1 -0
- package/dist/internal/authorization/bind.d.ts +687 -0
- package/dist/internal/authorization/bind.d.ts.map +1 -0
- package/dist/internal/authorization/bind.js +485 -0
- package/dist/internal/authorization/bind.js.map +1 -0
- package/dist/internal/authorization/bounds.d.ts +13 -0
- package/dist/internal/authorization/bounds.d.ts.map +1 -0
- package/dist/internal/authorization/bounds.js +9 -0
- package/dist/internal/authorization/bounds.js.map +1 -0
- package/dist/internal/authorization/canonical-json.d.ts +6 -0
- package/dist/internal/authorization/canonical-json.d.ts.map +1 -0
- package/dist/internal/authorization/canonical-json.js +65 -0
- package/dist/internal/authorization/canonical-json.js.map +1 -0
- package/dist/internal/authorization/catalog-unit.d.ts +1033 -0
- package/dist/internal/authorization/catalog-unit.d.ts.map +1 -0
- package/dist/internal/authorization/catalog-unit.js +303 -0
- package/dist/internal/authorization/catalog-unit.js.map +1 -0
- package/dist/internal/authorization/catalog.d.ts +472 -0
- package/dist/internal/authorization/catalog.d.ts.map +1 -0
- package/dist/internal/authorization/catalog.js +134 -0
- package/dist/internal/authorization/catalog.js.map +1 -0
- package/dist/internal/authorization/changesets.d.ts +54 -0
- package/dist/internal/authorization/changesets.d.ts.map +1 -0
- package/dist/internal/authorization/changesets.js +156 -0
- package/dist/internal/authorization/changesets.js.map +1 -0
- package/dist/internal/authorization/composition.d.ts +10 -0
- package/dist/internal/authorization/composition.d.ts.map +1 -0
- package/dist/internal/authorization/composition.js +28 -0
- package/dist/internal/authorization/composition.js.map +1 -0
- package/dist/internal/authorization/database-bindings.d.ts +48 -0
- package/dist/internal/authorization/database-bindings.d.ts.map +1 -0
- package/dist/internal/authorization/database-bindings.js +101 -0
- package/dist/internal/authorization/database-bindings.js.map +1 -0
- package/dist/internal/authorization/database-target.d.ts +75 -0
- package/dist/internal/authorization/database-target.d.ts.map +1 -0
- package/dist/internal/authorization/database-target.js +65 -0
- package/dist/internal/authorization/database-target.js.map +1 -0
- package/dist/internal/authorization/decode.d.ts +1704 -0
- package/dist/internal/authorization/decode.d.ts.map +1 -0
- package/dist/internal/authorization/decode.js +294 -0
- package/dist/internal/authorization/decode.js.map +1 -0
- package/dist/internal/authorization/definitions.d.ts +66 -0
- package/dist/internal/authorization/definitions.d.ts.map +1 -0
- package/dist/internal/authorization/definitions.js +335 -0
- package/dist/internal/authorization/definitions.js.map +1 -0
- package/dist/internal/authorization/deployed.d.ts +43 -0
- package/dist/internal/authorization/deployed.d.ts.map +1 -0
- package/dist/internal/authorization/deployed.js +184 -0
- package/dist/internal/authorization/deployed.js.map +1 -0
- package/dist/internal/authorization/entity-targets.d.ts +68 -0
- package/dist/internal/authorization/entity-targets.d.ts.map +1 -0
- package/dist/internal/authorization/entity-targets.js +244 -0
- package/dist/internal/authorization/entity-targets.js.map +1 -0
- package/dist/internal/authorization/expr.d.ts +259 -0
- package/dist/internal/authorization/expr.d.ts.map +1 -0
- package/dist/internal/authorization/expr.js +55 -0
- package/dist/internal/authorization/expr.js.map +1 -0
- package/dist/internal/authorization/failures.d.ts +78 -0
- package/dist/internal/authorization/failures.d.ts.map +1 -0
- package/dist/internal/authorization/failures.js +22 -0
- package/dist/internal/authorization/failures.js.map +1 -0
- package/dist/internal/authorization/identities.d.ts +207 -0
- package/dist/internal/authorization/identities.d.ts.map +1 -0
- package/dist/internal/authorization/identities.js +71 -0
- package/dist/internal/authorization/identities.js.map +1 -0
- package/dist/internal/authorization/index.d.ts +33 -0
- package/dist/internal/authorization/index.d.ts.map +1 -0
- package/dist/internal/authorization/index.js +33 -0
- package/dist/internal/authorization/index.js.map +1 -0
- package/dist/internal/authorization/install/normalize.d.ts +196 -0
- package/dist/internal/authorization/install/normalize.d.ts.map +1 -0
- package/dist/internal/authorization/install/normalize.js +168 -0
- package/dist/internal/authorization/install/normalize.js.map +1 -0
- package/dist/internal/authorization/install/plan.d.ts +8 -0
- package/dist/internal/authorization/install/plan.d.ts.map +1 -0
- package/dist/internal/authorization/install/plan.js +177 -0
- package/dist/internal/authorization/install/plan.js.map +1 -0
- package/dist/internal/authorization/install.d.ts +404 -0
- package/dist/internal/authorization/install.d.ts.map +1 -0
- package/dist/internal/authorization/install.js +103 -0
- package/dist/internal/authorization/install.js.map +1 -0
- package/dist/internal/authorization/invocation-codec.d.ts +10 -0
- package/dist/internal/authorization/invocation-codec.d.ts.map +1 -0
- package/dist/internal/authorization/invocation-codec.js +36 -0
- package/dist/internal/authorization/invocation-codec.js.map +1 -0
- package/dist/internal/authorization/invocation-receipts.d.ts +192 -0
- package/dist/internal/authorization/invocation-receipts.d.ts.map +1 -0
- package/dist/internal/authorization/invocation-receipts.js +546 -0
- package/dist/internal/authorization/invocation-receipts.js.map +1 -0
- package/dist/internal/authorization/ir.d.ts +1465 -0
- package/dist/internal/authorization/ir.d.ts.map +1 -0
- package/dist/internal/authorization/ir.js +131 -0
- package/dist/internal/authorization/ir.js.map +1 -0
- package/dist/internal/authorization/json.d.ts +8 -0
- package/dist/internal/authorization/json.d.ts.map +1 -0
- package/dist/internal/authorization/json.js +13 -0
- package/dist/internal/authorization/json.js.map +1 -0
- package/dist/internal/authorization/live.d.ts +38 -0
- package/dist/internal/authorization/live.d.ts.map +1 -0
- package/dist/internal/authorization/live.js +227 -0
- package/dist/internal/authorization/live.js.map +1 -0
- package/dist/internal/authorization/operation-grant.d.ts +16 -0
- package/dist/internal/authorization/operation-grant.d.ts.map +1 -0
- package/dist/internal/authorization/operation-grant.js +79 -0
- package/dist/internal/authorization/operation-grant.js.map +1 -0
- package/dist/internal/authorization/operation-version.d.ts +28 -0
- package/dist/internal/authorization/operation-version.d.ts.map +1 -0
- package/dist/internal/authorization/operation-version.js +206 -0
- package/dist/internal/authorization/operation-version.js.map +1 -0
- package/dist/internal/authorization/operations-runtime.d.ts +78 -0
- package/dist/internal/authorization/operations-runtime.d.ts.map +1 -0
- package/dist/internal/authorization/operations-runtime.js +1130 -0
- package/dist/internal/authorization/operations-runtime.js.map +1 -0
- package/dist/internal/authorization/principal.d.ts +95 -0
- package/dist/internal/authorization/principal.d.ts.map +1 -0
- package/dist/internal/authorization/principal.js +53 -0
- package/dist/internal/authorization/principal.js.map +1 -0
- package/dist/internal/authorization/query-view.d.ts +7 -0
- package/dist/internal/authorization/query-view.d.ts.map +1 -0
- package/dist/internal/authorization/query-view.js +17 -0
- package/dist/internal/authorization/query-view.js.map +1 -0
- package/dist/internal/authorization/read-compatibility.d.ts +185 -0
- package/dist/internal/authorization/read-compatibility.d.ts.map +1 -0
- package/dist/internal/authorization/read-compatibility.js +176 -0
- package/dist/internal/authorization/read-compatibility.js.map +1 -0
- package/dist/internal/authorization/read-filter.d.ts +48 -0
- package/dist/internal/authorization/read-filter.d.ts.map +1 -0
- package/dist/internal/authorization/read-filter.js +496 -0
- package/dist/internal/authorization/read-filter.js.map +1 -0
- package/dist/internal/authorization/read-tables.d.ts +9 -0
- package/dist/internal/authorization/read-tables.d.ts.map +1 -0
- package/dist/internal/authorization/read-tables.js +120 -0
- package/dist/internal/authorization/read-tables.js.map +1 -0
- package/dist/internal/authorization/reads.d.ts +36 -0
- package/dist/internal/authorization/reads.d.ts.map +1 -0
- package/dist/internal/authorization/reads.js +35 -0
- package/dist/internal/authorization/reads.js.map +1 -0
- package/dist/internal/authorization/request.d.ts +64 -0
- package/dist/internal/authorization/request.d.ts.map +1 -0
- package/dist/internal/authorization/request.js +210 -0
- package/dist/internal/authorization/request.js.map +1 -0
- package/dist/internal/authorization/truth.d.ts +51 -0
- package/dist/internal/authorization/truth.d.ts.map +1 -0
- package/dist/internal/authorization/truth.js +23 -0
- package/dist/internal/authorization/truth.js.map +1 -0
- package/dist/internal/authorization/validate.d.ts +3 -0
- package/dist/internal/authorization/validate.d.ts.map +1 -0
- package/dist/internal/authorization/validate.js +3 -0
- package/dist/internal/authorization/validate.js.map +1 -0
- package/dist/internal/authorization/validation/catalog.d.ts +32 -0
- package/dist/internal/authorization/validation/catalog.d.ts.map +1 -0
- package/dist/internal/authorization/validation/catalog.js +417 -0
- package/dist/internal/authorization/validation/catalog.js.map +1 -0
- package/dist/internal/authorization/validation/common.d.ts +20 -0
- package/dist/internal/authorization/validation/common.d.ts.map +1 -0
- package/dist/internal/authorization/validation/common.js +36 -0
- package/dist/internal/authorization/validation/common.js.map +1 -0
- package/dist/internal/authorization/validation/decisions.d.ts +7 -0
- package/dist/internal/authorization/validation/decisions.d.ts.map +1 -0
- package/dist/internal/authorization/validation/decisions.js +107 -0
- package/dist/internal/authorization/validation/decisions.js.map +1 -0
- package/dist/internal/authorization/validation/descriptors.d.ts +8 -0
- package/dist/internal/authorization/validation/descriptors.d.ts.map +1 -0
- package/dist/internal/authorization/validation/descriptors.js +24 -0
- package/dist/internal/authorization/validation/descriptors.js.map +1 -0
- package/dist/internal/authorization/validation/expression.d.ts +11 -0
- package/dist/internal/authorization/validation/expression.d.ts.map +1 -0
- package/dist/internal/authorization/validation/expression.js +114 -0
- package/dist/internal/authorization/validation/expression.js.map +1 -0
- package/dist/internal/authorization/validation/traversal.d.ts +19 -0
- package/dist/internal/authorization/validation/traversal.d.ts.map +1 -0
- package/dist/internal/authorization/validation/traversal.js +141 -0
- package/dist/internal/authorization/validation/traversal.js.map +1 -0
- package/dist/internal/authorization/validation/types.d.ts +55 -0
- package/dist/internal/authorization/validation/types.d.ts.map +1 -0
- package/dist/internal/authorization/validation/types.js +184 -0
- package/dist/internal/authorization/validation/types.js.map +1 -0
- package/dist/internal/authorization/validation/validate.d.ts +421 -0
- package/dist/internal/authorization/validation/validate.d.ts.map +1 -0
- package/dist/internal/authorization/validation/validate.js +95 -0
- package/dist/internal/authorization/validation/validate.js.map +1 -0
- package/dist/internal/authorization/version.d.ts +11 -0
- package/dist/internal/authorization/version.d.ts.map +1 -0
- package/dist/internal/authorization/version.js +10 -0
- package/dist/internal/authorization/version.js.map +1 -0
- package/dist/internal/changesets/protocol.d.ts +185 -0
- package/dist/internal/changesets/protocol.d.ts.map +1 -0
- package/dist/internal/changesets/protocol.js +39 -0
- package/dist/internal/changesets/protocol.js.map +1 -0
- package/dist/internal/changesets/service.d.ts +69 -0
- package/dist/internal/changesets/service.d.ts.map +1 -0
- package/dist/internal/changesets/service.js +298 -0
- package/dist/internal/changesets/service.js.map +1 -0
- package/dist/internal/core/bytes.d.ts +41 -0
- package/dist/internal/core/bytes.d.ts.map +1 -0
- package/dist/internal/core/bytes.js +215 -0
- package/dist/internal/core/bytes.js.map +1 -0
- package/dist/internal/core/composition.d.ts +20 -0
- package/dist/internal/core/composition.d.ts.map +1 -0
- package/dist/internal/core/composition.js +52 -0
- package/dist/internal/core/composition.js.map +1 -0
- package/dist/internal/core/conn.d.ts +64 -0
- package/dist/internal/core/conn.d.ts.map +1 -0
- package/dist/internal/core/conn.js +240 -0
- package/dist/internal/core/conn.js.map +1 -0
- package/dist/internal/core/datom.d.ts +73 -0
- package/dist/internal/core/datom.d.ts.map +1 -0
- package/dist/internal/core/datom.js +477 -0
- package/dist/internal/core/datom.js.map +1 -0
- package/dist/internal/core/db.d.ts +65 -0
- package/dist/internal/core/db.d.ts.map +1 -0
- package/dist/internal/core/db.js +261 -0
- package/dist/internal/core/db.js.map +1 -0
- package/dist/internal/core/index.d.ts +21 -0
- package/dist/internal/core/index.d.ts.map +1 -0
- package/dist/internal/core/index.js +21 -0
- package/dist/internal/core/index.js.map +1 -0
- package/dist/internal/core/json.d.ts +5 -0
- package/dist/internal/core/json.d.ts.map +1 -0
- package/dist/internal/core/json.js +56 -0
- package/dist/internal/core/json.js.map +1 -0
- package/dist/internal/core/log.d.ts +68 -0
- package/dist/internal/core/log.d.ts.map +1 -0
- package/dist/internal/core/log.js +76 -0
- package/dist/internal/core/log.js.map +1 -0
- package/dist/internal/core/novelty.d.ts +38 -0
- package/dist/internal/core/novelty.d.ts.map +1 -0
- package/dist/internal/core/novelty.js +300 -0
- package/dist/internal/core/novelty.js.map +1 -0
- package/dist/internal/core/query/ast.d.ts +174 -0
- package/dist/internal/core/query/ast.d.ts.map +1 -0
- package/dist/internal/core/query/ast.js +37 -0
- package/dist/internal/core/query/ast.js.map +1 -0
- package/dist/internal/core/query/builtins.d.ts +19 -0
- package/dist/internal/core/query/builtins.d.ts.map +1 -0
- package/dist/internal/core/query/builtins.js +242 -0
- package/dist/internal/core/query/builtins.js.map +1 -0
- package/dist/internal/core/query/edn.d.ts +19 -0
- package/dist/internal/core/query/edn.d.ts.map +1 -0
- package/dist/internal/core/query/edn.js +248 -0
- package/dist/internal/core/query/edn.js.map +1 -0
- package/dist/internal/core/query/engine.d.ts +56 -0
- package/dist/internal/core/query/engine.d.ts.map +1 -0
- package/dist/internal/core/query/engine.js +0 -0
- package/dist/internal/core/query/engine.js.map +1 -0
- package/dist/internal/core/query/parse.d.ts +8 -0
- package/dist/internal/core/query/parse.d.ts.map +1 -0
- package/dist/internal/core/query/parse.js +606 -0
- package/dist/internal/core/query/parse.js.map +1 -0
- package/dist/internal/core/query/pull.d.ts +7 -0
- package/dist/internal/core/query/pull.d.ts.map +1 -0
- package/dist/internal/core/query/pull.js +304 -0
- package/dist/internal/core/query/pull.js.map +1 -0
- package/dist/internal/core/query/value.d.ts +10 -0
- package/dist/internal/core/query/value.d.ts.map +1 -0
- package/dist/internal/core/query/value.js +21 -0
- package/dist/internal/core/query/value.js.map +1 -0
- package/dist/internal/core/revision.d.ts +19 -0
- package/dist/internal/core/revision.d.ts.map +1 -0
- package/dist/internal/core/revision.js +13 -0
- package/dist/internal/core/revision.js.map +1 -0
- package/dist/internal/core/schema.d.ts +63 -0
- package/dist/internal/core/schema.d.ts.map +1 -0
- package/dist/internal/core/schema.js +228 -0
- package/dist/internal/core/schema.js.map +1 -0
- package/dist/internal/core/segment.d.ts +16 -0
- package/dist/internal/core/segment.d.ts.map +1 -0
- package/dist/internal/core/segment.js +149 -0
- package/dist/internal/core/segment.js.map +1 -0
- package/dist/internal/core/store.d.ts +35 -0
- package/dist/internal/core/store.d.ts.map +1 -0
- package/dist/internal/core/store.js +88 -0
- package/dist/internal/core/store.js.map +1 -0
- package/dist/internal/core/telemetry.d.ts +53 -0
- package/dist/internal/core/telemetry.d.ts.map +1 -0
- package/dist/internal/core/telemetry.js +103 -0
- package/dist/internal/core/telemetry.js.map +1 -0
- package/dist/internal/core/tree.d.ts +60 -0
- package/dist/internal/core/tree.d.ts.map +1 -0
- package/dist/internal/core/tree.js +625 -0
- package/dist/internal/core/tree.js.map +1 -0
- package/dist/internal/core/tx-provenance.d.ts +7 -0
- package/dist/internal/core/tx-provenance.d.ts.map +1 -0
- package/dist/internal/core/tx-provenance.js +16 -0
- package/dist/internal/core/tx-provenance.js.map +1 -0
- package/dist/internal/core/tx.d.ts +51 -0
- package/dist/internal/core/tx.d.ts.map +1 -0
- package/dist/internal/core/tx.js +1029 -0
- package/dist/internal/core/tx.js.map +1 -0
- package/dist/internal/replica/basis.d.ts +15 -0
- package/dist/internal/replica/basis.d.ts.map +1 -0
- package/dist/internal/replica/basis.js +32 -0
- package/dist/internal/replica/basis.js.map +1 -0
- package/dist/internal/replica/errors.d.ts +32 -0
- package/dist/internal/replica/errors.d.ts.map +1 -0
- package/dist/internal/replica/errors.js +30 -0
- package/dist/internal/replica/errors.js.map +1 -0
- package/dist/internal/replica/index.d.ts +4 -0
- package/dist/internal/replica/index.d.ts.map +1 -0
- package/dist/internal/replica/index.js +4 -0
- package/dist/internal/replica/index.js.map +1 -0
- package/dist/internal/replica/replica-do-testing.d.ts +11 -0
- package/dist/internal/replica/replica-do-testing.d.ts.map +1 -0
- package/dist/internal/replica/replica-do-testing.js +340 -0
- package/dist/internal/replica/replica-do-testing.js.map +1 -0
- package/dist/internal/replica/replica-do.d.ts +87 -0
- package/dist/internal/replica/replica-do.d.ts.map +1 -0
- package/dist/internal/replica/replica-do.js +735 -0
- package/dist/internal/replica/replica-do.js.map +1 -0
- package/dist/internal/replica/revision-retention.d.ts +29 -0
- package/dist/internal/replica/revision-retention.d.ts.map +1 -0
- package/dist/internal/replica/revision-retention.js +39 -0
- package/dist/internal/replica/revision-retention.js.map +1 -0
- package/dist/internal/replication/activation-fence.d.ts +40 -0
- package/dist/internal/replication/activation-fence.d.ts.map +1 -0
- package/dist/internal/replication/activation-fence.js +85 -0
- package/dist/internal/replication/activation-fence.js.map +1 -0
- package/dist/internal/replication/digest.d.ts +2 -0
- package/dist/internal/replication/digest.d.ts.map +1 -0
- package/dist/internal/replication/digest.js +12 -0
- package/dist/internal/replication/digest.js.map +1 -0
- package/dist/internal/replication/entity-id.d.ts +23 -0
- package/dist/internal/replication/entity-id.d.ts.map +1 -0
- package/dist/internal/replication/entity-id.js +161 -0
- package/dist/internal/replication/entity-id.js.map +1 -0
- package/dist/internal/replication/idb.d.ts +9 -0
- package/dist/internal/replication/idb.d.ts.map +1 -0
- package/dist/internal/replication/idb.js +46 -0
- package/dist/internal/replication/idb.js.map +1 -0
- package/dist/internal/replication/identity-root.d.ts +11 -0
- package/dist/internal/replication/identity-root.d.ts.map +1 -0
- package/dist/internal/replication/identity-root.js +48 -0
- package/dist/internal/replication/identity-root.js.map +1 -0
- package/dist/internal/replication/identity.d.ts +40 -0
- package/dist/internal/replication/identity.d.ts.map +1 -0
- package/dist/internal/replication/identity.js +95 -0
- package/dist/internal/replication/identity.js.map +1 -0
- package/dist/internal/replication/index.d.ts +13 -0
- package/dist/internal/replication/index.d.ts.map +1 -0
- package/dist/internal/replication/index.js +13 -0
- package/dist/internal/replication/index.js.map +1 -0
- package/dist/internal/replication/indexeddb.d.ts +171 -0
- package/dist/internal/replication/indexeddb.d.ts.map +1 -0
- package/dist/internal/replication/indexeddb.js +1809 -0
- package/dist/internal/replication/indexeddb.js.map +1 -0
- package/dist/internal/replication/leadership.d.ts +36 -0
- package/dist/internal/replication/leadership.d.ts.map +1 -0
- package/dist/internal/replication/leadership.js +108 -0
- package/dist/internal/replication/leadership.js.map +1 -0
- package/dist/internal/replication/logical.d.ts +40 -0
- package/dist/internal/replication/logical.d.ts.map +1 -0
- package/dist/internal/replication/logical.js +375 -0
- package/dist/internal/replication/logical.js.map +1 -0
- package/dist/internal/replication/notices.d.ts +32 -0
- package/dist/internal/replication/notices.d.ts.map +1 -0
- package/dist/internal/replication/notices.js +92 -0
- package/dist/internal/replication/notices.js.map +1 -0
- package/dist/internal/replication/outbox-storage.d.ts +98 -0
- package/dist/internal/replication/outbox-storage.d.ts.map +1 -0
- package/dist/internal/replication/outbox-storage.js +826 -0
- package/dist/internal/replication/outbox-storage.js.map +1 -0
- package/dist/internal/replication/outbox.d.ts +200 -0
- package/dist/internal/replication/outbox.d.ts.map +1 -0
- package/dist/internal/replication/outbox.js +744 -0
- package/dist/internal/replication/outbox.js.map +1 -0
- package/dist/internal/replication/overlay-layers.d.ts +14 -0
- package/dist/internal/replication/overlay-layers.d.ts.map +1 -0
- package/dist/internal/replication/overlay-layers.js +2 -0
- package/dist/internal/replication/overlay-layers.js.map +1 -0
- package/dist/internal/replication/overlay-records.d.ts +61 -0
- package/dist/internal/replication/overlay-records.d.ts.map +1 -0
- package/dist/internal/replication/overlay-records.js +328 -0
- package/dist/internal/replication/overlay-records.js.map +1 -0
- package/dist/internal/replication/overlay.d.ts +20 -0
- package/dist/internal/replication/overlay.d.ts.map +1 -0
- package/dist/internal/replication/overlay.js +159 -0
- package/dist/internal/replication/overlay.js.map +1 -0
- package/dist/internal/replication/projection-binding.d.ts +39 -0
- package/dist/internal/replication/projection-binding.d.ts.map +1 -0
- package/dist/internal/replication/projection-binding.js +76 -0
- package/dist/internal/replication/projection-binding.js.map +1 -0
- package/dist/internal/replication/protocol.d.ts +633 -0
- package/dist/internal/replication/protocol.d.ts.map +1 -0
- package/dist/internal/replication/protocol.js +263 -0
- package/dist/internal/replication/protocol.js.map +1 -0
- package/dist/internal/replication/reconciliation.d.ts +64 -0
- package/dist/internal/replication/reconciliation.d.ts.map +1 -0
- package/dist/internal/replication/reconciliation.js +184 -0
- package/dist/internal/replication/reconciliation.js.map +1 -0
- package/dist/internal/replication/replica-gc.d.ts +42 -0
- package/dist/internal/replication/replica-gc.d.ts.map +1 -0
- package/dist/internal/replication/replica-gc.js +91 -0
- package/dist/internal/replication/replica-gc.js.map +1 -0
- package/dist/internal/replication/replica-integrity.d.ts +107 -0
- package/dist/internal/replication/replica-integrity.d.ts.map +1 -0
- package/dist/internal/replication/replica-integrity.js +418 -0
- package/dist/internal/replication/replica-integrity.js.map +1 -0
- package/dist/internal/replication/replica-lifecycle.d.ts +72 -0
- package/dist/internal/replication/replica-lifecycle.d.ts.map +1 -0
- package/dist/internal/replication/replica-lifecycle.js +126 -0
- package/dist/internal/replication/replica-lifecycle.js.map +1 -0
- package/dist/internal/replication/replica-schema.d.ts +27 -0
- package/dist/internal/replication/replica-schema.d.ts.map +1 -0
- package/dist/internal/replication/replica-schema.js +130 -0
- package/dist/internal/replication/replica-schema.js.map +1 -0
- package/dist/internal/replication/route-slot.d.ts +9 -0
- package/dist/internal/replication/route-slot.d.ts.map +1 -0
- package/dist/internal/replication/route-slot.js +8 -0
- package/dist/internal/replication/route-slot.js.map +1 -0
- package/dist/internal/replication/server-identity.d.ts +54 -0
- package/dist/internal/replication/server-identity.d.ts.map +1 -0
- package/dist/internal/replication/server-identity.js +68 -0
- package/dist/internal/replication/server-identity.js.map +1 -0
- package/dist/internal/replication/session.d.ts +91 -0
- package/dist/internal/replication/session.d.ts.map +1 -0
- package/dist/internal/replication/session.js +673 -0
- package/dist/internal/replication/session.js.map +1 -0
- package/dist/internal/replication/state.d.ts +34 -0
- package/dist/internal/replication/state.d.ts.map +1 -0
- package/dist/internal/replication/state.js +344 -0
- package/dist/internal/replication/state.js.map +1 -0
- package/dist/internal/replication/submission.d.ts +115 -0
- package/dist/internal/replication/submission.d.ts.map +1 -0
- package/dist/internal/replication/submission.js +266 -0
- package/dist/internal/replication/submission.js.map +1 -0
- package/dist/internal/replication/transport.d.ts +34 -0
- package/dist/internal/replication/transport.d.ts.map +1 -0
- package/dist/internal/replication/transport.js +215 -0
- package/dist/internal/replication/transport.js.map +1 -0
- package/dist/internal/runtime-boundaries.d.ts +8 -0
- package/dist/internal/runtime-boundaries.d.ts.map +1 -0
- package/dist/internal/runtime-boundaries.js +7 -0
- package/dist/internal/runtime-boundaries.js.map +1 -0
- package/dist/internal/storage/index.d.ts +111 -0
- package/dist/internal/storage/index.d.ts.map +1 -0
- package/dist/internal/storage/index.js +288 -0
- package/dist/internal/storage/index.js.map +1 -0
- package/dist/internal/storage/memory.d.ts +31 -0
- package/dist/internal/storage/memory.d.ts.map +1 -0
- package/dist/internal/storage/memory.js +46 -0
- package/dist/internal/storage/memory.js.map +1 -0
- package/dist/internal/storage/revisions.d.ts +24 -0
- package/dist/internal/storage/revisions.d.ts.map +1 -0
- package/dist/internal/storage/revisions.js +74 -0
- package/dist/internal/storage/revisions.js.map +1 -0
- package/dist/internal/test-hooks.d.ts +47 -0
- package/dist/internal/test-hooks.d.ts.map +1 -0
- package/dist/internal/test-hooks.js +256 -0
- package/dist/internal/test-hooks.js.map +1 -0
- package/dist/internal/transactor/env.d.ts +3 -0
- package/dist/internal/transactor/env.d.ts.map +1 -0
- package/dist/internal/transactor/env.js +5 -0
- package/dist/internal/transactor/env.js.map +1 -0
- package/dist/internal/transactor/errors.d.ts +47 -0
- package/dist/internal/transactor/errors.d.ts.map +1 -0
- package/dist/internal/transactor/errors.js +66 -0
- package/dist/internal/transactor/errors.js.map +1 -0
- package/dist/internal/transactor/host.d.ts +37 -0
- package/dist/internal/transactor/host.d.ts.map +1 -0
- package/dist/internal/transactor/host.js +11 -0
- package/dist/internal/transactor/host.js.map +1 -0
- package/dist/internal/transactor/index.d.ts +8 -0
- package/dist/internal/transactor/index.d.ts.map +1 -0
- package/dist/internal/transactor/index.js +8 -0
- package/dist/internal/transactor/index.js.map +1 -0
- package/dist/internal/transactor/indexer.d.ts +53 -0
- package/dist/internal/transactor/indexer.d.ts.map +1 -0
- package/dist/internal/transactor/indexer.js +125 -0
- package/dist/internal/transactor/indexer.js.map +1 -0
- package/dist/internal/transactor/internal.d.ts +8 -0
- package/dist/internal/transactor/internal.d.ts.map +1 -0
- package/dist/internal/transactor/internal.js +28 -0
- package/dist/internal/transactor/internal.js.map +1 -0
- package/dist/internal/transactor/observability.d.ts +44 -0
- package/dist/internal/transactor/observability.d.ts.map +1 -0
- package/dist/internal/transactor/observability.js +39 -0
- package/dist/internal/transactor/observability.js.map +1 -0
- package/dist/internal/transactor/transactor-do.d.ts +35 -0
- package/dist/internal/transactor/transactor-do.d.ts.map +1 -0
- package/dist/internal/transactor/transactor-do.js +198 -0
- package/dist/internal/transactor/transactor-do.js.map +1 -0
- package/dist/internal/transactor/transactor.d.ts +209 -0
- package/dist/internal/transactor/transactor.d.ts.map +1 -0
- package/dist/internal/transactor/transactor.js +1166 -0
- package/dist/internal/transactor/transactor.js.map +1 -0
- package/dist/mcp/contract.d.ts +49 -0
- package/dist/mcp/contract.d.ts.map +1 -0
- package/dist/mcp/contract.js +199 -0
- package/dist/mcp/contract.js.map +1 -0
- package/dist/mcp/kernel.d.ts +56 -0
- package/dist/mcp/kernel.d.ts.map +1 -0
- package/dist/mcp/kernel.js +344 -0
- package/dist/mcp/kernel.js.map +1 -0
- package/dist/mcp/server.d.ts +8 -0
- package/dist/mcp/server.d.ts.map +1 -0
- package/dist/mcp/server.js +182 -0
- package/dist/mcp/server.js.map +1 -0
- package/dist/peer.d.ts +175 -0
- package/dist/peer.d.ts.map +1 -0
- package/dist/peer.js +200 -0
- package/dist/peer.js.map +1 -0
- package/dist/react/hooks.d.ts +157 -0
- package/dist/react/hooks.d.ts.map +1 -0
- package/dist/react/hooks.js +130 -0
- package/dist/react/hooks.js.map +1 -0
- package/dist/react/index.d.ts +4 -0
- package/dist/react/index.d.ts.map +1 -0
- package/dist/react/index.js +2 -0
- package/dist/react/index.js.map +1 -0
- package/dist/react/query-state.d.ts +60 -0
- package/dist/react/query-state.d.ts.map +1 -0
- package/dist/react/query-state.js +48 -0
- package/dist/react/query-state.js.map +1 -0
- package/dist/react/receipt-state.d.ts +27 -0
- package/dist/react/receipt-state.d.ts.map +1 -0
- package/dist/react/receipt-state.js +2 -0
- package/dist/react/receipt-state.js.map +1 -0
- package/dist/react/store.d.ts +30 -0
- package/dist/react/store.d.ts.map +1 -0
- package/dist/react/store.js +118 -0
- package/dist/react/store.js.map +1 -0
- package/dist/react/suspense.d.ts +6 -0
- package/dist/react/suspense.d.ts.map +1 -0
- package/dist/react/suspense.js +111 -0
- package/dist/react/suspense.js.map +1 -0
- package/dist/worker/admit.d.ts +9 -0
- package/dist/worker/admit.d.ts.map +1 -0
- package/dist/worker/admit.js +43 -0
- package/dist/worker/admit.js.map +1 -0
- package/dist/worker/analytics.d.ts +39 -0
- package/dist/worker/analytics.d.ts.map +1 -0
- package/dist/worker/analytics.js +54 -0
- package/dist/worker/analytics.js.map +1 -0
- package/dist/worker/auth.d.ts +26 -0
- package/dist/worker/auth.d.ts.map +1 -0
- package/dist/worker/auth.js +2 -0
- package/dist/worker/auth.js.map +1 -0
- package/dist/worker/authorized-live.d.ts +15 -0
- package/dist/worker/authorized-live.d.ts.map +1 -0
- package/dist/worker/authorized-live.js +30 -0
- package/dist/worker/authorized-live.js.map +1 -0
- package/dist/worker/authorized-operation.d.ts +30 -0
- package/dist/worker/authorized-operation.d.ts.map +1 -0
- package/dist/worker/authorized-operation.js +304 -0
- package/dist/worker/authorized-operation.js.map +1 -0
- package/dist/worker/authorized-read.d.ts +32 -0
- package/dist/worker/authorized-read.d.ts.map +1 -0
- package/dist/worker/authorized-read.js +194 -0
- package/dist/worker/authorized-read.js.map +1 -0
- package/dist/worker/authorized-replication.d.ts +21 -0
- package/dist/worker/authorized-replication.d.ts.map +1 -0
- package/dist/worker/authorized-replication.js +593 -0
- package/dist/worker/authorized-replication.js.map +1 -0
- package/dist/worker/changesets.d.ts +9 -0
- package/dist/worker/changesets.d.ts.map +1 -0
- package/dist/worker/changesets.js +105 -0
- package/dist/worker/changesets.js.map +1 -0
- package/dist/worker/demo.d.ts +2 -0
- package/dist/worker/demo.d.ts.map +1 -0
- package/dist/worker/demo.js +85 -0
- package/dist/worker/demo.js.map +1 -0
- package/dist/worker/errors.d.ts +53 -0
- package/dist/worker/errors.d.ts.map +1 -0
- package/dist/worker/errors.js +107 -0
- package/dist/worker/errors.js.map +1 -0
- package/dist/worker/handle.d.ts +21 -0
- package/dist/worker/handle.d.ts.map +1 -0
- package/dist/worker/handle.js +386 -0
- package/dist/worker/handle.js.map +1 -0
- package/dist/worker/index.d.ts +27 -0
- package/dist/worker/index.d.ts.map +1 -0
- package/dist/worker/index.js +24 -0
- package/dist/worker/index.js.map +1 -0
- package/dist/worker/jwt.d.ts +23 -0
- package/dist/worker/jwt.d.ts.map +1 -0
- package/dist/worker/jwt.js +288 -0
- package/dist/worker/jwt.js.map +1 -0
- package/dist/worker/mcp.d.ts +17 -0
- package/dist/worker/mcp.d.ts.map +1 -0
- package/dist/worker/mcp.js +151 -0
- package/dist/worker/mcp.js.map +1 -0
- package/dist/worker/operation-catalogs.d.ts +38 -0
- package/dist/worker/operation-catalogs.d.ts.map +1 -0
- package/dist/worker/operation-catalogs.js +114 -0
- package/dist/worker/operation-catalogs.js.map +1 -0
- package/dist/worker/peer.d.ts +70 -0
- package/dist/worker/peer.d.ts.map +1 -0
- package/dist/worker/peer.js +330 -0
- package/dist/worker/peer.js.map +1 -0
- package/dist/worker/public-observation.d.ts +15 -0
- package/dist/worker/public-observation.d.ts.map +1 -0
- package/dist/worker/public-observation.js +111 -0
- package/dist/worker/public-observation.js.map +1 -0
- package/dist/worker/server-identity.d.ts +2 -0
- package/dist/worker/server-identity.d.ts.map +1 -0
- package/dist/worker/server-identity.js +2 -0
- package/dist/worker/server-identity.js.map +1 -0
- package/dist/worker/session-sync.d.ts +27 -0
- package/dist/worker/session-sync.d.ts.map +1 -0
- package/dist/worker/session-sync.js +4 -0
- package/dist/worker/session-sync.js.map +1 -0
- package/dist/worker/session.d.ts +144 -0
- package/dist/worker/session.d.ts.map +1 -0
- package/dist/worker/session.js +408 -0
- package/dist/worker/session.js.map +1 -0
- package/dist/worker/storage-test-admin.d.ts +3 -0
- package/dist/worker/storage-test-admin.d.ts.map +1 -0
- package/dist/worker/storage-test-admin.js +277 -0
- package/dist/worker/storage-test-admin.js.map +1 -0
- package/dist/worker/test-admin.d.ts +11 -0
- package/dist/worker/test-admin.d.ts.map +1 -0
- package/dist/worker/test-admin.js +432 -0
- package/dist/worker/test-admin.js.map +1 -0
- package/dist/worker/testing.d.ts +14 -0
- package/dist/worker/testing.d.ts.map +1 -0
- package/dist/worker/testing.js +71 -0
- package/dist/worker/testing.js.map +1 -0
- package/dist/workerEntry.d.ts +2 -0
- package/dist/workerEntry.d.ts.map +1 -0
- package/dist/workerEntry.js +10 -0
- package/dist/workerEntry.js.map +1 -0
- package/dist/writes.d.ts +8 -0
- package/dist/writes.d.ts.map +1 -0
- package/dist/writes.js +11 -0
- package/dist/writes.js.map +1 -0
- package/package.json +102 -4
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ir.d.ts","sourceRoot":"","sources":["../../../src/internal/authorization/ir.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,131 @@
|
|
|
1
|
+
import * as Schema from "effect/Schema";
|
|
2
|
+
import { CatalogDescriptor, RuleAccessPlan } from "./catalog.js";
|
|
3
|
+
import { CanonicalAuthorizationExpr, RelativeAuthorizationExpr } from "./expr.js";
|
|
4
|
+
import { CanonicalIdentitySchemas, CatalogId, CatalogVersion, DatabaseId, PolicyHash, RelativeIdentitySchemas, RuleId, SchemaFingerprint, } from "./identities.js";
|
|
5
|
+
import { ClaimVocabulary, ClassVocabulary, InstalledPrincipalResolution, PrincipalResolutionConfig, } from "./principal.js";
|
|
6
|
+
import { AuthorizationLanguageVersion } from "./version.js";
|
|
7
|
+
export const POLICY_TEMPLATE_IR_VERSION = 2;
|
|
8
|
+
export const BOUND_AUTHORIZATION_IR_VERSION = 2;
|
|
9
|
+
export const VALIDATED_AUTHORIZATION_IR_VERSION = 2;
|
|
10
|
+
export const INSTALLED_AUTHORIZATION_IR_VERSION = 2;
|
|
11
|
+
export const PolicyTemplateIRVersion = Schema.Literal(POLICY_TEMPLATE_IR_VERSION);
|
|
12
|
+
export const BoundAuthorizationIRVersion = Schema.Literal(BOUND_AUTHORIZATION_IR_VERSION);
|
|
13
|
+
export const ValidatedAuthorizationIRVersion = Schema.Literal(VALIDATED_AUTHORIZATION_IR_VERSION);
|
|
14
|
+
export const InstalledAuthorizationIRVersion = Schema.Literal(INSTALLED_AUTHORIZATION_IR_VERSION);
|
|
15
|
+
export const RuleFocus = (ids) => Schema.Union([
|
|
16
|
+
Schema.TaggedStruct("entity", { entity: ids.entity }),
|
|
17
|
+
Schema.TaggedStruct("trait", { trait: ids.trait }),
|
|
18
|
+
Schema.TaggedStruct("field", { field: ids.field }),
|
|
19
|
+
Schema.TaggedStruct("operation", { operation: ids.operation }),
|
|
20
|
+
]);
|
|
21
|
+
export const AuthorizationRule = (ids, expr) => Schema.Struct({
|
|
22
|
+
id: RuleId,
|
|
23
|
+
focus: RuleFocus(ids),
|
|
24
|
+
expr,
|
|
25
|
+
usesResource: Schema.Boolean,
|
|
26
|
+
usesMe: Schema.Boolean,
|
|
27
|
+
usesSubject: Schema.Boolean,
|
|
28
|
+
traversalDepth: Schema.Natural,
|
|
29
|
+
});
|
|
30
|
+
export const Decision = Schema.Struct({
|
|
31
|
+
allow: Schema.Array(RuleId),
|
|
32
|
+
deny: Schema.Array(RuleId),
|
|
33
|
+
});
|
|
34
|
+
export const DecisionEntry = (target) => Schema.Struct({
|
|
35
|
+
target,
|
|
36
|
+
decision: Decision,
|
|
37
|
+
});
|
|
38
|
+
export const AuthorizationDecisions = (ids) => Schema.Struct({
|
|
39
|
+
entities: Schema.Array(DecisionEntry(ids.entity)),
|
|
40
|
+
traits: Schema.Array(DecisionEntry(ids.trait)),
|
|
41
|
+
fields: Schema.Array(DecisionEntry(ids.field)),
|
|
42
|
+
operations: Schema.Array(DecisionEntry(ids.operation)),
|
|
43
|
+
});
|
|
44
|
+
export const PolicyTemplateIR = Schema.TaggedStruct("PolicyTemplateIR", {
|
|
45
|
+
version: PolicyTemplateIRVersion,
|
|
46
|
+
languageVersion: AuthorizationLanguageVersion,
|
|
47
|
+
classes: ClassVocabulary,
|
|
48
|
+
claims: ClaimVocabulary,
|
|
49
|
+
principal: PrincipalResolutionConfig,
|
|
50
|
+
rules: Schema.Array(AuthorizationRule(RelativeIdentitySchemas, RelativeAuthorizationExpr)),
|
|
51
|
+
decisions: AuthorizationDecisions(RelativeIdentitySchemas),
|
|
52
|
+
});
|
|
53
|
+
export const BoundAuthorizationIR = Schema.TaggedStruct("BoundAuthorizationIR", {
|
|
54
|
+
version: BoundAuthorizationIRVersion,
|
|
55
|
+
languageVersion: AuthorizationLanguageVersion,
|
|
56
|
+
database: DatabaseId,
|
|
57
|
+
catalog: CatalogId,
|
|
58
|
+
catalogVersion: CatalogVersion,
|
|
59
|
+
schemaFingerprint: SchemaFingerprint,
|
|
60
|
+
classes: ClassVocabulary,
|
|
61
|
+
claims: ClaimVocabulary,
|
|
62
|
+
principal: InstalledPrincipalResolution,
|
|
63
|
+
rules: Schema.Array(AuthorizationRule(CanonicalIdentitySchemas, CanonicalAuthorizationExpr)),
|
|
64
|
+
decisions: AuthorizationDecisions(CanonicalIdentitySchemas),
|
|
65
|
+
});
|
|
66
|
+
export const ValidatedAuthorizationIR = Schema.TaggedStruct("ValidatedAuthorizationIR", {
|
|
67
|
+
version: ValidatedAuthorizationIRVersion,
|
|
68
|
+
languageVersion: AuthorizationLanguageVersion,
|
|
69
|
+
database: DatabaseId,
|
|
70
|
+
catalog: CatalogId,
|
|
71
|
+
catalogVersion: CatalogVersion,
|
|
72
|
+
schemaFingerprint: SchemaFingerprint,
|
|
73
|
+
classes: ClassVocabulary,
|
|
74
|
+
claims: ClaimVocabulary,
|
|
75
|
+
principal: InstalledPrincipalResolution,
|
|
76
|
+
rules: Schema.Array(AuthorizationRule(CanonicalIdentitySchemas, CanonicalAuthorizationExpr)),
|
|
77
|
+
decisions: AuthorizationDecisions(CanonicalIdentitySchemas),
|
|
78
|
+
});
|
|
79
|
+
export const AuthorizationValidationInput = Schema.Struct({
|
|
80
|
+
bound: BoundAuthorizationIR,
|
|
81
|
+
descriptor: CatalogDescriptor,
|
|
82
|
+
});
|
|
83
|
+
export const InstalledAuthorizationIR = Schema.TaggedStruct("InstalledAuthorizationIR", {
|
|
84
|
+
version: InstalledAuthorizationIRVersion,
|
|
85
|
+
languageVersion: AuthorizationLanguageVersion,
|
|
86
|
+
policyHash: PolicyHash,
|
|
87
|
+
classes: ClassVocabulary,
|
|
88
|
+
claims: ClaimVocabulary,
|
|
89
|
+
principal: InstalledPrincipalResolution,
|
|
90
|
+
rules: Schema.Array(AuthorizationRule(CanonicalIdentitySchemas, CanonicalAuthorizationExpr)),
|
|
91
|
+
decisions: AuthorizationDecisions(CanonicalIdentitySchemas),
|
|
92
|
+
accessPlans: Schema.Array(RuleAccessPlan),
|
|
93
|
+
});
|
|
94
|
+
const LegacyCanonicalIdentitySchemasV1 = {
|
|
95
|
+
...CanonicalIdentitySchemas,
|
|
96
|
+
operation: Schema.Never,
|
|
97
|
+
};
|
|
98
|
+
const LegacyAuthorizationDecisionsV1 = Schema.Struct({
|
|
99
|
+
entities: Schema.Array(DecisionEntry(CanonicalIdentitySchemas.entity)),
|
|
100
|
+
traits: Schema.Array(DecisionEntry(CanonicalIdentitySchemas.trait)),
|
|
101
|
+
fields: Schema.Array(DecisionEntry(CanonicalIdentitySchemas.field)),
|
|
102
|
+
});
|
|
103
|
+
export const LegacyInstalledAuthorizationIRV1 = Schema.TaggedStruct("InstalledAuthorizationIR", {
|
|
104
|
+
version: Schema.Literal(1),
|
|
105
|
+
languageVersion: AuthorizationLanguageVersion,
|
|
106
|
+
policyHash: PolicyHash,
|
|
107
|
+
classes: ClassVocabulary,
|
|
108
|
+
claims: ClaimVocabulary,
|
|
109
|
+
principal: InstalledPrincipalResolution,
|
|
110
|
+
rules: Schema.Array(AuthorizationRule(LegacyCanonicalIdentitySchemasV1, CanonicalAuthorizationExpr)),
|
|
111
|
+
decisions: LegacyAuthorizationDecisionsV1,
|
|
112
|
+
accessPlans: Schema.Array(RuleAccessPlan),
|
|
113
|
+
});
|
|
114
|
+
export const CatalogBindingTarget = Schema.Struct({
|
|
115
|
+
database: DatabaseId,
|
|
116
|
+
catalog: CatalogId,
|
|
117
|
+
catalogVersion: CatalogVersion,
|
|
118
|
+
schemaFingerprint: SchemaFingerprint,
|
|
119
|
+
});
|
|
120
|
+
export const CatalogBindingInput = Schema.Struct({
|
|
121
|
+
target: CatalogBindingTarget,
|
|
122
|
+
descriptor: CatalogDescriptor,
|
|
123
|
+
template: PolicyTemplateIR,
|
|
124
|
+
});
|
|
125
|
+
export const RelativeRuleFocus = RuleFocus(RelativeIdentitySchemas);
|
|
126
|
+
export const CanonicalRuleFocus = RuleFocus(CanonicalIdentitySchemas);
|
|
127
|
+
export const RelativeAuthorizationRule = AuthorizationRule(RelativeIdentitySchemas, RelativeAuthorizationExpr);
|
|
128
|
+
export const CanonicalAuthorizationRule = AuthorizationRule(CanonicalIdentitySchemas, CanonicalAuthorizationExpr);
|
|
129
|
+
export const RelativeAuthorizationDecisions = AuthorizationDecisions(RelativeIdentitySchemas);
|
|
130
|
+
export const CanonicalAuthorizationDecisions = AuthorizationDecisions(CanonicalIdentitySchemas);
|
|
131
|
+
//# sourceMappingURL=ir.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ir.js","sourceRoot":"","sources":["../../../src/internal/authorization/ir.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,MAAM,MAAM,eAAe,CAAC;AACxC,OAAO,EAAE,iBAAiB,EAAE,cAAc,EAAE,MAAM,cAAc,CAAC;AACjE,OAAO,EAAE,0BAA0B,EAAE,yBAAyB,EAAE,MAAM,WAAW,CAAC;AAClF,OAAO,EACL,wBAAwB,EACxB,SAAS,EACT,cAAc,EACd,UAAU,EACV,UAAU,EACV,uBAAuB,EACvB,MAAM,EACN,iBAAiB,GAKlB,MAAM,iBAAiB,CAAC;AACzB,OAAO,EACL,eAAe,EACf,eAAe,EACf,4BAA4B,EAC5B,yBAAyB,GAC1B,MAAM,gBAAgB,CAAC;AACxB,OAAO,EAAE,4BAA4B,EAAE,MAAM,cAAc,CAAC;AAE5D,MAAM,CAAC,MAAM,0BAA0B,GAAG,CAAU,CAAC;AACrD,MAAM,CAAC,MAAM,8BAA8B,GAAG,CAAU,CAAC;AACzD,MAAM,CAAC,MAAM,kCAAkC,GAAG,CAAU,CAAC;AAC7D,MAAM,CAAC,MAAM,kCAAkC,GAAG,CAAU,CAAC;AAE7D,MAAM,CAAC,MAAM,uBAAuB,GAAG,MAAM,CAAC,OAAO,CAAC,0BAA0B,CAAC,CAAC;AAGlF,MAAM,CAAC,MAAM,2BAA2B,GAAG,MAAM,CAAC,OAAO,CAAC,8BAA8B,CAAC,CAAC;AAG1F,MAAM,CAAC,MAAM,+BAA+B,GAAG,MAAM,CAAC,OAAO,CAAC,kCAAkC,CAAC,CAAC;AAGlG,MAAM,CAAC,MAAM,+BAA+B,GAAG,MAAM,CAAC,OAAO,CAAC,kCAAkC,CAAC,CAAC;AAGlG,MAAM,CAAC,MAAM,SAAS,GAAG,CAMvB,GAA4D,EAC5D,EAAE,CACF,MAAM,CAAC,KAAK,CAAC;IACX,MAAM,CAAC,YAAY,CAAC,QAAQ,EAAE,EAAE,MAAM,EAAE,GAAG,CAAC,MAAM,EAAE,CAAC;IACrD,MAAM,CAAC,YAAY,CAAC,OAAO,EAAE,EAAE,KAAK,EAAE,GAAG,CAAC,KAAK,EAAE,CAAC;IAClD,MAAM,CAAC,YAAY,CAAC,OAAO,EAAE,EAAE,KAAK,EAAE,GAAG,CAAC,KAAK,EAAE,CAAC;IAClD,MAAM,CAAC,YAAY,CAAC,WAAW,EAAE,EAAE,SAAS,EAAE,GAAG,CAAC,SAAS,EAAE,CAAC;CAC/D,CAAC,CAAC;AAEL,MAAM,CAAC,MAAM,iBAAiB,GAAG,CAO/B,GAA4D,EAC5D,IAAU,EACV,EAAE,CACF,MAAM,CAAC,MAAM,CAAC;IACZ,EAAE,EAAE,MAAM;IACV,KAAK,EAAE,SAAS,CAAC,GAAG,CAAC;IACrB,IAAI;IACJ,YAAY,EAAE,MAAM,CAAC,OAAO;IAC5B,MAAM,EAAE,MAAM,CAAC,OAAO;IACtB,WAAW,EAAE,MAAM,CAAC,OAAO;IAC3B,cAAc,EAAE,MAAM,CAAC,OAAO;CAC/B,CAAC,CAAC;AAEL,MAAM,CAAC,MAAM,QAAQ,GAAG,MAAM,CAAC,MAAM,CAAC;IACpC,KAAK,EAAE,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC;IAC3B,IAAI,EAAE,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC;CAC3B,CAAC,CAAC;AAGH,MAAM,CAAC,MAAM,aAAa,GAAG,CAA4B,MAAc,EAAE,EAAE,CACzE,MAAM,CAAC,MAAM,CAAC;IACZ,MAAM;IACN,QAAQ,EAAE,QAAQ;CACnB,CAAC,CAAC;AAEL,MAAM,CAAC,MAAM,sBAAsB,GAAG,CAMpC,GAA4D,EAC5D,EAAE,CACF,MAAM,CAAC,MAAM,CAAC;IACZ,QAAQ,EAAE,MAAM,CAAC,KAAK,CAAC,aAAa,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;IACjD,MAAM,EAAE,MAAM,CAAC,KAAK,CAAC,aAAa,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;IAC9C,MAAM,EAAE,MAAM,CAAC,KAAK,CAAC,aAAa,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;IAC9C,UAAU,EAAE,MAAM,CAAC,KAAK,CAAC,aAAa,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;CACvD,CAAC,CAAC;AAEL,MAAM,CAAC,MAAM,gBAAgB,GAAG,MAAM,CAAC,YAAY,CAAC,kBAAkB,EAAE;IACtE,OAAO,EAAE,uBAAuB;IAChC,eAAe,EAAE,4BAA4B;IAC7C,OAAO,EAAE,eAAe;IACxB,MAAM,EAAE,eAAe;IACvB,SAAS,EAAE,yBAAyB;IACpC,KAAK,EAAE,MAAM,CAAC,KAAK,CAAC,iBAAiB,CAAC,uBAAuB,EAAE,yBAAyB,CAAC,CAAC;IAC1F,SAAS,EAAE,sBAAsB,CAAC,uBAAuB,CAAC;CAC3D,CAAC,CAAC;AAGH,MAAM,CAAC,MAAM,oBAAoB,GAAG,MAAM,CAAC,YAAY,CAAC,sBAAsB,EAAE;IAC9E,OAAO,EAAE,2BAA2B;IACpC,eAAe,EAAE,4BAA4B;IAC7C,QAAQ,EAAE,UAAU;IACpB,OAAO,EAAE,SAAS;IAClB,cAAc,EAAE,cAAc;IAC9B,iBAAiB,EAAE,iBAAiB;IACpC,OAAO,EAAE,eAAe;IACxB,MAAM,EAAE,eAAe;IACvB,SAAS,EAAE,4BAA4B;IACvC,KAAK,EAAE,MAAM,CAAC,KAAK,CAAC,iBAAiB,CAAC,wBAAwB,EAAE,0BAA0B,CAAC,CAAC;IAC5F,SAAS,EAAE,sBAAsB,CAAC,wBAAwB,CAAC;CAC5D,CAAC,CAAC;AAGH,MAAM,CAAC,MAAM,wBAAwB,GAAG,MAAM,CAAC,YAAY,CAAC,0BAA0B,EAAE;IACtF,OAAO,EAAE,+BAA+B;IACxC,eAAe,EAAE,4BAA4B;IAC7C,QAAQ,EAAE,UAAU;IACpB,OAAO,EAAE,SAAS;IAClB,cAAc,EAAE,cAAc;IAC9B,iBAAiB,EAAE,iBAAiB;IACpC,OAAO,EAAE,eAAe;IACxB,MAAM,EAAE,eAAe;IACvB,SAAS,EAAE,4BAA4B;IACvC,KAAK,EAAE,MAAM,CAAC,KAAK,CAAC,iBAAiB,CAAC,wBAAwB,EAAE,0BAA0B,CAAC,CAAC;IAC5F,SAAS,EAAE,sBAAsB,CAAC,wBAAwB,CAAC;CAC5D,CAAC,CAAC;AAGH,MAAM,CAAC,MAAM,4BAA4B,GAAG,MAAM,CAAC,MAAM,CAAC;IACxD,KAAK,EAAE,oBAAoB;IAC3B,UAAU,EAAE,iBAAiB;CAC9B,CAAC,CAAC;AAGH,MAAM,CAAC,MAAM,wBAAwB,GAAG,MAAM,CAAC,YAAY,CAAC,0BAA0B,EAAE;IACtF,OAAO,EAAE,+BAA+B;IACxC,eAAe,EAAE,4BAA4B;IAC7C,UAAU,EAAE,UAAU;IACtB,OAAO,EAAE,eAAe;IACxB,MAAM,EAAE,eAAe;IACvB,SAAS,EAAE,4BAA4B;IACvC,KAAK,EAAE,MAAM,CAAC,KAAK,CAAC,iBAAiB,CAAC,wBAAwB,EAAE,0BAA0B,CAAC,CAAC;IAC5F,SAAS,EAAE,sBAAsB,CAAC,wBAAwB,CAAC;IAC3D,WAAW,EAAE,MAAM,CAAC,KAAK,CAAC,cAAc,CAAC;CAC1C,CAAC,CAAC;AAGH,MAAM,gCAAgC,GAAG;IACvC,GAAG,wBAAwB;IAC3B,SAAS,EAAE,MAAM,CAAC,KAAK;CACxB,CAAC;AAEF,MAAM,8BAA8B,GAAG,MAAM,CAAC,MAAM,CAAC;IACnD,QAAQ,EAAE,MAAM,CAAC,KAAK,CAAC,aAAa,CAAC,wBAAwB,CAAC,MAAM,CAAC,CAAC;IACtE,MAAM,EAAE,MAAM,CAAC,KAAK,CAAC,aAAa,CAAC,wBAAwB,CAAC,KAAK,CAAC,CAAC;IACnE,MAAM,EAAE,MAAM,CAAC,KAAK,CAAC,aAAa,CAAC,wBAAwB,CAAC,KAAK,CAAC,CAAC;CACpE,CAAC,CAAC;AAEH,MAAM,CAAC,MAAM,gCAAgC,GAAG,MAAM,CAAC,YAAY,CACjE,0BAA0B,EAC1B;IACE,OAAO,EAAE,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC;IAC1B,eAAe,EAAE,4BAA4B;IAC7C,UAAU,EAAE,UAAU;IACtB,OAAO,EAAE,eAAe;IACxB,MAAM,EAAE,eAAe;IACvB,SAAS,EAAE,4BAA4B;IACvC,KAAK,EAAE,MAAM,CAAC,KAAK,CACjB,iBAAiB,CAAC,gCAAgC,EAAE,0BAA0B,CAAC,CAChF;IACD,SAAS,EAAE,8BAA8B;IACzC,WAAW,EAAE,MAAM,CAAC,KAAK,CAAC,cAAc,CAAC;CAC1C,CACF,CAAC;AAOF,MAAM,CAAC,MAAM,oBAAoB,GAAG,MAAM,CAAC,MAAM,CAAC;IAChD,QAAQ,EAAE,UAAU;IACpB,OAAO,EAAE,SAAS;IAClB,cAAc,EAAE,cAAc;IAC9B,iBAAiB,EAAE,iBAAiB;CACrC,CAAC,CAAC;AAGH,MAAM,CAAC,MAAM,mBAAmB,GAAG,MAAM,CAAC,MAAM,CAAC;IAC/C,MAAM,EAAE,oBAAoB;IAC5B,UAAU,EAAE,iBAAiB;IAC7B,QAAQ,EAAE,gBAAgB;CAC3B,CAAC,CAAC;AAGH,MAAM,CAAC,MAAM,iBAAiB,GAAG,SAAS,CAAC,uBAAuB,CAAC,CAAC;AAEpE,MAAM,CAAC,MAAM,kBAAkB,GAAG,SAAS,CAAC,wBAAwB,CAAC,CAAC;AAGtE,MAAM,CAAC,MAAM,yBAAyB,GAAG,iBAAiB,CACxD,uBAAuB,EACvB,yBAAyB,CAC1B,CAAC;AAEF,MAAM,CAAC,MAAM,0BAA0B,GAAG,iBAAiB,CACzD,wBAAwB,EACxB,0BAA0B,CAC3B,CAAC;AAGF,MAAM,CAAC,MAAM,8BAA8B,GAAG,sBAAsB,CAAC,uBAAuB,CAAC,CAAC;AAE9F,MAAM,CAAC,MAAM,+BAA+B,GAAG,sBAAsB,CAAC,wBAAwB,CAAC,CAAC"}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import * as Schema from "effect/Schema";
|
|
2
|
+
export declare const JsonScalar: Schema.Union<readonly [Schema.String, Schema.Finite, Schema.Boolean, Schema.Null]>;
|
|
3
|
+
export type JsonScalar = typeof JsonScalar.Type;
|
|
4
|
+
export type JsonValue = JsonScalar | ReadonlyArray<JsonValue> | {
|
|
5
|
+
readonly [key: string]: JsonValue;
|
|
6
|
+
};
|
|
7
|
+
export declare const JsonValue: Schema.Codec<JsonValue>;
|
|
8
|
+
//# sourceMappingURL=json.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"json.d.ts","sourceRoot":"","sources":["../../../src/internal/authorization/json.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,MAAM,eAAe,CAAC;AAExC,eAAO,MAAM,UAAU,oFAKrB,CAAC;AACH,MAAM,MAAM,UAAU,GAAG,OAAO,UAAU,CAAC,IAAI,CAAC;AAEhD,MAAM,MAAM,SAAS,GACjB,UAAU,GACV,aAAa,CAAC,SAAS,CAAC,GACxB;IAAE,QAAQ,EAAE,GAAG,EAAE,MAAM,GAAG,SAAS,CAAA;CAAE,CAAC;AAE1C,eAAO,MAAM,SAAS,EAAE,MAAM,CAAC,KAAK,CAAC,SAAS,CAM7C,CAAC"}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import * as Schema from "effect/Schema";
|
|
2
|
+
export const JsonScalar = Schema.Union([
|
|
3
|
+
Schema.String,
|
|
4
|
+
Schema.Finite,
|
|
5
|
+
Schema.Boolean,
|
|
6
|
+
Schema.Null,
|
|
7
|
+
]);
|
|
8
|
+
export const JsonValue = Schema.suspend(() => Schema.Union([
|
|
9
|
+
JsonScalar,
|
|
10
|
+
Schema.Array(JsonValue),
|
|
11
|
+
Schema.Record(Schema.String, JsonValue),
|
|
12
|
+
]));
|
|
13
|
+
//# sourceMappingURL=json.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"json.js","sourceRoot":"","sources":["../../../src/internal/authorization/json.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,MAAM,eAAe,CAAC;AAExC,MAAM,CAAC,MAAM,UAAU,GAAG,MAAM,CAAC,KAAK,CAAC;IACrC,MAAM,CAAC,MAAM;IACb,MAAM,CAAC,MAAM;IACb,MAAM,CAAC,OAAO;IACd,MAAM,CAAC,IAAI;CACZ,CAAC,CAAC;AAQH,MAAM,CAAC,MAAM,SAAS,GAA4B,MAAM,CAAC,OAAO,CAAC,GAAG,EAAE,CACpE,MAAM,CAAC,KAAK,CAAC;IACX,UAAU;IACV,MAAM,CAAC,KAAK,CAAC,SAAS,CAAC;IACvB,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,MAAM,EAAE,SAAS,CAAC;CACxC,CAAC,CACH,CAAC"}
|
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
import * as Deferred from "effect/Deferred";
|
|
2
|
+
import * as Duration from "effect/Duration";
|
|
3
|
+
import * as Effect from "effect/Effect";
|
|
4
|
+
import * as Queue from "effect/Queue";
|
|
5
|
+
import * as Stream from "effect/Stream";
|
|
6
|
+
import { Unauthorized } from "../../db/Errors.ts";
|
|
7
|
+
import type { Db } from "../core/db.ts";
|
|
8
|
+
import type { RuntimeBoundaries } from "../runtime-boundaries.ts";
|
|
9
|
+
import { type AuthenticatedCaller, type AuthorizedRequestInput } from "./request.ts";
|
|
10
|
+
import { OneShotReadError, type OneShotRead, type OneShotReadOptions } from "./reads.ts";
|
|
11
|
+
export type LiveQueryDiff = {
|
|
12
|
+
readonly added: readonly unknown[];
|
|
13
|
+
readonly retracted: readonly unknown[];
|
|
14
|
+
};
|
|
15
|
+
export type LiveBasisEvent = "ready" | "change";
|
|
16
|
+
export type AuthorizedLiveControls<R = never> = {
|
|
17
|
+
readonly previous?: unknown;
|
|
18
|
+
readonly wakes?: Queue.Dequeue<unknown>;
|
|
19
|
+
readonly revoked?: Deferred.Deferred<void>;
|
|
20
|
+
readonly renew?: Effect.Effect<void, Unauthorized, R>;
|
|
21
|
+
readonly basisChanges?: Stream.Stream<LiveBasisEvent, Unauthorized, R>;
|
|
22
|
+
readonly invalidations?: Stream.Stream<unknown, Unauthorized, R>;
|
|
23
|
+
readonly boundaries?: RuntimeBoundaries;
|
|
24
|
+
};
|
|
25
|
+
export type AuthorizedLiveInput<R = never, EDb = unknown> = AuthorizedRequestInput<R, EDb> & AuthorizedLiveControls<R>;
|
|
26
|
+
export type AuthorizedLiveLeaseInput<R = never, EAuthorize = unknown> = AuthorizedLiveControls<R> & {
|
|
27
|
+
readonly authenticate: Effect.Effect<AuthenticatedCaller, Unauthorized, R>;
|
|
28
|
+
readonly interruptAfter?: Duration.Input;
|
|
29
|
+
readonly authorize: (caller: AuthenticatedCaller) => Effect.Effect<Db, Unauthorized | EAuthorize, R>;
|
|
30
|
+
readonly reauthorizeOnIdle?: boolean;
|
|
31
|
+
};
|
|
32
|
+
export declare const liveResultRows: (value: unknown) => readonly unknown[];
|
|
33
|
+
export declare const isSilentLiveDiff: (diff: LiveQueryDiff) => boolean;
|
|
34
|
+
export declare const diffAuthorizedResults: (previous: unknown, next: unknown) => LiveQueryDiff;
|
|
35
|
+
export declare const liveDiffFromPrevious: (previous: unknown | undefined, next: unknown) => LiveQueryDiff;
|
|
36
|
+
export declare const executeAuthorizedLiveLease: <R, EAuthorize = unknown>(input: AuthorizedLiveLeaseInput<R, EAuthorize>, read: OneShotRead, opts?: OneShotReadOptions) => Stream.Stream<LiveQueryDiff, Unauthorized | OneShotReadError | EAuthorize, R>;
|
|
37
|
+
export declare const executeAuthorizedLive: <R, EDb = unknown>(input: AuthorizedLiveInput<R, EDb>, read: OneShotRead, opts?: OneShotReadOptions) => Stream.Stream<LiveQueryDiff, Unauthorized | OneShotReadError | EDb, R>;
|
|
38
|
+
//# sourceMappingURL=live.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"live.d.ts","sourceRoot":"","sources":["../../../src/internal/authorization/live.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,227 @@
|
|
|
1
|
+
import * as Clock from "effect/Clock";
|
|
2
|
+
import * as Deferred from "effect/Deferred";
|
|
3
|
+
import * as Duration from "effect/Duration";
|
|
4
|
+
import * as Effect from "effect/Effect";
|
|
5
|
+
import * as Queue from "effect/Queue";
|
|
6
|
+
import * as Ref from "effect/Ref";
|
|
7
|
+
import * as Result from "effect/Result";
|
|
8
|
+
import * as Stream from "effect/Stream";
|
|
9
|
+
import { Unauthorized } from "../../db/Errors.js";
|
|
10
|
+
import { stringifyJson } from "../core/json.js";
|
|
11
|
+
import { MAX_READ_LEASE_MS } from "./bounds.js";
|
|
12
|
+
import { constructAuthorizedRequestContext, } from "./request.js";
|
|
13
|
+
import { OneShotReadError, runOneShotRead, } from "./reads.js";
|
|
14
|
+
const deny = () => new Unauthorized({});
|
|
15
|
+
const ABSENT = Symbol("ramose/live/absent");
|
|
16
|
+
const leaseLimit = (interruptAfter) => Duration.min(Duration.fromInputUnsafe(interruptAfter ?? MAX_READ_LEASE_MS), Duration.millis(MAX_READ_LEASE_MS));
|
|
17
|
+
const callerLease = (caller, nowMs, limit) => {
|
|
18
|
+
if (!Number.isSafeInteger(caller.exp))
|
|
19
|
+
return Result.fail(deny());
|
|
20
|
+
const remainingMs = caller.exp * 1_000 - nowMs;
|
|
21
|
+
if (remainingMs <= 0)
|
|
22
|
+
return Result.fail(deny());
|
|
23
|
+
const duration = Duration.min(limit, Duration.millis(remainingMs));
|
|
24
|
+
return Result.succeed({ duration, expiresAtMs: nowMs + Duration.toMillis(duration) });
|
|
25
|
+
};
|
|
26
|
+
const principalLeaseIdentity = (caller) => stringifyJson({
|
|
27
|
+
claims: caller.claims,
|
|
28
|
+
classes: [...caller.classes].sort(),
|
|
29
|
+
});
|
|
30
|
+
const atBoundary = (boundaries, name) => boundaries === undefined
|
|
31
|
+
? Effect.void
|
|
32
|
+
: Effect.tryPromise({
|
|
33
|
+
try: () => boundaries.checkpoint(name),
|
|
34
|
+
catch: () => deny(),
|
|
35
|
+
});
|
|
36
|
+
export const liveResultRows = (value) => {
|
|
37
|
+
if (value === null || value === undefined)
|
|
38
|
+
return [];
|
|
39
|
+
return Array.isArray(value) ? value : [value];
|
|
40
|
+
};
|
|
41
|
+
export const isSilentLiveDiff = (diff) => diff.added.length === 0 && diff.retracted.length === 0;
|
|
42
|
+
export const diffAuthorizedResults = (previous, next) => {
|
|
43
|
+
const prevRows = liveResultRows(previous);
|
|
44
|
+
const nextRows = liveResultRows(next);
|
|
45
|
+
const prevCounts = new Map();
|
|
46
|
+
const nextCounts = new Map();
|
|
47
|
+
for (const row of prevRows) {
|
|
48
|
+
const key = stringifyJson(row);
|
|
49
|
+
prevCounts.set(key, (prevCounts.get(key) ?? 0) + 1);
|
|
50
|
+
}
|
|
51
|
+
for (const row of nextRows) {
|
|
52
|
+
const key = stringifyJson(row);
|
|
53
|
+
nextCounts.set(key, (nextCounts.get(key) ?? 0) + 1);
|
|
54
|
+
}
|
|
55
|
+
const added = [];
|
|
56
|
+
const retracted = [];
|
|
57
|
+
const remainingPrev = new Map(prevCounts);
|
|
58
|
+
for (const row of nextRows) {
|
|
59
|
+
const key = stringifyJson(row);
|
|
60
|
+
const remaining = remainingPrev.get(key) ?? 0;
|
|
61
|
+
if (remaining === 0)
|
|
62
|
+
added.push(row);
|
|
63
|
+
else
|
|
64
|
+
remainingPrev.set(key, remaining - 1);
|
|
65
|
+
}
|
|
66
|
+
const remainingNext = new Map(nextCounts);
|
|
67
|
+
for (const row of prevRows) {
|
|
68
|
+
const key = stringifyJson(row);
|
|
69
|
+
const remaining = remainingNext.get(key) ?? 0;
|
|
70
|
+
if (remaining === 0)
|
|
71
|
+
retracted.push(row);
|
|
72
|
+
else
|
|
73
|
+
remainingNext.set(key, remaining - 1);
|
|
74
|
+
}
|
|
75
|
+
const reconstructed = [...prevRows];
|
|
76
|
+
for (const row of retracted) {
|
|
77
|
+
const key = stringifyJson(row);
|
|
78
|
+
const index = reconstructed.findIndex((candidate) => stringifyJson(candidate) === key);
|
|
79
|
+
if (index !== -1)
|
|
80
|
+
reconstructed.splice(index, 1);
|
|
81
|
+
}
|
|
82
|
+
reconstructed.push(...added);
|
|
83
|
+
const reconstructedOrder = reconstructed.map(stringifyJson);
|
|
84
|
+
const nextOrder = nextRows.map(stringifyJson);
|
|
85
|
+
if (reconstructedOrder.length !== nextOrder.length ||
|
|
86
|
+
reconstructedOrder.some((key, index) => key !== nextOrder[index])) {
|
|
87
|
+
return { added: nextRows, retracted: prevRows };
|
|
88
|
+
}
|
|
89
|
+
return { added, retracted };
|
|
90
|
+
};
|
|
91
|
+
export const liveDiffFromPrevious = (previous, next) => previous === undefined ? { added: liveResultRows(next), retracted: [] } : diffAuthorizedResults(previous, next);
|
|
92
|
+
const remainingOf = (expiresAtMs, nowMs) => Duration.millis(Math.max(0, expiresAtMs - nowMs));
|
|
93
|
+
const waitWakeOrLease = (wakes, remaining) => {
|
|
94
|
+
if (Duration.toMillis(remaining) <= 0)
|
|
95
|
+
return Effect.succeed(false);
|
|
96
|
+
return Effect.race(Queue.take(wakes).pipe(Effect.as(true)), Effect.sleep(remaining).pipe(Effect.as(false)));
|
|
97
|
+
};
|
|
98
|
+
const readAuthorized = (db, read, opts) => Effect.tryPromise({
|
|
99
|
+
try: () => runOneShotRead(db, read, opts),
|
|
100
|
+
catch: (cause) => new OneShotReadError({ cause }),
|
|
101
|
+
});
|
|
102
|
+
const deliverSnapshot = (item) => Effect.gen(function* () {
|
|
103
|
+
yield* atBoundary(item.boundaries, "live.emit");
|
|
104
|
+
const nowMs = yield* Clock.currentTimeMillis;
|
|
105
|
+
const current = yield* Ref.get(item.epoch);
|
|
106
|
+
if (item.id !== current || nowMs >= item.expiresAtMs)
|
|
107
|
+
return Result.fail(undefined);
|
|
108
|
+
const sent = yield* Ref.get(item.lastSent);
|
|
109
|
+
const initial = sent === ABSENT;
|
|
110
|
+
const diff = initial
|
|
111
|
+
? liveDiffFromPrevious(undefined, item.value)
|
|
112
|
+
: diffAuthorizedResults(sent, item.value);
|
|
113
|
+
if (!initial && isSilentLiveDiff(diff)) {
|
|
114
|
+
yield* Ref.set(item.lastSent, item.value);
|
|
115
|
+
return Result.fail(undefined);
|
|
116
|
+
}
|
|
117
|
+
const still = yield* Ref.get(item.epoch);
|
|
118
|
+
const again = yield* Clock.currentTimeMillis;
|
|
119
|
+
if (still !== item.id || again >= item.expiresAtMs)
|
|
120
|
+
return Result.fail(undefined);
|
|
121
|
+
yield* Ref.set(item.lastSent, item.value);
|
|
122
|
+
return Result.succeed(diff);
|
|
123
|
+
});
|
|
124
|
+
export const executeAuthorizedLiveLease = (input, read, opts = {}) => Stream.callback((out) => Effect.gen(function* () {
|
|
125
|
+
const wakes = yield* Queue.dropping(1);
|
|
126
|
+
const basisReady = yield* Deferred.make();
|
|
127
|
+
const epoch = yield* Ref.make(0);
|
|
128
|
+
const lastSent = yield* Ref.make(input.previous === undefined ? ABSENT : input.previous);
|
|
129
|
+
const limit = leaseLimit(input.interruptAfter);
|
|
130
|
+
const invalidate = Ref.update(epoch, (id) => id + 1);
|
|
131
|
+
const signalBasisChange = invalidate.pipe(Effect.andThen(Queue.offer(wakes, undefined)), Effect.asVoid);
|
|
132
|
+
if (input.wakes !== undefined) {
|
|
133
|
+
const external = input.wakes;
|
|
134
|
+
yield* Effect.forkChild(Effect.forever(Queue.take(external).pipe(Effect.andThen(signalBasisChange))));
|
|
135
|
+
}
|
|
136
|
+
const revoked = input.revoked === undefined
|
|
137
|
+
? Effect.never
|
|
138
|
+
: Deferred.await(input.revoked).pipe(Effect.andThen(invalidate), Effect.andThen(Effect.fail(deny())));
|
|
139
|
+
const close = Queue.end(out).pipe(Effect.asVoid);
|
|
140
|
+
const recompute = (filteredDb, id, expiresAtMs) => Effect.gen(function* () {
|
|
141
|
+
const nowMs = yield* Clock.currentTimeMillis;
|
|
142
|
+
if (nowMs >= expiresAtMs)
|
|
143
|
+
return;
|
|
144
|
+
const value = yield* readAuthorized(filteredDb, read, opts);
|
|
145
|
+
yield* atBoundary(input.boundaries, "live.recompute");
|
|
146
|
+
const current = yield* Ref.get(epoch);
|
|
147
|
+
if (current !== id)
|
|
148
|
+
return;
|
|
149
|
+
yield* atBoundary(input.boundaries, "live.enqueue");
|
|
150
|
+
const still = yield* Ref.get(epoch);
|
|
151
|
+
const enqueueNow = yield* Clock.currentTimeMillis;
|
|
152
|
+
if (still !== id || enqueueNow >= expiresAtMs)
|
|
153
|
+
return;
|
|
154
|
+
yield* Queue.offer(out, {
|
|
155
|
+
id,
|
|
156
|
+
expiresAtMs,
|
|
157
|
+
value,
|
|
158
|
+
epoch,
|
|
159
|
+
lastSent,
|
|
160
|
+
...(input.boundaries === undefined
|
|
161
|
+
? {}
|
|
162
|
+
: { boundaries: input.boundaries }),
|
|
163
|
+
});
|
|
164
|
+
});
|
|
165
|
+
const leaseLoop = Effect.gen(function* () {
|
|
166
|
+
let firstLease = true;
|
|
167
|
+
let basisChanged = true;
|
|
168
|
+
let principalIdentity;
|
|
169
|
+
while (true) {
|
|
170
|
+
if (!firstLease && input.renew !== undefined) {
|
|
171
|
+
const currentDeployment = yield* input.renew.pipe(Effect.mapError(() => deny()), Effect.result);
|
|
172
|
+
if (Result.isFailure(currentDeployment))
|
|
173
|
+
return;
|
|
174
|
+
}
|
|
175
|
+
const admitted = yield* input.authenticate.pipe(Effect.mapError(() => deny()), Effect.result);
|
|
176
|
+
if (Result.isFailure(admitted))
|
|
177
|
+
return;
|
|
178
|
+
const caller = admitted.success;
|
|
179
|
+
const identity = principalLeaseIdentity(caller);
|
|
180
|
+
if (principalIdentity === undefined)
|
|
181
|
+
principalIdentity = identity;
|
|
182
|
+
else if (principalIdentity !== identity)
|
|
183
|
+
return;
|
|
184
|
+
const nowMs = yield* Clock.currentTimeMillis;
|
|
185
|
+
const lease = yield* Effect.fromResult(callerLease(caller, nowMs, limit));
|
|
186
|
+
const id = yield* Ref.updateAndGet(epoch, (n) => n + 1);
|
|
187
|
+
const tickNow = yield* Clock.currentTimeMillis;
|
|
188
|
+
if (tickNow < lease.expiresAtMs &&
|
|
189
|
+
(basisChanged || input.reauthorizeOnIdle === true)) {
|
|
190
|
+
const leaseWork = input.authorize(caller).pipe(Effect.flatMap((filteredDb) => basisChanged
|
|
191
|
+
? recompute(filteredDb, id, lease.expiresAtMs)
|
|
192
|
+
: Effect.void), Effect.timeoutOrElse({
|
|
193
|
+
duration: remainingOf(lease.expiresAtMs, tickNow),
|
|
194
|
+
orElse: () => Effect.fail(deny()),
|
|
195
|
+
}), Effect.result);
|
|
196
|
+
if (Result.isFailure(yield* leaseWork))
|
|
197
|
+
return;
|
|
198
|
+
}
|
|
199
|
+
const after = yield* Clock.currentTimeMillis;
|
|
200
|
+
basisChanged = after < lease.expiresAtMs
|
|
201
|
+
? yield* waitWakeOrLease(wakes, remainingOf(lease.expiresAtMs, after))
|
|
202
|
+
: false;
|
|
203
|
+
yield* invalidate;
|
|
204
|
+
firstLease = false;
|
|
205
|
+
}
|
|
206
|
+
});
|
|
207
|
+
const basisWatch = input.basisChanges === undefined
|
|
208
|
+
? Effect.never
|
|
209
|
+
: Stream.runForEach(input.basisChanges, (event) => event === "ready"
|
|
210
|
+
? Deferred.succeed(basisReady, undefined).pipe(Effect.asVoid)
|
|
211
|
+
: Deferred.succeed(basisReady, undefined).pipe(Effect.andThen(signalBasisChange), Effect.asVoid)).pipe(Effect.mapError(() => deny()), Effect.andThen(Effect.fail(deny())));
|
|
212
|
+
const leaseAndBasis = input.basisChanges === undefined
|
|
213
|
+
? Effect.raceFirst(leaseLoop, revoked)
|
|
214
|
+
: Effect.raceFirst(basisWatch, Deferred.await(basisReady).pipe(Effect.andThen(Effect.raceFirst(leaseLoop, revoked))));
|
|
215
|
+
const invalidationWatch = input.invalidations === undefined
|
|
216
|
+
? Effect.never
|
|
217
|
+
: Stream.runForEach(input.invalidations, () => signalBasisChange).pipe(Effect.mapError(() => deny()), Effect.andThen(Effect.fail(deny())));
|
|
218
|
+
const authorizedLoop = input.invalidations === undefined
|
|
219
|
+
? leaseAndBasis
|
|
220
|
+
: Effect.raceFirst(leaseAndBasis, invalidationWatch);
|
|
221
|
+
yield* authorizedLoop.pipe(Effect.result, Effect.andThen(invalidate), Effect.andThen(close), Effect.onInterrupt(() => invalidate.pipe(Effect.andThen(Queue.shutdown(out)), Effect.asVoid)));
|
|
222
|
+
}), { bufferSize: 1, strategy: "suspend" }).pipe(Stream.filterMapEffect(deliverSnapshot));
|
|
223
|
+
export const executeAuthorizedLive = (input, read, opts = {}) => executeAuthorizedLiveLease({
|
|
224
|
+
...input,
|
|
225
|
+
authorize: (caller) => constructAuthorizedRequestContext(input, caller).pipe(Effect.map((context) => context.filteredDb)),
|
|
226
|
+
}, read, opts);
|
|
227
|
+
//# sourceMappingURL=live.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"live.js","sourceRoot":"","sources":["../../../src/internal/authorization/live.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
import type { OperationDescriptor } from "./catalog.ts";
|
|
2
|
+
import type { CanonicalValueTerm } from "./expr.ts";
|
|
3
|
+
import type { InstalledCatalogUnitV2 } from "./catalog-unit.ts";
|
|
4
|
+
import type { AuthenticatedCaller } from "./request.ts";
|
|
5
|
+
export type PrincipalProjection = {
|
|
6
|
+
readonly _tag: "present";
|
|
7
|
+
readonly value: unknown;
|
|
8
|
+
} | {
|
|
9
|
+
readonly _tag: "absent";
|
|
10
|
+
} | {
|
|
11
|
+
readonly _tag: "invalid";
|
|
12
|
+
};
|
|
13
|
+
export declare const principalValuesEqual: (left: unknown, right: unknown) => boolean;
|
|
14
|
+
export declare const projectPrincipalTerm: (term: CanonicalValueTerm, caller: AuthenticatedCaller, subject: string) => PrincipalProjection;
|
|
15
|
+
export declare const operationGrantAllows: (unit: InstalledCatalogUnitV2, descriptor: OperationDescriptor, caller: AuthenticatedCaller, subject: string) => boolean;
|
|
16
|
+
//# sourceMappingURL=operation-grant.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"operation-grant.d.ts","sourceRoot":"","sources":["../../../src/internal/authorization/operation-grant.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,cAAc,CAAC;AACxD,OAAO,KAAK,EAEV,kBAAkB,EACnB,MAAM,WAAW,CAAC;AACnB,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,mBAAmB,CAAC;AAChE,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,cAAc,CAAC;AAGxD,MAAM,MAAM,mBAAmB,GAC3B;IAAE,QAAQ,CAAC,IAAI,EAAE,SAAS,CAAC;IAAC,QAAQ,CAAC,KAAK,EAAE,OAAO,CAAA;CAAE,GACrD;IAAE,QAAQ,CAAC,IAAI,EAAE,QAAQ,CAAA;CAAE,GAC3B;IAAE,QAAQ,CAAC,IAAI,EAAE,SAAS,CAAA;CAAE,CAAC;AASjC,eAAO,MAAM,oBAAoB,SAAU,OAAO,SAAS,OAAO,KAAG,OAMpE,CAAC;AAEF,eAAO,MAAM,oBAAoB,SACzB,kBAAkB,UAChB,mBAAmB,WAClB,MAAM,KACd,mBAcF,CAAC;AAuCF,eAAO,MAAM,oBAAoB,SACzB,sBAAsB,cAChB,mBAAmB,UACvB,mBAAmB,WAClB,MAAM,KACd,OAeF,CAAC"}
|
|
@@ -0,0 +1,79 @@
|
|
|
1
|
+
import { operationKey } from "./validation/common.js";
|
|
2
|
+
const absent = { _tag: "absent" };
|
|
3
|
+
const invalid = { _tag: "invalid" };
|
|
4
|
+
const present = (value) => ({
|
|
5
|
+
_tag: "present",
|
|
6
|
+
value,
|
|
7
|
+
});
|
|
8
|
+
export const principalValuesEqual = (left, right) => {
|
|
9
|
+
if (Object.is(left, right))
|
|
10
|
+
return true;
|
|
11
|
+
if (!Array.isArray(left) || !Array.isArray(right) || left.length !== right.length) {
|
|
12
|
+
return false;
|
|
13
|
+
}
|
|
14
|
+
return left.every((value, index) => Object.is(value, right[index]));
|
|
15
|
+
};
|
|
16
|
+
export const projectPrincipalTerm = (term, caller, subject) => {
|
|
17
|
+
switch (term._tag) {
|
|
18
|
+
case "lit":
|
|
19
|
+
return present(term.value);
|
|
20
|
+
case "subject":
|
|
21
|
+
return present(subject);
|
|
22
|
+
case "claim":
|
|
23
|
+
return Object.hasOwn(caller.claims, term.key)
|
|
24
|
+
? present(caller.claims[term.key])
|
|
25
|
+
: absent;
|
|
26
|
+
case "me":
|
|
27
|
+
case "ref":
|
|
28
|
+
return invalid;
|
|
29
|
+
}
|
|
30
|
+
};
|
|
31
|
+
const equal = principalValuesEqual;
|
|
32
|
+
const project = projectPrincipalTerm;
|
|
33
|
+
const evaluate = (expr, caller, subject) => {
|
|
34
|
+
switch (expr._tag) {
|
|
35
|
+
case "const":
|
|
36
|
+
return expr.value;
|
|
37
|
+
case "hasClass":
|
|
38
|
+
return caller.classes.includes(expr.class);
|
|
39
|
+
case "and":
|
|
40
|
+
return expr.exprs.every((part) => evaluate(part, caller, subject));
|
|
41
|
+
case "or":
|
|
42
|
+
return expr.exprs.some((part) => evaluate(part, caller, subject));
|
|
43
|
+
case "not":
|
|
44
|
+
return !evaluate(expr.expr, caller, subject);
|
|
45
|
+
case "eq": {
|
|
46
|
+
const left = project(expr.left, caller, subject);
|
|
47
|
+
const right = project(expr.right, caller, subject);
|
|
48
|
+
return left._tag === "present" && right._tag === "present" &&
|
|
49
|
+
equal(left.value, right.value);
|
|
50
|
+
}
|
|
51
|
+
case "has":
|
|
52
|
+
return project(expr.term, caller, subject)._tag === "present";
|
|
53
|
+
case "in": {
|
|
54
|
+
const value = project(expr.value, caller, subject);
|
|
55
|
+
const collection = project(expr.collection, caller, subject);
|
|
56
|
+
return value._tag === "present" && collection._tag === "present" &&
|
|
57
|
+
Array.isArray(collection.value) &&
|
|
58
|
+
collection.value.some((item) => equal(value.value, item));
|
|
59
|
+
}
|
|
60
|
+
}
|
|
61
|
+
};
|
|
62
|
+
export const operationGrantAllows = (unit, descriptor, caller, subject) => {
|
|
63
|
+
const decision = unit.policy.decisions.operations.find((entry) => operationKey(entry.target) === operationKey(descriptor.id))?.decision;
|
|
64
|
+
if (decision === undefined)
|
|
65
|
+
return false;
|
|
66
|
+
const rules = new Map(unit.policy.rules.map((rule) => [rule.id, rule]));
|
|
67
|
+
for (const id of decision.deny) {
|
|
68
|
+
const rule = rules.get(id);
|
|
69
|
+
if (rule === undefined || evaluate(rule.expr, caller, subject))
|
|
70
|
+
return false;
|
|
71
|
+
}
|
|
72
|
+
for (const id of decision.allow) {
|
|
73
|
+
const rule = rules.get(id);
|
|
74
|
+
if (rule !== undefined && evaluate(rule.expr, caller, subject))
|
|
75
|
+
return true;
|
|
76
|
+
}
|
|
77
|
+
return false;
|
|
78
|
+
};
|
|
79
|
+
//# sourceMappingURL=operation-grant.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"operation-grant.js","sourceRoot":"","sources":["../../../src/internal/authorization/operation-grant.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
import * as Effect from "effect/Effect";
|
|
2
|
+
import type { AllocationSlots } from "../../db/allocations.ts";
|
|
3
|
+
import type { OperationInputShape } from "./catalog.ts";
|
|
4
|
+
import { type CatalogId, type OperationTarget, type OwnerRef } from "./identities.ts";
|
|
5
|
+
import type { JsonValue } from "./json.ts";
|
|
6
|
+
export declare const OPERATION_VERSION_DESCRIPTOR_VERSION: 2;
|
|
7
|
+
export declare const DEFAULT_OPERATION_REVISION = 1;
|
|
8
|
+
export type OperationContractMaterial = {
|
|
9
|
+
readonly representation: JsonValue;
|
|
10
|
+
readonly shape: OperationInputShape;
|
|
11
|
+
};
|
|
12
|
+
export type OperationVersionDescriptor = {
|
|
13
|
+
readonly catalog: CatalogId;
|
|
14
|
+
readonly owner: OwnerRef;
|
|
15
|
+
readonly localName: string;
|
|
16
|
+
readonly target: OperationTarget;
|
|
17
|
+
readonly revision: number;
|
|
18
|
+
readonly input: OperationContractMaterial;
|
|
19
|
+
readonly output: OperationContractMaterial;
|
|
20
|
+
readonly composers: readonly string[];
|
|
21
|
+
readonly writes: readonly string[];
|
|
22
|
+
readonly allocations: AllocationSlots;
|
|
23
|
+
};
|
|
24
|
+
export declare const requireOperationRevision: (value: unknown, label: string) => number;
|
|
25
|
+
export declare const normalizeContractRepresentation: (representation: JsonValue) => JsonValue;
|
|
26
|
+
export declare const operationVersionMaterial: (descriptor: OperationVersionDescriptor) => JsonValue;
|
|
27
|
+
export declare const hashOperationVersion: (descriptor: OperationVersionDescriptor) => Effect.Effect<string & import("effect/Brand").Brand<"OperationVersion">, import("./failures.ts").InvalidIR, never>;
|
|
28
|
+
//# sourceMappingURL=operation-version.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"operation-version.d.ts","sourceRoot":"","sources":["../../../src/internal/authorization/operation-version.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,MAAM,eAAe,CAAC;AACxC,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,yBAAyB,CAAC;AAC/D,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,cAAc,CAAC;AAExD,OAAO,EAEL,KAAK,SAAS,EACd,KAAK,eAAe,EACpB,KAAK,QAAQ,EACd,MAAM,iBAAiB,CAAC;AACzB,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,WAAW,CAAC;AAI3C,eAAO,MAAM,oCAAoC,EAAG,CAAU,CAAC;AAE/D,eAAO,MAAM,0BAA0B,IAAI,CAAC;AAE5C,MAAM,MAAM,yBAAyB,GAAG;IACtC,QAAQ,CAAC,cAAc,EAAE,SAAS,CAAC;IACnC,QAAQ,CAAC,KAAK,EAAE,mBAAmB,CAAC;CACrC,CAAC;AAEF,MAAM,MAAM,0BAA0B,GAAG;IACvC,QAAQ,CAAC,OAAO,EAAE,SAAS,CAAC;IAC5B,QAAQ,CAAC,KAAK,EAAE,QAAQ,CAAC;IACzB,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAC3B,QAAQ,CAAC,MAAM,EAAE,eAAe,CAAC;IACjC,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAC1B,QAAQ,CAAC,KAAK,EAAE,yBAAyB,CAAC;IAC1C,QAAQ,CAAC,MAAM,EAAE,yBAAyB,CAAC;IAC3C,QAAQ,CAAC,SAAS,EAAE,SAAS,MAAM,EAAE,CAAC;IACtC,QAAQ,CAAC,MAAM,EAAE,SAAS,MAAM,EAAE,CAAC;IACnC,QAAQ,CAAC,WAAW,EAAE,eAAe,CAAC;CACvC,CAAC;AAEF,eAAO,MAAM,wBAAwB,UAC5B,OAAO,SACP,MAAM,KACZ,MAQF,CAAC;AAqJF,eAAO,MAAM,+BAA+B,mBAC1B,SAAS,KACxB,SAwBF,CAAC;AAEF,eAAO,MAAM,wBAAwB,eACvB,0BAA0B,KACrC,SAiCD,CAAC;AAEH,eAAO,MAAM,oBAAoB,gKAQhC,CAAC"}
|