@earendil-works/chord 1.4.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 +92 -0
- package/README.md +115 -90
- package/dist/context/index.d.ts +1 -1
- package/dist/context/index.d.ts.map +1 -1
- package/dist/context/index.js +1 -1
- package/dist/context/index.js.map +1 -1
- package/dist/contracts/accepts.d.ts +81 -0
- package/dist/contracts/accepts.d.ts.map +1 -0
- package/dist/contracts/accepts.js +123 -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 +50 -0
- package/dist/contracts/contract.js.map +1 -0
- package/dist/contracts/declare.d.ts +107 -0
- package/dist/contracts/declare.d.ts.map +1 -0
- package/dist/contracts/declare.js +136 -0
- package/dist/contracts/declare.js.map +1 -0
- package/dist/contracts/evolve.d.ts +92 -0
- package/dist/contracts/evolve.d.ts.map +1 -0
- package/dist/contracts/evolve.js +179 -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 +50 -0
- package/dist/contracts/fingerprint.js.map +1 -0
- package/dist/contracts/history.d.ts +71 -0
- package/dist/contracts/history.d.ts.map +1 -0
- package/dist/contracts/history.js +3 -0
- package/dist/contracts/history.js.map +1 -0
- package/dist/contracts/host-kind.d.ts +40 -0
- package/dist/contracts/host-kind.d.ts.map +1 -0
- package/dist/contracts/host-kind.js +37 -0
- package/dist/contracts/host-kind.js.map +1 -0
- package/dist/contracts/index.d.ts +7 -0
- package/dist/contracts/index.d.ts.map +1 -0
- package/dist/contracts/index.js +6 -0
- package/dist/contracts/index.js.map +1 -0
- package/dist/contracts/internal.d.ts +10 -0
- package/dist/contracts/internal.d.ts.map +1 -0
- package/dist/contracts/internal.js +9 -0
- package/dist/contracts/internal.js.map +1 -0
- package/dist/contracts/names.d.ts +3 -0
- package/dist/contracts/names.d.ts.map +1 -0
- package/dist/contracts/names.js +13 -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 +50 -0
- package/dist/contracts/params.js.map +1 -0
- package/dist/contracts/schema.d.ts +102 -0
- package/dist/contracts/schema.d.ts.map +1 -0
- package/dist/contracts/schema.js +103 -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 +83 -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 +26 -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 +31 -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/delta/apply-immutable-trusted.js +3 -4
- package/dist/delta/apply-immutable-trusted.js.map +1 -1
- package/dist/delta/diff.d.ts.map +1 -1
- package/dist/delta/diff.js +5 -3
- package/dist/delta/diff.js.map +1 -1
- package/dist/delta/index.d.ts +9 -1
- package/dist/delta/index.d.ts.map +1 -1
- package/dist/delta/index.js +15 -11
- package/dist/delta/index.js.map +1 -1
- package/dist/delta/pending.d.ts +36 -0
- package/dist/delta/pending.d.ts.map +1 -0
- package/dist/delta/pending.js +143 -0
- package/dist/delta/pending.js.map +1 -0
- package/dist/delta/tracker.d.ts +12 -0
- package/dist/delta/tracker.d.ts.map +1 -1
- package/dist/delta/tracker.js +109 -39
- package/dist/delta/tracker.js.map +1 -1
- 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 +44 -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 +9 -0
- package/dist/documents/fence.d.ts.map +1 -0
- package/dist/documents/fence.js +15 -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 +66 -0
- package/dist/documents/handles.js.map +1 -0
- package/dist/documents/index.d.ts +4 -0
- package/dist/documents/index.d.ts.map +1 -0
- package/dist/documents/index.js +3 -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 +9 -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 +7 -0
- package/dist/documents/line.d.ts.map +1 -0
- package/dist/documents/line.js +14 -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 +93 -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 +214 -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 +29 -0
- package/dist/host/backoff.d.ts.map +1 -0
- package/dist/host/backoff.js +69 -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 +12 -0
- package/dist/host/deadline.d.ts.map +1 -0
- package/dist/host/deadline.js +40 -0
- package/dist/host/deadline.js.map +1 -0
- package/dist/host/dependencies.d.ts +65 -0
- package/dist/host/dependencies.d.ts.map +1 -0
- package/dist/host/dependencies.js +115 -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 +101 -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 +55 -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 +207 -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 +6 -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 +107 -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 +79 -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 +117 -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 +28 -0
- package/dist/host/retry-on.d.ts.map +1 -0
- package/dist/host/retry-on.js +52 -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 +27 -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 +40 -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 +3 -0
- package/dist/host/uuid.d.ts.map +1 -0
- package/dist/host/uuid.js +38 -0
- package/dist/host/uuid.js.map +1 -0
- package/dist/index.d.ts +29 -18
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +20 -9
- package/dist/index.js.map +1 -1
- package/dist/jobs/definition.d.ts +96 -0
- package/dist/jobs/definition.d.ts.map +1 -0
- package/dist/jobs/definition.js +83 -0
- package/dist/jobs/definition.js.map +1 -0
- package/dist/jobs/index.d.ts +5 -0
- package/dist/jobs/index.d.ts.map +1 -0
- package/dist/jobs/index.js +3 -0
- package/dist/jobs/index.js.map +1 -0
- package/dist/jobs/internal.d.ts +3 -0
- package/dist/jobs/internal.d.ts.map +1 -0
- package/dist/jobs/internal.js +4 -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 +95 -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 +117 -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 +55 -0
- package/dist/jobs/stored.js.map +1 -0
- package/dist/link/binary.d.ts +4 -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 +7 -0
- package/dist/link/errors.d.ts.map +1 -0
- package/dist/link/errors.js +21 -0
- package/dist/link/errors.js.map +1 -0
- package/dist/link/index.d.ts +8 -0
- package/dist/link/index.d.ts.map +1 -0
- package/dist/link/index.js +8 -0
- package/dist/link/index.js.map +1 -0
- package/dist/link/internal.d.ts +9 -0
- package/dist/link/internal.d.ts.map +1 -0
- package/dist/link/internal.js +10 -0
- package/dist/link/internal.js.map +1 -0
- package/dist/link/ipc.d.ts +22 -0
- package/dist/link/ipc.d.ts.map +1 -0
- package/dist/link/ipc.js +64 -0
- package/dist/link/ipc.js.map +1 -0
- package/dist/link/link.d.ts +34 -0
- package/dist/link/link.d.ts.map +1 -0
- package/dist/link/link.js +87 -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 +6 -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 +40 -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 +26 -0
- package/dist/link/websocket.d.ts.map +1 -0
- package/dist/link/websocket.js +91 -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 +63 -0
- package/dist/node/http/admission.d.ts.map +1 -0
- package/dist/node/http/admission.js +134 -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 +23 -0
- package/dist/node/http/file.d.ts.map +1 -0
- package/dist/node/http/file.js +94 -0
- package/dist/node/http/file.js.map +1 -0
- package/dist/node/http/headers.d.ts +37 -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 +19 -0
- package/dist/node/http/incoming.d.ts.map +1 -0
- package/dist/node/http/incoming.js +31 -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 +78 -0
- package/dist/node/http/node.d.ts.map +1 -0
- package/dist/node/http/node.js +291 -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 +202 -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 +16 -0
- package/dist/node/plugins/stack.d.ts.map +1 -0
- package/dist/node/plugins/stack.js +61 -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/output.d.ts +1 -1
- package/dist/output.d.ts.map +1 -1
- package/dist/output.js +4 -2
- package/dist/output.js.map +1 -1
- 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 +50 -0
- package/dist/registries/contribution.d.ts.map +1 -0
- package/dist/registries/contribution.js +129 -0
- package/dist/registries/contribution.js.map +1 -0
- package/dist/registries/entries.d.ts +18 -0
- package/dist/registries/entries.d.ts.map +1 -0
- package/dist/registries/entries.js +42 -0
- package/dist/registries/entries.js.map +1 -0
- package/dist/registries/index.d.ts +3 -0
- package/dist/registries/index.d.ts.map +1 -0
- package/dist/registries/index.js +5 -0
- package/dist/registries/index.js.map +1 -0
- package/dist/registries/internal.d.ts +4 -0
- package/dist/registries/internal.d.ts.map +1 -0
- package/dist/registries/internal.js +5 -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 +14 -0
- package/dist/registries/registry.js.map +1 -0
- package/dist/registries/value.d.ts +48 -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 +25 -0
- package/dist/remote/calls.d.ts.map +1 -0
- package/dist/remote/calls.js +62 -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 +6 -0
- package/dist/remote/internal.d.ts.map +1 -0
- package/dist/remote/internal.js +6 -0
- package/dist/remote/internal.js.map +1 -0
- package/dist/remote/path.d.ts +46 -0
- package/dist/remote/path.d.ts.map +1 -0
- package/dist/remote/path.js +73 -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/cloudflare.d.ts +2 -0
- package/dist/sqlite/cloudflare.d.ts.map +1 -1
- package/dist/sqlite/cloudflare.js +10 -0
- package/dist/sqlite/cloudflare.js.map +1 -1
- package/dist/sqlite/database.d.ts +5 -2
- package/dist/sqlite/database.d.ts.map +1 -1
- package/dist/sqlite/database.js.map +1 -1
- package/dist/sqlite/node.d.ts +13 -2
- package/dist/sqlite/node.d.ts.map +1 -1
- package/dist/sqlite/node.js +31 -8
- 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 +4 -0
- package/dist/state/index.js.map +1 -0
- package/dist/state/internal.d.ts +6 -0
- package/dist/state/internal.d.ts.map +1 -0
- package/dist/state/internal.js +8 -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 +49 -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 +118 -0
- package/dist/store/adapter.js.map +1 -0
- package/dist/store/allocator.d.ts +17 -0
- package/dist/store/allocator.d.ts.map +1 -0
- package/dist/store/allocator.js +30 -0
- package/dist/store/allocator.js.map +1 -0
- package/dist/store/applier.d.ts +8 -0
- package/dist/store/applier.d.ts.map +1 -0
- package/dist/store/applier.js +375 -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 +83 -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 +15 -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 +17 -0
- package/dist/store/catalog.js.map +1 -0
- package/dist/store/claims.d.ts +23 -0
- package/dist/store/claims.d.ts.map +1 -0
- package/dist/store/claims.js +65 -0
- package/dist/store/claims.js.map +1 -0
- package/dist/store/columns.d.ts +77 -0
- package/dist/store/columns.d.ts.map +1 -0
- package/dist/store/columns.js +77 -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 +128 -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 +268 -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 +16 -0
- package/dist/store/index.d.ts.map +1 -0
- package/dist/store/index.js +13 -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 +9 -0
- package/dist/store/jsonl.d.ts.map +1 -0
- package/dist/store/jsonl.js +61 -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 +80 -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 +97 -0
- package/dist/store/query.js.map +1 -0
- package/dist/store/refusal.d.ts +15 -0
- package/dist/store/refusal.d.ts.map +1 -0
- package/dist/store/refusal.js +36 -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 +183 -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 +234 -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 +102 -0
- package/dist/store/table-changes.js.map +1 -0
- package/dist/store/table-evolve.d.ts +74 -0
- package/dist/store/table-evolve.d.ts.map +1 -0
- package/dist/store/table-evolve.js +201 -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 +75 -0
- package/dist/store/table-history.d.ts.map +1 -0
- package/dist/store/table-history.js +42 -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 +125 -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 +103 -0
- package/dist/store/table.js.map +1 -0
- package/dist/store/text.d.ts +14 -0
- package/dist/store/text.d.ts.map +1 -0
- package/dist/store/text.js +51 -0
- package/dist/store/text.js.map +1 -0
- package/dist/store/writes.d.ts +5 -0
- package/dist/store/writes.d.ts.map +1 -0
- package/dist/store/writes.js +4 -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/watch.d.ts +194 -0
- package/dist/watch.d.ts.map +1 -0
- package/dist/watch.js +383 -0
- package/dist/watch.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/dependencies/model.md +330 -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/flow-control/book.md +333 -0
- package/docs/flow-control/fold/index.html +265 -0
- package/docs/flow-control/index.html +548 -0
- package/docs/flow-control/window/index.html +228 -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-4.md +146 -0
- package/docs/slice-4a.md +418 -0
- package/docs/slice-4b.md +208 -0
- package/docs/slice-5.md +281 -0
- package/docs/slice-6a.md +676 -0
- package/docs/slice-6b.md +332 -0
- package/docs/slice-7a.md +130 -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-8.md +194 -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 +114 -20
- package/src/delta/README.md +69 -0
- 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 -208
- package/dist/contract.d.ts.map +0 -1
- package/dist/contract.js +0 -246
- 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 -1000
- 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/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 -1571
- 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 -21
- package/dist/schema.d.ts.map +0 -1
- package/dist/schema.js +0 -228
- 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 -216
- package/dist/wire.d.ts.map +0 -1
- package/dist/wire.js +0 -165
- package/dist/wire.js.map +0 -1
- package/docs/guide.md +0 -814
- package/docs/spec.md +0 -288
- package/docs/tutorial.md +0 -931
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"members.js","sourceRoot":"","sources":["../../src/host/members.ts"],"names":[],"mappings":"AAAA,8GAA8G;AAC9G,uHAAuH;AACvH,4EAA4E;AAC5E,EAAE;AACF,gHAAgH;AAChH,mHAAmH;AACnH,sHAAsH;AACtH,oHAAoH;AACpH,oHAAoH;AACpH,8GAA8G;AAC9G,gHAAgH;AAChH,0DAA0D;AAI1D,OAAO,EAAE,eAAe,EAAE,KAAK,EAAE,WAAW,EAAoB,MAAM,0BAA0B,CAAC;AAEjG,OAAO,EAGN,oBAAoB,GAEpB,MAAM,2BAA2B,CAAC;AACnC,OAAO,EAAoD,YAAY,EAAE,MAAM,sBAAsB,CAAC;AACtG,OAAO,EAAgB,YAAY,EAAE,gBAAgB,EAAE,MAAM,gBAAgB,CAAC;AAuB9E;;;;GAIG;AACH,MAAM,UAAU,mBAAmB,CAClC,QAAkB,EAClB,cAAuB;IAEvB,MAAM,QAAQ,GAAG,eAAe,CAAC,QAAQ,CAAC,CAAC;IAC3C,IAAI,QAAQ,CAAC,IAAI,KAAK,OAAO,EAAE,CAAC;QAC/B,0CAA0C;QAC1C,OAAO,EAAE,OAAO,EAAE,SAAS,EAAE,OAAO,EAAE,YAAY,CAAC,QAAQ,CAAC,GAAG,CAAC,KAAK,CAAE,EAAE,cAAgC,CAAC,EAAE,CAAC;IAC9G,CAAC;IACD,kGAAkG;IAClG,MAAM,EAAE,OAAO,EAAE,OAAO,EAAE,GAAG,cAAgF,CAAC;IAC9G,MAAM,IAAI,GAAG,QAAQ,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;IACnC,IAAI,IAAI,KAAK,SAAS;QAAE,MAAM,IAAI,KAAK,CAAC,WAAW,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,sBAAsB,QAAQ,CAAC,IAAI,EAAE,CAAC,CAAC;IACjH,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,YAAY,CAAC,IAAI,EAAE,OAAO,CAAC,EAAE,CAAC;AAC1D,CAAC;AAID;;;GAGG;AACH,SAAS,YAAY,CAAC,EAAE,KAAK,EAAE,OAAO,EAAE,KAAK,EAAe,EAAE,cAA8B;IAC3F,KAAK,MAAM,MAAM,IAAI,MAAM,CAAC,IAAI,CAAC,cAAc,CAAC,EAAE,CAAC;QAClD,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,MAAM,CAAC;YAAE,MAAM,IAAI,KAAK,CAAC,GAAG,MAAM,gBAAgB,CAAC,CAAC;IAClH,CAAC;IACD,0FAA0F;IAC1F,MAAM,GAAG,GAAG,CAAC,MAAc,EAAW,EAAE,CACvC,MAAM,CAAC,MAAM,CAAC,cAAc,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC,cAAc,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;IAC5E,MAAM,OAAO,GAAG;QACf,OAAO,EAAE,IAAI,GAAG,EAAkB;QAClC,KAAK,EAAE,IAAI,GAAG,EAAwB;QACtC,KAAK,EAAE,IAAI,GAAG,EAAwB;KACtC,CAAC;IACF,KAAK,MAAM,CAAC,MAAM,EAAE,IAAI,CAAC,IAAI,OAAO,EAAE,CAAC;QACtC,MAAM,MAAM,GAAG,GAAG,CAAC,MAAM,CAAC,CAAC;QAC3B,IAAI,OAAO,MAAM,KAAK,UAAU;YAAE,MAAM,IAAI,KAAK,CAAC,GAAG,MAAM,0BAA0B,CAAC,CAAC;QACvF,MAAM,IAAI,GAAW,WAAW,CAAC,IAAI,CAAC;YACrC,CAAC,CAAC,CAAC,KAAK,EAAE,OAAO,EAAE,EAAE,CAAC,MAAM,CAAC,OAAO,CAAC;YACrC,CAAC,CAAC,CAAC,IAAI,EAAE,OAAO,EAAE,EAAE,CAAC,MAAM,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;QAC5C,OAAO,CAAC,OAAO,CAAC,GAAG,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC;IACnC,CAAC;IACD,KAAK,MAAM,MAAM,IAAI,KAAK,CAAC,IAAI,EAAE,EAAE,CAAC;QACnC,MAAM,MAAM,GAAG,gBAAgB,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC;QAC7C,IAAI,MAAM,KAAK,SAAS;YAAE,MAAM,IAAI,KAAK,CAAC,GAAG,MAAM,sCAAsC,CAAC,CAAC;QAC3F,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACnC,CAAC;IACD,KAAK,MAAM,MAAM,IAAI,KAAK,CAAC,IAAI,EAAE,EAAE,CAAC;QACnC,MAAM,QAAQ,GAAG,YAAY,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC;QAC3C,IAAI,QAAQ,KAAK,SAAS;YAAE,MAAM,IAAI,KAAK,CAAC,GAAG,MAAM,6CAA6C,CAAC,CAAC;QACpG,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC;IACrC,CAAC;IACD,OAAO,OAAO,CAAC;AAChB,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,aAAa,CAC5B,OAA0B,EAC1B,KAAwC,EACxC,MAAgE;IAEhE,MAAM,OAAO,GAAG,IAAI,GAAG,CAAuB,CAAC,GAAG,KAAK,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,MAAM,EAAE,MAAM,CAAC,EAAE,EAAE,CAAC,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC;IACtG,OAAO,CAAC,OAAO,CAAC,CAAC,MAAM,EAAE,QAAQ,EAAE,EAAE;QACpC,MAAM,MAAM,GAAG,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;QACnC,MAAM,IAAI,GAAG,MAAM,IAAI,WAAW,QAAQ,GAAG,CAAC,EAAE,CAAC;QACjD,MAAM,OAAO,GAAG,CAAC,MAAe,EAAE,KAAa,EAAe,EAAE;YAC/D,MAAM,QAAQ,GAAG,gBAAgB,CAAC,MAAM,CAAC,IAAI,CAAC,MAAM,YAAY,YAAY,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC;YACnG,IAAI,QAAQ,KAAK,SAAS;gBAAE,MAAM,IAAI,KAAK,CAAC,GAAG,IAAI,YAAY,KAAK,2BAA2B,CAAC,CAAC;YACjG,OAAO,QAAQ,CAAC;QACjB,CAAC,CAAC;QACF,MAAM,CAAC,MAAM,CAAC,OAAO,EAAE,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC;IACxC,CAAC,CAAC,CAAC;AACJ,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,cAAc,CAC7B,MAAsB,EACtB,WAAwB,EACxB,OAAe,EACf,KAAc;IAEd,OAAO,IAAI,oBAAoB,CAAC,MAAM,EAAE,WAAW,EAAE,OAAO,EAAE,SAAS,CAAC,KAAK,CAAC,CAAC,CAAC;AACjF,CAAC;AAED,wGAAwG;AACxG,SAAS,SAAS,CAAC,KAAc;IAChC,IAAI,KAAK,YAAY,YAAY;QAAE,OAAO,EAAE,IAAI,EAAE,QAAQ,EAAE,MAAM,EAAE,KAAK,EAAE,CAAC;IAC5E,MAAM,MAAM,GAAG,gBAAgB,CAAC,KAAK,CAAC,CAAC;IACvC,OAAO,MAAM,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,KAAK,EAAE,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,CAAC;AACnF,CAAC","sourcesContent":["// The member check (Q14): an implementation is one variant with exactly that variant's members, methods being\n// functions and state members JSON watchables; and the resolution of what Chord follows behind every derive's declared\n// sources (JSON and native) and every contribution to a registry (slice 8).\n//\n// The rule for watches across attempts (decision \"References are the only indirection\"): consumers' watches and\n// derives over another object's member follow it through their reference's member (`reference-source.ts`) and keys\n// (`reference-keys.ts`), passed straight through to the instance's own document or derive. While the object points at\n// nothing they keep their last values (one `failed` call for a failure); when a new instance goes live they move by\n// name to its member (a key pinned there again), whether a document or a derive: one frame from the last value, and\n// every derive downstream recovers (decision \"self healing\"). A re-exposed member is the re-exposing object's\n// reference member: it holds with that object, its provider's source goes on. Holds over a link follow the live\n// instance's members and take a snapshot at each binding.\n\nimport type { Context } from \"../context/index.ts\";\nimport type { Contract } from \"../contracts/index.ts\";\nimport { currentVariants, LOCAL, takesNoArgs, type VariantData } from \"../contracts/internal.ts\";\nimport type { KeyedSlot } from \"../documents/internal.ts\";\nimport {\n\ttype ContributionContent,\n\ttype Contributor,\n\tRegistryContribution,\n\ttype RegistryRecord,\n} from \"../registries/internal.ts\";\nimport { type Derive, type DeriveInput, type DeriveSource, NativeSource } from \"../state/internal.ts\";\nimport { type Binding, resolveKeyed, resolveWatchable } from \"./reference.ts\";\n\n/** A checked implementation, as Chord calls and follows it. */\nexport type Members = {\n\t/** The methods, each called with its arguments (`null` for none) and a context. */\n\treadonly methods: ReadonlyMap<string, Method>;\n\t/** The state members, resolved to what Chord follows. */\n\treadonly state: ReadonlyMap<string, DeriveSource>;\n\t/** The keyed members (slice 6a §12): the object's own slot, or the provider's member it re-exposes. */\n\treadonly keyed: ReadonlyMap<string, KeyedBinding>;\n};\n\n/**\n * What a keyed member is: a keyed document handle's slot (`own`), or another object's keyed member re-exposed through\n * a reference (`reexposed`), which reads end at the ultimate provider's slot (rule 22) and pinned keys follow.\n */\nexport type KeyedBinding =\n\t| { readonly kind: \"own\"; readonly slot: KeyedSlot }\n\t| { readonly kind: \"reexposed\"; readonly binding: Binding; readonly member: string };\n\n/** A method as Chord calls it. */\nexport type Method = (args: unknown, context: Context) => Promise<unknown>;\n\n/**\n * Checks what a factory returned (plugin code): a local contract's members, or a remote contract's `{ variant,\n * members }` naming one of its current variants. Errors name the variant or member (the failure cause adds the\n * object).\n */\nexport function checkImplementation(\n\tcontract: Contract,\n\timplementation: unknown,\n): { readonly variant: string | undefined; readonly members: Members } {\n\tconst variants = currentVariants(contract);\n\tif (contract.kind === \"local\") {\n\t\t// The member check establishes the shape.\n\t\treturn { variant: undefined, members: checkMembers(variants.get(LOCAL)!, implementation as Implementation) };\n\t}\n\t// Plugin code: a remote factory returns `{ variant, members }`, which the checks below establish.\n\tconst { variant, members } = implementation as { readonly variant: string; readonly members: Implementation };\n\tconst data = variants.get(variant);\n\tif (data === undefined) throw new Error(`variant ${JSON.stringify(variant)}: not a variant of ${contract.name}`);\n\treturn { variant, members: checkMembers(data, members) };\n}\n\ntype Implementation = { readonly [member: string]: unknown };\n\n/**\n * Checks members against a variant's (exactly its members, methods being functions, state members JSON watchables and\n * keyed members keyed document handles); a method without arguments is called with the context alone.\n */\nfunction checkMembers({ state, methods, keyed }: VariantData, implementation: Implementation): Members {\n\tfor (const member of Object.keys(implementation)) {\n\t\tif (!state.has(member) && !methods.has(member) && !keyed.has(member)) throw new Error(`${member}: not a member`);\n\t}\n\t// Own properties only: an inherited `toString` is no implementation of a member named so.\n\tconst own = (member: string): unknown =>\n\t\tObject.hasOwn(implementation, member) ? implementation[member] : undefined;\n\tconst checked = {\n\t\tmethods: new Map<string, Method>(),\n\t\tstate: new Map<string, DeriveSource>(),\n\t\tkeyed: new Map<string, KeyedBinding>(),\n\t};\n\tfor (const [member, data] of methods) {\n\t\tconst method = own(member);\n\t\tif (typeof method !== \"function\") throw new Error(`${member}: a method is a function`);\n\t\tconst call: Method = takesNoArgs(data)\n\t\t\t? (_args, context) => method(context)\n\t\t\t: (args, context) => method(args, context);\n\t\tchecked.methods.set(member, call);\n\t}\n\tfor (const member of state.keys()) {\n\t\tconst source = resolveWatchable(own(member));\n\t\tif (source === undefined) throw new Error(`${member}: a state member is a JSON watchable`);\n\t\tchecked.state.set(member, source);\n\t}\n\tfor (const member of keyed.keys()) {\n\t\tconst resolved = resolveKeyed(own(member));\n\t\tif (resolved === undefined) throw new Error(`${member}: a keyed member is a keyed document handle`);\n\t\tchecked.keyed.set(member, resolved);\n\t}\n\treturn checked;\n}\n\n/**\n * Resolves every derive's sources; errors name a derive by the member exposing it, else by its position. `report`\n * makes each derive's failure report, with the member exposing it when there is one (`derive_failed`).\n */\nexport function attachDerives(\n\tderives: readonly Derive[],\n\tstate: ReadonlyMap<string, DeriveSource>,\n\treport: (member: string | undefined) => (error: unknown) => void,\n): void {\n\tconst exposed = new Map<DeriveSource, string>([...state].map(([member, source]) => [source, member]));\n\tderives.forEach((derive, position) => {\n\t\tconst member = exposed.get(derive);\n\t\tconst name = member ?? `derive #${position + 1}`;\n\t\tconst resolve = (source: unknown, index: number): DeriveInput => {\n\t\t\tconst resolved = resolveWatchable(source) ?? (source instanceof NativeSource ? source : undefined);\n\t\t\tif (resolved === undefined) throw new Error(`${name}: source ${index} is not a Chord watchable`);\n\t\t\treturn resolved;\n\t\t};\n\t\tderive.attach(resolve, report(member));\n\t});\n}\n\n/**\n * A contribution of `contributor` at `version` to `record`, as Chord follows it: a Chord watchable (a source, a\n * constant, a document handle, a reference member, a native source: another registry's value too) is followed,\n * anything else is a plain value, whatever methods it has (registries carry natives).\n */\nexport function contributionOf(\n\trecord: RegistryRecord,\n\tcontributor: Contributor,\n\tversion: number,\n\tvalue: unknown,\n): RegistryContribution {\n\treturn new RegistryContribution(record, contributor, version, contentOf(value));\n}\n\n/** What Chord follows behind a contribution: its JSON or native source when it is a Chord watchable. */\nfunction contentOf(value: unknown): ContributionContent {\n\tif (value instanceof NativeSource) return { kind: \"native\", source: value };\n\tconst source = resolveWatchable(value);\n\treturn source === undefined ? { kind: \"plain\", value } : { kind: \"json\", source };\n}\n"]}
|
|
@@ -0,0 +1,64 @@
|
|
|
1
|
+
import type { TelemetryContext } from "@earendil-works/pi-telemetry";
|
|
2
|
+
import { type Context } from "../context/index.ts";
|
|
3
|
+
import type { HostError } from "./host.ts";
|
|
4
|
+
/** Why a native closes: its object ended or its attempt failed (`end`), the host closes (`close`), a reload (slice 7). */
|
|
5
|
+
export type NativeCloseReason = {
|
|
6
|
+
readonly kind: "end";
|
|
7
|
+
} | {
|
|
8
|
+
readonly kind: "close";
|
|
9
|
+
} | {
|
|
10
|
+
readonly kind: "reload";
|
|
11
|
+
};
|
|
12
|
+
/** A native's handle. */
|
|
13
|
+
export interface Native<T> {
|
|
14
|
+
/** The opened value: throws `not_ready` until its open resolved and `released` once its close started. */
|
|
15
|
+
readonly value: T;
|
|
16
|
+
}
|
|
17
|
+
/** What `self.open` takes besides the open and the close. */
|
|
18
|
+
export type NativeOptions = {
|
|
19
|
+
/** How long its close may take; the host's `closeTimeout` by default. */
|
|
20
|
+
readonly closeTimeout?: number;
|
|
21
|
+
};
|
|
22
|
+
/** A close that threw, as reported. */
|
|
23
|
+
export type CloseFailed = Extract<HostError, {
|
|
24
|
+
readonly kind: "close_failed";
|
|
25
|
+
}>;
|
|
26
|
+
/**
|
|
27
|
+
* Where a native belongs: its object's label, type and its position in declaration order (from 1) for errors, reports
|
|
28
|
+
* and spans, the object's context (every close runs under it, never under the aborted opener's), the host's telemetry
|
|
29
|
+
* adapter (a close is a root span), and where it reports.
|
|
30
|
+
*/
|
|
31
|
+
type NativeOwner = {
|
|
32
|
+
readonly object: string;
|
|
33
|
+
readonly type: string;
|
|
34
|
+
readonly position: number;
|
|
35
|
+
readonly context: Context;
|
|
36
|
+
readonly telemetry: TelemetryContext;
|
|
37
|
+
/** Its host's `chord.host`. */
|
|
38
|
+
readonly host: string;
|
|
39
|
+
readonly report: (error: HostError) => void;
|
|
40
|
+
};
|
|
41
|
+
/** What an attempt does with each of its natives, whatever their value's type. */
|
|
42
|
+
export interface NativeSlot {
|
|
43
|
+
open(context: Context): Promise<void>;
|
|
44
|
+
close(reason: NativeCloseReason): Promise<CloseFailed | undefined>;
|
|
45
|
+
}
|
|
46
|
+
/** One native of one attempt: opened at most once, closed exactly once. */
|
|
47
|
+
export declare class NativeHandle<T> implements Native<T>, NativeSlot {
|
|
48
|
+
#private;
|
|
49
|
+
constructor(open: (context: Context) => Promise<T>, close: (value: T, reason: NativeCloseReason, context: Context) => void | Promise<void>, closeTimeout: number, owner: NativeOwner);
|
|
50
|
+
get value(): T;
|
|
51
|
+
/**
|
|
52
|
+
* Opens the value in its `chord.open` span (under `context`'s, its attempt's); one that arrives after its attempt was
|
|
53
|
+
* abandoned is closed at once, a failure reported.
|
|
54
|
+
*/
|
|
55
|
+
open(context: Context): Promise<void>;
|
|
56
|
+
/** Closes the value if it is open (a pending open's value is closed when it arrives); resolves with a throw. */
|
|
57
|
+
close(reason: NativeCloseReason): Promise<CloseFailed | undefined>;
|
|
58
|
+
}
|
|
59
|
+
/** Whether `promise` settled within `ms` (it rejects when `promise` does first); `promise` itself runs on. */
|
|
60
|
+
export declare function within(promise: Promise<unknown>, ms: number): Promise<"settled" | "timeout">;
|
|
61
|
+
/** Whether the `size` pieces of work in `drain` settled within `ms` (at once when there is none). */
|
|
62
|
+
export declare function drained(drain: Iterable<Promise<unknown>>, size: number, ms: number): Promise<"settled" | "timeout">;
|
|
63
|
+
export {};
|
|
64
|
+
//# sourceMappingURL=native.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"native.d.ts","sourceRoot":"","sources":["../../src/host/native.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,8BAA8B,CAAC;AACrE,OAAO,EAAE,KAAK,OAAO,EAAkC,MAAM,qBAAqB,CAAC;AAGnF,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,WAAW,CAAC;AAE3C,0HAA0H;AAC1H,MAAM,MAAM,iBAAiB,GAAG;IAAE,QAAQ,CAAC,IAAI,EAAE,KAAK,CAAA;CAAE,GAAG;IAAE,QAAQ,CAAC,IAAI,EAAE,OAAO,CAAA;CAAE,GAAG;IAAE,QAAQ,CAAC,IAAI,EAAE,QAAQ,CAAA;CAAE,CAAC;AAEpH,yBAAyB;AACzB,MAAM,WAAW,MAAM,CAAC,CAAC;IACxB,0GAA0G;IAC1G,QAAQ,CAAC,KAAK,EAAE,CAAC,CAAC;CAClB;AAED,6DAA6D;AAC7D,MAAM,MAAM,aAAa,GAAG;IAC3B,yEAAyE;IACzE,QAAQ,CAAC,YAAY,CAAC,EAAE,MAAM,CAAC;CAC/B,CAAC;AAEF,uCAAuC;AACvC,MAAM,MAAM,WAAW,GAAG,OAAO,CAAC,SAAS,EAAE;IAAE,QAAQ,CAAC,IAAI,EAAE,cAAc,CAAA;CAAE,CAAC,CAAC;AAEhF;;;;GAIG;AACH,KAAK,WAAW,GAAG;IAClB,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAC1B,QAAQ,CAAC,OAAO,EAAE,OAAO,CAAC;IAC1B,QAAQ,CAAC,SAAS,EAAE,gBAAgB,CAAC;IACrC,+BAA+B;IAC/B,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,MAAM,EAAE,CAAC,KAAK,EAAE,SAAS,KAAK,IAAI,CAAC;CAC5C,CAAC;AAEF,kFAAkF;AAClF,MAAM,WAAW,UAAU;IAC1B,IAAI,CAAC,OAAO,EAAE,OAAO,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IACtC,KAAK,CAAC,MAAM,EAAE,iBAAiB,GAAG,OAAO,CAAC,WAAW,GAAG,SAAS,CAAC,CAAC;CACnE;AAUD,2EAA2E;AAC3E,qBAAa,YAAY,CAAC,CAAC,CAAE,YAAW,MAAM,CAAC,CAAC,CAAC,EAAE,UAAU;;IAO5D,YACC,IAAI,EAAE,CAAC,OAAO,EAAE,OAAO,KAAK,OAAO,CAAC,CAAC,CAAC,EACtC,KAAK,EAAE,CAAC,KAAK,EAAE,CAAC,EAAE,MAAM,EAAE,iBAAiB,EAAE,OAAO,EAAE,OAAO,KAAK,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,EACtF,YAAY,EAAE,MAAM,EACpB,KAAK,EAAE,WAAW,EAMlB;IAED,IAAI,KAAK,IAAI,CAAC,CAQb;IAED;;;OAGG;IACG,IAAI,CAAC,OAAO,EAAE,OAAO,GAAG,OAAO,CAAC,IAAI,CAAC,CAmB1C;IAED,gHAAgH;IAC1G,KAAK,CAAC,MAAM,EAAE,iBAAiB,GAAG,OAAO,CAAC,WAAW,GAAG,SAAS,CAAC,CAIvE;CAiDD;AAED,8GAA8G;AAC9G,wBAAsB,MAAM,CAAC,OAAO,EAAE,OAAO,CAAC,OAAO,CAAC,EAAE,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,SAAS,GAAG,SAAS,CAAC,CAUlG;AAED,qGAAqG;AACrG,wBAAsB,OAAO,CAC5B,KAAK,EAAE,QAAQ,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,EACjC,IAAI,EAAE,MAAM,EACZ,EAAE,EAAE,MAAM,GACR,OAAO,CAAC,SAAS,GAAG,SAAS,CAAC,CAEhC"}
|
|
@@ -0,0 +1,126 @@
|
|
|
1
|
+
// Natives (§13): the handle `self.open` returns, a value opened during activation and closed with a reason when its
|
|
2
|
+
// attempt ends; `within`, which bounds a close or a drain by a timeout; and the drain's admission of running work.
|
|
3
|
+
import { withAbortSignal, withTelemetry } from "../context/index.js";
|
|
4
|
+
import { ChordError } from "../data/index.js";
|
|
5
|
+
import { chordSpans, ended, spanFailed, untraced } from "../telemetry.js";
|
|
6
|
+
/** One native of one attempt: opened at most once, closed exactly once. */
|
|
7
|
+
export class NativeHandle {
|
|
8
|
+
#open;
|
|
9
|
+
#close;
|
|
10
|
+
#closeTimeout;
|
|
11
|
+
#owner;
|
|
12
|
+
#state = { kind: "unopened" };
|
|
13
|
+
constructor(open, close, closeTimeout, owner) {
|
|
14
|
+
this.#open = open;
|
|
15
|
+
this.#close = close;
|
|
16
|
+
this.#closeTimeout = closeTimeout;
|
|
17
|
+
this.#owner = owner;
|
|
18
|
+
}
|
|
19
|
+
get value() {
|
|
20
|
+
const state = this.#state;
|
|
21
|
+
if (state.kind === "open")
|
|
22
|
+
return state.value;
|
|
23
|
+
const name = this.#name();
|
|
24
|
+
if (state.kind === "unopened" || state.kind === "opening") {
|
|
25
|
+
throw new ChordError({ code: "not_ready", message: `${name}: not open yet` });
|
|
26
|
+
}
|
|
27
|
+
throw new ChordError({ code: "released", reason: "closed", message: `${name}: closed` });
|
|
28
|
+
}
|
|
29
|
+
/**
|
|
30
|
+
* Opens the value in its `chord.open` span (under `context`'s, its attempt's); one that arrives after its attempt was
|
|
31
|
+
* abandoned is closed at once, a failure reported.
|
|
32
|
+
*/
|
|
33
|
+
async open(context) {
|
|
34
|
+
this.#state = { kind: "opening" };
|
|
35
|
+
const parent = context.telemetry;
|
|
36
|
+
if (untraced(parent)) {
|
|
37
|
+
await this.#opened(await this.#open(context));
|
|
38
|
+
return;
|
|
39
|
+
}
|
|
40
|
+
const { host, type, position } = this.#owner;
|
|
41
|
+
await chordSpans(parent)("chord.open", { "chord.host": host, type, native: position }, async (span) => {
|
|
42
|
+
let value;
|
|
43
|
+
try {
|
|
44
|
+
value = await this.#open(withTelemetry(span, context));
|
|
45
|
+
}
|
|
46
|
+
catch (error) {
|
|
47
|
+
// An open its attempt abandoned (a deadline, an end) was cancelled: no error.
|
|
48
|
+
ended(span, "open_failed", error, context.abortSignal);
|
|
49
|
+
throw error;
|
|
50
|
+
}
|
|
51
|
+
await this.#opened(value);
|
|
52
|
+
});
|
|
53
|
+
}
|
|
54
|
+
/** Closes the value if it is open (a pending open's value is closed when it arrives); resolves with a throw. */
|
|
55
|
+
async close(reason) {
|
|
56
|
+
const state = this.#state;
|
|
57
|
+
this.#state = state.kind === "opening" ? { kind: "abandoned", reason } : { kind: "closed" };
|
|
58
|
+
return state.kind === "open" ? this.#closeValue(state.value, reason) : undefined;
|
|
59
|
+
}
|
|
60
|
+
/** Keeps the value an open resolved with, or closes it at once when the native was closed meanwhile. */
|
|
61
|
+
async #opened(value) {
|
|
62
|
+
const state = this.#state;
|
|
63
|
+
if (state.kind !== "abandoned") {
|
|
64
|
+
this.#state = { kind: "open", value };
|
|
65
|
+
return;
|
|
66
|
+
}
|
|
67
|
+
this.#state = { kind: "closed" };
|
|
68
|
+
const failure = await this.#closeValue(value, state.reason);
|
|
69
|
+
if (failure !== undefined)
|
|
70
|
+
this.#owner.report(failure);
|
|
71
|
+
}
|
|
72
|
+
/**
|
|
73
|
+
* Runs the close under the object's context (in a `chord.close` root span), aborted at the close timeout, and waits
|
|
74
|
+
* for it up to then; longer is reported.
|
|
75
|
+
*/
|
|
76
|
+
async #closeValue(value, reason) {
|
|
77
|
+
const { telemetry, host, type, position } = this.#owner;
|
|
78
|
+
if (untraced(telemetry))
|
|
79
|
+
return this.#closeWithin(value, reason, this.#owner.context);
|
|
80
|
+
const attributes = { "chord.host": host, type, native: position, reason: reason.kind };
|
|
81
|
+
return chordSpans(telemetry)("chord.close", attributes, async (span) => {
|
|
82
|
+
const failure = await this.#closeWithin(value, reason, withTelemetry(span, this.#owner.context));
|
|
83
|
+
if (failure !== undefined)
|
|
84
|
+
spanFailed(span, "close_failed", failure.error);
|
|
85
|
+
return failure;
|
|
86
|
+
});
|
|
87
|
+
}
|
|
88
|
+
/** `#closeValue`'s close under `context`. */
|
|
89
|
+
async #closeWithin(value, reason, context) {
|
|
90
|
+
const { object, position, report } = this.#owner;
|
|
91
|
+
const at = { object, native: { kind: "native", position } };
|
|
92
|
+
const timeout = new AbortController();
|
|
93
|
+
const closing = (async () => this.#close(value, reason, withAbortSignal(timeout.signal, context)))();
|
|
94
|
+
try {
|
|
95
|
+
if ((await within(closing, this.#closeTimeout)) === "timeout") {
|
|
96
|
+
timeout.abort(new ChordError({ code: "aborted", message: `${this.#name()}: close timed out` }));
|
|
97
|
+
report({ kind: "close_timeout", ...at });
|
|
98
|
+
}
|
|
99
|
+
return undefined;
|
|
100
|
+
}
|
|
101
|
+
catch (error) {
|
|
102
|
+
return { kind: "close_failed", ...at, error };
|
|
103
|
+
}
|
|
104
|
+
}
|
|
105
|
+
#name() {
|
|
106
|
+
return `${this.#owner.object} native #${this.#owner.position}`;
|
|
107
|
+
}
|
|
108
|
+
}
|
|
109
|
+
/** Whether `promise` settled within `ms` (it rejects when `promise` does first); `promise` itself runs on. */
|
|
110
|
+
export async function within(promise, ms) {
|
|
111
|
+
let timer;
|
|
112
|
+
const timeout = new Promise((resolve) => {
|
|
113
|
+
timer = setTimeout(resolve, ms, "timeout");
|
|
114
|
+
});
|
|
115
|
+
try {
|
|
116
|
+
return await Promise.race([promise.then(() => "settled"), timeout]);
|
|
117
|
+
}
|
|
118
|
+
finally {
|
|
119
|
+
clearTimeout(timer);
|
|
120
|
+
}
|
|
121
|
+
}
|
|
122
|
+
/** Whether the `size` pieces of work in `drain` settled within `ms` (at once when there is none). */
|
|
123
|
+
export async function drained(drain, size, ms) {
|
|
124
|
+
return size === 0 ? "settled" : within(Promise.allSettled(drain), ms);
|
|
125
|
+
}
|
|
126
|
+
//# sourceMappingURL=native.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"native.js","sourceRoot":"","sources":["../../src/host/native.ts"],"names":[],"mappings":"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","sourcesContent":["// Natives (§13): the handle `self.open` returns, a value opened during activation and closed with a reason when its\n// attempt ends; `within`, which bounds a close or a drain by a timeout; and the drain's admission of running work.\n\nimport type { TelemetryContext } from \"@earendil-works/pi-telemetry\";\nimport { type Context, withAbortSignal, withTelemetry } from \"../context/index.ts\";\nimport { ChordError } from \"../data/index.ts\";\nimport { chordSpans, ended, spanFailed, untraced } from \"../telemetry.ts\";\nimport type { HostError } from \"./host.ts\";\n\n/** Why a native closes: its object ended or its attempt failed (`end`), the host closes (`close`), a reload (slice 7). */\nexport type NativeCloseReason = { readonly kind: \"end\" } | { readonly kind: \"close\" } | { readonly kind: \"reload\" };\n\n/** A native's handle. */\nexport interface Native<T> {\n\t/** The opened value: throws `not_ready` until its open resolved and `released` once its close started. */\n\treadonly value: T;\n}\n\n/** What `self.open` takes besides the open and the close. */\nexport type NativeOptions = {\n\t/** How long its close may take; the host's `closeTimeout` by default. */\n\treadonly closeTimeout?: number;\n};\n\n/** A close that threw, as reported. */\nexport type CloseFailed = Extract<HostError, { readonly kind: \"close_failed\" }>;\n\n/**\n * Where a native belongs: its object's label, type and its position in declaration order (from 1) for errors, reports\n * and spans, the object's context (every close runs under it, never under the aborted opener's), the host's telemetry\n * adapter (a close is a root span), and where it reports.\n */\ntype NativeOwner = {\n\treadonly object: string;\n\treadonly type: string;\n\treadonly position: number;\n\treadonly context: Context;\n\treadonly telemetry: TelemetryContext;\n\t/** Its host's `chord.host`. */\n\treadonly host: string;\n\treadonly report: (error: HostError) => void;\n};\n\n/** What an attempt does with each of its natives, whatever their value's type. */\nexport interface NativeSlot {\n\topen(context: Context): Promise<void>;\n\tclose(reason: NativeCloseReason): Promise<CloseFailed | undefined>;\n}\n\n/** Where a native stands. `abandoned`: closed while its open was pending, so the late value is closed at once. */\ntype NativeState<T> =\n\t| { readonly kind: \"unopened\" }\n\t| { readonly kind: \"opening\" }\n\t| { readonly kind: \"open\"; readonly value: T }\n\t| { readonly kind: \"abandoned\"; readonly reason: NativeCloseReason }\n\t| { readonly kind: \"closed\" };\n\n/** One native of one attempt: opened at most once, closed exactly once. */\nexport class NativeHandle<T> implements Native<T>, NativeSlot {\n\treadonly #open: (context: Context) => Promise<T>;\n\treadonly #close: (value: T, reason: NativeCloseReason, context: Context) => void | Promise<void>;\n\treadonly #closeTimeout: number;\n\treadonly #owner: NativeOwner;\n\t#state: NativeState<T> = { kind: \"unopened\" };\n\n\tconstructor(\n\t\topen: (context: Context) => Promise<T>,\n\t\tclose: (value: T, reason: NativeCloseReason, context: Context) => void | Promise<void>,\n\t\tcloseTimeout: number,\n\t\towner: NativeOwner,\n\t) {\n\t\tthis.#open = open;\n\t\tthis.#close = close;\n\t\tthis.#closeTimeout = closeTimeout;\n\t\tthis.#owner = owner;\n\t}\n\n\tget value(): T {\n\t\tconst state = this.#state;\n\t\tif (state.kind === \"open\") return state.value;\n\t\tconst name = this.#name();\n\t\tif (state.kind === \"unopened\" || state.kind === \"opening\") {\n\t\t\tthrow new ChordError({ code: \"not_ready\", message: `${name}: not open yet` });\n\t\t}\n\t\tthrow new ChordError({ code: \"released\", reason: \"closed\", message: `${name}: closed` });\n\t}\n\n\t/**\n\t * Opens the value in its `chord.open` span (under `context`'s, its attempt's); one that arrives after its attempt was\n\t * abandoned is closed at once, a failure reported.\n\t */\n\tasync open(context: Context): Promise<void> {\n\t\tthis.#state = { kind: \"opening\" };\n\t\tconst parent = context.telemetry;\n\t\tif (untraced(parent)) {\n\t\t\tawait this.#opened(await this.#open(context));\n\t\t\treturn;\n\t\t}\n\t\tconst { host, type, position } = this.#owner;\n\t\tawait chordSpans(parent)(\"chord.open\", { \"chord.host\": host, type, native: position }, async (span) => {\n\t\t\tlet value: T;\n\t\t\ttry {\n\t\t\t\tvalue = await this.#open(withTelemetry(span, context));\n\t\t\t} catch (error) {\n\t\t\t\t// An open its attempt abandoned (a deadline, an end) was cancelled: no error.\n\t\t\t\tended(span, \"open_failed\", error, context.abortSignal);\n\t\t\t\tthrow error;\n\t\t\t}\n\t\t\tawait this.#opened(value);\n\t\t});\n\t}\n\n\t/** Closes the value if it is open (a pending open's value is closed when it arrives); resolves with a throw. */\n\tasync close(reason: NativeCloseReason): Promise<CloseFailed | undefined> {\n\t\tconst state = this.#state;\n\t\tthis.#state = state.kind === \"opening\" ? { kind: \"abandoned\", reason } : { kind: \"closed\" };\n\t\treturn state.kind === \"open\" ? this.#closeValue(state.value, reason) : undefined;\n\t}\n\n\t/** Keeps the value an open resolved with, or closes it at once when the native was closed meanwhile. */\n\tasync #opened(value: T): Promise<void> {\n\t\tconst state = this.#state;\n\t\tif (state.kind !== \"abandoned\") {\n\t\t\tthis.#state = { kind: \"open\", value };\n\t\t\treturn;\n\t\t}\n\t\tthis.#state = { kind: \"closed\" };\n\t\tconst failure = await this.#closeValue(value, state.reason);\n\t\tif (failure !== undefined) this.#owner.report(failure);\n\t}\n\n\t/**\n\t * Runs the close under the object's context (in a `chord.close` root span), aborted at the close timeout, and waits\n\t * for it up to then; longer is reported.\n\t */\n\tasync #closeValue(value: T, reason: NativeCloseReason): Promise<CloseFailed | undefined> {\n\t\tconst { telemetry, host, type, position } = this.#owner;\n\t\tif (untraced(telemetry)) return this.#closeWithin(value, reason, this.#owner.context);\n\t\tconst attributes = { \"chord.host\": host, type, native: position, reason: reason.kind };\n\t\treturn chordSpans(telemetry)(\"chord.close\", attributes, async (span) => {\n\t\t\tconst failure = await this.#closeWithin(value, reason, withTelemetry(span, this.#owner.context));\n\t\t\tif (failure !== undefined) spanFailed(span, \"close_failed\", failure.error);\n\t\t\treturn failure;\n\t\t});\n\t}\n\n\t/** `#closeValue`'s close under `context`. */\n\tasync #closeWithin(value: T, reason: NativeCloseReason, context: Context): Promise<CloseFailed | undefined> {\n\t\tconst { object, position, report } = this.#owner;\n\t\tconst at = { object, native: { kind: \"native\", position } } as const;\n\t\tconst timeout = new AbortController();\n\t\tconst closing = (async () => this.#close(value, reason, withAbortSignal(timeout.signal, context)))();\n\t\ttry {\n\t\t\tif ((await within(closing, this.#closeTimeout)) === \"timeout\") {\n\t\t\t\ttimeout.abort(new ChordError({ code: \"aborted\", message: `${this.#name()}: close timed out` }));\n\t\t\t\treport({ kind: \"close_timeout\", ...at });\n\t\t\t}\n\t\t\treturn undefined;\n\t\t} catch (error) {\n\t\t\treturn { kind: \"close_failed\", ...at, error };\n\t\t}\n\t}\n\n\t#name(): string {\n\t\treturn `${this.#owner.object} native #${this.#owner.position}`;\n\t}\n}\n\n/** Whether `promise` settled within `ms` (it rejects when `promise` does first); `promise` itself runs on. */\nexport async function within(promise: Promise<unknown>, ms: number): Promise<\"settled\" | \"timeout\"> {\n\tlet timer: ReturnType<typeof setTimeout> | undefined;\n\tconst timeout = new Promise<\"timeout\">((resolve) => {\n\t\ttimer = setTimeout(resolve, ms, \"timeout\");\n\t});\n\ttry {\n\t\treturn await Promise.race([promise.then(() => \"settled\" as const), timeout]);\n\t} finally {\n\t\tclearTimeout(timer);\n\t}\n}\n\n/** Whether the `size` pieces of work in `drain` settled within `ms` (at once when there is none). */\nexport async function drained(\n\tdrain: Iterable<Promise<unknown>>,\n\tsize: number,\n\tms: number,\n): Promise<\"settled\" | \"timeout\"> {\n\treturn size === 0 ? \"settled\" : within(Promise.allSettled(drain), ms);\n}\n"]}
|
|
@@ -0,0 +1,331 @@
|
|
|
1
|
+
import type { TelemetryContext } from "@earendil-works/pi-telemetry";
|
|
2
|
+
import { type Context } from "../context/index.ts";
|
|
3
|
+
import type { Contract, ParamsOf } from "../contracts/index.ts";
|
|
4
|
+
import type { ContractShape } from "../contracts/internal.ts";
|
|
5
|
+
import { ChordError, type FailureCause, type Principal } from "../data/index.ts";
|
|
6
|
+
import { type Provider } from "../data/internal.ts";
|
|
7
|
+
import { Documents, type KeyedSlot } from "../documents/internal.ts";
|
|
8
|
+
import type { JobDefinition } from "../jobs/index.ts";
|
|
9
|
+
import { JobRecords } from "../jobs/internal.ts";
|
|
10
|
+
import type { JsonValue } from "../json.ts";
|
|
11
|
+
import type { DeriveSource } from "../state/internal.ts";
|
|
12
|
+
import { LiveQueries } from "../store/live-query.ts";
|
|
13
|
+
import { Attempt, type PinnedKey, type Self } from "./attempt.ts";
|
|
14
|
+
import type { Caller } from "./ctx.ts";
|
|
15
|
+
import type { Dependency } from "./dependencies.ts";
|
|
16
|
+
import type { AnyHost } from "./host.ts";
|
|
17
|
+
import type { CloseFailed } from "./native.ts";
|
|
18
|
+
import { type RefState } from "./ref-state.ts";
|
|
19
|
+
import { type CheckedParams, type Followed, type RetryWalk, type Target } from "./reference.ts";
|
|
20
|
+
import { type RetrySource } from "./retry-on.ts";
|
|
21
|
+
import type { Request } from "./staging.ts";
|
|
22
|
+
/** A `local` contract, as a served type has it. */
|
|
23
|
+
export type LocalContract = Contract<ContractShape & {
|
|
24
|
+
readonly kind: "local";
|
|
25
|
+
}>;
|
|
26
|
+
/** A `remote` contract, as a served type has it. */
|
|
27
|
+
export type RemoteContract = Contract<ContractShape & {
|
|
28
|
+
readonly kind: "remote";
|
|
29
|
+
}>;
|
|
30
|
+
/**
|
|
31
|
+
* A type served on a host, by kind: its contract, factory (a remote one gets the object's principal) and argument
|
|
32
|
+
* checks. Factories are plugin code: what they return is checked at activation.
|
|
33
|
+
*/
|
|
34
|
+
export type Served = (ServedType<LocalContract> & {
|
|
35
|
+
readonly kind: "local";
|
|
36
|
+
readonly factory: (params: ParamsOf<Contract>, self: Self) => unknown;
|
|
37
|
+
/** A type with empty params: its object lives as long as the host (Q-A). */
|
|
38
|
+
readonly hostLifetime: boolean;
|
|
39
|
+
}) | (ServedType<RemoteContract> & {
|
|
40
|
+
readonly kind: "remote";
|
|
41
|
+
readonly factory: (params: ParamsOf<Contract>, principal: Principal, self: Self) => unknown;
|
|
42
|
+
});
|
|
43
|
+
type ServedType<C extends Contract> = {
|
|
44
|
+
/** The plugin whose facet served it: its objects contribute to registries by it. */
|
|
45
|
+
readonly plugin: string;
|
|
46
|
+
readonly contract: C;
|
|
47
|
+
readonly provider: Provider<Contract>;
|
|
48
|
+
/** How long a live object stays live after its last reference, in milliseconds (`serve`'s `linger`, 0 by default). */
|
|
49
|
+
readonly linger: number;
|
|
50
|
+
/** Whether its calls start method spans (`serve`'s `untraced`: not). */
|
|
51
|
+
readonly traced: boolean;
|
|
52
|
+
};
|
|
53
|
+
/** What holds an object: a reference's binding, or a hold arriving over a link. */
|
|
54
|
+
export interface Holder {
|
|
55
|
+
/** The object whose attempt declared the reference: it checks its dependencies again when this object changes. */
|
|
56
|
+
readonly dependent: ChordObject | undefined;
|
|
57
|
+
/** Whom the reference acts for, with its origin's incarnation (`host.references`). */
|
|
58
|
+
readonly caller: Caller;
|
|
59
|
+
/** The consumer's contract version and fingerprint (its request's): the provider binds it or it waits unbound. */
|
|
60
|
+
readonly contract: {
|
|
61
|
+
readonly version: number;
|
|
62
|
+
readonly fingerprint: string;
|
|
63
|
+
};
|
|
64
|
+
/** Whether presence lists show it (§19): not a restart's readiness binding, which is no consumer of its own. */
|
|
65
|
+
readonly listed: boolean;
|
|
66
|
+
/**
|
|
67
|
+
* Inside a batch, before `moved`: what it follows of the object changed (`ChordObject.followed`): a reference moves its
|
|
68
|
+
* members' subscriptions to the new instance, or keeps their last values; a hold over a link has nothing to do here.
|
|
69
|
+
*/
|
|
70
|
+
retarget(): void;
|
|
71
|
+
/** Whether `retarget` moves anything (a reference whose members or keys were used): it then runs in a batch. */
|
|
72
|
+
readonly following: boolean;
|
|
73
|
+
/** The object's state (`state`) changed: an attempt started after a failure, it went live, or it failed. */
|
|
74
|
+
moved(): void;
|
|
75
|
+
/** The object ended with `error`. */
|
|
76
|
+
end(error: ChordError): void;
|
|
77
|
+
/**
|
|
78
|
+
* The object ended because a reload removed its type (slice 7b §6): the holder's request is not ended; it waits
|
|
79
|
+
* unbound with `removal.cause` (`not_served`) until a publication serves the name again.
|
|
80
|
+
*/
|
|
81
|
+
removed(removal: Removal): void;
|
|
82
|
+
}
|
|
83
|
+
/**
|
|
84
|
+
* What an object tells holders it leaves: why they wait (`not_served` after a removal, `contract_mismatch` after a
|
|
85
|
+
* version refusal), its params (they place their requests again) and its context. A reference keeps its last values
|
|
86
|
+
* meanwhile and moves its subscriptions to the next object of the identity that serves its version (one frame).
|
|
87
|
+
*/
|
|
88
|
+
export type Removal = {
|
|
89
|
+
readonly cause: FailureCause;
|
|
90
|
+
readonly host: AnyHost;
|
|
91
|
+
readonly params: CheckedParams;
|
|
92
|
+
readonly context: Context;
|
|
93
|
+
};
|
|
94
|
+
/** What a reload does to an object whose type is still served: a live one restarts, any other is retried. */
|
|
95
|
+
export type ReloadFate = "restart" | "retry";
|
|
96
|
+
/**
|
|
97
|
+
* One object. Each attempt is a fresh `Attempt`; the documents, the line, the job runs and the holders outlive it. An
|
|
98
|
+
* attempt parked on its dependencies waits for them without a timer; a transient failure (its own) is retried after its
|
|
99
|
+
* backoff window, or at once when a reference asks (`retry`); a broken one stays failed until a reference asks.
|
|
100
|
+
* The object ends with its last reference, a live one after its type's `linger` (never, for a host-lifetime object),
|
|
101
|
+
* or when the host closes.
|
|
102
|
+
*/
|
|
103
|
+
export declare class ChordObject implements Target {
|
|
104
|
+
#private;
|
|
105
|
+
/** An object on this host (a reference's target that is not held over a link). */
|
|
106
|
+
readonly kind = "local";
|
|
107
|
+
readonly host: AnyHost;
|
|
108
|
+
/** Its served type: replaced by a reload that restarts or retries it. */
|
|
109
|
+
served: Served;
|
|
110
|
+
readonly params: ParamsOf<Contract>;
|
|
111
|
+
/** Its params' identity key (empty for empty params). */
|
|
112
|
+
readonly key: string;
|
|
113
|
+
/** The principal in a remote object's identity, which its factory gets; `undefined` for a local object. */
|
|
114
|
+
readonly principal: Principal | undefined;
|
|
115
|
+
readonly identity: string;
|
|
116
|
+
/** The object in errors, reports and cycles: its type, and its params key when it has params. */
|
|
117
|
+
readonly label: string;
|
|
118
|
+
/**
|
|
119
|
+
* The activation chain it was created for (Q5): the instance ids of the activations waiting for it, from the hold
|
|
120
|
+
* that created it (a trusted link's) or the activation here that declared it; empty otherwise.
|
|
121
|
+
*/
|
|
122
|
+
readonly chain: readonly string[];
|
|
123
|
+
/** Its documents and line, across its attempts. */
|
|
124
|
+
readonly documents: Documents;
|
|
125
|
+
constructor(host: AnyHost, served: Served, params: ParamsOf<Contract>, principal: Principal | undefined, key: string, identity: string, trigger: TelemetryContext, context: Context, chain: readonly string[]);
|
|
126
|
+
/** The object's state as its references show it. */
|
|
127
|
+
get state(): RefState;
|
|
128
|
+
/**
|
|
129
|
+
* Whether its state members have values: once live (a local object stays live until it ends), and while a
|
|
130
|
+
* restart's old attempt is open (its consumers check their version through `stateFor`).
|
|
131
|
+
*/
|
|
132
|
+
get hydrated(): boolean;
|
|
133
|
+
/**
|
|
134
|
+
* The state a same-host consumer of `version` and `fingerprint` sees (rule 5): `live` while a restart's open old
|
|
135
|
+
* attempt binds that version and its successor is not parked on a failure; otherwise `state`.
|
|
136
|
+
*/
|
|
137
|
+
stateFor(version: number, fingerprint: string): RefState;
|
|
138
|
+
/** Whether a restart's open old attempt binds `version` and `fingerprint`: its consumers of that version may use it. */
|
|
139
|
+
oldServes(version: number, fingerprint: string): boolean;
|
|
140
|
+
/**
|
|
141
|
+
* A restart's old attempt while it is open (draining, not sealed yet): old work runs on it, and consumers whose
|
|
142
|
+
* version it binds see it as the live instance; `undefined` otherwise.
|
|
143
|
+
*/
|
|
144
|
+
get openOldAttempt(): Attempt | undefined;
|
|
145
|
+
/** Resolves at its first outcome (the start barrier waits for it); never rejects. */
|
|
146
|
+
get firstOutcome(): Promise<void>;
|
|
147
|
+
/**
|
|
148
|
+
* Whether an activation is under way: waiting for its previous instance's teardown, or activating and showing
|
|
149
|
+
* `loading` (its factory, its natives' opens, a dependency still loading); a parked wait (`failed { waiting }`) is not.
|
|
150
|
+
*/
|
|
151
|
+
get activating(): boolean;
|
|
152
|
+
/** Whether it holds up the start barrier: it has no first outcome yet. */
|
|
153
|
+
get blocksFirstPass(): boolean;
|
|
154
|
+
/**
|
|
155
|
+
* The error of its last failure while none went live since: a failed attempt's, or the cause its parked attempt
|
|
156
|
+
* showed last (kept when the dependency falls back to `loading`, so a getter's deadline names it).
|
|
157
|
+
*/
|
|
158
|
+
get lastFailure(): ChordError | undefined;
|
|
159
|
+
/** The span of the activation under way, when one runs and is recorded (getters waiting for it link to it). */
|
|
160
|
+
get activationSpan(): TelemetryContext | undefined;
|
|
161
|
+
/** Its instance id while an attempt activates; `undefined` otherwise (a hold's chain names only activations). */
|
|
162
|
+
get activationId(): string | undefined;
|
|
163
|
+
/**
|
|
164
|
+
* The chain a hold this object's activation makes over a link carries (Q5): its own chain and its instance id, the
|
|
165
|
+
* last 32; `undefined` when it is not activating.
|
|
166
|
+
*/
|
|
167
|
+
activationChain(): string[] | undefined;
|
|
168
|
+
/** Its holders, for a presence list made after they took it. */
|
|
169
|
+
get holders(): ReadonlySet<Holder>;
|
|
170
|
+
/**
|
|
171
|
+
* The variant a live remote object's factory chose (a restart's open old attempt's meanwhile); `undefined` for a
|
|
172
|
+
* local object and before it is live.
|
|
173
|
+
*/
|
|
174
|
+
get variant(): string | undefined;
|
|
175
|
+
/** The live object's state members, as Chord follows them. */
|
|
176
|
+
get stateMembers(): ReadonlyMap<string, DeriveSource>;
|
|
177
|
+
/**
|
|
178
|
+
* Starts an attempt when waiting or failed and returns it; a trigger while an attempt runs (or once live) is ignored.
|
|
179
|
+
* After a failure the holders are told: their references are loading again.
|
|
180
|
+
*/
|
|
181
|
+
attempt(): Attempt | undefined;
|
|
182
|
+
/**
|
|
183
|
+
* `ref.retry()` and a `retry` message, as a step of `walk` (handled once per walk: a diamond reaches it twice): an
|
|
184
|
+
* attempt now when failed (a broken one too) or waiting, its backoff window skipped; passed on to the failed
|
|
185
|
+
* dependencies while parked `failed { waiting }`; ignored otherwise (an attempt runs, or it is live).
|
|
186
|
+
*/
|
|
187
|
+
retry(walk?: RetryWalk): void;
|
|
188
|
+
/**
|
|
189
|
+
* Follows `sources` as its wake signals instead of the last attempt's (`self.retryOn`, right after a factory
|
|
190
|
+
* returned): a new value retries it while failed, as `ref.retry()` does; one while it activates retries it at once
|
|
191
|
+
* if that attempt fails; one while live does nothing.
|
|
192
|
+
*/
|
|
193
|
+
retryOn(sources: readonly RetrySource[]): void;
|
|
194
|
+
/**
|
|
195
|
+
* Calls a method of the live object for `caller`, bound at `version` (an older one maps its arguments and result,
|
|
196
|
+
* Q10), its `chord.method` span under `parent` (the caller's span on this host, a call's carrier over a link). While
|
|
197
|
+
* an attempt activates (a reload's restart, a retry), new work waits for its outcome (the gate); old work runs on a
|
|
198
|
+
* restart's open old attempt.
|
|
199
|
+
*/
|
|
200
|
+
call(method: string, args: unknown, context: Context, caller: Caller, version: number, parent?: TelemetryContext): Promise<unknown>;
|
|
201
|
+
/** Whether a consumer of `contract`'s version and fingerprint binds to this object's provider now (R6, Q10). */
|
|
202
|
+
binds(contract: Contract): boolean;
|
|
203
|
+
/** Its params as checked, with their identity key. */
|
|
204
|
+
get checkedParams(): CheckedParams;
|
|
205
|
+
/**
|
|
206
|
+
* What a reference of `version` follows for state member `member` now (decision "References are the only
|
|
207
|
+
* indirection"): the shown instance's member (its mapping at an older version) while that instance is live, while a
|
|
208
|
+
* restart keeps it open, and after a live failure until its admitted commits published; else nothing:
|
|
209
|
+
* `failed` with the cause's error, or `loading`, with that member to take a last value from.
|
|
210
|
+
*/
|
|
211
|
+
followed(member: string, version: number): Followed;
|
|
212
|
+
/**
|
|
213
|
+
* The instance its references follow now (they attach to it; they take last values only from an instance they
|
|
214
|
+
* attached to); `undefined` once it stopped changing.
|
|
215
|
+
*/
|
|
216
|
+
get attachable(): Attempt | undefined;
|
|
217
|
+
/**
|
|
218
|
+
* The live instance, which references pin their keys on (a new one: they pin again), or a restart's open old
|
|
219
|
+
* attempt; `undefined` otherwise.
|
|
220
|
+
*/
|
|
221
|
+
get instance(): Attempt | undefined;
|
|
222
|
+
/** The live instance's state member `member` as a consumer of `version` follows it (a hold over a link). */
|
|
223
|
+
liveMember(member: string, version: number): DeriveSource;
|
|
224
|
+
/** How a consumer of `version` reads keyed member `member`'s documents: mapped back when older (`undefined`: as they are). */
|
|
225
|
+
keyedMapping(member: string, version: number): ((current: JsonValue) => JsonValue) | undefined;
|
|
226
|
+
/**
|
|
227
|
+
* What its activation waits for now (reload cycles, rule 6): the objects its parked attempt's dependencies are bound
|
|
228
|
+
* to, and those whose gate its opener waits at.
|
|
229
|
+
*/
|
|
230
|
+
waitEdges(): ChordObject[];
|
|
231
|
+
/** The keyed member `member` of the live object: its ultimate slot (slice 6a §12). */
|
|
232
|
+
keyedMember(member: string): KeyedSlot;
|
|
233
|
+
/** Pins `key` of keyed member `member` on the live instance, as a consumer of `version` reads it (`Attempt.pinKey`). */
|
|
234
|
+
pinKey(member: string, key: string, version: number, context: Context): Promise<PinnedKey>;
|
|
235
|
+
/**
|
|
236
|
+
* Counts `holder` as a reference to this object (the holder reads `state` itself), listed in its type's presence; a
|
|
237
|
+
* lingering object stays.
|
|
238
|
+
*/
|
|
239
|
+
hold(holder: Holder): void;
|
|
240
|
+
/** `holder` was released: the object may end (`#idle`). */
|
|
241
|
+
unhold(holder: Holder): void;
|
|
242
|
+
/**
|
|
243
|
+
* The records of job `definition`'s runs, made by its first declaration. A later declaration (a new attempt's, after a
|
|
244
|
+
* reload) at another version takes the records over (each run keeps its version, slice 7b §8); one at the same
|
|
245
|
+
* version with another fingerprint is refused (`checkJob`).
|
|
246
|
+
*/
|
|
247
|
+
jobRecords(definition: JobDefinition<unknown, unknown, unknown>): JobRecords;
|
|
248
|
+
/** Refuses a declaration of a job its records cannot take (`JobRecords.check`); a reload's staging checks it too. */
|
|
249
|
+
checkJob(definition: JobDefinition<unknown, unknown, unknown>): void;
|
|
250
|
+
/**
|
|
251
|
+
* Claims table `table` (its SQL name) in the host's store for this object, until its end (slice 6b claims); held by
|
|
252
|
+
* another owner: `invalid/args`, which fails the declaring factory.
|
|
253
|
+
*/
|
|
254
|
+
claimTable(table: string): void;
|
|
255
|
+
/** Its live queries by table (`self.query`), across its attempts: what its commits writing a table re-run. */
|
|
256
|
+
get liveQueries(): LiveQueries;
|
|
257
|
+
/** Claims this object's documents in `namespace` of the host's store, as `claimTable`. */
|
|
258
|
+
claimDocuments(namespace: string): void;
|
|
259
|
+
/**
|
|
260
|
+
* A runtime failure of the live attempt `attempt`: `broken` (a `migrate` failing on access, a stored version newer
|
|
261
|
+
* than the code, a refused commit) or `transient` (a followed runtime failed, R4): the attempt is sealed and the
|
|
262
|
+
* object `failed` with `cause`; calls reject with it, holders are told, its references keep their last values once the
|
|
263
|
+
* admitted commits adopted (`followed`), the natives close in the background (then its references are released),
|
|
264
|
+
* `onError` gets `object_failed` once. Documents and job runs stay. Recovery: a broken failure by `ref.retry()`, a
|
|
265
|
+
* transient one after its identity's backoff too (a new attempt, whose members its references follow once live). A
|
|
266
|
+
* failure of a sealed attempt is ignored, so several at once fail it once.
|
|
267
|
+
*/
|
|
268
|
+
failLive(attempt: Attempt, cause: FailureCause): void;
|
|
269
|
+
/**
|
|
270
|
+
* Adds `delta` to its running and finishing job runs (and `host.activity.jobs`). A new run keeps a lingering object;
|
|
271
|
+
* the last one settling on an object without references ends it as its last release would (`#idle`).
|
|
272
|
+
*/
|
|
273
|
+
countRuns(delta: number): void;
|
|
274
|
+
/**
|
|
275
|
+
* Throws `invalid/cycle` when waiting for `dependency` closes a chain of waits back to this object (Q5). Every other
|
|
276
|
+
* object on the chain fails broken with the same error, so no part of a cycle waits for a retry. Counts the objects
|
|
277
|
+
* it visits (`chord.cycle.visits`). Otherwise, a dependency whose activation is in this object's chain closes a
|
|
278
|
+
* cycle through other hosts (they fail through their dependency on this one).
|
|
279
|
+
*/
|
|
280
|
+
assertNoCycle(dependency: Target, context: Context): void;
|
|
281
|
+
/** Its parked attempt waits for `dependencies` (none once it leaves parking): the waits a cycle check follows. */
|
|
282
|
+
waitsFor(dependencies: readonly Dependency[]): void;
|
|
283
|
+
/**
|
|
284
|
+
* A dependency of its current attempt changed (its state, or its first outcome): a parked attempt checks again; an
|
|
285
|
+
* attempt past its dependency check ignores it (R18 after live), and so does any other state.
|
|
286
|
+
*/
|
|
287
|
+
dependencyMoved(): void;
|
|
288
|
+
/**
|
|
289
|
+
* Its attempt `attempt` is parked showing `shown` (`loading` or `failed { waiting }`): holders are told when that
|
|
290
|
+
* changed (a cause compared by value). `firstPass`: no blocker here is still without its first outcome, so this
|
|
291
|
+
* object has its first outcome now.
|
|
292
|
+
*/
|
|
293
|
+
parked(attempt: Attempt, shown: RefState, firstPass: boolean): void;
|
|
294
|
+
/** Its attempt `attempt` left parking for its own steps: it shows `loading` until its outcome. */
|
|
295
|
+
unparked(attempt: Attempt): void;
|
|
296
|
+
/**
|
|
297
|
+
* Ends the object (once): sealed now, its holders and running calls told `error` (`released` by default), torn down
|
|
298
|
+
* in the background with reason `end`, close failures reported.
|
|
299
|
+
*/
|
|
300
|
+
end(error?: ChordError): void;
|
|
301
|
+
/**
|
|
302
|
+
* Ends the object for `host.close`: sealed now; returns its teardown (reason `close`), which the host runs once every
|
|
303
|
+
* object is sealed, so no reference it releases starts an ending in the background.
|
|
304
|
+
*/
|
|
305
|
+
stop(): () => Promise<CloseFailed[]>;
|
|
306
|
+
/**
|
|
307
|
+
* Ends the object because a reload removed its type (slice 7b §4): as `end` (natives close with reason `end`,
|
|
308
|
+
* running calls' callers rejected `released`, handlers drained), but its holders' requests are not ended: they wait
|
|
309
|
+
* unbound with `cause` (`not_served`), references with their last values, until the next object of its identity
|
|
310
|
+
* binds them (`Removal`).
|
|
311
|
+
*/
|
|
312
|
+
remove(cause: FailureCause): void;
|
|
313
|
+
/** What a reload does to this object, whose type is still served: a live object restarts, any other is retried. */
|
|
314
|
+
reloadFate(): ReloadFate;
|
|
315
|
+
/**
|
|
316
|
+
* Takes `fate` with its new served type (after the reload's commit) and, for a restart, its new factory's requests as
|
|
317
|
+
* staging recorded them; returns the new attempt, whose first dependency check the reload's report waits for (a
|
|
318
|
+
* retry's).
|
|
319
|
+
*/
|
|
320
|
+
reload(served: Served, fate: ReloadFate, requests: readonly Request[]): Attempt;
|
|
321
|
+
/** Starts a restart's readiness and its successor, once every fate of the reload started (its served types are new). */
|
|
322
|
+
startSuccessor(): void;
|
|
323
|
+
/** What a restart's readiness finds now: a failed request the successor waits for, if any (the report's). */
|
|
324
|
+
get readinessCause(): FailureCause | undefined;
|
|
325
|
+
/** The `released` error of this object. */
|
|
326
|
+
ended(): ChordError;
|
|
327
|
+
/** The chain of waits from this activation to `target` (see `Target`), through its parked attempt's dependencies. */
|
|
328
|
+
pathTo(target: ChordObject, visited: Set<Target>): ChordObject[] | undefined;
|
|
329
|
+
}
|
|
330
|
+
export {};
|
|
331
|
+
//# sourceMappingURL=object.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"object.d.ts","sourceRoot":"","sources":["../../src/host/object.ts"],"names":[],"mappings":"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"}
|