@earendil-works/chord 1.5.0 → 1.5.1
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 +51 -0
- package/README.md +50 -90
- package/dist/contracts/accepts.d.ts +81 -0
- package/dist/contracts/accepts.d.ts.map +1 -0
- package/dist/contracts/accepts.js.map +1 -0
- package/dist/contracts/contract.d.ts +121 -0
- package/dist/contracts/contract.d.ts.map +1 -0
- package/dist/contracts/contract.js.map +1 -0
- package/dist/contracts/declare.d.ts.map +1 -0
- package/dist/contracts/declare.js.map +1 -0
- package/dist/contracts/evolve.d.ts.map +1 -0
- package/dist/contracts/evolve.js.map +1 -0
- package/dist/contracts/fingerprint.d.ts +16 -0
- package/dist/contracts/fingerprint.d.ts.map +1 -0
- package/dist/contracts/fingerprint.js.map +1 -0
- package/dist/contracts/history.d.ts.map +1 -0
- package/dist/contracts/history.js.map +1 -0
- package/dist/contracts/host-kind.d.ts.map +1 -0
- package/dist/contracts/host-kind.js.map +1 -0
- package/dist/contracts/index.d.ts.map +1 -0
- package/dist/contracts/index.js.map +1 -0
- package/dist/contracts/internal.d.ts.map +1 -0
- package/dist/contracts/internal.js.map +1 -0
- package/dist/contracts/names.d.ts.map +1 -0
- package/dist/contracts/names.js.map +1 -0
- package/dist/contracts/params.d.ts +28 -0
- package/dist/contracts/params.d.ts.map +1 -0
- package/dist/contracts/params.js.map +1 -0
- package/dist/contracts/schema.d.ts.map +1 -0
- package/dist/contracts/schema.js.map +1 -0
- package/dist/contracts/snapshot.d.ts +16 -0
- package/dist/contracts/snapshot.d.ts.map +1 -0
- package/dist/contracts/snapshot.js +167 -0
- package/dist/contracts/snapshot.js.map +1 -0
- package/dist/data/args.d.ts +50 -0
- package/dist/data/args.d.ts.map +1 -0
- package/dist/data/args.js.map +1 -0
- package/dist/data/errors.d.ts +80 -0
- package/dist/data/errors.d.ts.map +1 -0
- package/dist/data/errors.js +116 -0
- package/dist/data/errors.js.map +1 -0
- package/dist/data/failure.d.ts.map +1 -0
- package/dist/data/failure.js +77 -0
- package/dist/data/failure.js.map +1 -0
- package/dist/data/index.d.ts +4 -0
- package/dist/data/index.d.ts.map +1 -0
- package/dist/data/index.js +5 -0
- package/dist/data/index.js.map +1 -0
- package/dist/data/internal.d.ts +7 -0
- package/dist/data/internal.d.ts.map +1 -0
- package/dist/data/internal.js +8 -0
- package/dist/data/internal.js.map +1 -0
- package/dist/data/params.d.ts +20 -0
- package/dist/data/params.d.ts.map +1 -0
- package/dist/data/params.js.map +1 -0
- package/dist/data/principal.d.ts +22 -0
- package/dist/data/principal.d.ts.map +1 -0
- package/dist/data/principal.js +49 -0
- package/dist/data/principal.js.map +1 -0
- package/dist/data/validator.d.ts +12 -0
- package/dist/data/validator.d.ts.map +1 -0
- package/dist/data/validator.js +35 -0
- package/dist/data/validator.js.map +1 -0
- package/dist/documents/address-source.d.ts +20 -0
- package/dist/documents/address-source.d.ts.map +1 -0
- package/dist/documents/address-source.js.map +1 -0
- package/dist/documents/definition.d.ts +84 -0
- package/dist/documents/definition.d.ts.map +1 -0
- package/dist/documents/definition.js +74 -0
- package/dist/documents/definition.js.map +1 -0
- package/dist/documents/documents.d.ts +126 -0
- package/dist/documents/documents.d.ts.map +1 -0
- package/dist/documents/documents.js +248 -0
- package/dist/documents/documents.js.map +1 -0
- package/dist/documents/fence.d.ts.map +1 -0
- package/dist/documents/fence.js.map +1 -0
- package/dist/documents/handles.d.ts +76 -0
- package/dist/documents/handles.d.ts.map +1 -0
- package/dist/documents/handles.js.map +1 -0
- package/dist/documents/index.d.ts.map +1 -0
- package/dist/documents/index.js.map +1 -0
- package/dist/documents/internal.d.ts +9 -0
- package/dist/documents/internal.d.ts.map +1 -0
- package/dist/documents/internal.js.map +1 -0
- package/dist/documents/keyed-slot.d.ts +103 -0
- package/dist/documents/keyed-slot.d.ts.map +1 -0
- package/dist/documents/keyed-slot.js +395 -0
- package/dist/documents/keyed-slot.js.map +1 -0
- package/dist/documents/line.d.ts.map +1 -0
- package/dist/documents/line.js.map +1 -0
- package/dist/documents/persistence.d.ts +104 -0
- package/dist/documents/persistence.d.ts.map +1 -0
- package/dist/documents/persistence.js +129 -0
- package/dist/documents/persistence.js.map +1 -0
- package/dist/documents/residency.d.ts +31 -0
- package/dist/documents/residency.d.ts.map +1 -0
- package/dist/documents/residency.js.map +1 -0
- package/dist/documents/slot.d.ts +109 -0
- package/dist/documents/slot.d.ts.map +1 -0
- package/dist/documents/slot.js +181 -0
- package/dist/documents/slot.js.map +1 -0
- package/dist/documents/transaction.d.ts +143 -0
- package/dist/documents/transaction.d.ts.map +1 -0
- package/dist/documents/transaction.js +442 -0
- package/dist/documents/transaction.js.map +1 -0
- package/dist/host/activity.d.ts +31 -0
- package/dist/host/activity.d.ts.map +1 -0
- package/dist/host/activity.js +40 -0
- package/dist/host/activity.js.map +1 -0
- package/dist/host/adapted.d.ts +49 -0
- package/dist/host/adapted.d.ts.map +1 -0
- package/dist/host/adapted.js.map +1 -0
- package/dist/host/attempt.d.ts +308 -0
- package/dist/host/attempt.d.ts.map +1 -0
- package/dist/host/attempt.js +1199 -0
- package/dist/host/attempt.js.map +1 -0
- package/dist/host/backoff.d.ts.map +1 -0
- package/dist/host/backoff.js.map +1 -0
- package/dist/host/ctx.d.ts +94 -0
- package/dist/host/ctx.d.ts.map +1 -0
- package/dist/host/ctx.js +200 -0
- package/dist/host/ctx.js.map +1 -0
- package/dist/host/deadline.d.ts.map +1 -0
- package/dist/host/deadline.js.map +1 -0
- package/dist/host/dependencies.d.ts.map +1 -0
- package/dist/host/dependencies.js.map +1 -0
- package/dist/host/destination.d.ts +48 -0
- package/dist/host/destination.d.ts.map +1 -0
- package/dist/host/destination.js.map +1 -0
- package/dist/host/facet.d.ts +84 -0
- package/dist/host/facet.d.ts.map +1 -0
- package/dist/host/facet.js.map +1 -0
- package/dist/host/follow.d.ts +52 -0
- package/dist/host/follow.d.ts.map +1 -0
- package/dist/host/follow.js.map +1 -0
- package/dist/host/host.d.ts +571 -0
- package/dist/host/host.d.ts.map +1 -0
- package/dist/host/host.js +1318 -0
- package/dist/host/host.js.map +1 -0
- package/dist/host/index.d.ts +17 -0
- package/dist/host/index.d.ts.map +1 -0
- package/dist/host/index.js.map +1 -0
- package/dist/host/internal.d.ts +11 -0
- package/dist/host/internal.d.ts.map +1 -0
- package/dist/host/internal.js +9 -0
- package/dist/host/internal.js.map +1 -0
- package/dist/host/members.d.ts +50 -0
- package/dist/host/members.d.ts.map +1 -0
- package/dist/host/members.js.map +1 -0
- package/dist/host/native.d.ts +64 -0
- package/dist/host/native.d.ts.map +1 -0
- package/dist/host/native.js +126 -0
- package/dist/host/native.js.map +1 -0
- package/dist/host/object.d.ts +331 -0
- package/dist/host/object.d.ts.map +1 -0
- package/dist/host/object.js +1296 -0
- package/dist/host/object.js.map +1 -0
- package/dist/host/old-work.d.ts +34 -0
- package/dist/host/old-work.d.ts.map +1 -0
- package/dist/host/old-work.js +52 -0
- package/dist/host/old-work.js.map +1 -0
- package/dist/host/parked.d.ts +23 -0
- package/dist/host/parked.d.ts.map +1 -0
- package/dist/host/parked.js.map +1 -0
- package/dist/host/presence.d.ts +34 -0
- package/dist/host/presence.d.ts.map +1 -0
- package/dist/host/presence.js.map +1 -0
- package/dist/host/readiness.d.ts +27 -0
- package/dist/host/readiness.d.ts.map +1 -0
- package/dist/host/readiness.js +134 -0
- package/dist/host/readiness.js.map +1 -0
- package/dist/host/ref-state.d.ts +53 -0
- package/dist/host/ref-state.d.ts.map +1 -0
- package/dist/host/ref-state.js +83 -0
- package/dist/host/ref-state.js.map +1 -0
- package/dist/host/reference-keys.d.ts +36 -0
- package/dist/host/reference-keys.d.ts.map +1 -0
- package/dist/host/reference-keys.js +168 -0
- package/dist/host/reference-keys.js.map +1 -0
- package/dist/host/reference-source.d.ts +65 -0
- package/dist/host/reference-source.d.ts.map +1 -0
- package/dist/host/reference-source.js +285 -0
- package/dist/host/reference-source.js.map +1 -0
- package/dist/host/reference.d.ts +321 -0
- package/dist/host/reference.d.ts.map +1 -0
- package/dist/host/reference.js +797 -0
- package/dist/host/reference.js.map +1 -0
- package/dist/host/reload-cycle.d.ts +16 -0
- package/dist/host/reload-cycle.d.ts.map +1 -0
- package/dist/host/reload-cycle.js +81 -0
- package/dist/host/reload-cycle.js.map +1 -0
- package/dist/host/retry-on.d.ts.map +1 -0
- package/dist/host/retry-on.js.map +1 -0
- package/dist/host/revocation.d.ts +16 -0
- package/dist/host/revocation.d.ts.map +1 -0
- package/dist/host/revocation.js.map +1 -0
- package/dist/host/root.d.ts +37 -0
- package/dist/host/root.d.ts.map +1 -0
- package/dist/host/root.js +68 -0
- package/dist/host/root.js.map +1 -0
- package/dist/host/route.d.ts +64 -0
- package/dist/host/route.d.ts.map +1 -0
- package/dist/host/route.js +227 -0
- package/dist/host/route.js.map +1 -0
- package/dist/host/routines.d.ts +78 -0
- package/dist/host/routines.d.ts.map +1 -0
- package/dist/host/routines.js +398 -0
- package/dist/host/routines.js.map +1 -0
- package/dist/host/sleep.d.ts +9 -0
- package/dist/host/sleep.d.ts.map +1 -0
- package/dist/host/sleep.js.map +1 -0
- package/dist/host/staging.d.ts +94 -0
- package/dist/host/staging.d.ts.map +1 -0
- package/dist/host/staging.js +304 -0
- package/dist/host/staging.js.map +1 -0
- package/dist/host/unbound-clock.d.ts +23 -0
- package/dist/host/unbound-clock.d.ts.map +1 -0
- package/dist/host/unbound-clock.js +58 -0
- package/dist/host/unbound-clock.js.map +1 -0
- package/dist/host/unbound.d.ts +37 -0
- package/dist/host/unbound.d.ts.map +1 -0
- package/dist/host/unbound.js +88 -0
- package/dist/host/unbound.js.map +1 -0
- package/dist/host/uuid.d.ts.map +1 -0
- package/dist/host/uuid.js.map +1 -0
- package/dist/index.d.ts +29 -19
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +20 -10
- package/dist/index.js.map +1 -1
- package/dist/jobs/definition.d.ts.map +1 -0
- package/dist/jobs/definition.js.map +1 -0
- package/dist/jobs/index.d.ts.map +1 -0
- package/dist/jobs/index.js.map +1 -0
- package/dist/jobs/internal.d.ts.map +1 -0
- package/dist/jobs/internal.js.map +1 -0
- package/dist/jobs/job.d.ts +149 -0
- package/dist/jobs/job.d.ts.map +1 -0
- package/dist/jobs/job.js +387 -0
- package/dist/jobs/job.js.map +1 -0
- package/dist/jobs/persisted.d.ts +38 -0
- package/dist/jobs/persisted.d.ts.map +1 -0
- package/dist/jobs/persisted.js.map +1 -0
- package/dist/jobs/records.d.ts +231 -0
- package/dist/jobs/records.d.ts.map +1 -0
- package/dist/jobs/records.js +871 -0
- package/dist/jobs/records.js.map +1 -0
- package/dist/jobs/run-states.d.ts +69 -0
- package/dist/jobs/run-states.d.ts.map +1 -0
- package/dist/jobs/run-states.js +228 -0
- package/dist/jobs/run-states.js.map +1 -0
- package/dist/jobs/run.d.ts +117 -0
- package/dist/jobs/run.d.ts.map +1 -0
- package/dist/jobs/run.js +204 -0
- package/dist/jobs/run.js.map +1 -0
- package/dist/jobs/running.d.ts +44 -0
- package/dist/jobs/running.d.ts.map +1 -0
- package/dist/jobs/running.js.map +1 -0
- package/dist/jobs/stored.d.ts +63 -0
- package/dist/jobs/stored.d.ts.map +1 -0
- package/dist/jobs/stored.js.map +1 -0
- package/dist/link/binary.d.ts.map +1 -0
- package/dist/link/binary.js +544 -0
- package/dist/link/binary.js.map +1 -0
- package/dist/link/channel.d.ts +68 -0
- package/dist/link/channel.d.ts.map +1 -0
- package/dist/link/channel.js +215 -0
- package/dist/link/channel.js.map +1 -0
- package/dist/link/errors.d.ts.map +1 -0
- package/dist/link/errors.js.map +1 -0
- package/dist/link/index.d.ts.map +1 -0
- package/dist/link/index.js.map +1 -0
- package/dist/link/internal.d.ts.map +1 -0
- package/dist/link/internal.js.map +1 -0
- package/dist/link/ipc.d.ts.map +1 -0
- package/dist/link/ipc.js.map +1 -0
- package/dist/link/link.d.ts.map +1 -0
- package/dist/link/link.js.map +1 -0
- package/dist/link/message.d.ts +262 -0
- package/dist/link/message.d.ts.map +1 -0
- package/dist/link/message.js +156 -0
- package/dist/link/message.js.map +1 -0
- package/dist/link/part.d.ts +80 -0
- package/dist/link/part.d.ts.map +1 -0
- package/dist/link/part.js +165 -0
- package/dist/link/part.js.map +1 -0
- package/dist/link/text.d.ts.map +1 -0
- package/dist/link/text.js +355 -0
- package/dist/link/text.js.map +1 -0
- package/dist/link/values.d.ts.map +1 -0
- package/dist/link/values.js +121 -0
- package/dist/link/values.js.map +1 -0
- package/dist/link/websocket.d.ts.map +1 -0
- package/dist/link/websocket.js.map +1 -0
- package/dist/node/app/app.d.ts +269 -0
- package/dist/node/app/app.d.ts.map +1 -0
- package/dist/node/app/app.js +513 -0
- package/dist/node/app/app.js.map +1 -0
- package/dist/node/app/archive.d.ts +37 -0
- package/dist/node/app/archive.d.ts.map +1 -0
- package/dist/node/app/archive.js +204 -0
- package/dist/node/app/archive.js.map +1 -0
- package/dist/node/app/blobs.d.ts +23 -0
- package/dist/node/app/blobs.d.ts.map +1 -0
- package/dist/node/app/blobs.js +64 -0
- package/dist/node/app/blobs.js.map +1 -0
- package/dist/node/app/data.d.ts +35 -0
- package/dist/node/app/data.d.ts.map +1 -0
- package/dist/node/app/data.js +44 -0
- package/dist/node/app/data.js.map +1 -0
- package/dist/node/app/ephemeral-sessions.d.ts +20 -0
- package/dist/node/app/ephemeral-sessions.d.ts.map +1 -0
- package/dist/node/app/ephemeral-sessions.js +69 -0
- package/dist/node/app/ephemeral-sessions.js.map +1 -0
- package/dist/node/app/ephemeral.d.ts +11 -0
- package/dist/node/app/ephemeral.d.ts.map +1 -0
- package/dist/node/app/ephemeral.js +34 -0
- package/dist/node/app/ephemeral.js.map +1 -0
- package/dist/node/app/files-copy.d.ts +13 -0
- package/dist/node/app/files-copy.d.ts.map +1 -0
- package/dist/node/app/files-copy.js +86 -0
- package/dist/node/app/files-copy.js.map +1 -0
- package/dist/node/app/files-entry.d.ts +4 -0
- package/dist/node/app/files-entry.d.ts.map +1 -0
- package/dist/node/app/files-entry.js +7 -0
- package/dist/node/app/files-entry.js.map +1 -0
- package/dist/node/app/files-index.d.ts +180 -0
- package/dist/node/app/files-index.d.ts.map +1 -0
- package/dist/node/app/files-index.js +535 -0
- package/dist/node/app/files-index.js.map +1 -0
- package/dist/node/app/files.d.ts +363 -0
- package/dist/node/app/files.d.ts.map +1 -0
- package/dist/node/app/files.js +368 -0
- package/dist/node/app/files.js.map +1 -0
- package/dist/node/app/folder-views.d.ts +21 -0
- package/dist/node/app/folder-views.d.ts.map +1 -0
- package/dist/node/app/folder-views.js +55 -0
- package/dist/node/app/folder-views.js.map +1 -0
- package/dist/node/app/index.d.ts +12 -0
- package/dist/node/app/index.d.ts.map +1 -0
- package/dist/node/app/index.js +15 -0
- package/dist/node/app/index.js.map +1 -0
- package/dist/node/app/info.d.ts +66 -0
- package/dist/node/app/info.d.ts.map +1 -0
- package/dist/node/app/info.js +37 -0
- package/dist/node/app/info.js.map +1 -0
- package/dist/node/app/invite.d.ts +5 -0
- package/dist/node/app/invite.d.ts.map +1 -0
- package/dist/node/app/invite.js +64 -0
- package/dist/node/app/invite.js.map +1 -0
- package/dist/node/app/layout.d.ts +36 -0
- package/dist/node/app/layout.d.ts.map +1 -0
- package/dist/node/app/layout.js +87 -0
- package/dist/node/app/layout.js.map +1 -0
- package/dist/node/app/owner.d.ts +31 -0
- package/dist/node/app/owner.d.ts.map +1 -0
- package/dist/node/app/owner.js +104 -0
- package/dist/node/app/owner.js.map +1 -0
- package/dist/node/app/pairing.d.ts +55 -0
- package/dist/node/app/pairing.d.ts.map +1 -0
- package/dist/node/app/pairing.js +183 -0
- package/dist/node/app/pairing.js.map +1 -0
- package/dist/node/app/secrets.d.ts +16 -0
- package/dist/node/app/secrets.d.ts.map +1 -0
- package/dist/node/app/secrets.js +72 -0
- package/dist/node/app/secrets.js.map +1 -0
- package/dist/node/app/sessions.d.ts +72 -0
- package/dist/node/app/sessions.d.ts.map +1 -0
- package/dist/node/app/sessions.js +222 -0
- package/dist/node/app/sessions.js.map +1 -0
- package/dist/node/app/tar.d.ts +24 -0
- package/dist/node/app/tar.d.ts.map +1 -0
- package/dist/node/app/tar.js +167 -0
- package/dist/node/app/tar.js.map +1 -0
- package/dist/node/app/uploads.d.ts +37 -0
- package/dist/node/app/uploads.d.ts.map +1 -0
- package/dist/node/app/uploads.js +157 -0
- package/dist/node/app/uploads.js.map +1 -0
- package/dist/node/app/users.d.ts +37 -0
- package/dist/node/app/users.d.ts.map +1 -0
- package/dist/node/app/users.js +62 -0
- package/dist/node/app/users.js.map +1 -0
- package/dist/node/app/worker.d.ts +18 -0
- package/dist/node/app/worker.d.ts.map +1 -0
- package/dist/node/app/worker.js +84 -0
- package/dist/node/app/worker.js.map +1 -0
- package/dist/node/compression.d.ts +7 -0
- package/dist/node/compression.d.ts.map +1 -0
- package/dist/node/compression.js +25 -0
- package/dist/node/compression.js.map +1 -0
- package/dist/node/http/admission.d.ts.map +1 -0
- package/dist/node/http/admission.js.map +1 -0
- package/dist/node/http/authenticate.d.ts +21 -0
- package/dist/node/http/authenticate.d.ts.map +1 -0
- package/dist/node/http/authenticate.js +34 -0
- package/dist/node/http/authenticate.js.map +1 -0
- package/dist/node/http/cookies.d.ts +32 -0
- package/dist/node/http/cookies.d.ts.map +1 -0
- package/dist/node/http/cookies.js +70 -0
- package/dist/node/http/cookies.js.map +1 -0
- package/dist/node/http/file.d.ts.map +1 -0
- package/dist/node/http/file.js.map +1 -0
- package/dist/node/http/headers.d.ts.map +1 -0
- package/dist/node/http/headers.js +136 -0
- package/dist/node/http/headers.js.map +1 -0
- package/dist/node/http/http.d.ts +111 -0
- package/dist/node/http/http.d.ts.map +1 -0
- package/dist/node/http/http.js +524 -0
- package/dist/node/http/http.js.map +1 -0
- package/dist/node/http/incoming.d.ts.map +1 -0
- package/dist/node/http/incoming.js.map +1 -0
- package/dist/node/http/index.d.ts +11 -0
- package/dist/node/http/index.d.ts.map +1 -0
- package/dist/node/http/index.js +12 -0
- package/dist/node/http/index.js.map +1 -0
- package/dist/node/http/node.d.ts.map +1 -0
- package/dist/node/http/node.js.map +1 -0
- package/dist/node/http/request.d.ts +60 -0
- package/dist/node/http/request.d.ts.map +1 -0
- package/dist/node/http/request.js +118 -0
- package/dist/node/http/request.js.map +1 -0
- package/dist/node/http/response.d.ts +63 -0
- package/dist/node/http/response.d.ts.map +1 -0
- package/dist/node/http/response.js.map +1 -0
- package/dist/node/http/router.d.ts +132 -0
- package/dist/node/http/router.d.ts.map +1 -0
- package/dist/node/http/router.js +267 -0
- package/dist/node/http/router.js.map +1 -0
- package/dist/node/http/upgrades.d.ts +61 -0
- package/dist/node/http/upgrades.d.ts.map +1 -0
- package/dist/node/http/upgrades.js +192 -0
- package/dist/node/http/upgrades.js.map +1 -0
- package/dist/node/plugins/base-inputs.d.ts +14 -0
- package/dist/node/plugins/base-inputs.d.ts.map +1 -0
- package/dist/node/plugins/base-inputs.js +33 -0
- package/dist/node/plugins/base-inputs.js.map +1 -0
- package/dist/node/plugins/build.d.ts +77 -0
- package/dist/node/plugins/build.d.ts.map +1 -0
- package/dist/node/plugins/build.js +576 -0
- package/dist/node/plugins/build.js.map +1 -0
- package/dist/node/plugins/css-modules.d.ts +13 -0
- package/dist/node/plugins/css-modules.d.ts.map +1 -0
- package/dist/node/plugins/css-modules.js +58 -0
- package/dist/node/plugins/css-modules.js.map +1 -0
- package/dist/node/plugins/discover.d.ts +67 -0
- package/dist/node/plugins/discover.d.ts.map +1 -0
- package/dist/node/plugins/discover.js +369 -0
- package/dist/node/plugins/discover.js.map +1 -0
- package/dist/node/plugins/evaluate.d.ts +33 -0
- package/dist/node/plugins/evaluate.d.ts.map +1 -0
- package/dist/node/plugins/evaluate.js +121 -0
- package/dist/node/plugins/evaluate.js.map +1 -0
- package/dist/node/plugins/index.d.ts +11 -0
- package/dist/node/plugins/index.d.ts.map +1 -0
- package/dist/node/plugins/index.js +13 -0
- package/dist/node/plugins/index.js.map +1 -0
- package/dist/node/plugins/install.d.ts +38 -0
- package/dist/node/plugins/install.d.ts.map +1 -0
- package/dist/node/plugins/install.js +213 -0
- package/dist/node/plugins/install.js.map +1 -0
- package/dist/node/plugins/plugins.d.ts +162 -0
- package/dist/node/plugins/plugins.d.ts.map +1 -0
- package/dist/node/plugins/plugins.js +244 -0
- package/dist/node/plugins/plugins.js.map +1 -0
- package/dist/node/plugins/runtime.d.ts +57 -0
- package/dist/node/plugins/runtime.d.ts.map +1 -0
- package/dist/node/plugins/runtime.js +92 -0
- package/dist/node/plugins/runtime.js.map +1 -0
- package/dist/node/plugins/stack.d.ts.map +1 -0
- package/dist/node/plugins/stack.js.map +1 -0
- package/dist/node/plugins/testing.d.ts +58 -0
- package/dist/node/plugins/testing.d.ts.map +1 -0
- package/dist/node/plugins/testing.js +210 -0
- package/dist/node/plugins/testing.js.map +1 -0
- package/dist/node/plugins/watcher.d.ts +69 -0
- package/dist/node/plugins/watcher.d.ts.map +1 -0
- package/dist/node/plugins/watcher.js +622 -0
- package/dist/node/plugins/watcher.js.map +1 -0
- package/dist/node/surfaces/bundle.d.ts +31 -0
- package/dist/node/surfaces/bundle.d.ts.map +1 -0
- package/dist/node/surfaces/bundle.js +118 -0
- package/dist/node/surfaces/bundle.js.map +1 -0
- package/dist/node/surfaces/current.d.ts +17 -0
- package/dist/node/surfaces/current.d.ts.map +1 -0
- package/dist/node/surfaces/current.js +54 -0
- package/dist/node/surfaces/current.js.map +1 -0
- package/dist/node/surfaces/index.d.ts +6 -0
- package/dist/node/surfaces/index.d.ts.map +1 -0
- package/dist/node/surfaces/index.js +6 -0
- package/dist/node/surfaces/index.js.map +1 -0
- package/dist/node/surfaces/published.d.ts +27 -0
- package/dist/node/surfaces/published.d.ts.map +1 -0
- package/dist/node/surfaces/published.js +142 -0
- package/dist/node/surfaces/published.js.map +1 -0
- package/dist/node/surfaces/served.d.ts +15 -0
- package/dist/node/surfaces/served.d.ts.map +1 -0
- package/dist/node/surfaces/served.js +42 -0
- package/dist/node/surfaces/served.js.map +1 -0
- package/dist/node/surfaces/surface-build.d.ts +53 -0
- package/dist/node/surfaces/surface-build.d.ts.map +1 -0
- package/dist/node/surfaces/surface-build.js +105 -0
- package/dist/node/surfaces/surface-build.js.map +1 -0
- package/dist/node/surfaces/tui.d.ts +40 -0
- package/dist/node/surfaces/tui.d.ts.map +1 -0
- package/dist/node/surfaces/tui.js +55 -0
- package/dist/node/surfaces/tui.js.map +1 -0
- package/dist/node/surfaces/web.d.ts +56 -0
- package/dist/node/surfaces/web.d.ts.map +1 -0
- package/dist/node/surfaces/web.js +108 -0
- package/dist/node/surfaces/web.js.map +1 -0
- package/dist/node/tui/actions.d.ts +49 -0
- package/dist/node/tui/actions.d.ts.map +1 -0
- package/dist/node/tui/actions.js +195 -0
- package/dist/node/tui/actions.js.map +1 -0
- package/dist/node/tui/credentials.d.ts +17 -0
- package/dist/node/tui/credentials.d.ts.map +1 -0
- package/dist/node/tui/credentials.js +54 -0
- package/dist/node/tui/credentials.js.map +1 -0
- package/dist/node/tui/filter.d.ts +5 -0
- package/dist/node/tui/filter.d.ts.map +1 -0
- package/dist/node/tui/filter.js +79 -0
- package/dist/node/tui/filter.js.map +1 -0
- package/dist/node/tui/index.d.ts +6 -0
- package/dist/node/tui/index.d.ts.map +1 -0
- package/dist/node/tui/index.js +6 -0
- package/dist/node/tui/index.js.map +1 -0
- package/dist/node/tui/launcher.d.ts +40 -0
- package/dist/node/tui/launcher.d.ts.map +1 -0
- package/dist/node/tui/launcher.js +439 -0
- package/dist/node/tui/launcher.js.map +1 -0
- package/dist/node/tui/pipe.d.ts +18 -0
- package/dist/node/tui/pipe.d.ts.map +1 -0
- package/dist/node/tui/pipe.js +134 -0
- package/dist/node/tui/pipe.js.map +1 -0
- package/dist/node/tui/sandbox.d.ts +54 -0
- package/dist/node/tui/sandbox.d.ts.map +1 -0
- package/dist/node/tui/sandbox.js +431 -0
- package/dist/node/tui/sandbox.js.map +1 -0
- package/dist/node/workers/base.d.ts +30 -0
- package/dist/node/workers/base.d.ts.map +1 -0
- package/dist/node/workers/base.js +255 -0
- package/dist/node/workers/base.js.map +1 -0
- package/dist/node/workers/child.d.ts +4 -0
- package/dist/node/workers/child.d.ts.map +1 -0
- package/dist/node/workers/child.js +6 -0
- package/dist/node/workers/child.js.map +1 -0
- package/dist/node/workers/control.d.ts +83 -0
- package/dist/node/workers/control.d.ts.map +1 -0
- package/dist/node/workers/control.js +77 -0
- package/dist/node/workers/control.js.map +1 -0
- package/dist/node/workers/index.d.ts +4 -0
- package/dist/node/workers/index.d.ts.map +1 -0
- package/dist/node/workers/index.js +7 -0
- package/dist/node/workers/index.js.map +1 -0
- package/dist/node/workers/lock.d.ts +30 -0
- package/dist/node/workers/lock.d.ts.map +1 -0
- package/dist/node/workers/lock.js +180 -0
- package/dist/node/workers/lock.js.map +1 -0
- package/dist/node/workers/main.d.ts +46 -0
- package/dist/node/workers/main.d.ts.map +1 -0
- package/dist/node/workers/main.js +230 -0
- package/dist/node/workers/main.js.map +1 -0
- package/dist/node/workers/process.d.ts +42 -0
- package/dist/node/workers/process.d.ts.map +1 -0
- package/dist/node/workers/process.js +125 -0
- package/dist/node/workers/process.js.map +1 -0
- package/dist/node/workers/workers.d.ts +122 -0
- package/dist/node/workers/workers.d.ts.map +1 -0
- package/dist/node/workers/workers.js +677 -0
- package/dist/node/workers/workers.js.map +1 -0
- package/dist/react/hooks.d.ts +43 -0
- package/dist/react/hooks.d.ts.map +1 -0
- package/dist/react/hooks.js +82 -0
- package/dist/react/hooks.js.map +1 -0
- package/dist/react/index.d.ts +3 -0
- package/dist/react/index.d.ts.map +1 -0
- package/dist/react/index.js +4 -0
- package/dist/react/index.js.map +1 -0
- package/dist/react/stores.d.ts +9 -0
- package/dist/react/stores.d.ts.map +1 -0
- package/dist/react/stores.js +37 -0
- package/dist/react/stores.js.map +1 -0
- package/dist/registries/contribution.d.ts.map +1 -0
- package/dist/registries/contribution.js.map +1 -0
- package/dist/registries/entries.d.ts.map +1 -0
- package/dist/registries/entries.js.map +1 -0
- package/dist/registries/index.d.ts.map +1 -0
- package/dist/registries/index.js.map +1 -0
- package/dist/registries/internal.d.ts.map +1 -0
- package/dist/registries/internal.js.map +1 -0
- package/dist/registries/record.d.ts +115 -0
- package/dist/registries/record.d.ts.map +1 -0
- package/dist/registries/record.js +283 -0
- package/dist/registries/record.js.map +1 -0
- package/dist/registries/registry.d.ts +74 -0
- package/dist/registries/registry.d.ts.map +1 -0
- package/dist/registries/registry.js.map +1 -0
- package/dist/registries/value.d.ts.map +1 -0
- package/dist/registries/value.js +224 -0
- package/dist/registries/value.js.map +1 -0
- package/dist/remote/calls.d.ts.map +1 -0
- package/dist/remote/calls.js.map +1 -0
- package/dist/remote/consumer.d.ts +43 -0
- package/dist/remote/consumer.d.ts.map +1 -0
- package/dist/remote/consumer.js +350 -0
- package/dist/remote/consumer.js.map +1 -0
- package/dist/remote/hold.d.ts +141 -0
- package/dist/remote/hold.d.ts.map +1 -0
- package/dist/remote/hold.js +579 -0
- package/dist/remote/hold.js.map +1 -0
- package/dist/remote/host-link.d.ts +77 -0
- package/dist/remote/host-link.d.ts.map +1 -0
- package/dist/remote/host-link.js +184 -0
- package/dist/remote/host-link.js.map +1 -0
- package/dist/remote/internal.d.ts.map +1 -0
- package/dist/remote/internal.js.map +1 -0
- package/dist/remote/path.d.ts.map +1 -0
- package/dist/remote/path.js.map +1 -0
- package/dist/remote/provider.d.ts +89 -0
- package/dist/remote/provider.d.ts.map +1 -0
- package/dist/remote/provider.js +597 -0
- package/dist/remote/provider.js.map +1 -0
- package/dist/remote/relay.d.ts +69 -0
- package/dist/remote/relay.d.ts.map +1 -0
- package/dist/remote/relay.js +219 -0
- package/dist/remote/relay.js.map +1 -0
- package/dist/remote/remote-object.d.ts +138 -0
- package/dist/remote/remote-object.d.ts.map +1 -0
- package/dist/remote/remote-object.js +492 -0
- package/dist/remote/remote-object.js.map +1 -0
- package/dist/remote/replica.d.ts +59 -0
- package/dist/remote/replica.d.ts.map +1 -0
- package/dist/remote/replica.js +125 -0
- package/dist/remote/replica.js.map +1 -0
- package/dist/sqlite/node.d.ts +9 -1
- package/dist/sqlite/node.d.ts.map +1 -1
- package/dist/sqlite/node.js +9 -3
- package/dist/sqlite/node.js.map +1 -1
- package/dist/state/batch.d.ts +64 -0
- package/dist/state/batch.d.ts.map +1 -0
- package/dist/state/batch.js +164 -0
- package/dist/state/batch.js.map +1 -0
- package/dist/state/derive.d.ts +52 -0
- package/dist/state/derive.d.ts.map +1 -0
- package/dist/state/derive.js +182 -0
- package/dist/state/derive.js.map +1 -0
- package/dist/state/index.d.ts +6 -0
- package/dist/state/index.d.ts.map +1 -0
- package/dist/state/index.js.map +1 -0
- package/dist/state/internal.d.ts.map +1 -0
- package/dist/state/internal.js.map +1 -0
- package/dist/state/native-source.d.ts +106 -0
- package/dist/state/native-source.d.ts.map +1 -0
- package/dist/state/native-source.js +240 -0
- package/dist/state/native-source.js.map +1 -0
- package/dist/state/watchable.d.ts +114 -0
- package/dist/state/watchable.d.ts.map +1 -0
- package/dist/state/watchable.js +156 -0
- package/dist/state/watchable.js.map +1 -0
- package/dist/state/writable.d.ts +32 -0
- package/dist/state/writable.d.ts.map +1 -0
- package/dist/state/writable.js.map +1 -0
- package/dist/store/adapter.d.ts +67 -0
- package/dist/store/adapter.d.ts.map +1 -0
- package/dist/store/adapter.js.map +1 -0
- package/dist/store/allocator.d.ts.map +1 -0
- package/dist/store/allocator.js.map +1 -0
- package/dist/store/applier.d.ts.map +1 -0
- package/dist/store/applier.js.map +1 -0
- package/dist/store/apply-batch.d.ts +12 -0
- package/dist/store/apply-batch.d.ts.map +1 -0
- package/dist/store/apply-batch.js.map +1 -0
- package/dist/store/archive.d.ts +32 -0
- package/dist/store/archive.d.ts.map +1 -0
- package/dist/store/archive.js +130 -0
- package/dist/store/archive.js.map +1 -0
- package/dist/store/backend.d.ts +10 -0
- package/dist/store/backend.d.ts.map +1 -0
- package/dist/store/backend.js.map +1 -0
- package/dist/store/catalog.d.ts +24 -0
- package/dist/store/catalog.d.ts.map +1 -0
- package/dist/store/catalog.js.map +1 -0
- package/dist/store/claims.d.ts.map +1 -0
- package/dist/store/claims.js.map +1 -0
- package/dist/store/columns.d.ts.map +1 -0
- package/dist/store/columns.js.map +1 -0
- package/dist/store/engine.d.ts +176 -0
- package/dist/store/engine.d.ts.map +1 -0
- package/dist/store/engine.js +283 -0
- package/dist/store/engine.js.map +1 -0
- package/dist/store/evaluate.d.ts +17 -0
- package/dist/store/evaluate.d.ts.map +1 -0
- package/dist/store/evaluate.js.map +1 -0
- package/dist/store/export.d.ts +17 -0
- package/dist/store/export.d.ts.map +1 -0
- package/dist/store/export.js +200 -0
- package/dist/store/export.js.map +1 -0
- package/dist/store/expression.d.ts +150 -0
- package/dist/store/expression.d.ts.map +1 -0
- package/dist/store/expression.js.map +1 -0
- package/dist/store/import.d.ts +10 -0
- package/dist/store/import.d.ts.map +1 -0
- package/dist/store/import.js +276 -0
- package/dist/store/import.js.map +1 -0
- package/dist/store/index.d.ts.map +1 -0
- package/dist/store/index.js.map +1 -0
- package/dist/store/json-column.d.ts +33 -0
- package/dist/store/json-column.d.ts.map +1 -0
- package/dist/store/json-column.js +62 -0
- package/dist/store/json-column.js.map +1 -0
- package/dist/store/jsonl.d.ts.map +1 -0
- package/dist/store/jsonl.js.map +1 -0
- package/dist/store/live-query.d.ts +108 -0
- package/dist/store/live-query.d.ts.map +1 -0
- package/dist/store/live-query.js +254 -0
- package/dist/store/live-query.js.map +1 -0
- package/dist/store/outbox.d.ts +26 -0
- package/dist/store/outbox.d.ts.map +1 -0
- package/dist/store/outbox.js.map +1 -0
- package/dist/store/query.d.ts +39 -0
- package/dist/store/query.d.ts.map +1 -0
- package/dist/store/query.js.map +1 -0
- package/dist/store/refusal.d.ts.map +1 -0
- package/dist/store/refusal.js.map +1 -0
- package/dist/store/rows.d.ts +80 -0
- package/dist/store/rows.d.ts.map +1 -0
- package/dist/store/rows.js.map +1 -0
- package/dist/store/schema.d.ts +25 -0
- package/dist/store/schema.d.ts.map +1 -0
- package/dist/store/schema.js +115 -0
- package/dist/store/schema.js.map +1 -0
- package/dist/store/sql.d.ts +73 -0
- package/dist/store/sql.d.ts.map +1 -0
- package/dist/store/sql.js.map +1 -0
- package/dist/store/step.d.ts +50 -0
- package/dist/store/step.d.ts.map +1 -0
- package/dist/store/step.js +52 -0
- package/dist/store/step.js.map +1 -0
- package/dist/store/store.d.ts +171 -0
- package/dist/store/store.d.ts.map +1 -0
- package/dist/store/store.js +818 -0
- package/dist/store/store.js.map +1 -0
- package/dist/store/table-changes.d.ts +29 -0
- package/dist/store/table-changes.d.ts.map +1 -0
- package/dist/store/table-changes.js.map +1 -0
- package/dist/store/table-evolve.d.ts.map +1 -0
- package/dist/store/table-evolve.js.map +1 -0
- package/dist/store/table-handle.d.ts +73 -0
- package/dist/store/table-handle.d.ts.map +1 -0
- package/dist/store/table-handle.js +101 -0
- package/dist/store/table-handle.js.map +1 -0
- package/dist/store/table-history.d.ts.map +1 -0
- package/dist/store/table-history.js.map +1 -0
- package/dist/store/table-migration.d.ts +16 -0
- package/dist/store/table-migration.d.ts.map +1 -0
- package/dist/store/table-migration.js +202 -0
- package/dist/store/table-migration.js.map +1 -0
- package/dist/store/table-writes.d.ts.map +1 -0
- package/dist/store/table-writes.js +170 -0
- package/dist/store/table-writes.js.map +1 -0
- package/dist/store/table.d.ts +80 -0
- package/dist/store/table.d.ts.map +1 -0
- package/dist/store/table.js.map +1 -0
- package/dist/store/text.d.ts.map +1 -0
- package/dist/store/text.js.map +1 -0
- package/dist/store/writes.d.ts.map +1 -0
- package/dist/store/writes.js.map +1 -0
- package/dist/surfaces/active-language.d.ts +20 -0
- package/dist/surfaces/active-language.d.ts.map +1 -0
- package/dist/surfaces/active-language.js +78 -0
- package/dist/surfaces/active-language.js.map +1 -0
- package/dist/surfaces/active-theme.d.ts +16 -0
- package/dist/surfaces/active-theme.d.ts.map +1 -0
- package/dist/surfaces/active-theme.js +47 -0
- package/dist/surfaces/active-theme.js.map +1 -0
- package/dist/surfaces/client.d.ts +96 -0
- package/dist/surfaces/client.d.ts.map +1 -0
- package/dist/surfaces/client.js +264 -0
- package/dist/surfaces/client.js.map +1 -0
- package/dist/surfaces/connection.d.ts +49 -0
- package/dist/surfaces/connection.d.ts.map +1 -0
- package/dist/surfaces/connection.js +142 -0
- package/dist/surfaces/connection.js.map +1 -0
- package/dist/surfaces/format.d.ts +5 -0
- package/dist/surfaces/format.d.ts.map +1 -0
- package/dist/surfaces/format.js +37 -0
- package/dist/surfaces/format.js.map +1 -0
- package/dist/surfaces/index.d.ts +15 -0
- package/dist/surfaces/index.d.ts.map +1 -0
- package/dist/surfaces/index.js +18 -0
- package/dist/surfaces/index.js.map +1 -0
- package/dist/surfaces/language.d.ts +53 -0
- package/dist/surfaces/language.d.ts.map +1 -0
- package/dist/surfaces/language.js +74 -0
- package/dist/surfaces/language.js.map +1 -0
- package/dist/surfaces/loaded.d.ts +42 -0
- package/dist/surfaces/loaded.d.ts.map +1 -0
- package/dist/surfaces/loaded.js +116 -0
- package/dist/surfaces/loaded.js.map +1 -0
- package/dist/surfaces/locale-choice.d.ts +25 -0
- package/dist/surfaces/locale-choice.d.ts.map +1 -0
- package/dist/surfaces/locale-choice.js +14 -0
- package/dist/surfaces/locale-choice.js.map +1 -0
- package/dist/surfaces/messages.d.ts +67 -0
- package/dist/surfaces/messages.d.ts.map +1 -0
- package/dist/surfaces/messages.js +112 -0
- package/dist/surfaces/messages.js.map +1 -0
- package/dist/surfaces/page-state.d.ts +14 -0
- package/dist/surfaces/page-state.d.ts.map +1 -0
- package/dist/surfaces/page-state.js +43 -0
- package/dist/surfaces/page-state.js.map +1 -0
- package/dist/surfaces/preference.d.ts +32 -0
- package/dist/surfaces/preference.d.ts.map +1 -0
- package/dist/surfaces/preference.js +72 -0
- package/dist/surfaces/preference.js.map +1 -0
- package/dist/surfaces/registered.d.ts +33 -0
- package/dist/surfaces/registered.d.ts.map +1 -0
- package/dist/surfaces/registered.js +51 -0
- package/dist/surfaces/registered.js.map +1 -0
- package/dist/surfaces/scripts.d.ts +84 -0
- package/dist/surfaces/scripts.d.ts.map +1 -0
- package/dist/surfaces/scripts.js +28 -0
- package/dist/surfaces/scripts.js.map +1 -0
- package/dist/surfaces/theme-choice.d.ts +31 -0
- package/dist/surfaces/theme-choice.d.ts.map +1 -0
- package/dist/surfaces/theme-choice.js +18 -0
- package/dist/surfaces/theme-choice.js.map +1 -0
- package/dist/surfaces/themes.d.ts +43 -0
- package/dist/surfaces/themes.d.ts.map +1 -0
- package/dist/surfaces/themes.js +110 -0
- package/dist/surfaces/themes.js.map +1 -0
- package/dist/surfaces/translations.d.ts +29 -0
- package/dist/surfaces/translations.d.ts.map +1 -0
- package/dist/surfaces/translations.js +57 -0
- package/dist/surfaces/translations.js.map +1 -0
- package/dist/sync/batch.d.ts +18 -0
- package/dist/sync/batch.d.ts.map +1 -0
- package/dist/sync/batch.js +125 -0
- package/dist/sync/batch.js.map +1 -0
- package/dist/sync/client.d.ts +166 -0
- package/dist/sync/client.d.ts.map +1 -0
- package/dist/sync/client.js +438 -0
- package/dist/sync/client.js.map +1 -0
- package/dist/sync/files.d.ts +46 -0
- package/dist/sync/files.d.ts.map +1 -0
- package/dist/sync/files.js +13 -0
- package/dist/sync/files.js.map +1 -0
- package/dist/sync/filesystem.d.ts +37 -0
- package/dist/sync/filesystem.d.ts.map +1 -0
- package/dist/sync/filesystem.js +185 -0
- package/dist/sync/filesystem.js.map +1 -0
- package/dist/sync/index.d.ts +8 -0
- package/dist/sync/index.d.ts.map +1 -0
- package/dist/sync/index.js +9 -0
- package/dist/sync/index.js.map +1 -0
- package/dist/sync/lines.d.ts +18 -0
- package/dist/sync/lines.d.ts.map +1 -0
- package/dist/sync/lines.js +46 -0
- package/dist/sync/lines.js.map +1 -0
- package/dist/sync/remote.d.ts +130 -0
- package/dist/sync/remote.d.ts.map +1 -0
- package/dist/sync/remote.js +46 -0
- package/dist/sync/remote.js.map +1 -0
- package/dist/sync/state.d.ts +17 -0
- package/dist/sync/state.d.ts.map +1 -0
- package/dist/sync/state.js +40 -0
- package/dist/sync/state.js.map +1 -0
- package/dist/telemetry-ingest/batch.d.ts +70 -0
- package/dist/telemetry-ingest/batch.d.ts.map +1 -0
- package/dist/telemetry-ingest/batch.js +110 -0
- package/dist/telemetry-ingest/batch.js.map +1 -0
- package/dist/telemetry-ingest/facet.d.ts +21 -0
- package/dist/telemetry-ingest/facet.d.ts.map +1 -0
- package/dist/telemetry-ingest/facet.js +96 -0
- package/dist/telemetry-ingest/facet.js.map +1 -0
- package/dist/telemetry-ingest/index.d.ts +5 -0
- package/dist/telemetry-ingest/index.d.ts.map +1 -0
- package/dist/telemetry-ingest/index.js +8 -0
- package/dist/telemetry-ingest/index.js.map +1 -0
- package/dist/telemetry-ingest/recorder.d.ts +50 -0
- package/dist/telemetry-ingest/recorder.d.ts.map +1 -0
- package/dist/telemetry-ingest/recorder.js +298 -0
- package/dist/telemetry-ingest/recorder.js.map +1 -0
- package/dist/telemetry-ingest/sender.d.ts +14 -0
- package/dist/telemetry-ingest/sender.d.ts.map +1 -0
- package/dist/telemetry-ingest/sender.js +64 -0
- package/dist/telemetry-ingest/sender.js.map +1 -0
- package/dist/telemetry-sqlite/index.d.ts +13 -4
- package/dist/telemetry-sqlite/index.d.ts.map +1 -1
- package/dist/telemetry-sqlite/index.js +81 -241
- package/dist/telemetry-sqlite/index.js.map +1 -1
- package/dist/telemetry-sqlite/node.d.ts +13 -0
- package/dist/telemetry-sqlite/node.d.ts.map +1 -0
- package/dist/telemetry-sqlite/node.js +27 -0
- package/dist/telemetry-sqlite/node.js.map +1 -0
- package/dist/telemetry-sqlite/schema.d.ts +9 -0
- package/dist/telemetry-sqlite/schema.d.ts.map +1 -0
- package/dist/telemetry-sqlite/schema.js +61 -0
- package/dist/telemetry-sqlite/schema.js.map +1 -0
- package/dist/telemetry-sqlite/store.d.ts +3 -0
- package/dist/telemetry-sqlite/store.d.ts.map +1 -1
- package/dist/telemetry-sqlite/store.js +24 -13
- package/dist/telemetry-sqlite/store.js.map +1 -1
- package/dist/telemetry.d.ts +937 -0
- package/dist/telemetry.d.ts.map +1 -0
- package/dist/telemetry.js +470 -0
- package/dist/telemetry.js.map +1 -0
- package/dist/tui/bridge.d.ts +112 -0
- package/dist/tui/bridge.d.ts.map +1 -0
- package/dist/tui/bridge.js +9 -0
- package/dist/tui/bridge.js.map +1 -0
- package/dist/tui/channel.d.ts +44 -0
- package/dist/tui/channel.d.ts.map +1 -0
- package/dist/tui/channel.js +150 -0
- package/dist/tui/channel.js.map +1 -0
- package/dist/tui/frames.d.ts +5 -0
- package/dist/tui/frames.d.ts.map +1 -0
- package/dist/tui/frames.js +52 -0
- package/dist/tui/frames.js.map +1 -0
- package/dist/tui/index.d.ts +7 -0
- package/dist/tui/index.d.ts.map +1 -0
- package/dist/tui/index.js +8 -0
- package/dist/tui/index.js.map +1 -0
- package/dist/tui/runtime.d.ts +46 -0
- package/dist/tui/runtime.d.ts.map +1 -0
- package/dist/tui/runtime.js +101 -0
- package/dist/tui/runtime.js.map +1 -0
- package/dist/tui/scope.d.ts +46 -0
- package/dist/tui/scope.d.ts.map +1 -0
- package/dist/tui/scope.js +141 -0
- package/dist/tui/scope.js.map +1 -0
- package/dist/tui/terminal.d.ts +15 -0
- package/dist/tui/terminal.d.ts.map +1 -0
- package/dist/tui/terminal.js +37 -0
- package/dist/tui/terminal.js.map +1 -0
- package/dist/tui/theme.d.ts +17 -0
- package/dist/tui/theme.d.ts.map +1 -0
- package/dist/tui/theme.js +38 -0
- package/dist/tui/theme.js.map +1 -0
- package/dist/web/environment.d.ts +4 -0
- package/dist/web/environment.d.ts.map +1 -0
- package/dist/web/environment.js +37 -0
- package/dist/web/environment.js.map +1 -0
- package/dist/web/index.d.ts +5 -0
- package/dist/web/index.d.ts.map +1 -0
- package/dist/web/index.js +7 -0
- package/dist/web/index.js.map +1 -0
- package/dist/web/language.d.ts +7 -0
- package/dist/web/language.d.ts.map +1 -0
- package/dist/web/language.js +21 -0
- package/dist/web/language.js.map +1 -0
- package/dist/web/page.d.ts +29 -0
- package/dist/web/page.d.ts.map +1 -0
- package/dist/web/page.js +92 -0
- package/dist/web/page.js.map +1 -0
- package/dist/web/scripts.d.ts +23 -0
- package/dist/web/scripts.d.ts.map +1 -0
- package/dist/web/scripts.js +50 -0
- package/dist/web/scripts.js.map +1 -0
- package/dist/web/styles.d.ts +17 -0
- package/dist/web/styles.d.ts.map +1 -0
- package/dist/web/styles.js +218 -0
- package/dist/web/styles.js.map +1 -0
- package/dist/web/themes.d.ts +6 -0
- package/dist/web/themes.d.ts.map +1 -0
- package/dist/web/themes.js +31 -0
- package/dist/web/themes.js.map +1 -0
- package/docs/benchmarks.md +1036 -0
- package/docs/decisions.md +3436 -0
- package/docs/dependencies/book.md +1671 -0
- package/docs/dependencies/index.html +2641 -0
- package/docs/design.md +3065 -0
- package/docs/durable-observers/book.md +432 -0
- package/docs/durable-observers/index.html +517 -0
- package/docs/guide-plugins-hosts/book.md +957 -0
- package/docs/guide-plugins-hosts/index.html +952 -0
- package/docs/http-workers/book.md +378 -0
- package/docs/http-workers/index.html +515 -0
- package/docs/i18n/book.md +217 -0
- package/docs/i18n/index.html +344 -0
- package/docs/layer-1.md +311 -0
- package/docs/layer-2.md +216 -0
- package/docs/p3-features/README.md +6 -0
- package/docs/p3-features/book.md +478 -0
- package/docs/plugin-authoring.md +276 -0
- package/docs/plugin-model/book.md +186 -0
- package/docs/plugin-model/index.html +310 -0
- package/docs/plugin-primer/book.md +273 -0
- package/docs/plugin-primer/index.html +430 -0
- package/docs/slice-1.md +236 -0
- package/docs/slice-10.md +288 -0
- package/docs/slice-11.md +114 -0
- package/docs/slice-12.md +132 -0
- package/docs/slice-13.md +121 -0
- package/docs/slice-2.md +174 -0
- package/docs/slice-3a.md +296 -0
- package/docs/slice-3b.md +197 -0
- package/docs/slice-4a.md +418 -0
- package/docs/slice-4b.md +208 -0
- package/docs/slice-6a.md +676 -0
- package/docs/slice-6b.md +332 -0
- package/docs/slice-7b/book.md +608 -0
- package/docs/slice-7b/index.html +842 -0
- package/docs/slice-7b.md +255 -0
- package/docs/slice-7c.md +165 -0
- package/docs/slice-9.md +110 -0
- package/docs/slices.md +241 -0
- package/docs/store/book.md +670 -0
- package/docs/store/index.html +861 -0
- package/docs/store/walkthrough.md +193 -0
- package/docs/theming/book.md +223 -0
- package/docs/theming/index.html +371 -0
- package/docs/tutorial/book.md +2169 -0
- package/docs/tutorial/index.html +2112 -0
- package/docs/tutorial/screens/click-after.png +0 -0
- package/docs/tutorial/screens/click-before.png +0 -0
- package/docs/tutorial/screens/edited.png +0 -0
- package/docs/tutorial/screens/french.png +0 -0
- package/docs/tutorial/screens/harbor.png +0 -0
- package/docs/tutorial/screens/page.png +0 -0
- package/docs/tutorial/screens/traces-ada.png +0 -0
- package/docs/tutorial/screens/traces.png +0 -0
- package/package.json +99 -21
- package/dist/cell.d.ts +0 -122
- package/dist/cell.d.ts.map +0 -1
- package/dist/cell.js +0 -356
- package/dist/cell.js.map +0 -1
- package/dist/cluster.d.ts +0 -27
- package/dist/cluster.d.ts.map +0 -1
- package/dist/cluster.js +0 -230
- package/dist/cluster.js.map +0 -1
- package/dist/connection.d.ts +0 -270
- package/dist/connection.d.ts.map +0 -1
- package/dist/connection.js +0 -1216
- package/dist/connection.js.map +0 -1
- package/dist/contract.d.ts +0 -207
- package/dist/contract.d.ts.map +0 -1
- package/dist/contract.js +0 -241
- package/dist/contract.js.map +0 -1
- package/dist/declare.d.ts +0 -33
- package/dist/declare.d.ts.map +0 -1
- package/dist/declare.js +0 -2
- package/dist/declare.js.map +0 -1
- package/dist/errors.d.ts +0 -28
- package/dist/errors.d.ts.map +0 -1
- package/dist/errors.js +0 -59
- package/dist/errors.js.map +0 -1
- package/dist/host.d.ts +0 -348
- package/dist/host.d.ts.map +0 -1
- package/dist/host.js +0 -1002
- package/dist/host.js.map +0 -1
- package/dist/link.d.ts +0 -107
- package/dist/link.d.ts.map +0 -1
- package/dist/link.js +0 -355
- package/dist/link.js.map +0 -1
- package/dist/loader.d.ts +0 -4
- package/dist/loader.d.ts.map +0 -1
- package/dist/loader.js +0 -73
- package/dist/loader.js.map +0 -1
- package/dist/manager.d.ts +0 -115
- package/dist/manager.d.ts.map +0 -1
- package/dist/manager.js +0 -345
- package/dist/manager.js.map +0 -1
- package/dist/next/contracts/accepts.d.ts +0 -81
- package/dist/next/contracts/accepts.d.ts.map +0 -1
- package/dist/next/contracts/accepts.js.map +0 -1
- package/dist/next/contracts/contract.d.ts +0 -121
- package/dist/next/contracts/contract.d.ts.map +0 -1
- package/dist/next/contracts/contract.js.map +0 -1
- package/dist/next/contracts/declare.d.ts.map +0 -1
- package/dist/next/contracts/declare.js.map +0 -1
- package/dist/next/contracts/evolve.d.ts.map +0 -1
- package/dist/next/contracts/evolve.js.map +0 -1
- package/dist/next/contracts/fingerprint.d.ts +0 -16
- package/dist/next/contracts/fingerprint.d.ts.map +0 -1
- package/dist/next/contracts/fingerprint.js.map +0 -1
- package/dist/next/contracts/history.d.ts.map +0 -1
- package/dist/next/contracts/history.js.map +0 -1
- package/dist/next/contracts/host-kind.d.ts.map +0 -1
- package/dist/next/contracts/host-kind.js.map +0 -1
- package/dist/next/contracts/index.d.ts.map +0 -1
- package/dist/next/contracts/index.js.map +0 -1
- package/dist/next/contracts/internal.d.ts.map +0 -1
- package/dist/next/contracts/internal.js.map +0 -1
- package/dist/next/contracts/names.d.ts.map +0 -1
- package/dist/next/contracts/names.js.map +0 -1
- package/dist/next/contracts/params.d.ts +0 -28
- package/dist/next/contracts/params.d.ts.map +0 -1
- package/dist/next/contracts/params.js.map +0 -1
- package/dist/next/contracts/schema.d.ts.map +0 -1
- package/dist/next/contracts/schema.js.map +0 -1
- package/dist/next/contracts/snapshot.d.ts +0 -16
- package/dist/next/contracts/snapshot.d.ts.map +0 -1
- package/dist/next/contracts/snapshot.js +0 -167
- package/dist/next/contracts/snapshot.js.map +0 -1
- package/dist/next/data/args.d.ts +0 -50
- package/dist/next/data/args.d.ts.map +0 -1
- package/dist/next/data/args.js.map +0 -1
- package/dist/next/data/errors.d.ts +0 -73
- package/dist/next/data/errors.d.ts.map +0 -1
- package/dist/next/data/errors.js +0 -107
- package/dist/next/data/errors.js.map +0 -1
- package/dist/next/data/failure.d.ts.map +0 -1
- package/dist/next/data/failure.js +0 -72
- package/dist/next/data/failure.js.map +0 -1
- package/dist/next/data/index.d.ts +0 -4
- package/dist/next/data/index.d.ts.map +0 -1
- package/dist/next/data/index.js +0 -4
- package/dist/next/data/index.js.map +0 -1
- package/dist/next/data/internal.d.ts +0 -7
- package/dist/next/data/internal.d.ts.map +0 -1
- package/dist/next/data/internal.js +0 -8
- package/dist/next/data/internal.js.map +0 -1
- package/dist/next/data/params.d.ts +0 -20
- package/dist/next/data/params.d.ts.map +0 -1
- package/dist/next/data/params.js.map +0 -1
- package/dist/next/data/principal.d.ts +0 -17
- package/dist/next/data/principal.d.ts.map +0 -1
- package/dist/next/data/principal.js +0 -41
- package/dist/next/data/principal.js.map +0 -1
- package/dist/next/data/validator.d.ts +0 -12
- package/dist/next/data/validator.d.ts.map +0 -1
- package/dist/next/data/validator.js +0 -34
- package/dist/next/data/validator.js.map +0 -1
- package/dist/next/documents/address-source.d.ts +0 -20
- package/dist/next/documents/address-source.d.ts.map +0 -1
- package/dist/next/documents/address-source.js.map +0 -1
- package/dist/next/documents/definition.d.ts +0 -84
- package/dist/next/documents/definition.d.ts.map +0 -1
- package/dist/next/documents/definition.js +0 -73
- package/dist/next/documents/definition.js.map +0 -1
- package/dist/next/documents/documents.d.ts +0 -106
- package/dist/next/documents/documents.d.ts.map +0 -1
- package/dist/next/documents/documents.js +0 -224
- package/dist/next/documents/documents.js.map +0 -1
- package/dist/next/documents/fence.d.ts.map +0 -1
- package/dist/next/documents/fence.js.map +0 -1
- package/dist/next/documents/handles.d.ts +0 -76
- package/dist/next/documents/handles.d.ts.map +0 -1
- package/dist/next/documents/handles.js.map +0 -1
- package/dist/next/documents/index.d.ts.map +0 -1
- package/dist/next/documents/index.js.map +0 -1
- package/dist/next/documents/internal.d.ts +0 -9
- package/dist/next/documents/internal.d.ts.map +0 -1
- package/dist/next/documents/internal.js.map +0 -1
- package/dist/next/documents/keyed-slot.d.ts +0 -103
- package/dist/next/documents/keyed-slot.d.ts.map +0 -1
- package/dist/next/documents/keyed-slot.js +0 -395
- package/dist/next/documents/keyed-slot.js.map +0 -1
- package/dist/next/documents/line.d.ts.map +0 -1
- package/dist/next/documents/line.js.map +0 -1
- package/dist/next/documents/persistence.d.ts +0 -104
- package/dist/next/documents/persistence.d.ts.map +0 -1
- package/dist/next/documents/persistence.js +0 -128
- package/dist/next/documents/persistence.js.map +0 -1
- package/dist/next/documents/residency.d.ts +0 -31
- package/dist/next/documents/residency.d.ts.map +0 -1
- package/dist/next/documents/residency.js.map +0 -1
- package/dist/next/documents/slot.d.ts +0 -109
- package/dist/next/documents/slot.d.ts.map +0 -1
- package/dist/next/documents/slot.js +0 -181
- package/dist/next/documents/slot.js.map +0 -1
- package/dist/next/documents/transaction.d.ts +0 -133
- package/dist/next/documents/transaction.d.ts.map +0 -1
- package/dist/next/documents/transaction.js +0 -409
- package/dist/next/documents/transaction.js.map +0 -1
- package/dist/next/host/activity.d.ts +0 -31
- package/dist/next/host/activity.d.ts.map +0 -1
- package/dist/next/host/activity.js +0 -40
- package/dist/next/host/activity.js.map +0 -1
- package/dist/next/host/adapted.d.ts +0 -49
- package/dist/next/host/adapted.d.ts.map +0 -1
- package/dist/next/host/adapted.js.map +0 -1
- package/dist/next/host/attempt.d.ts +0 -278
- package/dist/next/host/attempt.d.ts.map +0 -1
- package/dist/next/host/attempt.js +0 -1072
- package/dist/next/host/attempt.js.map +0 -1
- package/dist/next/host/backoff.d.ts.map +0 -1
- package/dist/next/host/backoff.js.map +0 -1
- package/dist/next/host/ctx.d.ts +0 -47
- package/dist/next/host/ctx.d.ts.map +0 -1
- package/dist/next/host/ctx.js +0 -108
- package/dist/next/host/ctx.js.map +0 -1
- package/dist/next/host/deadline.d.ts.map +0 -1
- package/dist/next/host/deadline.js.map +0 -1
- package/dist/next/host/dependencies.d.ts.map +0 -1
- package/dist/next/host/dependencies.js.map +0 -1
- package/dist/next/host/destination.d.ts +0 -48
- package/dist/next/host/destination.d.ts.map +0 -1
- package/dist/next/host/destination.js.map +0 -1
- package/dist/next/host/facet.d.ts +0 -79
- package/dist/next/host/facet.d.ts.map +0 -1
- package/dist/next/host/facet.js.map +0 -1
- package/dist/next/host/follow.d.ts +0 -52
- package/dist/next/host/follow.d.ts.map +0 -1
- package/dist/next/host/follow.js.map +0 -1
- package/dist/next/host/host.d.ts +0 -495
- package/dist/next/host/host.d.ts.map +0 -1
- package/dist/next/host/host.js +0 -1075
- package/dist/next/host/host.js.map +0 -1
- package/dist/next/host/index.d.ts +0 -17
- package/dist/next/host/index.d.ts.map +0 -1
- package/dist/next/host/index.js.map +0 -1
- package/dist/next/host/internal.d.ts +0 -10
- package/dist/next/host/internal.d.ts.map +0 -1
- package/dist/next/host/internal.js +0 -8
- package/dist/next/host/internal.js.map +0 -1
- package/dist/next/host/members.d.ts +0 -50
- package/dist/next/host/members.d.ts.map +0 -1
- package/dist/next/host/members.js.map +0 -1
- package/dist/next/host/native.d.ts +0 -55
- package/dist/next/host/native.d.ts.map +0 -1
- package/dist/next/host/native.js +0 -92
- package/dist/next/host/native.js.map +0 -1
- package/dist/next/host/object.d.ts +0 -290
- package/dist/next/host/object.d.ts.map +0 -1
- package/dist/next/host/object.js +0 -1127
- package/dist/next/host/object.js.map +0 -1
- package/dist/next/host/parked.d.ts +0 -23
- package/dist/next/host/parked.d.ts.map +0 -1
- package/dist/next/host/parked.js.map +0 -1
- package/dist/next/host/presence.d.ts +0 -34
- package/dist/next/host/presence.d.ts.map +0 -1
- package/dist/next/host/presence.js.map +0 -1
- package/dist/next/host/ref-state.d.ts +0 -53
- package/dist/next/host/ref-state.d.ts.map +0 -1
- package/dist/next/host/ref-state.js +0 -83
- package/dist/next/host/ref-state.js.map +0 -1
- package/dist/next/host/reference-keys.d.ts +0 -36
- package/dist/next/host/reference-keys.d.ts.map +0 -1
- package/dist/next/host/reference-keys.js +0 -168
- package/dist/next/host/reference-keys.js.map +0 -1
- package/dist/next/host/reference-source.d.ts +0 -65
- package/dist/next/host/reference-source.d.ts.map +0 -1
- package/dist/next/host/reference-source.js +0 -285
- package/dist/next/host/reference-source.js.map +0 -1
- package/dist/next/host/reference.d.ts +0 -308
- package/dist/next/host/reference.d.ts.map +0 -1
- package/dist/next/host/reference.js +0 -775
- package/dist/next/host/reference.js.map +0 -1
- package/dist/next/host/retry-on.d.ts.map +0 -1
- package/dist/next/host/retry-on.js.map +0 -1
- package/dist/next/host/revocation.d.ts +0 -16
- package/dist/next/host/revocation.d.ts.map +0 -1
- package/dist/next/host/revocation.js.map +0 -1
- package/dist/next/host/root.d.ts +0 -27
- package/dist/next/host/root.d.ts.map +0 -1
- package/dist/next/host/root.js +0 -68
- package/dist/next/host/root.js.map +0 -1
- package/dist/next/host/route.d.ts +0 -64
- package/dist/next/host/route.d.ts.map +0 -1
- package/dist/next/host/route.js +0 -190
- package/dist/next/host/route.js.map +0 -1
- package/dist/next/host/routines.d.ts +0 -76
- package/dist/next/host/routines.d.ts.map +0 -1
- package/dist/next/host/routines.js +0 -350
- package/dist/next/host/routines.js.map +0 -1
- package/dist/next/host/sleep.d.ts +0 -9
- package/dist/next/host/sleep.d.ts.map +0 -1
- package/dist/next/host/sleep.js.map +0 -1
- package/dist/next/host/staging.d.ts +0 -94
- package/dist/next/host/staging.d.ts.map +0 -1
- package/dist/next/host/staging.js +0 -302
- package/dist/next/host/staging.js.map +0 -1
- package/dist/next/host/unbound.d.ts +0 -30
- package/dist/next/host/unbound.d.ts.map +0 -1
- package/dist/next/host/unbound.js +0 -67
- package/dist/next/host/unbound.js.map +0 -1
- package/dist/next/host/uuid.d.ts.map +0 -1
- package/dist/next/host/uuid.js.map +0 -1
- package/dist/next/index.d.ts +0 -28
- package/dist/next/index.d.ts.map +0 -1
- package/dist/next/index.js +0 -18
- package/dist/next/index.js.map +0 -1
- package/dist/next/jobs/definition.d.ts.map +0 -1
- package/dist/next/jobs/definition.js.map +0 -1
- package/dist/next/jobs/index.d.ts.map +0 -1
- package/dist/next/jobs/index.js.map +0 -1
- package/dist/next/jobs/internal.d.ts.map +0 -1
- package/dist/next/jobs/internal.js.map +0 -1
- package/dist/next/jobs/job.d.ts +0 -152
- package/dist/next/jobs/job.d.ts.map +0 -1
- package/dist/next/jobs/job.js +0 -320
- package/dist/next/jobs/job.js.map +0 -1
- package/dist/next/jobs/persisted.d.ts +0 -38
- package/dist/next/jobs/persisted.d.ts.map +0 -1
- package/dist/next/jobs/persisted.js.map +0 -1
- package/dist/next/jobs/records.d.ts +0 -231
- package/dist/next/jobs/records.d.ts.map +0 -1
- package/dist/next/jobs/records.js +0 -869
- package/dist/next/jobs/records.js.map +0 -1
- package/dist/next/jobs/run-states.d.ts +0 -69
- package/dist/next/jobs/run-states.d.ts.map +0 -1
- package/dist/next/jobs/run-states.js +0 -228
- package/dist/next/jobs/run-states.js.map +0 -1
- package/dist/next/jobs/run.d.ts +0 -113
- package/dist/next/jobs/run.d.ts.map +0 -1
- package/dist/next/jobs/run.js +0 -200
- package/dist/next/jobs/run.js.map +0 -1
- package/dist/next/jobs/running.d.ts +0 -44
- package/dist/next/jobs/running.d.ts.map +0 -1
- package/dist/next/jobs/running.js.map +0 -1
- package/dist/next/jobs/stored.d.ts +0 -63
- package/dist/next/jobs/stored.d.ts.map +0 -1
- package/dist/next/jobs/stored.js.map +0 -1
- package/dist/next/link/binary.d.ts.map +0 -1
- package/dist/next/link/binary.js +0 -534
- package/dist/next/link/binary.js.map +0 -1
- package/dist/next/link/channel.d.ts +0 -63
- package/dist/next/link/channel.d.ts.map +0 -1
- package/dist/next/link/channel.js +0 -202
- package/dist/next/link/channel.js.map +0 -1
- package/dist/next/link/errors.d.ts.map +0 -1
- package/dist/next/link/errors.js.map +0 -1
- package/dist/next/link/index.d.ts.map +0 -1
- package/dist/next/link/index.js.map +0 -1
- package/dist/next/link/internal.d.ts.map +0 -1
- package/dist/next/link/internal.js.map +0 -1
- package/dist/next/link/ipc.d.ts.map +0 -1
- package/dist/next/link/ipc.js.map +0 -1
- package/dist/next/link/link.d.ts.map +0 -1
- package/dist/next/link/link.js.map +0 -1
- package/dist/next/link/message.d.ts +0 -249
- package/dist/next/link/message.d.ts.map +0 -1
- package/dist/next/link/message.js +0 -123
- package/dist/next/link/message.js.map +0 -1
- package/dist/next/link/part.d.ts +0 -80
- package/dist/next/link/part.d.ts.map +0 -1
- package/dist/next/link/part.js +0 -164
- package/dist/next/link/part.js.map +0 -1
- package/dist/next/link/text.d.ts.map +0 -1
- package/dist/next/link/text.js +0 -335
- package/dist/next/link/text.js.map +0 -1
- package/dist/next/link/values.d.ts.map +0 -1
- package/dist/next/link/values.js +0 -117
- package/dist/next/link/values.js.map +0 -1
- package/dist/next/link/websocket.d.ts.map +0 -1
- package/dist/next/link/websocket.js.map +0 -1
- package/dist/next/registries/contribution.d.ts.map +0 -1
- package/dist/next/registries/contribution.js.map +0 -1
- package/dist/next/registries/entries.d.ts.map +0 -1
- package/dist/next/registries/entries.js.map +0 -1
- package/dist/next/registries/index.d.ts.map +0 -1
- package/dist/next/registries/index.js.map +0 -1
- package/dist/next/registries/internal.d.ts.map +0 -1
- package/dist/next/registries/internal.js.map +0 -1
- package/dist/next/registries/record.d.ts +0 -94
- package/dist/next/registries/record.d.ts.map +0 -1
- package/dist/next/registries/record.js +0 -253
- package/dist/next/registries/record.js.map +0 -1
- package/dist/next/registries/registry.d.ts +0 -74
- package/dist/next/registries/registry.d.ts.map +0 -1
- package/dist/next/registries/registry.js.map +0 -1
- package/dist/next/registries/value.d.ts.map +0 -1
- package/dist/next/registries/value.js +0 -199
- package/dist/next/registries/value.js.map +0 -1
- package/dist/next/remote/calls.d.ts.map +0 -1
- package/dist/next/remote/calls.js.map +0 -1
- package/dist/next/remote/consumer.d.ts +0 -42
- package/dist/next/remote/consumer.d.ts.map +0 -1
- package/dist/next/remote/consumer.js +0 -343
- package/dist/next/remote/consumer.js.map +0 -1
- package/dist/next/remote/hold.d.ts +0 -130
- package/dist/next/remote/hold.d.ts.map +0 -1
- package/dist/next/remote/hold.js +0 -537
- package/dist/next/remote/hold.js.map +0 -1
- package/dist/next/remote/host-link.d.ts +0 -77
- package/dist/next/remote/host-link.d.ts.map +0 -1
- package/dist/next/remote/host-link.js +0 -182
- package/dist/next/remote/host-link.js.map +0 -1
- package/dist/next/remote/internal.d.ts.map +0 -1
- package/dist/next/remote/internal.js.map +0 -1
- package/dist/next/remote/path.d.ts.map +0 -1
- package/dist/next/remote/path.js.map +0 -1
- package/dist/next/remote/provider.d.ts +0 -76
- package/dist/next/remote/provider.d.ts.map +0 -1
- package/dist/next/remote/provider.js +0 -506
- package/dist/next/remote/provider.js.map +0 -1
- package/dist/next/remote/relay.d.ts +0 -58
- package/dist/next/remote/relay.d.ts.map +0 -1
- package/dist/next/remote/relay.js +0 -117
- package/dist/next/remote/relay.js.map +0 -1
- package/dist/next/remote/remote-object.d.ts +0 -133
- package/dist/next/remote/remote-object.d.ts.map +0 -1
- package/dist/next/remote/remote-object.js +0 -411
- package/dist/next/remote/remote-object.js.map +0 -1
- package/dist/next/remote/replica.d.ts +0 -59
- package/dist/next/remote/replica.d.ts.map +0 -1
- package/dist/next/remote/replica.js +0 -125
- package/dist/next/remote/replica.js.map +0 -1
- package/dist/next/state/batch.d.ts +0 -64
- package/dist/next/state/batch.d.ts.map +0 -1
- package/dist/next/state/batch.js +0 -163
- package/dist/next/state/batch.js.map +0 -1
- package/dist/next/state/derive.d.ts +0 -52
- package/dist/next/state/derive.d.ts.map +0 -1
- package/dist/next/state/derive.js +0 -182
- package/dist/next/state/derive.js.map +0 -1
- package/dist/next/state/index.d.ts +0 -6
- package/dist/next/state/index.d.ts.map +0 -1
- package/dist/next/state/index.js.map +0 -1
- package/dist/next/state/internal.d.ts.map +0 -1
- package/dist/next/state/internal.js.map +0 -1
- package/dist/next/state/native-source.d.ts +0 -106
- package/dist/next/state/native-source.d.ts.map +0 -1
- package/dist/next/state/native-source.js +0 -240
- package/dist/next/state/native-source.js.map +0 -1
- package/dist/next/state/watchable.d.ts +0 -114
- package/dist/next/state/watchable.d.ts.map +0 -1
- package/dist/next/state/watchable.js +0 -156
- package/dist/next/state/watchable.js.map +0 -1
- package/dist/next/state/writable.d.ts +0 -32
- package/dist/next/state/writable.d.ts.map +0 -1
- package/dist/next/state/writable.js.map +0 -1
- package/dist/next/store/adapter.d.ts +0 -67
- package/dist/next/store/adapter.d.ts.map +0 -1
- package/dist/next/store/adapter.js.map +0 -1
- package/dist/next/store/allocator.d.ts.map +0 -1
- package/dist/next/store/allocator.js.map +0 -1
- package/dist/next/store/applier.d.ts.map +0 -1
- package/dist/next/store/applier.js.map +0 -1
- package/dist/next/store/apply-batch.d.ts +0 -12
- package/dist/next/store/apply-batch.d.ts.map +0 -1
- package/dist/next/store/apply-batch.js.map +0 -1
- package/dist/next/store/archive.d.ts +0 -32
- package/dist/next/store/archive.d.ts.map +0 -1
- package/dist/next/store/archive.js +0 -129
- package/dist/next/store/archive.js.map +0 -1
- package/dist/next/store/backend.d.ts +0 -10
- package/dist/next/store/backend.d.ts.map +0 -1
- package/dist/next/store/backend.js.map +0 -1
- package/dist/next/store/catalog.d.ts +0 -24
- package/dist/next/store/catalog.d.ts.map +0 -1
- package/dist/next/store/catalog.js.map +0 -1
- package/dist/next/store/claims.d.ts.map +0 -1
- package/dist/next/store/claims.js.map +0 -1
- package/dist/next/store/columns.d.ts.map +0 -1
- package/dist/next/store/columns.js.map +0 -1
- package/dist/next/store/engine.d.ts +0 -176
- package/dist/next/store/engine.d.ts.map +0 -1
- package/dist/next/store/engine.js +0 -283
- package/dist/next/store/engine.js.map +0 -1
- package/dist/next/store/evaluate.d.ts +0 -17
- package/dist/next/store/evaluate.d.ts.map +0 -1
- package/dist/next/store/evaluate.js.map +0 -1
- package/dist/next/store/export.d.ts +0 -17
- package/dist/next/store/export.d.ts.map +0 -1
- package/dist/next/store/export.js +0 -200
- package/dist/next/store/export.js.map +0 -1
- package/dist/next/store/expression.d.ts +0 -150
- package/dist/next/store/expression.d.ts.map +0 -1
- package/dist/next/store/expression.js.map +0 -1
- package/dist/next/store/import.d.ts +0 -10
- package/dist/next/store/import.d.ts.map +0 -1
- package/dist/next/store/import.js +0 -276
- package/dist/next/store/import.js.map +0 -1
- package/dist/next/store/index.d.ts.map +0 -1
- package/dist/next/store/index.js.map +0 -1
- package/dist/next/store/json-column.d.ts +0 -33
- package/dist/next/store/json-column.d.ts.map +0 -1
- package/dist/next/store/json-column.js +0 -61
- package/dist/next/store/json-column.js.map +0 -1
- package/dist/next/store/jsonl.d.ts.map +0 -1
- package/dist/next/store/jsonl.js.map +0 -1
- package/dist/next/store/outbox.d.ts +0 -26
- package/dist/next/store/outbox.d.ts.map +0 -1
- package/dist/next/store/outbox.js.map +0 -1
- package/dist/next/store/query.d.ts +0 -39
- package/dist/next/store/query.d.ts.map +0 -1
- package/dist/next/store/query.js.map +0 -1
- package/dist/next/store/refusal.d.ts.map +0 -1
- package/dist/next/store/refusal.js.map +0 -1
- package/dist/next/store/rows.d.ts +0 -80
- package/dist/next/store/rows.d.ts.map +0 -1
- package/dist/next/store/rows.js.map +0 -1
- package/dist/next/store/schema.d.ts +0 -25
- package/dist/next/store/schema.d.ts.map +0 -1
- package/dist/next/store/schema.js +0 -115
- package/dist/next/store/schema.js.map +0 -1
- package/dist/next/store/sql.d.ts +0 -73
- package/dist/next/store/sql.d.ts.map +0 -1
- package/dist/next/store/sql.js.map +0 -1
- package/dist/next/store/step.d.ts +0 -48
- package/dist/next/store/step.d.ts.map +0 -1
- package/dist/next/store/step.js +0 -50
- package/dist/next/store/step.js.map +0 -1
- package/dist/next/store/store.d.ts +0 -161
- package/dist/next/store/store.d.ts.map +0 -1
- package/dist/next/store/store.js +0 -627
- package/dist/next/store/store.js.map +0 -1
- package/dist/next/store/table-changes.d.ts +0 -29
- package/dist/next/store/table-changes.d.ts.map +0 -1
- package/dist/next/store/table-changes.js.map +0 -1
- package/dist/next/store/table-evolve.d.ts.map +0 -1
- package/dist/next/store/table-evolve.js.map +0 -1
- package/dist/next/store/table-handle.d.ts +0 -67
- package/dist/next/store/table-handle.d.ts.map +0 -1
- package/dist/next/store/table-handle.js +0 -101
- package/dist/next/store/table-handle.js.map +0 -1
- package/dist/next/store/table-history.d.ts.map +0 -1
- package/dist/next/store/table-history.js.map +0 -1
- package/dist/next/store/table-migration.d.ts +0 -16
- package/dist/next/store/table-migration.d.ts.map +0 -1
- package/dist/next/store/table-migration.js +0 -202
- package/dist/next/store/table-migration.js.map +0 -1
- package/dist/next/store/table-writes.d.ts.map +0 -1
- package/dist/next/store/table-writes.js +0 -165
- package/dist/next/store/table-writes.js.map +0 -1
- package/dist/next/store/table.d.ts +0 -80
- package/dist/next/store/table.d.ts.map +0 -1
- package/dist/next/store/table.js.map +0 -1
- package/dist/next/store/text.d.ts.map +0 -1
- package/dist/next/store/text.js.map +0 -1
- package/dist/next/store/writes.d.ts.map +0 -1
- package/dist/next/store/writes.js.map +0 -1
- package/dist/next-node/compression.d.ts +0 -7
- package/dist/next-node/compression.d.ts.map +0 -1
- package/dist/next-node/compression.js +0 -24
- package/dist/next-node/compression.js.map +0 -1
- package/dist/next-node/http/admission.d.ts.map +0 -1
- package/dist/next-node/http/admission.js.map +0 -1
- package/dist/next-node/http/authenticate.d.ts +0 -21
- package/dist/next-node/http/authenticate.d.ts.map +0 -1
- package/dist/next-node/http/authenticate.js +0 -34
- package/dist/next-node/http/authenticate.js.map +0 -1
- package/dist/next-node/http/cookies.d.ts +0 -24
- package/dist/next-node/http/cookies.d.ts.map +0 -1
- package/dist/next-node/http/cookies.js +0 -62
- package/dist/next-node/http/cookies.js.map +0 -1
- package/dist/next-node/http/file.d.ts.map +0 -1
- package/dist/next-node/http/file.js.map +0 -1
- package/dist/next-node/http/headers.d.ts.map +0 -1
- package/dist/next-node/http/headers.js +0 -129
- package/dist/next-node/http/headers.js.map +0 -1
- package/dist/next-node/http/http.d.ts +0 -100
- package/dist/next-node/http/http.d.ts.map +0 -1
- package/dist/next-node/http/http.js +0 -462
- package/dist/next-node/http/http.js.map +0 -1
- package/dist/next-node/http/incoming.d.ts.map +0 -1
- package/dist/next-node/http/incoming.js.map +0 -1
- package/dist/next-node/http/index.d.ts +0 -11
- package/dist/next-node/http/index.d.ts.map +0 -1
- package/dist/next-node/http/index.js +0 -12
- package/dist/next-node/http/index.js.map +0 -1
- package/dist/next-node/http/node.d.ts.map +0 -1
- package/dist/next-node/http/node.js.map +0 -1
- package/dist/next-node/http/request.d.ts +0 -54
- package/dist/next-node/http/request.d.ts.map +0 -1
- package/dist/next-node/http/request.js +0 -116
- package/dist/next-node/http/request.js.map +0 -1
- package/dist/next-node/http/response.d.ts +0 -63
- package/dist/next-node/http/response.d.ts.map +0 -1
- package/dist/next-node/http/response.js.map +0 -1
- package/dist/next-node/http/router.d.ts +0 -114
- package/dist/next-node/http/router.d.ts.map +0 -1
- package/dist/next-node/http/router.js +0 -261
- package/dist/next-node/http/router.js.map +0 -1
- package/dist/next-node/http/upgrades.d.ts +0 -58
- package/dist/next-node/http/upgrades.d.ts.map +0 -1
- package/dist/next-node/http/upgrades.js +0 -184
- package/dist/next-node/http/upgrades.js.map +0 -1
- package/dist/next-node/plugins/build.d.ts +0 -57
- package/dist/next-node/plugins/build.d.ts.map +0 -1
- package/dist/next-node/plugins/build.js +0 -334
- package/dist/next-node/plugins/build.js.map +0 -1
- package/dist/next-node/plugins/discover.d.ts +0 -36
- package/dist/next-node/plugins/discover.d.ts.map +0 -1
- package/dist/next-node/plugins/discover.js +0 -91
- package/dist/next-node/plugins/discover.js.map +0 -1
- package/dist/next-node/plugins/evaluate.d.ts +0 -33
- package/dist/next-node/plugins/evaluate.d.ts.map +0 -1
- package/dist/next-node/plugins/evaluate.js +0 -98
- package/dist/next-node/plugins/evaluate.js.map +0 -1
- package/dist/next-node/plugins/index.d.ts +0 -9
- package/dist/next-node/plugins/index.d.ts.map +0 -1
- package/dist/next-node/plugins/index.js +0 -11
- package/dist/next-node/plugins/index.js.map +0 -1
- package/dist/next-node/plugins/install.d.ts +0 -13
- package/dist/next-node/plugins/install.d.ts.map +0 -1
- package/dist/next-node/plugins/install.js +0 -37
- package/dist/next-node/plugins/install.js.map +0 -1
- package/dist/next-node/plugins/plugins.d.ts +0 -135
- package/dist/next-node/plugins/plugins.d.ts.map +0 -1
- package/dist/next-node/plugins/plugins.js +0 -206
- package/dist/next-node/plugins/plugins.js.map +0 -1
- package/dist/next-node/plugins/runtime.d.ts +0 -41
- package/dist/next-node/plugins/runtime.d.ts.map +0 -1
- package/dist/next-node/plugins/runtime.js +0 -136
- package/dist/next-node/plugins/runtime.js.map +0 -1
- package/dist/next-node/plugins/stack.d.ts.map +0 -1
- package/dist/next-node/plugins/stack.js.map +0 -1
- package/dist/next-node/plugins/watcher.d.ts +0 -58
- package/dist/next-node/plugins/watcher.d.ts.map +0 -1
- package/dist/next-node/plugins/watcher.js +0 -281
- package/dist/next-node/plugins/watcher.js.map +0 -1
- package/dist/next-node/workers/control.d.ts +0 -83
- package/dist/next-node/workers/control.d.ts.map +0 -1
- package/dist/next-node/workers/control.js +0 -77
- package/dist/next-node/workers/control.js.map +0 -1
- package/dist/next-node/workers/index.d.ts +0 -5
- package/dist/next-node/workers/index.d.ts.map +0 -1
- package/dist/next-node/workers/index.js +0 -7
- package/dist/next-node/workers/index.js.map +0 -1
- package/dist/next-node/workers/lock.d.ts +0 -21
- package/dist/next-node/workers/lock.d.ts.map +0 -1
- package/dist/next-node/workers/lock.js +0 -137
- package/dist/next-node/workers/lock.js.map +0 -1
- package/dist/next-node/workers/main.d.ts +0 -46
- package/dist/next-node/workers/main.d.ts.map +0 -1
- package/dist/next-node/workers/main.js +0 -230
- package/dist/next-node/workers/main.js.map +0 -1
- package/dist/next-node/workers/process.d.ts +0 -42
- package/dist/next-node/workers/process.d.ts.map +0 -1
- package/dist/next-node/workers/process.js +0 -125
- package/dist/next-node/workers/process.js.map +0 -1
- package/dist/next-node/workers/workers.d.ts +0 -80
- package/dist/next-node/workers/workers.d.ts.map +0 -1
- package/dist/next-node/workers/workers.js +0 -572
- package/dist/next-node/workers/workers.js.map +0 -1
- package/dist/node.d.ts +0 -4
- package/dist/node.d.ts.map +0 -1
- package/dist/node.js +0 -4
- package/dist/node.js.map +0 -1
- package/dist/object.d.ts +0 -438
- package/dist/object.d.ts.map +0 -1
- package/dist/object.js +0 -1570
- package/dist/object.js.map +0 -1
- package/dist/publish.d.ts +0 -5
- package/dist/publish.d.ts.map +0 -1
- package/dist/publish.js +0 -40
- package/dist/publish.js.map +0 -1
- package/dist/registry.d.ts +0 -25
- package/dist/registry.d.ts.map +0 -1
- package/dist/registry.js +0 -6
- package/dist/registry.js.map +0 -1
- package/dist/reload.d.ts +0 -126
- package/dist/reload.d.ts.map +0 -1
- package/dist/reload.js +0 -653
- package/dist/reload.js.map +0 -1
- package/dist/remote.d.ts +0 -165
- package/dist/remote.d.ts.map +0 -1
- package/dist/remote.js +0 -612
- package/dist/remote.js.map +0 -1
- package/dist/schema.d.ts +0 -25
- package/dist/schema.d.ts.map +0 -1
- package/dist/schema.js +0 -403
- package/dist/schema.js.map +0 -1
- package/dist/state.d.ts +0 -92
- package/dist/state.d.ts.map +0 -1
- package/dist/state.js +0 -287
- package/dist/state.js.map +0 -1
- package/dist/types.d.ts +0 -88
- package/dist/types.d.ts.map +0 -1
- package/dist/types.js +0 -2
- package/dist/types.js.map +0 -1
- package/dist/websocket.d.ts +0 -15
- package/dist/websocket.d.ts.map +0 -1
- package/dist/websocket.js +0 -16
- package/dist/websocket.js.map +0 -1
- package/dist/wire.d.ts +0 -197
- package/dist/wire.d.ts.map +0 -1
- package/dist/wire.js +0 -166
- package/dist/wire.js.map +0 -1
- package/docs/guide.md +0 -814
- package/docs/next/benchmarks.md +0 -959
- package/docs/next/decisions.md +0 -2957
- package/docs/next/dependencies/book.md +0 -1671
- package/docs/next/dependencies/index.html +0 -2641
- package/docs/next/design.md +0 -2554
- package/docs/next/durable-observers/book.md +0 -432
- package/docs/next/durable-observers/index.html +0 -517
- package/docs/next/guide-plugins-hosts/book.md +0 -607
- package/docs/next/guide-plugins-hosts/index.html +0 -652
- package/docs/next/http-workers/book.md +0 -378
- package/docs/next/http-workers/index.html +0 -515
- package/docs/next/layer-1.md +0 -311
- package/docs/next/layer-2.md +0 -216
- package/docs/next/plugin-model/book.md +0 -186
- package/docs/next/plugin-model/index.html +0 -310
- package/docs/next/plugin-primer/book.md +0 -273
- package/docs/next/plugin-primer/index.html +0 -430
- package/docs/next/slice-1.md +0 -236
- package/docs/next/slice-10.md +0 -285
- package/docs/next/slice-11.md +0 -93
- package/docs/next/slice-2.md +0 -174
- package/docs/next/slice-3a.md +0 -296
- package/docs/next/slice-3b.md +0 -197
- package/docs/next/slice-4a.md +0 -418
- package/docs/next/slice-4b.md +0 -208
- package/docs/next/slice-6a.md +0 -676
- package/docs/next/slice-6b.md +0 -332
- package/docs/next/slice-7b/book.md +0 -608
- package/docs/next/slice-7b/index.html +0 -842
- package/docs/next/slice-7b.md +0 -255
- package/docs/next/slice-7c.md +0 -165
- package/docs/next/slices.md +0 -230
- package/docs/next/store/book.md +0 -665
- package/docs/next/store/index.html +0 -861
- package/docs/next/store/walkthrough.md +0 -193
- package/docs/spec.md +0 -288
- package/docs/tutorial.md +0 -932
- /package/dist/{next/contracts → contracts}/accepts.js +0 -0
- /package/dist/{next/contracts → contracts}/contract.js +0 -0
- /package/dist/{next/contracts → contracts}/declare.d.ts +0 -0
- /package/dist/{next/contracts → contracts}/declare.js +0 -0
- /package/dist/{next/contracts → contracts}/evolve.d.ts +0 -0
- /package/dist/{next/contracts → contracts}/evolve.js +0 -0
- /package/dist/{next/contracts → contracts}/fingerprint.js +0 -0
- /package/dist/{next/contracts → contracts}/history.d.ts +0 -0
- /package/dist/{next/contracts → contracts}/history.js +0 -0
- /package/dist/{next/contracts → contracts}/host-kind.d.ts +0 -0
- /package/dist/{next/contracts → contracts}/host-kind.js +0 -0
- /package/dist/{next/contracts → contracts}/index.d.ts +0 -0
- /package/dist/{next/contracts → contracts}/index.js +0 -0
- /package/dist/{next/contracts → contracts}/internal.d.ts +0 -0
- /package/dist/{next/contracts → contracts}/internal.js +0 -0
- /package/dist/{next/contracts → contracts}/names.d.ts +0 -0
- /package/dist/{next/contracts → contracts}/names.js +0 -0
- /package/dist/{next/contracts → contracts}/params.js +0 -0
- /package/dist/{next/contracts → contracts}/schema.d.ts +0 -0
- /package/dist/{next/contracts → contracts}/schema.js +0 -0
- /package/dist/{next/data → data}/args.js +0 -0
- /package/dist/{next/data → data}/failure.d.ts +0 -0
- /package/dist/{next/data → data}/params.js +0 -0
- /package/dist/{next/documents → documents}/address-source.js +0 -0
- /package/dist/{next/documents → documents}/fence.d.ts +0 -0
- /package/dist/{next/documents → documents}/fence.js +0 -0
- /package/dist/{next/documents → documents}/handles.js +0 -0
- /package/dist/{next/documents → documents}/index.d.ts +0 -0
- /package/dist/{next/documents → documents}/index.js +0 -0
- /package/dist/{next/documents → documents}/internal.js +0 -0
- /package/dist/{next/documents → documents}/line.d.ts +0 -0
- /package/dist/{next/documents → documents}/line.js +0 -0
- /package/dist/{next/documents → documents}/residency.js +0 -0
- /package/dist/{next/host → host}/adapted.js +0 -0
- /package/dist/{next/host → host}/backoff.d.ts +0 -0
- /package/dist/{next/host → host}/backoff.js +0 -0
- /package/dist/{next/host → host}/deadline.d.ts +0 -0
- /package/dist/{next/host → host}/deadline.js +0 -0
- /package/dist/{next/host → host}/dependencies.d.ts +0 -0
- /package/dist/{next/host → host}/dependencies.js +0 -0
- /package/dist/{next/host → host}/destination.js +0 -0
- /package/dist/{next/host → host}/facet.js +0 -0
- /package/dist/{next/host → host}/follow.js +0 -0
- /package/dist/{next/host → host}/index.js +0 -0
- /package/dist/{next/host → host}/members.js +0 -0
- /package/dist/{next/host → host}/parked.js +0 -0
- /package/dist/{next/host → host}/presence.js +0 -0
- /package/dist/{next/host → host}/retry-on.d.ts +0 -0
- /package/dist/{next/host → host}/retry-on.js +0 -0
- /package/dist/{next/host → host}/revocation.js +0 -0
- /package/dist/{next/host → host}/sleep.js +0 -0
- /package/dist/{next/host → host}/uuid.d.ts +0 -0
- /package/dist/{next/host → host}/uuid.js +0 -0
- /package/dist/{next/jobs → jobs}/definition.d.ts +0 -0
- /package/dist/{next/jobs → jobs}/definition.js +0 -0
- /package/dist/{next/jobs → jobs}/index.d.ts +0 -0
- /package/dist/{next/jobs → jobs}/index.js +0 -0
- /package/dist/{next/jobs → jobs}/internal.d.ts +0 -0
- /package/dist/{next/jobs → jobs}/internal.js +0 -0
- /package/dist/{next/jobs → jobs}/persisted.js +0 -0
- /package/dist/{next/jobs → jobs}/running.js +0 -0
- /package/dist/{next/jobs → jobs}/stored.js +0 -0
- /package/dist/{next/link → link}/binary.d.ts +0 -0
- /package/dist/{next/link → link}/errors.d.ts +0 -0
- /package/dist/{next/link → link}/errors.js +0 -0
- /package/dist/{next/link → link}/index.d.ts +0 -0
- /package/dist/{next/link → link}/index.js +0 -0
- /package/dist/{next/link → link}/internal.d.ts +0 -0
- /package/dist/{next/link → link}/internal.js +0 -0
- /package/dist/{next/link → link}/ipc.d.ts +0 -0
- /package/dist/{next/link → link}/ipc.js +0 -0
- /package/dist/{next/link → link}/link.d.ts +0 -0
- /package/dist/{next/link → link}/link.js +0 -0
- /package/dist/{next/link → link}/text.d.ts +0 -0
- /package/dist/{next/link → link}/values.d.ts +0 -0
- /package/dist/{next/link → link}/websocket.d.ts +0 -0
- /package/dist/{next/link → link}/websocket.js +0 -0
- /package/dist/{next-node → node}/http/admission.d.ts +0 -0
- /package/dist/{next-node → node}/http/admission.js +0 -0
- /package/dist/{next-node → node}/http/file.d.ts +0 -0
- /package/dist/{next-node → node}/http/file.js +0 -0
- /package/dist/{next-node → node}/http/headers.d.ts +0 -0
- /package/dist/{next-node → node}/http/incoming.d.ts +0 -0
- /package/dist/{next-node → node}/http/incoming.js +0 -0
- /package/dist/{next-node → node}/http/node.d.ts +0 -0
- /package/dist/{next-node → node}/http/node.js +0 -0
- /package/dist/{next-node → node}/http/response.js +0 -0
- /package/dist/{next-node → node}/plugins/stack.d.ts +0 -0
- /package/dist/{next-node → node}/plugins/stack.js +0 -0
- /package/dist/{next/registries → registries}/contribution.d.ts +0 -0
- /package/dist/{next/registries → registries}/contribution.js +0 -0
- /package/dist/{next/registries → registries}/entries.d.ts +0 -0
- /package/dist/{next/registries → registries}/entries.js +0 -0
- /package/dist/{next/registries → registries}/index.d.ts +0 -0
- /package/dist/{next/registries → registries}/index.js +0 -0
- /package/dist/{next/registries → registries}/internal.d.ts +0 -0
- /package/dist/{next/registries → registries}/internal.js +0 -0
- /package/dist/{next/registries → registries}/registry.js +0 -0
- /package/dist/{next/registries → registries}/value.d.ts +0 -0
- /package/dist/{next/remote → remote}/calls.d.ts +0 -0
- /package/dist/{next/remote → remote}/calls.js +0 -0
- /package/dist/{next/remote → remote}/internal.d.ts +0 -0
- /package/dist/{next/remote → remote}/internal.js +0 -0
- /package/dist/{next/remote → remote}/path.d.ts +0 -0
- /package/dist/{next/remote → remote}/path.js +0 -0
- /package/dist/{next/state → state}/index.js +0 -0
- /package/dist/{next/state → state}/internal.d.ts +0 -0
- /package/dist/{next/state → state}/internal.js +0 -0
- /package/dist/{next/state → state}/writable.js +0 -0
- /package/dist/{next/store → store}/adapter.js +0 -0
- /package/dist/{next/store → store}/allocator.d.ts +0 -0
- /package/dist/{next/store → store}/allocator.js +0 -0
- /package/dist/{next/store → store}/applier.d.ts +0 -0
- /package/dist/{next/store → store}/applier.js +0 -0
- /package/dist/{next/store → store}/apply-batch.js +0 -0
- /package/dist/{next/store → store}/backend.js +0 -0
- /package/dist/{next/store → store}/catalog.js +0 -0
- /package/dist/{next/store → store}/claims.d.ts +0 -0
- /package/dist/{next/store → store}/claims.js +0 -0
- /package/dist/{next/store → store}/columns.d.ts +0 -0
- /package/dist/{next/store → store}/columns.js +0 -0
- /package/dist/{next/store → store}/evaluate.js +0 -0
- /package/dist/{next/store → store}/expression.js +0 -0
- /package/dist/{next/store → store}/index.d.ts +0 -0
- /package/dist/{next/store → store}/index.js +0 -0
- /package/dist/{next/store → store}/jsonl.d.ts +0 -0
- /package/dist/{next/store → store}/jsonl.js +0 -0
- /package/dist/{next/store → store}/outbox.js +0 -0
- /package/dist/{next/store → store}/query.js +0 -0
- /package/dist/{next/store → store}/refusal.d.ts +0 -0
- /package/dist/{next/store → store}/refusal.js +0 -0
- /package/dist/{next/store → store}/rows.js +0 -0
- /package/dist/{next/store → store}/sql.js +0 -0
- /package/dist/{next/store → store}/table-changes.js +0 -0
- /package/dist/{next/store → store}/table-evolve.d.ts +0 -0
- /package/dist/{next/store → store}/table-evolve.js +0 -0
- /package/dist/{next/store → store}/table-history.d.ts +0 -0
- /package/dist/{next/store → store}/table-history.js +0 -0
- /package/dist/{next/store → store}/table-writes.d.ts +0 -0
- /package/dist/{next/store → store}/table.js +0 -0
- /package/dist/{next/store → store}/text.d.ts +0 -0
- /package/dist/{next/store → store}/text.js +0 -0
- /package/dist/{next/store → store}/writes.d.ts +0 -0
- /package/dist/{next/store → store}/writes.js +0 -0
- /package/docs/{next/dependencies → dependencies}/model.md +0 -0
- /package/docs/{next/flow-control → flow-control}/book.md +0 -0
- /package/docs/{next/flow-control → flow-control}/fold/index.html +0 -0
- /package/docs/{next/flow-control → flow-control}/index.html +0 -0
- /package/docs/{next/flow-control → flow-control}/window/index.html +0 -0
- /package/docs/{next/slice-4.md → slice-4.md} +0 -0
- /package/docs/{next/slice-5.md → slice-5.md} +0 -0
- /package/docs/{next/slice-7a.md → slice-7a.md} +0 -0
- /package/docs/{next/slice-8.md → slice-8.md} +0 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"object.js","sourceRoot":"","sources":["../../src/host/object.ts"],"names":[],"mappings":"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","sourcesContent":["// Objects (§6): one per identity, from its first attempt to its end. Its state across attempts (its documents, line\n// and job runs), the instance its references follow (`followed`: decision \"References are the only indirection\"), its\n// holders, retries after failures (backoff, `ref.retry()`, passed\n// on while parked), what it shows while its attempt is parked on dependencies (dependency model §3), its first outcome\n// (the start barrier, decision (a)), a live object's failure (slice 6a §1.4), the waits and cycle checks of activations\n// (Q5, its instance id and the activation chain it was created for), lingering after its last reference (§3, D8), the\n// job runs that keep it alive (§15), its contributions to registries while live and its wake signals (`retryOn`, slice\n// 8), its ending, revocation included (§4, R11), and what a reload does to it (decision \"Reload restarts every affected\n// object; old work finishes on old code\"): a restart, whose old attempt serves old work until it drained and its\n// successor's requests are ready, a retry on the new code, or its end by its type's removal, after which its\n// references wait with their last values and follow the next object of the identity.\n\nimport type { TelemetryContext } from \"@earendil-works/pi-telemetry\";\nimport { awaitWithContext, type Context } from \"../context/index.ts\";\nimport type { Contract, ParamsOf } from \"../contracts/index.ts\";\nimport type { ContractShape } from \"../contracts/internal.ts\";\nimport { ChordError, type FailureCause, type Principal } from \"../data/index.ts\";\nimport { asChordError, binds, invalid, type Provider, sameCause } from \"../data/internal.ts\";\nimport { Documents, type KeyedSlot } from \"../documents/internal.ts\";\nimport type { JobDefinition } from \"../jobs/index.ts\";\nimport { JobRecords } from \"../jobs/internal.ts\";\nimport type { JsonValue } from \"../json.ts\";\nimport { CHAIN } from \"../link/internal.ts\";\nimport type { RegistryContribution } from \"../registries/internal.ts\";\nimport type { DeriveSource } from \"../state/internal.ts\";\nimport { LiveQueries } from \"../store/live-query.ts\";\nimport { chordMetrics } from \"../telemetry.ts\";\nimport { refusal } from \"./adapted.ts\";\nimport { Attempt, type PinnedKey, type Self } from \"./attempt.ts\";\nimport type { Caller } from \"./ctx.ts\";\nimport type { Dependency } from \"./dependencies.ts\";\nimport type { AnyHost } from \"./host.ts\";\nimport type { CloseFailed, NativeCloseReason } from \"./native.ts\";\nimport { OPENING } from \"./old-work.ts\";\nimport { Readiness } from \"./readiness.ts\";\nimport { type Ended, type Failed, LIVE, LOADING, type RefState } from \"./ref-state.ts\";\nimport { type CheckedParams, type Followed, type RetryWalk, retryWalk, type Target } from \"./reference.ts\";\nimport { type RetrySource, RetryWakes } from \"./retry-on.ts\";\nimport type { Request } from \"./staging.ts\";\nimport { uuidv7 } from \"./uuid.ts\";\n\n/** A `local` contract, as a served type has it. */\nexport type LocalContract = Contract<ContractShape & { readonly kind: \"local\" }>;\n\n/** A `remote` contract, as a served type has it. */\nexport type RemoteContract = Contract<ContractShape & { readonly kind: \"remote\" }>;\n\n/**\n * A type served on a host, by kind: its contract, factory (a remote one gets the object's principal) and argument\n * checks. Factories are plugin code: what they return is checked at activation.\n */\nexport type Served =\n\t| (ServedType<LocalContract> & {\n\t\t\treadonly kind: \"local\";\n\t\t\treadonly factory: (params: ParamsOf<Contract>, self: Self) => unknown;\n\t\t\t/** A type with empty params: its object lives as long as the host (Q-A). */\n\t\t\treadonly hostLifetime: boolean;\n\t })\n\t| (ServedType<RemoteContract> & {\n\t\t\treadonly kind: \"remote\";\n\t\t\treadonly factory: (params: ParamsOf<Contract>, principal: Principal, self: Self) => unknown;\n\t });\n\ntype ServedType<C extends Contract> = {\n\t/** The plugin whose facet served it: its objects contribute to registries by it. */\n\treadonly plugin: string;\n\treadonly contract: C;\n\treadonly provider: Provider<Contract>;\n\t/** How long a live object stays live after its last reference, in milliseconds (`serve`'s `linger`, 0 by default). */\n\treadonly linger: number;\n\t/** Whether its calls start method spans (`serve`'s `untraced`: not). */\n\treadonly traced: boolean;\n};\n\n/** What holds an object: a reference's binding, or a hold arriving over a link. */\nexport interface Holder {\n\t/** The object whose attempt declared the reference: it checks its dependencies again when this object changes. */\n\treadonly dependent: ChordObject | undefined;\n\t/** Whom the reference acts for, with its origin's incarnation (`host.references`). */\n\treadonly caller: Caller;\n\t/** The consumer's contract version and fingerprint (its request's): the provider binds it or it waits unbound. */\n\treadonly contract: { readonly version: number; readonly fingerprint: string };\n\t/** Whether presence lists show it (§19): not a restart's readiness binding, which is no consumer of its own. */\n\treadonly listed: boolean;\n\t/**\n\t * Inside a batch, before `moved`: what it follows of the object changed (`ChordObject.followed`): a reference moves its\n\t * members' subscriptions to the new instance, or keeps their last values; a hold over a link has nothing to do here.\n\t */\n\tretarget(): void;\n\t/** Whether `retarget` moves anything (a reference whose members or keys were used): it then runs in a batch. */\n\treadonly following: boolean;\n\t/** The object's state (`state`) changed: an attempt started after a failure, it went live, or it failed. */\n\tmoved(): void;\n\t/** The object ended with `error`. */\n\tend(error: ChordError): void;\n\t/**\n\t * The object ended because a reload removed its type (slice 7b §6): the holder's request is not ended; it waits\n\t * unbound with `removal.cause` (`not_served`) until a publication serves the name again.\n\t */\n\tremoved(removal: Removal): void;\n}\n\n/**\n * What an object tells holders it leaves: why they wait (`not_served` after a removal, `contract_mismatch` after a\n * version refusal), its params (they place their requests again) and its context. A reference keeps its last values\n * meanwhile and moves its subscriptions to the next object of the identity that serves its version (one frame).\n */\nexport type Removal = {\n\treadonly cause: FailureCause;\n\treadonly host: AnyHost;\n\treadonly params: CheckedParams;\n\treadonly context: Context;\n};\n\n/** What a reload does to an object whose type is still served: a live one restarts, any other is retried. */\nexport type ReloadFate = \"restart\" | \"retry\";\n\n/**\n * Where an object stands. `waiting`: for its identity's backoff window before its first attempt. `activating` has what\n * its references show: `loading`, or `failed { waiting }` while its attempt is parked on a failed dependency. `failed`\n * has the state its references show.\n */\ntype ObjectState =\n\t| { readonly kind: \"waiting\" }\n\t| {\n\t\t\treadonly kind: \"activating\";\n\t\t\treadonly attempt: Attempt;\n\t\t\treadonly shown: RefState;\n\t }\n\t| { readonly kind: \"live\"; readonly attempt: Attempt }\n\t| { readonly kind: \"failed\"; readonly failure: Failed }\n\t| { readonly kind: \"ended\"; readonly ended: Ended };\n\n/**\n * What an ended object still has to do once its previous teardowns finished (`previous`): drain and close its attempt;\n * then drop its documents and job runs (`end` alone).\n */\ntype Teardown =\n\t| { readonly kind: \"none\" }\n\t| { readonly kind: \"end\"; readonly previous: Promise<void> | undefined }\n\t| { readonly kind: \"close\"; readonly attempt: Attempt; readonly previous: Promise<void> | undefined };\n\n/** How an object ends: by an end (its last reference, revocation, the host closing) or by its type's removal. */\ntype Ending =\n\t| { readonly kind: \"end\"; readonly error: ChordError }\n\t| { readonly kind: \"removed\"; readonly error: ChordError; readonly cause: FailureCause };\n\nconst END: NativeCloseReason = { kind: \"end\" };\n\nconst CLOSE: NativeCloseReason = { kind: \"close\" };\n\nconst RELOAD: NativeCloseReason = { kind: \"reload\" };\n\n/** No dependencies waited for: the shared empty list. */\nconst NO_DEPENDENCIES: readonly Dependency[] = [];\n\n/** No contributions leaving: the shared empty list. */\nconst NO_CONTRIBUTIONS: readonly RegistryContribution[] = [];\n\n/**\n * One object. Each attempt is a fresh `Attempt`; the documents, the line, the job runs and the holders outlive it. An\n * attempt parked on its dependencies waits for them without a timer; a transient failure (its own) is retried after its\n * backoff window, or at once when a reference asks (`retry`); a broken one stays failed until a reference asks.\n * The object ends with its last reference, a live one after its type's `linger` (never, for a host-lifetime object),\n * or when the host closes.\n */\nexport class ChordObject implements Target {\n\t/** An object on this host (a reference's target that is not held over a link). */\n\treadonly kind = \"local\";\n\treadonly host: AnyHost;\n\t/** Its served type: replaced by a reload that restarts or retries it. */\n\tserved: Served;\n\treadonly params: ParamsOf<Contract>;\n\t/** Its params' identity key (empty for empty params). */\n\treadonly key: string;\n\t/** The principal in a remote object's identity, which its factory gets; `undefined` for a local object. */\n\treadonly principal: Principal | undefined;\n\treadonly identity: string;\n\t/** The object in errors, reports and cycles: its type, and its params key when it has params. */\n\treadonly label: string;\n\t/**\n\t * The activation chain it was created for (Q5): the instance ids of the activations waiting for it, from the hold\n\t * that created it (a trusted link's) or the activation here that declared it; empty otherwise.\n\t */\n\treadonly chain: readonly string[];\n\t/** Its documents and line, across its attempts. */\n\treadonly documents: Documents;\n\t/** The context of every attempt: its creator's, without the creator's cancellation. */\n\treadonly #context: Context;\n\t/**\n\t * What its next attempt's activation span links to: its first trigger (the span that created it, a hold's carrier),\n\t * then the last attempt's span (a retry's trigger).\n\t */\n\t#trigger: TelemetryContext;\n\t/** Its attempts so far (the activation span's `attempt`). */\n\t#attempts = 0;\n\t/** Its job runs by job name, across its attempts. */\n\treadonly #jobs = new Map<string, JobRecords>();\n\t/** This instance's id (uuidv7), minted at its first attempt: a restarted object is a new instance (D4). */\n\t#instance: string | undefined;\n\t#state: ObjectState = { kind: \"waiting\" };\n\t/** References and holds of this object. */\n\treadonly #holders = new Set<Holder>();\n\t/** The dependencies its parked attempt waits for; their objects are followed to find cycles (Q5). */\n\t#waitingFor: readonly Dependency[] = NO_DEPENDENCIES;\n\t/**\n\t * Its first outcome (decision (a)): live, failed, parked with no blocker here still without one, or ended; once.\n\t * The promise is made by the first who waits for it (the start barrier, for host-lifetime objects).\n\t */\n\t#firstOutcome: PromiseWithResolvers<void> | undefined;\n\t#hasFirstOutcome = false;\n\t/** The error of the last failed attempt, or the last cause a parked attempt showed, until one goes live. */\n\t#lastFailure: ChordError | undefined;\n\t/** Ends the object when its type's `linger` passed after its last reference; cleared by a new one. */\n\t#lingering: ReturnType<typeof setTimeout> | undefined;\n\t/** Its running and finishing job runs: they keep it alive like references (D4), without being references. */\n\t#runs = 0;\n\t/**\n\t * The instance its references follow (`followed`): the live one, or the last one that went live while it still\n\t * changes after a failure or during a restart (references take their last values from it when it stops);\n\t * `undefined` before the first went live and once it stopped changing.\n\t */\n\t#exposed: Attempt | undefined;\n\t/**\n\t * Whether references still follow `#exposed`, which may still change: while it is live, while a restart keeps it\n\t * open for old work, or failed live until the commits admitted before it published (every member, its own and\n\t * re-exposed ones: audit A10); not once it stopped changing.\n\t */\n\t#following = false;\n\t/** The one timer storing its jobs' held state changes by their earliest deadline (D8), while one is held. */\n\t#flush: { readonly deadline: number; readonly timer: ReturnType<typeof setTimeout> } | undefined;\n\t/** Its wake signals (`retryOn`), the last attempt's declaration; made by the first. */\n\t#wakes: RetryWakes | undefined;\n\t/**\n\t * A restart's old attempt while it is open (until it stopped changing): old work runs on it, and consumers whose\n\t * version it binds see it live (decision \"Reload restarts every affected object\", rules 2 and 5).\n\t */\n\t#old: Attempt | undefined;\n\t/**\n\t * A restart's old attempt without natives whose contributions stay in the tables until its successor is live (F-c),\n\t * replaced there in one batch; they leave if the successor fails, parks on a failure or the object ends.\n\t */\n\t#kept: Attempt | undefined;\n\t/** A restart's readiness, until its successor's first dependency check. */\n\t#readiness: Readiness | undefined;\n\t/** A restart's successor that shows its readiness's failures, until the old attempt ended. */\n\t#showsReadiness: Attempt | undefined;\n\t/** Starts a restart's readiness and successor, once every fate of its reload started (`startSuccessor`). */\n\t#startSuccessor: (() => void) | undefined;\n\t/** The objects whose gate its activation's opener waits at now: its wait edges for reload cycles. */\n\t#gateWaits: Set<ChordObject> | undefined;\n\t/** Its live queries by table, across its attempts; made by the first table it declares. */\n\t#liveQueries: LiveQueries | undefined;\n\t/** Resolves at its next change of state, for calls waiting at the gate; made by the first one. */\n\t#changed: PromiseWithResolvers<void> | undefined;\n\n\tconstructor(\n\t\thost: AnyHost,\n\t\tserved: Served,\n\t\tparams: ParamsOf<Contract>,\n\t\tprincipal: Principal | undefined,\n\t\tkey: string,\n\t\tidentity: string,\n\t\ttrigger: TelemetryContext,\n\t\tcontext: Context,\n\t\tchain: readonly string[],\n\t) {\n\t\tthis.host = host;\n\t\tthis.served = served;\n\t\tthis.params = params;\n\t\tthis.principal = principal;\n\t\tthis.key = key;\n\t\tthis.identity = identity;\n\t\tthis.label = key === \"\" ? served.contract.name : `${served.contract.name}(${key})`;\n\t\tthis.chain = chain;\n\t\tthis.#trigger = trigger;\n\t\tthis.#context = context;\n\t\tconst { store } = host;\n\t\tthis.documents = new Documents({\n\t\t\tlabel: this.label,\n\t\t\tbatch: host.batch,\n\t\t\tcontext,\n\t\t\tstore: store === undefined ? undefined : { store, owner: served.contract.name },\n\t\t\tfail: (error) => {\n\t\t\t\tif (this.#state.kind === \"live\") this.failLive(this.#state.attempt, { kind: \"broken\", error });\n\t\t\t},\n\t\t\treport: (error) => host.report(error),\n\t\t\ttelemetry: host.telemetry,\n\t\t});\n\t}\n\n\t/** The object's state as its references show it. */\n\tget state(): RefState {\n\t\tconst state = this.#state;\n\t\tif (state.kind === \"failed\") return state.failure;\n\t\tif (state.kind === \"live\") return LIVE;\n\t\tif (state.kind === \"ended\") return state.ended;\n\t\treturn state.kind === \"activating\" ? state.shown : LOADING;\n\t}\n\n\t/**\n\t * Whether its state members have values: once live (a local object stays live until it ends), and while a\n\t * restart's old attempt is open (its consumers check their version through `stateFor`).\n\t */\n\tget hydrated(): boolean {\n\t\treturn this.#state.kind === \"live\" || this.openOldAttempt !== undefined;\n\t}\n\n\t/**\n\t * The state a same-host consumer of `version` and `fingerprint` sees (rule 5): `live` while a restart's open old\n\t * attempt binds that version and its successor is not parked on a failure; otherwise `state`.\n\t */\n\tstateFor(version: number, fingerprint: string): RefState {\n\t\tconst state = this.#state;\n\t\tif (state.kind === \"activating\" && state.shown.kind !== \"failed\" && this.oldServes(version, fingerprint)) {\n\t\t\treturn LIVE;\n\t\t}\n\t\treturn this.state;\n\t}\n\n\t/** Whether a restart's open old attempt binds `version` and `fingerprint`: its consumers of that version may use it. */\n\toldServes(version: number, fingerprint: string): boolean {\n\t\tconst old = this.openOldAttempt;\n\t\treturn old !== undefined && binds(old.served.provider, version, fingerprint);\n\t}\n\n\t/**\n\t * A restart's old attempt while it is open (draining, not sealed yet): old work runs on it, and consumers whose\n\t * version it binds see it as the live instance; `undefined` otherwise.\n\t */\n\tget openOldAttempt(): Attempt | undefined {\n\t\tconst old = this.#old;\n\t\treturn old?.draining ? old : undefined;\n\t}\n\n\t/** Resolves at its first outcome (the start barrier waits for it); never rejects. */\n\tget firstOutcome(): Promise<void> {\n\t\tif (this.#hasFirstOutcome) return Promise.resolve();\n\t\tthis.#firstOutcome ??= Promise.withResolvers<void>();\n\t\treturn this.#firstOutcome.promise;\n\t}\n\n\t/**\n\t * Whether an activation is under way: waiting for its previous instance's teardown, or activating and showing\n\t * `loading` (its factory, its natives' opens, a dependency still loading); a parked wait (`failed { waiting }`) is not.\n\t */\n\tget activating(): boolean {\n\t\tconst state = this.#state;\n\t\treturn state.kind === \"waiting\" || (state.kind === \"activating\" && state.shown.kind === \"loading\");\n\t}\n\n\t/** Whether it holds up the start barrier: it has no first outcome yet. */\n\tget blocksFirstPass(): boolean {\n\t\treturn !this.#hasFirstOutcome;\n\t}\n\n\t/**\n\t * The error of its last failure while none went live since: a failed attempt's, or the cause its parked attempt\n\t * showed last (kept when the dependency falls back to `loading`, so a getter's deadline names it).\n\t */\n\tget lastFailure(): ChordError | undefined {\n\t\treturn this.#lastFailure;\n\t}\n\n\t/** The span of the activation under way, when one runs and is recorded (getters waiting for it link to it). */\n\tget activationSpan(): TelemetryContext | undefined {\n\t\treturn this.#state.kind === \"activating\" ? this.#state.attempt.activationSpan : undefined;\n\t}\n\n\t/** Its instance id while an attempt activates; `undefined` otherwise (a hold's chain names only activations). */\n\tget activationId(): string | undefined {\n\t\treturn this.#state.kind === \"activating\" ? this.#instance : undefined;\n\t}\n\n\t/**\n\t * The chain a hold this object's activation makes over a link carries (Q5): its own chain and its instance id, the\n\t * last 32; `undefined` when it is not activating.\n\t */\n\tactivationChain(): string[] | undefined {\n\t\tconst id = this.activationId;\n\t\tif (id === undefined) return undefined;\n\t\tconst { chain } = this;\n\t\treturn [...(chain.length < CHAIN ? chain : chain.slice(chain.length - CHAIN + 1)), id];\n\t}\n\n\t/** Its holders, for a presence list made after they took it. */\n\tget holders(): ReadonlySet<Holder> {\n\t\treturn this.#holders;\n\t}\n\n\t/**\n\t * The variant a live remote object's factory chose (a restart's open old attempt's meanwhile); `undefined` for a\n\t * local object and before it is live.\n\t */\n\tget variant(): string | undefined {\n\t\treturn this.#state.kind === \"live\" ? this.#state.attempt.variant : this.openOldAttempt?.variant;\n\t}\n\n\t/** The live object's state members, as Chord follows them. */\n\tget stateMembers(): ReadonlyMap<string, DeriveSource> {\n\t\treturn this.#live().stateMembers;\n\t}\n\n\t/**\n\t * Starts an attempt when waiting or failed and returns it; a trigger while an attempt runs (or once live) is ignored.\n\t * After a failure the holders are told: their references are loading again.\n\t */\n\tattempt(): Attempt | undefined {\n\t\tconst state = this.#state;\n\t\tif (state.kind !== \"waiting\" && state.kind !== \"failed\") return undefined;\n\t\tthis.#instance ??= uuidv7();\n\t\tconst attempt = this.#newAttempt();\n\t\tthis.#state = { kind: \"activating\", attempt, shown: LOADING };\n\t\tif (state.kind === \"failed\") this.#notify();\n\t\tvoid this.#run(attempt, this.host.endingOf(this.identity));\n\t\treturn attempt;\n\t}\n\n\t/**\n\t * `ref.retry()` and a `retry` message, as a step of `walk` (handled once per walk: a diamond reaches it twice): an\n\t * attempt now when failed (a broken one too) or waiting, its backoff window skipped; passed on to the failed\n\t * dependencies while parked `failed { waiting }`; ignored otherwise (an attempt runs, or it is live).\n\t */\n\tretry(walk: RetryWalk = retryWalk()): void {\n\t\tif (walk.visited.has(this)) return;\n\t\twalk.visited.add(this);\n\t\tconst state = this.#state;\n\t\tif (state.kind === \"activating\") {\n\t\t\tif (state.shown.kind === \"failed\") state.attempt.retryDependencies(walk);\n\t\t\treturn;\n\t\t}\n\t\tif (state.kind !== \"waiting\" && state.kind !== \"failed\") return;\n\t\tthis.host.backoff.skip(this.identity);\n\t\tthis.attempt();\n\t}\n\n\t/**\n\t * Follows `sources` as its wake signals instead of the last attempt's (`self.retryOn`, right after a factory\n\t * returned): a new value retries it while failed, as `ref.retry()` does; one while it activates retries it at once\n\t * if that attempt fails; one while live does nothing.\n\t */\n\tretryOn(sources: readonly RetrySource[]): void {\n\t\tif (this.#wakes === undefined && sources.length === 0) return;\n\t\tthis.#wakes ??= new RetryWakes();\n\t\tthis.#wakes.replace(sources, () => this.#wake());\n\t}\n\n\t/**\n\t * Calls a method of the live object for `caller`, bound at `version` (an older one maps its arguments and result,\n\t * Q10), its `chord.method` span under `parent` (the caller's span on this host, a call's carrier over a link). While\n\t * an attempt activates (a reload's restart, a retry), new work waits for its outcome (the gate); old work runs on a\n\t * restart's open old attempt.\n\t */\n\tasync call(\n\t\tmethod: string,\n\t\targs: unknown,\n\t\tcontext: Context,\n\t\tcaller: Caller,\n\t\tversion: number,\n\t\tparent?: TelemetryContext,\n\t): Promise<unknown> {\n\t\tif (this.#state.kind === \"activating\") {\n\t\t\t// Old work runs on the open old attempt (rule 2): work begun before the reload finishes on old code, and a\n\t\t\t// restart's drain never waits on itself. The old attempt checks the call's version against its own contract.\n\t\t\tconst old = this.openOldAttempt;\n\t\t\tif (old !== undefined && this.host.oldWork.of(context)) {\n\t\t\t\treturn old.call(method, args, context, caller, version, parent ?? context.telemetry);\n\t\t\t}\n\t\t\t// Old work here found no open old attempt (else it was routed above): any version cycles through the gate.\n\t\t\tawait this.host.waitAsOldWork(this.#openerGate(context), this, this.served.contract, context);\n\t\t}\n\t\treturn this.#live().call(method, args, context, caller, version, parent ?? context.telemetry);\n\t}\n\n\t/** Whether a consumer of `contract`'s version and fingerprint binds to this object's provider now (R6, Q10). */\n\tbinds(contract: Contract): boolean {\n\t\treturn binds(this.served.provider, contract.version, contract.fingerprint);\n\t}\n\n\t/** Its params as checked, with their identity key. */\n\tget checkedParams(): CheckedParams {\n\t\treturn { params: this.params, key: this.key };\n\t}\n\n\t/**\n\t * What a reference of `version` follows for state member `member` now (decision \"References are the only\n\t * indirection\"): the shown instance's member (its mapping at an older version) while that instance is live, while a\n\t * restart keeps it open, and after a live failure until its admitted commits published; else nothing:\n\t * `failed` with the cause's error, or `loading`, with that member to take a last value from.\n\t */\n\tfollowed(member: string, version: number): Followed {\n\t\tconst exposed = this.#exposed;\n\t\tlet shown: DeriveSource | undefined;\n\t\tlet lacking: ChordError | undefined;\n\t\tif (exposed !== undefined) {\n\t\t\ttry {\n\t\t\t\tshown = exposed.memberAt(member, version);\n\t\t\t} catch (error) {\n\t\t\t\tconst failure = asChordError(error, this.label);\n\t\t\t\t// The shown instance does not serve this version (a restart's old one, while a reload brings it): nothing yet.\n\t\t\t\tif (failure.code !== \"contract_mismatch\") lacking = failure;\n\t\t\t}\n\t\t}\n\t\tif (exposed !== undefined && this.#following) {\n\t\t\tif (shown !== undefined) return { kind: \"live\", source: shown, instance: exposed };\n\t\t\tif (lacking !== undefined) return { kind: \"lacking\", error: lacking };\n\t\t\treturn { kind: \"loading\", last: undefined, instance: undefined };\n\t\t}\n\t\tconst state = this.#state;\n\t\tconst failure =\n\t\t\tstate.kind === \"failed\"\n\t\t\t\t? state.failure\n\t\t\t\t: state.kind === \"activating\" && state.shown.kind === \"failed\"\n\t\t\t\t\t? state.shown\n\t\t\t\t\t: undefined;\n\t\tif (failure !== undefined) return { kind: \"failed\", error: failure.cause.error, last: shown, instance: exposed };\n\t\treturn { kind: \"loading\", last: shown, instance: exposed };\n\t}\n\n\t/**\n\t * The instance its references follow now (they attach to it; they take last values only from an instance they\n\t * attached to); `undefined` once it stopped changing.\n\t */\n\tget attachable(): Attempt | undefined {\n\t\treturn this.#following ? this.#exposed : undefined;\n\t}\n\n\t/**\n\t * The live instance, which references pin their keys on (a new one: they pin again), or a restart's open old\n\t * attempt; `undefined` otherwise.\n\t */\n\tget instance(): Attempt | undefined {\n\t\treturn this.#state.kind === \"live\" ? this.#state.attempt : this.openOldAttempt;\n\t}\n\n\t/** The live instance's state member `member` as a consumer of `version` follows it (a hold over a link). */\n\tliveMember(member: string, version: number): DeriveSource {\n\t\treturn this.#live().memberAt(member, version);\n\t}\n\n\t/** How a consumer of `version` reads keyed member `member`'s documents: mapped back when older (`undefined`: as they are). */\n\tkeyedMapping(member: string, version: number): ((current: JsonValue) => JsonValue) | undefined {\n\t\treturn this.#live().keyMapping(member, version);\n\t}\n\n\t/**\n\t * The gate, with an activation's opener waiting here recorded as an edge of its object (a wait of old work on that\n\t * object then sees it), the waits of old work checked again when one starts.\n\t */\n\tasync #openerGate(context: Context): Promise<void> {\n\t\tconst opener = context.value(OPENING);\n\t\tif (opener === undefined) return this.#gate(context);\n\t\topener.#gateWaits ??= new Set();\n\t\tconst waits = opener.#gateWaits;\n\t\twaits.add(this);\n\t\tthis.host.reloadCycles.recheck();\n\t\ttry {\n\t\t\tawait this.#gate(context);\n\t\t} finally {\n\t\t\twaits.delete(this);\n\t\t}\n\t}\n\n\t/**\n\t * What its activation waits for now (reload cycles, rule 6): the objects its parked attempt's dependencies are bound\n\t * to, and those whose gate its opener waits at.\n\t */\n\twaitEdges(): ChordObject[] {\n\t\tconst edges = [...(this.#gateWaits ?? [])];\n\t\tfor (const dependency of this.#waitingFor) {\n\t\t\tconst target = dependency.kind === \"reference\" ? dependency.binding.target : undefined;\n\t\t\tif (target instanceof ChordObject) edges.push(target);\n\t\t}\n\t\treturn edges;\n\t}\n\n\t/**\n\t * Waits while an attempt activates until the object is live, failed or ended (`#live` then calls or throws);\n\t * rejects with the cause once the attempt parks on a failed dependency (`failed { waiting }`), and with\n\t * `unavailable/park_timeout` after `readyTimeout`, as a call parked on a reference. A hold over a link stays bound\n\t * while a restart's old attempt is open, so its consumer sees `live` and sends calls that arrive here: new work\n\t * waits for the new attempt, never `not_ready`.\n\t */\n\tasync #gate(context: Context): Promise<void> {\n\t\tconst { ready } = this.host.timeouts;\n\t\tconst due = Date.now() + ready;\n\t\tfor (;;) {\n\t\t\tconst state = this.#state;\n\t\t\tif (state.kind !== \"activating\") return;\n\t\t\tif (state.shown.kind === \"failed\") throw state.shown.cause.error;\n\t\t\tconst left = due - Date.now();\n\t\t\tif (left <= 0) {\n\t\t\t\tconst message = `${this.label}: a call waited ${ready} ms for its object to go live`;\n\t\t\t\tthrow new ChordError({ code: \"unavailable\", reason: \"park_timeout\", message });\n\t\t\t}\n\t\t\tthis.#changed ??= Promise.withResolvers();\n\t\t\tconst timer = Promise.withResolvers<void>();\n\t\t\tconst timeout = setTimeout(timer.resolve, left);\n\t\t\ttry {\n\t\t\t\tawait awaitWithContext(Promise.race([this.#changed.promise, timer.promise]), context);\n\t\t\t} finally {\n\t\t\t\tclearTimeout(timeout);\n\t\t\t}\n\t\t}\n\t}\n\n\t/** The keyed member `member` of the live object: its ultimate slot (slice 6a §12). */\n\tkeyedMember(member: string): KeyedSlot {\n\t\treturn this.#live().keyedMember(member);\n\t}\n\n\t/** Pins `key` of keyed member `member` on the live instance, as a consumer of `version` reads it (`Attempt.pinKey`). */\n\tpinKey(member: string, key: string, version: number, context: Context): Promise<PinnedKey> {\n\t\treturn this.#live().pinKey(member, key, version, context);\n\t}\n\n\t/**\n\t * Counts `holder` as a reference to this object (the holder reads `state` itself), listed in its type's presence; a\n\t * lingering object stays.\n\t */\n\thold(holder: Holder): void {\n\t\t// A version it binds whose member the live provider refuses (an older consumer): it waits unbound instead.\n\t\tconst state = this.#state;\n\t\tconst unfit = state.kind === \"live\" ? this.#unfit(holder, state.attempt) : undefined;\n\t\tif (unfit !== undefined) {\n\t\t\tthis.#unbound(holder, unfit);\n\t\t\treturn;\n\t\t}\n\t\tthis.#holders.add(holder);\n\t\tthis.#stopLingering();\n\t\t// Last: a derive over the presence list may close a link synchronously, which may release this holder again.\n\t\tthis.host.referenced(this, holder, this.#context);\n\t}\n\n\t/** `holder` was released: the object may end (`#idle`). */\n\tunhold(holder: Holder): void {\n\t\tif (!this.#holders.delete(holder)) return;\n\t\tthis.#dropUnheld(holder.contract.version);\n\t\tthis.#idle();\n\t\t// Last: a derive over the presence list may close a link synchronously, which releases other holders again.\n\t\tthis.host.unreferenced(this, [holder], this.#context);\n\t}\n\n\t/**\n\t * The records of job `definition`'s runs, made by its first declaration. A later declaration (a new attempt's, after a\n\t * reload) at another version takes the records over (each run keeps its version, slice 7b §8); one at the same\n\t * version with another fingerprint is refused (`checkJob`).\n\t */\n\tjobRecords(definition: JobDefinition<unknown, unknown, unknown>): JobRecords {\n\t\tconst records = this.#jobs.get(definition.name);\n\t\tif (records === undefined) {\n\t\t\tconst { store } = this.host;\n\t\t\tconst owner = {\n\t\t\t\tlabel: this.label,\n\t\t\t\thost: this.host,\n\t\t\t\tcontext: this.#context,\n\t\t\t\tdocuments: this.documents,\n\t\t\t\tstore: store === undefined ? undefined : { store, owner: this.served.contract.name },\n\t\t\t\tcountRuns: (delta: number) => this.countRuns(delta),\n\t\t\t\theld: (deadline: number) => this.#heldUntil(deadline),\n\t\t\t};\n\t\t\tconst made = new JobRecords(definition, owner);\n\t\t\tthis.#jobs.set(definition.name, made);\n\t\t\treturn made;\n\t\t}\n\t\tthis.checkJob(definition);\n\t\trecords.redefine(definition);\n\t\treturn records;\n\t}\n\n\t/** Refuses a declaration of a job its records cannot take (`JobRecords.check`); a reload's staging checks it too. */\n\tcheckJob(definition: JobDefinition<unknown, unknown, unknown>): void {\n\t\tthis.#jobs.get(definition.name)?.check(definition);\n\t}\n\n\t/**\n\t * Claims table `table` (its SQL name) in the host's store for this object, until its end (slice 6b claims); held by\n\t * another owner: `invalid/args`, which fails the declaring factory.\n\t */\n\tclaimTable(table: string): void {\n\t\tthis.host.store!.claims.table(table, this);\n\t}\n\n\t/** Its live queries by table (`self.query`), across its attempts: what its commits writing a table re-run. */\n\tget liveQueries(): LiveQueries {\n\t\tthis.#liveQueries ??= new LiveQueries();\n\t\treturn this.#liveQueries;\n\t}\n\n\t/** Claims this object's documents in `namespace` of the host's store, as `claimTable`. */\n\tclaimDocuments(namespace: string): void {\n\t\tthis.host.store!.claims.documents(this.served.contract.name, namespace, this);\n\t}\n\n\t/**\n\t * A runtime failure of the live attempt `attempt`: `broken` (a `migrate` failing on access, a stored version newer\n\t * than the code, a refused commit) or `transient` (a followed runtime failed, R4): the attempt is sealed and the\n\t * object `failed` with `cause`; calls reject with it, holders are told, its references keep their last values once the\n\t * admitted commits adopted (`followed`), the natives close in the background (then its references are released),\n\t * `onError` gets `object_failed` once. Documents and job runs stay. Recovery: a broken failure by `ref.retry()`, a\n\t * transient one after its identity's backoff too (a new attempt, whose members its references follow once live). A\n\t * failure of a sealed attempt is ignored, so several at once fail it once.\n\t */\n\tfailLive(attempt: Attempt, cause: FailureCause): void {\n\t\tconst state = this.#state;\n\t\tif (state.kind !== \"live\" || state.attempt !== attempt) return;\n\t\tconst { error } = cause;\n\t\tif (cause.kind === \"transient\") this.host.backoff.failed(this.identity);\n\t\telse this.host.backoff.delete(this.identity);\n\t\tconst failure: Failed = { kind: \"failed\", cause, retryAt: this.host.backoff.until(this.identity) };\n\t\tthis.#state = { kind: \"failed\", failure };\n\t\tthis.#lastFailure = error;\n\t\tthis.#withdraw(attempt);\n\t\tattempt.seal(error);\n\t\t// Its references follow every member on until the commits admitted before the seal adopted and published once\n\t\t// (frames included), then stop. A retry's factory and hydration wait for both (its ending), so no old commit\n\t\t// lands in a new attempt.\n\t\tconst frozen = this.documents.settled().then(() => this.#stopFollowing(attempt));\n\t\tconst closing = Promise.all([attempt.close(END), frozen]).then(([failures]) => {\n\t\t\tattempt.detach();\n\t\t\tattempt.releaseReferences();\n\t\t\treturn failures;\n\t\t});\n\t\tthis.host.ending(this.identity, this.#reported(closing));\n\t\tthis.host.report({ kind: \"object_failed\", object: this.label, failure: cause });\n\t\tthis.#notify();\n\t\tthis.#idle();\n\t}\n\n\t/** A held state change must be stored by `deadline`: the timer is set for the earliest one. */\n\t#heldUntil(deadline: number): void {\n\t\tif (this.#flush !== undefined && this.#flush.deadline <= deadline) return;\n\t\tif (this.#flush !== undefined) clearTimeout(this.#flush.timer);\n\t\t// A foreground timer: what is held is stored before the process may exit.\n\t\tconst timer = setTimeout(() => void this.#flushHeld(), Math.max(0, deadline - Date.now()));\n\t\tthis.#flush = { deadline, timer };\n\t}\n\n\t/** The timer fired: every held change past its deadline is stored, and the timer set for the next one. */\n\tasync #flushHeld(): Promise<void> {\n\t\tthis.#flush = undefined;\n\t\tif (this.#state.kind === \"ended\") return;\n\t\tconst now = Date.now();\n\t\tconst jobs = [...this.#jobs.values()];\n\t\tawait Promise.all(jobs.map((records) => records.flushHeld(now)));\n\t\tconst next = Math.min(...jobs.map((records) => records.nextDeadline()));\n\t\tif (Number.isFinite(next)) this.#heldUntil(next);\n\t}\n\n\t/**\n\t * Adds `delta` to its running and finishing job runs (and `host.activity.jobs`). A new run keeps a lingering object;\n\t * the last one settling on an object without references ends it as its last release would (`#idle`).\n\t */\n\tcountRuns(delta: number): void {\n\t\tthis.#runs += delta;\n\t\tthis.host.count(\"jobs\", delta);\n\t\t// A run started while the object lingers keeps it, like a new reference.\n\t\tif (delta > 0) this.#stopLingering();\n\t\tif (this.#runs === 0) this.#idle();\n\t}\n\n\t/**\n\t * Throws `invalid/cycle` when waiting for `dependency` closes a chain of waits back to this object (Q5). Every other\n\t * object on the chain fails broken with the same error, so no part of a cycle waits for a retry. Counts the objects\n\t * it visits (`chord.cycle.visits`). Otherwise, a dependency whose activation is in this object's chain closes a\n\t * cycle through other hosts (they fail through their dependency on this one).\n\t */\n\tassertNoCycle(dependency: Target, context: Context): void {\n\t\tconst visited = new Set<Target>();\n\t\tconst cycle = dependency.pathTo(this, visited);\n\t\tchordMetrics(context.telemetry.metrics).counter(\"chord.cycle.visits\").add(visited.size);\n\t\tif (cycle === undefined) {\n\t\t\tconst across = dependency.activationId;\n\t\t\tif (across === undefined || !this.chain.includes(across)) return;\n\t\t\tthrow this.host.cycle(this.chain, across, [this.label, dependency.label]);\n\t\t}\n\t\tconst error = invalid(\"cycle\", `dependency cycle: ${[this, ...cycle].map(({ label }) => label).join(\" → \")}`);\n\t\tfor (const object of cycle) {\n\t\t\tconst state = object.#state;\n\t\t\tif (object !== this && state.kind === \"activating\") {\n\t\t\t\tstate.attempt.abandon({ kind: \"failed\", cause: { kind: \"broken\", error } });\n\t\t\t}\n\t\t}\n\t\tthrow error;\n\t}\n\n\t/** Its parked attempt waits for `dependencies` (none once it leaves parking): the waits a cycle check follows. */\n\twaitsFor(dependencies: readonly Dependency[]): void {\n\t\tthis.#waitingFor = dependencies;\n\t}\n\n\t/**\n\t * A dependency of its current attempt changed (its state, or its first outcome): a parked attempt checks again; an\n\t * attempt past its dependency check ignores it (R18 after live), and so does any other state.\n\t */\n\tdependencyMoved(): void {\n\t\tconst state = this.#state;\n\t\tif (state.kind === \"activating\") state.attempt.dependencyMoved();\n\t}\n\n\t/**\n\t * Its attempt `attempt` is parked showing `shown` (`loading` or `failed { waiting }`): holders are told when that\n\t * changed (a cause compared by value). `firstPass`: no blocker here is still without its first outcome, so this\n\t * object has its first outcome now.\n\t */\n\tparked(attempt: Attempt, shown: RefState, firstPass: boolean): void {\n\t\tconst state = this.#state;\n\t\tif (state.kind !== \"activating\" || state.attempt !== attempt) return;\n\t\tif (!sameState(state.shown, shown)) {\n\t\t\tthis.#state = { kind: \"activating\", attempt, shown };\n\t\t\tif (shown.kind === \"failed\") {\n\t\t\t\tthis.#lastFailure = shown.cause.error;\n\t\t\t\t// A restart's successor parked on a failure: the old attempt's kept contributions leave (F-c).\n\t\t\t\tthis.#dropKept();\n\t\t\t}\n\t\t\tthis.#notify();\n\t\t}\n\t\tif (firstPass) this.#settleFirstOutcome();\n\t\t// A park may close a cycle with a wait of old work (rule 6).\n\t\tthis.host.reloadCycles.recheck();\n\t}\n\n\t/** Its attempt `attempt` left parking for its own steps: it shows `loading` until its outcome. */\n\tunparked(attempt: Attempt): void {\n\t\tconst state = this.#state;\n\t\tif (state.kind !== \"activating\" || state.attempt !== attempt) return;\n\t\tif (!sameState(state.shown, LOADING)) this.parked(attempt, LOADING, false);\n\t}\n\n\t/** The contributions a restart kept for its successor leave the tables (F-c): it will not take them over now. */\n\t#dropKept(): void {\n\t\tconst kept = this.#kept;\n\t\tif (kept === undefined) return;\n\t\tthis.#kept = undefined;\n\t\tthis.#withdraw(kept);\n\t}\n\n\t/**\n\t * Ends the object (once): sealed now, its holders and running calls told `error` (`released` by default), torn down\n\t * in the background with reason `end`, close failures reported.\n\t */\n\tend(error: ChordError = this.ended()): void {\n\t\tconst teardown = this.#seal({ kind: \"end\", error });\n\t\tif (teardown.kind !== \"none\") this.host.ending(this.identity, this.#reported(this.#tearDown(teardown, END)));\n\t}\n\n\t/**\n\t * Ends the object for `host.close`: sealed now; returns its teardown (reason `close`), which the host runs once every\n\t * object is sealed, so no reference it releases starts an ending in the background.\n\t */\n\tstop(): () => Promise<CloseFailed[]> {\n\t\tconst teardown = this.#seal({ kind: \"end\", error: this.ended() });\n\t\treturn () => this.#tearDown(teardown, CLOSE);\n\t}\n\n\t/**\n\t * Ends the object because a reload removed its type (slice 7b §4): as `end` (natives close with reason `end`,\n\t * running calls' callers rejected `released`, handlers drained), but its holders' requests are not ended: they wait\n\t * unbound with `cause` (`not_served`), references with their last values, until the next object of its identity\n\t * binds them (`Removal`).\n\t */\n\tremove(cause: FailureCause): void {\n\t\tconst teardown = this.#seal({ kind: \"removed\", error: this.ended(), cause });\n\t\tif (teardown.kind !== \"none\") this.host.ending(this.identity, this.#reported(this.#tearDown(teardown, END)));\n\t}\n\n\t/** What a reload does to this object, whose type is still served: a live object restarts, any other is retried. */\n\treloadFate(): ReloadFate {\n\t\treturn this.#state.kind === \"live\" ? \"restart\" : \"retry\";\n\t}\n\n\t/**\n\t * Takes `fate` with its new served type (after the reload's commit) and, for a restart, its new factory's requests as\n\t * staging recorded them; returns the new attempt, whose first dependency check the reload's report waits for (a\n\t * retry's).\n\t */\n\treload(served: Served, fate: ReloadFate, requests: readonly Request[]): Attempt {\n\t\t// Its members per version stay: the previous version's are mapped once the new attempt goes live.\n\t\tthis.served = served;\n\t\tconst attempt = fate === \"restart\" ? this.#restart(requests) : this.#retryReloaded();\n\t\tattempt.startedByReload();\n\t\treturn attempt;\n\t}\n\n\t/**\n\t * A restart (decision \"Reload restarts every affected object; old work finishes on old code\"): its routines stop,\n\t * new calls wait at the gate, old work runs on the old attempt, and consumers whose version it binds see it live; its\n\t * contributions stay (until its seal with natives, F-b; until its successor is live without, F-c). It is sealed once\n\t * its successor's recorded requests are ready and its calls, routed old work included, drained, bounded by the\n\t * reload drain bound; then its natives close with reason `reload` and the successor, a new instance (D4), runs its\n\t * factory. Readiness and successor start once every fate of the reload started (`startSuccessor`).\n\t */\n\t#restart(requests: readonly Request[]): Attempt {\n\t\t// A restart starts from a live object (`reloadFate`).\n\t\tconst old = (this.#state as Extract<ObjectState, { readonly kind: \"live\" }>).attempt;\n\t\tthis.#old = old;\n\t\told.beginDrain();\n\t\told.stopRoutines();\n\t\tif (!old.opensNatives) this.#kept = old;\n\t\tthis.#instance = uuidv7();\n\t\tconst attempt = this.#replace();\n\t\tconst shows = (cause: FailureCause | undefined): void => this.#readinessShown(attempt, cause);\n\t\tconst readiness = new Readiness(this.host, this.#caller(), requests, shows, this.#context);\n\t\tthis.#readiness = readiness;\n\t\tconst due = Date.now() + this.host.timeouts.reload;\n\t\tconst ended = this.#endOld(old, readiness, due);\n\t\tthis.host.ending(this.identity, this.#reported(ended));\n\t\tconst ending = this.host.endingOf(this.identity);\n\t\tthis.#startSuccessor = () => this.#startRestarted(attempt, old, readiness, ended, ending);\n\t\treturn attempt;\n\t}\n\n\t/**\n\t * Ends a restart's old attempt: once its successor's requests are ready and its calls drained (routed old work joins\n\t * while the drain runs), by `due`; sealed (in-memory job runs end `aborted { reload }`), its references take their\n\t * last values once its admitted commits published (a store write is not a running call's promise), its natives\n\t * close with reason `reload`.\n\t */\n\tasync #endOld(old: Attempt, readiness: Readiness, due: number): Promise<CloseFailed[]> {\n\t\tawait readiness.ready(due);\n\t\tawait old.drainCalls(due);\n\t\t// With natives its contributions leave at the seal (F-b); without, they stay for its successor (F-c), unless a\n\t\t// failure dropped them already.\n\t\tif (old.opensNatives) this.#withdraw(old);\n\t\told.seal(this.#reloaded(), \"reload\");\n\t\t// Sealed, it is no longer the instance its holders bind (`instance`, `stateFor`): a hold waiting for a window\n\t\t// slot unbinds now, before an `ack` could bind it to nothing; bound holds and references follow it on until it\n\t\t// stopped changing.\n\t\tthis.#notify();\n\t\tawait this.documents.settled();\n\t\tthis.#stopFollowing(old);\n\t\tconst failures = await old.close(RELOAD);\n\t\told.detach();\n\t\treturn failures;\n\t}\n\n\t/** Starts a restart's readiness and its successor, once every fate of the reload started (its served types are new). */\n\tstartSuccessor(): void {\n\t\tconst start = this.#startSuccessor;\n\t\tthis.#startSuccessor = undefined;\n\t\tstart?.();\n\t}\n\n\t/**\n\t * Binds the readiness, whose failures the successor shows until the old attempt ended (`#readinessShown`). The\n\t * successor runs after `ending`; once the old attempt ended (`ended`) and the successor's own requests bound, the old\n\t * attempt's references and the readiness bindings are released (F-a: a dependency held only by them never ends; a\n\t * successor a later reload replaces never releases them early).\n\t */\n\t#startRestarted(\n\t\tattempt: Attempt,\n\t\told: Attempt,\n\t\treadiness: Readiness,\n\t\tended: Promise<unknown>,\n\t\tending: Promise<void> | undefined,\n\t): void {\n\t\tthis.#showsReadiness = attempt;\n\t\t// Before the successor's own steps (`ending` settles after `ended`): its own checks show what it waits for then.\n\t\tvoid ended.then(() => {\n\t\t\tif (this.#showsReadiness === attempt) this.#showsReadiness = undefined;\n\t\t});\n\t\treadiness.start();\n\t\tvoid this.#run(attempt, ending);\n\t\tvoid Promise.all([ended, attempt.checked]).then(() => {\n\t\t\told.releaseReferences();\n\t\t\treadiness.release();\n\t\t\tif (this.#readiness === readiness) this.#readiness = undefined;\n\t\t});\n\t}\n\n\t/** What a restart's readiness finds now: a failed request the successor waits for, if any (the report's). */\n\tget readinessCause(): FailureCause | undefined {\n\t\treturn this.#readiness?.cause;\n\t}\n\n\t/**\n\t * A restart's readiness found `cause` (a failed request), or none any more: while the old attempt has not ended, the\n\t * successor `attempt` shows it (new calls get the cause, consumers see the failure; old work still runs on the old\n\t * attempt), and shows `loading` again once the request recovered. Its kept contributions stay: only the successor's\n\t * own failure or park drops them (F-c).\n\t */\n\t#readinessShown(attempt: Attempt, cause: FailureCause | undefined): void {\n\t\tconst state = this.#state;\n\t\tif (this.#showsReadiness !== attempt || state.kind !== \"activating\" || state.attempt !== attempt) return;\n\t\tconst shown: RefState = cause === undefined ? LOADING : { kind: \"failed\", cause, retryAt: undefined };\n\t\tif (sameState(state.shown, shown)) return;\n\t\tthis.#state = { kind: \"activating\", attempt, shown };\n\t\tif (cause !== undefined) this.#lastFailure = cause.error;\n\t\tthis.#notify();\n\t\tthis.host.reloadCycles.recheck();\n\t}\n\n\t/** Whom its own requests act as: the host for a local object, its principal for a remote one. */\n\t#caller(): Caller {\n\t\tconst { host, served, principal } = this;\n\t\treturn { principal: served.kind === \"remote\" ? principal : host.principal, incarnation: host.incarnation };\n\t}\n\n\t/**\n\t * A reload retries an object that is not live (slice 7b §9, decision 1): a parked attempt is replaced in one\n\t * handover (it opened nothing: the new attempt's requests bind before the old ones are released, M§3.9); an attempt\n\t * in its own steps is sealed, its natives close with reason `reload`, and the new one activates after that teardown;\n\t * a failed or waiting one gets an attempt now, its backoff skipped.\n\t */\n\t#retryReloaded(): Attempt {\n\t\tconst state = this.#state;\n\t\tif (state.kind === \"activating\") {\n\t\t\tconst { attempt: old } = state;\n\t\t\tconst parked = old.isParked;\n\t\t\t// A parked attempt's successor waits for no teardown of it (its references are released after it bound).\n\t\t\tconst ending = this.host.endingOf(this.identity);\n\t\t\told.seal(this.#reloaded(), \"reload\");\n\t\t\tconst attempt = this.#replace();\n\t\t\tif (parked) void this.#run(attempt, ending);\n\t\t\tconst after = parked ? attempt.checked : Promise.resolve();\n\t\t\tconst closing = after\n\t\t\t\t.then(() => old.close(RELOAD))\n\t\t\t\t.then((failures) => {\n\t\t\t\t\told.detach();\n\t\t\t\t\told.releaseReferences();\n\t\t\t\t\treturn failures;\n\t\t\t\t});\n\t\t\tthis.host.ending(this.identity, this.#reported(closing));\n\t\t\tif (!parked) void this.#run(attempt, this.host.endingOf(this.identity));\n\t\t\treturn attempt;\n\t\t}\n\t\tthis.host.backoff.skip(this.identity);\n\t\t// Waiting or failed (`reloadFate`): an attempt starts.\n\t\treturn this.attempt()!;\n\t}\n\n\t/** A new attempt replacing the current one, holders told; its caller starts it (`#run`) after what it waits for. */\n\t#replace(): Attempt {\n\t\tconst attempt = this.#newAttempt();\n\t\tthis.#state = { kind: \"activating\", attempt, shown: LOADING };\n\t\tthis.#notify();\n\t\treturn attempt;\n\t}\n\n\t/** Its next attempt, its activation span linked to the trigger of the last (or its first trigger). */\n\t#newAttempt(): Attempt {\n\t\treturn new Attempt(this, this.#context, { trigger: this.#trigger, attempt: ++this.#attempts });\n\t}\n\n\t/** The `released` error of an attempt a reload replaced. */\n\t#reloaded(): ChordError {\n\t\treturn new ChordError({ code: \"released\", reason: \"ended\", message: `${this.label}: replaced by a reload` });\n\t}\n\n\t/** The `released` error of this object. */\n\tended(): ChordError {\n\t\treturn new ChordError({ code: \"released\", reason: \"ended\", message: `${this.label}: ended` });\n\t}\n\n\t/** Runs `attempt`'s activation once `ending` (its predecessors' teardowns, if any) finished; takes its outcome. */\n\tasync #run(attempt: Attempt, ending: Promise<void> | undefined): Promise<void> {\n\t\tconst outcome = await attempt.activate(ending);\n\t\tthis.#trigger = attempt.activationSpan ?? this.#trigger;\n\t\t// The object may have ended after the activation's last step.\n\t\tif (this.#state.kind !== \"activating\" || this.#state.attempt !== attempt) {\n\t\t\tattempt.activated({ kind: \"ended\" });\n\t\t\treturn;\n\t\t}\n\t\tswitch (outcome.kind) {\n\t\t\tcase \"live\":\n\t\t\t\tthis.#wentLive(attempt);\n\t\t\t\tattempt.activated(outcome);\n\t\t\t\treturn;\n\t\t\tcase \"failed\":\n\t\t\t\tthis.#failed(attempt, outcome.cause);\n\t\t\t\tattempt.activated({ ...outcome, retryAt: this.host.backoff.until(this.identity) });\n\t\t\t\treturn;\n\t\t\tcase \"ended\":\n\t\t\t\tattempt.activated(outcome);\n\t\t}\n\t}\n\n\t#wentLive(attempt: Attempt): void {\n\t\tif (this.#wakes !== undefined) this.#wakes.during = undefined;\n\t\t// Before the new instance is shown: holders of a version its provider does not bind leave with their last values,\n\t\t// which their references take from the instance shown so far.\n\t\tconst unbound = this.#unbindUnfit(attempt);\n\t\tthis.#state = { kind: \"live\", attempt };\n\t\tthis.#exposed = attempt;\n\t\tthis.#following = true;\n\t\tconst { contributions } = attempt;\n\t\t// A restart's kept contributions leave in the batch the new ones enter (F-c), so no reader sees a gap.\n\t\tconst leaving = this.#kept?.contributions ?? NO_CONTRIBUTIONS;\n\t\tthis.#kept = undefined;\n\t\t// In the registries' tables before anyone sees it live (a getter released now reads them recomposed).\n\t\tif (contributions.length > 0 || leaving.length > 0) {\n\t\t\tthis.host.batch.within(() => {\n\t\t\t\tfor (const contribution of leaving) contribution.record.remove(contribution);\n\t\t\t\tfor (const contribution of contributions) contribution.record.add(contribution);\n\t\t\t}, this.#context);\n\t\t\t// Contributions entering a registry nobody serves are reported as at a publication.\n\t\t\tfor (const contribution of contributions) contribution.record.reportUndeclared();\n\t\t}\n\t\tthis.#lastFailure = undefined;\n\t\tthis.host.wentLive(this);\n\t\t// Its references move to the new instance (one frame each); holds get a fresh `bound`.\n\t\tthis.#notify();\n\t\tthis.#settleFirstOutcome();\n\t\tattempt.live();\n\t\tthis.#takeJobs(attempt);\n\t\t// Its last holders may have left for their version: it ends as at their release.\n\t\tif (unbound) this.#idle();\n\t}\n\n\t/**\n\t * After `attempt` went live: the jobs it does not declare block their runs (slice 7b §8); after a reload, the blocked\n\t * runs of the jobs it declares are retried.\n\t */\n\t#takeJobs(attempt: Attempt): void {\n\t\tif (this.#jobs.size === 0) return;\n\t\tconst reloaded = attempt.reloadStarted;\n\t\tfor (const [name, records] of this.#jobs) {\n\t\t\tif (!attempt.declaresJob(name)) records.undeclare();\n\t\t\telse if (reloaded) void records.retryBlocked(this.#context);\n\t\t}\n\t}\n\n\t/**\n\t * Its holders whose version `attempt`'s provider (going live) does not bind (a reload dropped it, slice 7b §6), or\n\t * of which it refuses a member (`contract_mismatch`), leave it: they wait unbound `version` (`failed { waiting }`),\n\t * references with their last values, until a publication serves their version again. The object and its other\n\t * holders stay.\n\t */\n\t#unbindUnfit(attempt: Attempt): boolean {\n\t\tlet unfit: [Holder, ChordError][] | undefined;\n\t\tfor (const holder of this.#holders) {\n\t\t\tconst error = this.#unfit(holder, attempt);\n\t\t\tif (error === undefined) continue;\n\t\t\tunfit ??= [];\n\t\t\tunfit.push([holder, error]);\n\t\t}\n\t\tif (unfit === undefined) return false;\n\t\tfor (const [holder] of unfit) this.#holders.delete(holder);\n\t\tthis.host.unreferenced(\n\t\t\tthis,\n\t\t\tunfit.map(([holder]) => holder),\n\t\t\tthis.#context,\n\t\t);\n\t\tfor (const [holder, error] of unfit) this.#unbound(holder, error);\n\t\treturn true;\n\t}\n\n\t/** Whether a holder of `version` holds it. */\n\t#heldAt(version: number): boolean {\n\t\tfor (const holder of this.#holders) if (holder.contract.version === version) return true;\n\t\treturn false;\n\t}\n\n\t/**\n\t * Why `holder` cannot bind to `attempt` (live): its version is not one the provider binds, or the provider refuses a\n\t * member of it (`contract_mismatch`); `undefined` when it binds.\n\t */\n\t#unfit(holder: Holder, attempt: Attempt): ChordError | undefined {\n\t\tconst { contract, provider } = this.served;\n\t\tconst { version, fingerprint } = holder.contract;\n\t\tif (version === contract.version && fingerprint === contract.fingerprint) return undefined;\n\t\tif (binds(provider, version, fingerprint)) return refusal(this.served, version, attempt.variant);\n\t\treturn new ChordError({ code: \"contract_mismatch\", message: `${contract.name} v${version} is not served here` });\n\t}\n\n\t/**\n\t * `holder` (no longer held) waits unbound with `error` (`failed { waiting }`) until a publication fits it.\n\t */\n\t#unbound(holder: Holder, error: ChordError): void {\n\t\tconst cause: FailureCause = { kind: \"waiting\", error };\n\t\tholder.removed({ cause, host: this.host, params: this.checkedParams, context: this.#context });\n\t}\n\n\t/**\n\t * Records a failed attempt: reported, torn down in the background (reason `end`), its references released once its\n\t * natives closed, its holders told. Transient: a backoff window, whose end is the failure's `retryAt`; broken: no\n\t * automatic retry.\n\t */\n\t#failed(attempt: Attempt, cause: FailureCause): void {\n\t\tthis.#dropKept();\n\t\tconst wokenBy = this.#wakes?.during === attempt;\n\t\tif (this.#wakes !== undefined) this.#wakes.during = undefined;\n\t\tif (cause.kind === \"transient\") this.host.backoff.failed(this.identity);\n\t\telse this.host.backoff.delete(this.identity);\n\t\tconst failure: Failed = { kind: \"failed\", cause, retryAt: this.host.backoff.until(this.identity) };\n\t\tthis.#state = { kind: \"failed\", failure };\n\t\tthis.#lastFailure = cause.error;\n\t\tattempt.seal(this.ended());\n\t\tconst closing = attempt.close(END).then((failures) => {\n\t\t\tattempt.detach();\n\t\t\t// Released once its natives closed (a close may use them, §6, §13).\n\t\t\tattempt.releaseReferences();\n\t\t\treturn failures;\n\t\t});\n\t\tthis.host.ending(this.identity, this.#reported(closing));\n\t\tthis.host.report({ kind: \"activation_failed\", object: this.label, failure: cause });\n\t\tthis.#notify();\n\t\tthis.#settleFirstOutcome();\n\t\t// Job runs kept it while it activated; failed, they keep it no longer.\n\t\tthis.#idle();\n\t\t// A wake signal arrived while it activated: it retries it now.\n\t\tif (wokenBy) this.retry();\n\t}\n\n\t/**\n\t * A wake signal's new value (inside its batch): retries a failed object (after the batch: a factory may not run in\n\t * one), remembered while it activates, ignored while live and when its own contributions' leaving made it.\n\t */\n\t#wake(): void {\n\t\tconst state = this.#state;\n\t\t// Called by its wakes only.\n\t\tconst wakes = this.#wakes!;\n\t\tif (state.kind === \"activating\") {\n\t\t\t// While parked its dependencies decide (dependency model §3.8).\n\t\t\tif (!state.attempt.isParked) wakes.during = state.attempt;\n\t\t\treturn;\n\t\t}\n\t\tif (state.kind !== \"failed\" || wakes.leaving) return;\n\t\tqueueMicrotask(() => this.retry());\n\t}\n\n\t/**\n\t * The live attempt `attempt` leaves the registries' tables (it fails or ends), inside a batch; a composition this\n\t * leaving makes wakes no wake signal of this object.\n\t */\n\t#withdraw(attempt: Attempt): void {\n\t\tconst { contributions } = attempt;\n\t\tif (contributions.length === 0) return;\n\t\tconst { batch } = this.host;\n\t\tconst wakes = this.#wakes;\n\t\tbatch.within(() => {\n\t\t\tif (wakes !== undefined) {\n\t\t\t\twakes.leaving = true;\n\t\t\t\tbatch.flushing(() => {\n\t\t\t\t\twakes.leaving = false;\n\t\t\t\t});\n\t\t\t}\n\t\t\tfor (const contribution of contributions) contribution.record.remove(contribution);\n\t\t}, this.#context);\n\t}\n\n\t/**\n\t * `attempt`, the instance shown, stopped changing (a live failure's admitted commits published, a restart's old\n\t * attempt sealed): its references take their last values from it, holds leave it, and the object lets it go (a\n\t * reference made later never attached to it: it takes nothing from it).\n\t */\n\t#stopFollowing(attempt: Attempt): void {\n\t\tif (this.#old === attempt) this.#old = undefined;\n\t\tif (this.#exposed !== attempt || !this.#following) return;\n\t\tthis.#following = false;\n\t\tthis.#notify();\n\t\t// Its references took their values (`#notify` retargets them at once): a failed object keeps no ended instance.\n\t\tthis.#exposed = undefined;\n\t}\n\n\t/** Tells every holder that the state changed: references first follow what it shows now (`followed`). */\n\t#notify(): void {\n\t\tthis.#wakeGate();\n\t\tconst holders = [...this.#holders];\n\t\t// In one batch when some reference's members move (one frame each, a diamond over several sees one change); no\n\t\t// commit at all for references that used none (activation churn).\n\t\tconst retarget = (): void => {\n\t\t\tfor (const holder of holders) holder.retarget();\n\t\t};\n\t\tif (holders.some((holder) => holder.following)) this.host.batch.within(retarget, this.#context);\n\t\telse retarget();\n\t\tfor (const holder of holders) holder.moved();\n\t}\n\n\t/** Calls waiting at the gate check the state again. */\n\t#wakeGate(): void {\n\t\tthis.#changed?.resolve();\n\t\tthis.#changed = undefined;\n\t}\n\n\t/**\n\t * Marks the object ended: forgotten by the host, waits rejected, references to it ended with `error` (and gone from\n\t * its type's presence), its job runs ended (signals fired, waiters rejected), its transactions refused, its attempt\n\t * sealed. Returns what is left to tear down; it releases nothing itself.\n\t */\n\t#seal(ending: Ending): Teardown {\n\t\tconst { error } = ending;\n\t\tconst state = this.#state;\n\t\tif (state.kind === \"ended\") return { kind: \"none\" };\n\t\t// A restart's teardown (its old attempt's end) finishes before this one (they share its documents).\n\t\tconst previous = this.host.endingOf(this.identity);\n\t\t// Its ending rejects the callers of a restart's old attempt too, at once; that attempt's end closes it.\n\t\tthis.#old?.seal(error);\n\t\tthis.#dropKept();\n\t\tthis.#readiness?.release();\n\t\tthis.#readiness = undefined;\n\t\tthis.#showsReadiness = undefined;\n\t\tthis.#startSuccessor = undefined;\n\t\tthis.#state = { kind: \"ended\", ended: { kind: \"ended\", error } };\n\t\tthis.#wakeGate();\n\t\tfor (const records of this.#jobs.values()) records.end(error);\n\t\tif (this.#flush !== undefined) clearTimeout(this.#flush.timer);\n\t\tthis.#flush = undefined;\n\t\tthis.documents.seal();\n\t\tthis.#stopLingering();\n\t\tthis.#wakes?.stop();\n\t\tthis.host.forget(this);\n\t\t// An object of the start barrier's cohort that ends before its first outcome settles it as ended.\n\t\tthis.#settleFirstOutcome();\n\t\t// Sealed: its instance stops changing; its references take their last values from it.\n\t\tthis.#following = false;\n\t\tconst holders = [...this.#holders];\n\t\tthis.#holders.clear();\n\t\tthis.host.unreferenced(this, holders, this.#context);\n\t\t// Its type removed: its references wait with their last values, which they take from the instance shown (still\n\t\t// here); otherwise they end with it.\n\t\tconst removal: Removal | undefined =\n\t\t\tending.kind === \"removed\"\n\t\t\t\t? { cause: ending.cause, host: this.host, params: this.checkedParams, context: this.#context }\n\t\t\t\t: undefined;\n\t\tfor (const holder of holders) {\n\t\t\tif (removal === undefined) holder.end(error);\n\t\t\telse holder.removed(removal);\n\t\t}\n\t\tthis.#exposed = undefined;\n\t\t// A failed attempt is closed (or closing) since it failed.\n\t\tif (state.kind === \"waiting\" || state.kind === \"failed\") return { kind: \"end\", previous };\n\t\tif (state.kind === \"live\") this.#withdraw(state.attempt);\n\t\tstate.attempt.seal(error);\n\t\treturn { kind: \"close\", attempt: state.attempt, previous };\n\t}\n\n\t/**\n\t * The last holder of `version` left: the shown instance's shared mapping for it goes (Opus F2), so a long-lived\n\t * object keeps no mapped value nobody reads.\n\t */\n\t#dropUnheld(version: number): void {\n\t\tif (this.#heldAt(version)) return;\n\t\tthis.#exposed?.dropVersion(version);\n\t}\n\n\t/**\n\t * A remote object or a local one with params ends once it has no references and no running or finishing job runs:\n\t * a live one once its type's `linger` passed without a new reference, any other at once.\n\t */\n\t#idle(): void {\n\t\tconst kind = this.#state.kind;\n\t\t// A run waiting for a live attempt keeps its object only while one is live or activating.\n\t\tconst running = this.#runs > 0 && (kind === \"live\" || kind === \"activating\");\n\t\tconst kept = this.#holders.size > 0 || running || (this.served.kind === \"local\" && this.served.hostLifetime);\n\t\tif (kept || this.#state.kind === \"ended\" || this.#lingering !== undefined) return;\n\t\tif (this.#state.kind !== \"live\" || this.served.linger === 0) {\n\t\t\tthis.end();\n\t\t\treturn;\n\t\t}\n\t\t// A new holder clears the timer (`hold`), so an expiry finds none.\n\t\tthis.#lingering = setTimeout(() => {\n\t\t\tthis.#stopLingering();\n\t\t\tthis.end();\n\t\t}, this.served.linger);\n\t\tthis.host.count(\"lingering\", 1);\n\t}\n\n\t/** Its linger timer stops (a new holder, its expiry, its end): no longer counted as lingering. */\n\t#stopLingering(): void {\n\t\tif (this.#lingering === undefined) return;\n\t\tclearTimeout(this.#lingering);\n\t\tthis.#lingering = undefined;\n\t\tthis.host.count(\"lingering\", -1);\n\t}\n\n\t/**\n\t * Once the previous teardowns finished (a failed attempt's closes may read the documents): drains and closes a\n\t * sealed attempt, then releases its references (after the closes, which may use them), then waits for an admitted\n\t * commit step to adopt and drops the documents and job runs. Resolves with the closes that threw.\n\t */\n\tasync #tearDown(teardown: Teardown, reason: NativeCloseReason): Promise<CloseFailed[]> {\n\t\tif (teardown.kind === \"none\") return [];\n\t\tawait teardown.previous;\n\t\tconst failures = teardown.kind === \"close\" ? await teardown.attempt.close(reason) : [];\n\t\tif (teardown.kind === \"close\") {\n\t\t\tteardown.attempt.detach();\n\t\t\tteardown.attempt.releaseReferences();\n\t\t}\n\t\tawait this.documents.settled();\n\t\tthis.documents.end();\n\t\tthis.host.store?.claims.release(this);\n\t\tfor (const records of this.#jobs.values()) records.drop();\n\t\tthis.#jobs.clear();\n\t\treturn failures;\n\t}\n\n\t/** Reports the close failures of a teardown nobody waits for. */\n\tasync #reported(closing: Promise<CloseFailed[]>): Promise<void> {\n\t\tfor (const failure of await closing) this.host.report(failure);\n\t}\n\n\t/**\n\t * The live attempt, or a restart's open old attempt (its consumers saw it live); `not_ready` before the object went\n\t * live and while it activates again, the cause while failed, `released` once it ended.\n\t */\n\t#live(): Attempt {\n\t\tconst state = this.#state;\n\t\tif (state.kind === \"live\") return state.attempt;\n\t\tconst old = this.openOldAttempt;\n\t\tif (old !== undefined && state.kind === \"activating\") return old;\n\t\tif (state.kind === \"ended\") throw this.ended();\n\t\tif (state.kind === \"failed\") throw state.failure.cause.error;\n\t\tthrow new ChordError({ code: \"not_ready\", message: `${this.label}: not live yet` });\n\t}\n\n\t/** The settlement of its first outcome (once): dependents parked on it check their first pass again. */\n\t#settleFirstOutcome(): void {\n\t\tif (this.#hasFirstOutcome) return;\n\t\tthis.#hasFirstOutcome = true;\n\t\tthis.#firstOutcome?.resolve();\n\t\tthis.#firstOutcome = undefined;\n\t\tfor (const holder of this.#holders) holder.dependent?.dependencyMoved();\n\t}\n\n\t/** The chain of waits from this activation to `target` (see `Target`), through its parked attempt's dependencies. */\n\tpathTo(target: ChordObject, visited: Set<Target>): ChordObject[] | undefined {\n\t\tif (this === target) return [this];\n\t\tvisited.add(this);\n\t\tfor (const dependency of this.#waitingFor) {\n\t\t\tconst next = dependency.kind === \"reference\" ? dependency.binding.target : undefined;\n\t\t\tif (next === undefined || visited.has(next)) continue;\n\t\t\tconst rest = next.pathTo(target, visited);\n\t\t\tif (rest !== undefined) return [this, ...rest];\n\t\t}\n\t\treturn undefined;\n\t}\n}\n\n/** Whether two states of a reference say the same: the same object, or failures with the same cause (by value). */\nfunction sameState(a: RefState, b: RefState): boolean {\n\tif (a === b) return true;\n\treturn a.kind === \"failed\" && b.kind === \"failed\" && a.retryAt === b.retryAt && sameCause(a.cause, b.cause);\n}\n"]}
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
import { type Context, type ContextKey } from "../context/index.ts";
|
|
2
|
+
import type { ChordObject } from "./object.ts";
|
|
3
|
+
/** One link of a call chain: the attempt a method call runs on, and the chain of the call that made it (`up`). */
|
|
4
|
+
export type CallNode = {
|
|
5
|
+
/** The attempt the call runs on: old work while that attempt drains for a restart. */
|
|
6
|
+
readonly on: OldWorkSource;
|
|
7
|
+
up(): CallNode | undefined;
|
|
8
|
+
};
|
|
9
|
+
/** What a call chain's node runs on: an attempt, or another host's old work. */
|
|
10
|
+
export type OldWorkSource = {
|
|
11
|
+
readonly draining: boolean;
|
|
12
|
+
};
|
|
13
|
+
/** The key under which a context carries its call chain (a method ctx is its own node: no allocation per call). */
|
|
14
|
+
export declare const CALL_CHAIN: ContextKey<CallNode>;
|
|
15
|
+
/**
|
|
16
|
+
* The key under which an attempt's activation context carries its object: a call its opener makes is known as that
|
|
17
|
+
* object's (its gate waits are the object's wait edges for reload cycles).
|
|
18
|
+
*/
|
|
19
|
+
export declare const OPENING: ContextKey<ChordObject>;
|
|
20
|
+
/** The host's old work: whether a context runs under it, counted so that the check is free outside reloads. */
|
|
21
|
+
export declare class OldWork {
|
|
22
|
+
#private;
|
|
23
|
+
/** An old attempt began draining, or an old call from another host began running here. */
|
|
24
|
+
open(): void;
|
|
25
|
+
/** The counterpart of `open`. */
|
|
26
|
+
close(): void;
|
|
27
|
+
/** Whether `context` runs under old work (walked only while this host has any). */
|
|
28
|
+
of(context: Context): boolean;
|
|
29
|
+
}
|
|
30
|
+
/** `context` marked as old work that arrived from another host (`call.old` on a trusted link). */
|
|
31
|
+
export declare function asRemoteOldWork(context: Context): Context;
|
|
32
|
+
/** The attempts of `context`'s call chain, for the reload cycle check (another host's old work has none here). */
|
|
33
|
+
export declare function chainAttempts(context: Context): ReadonlySet<OldWorkSource>;
|
|
34
|
+
//# sourceMappingURL=old-work.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"old-work.d.ts","sourceRoot":"","sources":["../../src/host/old-work.ts"],"names":[],"mappings":"AAMA,OAAO,EAAE,KAAK,OAAO,EAAE,KAAK,UAAU,EAAsC,MAAM,qBAAqB,CAAC;AACxG,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAE/C,kHAAkH;AAClH,MAAM,MAAM,QAAQ,GAAG;IACtB,sFAAsF;IACtF,QAAQ,CAAC,EAAE,EAAE,aAAa,CAAC;IAC3B,EAAE,IAAI,QAAQ,GAAG,SAAS,CAAC;CAC3B,CAAC;AAEF,gFAAgF;AAChF,MAAM,MAAM,aAAa,GAAG;IAAE,QAAQ,CAAC,QAAQ,EAAE,OAAO,CAAA;CAAE,CAAC;AAE3D,mHAAmH;AACnH,eAAO,MAAM,UAAU,EAAE,UAAU,CAAC,QAAQ,CAAiD,CAAC;AAE9F;;;GAGG;AACH,eAAO,MAAM,OAAO,EAAE,UAAU,CAAC,WAAW,CAAkD,CAAC;AAE/F,+GAA+G;AAC/G,qBAAa,OAAO;;IAInB,0FAA0F;IAC1F,IAAI,IAAI,IAAI,CAEX;IAED,iCAAiC;IACjC,KAAK,IAAI,IAAI,CAEZ;IAED,mFAAmF;IACnF,EAAE,CAAC,OAAO,EAAE,OAAO,GAAG,OAAO,CAM5B;CACD;AAKD,kGAAkG;AAClG,wBAAgB,eAAe,CAAC,OAAO,EAAE,OAAO,GAAG,OAAO,CAEzD;AAED,kHAAkH;AAClH,wBAAgB,aAAa,CAAC,OAAO,EAAE,OAAO,GAAG,WAAW,CAAC,aAAa,CAAC,CAM1E"}
|
|
@@ -0,0 +1,52 @@
|
|
|
1
|
+
// Old work during a reload (decision "Reload restarts every affected object; old work finishes on old code"): the calls
|
|
2
|
+
// running on a restart's open old attempt and every call they cause. A call is old work when its call chain (the method
|
|
3
|
+
// ctxs it runs under, found through its context) holds an attempt that a restart drains, or when it arrived as old work
|
|
4
|
+
// from another host (`call.old` on a trusted link). The host counts its open old attempts and the old calls it runs
|
|
5
|
+
// for other hosts, so outside reloads no chain is walked.
|
|
6
|
+
import { createContextKey, withContextValue } from "../context/index.js";
|
|
7
|
+
/** The key under which a context carries its call chain (a method ctx is its own node: no allocation per call). */
|
|
8
|
+
export const CALL_CHAIN = createContextKey("chord.callChain");
|
|
9
|
+
/**
|
|
10
|
+
* The key under which an attempt's activation context carries its object: a call its opener makes is known as that
|
|
11
|
+
* object's (its gate waits are the object's wait edges for reload cycles).
|
|
12
|
+
*/
|
|
13
|
+
export const OPENING = createContextKey("chord.opening");
|
|
14
|
+
/** The host's old work: whether a context runs under it, counted so that the check is free outside reloads. */
|
|
15
|
+
export class OldWork {
|
|
16
|
+
/** The open old attempts of restarts and the old calls from other hosts running here now. */
|
|
17
|
+
#count = 0;
|
|
18
|
+
/** An old attempt began draining, or an old call from another host began running here. */
|
|
19
|
+
open() {
|
|
20
|
+
this.#count++;
|
|
21
|
+
}
|
|
22
|
+
/** The counterpart of `open`. */
|
|
23
|
+
close() {
|
|
24
|
+
this.#count--;
|
|
25
|
+
}
|
|
26
|
+
/** Whether `context` runs under old work (walked only while this host has any). */
|
|
27
|
+
of(context) {
|
|
28
|
+
if (this.#count === 0)
|
|
29
|
+
return false;
|
|
30
|
+
for (let node = context.value(CALL_CHAIN); node !== undefined; node = node.up()) {
|
|
31
|
+
if (node.on.draining)
|
|
32
|
+
return true;
|
|
33
|
+
}
|
|
34
|
+
return false;
|
|
35
|
+
}
|
|
36
|
+
}
|
|
37
|
+
/** The chain node of a call that arrived as old work from another host: always old, with nothing above it. */
|
|
38
|
+
const REMOTE_OLD_WORK = Object.freeze({ on: Object.freeze({ draining: true }), up: () => undefined });
|
|
39
|
+
/** `context` marked as old work that arrived from another host (`call.old` on a trusted link). */
|
|
40
|
+
export function asRemoteOldWork(context) {
|
|
41
|
+
return withContextValue(CALL_CHAIN, REMOTE_OLD_WORK, context);
|
|
42
|
+
}
|
|
43
|
+
/** The attempts of `context`'s call chain, for the reload cycle check (another host's old work has none here). */
|
|
44
|
+
export function chainAttempts(context) {
|
|
45
|
+
const attempts = new Set();
|
|
46
|
+
for (let node = context.value(CALL_CHAIN); node !== undefined; node = node.up()) {
|
|
47
|
+
if (node !== REMOTE_OLD_WORK)
|
|
48
|
+
attempts.add(node.on);
|
|
49
|
+
}
|
|
50
|
+
return attempts;
|
|
51
|
+
}
|
|
52
|
+
//# sourceMappingURL=old-work.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"old-work.js","sourceRoot":"","sources":["../../src/host/old-work.ts"],"names":[],"mappings":"AAAA,wHAAwH;AACxH,wHAAwH;AACxH,wHAAwH;AACxH,oHAAoH;AACpH,0DAA0D;AAE1D,OAAO,EAAiC,gBAAgB,EAAE,gBAAgB,EAAE,MAAM,qBAAqB,CAAC;AAaxG,mHAAmH;AACnH,MAAM,CAAC,MAAM,UAAU,GAAyB,gBAAgB,CAAW,iBAAiB,CAAC,CAAC;AAE9F;;;GAGG;AACH,MAAM,CAAC,MAAM,OAAO,GAA4B,gBAAgB,CAAc,eAAe,CAAC,CAAC;AAE/F,+GAA+G;AAC/G,MAAM,OAAO,OAAO;IACnB,6FAA6F;IAC7F,MAAM,GAAG,CAAC,CAAC;IAEX,0FAA0F;IAC1F,IAAI;QACH,IAAI,CAAC,MAAM,EAAE,CAAC;IACf,CAAC;IAED,iCAAiC;IACjC,KAAK;QACJ,IAAI,CAAC,MAAM,EAAE,CAAC;IACf,CAAC;IAED,mFAAmF;IACnF,EAAE,CAAC,OAAgB;QAClB,IAAI,IAAI,CAAC,MAAM,KAAK,CAAC;YAAE,OAAO,KAAK,CAAC;QACpC,KAAK,IAAI,IAAI,GAAG,OAAO,CAAC,KAAK,CAAC,UAAU,CAAC,EAAE,IAAI,KAAK,SAAS,EAAE,IAAI,GAAG,IAAI,CAAC,EAAE,EAAE,EAAE,CAAC;YACjF,IAAI,IAAI,CAAC,EAAE,CAAC,QAAQ;gBAAE,OAAO,IAAI,CAAC;QACnC,CAAC;QACD,OAAO,KAAK,CAAC;IACd,CAAC;CACD;AAED,8GAA8G;AAC9G,MAAM,eAAe,GAAa,MAAM,CAAC,MAAM,CAAC,EAAE,EAAE,EAAE,MAAM,CAAC,MAAM,CAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC,EAAE,EAAE,EAAE,GAAG,EAAE,CAAC,SAAS,EAAE,CAAC,CAAC;AAEhH,kGAAkG;AAClG,MAAM,UAAU,eAAe,CAAC,OAAgB;IAC/C,OAAO,gBAAgB,CAAC,UAAU,EAAE,eAAe,EAAE,OAAO,CAAC,CAAC;AAC/D,CAAC;AAED,kHAAkH;AAClH,MAAM,UAAU,aAAa,CAAC,OAAgB;IAC7C,MAAM,QAAQ,GAAG,IAAI,GAAG,EAAiB,CAAC;IAC1C,KAAK,IAAI,IAAI,GAAG,OAAO,CAAC,KAAK,CAAC,UAAU,CAAC,EAAE,IAAI,KAAK,SAAS,EAAE,IAAI,GAAG,IAAI,CAAC,EAAE,EAAE,EAAE,CAAC;QACjF,IAAI,IAAI,KAAK,eAAe;YAAE,QAAQ,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IACrD,CAAC;IACD,OAAO,QAAQ,CAAC;AACjB,CAAC","sourcesContent":["// Old work during a reload (decision \"Reload restarts every affected object; old work finishes on old code\"): the calls\n// running on a restart's open old attempt and every call they cause. A call is old work when its call chain (the method\n// ctxs it runs under, found through its context) holds an attempt that a restart drains, or when it arrived as old work\n// from another host (`call.old` on a trusted link). The host counts its open old attempts and the old calls it runs\n// for other hosts, so outside reloads no chain is walked.\n\nimport { type Context, type ContextKey, createContextKey, withContextValue } from \"../context/index.ts\";\nimport type { ChordObject } from \"./object.ts\";\n\n/** One link of a call chain: the attempt a method call runs on, and the chain of the call that made it (`up`). */\nexport type CallNode = {\n\t/** The attempt the call runs on: old work while that attempt drains for a restart. */\n\treadonly on: OldWorkSource;\n\tup(): CallNode | undefined;\n};\n\n/** What a call chain's node runs on: an attempt, or another host's old work. */\nexport type OldWorkSource = { readonly draining: boolean };\n\n/** The key under which a context carries its call chain (a method ctx is its own node: no allocation per call). */\nexport const CALL_CHAIN: ContextKey<CallNode> = createContextKey<CallNode>(\"chord.callChain\");\n\n/**\n * The key under which an attempt's activation context carries its object: a call its opener makes is known as that\n * object's (its gate waits are the object's wait edges for reload cycles).\n */\nexport const OPENING: ContextKey<ChordObject> = createContextKey<ChordObject>(\"chord.opening\");\n\n/** The host's old work: whether a context runs under it, counted so that the check is free outside reloads. */\nexport class OldWork {\n\t/** The open old attempts of restarts and the old calls from other hosts running here now. */\n\t#count = 0;\n\n\t/** An old attempt began draining, or an old call from another host began running here. */\n\topen(): void {\n\t\tthis.#count++;\n\t}\n\n\t/** The counterpart of `open`. */\n\tclose(): void {\n\t\tthis.#count--;\n\t}\n\n\t/** Whether `context` runs under old work (walked only while this host has any). */\n\tof(context: Context): boolean {\n\t\tif (this.#count === 0) return false;\n\t\tfor (let node = context.value(CALL_CHAIN); node !== undefined; node = node.up()) {\n\t\t\tif (node.on.draining) return true;\n\t\t}\n\t\treturn false;\n\t}\n}\n\n/** The chain node of a call that arrived as old work from another host: always old, with nothing above it. */\nconst REMOTE_OLD_WORK: CallNode = Object.freeze({ on: Object.freeze({ draining: true }), up: () => undefined });\n\n/** `context` marked as old work that arrived from another host (`call.old` on a trusted link). */\nexport function asRemoteOldWork(context: Context): Context {\n\treturn withContextValue(CALL_CHAIN, REMOTE_OLD_WORK, context);\n}\n\n/** The attempts of `context`'s call chain, for the reload cycle check (another host's old work has none here). */\nexport function chainAttempts(context: Context): ReadonlySet<OldWorkSource> {\n\tconst attempts = new Set<OldWorkSource>();\n\tfor (let node = context.value(CALL_CHAIN); node !== undefined; node = node.up()) {\n\t\tif (node !== REMOTE_OLD_WORK) attempts.add(node.on);\n\t}\n\treturn attempts;\n}\n"]}
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
import type { Context } from "../context/index.ts";
|
|
2
|
+
/**
|
|
3
|
+
* The queue of one reference's parked calls. A call leaves it when it is sent, at its deadline (`unavailable/
|
|
4
|
+
* park_timeout`), when its caller cancels, or rejected with the queue (the reference failed or was released).
|
|
5
|
+
*/
|
|
6
|
+
export declare class ParkedCalls {
|
|
7
|
+
#private;
|
|
8
|
+
constructor(timeout: number, label: string);
|
|
9
|
+
/** Whether calls are queued: a new call waits behind them, also while they are being sent. */
|
|
10
|
+
get waiting(): boolean;
|
|
11
|
+
/** Queues a call; settles as the call it becomes once sent, or with why it left the queue. */
|
|
12
|
+
park(method: string, args: unknown, context: Context): Promise<unknown>;
|
|
13
|
+
/**
|
|
14
|
+
* Sends the queued calls in order through `send`, each only while `live()` still holds: sending one runs code
|
|
15
|
+
* (a handler's synchronous part) that may release or drop the reference, and the rest then stays queued or is
|
|
16
|
+
* rejected by that; or that makes a new call, which is queued behind the rest and sent in this loop. A call whose
|
|
17
|
+
* deadline passed while earlier ones ran (their timers could not fire) is rejected instead of sent.
|
|
18
|
+
*/
|
|
19
|
+
flush(send: (method: string, args: unknown, context: Context) => Promise<unknown>, live: () => boolean): void;
|
|
20
|
+
/** Rejects every queued call with `error`. */
|
|
21
|
+
reject(error: unknown): void;
|
|
22
|
+
}
|
|
23
|
+
//# sourceMappingURL=parked.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"parked.d.ts","sourceRoot":"","sources":["../../src/host/parked.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,qBAAqB,CAAC;AAenD;;;GAGG;AACH,qBAAa,WAAW;;IAMvB,YAAY,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAGzC;IAED,8FAA8F;IAC9F,IAAI,OAAO,IAAI,OAAO,CAErB;IAED,8FAA8F;IAC9F,IAAI,CAAC,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC,CAiBtE;IAED;;;;;OAKG;IACH,KAAK,CAAC,IAAI,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,KAAK,OAAO,CAAC,OAAO,CAAC,EAAE,IAAI,EAAE,MAAM,OAAO,GAAG,IAAI,CAU5G;IAED,8CAA8C;IAC9C,MAAM,CAAC,KAAK,EAAE,OAAO,GAAG,IAAI,CAK3B;CAeD"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"parked.js","sourceRoot":"","sources":["../../src/host/parked.ts"],"names":[],"mappings":"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","sourcesContent":["// Parked calls (§3, §7): calls made on a loading reference, queued in the order they were made until it goes live,\n// each with its own deadline from the moment it was called (the reference's `readyTimeout`, never renewed).\n\nimport type { Context } from \"../context/index.ts\";\nimport { ChordError } from \"../data/index.ts\";\n\n/** One queued call: what to send, how its caller is settled, its deadline (`Date.now()` time) and what ends its wait. */\ntype ParkedCall = {\n\treadonly method: string;\n\treadonly args: unknown;\n\treadonly context: Context;\n\treadonly resolve: (value: unknown) => void;\n\treadonly reject: (error: unknown) => void;\n\treadonly due: number;\n\treadonly deadline: ReturnType<typeof setTimeout>;\n\treadonly cancel: (() => void) | undefined;\n};\n\n/**\n * The queue of one reference's parked calls. A call leaves it when it is sent, at its deadline (`unavailable/\n * park_timeout`), when its caller cancels, or rejected with the queue (the reference failed or was released).\n */\nexport class ParkedCalls {\n\t/** In the order the calls were made (a `Set` keeps insertion order and deletes in constant time). */\n\treadonly #calls = new Set<ParkedCall>();\n\treadonly #timeout: number;\n\treadonly #label: string;\n\n\tconstructor(timeout: number, label: string) {\n\t\tthis.#timeout = timeout;\n\t\tthis.#label = label;\n\t}\n\n\t/** Whether calls are queued: a new call waits behind them, also while they are being sent. */\n\tget waiting(): boolean {\n\t\treturn this.#calls.size > 0;\n\t}\n\n\t/** Queues a call; settles as the call it becomes once sent, or with why it left the queue. */\n\tpark(method: string, args: unknown, context: Context): Promise<unknown> {\n\t\tconst signal = context.abortSignal;\n\t\tsignal?.throwIfAborted();\n\t\tconst { promise, resolve, reject } = Promise.withResolvers<unknown>();\n\t\tconst deadline = setTimeout(() => this.#expire(call), this.#timeout);\n\t\tlet cancel: (() => void) | undefined;\n\t\tif (signal !== undefined) {\n\t\t\tcancel = () => {\n\t\t\t\tthis.#take(call);\n\t\t\t\treject(signal.reason);\n\t\t\t};\n\t\t\tsignal.addEventListener(\"abort\", cancel, { once: true });\n\t\t}\n\t\tconst due = Date.now() + this.#timeout;\n\t\tconst call: ParkedCall = { method, args, context, resolve, reject, due, deadline, cancel };\n\t\tthis.#calls.add(call);\n\t\treturn promise;\n\t}\n\n\t/**\n\t * Sends the queued calls in order through `send`, each only while `live()` still holds: sending one runs code\n\t * (a handler's synchronous part) that may release or drop the reference, and the rest then stays queued or is\n\t * rejected by that; or that makes a new call, which is queued behind the rest and sent in this loop. A call whose\n\t * deadline passed while earlier ones ran (their timers could not fire) is rejected instead of sent.\n\t */\n\tflush(send: (method: string, args: unknown, context: Context) => Promise<unknown>, live: () => boolean): void {\n\t\tfor (const call of this.#calls) {\n\t\t\tif (!live()) return;\n\t\t\tif (Date.now() >= call.due) {\n\t\t\t\tthis.#expire(call);\n\t\t\t\tcontinue;\n\t\t\t}\n\t\t\tthis.#take(call);\n\t\t\tsend(call.method, call.args, call.context).then(call.resolve, call.reject);\n\t\t}\n\t}\n\n\t/** Rejects every queued call with `error`. */\n\treject(error: unknown): void {\n\t\tfor (const call of this.#calls) {\n\t\t\tthis.#take(call);\n\t\t\tcall.reject(error);\n\t\t}\n\t}\n\n\t/** `call`'s deadline passed: `unavailable/park_timeout`. */\n\t#expire(call: ParkedCall): void {\n\t\tthis.#take(call);\n\t\tconst message = `${this.#label}: a call waited ${this.#timeout} ms for its reference to go live`;\n\t\tcall.reject(new ChordError({ code: \"unavailable\", reason: \"park_timeout\", message }));\n\t}\n\n\t/** Takes `call` out of the queue: its deadline and cancellation stop. */\n\t#take(call: ParkedCall): void {\n\t\tthis.#calls.delete(call);\n\t\tclearTimeout(call.deadline);\n\t\tif (call.cancel !== undefined) call.context.abortSignal?.removeEventListener(\"abort\", call.cancel);\n\t}\n}\n"]}
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
import type { Context } from "../context/index.ts";
|
|
2
|
+
import type { Contract, ParamsOf } from "../contracts/index.ts";
|
|
3
|
+
import type { Principal } from "../data/index.ts";
|
|
4
|
+
import type { JsonValue } from "../json.ts";
|
|
5
|
+
import { Source } from "../state/internal.ts";
|
|
6
|
+
import type { ChordObject, Holder } from "./object.ts";
|
|
7
|
+
/**
|
|
8
|
+
* One reference to an object of `C`: the object's params, the principal it acts as (for a remote type), and its
|
|
9
|
+
* incarnation: the host that made it as its caller sees it (a hold's caller over a link; two tabs are two
|
|
10
|
+
* incarnations), the word `ctx.incarnation` uses.
|
|
11
|
+
*/
|
|
12
|
+
export type Presence<C extends Contract = Contract, P extends Principal = Principal> = {
|
|
13
|
+
readonly params: ParamsOf<C>;
|
|
14
|
+
readonly principal?: P;
|
|
15
|
+
readonly incarnation: string;
|
|
16
|
+
};
|
|
17
|
+
/**
|
|
18
|
+
* The references of one type, made by the host for its first `host.references(Type)` and kept from then on: one entry
|
|
19
|
+
* per reference, added when it binds and removed when it ends, in the batch where that happens (derives over it
|
|
20
|
+
* recompute there). While watched, a batch's changes are folded into the published list once, with one splice op per
|
|
21
|
+
* removal and one for the additions; otherwise the list is built on its next read.
|
|
22
|
+
*/
|
|
23
|
+
export declare class References extends Source {
|
|
24
|
+
#private;
|
|
25
|
+
get value(): JsonValue;
|
|
26
|
+
/** `holder` references `object`, added in the batch running now or the next one. */
|
|
27
|
+
add(object: ChordObject, holder: Holder, context: Context): void;
|
|
28
|
+
/** `holders` of `object` ended, removed in one batch. */
|
|
29
|
+
remove(holders: Iterable<Holder>, context: Context): void;
|
|
30
|
+
/** Records `holder` without a batch (the list being made) and returns its entry. */
|
|
31
|
+
record(object: ChordObject, holder: Holder): Presence;
|
|
32
|
+
deliver(context: Context): void;
|
|
33
|
+
}
|
|
34
|
+
//# sourceMappingURL=presence.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"presence.d.ts","sourceRoot":"","sources":["../../src/host/presence.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,qBAAqB,CAAC;AACnD,OAAO,KAAK,EAAE,QAAQ,EAAE,QAAQ,EAAE,MAAM,uBAAuB,CAAC;AAChE,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAC;AAElD,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,YAAY,CAAC;AAC5C,OAAO,EAAE,MAAM,EAAE,MAAM,sBAAsB,CAAC;AAC9C,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AAEvD;;;;GAIG;AACH,MAAM,MAAM,QAAQ,CAAC,CAAC,SAAS,QAAQ,GAAG,QAAQ,EAAE,CAAC,SAAS,SAAS,GAAG,SAAS,IAAI;IACtF,QAAQ,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC,CAAC,CAAC;IAC7B,QAAQ,CAAC,SAAS,CAAC,EAAE,CAAC,CAAC;IACvB,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;CAC7B,CAAC;AAEF;;;;;GAKG;AACH,qBAAa,UAAW,SAAQ,MAAM;;IAWrC,IAAI,KAAK,IAAI,SAAS,CAIrB;IAED,oFAAoF;IACpF,GAAG,CAAC,MAAM,EAAE,WAAW,EAAE,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,OAAO,GAAG,IAAI,CAM/D;IAED,yDAAyD;IACzD,MAAM,CAAC,OAAO,EAAE,QAAQ,CAAC,MAAM,CAAC,EAAE,OAAO,EAAE,OAAO,GAAG,IAAI,CAcxD;IAED,oFAAoF;IACpF,MAAM,CAAC,MAAM,EAAE,WAAW,EAAE,MAAM,EAAE,MAAM,GAAG,QAAQ,CASpD;IAED,OAAO,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI,CAM9B;CA0CD"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"presence.js","sourceRoot":"","sources":["../../src/host/presence.ts"],"names":[],"mappings":"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","sourcesContent":["// Presence (§19): `host.references(Type)`, a JSON watchable of the references to objects of one type on this host, one\n// entry per reference with the object's params, the reference's principal (remote types) and its incarnation.\n\nimport type { Context } from \"../context/index.ts\";\nimport type { Contract, ParamsOf } from \"../contracts/index.ts\";\nimport type { Principal } from \"../data/index.ts\";\nimport type { Op } from \"../delta/index.ts\";\nimport type { JsonValue } from \"../json.ts\";\nimport { Source } from \"../state/internal.ts\";\nimport type { ChordObject, Holder } from \"./object.ts\";\n\n/**\n * One reference to an object of `C`: the object's params, the principal it acts as (for a remote type), and its\n * incarnation: the host that made it as its caller sees it (a hold's caller over a link; two tabs are two\n * incarnations), the word `ctx.incarnation` uses.\n */\nexport type Presence<C extends Contract = Contract, P extends Principal = Principal> = {\n\treadonly params: ParamsOf<C>;\n\treadonly principal?: P;\n\treadonly incarnation: string;\n};\n\n/**\n * The references of one type, made by the host for its first `host.references(Type)` and kept from then on: one entry\n * per reference, added when it binds and removed when it ends, in the batch where that happens (derives over it\n * recompute there). While watched, a batch's changes are folded into the published list once, with one splice op per\n * removal and one for the additions; otherwise the list is built on its next read.\n */\nexport class References extends Source {\n\treadonly #entries = new Map<Holder, Presence>();\n\t/** The list as last published or read; `undefined` once it changed while nobody watched it. */\n\t#list: readonly Presence[] | undefined;\n\t/** Entries added since `#list`, in order (only while it is defined). */\n\t#added: Presence[] = [];\n\t/** Entries of `#list` removed since. */\n\treadonly #removed = new Set<Presence>();\n\t/** The ops folding `#list` forward, for the current batch's frame. */\n\t#ops: Op[] = [];\n\n\tget value(): JsonValue {\n\t\tthis.#fold();\n\t\t// Entries are JSON: params, a principal and a string.\n\t\treturn this.#list as unknown as JsonValue;\n\t}\n\n\t/** `holder` references `object`, added in the batch running now or the next one. */\n\tadd(object: ChordObject, holder: Holder, context: Context): void {\n\t\tthis.batch.within(() => {\n\t\t\tconst entry = this.record(object, holder);\n\t\t\tif (this.#follows()) this.#added.push(entry);\n\t\t\tthis.changed();\n\t\t}, context);\n\t}\n\n\t/** `holders` of `object` ended, removed in one batch. */\n\tremove(holders: Iterable<Holder>, context: Context): void {\n\t\tthis.batch.within(() => {\n\t\t\tconst follows = this.#follows();\n\t\t\tfor (const holder of holders) {\n\t\t\t\tconst entry = this.#entries.get(holder);\n\t\t\t\tif (entry === undefined) continue;\n\t\t\t\tthis.#entries.delete(holder);\n\t\t\t\tif (!follows) continue;\n\t\t\t\tconst added = this.#added.indexOf(entry);\n\t\t\t\tif (added === -1) this.#removed.add(entry);\n\t\t\t\telse this.#added.splice(added, 1);\n\t\t\t}\n\t\t\tthis.changed();\n\t\t}, context);\n\t}\n\n\t/** Records `holder` without a batch (the list being made) and returns its entry. */\n\trecord(object: ChordObject, holder: Holder): Presence {\n\t\tconst { principal, incarnation } = holder.caller;\n\t\tconst entry: Presence = {\n\t\t\tparams: object.params,\n\t\t\t...(object.served.kind === \"remote\" && principal !== undefined ? { principal } : {}),\n\t\t\tincarnation,\n\t\t};\n\t\tthis.#entries.set(holder, entry);\n\t\treturn entry;\n\t}\n\n\tdeliver(context: Context): void {\n\t\tconst value = this.value;\n\t\tconst ops = this.#ops;\n\t\tthis.#ops = [];\n\t\t// Listed once per change: the batch's first delivery carries all of them.\n\t\tif (ops.length > 0) this.publish(value, ops, false, context);\n\t}\n\n\t/**\n\t * Whether a change is folded into the published list: while watched (a watch read the list first). Otherwise the\n\t * list is dropped and built on its next read.\n\t */\n\t#follows(): boolean {\n\t\tif (this.watched && this.#list !== undefined) return true;\n\t\tthis.#list = undefined;\n\t\treturn false;\n\t}\n\n\t/**\n\t * Folds the changes since `#list` into a new list, once: a removal is one splice op at its index, the additions one\n\t * splice op at the end. Builds the list from the entries when there is none.\n\t */\n\t#fold(): void {\n\t\tif (this.#list === undefined) {\n\t\t\tthis.#list = [...this.#entries.values()];\n\t\t\tthis.#added = [];\n\t\t\tthis.#removed.clear();\n\t\t\tthis.#ops = [];\n\t\t\treturn;\n\t\t}\n\t\tif (this.#added.length === 0 && this.#removed.size === 0) return;\n\t\tlet list = this.#list;\n\t\tif (this.#removed.size > 0) {\n\t\t\tconst kept: Presence[] = [];\n\t\t\tfor (const entry of list) {\n\t\t\t\tif (this.#removed.has(entry)) this.#ops.push([\"p\", [], kept.length, 1, []]);\n\t\t\t\telse kept.push(entry);\n\t\t\t}\n\t\t\tthis.#removed.clear();\n\t\t\tlist = kept;\n\t\t}\n\t\tif (this.#added.length > 0) {\n\t\t\tthis.#ops.push([\"p\", [], list.length, 0, this.#added as unknown as JsonValue[]]);\n\t\t\tlist = [...list, ...this.#added];\n\t\t\tthis.#added = [];\n\t\t}\n\t\tthis.#list = list;\n\t}\n}\n"]}
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
import { type Context } from "../context/index.ts";
|
|
2
|
+
import type { FailureCause } from "../data/index.ts";
|
|
3
|
+
import type { Caller } from "./ctx.ts";
|
|
4
|
+
import type { AnyHost } from "./host.ts";
|
|
5
|
+
import type { Request } from "./staging.ts";
|
|
6
|
+
/**
|
|
7
|
+
* One restart's readiness: ready once each recorded type request is live (an open old instance that binds its version
|
|
8
|
+
* counts) or failed for a reason other than another host's version skew (which heals by itself), or at its bound.
|
|
9
|
+
* Registry requests are served by facets in the commit and kept by the old attempt's contributions until its seal: it
|
|
10
|
+
* does not wait for them. Its failure follows the requests: `shows` gets each change of it.
|
|
11
|
+
*/
|
|
12
|
+
export declare class Readiness {
|
|
13
|
+
#private;
|
|
14
|
+
constructor(host: AnyHost, caller: Caller, requests: readonly Request[], shows: (cause: FailureCause | undefined) => void, context: Context);
|
|
15
|
+
/** What the successor waits for now: a request refused for good, or `waiting` for the first failed one. */
|
|
16
|
+
get cause(): FailureCause | undefined;
|
|
17
|
+
/**
|
|
18
|
+
* Binds the recorded type requests as the object's own would be (once every fate of the reload started), kept out
|
|
19
|
+
* of presence lists (they are no consumers of their own), and follows them: `shows` gets each change of `cause`.
|
|
20
|
+
*/
|
|
21
|
+
start(): void;
|
|
22
|
+
/** Resolves once every request is ready, or at `due` (`Date.now()` time), whichever is first. */
|
|
23
|
+
ready(due: number): Promise<void>;
|
|
24
|
+
/** The successor's own requests bound: its bindings are let go (a dependency held only by them never ends). */
|
|
25
|
+
release(): void;
|
|
26
|
+
}
|
|
27
|
+
//# sourceMappingURL=readiness.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"readiness.d.ts","sourceRoot":"","sources":["../../src/host/readiness.ts"],"names":[],"mappings":"AAKA,OAAO,EAAE,KAAK,OAAO,EAAmB,MAAM,qBAAqB,CAAC;AACpE,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,kBAAkB,CAAC;AAErD,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,UAAU,CAAC;AACvC,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAEzC,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,cAAc,CAAC;AAE5C;;;;;GAKG;AACH,qBAAa,SAAS;;IAerB,YACC,IAAI,EAAE,OAAO,EACb,MAAM,EAAE,MAAM,EACd,QAAQ,EAAE,SAAS,OAAO,EAAE,EAC5B,KAAK,EAAE,CAAC,KAAK,EAAE,YAAY,GAAG,SAAS,KAAK,IAAI,EAChD,OAAO,EAAE,OAAO,EAOhB;IAED,2GAA2G;IAC3G,IAAI,KAAK,IAAI,YAAY,GAAG,SAAS,CAEpC;IAED;;;OAGG;IACH,KAAK,IAAI,IAAI,CAyBZ;IAED,iGAAiG;IAC3F,KAAK,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAQtC;IAED,+GAA+G;IAC/G,OAAO,IAAI,IAAI,CAGd;CA6BD"}
|