@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,439 @@
|
|
|
1
|
+
// `startTerminal` (slice 11 §4, decision "Slice 11, P8"): the trusted launcher of a terminal client. It signs in with
|
|
2
|
+
// its token (given, from a file, or by pairing), downloads the terminal kind's base bundle and plugin scripts, and
|
|
3
|
+
// runs them in the sandbox, always. It keeps the credentials, the real terminal and the user's choices: the sandbox
|
|
4
|
+
// gets input and resizes, its frames pass the output filter, its Chord link is a socket the launcher opens and relays,
|
|
5
|
+
// its plugin script fetches go only to the terminal surface's files, and its actions on the machine (copy, open a URL,
|
|
6
|
+
// attach a file) are confirmed by the launcher's own prompt. A new base bundle on the server starts a new sandbox.
|
|
7
|
+
// Nothing the sandbox sends can end the launcher (fix round 2, Opus E3): its messages are checked (`pipe.ts`), a send
|
|
8
|
+
// on a socket not yet open is dropped, every buffer and the requests in flight are bounded, a signal cannot open the
|
|
9
|
+
// launcher's inspector, and however the launcher's process ends the terminal is given back (fix round 3, Opus E8,
|
|
10
|
+
// E10, E11). During a prompt Ctrl-C ends the client: its keys are the launcher's; and three Ctrl-C within a second
|
|
11
|
+
// always end it (Opus R2).
|
|
12
|
+
import { WebSocket } from "ws";
|
|
13
|
+
import { act, attach, promptLines } from "./actions.js";
|
|
14
|
+
import { tokenOf } from "./credentials.js";
|
|
15
|
+
import { filterOutput } from "./filter.js";
|
|
16
|
+
import { MAX_BUNDLE, requireSandboxNode, Sandbox } from "./sandbox.js";
|
|
17
|
+
/** The terminal surface's files (the server's `TUI_PREFIX`). */
|
|
18
|
+
const PREFIX = "/_chord/tui/";
|
|
19
|
+
/**
|
|
20
|
+
* `path` resolved on the server `server` when it names one of the terminal surface's files (dot segments and encodings
|
|
21
|
+
* resolved first: Opus M2, Fable L1); throws otherwise: the sandbox reaches nothing else of the server through the
|
|
22
|
+
* launcher's token.
|
|
23
|
+
*/
|
|
24
|
+
export function terminalFile(path, server) {
|
|
25
|
+
const target = typeof path === "string" ? new URL(path, server) : undefined;
|
|
26
|
+
if (target === undefined ||
|
|
27
|
+
target.origin !== server.origin ||
|
|
28
|
+
target.search !== "" ||
|
|
29
|
+
!TERMINAL_FILE.test(target.pathname)) {
|
|
30
|
+
throw new Error("terminal: no terminal file");
|
|
31
|
+
}
|
|
32
|
+
return target.pathname;
|
|
33
|
+
}
|
|
34
|
+
/** A terminal surface file's path, as the sandbox may ask for it. */
|
|
35
|
+
const TERMINAL_FILE = /^\/_chord\/tui\/(?:plugin\/)?[\w.~@-]+$/;
|
|
36
|
+
/** The most frames held while a prompt is open: 1 MiB (characters); later ones are dropped. */
|
|
37
|
+
const MAX_HELD = 1024 * 1024;
|
|
38
|
+
/** The most link sockets the sandbox may have open at once. */
|
|
39
|
+
const MAX_SOCKETS = 4;
|
|
40
|
+
/** The most bytes a link socket may have waiting to go out; a sandbox sending more loses the socket. */
|
|
41
|
+
const MAX_SOCKET_BUFFER = 16 * 1024 * 1024;
|
|
42
|
+
/** How long after a prompt appears its keys are ignored: a key typed for the sandbox does not answer it (Opus E4). */
|
|
43
|
+
const PROMPT_GUARD_MS = 300;
|
|
44
|
+
/**
|
|
45
|
+
* The terminal modes the sandbox may have set, back to the shell's: sync, mouse, focus, paste, cursor, the scroll region
|
|
46
|
+
* (the cursor kept where it was) and autowrap (Opus E11), screen, colours.
|
|
47
|
+
*/
|
|
48
|
+
const RESET_MODES = "\x1b[?2026l\x1b[?1000l\x1b[?1002l\x1b[?1006l\x1b[?1004l\x1b[?2004l\x1b[?25h\x1b7\x1b[r\x1b8\x1b[?7h\x1b[?1049l\x1b[0m";
|
|
49
|
+
/** The most requests of one sandbox the launcher answers at once; more are refused at once (Opus E10). */
|
|
50
|
+
const MAX_REQUESTS = 8;
|
|
51
|
+
/**
|
|
52
|
+
* Ctrl-C: during a prompt it ends the client, so a sandbox asking again and again can always be left (Opus E11); and
|
|
53
|
+
* three within a second always end it, whatever the sandbox does with them (Opus R2).
|
|
54
|
+
*/
|
|
55
|
+
const INTERRUPT = "\x03";
|
|
56
|
+
/** How many Ctrl-C within `INTERRUPT_WINDOW_MS` end the client however the sandbox takes them. */
|
|
57
|
+
const INTERRUPTS_TO_END = 3;
|
|
58
|
+
const INTERRUPT_WINDOW_MS = 1000;
|
|
59
|
+
/** Starts a terminal client; rejects when it cannot sign in or download, or Node is too old for the sandbox. */
|
|
60
|
+
export async function startTerminal(options) {
|
|
61
|
+
requireSandboxNode();
|
|
62
|
+
const output = options.output ?? process.stdout;
|
|
63
|
+
const url = new URL(options.url);
|
|
64
|
+
const abort = new AbortController();
|
|
65
|
+
// What the launcher prints of the server's (the pairing's code) passes the output filter too.
|
|
66
|
+
const token = await tokenOf(options.credentials, url, (line) => output.write(`${filterOutput(line)}\r\n`), abort.signal);
|
|
67
|
+
const launcher = new Launcher(url, token, options);
|
|
68
|
+
await launcher.start();
|
|
69
|
+
return { exited: launcher.exited, stop: () => launcher.finish(0) };
|
|
70
|
+
}
|
|
71
|
+
/** One terminal client's launcher. */
|
|
72
|
+
class Launcher {
|
|
73
|
+
#url;
|
|
74
|
+
#headers;
|
|
75
|
+
#options;
|
|
76
|
+
#input;
|
|
77
|
+
#output;
|
|
78
|
+
#sockets = new Map();
|
|
79
|
+
#sandbox;
|
|
80
|
+
/** The running base bundle's hash: an `outdated` sandbox restarts only for another. */
|
|
81
|
+
#base = "";
|
|
82
|
+
/**
|
|
83
|
+
* Whether an action is being confirmed (one at a time), from its request to its end: meanwhile the sandbox's frames
|
|
84
|
+
* are held (`#held`, at most `MAX_HELD` bytes), so nothing draws over the prompt, even before it appears.
|
|
85
|
+
*/
|
|
86
|
+
#confirming = false;
|
|
87
|
+
/** The running sandbox's requests being answered (at most `MAX_REQUESTS`). */
|
|
88
|
+
#requests = 0;
|
|
89
|
+
/** The prompt open: its lines, its answer, and when its keys start to count. Keys go to it, not the sandbox. */
|
|
90
|
+
#prompt;
|
|
91
|
+
#held = [];
|
|
92
|
+
#heldBytes = 0;
|
|
93
|
+
#finished = false;
|
|
94
|
+
#exit;
|
|
95
|
+
exited = new Promise((resolve) => {
|
|
96
|
+
this.#exit = resolve;
|
|
97
|
+
});
|
|
98
|
+
#onInput = (data) => {
|
|
99
|
+
const text = data.toString();
|
|
100
|
+
if (this.#interrupted(text)) {
|
|
101
|
+
void this.finish(130);
|
|
102
|
+
return;
|
|
103
|
+
}
|
|
104
|
+
if (this.#prompt === undefined)
|
|
105
|
+
this.#sandbox?.post({ kind: "input", data: text });
|
|
106
|
+
else if (text.includes(INTERRUPT))
|
|
107
|
+
void this.finish(130);
|
|
108
|
+
else if (Date.now() >= this.#prompt.ready)
|
|
109
|
+
this.#answered(text === "y" || text === "Y");
|
|
110
|
+
};
|
|
111
|
+
#onResize = () => {
|
|
112
|
+
if (this.#prompt !== undefined)
|
|
113
|
+
this.#drawPrompt();
|
|
114
|
+
this.#sandbox?.post({ kind: "resize", columns: this.#columns, rows: this.#rows });
|
|
115
|
+
};
|
|
116
|
+
/** When the last Ctrl-C keys came: three within a second end the client. */
|
|
117
|
+
#interrupts = [];
|
|
118
|
+
/** The terminal given back if the launcher's process ends without `finish` (a crash). */
|
|
119
|
+
#onExit = () => {
|
|
120
|
+
this.#output.write(RESET_MODES);
|
|
121
|
+
if (this.#input.isTTY === true)
|
|
122
|
+
this.#input.setRawMode?.(false);
|
|
123
|
+
};
|
|
124
|
+
constructor(url, token, options) {
|
|
125
|
+
this.#url = url;
|
|
126
|
+
this.#headers = { authorization: `Bearer ${token}` };
|
|
127
|
+
this.#options = options;
|
|
128
|
+
this.#input = options.input ?? process.stdin;
|
|
129
|
+
this.#output = options.output ?? process.stdout;
|
|
130
|
+
}
|
|
131
|
+
/** Whether `text` brings the third Ctrl-C within a second (each still goes to the sandbox otherwise). */
|
|
132
|
+
#interrupted(text) {
|
|
133
|
+
const now = Date.now();
|
|
134
|
+
for (const character of text)
|
|
135
|
+
if (character === INTERRUPT)
|
|
136
|
+
this.#interrupts.push(now);
|
|
137
|
+
this.#interrupts = this.#interrupts.filter((at) => now - at < INTERRUPT_WINDOW_MS);
|
|
138
|
+
return this.#interrupts.length >= INTERRUPTS_TO_END;
|
|
139
|
+
}
|
|
140
|
+
// A pseudo-terminal may report 0 (Opus E4).
|
|
141
|
+
get #columns() {
|
|
142
|
+
return this.#output.columns || 80;
|
|
143
|
+
}
|
|
144
|
+
get #rows() {
|
|
145
|
+
return this.#output.rows || 24;
|
|
146
|
+
}
|
|
147
|
+
/** Downloads the base bundle and the plugins, starts the sandbox and takes the terminal. */
|
|
148
|
+
async start() {
|
|
149
|
+
await this.#startSandbox();
|
|
150
|
+
if (this.#input.isTTY === true)
|
|
151
|
+
this.#input.setRawMode?.(true);
|
|
152
|
+
this.#input.on("data", this.#onInput);
|
|
153
|
+
this.#output.on("resize", this.#onResize);
|
|
154
|
+
process.once("exit", this.#onExit);
|
|
155
|
+
// Node opens its inspector on SIGUSR1 unless the signal has a listener: a sandbox may signal its launcher, and
|
|
156
|
+
// an inspector would give any local process the launcher's token and files (Opus E8). Windows has no SIGUSR1.
|
|
157
|
+
if (process.platform !== "win32")
|
|
158
|
+
process.on("SIGUSR1", ignoreSignal);
|
|
159
|
+
}
|
|
160
|
+
/** Ends the client with `code`: the terminal given back, the sockets closed, the sandbox ended. */
|
|
161
|
+
async finish(code) {
|
|
162
|
+
if (this.#finished)
|
|
163
|
+
return;
|
|
164
|
+
this.#finished = true;
|
|
165
|
+
this.#input.off("data", this.#onInput);
|
|
166
|
+
this.#output.off("resize", this.#onResize);
|
|
167
|
+
process.off("exit", this.#onExit);
|
|
168
|
+
if (process.platform !== "win32")
|
|
169
|
+
process.off("SIGUSR1", ignoreSignal);
|
|
170
|
+
if (this.#input.isTTY === true)
|
|
171
|
+
this.#input.setRawMode?.(false);
|
|
172
|
+
this.#prompt?.answer(false);
|
|
173
|
+
this.#prompt = undefined;
|
|
174
|
+
this.#output.write(RESET_MODES);
|
|
175
|
+
this.#closeSockets();
|
|
176
|
+
await this.#sandbox?.terminate();
|
|
177
|
+
this.#exit(code);
|
|
178
|
+
}
|
|
179
|
+
/** A new sandbox with what the server serves now. */
|
|
180
|
+
async #startSandbox() {
|
|
181
|
+
const start = JSON.parse(await this.#get(`${PREFIX}start`));
|
|
182
|
+
const [source, combined] = await Promise.all([this.#get(start.script), this.#get(start.combined)]);
|
|
183
|
+
this.#base = start.base;
|
|
184
|
+
const colors = this.#options.colors ?? (/truecolor|24bit/.test(process.env.COLORTERM ?? "") ? "truecolor" : "256");
|
|
185
|
+
const bridge = {
|
|
186
|
+
base: start.base,
|
|
187
|
+
combined,
|
|
188
|
+
columns: this.#columns,
|
|
189
|
+
rows: this.#rows,
|
|
190
|
+
colors,
|
|
191
|
+
mode: this.#options.mode ?? "dark",
|
|
192
|
+
locales: this.#options.locales ?? systemLocales(),
|
|
193
|
+
};
|
|
194
|
+
this.#requests = 0;
|
|
195
|
+
this.#sandbox = await Sandbox.start(source, bridge, (message) => this.#message(message), () => void this.finish(1));
|
|
196
|
+
}
|
|
197
|
+
/** One message of the sandbox; one the launcher fails on ends the client, never the launcher's process. */
|
|
198
|
+
#message(message) {
|
|
199
|
+
try {
|
|
200
|
+
this.#handle(message);
|
|
201
|
+
}
|
|
202
|
+
catch {
|
|
203
|
+
void this.finish(1);
|
|
204
|
+
}
|
|
205
|
+
}
|
|
206
|
+
#handle(message) {
|
|
207
|
+
switch (message.kind) {
|
|
208
|
+
case "write":
|
|
209
|
+
this.#write(message.data);
|
|
210
|
+
return;
|
|
211
|
+
case "socket_open":
|
|
212
|
+
this.#openSocket(message.socket);
|
|
213
|
+
return;
|
|
214
|
+
case "socket_send":
|
|
215
|
+
this.#send(message.socket, message.bytes);
|
|
216
|
+
return;
|
|
217
|
+
case "socket_close":
|
|
218
|
+
this.#sockets.get(message.socket)?.close();
|
|
219
|
+
return;
|
|
220
|
+
case "request":
|
|
221
|
+
void this.#answer(message.id, message.request);
|
|
222
|
+
return;
|
|
223
|
+
case "outdated":
|
|
224
|
+
void this.#outdated();
|
|
225
|
+
return;
|
|
226
|
+
case "failed":
|
|
227
|
+
this.#output.write("terminal: the terminal client failed to start\n");
|
|
228
|
+
void this.finish(1);
|
|
229
|
+
return;
|
|
230
|
+
case "exit":
|
|
231
|
+
void this.finish(message.code);
|
|
232
|
+
}
|
|
233
|
+
}
|
|
234
|
+
/** Writes the sandbox's frame through the output filter (held while a prompt is open); one over 64 KiB is dropped. */
|
|
235
|
+
#write(data) {
|
|
236
|
+
if (this.#confirming) {
|
|
237
|
+
if (typeof data === "string" && this.#heldBytes + data.length <= MAX_HELD) {
|
|
238
|
+
this.#held.push(data);
|
|
239
|
+
this.#heldBytes += data.length;
|
|
240
|
+
}
|
|
241
|
+
return;
|
|
242
|
+
}
|
|
243
|
+
try {
|
|
244
|
+
this.#output.write(filterOutput(data));
|
|
245
|
+
}
|
|
246
|
+
catch {
|
|
247
|
+
// Over 64 KiB (or no text): dropped, as an escape it could hide would be.
|
|
248
|
+
}
|
|
249
|
+
}
|
|
250
|
+
/** Opens socket `socket` to the links endpoint with the launcher's token, relaying it to the sandbox. */
|
|
251
|
+
#openSocket(socket) {
|
|
252
|
+
// A few at a time: the connection loop needs one; a runaway sandbox gets no more.
|
|
253
|
+
if (this.#sockets.size >= MAX_SOCKETS) {
|
|
254
|
+
this.#sandbox?.post({ kind: "socket_closed", socket });
|
|
255
|
+
return;
|
|
256
|
+
}
|
|
257
|
+
const target = new URL("/chord", this.#url);
|
|
258
|
+
target.protocol = target.protocol === "https:" ? "wss:" : "ws:";
|
|
259
|
+
const ws = new WebSocket(target, { headers: this.#headers });
|
|
260
|
+
this.#sockets.set(socket, ws);
|
|
261
|
+
ws.on("open", () => this.#sandbox?.post({ kind: "socket_opened", socket }));
|
|
262
|
+
ws.on("message", (data) => {
|
|
263
|
+
this.#sandbox?.post({ kind: "socket_message", socket, bytes: new Uint8Array(data) });
|
|
264
|
+
});
|
|
265
|
+
const closed = () => {
|
|
266
|
+
if (this.#sockets.get(socket) !== ws)
|
|
267
|
+
return;
|
|
268
|
+
this.#sockets.delete(socket);
|
|
269
|
+
this.#sandbox?.post({ kind: "socket_closed", socket });
|
|
270
|
+
};
|
|
271
|
+
ws.on("close", closed);
|
|
272
|
+
ws.on("error", closed);
|
|
273
|
+
}
|
|
274
|
+
/**
|
|
275
|
+
* Sends `bytes` on socket `socket` once it is open (before, the sandbox's link holds its messages; a send then is
|
|
276
|
+
* dropped: Opus E3); a socket with more than 16 MiB waiting is closed.
|
|
277
|
+
*/
|
|
278
|
+
#send(socket, bytes) {
|
|
279
|
+
const ws = this.#sockets.get(socket);
|
|
280
|
+
if (ws?.readyState !== WebSocket.OPEN)
|
|
281
|
+
return;
|
|
282
|
+
if (ws.bufferedAmount + bytes.length > MAX_SOCKET_BUFFER)
|
|
283
|
+
ws.terminate();
|
|
284
|
+
else
|
|
285
|
+
ws.send(bytes);
|
|
286
|
+
}
|
|
287
|
+
/** Answers the sandbox's request `id`. */
|
|
288
|
+
async #answer(id, request) {
|
|
289
|
+
// The sandbox that asked: a reply never goes to the one a restart started meanwhile.
|
|
290
|
+
const sandbox = this.#sandbox;
|
|
291
|
+
if (sandbox === undefined)
|
|
292
|
+
return;
|
|
293
|
+
if (this.#requests >= MAX_REQUESTS) {
|
|
294
|
+
sandbox.post({ kind: "refused", id, message: "terminal: too many requests at once" });
|
|
295
|
+
return;
|
|
296
|
+
}
|
|
297
|
+
this.#requests++;
|
|
298
|
+
try {
|
|
299
|
+
let value;
|
|
300
|
+
if (request.kind === "fetch")
|
|
301
|
+
value = await this.#get(terminalFile(request.path, this.#url));
|
|
302
|
+
else if (request.kind === "base")
|
|
303
|
+
value = JSON.parse(await this.#get(`${PREFIX}base`));
|
|
304
|
+
else if (request.kind === "attach") {
|
|
305
|
+
const file = await this.#confirm(() => attach(request.path, this.#prompter()));
|
|
306
|
+
if (file !== null) {
|
|
307
|
+
sandbox.post({ kind: "attached", id, name: file.name, bytes: file.bytes });
|
|
308
|
+
return;
|
|
309
|
+
}
|
|
310
|
+
value = null;
|
|
311
|
+
}
|
|
312
|
+
else
|
|
313
|
+
value = await this.#confirm(() => act(request, this.#prompter(), this.#options.opener));
|
|
314
|
+
sandbox.post({ kind: "reply", id, value });
|
|
315
|
+
}
|
|
316
|
+
catch (error) {
|
|
317
|
+
sandbox.post({ kind: "refused", id, message: error instanceof Error ? error.message : String(error) });
|
|
318
|
+
}
|
|
319
|
+
finally {
|
|
320
|
+
if (this.#sandbox === sandbox)
|
|
321
|
+
this.#requests--;
|
|
322
|
+
}
|
|
323
|
+
}
|
|
324
|
+
/**
|
|
325
|
+
* Runs the action `run` (it asks the user), one at a time: a second is refused while one runs. Afterwards the held
|
|
326
|
+
* frames are written and the sandbox asked to redraw.
|
|
327
|
+
*/
|
|
328
|
+
async #confirm(run) {
|
|
329
|
+
if (this.#confirming)
|
|
330
|
+
throw new Error("terminal: a prompt is open");
|
|
331
|
+
this.#confirming = true;
|
|
332
|
+
try {
|
|
333
|
+
return await run();
|
|
334
|
+
}
|
|
335
|
+
finally {
|
|
336
|
+
this.#confirming = false;
|
|
337
|
+
const held = this.#held;
|
|
338
|
+
this.#held = [];
|
|
339
|
+
this.#heldBytes = 0;
|
|
340
|
+
for (const frame of held)
|
|
341
|
+
this.#write(frame);
|
|
342
|
+
this.#sandbox?.post({ kind: "resize", columns: this.#columns, rows: this.#rows });
|
|
343
|
+
}
|
|
344
|
+
}
|
|
345
|
+
/** The launcher's own prompt on the real terminal, for the action being confirmed: its key not the sandbox's. */
|
|
346
|
+
#prompter() {
|
|
347
|
+
return {
|
|
348
|
+
columns: this.#columns,
|
|
349
|
+
ask: (lines) => {
|
|
350
|
+
// Shown whole or not at all: a prompt is never cut.
|
|
351
|
+
if (promptLines(lines, this.#columns).length >= this.#rows) {
|
|
352
|
+
return Promise.reject(new Error("terminal: the prompt does not fit the terminal"));
|
|
353
|
+
}
|
|
354
|
+
return new Promise((answer) => {
|
|
355
|
+
this.#prompt = { lines, answer, ready: Date.now() + PROMPT_GUARD_MS };
|
|
356
|
+
this.#drawPrompt();
|
|
357
|
+
});
|
|
358
|
+
},
|
|
359
|
+
write: (data) => this.#output.write(data),
|
|
360
|
+
};
|
|
361
|
+
}
|
|
362
|
+
/**
|
|
363
|
+
* Draws the open prompt on the bottom lines after closing a synchronized update the sandbox began: its attributes
|
|
364
|
+
* reset and its colours explicit, black on white, so no state the sandbox left (concealed, black on black: Opus E4)
|
|
365
|
+
* applies to it.
|
|
366
|
+
*/
|
|
367
|
+
#drawPrompt() {
|
|
368
|
+
const lines = promptLines(this.#prompt.lines, this.#columns);
|
|
369
|
+
const top = Math.max(1, this.#rows - lines.length + 1);
|
|
370
|
+
const drawn = lines.map((line, index) => `\x1b[${top + index};1H\x1b[0;30;47m\x1b[2K ${line} `);
|
|
371
|
+
this.#output.write(`\x1b[?2026l\x1b[s${drawn.join("")}\x1b[0m`);
|
|
372
|
+
}
|
|
373
|
+
/** The prompt answered: cleared, the cursor back where the sandbox had it. */
|
|
374
|
+
#answered(yes) {
|
|
375
|
+
const { lines, answer } = this.#prompt;
|
|
376
|
+
this.#prompt = undefined;
|
|
377
|
+
const rows = promptLines(lines, this.#columns);
|
|
378
|
+
const top = Math.max(1, this.#rows - rows.length + 1);
|
|
379
|
+
const cleared = rows.map((_row, index) => `\x1b[${top + index};1H\x1b[0m\x1b[2K`).join("");
|
|
380
|
+
this.#output.write(`${cleared}\x1b[u`);
|
|
381
|
+
answer(yes);
|
|
382
|
+
}
|
|
383
|
+
/** The sandbox says its code is outdated: a new sandbox only when the server's base bundle is another. */
|
|
384
|
+
async #outdated() {
|
|
385
|
+
const base = JSON.parse(await this.#get(`${PREFIX}base`).catch(() => "null"));
|
|
386
|
+
if (typeof base === "string" && base !== this.#base)
|
|
387
|
+
await this.#restart();
|
|
388
|
+
}
|
|
389
|
+
/** The server has a new base bundle: a new sandbox with it, the old one ended. */
|
|
390
|
+
async #restart() {
|
|
391
|
+
this.#closeSockets();
|
|
392
|
+
await this.#sandbox?.terminate();
|
|
393
|
+
this.#sandbox = undefined;
|
|
394
|
+
try {
|
|
395
|
+
await this.#startSandbox();
|
|
396
|
+
this.#onResize();
|
|
397
|
+
}
|
|
398
|
+
catch {
|
|
399
|
+
await this.finish(1);
|
|
400
|
+
}
|
|
401
|
+
}
|
|
402
|
+
#closeSockets() {
|
|
403
|
+
for (const ws of this.#sockets.values())
|
|
404
|
+
ws.close();
|
|
405
|
+
this.#sockets.clear();
|
|
406
|
+
}
|
|
407
|
+
/** The text at `path` on the server, signed in; at most 8 MiB, read no further. */
|
|
408
|
+
async #get(path) {
|
|
409
|
+
const response = await fetch(new URL(path, this.#url), { headers: this.#headers });
|
|
410
|
+
if (!response.ok || response.body === null)
|
|
411
|
+
throw new Error(`terminal: GET ${path} answered ${response.status}`);
|
|
412
|
+
if (Number(response.headers.get("content-length") ?? 0) > MAX_BUNDLE)
|
|
413
|
+
throw new Error(`terminal: ${path} exceeds 8 MiB`);
|
|
414
|
+
const chunks = [];
|
|
415
|
+
let size = 0;
|
|
416
|
+
for await (const chunk of response.body) {
|
|
417
|
+
size += chunk.length;
|
|
418
|
+
if (size > MAX_BUNDLE)
|
|
419
|
+
throw new Error(`terminal: ${path} exceeds 8 MiB`);
|
|
420
|
+
chunks.push(chunk);
|
|
421
|
+
}
|
|
422
|
+
return new TextDecoder().decode(Buffer.concat(chunks));
|
|
423
|
+
}
|
|
424
|
+
}
|
|
425
|
+
/** The launcher's SIGUSR1 listener: the signal does nothing. */
|
|
426
|
+
function ignoreSignal() { }
|
|
427
|
+
/**
|
|
428
|
+
* The system's languages: `LANGUAGE` (a colon list), then `LC_ALL`, `LC_MESSAGES`, `LANG` (`de_DE.UTF-8` is `de-DE`;
|
|
429
|
+
* `C` and `POSIX` name none), then the runtime's default locale.
|
|
430
|
+
*/
|
|
431
|
+
function systemLocales() {
|
|
432
|
+
const { LANGUAGE, LC_ALL, LC_MESSAGES, LANG } = process.env;
|
|
433
|
+
const named = [...(LANGUAGE ?? "").split(":"), LC_ALL, LC_MESSAGES, LANG].flatMap((value) => {
|
|
434
|
+
const tag = value?.replace(/[.@].*$/, "").replace(/_/g, "-");
|
|
435
|
+
return tag === undefined || tag === "" || tag === "C" || tag === "POSIX" ? [] : [tag];
|
|
436
|
+
});
|
|
437
|
+
return [...new Set([...named, Intl.DateTimeFormat().resolvedOptions().locale])];
|
|
438
|
+
}
|
|
439
|
+
//# sourceMappingURL=launcher.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"launcher.js","sourceRoot":"","sources":["../../../src/node/tui/launcher.ts"],"names":[],"mappings":"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","sourcesContent":["// `startTerminal` (slice 11 §4, decision \"Slice 11, P8\"): the trusted launcher of a terminal client. It signs in with\n// its token (given, from a file, or by pairing), downloads the terminal kind's base bundle and plugin scripts, and\n// runs them in the sandbox, always. It keeps the credentials, the real terminal and the user's choices: the sandbox\n// gets input and resizes, its frames pass the output filter, its Chord link is a socket the launcher opens and relays,\n// its plugin script fetches go only to the terminal surface's files, and its actions on the machine (copy, open a URL,\n// attach a file) are confirmed by the launcher's own prompt. A new base bundle on the server starts a new sandbox.\n// Nothing the sandbox sends can end the launcher (fix round 2, Opus E3): its messages are checked (`pipe.ts`), a send\n// on a socket not yet open is dropped, every buffer and the requests in flight are bounded, a signal cannot open the\n// launcher's inspector, and however the launcher's process ends the terminal is given back (fix round 3, Opus E8,\n// E10, E11). During a prompt Ctrl-C ends the client: its keys are the launcher's; and three Ctrl-C within a second\n// always end it (Opus R2).\n\nimport type { Readable, Writable } from \"node:stream\";\nimport { WebSocket } from \"ws\";\nimport type { ColorDepth } from \"../../surfaces/index.ts\";\nimport type { BridgeRequest, SandboxMessage } from \"../../tui/bridge.ts\";\nimport type { TuiStart } from \"../surfaces/tui.ts\";\nimport { act, attach, type PromptTerminal, promptLines } from \"./actions.ts\";\nimport { type TerminalCredentials, tokenOf } from \"./credentials.ts\";\nimport { filterOutput } from \"./filter.ts\";\nimport { MAX_BUNDLE, requireSandboxNode, Sandbox } from \"./sandbox.ts\";\n\n/** What `startTerminal` takes. */\nexport type TerminalOptions = {\n\t/** The app's server (`http://127.0.0.1:8788`). */\n\treadonly url: string;\n\treadonly credentials: TerminalCredentials;\n\t/** The terminal's input and output: the process's by default (raw mode while running, when a TTY). */\n\treadonly input?: Readable & { setRawMode?(raw: boolean): unknown; readonly isTTY?: boolean };\n\treadonly output?: Writable & { readonly columns?: number; readonly rows?: number };\n\t/** How many colours the terminal shows: true colour when `COLORTERM` says so, else 256. */\n\treadonly colors?: ColorDepth;\n\t/** The terminal's background, choosing between the user's dark and light theme: dark by default. */\n\treadonly mode?: \"dark\" | \"light\";\n\t/** The user's languages, most preferred first, until they choose one: the system's locale by default. */\n\treadonly locales?: readonly string[];\n\t/** Opens a URL the user confirmed: the platform's opener by default. */\n\treadonly opener?: (url: string) => Promise<void>;\n};\n\n/** A running terminal client: its exit code once it ends, and its stop. */\nexport type RunningTerminal = { readonly exited: Promise<number>; stop(): Promise<void> };\n\n/** The terminal surface's files (the server's `TUI_PREFIX`). */\nconst PREFIX = \"/_chord/tui/\";\n\n/**\n * `path` resolved on the server `server` when it names one of the terminal surface's files (dot segments and encodings\n * resolved first: Opus M2, Fable L1); throws otherwise: the sandbox reaches nothing else of the server through the\n * launcher's token.\n */\nexport function terminalFile(path: unknown, server: URL): string {\n\tconst target = typeof path === \"string\" ? new URL(path, server) : undefined;\n\tif (\n\t\ttarget === undefined ||\n\t\ttarget.origin !== server.origin ||\n\t\ttarget.search !== \"\" ||\n\t\t!TERMINAL_FILE.test(target.pathname)\n\t) {\n\t\tthrow new Error(\"terminal: no terminal file\");\n\t}\n\treturn target.pathname;\n}\n\n/** A terminal surface file's path, as the sandbox may ask for it. */\nconst TERMINAL_FILE = /^\\/_chord\\/tui\\/(?:plugin\\/)?[\\w.~@-]+$/;\n\n/** The most frames held while a prompt is open: 1 MiB (characters); later ones are dropped. */\nconst MAX_HELD = 1024 * 1024;\n\n/** The most link sockets the sandbox may have open at once. */\nconst MAX_SOCKETS = 4;\n\n/** The most bytes a link socket may have waiting to go out; a sandbox sending more loses the socket. */\nconst MAX_SOCKET_BUFFER = 16 * 1024 * 1024;\n\n/** How long after a prompt appears its keys are ignored: a key typed for the sandbox does not answer it (Opus E4). */\nconst PROMPT_GUARD_MS = 300;\n\n/**\n * The terminal modes the sandbox may have set, back to the shell's: sync, mouse, focus, paste, cursor, the scroll region\n * (the cursor kept where it was) and autowrap (Opus E11), screen, colours.\n */\nconst RESET_MODES =\n\t\"\\x1b[?2026l\\x1b[?1000l\\x1b[?1002l\\x1b[?1006l\\x1b[?1004l\\x1b[?2004l\\x1b[?25h\\x1b7\\x1b[r\\x1b8\\x1b[?7h\\x1b[?1049l\\x1b[0m\";\n\n/** The most requests of one sandbox the launcher answers at once; more are refused at once (Opus E10). */\nconst MAX_REQUESTS = 8;\n\n/**\n * Ctrl-C: during a prompt it ends the client, so a sandbox asking again and again can always be left (Opus E11); and\n * three within a second always end it, whatever the sandbox does with them (Opus R2).\n */\nconst INTERRUPT = \"\\x03\";\n\n/** How many Ctrl-C within `INTERRUPT_WINDOW_MS` end the client however the sandbox takes them. */\nconst INTERRUPTS_TO_END = 3;\nconst INTERRUPT_WINDOW_MS = 1000;\n\n/** Starts a terminal client; rejects when it cannot sign in or download, or Node is too old for the sandbox. */\nexport async function startTerminal(options: TerminalOptions): Promise<RunningTerminal> {\n\trequireSandboxNode();\n\tconst output = options.output ?? process.stdout;\n\tconst url = new URL(options.url);\n\tconst abort = new AbortController();\n\t// What the launcher prints of the server's (the pairing's code) passes the output filter too.\n\tconst token = await tokenOf(\n\t\toptions.credentials,\n\t\turl,\n\t\t(line) => output.write(`${filterOutput(line)}\\r\\n`),\n\t\tabort.signal,\n\t);\n\tconst launcher = new Launcher(url, token, options);\n\tawait launcher.start();\n\treturn { exited: launcher.exited, stop: () => launcher.finish(0) };\n}\n\n/** One terminal client's launcher. */\nclass Launcher {\n\treadonly #url: URL;\n\treadonly #headers: Readonly<Record<string, string>>;\n\treadonly #options: TerminalOptions;\n\treadonly #input: NonNullable<TerminalOptions[\"input\"]>;\n\treadonly #output: NonNullable<TerminalOptions[\"output\"]>;\n\treadonly #sockets = new Map<number, WebSocket>();\n\t#sandbox: Sandbox | undefined;\n\t/** The running base bundle's hash: an `outdated` sandbox restarts only for another. */\n\t#base = \"\";\n\t/**\n\t * Whether an action is being confirmed (one at a time), from its request to its end: meanwhile the sandbox's frames\n\t * are held (`#held`, at most `MAX_HELD` bytes), so nothing draws over the prompt, even before it appears.\n\t */\n\t#confirming = false;\n\t/** The running sandbox's requests being answered (at most `MAX_REQUESTS`). */\n\t#requests = 0;\n\t/** The prompt open: its lines, its answer, and when its keys start to count. Keys go to it, not the sandbox. */\n\t#prompt:\n\t\t| { readonly lines: readonly string[]; readonly answer: (yes: boolean) => void; readonly ready: number }\n\t\t| undefined;\n\t#held: string[] = [];\n\t#heldBytes = 0;\n\t#finished = false;\n\t#exit!: (code: number) => void;\n\treadonly exited = new Promise<number>((resolve) => {\n\t\tthis.#exit = resolve;\n\t});\n\treadonly #onInput = (data: Buffer | string): void => {\n\t\tconst text = data.toString();\n\t\tif (this.#interrupted(text)) {\n\t\t\tvoid this.finish(130);\n\t\t\treturn;\n\t\t}\n\t\tif (this.#prompt === undefined) this.#sandbox?.post({ kind: \"input\", data: text });\n\t\telse if (text.includes(INTERRUPT)) void this.finish(130);\n\t\telse if (Date.now() >= this.#prompt.ready) this.#answered(text === \"y\" || text === \"Y\");\n\t};\n\treadonly #onResize = (): void => {\n\t\tif (this.#prompt !== undefined) this.#drawPrompt();\n\t\tthis.#sandbox?.post({ kind: \"resize\", columns: this.#columns, rows: this.#rows });\n\t};\n\t/** When the last Ctrl-C keys came: three within a second end the client. */\n\t#interrupts: number[] = [];\n\t/** The terminal given back if the launcher's process ends without `finish` (a crash). */\n\treadonly #onExit = (): void => {\n\t\tthis.#output.write(RESET_MODES);\n\t\tif (this.#input.isTTY === true) this.#input.setRawMode?.(false);\n\t};\n\n\tconstructor(url: URL, token: string, options: TerminalOptions) {\n\t\tthis.#url = url;\n\t\tthis.#headers = { authorization: `Bearer ${token}` };\n\t\tthis.#options = options;\n\t\tthis.#input = options.input ?? process.stdin;\n\t\tthis.#output = options.output ?? process.stdout;\n\t}\n\n\t/** Whether `text` brings the third Ctrl-C within a second (each still goes to the sandbox otherwise). */\n\t#interrupted(text: string): boolean {\n\t\tconst now = Date.now();\n\t\tfor (const character of text) if (character === INTERRUPT) this.#interrupts.push(now);\n\t\tthis.#interrupts = this.#interrupts.filter((at) => now - at < INTERRUPT_WINDOW_MS);\n\t\treturn this.#interrupts.length >= INTERRUPTS_TO_END;\n\t}\n\n\t// A pseudo-terminal may report 0 (Opus E4).\n\tget #columns(): number {\n\t\treturn this.#output.columns || 80;\n\t}\n\n\tget #rows(): number {\n\t\treturn this.#output.rows || 24;\n\t}\n\n\t/** Downloads the base bundle and the plugins, starts the sandbox and takes the terminal. */\n\tasync start(): Promise<void> {\n\t\tawait this.#startSandbox();\n\t\tif (this.#input.isTTY === true) this.#input.setRawMode?.(true);\n\t\tthis.#input.on(\"data\", this.#onInput);\n\t\tthis.#output.on(\"resize\", this.#onResize);\n\t\tprocess.once(\"exit\", this.#onExit);\n\t\t// Node opens its inspector on SIGUSR1 unless the signal has a listener: a sandbox may signal its launcher, and\n\t\t// an inspector would give any local process the launcher's token and files (Opus E8). Windows has no SIGUSR1.\n\t\tif (process.platform !== \"win32\") process.on(\"SIGUSR1\", ignoreSignal);\n\t}\n\n\t/** Ends the client with `code`: the terminal given back, the sockets closed, the sandbox ended. */\n\tasync finish(code: number): Promise<void> {\n\t\tif (this.#finished) return;\n\t\tthis.#finished = true;\n\t\tthis.#input.off(\"data\", this.#onInput);\n\t\tthis.#output.off(\"resize\", this.#onResize);\n\t\tprocess.off(\"exit\", this.#onExit);\n\t\tif (process.platform !== \"win32\") process.off(\"SIGUSR1\", ignoreSignal);\n\t\tif (this.#input.isTTY === true) this.#input.setRawMode?.(false);\n\t\tthis.#prompt?.answer(false);\n\t\tthis.#prompt = undefined;\n\t\tthis.#output.write(RESET_MODES);\n\t\tthis.#closeSockets();\n\t\tawait this.#sandbox?.terminate();\n\t\tthis.#exit(code);\n\t}\n\n\t/** A new sandbox with what the server serves now. */\n\tasync #startSandbox(): Promise<void> {\n\t\tconst start = JSON.parse(await this.#get(`${PREFIX}start`)) as TuiStart;\n\t\tconst [source, combined] = await Promise.all([this.#get(start.script), this.#get(start.combined)]);\n\t\tthis.#base = start.base;\n\t\tconst colors =\n\t\t\tthis.#options.colors ?? (/truecolor|24bit/.test(process.env.COLORTERM ?? \"\") ? \"truecolor\" : \"256\");\n\t\tconst bridge = {\n\t\t\tbase: start.base,\n\t\t\tcombined,\n\t\t\tcolumns: this.#columns,\n\t\t\trows: this.#rows,\n\t\t\tcolors,\n\t\t\tmode: this.#options.mode ?? \"dark\",\n\t\t\tlocales: this.#options.locales ?? systemLocales(),\n\t\t} as const;\n\t\tthis.#requests = 0;\n\t\tthis.#sandbox = await Sandbox.start(\n\t\t\tsource,\n\t\t\tbridge,\n\t\t\t(message) => this.#message(message),\n\t\t\t() => void this.finish(1),\n\t\t);\n\t}\n\n\t/** One message of the sandbox; one the launcher fails on ends the client, never the launcher's process. */\n\t#message(message: SandboxMessage): void {\n\t\ttry {\n\t\t\tthis.#handle(message);\n\t\t} catch {\n\t\t\tvoid this.finish(1);\n\t\t}\n\t}\n\n\t#handle(message: SandboxMessage): void {\n\t\tswitch (message.kind) {\n\t\t\tcase \"write\":\n\t\t\t\tthis.#write(message.data);\n\t\t\t\treturn;\n\t\t\tcase \"socket_open\":\n\t\t\t\tthis.#openSocket(message.socket);\n\t\t\t\treturn;\n\t\t\tcase \"socket_send\":\n\t\t\t\tthis.#send(message.socket, message.bytes);\n\t\t\t\treturn;\n\t\t\tcase \"socket_close\":\n\t\t\t\tthis.#sockets.get(message.socket)?.close();\n\t\t\t\treturn;\n\t\t\tcase \"request\":\n\t\t\t\tvoid this.#answer(message.id, message.request);\n\t\t\t\treturn;\n\t\t\tcase \"outdated\":\n\t\t\t\tvoid this.#outdated();\n\t\t\t\treturn;\n\t\t\tcase \"failed\":\n\t\t\t\tthis.#output.write(\"terminal: the terminal client failed to start\\n\");\n\t\t\t\tvoid this.finish(1);\n\t\t\t\treturn;\n\t\t\tcase \"exit\":\n\t\t\t\tvoid this.finish(message.code);\n\t\t}\n\t}\n\n\t/** Writes the sandbox's frame through the output filter (held while a prompt is open); one over 64 KiB is dropped. */\n\t#write(data: string): void {\n\t\tif (this.#confirming) {\n\t\t\tif (typeof data === \"string\" && this.#heldBytes + data.length <= MAX_HELD) {\n\t\t\t\tthis.#held.push(data);\n\t\t\t\tthis.#heldBytes += data.length;\n\t\t\t}\n\t\t\treturn;\n\t\t}\n\t\ttry {\n\t\t\tthis.#output.write(filterOutput(data));\n\t\t} catch {\n\t\t\t// Over 64 KiB (or no text): dropped, as an escape it could hide would be.\n\t\t}\n\t}\n\n\t/** Opens socket `socket` to the links endpoint with the launcher's token, relaying it to the sandbox. */\n\t#openSocket(socket: number): void {\n\t\t// A few at a time: the connection loop needs one; a runaway sandbox gets no more.\n\t\tif (this.#sockets.size >= MAX_SOCKETS) {\n\t\t\tthis.#sandbox?.post({ kind: \"socket_closed\", socket });\n\t\t\treturn;\n\t\t}\n\t\tconst target = new URL(\"/chord\", this.#url);\n\t\ttarget.protocol = target.protocol === \"https:\" ? \"wss:\" : \"ws:\";\n\t\tconst ws = new WebSocket(target, { headers: this.#headers });\n\t\tthis.#sockets.set(socket, ws);\n\t\tws.on(\"open\", () => this.#sandbox?.post({ kind: \"socket_opened\", socket }));\n\t\tws.on(\"message\", (data: Buffer) => {\n\t\t\tthis.#sandbox?.post({ kind: \"socket_message\", socket, bytes: new Uint8Array(data) });\n\t\t});\n\t\tconst closed = (): void => {\n\t\t\tif (this.#sockets.get(socket) !== ws) return;\n\t\t\tthis.#sockets.delete(socket);\n\t\t\tthis.#sandbox?.post({ kind: \"socket_closed\", socket });\n\t\t};\n\t\tws.on(\"close\", closed);\n\t\tws.on(\"error\", closed);\n\t}\n\n\t/**\n\t * Sends `bytes` on socket `socket` once it is open (before, the sandbox's link holds its messages; a send then is\n\t * dropped: Opus E3); a socket with more than 16 MiB waiting is closed.\n\t */\n\t#send(socket: number, bytes: Uint8Array): void {\n\t\tconst ws = this.#sockets.get(socket);\n\t\tif (ws?.readyState !== WebSocket.OPEN) return;\n\t\tif (ws.bufferedAmount + bytes.length > MAX_SOCKET_BUFFER) ws.terminate();\n\t\telse ws.send(bytes);\n\t}\n\n\t/** Answers the sandbox's request `id`. */\n\tasync #answer(id: number, request: BridgeRequest): Promise<void> {\n\t\t// The sandbox that asked: a reply never goes to the one a restart started meanwhile.\n\t\tconst sandbox = this.#sandbox;\n\t\tif (sandbox === undefined) return;\n\t\tif (this.#requests >= MAX_REQUESTS) {\n\t\t\tsandbox.post({ kind: \"refused\", id, message: \"terminal: too many requests at once\" });\n\t\t\treturn;\n\t\t}\n\t\tthis.#requests++;\n\t\ttry {\n\t\t\tlet value: unknown;\n\t\t\tif (request.kind === \"fetch\") value = await this.#get(terminalFile(request.path, this.#url));\n\t\t\telse if (request.kind === \"base\") value = JSON.parse(await this.#get(`${PREFIX}base`));\n\t\t\telse if (request.kind === \"attach\") {\n\t\t\t\tconst file = await this.#confirm(() => attach(request.path, this.#prompter()));\n\t\t\t\tif (file !== null) {\n\t\t\t\t\tsandbox.post({ kind: \"attached\", id, name: file.name, bytes: file.bytes });\n\t\t\t\t\treturn;\n\t\t\t\t}\n\t\t\t\tvalue = null;\n\t\t\t} else value = await this.#confirm(() => act(request, this.#prompter(), this.#options.opener));\n\t\t\tsandbox.post({ kind: \"reply\", id, value });\n\t\t} catch (error) {\n\t\t\tsandbox.post({ kind: \"refused\", id, message: error instanceof Error ? error.message : String(error) });\n\t\t} finally {\n\t\t\tif (this.#sandbox === sandbox) this.#requests--;\n\t\t}\n\t}\n\n\t/**\n\t * Runs the action `run` (it asks the user), one at a time: a second is refused while one runs. Afterwards the held\n\t * frames are written and the sandbox asked to redraw.\n\t */\n\tasync #confirm<T>(run: () => Promise<T>): Promise<T> {\n\t\tif (this.#confirming) throw new Error(\"terminal: a prompt is open\");\n\t\tthis.#confirming = true;\n\t\ttry {\n\t\t\treturn await run();\n\t\t} finally {\n\t\t\tthis.#confirming = false;\n\t\t\tconst held = this.#held;\n\t\t\tthis.#held = [];\n\t\t\tthis.#heldBytes = 0;\n\t\t\tfor (const frame of held) this.#write(frame);\n\t\t\tthis.#sandbox?.post({ kind: \"resize\", columns: this.#columns, rows: this.#rows });\n\t\t}\n\t}\n\n\t/** The launcher's own prompt on the real terminal, for the action being confirmed: its key not the sandbox's. */\n\t#prompter(): PromptTerminal {\n\t\treturn {\n\t\t\tcolumns: this.#columns,\n\t\t\task: (lines) => {\n\t\t\t\t// Shown whole or not at all: a prompt is never cut.\n\t\t\t\tif (promptLines(lines, this.#columns).length >= this.#rows) {\n\t\t\t\t\treturn Promise.reject(new Error(\"terminal: the prompt does not fit the terminal\"));\n\t\t\t\t}\n\t\t\t\treturn new Promise<boolean>((answer) => {\n\t\t\t\t\tthis.#prompt = { lines, answer, ready: Date.now() + PROMPT_GUARD_MS };\n\t\t\t\t\tthis.#drawPrompt();\n\t\t\t\t});\n\t\t\t},\n\t\t\twrite: (data) => this.#output.write(data),\n\t\t};\n\t}\n\n\t/**\n\t * Draws the open prompt on the bottom lines after closing a synchronized update the sandbox began: its attributes\n\t * reset and its colours explicit, black on white, so no state the sandbox left (concealed, black on black: Opus E4)\n\t * applies to it.\n\t */\n\t#drawPrompt(): void {\n\t\tconst lines = promptLines(this.#prompt!.lines, this.#columns);\n\t\tconst top = Math.max(1, this.#rows - lines.length + 1);\n\t\tconst drawn = lines.map((line, index) => `\\x1b[${top + index};1H\\x1b[0;30;47m\\x1b[2K ${line} `);\n\t\tthis.#output.write(`\\x1b[?2026l\\x1b[s${drawn.join(\"\")}\\x1b[0m`);\n\t}\n\n\t/** The prompt answered: cleared, the cursor back where the sandbox had it. */\n\t#answered(yes: boolean): void {\n\t\tconst { lines, answer } = this.#prompt!;\n\t\tthis.#prompt = undefined;\n\t\tconst rows = promptLines(lines, this.#columns);\n\t\tconst top = Math.max(1, this.#rows - rows.length + 1);\n\t\tconst cleared = rows.map((_row, index) => `\\x1b[${top + index};1H\\x1b[0m\\x1b[2K`).join(\"\");\n\t\tthis.#output.write(`${cleared}\\x1b[u`);\n\t\tanswer(yes);\n\t}\n\n\t/** The sandbox says its code is outdated: a new sandbox only when the server's base bundle is another. */\n\tasync #outdated(): Promise<void> {\n\t\tconst base = JSON.parse(await this.#get(`${PREFIX}base`).catch(() => \"null\")) as unknown;\n\t\tif (typeof base === \"string\" && base !== this.#base) await this.#restart();\n\t}\n\n\t/** The server has a new base bundle: a new sandbox with it, the old one ended. */\n\tasync #restart(): Promise<void> {\n\t\tthis.#closeSockets();\n\t\tawait this.#sandbox?.terminate();\n\t\tthis.#sandbox = undefined;\n\t\ttry {\n\t\t\tawait this.#startSandbox();\n\t\t\tthis.#onResize();\n\t\t} catch {\n\t\t\tawait this.finish(1);\n\t\t}\n\t}\n\n\t#closeSockets(): void {\n\t\tfor (const ws of this.#sockets.values()) ws.close();\n\t\tthis.#sockets.clear();\n\t}\n\n\t/** The text at `path` on the server, signed in; at most 8 MiB, read no further. */\n\tasync #get(path: string): Promise<string> {\n\t\tconst response = await fetch(new URL(path, this.#url), { headers: this.#headers });\n\t\tif (!response.ok || response.body === null) throw new Error(`terminal: GET ${path} answered ${response.status}`);\n\t\tif (Number(response.headers.get(\"content-length\") ?? 0) > MAX_BUNDLE)\n\t\t\tthrow new Error(`terminal: ${path} exceeds 8 MiB`);\n\t\tconst chunks: Uint8Array[] = [];\n\t\tlet size = 0;\n\t\tfor await (const chunk of response.body) {\n\t\t\tsize += chunk.length;\n\t\t\tif (size > MAX_BUNDLE) throw new Error(`terminal: ${path} exceeds 8 MiB`);\n\t\t\tchunks.push(chunk);\n\t\t}\n\t\treturn new TextDecoder().decode(Buffer.concat(chunks));\n\t}\n}\n\n/** The launcher's SIGUSR1 listener: the signal does nothing. */\nfunction ignoreSignal(): void {}\n\n/**\n * The system's languages: `LANGUAGE` (a colon list), then `LC_ALL`, `LC_MESSAGES`, `LANG` (`de_DE.UTF-8` is `de-DE`;\n * `C` and `POSIX` name none), then the runtime's default locale.\n */\nfunction systemLocales(): readonly string[] {\n\tconst { LANGUAGE, LC_ALL, LC_MESSAGES, LANG } = process.env;\n\tconst named = [...(LANGUAGE ?? \"\").split(\":\"), LC_ALL, LC_MESSAGES, LANG].flatMap((value) => {\n\t\tconst tag = value?.replace(/[.@].*$/, \"\").replace(/_/g, \"-\");\n\t\treturn tag === undefined || tag === \"\" || tag === \"C\" || tag === \"POSIX\" ? [] : [tag];\n\t});\n\treturn [...new Set([...named, Intl.DateTimeFormat().resolvedOptions().locale])];\n}\n"]}
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
import type { LauncherMessage, SandboxMessage } from "../../tui/bridge.ts";
|
|
2
|
+
/** The largest frame either side takes: 17 MiB (an attached file of 16 MiB and its header). */
|
|
3
|
+
export declare const MAX_PIPE_FRAME: number;
|
|
4
|
+
/** `message` as one frame for the sandbox. */
|
|
5
|
+
export declare function launcherFrame(message: LauncherMessage): Buffer;
|
|
6
|
+
/** The first frame: the bridge's start and the base bundle's text as body. */
|
|
7
|
+
export declare function startFrame(start: unknown, source: string): Buffer;
|
|
8
|
+
/**
|
|
9
|
+
* Cuts the sandbox's output into messages as chunks arrive; throws (the sandbox is ended) on a frame over
|
|
10
|
+
* `MAX_PIPE_FRAME`, a header over 1 MiB, or a message of no known shape. Each byte is copied in once, however small the
|
|
11
|
+
* chunks the sandbox writes.
|
|
12
|
+
*/
|
|
13
|
+
export declare class FrameReader {
|
|
14
|
+
#private;
|
|
15
|
+
/** The messages complete with `chunk`. */
|
|
16
|
+
push(chunk: Buffer): SandboxMessage[];
|
|
17
|
+
}
|
|
18
|
+
//# sourceMappingURL=pipe.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"pipe.d.ts","sourceRoot":"","sources":["../../../src/node/tui/pipe.ts"],"names":[],"mappings":"AAMA,OAAO,KAAK,EAAiB,eAAe,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC;AAE1F,+FAA+F;AAC/F,eAAO,MAAM,cAAc,QAAmB,CAAC;AAK/C,8CAA8C;AAC9C,wBAAgB,aAAa,CAAC,OAAO,EAAE,eAAe,GAAG,MAAM,CAM9D;AAED,8EAA8E;AAC9E,wBAAgB,UAAU,CAAC,KAAK,EAAE,OAAO,EAAE,MAAM,EAAE,MAAM,GAAG,MAAM,CAEjE;AAWD;;;;GAIG;AACH,qBAAa,WAAW;;IAKvB,0CAA0C;IAC1C,IAAI,CAAC,KAAK,EAAE,MAAM,GAAG,cAAc,EAAE,CAapC;CAmBD"}
|