@rikalabs/akter 0.1.0-alpha.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/CHANGELOG.md +15 -0
- package/LICENSE +202 -0
- package/NOTICE +8 -0
- package/README.md +116 -0
- package/dist/actor/codecs.d.ts +77 -0
- package/dist/actor/codecs.js +87 -0
- package/dist/actor/connections.d.ts +34 -0
- package/dist/actor/connections.js +145 -0
- package/dist/actor/definition.d.ts +893 -0
- package/dist/actor/definition.js +147 -0
- package/dist/actor/descriptor.d.ts +172 -0
- package/dist/actor/descriptor.js +367 -0
- package/dist/actor/handles.d.ts +77 -0
- package/dist/actor/handles.js +265 -0
- package/dist/actor/jobs.d.ts +10 -0
- package/dist/actor/jobs.js +137 -0
- package/dist/actor/layers.d.ts +41 -0
- package/dist/actor/layers.js +177 -0
- package/dist/actor/reads.d.ts +47 -0
- package/dist/actor/reads.js +224 -0
- package/dist/actor/served.d.ts +120 -0
- package/dist/actor/served.js +72 -0
- package/dist/actor/turns.d.ts +13 -0
- package/dist/actor/turns.js +332 -0
- package/dist/actor/workflows.d.ts +16 -0
- package/dist/actor/workflows.js +37 -0
- package/dist/client/calls.d.ts +47 -0
- package/dist/client/calls.js +425 -0
- package/dist/client/clock.d.ts +56 -0
- package/dist/client/clock.js +119 -0
- package/dist/client/fleet-page.d.ts +15 -0
- package/dist/client/fleet-page.js +13 -0
- package/dist/client/fleet.d.ts +29 -0
- package/dist/client/fleet.js +51 -0
- package/dist/client/index.d.ts +17 -0
- package/dist/client/index.js +6 -0
- package/dist/client/make.d.ts +157 -0
- package/dist/client/make.js +221 -0
- package/dist/client/offline/queue.d.ts +118 -0
- package/dist/client/offline/queue.js +292 -0
- package/dist/client/offline/store.d.ts +74 -0
- package/dist/client/offline/store.js +78 -0
- package/dist/client/optimistic.d.ts +57 -0
- package/dist/client/optimistic.js +136 -0
- package/dist/client/report.d.ts +2 -0
- package/dist/client/report.js +8 -0
- package/dist/client/sessions/connection.d.ts +118 -0
- package/dist/client/sessions/connection.js +162 -0
- package/dist/client/sessions/feed.d.ts +42 -0
- package/dist/client/sessions/feed.js +43 -0
- package/dist/client/sessions/sse.d.ts +47 -0
- package/dist/client/sessions/sse.js +112 -0
- package/dist/client/sessions/stream.d.ts +28 -0
- package/dist/client/sessions/stream.js +35 -0
- package/dist/client/sessions/watch.d.ts +34 -0
- package/dist/client/sessions/watch.js +40 -0
- package/dist/client/transport.d.ts +37 -0
- package/dist/client/transport.js +66 -0
- package/dist/contexts/command.d.ts +132 -0
- package/dist/contexts/command.js +20 -0
- package/dist/contexts/connection.d.ts +68 -0
- package/dist/contexts/connection.js +0 -0
- package/dist/contexts/job.d.ts +49 -0
- package/dist/contexts/job.js +0 -0
- package/dist/contexts/workflow.d.ts +147 -0
- package/dist/contexts/workflow.js +22 -0
- package/dist/errors/actor.d.ts +200 -0
- package/dist/errors/actor.js +271 -0
- package/dist/errors/content.d.ts +19 -0
- package/dist/errors/content.js +14 -0
- package/dist/errors/database.d.ts +22 -0
- package/dist/errors/database.js +23 -0
- package/dist/errors/events.d.ts +17 -0
- package/dist/errors/events.js +14 -0
- package/dist/errors/subscription.d.ts +12 -0
- package/dist/errors/subscription.js +8 -0
- package/dist/errors/workflow.d.ts +28 -0
- package/dist/errors/workflow.js +17 -0
- package/dist/handles/actors.d.ts +17 -0
- package/dist/handles/actors.js +7 -0
- package/dist/handles/content.d.ts +59 -0
- package/dist/handles/content.js +36 -0
- package/dist/handles/intents.d.ts +164 -0
- package/dist/handles/intents.js +214 -0
- package/dist/handles/run.d.ts +31 -0
- package/dist/handles/run.js +21 -0
- package/dist/handles/workflow.d.ts +27 -0
- package/dist/handles/workflow.js +23 -0
- package/dist/identity/caller.d.ts +105 -0
- package/dist/identity/caller.js +68 -0
- package/dist/identity/child.d.ts +18 -0
- package/dist/identity/child.js +39 -0
- package/dist/identity/command.d.ts +19 -0
- package/dist/identity/command.js +21 -0
- package/dist/identity/connection.d.ts +24 -0
- package/dist/identity/connection.js +29 -0
- package/dist/identity/content.d.ts +18 -0
- package/dist/identity/content.js +12 -0
- package/dist/identity/digest.d.ts +4 -0
- package/dist/identity/digest.js +5 -0
- package/dist/identity/execution.d.ts +32 -0
- package/dist/identity/execution.js +63 -0
- package/dist/identity/mint.d.ts +51 -0
- package/dist/identity/mint.js +76 -0
- package/dist/identity/version.d.ts +2 -0
- package/dist/identity/version.js +3 -0
- package/dist/index.d.ts +159 -0
- package/dist/index.js +97 -0
- package/dist/members/blob.d.ts +43 -0
- package/dist/members/blob.js +29 -0
- package/dist/members/command.d.ts +109 -0
- package/dist/members/command.js +61 -0
- package/dist/members/connection.d.ts +55 -0
- package/dist/members/connection.js +49 -0
- package/dist/members/event.d.ts +36 -0
- package/dist/members/event.js +24 -0
- package/dist/members/job.d.ts +157 -0
- package/dist/members/job.js +67 -0
- package/dist/members/payload.d.ts +93 -0
- package/dist/members/payload.js +145 -0
- package/dist/members/reducer.d.ts +64 -0
- package/dist/members/reducer.js +27 -0
- package/dist/members/stream.d.ts +36 -0
- package/dist/members/stream.js +14 -0
- package/dist/members/subscription.d.ts +182 -0
- package/dist/members/subscription.js +91 -0
- package/dist/members/workflow.d.ts +99 -0
- package/dist/members/workflow.js +2 -0
- package/dist/policies/access.d.ts +35 -0
- package/dist/policies/access.js +6 -0
- package/dist/policies/command.d.ts +127 -0
- package/dist/policies/command.js +45 -0
- package/dist/policies/job.d.ts +28 -0
- package/dist/policies/job.js +60 -0
- package/dist/policies/schedules.d.ts +33 -0
- package/dist/policies/schedules.js +131 -0
- package/dist/protocol/frames.d.ts +66 -0
- package/dist/protocol/frames.js +55 -0
- package/dist/protocol/inspection.d.ts +807 -0
- package/dist/protocol/inspection.js +243 -0
- package/dist/protocol/wire.d.ts +184 -0
- package/dist/protocol/wire.js +150 -0
- package/dist/runtime/actors.d.ts +155 -0
- package/dist/runtime/actors.js +4 -0
- package/dist/runtime/admission.d.ts +34 -0
- package/dist/runtime/admission.js +72 -0
- package/dist/runtime/adoption/backfill.d.ts +27 -0
- package/dist/runtime/adoption/backfill.js +144 -0
- package/dist/runtime/adoption/enforce.d.ts +55 -0
- package/dist/runtime/adoption/enforce.js +241 -0
- package/dist/runtime/adoption/observe.d.ts +43 -0
- package/dist/runtime/adoption/observe.js +139 -0
- package/dist/runtime/adoption/plan.d.ts +45 -0
- package/dist/runtime/adoption/plan.js +192 -0
- package/dist/runtime/adoption/startup.d.ts +32 -0
- package/dist/runtime/adoption/startup.js +76 -0
- package/dist/runtime/adoption/status.d.ts +23 -0
- package/dist/runtime/adoption/status.js +47 -0
- package/dist/runtime/adoption/target.d.ts +33 -0
- package/dist/runtime/adoption/target.js +49 -0
- package/dist/runtime/connections/holder.d.ts +221 -0
- package/dist/runtime/connections/holder.js +816 -0
- package/dist/runtime/connections/owner.d.ts +263 -0
- package/dist/runtime/connections/owner.js +896 -0
- package/dist/runtime/connections/protocol.d.ts +441 -0
- package/dist/runtime/connections/protocol.js +222 -0
- package/dist/runtime/connections/reads.d.ts +24 -0
- package/dist/runtime/connections/reads.js +19 -0
- package/dist/runtime/connections/streams.d.ts +62 -0
- package/dist/runtime/connections/streams.js +128 -0
- package/dist/runtime/connections/transport.d.ts +40 -0
- package/dist/runtime/connections/transport.js +68 -0
- package/dist/runtime/connections/watch.d.ts +52 -0
- package/dist/runtime/connections/watch.js +159 -0
- package/dist/runtime/content/grant.d.ts +34 -0
- package/dist/runtime/content/grant.js +58 -0
- package/dist/runtime/content/store.d.ts +63 -0
- package/dist/runtime/content/store.js +294 -0
- package/dist/runtime/cron/key.d.ts +2 -0
- package/dist/runtime/cron/key.js +2 -0
- package/dist/runtime/cron/schedule.d.ts +69 -0
- package/dist/runtime/cron/schedule.js +144 -0
- package/dist/runtime/database/bounded.d.ts +43 -0
- package/dist/runtime/database/bounded.js +108 -0
- package/dist/runtime/database/connection.d.ts +8 -0
- package/dist/runtime/database/connection.js +18 -0
- package/dist/runtime/database/coordination.d.ts +19 -0
- package/dist/runtime/database/coordination.js +72 -0
- package/dist/runtime/database/flock.d.ts +10 -0
- package/dist/runtime/database/flock.js +60 -0
- package/dist/runtime/database/gate.d.ts +26 -0
- package/dist/runtime/database/gate.js +54 -0
- package/dist/runtime/database/keepalive.d.ts +11 -0
- package/dist/runtime/database/keepalive.js +22 -0
- package/dist/runtime/database/migrations.d.ts +177 -0
- package/dist/runtime/database/migrations.js +1018 -0
- package/dist/runtime/database/neki/migrations.d.ts +31 -0
- package/dist/runtime/database/neki/migrations.js +276 -0
- package/dist/runtime/database/neki/session.d.ts +23 -0
- package/dist/runtime/database/neki/session.js +31 -0
- package/dist/runtime/database/pglite.d.ts +21 -0
- package/dist/runtime/database/pglite.js +74 -0
- package/dist/runtime/database/replica.d.ts +41 -0
- package/dist/runtime/database/replica.js +51 -0
- package/dist/runtime/database/shards.d.ts +21 -0
- package/dist/runtime/database/shards.js +37 -0
- package/dist/runtime/database/snapshot.d.ts +7 -0
- package/dist/runtime/database/snapshot.js +7 -0
- package/dist/runtime/database/tenancy.d.ts +69 -0
- package/dist/runtime/database/tenancy.js +145 -0
- package/dist/runtime/database/transient.d.ts +10 -0
- package/dist/runtime/database/transient.js +25 -0
- package/dist/runtime/drain.d.ts +132 -0
- package/dist/runtime/drain.js +109 -0
- package/dist/runtime/entity/mailbox.d.ts +86 -0
- package/dist/runtime/entity/mailbox.js +121 -0
- package/dist/runtime/entity/register.d.ts +424 -0
- package/dist/runtime/entity/register.js +669 -0
- package/dist/runtime/events/append.d.ts +192 -0
- package/dist/runtime/events/append.js +128 -0
- package/dist/runtime/events/cursor.d.ts +2 -0
- package/dist/runtime/events/cursor.js +5 -0
- package/dist/runtime/events/replay.d.ts +20 -0
- package/dist/runtime/events/replay.js +45 -0
- package/dist/runtime/feeds.d.ts +26 -0
- package/dist/runtime/feeds.js +100 -0
- package/dist/runtime/fleet/checks.d.ts +17 -0
- package/dist/runtime/fleet/checks.js +106 -0
- package/dist/runtime/fleet/maintainer.d.ts +38 -0
- package/dist/runtime/fleet/maintainer.js +383 -0
- package/dist/runtime/fleet/pgoutput.d.ts +41 -0
- package/dist/runtime/fleet/pgoutput.js +102 -0
- package/dist/runtime/fleet/setup.d.ts +36 -0
- package/dist/runtime/fleet/setup.js +58 -0
- package/dist/runtime/fleet/subscribe.d.ts +42 -0
- package/dist/runtime/fleet/subscribe.js +147 -0
- package/dist/runtime/index.d.ts +66 -0
- package/dist/runtime/index.js +37 -0
- package/dist/runtime/inspector/http.d.ts +19 -0
- package/dist/runtime/inspector/http.js +36 -0
- package/dist/runtime/inspector/layer.d.ts +46 -0
- package/dist/runtime/inspector/layer.js +180 -0
- package/dist/runtime/inspector/queries.d.ts +711 -0
- package/dist/runtime/inspector/queries.js +494 -0
- package/dist/runtime/jobs/attempt.d.ts +254 -0
- package/dist/runtime/jobs/attempt.js +413 -0
- package/dist/runtime/jobs/isolation.d.ts +20 -0
- package/dist/runtime/jobs/isolation.js +10 -0
- package/dist/runtime/jobs/progress.d.ts +95 -0
- package/dist/runtime/jobs/progress.js +144 -0
- package/dist/runtime/layer.d.ts +260 -0
- package/dist/runtime/layer.js +876 -0
- package/dist/runtime/members.d.ts +381 -0
- package/dist/runtime/members.js +8 -0
- package/dist/runtime/operators/audit.d.ts +64 -0
- package/dist/runtime/operators/audit.js +56 -0
- package/dist/runtime/operators/auth.d.ts +29 -0
- package/dist/runtime/operators/auth.js +42 -0
- package/dist/runtime/operators/export.d.ts +68 -0
- package/dist/runtime/operators/export.js +137 -0
- package/dist/runtime/operators/grants.d.ts +45 -0
- package/dist/runtime/operators/grants.js +40 -0
- package/dist/runtime/operators/repair.d.ts +206 -0
- package/dist/runtime/operators/repair.js +226 -0
- package/dist/runtime/operators/routes.d.ts +35 -0
- package/dist/runtime/operators/routes.js +190 -0
- package/dist/runtime/operators/seed.d.ts +123 -0
- package/dist/runtime/operators/seed.js +123 -0
- package/dist/runtime/payloads/versions.d.ts +65 -0
- package/dist/runtime/payloads/versions.js +240 -0
- package/dist/runtime/peering/authority.d.ts +42 -0
- package/dist/runtime/peering/authority.js +132 -0
- package/dist/runtime/peering/credentials.d.ts +21 -0
- package/dist/runtime/peering/credentials.js +13 -0
- package/dist/runtime/peering/transport.d.ts +51 -0
- package/dist/runtime/peering/transport.js +175 -0
- package/dist/runtime/queries.d.ts +18 -0
- package/dist/runtime/queries.js +169 -0
- package/dist/runtime/readiness.d.ts +36 -0
- package/dist/runtime/readiness.js +44 -0
- package/dist/runtime/registration.d.ts +58 -0
- package/dist/runtime/registration.js +186 -0
- package/dist/runtime/request.d.ts +158 -0
- package/dist/runtime/request.js +102 -0
- package/dist/runtime/retry.d.ts +8 -0
- package/dist/runtime/retry.js +11 -0
- package/dist/runtime/runner.d.ts +93 -0
- package/dist/runtime/runner.js +122 -0
- package/dist/runtime/storage/codec.d.ts +39 -0
- package/dist/runtime/storage/codec.js +41 -0
- package/dist/runtime/storage/generation.d.ts +69 -0
- package/dist/runtime/storage/generation.js +49 -0
- package/dist/runtime/storage/placements.d.ts +15 -0
- package/dist/runtime/storage/placements.js +38 -0
- package/dist/runtime/storage/platform.d.ts +6 -0
- package/dist/runtime/storage/platform.js +9 -0
- package/dist/runtime/storage/retention.d.ts +73 -0
- package/dist/runtime/storage/retention.js +158 -0
- package/dist/runtime/subscriptions/identity.d.ts +31 -0
- package/dist/runtime/subscriptions/identity.js +45 -0
- package/dist/runtime/subscriptions/relay.d.ts +175 -0
- package/dist/runtime/subscriptions/relay.js +763 -0
- package/dist/runtime/subscriptions/storage.d.ts +40 -0
- package/dist/runtime/subscriptions/storage.js +98 -0
- package/dist/runtime/sweeps.d.ts +39 -0
- package/dist/runtime/sweeps.js +54 -0
- package/dist/runtime/telemetry/defects.d.ts +57 -0
- package/dist/runtime/telemetry/defects.js +43 -0
- package/dist/runtime/telemetry/metrics.d.ts +52 -0
- package/dist/runtime/telemetry/metrics.js +138 -0
- package/dist/runtime/telemetry/routes.d.ts +19 -0
- package/dist/runtime/telemetry/routes.js +18 -0
- package/dist/runtime/telemetry/sampler.d.ts +26 -0
- package/dist/runtime/telemetry/sampler.js +101 -0
- package/dist/runtime/telemetry/spans.d.ts +38 -0
- package/dist/runtime/telemetry/spans.js +44 -0
- package/dist/runtime/telemetry/usage.d.ts +52 -0
- package/dist/runtime/telemetry/usage.js +30 -0
- package/dist/runtime/topology/admission.d.ts +13 -0
- package/dist/runtime/topology/admission.js +36 -0
- package/dist/runtime/topology/locks.d.ts +56 -0
- package/dist/runtime/topology/locks.js +81 -0
- package/dist/runtime/topology/messages.d.ts +15 -0
- package/dist/runtime/topology/messages.js +32 -0
- package/dist/runtime/turn/admission.d.ts +22 -0
- package/dist/runtime/turn/admission.js +41 -0
- package/dist/runtime/turn/blobs.d.ts +38 -0
- package/dist/runtime/turn/blobs.js +215 -0
- package/dist/runtime/turn/execute.d.ts +208 -0
- package/dist/runtime/turn/execute.js +972 -0
- package/dist/runtime/turn/group.d.ts +165 -0
- package/dist/runtime/turn/group.js +326 -0
- package/dist/runtime/turn/hooks.d.ts +44 -0
- package/dist/runtime/turn/hooks.js +28 -0
- package/dist/runtime/turn/outbox.d.ts +159 -0
- package/dist/runtime/turn/outbox.js +269 -0
- package/dist/runtime/turn/pipeline.d.ts +68 -0
- package/dist/runtime/turn/pipeline.js +83 -0
- package/dist/runtime/turn/receipt.d.ts +81 -0
- package/dist/runtime/turn/receipt.js +32 -0
- package/dist/runtime/turn/relay.d.ts +179 -0
- package/dist/runtime/turn/relay.js +685 -0
- package/dist/runtime/turn/rows.d.ts +43 -0
- package/dist/runtime/turn/rows.js +592 -0
- package/dist/runtime/workflows/compatibility.d.ts +125 -0
- package/dist/runtime/workflows/compatibility.js +285 -0
- package/dist/runtime/workflows/engine.d.ts +107 -0
- package/dist/runtime/workflows/engine.js +826 -0
- package/dist/runtime/workflows/manifest.d.ts +34 -0
- package/dist/runtime/workflows/manifest.js +39 -0
- package/dist/runtime/workflows/steps.d.ts +33 -0
- package/dist/runtime/workflows/steps.js +152 -0
- package/dist/serve/api.d.ts +99 -0
- package/dist/serve/api.js +403 -0
- package/dist/serve/assertion/binding.d.ts +41 -0
- package/dist/serve/assertion/binding.js +92 -0
- package/dist/serve/assertion/verify.d.ts +93 -0
- package/dist/serve/assertion/verify.js +189 -0
- package/dist/serve/auth.d.ts +200 -0
- package/dist/serve/auth.js +92 -0
- package/dist/serve/clock.d.ts +10 -0
- package/dist/serve/clock.js +25 -0
- package/dist/serve/jwt.d.ts +65 -0
- package/dist/serve/jwt.js +202 -0
- package/dist/serve/layer.d.ts +98 -0
- package/dist/serve/layer.js +809 -0
- package/dist/serve/mcp/endpoint.d.ts +39 -0
- package/dist/serve/mcp/endpoint.js +187 -0
- package/dist/serve/mcp/tools.d.ts +37 -0
- package/dist/serve/mcp/tools.js +125 -0
- package/dist/serve/origin.d.ts +6 -0
- package/dist/serve/origin.js +21 -0
- package/dist/serve/sessions/feed.d.ts +79 -0
- package/dist/serve/sessions/feed.js +115 -0
- package/dist/serve/sessions/socket.d.ts +56 -0
- package/dist/serve/sessions/socket.js +212 -0
- package/dist/serve/sessions/sse.d.ts +27 -0
- package/dist/serve/sessions/sse.js +26 -0
- package/dist/serve/sessions/stream.d.ts +9 -0
- package/dist/serve/sessions/stream.js +9 -0
- package/dist/serve/sessions/watch.d.ts +12 -0
- package/dist/serve/sessions/watch.js +11 -0
- package/dist/serve/wire.d.ts +16 -0
- package/dist/serve/wire.js +50 -0
- package/dist/state/blob.d.ts +71 -0
- package/dist/state/blob.js +0 -0
- package/dist/state/migration.d.ts +53 -0
- package/dist/state/migration.js +29 -0
- package/dist/tables/fleet.d.ts +170 -0
- package/dist/tables/fleet.js +214 -0
- package/dist/tables/owned.d.ts +250 -0
- package/dist/tables/owned.js +233 -0
- package/dist/testing/actor-test.d.ts +360 -0
- package/dist/testing/actor-test.js +337 -0
- package/dist/testing/cluster.d.ts +93 -0
- package/dist/testing/cluster.js +296 -0
- package/dist/testing/conformance/access.d.ts +5 -0
- package/dist/testing/conformance/access.js +531 -0
- package/dist/testing/conformance/admission.d.ts +11 -0
- package/dist/testing/conformance/admission.js +182 -0
- package/dist/testing/conformance/adoption.d.ts +2 -0
- package/dist/testing/conformance/adoption.js +1019 -0
- package/dist/testing/conformance/assertions.d.ts +202 -0
- package/dist/testing/conformance/assertions.js +849 -0
- package/dist/testing/conformance/batches.d.ts +41 -0
- package/dist/testing/conformance/batches.js +388 -0
- package/dist/testing/conformance/blobs.d.ts +14 -0
- package/dist/testing/conformance/blobs.js +405 -0
- package/dist/testing/conformance/capacity.d.ts +8 -0
- package/dist/testing/conformance/capacity.js +433 -0
- package/dist/testing/conformance/client.d.ts +5 -0
- package/dist/testing/conformance/client.js +719 -0
- package/dist/testing/conformance/cold-serve.d.ts +16 -0
- package/dist/testing/conformance/cold-serve.js +254 -0
- package/dist/testing/conformance/connections/actors.d.ts +1143 -0
- package/dist/testing/conformance/connections/actors.js +180 -0
- package/dist/testing/conformance/connections/harness.d.ts +1754 -0
- package/dist/testing/conformance/connections/harness.js +142 -0
- package/dist/testing/conformance/connections/holders.d.ts +4 -0
- package/dist/testing/conformance/connections/holders.js +165 -0
- package/dist/testing/conformance/connections/lifecycle.d.ts +4 -0
- package/dist/testing/conformance/connections/lifecycle.js +113 -0
- package/dist/testing/conformance/connections/limits.d.ts +4 -0
- package/dist/testing/conformance/connections/limits.js +127 -0
- package/dist/testing/conformance/connections/reauthorization.d.ts +4 -0
- package/dist/testing/conformance/connections/reauthorization.js +170 -0
- package/dist/testing/conformance/connections/resync.d.ts +4 -0
- package/dist/testing/conformance/connections/resync.js +360 -0
- package/dist/testing/conformance/connections/takeover.d.ts +4 -0
- package/dist/testing/conformance/connections/takeover.js +287 -0
- package/dist/testing/conformance/connections.d.ts +4 -0
- package/dist/testing/conformance/connections.js +15 -0
- package/dist/testing/conformance/content-blobs.d.ts +16 -0
- package/dist/testing/conformance/content-blobs.js +534 -0
- package/dist/testing/conformance/counter.d.ts +16 -0
- package/dist/testing/conformance/counter.js +813 -0
- package/dist/testing/conformance/cron.d.ts +5 -0
- package/dist/testing/conformance/cron.js +665 -0
- package/dist/testing/conformance/drain.d.ts +26 -0
- package/dist/testing/conformance/drain.js +540 -0
- package/dist/testing/conformance/effect-control.d.ts +38 -0
- package/dist/testing/conformance/effect-control.js +1059 -0
- package/dist/testing/conformance/effects.d.ts +23 -0
- package/dist/testing/conformance/effects.js +432 -0
- package/dist/testing/conformance/events.d.ts +28 -0
- package/dist/testing/conformance/events.js +335 -0
- package/dist/testing/conformance/export.d.ts +2 -0
- package/dist/testing/conformance/export.js +368 -0
- package/dist/testing/conformance/fleet.d.ts +444 -0
- package/dist/testing/conformance/fleet.js +1009 -0
- package/dist/testing/conformance/groups.d.ts +7 -0
- package/dist/testing/conformance/groups.js +353 -0
- package/dist/testing/conformance/heap.d.ts +3 -0
- package/dist/testing/conformance/heap.js +149 -0
- package/dist/testing/conformance/http.d.ts +2809 -0
- package/dist/testing/conformance/http.js +1234 -0
- package/dist/testing/conformance/inspection-views.d.ts +8 -0
- package/dist/testing/conformance/inspection-views.js +272 -0
- package/dist/testing/conformance/inspector.d.ts +7 -0
- package/dist/testing/conformance/inspector.js +650 -0
- package/dist/testing/conformance/mint.d.ts +58 -0
- package/dist/testing/conformance/mint.js +692 -0
- package/dist/testing/conformance/multi-runner.d.ts +8 -0
- package/dist/testing/conformance/multi-runner.js +403 -0
- package/dist/testing/conformance/neki/plan.d.ts +19 -0
- package/dist/testing/conformance/neki/plan.js +30 -0
- package/dist/testing/conformance/observability.d.ts +3 -0
- package/dist/testing/conformance/observability.js +343 -0
- package/dist/testing/conformance/offline.d.ts +4 -0
- package/dist/testing/conformance/offline.js +474 -0
- package/dist/testing/conformance/operator-harness.d.ts +57 -0
- package/dist/testing/conformance/operator-harness.js +78 -0
- package/dist/testing/conformance/operator.d.ts +3 -0
- package/dist/testing/conformance/operator.js +379 -0
- package/dist/testing/conformance/outbox-cross-shard.d.ts +14 -0
- package/dist/testing/conformance/outbox-cross-shard.js +160 -0
- package/dist/testing/conformance/outbox.d.ts +36 -0
- package/dist/testing/conformance/outbox.js +437 -0
- package/dist/testing/conformance/payload-migrations.d.ts +3 -0
- package/dist/testing/conformance/payload-migrations.js +612 -0
- package/dist/testing/conformance/pipeline.d.ts +3 -0
- package/dist/testing/conformance/pipeline.js +1040 -0
- package/dist/testing/conformance/placement.d.ts +22 -0
- package/dist/testing/conformance/placement.js +539 -0
- package/dist/testing/conformance/platform.d.ts +40 -0
- package/dist/testing/conformance/platform.js +101 -0
- package/dist/testing/conformance/progress.d.ts +39 -0
- package/dist/testing/conformance/progress.js +666 -0
- package/dist/testing/conformance/properties.d.ts +6 -0
- package/dist/testing/conformance/properties.js +295 -0
- package/dist/testing/conformance/protocols.d.ts +4 -0
- package/dist/testing/conformance/protocols.js +618 -0
- package/dist/testing/conformance/provider/advertise.d.ts +21 -0
- package/dist/testing/conformance/provider/advertise.js +44 -0
- package/dist/testing/conformance/read-your-writes.d.ts +20 -0
- package/dist/testing/conformance/read-your-writes.js +192 -0
- package/dist/testing/conformance/reducers.d.ts +8 -0
- package/dist/testing/conformance/reducers.js +258 -0
- package/dist/testing/conformance/relay.d.ts +42 -0
- package/dist/testing/conformance/relay.js +1115 -0
- package/dist/testing/conformance/restore.d.ts +43 -0
- package/dist/testing/conformance/restore.js +341 -0
- package/dist/testing/conformance/retention.d.ts +14 -0
- package/dist/testing/conformance/retention.js +463 -0
- package/dist/testing/conformance/rls.d.ts +24 -0
- package/dist/testing/conformance/rls.js +576 -0
- package/dist/testing/conformance/simulation.d.ts +31 -0
- package/dist/testing/conformance/simulation.js +167 -0
- package/dist/testing/conformance/single-shard.d.ts +2 -0
- package/dist/testing/conformance/single-shard.js +125 -0
- package/dist/testing/conformance/singleton.d.ts +3 -0
- package/dist/testing/conformance/singleton.js +293 -0
- package/dist/testing/conformance/statements.d.ts +60 -0
- package/dist/testing/conformance/statements.js +108 -0
- package/dist/testing/conformance/streams.d.ts +7 -0
- package/dist/testing/conformance/streams.js +280 -0
- package/dist/testing/conformance/subscriptions/access.d.ts +4 -0
- package/dist/testing/conformance/subscriptions/access.js +98 -0
- package/dist/testing/conformance/subscriptions/actors.d.ts +4910 -0
- package/dist/testing/conformance/subscriptions/actors.js +372 -0
- package/dist/testing/conformance/subscriptions/cluster.d.ts +4 -0
- package/dist/testing/conformance/subscriptions/cluster.js +89 -0
- package/dist/testing/conformance/subscriptions/delivery.d.ts +4 -0
- package/dist/testing/conformance/subscriptions/delivery.js +253 -0
- package/dist/testing/conformance/subscriptions/deploys.d.ts +4 -0
- package/dist/testing/conformance/subscriptions/deploys.js +162 -0
- package/dist/testing/conformance/subscriptions/epochs.d.ts +4 -0
- package/dist/testing/conformance/subscriptions/epochs.js +169 -0
- package/dist/testing/conformance/subscriptions/failures.d.ts +4 -0
- package/dist/testing/conformance/subscriptions/failures.js +108 -0
- package/dist/testing/conformance/subscriptions/feeds.d.ts +4 -0
- package/dist/testing/conformance/subscriptions/feeds.js +218 -0
- package/dist/testing/conformance/subscriptions/harness.d.ts +124 -0
- package/dist/testing/conformance/subscriptions/harness.js +143 -0
- package/dist/testing/conformance/subscriptions/operator.d.ts +4 -0
- package/dist/testing/conformance/subscriptions/operator.js +128 -0
- package/dist/testing/conformance/subscriptions/retention.d.ts +4 -0
- package/dist/testing/conformance/subscriptions/retention.js +288 -0
- package/dist/testing/conformance/subscriptions/routing.d.ts +4 -0
- package/dist/testing/conformance/subscriptions/routing.js +179 -0
- package/dist/testing/conformance/subscriptions.d.ts +4 -0
- package/dist/testing/conformance/subscriptions.js +19 -0
- package/dist/testing/conformance/tables.d.ts +125 -0
- package/dist/testing/conformance/tables.js +664 -0
- package/dist/testing/conformance/transports/actors.d.ts +1907 -0
- package/dist/testing/conformance/transports/actors.js +163 -0
- package/dist/testing/conformance/transports/client.d.ts +3 -0
- package/dist/testing/conformance/transports/client.js +237 -0
- package/dist/testing/conformance/transports/feeds.d.ts +3 -0
- package/dist/testing/conformance/transports/feeds.js +232 -0
- package/dist/testing/conformance/transports/harness.d.ts +93 -0
- package/dist/testing/conformance/transports/harness.js +84 -0
- package/dist/testing/conformance/transports/streams.d.ts +3 -0
- package/dist/testing/conformance/transports/streams.js +96 -0
- package/dist/testing/conformance/transports/websocket.d.ts +3 -0
- package/dist/testing/conformance/transports/websocket.js +384 -0
- package/dist/testing/conformance/transports/wire.d.ts +141 -0
- package/dist/testing/conformance/transports/wire.js +204 -0
- package/dist/testing/conformance/transports.d.ts +3 -0
- package/dist/testing/conformance/transports.js +11 -0
- package/dist/testing/conformance/watch.d.ts +59 -0
- package/dist/testing/conformance/watch.js +879 -0
- package/dist/testing/conformance/workflow-engine.d.ts +97 -0
- package/dist/testing/conformance/workflow-engine.js +253 -0
- package/dist/testing/conformance/workflow-versions.d.ts +3 -0
- package/dist/testing/conformance/workflow-versions.js +545 -0
- package/dist/testing/conformance/workflows/access.d.ts +4 -0
- package/dist/testing/conformance/workflows/access.js +147 -0
- package/dist/testing/conformance/workflows/actors.d.ts +2317 -0
- package/dist/testing/conformance/workflows/actors.js +305 -0
- package/dist/testing/conformance/workflows/basics.d.ts +4 -0
- package/dist/testing/conformance/workflows/basics.js +144 -0
- package/dist/testing/conformance/workflows/engine.d.ts +4 -0
- package/dist/testing/conformance/workflows/engine.js +80 -0
- package/dist/testing/conformance/workflows/guards.d.ts +4 -0
- package/dist/testing/conformance/workflows/guards.js +172 -0
- package/dist/testing/conformance/workflows/harness.d.ts +14 -0
- package/dist/testing/conformance/workflows/harness.js +44 -0
- package/dist/testing/conformance/workflows/recovery.d.ts +4 -0
- package/dist/testing/conformance/workflows/recovery.js +181 -0
- package/dist/testing/conformance/workflows/starts.d.ts +4 -0
- package/dist/testing/conformance/workflows/starts.js +57 -0
- package/dist/testing/conformance/workflows/suspension.d.ts +4 -0
- package/dist/testing/conformance/workflows/suspension.js +106 -0
- package/dist/testing/conformance/workflows/waits.d.ts +4 -0
- package/dist/testing/conformance/workflows/waits.js +284 -0
- package/dist/testing/conformance/workflows.d.ts +4 -0
- package/dist/testing/conformance/workflows.js +19 -0
- package/dist/testing/conformance.d.ts +330 -0
- package/dist/testing/conformance.js +364 -0
- package/dist/testing/database.d.ts +31 -0
- package/dist/testing/database.js +70 -0
- package/dist/testing/foundation.d.ts +41 -0
- package/dist/testing/foundation.js +517 -0
- package/dist/testing/index.d.ts +20 -0
- package/dist/testing/index.js +12 -0
- package/dist/testing/property.d.ts +40 -0
- package/dist/testing/property.js +95 -0
- package/dist/testing/simulate-cluster.d.ts +112 -0
- package/dist/testing/simulate-cluster.js +257 -0
- package/dist/testing/simulate.d.ts +90 -0
- package/dist/testing/simulate.js +127 -0
- package/package.json +1 -0
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
import { Effect } from "effect";
|
|
2
|
+
import type { Request, SubscriptionEnvelope } from "../request.ts";
|
|
3
|
+
import type { ActorRef } from "../../identity/caller.ts";
|
|
4
|
+
/**
|
|
5
|
+
* The identity of one subscription delivery: which subscription, subscriber,
|
|
6
|
+
* source, epoch, and position it applies. Two subscriptions, two subscribers
|
|
7
|
+
* of one source, or two epochs of one subscription never share one.
|
|
8
|
+
*/
|
|
9
|
+
export declare const deliveryIdentity: ({ subscriber, envelope, }: {
|
|
10
|
+
readonly subscriber: ActorRef;
|
|
11
|
+
readonly envelope: SubscriptionEnvelope;
|
|
12
|
+
}) => Effect.Effect<string, never, never>;
|
|
13
|
+
/**
|
|
14
|
+
* What a receipt's payload hash binds: a delivery's identity rather than its
|
|
15
|
+
* re-encoded bytes, so a redelivery after a schema-compatible deploy replays
|
|
16
|
+
* instead of conflicting; any other request's payload.
|
|
17
|
+
*/
|
|
18
|
+
export declare const hashedPayload: (request: Request) => Effect.Effect<string, never, never>;
|
|
19
|
+
/**
|
|
20
|
+
* A delivery's command id: `v1.<s>.<s + retryWindow>.<digest>`, where `s` is
|
|
21
|
+
* fixed by the delivered record (an event's emit time, a gap's detection
|
|
22
|
+
* time, a control row's schedule), so a redelivery repeats the id. The digest
|
|
23
|
+
* is SHA-256 of the identity shaped as a version-8 UUID, which external
|
|
24
|
+
* admission never accepts, so no caller can plant a receipt under it.
|
|
25
|
+
*/
|
|
26
|
+
export declare const deliveryCommandId: (args_0: {
|
|
27
|
+
readonly subscriber: ActorRef;
|
|
28
|
+
readonly envelope: SubscriptionEnvelope;
|
|
29
|
+
readonly issuedAt: number;
|
|
30
|
+
readonly retryWindowMs: number;
|
|
31
|
+
}) => Effect.Effect<string, never, never>;
|
|
@@ -0,0 +1,45 @@
|
|
|
1
|
+
import { Effect, Schema } from "effect";
|
|
2
|
+
const encodeIdentity = Schema.encodeEffect(Schema.fromJsonString(Schema.Array(Schema.String)));
|
|
3
|
+
/**
|
|
4
|
+
* The identity of one subscription delivery: which subscription, subscriber,
|
|
5
|
+
* source, epoch, and position it applies. Two subscriptions, two subscribers
|
|
6
|
+
* of one source, or two epochs of one subscription never share one.
|
|
7
|
+
*/
|
|
8
|
+
export const deliveryIdentity = ({ subscriber, envelope, }) => encodeIdentity([
|
|
9
|
+
"subscription/v1",
|
|
10
|
+
subscriber.tenant,
|
|
11
|
+
subscriber.actor,
|
|
12
|
+
envelope.subscription,
|
|
13
|
+
subscriber.id,
|
|
14
|
+
envelope.sourceType,
|
|
15
|
+
envelope.sourceId,
|
|
16
|
+
envelope.epoch,
|
|
17
|
+
envelope.kind,
|
|
18
|
+
envelope.position,
|
|
19
|
+
]).pipe(Effect.orDie);
|
|
20
|
+
/**
|
|
21
|
+
* What a receipt's payload hash binds: a delivery's identity rather than its
|
|
22
|
+
* re-encoded bytes, so a redelivery after a schema-compatible deploy replays
|
|
23
|
+
* instead of conflicting; any other request's payload.
|
|
24
|
+
*/
|
|
25
|
+
export const hashedPayload = (request) => request.delivery === undefined
|
|
26
|
+
? Effect.succeed(request.payload)
|
|
27
|
+
: deliveryIdentity({ subscriber: request.ref, envelope: request.delivery });
|
|
28
|
+
/**
|
|
29
|
+
* A delivery's command id: `v1.<s>.<s + retryWindow>.<digest>`, where `s` is
|
|
30
|
+
* fixed by the delivered record (an event's emit time, a gap's detection
|
|
31
|
+
* time, a control row's schedule), so a redelivery repeats the id. The digest
|
|
32
|
+
* is SHA-256 of the identity shaped as a version-8 UUID, which external
|
|
33
|
+
* admission never accepts, so no caller can plant a receipt under it.
|
|
34
|
+
*/
|
|
35
|
+
export const deliveryCommandId = Effect.fnUntraced(function* ({ subscriber, envelope, issuedAt, retryWindowMs, }) {
|
|
36
|
+
const identity = yield* deliveryIdentity({ subscriber, envelope });
|
|
37
|
+
const digest = yield* Effect.promise(() => globalThis.crypto.subtle.digest("SHA-256", new TextEncoder().encode(identity)));
|
|
38
|
+
const bytes = new Uint8Array(digest).slice(0, 16);
|
|
39
|
+
bytes[6] = (bytes[6] & 0x0f) | 0x80;
|
|
40
|
+
bytes[8] = (bytes[8] & 0x3f) | 0x80;
|
|
41
|
+
const raw = Buffer.from(bytes).toString("hex");
|
|
42
|
+
const uuid = `${raw.slice(0, 8)}-${raw.slice(8, 12)}-${raw.slice(12, 16)}-${raw.slice(16, 20)}-${raw.slice(20)}`;
|
|
43
|
+
const issued = Math.max(1, Math.floor(issuedAt));
|
|
44
|
+
return `v1.${issued}.${issued + retryWindowMs}.${uuid}`;
|
|
45
|
+
});
|
|
@@ -0,0 +1,175 @@
|
|
|
1
|
+
import { Effect, Schema } from "effect";
|
|
2
|
+
import { SqlClient, SqlError, type Statement } from "effect/sql";
|
|
3
|
+
import { type BucketRange } from "../database/shards.ts";
|
|
4
|
+
import { SubscriptionFailure } from "../../errors/subscription.ts";
|
|
5
|
+
import type { ActorError } from "../../errors/actor.ts";
|
|
6
|
+
import { Outcome, Request } from "../request.ts";
|
|
7
|
+
import { type RegisteredSubscription } from "../members.ts";
|
|
8
|
+
import { type Placement } from "../storage/codec.ts";
|
|
9
|
+
/** A subscription this runner delivers: a subscriber type and one of its declarations. */
|
|
10
|
+
export interface LocalSubscription {
|
|
11
|
+
readonly subscriberType: string;
|
|
12
|
+
readonly subscription: RegisteredSubscription;
|
|
13
|
+
}
|
|
14
|
+
/** Tuning for subscription work: concurrency, lease, and backoff bounds. */
|
|
15
|
+
interface SubscriptionSettings {
|
|
16
|
+
/** Feed expansions, control registrations, and subscription deliveries each run this many at once. */
|
|
17
|
+
readonly concurrency: number;
|
|
18
|
+
/** Matching events one claimed subscription row delivers before it settles. */
|
|
19
|
+
readonly batch: number;
|
|
20
|
+
readonly claimLeaseMs: () => number;
|
|
21
|
+
readonly maxBackoffMs: number;
|
|
22
|
+
readonly retryWindowMs: number;
|
|
23
|
+
}
|
|
24
|
+
/** A claimed feed row to expand, or control row to register at its source. */
|
|
25
|
+
declare const OutboxWork: Schema.Struct<{
|
|
26
|
+
readonly kind: Schema.Literals<readonly ["feed", "control"]>;
|
|
27
|
+
readonly routing_key: Schema.String;
|
|
28
|
+
readonly intent_id: Schema.String;
|
|
29
|
+
readonly attempts: Schema.Int;
|
|
30
|
+
readonly tenant_id: Schema.String;
|
|
31
|
+
readonly actor_type: Schema.String;
|
|
32
|
+
readonly actor_id: Schema.String;
|
|
33
|
+
readonly target_type: Schema.String;
|
|
34
|
+
readonly target_id: Schema.String;
|
|
35
|
+
readonly command: Schema.String;
|
|
36
|
+
readonly payload: Schema.String;
|
|
37
|
+
readonly scheduled_at_ms: Schema.String;
|
|
38
|
+
readonly claimed_until: Schema.String;
|
|
39
|
+
}>;
|
|
40
|
+
type OutboxWork = typeof OutboxWork.Type;
|
|
41
|
+
/** A claimed subscription row to deliver. */
|
|
42
|
+
declare const SubscriptionRow: Schema.Struct<{
|
|
43
|
+
readonly kind: Schema.Literal<"subscription">;
|
|
44
|
+
readonly routing_key: Schema.String;
|
|
45
|
+
readonly tenant_id: Schema.String;
|
|
46
|
+
readonly source_type: Schema.String;
|
|
47
|
+
readonly source_id: Schema.String;
|
|
48
|
+
readonly subscriber_type: Schema.String;
|
|
49
|
+
readonly subscription: Schema.String;
|
|
50
|
+
readonly subscriber_id: Schema.String;
|
|
51
|
+
readonly events: Schema.$Array<Schema.String>;
|
|
52
|
+
readonly epoch: Schema.String;
|
|
53
|
+
readonly delivered: Schema.String;
|
|
54
|
+
readonly attempts: Schema.Int;
|
|
55
|
+
readonly gap_through: Schema.NullOr<Schema.String>;
|
|
56
|
+
readonly claimed_until: Schema.String;
|
|
57
|
+
}>;
|
|
58
|
+
type SubscriptionRow = typeof SubscriptionRow.Type;
|
|
59
|
+
/** A unit of relay work: an outbox row to expand or a subscription row to deliver. */
|
|
60
|
+
export type SubscriptionWork = OutboxWork | SubscriptionRow;
|
|
61
|
+
/**
|
|
62
|
+
* CTEs that claim subscription work and the selects that return each claimed
|
|
63
|
+
* item as a JSON `work` column, for the relay's one claim statement.
|
|
64
|
+
*/
|
|
65
|
+
export interface SubscriptionClaim {
|
|
66
|
+
readonly parts: ReadonlyArray<Statement.Fragment>;
|
|
67
|
+
readonly results: ReadonlyArray<Statement.Fragment>;
|
|
68
|
+
}
|
|
69
|
+
/** What the outbox relay runs of a runner's subscription work. */
|
|
70
|
+
export interface SubscriptionRelay {
|
|
71
|
+
/** Undefined when this runner registers no subscription or has no free slot. */
|
|
72
|
+
readonly claim: (slots: SubscriptionSlots, range: BucketRange) => SubscriptionClaim | undefined;
|
|
73
|
+
readonly decode: (work: string) => Effect.Effect<SubscriptionWork>;
|
|
74
|
+
readonly run: (work: SubscriptionWork, handoff: Handoff) => Effect.Effect<void, SubscriptionError, SqlClient.SqlClient>;
|
|
75
|
+
/** Deletes rows of a subscription this runner no longer declares after a day due. */
|
|
76
|
+
readonly cleanupRemoved: (subscriberType: string, declared: ReadonlyArray<string>) => Effect.Effect<number, SubscriptionError, SqlClient.SqlClient>;
|
|
77
|
+
/** Widens a dynamic subscription's rows to the declared event classes, once per startup. */
|
|
78
|
+
readonly widen: (subscriberType: string, declared: RegisteredSubscription) => Effect.Effect<void, SubscriptionError, SqlClient.SqlClient>;
|
|
79
|
+
}
|
|
80
|
+
/**
|
|
81
|
+
* How an expansion hands the rows it leased to the relay: its free
|
|
82
|
+
* subscription-delivery slots now, and starting one leased row's delivery.
|
|
83
|
+
*/
|
|
84
|
+
export interface Handoff {
|
|
85
|
+
readonly free: Effect.Effect<number>;
|
|
86
|
+
readonly start: (work: SubscriptionWork) => Effect.Effect<void>;
|
|
87
|
+
}
|
|
88
|
+
/** How many of each kind of subscription work a runner has room to claim now. */
|
|
89
|
+
export interface SubscriptionSlots {
|
|
90
|
+
readonly feed: number;
|
|
91
|
+
readonly control: number;
|
|
92
|
+
readonly subscription: number;
|
|
93
|
+
}
|
|
94
|
+
/** How subscription work can fail; the relay logs it and the row's lease or backoff retries it. */
|
|
95
|
+
export type SubscriptionError = SqlError.SqlError | Schema.SchemaError | SubscriptionFailure;
|
|
96
|
+
/**
|
|
97
|
+
* The relay's subscription work on one runner: expanding source feeds,
|
|
98
|
+
* registering dynamic subscriptions at their sources, and delivering due
|
|
99
|
+
* subscription rows of the subscriber types this runner registers. A runner
|
|
100
|
+
* that registers none claims none of it.
|
|
101
|
+
*
|
|
102
|
+
* Delivery: rows this runner can deliver that an expansion makes due are leased at
|
|
103
|
+
* once, up to its free delivery slots, and delivered without a claim pass; the
|
|
104
|
+
* rest become due for any runner. Updates bound their rows by the page's key
|
|
105
|
+
* range, read from the key index, rather than joining the page, so a planner on
|
|
106
|
+
* stale row counts cannot rescan the page for every stored row. A renewal never
|
|
107
|
+
* shortens a claim, so it cannot undo a lease a test clock moved. Shutdown
|
|
108
|
+
* releases a claim at once; the receipt and cursor make redelivery safe.
|
|
109
|
+
*
|
|
110
|
+
* Subscribing: a source that has never been created can be subscribed to. Only a
|
|
111
|
+
* refused subscribe leaves a tombstone at its own epoch. A subscription is due at
|
|
112
|
+
* once when history after its start already matches, so one to a quiet source
|
|
113
|
+
* still delivers it. Widening only adds this declaration's classes to the row's
|
|
114
|
+
* list. Every write that changes a row's `active` or `events` goes through
|
|
115
|
+
* `changeRows`, which moves the tag summary in the same transaction.
|
|
116
|
+
*
|
|
117
|
+
* Gaps: pruning removes a prefix, so history after `delivered` is missing when the
|
|
118
|
+
* oldest retained event is past its successor or nothing is retained. An
|
|
119
|
+
* operator's skip plants the position it skips through as the gap's end. The
|
|
120
|
+
* detection time fixes the gap's id and its range is kept, so a redelivery reports
|
|
121
|
+
* the same gap even after pruning advances. An id route needs the pruned event to
|
|
122
|
+
* name a subscriber. A short batch scanned every matching event through the head
|
|
123
|
+
* it read, and after a gap older than the pruning it stops at the gap to find the
|
|
124
|
+
* next one.
|
|
125
|
+
*
|
|
126
|
+
* Delivery outcomes: the subscriber reads the current shape, and a value its chain
|
|
127
|
+
* cannot read backs the row off at this event rather than skipping it. A failure
|
|
128
|
+
* backs the row off, and a stale or unsubscribed acknowledgement removes this
|
|
129
|
+
* epoch's row. The marked position is read before the settle in its own snapshot:
|
|
130
|
+
* a commit after it raised `marked` through its expansion, which the settle reads
|
|
131
|
+
* from the row.
|
|
132
|
+
*/
|
|
133
|
+
export declare const subscriptionRelay: (options: {
|
|
134
|
+
readonly deliver: (request: Request) => Effect.Effect<Outcome, ActorError>;
|
|
135
|
+
readonly local: () => ReadonlyArray<LocalSubscription>;
|
|
136
|
+
readonly placementOf: (actorType: string) => Effect.Effect<Placement | undefined>;
|
|
137
|
+
readonly wake: Effect.Effect<void>;
|
|
138
|
+
readonly settings: SubscriptionSettings;
|
|
139
|
+
}) => Effect.Effect<{
|
|
140
|
+
claim: (slots: SubscriptionSlots, range: BucketRange) => SubscriptionClaim | undefined;
|
|
141
|
+
decode: (work: string) => Effect.Effect<{
|
|
142
|
+
readonly kind: "control" | "feed";
|
|
143
|
+
readonly routing_key: string;
|
|
144
|
+
readonly intent_id: string;
|
|
145
|
+
readonly attempts: number;
|
|
146
|
+
readonly tenant_id: string;
|
|
147
|
+
readonly actor_type: string;
|
|
148
|
+
readonly actor_id: string;
|
|
149
|
+
readonly target_type: string;
|
|
150
|
+
readonly target_id: string;
|
|
151
|
+
readonly command: string;
|
|
152
|
+
readonly payload: string;
|
|
153
|
+
readonly scheduled_at_ms: string;
|
|
154
|
+
readonly claimed_until: string;
|
|
155
|
+
} | {
|
|
156
|
+
readonly kind: "subscription";
|
|
157
|
+
readonly routing_key: string;
|
|
158
|
+
readonly tenant_id: string;
|
|
159
|
+
readonly source_type: string;
|
|
160
|
+
readonly source_id: string;
|
|
161
|
+
readonly subscriber_type: string;
|
|
162
|
+
readonly subscription: string;
|
|
163
|
+
readonly subscriber_id: string;
|
|
164
|
+
readonly events: readonly string[];
|
|
165
|
+
readonly epoch: string;
|
|
166
|
+
readonly delivered: string;
|
|
167
|
+
readonly attempts: number;
|
|
168
|
+
readonly gap_through: string | null;
|
|
169
|
+
readonly claimed_until: string;
|
|
170
|
+
}, never, never>;
|
|
171
|
+
run: (work: SubscriptionWork, handoff: Handoff) => Effect.Effect<void, SubscriptionError, SqlClient.SqlClient>;
|
|
172
|
+
widen: (subscriberType: string, declared: RegisteredSubscription) => Effect.Effect<void, SqlError.SqlError, SqlClient.SqlClient>;
|
|
173
|
+
cleanupRemoved: (subscriberType: string, declared: readonly string[]) => Effect.Effect<number, SqlError.SqlError, SqlClient.SqlClient>;
|
|
174
|
+
}, never, SqlClient.SqlClient>;
|
|
175
|
+
export {};
|