@akterjs/effect 0.0.0-stage → 0.1.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/LICENSE +201 -0
- package/README.md +43 -2
- package/dist/contract/actor/actor-already-exists.errors.d.mts +8 -0
- package/dist/contract/actor/actor-already-exists.errors.mjs +4 -0
- package/dist/contract/actor/actor-definition.pure.d.mts +21 -0
- package/dist/contract/actor/actor-definition.pure.mjs +106 -0
- package/dist/contract/actor/actor-erased.errors.d.mts +8 -0
- package/dist/contract/actor/actor-erased.errors.mjs +4 -0
- package/dist/contract/actor/actor-names.pure.d.mts +11 -0
- package/dist/contract/actor/actor-names.pure.mjs +51 -0
- package/dist/contract/actor/actor-not-created.errors.d.mts +8 -0
- package/dist/contract/actor/actor-not-created.errors.mjs +4 -0
- package/dist/contract/actor/actor-not-registered.errors.d.mts +8 -0
- package/dist/contract/actor/actor-not-registered.errors.mjs +4 -0
- package/dist/contract/actor/actor-registry.service.d.mts +16 -0
- package/dist/contract/actor/actor-registry.service.mjs +21 -0
- package/dist/contract/actor/actor.contract.d.mts +238 -0
- package/dist/contract/actor/actor.contract.mjs +1 -0
- package/dist/contract/actor/host-interface.pure.d.mts +23 -0
- package/dist/contract/actor/host-interface.pure.mjs +39 -0
- package/dist/contract/actor/reserved-member.errors.d.mts +9 -0
- package/dist/contract/actor/reserved-member.errors.mjs +7 -0
- package/dist/contract/akter.service.d.mts +75 -0
- package/dist/contract/akter.service.mjs +134 -0
- package/dist/contract/caller/authentication.api.d.mts +6 -0
- package/dist/contract/caller/authentication.api.mjs +5 -0
- package/dist/contract/caller/caller-admission.pure.d.mts +27 -0
- package/dist/contract/caller/caller-admission.pure.mjs +59 -0
- package/dist/contract/caller/caller-not-allowed.errors.d.mts +16 -0
- package/dist/contract/caller/caller-not-allowed.errors.mjs +18 -0
- package/dist/contract/caller/caller.schema.d.mts +7 -0
- package/dist/contract/caller/caller.schema.mjs +8 -0
- package/dist/contract/caller/current-caller.service.d.mts +7 -0
- package/dist/contract/caller/current-caller.service.mjs +4 -0
- package/dist/contract/caller/principal.schema.d.mts +13 -0
- package/dist/contract/caller/principal.schema.mjs +10 -0
- package/dist/contract/caller/unauthenticated.errors.d.mts +8 -0
- package/dist/contract/caller/unauthenticated.errors.mjs +4 -0
- package/dist/contract/client/actor-client.adapter.d.mts +42 -0
- package/dist/contract/client/actor-client.adapter.mjs +90 -0
- package/dist/contract/client/actor-client.contract.d.mts +30 -0
- package/dist/contract/client/actor-client.contract.mjs +1 -0
- package/dist/contract/client/actor-rpc.contract.d.mts +33 -0
- package/dist/contract/client/actor-rpc.contract.mjs +16 -0
- package/dist/contract/client/actor-unavailable.errors.d.mts +9 -0
- package/dist/contract/client/actor-unavailable.errors.mjs +7 -0
- package/dist/contract/client/client-failure.contract.d.mts +28 -0
- package/dist/contract/client/client-failure.contract.mjs +28 -0
- package/dist/contract/client/invalid-request.errors.d.mts +9 -0
- package/dist/contract/client/invalid-request.errors.mjs +7 -0
- package/dist/contract/client/storage-limit.errors.d.mts +16 -0
- package/dist/contract/client/storage-limit.errors.mjs +14 -0
- package/dist/contract/command/command-id-expired.errors.d.mts +11 -0
- package/dist/contract/command/command-id-expired.errors.mjs +9 -0
- package/dist/contract/command/command-id.schema.d.mts +3 -0
- package/dist/contract/command/command-id.schema.mjs +4 -0
- package/dist/contract/command/command.contract.d.mts +117 -0
- package/dist/contract/command/command.contract.mjs +111 -0
- package/dist/contract/command/outbox-id.pure.d.mts +9 -0
- package/dist/contract/command/outbox-id.pure.mjs +14 -0
- package/dist/contract/command/outbox.schema.d.mts +9 -0
- package/dist/contract/command/outbox.schema.mjs +10 -0
- package/dist/contract/command/timer.schema.d.mts +20 -0
- package/dist/contract/command/timer.schema.mjs +14 -0
- package/dist/contract/computer/checkpoint-expired.errors.d.mts +12 -0
- package/dist/contract/computer/checkpoint-expired.errors.mjs +8 -0
- package/dist/contract/computer/computer-client-failure.contract.d.mts +16 -0
- package/dist/contract/computer/computer-client-failure.contract.mjs +1 -0
- package/dist/contract/computer/computer-client.adapter.d.mts +21 -0
- package/dist/contract/computer/computer-client.adapter.mjs +70 -0
- package/dist/contract/computer/computer-client.contract.d.mts +56 -0
- package/dist/contract/computer/computer-client.contract.mjs +1 -0
- package/dist/contract/computer/computer-held.errors.d.mts +13 -0
- package/dist/contract/computer/computer-held.errors.mjs +11 -0
- package/dist/contract/computer/computer-limit.errors.d.mts +15 -0
- package/dist/contract/computer/computer-limit.errors.mjs +13 -0
- package/dist/contract/computer/computer-lost.errors.d.mts +12 -0
- package/dist/contract/computer/computer-lost.errors.mjs +8 -0
- package/dist/contract/computer/computer-not-found.errors.d.mts +9 -0
- package/dist/contract/computer/computer-not-found.errors.mjs +5 -0
- package/dist/contract/computer/computer.schema.d.mts +122 -0
- package/dist/contract/computer/computer.schema.mjs +117 -0
- package/dist/contract/computer/computers-unavailable.errors.d.mts +9 -0
- package/dist/contract/computer/computers-unavailable.errors.mjs +5 -0
- package/dist/contract/computer/files/computer-files.schema.d.mts +28 -0
- package/dist/contract/computer/files/computer-files.schema.mjs +24 -0
- package/dist/contract/computer/rpc/computer-rpc.contract.d.mts +108 -0
- package/dist/contract/computer/rpc/computer-rpc.contract.mjs +117 -0
- package/dist/contract/computer/step/computer-step.contract.d.mts +21 -0
- package/dist/contract/computer/step/computer-step.contract.mjs +89 -0
- package/dist/contract/computer/step/computer-step.schema.d.mts +69 -0
- package/dist/contract/computer/step/computer-step.schema.mjs +71 -0
- package/dist/contract/computer/step/step-failure.schema.d.mts +13 -0
- package/dist/contract/computer/step/step-failure.schema.mjs +24 -0
- package/dist/contract/computer/step/step-not-found.errors.d.mts +9 -0
- package/dist/contract/computer/step/step-not-found.errors.mjs +5 -0
- package/dist/contract/description/published-contract.pure.d.mts +51 -0
- package/dist/contract/description/published-contract.pure.mjs +75 -0
- package/dist/contract/file/access/file-access-denied.errors.d.mts +11 -0
- package/dist/contract/file/access/file-access-denied.errors.mjs +9 -0
- package/dist/contract/file/access/file-access.contract.d.mts +35 -0
- package/dist/contract/file/access/file-access.contract.mjs +32 -0
- package/dist/contract/file/actor-files.contract.d.mts +50 -0
- package/dist/contract/file/actor-files.contract.mjs +1 -0
- package/dist/contract/file/blob-transfer.errors.d.mts +9 -0
- package/dist/contract/file/blob-transfer.errors.mjs +7 -0
- package/dist/contract/file/file-client-failure.contract.d.mts +24 -0
- package/dist/contract/file/file-client-failure.contract.mjs +1 -0
- package/dist/contract/file/file-client.adapter.d.mts +17 -0
- package/dist/contract/file/file-client.adapter.mjs +21 -0
- package/dist/contract/file/file-client.contract.d.mts +14 -0
- package/dist/contract/file/file-client.contract.mjs +1 -0
- package/dist/contract/file/file-listing.pure.d.mts +6 -0
- package/dist/contract/file/file-listing.pure.mjs +18 -0
- package/dist/contract/file/file-not-found.errors.d.mts +8 -0
- package/dist/contract/file/file-not-found.errors.mjs +4 -0
- package/dist/contract/file/file-path.pure.d.mts +4 -0
- package/dist/contract/file/file-path.pure.mjs +38 -0
- package/dist/contract/file/files-unavailable.errors.d.mts +8 -0
- package/dist/contract/file/files-unavailable.errors.mjs +4 -0
- package/dist/contract/file/invalid-file-request.errors.d.mts +9 -0
- package/dist/contract/file/invalid-file-request.errors.mjs +7 -0
- package/dist/contract/file/rpc/file-rpc.contract.d.mts +88 -0
- package/dist/contract/file/rpc/file-rpc.contract.mjs +117 -0
- package/dist/contract/file/rpc/file-too-large.errors.d.mts +13 -0
- package/dist/contract/file/rpc/file-too-large.errors.mjs +11 -0
- package/dist/contract/file/rpc/rpc-file-clients.layer.d.mts +10 -0
- package/dist/contract/file/rpc/rpc-file-clients.layer.mjs +95 -0
- package/dist/contract/fork/fork-rpc.contract.d.mts +40 -0
- package/dist/contract/fork/fork-rpc.contract.mjs +26 -0
- package/dist/contract/history/actor-journal.service.d.mts +58 -0
- package/dist/contract/history/actor-journal.service.mjs +67 -0
- package/dist/contract/history/history-entry.pure.d.mts +79 -0
- package/dist/contract/history/history-entry.pure.mjs +95 -0
- package/dist/contract/hosted/handler-failed.errors.d.mts +16 -0
- package/dist/contract/hosted/handler-failed.errors.mjs +14 -0
- package/dist/contract/hosted/handler-failure.pure.d.mts +21 -0
- package/dist/contract/hosted/handler-failure.pure.mjs +86 -0
- package/dist/contract/hosted/hosted-actor.service.d.mts +23 -0
- package/dist/contract/hosted/hosted-actor.service.mjs +64 -0
- package/dist/contract/hosted/hosted-command.service.d.mts +20 -0
- package/dist/contract/hosted/hosted-command.service.mjs +88 -0
- package/dist/contract/hosted/hosted-create.service.d.mts +17 -0
- package/dist/contract/hosted/hosted-create.service.mjs +67 -0
- package/dist/contract/hosted/hosted-error.contract.d.mts +11 -0
- package/dist/contract/hosted/hosted-error.contract.mjs +1 -0
- package/dist/contract/hosted/hosted-failure.schema.d.mts +18 -0
- package/dist/contract/hosted/hosted-failure.schema.mjs +31 -0
- package/dist/contract/hosted/hosted-outcome.contract.d.mts +18 -0
- package/dist/contract/hosted/hosted-outcome.contract.mjs +1 -0
- package/dist/contract/hosted/hosted-query.service.d.mts +16 -0
- package/dist/contract/hosted/hosted-query.service.mjs +42 -0
- package/dist/contract/hosted/hosted-request.pure.d.mts +61 -0
- package/dist/contract/hosted/hosted-request.pure.mjs +91 -0
- package/dist/contract/job/job-id.pure.d.mts +11 -0
- package/dist/contract/job/job-id.pure.mjs +20 -0
- package/dist/contract/job/job-patches.contract.d.mts +32 -0
- package/dist/contract/job/job-patches.contract.mjs +45 -0
- package/dist/contract/job/job-signal.schema.d.mts +13 -0
- package/dist/contract/job/job-signal.schema.mjs +16 -0
- package/dist/contract/job/reserved-payload-field.errors.d.mts +10 -0
- package/dist/contract/job/reserved-payload-field.errors.mjs +8 -0
- package/dist/contract/job/started-job.schema.d.mts +7 -0
- package/dist/contract/job/started-job.schema.mjs +8 -0
- package/dist/contract/json-codec.pure.d.mts +7 -0
- package/dist/contract/json-codec.pure.mjs +14 -0
- package/dist/contract/room.contract.d.mts +75 -0
- package/dist/contract/room.contract.mjs +36 -0
- package/dist/contract/secret/actor-secrets.adapter.d.mts +33 -0
- package/dist/contract/secret/actor-secrets.adapter.mjs +38 -0
- package/dist/contract/secret/invalid-secret-name.errors.d.mts +10 -0
- package/dist/contract/secret/invalid-secret-name.errors.mjs +8 -0
- package/dist/contract/secret/secret-unavailable.errors.d.mts +11 -0
- package/dist/contract/secret/secret-unavailable.errors.mjs +10 -0
- package/dist/contract/secret/secret.schema.d.mts +25 -0
- package/dist/contract/secret/secret.schema.mjs +34 -0
- package/dist/contract/spend/billing-unavailable.errors.d.mts +12 -0
- package/dist/contract/spend/billing-unavailable.errors.mjs +8 -0
- package/dist/contract/spend/spend-cap-reached.errors.d.mts +17 -0
- package/dist/contract/spend/spend-cap-reached.errors.mjs +15 -0
- package/dist/contract/state/actor-state.pure.d.mts +38 -0
- package/dist/contract/state/actor-state.pure.mjs +153 -0
- package/dist/contract/state/actor-state.service.d.mts +45 -0
- package/dist/contract/state/actor-state.service.mjs +18 -0
- package/dist/contract/state/state-migration.pure.d.mts +11 -0
- package/dist/contract/state/state-migration.pure.mjs +23 -0
- package/dist/contract/state/state-read.pure.d.mts +12 -0
- package/dist/contract/state/state-read.pure.mjs +22 -0
- package/dist/contract/state/state-unreadable.errors.d.mts +9 -0
- package/dist/contract/state/state-unreadable.errors.mjs +7 -0
- package/dist/host/actor/actor-database.service.d.mts +46 -0
- package/dist/host/actor/actor-database.service.mjs +112 -0
- package/dist/host/actor/actor-exclusive.pure.d.mts +7 -0
- package/dist/host/actor/actor-exclusive.pure.mjs +16 -0
- package/dist/host/actor/actor-records.sql.d.mts +29 -0
- package/dist/host/actor/actor-records.sql.mjs +26 -0
- package/dist/host/actor/reserved-name.errors.d.mts +10 -0
- package/dist/host/actor/reserved-name.errors.mjs +8 -0
- package/dist/host/actor/reserved-names.pure.d.mts +15 -0
- package/dist/host/actor/reserved-names.pure.mjs +20 -0
- package/dist/host/actor/room.actor.d.mts +4 -0
- package/dist/host/actor/room.actor.mjs +36 -0
- package/dist/host/blob/blob-frames.pure.d.mts +7 -0
- package/dist/host/blob/blob-frames.pure.mjs +28 -0
- package/dist/host/blob/blob-grant.schema.d.mts +14 -0
- package/dist/host/blob/blob-grant.schema.mjs +15 -0
- package/dist/host/blob/blob-grants.service.d.mts +28 -0
- package/dist/host/blob/blob-grants.service.mjs +129 -0
- package/dist/host/blob/blob-keyring.service.d.mts +18 -0
- package/dist/host/blob/blob-keyring.service.mjs +4 -0
- package/dist/host/blob/blob-range.pure.d.mts +13 -0
- package/dist/host/blob/blob-range.pure.mjs +23 -0
- package/dist/host/blob/blob-sealing.contract.d.mts +37 -0
- package/dist/host/blob/blob-sealing.contract.mjs +1 -0
- package/dist/host/blob/blob-sealing.service.d.mts +11 -0
- package/dist/host/blob/blob-sealing.service.mjs +16 -0
- package/dist/host/blob/export/blob-archive.sql.d.mts +21 -0
- package/dist/host/blob/export/blob-archive.sql.mjs +75 -0
- package/dist/host/blob/export/blob-export-holds.sql.d.mts +49 -0
- package/dist/host/blob/export/blob-export-holds.sql.mjs +25 -0
- package/dist/host/blob/plain-blob-sealing.pure.d.mts +5 -0
- package/dist/host/blob/plain-blob-sealing.pure.mjs +55 -0
- package/dist/host/blob/reference/blob-catalog.sql.d.mts +40 -0
- package/dist/host/blob/reference/blob-catalog.sql.mjs +145 -0
- package/dist/host/blob/reference/blob-coordinator.pure.d.mts +10 -0
- package/dist/host/blob/reference/blob-coordinator.pure.mjs +153 -0
- package/dist/host/blob/reference/blob-file-page.sql.d.mts +13 -0
- package/dist/host/blob/reference/blob-file-page.sql.mjs +21 -0
- package/dist/host/blob/reference/blob-forks.sql.d.mts +21 -0
- package/dist/host/blob/reference/blob-forks.sql.mjs +40 -0
- package/dist/host/blob/reference/blob-lineage.sql.d.mts +14 -0
- package/dist/host/blob/reference/blob-lineage.sql.mjs +24 -0
- package/dist/host/blob/reference/blob-reads.pure.d.mts +15 -0
- package/dist/host/blob/reference/blob-reads.pure.mjs +97 -0
- package/dist/host/blob/reference/blob-receipts.sql.d.mts +71 -0
- package/dist/host/blob/reference/blob-receipts.sql.mjs +176 -0
- package/dist/host/blob/reference/blob-transfer-adopt.pure.d.mts +21 -0
- package/dist/host/blob/reference/blob-transfer-adopt.pure.mjs +68 -0
- package/dist/host/blob/reference/blob-transfer-fork.pure.d.mts +15 -0
- package/dist/host/blob/reference/blob-transfer-fork.pure.mjs +125 -0
- package/dist/host/blob/reference/blob-transfer-upkeep.pure.d.mts +18 -0
- package/dist/host/blob/reference/blob-transfer-upkeep.pure.mjs +54 -0
- package/dist/host/blob/reference/blob-transfer.pure.d.mts +85 -0
- package/dist/host/blob/reference/blob-transfer.pure.mjs +1 -0
- package/dist/host/blob/sealed-blob-sealing.pure.d.mts +10 -0
- package/dist/host/blob/sealed-blob-sealing.pure.mjs +130 -0
- package/dist/host/blob/stream/blob-directory.pure.d.mts +18 -0
- package/dist/host/blob/stream/blob-directory.pure.mjs +84 -0
- package/dist/host/blob/stream/blob-length.pure.d.mts +9 -0
- package/dist/host/blob/stream/blob-length.pure.mjs +19 -0
- package/dist/host/blob/stream/blob-writing.pure.d.mts +8 -0
- package/dist/host/blob/stream/blob-writing.pure.mjs +15 -0
- package/dist/host/command/batch/command-batch.sql.d.mts +61 -0
- package/dist/host/command/batch/command-batch.sql.mjs +100 -0
- package/dist/host/command/command-context.adapter.d.mts +47 -0
- package/dist/host/command/command-context.adapter.mjs +90 -0
- package/dist/host/command/command-id-age.pure.d.mts +13 -0
- package/dist/host/command/command-id-age.pure.mjs +31 -0
- package/dist/host/command/command-id-reuse.pure.d.mts +28 -0
- package/dist/host/command/command-id-reuse.pure.mjs +38 -0
- package/dist/host/command/command-id-reused.errors.d.mts +13 -0
- package/dist/host/command/command-id-reused.errors.mjs +11 -0
- package/dist/host/command/command-journal.sql.d.mts +84 -0
- package/dist/host/command/command-journal.sql.mjs +74 -0
- package/dist/host/command/command-rejected.errors.d.mts +8 -0
- package/dist/host/command/command-rejected.errors.mjs +4 -0
- package/dist/host/command/command-replay.service.d.mts +62 -0
- package/dist/host/command/command-replay.service.mjs +140 -0
- package/dist/host/command/command-reply.pure.d.mts +8 -0
- package/dist/host/command/command-reply.pure.mjs +12 -0
- package/dist/host/command/command-runner.service.d.mts +68 -0
- package/dist/host/command/command-runner.service.mjs +215 -0
- package/dist/host/command/files/command-file-inputs.sql.d.mts +51 -0
- package/dist/host/command/files/command-file-inputs.sql.mjs +59 -0
- package/dist/host/command/history-pruned.errors.d.mts +10 -0
- package/dist/host/command/history-pruned.errors.mjs +8 -0
- package/dist/host/command/replay/replay-cursor-stalled.errors.d.mts +9 -0
- package/dist/host/command/replay/replay-cursor-stalled.errors.mjs +7 -0
- package/dist/host/command/replay/replay-cursor.pure.d.mts +7 -0
- package/dist/host/command/replay/replay-cursor.pure.mjs +12 -0
- package/dist/host/computer/computer-steps.sql.d.mts +14 -0
- package/dist/host/computer/computer-steps.sql.mjs +76 -0
- package/dist/host/computer/job-computers.service.d.mts +20 -0
- package/dist/host/computer/job-computers.service.mjs +59 -0
- package/dist/host/computer/local-computer-files.layer.d.mts +11 -0
- package/dist/host/computer/local-computer-files.layer.mjs +69 -0
- package/dist/host/computer/local-computer-log.layer.d.mts +23 -0
- package/dist/host/computer/local-computer-log.layer.mjs +64 -0
- package/dist/host/computer/local-computer-records.layer.d.mts +190 -0
- package/dist/host/computer/local-computer-records.layer.mjs +99 -0
- package/dist/host/computer/local-computer.schema.d.mts +69 -0
- package/dist/host/computer/local-computer.schema.mjs +29 -0
- package/dist/host/computer/local-computers.adapter.d.mts +18 -0
- package/dist/host/computer/local-computers.adapter.mjs +248 -0
- package/dist/host/computer/local-step.layer.d.mts +30 -0
- package/dist/host/computer/local-step.layer.mjs +119 -0
- package/dist/host/file/actor-file-storage.sql.d.mts +15 -0
- package/dist/host/file/actor-file-storage.sql.mjs +82 -0
- package/dist/host/file/actor-files.sql.d.mts +9 -0
- package/dist/host/file/actor-files.sql.mjs +3 -0
- package/dist/host/file/blob-home-lock.pure.d.mts +8 -0
- package/dist/host/file/blob-home-lock.pure.mjs +10 -0
- package/dist/host/file/blob-home.sql.d.mts +19 -0
- package/dist/host/file/blob-home.sql.mjs +30 -0
- package/dist/host/file/local-blob-home.service.d.mts +16 -0
- package/dist/host/file/local-blob-home.service.mjs +43 -0
- package/dist/host/file/local-blob-owner.sql.d.mts +30 -0
- package/dist/host/file/local-blob-owner.sql.mjs +68 -0
- package/dist/host/file/local-file-upkeep.pure.d.mts +12 -0
- package/dist/host/file/local-file-upkeep.pure.mjs +41 -0
- package/dist/host/file/replay-file-storage.sql.d.mts +7 -0
- package/dist/host/file/replay-file-storage.sql.mjs +26 -0
- package/dist/host/fork/actor-fork.sql.d.mts +52 -0
- package/dist/host/fork/actor-fork.sql.mjs +42 -0
- package/dist/host/fork/fork-computers.adapter.d.mts +43 -0
- package/dist/host/fork/fork-computers.adapter.mjs +193 -0
- package/dist/host/hash/blob-hashing.service.d.mts +10 -0
- package/dist/host/hash/blob-hashing.service.mjs +4 -0
- package/dist/host/job/job-durables.sql.d.mts +44 -0
- package/dist/host/job/job-durables.sql.mjs +136 -0
- package/dist/host/job/job-engine.adapter.d.mts +33 -0
- package/dist/host/job/job-engine.adapter.mjs +258 -0
- package/dist/host/job/job-journal.sql.d.mts +85 -0
- package/dist/host/job/job-journal.sql.mjs +109 -0
- package/dist/host/job/job-results.service.d.mts +37 -0
- package/dist/host/job/job-results.service.mjs +63 -0
- package/dist/host/job/job-runs.pure.d.mts +103 -0
- package/dist/host/job/job-runs.pure.mjs +193 -0
- package/dist/host/job/undelivered-result.pure.d.mts +49 -0
- package/dist/host/job/undelivered-result.pure.mjs +147 -0
- package/dist/host/layout/actor-layout.sql.d.mts +8 -0
- package/dist/host/layout/actor-layout.sql.mjs +33 -0
- package/dist/host/layout/layout-version.errors.d.mts +10 -0
- package/dist/host/layout/layout-version.errors.mjs +8 -0
- package/dist/host/layout/layout-version.pure.d.mts +10 -0
- package/dist/host/layout/layout-version.pure.mjs +14 -0
- package/dist/host/migration/actor-migrations.service.d.mts +46 -0
- package/dist/host/migration/actor-migrations.service.mjs +143 -0
- package/dist/host/migration/migration-edited.errors.d.mts +9 -0
- package/dist/host/migration/migration-edited.errors.mjs +7 -0
- package/dist/host/migration/migration-failed.errors.d.mts +12 -0
- package/dist/host/migration/migration-failed.errors.mjs +10 -0
- package/dist/host/migration/migration-failure.pure.d.mts +9 -0
- package/dist/host/migration/migration-failure.pure.mjs +19 -0
- package/dist/host/migration/migration-hasher.adapter.d.mts +15 -0
- package/dist/host/migration/migration-hasher.adapter.mjs +40 -0
- package/dist/host/migration/migration-missing.errors.d.mts +9 -0
- package/dist/host/migration/migration-missing.errors.mjs +7 -0
- package/dist/host/migration/migration-plan.pure.d.mts +20 -0
- package/dist/host/migration/migration-plan.pure.mjs +32 -0
- package/dist/host/outbox/actor-outbox.sql.d.mts +33 -0
- package/dist/host/outbox/actor-outbox.sql.mjs +28 -0
- package/dist/host/outbox/outbox-acknowledgements.sql.d.mts +12 -0
- package/dist/host/outbox/outbox-acknowledgements.sql.mjs +47 -0
- package/dist/host/outbox/outbox-runner.service.d.mts +37 -0
- package/dist/host/outbox/outbox-runner.service.mjs +155 -0
- package/dist/host/query/query-policy.pure.d.mts +15 -0
- package/dist/host/query/query-policy.pure.mjs +12 -0
- package/dist/host/query/query-runner.service.d.mts +42 -0
- package/dist/host/query/query-runner.service.mjs +72 -0
- package/dist/host/sqlite/actor-connections.pure.d.mts +26 -0
- package/dist/host/sqlite/actor-connections.pure.mjs +4 -0
- package/dist/host/sqlite/sqlite-connection.adapter.d.mts +22 -0
- package/dist/host/sqlite/sqlite-connection.adapter.mjs +151 -0
- package/dist/host/sqlite/sqlite-driver.service.d.mts +33 -0
- package/dist/host/sqlite/sqlite-driver.service.mjs +88 -0
- package/dist/host/sqlite/sqlite-parameters.pure.d.mts +5 -0
- package/dist/host/sqlite/sqlite-parameters.pure.mjs +21 -0
- package/dist/host/sqlite/sqlite-reason.pure.d.mts +8 -0
- package/dist/host/sqlite/sqlite-reason.pure.mjs +13 -0
- package/dist/host/timer/actor-timers.sql.d.mts +32 -0
- package/dist/host/timer/actor-timers.sql.mjs +8 -0
- package/dist/host/timer/timer-runner.service.d.mts +26 -0
- package/dist/host/timer/timer-runner.service.mjs +68 -0
- package/dist/host/upkeep/actor-due.sql.d.mts +26 -0
- package/dist/host/upkeep/actor-due.sql.mjs +43 -0
- package/dist/host/upkeep/actor-upkeep.service.d.mts +55 -0
- package/dist/host/upkeep/actor-upkeep.service.mjs +218 -0
- package/dist/host/upkeep/execution-authority.pure.d.mts +19 -0
- package/dist/host/upkeep/execution-authority.pure.mjs +10 -0
- package/dist/runtime/akter-local.layer.d.mts +28 -0
- package/dist/runtime/akter-local.layer.mjs +24 -0
- package/dist/runtime/akter.layer.d.mts +91 -0
- package/dist/runtime/akter.layer.mjs +99 -0
- package/dist/runtime/blob-hashing.layer.d.mts +4 -0
- package/dist/runtime/blob-hashing.layer.mjs +15 -0
- package/dist/runtime/hosted-environment.layer.d.mts +34 -0
- package/dist/runtime/hosted-environment.layer.mjs +40 -0
- package/dist/runtime/http-server.layer.d.mts +9 -0
- package/dist/runtime/http-server.layer.mjs +15 -0
- package/dist/runtime/local-actor-engine.layer.d.mts +10 -0
- package/dist/runtime/local-actor-engine.layer.mjs +14 -0
- package/dist/runtime/local-engine.layer.d.mts +15 -0
- package/dist/runtime/local-engine.layer.mjs +14 -0
- package/dist/runtime/local-environments.layer.d.mts +24 -0
- package/dist/runtime/local-environments.layer.mjs +159 -0
- package/dist/runtime/local-file-clients.layer.d.mts +13 -0
- package/dist/runtime/local-file-clients.layer.mjs +78 -0
- package/dist/runtime/local-job-runtime.layer.d.mts +19 -0
- package/dist/runtime/local-job-runtime.layer.mjs +21 -0
- package/dist/serve/archive/archived-actors.layer.d.mts +17 -0
- package/dist/serve/archive/archived-actors.layer.mjs +84 -0
- package/dist/serve/archive/archived-store.layer.d.mts +12 -0
- package/dist/serve/archive/archived-store.layer.mjs +40 -0
- package/dist/serve/engine/actor-engine.layer.d.mts +8 -0
- package/dist/serve/engine/actor-engine.layer.mjs +30 -0
- package/dist/serve/engine/actor-fork.service.d.mts +63 -0
- package/dist/serve/engine/actor-fork.service.mjs +277 -0
- package/dist/serve/engine/actor-holding.pure.d.mts +7 -0
- package/dist/serve/engine/actor-holding.pure.mjs +9 -0
- package/dist/serve/engine/actor-host.service.d.mts +66 -0
- package/dist/serve/engine/actor-host.service.mjs +209 -0
- package/dist/serve/engine/actor-location.service.d.mts +38 -0
- package/dist/serve/engine/actor-location.service.mjs +109 -0
- package/dist/serve/engine/actor-residents.pure.d.mts +92 -0
- package/dist/serve/engine/actor-residents.pure.mjs +201 -0
- package/dist/serve/engine/actor-shard.pure.d.mts +4 -0
- package/dist/serve/engine/actor-shard.pure.mjs +8 -0
- package/dist/serve/engine/actor-state.pure.d.mts +17 -0
- package/dist/serve/engine/actor-state.pure.mjs +20 -0
- package/dist/serve/engine/actors-not-hosted.errors.d.mts +9 -0
- package/dist/serve/engine/actors-not-hosted.errors.mjs +7 -0
- package/dist/serve/engine/job-runtime.layer.d.mts +6 -0
- package/dist/serve/engine/job-runtime.layer.mjs +5 -0
- package/dist/serve/environment/environment-already-exists.errors.d.mts +10 -0
- package/dist/serve/environment/environment-already-exists.errors.mjs +9 -0
- package/dist/serve/environment/environment-in-use.errors.d.mts +10 -0
- package/dist/serve/environment/environment-in-use.errors.mjs +14 -0
- package/dist/serve/environment/environment-not-found.errors.d.mts +10 -0
- package/dist/serve/environment/environment-not-found.errors.mjs +9 -0
- package/dist/serve/environment/environment-records.sql.d.mts +92 -0
- package/dist/serve/environment/environment-records.sql.mjs +59 -0
- package/dist/serve/environment/environment-store.sql.d.mts +38 -0
- package/dist/serve/environment/environment-store.sql.mjs +78 -0
- package/dist/serve/environment/local-environment.schema.d.mts +38 -0
- package/dist/serve/environment/local-environment.schema.mjs +43 -0
- package/dist/serve/environment/local-environments.service.d.mts +44 -0
- package/dist/serve/environment/local-environments.service.mjs +196 -0
- package/dist/serve/environment/promotion-notice.pure.d.mts +22 -0
- package/dist/serve/environment/promotion-notice.pure.mjs +30 -0
- package/dist/serve/environment/snapshot-operations.sql.d.mts +32 -0
- package/dist/serve/environment/snapshot-operations.sql.mjs +131 -0
- package/dist/serve/environment/store-snapshot.sql.d.mts +32 -0
- package/dist/serve/environment/store-snapshot.sql.mjs +74 -0
- package/dist/serve/erasure/local-actor-erasure.service.d.mts +26 -0
- package/dist/serve/erasure/local-actor-erasure.service.mjs +102 -0
- package/dist/serve/history/actor-host-runners.service.d.mts +23 -0
- package/dist/serve/history/actor-host-runners.service.mjs +35 -0
- package/dist/serve/hosted/hosted-app-build.errors.d.mts +13 -0
- package/dist/serve/hosted/hosted-app-build.errors.mjs +9 -0
- package/dist/serve/hosted/hosted-app-checks.layer.d.mts +15 -0
- package/dist/serve/hosted/hosted-app-checks.layer.mjs +32 -0
- package/dist/serve/hosted/hosted-file-forward.layer.d.mts +22 -0
- package/dist/serve/hosted/hosted-file-forward.layer.mjs +42 -0
- package/dist/serve/hosted/hosted-file-rpcs.layer.d.mts +25 -0
- package/dist/serve/hosted/hosted-file-rpcs.layer.mjs +82 -0
- package/dist/serve/hosted/hosted-file-server.layer.d.mts +18 -0
- package/dist/serve/hosted/hosted-file-server.layer.mjs +33 -0
- package/dist/serve/hosted/hosted-files.layer.d.mts +32 -0
- package/dist/serve/hosted/hosted-files.layer.mjs +55 -0
- package/dist/serve/hosted/hosted-runtime.layer.d.mts +42 -0
- package/dist/serve/hosted/hosted-runtime.layer.mjs +48 -0
- package/dist/serve/hosted/hosted-runtime.service.d.mts +77 -0
- package/dist/serve/hosted/hosted-runtime.service.mjs +74 -0
- package/dist/serve/hosted/hosted-secrets.layer.d.mts +10 -0
- package/dist/serve/hosted/hosted-secrets.layer.mjs +28 -0
- package/dist/serve/http/loopback-host.pure.d.mts +11 -0
- package/dist/serve/http/loopback-host.pure.mjs +29 -0
- package/dist/serve/inspect/actor-inspection.schema.d.mts +119 -0
- package/dist/serve/inspect/actor-inspection.schema.mjs +75 -0
- package/dist/serve/inspect/actor-inspection.sql.d.mts +12 -0
- package/dist/serve/inspect/actor-inspection.sql.mjs +43 -0
- package/dist/serve/inspect/inspect.service.d.mts +24 -0
- package/dist/serve/inspect/inspect.service.mjs +92 -0
- package/dist/serve/inspect/inspector-page.pure.d.mts +2 -0
- package/dist/serve/inspect/inspector-page.pure.mjs +155 -0
- package/dist/serve/inspect/inspector-wal.pure.d.mts +3 -0
- package/dist/serve/inspect/inspector-wal.pure.mjs +19 -0
- package/dist/serve/inspect/inspector.handlers.d.mts +5 -0
- package/dist/serve/inspect/inspector.handlers.mjs +50 -0
- package/dist/serve/inspect/inspector.layer.d.mts +9 -0
- package/dist/serve/inspect/inspector.layer.mjs +14 -0
- package/dist/serve/live/live-reads.service.d.mts +44 -0
- package/dist/serve/live/live-reads.service.mjs +152 -0
- package/dist/serve/live/live-tables.sql.d.mts +35 -0
- package/dist/serve/live/live-tables.sql.mjs +66 -0
- package/dist/serve/live/state-reads.pure.d.mts +11 -0
- package/dist/serve/live/state-reads.pure.mjs +7 -0
- package/dist/serve/rpc/actor-rpc.handlers.d.mts +24 -0
- package/dist/serve/rpc/actor-rpc.handlers.mjs +142 -0
- package/dist/serve/rpc/akter-server.layer.d.mts +18 -0
- package/dist/serve/rpc/akter-server.layer.mjs +61 -0
- package/dist/serve/rpc/computer/computer-copy.layer.d.mts +22 -0
- package/dist/serve/rpc/computer/computer-copy.layer.mjs +70 -0
- package/dist/serve/rpc/computer/computer-rpc-access.pure.d.mts +29 -0
- package/dist/serve/rpc/computer/computer-rpc-access.pure.mjs +46 -0
- package/dist/serve/rpc/computer/computer-rpc.layer.d.mts +39 -0
- package/dist/serve/rpc/computer/computer-rpc.layer.mjs +84 -0
- package/dist/serve/rpc/computer/step-rpc.handlers.d.mts +23 -0
- package/dist/serve/rpc/computer/step-rpc.handlers.mjs +43 -0
- package/dist/serve/rpc/development-authentication.handlers.d.mts +7 -0
- package/dist/serve/rpc/development-authentication.handlers.mjs +19 -0
- package/dist/serve/rpc/development-guard.pure.d.mts +10 -0
- package/dist/serve/rpc/development-guard.pure.mjs +16 -0
- package/dist/serve/rpc/file/file-rpc-access.pure.d.mts +55 -0
- package/dist/serve/rpc/file/file-rpc-access.pure.mjs +67 -0
- package/dist/serve/rpc/file/file-rpc.layer.d.mts +53 -0
- package/dist/serve/rpc/file/file-rpc.layer.mjs +143 -0
- package/dist/serve/rpc/file/upload-sessions.pure.d.mts +45 -0
- package/dist/serve/rpc/file/upload-sessions.pure.mjs +187 -0
- package/dist/serve/rpc/in-process-client.layer.d.mts +13 -0
- package/dist/serve/rpc/in-process-client.layer.mjs +34 -0
- package/dist/serve/rpc/listener-not-loopback.errors.d.mts +9 -0
- package/dist/serve/rpc/listener-not-loopback.errors.mjs +7 -0
- package/dist/serve/rpc/ndjson-only.pure.d.mts +5 -0
- package/dist/serve/rpc/ndjson-only.pure.mjs +14 -0
- package/dist/serve/rpc/served-rpc.layer.d.mts +6 -0
- package/dist/serve/rpc/served-rpc.layer.mjs +19 -0
- package/dist/serve/store/actor-not-migrated.errors.d.mts +10 -0
- package/dist/serve/store/actor-not-migrated.errors.mjs +8 -0
- package/dist/serve/store/store-migrations.layer.d.mts +5 -0
- package/dist/serve/store/store-migrations.layer.mjs +18 -0
- package/dist/serve/store/store-migrations.service.d.mts +26 -0
- package/dist/serve/store/store-migrations.service.mjs +47 -0
- package/dist/serve/store/store-unreadable.errors.d.mts +9 -0
- package/dist/serve/store/store-unreadable.errors.mjs +7 -0
- package/dist/serve/verify/verify.layer.d.mts +16 -0
- package/dist/serve/verify/verify.layer.mjs +36 -0
- package/dist/testing/story-driver.service.d.mts +29 -0
- package/dist/testing/story-driver.service.mjs +126 -0
- package/dist/testing/story.layer.d.mts +21 -0
- package/dist/testing/story.layer.mjs +42 -0
- package/package.json +106 -3
- package/src/contract/actor/actor-already-exists.errors.ts +8 -0
- package/src/contract/actor/actor-definition.pure.ts +157 -0
- package/src/contract/actor/actor-erased.errors.ts +8 -0
- package/src/contract/actor/actor-names.pure.ts +64 -0
- package/src/contract/actor/actor-not-created.errors.ts +8 -0
- package/src/contract/actor/actor-not-registered.errors.ts +8 -0
- package/src/contract/actor/actor-registry.service.ts +35 -0
- package/src/contract/actor/actor.contract.ts +409 -0
- package/src/contract/actor/host-interface.pure.ts +60 -0
- package/src/contract/actor/reserved-member.errors.ts +9 -0
- package/src/contract/akter.service.ts +233 -0
- package/src/contract/caller/authentication.api.ts +9 -0
- package/src/contract/caller/caller-admission.pure.ts +90 -0
- package/src/contract/caller/caller-not-allowed.errors.ts +26 -0
- package/src/contract/caller/caller.schema.ts +7 -0
- package/src/contract/caller/current-caller.service.ts +7 -0
- package/src/contract/caller/principal.schema.ts +13 -0
- package/src/contract/caller/unauthenticated.errors.ts +8 -0
- package/src/contract/client/actor-client.adapter.ts +217 -0
- package/src/contract/client/actor-client.contract.ts +53 -0
- package/src/contract/client/actor-rpc.contract.ts +91 -0
- package/src/contract/client/actor-unavailable.errors.ts +9 -0
- package/src/contract/client/client-failure.contract.ts +53 -0
- package/src/contract/client/invalid-request.errors.ts +9 -0
- package/src/contract/client/storage-limit.errors.ts +16 -0
- package/src/contract/command/command-id-expired.errors.ts +11 -0
- package/src/contract/command/command-id.schema.ts +5 -0
- package/src/contract/command/command.contract.ts +334 -0
- package/src/contract/command/outbox-id.pure.ts +25 -0
- package/src/contract/command/outbox.schema.ts +11 -0
- package/src/contract/command/timer.schema.ts +21 -0
- package/src/contract/computer/checkpoint-expired.errors.ts +12 -0
- package/src/contract/computer/computer-client-failure.contract.ts +27 -0
- package/src/contract/computer/computer-client.adapter.ts +110 -0
- package/src/contract/computer/computer-client.contract.ts +75 -0
- package/src/contract/computer/computer-held.errors.ts +10 -0
- package/src/contract/computer/computer-limit.errors.ts +11 -0
- package/src/contract/computer/computer-lost.errors.ts +10 -0
- package/src/contract/computer/computer-not-found.errors.ts +9 -0
- package/src/contract/computer/computer.schema.ts +159 -0
- package/src/contract/computer/computers-unavailable.errors.ts +9 -0
- package/src/contract/computer/files/computer-files.schema.ts +31 -0
- package/src/contract/computer/rpc/computer-rpc.contract.ts +140 -0
- package/src/contract/computer/step/computer-step.contract.ts +126 -0
- package/src/contract/computer/step/computer-step.schema.ts +80 -0
- package/src/contract/computer/step/step-failure.schema.ts +26 -0
- package/src/contract/computer/step/step-not-found.errors.ts +7 -0
- package/src/contract/description/published-contract.pure.ts +187 -0
- package/src/contract/file/access/file-access-denied.errors.ts +11 -0
- package/src/contract/file/access/file-access.contract.ts +56 -0
- package/src/contract/file/actor-files.contract.ts +78 -0
- package/src/contract/file/blob-transfer.errors.ts +6 -0
- package/src/contract/file/file-client-failure.contract.ts +43 -0
- package/src/contract/file/file-client.adapter.ts +45 -0
- package/src/contract/file/file-client.contract.ts +24 -0
- package/src/contract/file/file-listing.pure.ts +30 -0
- package/src/contract/file/file-not-found.errors.ts +6 -0
- package/src/contract/file/file-path.pure.ts +37 -0
- package/src/contract/file/files-unavailable.errors.ts +8 -0
- package/src/contract/file/invalid-file-request.errors.ts +9 -0
- package/src/contract/file/rpc/file-rpc.contract.ts +148 -0
- package/src/contract/file/rpc/file-too-large.errors.ts +10 -0
- package/src/contract/file/rpc/rpc-file-clients.layer.ts +184 -0
- package/src/contract/fork/fork-rpc.contract.ts +44 -0
- package/src/contract/history/actor-journal.service.ts +195 -0
- package/src/contract/history/history-entry.pure.ts +282 -0
- package/src/contract/hosted/handler-failed.errors.ts +16 -0
- package/src/contract/hosted/handler-failure.pure.ts +161 -0
- package/src/contract/hosted/hosted-actor.service.ts +97 -0
- package/src/contract/hosted/hosted-command.service.ts +114 -0
- package/src/contract/hosted/hosted-create.service.ts +95 -0
- package/src/contract/hosted/hosted-error.contract.ts +22 -0
- package/src/contract/hosted/hosted-failure.schema.ts +32 -0
- package/src/contract/hosted/hosted-outcome.contract.ts +21 -0
- package/src/contract/hosted/hosted-query.service.ts +50 -0
- package/src/contract/hosted/hosted-request.pure.ts +185 -0
- package/src/contract/job/job-id.pure.ts +37 -0
- package/src/contract/job/job-patches.contract.ts +86 -0
- package/src/contract/job/job-signal.schema.ts +23 -0
- package/src/contract/job/reserved-payload-field.errors.ts +10 -0
- package/src/contract/job/started-job.schema.ts +9 -0
- package/src/contract/json-codec.pure.ts +27 -0
- package/src/contract/room.contract.ts +31 -0
- package/src/contract/secret/actor-secrets.adapter.ts +87 -0
- package/src/contract/secret/invalid-secret-name.errors.ts +10 -0
- package/src/contract/secret/secret-unavailable.errors.ts +13 -0
- package/src/contract/secret/secret.schema.ts +43 -0
- package/src/contract/spend/billing-unavailable.errors.ts +12 -0
- package/src/contract/spend/spend-cap-reached.errors.ts +17 -0
- package/src/contract/state/actor-state.pure.ts +192 -0
- package/src/contract/state/actor-state.service.ts +69 -0
- package/src/contract/state/state-migration.pure.ts +57 -0
- package/src/contract/state/state-read.pure.ts +40 -0
- package/src/contract/state/state-unreadable.errors.ts +9 -0
- package/src/host/actor/actor-database.service.ts +145 -0
- package/src/host/actor/actor-exclusive.pure.ts +32 -0
- package/src/host/actor/actor-records.sql.ts +78 -0
- package/src/host/actor/reserved-name.errors.ts +10 -0
- package/src/host/actor/reserved-names.pure.ts +40 -0
- package/src/host/actor/room.actor.ts +57 -0
- package/src/host/blob/blob-frames.pure.ts +52 -0
- package/src/host/blob/blob-grant.schema.ts +22 -0
- package/src/host/blob/blob-grants.service.ts +197 -0
- package/src/host/blob/blob-keyring.service.ts +25 -0
- package/src/host/blob/blob-range.pure.ts +33 -0
- package/src/host/blob/blob-sealing.contract.ts +46 -0
- package/src/host/blob/blob-sealing.service.ts +25 -0
- package/src/host/blob/export/blob-archive.sql.ts +153 -0
- package/src/host/blob/export/blob-export-holds.sql.ts +91 -0
- package/src/host/blob/plain-blob-sealing.pure.ts +70 -0
- package/src/host/blob/reference/blob-catalog.sql.ts +339 -0
- package/src/host/blob/reference/blob-coordinator.pure.ts +217 -0
- package/src/host/blob/reference/blob-file-page.sql.ts +48 -0
- package/src/host/blob/reference/blob-forks.sql.ts +125 -0
- package/src/host/blob/reference/blob-lineage.sql.ts +63 -0
- package/src/host/blob/reference/blob-reads.pure.ts +172 -0
- package/src/host/blob/reference/blob-receipts.sql.ts +375 -0
- package/src/host/blob/reference/blob-transfer-adopt.pure.ts +127 -0
- package/src/host/blob/reference/blob-transfer-fork.pure.ts +174 -0
- package/src/host/blob/reference/blob-transfer-upkeep.pure.ts +132 -0
- package/src/host/blob/reference/blob-transfer.pure.ts +127 -0
- package/src/host/blob/sealed-blob-sealing.pure.ts +163 -0
- package/src/host/blob/stream/blob-directory.pure.ts +177 -0
- package/src/host/blob/stream/blob-length.pure.ts +40 -0
- package/src/host/blob/stream/blob-writing.pure.ts +49 -0
- package/src/host/command/batch/command-batch.sql.ts +207 -0
- package/src/host/command/command-context.adapter.ts +134 -0
- package/src/host/command/command-id-age.pure.ts +54 -0
- package/src/host/command/command-id-reuse.pure.ts +90 -0
- package/src/host/command/command-id-reused.errors.ts +13 -0
- package/src/host/command/command-journal.sql.ts +232 -0
- package/src/host/command/command-rejected.errors.ts +8 -0
- package/src/host/command/command-replay.service.ts +223 -0
- package/src/host/command/command-reply.pure.ts +21 -0
- package/src/host/command/command-runner.service.ts +320 -0
- package/src/host/command/files/command-file-inputs.sql.ts +114 -0
- package/src/host/command/history-pruned.errors.ts +10 -0
- package/src/host/command/replay/replay-cursor-stalled.errors.ts +9 -0
- package/src/host/command/replay/replay-cursor.pure.ts +19 -0
- package/src/host/computer/computer-steps.sql.ts +120 -0
- package/src/host/computer/job-computers.service.ts +84 -0
- package/src/host/computer/local-computer-files.layer.ts +103 -0
- package/src/host/computer/local-computer-log.layer.ts +115 -0
- package/src/host/computer/local-computer-records.layer.ts +205 -0
- package/src/host/computer/local-computer.schema.ts +36 -0
- package/src/host/computer/local-computers.adapter.ts +379 -0
- package/src/host/computer/local-step.layer.ts +174 -0
- package/src/host/file/actor-file-storage.sql.ts +79 -0
- package/src/host/file/actor-files.sql.ts +15 -0
- package/src/host/file/blob-home-lock.pure.ts +23 -0
- package/src/host/file/blob-home.sql.ts +55 -0
- package/src/host/file/local-blob-home.service.ts +71 -0
- package/src/host/file/local-blob-owner.sql.ts +89 -0
- package/src/host/file/local-file-upkeep.pure.ts +77 -0
- package/src/host/file/replay-file-storage.sql.ts +43 -0
- package/src/host/fork/actor-fork.sql.ts +110 -0
- package/src/host/fork/fork-computers.adapter.ts +366 -0
- package/src/host/hash/blob-hashing.service.ts +14 -0
- package/src/host/job/job-durables.sql.ts +214 -0
- package/src/host/job/job-engine.adapter.ts +420 -0
- package/src/host/job/job-journal.sql.ts +257 -0
- package/src/host/job/job-results.service.ts +111 -0
- package/src/host/job/job-runs.pure.ts +445 -0
- package/src/host/job/undelivered-result.pure.ts +265 -0
- package/src/host/layout/actor-layout.sql.ts +45 -0
- package/src/host/layout/layout-version.errors.ts +10 -0
- package/src/host/layout/layout-version.pure.ts +22 -0
- package/src/host/migration/actor-migrations.service.ts +159 -0
- package/src/host/migration/migration-edited.errors.ts +9 -0
- package/src/host/migration/migration-failed.errors.ts +12 -0
- package/src/host/migration/migration-failure.pure.ts +28 -0
- package/src/host/migration/migration-hasher.adapter.ts +70 -0
- package/src/host/migration/migration-missing.errors.ts +9 -0
- package/src/host/migration/migration-plan.pure.ts +66 -0
- package/src/host/outbox/actor-outbox.sql.ts +98 -0
- package/src/host/outbox/outbox-acknowledgements.sql.ts +93 -0
- package/src/host/outbox/outbox-runner.service.ts +253 -0
- package/src/host/query/query-policy.pure.ts +31 -0
- package/src/host/query/query-runner.service.ts +132 -0
- package/src/host/sqlite/actor-connections.pure.ts +44 -0
- package/src/host/sqlite/sqlite-connection.adapter.ts +260 -0
- package/src/host/sqlite/sqlite-driver.service.ts +151 -0
- package/src/host/sqlite/sqlite-parameters.pure.ts +28 -0
- package/src/host/sqlite/sqlite-reason.pure.ts +19 -0
- package/src/host/timer/actor-timers.sql.ts +67 -0
- package/src/host/timer/timer-runner.service.ts +117 -0
- package/src/host/upkeep/actor-due.sql.ts +71 -0
- package/src/host/upkeep/actor-upkeep.service.ts +404 -0
- package/src/host/upkeep/execution-authority.pure.ts +37 -0
- package/src/runtime/akter-local.layer.ts +49 -0
- package/src/runtime/akter.layer.ts +208 -0
- package/src/runtime/blob-hashing.layer.ts +21 -0
- package/src/runtime/hosted-environment.layer.ts +85 -0
- package/src/runtime/http-server.layer.ts +29 -0
- package/src/runtime/local-actor-engine.layer.ts +33 -0
- package/src/runtime/local-engine.layer.ts +37 -0
- package/src/runtime/local-environments.layer.ts +214 -0
- package/src/runtime/local-file-clients.layer.ts +112 -0
- package/src/runtime/local-job-runtime.layer.ts +38 -0
- package/src/serve/archive/archived-actors.layer.ts +97 -0
- package/src/serve/archive/archived-store.layer.ts +46 -0
- package/src/serve/engine/actor-engine.layer.ts +46 -0
- package/src/serve/engine/actor-fork.service.ts +403 -0
- package/src/serve/engine/actor-holding.pure.ts +28 -0
- package/src/serve/engine/actor-host.service.ts +454 -0
- package/src/serve/engine/actor-location.service.ts +219 -0
- package/src/serve/engine/actor-residents.pure.ts +500 -0
- package/src/serve/engine/actor-shard.pure.ts +13 -0
- package/src/serve/engine/actor-state.pure.ts +45 -0
- package/src/serve/engine/actors-not-hosted.errors.ts +9 -0
- package/src/serve/engine/job-runtime.layer.ts +13 -0
- package/src/serve/environment/environment-already-exists.errors.ts +9 -0
- package/src/serve/environment/environment-in-use.errors.ts +17 -0
- package/src/serve/environment/environment-not-found.errors.ts +9 -0
- package/src/serve/environment/environment-records.sql.ts +208 -0
- package/src/serve/environment/environment-store.sql.ts +116 -0
- package/src/serve/environment/local-environment.schema.ts +79 -0
- package/src/serve/environment/local-environments.service.ts +268 -0
- package/src/serve/environment/promotion-notice.pure.ts +63 -0
- package/src/serve/environment/snapshot-operations.sql.ts +210 -0
- package/src/serve/environment/store-snapshot.sql.ts +128 -0
- package/src/serve/erasure/local-actor-erasure.service.ts +170 -0
- package/src/serve/history/actor-host-runners.service.ts +85 -0
- package/src/serve/hosted/hosted-app-build.errors.ts +11 -0
- package/src/serve/hosted/hosted-app-checks.layer.ts +74 -0
- package/src/serve/hosted/hosted-file-forward.layer.ts +63 -0
- package/src/serve/hosted/hosted-file-rpcs.layer.ts +149 -0
- package/src/serve/hosted/hosted-file-server.layer.ts +75 -0
- package/src/serve/hosted/hosted-files.layer.ts +76 -0
- package/src/serve/hosted/hosted-runtime.layer.ts +145 -0
- package/src/serve/hosted/hosted-runtime.service.ts +128 -0
- package/src/serve/hosted/hosted-secrets.layer.ts +38 -0
- package/src/serve/http/loopback-host.pure.ts +67 -0
- package/src/serve/inspect/actor-inspection.schema.ts +94 -0
- package/src/serve/inspect/actor-inspection.sql.ts +112 -0
- package/src/serve/inspect/inspect.service.ts +173 -0
- package/src/serve/inspect/inspector-page.pure.ts +159 -0
- package/src/serve/inspect/inspector-wal.pure.ts +40 -0
- package/src/serve/inspect/inspector.handlers.ts +103 -0
- package/src/serve/inspect/inspector.layer.ts +26 -0
- package/src/serve/live/live-reads.service.ts +285 -0
- package/src/serve/live/live-tables.sql.ts +148 -0
- package/src/serve/live/state-reads.pure.ts +22 -0
- package/src/serve/rpc/actor-rpc.handlers.ts +242 -0
- package/src/serve/rpc/akter-server.layer.ts +119 -0
- package/src/serve/rpc/computer/computer-copy.layer.ts +95 -0
- package/src/serve/rpc/computer/computer-rpc-access.pure.ts +75 -0
- package/src/serve/rpc/computer/computer-rpc.layer.ts +143 -0
- package/src/serve/rpc/computer/step-rpc.handlers.ts +84 -0
- package/src/serve/rpc/development-authentication.handlers.ts +28 -0
- package/src/serve/rpc/development-guard.pure.ts +39 -0
- package/src/serve/rpc/file/file-rpc-access.pure.ts +119 -0
- package/src/serve/rpc/file/file-rpc.layer.ts +209 -0
- package/src/serve/rpc/file/upload-sessions.pure.ts +363 -0
- package/src/serve/rpc/in-process-client.layer.ts +62 -0
- package/src/serve/rpc/listener-not-loopback.errors.ts +9 -0
- package/src/serve/rpc/ndjson-only.pure.ts +33 -0
- package/src/serve/rpc/served-rpc.layer.ts +34 -0
- package/src/serve/store/actor-not-migrated.errors.ts +10 -0
- package/src/serve/store/store-migrations.layer.ts +35 -0
- package/src/serve/store/store-migrations.service.ts +76 -0
- package/src/serve/store/store-unreadable.errors.ts +9 -0
- package/src/serve/verify/verify.layer.ts +77 -0
- package/src/testing/story-driver.service.ts +266 -0
- package/src/testing/story.layer.ts +99 -0
|
@@ -0,0 +1,88 @@
|
|
|
1
|
+
import { ActorErasedError } from "../../actor/actor-erased.errors.mjs";
|
|
2
|
+
import { ActorNotCreatedError } from "../../actor/actor-not-created.errors.mjs";
|
|
3
|
+
import { ActorUnavailableError } from "../../client/actor-unavailable.errors.mjs";
|
|
4
|
+
import { BillingUnavailableError } from "../../spend/billing-unavailable.errors.mjs";
|
|
5
|
+
import { CallerNotAllowedError } from "../../caller/caller-not-allowed.errors.mjs";
|
|
6
|
+
import { CommandIdExpiredError } from "../../command/command-id-expired.errors.mjs";
|
|
7
|
+
import { HandlerFailedError } from "../../hosted/handler-failed.errors.mjs";
|
|
8
|
+
import { InvalidRequestError } from "../../client/invalid-request.errors.mjs";
|
|
9
|
+
import { SpendCapReachedError } from "../../spend/spend-cap-reached.errors.mjs";
|
|
10
|
+
import { StorageLimitError } from "../../client/storage-limit.errors.mjs";
|
|
11
|
+
import { BlobTransferError } from "../blob-transfer.errors.mjs";
|
|
12
|
+
import { FileAccessDeniedError } from "../access/file-access-denied.errors.mjs";
|
|
13
|
+
import { FileNotFoundError } from "../file-not-found.errors.mjs";
|
|
14
|
+
import { FilesUnavailableError } from "../files-unavailable.errors.mjs";
|
|
15
|
+
import { FileTooLargeError } from "./file-too-large.errors.mjs";
|
|
16
|
+
import { InvalidFileRequestError } from "../invalid-file-request.errors.mjs";
|
|
17
|
+
import { Schema } from "effect";
|
|
18
|
+
import { Rpc, RpcSchema } from "effect/rpc";
|
|
19
|
+
/** The largest chunk a download stream sends, and the largest one an upload may append. */
|
|
20
|
+
declare const fileChunkBytes = 262144;
|
|
21
|
+
declare const uploadChunkBytes = 1048576;
|
|
22
|
+
declare const FileRpcFailure: Schema.Union<readonly [Schema.Union<readonly [typeof ActorErasedError, typeof ActorNotCreatedError, typeof ActorUnavailableError, typeof BillingUnavailableError, typeof CallerNotAllowedError, typeof CommandIdExpiredError, typeof HandlerFailedError, typeof InvalidRequestError, typeof SpendCapReachedError, typeof StorageLimitError]>, typeof BlobTransferError, typeof FileAccessDeniedError, typeof FileNotFoundError, typeof FilesUnavailableError, typeof FileTooLargeError, typeof InvalidFileRequestError]>;
|
|
23
|
+
declare const WireFilePage: Schema.Struct<{
|
|
24
|
+
readonly cursor: Schema.OptionFromNullOr<Schema.String>;
|
|
25
|
+
readonly entries: Schema.$Array<Schema.Struct<{
|
|
26
|
+
readonly bytes: Schema.Int;
|
|
27
|
+
readonly path: Schema.String;
|
|
28
|
+
readonly sha256: Schema.String;
|
|
29
|
+
readonly writtenAt: Schema.Int;
|
|
30
|
+
}>>;
|
|
31
|
+
}>;
|
|
32
|
+
declare const WireFileUsagePage: Schema.Struct<{
|
|
33
|
+
readonly cursor: Schema.OptionFromNullOr<Schema.String>;
|
|
34
|
+
readonly entries: Schema.$Array<Schema.Struct<{
|
|
35
|
+
readonly bytes: Schema.Int;
|
|
36
|
+
readonly path: Schema.String;
|
|
37
|
+
readonly sha256: Schema.String;
|
|
38
|
+
readonly writtenAt: Schema.Int;
|
|
39
|
+
}>>;
|
|
40
|
+
readonly bytes: Schema.BigIntFromString;
|
|
41
|
+
}>;
|
|
42
|
+
declare const Listing: {
|
|
43
|
+
cursor: Schema.optionalKey<Schema.String>;
|
|
44
|
+
key: Schema.String;
|
|
45
|
+
limit: Schema.optionalKey<Schema.Int>;
|
|
46
|
+
prefix: Schema.optionalKey<Schema.String>;
|
|
47
|
+
};
|
|
48
|
+
declare const Chunk: Schema.Uint8ArrayFromBase64;
|
|
49
|
+
type FileRpcOperation = "download" | "list" | "upload/append" | "upload/close" | "upload/open" | "usage";
|
|
50
|
+
type FileTag<Operation extends FileRpcOperation = FileRpcOperation> = `${string}/files/${Operation}`;
|
|
51
|
+
declare const fileTag: <Operation extends FileRpcOperation>({ actor, operation }: {
|
|
52
|
+
readonly actor: string;
|
|
53
|
+
readonly operation: Operation;
|
|
54
|
+
}) => FileTag<Operation>;
|
|
55
|
+
type FileRpcFailureSchema = typeof FileRpcFailure;
|
|
56
|
+
type FileRpcFailureType = FileRpcFailureSchema["Type"];
|
|
57
|
+
type FileRpc = Rpc.Rpc<FileTag<"list">, Schema.Struct<typeof Listing>, typeof WireFilePage, FileRpcFailureSchema> | Rpc.Rpc<FileTag<"usage">, Schema.Struct<typeof Listing>, typeof WireFileUsagePage, FileRpcFailureSchema> | Rpc.Rpc<FileTag<"download">, Schema.Struct<{
|
|
58
|
+
readonly key: Schema.String;
|
|
59
|
+
readonly length: Schema.optionalKey<Schema.Int>;
|
|
60
|
+
readonly offset: Schema.optionalKey<Schema.Int>;
|
|
61
|
+
readonly path: Schema.String;
|
|
62
|
+
}>, RpcSchema.Stream<typeof Chunk, FileRpcFailureSchema>> | Rpc.Rpc<FileTag<"upload/open">, Schema.Struct<{
|
|
63
|
+
readonly key: Schema.String;
|
|
64
|
+
}>, Schema.Struct<{
|
|
65
|
+
readonly upload: Schema.String;
|
|
66
|
+
}>, FileRpcFailureSchema> | Rpc.Rpc<FileTag<"upload/append">, Schema.Struct<{
|
|
67
|
+
readonly bytes: typeof Chunk;
|
|
68
|
+
readonly key: Schema.String;
|
|
69
|
+
readonly offset: Schema.Int;
|
|
70
|
+
readonly upload: Schema.String;
|
|
71
|
+
}>, Schema.Struct<{
|
|
72
|
+
readonly received: Schema.Int;
|
|
73
|
+
}>, FileRpcFailureSchema> | Rpc.Rpc<FileTag<"upload/close">, Schema.Struct<{
|
|
74
|
+
readonly bytes: Schema.Int;
|
|
75
|
+
readonly key: Schema.String;
|
|
76
|
+
readonly upload: Schema.String;
|
|
77
|
+
}>, Schema.Struct<{
|
|
78
|
+
readonly receipt: Schema.String;
|
|
79
|
+
}>, FileRpcFailureSchema>;
|
|
80
|
+
/**
|
|
81
|
+
* The file streams of one actor, under the tags docs/adr/0016 reserves: `<Actor>/files/<operation>`. Every payload
|
|
82
|
+
* carries the actor's encoded key as a string, as the actor's other RPCs do on the wire. Effect RPC has no client
|
|
83
|
+
* streams, so an upload is a short session: `upload/open` returns an id, `upload/append` sends chunks of at most
|
|
84
|
+
* 1 MiB in order and is idempotent by offset, and `upload/close` checks the length and returns the receipt a command
|
|
85
|
+
* attaches. A download streams chunks of at most 256 KiB.
|
|
86
|
+
*/
|
|
87
|
+
declare const fileRpcsOf: (actor: string) => readonly FileRpc[];
|
|
88
|
+
export { type FileRpc, type FileRpcFailureType, type FileRpcOperation, type FileTag, fileChunkBytes, fileRpcsOf, fileTag, uploadChunkBytes };
|
|
@@ -0,0 +1,117 @@
|
|
|
1
|
+
import { HostedFailure } from "../../hosted/hosted-failure.schema.mjs";
|
|
2
|
+
import { BlobTransferError } from "../blob-transfer.errors.mjs";
|
|
3
|
+
import { FileAccessDeniedError } from "../access/file-access-denied.errors.mjs";
|
|
4
|
+
import { FileNotFoundError } from "../file-not-found.errors.mjs";
|
|
5
|
+
import { FilesUnavailableError } from "../files-unavailable.errors.mjs";
|
|
6
|
+
import { FileTooLargeError } from "./file-too-large.errors.mjs";
|
|
7
|
+
import { InvalidFileRequestError } from "../invalid-file-request.errors.mjs";
|
|
8
|
+
import { Schema } from "effect";
|
|
9
|
+
import { Rpc } from "effect/rpc";
|
|
10
|
+
// src/contract/file/rpc/file-rpc.contract.ts
|
|
11
|
+
/** The largest chunk a download stream sends, and the largest one an upload may append. */
|
|
12
|
+
const fileChunkBytes = 262144;
|
|
13
|
+
const uploadChunkBytes = 1048576;
|
|
14
|
+
const FileRpcFailure = Schema.Union([
|
|
15
|
+
HostedFailure,
|
|
16
|
+
BlobTransferError,
|
|
17
|
+
FileAccessDeniedError,
|
|
18
|
+
FileNotFoundError,
|
|
19
|
+
FilesUnavailableError,
|
|
20
|
+
FileTooLargeError,
|
|
21
|
+
InvalidFileRequestError
|
|
22
|
+
]);
|
|
23
|
+
const WireFileRef = Schema.Struct({
|
|
24
|
+
bytes: Schema.Int,
|
|
25
|
+
path: Schema.String,
|
|
26
|
+
sha256: Schema.String,
|
|
27
|
+
writtenAt: Schema.Int
|
|
28
|
+
});
|
|
29
|
+
const WireFilePage = Schema.Struct({
|
|
30
|
+
cursor: Schema.OptionFromNullOr(Schema.String),
|
|
31
|
+
entries: Schema.Array(WireFileRef)
|
|
32
|
+
});
|
|
33
|
+
const WireFileUsagePage = Schema.Struct({
|
|
34
|
+
...WireFilePage.fields,
|
|
35
|
+
bytes: Schema.BigIntFromString
|
|
36
|
+
});
|
|
37
|
+
const Listing = {
|
|
38
|
+
cursor: Schema.optionalKey(Schema.String),
|
|
39
|
+
key: Schema.String,
|
|
40
|
+
limit: Schema.optionalKey(Schema.Int),
|
|
41
|
+
prefix: Schema.optionalKey(Schema.String)
|
|
42
|
+
};
|
|
43
|
+
const Chunk = Schema.Uint8ArrayFromBase64;
|
|
44
|
+
const fileTag = ({ actor, operation }) => `${actor}/files/${operation}`;
|
|
45
|
+
/**
|
|
46
|
+
* The file streams of one actor, under the tags docs/adr/0016 reserves: `<Actor>/files/<operation>`. Every payload
|
|
47
|
+
* carries the actor's encoded key as a string, as the actor's other RPCs do on the wire. Effect RPC has no client
|
|
48
|
+
* streams, so an upload is a short session: `upload/open` returns an id, `upload/append` sends chunks of at most
|
|
49
|
+
* 1 MiB in order and is idempotent by offset, and `upload/close` checks the length and returns the receipt a command
|
|
50
|
+
* attaches. A download streams chunks of at most 256 KiB.
|
|
51
|
+
*/
|
|
52
|
+
const fileRpcsOf = (actor) => [
|
|
53
|
+
Rpc.make(fileTag({
|
|
54
|
+
actor,
|
|
55
|
+
operation: "list"
|
|
56
|
+
}), {
|
|
57
|
+
error: FileRpcFailure,
|
|
58
|
+
payload: Listing,
|
|
59
|
+
success: WireFilePage
|
|
60
|
+
}),
|
|
61
|
+
Rpc.make(fileTag({
|
|
62
|
+
actor,
|
|
63
|
+
operation: "usage"
|
|
64
|
+
}), {
|
|
65
|
+
error: FileRpcFailure,
|
|
66
|
+
payload: Listing,
|
|
67
|
+
success: WireFileUsagePage
|
|
68
|
+
}),
|
|
69
|
+
Rpc.make(fileTag({
|
|
70
|
+
actor,
|
|
71
|
+
operation: "download"
|
|
72
|
+
}), {
|
|
73
|
+
error: FileRpcFailure,
|
|
74
|
+
payload: {
|
|
75
|
+
key: Schema.String,
|
|
76
|
+
length: Schema.optionalKey(Schema.Int),
|
|
77
|
+
offset: Schema.optionalKey(Schema.Int),
|
|
78
|
+
path: Schema.String
|
|
79
|
+
},
|
|
80
|
+
stream: true,
|
|
81
|
+
success: Chunk
|
|
82
|
+
}),
|
|
83
|
+
Rpc.make(fileTag({
|
|
84
|
+
actor,
|
|
85
|
+
operation: "upload/open"
|
|
86
|
+
}), {
|
|
87
|
+
error: FileRpcFailure,
|
|
88
|
+
payload: { key: Schema.String },
|
|
89
|
+
success: Schema.Struct({ upload: Schema.String })
|
|
90
|
+
}),
|
|
91
|
+
Rpc.make(fileTag({
|
|
92
|
+
actor,
|
|
93
|
+
operation: "upload/append"
|
|
94
|
+
}), {
|
|
95
|
+
error: FileRpcFailure,
|
|
96
|
+
payload: {
|
|
97
|
+
bytes: Chunk,
|
|
98
|
+
key: Schema.String,
|
|
99
|
+
offset: Schema.Int,
|
|
100
|
+
upload: Schema.String
|
|
101
|
+
},
|
|
102
|
+
success: Schema.Struct({ received: Schema.Int })
|
|
103
|
+
}),
|
|
104
|
+
Rpc.make(fileTag({
|
|
105
|
+
actor,
|
|
106
|
+
operation: "upload/close"
|
|
107
|
+
}), {
|
|
108
|
+
error: FileRpcFailure,
|
|
109
|
+
payload: {
|
|
110
|
+
bytes: Schema.Int,
|
|
111
|
+
key: Schema.String,
|
|
112
|
+
upload: Schema.String
|
|
113
|
+
},
|
|
114
|
+
success: Schema.Struct({ receipt: Schema.String })
|
|
115
|
+
})
|
|
116
|
+
];
|
|
117
|
+
export { fileChunkBytes, fileRpcsOf, fileTag, uploadChunkBytes };
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import { Schema } from "effect";
|
|
2
|
+
declare const FileTooLargeError_base: Schema.Class<FileTooLargeError, Schema.TaggedStruct<"FileTooLargeError", {
|
|
3
|
+
readonly actor: Schema.String;
|
|
4
|
+
readonly maximumBytes: Schema.Int;
|
|
5
|
+
}>, import("effect/Cause").YieldableError & {
|
|
6
|
+
readonly brand: unique symbol;
|
|
7
|
+
}>;
|
|
8
|
+
/**
|
|
9
|
+
* An upload would pass the largest file the server accepts, `maximumBytes`, so the chunk was refused and the upload
|
|
10
|
+
* dropped. Nothing was attached. Split the content into smaller files.
|
|
11
|
+
*/
|
|
12
|
+
export declare class FileTooLargeError extends FileTooLargeError_base {}
|
|
13
|
+
export {};
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import { Schema } from "effect";
|
|
2
|
+
// src/contract/file/rpc/file-too-large.errors.ts
|
|
3
|
+
/**
|
|
4
|
+
* An upload would pass the largest file the server accepts, `maximumBytes`, so the chunk was refused and the upload
|
|
5
|
+
* dropped. Nothing was attached. Split the content into smaller files.
|
|
6
|
+
*/
|
|
7
|
+
var FileTooLargeError = class extends Schema.TaggedError()("FileTooLargeError", {
|
|
8
|
+
actor: Schema.String,
|
|
9
|
+
maximumBytes: Schema.Int
|
|
10
|
+
}) {};
|
|
11
|
+
export { FileTooLargeError };
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import { ActorFileClients } from "../file-client.adapter.mjs";
|
|
2
|
+
import { Layer } from "effect";
|
|
3
|
+
import { RpcClient } from "effect/rpc";
|
|
4
|
+
/**
|
|
5
|
+
* File clients that reach an actor's files over its `<Actor>/files/<operation>` RPCs, for `@akterjs/client` and the
|
|
6
|
+
* in-process client. They give the same `FileClient` an actor's own host gives, so customer code is the same either
|
|
7
|
+
* way.
|
|
8
|
+
*/
|
|
9
|
+
declare const rpcFileClients: Layer.Layer<ActorFileClients, never, RpcClient.Protocol>;
|
|
10
|
+
export { type ActorFileClients, rpcFileClients };
|
|
@@ -0,0 +1,95 @@
|
|
|
1
|
+
import { Authentication } from "../../caller/authentication.api.mjs";
|
|
2
|
+
import { ActorUnavailableError } from "../../client/actor-unavailable.errors.mjs";
|
|
3
|
+
import { ActorFileClients } from "../file-client.adapter.mjs";
|
|
4
|
+
import { fileRpcsOf, fileTag, uploadChunkBytes } from "./file-rpc.contract.mjs";
|
|
5
|
+
import { Array, Duration, Effect, Layer, Match, Option, Predicate, Record, Schedule, Stream } from "effect";
|
|
6
|
+
import { RpcClient, RpcGroup } from "effect/rpc";
|
|
7
|
+
// src/contract/file/rpc/rpc-file-clients.layer.ts
|
|
8
|
+
const retryMillis = 50;
|
|
9
|
+
const retryLimit = 5;
|
|
10
|
+
const firstByte = 0;
|
|
11
|
+
const one = 1;
|
|
12
|
+
function wireOf(actor) {
|
|
13
|
+
const group = RpcGroup.make(...fileRpcsOf(actor)).middleware(Authentication);
|
|
14
|
+
return Effect.map(RpcClient.make(group, { flatten: true }), (client) => ({
|
|
15
|
+
send: client,
|
|
16
|
+
watch: client
|
|
17
|
+
}));
|
|
18
|
+
}
|
|
19
|
+
const unavailable = (actor, message) => ActorUnavailableError.make({
|
|
20
|
+
actor,
|
|
21
|
+
message
|
|
22
|
+
});
|
|
23
|
+
/**
|
|
24
|
+
* What a network file client answers for a failure: a lost reply, after its retries, means the actor is unavailable,
|
|
25
|
+
* and the actor RPC failures a file request can't cause fold into the same retryable answer.
|
|
26
|
+
*/
|
|
27
|
+
const clientFailure = (actor) => (failure) => Match.value(failure).pipe(Match.tags({
|
|
28
|
+
ActorNotCreatedError: () => unavailable(actor, "the actor's files are unavailable"),
|
|
29
|
+
CommandIdExpiredError: () => unavailable(actor, "the actor's files are unavailable"),
|
|
30
|
+
HandlerFailedError: () => unavailable(actor, "the actor's files are unavailable"),
|
|
31
|
+
RpcClientError: () => unavailable(actor, "the server didn't answer. Retry shortly.")
|
|
32
|
+
}), Match.orElse((other) => other));
|
|
33
|
+
const tagOf = (address, operation) => fileTag({
|
|
34
|
+
actor: address.actor,
|
|
35
|
+
operation
|
|
36
|
+
});
|
|
37
|
+
/** One unary file RPC. A lost reply is retried, which every file RPC allows: reads, and appends by their offset. */
|
|
38
|
+
const call = ({ address, protocol }, operation, payload) => {
|
|
39
|
+
const sent = Effect.flatMap(wireOf(address.actor), (wire) => wire.send(tagOf(address, operation), {
|
|
40
|
+
...payload,
|
|
41
|
+
key: address.key
|
|
42
|
+
}));
|
|
43
|
+
const retried = Effect.retry(Effect.scoped(sent), {
|
|
44
|
+
schedule: Schedule.exponential(Duration.millis(retryMillis)),
|
|
45
|
+
times: retryLimit,
|
|
46
|
+
while: (failure) => Predicate.isTagged(failure, "RpcClientError")
|
|
47
|
+
});
|
|
48
|
+
return Effect.provideContext(Effect.mapError(retried, clientFailure(address.actor)), protocol);
|
|
49
|
+
};
|
|
50
|
+
const listingOf = ({ cursor, limit, prefix }) => ({
|
|
51
|
+
...Record.getSomes({
|
|
52
|
+
cursor: Option.fromNullishOr(cursor),
|
|
53
|
+
prefix: Option.fromNullishOr(prefix)
|
|
54
|
+
}),
|
|
55
|
+
...Record.getSomes({ limit: Option.fromNullishOr(limit) })
|
|
56
|
+
});
|
|
57
|
+
const slices = (bytes) => Array.makeBy(Math.max(one, Math.ceil(bytes.length / uploadChunkBytes)), (index) => bytes.subarray(index * uploadChunkBytes, (index + one) * uploadChunkBytes));
|
|
58
|
+
const appendAll = (bound, upload, source) => source.pipe(Stream.flatMap((chunk) => Stream.fromIterable(slices(chunk))), Stream.filter((chunk) => chunk.length > firstByte), Stream.runFoldEffect(() => firstByte, (offset, bytes) => Effect.as(call(bound, "upload/append", {
|
|
59
|
+
bytes,
|
|
60
|
+
offset,
|
|
61
|
+
upload
|
|
62
|
+
}), offset + bytes.length)));
|
|
63
|
+
/** An upload is a session: `upload/open`, the source's bytes as ordered `upload/append` chunks, then `upload/close`. */
|
|
64
|
+
const uploadWith = (bound) => (source) => Effect.gen(function* upload() {
|
|
65
|
+
const opened = yield* call(bound, "upload/open", {});
|
|
66
|
+
const bytes = yield* appendAll(bound, opened.upload, source);
|
|
67
|
+
return (yield* call(bound, "upload/close", {
|
|
68
|
+
bytes,
|
|
69
|
+
upload: opened.upload
|
|
70
|
+
})).receipt;
|
|
71
|
+
});
|
|
72
|
+
const downloadWith = ({ address, protocol }) => (path, range) => {
|
|
73
|
+
const bytes = Stream.unwrap(Effect.map(wireOf(address.actor), (wire) => wire.watch(tagOf(address, "download"), {
|
|
74
|
+
key: address.key,
|
|
75
|
+
path,
|
|
76
|
+
...range
|
|
77
|
+
})));
|
|
78
|
+
return Stream.provideContext(Stream.mapError(bytes, clientFailure(address.actor)), protocol);
|
|
79
|
+
};
|
|
80
|
+
const clientWith = (bound) => ({
|
|
81
|
+
download: downloadWith(bound),
|
|
82
|
+
fileUsage: (listing = {}) => call(bound, "usage", listingOf(listing)),
|
|
83
|
+
list: (listing = {}) => call(bound, "list", listingOf(listing)),
|
|
84
|
+
upload: uploadWith(bound)
|
|
85
|
+
});
|
|
86
|
+
/**
|
|
87
|
+
* File clients that reach an actor's files over its `<Actor>/files/<operation>` RPCs, for `@akterjs/client` and the
|
|
88
|
+
* in-process client. They give the same `FileClient` an actor's own host gives, so customer code is the same either
|
|
89
|
+
* way.
|
|
90
|
+
*/
|
|
91
|
+
const rpcFileClients = Layer.effect(ActorFileClients, Effect.map(Effect.context(), (protocol) => ({ connect: (address) => clientWith({
|
|
92
|
+
address,
|
|
93
|
+
protocol
|
|
94
|
+
}) })));
|
|
95
|
+
export { rpcFileClients };
|
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
import { ActorErasedError } from "../actor/actor-erased.errors.mjs";
|
|
2
|
+
import { ActorNotCreatedError } from "../actor/actor-not-created.errors.mjs";
|
|
3
|
+
import { ActorUnavailableError } from "../client/actor-unavailable.errors.mjs";
|
|
4
|
+
import { BillingUnavailableError } from "../spend/billing-unavailable.errors.mjs";
|
|
5
|
+
import { CallerNotAllowedError } from "../caller/caller-not-allowed.errors.mjs";
|
|
6
|
+
import { CommandIdExpiredError } from "../command/command-id-expired.errors.mjs";
|
|
7
|
+
import { HandlerFailedError } from "../hosted/handler-failed.errors.mjs";
|
|
8
|
+
import { InvalidRequestError } from "../client/invalid-request.errors.mjs";
|
|
9
|
+
import { SpendCapReachedError } from "../spend/spend-cap-reached.errors.mjs";
|
|
10
|
+
import { StorageLimitError } from "../client/storage-limit.errors.mjs";
|
|
11
|
+
import { ActorAlreadyExistsError } from "../actor/actor-already-exists.errors.mjs";
|
|
12
|
+
import { KeySchema } from "../actor/actor.contract.mjs";
|
|
13
|
+
import { CommandId } from "../command/command-id.schema.mjs";
|
|
14
|
+
import { Schema } from "effect";
|
|
15
|
+
import { Rpc } from "effect/rpc";
|
|
16
|
+
/** What a fork answers: the parent's commit version at the cut the child was copied from. */
|
|
17
|
+
declare const Forked: Schema.Struct<{
|
|
18
|
+
readonly version: Schema.Int;
|
|
19
|
+
}>;
|
|
20
|
+
type Forked = typeof Forked.Type;
|
|
21
|
+
declare const ForkFailure: Schema.Union<readonly [Schema.Union<readonly [typeof ActorErasedError, typeof ActorNotCreatedError, typeof ActorUnavailableError, typeof BillingUnavailableError, typeof CallerNotAllowedError, typeof CommandIdExpiredError, typeof HandlerFailedError, typeof InvalidRequestError, typeof SpendCapReachedError, typeof StorageLimitError]>, typeof ActorAlreadyExistsError]>;
|
|
22
|
+
type ForkFailure = typeof ForkFailure.Type;
|
|
23
|
+
type ForkTag = `${string}/fork`;
|
|
24
|
+
type ForkRpc = Rpc.Rpc<ForkTag, Schema.Struct<{
|
|
25
|
+
readonly commandId: typeof CommandId;
|
|
26
|
+
readonly into: KeySchema;
|
|
27
|
+
readonly key: KeySchema;
|
|
28
|
+
}>, typeof Forked, typeof ForkFailure>;
|
|
29
|
+
declare const forkTag: (actor: string) => ForkTag;
|
|
30
|
+
/**
|
|
31
|
+
* Forks one actor under the tag docs/adr/0016 reserves: `<Actor>/fork` copies the actor at `key`, at one cut between
|
|
32
|
+
* two of its commands, into a new actor of the same kind at `into` (ADR 0017, ADR 0018). The copy starts quiet, with
|
|
33
|
+
* its own key, and nothing reads it before it is whole. `commandId` names the fork, so a retry with it answers the
|
|
34
|
+
* same fork instead of making a second copy.
|
|
35
|
+
*/
|
|
36
|
+
declare const forkRpcOf: ({ actor, key }: {
|
|
37
|
+
readonly actor: string;
|
|
38
|
+
readonly key: KeySchema;
|
|
39
|
+
}) => ForkRpc;
|
|
40
|
+
export { ForkFailure, type ForkRpc, type ForkTag, Forked, forkRpcOf, forkTag };
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
import { ActorAlreadyExistsError } from "../actor/actor-already-exists.errors.mjs";
|
|
2
|
+
import { CommandId } from "../command/command-id.schema.mjs";
|
|
3
|
+
import { HostedFailure } from "../hosted/hosted-failure.schema.mjs";
|
|
4
|
+
import { Schema } from "effect";
|
|
5
|
+
import { Rpc } from "effect/rpc";
|
|
6
|
+
// src/contract/fork/fork-rpc.contract.ts
|
|
7
|
+
/** What a fork answers: the parent's commit version at the cut the child was copied from. */
|
|
8
|
+
const Forked = Schema.Struct({ version: Schema.Int });
|
|
9
|
+
const ForkFailure = Schema.Union([HostedFailure, ActorAlreadyExistsError]);
|
|
10
|
+
const forkTag = (actor) => `${actor}/fork`;
|
|
11
|
+
/**
|
|
12
|
+
* Forks one actor under the tag docs/adr/0016 reserves: `<Actor>/fork` copies the actor at `key`, at one cut between
|
|
13
|
+
* two of its commands, into a new actor of the same kind at `into` (ADR 0017, ADR 0018). The copy starts quiet, with
|
|
14
|
+
* its own key, and nothing reads it before it is whole. `commandId` names the fork, so a retry with it answers the
|
|
15
|
+
* same fork instead of making a second copy.
|
|
16
|
+
*/
|
|
17
|
+
const forkRpcOf = ({ actor, key }) => Rpc.make(forkTag(actor), {
|
|
18
|
+
error: ForkFailure,
|
|
19
|
+
payload: {
|
|
20
|
+
commandId: CommandId,
|
|
21
|
+
into: key,
|
|
22
|
+
key
|
|
23
|
+
},
|
|
24
|
+
success: Forked
|
|
25
|
+
});
|
|
26
|
+
export { ForkFailure, Forked, forkRpcOf, forkTag };
|
|
@@ -0,0 +1,58 @@
|
|
|
1
|
+
import { ActorUnavailableError } from "../client/actor-unavailable.errors.mjs";
|
|
2
|
+
import { ActorErasedError } from "../actor/actor-erased.errors.mjs";
|
|
3
|
+
import { ActorDefinition } from "../actor/actor.contract.mjs";
|
|
4
|
+
import { CreatedEntry, HistoryEntry, JobResultEntry, RecordedCommand, UnreadableCommand } from "./history-entry.pure.mjs";
|
|
5
|
+
import { InvalidRequestError } from "../client/invalid-request.errors.mjs";
|
|
6
|
+
import { Context, Duration, Effect, Stream } from "effect";
|
|
7
|
+
interface JournalEntry {
|
|
8
|
+
readonly at: number;
|
|
9
|
+
readonly command: string;
|
|
10
|
+
readonly commandId: string;
|
|
11
|
+
readonly exit: string;
|
|
12
|
+
readonly payload: string;
|
|
13
|
+
readonly principal: string;
|
|
14
|
+
readonly seq: number;
|
|
15
|
+
}
|
|
16
|
+
interface JournalScope {
|
|
17
|
+
readonly actor: string;
|
|
18
|
+
readonly key: string;
|
|
19
|
+
readonly since: number;
|
|
20
|
+
}
|
|
21
|
+
interface JournalRead extends JournalScope {
|
|
22
|
+
readonly after: number;
|
|
23
|
+
readonly limit: number;
|
|
24
|
+
}
|
|
25
|
+
interface JournalWindow {
|
|
26
|
+
readonly coveredSince: number;
|
|
27
|
+
readonly entries: readonly JournalEntry[];
|
|
28
|
+
}
|
|
29
|
+
type JournalFailure = ActorErasedError | ActorUnavailableError | InvalidRequestError;
|
|
30
|
+
interface HistorySource {
|
|
31
|
+
readonly definition: ActorDefinition;
|
|
32
|
+
readonly name: string;
|
|
33
|
+
}
|
|
34
|
+
interface HistoryWindow<Entry> {
|
|
35
|
+
readonly coveredSince: number;
|
|
36
|
+
readonly entries: readonly Entry[];
|
|
37
|
+
}
|
|
38
|
+
interface HistoryOptions {
|
|
39
|
+
readonly since?: Duration.Input;
|
|
40
|
+
}
|
|
41
|
+
type HistoryOf<Definition extends ActorDefinition> = (key: Definition["key"]["Type"], options?: HistoryOptions) => Effect.Effect<HistoryWindow<HistoryEntry<Definition>>, JournalFailure, ActorJournal>;
|
|
42
|
+
type HistoryStreamOf<Definition extends ActorDefinition> = (key: Definition["key"]["Type"], options?: HistoryOptions) => Stream.Stream<HistoryWindow<HistoryEntry<Definition>>, JournalFailure, ActorJournal>;
|
|
43
|
+
type CoveredSinceOf<Definition extends ActorDefinition> = (key: Definition["key"]["Type"], options?: HistoryOptions) => Effect.Effect<number, JournalFailure, ActorJournal>;
|
|
44
|
+
interface ActorHistory<Definition extends ActorDefinition> {
|
|
45
|
+
readonly history: HistoryOf<Definition>;
|
|
46
|
+
readonly historyCoveredSince: CoveredSinceOf<Definition>;
|
|
47
|
+
readonly historyStream: HistoryStreamOf<Definition>;
|
|
48
|
+
}
|
|
49
|
+
declare const ActorJournal_base: Context.ServiceClass<ActorJournal, "@akterjs/effect/contract/history/actor-journal.service/ActorJournal", {
|
|
50
|
+
readonly coveredSince: (request: JournalScope) => Effect.Effect<number, JournalFailure>;
|
|
51
|
+
readonly read: (request: JournalRead) => Effect.Effect<JournalWindow, JournalFailure>;
|
|
52
|
+
}>;
|
|
53
|
+
export declare class ActorJournal extends ActorJournal_base {
|
|
54
|
+
static coveredSince<Definition extends ActorDefinition>(source: HistorySource): CoveredSinceOf<Definition>;
|
|
55
|
+
static history<Definition extends ActorDefinition>(source: HistorySource): HistoryOf<Definition>;
|
|
56
|
+
static historyStream<Definition extends ActorDefinition>(source: HistorySource): HistoryStreamOf<Definition>;
|
|
57
|
+
}
|
|
58
|
+
export type { ActorHistory, CoveredSinceOf, CreatedEntry, HistoryEntry, HistoryOf, HistoryOptions, HistoryStreamOf, HistoryWindow, JobResultEntry, JournalEntry, JournalFailure, JournalRead, JournalScope, JournalWindow, RecordedCommand, UnreadableCommand };
|
|
@@ -0,0 +1,67 @@
|
|
|
1
|
+
import { decodeEntries } from "./history-entry.pure.mjs";
|
|
2
|
+
import { InvalidRequestError } from "../client/invalid-request.errors.mjs";
|
|
3
|
+
import { Array, Clock, Context, Duration, Effect, Option, Schema, Stream } from "effect";
|
|
4
|
+
// src/contract/history/actor-journal.service.ts
|
|
5
|
+
const everything = 0;
|
|
6
|
+
const beforeFirst = 0;
|
|
7
|
+
const pageSize = 500;
|
|
8
|
+
const sinceOf = (now, options) => Option.match(Option.fromNullishOr(options.since), {
|
|
9
|
+
onNone: () => everything,
|
|
10
|
+
onSome: (since) => now - Duration.toMillis(since)
|
|
11
|
+
});
|
|
12
|
+
const nextAfter = (entries) => Option.map(Option.filter(Array.last(entries), () => entries.length === pageSize), (entry) => entry.seq);
|
|
13
|
+
const scopeOf = Effect.fnUntraced(function* scopeOf(source, key, options) {
|
|
14
|
+
const encoded = yield* Schema.encodeUnknownEffect(source.definition.key)(key).pipe(Effect.mapError((issue) => InvalidRequestError.make({
|
|
15
|
+
actor: source.name,
|
|
16
|
+
message: issue.message
|
|
17
|
+
})));
|
|
18
|
+
const now = yield* Clock.currentTimeMillis;
|
|
19
|
+
return {
|
|
20
|
+
actor: source.name,
|
|
21
|
+
key: encoded,
|
|
22
|
+
since: sinceOf(now, options)
|
|
23
|
+
};
|
|
24
|
+
});
|
|
25
|
+
const joined = (pages) => {
|
|
26
|
+
const all = Array.fromIterable(pages);
|
|
27
|
+
return {
|
|
28
|
+
coveredSince: Option.match(Array.last(all), {
|
|
29
|
+
onNone: () => everything,
|
|
30
|
+
onSome: (page) => page.coveredSince
|
|
31
|
+
}),
|
|
32
|
+
entries: Array.flatMap(all, (page) => page.entries)
|
|
33
|
+
};
|
|
34
|
+
};
|
|
35
|
+
var ActorJournal = class ActorJournal extends Context.Service()("@akterjs/effect/contract/history/actor-journal.service/ActorJournal") {
|
|
36
|
+
static coveredSince(source) {
|
|
37
|
+
return Effect.fnUntraced(function* coveredSince(key, options = {}) {
|
|
38
|
+
const scope = yield* scopeOf(source, key, options);
|
|
39
|
+
return yield* (yield* ActorJournal).coveredSince(scope);
|
|
40
|
+
});
|
|
41
|
+
}
|
|
42
|
+
static history(source) {
|
|
43
|
+
const stream = ActorJournal.historyStream(source);
|
|
44
|
+
return (key, options) => Effect.map(Stream.runCollect(stream(key, options)), joined);
|
|
45
|
+
}
|
|
46
|
+
static historyStream(source) {
|
|
47
|
+
const decode = decodeEntries(source);
|
|
48
|
+
const pagesOf = Effect.fnUntraced(function* pagesOf(key, options) {
|
|
49
|
+
const scope = yield* scopeOf(source, key, options);
|
|
50
|
+
const journal = yield* ActorJournal;
|
|
51
|
+
const window = {
|
|
52
|
+
...scope,
|
|
53
|
+
limit: pageSize
|
|
54
|
+
};
|
|
55
|
+
const page = (after) => Effect.flatMap(journal.read({
|
|
56
|
+
...window,
|
|
57
|
+
after
|
|
58
|
+
}), (read) => Effect.map(decode(read.entries), (entries) => [[{
|
|
59
|
+
coveredSince: read.coveredSince,
|
|
60
|
+
entries
|
|
61
|
+
}], nextAfter(read.entries)]));
|
|
62
|
+
return Stream.paginate(beforeFirst, page);
|
|
63
|
+
});
|
|
64
|
+
return (key, options = {}) => Stream.unwrap(pagesOf(key, options));
|
|
65
|
+
}
|
|
66
|
+
};
|
|
67
|
+
export { ActorJournal };
|
|
@@ -0,0 +1,79 @@
|
|
|
1
|
+
import { JournalEntry } from "./actor-journal.service.mjs";
|
|
2
|
+
import { ActorAlreadyExistsError } from "../actor/actor-already-exists.errors.mjs";
|
|
3
|
+
import { ActorDefinition, Decoded, PrincipalOf } from "../actor/actor.contract.mjs";
|
|
4
|
+
import { NoJobs } from "../command/command.contract.mjs";
|
|
5
|
+
import { HandlerFailedError } from "../hosted/handler-failed.errors.mjs";
|
|
6
|
+
import { Effect, Exit, Schema } from "effect";
|
|
7
|
+
interface RecordedCommand<Definition extends ActorDefinition, Name extends keyof Definition["commands"]> {
|
|
8
|
+
readonly at: number;
|
|
9
|
+
readonly command: Name;
|
|
10
|
+
readonly commandId: string;
|
|
11
|
+
readonly exit: Exit.Exit<Definition["commands"][Name]["success"]["Type"], Definition["commands"][Name]["error"]["Type"] | HandlerFailedError>;
|
|
12
|
+
readonly kind: "recorded";
|
|
13
|
+
readonly payload: Definition["commands"][Name]["payload"]["Type"];
|
|
14
|
+
readonly principal: PrincipalOf<Definition>;
|
|
15
|
+
readonly seq: number;
|
|
16
|
+
}
|
|
17
|
+
type CreationMode = "create" | "ensure";
|
|
18
|
+
interface CreatedEntry<Definition extends ActorDefinition> {
|
|
19
|
+
readonly at: number;
|
|
20
|
+
readonly command: string;
|
|
21
|
+
readonly commandId: string;
|
|
22
|
+
readonly exit: Exit.Exit<void, ActorAlreadyExistsError | HandlerFailedError>;
|
|
23
|
+
readonly kind: "created";
|
|
24
|
+
readonly mode: CreationMode;
|
|
25
|
+
readonly payload: Definition["create"]["Type"];
|
|
26
|
+
readonly principal: PrincipalOf<Definition>;
|
|
27
|
+
readonly seq: number;
|
|
28
|
+
}
|
|
29
|
+
interface JobResultEntry<Definition extends ActorDefinition, Name extends keyof Definition["jobs"]> {
|
|
30
|
+
readonly at: number;
|
|
31
|
+
readonly command: string;
|
|
32
|
+
readonly commandId: string;
|
|
33
|
+
readonly exit: Exit.Exit<void, HandlerFailedError>;
|
|
34
|
+
readonly job: Name;
|
|
35
|
+
readonly kind: "result";
|
|
36
|
+
readonly result: Exit.Exit<Definition["jobs"][Name]["success"]["Type"], Definition["jobs"][Name]["error"]["Type"]>;
|
|
37
|
+
readonly seq: number;
|
|
38
|
+
}
|
|
39
|
+
interface UnreadableCommand {
|
|
40
|
+
readonly at: number;
|
|
41
|
+
readonly command: string;
|
|
42
|
+
readonly commandId: string;
|
|
43
|
+
readonly kind: "unreadable";
|
|
44
|
+
readonly reason: string;
|
|
45
|
+
readonly seq: number;
|
|
46
|
+
}
|
|
47
|
+
type HistoryEntry<Definition extends ActorDefinition> = { readonly [Name in keyof Definition["commands"]]: RecordedCommand<Definition, Name>; }[keyof Definition["commands"]] | (Definition["create"] extends Schema.Never ? never : CreatedEntry<Definition>) | (Definition["jobs"] extends NoJobs ? never : { readonly [Name in keyof Definition["jobs"]]: JobResultEntry<Definition, Name>; }[keyof Definition["jobs"]]) | UnreadableCommand;
|
|
48
|
+
interface EntryPlace {
|
|
49
|
+
readonly at: number;
|
|
50
|
+
readonly command: string;
|
|
51
|
+
readonly commandId: string;
|
|
52
|
+
readonly seq: number;
|
|
53
|
+
}
|
|
54
|
+
interface ErasedRecorded extends EntryPlace {
|
|
55
|
+
readonly exit: Exit.Exit<Decoded, Decoded>;
|
|
56
|
+
readonly kind: "recorded";
|
|
57
|
+
readonly payload: Decoded;
|
|
58
|
+
readonly principal: Decoded;
|
|
59
|
+
}
|
|
60
|
+
interface ErasedCreated extends EntryPlace {
|
|
61
|
+
readonly exit: Exit.Exit<Decoded, Decoded>;
|
|
62
|
+
readonly kind: "created";
|
|
63
|
+
readonly mode: CreationMode;
|
|
64
|
+
readonly payload: Decoded;
|
|
65
|
+
readonly principal: Decoded;
|
|
66
|
+
}
|
|
67
|
+
interface ErasedResult extends EntryPlace {
|
|
68
|
+
readonly exit: Exit.Exit<Decoded, Decoded>;
|
|
69
|
+
readonly job: string;
|
|
70
|
+
readonly kind: "result";
|
|
71
|
+
readonly result: Exit.Exit<Decoded, Decoded>;
|
|
72
|
+
}
|
|
73
|
+
type ErasedEntry = ErasedCreated | ErasedRecorded | ErasedResult | UnreadableCommand;
|
|
74
|
+
interface NamedDefinition {
|
|
75
|
+
readonly definition: ActorDefinition;
|
|
76
|
+
readonly name: string;
|
|
77
|
+
}
|
|
78
|
+
declare const decodeEntries: (source: NamedDefinition) => ((entries: readonly JournalEntry[]) => Effect.Effect<readonly ErasedEntry[]>);
|
|
79
|
+
export { type CreatedEntry, type ErasedEntry, type HistoryEntry, type JobResultEntry, type RecordedCommand, type UnreadableCommand, decodeEntries };
|