@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,147 @@
|
|
|
1
|
+
import { Context, Effect } from "effect";
|
|
2
|
+
import { clientOf } from "../client/make.js";
|
|
3
|
+
import { compile, publish, singleton, } from "./descriptor.js";
|
|
4
|
+
import { createOf, handleOf, intentsOf, runOfId } from "./handles.js";
|
|
5
|
+
import { jobLayer, ordinaryLayer, queryLayer, singletonLayer, } from "./layers.js";
|
|
6
|
+
/**
|
|
7
|
+
* Validates and compiles a definition, throwing on any invalid declaration
|
|
8
|
+
* before anything is published, and returns the actor type's handles,
|
|
9
|
+
* layers, and client.
|
|
10
|
+
*/
|
|
11
|
+
const make = (name, definition) => {
|
|
12
|
+
const descriptor = compile({ name, declared: definition });
|
|
13
|
+
class Turn extends Context.Service()(`akter/Turn/${name}`) {
|
|
14
|
+
}
|
|
15
|
+
class Executor extends Context.Service()(`akter/Executor/${name}`) {
|
|
16
|
+
}
|
|
17
|
+
class Workflow extends Context.Service()(`akter/Workflow/${name}`) {
|
|
18
|
+
}
|
|
19
|
+
class Read extends Context.Service()(`akter/Read/${name}`) {
|
|
20
|
+
}
|
|
21
|
+
class Connection extends Context.Service()(`akter/Connection/${name}`) {
|
|
22
|
+
}
|
|
23
|
+
const phases = { Turn, Read, Connection, Workflow, Executor };
|
|
24
|
+
/** An ordinary actor's `toLayer`: the builder's failure fails the layer. */
|
|
25
|
+
const ordinaryToLayer = (build) => ordinaryLayer({ descriptor, phases, build, services: Effect.context() });
|
|
26
|
+
/** A singleton's `toLayer`: the builder runs, and fails, per activation, not in the layer. */
|
|
27
|
+
const singletonToLayer = (build) => singletonLayer({ descriptor, phases, build, services: Effect.context() });
|
|
28
|
+
const toQueryLayer = (build) => queryLayer({
|
|
29
|
+
descriptor,
|
|
30
|
+
phases,
|
|
31
|
+
build,
|
|
32
|
+
services: Effect.context(),
|
|
33
|
+
});
|
|
34
|
+
const toJobLayer = (build) => jobLayer({
|
|
35
|
+
descriptor,
|
|
36
|
+
phases,
|
|
37
|
+
build,
|
|
38
|
+
services: Effect.context(),
|
|
39
|
+
});
|
|
40
|
+
/** Builds a parent-placed actor's full id from its parent's id and its own key. */
|
|
41
|
+
const idOf = (parentId, local) => descriptor.childId(parentId, local);
|
|
42
|
+
const actor = {
|
|
43
|
+
/** The actor type's name: a letter followed by up to 79 letters or digits. */
|
|
44
|
+
name,
|
|
45
|
+
/** The schema of the actor's decoded state. */
|
|
46
|
+
state: descriptor.state.schema,
|
|
47
|
+
/** The declared public members. */
|
|
48
|
+
api: (definition.api ?? {}),
|
|
49
|
+
/** Event classes this actor emits, which subscriptions to it may name. */
|
|
50
|
+
events: (definition.events ?? []),
|
|
51
|
+
/** The context of a command turn, read with `yield* X.Turn` in `X.toLayer` handlers. */
|
|
52
|
+
Turn,
|
|
53
|
+
/** The read-only context of a query or stream handler, read with `yield* X.Read`. */
|
|
54
|
+
Read,
|
|
55
|
+
/** The context of a connection handler, read with `yield* X.Connection`. */
|
|
56
|
+
Connection,
|
|
57
|
+
/** The context of one executor attempt, read with `yield* X.Executor`. */
|
|
58
|
+
Executor,
|
|
59
|
+
/** The context of a workflow body, read with `yield* X.Workflow`. */
|
|
60
|
+
Workflow,
|
|
61
|
+
/**
|
|
62
|
+
* Reattaches to a workflow execution by id without contacting its owner. An
|
|
63
|
+
* id of another tenant, actor type, or workflow fails `InvalidExecutionId`.
|
|
64
|
+
*/
|
|
65
|
+
run: ((member, executionId) => runOfId(descriptor, member, executionId)),
|
|
66
|
+
/**
|
|
67
|
+
* Implements every `api` and `internal` command, connection, stream, and
|
|
68
|
+
* workflow; reducers have no entry. Pass the handlers directly, or an
|
|
69
|
+
* Effect that builds them from services; each handler's requirements are
|
|
70
|
+
* inferred. Command handlers read their turn with `yield* X.Turn`, and one
|
|
71
|
+
* that acquires a handle with `X.get` does not compile.
|
|
72
|
+
*
|
|
73
|
+
* The builder runs once when the layer is built, and its failure fails the
|
|
74
|
+
* layer. On a singleton it runs once per activation instead, in the
|
|
75
|
+
* activation's scope, so a fiber it forks with `Effect.forkScoped` lives
|
|
76
|
+
* exactly as long as the one cluster-wide activation; its failure fails
|
|
77
|
+
* that activation, not the layer.
|
|
78
|
+
*
|
|
79
|
+
* @example
|
|
80
|
+
* const CounterLive = Counter.toLayer({
|
|
81
|
+
* Increment: Effect.fn(function* (amount) {
|
|
82
|
+
* const turn = yield* Counter.Turn
|
|
83
|
+
* yield* turn.state.set({ count: turn.state.count + amount })
|
|
84
|
+
* return turn.state.count
|
|
85
|
+
* }),
|
|
86
|
+
* })
|
|
87
|
+
*/
|
|
88
|
+
toLayer: (descriptor.singleton ? singletonToLayer : ordinaryToLayer),
|
|
89
|
+
/**
|
|
90
|
+
* Implements every query in `api`, directly or from an Effect that builds
|
|
91
|
+
* the handlers. Queries run on the caller's node against committed rows
|
|
92
|
+
* and read their context with `yield* X.Read`.
|
|
93
|
+
*/
|
|
94
|
+
toQueryLayer,
|
|
95
|
+
/**
|
|
96
|
+
* Implements every bound job's executor, directly or from an Effect that
|
|
97
|
+
* builds them. Executors run after the turn that enqueued the job commits,
|
|
98
|
+
* read `yield* X.Executor`, and have no database capability; the return
|
|
99
|
+
* value is routed to the binding's `onSuccess`.
|
|
100
|
+
*/
|
|
101
|
+
toJobLayer,
|
|
102
|
+
/**
|
|
103
|
+
* A request/reply handle to the actor with `id`, or to the singleton. It
|
|
104
|
+
* never contacts the actor; a call does. An `id` that fails the key schema
|
|
105
|
+
* is a defect, and acquiring a handle inside a turn is a defect.
|
|
106
|
+
*/
|
|
107
|
+
get: (descriptor.singleton
|
|
108
|
+
? () => handleOf(descriptor, "singleton", false)
|
|
109
|
+
: (id) => handleOf(descriptor, id, false)),
|
|
110
|
+
/**
|
|
111
|
+
* Mints a new UUIDv7 id and returns its handle. Only an unkeyed actor that
|
|
112
|
+
* is not parent-placed has `create`; calling it inside a turn is a defect.
|
|
113
|
+
*/
|
|
114
|
+
create: (() => createOf(descriptor)),
|
|
115
|
+
/**
|
|
116
|
+
* Builds a parent-placed actor's full id from its parent's id and its own
|
|
117
|
+
* key, as `c1.<byte length of parent>.<parent>.<local>`.
|
|
118
|
+
*/
|
|
119
|
+
idOf: idOf,
|
|
120
|
+
/**
|
|
121
|
+
* Durable intents to this actor; only command turns provide `InTurn`. The
|
|
122
|
+
* id is a plain string so `X.intents(turn.id)` works for every key kind;
|
|
123
|
+
* an id that fails the key schema is a deterministic defect. The target
|
|
124
|
+
* shares the sending turn's tenant. A keyless workflow start is keyed by the
|
|
125
|
+
* turn's command id and its order among the turn's starts, so a retried
|
|
126
|
+
* turn restages the same executions.
|
|
127
|
+
*
|
|
128
|
+
* @example
|
|
129
|
+
* const later = yield* Counter.intents(turn.id)
|
|
130
|
+
* yield* later.Increment(1).pipe(Intent.after("1 minute"))
|
|
131
|
+
*/
|
|
132
|
+
intents: (descriptor.singleton
|
|
133
|
+
? () => intentsOf(descriptor, "singleton")
|
|
134
|
+
: (id) => intentsOf(descriptor, id)),
|
|
135
|
+
/**
|
|
136
|
+
* A Promise client of this actor's public members over `Actors.serve`'s
|
|
137
|
+
* HTTP protocol, for browsers and other code that doesn't run Effect.
|
|
138
|
+
* Workflows are not served; a parent-placed actor is reached by its full
|
|
139
|
+
* id and never created by a client.
|
|
140
|
+
*/
|
|
141
|
+
client: (options) => clientOf(descriptor.served)(options),
|
|
142
|
+
};
|
|
143
|
+
publish({ definition: actor, descriptor });
|
|
144
|
+
return actor;
|
|
145
|
+
};
|
|
146
|
+
/** `Actor.make` and `Actor.singleton`, which the package entry re-exports on `Actor`. */
|
|
147
|
+
export const Definition = { make: make, singleton };
|
|
@@ -0,0 +1,172 @@
|
|
|
1
|
+
import { Effect, Schema } from "effect";
|
|
2
|
+
import type { ActorRef, System } from "../identity/caller.ts";
|
|
3
|
+
import type { Actors } from "../handles/actors.ts";
|
|
4
|
+
import type { InternalActors } from "../runtime/actors.ts";
|
|
5
|
+
import type { Access } from "../policies/access.ts";
|
|
6
|
+
import type { Placement } from "../runtime/storage/codec.ts";
|
|
7
|
+
import type { RegisteredSubscription } from "../runtime/members.ts";
|
|
8
|
+
import type { AnyCommand, AnyMember, MemberRecord, ValueSchema } from "../members/command.ts";
|
|
9
|
+
import type { AnyConnection } from "../members/connection.ts";
|
|
10
|
+
import type { AnyStream } from "../members/stream.ts";
|
|
11
|
+
import type { AnyReducer } from "../members/reducer.ts";
|
|
12
|
+
import { type AnyWorkflow } from "../members/workflow.ts";
|
|
13
|
+
import type { AnySubscription } from "../members/subscription.ts";
|
|
14
|
+
import type { AnyJob, AnyJobBinding } from "../members/job.ts";
|
|
15
|
+
import { type AnyBlob } from "../members/blob.ts";
|
|
16
|
+
import type { EventClass } from "../members/event.ts";
|
|
17
|
+
import { type PayloadDeclaration, type DefinitionPayloads, payloadCodec } from "../members/payload.ts";
|
|
18
|
+
import { type Policy, type TurnPolicy } from "../policies/command.ts";
|
|
19
|
+
import { type JobPolicy } from "../policies/job.ts";
|
|
20
|
+
import { type CronEntry } from "../policies/schedules.ts";
|
|
21
|
+
import { type AnyOwnedTable } from "../tables/owned.ts";
|
|
22
|
+
import { exitCodec } from "../runtime/workflows/steps.ts";
|
|
23
|
+
import { type ActorState } from "../state/migration.ts";
|
|
24
|
+
import { type MemberCodecs, type StateCodec } from "./codecs.ts";
|
|
25
|
+
import { type ServedDefinition } from "./served.ts";
|
|
26
|
+
/** Whether a definition's `key` is `Actor.singleton`. */
|
|
27
|
+
export declare const isSingletonKey: <I>(input: I) => input is I & {
|
|
28
|
+
readonly _tag: "Singleton";
|
|
29
|
+
};
|
|
30
|
+
/** Marker for a singleton actor's `key`: one instance per tenant, resolved with `X.get()`. */
|
|
31
|
+
export declare const singleton: {
|
|
32
|
+
readonly _tag: "Singleton";
|
|
33
|
+
};
|
|
34
|
+
/** The type of `Actor.singleton`, the `key` of a singleton actor. */
|
|
35
|
+
export type SingletonKey = typeof singleton;
|
|
36
|
+
export type KeySchema = Schema.Codec<string, string>;
|
|
37
|
+
/** The declaration `Actor.make` compiles, before its type parameters are erased. */
|
|
38
|
+
export interface Declaration {
|
|
39
|
+
readonly key?: KeySchema | SingletonKey | undefined;
|
|
40
|
+
readonly placement?: "tenant" | "actor" | {
|
|
41
|
+
readonly parent: object;
|
|
42
|
+
} | undefined;
|
|
43
|
+
readonly state?: ActorState | undefined;
|
|
44
|
+
readonly events?: ReadonlyArray<EventClass> | undefined;
|
|
45
|
+
readonly feeds?: ReadonlyArray<EventClass> | undefined;
|
|
46
|
+
readonly tables?: ReadonlyArray<AnyOwnedTable> | undefined;
|
|
47
|
+
readonly blobs?: ReadonlyArray<AnyBlob> | undefined;
|
|
48
|
+
readonly api?: MemberRecord | undefined;
|
|
49
|
+
readonly internal?: MemberRecord | undefined;
|
|
50
|
+
readonly createdBy?: AnyCommand | undefined;
|
|
51
|
+
readonly schedules?: Readonly<Record<string, AnyCommand>> | undefined;
|
|
52
|
+
readonly jobs?: Readonly<Record<string, AnyJobBinding>> | undefined;
|
|
53
|
+
readonly policy?: Policy | undefined;
|
|
54
|
+
readonly access?: Access | undefined;
|
|
55
|
+
readonly subscriptions?: ReadonlyArray<AnySubscription> | undefined;
|
|
56
|
+
}
|
|
57
|
+
/** One declared job of an actor: its schema, compiled payload codec, and resolved binding. */
|
|
58
|
+
export interface CompiledJob {
|
|
59
|
+
readonly job: AnyJob;
|
|
60
|
+
readonly codec: ReturnType<typeof payloadCodec<AnyJob>>;
|
|
61
|
+
readonly policy: JobPolicy;
|
|
62
|
+
}
|
|
63
|
+
/** A connection member's frame and session codecs. */
|
|
64
|
+
export interface ConnectionCodecs {
|
|
65
|
+
readonly encodeServer: (value: {
|
|
66
|
+
readonly value: unknown;
|
|
67
|
+
}) => Effect.Effect<string, Schema.SchemaError>;
|
|
68
|
+
readonly decodeClient: (text: string) => Effect.Effect<{
|
|
69
|
+
readonly value: unknown;
|
|
70
|
+
}, Schema.SchemaError>;
|
|
71
|
+
readonly encodeSession: ((value: {
|
|
72
|
+
readonly value: unknown;
|
|
73
|
+
}) => Effect.Effect<string, Schema.SchemaError>) | undefined;
|
|
74
|
+
readonly decodeSession: ((text: string) => Effect.Effect<{
|
|
75
|
+
readonly value: unknown;
|
|
76
|
+
}, Schema.SchemaError>) | undefined;
|
|
77
|
+
}
|
|
78
|
+
/** Runtime access to a definition's internal handle, for test harnesses. */
|
|
79
|
+
export interface InternalHandle {
|
|
80
|
+
/**
|
|
81
|
+
* A handle to actor `id` of `tenant` that calls as `caller` and reaches
|
|
82
|
+
* `internal` commands; an `id` that fails the key schema is a defect.
|
|
83
|
+
*/
|
|
84
|
+
readonly handle: (id: string, tenant: string, caller: typeof System.Type) => Effect.Effect<{
|
|
85
|
+
readonly ref: ActorRef;
|
|
86
|
+
}, never, Actors | InternalActors>;
|
|
87
|
+
}
|
|
88
|
+
/**
|
|
89
|
+
* Everything `Actor.make` derives from one declaration, compiled once and
|
|
90
|
+
* frozen: validated members and their codecs, resolved policy, identity,
|
|
91
|
+
* placement, jobs, subscriptions, and the served view. Every phase adapter,
|
|
92
|
+
* handle, layer, and lookup reads it; it is process metadata, never durable
|
|
93
|
+
* authority.
|
|
94
|
+
*/
|
|
95
|
+
export interface Descriptor {
|
|
96
|
+
readonly name: string;
|
|
97
|
+
readonly access: Access | undefined;
|
|
98
|
+
readonly singleton: boolean;
|
|
99
|
+
/** Unkeyed with a creation command, so a turn may mint its ids. */
|
|
100
|
+
readonly mintable: boolean;
|
|
101
|
+
/** True for an unkeyed actor that is not parent-placed, whose ids a client mints. */
|
|
102
|
+
readonly minted: boolean;
|
|
103
|
+
readonly placement: Placement;
|
|
104
|
+
/** Levels below the actor-placed root; a root is 0. */
|
|
105
|
+
readonly depth: number;
|
|
106
|
+
/** The definition this actor is placed on, when parent-placed. */
|
|
107
|
+
readonly parent: Descriptor | undefined;
|
|
108
|
+
readonly idSchema: KeySchema;
|
|
109
|
+
readonly decodeId: (id: string) => Effect.Effect<string, Schema.SchemaError>;
|
|
110
|
+
readonly encodeId: (id: string) => Effect.Effect<string, Schema.SchemaError>;
|
|
111
|
+
readonly isId: (id: string) => boolean;
|
|
112
|
+
readonly childId: (parentId: string, local: string) => string;
|
|
113
|
+
readonly api: MemberRecord;
|
|
114
|
+
readonly internalCommands: MemberRecord;
|
|
115
|
+
/** `api` then `internal` members, in declaration order. */
|
|
116
|
+
readonly members: ReadonlyArray<AnyMember>;
|
|
117
|
+
readonly commands: ReadonlyArray<AnyCommand>;
|
|
118
|
+
readonly queries: ReadonlyArray<AnyMember>;
|
|
119
|
+
readonly reducers: ReadonlyArray<AnyReducer>;
|
|
120
|
+
readonly connections: ReadonlyArray<AnyConnection>;
|
|
121
|
+
readonly streams: ReadonlyArray<AnyStream>;
|
|
122
|
+
readonly workflows: ReadonlyArray<AnyWorkflow>;
|
|
123
|
+
readonly internalMembers: ReadonlySet<AnyMember>;
|
|
124
|
+
/** Tags of `internal` commands that subscriptions deliver to; intents never reach them. */
|
|
125
|
+
readonly handlerTags: ReadonlySet<string>;
|
|
126
|
+
readonly watches: ReadonlySet<string>;
|
|
127
|
+
readonly codecs: ReadonlyMap<string, MemberCodecs>;
|
|
128
|
+
readonly connectionCodecs: ReadonlyMap<string, ConnectionCodecs>;
|
|
129
|
+
readonly workflowExits: ReadonlyMap<string, ReturnType<typeof exitCodec>>;
|
|
130
|
+
readonly fields: Readonly<Record<string, ValueSchema>>;
|
|
131
|
+
readonly state: StateCodec;
|
|
132
|
+
readonly events: ReadonlyMap<string, EventClass>;
|
|
133
|
+
readonly eventCodecs: ReadonlyMap<string, ReturnType<typeof payloadCodec<EventClass>>>;
|
|
134
|
+
readonly feeds: ReadonlySet<string>;
|
|
135
|
+
readonly jobs: ReadonlyMap<string, CompiledJob>;
|
|
136
|
+
/** Tags of jobs whose executor progress some connection or stream receives. */
|
|
137
|
+
readonly progressJobs: ReadonlySet<string>;
|
|
138
|
+
readonly policy: TurnPolicy;
|
|
139
|
+
readonly cron: ReadonlyArray<CronEntry>;
|
|
140
|
+
readonly tables: ReadonlyArray<AnyOwnedTable>;
|
|
141
|
+
readonly blobs: ReadonlyArray<AnyBlob>;
|
|
142
|
+
readonly subscriptions: ReadonlyArray<AnySubscription>;
|
|
143
|
+
readonly registeredSubscriptions: ReadonlyArray<RegisteredSubscription>;
|
|
144
|
+
/** Event and job chains this actor writes (or only reads, with `writes` false). */
|
|
145
|
+
readonly payloads: (writes: boolean) => ReadonlyArray<PayloadDeclaration>;
|
|
146
|
+
/** What `durable payloads check` and `clear` read. */
|
|
147
|
+
readonly definitionPayloads: DefinitionPayloads;
|
|
148
|
+
readonly served: ServedDefinition;
|
|
149
|
+
/** The handle that reaches `internal` commands too, for test harnesses. */
|
|
150
|
+
readonly internal: InternalHandle;
|
|
151
|
+
}
|
|
152
|
+
/** The descriptor of an `Actor.make` definition, or undefined for any other value. */
|
|
153
|
+
export declare const descriptorOf: (definition: WeakKey) => Descriptor | undefined;
|
|
154
|
+
/**
|
|
155
|
+
* Validates a declaration and compiles its descriptor, throwing on the first
|
|
156
|
+
* invalid part. It publishes nothing: `publish` records the descriptor and
|
|
157
|
+
* its table ownership only after the whole definition has compiled, so a
|
|
158
|
+
* rejected definition leaves every registry as it was.
|
|
159
|
+
*/
|
|
160
|
+
export declare const compile: ({ name, declared, }: {
|
|
161
|
+
readonly name: string;
|
|
162
|
+
readonly declared: Declaration;
|
|
163
|
+
}) => Descriptor;
|
|
164
|
+
/**
|
|
165
|
+
* Records `descriptor` for `definition` and gives its tables to the actor
|
|
166
|
+
* type. `compile` has already validated every table, so this cannot fail
|
|
167
|
+
* part-way.
|
|
168
|
+
*/
|
|
169
|
+
export declare const publish: ({ definition, descriptor, }: {
|
|
170
|
+
readonly definition: WeakKey;
|
|
171
|
+
readonly descriptor: Descriptor;
|
|
172
|
+
}) => void;
|