@earendil-works/chord 1.5.0 → 1.5.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +51 -0
- package/README.md +50 -90
- package/dist/contracts/accepts.d.ts +81 -0
- package/dist/contracts/accepts.d.ts.map +1 -0
- package/dist/contracts/accepts.js.map +1 -0
- package/dist/contracts/contract.d.ts +121 -0
- package/dist/contracts/contract.d.ts.map +1 -0
- package/dist/contracts/contract.js.map +1 -0
- package/dist/contracts/declare.d.ts.map +1 -0
- package/dist/contracts/declare.js.map +1 -0
- package/dist/contracts/evolve.d.ts.map +1 -0
- package/dist/contracts/evolve.js.map +1 -0
- package/dist/contracts/fingerprint.d.ts +16 -0
- package/dist/contracts/fingerprint.d.ts.map +1 -0
- package/dist/contracts/fingerprint.js.map +1 -0
- package/dist/contracts/history.d.ts.map +1 -0
- package/dist/contracts/history.js.map +1 -0
- package/dist/contracts/host-kind.d.ts.map +1 -0
- package/dist/contracts/host-kind.js.map +1 -0
- package/dist/contracts/index.d.ts.map +1 -0
- package/dist/contracts/index.js.map +1 -0
- package/dist/contracts/internal.d.ts.map +1 -0
- package/dist/contracts/internal.js.map +1 -0
- package/dist/contracts/names.d.ts.map +1 -0
- package/dist/contracts/names.js.map +1 -0
- package/dist/contracts/params.d.ts +28 -0
- package/dist/contracts/params.d.ts.map +1 -0
- package/dist/contracts/params.js.map +1 -0
- package/dist/contracts/schema.d.ts.map +1 -0
- package/dist/contracts/schema.js.map +1 -0
- package/dist/contracts/snapshot.d.ts +16 -0
- package/dist/contracts/snapshot.d.ts.map +1 -0
- package/dist/contracts/snapshot.js +167 -0
- package/dist/contracts/snapshot.js.map +1 -0
- package/dist/data/args.d.ts +50 -0
- package/dist/data/args.d.ts.map +1 -0
- package/dist/data/args.js.map +1 -0
- package/dist/data/errors.d.ts +80 -0
- package/dist/data/errors.d.ts.map +1 -0
- package/dist/data/errors.js +116 -0
- package/dist/data/errors.js.map +1 -0
- package/dist/data/failure.d.ts.map +1 -0
- package/dist/data/failure.js +77 -0
- package/dist/data/failure.js.map +1 -0
- package/dist/data/index.d.ts +4 -0
- package/dist/data/index.d.ts.map +1 -0
- package/dist/data/index.js +5 -0
- package/dist/data/index.js.map +1 -0
- package/dist/data/internal.d.ts +7 -0
- package/dist/data/internal.d.ts.map +1 -0
- package/dist/data/internal.js +8 -0
- package/dist/data/internal.js.map +1 -0
- package/dist/data/params.d.ts +20 -0
- package/dist/data/params.d.ts.map +1 -0
- package/dist/data/params.js.map +1 -0
- package/dist/data/principal.d.ts +22 -0
- package/dist/data/principal.d.ts.map +1 -0
- package/dist/data/principal.js +49 -0
- package/dist/data/principal.js.map +1 -0
- package/dist/data/validator.d.ts +12 -0
- package/dist/data/validator.d.ts.map +1 -0
- package/dist/data/validator.js +35 -0
- package/dist/data/validator.js.map +1 -0
- package/dist/documents/address-source.d.ts +20 -0
- package/dist/documents/address-source.d.ts.map +1 -0
- package/dist/documents/address-source.js.map +1 -0
- package/dist/documents/definition.d.ts +84 -0
- package/dist/documents/definition.d.ts.map +1 -0
- package/dist/documents/definition.js +74 -0
- package/dist/documents/definition.js.map +1 -0
- package/dist/documents/documents.d.ts +126 -0
- package/dist/documents/documents.d.ts.map +1 -0
- package/dist/documents/documents.js +248 -0
- package/dist/documents/documents.js.map +1 -0
- package/dist/documents/fence.d.ts.map +1 -0
- package/dist/documents/fence.js.map +1 -0
- package/dist/documents/handles.d.ts +76 -0
- package/dist/documents/handles.d.ts.map +1 -0
- package/dist/documents/handles.js.map +1 -0
- package/dist/documents/index.d.ts.map +1 -0
- package/dist/documents/index.js.map +1 -0
- package/dist/documents/internal.d.ts +9 -0
- package/dist/documents/internal.d.ts.map +1 -0
- package/dist/documents/internal.js.map +1 -0
- package/dist/documents/keyed-slot.d.ts +103 -0
- package/dist/documents/keyed-slot.d.ts.map +1 -0
- package/dist/documents/keyed-slot.js +395 -0
- package/dist/documents/keyed-slot.js.map +1 -0
- package/dist/documents/line.d.ts.map +1 -0
- package/dist/documents/line.js.map +1 -0
- package/dist/documents/persistence.d.ts +104 -0
- package/dist/documents/persistence.d.ts.map +1 -0
- package/dist/documents/persistence.js +129 -0
- package/dist/documents/persistence.js.map +1 -0
- package/dist/documents/residency.d.ts +31 -0
- package/dist/documents/residency.d.ts.map +1 -0
- package/dist/documents/residency.js.map +1 -0
- package/dist/documents/slot.d.ts +109 -0
- package/dist/documents/slot.d.ts.map +1 -0
- package/dist/documents/slot.js +181 -0
- package/dist/documents/slot.js.map +1 -0
- package/dist/documents/transaction.d.ts +143 -0
- package/dist/documents/transaction.d.ts.map +1 -0
- package/dist/documents/transaction.js +442 -0
- package/dist/documents/transaction.js.map +1 -0
- package/dist/host/activity.d.ts +31 -0
- package/dist/host/activity.d.ts.map +1 -0
- package/dist/host/activity.js +40 -0
- package/dist/host/activity.js.map +1 -0
- package/dist/host/adapted.d.ts +49 -0
- package/dist/host/adapted.d.ts.map +1 -0
- package/dist/host/adapted.js.map +1 -0
- package/dist/host/attempt.d.ts +308 -0
- package/dist/host/attempt.d.ts.map +1 -0
- package/dist/host/attempt.js +1199 -0
- package/dist/host/attempt.js.map +1 -0
- package/dist/host/backoff.d.ts.map +1 -0
- package/dist/host/backoff.js.map +1 -0
- package/dist/host/ctx.d.ts +94 -0
- package/dist/host/ctx.d.ts.map +1 -0
- package/dist/host/ctx.js +200 -0
- package/dist/host/ctx.js.map +1 -0
- package/dist/host/deadline.d.ts.map +1 -0
- package/dist/host/deadline.js.map +1 -0
- package/dist/host/dependencies.d.ts.map +1 -0
- package/dist/host/dependencies.js.map +1 -0
- package/dist/host/destination.d.ts +48 -0
- package/dist/host/destination.d.ts.map +1 -0
- package/dist/host/destination.js.map +1 -0
- package/dist/host/facet.d.ts +84 -0
- package/dist/host/facet.d.ts.map +1 -0
- package/dist/host/facet.js.map +1 -0
- package/dist/host/follow.d.ts +52 -0
- package/dist/host/follow.d.ts.map +1 -0
- package/dist/host/follow.js.map +1 -0
- package/dist/host/host.d.ts +571 -0
- package/dist/host/host.d.ts.map +1 -0
- package/dist/host/host.js +1318 -0
- package/dist/host/host.js.map +1 -0
- package/dist/host/index.d.ts +17 -0
- package/dist/host/index.d.ts.map +1 -0
- package/dist/host/index.js.map +1 -0
- package/dist/host/internal.d.ts +11 -0
- package/dist/host/internal.d.ts.map +1 -0
- package/dist/host/internal.js +9 -0
- package/dist/host/internal.js.map +1 -0
- package/dist/host/members.d.ts +50 -0
- package/dist/host/members.d.ts.map +1 -0
- package/dist/host/members.js.map +1 -0
- package/dist/host/native.d.ts +64 -0
- package/dist/host/native.d.ts.map +1 -0
- package/dist/host/native.js +126 -0
- package/dist/host/native.js.map +1 -0
- package/dist/host/object.d.ts +331 -0
- package/dist/host/object.d.ts.map +1 -0
- package/dist/host/object.js +1296 -0
- package/dist/host/object.js.map +1 -0
- package/dist/host/old-work.d.ts +34 -0
- package/dist/host/old-work.d.ts.map +1 -0
- package/dist/host/old-work.js +52 -0
- package/dist/host/old-work.js.map +1 -0
- package/dist/host/parked.d.ts +23 -0
- package/dist/host/parked.d.ts.map +1 -0
- package/dist/host/parked.js.map +1 -0
- package/dist/host/presence.d.ts +34 -0
- package/dist/host/presence.d.ts.map +1 -0
- package/dist/host/presence.js.map +1 -0
- package/dist/host/readiness.d.ts +27 -0
- package/dist/host/readiness.d.ts.map +1 -0
- package/dist/host/readiness.js +134 -0
- package/dist/host/readiness.js.map +1 -0
- package/dist/host/ref-state.d.ts +53 -0
- package/dist/host/ref-state.d.ts.map +1 -0
- package/dist/host/ref-state.js +83 -0
- package/dist/host/ref-state.js.map +1 -0
- package/dist/host/reference-keys.d.ts +36 -0
- package/dist/host/reference-keys.d.ts.map +1 -0
- package/dist/host/reference-keys.js +168 -0
- package/dist/host/reference-keys.js.map +1 -0
- package/dist/host/reference-source.d.ts +65 -0
- package/dist/host/reference-source.d.ts.map +1 -0
- package/dist/host/reference-source.js +285 -0
- package/dist/host/reference-source.js.map +1 -0
- package/dist/host/reference.d.ts +321 -0
- package/dist/host/reference.d.ts.map +1 -0
- package/dist/host/reference.js +797 -0
- package/dist/host/reference.js.map +1 -0
- package/dist/host/reload-cycle.d.ts +16 -0
- package/dist/host/reload-cycle.d.ts.map +1 -0
- package/dist/host/reload-cycle.js +81 -0
- package/dist/host/reload-cycle.js.map +1 -0
- package/dist/host/retry-on.d.ts.map +1 -0
- package/dist/host/retry-on.js.map +1 -0
- package/dist/host/revocation.d.ts +16 -0
- package/dist/host/revocation.d.ts.map +1 -0
- package/dist/host/revocation.js.map +1 -0
- package/dist/host/root.d.ts +37 -0
- package/dist/host/root.d.ts.map +1 -0
- package/dist/host/root.js +68 -0
- package/dist/host/root.js.map +1 -0
- package/dist/host/route.d.ts +64 -0
- package/dist/host/route.d.ts.map +1 -0
- package/dist/host/route.js +227 -0
- package/dist/host/route.js.map +1 -0
- package/dist/host/routines.d.ts +78 -0
- package/dist/host/routines.d.ts.map +1 -0
- package/dist/host/routines.js +398 -0
- package/dist/host/routines.js.map +1 -0
- package/dist/host/sleep.d.ts +9 -0
- package/dist/host/sleep.d.ts.map +1 -0
- package/dist/host/sleep.js.map +1 -0
- package/dist/host/staging.d.ts +94 -0
- package/dist/host/staging.d.ts.map +1 -0
- package/dist/host/staging.js +304 -0
- package/dist/host/staging.js.map +1 -0
- package/dist/host/unbound-clock.d.ts +23 -0
- package/dist/host/unbound-clock.d.ts.map +1 -0
- package/dist/host/unbound-clock.js +58 -0
- package/dist/host/unbound-clock.js.map +1 -0
- package/dist/host/unbound.d.ts +37 -0
- package/dist/host/unbound.d.ts.map +1 -0
- package/dist/host/unbound.js +88 -0
- package/dist/host/unbound.js.map +1 -0
- package/dist/host/uuid.d.ts.map +1 -0
- package/dist/host/uuid.js.map +1 -0
- package/dist/index.d.ts +29 -19
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +20 -10
- package/dist/index.js.map +1 -1
- package/dist/jobs/definition.d.ts.map +1 -0
- package/dist/jobs/definition.js.map +1 -0
- package/dist/jobs/index.d.ts.map +1 -0
- package/dist/jobs/index.js.map +1 -0
- package/dist/jobs/internal.d.ts.map +1 -0
- package/dist/jobs/internal.js.map +1 -0
- package/dist/jobs/job.d.ts +149 -0
- package/dist/jobs/job.d.ts.map +1 -0
- package/dist/jobs/job.js +387 -0
- package/dist/jobs/job.js.map +1 -0
- package/dist/jobs/persisted.d.ts +38 -0
- package/dist/jobs/persisted.d.ts.map +1 -0
- package/dist/jobs/persisted.js.map +1 -0
- package/dist/jobs/records.d.ts +231 -0
- package/dist/jobs/records.d.ts.map +1 -0
- package/dist/jobs/records.js +871 -0
- package/dist/jobs/records.js.map +1 -0
- package/dist/jobs/run-states.d.ts +69 -0
- package/dist/jobs/run-states.d.ts.map +1 -0
- package/dist/jobs/run-states.js +228 -0
- package/dist/jobs/run-states.js.map +1 -0
- package/dist/jobs/run.d.ts +117 -0
- package/dist/jobs/run.d.ts.map +1 -0
- package/dist/jobs/run.js +204 -0
- package/dist/jobs/run.js.map +1 -0
- package/dist/jobs/running.d.ts +44 -0
- package/dist/jobs/running.d.ts.map +1 -0
- package/dist/jobs/running.js.map +1 -0
- package/dist/jobs/stored.d.ts +63 -0
- package/dist/jobs/stored.d.ts.map +1 -0
- package/dist/jobs/stored.js.map +1 -0
- package/dist/link/binary.d.ts.map +1 -0
- package/dist/link/binary.js +544 -0
- package/dist/link/binary.js.map +1 -0
- package/dist/link/channel.d.ts +68 -0
- package/dist/link/channel.d.ts.map +1 -0
- package/dist/link/channel.js +215 -0
- package/dist/link/channel.js.map +1 -0
- package/dist/link/errors.d.ts.map +1 -0
- package/dist/link/errors.js.map +1 -0
- package/dist/link/index.d.ts.map +1 -0
- package/dist/link/index.js.map +1 -0
- package/dist/link/internal.d.ts.map +1 -0
- package/dist/link/internal.js.map +1 -0
- package/dist/link/ipc.d.ts.map +1 -0
- package/dist/link/ipc.js.map +1 -0
- package/dist/link/link.d.ts.map +1 -0
- package/dist/link/link.js.map +1 -0
- package/dist/link/message.d.ts +262 -0
- package/dist/link/message.d.ts.map +1 -0
- package/dist/link/message.js +156 -0
- package/dist/link/message.js.map +1 -0
- package/dist/link/part.d.ts +80 -0
- package/dist/link/part.d.ts.map +1 -0
- package/dist/link/part.js +165 -0
- package/dist/link/part.js.map +1 -0
- package/dist/link/text.d.ts.map +1 -0
- package/dist/link/text.js +355 -0
- package/dist/link/text.js.map +1 -0
- package/dist/link/values.d.ts.map +1 -0
- package/dist/link/values.js +121 -0
- package/dist/link/values.js.map +1 -0
- package/dist/link/websocket.d.ts.map +1 -0
- package/dist/link/websocket.js.map +1 -0
- package/dist/node/app/app.d.ts +269 -0
- package/dist/node/app/app.d.ts.map +1 -0
- package/dist/node/app/app.js +513 -0
- package/dist/node/app/app.js.map +1 -0
- package/dist/node/app/archive.d.ts +37 -0
- package/dist/node/app/archive.d.ts.map +1 -0
- package/dist/node/app/archive.js +204 -0
- package/dist/node/app/archive.js.map +1 -0
- package/dist/node/app/blobs.d.ts +23 -0
- package/dist/node/app/blobs.d.ts.map +1 -0
- package/dist/node/app/blobs.js +64 -0
- package/dist/node/app/blobs.js.map +1 -0
- package/dist/node/app/data.d.ts +35 -0
- package/dist/node/app/data.d.ts.map +1 -0
- package/dist/node/app/data.js +44 -0
- package/dist/node/app/data.js.map +1 -0
- package/dist/node/app/ephemeral-sessions.d.ts +20 -0
- package/dist/node/app/ephemeral-sessions.d.ts.map +1 -0
- package/dist/node/app/ephemeral-sessions.js +69 -0
- package/dist/node/app/ephemeral-sessions.js.map +1 -0
- package/dist/node/app/ephemeral.d.ts +11 -0
- package/dist/node/app/ephemeral.d.ts.map +1 -0
- package/dist/node/app/ephemeral.js +34 -0
- package/dist/node/app/ephemeral.js.map +1 -0
- package/dist/node/app/files-copy.d.ts +13 -0
- package/dist/node/app/files-copy.d.ts.map +1 -0
- package/dist/node/app/files-copy.js +86 -0
- package/dist/node/app/files-copy.js.map +1 -0
- package/dist/node/app/files-entry.d.ts +4 -0
- package/dist/node/app/files-entry.d.ts.map +1 -0
- package/dist/node/app/files-entry.js +7 -0
- package/dist/node/app/files-entry.js.map +1 -0
- package/dist/node/app/files-index.d.ts +180 -0
- package/dist/node/app/files-index.d.ts.map +1 -0
- package/dist/node/app/files-index.js +535 -0
- package/dist/node/app/files-index.js.map +1 -0
- package/dist/node/app/files.d.ts +363 -0
- package/dist/node/app/files.d.ts.map +1 -0
- package/dist/node/app/files.js +368 -0
- package/dist/node/app/files.js.map +1 -0
- package/dist/node/app/folder-views.d.ts +21 -0
- package/dist/node/app/folder-views.d.ts.map +1 -0
- package/dist/node/app/folder-views.js +55 -0
- package/dist/node/app/folder-views.js.map +1 -0
- package/dist/node/app/index.d.ts +12 -0
- package/dist/node/app/index.d.ts.map +1 -0
- package/dist/node/app/index.js +15 -0
- package/dist/node/app/index.js.map +1 -0
- package/dist/node/app/info.d.ts +66 -0
- package/dist/node/app/info.d.ts.map +1 -0
- package/dist/node/app/info.js +37 -0
- package/dist/node/app/info.js.map +1 -0
- package/dist/node/app/invite.d.ts +5 -0
- package/dist/node/app/invite.d.ts.map +1 -0
- package/dist/node/app/invite.js +64 -0
- package/dist/node/app/invite.js.map +1 -0
- package/dist/node/app/layout.d.ts +36 -0
- package/dist/node/app/layout.d.ts.map +1 -0
- package/dist/node/app/layout.js +87 -0
- package/dist/node/app/layout.js.map +1 -0
- package/dist/node/app/owner.d.ts +31 -0
- package/dist/node/app/owner.d.ts.map +1 -0
- package/dist/node/app/owner.js +104 -0
- package/dist/node/app/owner.js.map +1 -0
- package/dist/node/app/pairing.d.ts +55 -0
- package/dist/node/app/pairing.d.ts.map +1 -0
- package/dist/node/app/pairing.js +183 -0
- package/dist/node/app/pairing.js.map +1 -0
- package/dist/node/app/secrets.d.ts +16 -0
- package/dist/node/app/secrets.d.ts.map +1 -0
- package/dist/node/app/secrets.js +72 -0
- package/dist/node/app/secrets.js.map +1 -0
- package/dist/node/app/sessions.d.ts +72 -0
- package/dist/node/app/sessions.d.ts.map +1 -0
- package/dist/node/app/sessions.js +222 -0
- package/dist/node/app/sessions.js.map +1 -0
- package/dist/node/app/tar.d.ts +24 -0
- package/dist/node/app/tar.d.ts.map +1 -0
- package/dist/node/app/tar.js +167 -0
- package/dist/node/app/tar.js.map +1 -0
- package/dist/node/app/uploads.d.ts +37 -0
- package/dist/node/app/uploads.d.ts.map +1 -0
- package/dist/node/app/uploads.js +157 -0
- package/dist/node/app/uploads.js.map +1 -0
- package/dist/node/app/users.d.ts +37 -0
- package/dist/node/app/users.d.ts.map +1 -0
- package/dist/node/app/users.js +62 -0
- package/dist/node/app/users.js.map +1 -0
- package/dist/node/app/worker.d.ts +18 -0
- package/dist/node/app/worker.d.ts.map +1 -0
- package/dist/node/app/worker.js +84 -0
- package/dist/node/app/worker.js.map +1 -0
- package/dist/node/compression.d.ts +7 -0
- package/dist/node/compression.d.ts.map +1 -0
- package/dist/node/compression.js +25 -0
- package/dist/node/compression.js.map +1 -0
- package/dist/node/http/admission.d.ts.map +1 -0
- package/dist/node/http/admission.js.map +1 -0
- package/dist/node/http/authenticate.d.ts +21 -0
- package/dist/node/http/authenticate.d.ts.map +1 -0
- package/dist/node/http/authenticate.js +34 -0
- package/dist/node/http/authenticate.js.map +1 -0
- package/dist/node/http/cookies.d.ts +32 -0
- package/dist/node/http/cookies.d.ts.map +1 -0
- package/dist/node/http/cookies.js +70 -0
- package/dist/node/http/cookies.js.map +1 -0
- package/dist/node/http/file.d.ts.map +1 -0
- package/dist/node/http/file.js.map +1 -0
- package/dist/node/http/headers.d.ts.map +1 -0
- package/dist/node/http/headers.js +136 -0
- package/dist/node/http/headers.js.map +1 -0
- package/dist/node/http/http.d.ts +111 -0
- package/dist/node/http/http.d.ts.map +1 -0
- package/dist/node/http/http.js +524 -0
- package/dist/node/http/http.js.map +1 -0
- package/dist/node/http/incoming.d.ts.map +1 -0
- package/dist/node/http/incoming.js.map +1 -0
- package/dist/node/http/index.d.ts +11 -0
- package/dist/node/http/index.d.ts.map +1 -0
- package/dist/node/http/index.js +12 -0
- package/dist/node/http/index.js.map +1 -0
- package/dist/node/http/node.d.ts.map +1 -0
- package/dist/node/http/node.js.map +1 -0
- package/dist/node/http/request.d.ts +60 -0
- package/dist/node/http/request.d.ts.map +1 -0
- package/dist/node/http/request.js +118 -0
- package/dist/node/http/request.js.map +1 -0
- package/dist/node/http/response.d.ts +63 -0
- package/dist/node/http/response.d.ts.map +1 -0
- package/dist/node/http/response.js.map +1 -0
- package/dist/node/http/router.d.ts +132 -0
- package/dist/node/http/router.d.ts.map +1 -0
- package/dist/node/http/router.js +267 -0
- package/dist/node/http/router.js.map +1 -0
- package/dist/node/http/upgrades.d.ts +61 -0
- package/dist/node/http/upgrades.d.ts.map +1 -0
- package/dist/node/http/upgrades.js +192 -0
- package/dist/node/http/upgrades.js.map +1 -0
- package/dist/node/plugins/base-inputs.d.ts +14 -0
- package/dist/node/plugins/base-inputs.d.ts.map +1 -0
- package/dist/node/plugins/base-inputs.js +33 -0
- package/dist/node/plugins/base-inputs.js.map +1 -0
- package/dist/node/plugins/build.d.ts +77 -0
- package/dist/node/plugins/build.d.ts.map +1 -0
- package/dist/node/plugins/build.js +576 -0
- package/dist/node/plugins/build.js.map +1 -0
- package/dist/node/plugins/css-modules.d.ts +13 -0
- package/dist/node/plugins/css-modules.d.ts.map +1 -0
- package/dist/node/plugins/css-modules.js +58 -0
- package/dist/node/plugins/css-modules.js.map +1 -0
- package/dist/node/plugins/discover.d.ts +67 -0
- package/dist/node/plugins/discover.d.ts.map +1 -0
- package/dist/node/plugins/discover.js +369 -0
- package/dist/node/plugins/discover.js.map +1 -0
- package/dist/node/plugins/evaluate.d.ts +33 -0
- package/dist/node/plugins/evaluate.d.ts.map +1 -0
- package/dist/node/plugins/evaluate.js +121 -0
- package/dist/node/plugins/evaluate.js.map +1 -0
- package/dist/node/plugins/index.d.ts +11 -0
- package/dist/node/plugins/index.d.ts.map +1 -0
- package/dist/node/plugins/index.js +13 -0
- package/dist/node/plugins/index.js.map +1 -0
- package/dist/node/plugins/install.d.ts +38 -0
- package/dist/node/plugins/install.d.ts.map +1 -0
- package/dist/node/plugins/install.js +213 -0
- package/dist/node/plugins/install.js.map +1 -0
- package/dist/node/plugins/plugins.d.ts +162 -0
- package/dist/node/plugins/plugins.d.ts.map +1 -0
- package/dist/node/plugins/plugins.js +244 -0
- package/dist/node/plugins/plugins.js.map +1 -0
- package/dist/node/plugins/runtime.d.ts +57 -0
- package/dist/node/plugins/runtime.d.ts.map +1 -0
- package/dist/node/plugins/runtime.js +92 -0
- package/dist/node/plugins/runtime.js.map +1 -0
- package/dist/node/plugins/stack.d.ts.map +1 -0
- package/dist/node/plugins/stack.js.map +1 -0
- package/dist/node/plugins/testing.d.ts +58 -0
- package/dist/node/plugins/testing.d.ts.map +1 -0
- package/dist/node/plugins/testing.js +210 -0
- package/dist/node/plugins/testing.js.map +1 -0
- package/dist/node/plugins/watcher.d.ts +69 -0
- package/dist/node/plugins/watcher.d.ts.map +1 -0
- package/dist/node/plugins/watcher.js +622 -0
- package/dist/node/plugins/watcher.js.map +1 -0
- package/dist/node/surfaces/bundle.d.ts +31 -0
- package/dist/node/surfaces/bundle.d.ts.map +1 -0
- package/dist/node/surfaces/bundle.js +118 -0
- package/dist/node/surfaces/bundle.js.map +1 -0
- package/dist/node/surfaces/current.d.ts +17 -0
- package/dist/node/surfaces/current.d.ts.map +1 -0
- package/dist/node/surfaces/current.js +54 -0
- package/dist/node/surfaces/current.js.map +1 -0
- package/dist/node/surfaces/index.d.ts +6 -0
- package/dist/node/surfaces/index.d.ts.map +1 -0
- package/dist/node/surfaces/index.js +6 -0
- package/dist/node/surfaces/index.js.map +1 -0
- package/dist/node/surfaces/published.d.ts +27 -0
- package/dist/node/surfaces/published.d.ts.map +1 -0
- package/dist/node/surfaces/published.js +142 -0
- package/dist/node/surfaces/published.js.map +1 -0
- package/dist/node/surfaces/served.d.ts +15 -0
- package/dist/node/surfaces/served.d.ts.map +1 -0
- package/dist/node/surfaces/served.js +42 -0
- package/dist/node/surfaces/served.js.map +1 -0
- package/dist/node/surfaces/surface-build.d.ts +53 -0
- package/dist/node/surfaces/surface-build.d.ts.map +1 -0
- package/dist/node/surfaces/surface-build.js +105 -0
- package/dist/node/surfaces/surface-build.js.map +1 -0
- package/dist/node/surfaces/tui.d.ts +40 -0
- package/dist/node/surfaces/tui.d.ts.map +1 -0
- package/dist/node/surfaces/tui.js +55 -0
- package/dist/node/surfaces/tui.js.map +1 -0
- package/dist/node/surfaces/web.d.ts +56 -0
- package/dist/node/surfaces/web.d.ts.map +1 -0
- package/dist/node/surfaces/web.js +108 -0
- package/dist/node/surfaces/web.js.map +1 -0
- package/dist/node/tui/actions.d.ts +49 -0
- package/dist/node/tui/actions.d.ts.map +1 -0
- package/dist/node/tui/actions.js +195 -0
- package/dist/node/tui/actions.js.map +1 -0
- package/dist/node/tui/credentials.d.ts +17 -0
- package/dist/node/tui/credentials.d.ts.map +1 -0
- package/dist/node/tui/credentials.js +54 -0
- package/dist/node/tui/credentials.js.map +1 -0
- package/dist/node/tui/filter.d.ts +5 -0
- package/dist/node/tui/filter.d.ts.map +1 -0
- package/dist/node/tui/filter.js +79 -0
- package/dist/node/tui/filter.js.map +1 -0
- package/dist/node/tui/index.d.ts +6 -0
- package/dist/node/tui/index.d.ts.map +1 -0
- package/dist/node/tui/index.js +6 -0
- package/dist/node/tui/index.js.map +1 -0
- package/dist/node/tui/launcher.d.ts +40 -0
- package/dist/node/tui/launcher.d.ts.map +1 -0
- package/dist/node/tui/launcher.js +439 -0
- package/dist/node/tui/launcher.js.map +1 -0
- package/dist/node/tui/pipe.d.ts +18 -0
- package/dist/node/tui/pipe.d.ts.map +1 -0
- package/dist/node/tui/pipe.js +134 -0
- package/dist/node/tui/pipe.js.map +1 -0
- package/dist/node/tui/sandbox.d.ts +54 -0
- package/dist/node/tui/sandbox.d.ts.map +1 -0
- package/dist/node/tui/sandbox.js +431 -0
- package/dist/node/tui/sandbox.js.map +1 -0
- package/dist/node/workers/base.d.ts +30 -0
- package/dist/node/workers/base.d.ts.map +1 -0
- package/dist/node/workers/base.js +255 -0
- package/dist/node/workers/base.js.map +1 -0
- package/dist/node/workers/child.d.ts +4 -0
- package/dist/node/workers/child.d.ts.map +1 -0
- package/dist/node/workers/child.js +6 -0
- package/dist/node/workers/child.js.map +1 -0
- package/dist/node/workers/control.d.ts +83 -0
- package/dist/node/workers/control.d.ts.map +1 -0
- package/dist/node/workers/control.js +77 -0
- package/dist/node/workers/control.js.map +1 -0
- package/dist/node/workers/index.d.ts +4 -0
- package/dist/node/workers/index.d.ts.map +1 -0
- package/dist/node/workers/index.js +7 -0
- package/dist/node/workers/index.js.map +1 -0
- package/dist/node/workers/lock.d.ts +30 -0
- package/dist/node/workers/lock.d.ts.map +1 -0
- package/dist/node/workers/lock.js +180 -0
- package/dist/node/workers/lock.js.map +1 -0
- package/dist/node/workers/main.d.ts +46 -0
- package/dist/node/workers/main.d.ts.map +1 -0
- package/dist/node/workers/main.js +230 -0
- package/dist/node/workers/main.js.map +1 -0
- package/dist/node/workers/process.d.ts +42 -0
- package/dist/node/workers/process.d.ts.map +1 -0
- package/dist/node/workers/process.js +125 -0
- package/dist/node/workers/process.js.map +1 -0
- package/dist/node/workers/workers.d.ts +122 -0
- package/dist/node/workers/workers.d.ts.map +1 -0
- package/dist/node/workers/workers.js +677 -0
- package/dist/node/workers/workers.js.map +1 -0
- package/dist/react/hooks.d.ts +43 -0
- package/dist/react/hooks.d.ts.map +1 -0
- package/dist/react/hooks.js +82 -0
- package/dist/react/hooks.js.map +1 -0
- package/dist/react/index.d.ts +3 -0
- package/dist/react/index.d.ts.map +1 -0
- package/dist/react/index.js +4 -0
- package/dist/react/index.js.map +1 -0
- package/dist/react/stores.d.ts +9 -0
- package/dist/react/stores.d.ts.map +1 -0
- package/dist/react/stores.js +37 -0
- package/dist/react/stores.js.map +1 -0
- package/dist/registries/contribution.d.ts.map +1 -0
- package/dist/registries/contribution.js.map +1 -0
- package/dist/registries/entries.d.ts.map +1 -0
- package/dist/registries/entries.js.map +1 -0
- package/dist/registries/index.d.ts.map +1 -0
- package/dist/registries/index.js.map +1 -0
- package/dist/registries/internal.d.ts.map +1 -0
- package/dist/registries/internal.js.map +1 -0
- package/dist/registries/record.d.ts +115 -0
- package/dist/registries/record.d.ts.map +1 -0
- package/dist/registries/record.js +283 -0
- package/dist/registries/record.js.map +1 -0
- package/dist/registries/registry.d.ts +74 -0
- package/dist/registries/registry.d.ts.map +1 -0
- package/dist/registries/registry.js.map +1 -0
- package/dist/registries/value.d.ts.map +1 -0
- package/dist/registries/value.js +224 -0
- package/dist/registries/value.js.map +1 -0
- package/dist/remote/calls.d.ts.map +1 -0
- package/dist/remote/calls.js.map +1 -0
- package/dist/remote/consumer.d.ts +43 -0
- package/dist/remote/consumer.d.ts.map +1 -0
- package/dist/remote/consumer.js +350 -0
- package/dist/remote/consumer.js.map +1 -0
- package/dist/remote/hold.d.ts +141 -0
- package/dist/remote/hold.d.ts.map +1 -0
- package/dist/remote/hold.js +579 -0
- package/dist/remote/hold.js.map +1 -0
- package/dist/remote/host-link.d.ts +77 -0
- package/dist/remote/host-link.d.ts.map +1 -0
- package/dist/remote/host-link.js +184 -0
- package/dist/remote/host-link.js.map +1 -0
- package/dist/remote/internal.d.ts.map +1 -0
- package/dist/remote/internal.js.map +1 -0
- package/dist/remote/path.d.ts.map +1 -0
- package/dist/remote/path.js.map +1 -0
- package/dist/remote/provider.d.ts +89 -0
- package/dist/remote/provider.d.ts.map +1 -0
- package/dist/remote/provider.js +597 -0
- package/dist/remote/provider.js.map +1 -0
- package/dist/remote/relay.d.ts +69 -0
- package/dist/remote/relay.d.ts.map +1 -0
- package/dist/remote/relay.js +219 -0
- package/dist/remote/relay.js.map +1 -0
- package/dist/remote/remote-object.d.ts +138 -0
- package/dist/remote/remote-object.d.ts.map +1 -0
- package/dist/remote/remote-object.js +492 -0
- package/dist/remote/remote-object.js.map +1 -0
- package/dist/remote/replica.d.ts +59 -0
- package/dist/remote/replica.d.ts.map +1 -0
- package/dist/remote/replica.js +125 -0
- package/dist/remote/replica.js.map +1 -0
- package/dist/sqlite/node.d.ts +9 -1
- package/dist/sqlite/node.d.ts.map +1 -1
- package/dist/sqlite/node.js +9 -3
- package/dist/sqlite/node.js.map +1 -1
- package/dist/state/batch.d.ts +64 -0
- package/dist/state/batch.d.ts.map +1 -0
- package/dist/state/batch.js +164 -0
- package/dist/state/batch.js.map +1 -0
- package/dist/state/derive.d.ts +52 -0
- package/dist/state/derive.d.ts.map +1 -0
- package/dist/state/derive.js +182 -0
- package/dist/state/derive.js.map +1 -0
- package/dist/state/index.d.ts +6 -0
- package/dist/state/index.d.ts.map +1 -0
- package/dist/state/index.js.map +1 -0
- package/dist/state/internal.d.ts.map +1 -0
- package/dist/state/internal.js.map +1 -0
- package/dist/state/native-source.d.ts +106 -0
- package/dist/state/native-source.d.ts.map +1 -0
- package/dist/state/native-source.js +240 -0
- package/dist/state/native-source.js.map +1 -0
- package/dist/state/watchable.d.ts +114 -0
- package/dist/state/watchable.d.ts.map +1 -0
- package/dist/state/watchable.js +156 -0
- package/dist/state/watchable.js.map +1 -0
- package/dist/state/writable.d.ts +32 -0
- package/dist/state/writable.d.ts.map +1 -0
- package/dist/state/writable.js.map +1 -0
- package/dist/store/adapter.d.ts +67 -0
- package/dist/store/adapter.d.ts.map +1 -0
- package/dist/store/adapter.js.map +1 -0
- package/dist/store/allocator.d.ts.map +1 -0
- package/dist/store/allocator.js.map +1 -0
- package/dist/store/applier.d.ts.map +1 -0
- package/dist/store/applier.js.map +1 -0
- package/dist/store/apply-batch.d.ts +12 -0
- package/dist/store/apply-batch.d.ts.map +1 -0
- package/dist/store/apply-batch.js.map +1 -0
- package/dist/store/archive.d.ts +32 -0
- package/dist/store/archive.d.ts.map +1 -0
- package/dist/store/archive.js +130 -0
- package/dist/store/archive.js.map +1 -0
- package/dist/store/backend.d.ts +10 -0
- package/dist/store/backend.d.ts.map +1 -0
- package/dist/store/backend.js.map +1 -0
- package/dist/store/catalog.d.ts +24 -0
- package/dist/store/catalog.d.ts.map +1 -0
- package/dist/store/catalog.js.map +1 -0
- package/dist/store/claims.d.ts.map +1 -0
- package/dist/store/claims.js.map +1 -0
- package/dist/store/columns.d.ts.map +1 -0
- package/dist/store/columns.js.map +1 -0
- package/dist/store/engine.d.ts +176 -0
- package/dist/store/engine.d.ts.map +1 -0
- package/dist/store/engine.js +283 -0
- package/dist/store/engine.js.map +1 -0
- package/dist/store/evaluate.d.ts +17 -0
- package/dist/store/evaluate.d.ts.map +1 -0
- package/dist/store/evaluate.js.map +1 -0
- package/dist/store/export.d.ts +17 -0
- package/dist/store/export.d.ts.map +1 -0
- package/dist/store/export.js +200 -0
- package/dist/store/export.js.map +1 -0
- package/dist/store/expression.d.ts +150 -0
- package/dist/store/expression.d.ts.map +1 -0
- package/dist/store/expression.js.map +1 -0
- package/dist/store/import.d.ts +10 -0
- package/dist/store/import.d.ts.map +1 -0
- package/dist/store/import.js +276 -0
- package/dist/store/import.js.map +1 -0
- package/dist/store/index.d.ts.map +1 -0
- package/dist/store/index.js.map +1 -0
- package/dist/store/json-column.d.ts +33 -0
- package/dist/store/json-column.d.ts.map +1 -0
- package/dist/store/json-column.js +62 -0
- package/dist/store/json-column.js.map +1 -0
- package/dist/store/jsonl.d.ts.map +1 -0
- package/dist/store/jsonl.js.map +1 -0
- package/dist/store/live-query.d.ts +108 -0
- package/dist/store/live-query.d.ts.map +1 -0
- package/dist/store/live-query.js +254 -0
- package/dist/store/live-query.js.map +1 -0
- package/dist/store/outbox.d.ts +26 -0
- package/dist/store/outbox.d.ts.map +1 -0
- package/dist/store/outbox.js.map +1 -0
- package/dist/store/query.d.ts +39 -0
- package/dist/store/query.d.ts.map +1 -0
- package/dist/store/query.js.map +1 -0
- package/dist/store/refusal.d.ts.map +1 -0
- package/dist/store/refusal.js.map +1 -0
- package/dist/store/rows.d.ts +80 -0
- package/dist/store/rows.d.ts.map +1 -0
- package/dist/store/rows.js.map +1 -0
- package/dist/store/schema.d.ts +25 -0
- package/dist/store/schema.d.ts.map +1 -0
- package/dist/store/schema.js +115 -0
- package/dist/store/schema.js.map +1 -0
- package/dist/store/sql.d.ts +73 -0
- package/dist/store/sql.d.ts.map +1 -0
- package/dist/store/sql.js.map +1 -0
- package/dist/store/step.d.ts +50 -0
- package/dist/store/step.d.ts.map +1 -0
- package/dist/store/step.js +52 -0
- package/dist/store/step.js.map +1 -0
- package/dist/store/store.d.ts +171 -0
- package/dist/store/store.d.ts.map +1 -0
- package/dist/store/store.js +818 -0
- package/dist/store/store.js.map +1 -0
- package/dist/store/table-changes.d.ts +29 -0
- package/dist/store/table-changes.d.ts.map +1 -0
- package/dist/store/table-changes.js.map +1 -0
- package/dist/store/table-evolve.d.ts.map +1 -0
- package/dist/store/table-evolve.js.map +1 -0
- package/dist/store/table-handle.d.ts +73 -0
- package/dist/store/table-handle.d.ts.map +1 -0
- package/dist/store/table-handle.js +101 -0
- package/dist/store/table-handle.js.map +1 -0
- package/dist/store/table-history.d.ts.map +1 -0
- package/dist/store/table-history.js.map +1 -0
- package/dist/store/table-migration.d.ts +16 -0
- package/dist/store/table-migration.d.ts.map +1 -0
- package/dist/store/table-migration.js +202 -0
- package/dist/store/table-migration.js.map +1 -0
- package/dist/store/table-writes.d.ts.map +1 -0
- package/dist/store/table-writes.js +170 -0
- package/dist/store/table-writes.js.map +1 -0
- package/dist/store/table.d.ts +80 -0
- package/dist/store/table.d.ts.map +1 -0
- package/dist/store/table.js.map +1 -0
- package/dist/store/text.d.ts.map +1 -0
- package/dist/store/text.js.map +1 -0
- package/dist/store/writes.d.ts.map +1 -0
- package/dist/store/writes.js.map +1 -0
- package/dist/surfaces/active-language.d.ts +20 -0
- package/dist/surfaces/active-language.d.ts.map +1 -0
- package/dist/surfaces/active-language.js +78 -0
- package/dist/surfaces/active-language.js.map +1 -0
- package/dist/surfaces/active-theme.d.ts +16 -0
- package/dist/surfaces/active-theme.d.ts.map +1 -0
- package/dist/surfaces/active-theme.js +47 -0
- package/dist/surfaces/active-theme.js.map +1 -0
- package/dist/surfaces/client.d.ts +96 -0
- package/dist/surfaces/client.d.ts.map +1 -0
- package/dist/surfaces/client.js +264 -0
- package/dist/surfaces/client.js.map +1 -0
- package/dist/surfaces/connection.d.ts +49 -0
- package/dist/surfaces/connection.d.ts.map +1 -0
- package/dist/surfaces/connection.js +142 -0
- package/dist/surfaces/connection.js.map +1 -0
- package/dist/surfaces/format.d.ts +5 -0
- package/dist/surfaces/format.d.ts.map +1 -0
- package/dist/surfaces/format.js +37 -0
- package/dist/surfaces/format.js.map +1 -0
- package/dist/surfaces/index.d.ts +15 -0
- package/dist/surfaces/index.d.ts.map +1 -0
- package/dist/surfaces/index.js +18 -0
- package/dist/surfaces/index.js.map +1 -0
- package/dist/surfaces/language.d.ts +53 -0
- package/dist/surfaces/language.d.ts.map +1 -0
- package/dist/surfaces/language.js +74 -0
- package/dist/surfaces/language.js.map +1 -0
- package/dist/surfaces/loaded.d.ts +42 -0
- package/dist/surfaces/loaded.d.ts.map +1 -0
- package/dist/surfaces/loaded.js +116 -0
- package/dist/surfaces/loaded.js.map +1 -0
- package/dist/surfaces/locale-choice.d.ts +25 -0
- package/dist/surfaces/locale-choice.d.ts.map +1 -0
- package/dist/surfaces/locale-choice.js +14 -0
- package/dist/surfaces/locale-choice.js.map +1 -0
- package/dist/surfaces/messages.d.ts +67 -0
- package/dist/surfaces/messages.d.ts.map +1 -0
- package/dist/surfaces/messages.js +112 -0
- package/dist/surfaces/messages.js.map +1 -0
- package/dist/surfaces/page-state.d.ts +14 -0
- package/dist/surfaces/page-state.d.ts.map +1 -0
- package/dist/surfaces/page-state.js +43 -0
- package/dist/surfaces/page-state.js.map +1 -0
- package/dist/surfaces/preference.d.ts +32 -0
- package/dist/surfaces/preference.d.ts.map +1 -0
- package/dist/surfaces/preference.js +72 -0
- package/dist/surfaces/preference.js.map +1 -0
- package/dist/surfaces/registered.d.ts +33 -0
- package/dist/surfaces/registered.d.ts.map +1 -0
- package/dist/surfaces/registered.js +51 -0
- package/dist/surfaces/registered.js.map +1 -0
- package/dist/surfaces/scripts.d.ts +84 -0
- package/dist/surfaces/scripts.d.ts.map +1 -0
- package/dist/surfaces/scripts.js +28 -0
- package/dist/surfaces/scripts.js.map +1 -0
- package/dist/surfaces/theme-choice.d.ts +31 -0
- package/dist/surfaces/theme-choice.d.ts.map +1 -0
- package/dist/surfaces/theme-choice.js +18 -0
- package/dist/surfaces/theme-choice.js.map +1 -0
- package/dist/surfaces/themes.d.ts +43 -0
- package/dist/surfaces/themes.d.ts.map +1 -0
- package/dist/surfaces/themes.js +110 -0
- package/dist/surfaces/themes.js.map +1 -0
- package/dist/surfaces/translations.d.ts +29 -0
- package/dist/surfaces/translations.d.ts.map +1 -0
- package/dist/surfaces/translations.js +57 -0
- package/dist/surfaces/translations.js.map +1 -0
- package/dist/sync/batch.d.ts +18 -0
- package/dist/sync/batch.d.ts.map +1 -0
- package/dist/sync/batch.js +125 -0
- package/dist/sync/batch.js.map +1 -0
- package/dist/sync/client.d.ts +166 -0
- package/dist/sync/client.d.ts.map +1 -0
- package/dist/sync/client.js +438 -0
- package/dist/sync/client.js.map +1 -0
- package/dist/sync/files.d.ts +46 -0
- package/dist/sync/files.d.ts.map +1 -0
- package/dist/sync/files.js +13 -0
- package/dist/sync/files.js.map +1 -0
- package/dist/sync/filesystem.d.ts +37 -0
- package/dist/sync/filesystem.d.ts.map +1 -0
- package/dist/sync/filesystem.js +185 -0
- package/dist/sync/filesystem.js.map +1 -0
- package/dist/sync/index.d.ts +8 -0
- package/dist/sync/index.d.ts.map +1 -0
- package/dist/sync/index.js +9 -0
- package/dist/sync/index.js.map +1 -0
- package/dist/sync/lines.d.ts +18 -0
- package/dist/sync/lines.d.ts.map +1 -0
- package/dist/sync/lines.js +46 -0
- package/dist/sync/lines.js.map +1 -0
- package/dist/sync/remote.d.ts +130 -0
- package/dist/sync/remote.d.ts.map +1 -0
- package/dist/sync/remote.js +46 -0
- package/dist/sync/remote.js.map +1 -0
- package/dist/sync/state.d.ts +17 -0
- package/dist/sync/state.d.ts.map +1 -0
- package/dist/sync/state.js +40 -0
- package/dist/sync/state.js.map +1 -0
- package/dist/telemetry-ingest/batch.d.ts +70 -0
- package/dist/telemetry-ingest/batch.d.ts.map +1 -0
- package/dist/telemetry-ingest/batch.js +110 -0
- package/dist/telemetry-ingest/batch.js.map +1 -0
- package/dist/telemetry-ingest/facet.d.ts +21 -0
- package/dist/telemetry-ingest/facet.d.ts.map +1 -0
- package/dist/telemetry-ingest/facet.js +96 -0
- package/dist/telemetry-ingest/facet.js.map +1 -0
- package/dist/telemetry-ingest/index.d.ts +5 -0
- package/dist/telemetry-ingest/index.d.ts.map +1 -0
- package/dist/telemetry-ingest/index.js +8 -0
- package/dist/telemetry-ingest/index.js.map +1 -0
- package/dist/telemetry-ingest/recorder.d.ts +50 -0
- package/dist/telemetry-ingest/recorder.d.ts.map +1 -0
- package/dist/telemetry-ingest/recorder.js +298 -0
- package/dist/telemetry-ingest/recorder.js.map +1 -0
- package/dist/telemetry-ingest/sender.d.ts +14 -0
- package/dist/telemetry-ingest/sender.d.ts.map +1 -0
- package/dist/telemetry-ingest/sender.js +64 -0
- package/dist/telemetry-ingest/sender.js.map +1 -0
- package/dist/telemetry-sqlite/index.d.ts +13 -4
- package/dist/telemetry-sqlite/index.d.ts.map +1 -1
- package/dist/telemetry-sqlite/index.js +81 -241
- package/dist/telemetry-sqlite/index.js.map +1 -1
- package/dist/telemetry-sqlite/node.d.ts +13 -0
- package/dist/telemetry-sqlite/node.d.ts.map +1 -0
- package/dist/telemetry-sqlite/node.js +27 -0
- package/dist/telemetry-sqlite/node.js.map +1 -0
- package/dist/telemetry-sqlite/schema.d.ts +9 -0
- package/dist/telemetry-sqlite/schema.d.ts.map +1 -0
- package/dist/telemetry-sqlite/schema.js +61 -0
- package/dist/telemetry-sqlite/schema.js.map +1 -0
- package/dist/telemetry-sqlite/store.d.ts +3 -0
- package/dist/telemetry-sqlite/store.d.ts.map +1 -1
- package/dist/telemetry-sqlite/store.js +24 -13
- package/dist/telemetry-sqlite/store.js.map +1 -1
- package/dist/telemetry.d.ts +937 -0
- package/dist/telemetry.d.ts.map +1 -0
- package/dist/telemetry.js +470 -0
- package/dist/telemetry.js.map +1 -0
- package/dist/tui/bridge.d.ts +112 -0
- package/dist/tui/bridge.d.ts.map +1 -0
- package/dist/tui/bridge.js +9 -0
- package/dist/tui/bridge.js.map +1 -0
- package/dist/tui/channel.d.ts +44 -0
- package/dist/tui/channel.d.ts.map +1 -0
- package/dist/tui/channel.js +150 -0
- package/dist/tui/channel.js.map +1 -0
- package/dist/tui/frames.d.ts +5 -0
- package/dist/tui/frames.d.ts.map +1 -0
- package/dist/tui/frames.js +52 -0
- package/dist/tui/frames.js.map +1 -0
- package/dist/tui/index.d.ts +7 -0
- package/dist/tui/index.d.ts.map +1 -0
- package/dist/tui/index.js +8 -0
- package/dist/tui/index.js.map +1 -0
- package/dist/tui/runtime.d.ts +46 -0
- package/dist/tui/runtime.d.ts.map +1 -0
- package/dist/tui/runtime.js +101 -0
- package/dist/tui/runtime.js.map +1 -0
- package/dist/tui/scope.d.ts +46 -0
- package/dist/tui/scope.d.ts.map +1 -0
- package/dist/tui/scope.js +141 -0
- package/dist/tui/scope.js.map +1 -0
- package/dist/tui/terminal.d.ts +15 -0
- package/dist/tui/terminal.d.ts.map +1 -0
- package/dist/tui/terminal.js +37 -0
- package/dist/tui/terminal.js.map +1 -0
- package/dist/tui/theme.d.ts +17 -0
- package/dist/tui/theme.d.ts.map +1 -0
- package/dist/tui/theme.js +38 -0
- package/dist/tui/theme.js.map +1 -0
- package/dist/web/environment.d.ts +4 -0
- package/dist/web/environment.d.ts.map +1 -0
- package/dist/web/environment.js +37 -0
- package/dist/web/environment.js.map +1 -0
- package/dist/web/index.d.ts +5 -0
- package/dist/web/index.d.ts.map +1 -0
- package/dist/web/index.js +7 -0
- package/dist/web/index.js.map +1 -0
- package/dist/web/language.d.ts +7 -0
- package/dist/web/language.d.ts.map +1 -0
- package/dist/web/language.js +21 -0
- package/dist/web/language.js.map +1 -0
- package/dist/web/page.d.ts +29 -0
- package/dist/web/page.d.ts.map +1 -0
- package/dist/web/page.js +92 -0
- package/dist/web/page.js.map +1 -0
- package/dist/web/scripts.d.ts +23 -0
- package/dist/web/scripts.d.ts.map +1 -0
- package/dist/web/scripts.js +50 -0
- package/dist/web/scripts.js.map +1 -0
- package/dist/web/styles.d.ts +17 -0
- package/dist/web/styles.d.ts.map +1 -0
- package/dist/web/styles.js +218 -0
- package/dist/web/styles.js.map +1 -0
- package/dist/web/themes.d.ts +6 -0
- package/dist/web/themes.d.ts.map +1 -0
- package/dist/web/themes.js +31 -0
- package/dist/web/themes.js.map +1 -0
- package/docs/benchmarks.md +1036 -0
- package/docs/decisions.md +3436 -0
- package/docs/dependencies/book.md +1671 -0
- package/docs/dependencies/index.html +2641 -0
- package/docs/design.md +3065 -0
- package/docs/durable-observers/book.md +432 -0
- package/docs/durable-observers/index.html +517 -0
- package/docs/guide-plugins-hosts/book.md +957 -0
- package/docs/guide-plugins-hosts/index.html +952 -0
- package/docs/http-workers/book.md +378 -0
- package/docs/http-workers/index.html +515 -0
- package/docs/i18n/book.md +217 -0
- package/docs/i18n/index.html +344 -0
- package/docs/layer-1.md +311 -0
- package/docs/layer-2.md +216 -0
- package/docs/p3-features/README.md +6 -0
- package/docs/p3-features/book.md +478 -0
- package/docs/plugin-authoring.md +276 -0
- package/docs/plugin-model/book.md +186 -0
- package/docs/plugin-model/index.html +310 -0
- package/docs/plugin-primer/book.md +273 -0
- package/docs/plugin-primer/index.html +430 -0
- package/docs/slice-1.md +236 -0
- package/docs/slice-10.md +288 -0
- package/docs/slice-11.md +114 -0
- package/docs/slice-12.md +132 -0
- package/docs/slice-13.md +121 -0
- package/docs/slice-2.md +174 -0
- package/docs/slice-3a.md +296 -0
- package/docs/slice-3b.md +197 -0
- package/docs/slice-4a.md +418 -0
- package/docs/slice-4b.md +208 -0
- package/docs/slice-6a.md +676 -0
- package/docs/slice-6b.md +332 -0
- package/docs/slice-7b/book.md +608 -0
- package/docs/slice-7b/index.html +842 -0
- package/docs/slice-7b.md +255 -0
- package/docs/slice-7c.md +165 -0
- package/docs/slice-9.md +110 -0
- package/docs/slices.md +241 -0
- package/docs/store/book.md +670 -0
- package/docs/store/index.html +861 -0
- package/docs/store/walkthrough.md +193 -0
- package/docs/theming/book.md +223 -0
- package/docs/theming/index.html +371 -0
- package/docs/tutorial/book.md +2169 -0
- package/docs/tutorial/index.html +2112 -0
- package/docs/tutorial/screens/click-after.png +0 -0
- package/docs/tutorial/screens/click-before.png +0 -0
- package/docs/tutorial/screens/edited.png +0 -0
- package/docs/tutorial/screens/french.png +0 -0
- package/docs/tutorial/screens/harbor.png +0 -0
- package/docs/tutorial/screens/page.png +0 -0
- package/docs/tutorial/screens/traces-ada.png +0 -0
- package/docs/tutorial/screens/traces.png +0 -0
- package/package.json +99 -21
- package/dist/cell.d.ts +0 -122
- package/dist/cell.d.ts.map +0 -1
- package/dist/cell.js +0 -356
- package/dist/cell.js.map +0 -1
- package/dist/cluster.d.ts +0 -27
- package/dist/cluster.d.ts.map +0 -1
- package/dist/cluster.js +0 -230
- package/dist/cluster.js.map +0 -1
- package/dist/connection.d.ts +0 -270
- package/dist/connection.d.ts.map +0 -1
- package/dist/connection.js +0 -1216
- package/dist/connection.js.map +0 -1
- package/dist/contract.d.ts +0 -207
- package/dist/contract.d.ts.map +0 -1
- package/dist/contract.js +0 -241
- package/dist/contract.js.map +0 -1
- package/dist/declare.d.ts +0 -33
- package/dist/declare.d.ts.map +0 -1
- package/dist/declare.js +0 -2
- package/dist/declare.js.map +0 -1
- package/dist/errors.d.ts +0 -28
- package/dist/errors.d.ts.map +0 -1
- package/dist/errors.js +0 -59
- package/dist/errors.js.map +0 -1
- package/dist/host.d.ts +0 -348
- package/dist/host.d.ts.map +0 -1
- package/dist/host.js +0 -1002
- package/dist/host.js.map +0 -1
- package/dist/link.d.ts +0 -107
- package/dist/link.d.ts.map +0 -1
- package/dist/link.js +0 -355
- package/dist/link.js.map +0 -1
- package/dist/loader.d.ts +0 -4
- package/dist/loader.d.ts.map +0 -1
- package/dist/loader.js +0 -73
- package/dist/loader.js.map +0 -1
- package/dist/manager.d.ts +0 -115
- package/dist/manager.d.ts.map +0 -1
- package/dist/manager.js +0 -345
- package/dist/manager.js.map +0 -1
- package/dist/next/contracts/accepts.d.ts +0 -81
- package/dist/next/contracts/accepts.d.ts.map +0 -1
- package/dist/next/contracts/accepts.js.map +0 -1
- package/dist/next/contracts/contract.d.ts +0 -121
- package/dist/next/contracts/contract.d.ts.map +0 -1
- package/dist/next/contracts/contract.js.map +0 -1
- package/dist/next/contracts/declare.d.ts.map +0 -1
- package/dist/next/contracts/declare.js.map +0 -1
- package/dist/next/contracts/evolve.d.ts.map +0 -1
- package/dist/next/contracts/evolve.js.map +0 -1
- package/dist/next/contracts/fingerprint.d.ts +0 -16
- package/dist/next/contracts/fingerprint.d.ts.map +0 -1
- package/dist/next/contracts/fingerprint.js.map +0 -1
- package/dist/next/contracts/history.d.ts.map +0 -1
- package/dist/next/contracts/history.js.map +0 -1
- package/dist/next/contracts/host-kind.d.ts.map +0 -1
- package/dist/next/contracts/host-kind.js.map +0 -1
- package/dist/next/contracts/index.d.ts.map +0 -1
- package/dist/next/contracts/index.js.map +0 -1
- package/dist/next/contracts/internal.d.ts.map +0 -1
- package/dist/next/contracts/internal.js.map +0 -1
- package/dist/next/contracts/names.d.ts.map +0 -1
- package/dist/next/contracts/names.js.map +0 -1
- package/dist/next/contracts/params.d.ts +0 -28
- package/dist/next/contracts/params.d.ts.map +0 -1
- package/dist/next/contracts/params.js.map +0 -1
- package/dist/next/contracts/schema.d.ts.map +0 -1
- package/dist/next/contracts/schema.js.map +0 -1
- package/dist/next/contracts/snapshot.d.ts +0 -16
- package/dist/next/contracts/snapshot.d.ts.map +0 -1
- package/dist/next/contracts/snapshot.js +0 -167
- package/dist/next/contracts/snapshot.js.map +0 -1
- package/dist/next/data/args.d.ts +0 -50
- package/dist/next/data/args.d.ts.map +0 -1
- package/dist/next/data/args.js.map +0 -1
- package/dist/next/data/errors.d.ts +0 -73
- package/dist/next/data/errors.d.ts.map +0 -1
- package/dist/next/data/errors.js +0 -107
- package/dist/next/data/errors.js.map +0 -1
- package/dist/next/data/failure.d.ts.map +0 -1
- package/dist/next/data/failure.js +0 -72
- package/dist/next/data/failure.js.map +0 -1
- package/dist/next/data/index.d.ts +0 -4
- package/dist/next/data/index.d.ts.map +0 -1
- package/dist/next/data/index.js +0 -4
- package/dist/next/data/index.js.map +0 -1
- package/dist/next/data/internal.d.ts +0 -7
- package/dist/next/data/internal.d.ts.map +0 -1
- package/dist/next/data/internal.js +0 -8
- package/dist/next/data/internal.js.map +0 -1
- package/dist/next/data/params.d.ts +0 -20
- package/dist/next/data/params.d.ts.map +0 -1
- package/dist/next/data/params.js.map +0 -1
- package/dist/next/data/principal.d.ts +0 -17
- package/dist/next/data/principal.d.ts.map +0 -1
- package/dist/next/data/principal.js +0 -41
- package/dist/next/data/principal.js.map +0 -1
- package/dist/next/data/validator.d.ts +0 -12
- package/dist/next/data/validator.d.ts.map +0 -1
- package/dist/next/data/validator.js +0 -34
- package/dist/next/data/validator.js.map +0 -1
- package/dist/next/documents/address-source.d.ts +0 -20
- package/dist/next/documents/address-source.d.ts.map +0 -1
- package/dist/next/documents/address-source.js.map +0 -1
- package/dist/next/documents/definition.d.ts +0 -84
- package/dist/next/documents/definition.d.ts.map +0 -1
- package/dist/next/documents/definition.js +0 -73
- package/dist/next/documents/definition.js.map +0 -1
- package/dist/next/documents/documents.d.ts +0 -106
- package/dist/next/documents/documents.d.ts.map +0 -1
- package/dist/next/documents/documents.js +0 -224
- package/dist/next/documents/documents.js.map +0 -1
- package/dist/next/documents/fence.d.ts.map +0 -1
- package/dist/next/documents/fence.js.map +0 -1
- package/dist/next/documents/handles.d.ts +0 -76
- package/dist/next/documents/handles.d.ts.map +0 -1
- package/dist/next/documents/handles.js.map +0 -1
- package/dist/next/documents/index.d.ts.map +0 -1
- package/dist/next/documents/index.js.map +0 -1
- package/dist/next/documents/internal.d.ts +0 -9
- package/dist/next/documents/internal.d.ts.map +0 -1
- package/dist/next/documents/internal.js.map +0 -1
- package/dist/next/documents/keyed-slot.d.ts +0 -103
- package/dist/next/documents/keyed-slot.d.ts.map +0 -1
- package/dist/next/documents/keyed-slot.js +0 -395
- package/dist/next/documents/keyed-slot.js.map +0 -1
- package/dist/next/documents/line.d.ts.map +0 -1
- package/dist/next/documents/line.js.map +0 -1
- package/dist/next/documents/persistence.d.ts +0 -104
- package/dist/next/documents/persistence.d.ts.map +0 -1
- package/dist/next/documents/persistence.js +0 -128
- package/dist/next/documents/persistence.js.map +0 -1
- package/dist/next/documents/residency.d.ts +0 -31
- package/dist/next/documents/residency.d.ts.map +0 -1
- package/dist/next/documents/residency.js.map +0 -1
- package/dist/next/documents/slot.d.ts +0 -109
- package/dist/next/documents/slot.d.ts.map +0 -1
- package/dist/next/documents/slot.js +0 -181
- package/dist/next/documents/slot.js.map +0 -1
- package/dist/next/documents/transaction.d.ts +0 -133
- package/dist/next/documents/transaction.d.ts.map +0 -1
- package/dist/next/documents/transaction.js +0 -409
- package/dist/next/documents/transaction.js.map +0 -1
- package/dist/next/host/activity.d.ts +0 -31
- package/dist/next/host/activity.d.ts.map +0 -1
- package/dist/next/host/activity.js +0 -40
- package/dist/next/host/activity.js.map +0 -1
- package/dist/next/host/adapted.d.ts +0 -49
- package/dist/next/host/adapted.d.ts.map +0 -1
- package/dist/next/host/adapted.js.map +0 -1
- package/dist/next/host/attempt.d.ts +0 -278
- package/dist/next/host/attempt.d.ts.map +0 -1
- package/dist/next/host/attempt.js +0 -1072
- package/dist/next/host/attempt.js.map +0 -1
- package/dist/next/host/backoff.d.ts.map +0 -1
- package/dist/next/host/backoff.js.map +0 -1
- package/dist/next/host/ctx.d.ts +0 -47
- package/dist/next/host/ctx.d.ts.map +0 -1
- package/dist/next/host/ctx.js +0 -108
- package/dist/next/host/ctx.js.map +0 -1
- package/dist/next/host/deadline.d.ts.map +0 -1
- package/dist/next/host/deadline.js.map +0 -1
- package/dist/next/host/dependencies.d.ts.map +0 -1
- package/dist/next/host/dependencies.js.map +0 -1
- package/dist/next/host/destination.d.ts +0 -48
- package/dist/next/host/destination.d.ts.map +0 -1
- package/dist/next/host/destination.js.map +0 -1
- package/dist/next/host/facet.d.ts +0 -79
- package/dist/next/host/facet.d.ts.map +0 -1
- package/dist/next/host/facet.js.map +0 -1
- package/dist/next/host/follow.d.ts +0 -52
- package/dist/next/host/follow.d.ts.map +0 -1
- package/dist/next/host/follow.js.map +0 -1
- package/dist/next/host/host.d.ts +0 -495
- package/dist/next/host/host.d.ts.map +0 -1
- package/dist/next/host/host.js +0 -1075
- package/dist/next/host/host.js.map +0 -1
- package/dist/next/host/index.d.ts +0 -17
- package/dist/next/host/index.d.ts.map +0 -1
- package/dist/next/host/index.js.map +0 -1
- package/dist/next/host/internal.d.ts +0 -10
- package/dist/next/host/internal.d.ts.map +0 -1
- package/dist/next/host/internal.js +0 -8
- package/dist/next/host/internal.js.map +0 -1
- package/dist/next/host/members.d.ts +0 -50
- package/dist/next/host/members.d.ts.map +0 -1
- package/dist/next/host/members.js.map +0 -1
- package/dist/next/host/native.d.ts +0 -55
- package/dist/next/host/native.d.ts.map +0 -1
- package/dist/next/host/native.js +0 -92
- package/dist/next/host/native.js.map +0 -1
- package/dist/next/host/object.d.ts +0 -290
- package/dist/next/host/object.d.ts.map +0 -1
- package/dist/next/host/object.js +0 -1127
- package/dist/next/host/object.js.map +0 -1
- package/dist/next/host/parked.d.ts +0 -23
- package/dist/next/host/parked.d.ts.map +0 -1
- package/dist/next/host/parked.js.map +0 -1
- package/dist/next/host/presence.d.ts +0 -34
- package/dist/next/host/presence.d.ts.map +0 -1
- package/dist/next/host/presence.js.map +0 -1
- package/dist/next/host/ref-state.d.ts +0 -53
- package/dist/next/host/ref-state.d.ts.map +0 -1
- package/dist/next/host/ref-state.js +0 -83
- package/dist/next/host/ref-state.js.map +0 -1
- package/dist/next/host/reference-keys.d.ts +0 -36
- package/dist/next/host/reference-keys.d.ts.map +0 -1
- package/dist/next/host/reference-keys.js +0 -168
- package/dist/next/host/reference-keys.js.map +0 -1
- package/dist/next/host/reference-source.d.ts +0 -65
- package/dist/next/host/reference-source.d.ts.map +0 -1
- package/dist/next/host/reference-source.js +0 -285
- package/dist/next/host/reference-source.js.map +0 -1
- package/dist/next/host/reference.d.ts +0 -308
- package/dist/next/host/reference.d.ts.map +0 -1
- package/dist/next/host/reference.js +0 -775
- package/dist/next/host/reference.js.map +0 -1
- package/dist/next/host/retry-on.d.ts.map +0 -1
- package/dist/next/host/retry-on.js.map +0 -1
- package/dist/next/host/revocation.d.ts +0 -16
- package/dist/next/host/revocation.d.ts.map +0 -1
- package/dist/next/host/revocation.js.map +0 -1
- package/dist/next/host/root.d.ts +0 -27
- package/dist/next/host/root.d.ts.map +0 -1
- package/dist/next/host/root.js +0 -68
- package/dist/next/host/root.js.map +0 -1
- package/dist/next/host/route.d.ts +0 -64
- package/dist/next/host/route.d.ts.map +0 -1
- package/dist/next/host/route.js +0 -190
- package/dist/next/host/route.js.map +0 -1
- package/dist/next/host/routines.d.ts +0 -76
- package/dist/next/host/routines.d.ts.map +0 -1
- package/dist/next/host/routines.js +0 -350
- package/dist/next/host/routines.js.map +0 -1
- package/dist/next/host/sleep.d.ts +0 -9
- package/dist/next/host/sleep.d.ts.map +0 -1
- package/dist/next/host/sleep.js.map +0 -1
- package/dist/next/host/staging.d.ts +0 -94
- package/dist/next/host/staging.d.ts.map +0 -1
- package/dist/next/host/staging.js +0 -302
- package/dist/next/host/staging.js.map +0 -1
- package/dist/next/host/unbound.d.ts +0 -30
- package/dist/next/host/unbound.d.ts.map +0 -1
- package/dist/next/host/unbound.js +0 -67
- package/dist/next/host/unbound.js.map +0 -1
- package/dist/next/host/uuid.d.ts.map +0 -1
- package/dist/next/host/uuid.js.map +0 -1
- package/dist/next/index.d.ts +0 -28
- package/dist/next/index.d.ts.map +0 -1
- package/dist/next/index.js +0 -18
- package/dist/next/index.js.map +0 -1
- package/dist/next/jobs/definition.d.ts.map +0 -1
- package/dist/next/jobs/definition.js.map +0 -1
- package/dist/next/jobs/index.d.ts.map +0 -1
- package/dist/next/jobs/index.js.map +0 -1
- package/dist/next/jobs/internal.d.ts.map +0 -1
- package/dist/next/jobs/internal.js.map +0 -1
- package/dist/next/jobs/job.d.ts +0 -152
- package/dist/next/jobs/job.d.ts.map +0 -1
- package/dist/next/jobs/job.js +0 -320
- package/dist/next/jobs/job.js.map +0 -1
- package/dist/next/jobs/persisted.d.ts +0 -38
- package/dist/next/jobs/persisted.d.ts.map +0 -1
- package/dist/next/jobs/persisted.js.map +0 -1
- package/dist/next/jobs/records.d.ts +0 -231
- package/dist/next/jobs/records.d.ts.map +0 -1
- package/dist/next/jobs/records.js +0 -869
- package/dist/next/jobs/records.js.map +0 -1
- package/dist/next/jobs/run-states.d.ts +0 -69
- package/dist/next/jobs/run-states.d.ts.map +0 -1
- package/dist/next/jobs/run-states.js +0 -228
- package/dist/next/jobs/run-states.js.map +0 -1
- package/dist/next/jobs/run.d.ts +0 -113
- package/dist/next/jobs/run.d.ts.map +0 -1
- package/dist/next/jobs/run.js +0 -200
- package/dist/next/jobs/run.js.map +0 -1
- package/dist/next/jobs/running.d.ts +0 -44
- package/dist/next/jobs/running.d.ts.map +0 -1
- package/dist/next/jobs/running.js.map +0 -1
- package/dist/next/jobs/stored.d.ts +0 -63
- package/dist/next/jobs/stored.d.ts.map +0 -1
- package/dist/next/jobs/stored.js.map +0 -1
- package/dist/next/link/binary.d.ts.map +0 -1
- package/dist/next/link/binary.js +0 -534
- package/dist/next/link/binary.js.map +0 -1
- package/dist/next/link/channel.d.ts +0 -63
- package/dist/next/link/channel.d.ts.map +0 -1
- package/dist/next/link/channel.js +0 -202
- package/dist/next/link/channel.js.map +0 -1
- package/dist/next/link/errors.d.ts.map +0 -1
- package/dist/next/link/errors.js.map +0 -1
- package/dist/next/link/index.d.ts.map +0 -1
- package/dist/next/link/index.js.map +0 -1
- package/dist/next/link/internal.d.ts.map +0 -1
- package/dist/next/link/internal.js.map +0 -1
- package/dist/next/link/ipc.d.ts.map +0 -1
- package/dist/next/link/ipc.js.map +0 -1
- package/dist/next/link/link.d.ts.map +0 -1
- package/dist/next/link/link.js.map +0 -1
- package/dist/next/link/message.d.ts +0 -249
- package/dist/next/link/message.d.ts.map +0 -1
- package/dist/next/link/message.js +0 -123
- package/dist/next/link/message.js.map +0 -1
- package/dist/next/link/part.d.ts +0 -80
- package/dist/next/link/part.d.ts.map +0 -1
- package/dist/next/link/part.js +0 -164
- package/dist/next/link/part.js.map +0 -1
- package/dist/next/link/text.d.ts.map +0 -1
- package/dist/next/link/text.js +0 -335
- package/dist/next/link/text.js.map +0 -1
- package/dist/next/link/values.d.ts.map +0 -1
- package/dist/next/link/values.js +0 -117
- package/dist/next/link/values.js.map +0 -1
- package/dist/next/link/websocket.d.ts.map +0 -1
- package/dist/next/link/websocket.js.map +0 -1
- package/dist/next/registries/contribution.d.ts.map +0 -1
- package/dist/next/registries/contribution.js.map +0 -1
- package/dist/next/registries/entries.d.ts.map +0 -1
- package/dist/next/registries/entries.js.map +0 -1
- package/dist/next/registries/index.d.ts.map +0 -1
- package/dist/next/registries/index.js.map +0 -1
- package/dist/next/registries/internal.d.ts.map +0 -1
- package/dist/next/registries/internal.js.map +0 -1
- package/dist/next/registries/record.d.ts +0 -94
- package/dist/next/registries/record.d.ts.map +0 -1
- package/dist/next/registries/record.js +0 -253
- package/dist/next/registries/record.js.map +0 -1
- package/dist/next/registries/registry.d.ts +0 -74
- package/dist/next/registries/registry.d.ts.map +0 -1
- package/dist/next/registries/registry.js.map +0 -1
- package/dist/next/registries/value.d.ts.map +0 -1
- package/dist/next/registries/value.js +0 -199
- package/dist/next/registries/value.js.map +0 -1
- package/dist/next/remote/calls.d.ts.map +0 -1
- package/dist/next/remote/calls.js.map +0 -1
- package/dist/next/remote/consumer.d.ts +0 -42
- package/dist/next/remote/consumer.d.ts.map +0 -1
- package/dist/next/remote/consumer.js +0 -343
- package/dist/next/remote/consumer.js.map +0 -1
- package/dist/next/remote/hold.d.ts +0 -130
- package/dist/next/remote/hold.d.ts.map +0 -1
- package/dist/next/remote/hold.js +0 -537
- package/dist/next/remote/hold.js.map +0 -1
- package/dist/next/remote/host-link.d.ts +0 -77
- package/dist/next/remote/host-link.d.ts.map +0 -1
- package/dist/next/remote/host-link.js +0 -182
- package/dist/next/remote/host-link.js.map +0 -1
- package/dist/next/remote/internal.d.ts.map +0 -1
- package/dist/next/remote/internal.js.map +0 -1
- package/dist/next/remote/path.d.ts.map +0 -1
- package/dist/next/remote/path.js.map +0 -1
- package/dist/next/remote/provider.d.ts +0 -76
- package/dist/next/remote/provider.d.ts.map +0 -1
- package/dist/next/remote/provider.js +0 -506
- package/dist/next/remote/provider.js.map +0 -1
- package/dist/next/remote/relay.d.ts +0 -58
- package/dist/next/remote/relay.d.ts.map +0 -1
- package/dist/next/remote/relay.js +0 -117
- package/dist/next/remote/relay.js.map +0 -1
- package/dist/next/remote/remote-object.d.ts +0 -133
- package/dist/next/remote/remote-object.d.ts.map +0 -1
- package/dist/next/remote/remote-object.js +0 -411
- package/dist/next/remote/remote-object.js.map +0 -1
- package/dist/next/remote/replica.d.ts +0 -59
- package/dist/next/remote/replica.d.ts.map +0 -1
- package/dist/next/remote/replica.js +0 -125
- package/dist/next/remote/replica.js.map +0 -1
- package/dist/next/state/batch.d.ts +0 -64
- package/dist/next/state/batch.d.ts.map +0 -1
- package/dist/next/state/batch.js +0 -163
- package/dist/next/state/batch.js.map +0 -1
- package/dist/next/state/derive.d.ts +0 -52
- package/dist/next/state/derive.d.ts.map +0 -1
- package/dist/next/state/derive.js +0 -182
- package/dist/next/state/derive.js.map +0 -1
- package/dist/next/state/index.d.ts +0 -6
- package/dist/next/state/index.d.ts.map +0 -1
- package/dist/next/state/index.js.map +0 -1
- package/dist/next/state/internal.d.ts.map +0 -1
- package/dist/next/state/internal.js.map +0 -1
- package/dist/next/state/native-source.d.ts +0 -106
- package/dist/next/state/native-source.d.ts.map +0 -1
- package/dist/next/state/native-source.js +0 -240
- package/dist/next/state/native-source.js.map +0 -1
- package/dist/next/state/watchable.d.ts +0 -114
- package/dist/next/state/watchable.d.ts.map +0 -1
- package/dist/next/state/watchable.js +0 -156
- package/dist/next/state/watchable.js.map +0 -1
- package/dist/next/state/writable.d.ts +0 -32
- package/dist/next/state/writable.d.ts.map +0 -1
- package/dist/next/state/writable.js.map +0 -1
- package/dist/next/store/adapter.d.ts +0 -67
- package/dist/next/store/adapter.d.ts.map +0 -1
- package/dist/next/store/adapter.js.map +0 -1
- package/dist/next/store/allocator.d.ts.map +0 -1
- package/dist/next/store/allocator.js.map +0 -1
- package/dist/next/store/applier.d.ts.map +0 -1
- package/dist/next/store/applier.js.map +0 -1
- package/dist/next/store/apply-batch.d.ts +0 -12
- package/dist/next/store/apply-batch.d.ts.map +0 -1
- package/dist/next/store/apply-batch.js.map +0 -1
- package/dist/next/store/archive.d.ts +0 -32
- package/dist/next/store/archive.d.ts.map +0 -1
- package/dist/next/store/archive.js +0 -129
- package/dist/next/store/archive.js.map +0 -1
- package/dist/next/store/backend.d.ts +0 -10
- package/dist/next/store/backend.d.ts.map +0 -1
- package/dist/next/store/backend.js.map +0 -1
- package/dist/next/store/catalog.d.ts +0 -24
- package/dist/next/store/catalog.d.ts.map +0 -1
- package/dist/next/store/catalog.js.map +0 -1
- package/dist/next/store/claims.d.ts.map +0 -1
- package/dist/next/store/claims.js.map +0 -1
- package/dist/next/store/columns.d.ts.map +0 -1
- package/dist/next/store/columns.js.map +0 -1
- package/dist/next/store/engine.d.ts +0 -176
- package/dist/next/store/engine.d.ts.map +0 -1
- package/dist/next/store/engine.js +0 -283
- package/dist/next/store/engine.js.map +0 -1
- package/dist/next/store/evaluate.d.ts +0 -17
- package/dist/next/store/evaluate.d.ts.map +0 -1
- package/dist/next/store/evaluate.js.map +0 -1
- package/dist/next/store/export.d.ts +0 -17
- package/dist/next/store/export.d.ts.map +0 -1
- package/dist/next/store/export.js +0 -200
- package/dist/next/store/export.js.map +0 -1
- package/dist/next/store/expression.d.ts +0 -150
- package/dist/next/store/expression.d.ts.map +0 -1
- package/dist/next/store/expression.js.map +0 -1
- package/dist/next/store/import.d.ts +0 -10
- package/dist/next/store/import.d.ts.map +0 -1
- package/dist/next/store/import.js +0 -276
- package/dist/next/store/import.js.map +0 -1
- package/dist/next/store/index.d.ts.map +0 -1
- package/dist/next/store/index.js.map +0 -1
- package/dist/next/store/json-column.d.ts +0 -33
- package/dist/next/store/json-column.d.ts.map +0 -1
- package/dist/next/store/json-column.js +0 -61
- package/dist/next/store/json-column.js.map +0 -1
- package/dist/next/store/jsonl.d.ts.map +0 -1
- package/dist/next/store/jsonl.js.map +0 -1
- package/dist/next/store/outbox.d.ts +0 -26
- package/dist/next/store/outbox.d.ts.map +0 -1
- package/dist/next/store/outbox.js.map +0 -1
- package/dist/next/store/query.d.ts +0 -39
- package/dist/next/store/query.d.ts.map +0 -1
- package/dist/next/store/query.js.map +0 -1
- package/dist/next/store/refusal.d.ts.map +0 -1
- package/dist/next/store/refusal.js.map +0 -1
- package/dist/next/store/rows.d.ts +0 -80
- package/dist/next/store/rows.d.ts.map +0 -1
- package/dist/next/store/rows.js.map +0 -1
- package/dist/next/store/schema.d.ts +0 -25
- package/dist/next/store/schema.d.ts.map +0 -1
- package/dist/next/store/schema.js +0 -115
- package/dist/next/store/schema.js.map +0 -1
- package/dist/next/store/sql.d.ts +0 -73
- package/dist/next/store/sql.d.ts.map +0 -1
- package/dist/next/store/sql.js.map +0 -1
- package/dist/next/store/step.d.ts +0 -48
- package/dist/next/store/step.d.ts.map +0 -1
- package/dist/next/store/step.js +0 -50
- package/dist/next/store/step.js.map +0 -1
- package/dist/next/store/store.d.ts +0 -161
- package/dist/next/store/store.d.ts.map +0 -1
- package/dist/next/store/store.js +0 -627
- package/dist/next/store/store.js.map +0 -1
- package/dist/next/store/table-changes.d.ts +0 -29
- package/dist/next/store/table-changes.d.ts.map +0 -1
- package/dist/next/store/table-changes.js.map +0 -1
- package/dist/next/store/table-evolve.d.ts.map +0 -1
- package/dist/next/store/table-evolve.js.map +0 -1
- package/dist/next/store/table-handle.d.ts +0 -67
- package/dist/next/store/table-handle.d.ts.map +0 -1
- package/dist/next/store/table-handle.js +0 -101
- package/dist/next/store/table-handle.js.map +0 -1
- package/dist/next/store/table-history.d.ts.map +0 -1
- package/dist/next/store/table-history.js.map +0 -1
- package/dist/next/store/table-migration.d.ts +0 -16
- package/dist/next/store/table-migration.d.ts.map +0 -1
- package/dist/next/store/table-migration.js +0 -202
- package/dist/next/store/table-migration.js.map +0 -1
- package/dist/next/store/table-writes.d.ts.map +0 -1
- package/dist/next/store/table-writes.js +0 -165
- package/dist/next/store/table-writes.js.map +0 -1
- package/dist/next/store/table.d.ts +0 -80
- package/dist/next/store/table.d.ts.map +0 -1
- package/dist/next/store/table.js.map +0 -1
- package/dist/next/store/text.d.ts.map +0 -1
- package/dist/next/store/text.js.map +0 -1
- package/dist/next/store/writes.d.ts.map +0 -1
- package/dist/next/store/writes.js.map +0 -1
- package/dist/next-node/compression.d.ts +0 -7
- package/dist/next-node/compression.d.ts.map +0 -1
- package/dist/next-node/compression.js +0 -24
- package/dist/next-node/compression.js.map +0 -1
- package/dist/next-node/http/admission.d.ts.map +0 -1
- package/dist/next-node/http/admission.js.map +0 -1
- package/dist/next-node/http/authenticate.d.ts +0 -21
- package/dist/next-node/http/authenticate.d.ts.map +0 -1
- package/dist/next-node/http/authenticate.js +0 -34
- package/dist/next-node/http/authenticate.js.map +0 -1
- package/dist/next-node/http/cookies.d.ts +0 -24
- package/dist/next-node/http/cookies.d.ts.map +0 -1
- package/dist/next-node/http/cookies.js +0 -62
- package/dist/next-node/http/cookies.js.map +0 -1
- package/dist/next-node/http/file.d.ts.map +0 -1
- package/dist/next-node/http/file.js.map +0 -1
- package/dist/next-node/http/headers.d.ts.map +0 -1
- package/dist/next-node/http/headers.js +0 -129
- package/dist/next-node/http/headers.js.map +0 -1
- package/dist/next-node/http/http.d.ts +0 -100
- package/dist/next-node/http/http.d.ts.map +0 -1
- package/dist/next-node/http/http.js +0 -462
- package/dist/next-node/http/http.js.map +0 -1
- package/dist/next-node/http/incoming.d.ts.map +0 -1
- package/dist/next-node/http/incoming.js.map +0 -1
- package/dist/next-node/http/index.d.ts +0 -11
- package/dist/next-node/http/index.d.ts.map +0 -1
- package/dist/next-node/http/index.js +0 -12
- package/dist/next-node/http/index.js.map +0 -1
- package/dist/next-node/http/node.d.ts.map +0 -1
- package/dist/next-node/http/node.js.map +0 -1
- package/dist/next-node/http/request.d.ts +0 -54
- package/dist/next-node/http/request.d.ts.map +0 -1
- package/dist/next-node/http/request.js +0 -116
- package/dist/next-node/http/request.js.map +0 -1
- package/dist/next-node/http/response.d.ts +0 -63
- package/dist/next-node/http/response.d.ts.map +0 -1
- package/dist/next-node/http/response.js.map +0 -1
- package/dist/next-node/http/router.d.ts +0 -114
- package/dist/next-node/http/router.d.ts.map +0 -1
- package/dist/next-node/http/router.js +0 -261
- package/dist/next-node/http/router.js.map +0 -1
- package/dist/next-node/http/upgrades.d.ts +0 -58
- package/dist/next-node/http/upgrades.d.ts.map +0 -1
- package/dist/next-node/http/upgrades.js +0 -184
- package/dist/next-node/http/upgrades.js.map +0 -1
- package/dist/next-node/plugins/build.d.ts +0 -57
- package/dist/next-node/plugins/build.d.ts.map +0 -1
- package/dist/next-node/plugins/build.js +0 -334
- package/dist/next-node/plugins/build.js.map +0 -1
- package/dist/next-node/plugins/discover.d.ts +0 -36
- package/dist/next-node/plugins/discover.d.ts.map +0 -1
- package/dist/next-node/plugins/discover.js +0 -91
- package/dist/next-node/plugins/discover.js.map +0 -1
- package/dist/next-node/plugins/evaluate.d.ts +0 -33
- package/dist/next-node/plugins/evaluate.d.ts.map +0 -1
- package/dist/next-node/plugins/evaluate.js +0 -98
- package/dist/next-node/plugins/evaluate.js.map +0 -1
- package/dist/next-node/plugins/index.d.ts +0 -9
- package/dist/next-node/plugins/index.d.ts.map +0 -1
- package/dist/next-node/plugins/index.js +0 -11
- package/dist/next-node/plugins/index.js.map +0 -1
- package/dist/next-node/plugins/install.d.ts +0 -13
- package/dist/next-node/plugins/install.d.ts.map +0 -1
- package/dist/next-node/plugins/install.js +0 -37
- package/dist/next-node/plugins/install.js.map +0 -1
- package/dist/next-node/plugins/plugins.d.ts +0 -135
- package/dist/next-node/plugins/plugins.d.ts.map +0 -1
- package/dist/next-node/plugins/plugins.js +0 -206
- package/dist/next-node/plugins/plugins.js.map +0 -1
- package/dist/next-node/plugins/runtime.d.ts +0 -41
- package/dist/next-node/plugins/runtime.d.ts.map +0 -1
- package/dist/next-node/plugins/runtime.js +0 -136
- package/dist/next-node/plugins/runtime.js.map +0 -1
- package/dist/next-node/plugins/stack.d.ts.map +0 -1
- package/dist/next-node/plugins/stack.js.map +0 -1
- package/dist/next-node/plugins/watcher.d.ts +0 -58
- package/dist/next-node/plugins/watcher.d.ts.map +0 -1
- package/dist/next-node/plugins/watcher.js +0 -281
- package/dist/next-node/plugins/watcher.js.map +0 -1
- package/dist/next-node/workers/control.d.ts +0 -83
- package/dist/next-node/workers/control.d.ts.map +0 -1
- package/dist/next-node/workers/control.js +0 -77
- package/dist/next-node/workers/control.js.map +0 -1
- package/dist/next-node/workers/index.d.ts +0 -5
- package/dist/next-node/workers/index.d.ts.map +0 -1
- package/dist/next-node/workers/index.js +0 -7
- package/dist/next-node/workers/index.js.map +0 -1
- package/dist/next-node/workers/lock.d.ts +0 -21
- package/dist/next-node/workers/lock.d.ts.map +0 -1
- package/dist/next-node/workers/lock.js +0 -137
- package/dist/next-node/workers/lock.js.map +0 -1
- package/dist/next-node/workers/main.d.ts +0 -46
- package/dist/next-node/workers/main.d.ts.map +0 -1
- package/dist/next-node/workers/main.js +0 -230
- package/dist/next-node/workers/main.js.map +0 -1
- package/dist/next-node/workers/process.d.ts +0 -42
- package/dist/next-node/workers/process.d.ts.map +0 -1
- package/dist/next-node/workers/process.js +0 -125
- package/dist/next-node/workers/process.js.map +0 -1
- package/dist/next-node/workers/workers.d.ts +0 -80
- package/dist/next-node/workers/workers.d.ts.map +0 -1
- package/dist/next-node/workers/workers.js +0 -572
- package/dist/next-node/workers/workers.js.map +0 -1
- package/dist/node.d.ts +0 -4
- package/dist/node.d.ts.map +0 -1
- package/dist/node.js +0 -4
- package/dist/node.js.map +0 -1
- package/dist/object.d.ts +0 -438
- package/dist/object.d.ts.map +0 -1
- package/dist/object.js +0 -1570
- package/dist/object.js.map +0 -1
- package/dist/publish.d.ts +0 -5
- package/dist/publish.d.ts.map +0 -1
- package/dist/publish.js +0 -40
- package/dist/publish.js.map +0 -1
- package/dist/registry.d.ts +0 -25
- package/dist/registry.d.ts.map +0 -1
- package/dist/registry.js +0 -6
- package/dist/registry.js.map +0 -1
- package/dist/reload.d.ts +0 -126
- package/dist/reload.d.ts.map +0 -1
- package/dist/reload.js +0 -653
- package/dist/reload.js.map +0 -1
- package/dist/remote.d.ts +0 -165
- package/dist/remote.d.ts.map +0 -1
- package/dist/remote.js +0 -612
- package/dist/remote.js.map +0 -1
- package/dist/schema.d.ts +0 -25
- package/dist/schema.d.ts.map +0 -1
- package/dist/schema.js +0 -403
- package/dist/schema.js.map +0 -1
- package/dist/state.d.ts +0 -92
- package/dist/state.d.ts.map +0 -1
- package/dist/state.js +0 -287
- package/dist/state.js.map +0 -1
- package/dist/types.d.ts +0 -88
- package/dist/types.d.ts.map +0 -1
- package/dist/types.js +0 -2
- package/dist/types.js.map +0 -1
- package/dist/websocket.d.ts +0 -15
- package/dist/websocket.d.ts.map +0 -1
- package/dist/websocket.js +0 -16
- package/dist/websocket.js.map +0 -1
- package/dist/wire.d.ts +0 -197
- package/dist/wire.d.ts.map +0 -1
- package/dist/wire.js +0 -166
- package/dist/wire.js.map +0 -1
- package/docs/guide.md +0 -814
- package/docs/next/benchmarks.md +0 -959
- package/docs/next/decisions.md +0 -2957
- package/docs/next/dependencies/book.md +0 -1671
- package/docs/next/dependencies/index.html +0 -2641
- package/docs/next/design.md +0 -2554
- package/docs/next/durable-observers/book.md +0 -432
- package/docs/next/durable-observers/index.html +0 -517
- package/docs/next/guide-plugins-hosts/book.md +0 -607
- package/docs/next/guide-plugins-hosts/index.html +0 -652
- package/docs/next/http-workers/book.md +0 -378
- package/docs/next/http-workers/index.html +0 -515
- package/docs/next/layer-1.md +0 -311
- package/docs/next/layer-2.md +0 -216
- package/docs/next/plugin-model/book.md +0 -186
- package/docs/next/plugin-model/index.html +0 -310
- package/docs/next/plugin-primer/book.md +0 -273
- package/docs/next/plugin-primer/index.html +0 -430
- package/docs/next/slice-1.md +0 -236
- package/docs/next/slice-10.md +0 -285
- package/docs/next/slice-11.md +0 -93
- package/docs/next/slice-2.md +0 -174
- package/docs/next/slice-3a.md +0 -296
- package/docs/next/slice-3b.md +0 -197
- package/docs/next/slice-4a.md +0 -418
- package/docs/next/slice-4b.md +0 -208
- package/docs/next/slice-6a.md +0 -676
- package/docs/next/slice-6b.md +0 -332
- package/docs/next/slice-7b/book.md +0 -608
- package/docs/next/slice-7b/index.html +0 -842
- package/docs/next/slice-7b.md +0 -255
- package/docs/next/slice-7c.md +0 -165
- package/docs/next/slices.md +0 -230
- package/docs/next/store/book.md +0 -665
- package/docs/next/store/index.html +0 -861
- package/docs/next/store/walkthrough.md +0 -193
- package/docs/spec.md +0 -288
- package/docs/tutorial.md +0 -932
- /package/dist/{next/contracts → contracts}/accepts.js +0 -0
- /package/dist/{next/contracts → contracts}/contract.js +0 -0
- /package/dist/{next/contracts → contracts}/declare.d.ts +0 -0
- /package/dist/{next/contracts → contracts}/declare.js +0 -0
- /package/dist/{next/contracts → contracts}/evolve.d.ts +0 -0
- /package/dist/{next/contracts → contracts}/evolve.js +0 -0
- /package/dist/{next/contracts → contracts}/fingerprint.js +0 -0
- /package/dist/{next/contracts → contracts}/history.d.ts +0 -0
- /package/dist/{next/contracts → contracts}/history.js +0 -0
- /package/dist/{next/contracts → contracts}/host-kind.d.ts +0 -0
- /package/dist/{next/contracts → contracts}/host-kind.js +0 -0
- /package/dist/{next/contracts → contracts}/index.d.ts +0 -0
- /package/dist/{next/contracts → contracts}/index.js +0 -0
- /package/dist/{next/contracts → contracts}/internal.d.ts +0 -0
- /package/dist/{next/contracts → contracts}/internal.js +0 -0
- /package/dist/{next/contracts → contracts}/names.d.ts +0 -0
- /package/dist/{next/contracts → contracts}/names.js +0 -0
- /package/dist/{next/contracts → contracts}/params.js +0 -0
- /package/dist/{next/contracts → contracts}/schema.d.ts +0 -0
- /package/dist/{next/contracts → contracts}/schema.js +0 -0
- /package/dist/{next/data → data}/args.js +0 -0
- /package/dist/{next/data → data}/failure.d.ts +0 -0
- /package/dist/{next/data → data}/params.js +0 -0
- /package/dist/{next/documents → documents}/address-source.js +0 -0
- /package/dist/{next/documents → documents}/fence.d.ts +0 -0
- /package/dist/{next/documents → documents}/fence.js +0 -0
- /package/dist/{next/documents → documents}/handles.js +0 -0
- /package/dist/{next/documents → documents}/index.d.ts +0 -0
- /package/dist/{next/documents → documents}/index.js +0 -0
- /package/dist/{next/documents → documents}/internal.js +0 -0
- /package/dist/{next/documents → documents}/line.d.ts +0 -0
- /package/dist/{next/documents → documents}/line.js +0 -0
- /package/dist/{next/documents → documents}/residency.js +0 -0
- /package/dist/{next/host → host}/adapted.js +0 -0
- /package/dist/{next/host → host}/backoff.d.ts +0 -0
- /package/dist/{next/host → host}/backoff.js +0 -0
- /package/dist/{next/host → host}/deadline.d.ts +0 -0
- /package/dist/{next/host → host}/deadline.js +0 -0
- /package/dist/{next/host → host}/dependencies.d.ts +0 -0
- /package/dist/{next/host → host}/dependencies.js +0 -0
- /package/dist/{next/host → host}/destination.js +0 -0
- /package/dist/{next/host → host}/facet.js +0 -0
- /package/dist/{next/host → host}/follow.js +0 -0
- /package/dist/{next/host → host}/index.js +0 -0
- /package/dist/{next/host → host}/members.js +0 -0
- /package/dist/{next/host → host}/parked.js +0 -0
- /package/dist/{next/host → host}/presence.js +0 -0
- /package/dist/{next/host → host}/retry-on.d.ts +0 -0
- /package/dist/{next/host → host}/retry-on.js +0 -0
- /package/dist/{next/host → host}/revocation.js +0 -0
- /package/dist/{next/host → host}/sleep.js +0 -0
- /package/dist/{next/host → host}/uuid.d.ts +0 -0
- /package/dist/{next/host → host}/uuid.js +0 -0
- /package/dist/{next/jobs → jobs}/definition.d.ts +0 -0
- /package/dist/{next/jobs → jobs}/definition.js +0 -0
- /package/dist/{next/jobs → jobs}/index.d.ts +0 -0
- /package/dist/{next/jobs → jobs}/index.js +0 -0
- /package/dist/{next/jobs → jobs}/internal.d.ts +0 -0
- /package/dist/{next/jobs → jobs}/internal.js +0 -0
- /package/dist/{next/jobs → jobs}/persisted.js +0 -0
- /package/dist/{next/jobs → jobs}/running.js +0 -0
- /package/dist/{next/jobs → jobs}/stored.js +0 -0
- /package/dist/{next/link → link}/binary.d.ts +0 -0
- /package/dist/{next/link → link}/errors.d.ts +0 -0
- /package/dist/{next/link → link}/errors.js +0 -0
- /package/dist/{next/link → link}/index.d.ts +0 -0
- /package/dist/{next/link → link}/index.js +0 -0
- /package/dist/{next/link → link}/internal.d.ts +0 -0
- /package/dist/{next/link → link}/internal.js +0 -0
- /package/dist/{next/link → link}/ipc.d.ts +0 -0
- /package/dist/{next/link → link}/ipc.js +0 -0
- /package/dist/{next/link → link}/link.d.ts +0 -0
- /package/dist/{next/link → link}/link.js +0 -0
- /package/dist/{next/link → link}/text.d.ts +0 -0
- /package/dist/{next/link → link}/values.d.ts +0 -0
- /package/dist/{next/link → link}/websocket.d.ts +0 -0
- /package/dist/{next/link → link}/websocket.js +0 -0
- /package/dist/{next-node → node}/http/admission.d.ts +0 -0
- /package/dist/{next-node → node}/http/admission.js +0 -0
- /package/dist/{next-node → node}/http/file.d.ts +0 -0
- /package/dist/{next-node → node}/http/file.js +0 -0
- /package/dist/{next-node → node}/http/headers.d.ts +0 -0
- /package/dist/{next-node → node}/http/incoming.d.ts +0 -0
- /package/dist/{next-node → node}/http/incoming.js +0 -0
- /package/dist/{next-node → node}/http/node.d.ts +0 -0
- /package/dist/{next-node → node}/http/node.js +0 -0
- /package/dist/{next-node → node}/http/response.js +0 -0
- /package/dist/{next-node → node}/plugins/stack.d.ts +0 -0
- /package/dist/{next-node → node}/plugins/stack.js +0 -0
- /package/dist/{next/registries → registries}/contribution.d.ts +0 -0
- /package/dist/{next/registries → registries}/contribution.js +0 -0
- /package/dist/{next/registries → registries}/entries.d.ts +0 -0
- /package/dist/{next/registries → registries}/entries.js +0 -0
- /package/dist/{next/registries → registries}/index.d.ts +0 -0
- /package/dist/{next/registries → registries}/index.js +0 -0
- /package/dist/{next/registries → registries}/internal.d.ts +0 -0
- /package/dist/{next/registries → registries}/internal.js +0 -0
- /package/dist/{next/registries → registries}/registry.js +0 -0
- /package/dist/{next/registries → registries}/value.d.ts +0 -0
- /package/dist/{next/remote → remote}/calls.d.ts +0 -0
- /package/dist/{next/remote → remote}/calls.js +0 -0
- /package/dist/{next/remote → remote}/internal.d.ts +0 -0
- /package/dist/{next/remote → remote}/internal.js +0 -0
- /package/dist/{next/remote → remote}/path.d.ts +0 -0
- /package/dist/{next/remote → remote}/path.js +0 -0
- /package/dist/{next/state → state}/index.js +0 -0
- /package/dist/{next/state → state}/internal.d.ts +0 -0
- /package/dist/{next/state → state}/internal.js +0 -0
- /package/dist/{next/state → state}/writable.js +0 -0
- /package/dist/{next/store → store}/adapter.js +0 -0
- /package/dist/{next/store → store}/allocator.d.ts +0 -0
- /package/dist/{next/store → store}/allocator.js +0 -0
- /package/dist/{next/store → store}/applier.d.ts +0 -0
- /package/dist/{next/store → store}/applier.js +0 -0
- /package/dist/{next/store → store}/apply-batch.js +0 -0
- /package/dist/{next/store → store}/backend.js +0 -0
- /package/dist/{next/store → store}/catalog.js +0 -0
- /package/dist/{next/store → store}/claims.d.ts +0 -0
- /package/dist/{next/store → store}/claims.js +0 -0
- /package/dist/{next/store → store}/columns.d.ts +0 -0
- /package/dist/{next/store → store}/columns.js +0 -0
- /package/dist/{next/store → store}/evaluate.js +0 -0
- /package/dist/{next/store → store}/expression.js +0 -0
- /package/dist/{next/store → store}/index.d.ts +0 -0
- /package/dist/{next/store → store}/index.js +0 -0
- /package/dist/{next/store → store}/jsonl.d.ts +0 -0
- /package/dist/{next/store → store}/jsonl.js +0 -0
- /package/dist/{next/store → store}/outbox.js +0 -0
- /package/dist/{next/store → store}/query.js +0 -0
- /package/dist/{next/store → store}/refusal.d.ts +0 -0
- /package/dist/{next/store → store}/refusal.js +0 -0
- /package/dist/{next/store → store}/rows.js +0 -0
- /package/dist/{next/store → store}/sql.js +0 -0
- /package/dist/{next/store → store}/table-changes.js +0 -0
- /package/dist/{next/store → store}/table-evolve.d.ts +0 -0
- /package/dist/{next/store → store}/table-evolve.js +0 -0
- /package/dist/{next/store → store}/table-history.d.ts +0 -0
- /package/dist/{next/store → store}/table-history.js +0 -0
- /package/dist/{next/store → store}/table-writes.d.ts +0 -0
- /package/dist/{next/store → store}/table.js +0 -0
- /package/dist/{next/store → store}/text.d.ts +0 -0
- /package/dist/{next/store → store}/text.js +0 -0
- /package/dist/{next/store → store}/writes.d.ts +0 -0
- /package/dist/{next/store → store}/writes.js +0 -0
- /package/docs/{next/dependencies → dependencies}/model.md +0 -0
- /package/docs/{next/flow-control → flow-control}/book.md +0 -0
- /package/docs/{next/flow-control → flow-control}/fold/index.html +0 -0
- /package/docs/{next/flow-control → flow-control}/index.html +0 -0
- /package/docs/{next/flow-control → flow-control}/window/index.html +0 -0
- /package/docs/{next/slice-4.md → slice-4.md} +0 -0
- /package/docs/{next/slice-5.md → slice-5.md} +0 -0
- /package/docs/{next/slice-7a.md → slice-7a.md} +0 -0
- /package/docs/{next/slice-8.md → slice-8.md} +0 -0
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
import { type Context } from "../context/index.ts";
|
|
2
|
+
import type { Principal } from "../data/index.ts";
|
|
3
|
+
import type { Host } from "../host/index.ts";
|
|
4
|
+
import { type Language, type MessagesReport } from "./language.ts";
|
|
5
|
+
import { type PageState } from "./page-state.ts";
|
|
6
|
+
/** A client's active language as it follows it: the device's languages can change (a browser's), and it ends. */
|
|
7
|
+
export type LanguageFollower = {
|
|
8
|
+
/** The device's languages changed: the locale is resolved again. */
|
|
9
|
+
setDevice(preferred: readonly string[]): void;
|
|
10
|
+
stop(): void;
|
|
11
|
+
};
|
|
12
|
+
/**
|
|
13
|
+
* Follows the active language on `host` for the device's `preferred` languages: sets the host's language (and calls
|
|
14
|
+
* `changed` with it) at once and at every change of the registry, the user's pick or the device's languages that
|
|
15
|
+
* changes the locale or the catalogs, until `stop`. `report` gets each distinct report once.
|
|
16
|
+
*/
|
|
17
|
+
export declare function followActiveLanguage<P extends Principal>(host: Host<P>, preferred: readonly string[], changed: (language: Language) => void, report: (report: MessagesReport) => void, context: Context): Promise<LanguageFollower>;
|
|
18
|
+
/** `host`'s active language, kept as its page state: `undefined` until a follower sets it (then `t` renders the first catalog). */
|
|
19
|
+
export declare function hostLanguage<P extends Principal>(host: Host<P>): PageState<Language | undefined>;
|
|
20
|
+
//# sourceMappingURL=active-language.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"active-language.d.ts","sourceRoot":"","sources":["../../src/surfaces/active-language.ts"],"names":[],"mappings":"AAMA,OAAO,EAAE,KAAK,OAAO,EAAmB,MAAM,qBAAqB,CAAC;AACpE,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAC;AAClD,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,kBAAkB,CAAC;AAC7C,OAAO,EAAkB,KAAK,QAAQ,EAAE,KAAK,cAAc,EAAiB,MAAM,eAAe,CAAC;AAElG,OAAO,EAAE,KAAK,SAAS,EAAa,MAAM,iBAAiB,CAAC;AAG5D,iHAAiH;AACjH,MAAM,MAAM,gBAAgB,GAAG;IAC9B,oEAAoE;IACpE,SAAS,CAAC,SAAS,EAAE,SAAS,MAAM,EAAE,GAAG,IAAI,CAAC;IAC9C,IAAI,IAAI,IAAI,CAAC;CACb,CAAC;AAEF;;;;GAIG;AACH,wBAAsB,oBAAoB,CAAC,CAAC,SAAS,SAAS,EAC7D,IAAI,EAAE,IAAI,CAAC,CAAC,CAAC,EACb,SAAS,EAAE,SAAS,MAAM,EAAE,EAC5B,OAAO,EAAE,CAAC,QAAQ,EAAE,QAAQ,KAAK,IAAI,EACrC,MAAM,EAAE,CAAC,MAAM,EAAE,cAAc,KAAK,IAAI,EACxC,OAAO,EAAE,OAAO,GACd,OAAO,CAAC,gBAAgB,CAAC,CA4C3B;AAKD,mIAAmI;AACnI,wBAAgB,YAAY,CAAC,CAAC,SAAS,SAAS,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC,CAAC,GAAG,SAAS,CAAC,QAAQ,GAAG,SAAS,CAAC,CAEhG"}
|
|
@@ -0,0 +1,78 @@
|
|
|
1
|
+
// The active language of a client (decision "Messages and languages in the app kit" (3)): the `Translations` registry
|
|
2
|
+
// on the client's host (served there by the kit), the user's `LocaleChoice` (held on the server; until it binds, or
|
|
3
|
+
// when the app serves none, no pick) and the device's languages, combined. The host keeps it as page state
|
|
4
|
+
// (`hostLanguage`), where `useMessages` and `TuiScope.messages` read and follow it; each change also calls the client's
|
|
5
|
+
// writer (`lang` and `dir` on a page). Reports are passed on once each.
|
|
6
|
+
import { withAbortSignal } from "../context/index.js";
|
|
7
|
+
import { createLanguage, resolveLocale } from "./language.js";
|
|
8
|
+
import { LocaleChoice } from "./locale-choice.js";
|
|
9
|
+
import { pageState } from "./page-state.js";
|
|
10
|
+
import { NO_TRANSLATIONS, Translations } from "./translations.js";
|
|
11
|
+
/**
|
|
12
|
+
* Follows the active language on `host` for the device's `preferred` languages: sets the host's language (and calls
|
|
13
|
+
* `changed` with it) at once and at every change of the registry, the user's pick or the device's languages that
|
|
14
|
+
* changes the locale or the catalogs, until `stop`. `report` gets each distinct report once.
|
|
15
|
+
*/
|
|
16
|
+
export async function followActiveLanguage(host, preferred, changed, report, context) {
|
|
17
|
+
const abort = new AbortController();
|
|
18
|
+
const ctx = withAbortSignal(abort.signal, context);
|
|
19
|
+
const state = hostLanguage(host);
|
|
20
|
+
const once = reportOnce(report);
|
|
21
|
+
let translations = NO_TRANSLATIONS;
|
|
22
|
+
let pick = null;
|
|
23
|
+
let device = preferred;
|
|
24
|
+
const update = () => {
|
|
25
|
+
const locale = resolveLocale(pick, device, translations.locales);
|
|
26
|
+
const current = state.read();
|
|
27
|
+
if (current?.locale === locale && current.translations === translations)
|
|
28
|
+
return;
|
|
29
|
+
const language = createLanguage(locale, translations, once);
|
|
30
|
+
state.set(language);
|
|
31
|
+
changed(language);
|
|
32
|
+
};
|
|
33
|
+
update();
|
|
34
|
+
const registry = await host.registry(Translations, ctx);
|
|
35
|
+
translations = registry.value;
|
|
36
|
+
update();
|
|
37
|
+
(await registry.watch(ctx)).start(async (call) => {
|
|
38
|
+
if (call.kind === "value")
|
|
39
|
+
translations = call.value;
|
|
40
|
+
update();
|
|
41
|
+
});
|
|
42
|
+
const choice = host.hold(LocaleChoice, {}, ctx);
|
|
43
|
+
choice.pick.watch(ctx).then((watch) => watch.start(async (call) => {
|
|
44
|
+
if (call.kind === "value")
|
|
45
|
+
pick = call.value;
|
|
46
|
+
update();
|
|
47
|
+
}),
|
|
48
|
+
// The hold ended (the follower stopped) before its first value.
|
|
49
|
+
() => { });
|
|
50
|
+
return {
|
|
51
|
+
setDevice: (next) => {
|
|
52
|
+
device = next;
|
|
53
|
+
update();
|
|
54
|
+
},
|
|
55
|
+
stop: () => {
|
|
56
|
+
abort.abort();
|
|
57
|
+
choice.release();
|
|
58
|
+
},
|
|
59
|
+
};
|
|
60
|
+
}
|
|
61
|
+
/** The page state key of a host's language. */
|
|
62
|
+
const LANGUAGE = "chord.language";
|
|
63
|
+
/** `host`'s active language, kept as its page state: `undefined` until a follower sets it (then `t` renders the first catalog). */
|
|
64
|
+
export function hostLanguage(host) {
|
|
65
|
+
return pageState(host, LANGUAGE, undefined);
|
|
66
|
+
}
|
|
67
|
+
/** `report`, called once per distinct report (by kind, namespace, locale and key). */
|
|
68
|
+
function reportOnce(report) {
|
|
69
|
+
const seen = new Set();
|
|
70
|
+
return (each) => {
|
|
71
|
+
const id = `${each.kind}|${each.namespace}|${"locale" in each ? each.locale : ""}|${each.key}`;
|
|
72
|
+
if (seen.has(id))
|
|
73
|
+
return;
|
|
74
|
+
seen.add(id);
|
|
75
|
+
report(each);
|
|
76
|
+
};
|
|
77
|
+
}
|
|
78
|
+
//# sourceMappingURL=active-language.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"active-language.js","sourceRoot":"","sources":["../../src/surfaces/active-language.ts"],"names":[],"mappings":"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","sourcesContent":["// The active language of a client (decision \"Messages and languages in the app kit\" (3)): the `Translations` registry\n// on the client's host (served there by the kit), the user's `LocaleChoice` (held on the server; until it binds, or\n// when the app serves none, no pick) and the device's languages, combined. The host keeps it as page state\n// (`hostLanguage`), where `useMessages` and `TuiScope.messages` read and follow it; each change also calls the client's\n// writer (`lang` and `dir` on a page). Reports are passed on once each.\n\nimport { type Context, withAbortSignal } from \"../context/index.ts\";\nimport type { Principal } from \"../data/index.ts\";\nimport type { Host } from \"../host/index.ts\";\nimport { createLanguage, type Language, type MessagesReport, resolveLocale } from \"./language.ts\";\nimport { LocaleChoice } from \"./locale-choice.ts\";\nimport { type PageState, pageState } from \"./page-state.ts\";\nimport { NO_TRANSLATIONS, type TranslationIndex, Translations } from \"./translations.ts\";\n\n/** A client's active language as it follows it: the device's languages can change (a browser's), and it ends. */\nexport type LanguageFollower = {\n\t/** The device's languages changed: the locale is resolved again. */\n\tsetDevice(preferred: readonly string[]): void;\n\tstop(): void;\n};\n\n/**\n * Follows the active language on `host` for the device's `preferred` languages: sets the host's language (and calls\n * `changed` with it) at once and at every change of the registry, the user's pick or the device's languages that\n * changes the locale or the catalogs, until `stop`. `report` gets each distinct report once.\n */\nexport async function followActiveLanguage<P extends Principal>(\n\thost: Host<P>,\n\tpreferred: readonly string[],\n\tchanged: (language: Language) => void,\n\treport: (report: MessagesReport) => void,\n\tcontext: Context,\n): Promise<LanguageFollower> {\n\tconst abort = new AbortController();\n\tconst ctx = withAbortSignal(abort.signal, context);\n\tconst state = hostLanguage(host);\n\tconst once = reportOnce(report);\n\tlet translations: TranslationIndex = NO_TRANSLATIONS;\n\tlet pick: string | null = null;\n\tlet device = preferred;\n\tconst update = (): void => {\n\t\tconst locale = resolveLocale(pick, device, translations.locales);\n\t\tconst current = state.read();\n\t\tif (current?.locale === locale && current.translations === translations) return;\n\t\tconst language = createLanguage(locale, translations, once);\n\t\tstate.set(language);\n\t\tchanged(language);\n\t};\n\tupdate();\n\tconst registry = await host.registry(Translations, ctx);\n\ttranslations = registry.value;\n\tupdate();\n\t(await registry.watch(ctx)).start(async (call) => {\n\t\tif (call.kind === \"value\") translations = call.value;\n\t\tupdate();\n\t});\n\tconst choice = host.hold(LocaleChoice, {}, ctx);\n\tchoice.pick.watch(ctx).then(\n\t\t(watch) =>\n\t\t\twatch.start(async (call) => {\n\t\t\t\tif (call.kind === \"value\") pick = call.value;\n\t\t\t\tupdate();\n\t\t\t}),\n\t\t// The hold ended (the follower stopped) before its first value.\n\t\t() => {},\n\t);\n\treturn {\n\t\tsetDevice: (next) => {\n\t\t\tdevice = next;\n\t\t\tupdate();\n\t\t},\n\t\tstop: () => {\n\t\t\tabort.abort();\n\t\t\tchoice.release();\n\t\t},\n\t};\n}\n\n/** The page state key of a host's language. */\nconst LANGUAGE = \"chord.language\";\n\n/** `host`'s active language, kept as its page state: `undefined` until a follower sets it (then `t` renders the first catalog). */\nexport function hostLanguage<P extends Principal>(host: Host<P>): PageState<Language | undefined> {\n\treturn pageState<Language | undefined, P>(host, LANGUAGE, undefined);\n}\n\n/** `report`, called once per distinct report (by kind, namespace, locale and key). */\nfunction reportOnce(report: (report: MessagesReport) => void): (report: MessagesReport) => void {\n\tconst seen = new Set<string>();\n\treturn (each) => {\n\t\tconst id = `${each.kind}|${each.namespace}|${\"locale\" in each ? each.locale : \"\"}|${each.key}`;\n\t\tif (seen.has(id)) return;\n\t\tseen.add(id);\n\t\treport(each);\n\t};\n}\n"]}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
import { type Context } from "../context/index.ts";
|
|
2
|
+
import type { Principal } from "../data/index.ts";
|
|
3
|
+
import type { Host } from "../host/index.ts";
|
|
4
|
+
import { type Theme } from "./themes.ts";
|
|
5
|
+
/** A client's active theme as it follows it: its mode can change (a page's colour scheme), and it ends. */
|
|
6
|
+
export type ThemeFollower = {
|
|
7
|
+
/** The client's mode changed: the active theme is chosen again. */
|
|
8
|
+
setMode(mode: Theme["mode"]): void;
|
|
9
|
+
stop(): void;
|
|
10
|
+
};
|
|
11
|
+
/**
|
|
12
|
+
* Follows the active theme on `host` for `mode`, calling `changed` with it at once (the fallback or the first of its
|
|
13
|
+
* mode) and at every change of the registry, the user's pick or the mode, until `stop`.
|
|
14
|
+
*/
|
|
15
|
+
export declare function followActiveTheme<P extends Principal>(host: Host<P>, mode: Theme["mode"], changed: (theme: Theme) => void, context: Context): Promise<ThemeFollower>;
|
|
16
|
+
//# sourceMappingURL=active-theme.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"active-theme.d.ts","sourceRoot":"","sources":["../../src/surfaces/active-theme.ts"],"names":[],"mappings":"AAKA,OAAO,EAAE,KAAK,OAAO,EAAmB,MAAM,qBAAqB,CAAC;AACpE,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAC;AAClD,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,kBAAkB,CAAC;AAE7C,OAAO,EAAe,KAAK,KAAK,EAA0B,MAAM,aAAa,CAAC;AAE9E,2GAA2G;AAC3G,MAAM,MAAM,aAAa,GAAG;IAC3B,mEAAmE;IACnE,OAAO,CAAC,IAAI,EAAE,KAAK,CAAC,MAAM,CAAC,GAAG,IAAI,CAAC;IACnC,IAAI,IAAI,IAAI,CAAC;CACb,CAAC;AAEF;;;GAGG;AACH,wBAAsB,iBAAiB,CAAC,CAAC,SAAS,SAAS,EAC1D,IAAI,EAAE,IAAI,CAAC,CAAC,CAAC,EACb,IAAI,EAAE,KAAK,CAAC,MAAM,CAAC,EACnB,OAAO,EAAE,CAAC,KAAK,EAAE,KAAK,KAAK,IAAI,EAC/B,OAAO,EAAE,OAAO,GACd,OAAO,CAAC,aAAa,CAAC,CAmCxB"}
|
|
@@ -0,0 +1,47 @@
|
|
|
1
|
+
// The active theme of a client (slice 11 §4b): the `Themes` registry on the client's host (served there by the kit),
|
|
2
|
+
// the user's `ThemeChoice` (held on the server; until it binds, or when the app serves none, the first theme of each
|
|
3
|
+
// mode) and the client's mode, combined; each change calls the client's writer (CSS variables on a page, the colour
|
|
4
|
+
// lookup in a terminal).
|
|
5
|
+
import { withAbortSignal } from "../context/index.js";
|
|
6
|
+
import { ThemeChoice } from "./theme-choice.js";
|
|
7
|
+
import { activeTheme, Themes } from "./themes.js";
|
|
8
|
+
/**
|
|
9
|
+
* Follows the active theme on `host` for `mode`, calling `changed` with it at once (the fallback or the first of its
|
|
10
|
+
* mode) and at every change of the registry, the user's pick or the mode, until `stop`.
|
|
11
|
+
*/
|
|
12
|
+
export async function followActiveTheme(host, mode, changed, context) {
|
|
13
|
+
const abort = new AbortController();
|
|
14
|
+
const ctx = withAbortSignal(abort.signal, context);
|
|
15
|
+
let themes = [];
|
|
16
|
+
let pick = { dark: null, light: null };
|
|
17
|
+
let current = mode;
|
|
18
|
+
const update = () => changed(activeTheme(themes, pick, current));
|
|
19
|
+
update();
|
|
20
|
+
const registry = await host.registry(Themes, ctx);
|
|
21
|
+
themes = registry.value;
|
|
22
|
+
update();
|
|
23
|
+
(await registry.watch(ctx)).start(async (call) => {
|
|
24
|
+
if (call.kind === "value")
|
|
25
|
+
themes = call.value;
|
|
26
|
+
update();
|
|
27
|
+
});
|
|
28
|
+
const choice = host.hold(ThemeChoice, {}, ctx);
|
|
29
|
+
choice.pick.watch(ctx).then((watch) => watch.start(async (call) => {
|
|
30
|
+
if (call.kind === "value")
|
|
31
|
+
pick = call.value;
|
|
32
|
+
update();
|
|
33
|
+
}),
|
|
34
|
+
// The hold ended (the follower stopped) before its first value.
|
|
35
|
+
() => { });
|
|
36
|
+
return {
|
|
37
|
+
setMode: (next) => {
|
|
38
|
+
current = next;
|
|
39
|
+
update();
|
|
40
|
+
},
|
|
41
|
+
stop: () => {
|
|
42
|
+
abort.abort();
|
|
43
|
+
choice.release();
|
|
44
|
+
},
|
|
45
|
+
};
|
|
46
|
+
}
|
|
47
|
+
//# sourceMappingURL=active-theme.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"active-theme.js","sourceRoot":"","sources":["../../src/surfaces/active-theme.ts"],"names":[],"mappings":"AAAA,qHAAqH;AACrH,qHAAqH;AACrH,oHAAoH;AACpH,yBAAyB;AAEzB,OAAO,EAAgB,eAAe,EAAE,MAAM,qBAAqB,CAAC;AAGpE,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAChD,OAAO,EAAE,WAAW,EAA8B,MAAM,EAAE,MAAM,aAAa,CAAC;AAS9E;;;GAGG;AACH,MAAM,CAAC,KAAK,UAAU,iBAAiB,CACtC,IAAa,EACb,IAAmB,EACnB,OAA+B,EAC/B,OAAgB;IAEhB,MAAM,KAAK,GAAG,IAAI,eAAe,EAAE,CAAC;IACpC,MAAM,GAAG,GAAG,eAAe,CAAC,KAAK,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IACnD,IAAI,MAAM,GAAqB,EAAE,CAAC;IAClC,IAAI,IAAI,GAAc,EAAE,IAAI,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC;IAClD,IAAI,OAAO,GAAG,IAAI,CAAC;IACnB,MAAM,MAAM,GAAG,GAAS,EAAE,CAAC,OAAO,CAAC,WAAW,CAAC,MAAM,EAAE,IAAI,EAAE,OAAO,CAAC,CAAC,CAAC;IACvE,MAAM,EAAE,CAAC;IACT,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,QAAQ,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;IAClD,MAAM,GAAG,QAAQ,CAAC,KAAK,CAAC;IACxB,MAAM,EAAE,CAAC;IACT,CAAC,MAAM,QAAQ,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,KAAK,CAAC,KAAK,EAAE,IAAI,EAAE,EAAE;QAChD,IAAI,IAAI,CAAC,IAAI,KAAK,OAAO;YAAE,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC;QAC/C,MAAM,EAAE,CAAC;IACV,CAAC,CAAC,CAAC;IACH,MAAM,MAAM,GAAG,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,EAAE,EAAE,GAAG,CAAC,CAAC;IAC/C,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,CAC1B,CAAC,KAAK,EAAE,EAAE,CACT,KAAK,CAAC,KAAK,CAAC,KAAK,EAAE,IAAI,EAAE,EAAE;QAC1B,IAAI,IAAI,CAAC,IAAI,KAAK,OAAO;YAAE,IAAI,GAAG,IAAI,CAAC,KAAkB,CAAC;QAC1D,MAAM,EAAE,CAAC;IACV,CAAC,CAAC;IACH,gEAAgE;IAChE,GAAG,EAAE,GAAE,CAAC,CACR,CAAC;IACF,OAAO;QACN,OAAO,EAAE,CAAC,IAAI,EAAE,EAAE;YACjB,OAAO,GAAG,IAAI,CAAC;YACf,MAAM,EAAE,CAAC;QACV,CAAC;QACD,IAAI,EAAE,GAAG,EAAE;YACV,KAAK,CAAC,KAAK,EAAE,CAAC;YACd,MAAM,CAAC,OAAO,EAAE,CAAC;QAClB,CAAC;KACD,CAAC;AACH,CAAC","sourcesContent":["// The active theme of a client (slice 11 §4b): the `Themes` registry on the client's host (served there by the kit),\n// the user's `ThemeChoice` (held on the server; until it binds, or when the app serves none, the first theme of each\n// mode) and the client's mode, combined; each change calls the client's writer (CSS variables on a page, the colour\n// lookup in a terminal).\n\nimport { type Context, withAbortSignal } from \"../context/index.ts\";\nimport type { Principal } from \"../data/index.ts\";\nimport type { Host } from \"../host/index.ts\";\nimport { ThemeChoice } from \"./theme-choice.ts\";\nimport { activeTheme, type Theme, type ThemePick, Themes } from \"./themes.ts\";\n\n/** A client's active theme as it follows it: its mode can change (a page's colour scheme), and it ends. */\nexport type ThemeFollower = {\n\t/** The client's mode changed: the active theme is chosen again. */\n\tsetMode(mode: Theme[\"mode\"]): void;\n\tstop(): void;\n};\n\n/**\n * Follows the active theme on `host` for `mode`, calling `changed` with it at once (the fallback or the first of its\n * mode) and at every change of the registry, the user's pick or the mode, until `stop`.\n */\nexport async function followActiveTheme<P extends Principal>(\n\thost: Host<P>,\n\tmode: Theme[\"mode\"],\n\tchanged: (theme: Theme) => void,\n\tcontext: Context,\n): Promise<ThemeFollower> {\n\tconst abort = new AbortController();\n\tconst ctx = withAbortSignal(abort.signal, context);\n\tlet themes: readonly Theme[] = [];\n\tlet pick: ThemePick = { dark: null, light: null };\n\tlet current = mode;\n\tconst update = (): void => changed(activeTheme(themes, pick, current));\n\tupdate();\n\tconst registry = await host.registry(Themes, ctx);\n\tthemes = registry.value;\n\tupdate();\n\t(await registry.watch(ctx)).start(async (call) => {\n\t\tif (call.kind === \"value\") themes = call.value;\n\t\tupdate();\n\t});\n\tconst choice = host.hold(ThemeChoice, {}, ctx);\n\tchoice.pick.watch(ctx).then(\n\t\t(watch) =>\n\t\t\twatch.start(async (call) => {\n\t\t\t\tif (call.kind === \"value\") pick = call.value as ThemePick;\n\t\t\t\tupdate();\n\t\t\t}),\n\t\t// The hold ended (the follower stopped) before its first value.\n\t\t() => {},\n\t);\n\treturn {\n\t\tsetMode: (next) => {\n\t\t\tcurrent = next;\n\t\t\tupdate();\n\t\t},\n\t\tstop: () => {\n\t\t\tabort.abort();\n\t\t\tchoice.release();\n\t\t},\n\t};\n}\n"]}
|
|
@@ -0,0 +1,96 @@
|
|
|
1
|
+
import type { TelemetryContext } from "@earendil-works/pi-telemetry";
|
|
2
|
+
import { type Context } from "../context/index.ts";
|
|
3
|
+
import type { Principal } from "../data/index.ts";
|
|
4
|
+
import { type Host, type HostError, type PluginFacet, type PluginFailure } from "../host/index.ts";
|
|
5
|
+
import type { Link } from "../link/index.ts";
|
|
6
|
+
import { type ConnectionState, type LoopEnvironment, type SocketEvents } from "./connection.ts";
|
|
7
|
+
import type { MessagesReport } from "./language.ts";
|
|
8
|
+
import { type ClientModules, type RegisteredScript } from "./registered.ts";
|
|
9
|
+
import type { ScriptEntry, ScriptSet, ScriptsContract } from "./scripts.ts";
|
|
10
|
+
/**
|
|
11
|
+
* What a client reports: its host's errors, plugins left out at a load or kept old at a reload, a failed update, a
|
|
12
|
+
* plugin's stylesheet that did not load (`error`) or not within 10 s (`timeout`; this does not itself prevent the
|
|
13
|
+
* plugin's new code).
|
|
14
|
+
*/
|
|
15
|
+
export type ClientError = {
|
|
16
|
+
readonly kind: "host";
|
|
17
|
+
readonly error: HostError;
|
|
18
|
+
} | {
|
|
19
|
+
readonly kind: "plugins";
|
|
20
|
+
readonly failed: readonly PluginFailure[];
|
|
21
|
+
} | {
|
|
22
|
+
readonly kind: "update_failed";
|
|
23
|
+
readonly error: unknown;
|
|
24
|
+
} | {
|
|
25
|
+
readonly kind: "stylesheet_failed";
|
|
26
|
+
readonly plugin: string;
|
|
27
|
+
readonly url: string;
|
|
28
|
+
readonly reason: "error" | "timeout";
|
|
29
|
+
}
|
|
30
|
+
/** A message rendered by a fallback, a contributed message that threw, a foreign message (each once). */
|
|
31
|
+
| {
|
|
32
|
+
readonly kind: "messages";
|
|
33
|
+
readonly report: MessagesReport;
|
|
34
|
+
};
|
|
35
|
+
/** What `startClient` takes. */
|
|
36
|
+
export type ClientOptions<P extends Principal> = {
|
|
37
|
+
/** The kind's scripts object (`WebScripts`, `TuiScripts`). */
|
|
38
|
+
readonly scripts: ScriptsContract;
|
|
39
|
+
/** The hash of the base bundle this client runs. */
|
|
40
|
+
readonly base: string;
|
|
41
|
+
/** The plugin scripts it started with (the combined file's), in any order. */
|
|
42
|
+
readonly initial: readonly RegisteredScript[];
|
|
43
|
+
/** The modules its plugin scripts import, by specifier. */
|
|
44
|
+
readonly modules: ClientModules;
|
|
45
|
+
/** The app's own facets, loaded with the plugins. */
|
|
46
|
+
readonly core: readonly PluginFacet<P>[];
|
|
47
|
+
/** Opens one socket to the server and its link; the socket reports to `events`. */
|
|
48
|
+
readonly open: (events: SocketEvents) => Link;
|
|
49
|
+
/** Fetches a plugin's script of a set (at its `url`), which registers itself. */
|
|
50
|
+
readonly fetchScript: (entry: ScriptEntry) => Promise<RegisteredScript>;
|
|
51
|
+
/**
|
|
52
|
+
* The server's current base bundle hash, asked before each reconnect (`undefined`: unknown, try again): another one
|
|
53
|
+
* means this client is outdated (a new protocol comes with a new base bundle).
|
|
54
|
+
*/
|
|
55
|
+
readonly serverBase: () => Promise<string | undefined>;
|
|
56
|
+
/** This client's code is outdated: the app starts it over (a page reloads); the loop has stopped. */
|
|
57
|
+
readonly outdated: () => void;
|
|
58
|
+
/** Asked before each reconnect; `false` stops the loop (a guest's ended share). */
|
|
59
|
+
readonly canRetry?: () => Promise<boolean>;
|
|
60
|
+
readonly onConnection?: (state: ConnectionState) => void;
|
|
61
|
+
/** The plugins' stylesheets (a page's; a terminal has none). */
|
|
62
|
+
readonly styles?: ClientStyles;
|
|
63
|
+
readonly environment: LoopEnvironment;
|
|
64
|
+
/**
|
|
65
|
+
* Makes the host's telemetry adapter (none: NOOP); `incarnation` names the host's run (it is read at the adapter's
|
|
66
|
+
* first span, after the host was made).
|
|
67
|
+
*/
|
|
68
|
+
readonly telemetry?: (incarnation: () => string) => TelemetryContext;
|
|
69
|
+
readonly onError: (error: ClientError) => void;
|
|
70
|
+
};
|
|
71
|
+
/**
|
|
72
|
+
* A page's plugin stylesheets around each update: `prepare` before the host reloads, `settle` after it (or alone when
|
|
73
|
+
* no script changed).
|
|
74
|
+
*/
|
|
75
|
+
export type ClientStyles = {
|
|
76
|
+
/**
|
|
77
|
+
* Fetches, without applying them, the stylesheets of `set` that differ from those of the code each plugin runs or
|
|
78
|
+
* did not load; resolves once each loaded, failed or waited 10 s, or when `signal` aborts (the client stops: what it
|
|
79
|
+
* prepared is removed, `settle` never follows).
|
|
80
|
+
*/
|
|
81
|
+
prepare(set: ScriptSet, signal: AbortSignal): Promise<void>;
|
|
82
|
+
/**
|
|
83
|
+
* Applies each prepared stylesheet whose plugin runs its new code now and retires the one it replaces; a plugin that
|
|
84
|
+
* `kept` names (its new script failed: it kept its old code) keeps its old one, its prepared one dropped unapplied;
|
|
85
|
+
* the stylesheets of plugins no longer in `set` go.
|
|
86
|
+
*/
|
|
87
|
+
settle(set: ScriptSet, kept: ReadonlySet<string>): void;
|
|
88
|
+
};
|
|
89
|
+
/** A running client: its host, once its plugins are loaded, and its stop. */
|
|
90
|
+
export type Client<P extends Principal> = {
|
|
91
|
+
readonly host: Host<P>;
|
|
92
|
+
stop(context: Context): Promise<void>;
|
|
93
|
+
};
|
|
94
|
+
/** Starts a client: its host loaded with the initial scripts, its link kept, its plugins kept current. */
|
|
95
|
+
export declare function startClient<P extends Principal>(options: ClientOptions<P>): Promise<Client<P>>;
|
|
96
|
+
//# sourceMappingURL=client.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../../src/surfaces/client.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,264 @@
|
|
|
1
|
+
// A client host with its plugins (slice 11 §2, §4, decisions "Slice 11, P4" to "P6"): what a page and a terminal's
|
|
2
|
+
// sandbox both run. A client host (no address) loads the plugin scripts it started with beside the app's core facets,
|
|
3
|
+
// keeps its link to the server with the connection loop, and holds the kind's scripts object: a new set fetches the
|
|
4
|
+
// changed scripts and reloads the host in place (a failed plugin keeps its old facet; a failed fetch is tried again),
|
|
5
|
+
// a page's new stylesheets loaded before the reload and each plugin left with the one of the code it runs; a new base
|
|
6
|
+
// bundle means this client's code is outdated, which the app answers by starting over (a page reloads). The surface
|
|
7
|
+
// specifics (how a socket opens, how a script is fetched, what is outdated, the stylesheets) are given.
|
|
8
|
+
import { BACKGROUND_CONTEXT, withAbortSignal } from "../context/index.js";
|
|
9
|
+
import { createHost } from "../host/index.js";
|
|
10
|
+
import { keepConnected } from "./connection.js";
|
|
11
|
+
import { LoadedFacets } from "./loaded.js";
|
|
12
|
+
import { evaluateRegistered } from "./registered.js";
|
|
13
|
+
/** Starts a client: its host loaded with the initial scripts, its link kept, its plugins kept current. */
|
|
14
|
+
export async function startClient(options) {
|
|
15
|
+
const context = BACKGROUND_CONTEXT;
|
|
16
|
+
let made;
|
|
17
|
+
// Read at the first span, which starts once the host exists (in its load at the earliest).
|
|
18
|
+
const telemetry = options.telemetry?.(() => made.incarnation);
|
|
19
|
+
const host = createHost({ telemetry, onError: (error) => options.onError({ kind: "host", error }) });
|
|
20
|
+
made = host;
|
|
21
|
+
const entries = options.initial.map((script) => entryOf(script, options.modules));
|
|
22
|
+
const { loaded, report } = await LoadedFacets.load(host, options.core, entries, context);
|
|
23
|
+
if (report.failed.length > 0)
|
|
24
|
+
options.onError({ kind: "plugins", failed: report.failed });
|
|
25
|
+
const updates = new Updates(host, loaded, new Set(report.failed.map(({ plugin }) => plugin)), options);
|
|
26
|
+
const loop = connect(host, options, (state) => {
|
|
27
|
+
if (state === "connected")
|
|
28
|
+
updates.reconnected(context);
|
|
29
|
+
});
|
|
30
|
+
await updates.follow(context);
|
|
31
|
+
return {
|
|
32
|
+
host,
|
|
33
|
+
stop: async (ctx) => {
|
|
34
|
+
loop.stop();
|
|
35
|
+
await updates.stop();
|
|
36
|
+
await host.close(ctx);
|
|
37
|
+
},
|
|
38
|
+
};
|
|
39
|
+
}
|
|
40
|
+
/**
|
|
41
|
+
* Keeps `host`'s parent link to the server, asking `serverBase` and `canRetry` before every reconnect; `onState` hears
|
|
42
|
+
* each state after the app's `onConnection`.
|
|
43
|
+
*/
|
|
44
|
+
function connect(host, options, onState) {
|
|
45
|
+
return keepConnected({
|
|
46
|
+
open: (events) => {
|
|
47
|
+
// The loop and the host both follow the link's close; a link has one close listener.
|
|
48
|
+
const link = new SharedClose(options.open(events));
|
|
49
|
+
// A client's parent is the server; the principal only labels the link (a client serves no remote types).
|
|
50
|
+
host.connect(link, { principal: { kind: "server" } }, BACKGROUND_CONTEXT);
|
|
51
|
+
return link;
|
|
52
|
+
},
|
|
53
|
+
onState: (state) => {
|
|
54
|
+
options.onConnection?.(state);
|
|
55
|
+
onState(state);
|
|
56
|
+
},
|
|
57
|
+
canRetry: async () => {
|
|
58
|
+
const base = await options.serverBase();
|
|
59
|
+
if (base !== undefined && base !== options.base) {
|
|
60
|
+
options.outdated();
|
|
61
|
+
return false;
|
|
62
|
+
}
|
|
63
|
+
return (await options.canRetry?.()) ?? true;
|
|
64
|
+
},
|
|
65
|
+
environment: options.environment,
|
|
66
|
+
});
|
|
67
|
+
}
|
|
68
|
+
/** A link whose close several follow (the host and the connection loop): each listener added runs once it closes. */
|
|
69
|
+
class SharedClose {
|
|
70
|
+
#link;
|
|
71
|
+
#listeners = [];
|
|
72
|
+
#closed = false;
|
|
73
|
+
constructor(link) {
|
|
74
|
+
this.#link = link;
|
|
75
|
+
link.onClose(() => {
|
|
76
|
+
this.#closed = true;
|
|
77
|
+
for (const listener of this.#listeners.splice(0))
|
|
78
|
+
listener();
|
|
79
|
+
});
|
|
80
|
+
}
|
|
81
|
+
send(message) {
|
|
82
|
+
this.#link.send(message);
|
|
83
|
+
}
|
|
84
|
+
onMessage(listener) {
|
|
85
|
+
this.#link.onMessage(listener);
|
|
86
|
+
}
|
|
87
|
+
close() {
|
|
88
|
+
this.#link.close();
|
|
89
|
+
}
|
|
90
|
+
onClose(listener) {
|
|
91
|
+
if (this.#closed)
|
|
92
|
+
listener();
|
|
93
|
+
else
|
|
94
|
+
this.#listeners.push(listener);
|
|
95
|
+
}
|
|
96
|
+
}
|
|
97
|
+
/** `script` as one plugin of a complete set: its digest, and its evaluation with `modules` when it is new. */
|
|
98
|
+
function entryOf(script, modules) {
|
|
99
|
+
return {
|
|
100
|
+
name: script.plugin,
|
|
101
|
+
digest: script.digest,
|
|
102
|
+
prepare: () => {
|
|
103
|
+
try {
|
|
104
|
+
return { kind: "facet", facet: evaluateRegistered(script, modules), digest: script.digest };
|
|
105
|
+
}
|
|
106
|
+
catch (error) {
|
|
107
|
+
return { kind: "failed", error };
|
|
108
|
+
}
|
|
109
|
+
},
|
|
110
|
+
};
|
|
111
|
+
}
|
|
112
|
+
/** The first pause before a failed update is tried again: 1 s, doubling from there. */
|
|
113
|
+
const UPDATE_RETRY_INITIAL_MS = 1000;
|
|
114
|
+
/** The longest pause between tries of a failed update: 30 s. */
|
|
115
|
+
const UPDATE_RETRY_MAX_MS = 30_000;
|
|
116
|
+
/**
|
|
117
|
+
* The client's plugin updates: it holds the scripts object and applies each new set in order (fetching the changed
|
|
118
|
+
* scripts, loading their stylesheets, reloading the host with the complete set, settling the stylesheets); a new base
|
|
119
|
+
* calls `outdated` instead. An update that failed (a script that did not load) is tried again after a growing pause (1 s
|
|
120
|
+
* doubling to 30 s) until it applies or a newer set replaces it: the scripts object shows nothing new until the next
|
|
121
|
+
* rollout or reconnect.
|
|
122
|
+
*/
|
|
123
|
+
class Updates {
|
|
124
|
+
#host;
|
|
125
|
+
#loaded;
|
|
126
|
+
#options;
|
|
127
|
+
/**
|
|
128
|
+
* The script each plugin runs, by plugin: a plugin whose new script failed keeps its old one here, so a later set
|
|
129
|
+
* with that script (a reconnect's snapshot) tries it again.
|
|
130
|
+
*/
|
|
131
|
+
#scripts = new Map();
|
|
132
|
+
#abort = new AbortController();
|
|
133
|
+
#release;
|
|
134
|
+
/** The newest set shown: a retry applies only it. */
|
|
135
|
+
#latest;
|
|
136
|
+
/** The updates in order: one at a time, a retry's among them. */
|
|
137
|
+
#applying = Promise.resolve();
|
|
138
|
+
/** The pending retry's cancel and the pause it waited (0: none waited yet). */
|
|
139
|
+
#retry;
|
|
140
|
+
#pause = 0;
|
|
141
|
+
constructor(host, loaded, left, options) {
|
|
142
|
+
this.#host = host;
|
|
143
|
+
this.#loaded = loaded;
|
|
144
|
+
this.#options = options;
|
|
145
|
+
for (const script of options.initial)
|
|
146
|
+
if (!left.has(script.plugin))
|
|
147
|
+
this.#scripts.set(script.plugin, script);
|
|
148
|
+
}
|
|
149
|
+
/** Holds the scripts object and applies every set it shows, the first included (a reconnect's snapshot too). */
|
|
150
|
+
async follow(context) {
|
|
151
|
+
const held = this.#host.hold(this.#options.scripts, {}, context);
|
|
152
|
+
this.#release = () => held.release();
|
|
153
|
+
const watch = await held.set.watch(withAbortSignal(this.#abort.signal, context));
|
|
154
|
+
watch.start(async (call, ctx) => {
|
|
155
|
+
if (call.kind !== "value")
|
|
156
|
+
return;
|
|
157
|
+
const set = call.value;
|
|
158
|
+
this.#latest = set;
|
|
159
|
+
this.#retry?.cancel();
|
|
160
|
+
this.#retry = undefined;
|
|
161
|
+
this.#pause = 0;
|
|
162
|
+
await this.#queue(set, ctx);
|
|
163
|
+
});
|
|
164
|
+
}
|
|
165
|
+
/**
|
|
166
|
+
* The link is back: the newest set is applied again when this client does not run all of it (a plugin kept its old
|
|
167
|
+
* code), since the scripts object shows an unchanged set no second time.
|
|
168
|
+
*/
|
|
169
|
+
reconnected(context) {
|
|
170
|
+
const set = this.#latest;
|
|
171
|
+
if (set !== undefined && !this.#runsAll(set))
|
|
172
|
+
void this.#queue(set, context);
|
|
173
|
+
}
|
|
174
|
+
/** Stops following: the watch ends, the hold is released, a pending retry is dropped. */
|
|
175
|
+
async stop() {
|
|
176
|
+
this.#abort.abort();
|
|
177
|
+
this.#retry?.cancel();
|
|
178
|
+
this.#retry = undefined;
|
|
179
|
+
this.#release?.();
|
|
180
|
+
}
|
|
181
|
+
/** Applies `set` after the updates before it, unless a newer set replaced it meanwhile. */
|
|
182
|
+
#queue(set, context) {
|
|
183
|
+
const applied = this.#applying.then(async () => {
|
|
184
|
+
if (this.#latest !== set || this.#abort.signal.aborted)
|
|
185
|
+
return;
|
|
186
|
+
if (!(await this.#apply(set, context)))
|
|
187
|
+
this.#retryLater(set, context);
|
|
188
|
+
});
|
|
189
|
+
this.#applying = applied;
|
|
190
|
+
return applied;
|
|
191
|
+
}
|
|
192
|
+
/** Tries `set` again after the next pause (1 s doubling to 30 s). */
|
|
193
|
+
#retryLater(set, context) {
|
|
194
|
+
this.#pause = this.#pause === 0 ? UPDATE_RETRY_INITIAL_MS : Math.min(this.#pause * 2, UPDATE_RETRY_MAX_MS);
|
|
195
|
+
this.#retry = {
|
|
196
|
+
cancel: this.#options.environment.after(this.#pause, () => {
|
|
197
|
+
this.#retry = undefined;
|
|
198
|
+
void this.#queue(set, context);
|
|
199
|
+
}),
|
|
200
|
+
};
|
|
201
|
+
}
|
|
202
|
+
/**
|
|
203
|
+
* Applies `set`: a new base calls `outdated`; else the changed scripts fetched, their new stylesheets loaded, the
|
|
204
|
+
* host reloaded with all and the stylesheets settled. `false` when it failed (reported `update_failed`): it is tried
|
|
205
|
+
* again.
|
|
206
|
+
*/
|
|
207
|
+
async #apply(set, context) {
|
|
208
|
+
const options = this.#options;
|
|
209
|
+
if (set.base !== options.base) {
|
|
210
|
+
options.outdated();
|
|
211
|
+
return true;
|
|
212
|
+
}
|
|
213
|
+
// The first frame usually shows what this client runs already: nothing to reload.
|
|
214
|
+
const changed = !this.#runsAll(set);
|
|
215
|
+
try {
|
|
216
|
+
const scripts = [];
|
|
217
|
+
if (changed) {
|
|
218
|
+
for (const entry of set.plugins) {
|
|
219
|
+
const known = this.#scripts.get(entry.name);
|
|
220
|
+
scripts.push(known?.digest === entry.digest ? known : await options.fetchScript(entry));
|
|
221
|
+
}
|
|
222
|
+
}
|
|
223
|
+
await options.styles?.prepare(set, this.#abort.signal);
|
|
224
|
+
if (this.#abort.signal.aborted)
|
|
225
|
+
return true;
|
|
226
|
+
const kept = changed ? await this.#reload(scripts, context) : new Set();
|
|
227
|
+
options.styles?.settle(set, kept);
|
|
228
|
+
return true;
|
|
229
|
+
}
|
|
230
|
+
catch (error) {
|
|
231
|
+
options.onError({ kind: "update_failed", error });
|
|
232
|
+
return false;
|
|
233
|
+
}
|
|
234
|
+
}
|
|
235
|
+
/** Whether this client runs every script of `set` and nothing else. */
|
|
236
|
+
#runsAll(set) {
|
|
237
|
+
const running = this.#scripts;
|
|
238
|
+
return (set.plugins.length === running.size &&
|
|
239
|
+
set.plugins.every((entry) => running.get(entry.name)?.digest === entry.digest));
|
|
240
|
+
}
|
|
241
|
+
/**
|
|
242
|
+
* Reloads the host with `scripts`, the complete set, and records the script each plugin runs now; the plugins that
|
|
243
|
+
* kept their old code (or, added, were left out).
|
|
244
|
+
*/
|
|
245
|
+
async #reload(scripts, context) {
|
|
246
|
+
const options = this.#options;
|
|
247
|
+
const entries = scripts.map((script) => entryOf(script, options.modules));
|
|
248
|
+
const report = await this.#loaded.reload(this.#host, entries, context);
|
|
249
|
+
const kept = new Set(report.failed.map(({ plugin }) => plugin));
|
|
250
|
+
const running = new Map();
|
|
251
|
+
for (const script of scripts) {
|
|
252
|
+
const runs = kept.has(script.plugin) ? this.#scripts.get(script.plugin) : script;
|
|
253
|
+
if (runs !== undefined)
|
|
254
|
+
running.set(script.plugin, runs);
|
|
255
|
+
}
|
|
256
|
+
this.#scripts.clear();
|
|
257
|
+
for (const [plugin, script] of running)
|
|
258
|
+
this.#scripts.set(plugin, script);
|
|
259
|
+
if (report.failed.length > 0)
|
|
260
|
+
options.onError({ kind: "plugins", failed: report.failed });
|
|
261
|
+
return kept;
|
|
262
|
+
}
|
|
263
|
+
}
|
|
264
|
+
//# sourceMappingURL=client.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"client.js","sourceRoot":"","sources":["../../src/surfaces/client.ts"],"names":[],"mappings":"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","sourcesContent":["// A client host with its plugins (slice 11 §2, §4, decisions \"Slice 11, P4\" to \"P6\"): what a page and a terminal's\n// sandbox both run. A client host (no address) loads the plugin scripts it started with beside the app's core facets,\n// keeps its link to the server with the connection loop, and holds the kind's scripts object: a new set fetches the\n// changed scripts and reloads the host in place (a failed plugin keeps its old facet; a failed fetch is tried again),\n// a page's new stylesheets loaded before the reload and each plugin left with the one of the code it runs; a new base\n// bundle means this client's code is outdated, which the app answers by starting over (a page reloads). The surface\n// specifics (how a socket opens, how a script is fetched, what is outdated, the stylesheets) are given.\n\nimport type { TelemetryContext } from \"@earendil-works/pi-telemetry\";\nimport { BACKGROUND_CONTEXT, type Context, withAbortSignal } from \"../context/index.ts\";\nimport type { Principal } from \"../data/index.ts\";\nimport { createHost, type Host, type HostError, type PluginFacet, type PluginFailure } from \"../host/index.ts\";\nimport type { Link } from \"../link/index.ts\";\nimport { type ConnectionState, keepConnected, type LoopEnvironment, type SocketEvents } from \"./connection.ts\";\nimport type { MessagesReport } from \"./language.ts\";\nimport { LoadedFacets, type SetEntry } from \"./loaded.ts\";\nimport { type ClientModules, evaluateRegistered, type RegisteredScript } from \"./registered.ts\";\nimport type { ScriptEntry, ScriptSet, ScriptsContract } from \"./scripts.ts\";\n\n/**\n * What a client reports: its host's errors, plugins left out at a load or kept old at a reload, a failed update, a\n * plugin's stylesheet that did not load (`error`) or not within 10 s (`timeout`; this does not itself prevent the\n * plugin's new code).\n */\nexport type ClientError =\n\t| { readonly kind: \"host\"; readonly error: HostError }\n\t| { readonly kind: \"plugins\"; readonly failed: readonly PluginFailure[] }\n\t| { readonly kind: \"update_failed\"; readonly error: unknown }\n\t| {\n\t\t\treadonly kind: \"stylesheet_failed\";\n\t\t\treadonly plugin: string;\n\t\t\treadonly url: string;\n\t\t\treadonly reason: \"error\" | \"timeout\";\n\t }\n\t/** A message rendered by a fallback, a contributed message that threw, a foreign message (each once). */\n\t| { readonly kind: \"messages\"; readonly report: MessagesReport };\n\n/** What `startClient` takes. */\nexport type ClientOptions<P extends Principal> = {\n\t/** The kind's scripts object (`WebScripts`, `TuiScripts`). */\n\treadonly scripts: ScriptsContract;\n\t/** The hash of the base bundle this client runs. */\n\treadonly base: string;\n\t/** The plugin scripts it started with (the combined file's), in any order. */\n\treadonly initial: readonly RegisteredScript[];\n\t/** The modules its plugin scripts import, by specifier. */\n\treadonly modules: ClientModules;\n\t/** The app's own facets, loaded with the plugins. */\n\treadonly core: readonly PluginFacet<P>[];\n\t/** Opens one socket to the server and its link; the socket reports to `events`. */\n\treadonly open: (events: SocketEvents) => Link;\n\t/** Fetches a plugin's script of a set (at its `url`), which registers itself. */\n\treadonly fetchScript: (entry: ScriptEntry) => Promise<RegisteredScript>;\n\t/**\n\t * The server's current base bundle hash, asked before each reconnect (`undefined`: unknown, try again): another one\n\t * means this client is outdated (a new protocol comes with a new base bundle).\n\t */\n\treadonly serverBase: () => Promise<string | undefined>;\n\t/** This client's code is outdated: the app starts it over (a page reloads); the loop has stopped. */\n\treadonly outdated: () => void;\n\t/** Asked before each reconnect; `false` stops the loop (a guest's ended share). */\n\treadonly canRetry?: () => Promise<boolean>;\n\treadonly onConnection?: (state: ConnectionState) => void;\n\t/** The plugins' stylesheets (a page's; a terminal has none). */\n\treadonly styles?: ClientStyles;\n\treadonly environment: LoopEnvironment;\n\t/**\n\t * Makes the host's telemetry adapter (none: NOOP); `incarnation` names the host's run (it is read at the adapter's\n\t * first span, after the host was made).\n\t */\n\treadonly telemetry?: (incarnation: () => string) => TelemetryContext;\n\treadonly onError: (error: ClientError) => void;\n};\n\n/**\n * A page's plugin stylesheets around each update: `prepare` before the host reloads, `settle` after it (or alone when\n * no script changed).\n */\nexport type ClientStyles = {\n\t/**\n\t * Fetches, without applying them, the stylesheets of `set` that differ from those of the code each plugin runs or\n\t * did not load; resolves once each loaded, failed or waited 10 s, or when `signal` aborts (the client stops: what it\n\t * prepared is removed, `settle` never follows).\n\t */\n\tprepare(set: ScriptSet, signal: AbortSignal): Promise<void>;\n\t/**\n\t * Applies each prepared stylesheet whose plugin runs its new code now and retires the one it replaces; a plugin that\n\t * `kept` names (its new script failed: it kept its old code) keeps its old one, its prepared one dropped unapplied;\n\t * the stylesheets of plugins no longer in `set` go.\n\t */\n\tsettle(set: ScriptSet, kept: ReadonlySet<string>): void;\n};\n\n/** A running client: its host, once its plugins are loaded, and its stop. */\nexport type Client<P extends Principal> = { readonly host: Host<P>; stop(context: Context): Promise<void> };\n\n/** Starts a client: its host loaded with the initial scripts, its link kept, its plugins kept current. */\nexport async function startClient<P extends Principal>(options: ClientOptions<P>): Promise<Client<P>> {\n\tconst context = BACKGROUND_CONTEXT;\n\tlet made: Host<P> | undefined;\n\t// Read at the first span, which starts once the host exists (in its load at the earliest).\n\tconst telemetry = options.telemetry?.(() => made!.incarnation);\n\tconst host = createHost<P>({ telemetry, onError: (error) => options.onError({ kind: \"host\", error }) });\n\tmade = host;\n\tconst entries = options.initial.map((script) => entryOf(script, options.modules));\n\tconst { loaded, report } = await LoadedFacets.load(host, options.core, entries, context);\n\tif (report.failed.length > 0) options.onError({ kind: \"plugins\", failed: report.failed });\n\tconst updates = new Updates(host, loaded, new Set(report.failed.map(({ plugin }) => plugin)), options);\n\tconst loop = connect(host, options, (state) => {\n\t\tif (state === \"connected\") updates.reconnected(context);\n\t});\n\tawait updates.follow(context);\n\treturn {\n\t\thost,\n\t\tstop: async (ctx) => {\n\t\t\tloop.stop();\n\t\t\tawait updates.stop();\n\t\t\tawait host.close(ctx);\n\t\t},\n\t};\n}\n\n/**\n * Keeps `host`'s parent link to the server, asking `serverBase` and `canRetry` before every reconnect; `onState` hears\n * each state after the app's `onConnection`.\n */\nfunction connect<P extends Principal>(\n\thost: Host<P>,\n\toptions: ClientOptions<P>,\n\tonState: (state: ConnectionState) => void,\n): { stop(): void } {\n\treturn keepConnected({\n\t\topen: (events) => {\n\t\t\t// The loop and the host both follow the link's close; a link has one close listener.\n\t\t\tconst link = new SharedClose(options.open(events));\n\t\t\t// A client's parent is the server; the principal only labels the link (a client serves no remote types).\n\t\t\thost.connect(link, { principal: { kind: \"server\" } as unknown as P }, BACKGROUND_CONTEXT);\n\t\t\treturn link;\n\t\t},\n\t\tonState: (state) => {\n\t\t\toptions.onConnection?.(state);\n\t\t\tonState(state);\n\t\t},\n\t\tcanRetry: async () => {\n\t\t\tconst base = await options.serverBase();\n\t\t\tif (base !== undefined && base !== options.base) {\n\t\t\t\toptions.outdated();\n\t\t\t\treturn false;\n\t\t\t}\n\t\t\treturn (await options.canRetry?.()) ?? true;\n\t\t},\n\t\tenvironment: options.environment,\n\t});\n}\n\n/** A link whose close several follow (the host and the connection loop): each listener added runs once it closes. */\nclass SharedClose implements Link {\n\treadonly #link: Link;\n\treadonly #listeners: (() => void)[] = [];\n\t#closed = false;\n\n\tconstructor(link: Link) {\n\t\tthis.#link = link;\n\t\tlink.onClose(() => {\n\t\t\tthis.#closed = true;\n\t\t\tfor (const listener of this.#listeners.splice(0)) listener();\n\t\t});\n\t}\n\n\tsend(message: Uint8Array): void {\n\t\tthis.#link.send(message);\n\t}\n\n\tonMessage(listener: (message: Uint8Array) => void): void {\n\t\tthis.#link.onMessage(listener);\n\t}\n\n\tclose(): void {\n\t\tthis.#link.close();\n\t}\n\n\tonClose(listener: () => void): void {\n\t\tif (this.#closed) listener();\n\t\telse this.#listeners.push(listener);\n\t}\n}\n\n/** `script` as one plugin of a complete set: its digest, and its evaluation with `modules` when it is new. */\nfunction entryOf(script: RegisteredScript, modules: ClientModules): SetEntry {\n\treturn {\n\t\tname: script.plugin,\n\t\tdigest: script.digest,\n\t\tprepare: () => {\n\t\t\ttry {\n\t\t\t\treturn { kind: \"facet\", facet: evaluateRegistered(script, modules), digest: script.digest };\n\t\t\t} catch (error) {\n\t\t\t\treturn { kind: \"failed\", error };\n\t\t\t}\n\t\t},\n\t};\n}\n\n/** The first pause before a failed update is tried again: 1 s, doubling from there. */\nconst UPDATE_RETRY_INITIAL_MS = 1000;\n\n/** The longest pause between tries of a failed update: 30 s. */\nconst UPDATE_RETRY_MAX_MS = 30_000;\n\n/**\n * The client's plugin updates: it holds the scripts object and applies each new set in order (fetching the changed\n * scripts, loading their stylesheets, reloading the host with the complete set, settling the stylesheets); a new base\n * calls `outdated` instead. An update that failed (a script that did not load) is tried again after a growing pause (1 s\n * doubling to 30 s) until it applies or a newer set replaces it: the scripts object shows nothing new until the next\n * rollout or reconnect.\n */\nclass Updates<P extends Principal> {\n\treadonly #host: Host<P>;\n\treadonly #loaded: LoadedFacets;\n\treadonly #options: ClientOptions<P>;\n\t/**\n\t * The script each plugin runs, by plugin: a plugin whose new script failed keeps its old one here, so a later set\n\t * with that script (a reconnect's snapshot) tries it again.\n\t */\n\treadonly #scripts = new Map<string, RegisteredScript>();\n\treadonly #abort = new AbortController();\n\t#release: (() => void) | undefined;\n\t/** The newest set shown: a retry applies only it. */\n\t#latest: ScriptSet | undefined;\n\t/** The updates in order: one at a time, a retry's among them. */\n\t#applying: Promise<void> = Promise.resolve();\n\t/** The pending retry's cancel and the pause it waited (0: none waited yet). */\n\t#retry: { cancel: () => void } | undefined;\n\t#pause = 0;\n\n\tconstructor(host: Host<P>, loaded: LoadedFacets, left: ReadonlySet<string>, options: ClientOptions<P>) {\n\t\tthis.#host = host;\n\t\tthis.#loaded = loaded;\n\t\tthis.#options = options;\n\t\tfor (const script of options.initial) if (!left.has(script.plugin)) this.#scripts.set(script.plugin, script);\n\t}\n\n\t/** Holds the scripts object and applies every set it shows, the first included (a reconnect's snapshot too). */\n\tasync follow(context: Context): Promise<void> {\n\t\tconst held = this.#host.hold(this.#options.scripts, {}, context);\n\t\tthis.#release = () => held.release();\n\t\tconst watch = await held.set.watch(withAbortSignal(this.#abort.signal, context));\n\t\twatch.start(async (call, ctx) => {\n\t\t\tif (call.kind !== \"value\") return;\n\t\t\tconst set = call.value as ScriptSet;\n\t\t\tthis.#latest = set;\n\t\t\tthis.#retry?.cancel();\n\t\t\tthis.#retry = undefined;\n\t\t\tthis.#pause = 0;\n\t\t\tawait this.#queue(set, ctx);\n\t\t});\n\t}\n\n\t/**\n\t * The link is back: the newest set is applied again when this client does not run all of it (a plugin kept its old\n\t * code), since the scripts object shows an unchanged set no second time.\n\t */\n\treconnected(context: Context): void {\n\t\tconst set = this.#latest;\n\t\tif (set !== undefined && !this.#runsAll(set)) void this.#queue(set, context);\n\t}\n\n\t/** Stops following: the watch ends, the hold is released, a pending retry is dropped. */\n\tasync stop(): Promise<void> {\n\t\tthis.#abort.abort();\n\t\tthis.#retry?.cancel();\n\t\tthis.#retry = undefined;\n\t\tthis.#release?.();\n\t}\n\n\t/** Applies `set` after the updates before it, unless a newer set replaced it meanwhile. */\n\t#queue(set: ScriptSet, context: Context): Promise<void> {\n\t\tconst applied = this.#applying.then(async () => {\n\t\t\tif (this.#latest !== set || this.#abort.signal.aborted) return;\n\t\t\tif (!(await this.#apply(set, context))) this.#retryLater(set, context);\n\t\t});\n\t\tthis.#applying = applied;\n\t\treturn applied;\n\t}\n\n\t/** Tries `set` again after the next pause (1 s doubling to 30 s). */\n\t#retryLater(set: ScriptSet, context: Context): void {\n\t\tthis.#pause = this.#pause === 0 ? UPDATE_RETRY_INITIAL_MS : Math.min(this.#pause * 2, UPDATE_RETRY_MAX_MS);\n\t\tthis.#retry = {\n\t\t\tcancel: this.#options.environment.after(this.#pause, () => {\n\t\t\t\tthis.#retry = undefined;\n\t\t\t\tvoid this.#queue(set, context);\n\t\t\t}),\n\t\t};\n\t}\n\n\t/**\n\t * Applies `set`: a new base calls `outdated`; else the changed scripts fetched, their new stylesheets loaded, the\n\t * host reloaded with all and the stylesheets settled. `false` when it failed (reported `update_failed`): it is tried\n\t * again.\n\t */\n\tasync #apply(set: ScriptSet, context: Context): Promise<boolean> {\n\t\tconst options = this.#options;\n\t\tif (set.base !== options.base) {\n\t\t\toptions.outdated();\n\t\t\treturn true;\n\t\t}\n\t\t// The first frame usually shows what this client runs already: nothing to reload.\n\t\tconst changed = !this.#runsAll(set);\n\t\ttry {\n\t\t\tconst scripts: RegisteredScript[] = [];\n\t\t\tif (changed) {\n\t\t\t\tfor (const entry of set.plugins) {\n\t\t\t\t\tconst known = this.#scripts.get(entry.name);\n\t\t\t\t\tscripts.push(known?.digest === entry.digest ? known : await options.fetchScript(entry));\n\t\t\t\t}\n\t\t\t}\n\t\t\tawait options.styles?.prepare(set, this.#abort.signal);\n\t\t\tif (this.#abort.signal.aborted) return true;\n\t\t\tconst kept = changed ? await this.#reload(scripts, context) : new Set<string>();\n\t\t\toptions.styles?.settle(set, kept);\n\t\t\treturn true;\n\t\t} catch (error) {\n\t\t\toptions.onError({ kind: \"update_failed\", error });\n\t\t\treturn false;\n\t\t}\n\t}\n\n\t/** Whether this client runs every script of `set` and nothing else. */\n\t#runsAll(set: ScriptSet): boolean {\n\t\tconst running = this.#scripts;\n\t\treturn (\n\t\t\tset.plugins.length === running.size &&\n\t\t\tset.plugins.every((entry) => running.get(entry.name)?.digest === entry.digest)\n\t\t);\n\t}\n\n\t/**\n\t * Reloads the host with `scripts`, the complete set, and records the script each plugin runs now; the plugins that\n\t * kept their old code (or, added, were left out).\n\t */\n\tasync #reload(scripts: readonly RegisteredScript[], context: Context): Promise<ReadonlySet<string>> {\n\t\tconst options = this.#options;\n\t\tconst entries = scripts.map((script) => entryOf(script, options.modules));\n\t\tconst report = await this.#loaded.reload(this.#host, entries, context);\n\t\tconst kept = new Set(report.failed.map(({ plugin }) => plugin));\n\t\tconst running = new Map<string, RegisteredScript>();\n\t\tfor (const script of scripts) {\n\t\t\tconst runs = kept.has(script.plugin) ? this.#scripts.get(script.plugin) : script;\n\t\t\tif (runs !== undefined) running.set(script.plugin, runs);\n\t\t}\n\t\tthis.#scripts.clear();\n\t\tfor (const [plugin, script] of running) this.#scripts.set(plugin, script);\n\t\tif (report.failed.length > 0) options.onError({ kind: \"plugins\", failed: report.failed });\n\t\treturn kept;\n\t}\n}\n"]}
|