@earendil-works/chord 1.4.0 → 1.5.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +92 -0
- package/README.md +115 -90
- package/dist/context/index.d.ts +1 -1
- package/dist/context/index.d.ts.map +1 -1
- package/dist/context/index.js +1 -1
- package/dist/context/index.js.map +1 -1
- package/dist/contracts/accepts.d.ts +81 -0
- package/dist/contracts/accepts.d.ts.map +1 -0
- package/dist/contracts/accepts.js +123 -0
- package/dist/contracts/accepts.js.map +1 -0
- package/dist/contracts/contract.d.ts +121 -0
- package/dist/contracts/contract.d.ts.map +1 -0
- package/dist/contracts/contract.js +50 -0
- package/dist/contracts/contract.js.map +1 -0
- package/dist/contracts/declare.d.ts +107 -0
- package/dist/contracts/declare.d.ts.map +1 -0
- package/dist/contracts/declare.js +136 -0
- package/dist/contracts/declare.js.map +1 -0
- package/dist/contracts/evolve.d.ts +92 -0
- package/dist/contracts/evolve.d.ts.map +1 -0
- package/dist/contracts/evolve.js +179 -0
- package/dist/contracts/evolve.js.map +1 -0
- package/dist/contracts/fingerprint.d.ts +16 -0
- package/dist/contracts/fingerprint.d.ts.map +1 -0
- package/dist/contracts/fingerprint.js +50 -0
- package/dist/contracts/fingerprint.js.map +1 -0
- package/dist/contracts/history.d.ts +71 -0
- package/dist/contracts/history.d.ts.map +1 -0
- package/dist/contracts/history.js +3 -0
- package/dist/contracts/history.js.map +1 -0
- package/dist/contracts/host-kind.d.ts +40 -0
- package/dist/contracts/host-kind.d.ts.map +1 -0
- package/dist/contracts/host-kind.js +37 -0
- package/dist/contracts/host-kind.js.map +1 -0
- package/dist/contracts/index.d.ts +7 -0
- package/dist/contracts/index.d.ts.map +1 -0
- package/dist/contracts/index.js +6 -0
- package/dist/contracts/index.js.map +1 -0
- package/dist/contracts/internal.d.ts +10 -0
- package/dist/contracts/internal.d.ts.map +1 -0
- package/dist/contracts/internal.js +9 -0
- package/dist/contracts/internal.js.map +1 -0
- package/dist/contracts/names.d.ts +3 -0
- package/dist/contracts/names.d.ts.map +1 -0
- package/dist/contracts/names.js +13 -0
- package/dist/contracts/names.js.map +1 -0
- package/dist/contracts/params.d.ts +28 -0
- package/dist/contracts/params.d.ts.map +1 -0
- package/dist/contracts/params.js +50 -0
- package/dist/contracts/params.js.map +1 -0
- package/dist/contracts/schema.d.ts +102 -0
- package/dist/contracts/schema.d.ts.map +1 -0
- package/dist/contracts/schema.js +103 -0
- package/dist/contracts/schema.js.map +1 -0
- package/dist/contracts/snapshot.d.ts +16 -0
- package/dist/contracts/snapshot.d.ts.map +1 -0
- package/dist/contracts/snapshot.js +167 -0
- package/dist/contracts/snapshot.js.map +1 -0
- package/dist/data/args.d.ts +50 -0
- package/dist/data/args.d.ts.map +1 -0
- package/dist/data/args.js +83 -0
- package/dist/data/args.js.map +1 -0
- package/dist/data/errors.d.ts +80 -0
- package/dist/data/errors.d.ts.map +1 -0
- package/dist/data/errors.js +116 -0
- package/dist/data/errors.js.map +1 -0
- package/dist/data/failure.d.ts +26 -0
- package/dist/data/failure.d.ts.map +1 -0
- package/dist/data/failure.js +77 -0
- package/dist/data/failure.js.map +1 -0
- package/dist/data/index.d.ts +4 -0
- package/dist/data/index.d.ts.map +1 -0
- package/dist/data/index.js +5 -0
- package/dist/data/index.js.map +1 -0
- package/dist/data/internal.d.ts +7 -0
- package/dist/data/internal.d.ts.map +1 -0
- package/dist/data/internal.js +8 -0
- package/dist/data/internal.js.map +1 -0
- package/dist/data/params.d.ts +20 -0
- package/dist/data/params.d.ts.map +1 -0
- package/dist/data/params.js +31 -0
- package/dist/data/params.js.map +1 -0
- package/dist/data/principal.d.ts +22 -0
- package/dist/data/principal.d.ts.map +1 -0
- package/dist/data/principal.js +49 -0
- package/dist/data/principal.js.map +1 -0
- package/dist/data/validator.d.ts +12 -0
- package/dist/data/validator.d.ts.map +1 -0
- package/dist/data/validator.js +35 -0
- package/dist/data/validator.js.map +1 -0
- package/dist/delta/apply-immutable-trusted.js +3 -4
- package/dist/delta/apply-immutable-trusted.js.map +1 -1
- package/dist/delta/diff.d.ts.map +1 -1
- package/dist/delta/diff.js +5 -3
- package/dist/delta/diff.js.map +1 -1
- package/dist/delta/index.d.ts +9 -1
- package/dist/delta/index.d.ts.map +1 -1
- package/dist/delta/index.js +15 -11
- package/dist/delta/index.js.map +1 -1
- package/dist/delta/pending.d.ts +36 -0
- package/dist/delta/pending.d.ts.map +1 -0
- package/dist/delta/pending.js +143 -0
- package/dist/delta/pending.js.map +1 -0
- package/dist/delta/tracker.d.ts +12 -0
- package/dist/delta/tracker.d.ts.map +1 -1
- package/dist/delta/tracker.js +109 -39
- package/dist/delta/tracker.js.map +1 -1
- package/dist/documents/address-source.d.ts +20 -0
- package/dist/documents/address-source.d.ts.map +1 -0
- package/dist/documents/address-source.js +44 -0
- package/dist/documents/address-source.js.map +1 -0
- package/dist/documents/definition.d.ts +84 -0
- package/dist/documents/definition.d.ts.map +1 -0
- package/dist/documents/definition.js +74 -0
- package/dist/documents/definition.js.map +1 -0
- package/dist/documents/documents.d.ts +126 -0
- package/dist/documents/documents.d.ts.map +1 -0
- package/dist/documents/documents.js +248 -0
- package/dist/documents/documents.js.map +1 -0
- package/dist/documents/fence.d.ts +9 -0
- package/dist/documents/fence.d.ts.map +1 -0
- package/dist/documents/fence.js +15 -0
- package/dist/documents/fence.js.map +1 -0
- package/dist/documents/handles.d.ts +76 -0
- package/dist/documents/handles.d.ts.map +1 -0
- package/dist/documents/handles.js +66 -0
- package/dist/documents/handles.js.map +1 -0
- package/dist/documents/index.d.ts +4 -0
- package/dist/documents/index.d.ts.map +1 -0
- package/dist/documents/index.js +3 -0
- package/dist/documents/index.js.map +1 -0
- package/dist/documents/internal.d.ts +9 -0
- package/dist/documents/internal.d.ts.map +1 -0
- package/dist/documents/internal.js +9 -0
- package/dist/documents/internal.js.map +1 -0
- package/dist/documents/keyed-slot.d.ts +103 -0
- package/dist/documents/keyed-slot.d.ts.map +1 -0
- package/dist/documents/keyed-slot.js +395 -0
- package/dist/documents/keyed-slot.js.map +1 -0
- package/dist/documents/line.d.ts +7 -0
- package/dist/documents/line.d.ts.map +1 -0
- package/dist/documents/line.js +14 -0
- package/dist/documents/line.js.map +1 -0
- package/dist/documents/persistence.d.ts +104 -0
- package/dist/documents/persistence.d.ts.map +1 -0
- package/dist/documents/persistence.js +129 -0
- package/dist/documents/persistence.js.map +1 -0
- package/dist/documents/residency.d.ts +31 -0
- package/dist/documents/residency.d.ts.map +1 -0
- package/dist/documents/residency.js +93 -0
- package/dist/documents/residency.js.map +1 -0
- package/dist/documents/slot.d.ts +109 -0
- package/dist/documents/slot.d.ts.map +1 -0
- package/dist/documents/slot.js +181 -0
- package/dist/documents/slot.js.map +1 -0
- package/dist/documents/transaction.d.ts +143 -0
- package/dist/documents/transaction.d.ts.map +1 -0
- package/dist/documents/transaction.js +442 -0
- package/dist/documents/transaction.js.map +1 -0
- package/dist/host/activity.d.ts +31 -0
- package/dist/host/activity.d.ts.map +1 -0
- package/dist/host/activity.js +40 -0
- package/dist/host/activity.js.map +1 -0
- package/dist/host/adapted.d.ts +49 -0
- package/dist/host/adapted.d.ts.map +1 -0
- package/dist/host/adapted.js +214 -0
- package/dist/host/adapted.js.map +1 -0
- package/dist/host/attempt.d.ts +308 -0
- package/dist/host/attempt.d.ts.map +1 -0
- package/dist/host/attempt.js +1199 -0
- package/dist/host/attempt.js.map +1 -0
- package/dist/host/backoff.d.ts +29 -0
- package/dist/host/backoff.d.ts.map +1 -0
- package/dist/host/backoff.js +69 -0
- package/dist/host/backoff.js.map +1 -0
- package/dist/host/ctx.d.ts +94 -0
- package/dist/host/ctx.d.ts.map +1 -0
- package/dist/host/ctx.js +200 -0
- package/dist/host/ctx.js.map +1 -0
- package/dist/host/deadline.d.ts +12 -0
- package/dist/host/deadline.d.ts.map +1 -0
- package/dist/host/deadline.js +40 -0
- package/dist/host/deadline.js.map +1 -0
- package/dist/host/dependencies.d.ts +65 -0
- package/dist/host/dependencies.d.ts.map +1 -0
- package/dist/host/dependencies.js +115 -0
- package/dist/host/dependencies.js.map +1 -0
- package/dist/host/destination.d.ts +48 -0
- package/dist/host/destination.d.ts.map +1 -0
- package/dist/host/destination.js +101 -0
- package/dist/host/destination.js.map +1 -0
- package/dist/host/facet.d.ts +84 -0
- package/dist/host/facet.d.ts.map +1 -0
- package/dist/host/facet.js +55 -0
- package/dist/host/facet.js.map +1 -0
- package/dist/host/follow.d.ts +52 -0
- package/dist/host/follow.d.ts.map +1 -0
- package/dist/host/follow.js +207 -0
- package/dist/host/follow.js.map +1 -0
- package/dist/host/host.d.ts +571 -0
- package/dist/host/host.d.ts.map +1 -0
- package/dist/host/host.js +1318 -0
- package/dist/host/host.js.map +1 -0
- package/dist/host/index.d.ts +17 -0
- package/dist/host/index.d.ts.map +1 -0
- package/dist/host/index.js +6 -0
- package/dist/host/index.js.map +1 -0
- package/dist/host/internal.d.ts +11 -0
- package/dist/host/internal.d.ts.map +1 -0
- package/dist/host/internal.js +9 -0
- package/dist/host/internal.js.map +1 -0
- package/dist/host/members.d.ts +50 -0
- package/dist/host/members.d.ts.map +1 -0
- package/dist/host/members.js +107 -0
- package/dist/host/members.js.map +1 -0
- package/dist/host/native.d.ts +64 -0
- package/dist/host/native.d.ts.map +1 -0
- package/dist/host/native.js +126 -0
- package/dist/host/native.js.map +1 -0
- package/dist/host/object.d.ts +331 -0
- package/dist/host/object.d.ts.map +1 -0
- package/dist/host/object.js +1296 -0
- package/dist/host/object.js.map +1 -0
- package/dist/host/old-work.d.ts +34 -0
- package/dist/host/old-work.d.ts.map +1 -0
- package/dist/host/old-work.js +52 -0
- package/dist/host/old-work.js.map +1 -0
- package/dist/host/parked.d.ts +23 -0
- package/dist/host/parked.d.ts.map +1 -0
- package/dist/host/parked.js +79 -0
- package/dist/host/parked.js.map +1 -0
- package/dist/host/presence.d.ts +34 -0
- package/dist/host/presence.d.ts.map +1 -0
- package/dist/host/presence.js +117 -0
- package/dist/host/presence.js.map +1 -0
- package/dist/host/readiness.d.ts +27 -0
- package/dist/host/readiness.d.ts.map +1 -0
- package/dist/host/readiness.js +134 -0
- package/dist/host/readiness.js.map +1 -0
- package/dist/host/ref-state.d.ts +53 -0
- package/dist/host/ref-state.d.ts.map +1 -0
- package/dist/host/ref-state.js +83 -0
- package/dist/host/ref-state.js.map +1 -0
- package/dist/host/reference-keys.d.ts +36 -0
- package/dist/host/reference-keys.d.ts.map +1 -0
- package/dist/host/reference-keys.js +168 -0
- package/dist/host/reference-keys.js.map +1 -0
- package/dist/host/reference-source.d.ts +65 -0
- package/dist/host/reference-source.d.ts.map +1 -0
- package/dist/host/reference-source.js +285 -0
- package/dist/host/reference-source.js.map +1 -0
- package/dist/host/reference.d.ts +321 -0
- package/dist/host/reference.d.ts.map +1 -0
- package/dist/host/reference.js +797 -0
- package/dist/host/reference.js.map +1 -0
- package/dist/host/reload-cycle.d.ts +16 -0
- package/dist/host/reload-cycle.d.ts.map +1 -0
- package/dist/host/reload-cycle.js +81 -0
- package/dist/host/reload-cycle.js.map +1 -0
- package/dist/host/retry-on.d.ts +28 -0
- package/dist/host/retry-on.d.ts.map +1 -0
- package/dist/host/retry-on.js +52 -0
- package/dist/host/retry-on.js.map +1 -0
- package/dist/host/revocation.d.ts +16 -0
- package/dist/host/revocation.d.ts.map +1 -0
- package/dist/host/revocation.js +27 -0
- package/dist/host/revocation.js.map +1 -0
- package/dist/host/root.d.ts +37 -0
- package/dist/host/root.d.ts.map +1 -0
- package/dist/host/root.js +68 -0
- package/dist/host/root.js.map +1 -0
- package/dist/host/route.d.ts +64 -0
- package/dist/host/route.d.ts.map +1 -0
- package/dist/host/route.js +227 -0
- package/dist/host/route.js.map +1 -0
- package/dist/host/routines.d.ts +78 -0
- package/dist/host/routines.d.ts.map +1 -0
- package/dist/host/routines.js +398 -0
- package/dist/host/routines.js.map +1 -0
- package/dist/host/sleep.d.ts +9 -0
- package/dist/host/sleep.d.ts.map +1 -0
- package/dist/host/sleep.js +40 -0
- package/dist/host/sleep.js.map +1 -0
- package/dist/host/staging.d.ts +94 -0
- package/dist/host/staging.d.ts.map +1 -0
- package/dist/host/staging.js +304 -0
- package/dist/host/staging.js.map +1 -0
- package/dist/host/unbound-clock.d.ts +23 -0
- package/dist/host/unbound-clock.d.ts.map +1 -0
- package/dist/host/unbound-clock.js +58 -0
- package/dist/host/unbound-clock.js.map +1 -0
- package/dist/host/unbound.d.ts +37 -0
- package/dist/host/unbound.d.ts.map +1 -0
- package/dist/host/unbound.js +88 -0
- package/dist/host/unbound.js.map +1 -0
- package/dist/host/uuid.d.ts +3 -0
- package/dist/host/uuid.d.ts.map +1 -0
- package/dist/host/uuid.js +38 -0
- package/dist/host/uuid.js.map +1 -0
- package/dist/index.d.ts +29 -18
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +20 -9
- package/dist/index.js.map +1 -1
- package/dist/jobs/definition.d.ts +96 -0
- package/dist/jobs/definition.d.ts.map +1 -0
- package/dist/jobs/definition.js +83 -0
- package/dist/jobs/definition.js.map +1 -0
- package/dist/jobs/index.d.ts +5 -0
- package/dist/jobs/index.d.ts.map +1 -0
- package/dist/jobs/index.js +3 -0
- package/dist/jobs/index.js.map +1 -0
- package/dist/jobs/internal.d.ts +3 -0
- package/dist/jobs/internal.d.ts.map +1 -0
- package/dist/jobs/internal.js +4 -0
- package/dist/jobs/internal.js.map +1 -0
- package/dist/jobs/job.d.ts +149 -0
- package/dist/jobs/job.d.ts.map +1 -0
- package/dist/jobs/job.js +387 -0
- package/dist/jobs/job.js.map +1 -0
- package/dist/jobs/persisted.d.ts +38 -0
- package/dist/jobs/persisted.d.ts.map +1 -0
- package/dist/jobs/persisted.js +95 -0
- package/dist/jobs/persisted.js.map +1 -0
- package/dist/jobs/records.d.ts +231 -0
- package/dist/jobs/records.d.ts.map +1 -0
- package/dist/jobs/records.js +871 -0
- package/dist/jobs/records.js.map +1 -0
- package/dist/jobs/run-states.d.ts +69 -0
- package/dist/jobs/run-states.d.ts.map +1 -0
- package/dist/jobs/run-states.js +228 -0
- package/dist/jobs/run-states.js.map +1 -0
- package/dist/jobs/run.d.ts +117 -0
- package/dist/jobs/run.d.ts.map +1 -0
- package/dist/jobs/run.js +204 -0
- package/dist/jobs/run.js.map +1 -0
- package/dist/jobs/running.d.ts +44 -0
- package/dist/jobs/running.d.ts.map +1 -0
- package/dist/jobs/running.js +117 -0
- package/dist/jobs/running.js.map +1 -0
- package/dist/jobs/stored.d.ts +63 -0
- package/dist/jobs/stored.d.ts.map +1 -0
- package/dist/jobs/stored.js +55 -0
- package/dist/jobs/stored.js.map +1 -0
- package/dist/link/binary.d.ts +4 -0
- package/dist/link/binary.d.ts.map +1 -0
- package/dist/link/binary.js +544 -0
- package/dist/link/binary.js.map +1 -0
- package/dist/link/channel.d.ts +68 -0
- package/dist/link/channel.d.ts.map +1 -0
- package/dist/link/channel.js +215 -0
- package/dist/link/channel.js.map +1 -0
- package/dist/link/errors.d.ts +7 -0
- package/dist/link/errors.d.ts.map +1 -0
- package/dist/link/errors.js +21 -0
- package/dist/link/errors.js.map +1 -0
- package/dist/link/index.d.ts +8 -0
- package/dist/link/index.d.ts.map +1 -0
- package/dist/link/index.js +8 -0
- package/dist/link/index.js.map +1 -0
- package/dist/link/internal.d.ts +9 -0
- package/dist/link/internal.d.ts.map +1 -0
- package/dist/link/internal.js +10 -0
- package/dist/link/internal.js.map +1 -0
- package/dist/link/ipc.d.ts +22 -0
- package/dist/link/ipc.d.ts.map +1 -0
- package/dist/link/ipc.js +64 -0
- package/dist/link/ipc.js.map +1 -0
- package/dist/link/link.d.ts +34 -0
- package/dist/link/link.d.ts.map +1 -0
- package/dist/link/link.js +87 -0
- package/dist/link/link.js.map +1 -0
- package/dist/link/message.d.ts +262 -0
- package/dist/link/message.d.ts.map +1 -0
- package/dist/link/message.js +156 -0
- package/dist/link/message.js.map +1 -0
- package/dist/link/part.d.ts +80 -0
- package/dist/link/part.d.ts.map +1 -0
- package/dist/link/part.js +165 -0
- package/dist/link/part.js.map +1 -0
- package/dist/link/text.d.ts +6 -0
- package/dist/link/text.d.ts.map +1 -0
- package/dist/link/text.js +355 -0
- package/dist/link/text.js.map +1 -0
- package/dist/link/values.d.ts +40 -0
- package/dist/link/values.d.ts.map +1 -0
- package/dist/link/values.js +121 -0
- package/dist/link/values.js.map +1 -0
- package/dist/link/websocket.d.ts +26 -0
- package/dist/link/websocket.d.ts.map +1 -0
- package/dist/link/websocket.js +91 -0
- package/dist/link/websocket.js.map +1 -0
- package/dist/node/app/app.d.ts +269 -0
- package/dist/node/app/app.d.ts.map +1 -0
- package/dist/node/app/app.js +513 -0
- package/dist/node/app/app.js.map +1 -0
- package/dist/node/app/archive.d.ts +37 -0
- package/dist/node/app/archive.d.ts.map +1 -0
- package/dist/node/app/archive.js +204 -0
- package/dist/node/app/archive.js.map +1 -0
- package/dist/node/app/blobs.d.ts +23 -0
- package/dist/node/app/blobs.d.ts.map +1 -0
- package/dist/node/app/blobs.js +64 -0
- package/dist/node/app/blobs.js.map +1 -0
- package/dist/node/app/data.d.ts +35 -0
- package/dist/node/app/data.d.ts.map +1 -0
- package/dist/node/app/data.js +44 -0
- package/dist/node/app/data.js.map +1 -0
- package/dist/node/app/ephemeral-sessions.d.ts +20 -0
- package/dist/node/app/ephemeral-sessions.d.ts.map +1 -0
- package/dist/node/app/ephemeral-sessions.js +69 -0
- package/dist/node/app/ephemeral-sessions.js.map +1 -0
- package/dist/node/app/ephemeral.d.ts +11 -0
- package/dist/node/app/ephemeral.d.ts.map +1 -0
- package/dist/node/app/ephemeral.js +34 -0
- package/dist/node/app/ephemeral.js.map +1 -0
- package/dist/node/app/files-copy.d.ts +13 -0
- package/dist/node/app/files-copy.d.ts.map +1 -0
- package/dist/node/app/files-copy.js +86 -0
- package/dist/node/app/files-copy.js.map +1 -0
- package/dist/node/app/files-entry.d.ts +4 -0
- package/dist/node/app/files-entry.d.ts.map +1 -0
- package/dist/node/app/files-entry.js +7 -0
- package/dist/node/app/files-entry.js.map +1 -0
- package/dist/node/app/files-index.d.ts +180 -0
- package/dist/node/app/files-index.d.ts.map +1 -0
- package/dist/node/app/files-index.js +535 -0
- package/dist/node/app/files-index.js.map +1 -0
- package/dist/node/app/files.d.ts +363 -0
- package/dist/node/app/files.d.ts.map +1 -0
- package/dist/node/app/files.js +368 -0
- package/dist/node/app/files.js.map +1 -0
- package/dist/node/app/folder-views.d.ts +21 -0
- package/dist/node/app/folder-views.d.ts.map +1 -0
- package/dist/node/app/folder-views.js +55 -0
- package/dist/node/app/folder-views.js.map +1 -0
- package/dist/node/app/index.d.ts +12 -0
- package/dist/node/app/index.d.ts.map +1 -0
- package/dist/node/app/index.js +15 -0
- package/dist/node/app/index.js.map +1 -0
- package/dist/node/app/info.d.ts +66 -0
- package/dist/node/app/info.d.ts.map +1 -0
- package/dist/node/app/info.js +37 -0
- package/dist/node/app/info.js.map +1 -0
- package/dist/node/app/invite.d.ts +5 -0
- package/dist/node/app/invite.d.ts.map +1 -0
- package/dist/node/app/invite.js +64 -0
- package/dist/node/app/invite.js.map +1 -0
- package/dist/node/app/layout.d.ts +36 -0
- package/dist/node/app/layout.d.ts.map +1 -0
- package/dist/node/app/layout.js +87 -0
- package/dist/node/app/layout.js.map +1 -0
- package/dist/node/app/owner.d.ts +31 -0
- package/dist/node/app/owner.d.ts.map +1 -0
- package/dist/node/app/owner.js +104 -0
- package/dist/node/app/owner.js.map +1 -0
- package/dist/node/app/pairing.d.ts +55 -0
- package/dist/node/app/pairing.d.ts.map +1 -0
- package/dist/node/app/pairing.js +183 -0
- package/dist/node/app/pairing.js.map +1 -0
- package/dist/node/app/secrets.d.ts +16 -0
- package/dist/node/app/secrets.d.ts.map +1 -0
- package/dist/node/app/secrets.js +72 -0
- package/dist/node/app/secrets.js.map +1 -0
- package/dist/node/app/sessions.d.ts +72 -0
- package/dist/node/app/sessions.d.ts.map +1 -0
- package/dist/node/app/sessions.js +222 -0
- package/dist/node/app/sessions.js.map +1 -0
- package/dist/node/app/tar.d.ts +24 -0
- package/dist/node/app/tar.d.ts.map +1 -0
- package/dist/node/app/tar.js +167 -0
- package/dist/node/app/tar.js.map +1 -0
- package/dist/node/app/uploads.d.ts +37 -0
- package/dist/node/app/uploads.d.ts.map +1 -0
- package/dist/node/app/uploads.js +157 -0
- package/dist/node/app/uploads.js.map +1 -0
- package/dist/node/app/users.d.ts +37 -0
- package/dist/node/app/users.d.ts.map +1 -0
- package/dist/node/app/users.js +62 -0
- package/dist/node/app/users.js.map +1 -0
- package/dist/node/app/worker.d.ts +18 -0
- package/dist/node/app/worker.d.ts.map +1 -0
- package/dist/node/app/worker.js +84 -0
- package/dist/node/app/worker.js.map +1 -0
- package/dist/node/compression.d.ts +7 -0
- package/dist/node/compression.d.ts.map +1 -0
- package/dist/node/compression.js +25 -0
- package/dist/node/compression.js.map +1 -0
- package/dist/node/http/admission.d.ts +63 -0
- package/dist/node/http/admission.d.ts.map +1 -0
- package/dist/node/http/admission.js +134 -0
- package/dist/node/http/admission.js.map +1 -0
- package/dist/node/http/authenticate.d.ts +21 -0
- package/dist/node/http/authenticate.d.ts.map +1 -0
- package/dist/node/http/authenticate.js +34 -0
- package/dist/node/http/authenticate.js.map +1 -0
- package/dist/node/http/cookies.d.ts +32 -0
- package/dist/node/http/cookies.d.ts.map +1 -0
- package/dist/node/http/cookies.js +70 -0
- package/dist/node/http/cookies.js.map +1 -0
- package/dist/node/http/file.d.ts +23 -0
- package/dist/node/http/file.d.ts.map +1 -0
- package/dist/node/http/file.js +94 -0
- package/dist/node/http/file.js.map +1 -0
- package/dist/node/http/headers.d.ts +37 -0
- package/dist/node/http/headers.d.ts.map +1 -0
- package/dist/node/http/headers.js +136 -0
- package/dist/node/http/headers.js.map +1 -0
- package/dist/node/http/http.d.ts +111 -0
- package/dist/node/http/http.d.ts.map +1 -0
- package/dist/node/http/http.js +524 -0
- package/dist/node/http/http.js.map +1 -0
- package/dist/node/http/incoming.d.ts +19 -0
- package/dist/node/http/incoming.d.ts.map +1 -0
- package/dist/node/http/incoming.js +31 -0
- package/dist/node/http/incoming.js.map +1 -0
- package/dist/node/http/index.d.ts +11 -0
- package/dist/node/http/index.d.ts.map +1 -0
- package/dist/node/http/index.js +12 -0
- package/dist/node/http/index.js.map +1 -0
- package/dist/node/http/node.d.ts +78 -0
- package/dist/node/http/node.d.ts.map +1 -0
- package/dist/node/http/node.js +291 -0
- package/dist/node/http/node.js.map +1 -0
- package/dist/node/http/request.d.ts +60 -0
- package/dist/node/http/request.d.ts.map +1 -0
- package/dist/node/http/request.js +118 -0
- package/dist/node/http/request.js.map +1 -0
- package/dist/node/http/response.d.ts +63 -0
- package/dist/node/http/response.d.ts.map +1 -0
- package/dist/node/http/response.js +202 -0
- package/dist/node/http/response.js.map +1 -0
- package/dist/node/http/router.d.ts +132 -0
- package/dist/node/http/router.d.ts.map +1 -0
- package/dist/node/http/router.js +267 -0
- package/dist/node/http/router.js.map +1 -0
- package/dist/node/http/upgrades.d.ts +61 -0
- package/dist/node/http/upgrades.d.ts.map +1 -0
- package/dist/node/http/upgrades.js +192 -0
- package/dist/node/http/upgrades.js.map +1 -0
- package/dist/node/plugins/base-inputs.d.ts +14 -0
- package/dist/node/plugins/base-inputs.d.ts.map +1 -0
- package/dist/node/plugins/base-inputs.js +33 -0
- package/dist/node/plugins/base-inputs.js.map +1 -0
- package/dist/node/plugins/build.d.ts +77 -0
- package/dist/node/plugins/build.d.ts.map +1 -0
- package/dist/node/plugins/build.js +576 -0
- package/dist/node/plugins/build.js.map +1 -0
- package/dist/node/plugins/css-modules.d.ts +13 -0
- package/dist/node/plugins/css-modules.d.ts.map +1 -0
- package/dist/node/plugins/css-modules.js +58 -0
- package/dist/node/plugins/css-modules.js.map +1 -0
- package/dist/node/plugins/discover.d.ts +67 -0
- package/dist/node/plugins/discover.d.ts.map +1 -0
- package/dist/node/plugins/discover.js +369 -0
- package/dist/node/plugins/discover.js.map +1 -0
- package/dist/node/plugins/evaluate.d.ts +33 -0
- package/dist/node/plugins/evaluate.d.ts.map +1 -0
- package/dist/node/plugins/evaluate.js +121 -0
- package/dist/node/plugins/evaluate.js.map +1 -0
- package/dist/node/plugins/index.d.ts +11 -0
- package/dist/node/plugins/index.d.ts.map +1 -0
- package/dist/node/plugins/index.js +13 -0
- package/dist/node/plugins/index.js.map +1 -0
- package/dist/node/plugins/install.d.ts +38 -0
- package/dist/node/plugins/install.d.ts.map +1 -0
- package/dist/node/plugins/install.js +213 -0
- package/dist/node/plugins/install.js.map +1 -0
- package/dist/node/plugins/plugins.d.ts +162 -0
- package/dist/node/plugins/plugins.d.ts.map +1 -0
- package/dist/node/plugins/plugins.js +244 -0
- package/dist/node/plugins/plugins.js.map +1 -0
- package/dist/node/plugins/runtime.d.ts +57 -0
- package/dist/node/plugins/runtime.d.ts.map +1 -0
- package/dist/node/plugins/runtime.js +92 -0
- package/dist/node/plugins/runtime.js.map +1 -0
- package/dist/node/plugins/stack.d.ts +16 -0
- package/dist/node/plugins/stack.d.ts.map +1 -0
- package/dist/node/plugins/stack.js +61 -0
- package/dist/node/plugins/stack.js.map +1 -0
- package/dist/node/plugins/testing.d.ts +58 -0
- package/dist/node/plugins/testing.d.ts.map +1 -0
- package/dist/node/plugins/testing.js +210 -0
- package/dist/node/plugins/testing.js.map +1 -0
- package/dist/node/plugins/watcher.d.ts +69 -0
- package/dist/node/plugins/watcher.d.ts.map +1 -0
- package/dist/node/plugins/watcher.js +622 -0
- package/dist/node/plugins/watcher.js.map +1 -0
- package/dist/node/surfaces/bundle.d.ts +31 -0
- package/dist/node/surfaces/bundle.d.ts.map +1 -0
- package/dist/node/surfaces/bundle.js +118 -0
- package/dist/node/surfaces/bundle.js.map +1 -0
- package/dist/node/surfaces/current.d.ts +17 -0
- package/dist/node/surfaces/current.d.ts.map +1 -0
- package/dist/node/surfaces/current.js +54 -0
- package/dist/node/surfaces/current.js.map +1 -0
- package/dist/node/surfaces/index.d.ts +6 -0
- package/dist/node/surfaces/index.d.ts.map +1 -0
- package/dist/node/surfaces/index.js +6 -0
- package/dist/node/surfaces/index.js.map +1 -0
- package/dist/node/surfaces/published.d.ts +27 -0
- package/dist/node/surfaces/published.d.ts.map +1 -0
- package/dist/node/surfaces/published.js +142 -0
- package/dist/node/surfaces/published.js.map +1 -0
- package/dist/node/surfaces/served.d.ts +15 -0
- package/dist/node/surfaces/served.d.ts.map +1 -0
- package/dist/node/surfaces/served.js +42 -0
- package/dist/node/surfaces/served.js.map +1 -0
- package/dist/node/surfaces/surface-build.d.ts +53 -0
- package/dist/node/surfaces/surface-build.d.ts.map +1 -0
- package/dist/node/surfaces/surface-build.js +105 -0
- package/dist/node/surfaces/surface-build.js.map +1 -0
- package/dist/node/surfaces/tui.d.ts +40 -0
- package/dist/node/surfaces/tui.d.ts.map +1 -0
- package/dist/node/surfaces/tui.js +55 -0
- package/dist/node/surfaces/tui.js.map +1 -0
- package/dist/node/surfaces/web.d.ts +56 -0
- package/dist/node/surfaces/web.d.ts.map +1 -0
- package/dist/node/surfaces/web.js +108 -0
- package/dist/node/surfaces/web.js.map +1 -0
- package/dist/node/tui/actions.d.ts +49 -0
- package/dist/node/tui/actions.d.ts.map +1 -0
- package/dist/node/tui/actions.js +195 -0
- package/dist/node/tui/actions.js.map +1 -0
- package/dist/node/tui/credentials.d.ts +17 -0
- package/dist/node/tui/credentials.d.ts.map +1 -0
- package/dist/node/tui/credentials.js +54 -0
- package/dist/node/tui/credentials.js.map +1 -0
- package/dist/node/tui/filter.d.ts +5 -0
- package/dist/node/tui/filter.d.ts.map +1 -0
- package/dist/node/tui/filter.js +79 -0
- package/dist/node/tui/filter.js.map +1 -0
- package/dist/node/tui/index.d.ts +6 -0
- package/dist/node/tui/index.d.ts.map +1 -0
- package/dist/node/tui/index.js +6 -0
- package/dist/node/tui/index.js.map +1 -0
- package/dist/node/tui/launcher.d.ts +40 -0
- package/dist/node/tui/launcher.d.ts.map +1 -0
- package/dist/node/tui/launcher.js +439 -0
- package/dist/node/tui/launcher.js.map +1 -0
- package/dist/node/tui/pipe.d.ts +18 -0
- package/dist/node/tui/pipe.d.ts.map +1 -0
- package/dist/node/tui/pipe.js +134 -0
- package/dist/node/tui/pipe.js.map +1 -0
- package/dist/node/tui/sandbox.d.ts +54 -0
- package/dist/node/tui/sandbox.d.ts.map +1 -0
- package/dist/node/tui/sandbox.js +431 -0
- package/dist/node/tui/sandbox.js.map +1 -0
- package/dist/node/workers/base.d.ts +30 -0
- package/dist/node/workers/base.d.ts.map +1 -0
- package/dist/node/workers/base.js +255 -0
- package/dist/node/workers/base.js.map +1 -0
- package/dist/node/workers/child.d.ts +4 -0
- package/dist/node/workers/child.d.ts.map +1 -0
- package/dist/node/workers/child.js +6 -0
- package/dist/node/workers/child.js.map +1 -0
- package/dist/node/workers/control.d.ts +83 -0
- package/dist/node/workers/control.d.ts.map +1 -0
- package/dist/node/workers/control.js +77 -0
- package/dist/node/workers/control.js.map +1 -0
- package/dist/node/workers/index.d.ts +4 -0
- package/dist/node/workers/index.d.ts.map +1 -0
- package/dist/node/workers/index.js +7 -0
- package/dist/node/workers/index.js.map +1 -0
- package/dist/node/workers/lock.d.ts +30 -0
- package/dist/node/workers/lock.d.ts.map +1 -0
- package/dist/node/workers/lock.js +180 -0
- package/dist/node/workers/lock.js.map +1 -0
- package/dist/node/workers/main.d.ts +46 -0
- package/dist/node/workers/main.d.ts.map +1 -0
- package/dist/node/workers/main.js +230 -0
- package/dist/node/workers/main.js.map +1 -0
- package/dist/node/workers/process.d.ts +42 -0
- package/dist/node/workers/process.d.ts.map +1 -0
- package/dist/node/workers/process.js +125 -0
- package/dist/node/workers/process.js.map +1 -0
- package/dist/node/workers/workers.d.ts +122 -0
- package/dist/node/workers/workers.d.ts.map +1 -0
- package/dist/node/workers/workers.js +677 -0
- package/dist/node/workers/workers.js.map +1 -0
- package/dist/output.d.ts +1 -1
- package/dist/output.d.ts.map +1 -1
- package/dist/output.js +4 -2
- package/dist/output.js.map +1 -1
- package/dist/react/hooks.d.ts +43 -0
- package/dist/react/hooks.d.ts.map +1 -0
- package/dist/react/hooks.js +82 -0
- package/dist/react/hooks.js.map +1 -0
- package/dist/react/index.d.ts +3 -0
- package/dist/react/index.d.ts.map +1 -0
- package/dist/react/index.js +4 -0
- package/dist/react/index.js.map +1 -0
- package/dist/react/stores.d.ts +9 -0
- package/dist/react/stores.d.ts.map +1 -0
- package/dist/react/stores.js +37 -0
- package/dist/react/stores.js.map +1 -0
- package/dist/registries/contribution.d.ts +50 -0
- package/dist/registries/contribution.d.ts.map +1 -0
- package/dist/registries/contribution.js +129 -0
- package/dist/registries/contribution.js.map +1 -0
- package/dist/registries/entries.d.ts +18 -0
- package/dist/registries/entries.d.ts.map +1 -0
- package/dist/registries/entries.js +42 -0
- package/dist/registries/entries.js.map +1 -0
- package/dist/registries/index.d.ts +3 -0
- package/dist/registries/index.d.ts.map +1 -0
- package/dist/registries/index.js +5 -0
- package/dist/registries/index.js.map +1 -0
- package/dist/registries/internal.d.ts +4 -0
- package/dist/registries/internal.d.ts.map +1 -0
- package/dist/registries/internal.js +5 -0
- package/dist/registries/internal.js.map +1 -0
- package/dist/registries/record.d.ts +115 -0
- package/dist/registries/record.d.ts.map +1 -0
- package/dist/registries/record.js +283 -0
- package/dist/registries/record.js.map +1 -0
- package/dist/registries/registry.d.ts +74 -0
- package/dist/registries/registry.d.ts.map +1 -0
- package/dist/registries/registry.js +14 -0
- package/dist/registries/registry.js.map +1 -0
- package/dist/registries/value.d.ts +48 -0
- package/dist/registries/value.d.ts.map +1 -0
- package/dist/registries/value.js +224 -0
- package/dist/registries/value.js.map +1 -0
- package/dist/remote/calls.d.ts +25 -0
- package/dist/remote/calls.d.ts.map +1 -0
- package/dist/remote/calls.js +62 -0
- package/dist/remote/calls.js.map +1 -0
- package/dist/remote/consumer.d.ts +43 -0
- package/dist/remote/consumer.d.ts.map +1 -0
- package/dist/remote/consumer.js +350 -0
- package/dist/remote/consumer.js.map +1 -0
- package/dist/remote/hold.d.ts +141 -0
- package/dist/remote/hold.d.ts.map +1 -0
- package/dist/remote/hold.js +579 -0
- package/dist/remote/hold.js.map +1 -0
- package/dist/remote/host-link.d.ts +77 -0
- package/dist/remote/host-link.d.ts.map +1 -0
- package/dist/remote/host-link.js +184 -0
- package/dist/remote/host-link.js.map +1 -0
- package/dist/remote/internal.d.ts +6 -0
- package/dist/remote/internal.d.ts.map +1 -0
- package/dist/remote/internal.js +6 -0
- package/dist/remote/internal.js.map +1 -0
- package/dist/remote/path.d.ts +46 -0
- package/dist/remote/path.d.ts.map +1 -0
- package/dist/remote/path.js +73 -0
- package/dist/remote/path.js.map +1 -0
- package/dist/remote/provider.d.ts +89 -0
- package/dist/remote/provider.d.ts.map +1 -0
- package/dist/remote/provider.js +597 -0
- package/dist/remote/provider.js.map +1 -0
- package/dist/remote/relay.d.ts +69 -0
- package/dist/remote/relay.d.ts.map +1 -0
- package/dist/remote/relay.js +219 -0
- package/dist/remote/relay.js.map +1 -0
- package/dist/remote/remote-object.d.ts +138 -0
- package/dist/remote/remote-object.d.ts.map +1 -0
- package/dist/remote/remote-object.js +492 -0
- package/dist/remote/remote-object.js.map +1 -0
- package/dist/remote/replica.d.ts +59 -0
- package/dist/remote/replica.d.ts.map +1 -0
- package/dist/remote/replica.js +125 -0
- package/dist/remote/replica.js.map +1 -0
- package/dist/sqlite/cloudflare.d.ts +2 -0
- package/dist/sqlite/cloudflare.d.ts.map +1 -1
- package/dist/sqlite/cloudflare.js +10 -0
- package/dist/sqlite/cloudflare.js.map +1 -1
- package/dist/sqlite/database.d.ts +5 -2
- package/dist/sqlite/database.d.ts.map +1 -1
- package/dist/sqlite/database.js.map +1 -1
- package/dist/sqlite/node.d.ts +13 -2
- package/dist/sqlite/node.d.ts.map +1 -1
- package/dist/sqlite/node.js +31 -8
- package/dist/sqlite/node.js.map +1 -1
- package/dist/state/batch.d.ts +64 -0
- package/dist/state/batch.d.ts.map +1 -0
- package/dist/state/batch.js +164 -0
- package/dist/state/batch.js.map +1 -0
- package/dist/state/derive.d.ts +52 -0
- package/dist/state/derive.d.ts.map +1 -0
- package/dist/state/derive.js +182 -0
- package/dist/state/derive.js.map +1 -0
- package/dist/state/index.d.ts +6 -0
- package/dist/state/index.d.ts.map +1 -0
- package/dist/state/index.js +4 -0
- package/dist/state/index.js.map +1 -0
- package/dist/state/internal.d.ts +6 -0
- package/dist/state/internal.d.ts.map +1 -0
- package/dist/state/internal.js +8 -0
- package/dist/state/internal.js.map +1 -0
- package/dist/state/native-source.d.ts +106 -0
- package/dist/state/native-source.d.ts.map +1 -0
- package/dist/state/native-source.js +240 -0
- package/dist/state/native-source.js.map +1 -0
- package/dist/state/watchable.d.ts +114 -0
- package/dist/state/watchable.d.ts.map +1 -0
- package/dist/state/watchable.js +156 -0
- package/dist/state/watchable.js.map +1 -0
- package/dist/state/writable.d.ts +32 -0
- package/dist/state/writable.d.ts.map +1 -0
- package/dist/state/writable.js +49 -0
- package/dist/state/writable.js.map +1 -0
- package/dist/store/adapter.d.ts +67 -0
- package/dist/store/adapter.d.ts.map +1 -0
- package/dist/store/adapter.js +118 -0
- package/dist/store/adapter.js.map +1 -0
- package/dist/store/allocator.d.ts +17 -0
- package/dist/store/allocator.d.ts.map +1 -0
- package/dist/store/allocator.js +30 -0
- package/dist/store/allocator.js.map +1 -0
- package/dist/store/applier.d.ts +8 -0
- package/dist/store/applier.d.ts.map +1 -0
- package/dist/store/applier.js +375 -0
- package/dist/store/applier.js.map +1 -0
- package/dist/store/apply-batch.d.ts +12 -0
- package/dist/store/apply-batch.d.ts.map +1 -0
- package/dist/store/apply-batch.js +83 -0
- package/dist/store/apply-batch.js.map +1 -0
- package/dist/store/archive.d.ts +32 -0
- package/dist/store/archive.d.ts.map +1 -0
- package/dist/store/archive.js +130 -0
- package/dist/store/archive.js.map +1 -0
- package/dist/store/backend.d.ts +10 -0
- package/dist/store/backend.d.ts.map +1 -0
- package/dist/store/backend.js +15 -0
- package/dist/store/backend.js.map +1 -0
- package/dist/store/catalog.d.ts +24 -0
- package/dist/store/catalog.d.ts.map +1 -0
- package/dist/store/catalog.js +17 -0
- package/dist/store/catalog.js.map +1 -0
- package/dist/store/claims.d.ts +23 -0
- package/dist/store/claims.d.ts.map +1 -0
- package/dist/store/claims.js +65 -0
- package/dist/store/claims.js.map +1 -0
- package/dist/store/columns.d.ts +77 -0
- package/dist/store/columns.d.ts.map +1 -0
- package/dist/store/columns.js +77 -0
- package/dist/store/columns.js.map +1 -0
- package/dist/store/engine.d.ts +176 -0
- package/dist/store/engine.d.ts.map +1 -0
- package/dist/store/engine.js +283 -0
- package/dist/store/engine.js.map +1 -0
- package/dist/store/evaluate.d.ts +17 -0
- package/dist/store/evaluate.d.ts.map +1 -0
- package/dist/store/evaluate.js +128 -0
- package/dist/store/evaluate.js.map +1 -0
- package/dist/store/export.d.ts +17 -0
- package/dist/store/export.d.ts.map +1 -0
- package/dist/store/export.js +200 -0
- package/dist/store/export.js.map +1 -0
- package/dist/store/expression.d.ts +150 -0
- package/dist/store/expression.d.ts.map +1 -0
- package/dist/store/expression.js +268 -0
- package/dist/store/expression.js.map +1 -0
- package/dist/store/import.d.ts +10 -0
- package/dist/store/import.d.ts.map +1 -0
- package/dist/store/import.js +276 -0
- package/dist/store/import.js.map +1 -0
- package/dist/store/index.d.ts +16 -0
- package/dist/store/index.d.ts.map +1 -0
- package/dist/store/index.js +13 -0
- package/dist/store/index.js.map +1 -0
- package/dist/store/json-column.d.ts +33 -0
- package/dist/store/json-column.d.ts.map +1 -0
- package/dist/store/json-column.js +62 -0
- package/dist/store/json-column.js.map +1 -0
- package/dist/store/jsonl.d.ts +9 -0
- package/dist/store/jsonl.d.ts.map +1 -0
- package/dist/store/jsonl.js +61 -0
- package/dist/store/jsonl.js.map +1 -0
- package/dist/store/live-query.d.ts +108 -0
- package/dist/store/live-query.d.ts.map +1 -0
- package/dist/store/live-query.js +254 -0
- package/dist/store/live-query.js.map +1 -0
- package/dist/store/outbox.d.ts +26 -0
- package/dist/store/outbox.d.ts.map +1 -0
- package/dist/store/outbox.js +80 -0
- package/dist/store/outbox.js.map +1 -0
- package/dist/store/query.d.ts +39 -0
- package/dist/store/query.d.ts.map +1 -0
- package/dist/store/query.js +97 -0
- package/dist/store/query.js.map +1 -0
- package/dist/store/refusal.d.ts +15 -0
- package/dist/store/refusal.d.ts.map +1 -0
- package/dist/store/refusal.js +36 -0
- package/dist/store/refusal.js.map +1 -0
- package/dist/store/rows.d.ts +80 -0
- package/dist/store/rows.d.ts.map +1 -0
- package/dist/store/rows.js +183 -0
- package/dist/store/rows.js.map +1 -0
- package/dist/store/schema.d.ts +25 -0
- package/dist/store/schema.d.ts.map +1 -0
- package/dist/store/schema.js +115 -0
- package/dist/store/schema.js.map +1 -0
- package/dist/store/sql.d.ts +73 -0
- package/dist/store/sql.d.ts.map +1 -0
- package/dist/store/sql.js +234 -0
- package/dist/store/sql.js.map +1 -0
- package/dist/store/step.d.ts +50 -0
- package/dist/store/step.d.ts.map +1 -0
- package/dist/store/step.js +52 -0
- package/dist/store/step.js.map +1 -0
- package/dist/store/store.d.ts +171 -0
- package/dist/store/store.d.ts.map +1 -0
- package/dist/store/store.js +818 -0
- package/dist/store/store.js.map +1 -0
- package/dist/store/table-changes.d.ts +29 -0
- package/dist/store/table-changes.d.ts.map +1 -0
- package/dist/store/table-changes.js +102 -0
- package/dist/store/table-changes.js.map +1 -0
- package/dist/store/table-evolve.d.ts +74 -0
- package/dist/store/table-evolve.d.ts.map +1 -0
- package/dist/store/table-evolve.js +201 -0
- package/dist/store/table-evolve.js.map +1 -0
- package/dist/store/table-handle.d.ts +73 -0
- package/dist/store/table-handle.d.ts.map +1 -0
- package/dist/store/table-handle.js +101 -0
- package/dist/store/table-handle.js.map +1 -0
- package/dist/store/table-history.d.ts +75 -0
- package/dist/store/table-history.d.ts.map +1 -0
- package/dist/store/table-history.js +42 -0
- package/dist/store/table-history.js.map +1 -0
- package/dist/store/table-migration.d.ts +16 -0
- package/dist/store/table-migration.d.ts.map +1 -0
- package/dist/store/table-migration.js +202 -0
- package/dist/store/table-migration.js.map +1 -0
- package/dist/store/table-writes.d.ts +125 -0
- package/dist/store/table-writes.d.ts.map +1 -0
- package/dist/store/table-writes.js +170 -0
- package/dist/store/table-writes.js.map +1 -0
- package/dist/store/table.d.ts +80 -0
- package/dist/store/table.d.ts.map +1 -0
- package/dist/store/table.js +103 -0
- package/dist/store/table.js.map +1 -0
- package/dist/store/text.d.ts +14 -0
- package/dist/store/text.d.ts.map +1 -0
- package/dist/store/text.js +51 -0
- package/dist/store/text.js.map +1 -0
- package/dist/store/writes.d.ts +5 -0
- package/dist/store/writes.d.ts.map +1 -0
- package/dist/store/writes.js +4 -0
- package/dist/store/writes.js.map +1 -0
- package/dist/surfaces/active-language.d.ts +20 -0
- package/dist/surfaces/active-language.d.ts.map +1 -0
- package/dist/surfaces/active-language.js +78 -0
- package/dist/surfaces/active-language.js.map +1 -0
- package/dist/surfaces/active-theme.d.ts +16 -0
- package/dist/surfaces/active-theme.d.ts.map +1 -0
- package/dist/surfaces/active-theme.js +47 -0
- package/dist/surfaces/active-theme.js.map +1 -0
- package/dist/surfaces/client.d.ts +96 -0
- package/dist/surfaces/client.d.ts.map +1 -0
- package/dist/surfaces/client.js +264 -0
- package/dist/surfaces/client.js.map +1 -0
- package/dist/surfaces/connection.d.ts +49 -0
- package/dist/surfaces/connection.d.ts.map +1 -0
- package/dist/surfaces/connection.js +142 -0
- package/dist/surfaces/connection.js.map +1 -0
- package/dist/surfaces/format.d.ts +5 -0
- package/dist/surfaces/format.d.ts.map +1 -0
- package/dist/surfaces/format.js +37 -0
- package/dist/surfaces/format.js.map +1 -0
- package/dist/surfaces/index.d.ts +15 -0
- package/dist/surfaces/index.d.ts.map +1 -0
- package/dist/surfaces/index.js +18 -0
- package/dist/surfaces/index.js.map +1 -0
- package/dist/surfaces/language.d.ts +53 -0
- package/dist/surfaces/language.d.ts.map +1 -0
- package/dist/surfaces/language.js +74 -0
- package/dist/surfaces/language.js.map +1 -0
- package/dist/surfaces/loaded.d.ts +42 -0
- package/dist/surfaces/loaded.d.ts.map +1 -0
- package/dist/surfaces/loaded.js +116 -0
- package/dist/surfaces/loaded.js.map +1 -0
- package/dist/surfaces/locale-choice.d.ts +25 -0
- package/dist/surfaces/locale-choice.d.ts.map +1 -0
- package/dist/surfaces/locale-choice.js +14 -0
- package/dist/surfaces/locale-choice.js.map +1 -0
- package/dist/surfaces/messages.d.ts +67 -0
- package/dist/surfaces/messages.d.ts.map +1 -0
- package/dist/surfaces/messages.js +112 -0
- package/dist/surfaces/messages.js.map +1 -0
- package/dist/surfaces/page-state.d.ts +14 -0
- package/dist/surfaces/page-state.d.ts.map +1 -0
- package/dist/surfaces/page-state.js +43 -0
- package/dist/surfaces/page-state.js.map +1 -0
- package/dist/surfaces/preference.d.ts +32 -0
- package/dist/surfaces/preference.d.ts.map +1 -0
- package/dist/surfaces/preference.js +72 -0
- package/dist/surfaces/preference.js.map +1 -0
- package/dist/surfaces/registered.d.ts +33 -0
- package/dist/surfaces/registered.d.ts.map +1 -0
- package/dist/surfaces/registered.js +51 -0
- package/dist/surfaces/registered.js.map +1 -0
- package/dist/surfaces/scripts.d.ts +84 -0
- package/dist/surfaces/scripts.d.ts.map +1 -0
- package/dist/surfaces/scripts.js +28 -0
- package/dist/surfaces/scripts.js.map +1 -0
- package/dist/surfaces/theme-choice.d.ts +31 -0
- package/dist/surfaces/theme-choice.d.ts.map +1 -0
- package/dist/surfaces/theme-choice.js +18 -0
- package/dist/surfaces/theme-choice.js.map +1 -0
- package/dist/surfaces/themes.d.ts +43 -0
- package/dist/surfaces/themes.d.ts.map +1 -0
- package/dist/surfaces/themes.js +110 -0
- package/dist/surfaces/themes.js.map +1 -0
- package/dist/surfaces/translations.d.ts +29 -0
- package/dist/surfaces/translations.d.ts.map +1 -0
- package/dist/surfaces/translations.js +57 -0
- package/dist/surfaces/translations.js.map +1 -0
- package/dist/sync/batch.d.ts +18 -0
- package/dist/sync/batch.d.ts.map +1 -0
- package/dist/sync/batch.js +125 -0
- package/dist/sync/batch.js.map +1 -0
- package/dist/sync/client.d.ts +166 -0
- package/dist/sync/client.d.ts.map +1 -0
- package/dist/sync/client.js +438 -0
- package/dist/sync/client.js.map +1 -0
- package/dist/sync/files.d.ts +46 -0
- package/dist/sync/files.d.ts.map +1 -0
- package/dist/sync/files.js +13 -0
- package/dist/sync/files.js.map +1 -0
- package/dist/sync/filesystem.d.ts +37 -0
- package/dist/sync/filesystem.d.ts.map +1 -0
- package/dist/sync/filesystem.js +185 -0
- package/dist/sync/filesystem.js.map +1 -0
- package/dist/sync/index.d.ts +8 -0
- package/dist/sync/index.d.ts.map +1 -0
- package/dist/sync/index.js +9 -0
- package/dist/sync/index.js.map +1 -0
- package/dist/sync/lines.d.ts +18 -0
- package/dist/sync/lines.d.ts.map +1 -0
- package/dist/sync/lines.js +46 -0
- package/dist/sync/lines.js.map +1 -0
- package/dist/sync/remote.d.ts +130 -0
- package/dist/sync/remote.d.ts.map +1 -0
- package/dist/sync/remote.js +46 -0
- package/dist/sync/remote.js.map +1 -0
- package/dist/sync/state.d.ts +17 -0
- package/dist/sync/state.d.ts.map +1 -0
- package/dist/sync/state.js +40 -0
- package/dist/sync/state.js.map +1 -0
- package/dist/telemetry-ingest/batch.d.ts +70 -0
- package/dist/telemetry-ingest/batch.d.ts.map +1 -0
- package/dist/telemetry-ingest/batch.js +110 -0
- package/dist/telemetry-ingest/batch.js.map +1 -0
- package/dist/telemetry-ingest/facet.d.ts +21 -0
- package/dist/telemetry-ingest/facet.d.ts.map +1 -0
- package/dist/telemetry-ingest/facet.js +96 -0
- package/dist/telemetry-ingest/facet.js.map +1 -0
- package/dist/telemetry-ingest/index.d.ts +5 -0
- package/dist/telemetry-ingest/index.d.ts.map +1 -0
- package/dist/telemetry-ingest/index.js +8 -0
- package/dist/telemetry-ingest/index.js.map +1 -0
- package/dist/telemetry-ingest/recorder.d.ts +50 -0
- package/dist/telemetry-ingest/recorder.d.ts.map +1 -0
- package/dist/telemetry-ingest/recorder.js +298 -0
- package/dist/telemetry-ingest/recorder.js.map +1 -0
- package/dist/telemetry-ingest/sender.d.ts +14 -0
- package/dist/telemetry-ingest/sender.d.ts.map +1 -0
- package/dist/telemetry-ingest/sender.js +64 -0
- package/dist/telemetry-ingest/sender.js.map +1 -0
- package/dist/telemetry-sqlite/index.d.ts +13 -4
- package/dist/telemetry-sqlite/index.d.ts.map +1 -1
- package/dist/telemetry-sqlite/index.js +81 -241
- package/dist/telemetry-sqlite/index.js.map +1 -1
- package/dist/telemetry-sqlite/node.d.ts +13 -0
- package/dist/telemetry-sqlite/node.d.ts.map +1 -0
- package/dist/telemetry-sqlite/node.js +27 -0
- package/dist/telemetry-sqlite/node.js.map +1 -0
- package/dist/telemetry-sqlite/schema.d.ts +9 -0
- package/dist/telemetry-sqlite/schema.d.ts.map +1 -0
- package/dist/telemetry-sqlite/schema.js +61 -0
- package/dist/telemetry-sqlite/schema.js.map +1 -0
- package/dist/telemetry-sqlite/store.d.ts +3 -0
- package/dist/telemetry-sqlite/store.d.ts.map +1 -1
- package/dist/telemetry-sqlite/store.js +24 -13
- package/dist/telemetry-sqlite/store.js.map +1 -1
- package/dist/telemetry.d.ts +937 -0
- package/dist/telemetry.d.ts.map +1 -0
- package/dist/telemetry.js +470 -0
- package/dist/telemetry.js.map +1 -0
- package/dist/tui/bridge.d.ts +112 -0
- package/dist/tui/bridge.d.ts.map +1 -0
- package/dist/tui/bridge.js +9 -0
- package/dist/tui/bridge.js.map +1 -0
- package/dist/tui/channel.d.ts +44 -0
- package/dist/tui/channel.d.ts.map +1 -0
- package/dist/tui/channel.js +150 -0
- package/dist/tui/channel.js.map +1 -0
- package/dist/tui/frames.d.ts +5 -0
- package/dist/tui/frames.d.ts.map +1 -0
- package/dist/tui/frames.js +52 -0
- package/dist/tui/frames.js.map +1 -0
- package/dist/tui/index.d.ts +7 -0
- package/dist/tui/index.d.ts.map +1 -0
- package/dist/tui/index.js +8 -0
- package/dist/tui/index.js.map +1 -0
- package/dist/tui/runtime.d.ts +46 -0
- package/dist/tui/runtime.d.ts.map +1 -0
- package/dist/tui/runtime.js +101 -0
- package/dist/tui/runtime.js.map +1 -0
- package/dist/tui/scope.d.ts +46 -0
- package/dist/tui/scope.d.ts.map +1 -0
- package/dist/tui/scope.js +141 -0
- package/dist/tui/scope.js.map +1 -0
- package/dist/tui/terminal.d.ts +15 -0
- package/dist/tui/terminal.d.ts.map +1 -0
- package/dist/tui/terminal.js +37 -0
- package/dist/tui/terminal.js.map +1 -0
- package/dist/tui/theme.d.ts +17 -0
- package/dist/tui/theme.d.ts.map +1 -0
- package/dist/tui/theme.js +38 -0
- package/dist/tui/theme.js.map +1 -0
- package/dist/watch.d.ts +194 -0
- package/dist/watch.d.ts.map +1 -0
- package/dist/watch.js +383 -0
- package/dist/watch.js.map +1 -0
- package/dist/web/environment.d.ts +4 -0
- package/dist/web/environment.d.ts.map +1 -0
- package/dist/web/environment.js +37 -0
- package/dist/web/environment.js.map +1 -0
- package/dist/web/index.d.ts +5 -0
- package/dist/web/index.d.ts.map +1 -0
- package/dist/web/index.js +7 -0
- package/dist/web/index.js.map +1 -0
- package/dist/web/language.d.ts +7 -0
- package/dist/web/language.d.ts.map +1 -0
- package/dist/web/language.js +21 -0
- package/dist/web/language.js.map +1 -0
- package/dist/web/page.d.ts +29 -0
- package/dist/web/page.d.ts.map +1 -0
- package/dist/web/page.js +92 -0
- package/dist/web/page.js.map +1 -0
- package/dist/web/scripts.d.ts +23 -0
- package/dist/web/scripts.d.ts.map +1 -0
- package/dist/web/scripts.js +50 -0
- package/dist/web/scripts.js.map +1 -0
- package/dist/web/styles.d.ts +17 -0
- package/dist/web/styles.d.ts.map +1 -0
- package/dist/web/styles.js +218 -0
- package/dist/web/styles.js.map +1 -0
- package/dist/web/themes.d.ts +6 -0
- package/dist/web/themes.d.ts.map +1 -0
- package/dist/web/themes.js +31 -0
- package/dist/web/themes.js.map +1 -0
- package/docs/benchmarks.md +1036 -0
- package/docs/decisions.md +3436 -0
- package/docs/dependencies/book.md +1671 -0
- package/docs/dependencies/index.html +2641 -0
- package/docs/dependencies/model.md +330 -0
- package/docs/design.md +3065 -0
- package/docs/durable-observers/book.md +432 -0
- package/docs/durable-observers/index.html +517 -0
- package/docs/flow-control/book.md +333 -0
- package/docs/flow-control/fold/index.html +265 -0
- package/docs/flow-control/index.html +548 -0
- package/docs/flow-control/window/index.html +228 -0
- package/docs/guide-plugins-hosts/book.md +957 -0
- package/docs/guide-plugins-hosts/index.html +952 -0
- package/docs/http-workers/book.md +378 -0
- package/docs/http-workers/index.html +515 -0
- package/docs/i18n/book.md +217 -0
- package/docs/i18n/index.html +344 -0
- package/docs/layer-1.md +311 -0
- package/docs/layer-2.md +216 -0
- package/docs/p3-features/README.md +6 -0
- package/docs/p3-features/book.md +478 -0
- package/docs/plugin-authoring.md +276 -0
- package/docs/plugin-model/book.md +186 -0
- package/docs/plugin-model/index.html +310 -0
- package/docs/plugin-primer/book.md +273 -0
- package/docs/plugin-primer/index.html +430 -0
- package/docs/slice-1.md +236 -0
- package/docs/slice-10.md +288 -0
- package/docs/slice-11.md +114 -0
- package/docs/slice-12.md +132 -0
- package/docs/slice-13.md +121 -0
- package/docs/slice-2.md +174 -0
- package/docs/slice-3a.md +296 -0
- package/docs/slice-3b.md +197 -0
- package/docs/slice-4.md +146 -0
- package/docs/slice-4a.md +418 -0
- package/docs/slice-4b.md +208 -0
- package/docs/slice-5.md +281 -0
- package/docs/slice-6a.md +676 -0
- package/docs/slice-6b.md +332 -0
- package/docs/slice-7a.md +130 -0
- package/docs/slice-7b/book.md +608 -0
- package/docs/slice-7b/index.html +842 -0
- package/docs/slice-7b.md +255 -0
- package/docs/slice-7c.md +165 -0
- package/docs/slice-8.md +194 -0
- package/docs/slice-9.md +110 -0
- package/docs/slices.md +241 -0
- package/docs/store/book.md +670 -0
- package/docs/store/index.html +861 -0
- package/docs/store/walkthrough.md +193 -0
- package/docs/theming/book.md +223 -0
- package/docs/theming/index.html +371 -0
- package/docs/tutorial/book.md +2169 -0
- package/docs/tutorial/index.html +2112 -0
- package/docs/tutorial/screens/click-after.png +0 -0
- package/docs/tutorial/screens/click-before.png +0 -0
- package/docs/tutorial/screens/edited.png +0 -0
- package/docs/tutorial/screens/french.png +0 -0
- package/docs/tutorial/screens/harbor.png +0 -0
- package/docs/tutorial/screens/page.png +0 -0
- package/docs/tutorial/screens/traces-ada.png +0 -0
- package/docs/tutorial/screens/traces.png +0 -0
- package/package.json +114 -20
- package/src/delta/README.md +69 -0
- package/dist/cell.d.ts +0 -122
- package/dist/cell.d.ts.map +0 -1
- package/dist/cell.js +0 -356
- package/dist/cell.js.map +0 -1
- package/dist/cluster.d.ts +0 -27
- package/dist/cluster.d.ts.map +0 -1
- package/dist/cluster.js +0 -230
- package/dist/cluster.js.map +0 -1
- package/dist/connection.d.ts +0 -270
- package/dist/connection.d.ts.map +0 -1
- package/dist/connection.js +0 -1216
- package/dist/connection.js.map +0 -1
- package/dist/contract.d.ts +0 -208
- package/dist/contract.d.ts.map +0 -1
- package/dist/contract.js +0 -246
- package/dist/contract.js.map +0 -1
- package/dist/declare.d.ts +0 -33
- package/dist/declare.d.ts.map +0 -1
- package/dist/declare.js +0 -2
- package/dist/declare.js.map +0 -1
- package/dist/errors.d.ts +0 -28
- package/dist/errors.d.ts.map +0 -1
- package/dist/errors.js +0 -59
- package/dist/errors.js.map +0 -1
- package/dist/host.d.ts +0 -348
- package/dist/host.d.ts.map +0 -1
- package/dist/host.js +0 -1000
- package/dist/host.js.map +0 -1
- package/dist/link.d.ts +0 -107
- package/dist/link.d.ts.map +0 -1
- package/dist/link.js +0 -355
- package/dist/link.js.map +0 -1
- package/dist/loader.d.ts +0 -4
- package/dist/loader.d.ts.map +0 -1
- package/dist/loader.js +0 -73
- package/dist/loader.js.map +0 -1
- package/dist/manager.d.ts +0 -115
- package/dist/manager.d.ts.map +0 -1
- package/dist/manager.js +0 -345
- package/dist/manager.js.map +0 -1
- package/dist/node.d.ts +0 -4
- package/dist/node.d.ts.map +0 -1
- package/dist/node.js +0 -4
- package/dist/node.js.map +0 -1
- package/dist/object.d.ts +0 -438
- package/dist/object.d.ts.map +0 -1
- package/dist/object.js +0 -1571
- package/dist/object.js.map +0 -1
- package/dist/publish.d.ts +0 -5
- package/dist/publish.d.ts.map +0 -1
- package/dist/publish.js +0 -40
- package/dist/publish.js.map +0 -1
- package/dist/registry.d.ts +0 -25
- package/dist/registry.d.ts.map +0 -1
- package/dist/registry.js +0 -6
- package/dist/registry.js.map +0 -1
- package/dist/reload.d.ts +0 -126
- package/dist/reload.d.ts.map +0 -1
- package/dist/reload.js +0 -653
- package/dist/reload.js.map +0 -1
- package/dist/remote.d.ts +0 -165
- package/dist/remote.d.ts.map +0 -1
- package/dist/remote.js +0 -612
- package/dist/remote.js.map +0 -1
- package/dist/schema.d.ts +0 -21
- package/dist/schema.d.ts.map +0 -1
- package/dist/schema.js +0 -228
- package/dist/schema.js.map +0 -1
- package/dist/state.d.ts +0 -92
- package/dist/state.d.ts.map +0 -1
- package/dist/state.js +0 -287
- package/dist/state.js.map +0 -1
- package/dist/types.d.ts +0 -88
- package/dist/types.d.ts.map +0 -1
- package/dist/types.js +0 -2
- package/dist/types.js.map +0 -1
- package/dist/websocket.d.ts +0 -15
- package/dist/websocket.d.ts.map +0 -1
- package/dist/websocket.js +0 -16
- package/dist/websocket.js.map +0 -1
- package/dist/wire.d.ts +0 -216
- package/dist/wire.d.ts.map +0 -1
- package/dist/wire.js +0 -165
- package/dist/wire.js.map +0 -1
- package/docs/guide.md +0 -814
- package/docs/spec.md +0 -288
- package/docs/tutorial.md +0 -931
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
export type { BaseInputs } from "./base-inputs.ts";
|
|
2
|
+
export { type AppApi, type BuildInput, type BuildOptions, type BuiltFacet, buildFacet } from "./build.ts";
|
|
3
|
+
export { type Discovery, type DiscoveryOptions, type DiscoveryProblem, discoverPlugins, type Plugin, type PluginRoot, } from "./discover.ts";
|
|
4
|
+
export { type BuiltScript, type EvaluateOptions, evaluateFacet, type HostPackages, pluginFile } from "./evaluate.ts";
|
|
5
|
+
export { type InstallOptions, type InstallPluginOptions, installDependencies, installPlugin, type PluginSource, } from "./install.ts";
|
|
6
|
+
export { type Built, createPlugins, type KindDefinition, type Plugins, type PluginsError, type PluginsOptions, type RolloutHost, type RolloutResult, type RolloutStep, } from "./plugins.ts";
|
|
7
|
+
export { createPluginRuntime, PluginError, type PluginRuntime, type PluginScript, type RuntimeLoad, } from "./runtime.ts";
|
|
8
|
+
export { mapStack } from "./stack.ts";
|
|
9
|
+
export { type TestedPlugin, type TestPluginOptions, testPlugin } from "./testing.ts";
|
|
10
|
+
export type { PluginsState } from "./watcher.ts";
|
|
11
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/node/plugins/index.ts"],"names":[],"mappings":"AAKA,YAAY,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AACnD,OAAO,EAAE,KAAK,MAAM,EAAE,KAAK,UAAU,EAAE,KAAK,YAAY,EAAE,KAAK,UAAU,EAAE,UAAU,EAAE,MAAM,YAAY,CAAC;AAC1G,OAAO,EACN,KAAK,SAAS,EACd,KAAK,gBAAgB,EACrB,KAAK,gBAAgB,EACrB,eAAe,EACf,KAAK,MAAM,EACX,KAAK,UAAU,GACf,MAAM,eAAe,CAAC;AACvB,OAAO,EAAE,KAAK,WAAW,EAAE,KAAK,eAAe,EAAE,aAAa,EAAE,KAAK,YAAY,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;AACrH,OAAO,EACN,KAAK,cAAc,EACnB,KAAK,oBAAoB,EACzB,mBAAmB,EACnB,aAAa,EACb,KAAK,YAAY,GACjB,MAAM,cAAc,CAAC;AACtB,OAAO,EACN,KAAK,KAAK,EACV,aAAa,EACb,KAAK,cAAc,EACnB,KAAK,OAAO,EACZ,KAAK,YAAY,EACjB,KAAK,cAAc,EACnB,KAAK,WAAW,EAChB,KAAK,aAAa,EAClB,KAAK,WAAW,GAChB,MAAM,cAAc,CAAC;AACtB,OAAO,EACN,mBAAmB,EACnB,WAAW,EACX,KAAK,aAAa,EAClB,KAAK,YAAY,EACjB,KAAK,WAAW,GAChB,MAAM,cAAc,CAAC;AACtB,OAAO,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AACtC,OAAO,EAAE,KAAK,YAAY,EAAE,KAAK,iBAAiB,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AACrF,YAAY,EAAE,YAAY,EAAE,MAAM,cAAc,CAAC"}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
// Chord v2's plugins component (`@earendil-works/chord/plugins`; slices 7c, 12): plugin directories and single-file
|
|
2
|
+
// plugins found, built into scripts checked against the app's API, evaluated, loaded and reloaded per plugin, watched,
|
|
3
|
+
// rolled out and installed, and a plugin tested alone. Node-only (`fs`, esbuild, `vm`); esbuild is an optional peer
|
|
4
|
+
// dependency, imported only here.
|
|
5
|
+
export { buildFacet } from "./build.js";
|
|
6
|
+
export { discoverPlugins, } from "./discover.js";
|
|
7
|
+
export { evaluateFacet, pluginFile } from "./evaluate.js";
|
|
8
|
+
export { installDependencies, installPlugin, } from "./install.js";
|
|
9
|
+
export { createPlugins, } from "./plugins.js";
|
|
10
|
+
export { createPluginRuntime, PluginError, } from "./runtime.js";
|
|
11
|
+
export { mapStack } from "./stack.js";
|
|
12
|
+
export { testPlugin } from "./testing.js";
|
|
13
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/node/plugins/index.ts"],"names":[],"mappings":"AAAA,oHAAoH;AACpH,uHAAuH;AACvH,oHAAoH;AACpH,kCAAkC;AAGlC,OAAO,EAAoE,UAAU,EAAE,MAAM,YAAY,CAAC;AAC1G,OAAO,EAIN,eAAe,GAGf,MAAM,eAAe,CAAC;AACvB,OAAO,EAA0C,aAAa,EAAqB,UAAU,EAAE,MAAM,eAAe,CAAC;AACrH,OAAO,EAGN,mBAAmB,EACnB,aAAa,GAEb,MAAM,cAAc,CAAC;AACtB,OAAO,EAEN,aAAa,GAQb,MAAM,cAAc,CAAC;AACtB,OAAO,EACN,mBAAmB,EACnB,WAAW,GAIX,MAAM,cAAc,CAAC;AACtB,OAAO,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AACtC,OAAO,EAA6C,UAAU,EAAE,MAAM,cAAc,CAAC","sourcesContent":["// Chord v2's plugins component (`@earendil-works/chord/plugins`; slices 7c, 12): plugin directories and single-file\n// plugins found, built into scripts checked against the app's API, evaluated, loaded and reloaded per plugin, watched,\n// rolled out and installed, and a plugin tested alone. Node-only (`fs`, esbuild, `vm`); esbuild is an optional peer\n// dependency, imported only here.\n\nexport type { BaseInputs } from \"./base-inputs.ts\";\nexport { type AppApi, type BuildInput, type BuildOptions, type BuiltFacet, buildFacet } from \"./build.ts\";\nexport {\n\ttype Discovery,\n\ttype DiscoveryOptions,\n\ttype DiscoveryProblem,\n\tdiscoverPlugins,\n\ttype Plugin,\n\ttype PluginRoot,\n} from \"./discover.ts\";\nexport { type BuiltScript, type EvaluateOptions, evaluateFacet, type HostPackages, pluginFile } from \"./evaluate.ts\";\nexport {\n\ttype InstallOptions,\n\ttype InstallPluginOptions,\n\tinstallDependencies,\n\tinstallPlugin,\n\ttype PluginSource,\n} from \"./install.ts\";\nexport {\n\ttype Built,\n\tcreatePlugins,\n\ttype KindDefinition,\n\ttype Plugins,\n\ttype PluginsError,\n\ttype PluginsOptions,\n\ttype RolloutHost,\n\ttype RolloutResult,\n\ttype RolloutStep,\n} from \"./plugins.ts\";\nexport {\n\tcreatePluginRuntime,\n\tPluginError,\n\ttype PluginRuntime,\n\ttype PluginScript,\n\ttype RuntimeLoad,\n} from \"./runtime.ts\";\nexport { mapStack } from \"./stack.ts\";\nexport { type TestedPlugin, type TestPluginOptions, testPlugin } from \"./testing.ts\";\nexport type { PluginsState } from \"./watcher.ts\";\n"]}
|
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
import type { Context } from "../../context/index.ts";
|
|
2
|
+
import { type Plugin, type PluginRoot } from "./discover.ts";
|
|
3
|
+
/** What installs take: the npm command (`["npm"]` by default, e.g. `["pnpm"]`); git and tar are run as `git`, `tar`. */
|
|
4
|
+
export type InstallOptions = {
|
|
5
|
+
readonly npmCommand?: readonly string[];
|
|
6
|
+
};
|
|
7
|
+
/** What `installPlugin` takes besides the source and the root. */
|
|
8
|
+
export type InstallPluginOptions = InstallOptions & {
|
|
9
|
+
/** The app's facet kinds: a package whose top has a facet file is one plugin (`[]` by default). */
|
|
10
|
+
readonly kinds?: readonly string[];
|
|
11
|
+
/** Every root of the app: a new plugin named like one in any of them is refused (`[root]` by default). */
|
|
12
|
+
readonly roots?: readonly PluginRoot[];
|
|
13
|
+
};
|
|
14
|
+
/** Where `installPlugin` installs from: a git repository at a ref (a branch, tag or commit), or an npm package. */
|
|
15
|
+
export type PluginSource = {
|
|
16
|
+
readonly git: string;
|
|
17
|
+
readonly ref: string;
|
|
18
|
+
} | {
|
|
19
|
+
readonly npm: string;
|
|
20
|
+
readonly version: string;
|
|
21
|
+
};
|
|
22
|
+
/**
|
|
23
|
+
* Installs `plugin`'s `dependencies` into its own `node_modules` (`npm install --omit=dev --legacy-peer-deps
|
|
24
|
+
* --ignore-scripts --no-audit --no-fund` in its real directory; git dependencies with a ref are npm's). Rejects with
|
|
25
|
+
* the command's output when it fails, and when `context` aborts (the command is killed). A single-file plugin has
|
|
26
|
+
* nothing to install.
|
|
27
|
+
*/
|
|
28
|
+
export declare function installDependencies(plugin: Plugin, context: Context, options?: InstallOptions): Promise<void>;
|
|
29
|
+
/**
|
|
30
|
+
* Installs new plugins into `root` from `source`, then their dependencies: from git, a shallow clone of the ref into
|
|
31
|
+
* `<root>/<repository name>`; from npm, the packed package extracted into `<root>/<name>`. The package's plugins are
|
|
32
|
+
* its `chord.plugins` folders, else by convention (discovery's rules). Returns their names. Refused: a source option
|
|
33
|
+
* (`-…`), an invalid name, an existing directory (no updating in place: install another ref, or delete and install), a
|
|
34
|
+
* package discovery reports a problem in or finds no plugin in, a plugin name another plugin of `options.roots` has.
|
|
35
|
+
* Only what this install created is removed on failure.
|
|
36
|
+
*/
|
|
37
|
+
export declare function installPlugin(source: PluginSource, root: string, context: Context, options?: InstallPluginOptions): Promise<readonly string[]>;
|
|
38
|
+
//# sourceMappingURL=install.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"install.d.ts","sourceRoot":"","sources":["../../../src/node/plugins/install.ts"],"names":[],"mappings":"AAUA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,wBAAwB,CAAC;AAEtD,OAAO,EAAoC,KAAK,MAAM,EAAE,KAAK,UAAU,EAAE,MAAM,eAAe,CAAC;AAE/F,wHAAwH;AACxH,MAAM,MAAM,cAAc,GAAG;IAAE,QAAQ,CAAC,UAAU,CAAC,EAAE,SAAS,MAAM,EAAE,CAAA;CAAE,CAAC;AAEzE,kEAAkE;AAClE,MAAM,MAAM,oBAAoB,GAAG,cAAc,GAAG;IACnD,mGAAmG;IACnG,QAAQ,CAAC,KAAK,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;IACnC,0GAA0G;IAC1G,QAAQ,CAAC,KAAK,CAAC,EAAE,SAAS,UAAU,EAAE,CAAC;CACvC,CAAC;AAEF,mHAAmH;AACnH,MAAM,MAAM,YAAY,GACrB;IAAE,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAC;IAAC,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAA;CAAE,GAC9C;IAAE,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAC;IAAC,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAA;CAAE,CAAC;AAKtD;;;;;GAKG;AACH,wBAAsB,mBAAmB,CACxC,MAAM,EAAE,MAAM,EACd,OAAO,EAAE,OAAO,EAChB,OAAO,GAAE,cAAmB,GAC1B,OAAO,CAAC,IAAI,CAAC,CAIf;AAED;;;;;;;GAOG;AACH,wBAAsB,aAAa,CAClC,MAAM,EAAE,YAAY,EACpB,IAAI,EAAE,MAAM,EACZ,OAAO,EAAE,OAAO,EAChB,OAAO,GAAE,oBAAyB,GAChC,OAAO,CAAC,SAAS,MAAM,EAAE,CAAC,CA0B5B"}
|
|
@@ -0,0 +1,213 @@
|
|
|
1
|
+
// Installing (slice 7c §5, decision "Slice 7c's points" (3); slice 12 §5, decision "`chord.plugins` is a package's
|
|
2
|
+
// manifest of plugins"): a plugin's npm dependencies as coding-agent installs a package's (`npm install` in the
|
|
3
|
+
// plugin's real directory without dev dependencies, host peers or lifecycle scripts; the command overridable), and new
|
|
4
|
+
// plugins from git (a shallow clone of a ref) or npm (a packed tarball extracted), each staged in a hidden directory of
|
|
5
|
+
// the root, checked as discovery sees it, then renamed into place. Nothing a source supplies reaches git or npm as an
|
|
6
|
+
// option: refs, URLs and names starting with `-` are refused, and positional arguments follow `--`.
|
|
7
|
+
import { spawn } from "node:child_process";
|
|
8
|
+
import { mkdir, mkdtemp, readdir, rename, rm, rmdir, stat } from "node:fs/promises";
|
|
9
|
+
import { basename, dirname, join } from "node:path";
|
|
10
|
+
import { isPluginName } from "../../host/staging.js";
|
|
11
|
+
import { discoverPackage, discoverPlugins } from "./discover.js";
|
|
12
|
+
/** The install's arguments: production dependencies only, no host peers, no scripts, no audit or funding notes. */
|
|
13
|
+
const INSTALL_ARGS = ["install", "--omit=dev", "--legacy-peer-deps", "--ignore-scripts", "--no-audit", "--no-fund"];
|
|
14
|
+
/**
|
|
15
|
+
* Installs `plugin`'s `dependencies` into its own `node_modules` (`npm install --omit=dev --legacy-peer-deps
|
|
16
|
+
* --ignore-scripts --no-audit --no-fund` in its real directory; git dependencies with a ref are npm's). Rejects with
|
|
17
|
+
* the command's output when it fails, and when `context` aborts (the command is killed). A single-file plugin has
|
|
18
|
+
* nothing to install.
|
|
19
|
+
*/
|
|
20
|
+
export async function installDependencies(plugin, context, options = {}) {
|
|
21
|
+
if (plugin.layout === "file")
|
|
22
|
+
throw new Error(`plugin "${plugin.name}": a single-file plugin has no package.json`);
|
|
23
|
+
const [command, ...prefix] = npmCommandOf(options);
|
|
24
|
+
await run(command, [...prefix, ...INSTALL_ARGS], plugin.dir, context, `plugin "${plugin.name}": ${command} install`);
|
|
25
|
+
}
|
|
26
|
+
/**
|
|
27
|
+
* Installs new plugins into `root` from `source`, then their dependencies: from git, a shallow clone of the ref into
|
|
28
|
+
* `<root>/<repository name>`; from npm, the packed package extracted into `<root>/<name>`. The package's plugins are
|
|
29
|
+
* its `chord.plugins` folders, else by convention (discovery's rules). Returns their names. Refused: a source option
|
|
30
|
+
* (`-…`), an invalid name, an existing directory (no updating in place: install another ref, or delete and install), a
|
|
31
|
+
* package discovery reports a problem in or finds no plugin in, a plugin name another plugin of `options.roots` has.
|
|
32
|
+
* Only what this install created is removed on failure.
|
|
33
|
+
*/
|
|
34
|
+
export async function installPlugin(source, root, context, options = {}) {
|
|
35
|
+
const name = targetName(source);
|
|
36
|
+
await removeStaleStaging(root);
|
|
37
|
+
const made = await claim(root, name);
|
|
38
|
+
let staging;
|
|
39
|
+
try {
|
|
40
|
+
// Hidden: discovery skips it while it is staged; in the root: the rename stays on one file system.
|
|
41
|
+
staging = await mkdtemp(join(root, STAGING));
|
|
42
|
+
const staged = join(staging, "package");
|
|
43
|
+
if ("git" in source)
|
|
44
|
+
await clone(source.git, source.ref, staged, context);
|
|
45
|
+
else
|
|
46
|
+
await unpack(source.npm, source.version, staged, context, options);
|
|
47
|
+
await checkPackage(staged, made.target, root, context, options);
|
|
48
|
+
// The claimed directory is empty: renaming onto it moves the package into place in one step. Windows renames onto
|
|
49
|
+
// no existing directory: there the claim is released first (a concurrent install of the name may then win).
|
|
50
|
+
if (process.platform === "win32")
|
|
51
|
+
await rmdir(made.target);
|
|
52
|
+
await rename(staged, made.target);
|
|
53
|
+
const { plugins } = await discoverPackage(made.target, atRoot(root, options), context);
|
|
54
|
+
for (const plugin of plugins)
|
|
55
|
+
await installDependencies(plugin, context, options);
|
|
56
|
+
return plugins.map((plugin) => plugin.name);
|
|
57
|
+
}
|
|
58
|
+
catch (error) {
|
|
59
|
+
await rm(made.target, { recursive: true, force: true });
|
|
60
|
+
if (made.scope !== undefined)
|
|
61
|
+
await rmdir(made.scope).catch(() => { });
|
|
62
|
+
throw error;
|
|
63
|
+
}
|
|
64
|
+
finally {
|
|
65
|
+
if (staging !== undefined)
|
|
66
|
+
await rm(staging, { recursive: true, force: true });
|
|
67
|
+
}
|
|
68
|
+
}
|
|
69
|
+
/** The prefix of an install's staging directory in a root (hidden: discovery skips it). */
|
|
70
|
+
const STAGING = ".chord-install-";
|
|
71
|
+
/** How old a staging directory must be to count as left over by a crashed install. */
|
|
72
|
+
const STALE_MS = 60 * 60 * 1000;
|
|
73
|
+
/** Removes staging directories in `root` an install crashed out of (older than an hour). */
|
|
74
|
+
async function removeStaleStaging(root) {
|
|
75
|
+
const names = await readdir(root).catch(() => []);
|
|
76
|
+
for (const name of names.filter((each) => each.startsWith(STAGING))) {
|
|
77
|
+
const path = join(root, name);
|
|
78
|
+
const info = await stat(path).catch(() => undefined);
|
|
79
|
+
if (info !== undefined && Date.now() - info.mtimeMs > STALE_MS)
|
|
80
|
+
await rm(path, { recursive: true, force: true });
|
|
81
|
+
}
|
|
82
|
+
}
|
|
83
|
+
/** The directory name a source installs into: the repository's name, or the package's (validated) name. */
|
|
84
|
+
function targetName(source) {
|
|
85
|
+
const option = (value, what) => {
|
|
86
|
+
if (value === "" || value.startsWith("-"))
|
|
87
|
+
throw new Error(`installPlugin: ${what} "${value}" is refused`);
|
|
88
|
+
};
|
|
89
|
+
if ("git" in source) {
|
|
90
|
+
option(source.git, "repository");
|
|
91
|
+
option(source.ref, "ref");
|
|
92
|
+
const name = basename(source.git.replace(/\/+$/, "")).replace(/\.git$/, "");
|
|
93
|
+
if (name === "" || name.startsWith(".") || name.startsWith("-")) {
|
|
94
|
+
throw new Error(`installPlugin: "${source.git}" names no repository directory`);
|
|
95
|
+
}
|
|
96
|
+
return name;
|
|
97
|
+
}
|
|
98
|
+
option(source.npm, "package");
|
|
99
|
+
option(source.version, "version");
|
|
100
|
+
if (!isPluginName(source.npm))
|
|
101
|
+
throw new Error(`installPlugin: "${source.npm}" is not an npm package name`);
|
|
102
|
+
return source.npm;
|
|
103
|
+
}
|
|
104
|
+
/**
|
|
105
|
+
* Creates `<root>/<name>` (and a scope directory `<root>/@scope` it needs) without `recursive`, so an existing one
|
|
106
|
+
* refuses the install and a concurrent install of the same name loses here; returns what it created.
|
|
107
|
+
*/
|
|
108
|
+
async function claim(root, name) {
|
|
109
|
+
const target = join(root, name);
|
|
110
|
+
let scope;
|
|
111
|
+
if (name.startsWith("@")) {
|
|
112
|
+
const dir = dirname(target);
|
|
113
|
+
try {
|
|
114
|
+
await mkdir(dir);
|
|
115
|
+
scope = dir;
|
|
116
|
+
}
|
|
117
|
+
catch (error) {
|
|
118
|
+
if (error.code !== "EEXIST")
|
|
119
|
+
throw error;
|
|
120
|
+
}
|
|
121
|
+
}
|
|
122
|
+
try {
|
|
123
|
+
await mkdir(target);
|
|
124
|
+
}
|
|
125
|
+
catch (error) {
|
|
126
|
+
if (scope !== undefined)
|
|
127
|
+
await rmdir(scope).catch(() => { });
|
|
128
|
+
if (error.code === "EEXIST") {
|
|
129
|
+
throw new Error(`installPlugin: ${target} exists already`);
|
|
130
|
+
}
|
|
131
|
+
throw error;
|
|
132
|
+
}
|
|
133
|
+
return scope === undefined ? { target } : { target, scope };
|
|
134
|
+
}
|
|
135
|
+
/** The root a package is discovered as part of. */
|
|
136
|
+
function atRoot(root, options) {
|
|
137
|
+
return { root, required: false, kinds: options.kinds ?? [] };
|
|
138
|
+
}
|
|
139
|
+
/**
|
|
140
|
+
* Checks the package staged at `staged` (going to `target`): discovery reports no problem in it, finds a plugin, and
|
|
141
|
+
* none of its plugins' names is taken in the app's roots.
|
|
142
|
+
*/
|
|
143
|
+
async function checkPackage(staged, target, root, context, options) {
|
|
144
|
+
const { plugins, problems } = await discoverPackage(staged, atRoot(root, options), context);
|
|
145
|
+
const [problem] = problems;
|
|
146
|
+
if (problem !== undefined)
|
|
147
|
+
throw new Error(`installPlugin: ${problem.path.replace(staged, target)}: ${problem.error}`);
|
|
148
|
+
if (plugins.length === 0)
|
|
149
|
+
throw new Error(`installPlugin: ${target} holds no plugin`);
|
|
150
|
+
const installed = await discoverPlugins(options.roots ?? [root], { kinds: options.kinds ?? [] }, context);
|
|
151
|
+
for (const plugin of plugins) {
|
|
152
|
+
const other = installed.plugins.find((each) => each.name === plugin.name);
|
|
153
|
+
if (other !== undefined)
|
|
154
|
+
throw new Error(`installPlugin: plugin "${plugin.name}" is in ${other.dir} already`);
|
|
155
|
+
}
|
|
156
|
+
}
|
|
157
|
+
/** The npm command of `options`. */
|
|
158
|
+
function npmCommandOf(options) {
|
|
159
|
+
const [command, ...prefix] = options.npmCommand ?? ["npm"];
|
|
160
|
+
if (command === undefined)
|
|
161
|
+
throw new Error("npmCommand is empty");
|
|
162
|
+
return [command, ...prefix];
|
|
163
|
+
}
|
|
164
|
+
/** Runs `command` in `cwd`; rejects naming `what` with its output when it fails, and when `context` aborts. */
|
|
165
|
+
async function run(command, args, cwd, context, what) {
|
|
166
|
+
context.abortSignal?.throwIfAborted();
|
|
167
|
+
const child = spawn(command, args, {
|
|
168
|
+
cwd,
|
|
169
|
+
stdio: ["ignore", "pipe", "pipe"],
|
|
170
|
+
signal: context.abortSignal,
|
|
171
|
+
// Never a prompt for credentials: an install runs unattended.
|
|
172
|
+
env: { ...process.env, GIT_TERMINAL_PROMPT: "0" },
|
|
173
|
+
});
|
|
174
|
+
let output = "";
|
|
175
|
+
let stdout = "";
|
|
176
|
+
child.stdout.on("data", (chunk) => {
|
|
177
|
+
output += chunk.toString();
|
|
178
|
+
stdout += chunk.toString();
|
|
179
|
+
});
|
|
180
|
+
child.stderr.on("data", (chunk) => {
|
|
181
|
+
output += chunk.toString();
|
|
182
|
+
});
|
|
183
|
+
const code = await new Promise((resolve, reject) => {
|
|
184
|
+
child.on("error", reject);
|
|
185
|
+
child.on("close", resolve);
|
|
186
|
+
});
|
|
187
|
+
if (code !== 0)
|
|
188
|
+
throw new Error(`${what} failed (exit ${code}): ${output.trim()}`);
|
|
189
|
+
return stdout;
|
|
190
|
+
}
|
|
191
|
+
/** A shallow clone of `ref` (a branch, tag or commit) of `url` into `dir` (made), detached at it. */
|
|
192
|
+
async function clone(url, ref, dir, context) {
|
|
193
|
+
await mkdir(dir);
|
|
194
|
+
const what = `git clone of ${url} at ${ref}`;
|
|
195
|
+
await run("git", ["init", "--quiet"], dir, context, what);
|
|
196
|
+
await run("git", ["fetch", "--quiet", "--depth", "1", "--", url, ref], dir, context, what);
|
|
197
|
+
await run("git", ["-c", "advice.detachedHead=false", "checkout", "--quiet", "FETCH_HEAD", "--"], dir, context, what);
|
|
198
|
+
}
|
|
199
|
+
/** npm package `name` at `version` packed (`npm pack`) and extracted into `dir` (made). */
|
|
200
|
+
async function unpack(name, version, dir, context, options) {
|
|
201
|
+
const [command, ...prefix] = npmCommandOf(options);
|
|
202
|
+
const packed = await mkdtemp(join(dirname(dir), "pack-"));
|
|
203
|
+
const what = `${command} pack ${name}@${version}`;
|
|
204
|
+
const args = [...prefix, "pack", "--json", "--pack-destination", packed, "--", `${name}@${version}`];
|
|
205
|
+
// npm's own output: a list of the packed tarballs.
|
|
206
|
+
const [tarball] = JSON.parse(await run(command, args, packed, context, what));
|
|
207
|
+
if (tarball === undefined)
|
|
208
|
+
throw new Error(`${what}: packed nothing`);
|
|
209
|
+
await mkdir(dir);
|
|
210
|
+
const file = join(packed, basename(tarball.filename));
|
|
211
|
+
await run("tar", ["-xzf", file, "--strip-components=1", "-C", dir], packed, context, `extracting ${name}`);
|
|
212
|
+
}
|
|
213
|
+
//# sourceMappingURL=install.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"install.js","sourceRoot":"","sources":["../../../src/node/plugins/install.ts"],"names":[],"mappings":"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","sourcesContent":["// Installing (slice 7c §5, decision \"Slice 7c's points\" (3); slice 12 §5, decision \"`chord.plugins` is a package's\n// manifest of plugins\"): a plugin's npm dependencies as coding-agent installs a package's (`npm install` in the\n// plugin's real directory without dev dependencies, host peers or lifecycle scripts; the command overridable), and new\n// plugins from git (a shallow clone of a ref) or npm (a packed tarball extracted), each staged in a hidden directory of\n// the root, checked as discovery sees it, then renamed into place. Nothing a source supplies reaches git or npm as an\n// option: refs, URLs and names starting with `-` are refused, and positional arguments follow `--`.\n\nimport { spawn } from \"node:child_process\";\nimport { mkdir, mkdtemp, readdir, rename, rm, rmdir, stat } from \"node:fs/promises\";\nimport { basename, dirname, join } from \"node:path\";\nimport type { Context } from \"../../context/index.ts\";\nimport { isPluginName } from \"../../host/staging.ts\";\nimport { discoverPackage, discoverPlugins, type Plugin, type PluginRoot } from \"./discover.ts\";\n\n/** What installs take: the npm command (`[\"npm\"]` by default, e.g. `[\"pnpm\"]`); git and tar are run as `git`, `tar`. */\nexport type InstallOptions = { readonly npmCommand?: readonly string[] };\n\n/** What `installPlugin` takes besides the source and the root. */\nexport type InstallPluginOptions = InstallOptions & {\n\t/** The app's facet kinds: a package whose top has a facet file is one plugin (`[]` by default). */\n\treadonly kinds?: readonly string[];\n\t/** Every root of the app: a new plugin named like one in any of them is refused (`[root]` by default). */\n\treadonly roots?: readonly PluginRoot[];\n};\n\n/** Where `installPlugin` installs from: a git repository at a ref (a branch, tag or commit), or an npm package. */\nexport type PluginSource =\n\t| { readonly git: string; readonly ref: string }\n\t| { readonly npm: string; readonly version: string };\n\n/** The install's arguments: production dependencies only, no host peers, no scripts, no audit or funding notes. */\nconst INSTALL_ARGS = [\"install\", \"--omit=dev\", \"--legacy-peer-deps\", \"--ignore-scripts\", \"--no-audit\", \"--no-fund\"];\n\n/**\n * Installs `plugin`'s `dependencies` into its own `node_modules` (`npm install --omit=dev --legacy-peer-deps\n * --ignore-scripts --no-audit --no-fund` in its real directory; git dependencies with a ref are npm's). Rejects with\n * the command's output when it fails, and when `context` aborts (the command is killed). A single-file plugin has\n * nothing to install.\n */\nexport async function installDependencies(\n\tplugin: Plugin,\n\tcontext: Context,\n\toptions: InstallOptions = {},\n): Promise<void> {\n\tif (plugin.layout === \"file\") throw new Error(`plugin \"${plugin.name}\": a single-file plugin has no package.json`);\n\tconst [command, ...prefix] = npmCommandOf(options);\n\tawait run(command, [...prefix, ...INSTALL_ARGS], plugin.dir, context, `plugin \"${plugin.name}\": ${command} install`);\n}\n\n/**\n * Installs new plugins into `root` from `source`, then their dependencies: from git, a shallow clone of the ref into\n * `<root>/<repository name>`; from npm, the packed package extracted into `<root>/<name>`. The package's plugins are\n * its `chord.plugins` folders, else by convention (discovery's rules). Returns their names. Refused: a source option\n * (`-…`), an invalid name, an existing directory (no updating in place: install another ref, or delete and install), a\n * package discovery reports a problem in or finds no plugin in, a plugin name another plugin of `options.roots` has.\n * Only what this install created is removed on failure.\n */\nexport async function installPlugin(\n\tsource: PluginSource,\n\troot: string,\n\tcontext: Context,\n\toptions: InstallPluginOptions = {},\n): Promise<readonly string[]> {\n\tconst name = targetName(source);\n\tawait removeStaleStaging(root);\n\tconst made = await claim(root, name);\n\tlet staging: string | undefined;\n\ttry {\n\t\t// Hidden: discovery skips it while it is staged; in the root: the rename stays on one file system.\n\t\tstaging = await mkdtemp(join(root, STAGING));\n\t\tconst staged = join(staging, \"package\");\n\t\tif (\"git\" in source) await clone(source.git, source.ref, staged, context);\n\t\telse await unpack(source.npm, source.version, staged, context, options);\n\t\tawait checkPackage(staged, made.target, root, context, options);\n\t\t// The claimed directory is empty: renaming onto it moves the package into place in one step. Windows renames onto\n\t\t// no existing directory: there the claim is released first (a concurrent install of the name may then win).\n\t\tif (process.platform === \"win32\") await rmdir(made.target);\n\t\tawait rename(staged, made.target);\n\t\tconst { plugins } = await discoverPackage(made.target, atRoot(root, options), context);\n\t\tfor (const plugin of plugins) await installDependencies(plugin, context, options);\n\t\treturn plugins.map((plugin) => plugin.name);\n\t} catch (error) {\n\t\tawait rm(made.target, { recursive: true, force: true });\n\t\tif (made.scope !== undefined) await rmdir(made.scope).catch(() => {});\n\t\tthrow error;\n\t} finally {\n\t\tif (staging !== undefined) await rm(staging, { recursive: true, force: true });\n\t}\n}\n\n/** The prefix of an install's staging directory in a root (hidden: discovery skips it). */\nconst STAGING = \".chord-install-\";\n\n/** How old a staging directory must be to count as left over by a crashed install. */\nconst STALE_MS = 60 * 60 * 1000;\n\n/** Removes staging directories in `root` an install crashed out of (older than an hour). */\nasync function removeStaleStaging(root: string): Promise<void> {\n\tconst names = await readdir(root).catch(() => [] as string[]);\n\tfor (const name of names.filter((each) => each.startsWith(STAGING))) {\n\t\tconst path = join(root, name);\n\t\tconst info = await stat(path).catch(() => undefined);\n\t\tif (info !== undefined && Date.now() - info.mtimeMs > STALE_MS) await rm(path, { recursive: true, force: true });\n\t}\n}\n\n/** The directory name a source installs into: the repository's name, or the package's (validated) name. */\nfunction targetName(source: PluginSource): string {\n\tconst option = (value: string, what: string) => {\n\t\tif (value === \"\" || value.startsWith(\"-\")) throw new Error(`installPlugin: ${what} \"${value}\" is refused`);\n\t};\n\tif (\"git\" in source) {\n\t\toption(source.git, \"repository\");\n\t\toption(source.ref, \"ref\");\n\t\tconst name = basename(source.git.replace(/\\/+$/, \"\")).replace(/\\.git$/, \"\");\n\t\tif (name === \"\" || name.startsWith(\".\") || name.startsWith(\"-\")) {\n\t\t\tthrow new Error(`installPlugin: \"${source.git}\" names no repository directory`);\n\t\t}\n\t\treturn name;\n\t}\n\toption(source.npm, \"package\");\n\toption(source.version, \"version\");\n\tif (!isPluginName(source.npm)) throw new Error(`installPlugin: \"${source.npm}\" is not an npm package name`);\n\treturn source.npm;\n}\n\n/**\n * Creates `<root>/<name>` (and a scope directory `<root>/@scope` it needs) without `recursive`, so an existing one\n * refuses the install and a concurrent install of the same name loses here; returns what it created.\n */\nasync function claim(root: string, name: string): Promise<{ readonly target: string; readonly scope?: string }> {\n\tconst target = join(root, name);\n\tlet scope: string | undefined;\n\tif (name.startsWith(\"@\")) {\n\t\tconst dir = dirname(target);\n\t\ttry {\n\t\t\tawait mkdir(dir);\n\t\t\tscope = dir;\n\t\t} catch (error) {\n\t\t\tif ((error as NodeJS.ErrnoException).code !== \"EEXIST\") throw error;\n\t\t}\n\t}\n\ttry {\n\t\tawait mkdir(target);\n\t} catch (error) {\n\t\tif (scope !== undefined) await rmdir(scope).catch(() => {});\n\t\tif ((error as NodeJS.ErrnoException).code === \"EEXIST\") {\n\t\t\tthrow new Error(`installPlugin: ${target} exists already`);\n\t\t}\n\t\tthrow error;\n\t}\n\treturn scope === undefined ? { target } : { target, scope };\n}\n\n/** The root a package is discovered as part of. */\nfunction atRoot(root: string, options: InstallPluginOptions) {\n\treturn { root, required: false, kinds: options.kinds ?? [] };\n}\n\n/**\n * Checks the package staged at `staged` (going to `target`): discovery reports no problem in it, finds a plugin, and\n * none of its plugins' names is taken in the app's roots.\n */\nasync function checkPackage(\n\tstaged: string,\n\ttarget: string,\n\troot: string,\n\tcontext: Context,\n\toptions: InstallPluginOptions,\n): Promise<void> {\n\tconst { plugins, problems } = await discoverPackage(staged, atRoot(root, options), context);\n\tconst [problem] = problems;\n\tif (problem !== undefined)\n\t\tthrow new Error(`installPlugin: ${problem.path.replace(staged, target)}: ${problem.error}`);\n\tif (plugins.length === 0) throw new Error(`installPlugin: ${target} holds no plugin`);\n\tconst installed = await discoverPlugins(options.roots ?? [root], { kinds: options.kinds ?? [] }, context);\n\tfor (const plugin of plugins) {\n\t\tconst other = installed.plugins.find((each) => each.name === plugin.name);\n\t\tif (other !== undefined) throw new Error(`installPlugin: plugin \"${plugin.name}\" is in ${other.dir} already`);\n\t}\n}\n\n/** The npm command of `options`. */\nfunction npmCommandOf(options: InstallOptions): readonly [string, ...string[]] {\n\tconst [command, ...prefix] = options.npmCommand ?? [\"npm\"];\n\tif (command === undefined) throw new Error(\"npmCommand is empty\");\n\treturn [command, ...prefix];\n}\n\n/** Runs `command` in `cwd`; rejects naming `what` with its output when it fails, and when `context` aborts. */\nasync function run(\n\tcommand: string,\n\targs: readonly string[],\n\tcwd: string,\n\tcontext: Context,\n\twhat: string,\n): Promise<string> {\n\tcontext.abortSignal?.throwIfAborted();\n\tconst child = spawn(command, args, {\n\t\tcwd,\n\t\tstdio: [\"ignore\", \"pipe\", \"pipe\"],\n\t\tsignal: context.abortSignal,\n\t\t// Never a prompt for credentials: an install runs unattended.\n\t\tenv: { ...process.env, GIT_TERMINAL_PROMPT: \"0\" },\n\t});\n\tlet output = \"\";\n\tlet stdout = \"\";\n\tchild.stdout.on(\"data\", (chunk: Buffer) => {\n\t\toutput += chunk.toString();\n\t\tstdout += chunk.toString();\n\t});\n\tchild.stderr.on(\"data\", (chunk: Buffer) => {\n\t\toutput += chunk.toString();\n\t});\n\tconst code = await new Promise<number | null>((resolve, reject) => {\n\t\tchild.on(\"error\", reject);\n\t\tchild.on(\"close\", resolve);\n\t});\n\tif (code !== 0) throw new Error(`${what} failed (exit ${code}): ${output.trim()}`);\n\treturn stdout;\n}\n\n/** A shallow clone of `ref` (a branch, tag or commit) of `url` into `dir` (made), detached at it. */\nasync function clone(url: string, ref: string, dir: string, context: Context): Promise<void> {\n\tawait mkdir(dir);\n\tconst what = `git clone of ${url} at ${ref}`;\n\tawait run(\"git\", [\"init\", \"--quiet\"], dir, context, what);\n\tawait run(\"git\", [\"fetch\", \"--quiet\", \"--depth\", \"1\", \"--\", url, ref], dir, context, what);\n\tawait run(\"git\", [\"-c\", \"advice.detachedHead=false\", \"checkout\", \"--quiet\", \"FETCH_HEAD\", \"--\"], dir, context, what);\n}\n\n/** npm package `name` at `version` packed (`npm pack`) and extracted into `dir` (made). */\nasync function unpack(\n\tname: string,\n\tversion: string,\n\tdir: string,\n\tcontext: Context,\n\toptions: InstallOptions,\n): Promise<void> {\n\tconst [command, ...prefix] = npmCommandOf(options);\n\tconst packed = await mkdtemp(join(dirname(dir), \"pack-\"));\n\tconst what = `${command} pack ${name}@${version}`;\n\tconst args = [...prefix, \"pack\", \"--json\", \"--pack-destination\", packed, \"--\", `${name}@${version}`];\n\t// npm's own output: a list of the packed tarballs.\n\tconst [tarball] = JSON.parse(await run(command, args, packed, context, what)) as { readonly filename: string }[];\n\tif (tarball === undefined) throw new Error(`${what}: packed nothing`);\n\tawait mkdir(dir);\n\tconst file = join(packed, basename(tarball.filename));\n\tawait run(\"tar\", [\"-xzf\", file, \"--strip-components=1\", \"-C\", dir], packed, context, `extracting ${name}`);\n}\n"]}
|
|
@@ -0,0 +1,162 @@
|
|
|
1
|
+
import type { Context } from "../../context/index.ts";
|
|
2
|
+
import type { Principal } from "../../data/index.ts";
|
|
3
|
+
import type { Host, LoadReport, PluginFacet, ReloadReport } from "../../host/index.ts";
|
|
4
|
+
import { type BatchError } from "../../state/internal.ts";
|
|
5
|
+
import type { Watchable } from "../../watch.ts";
|
|
6
|
+
import type { BaseInputs } from "./base-inputs.ts";
|
|
7
|
+
import { type AppApi, type BuiltFacet } from "./build.ts";
|
|
8
|
+
import { type Discovery, type Plugin, type PluginRoot } from "./discover.ts";
|
|
9
|
+
import type { HostPackages } from "./evaluate.ts";
|
|
10
|
+
import { type InstallOptions, type PluginSource } from "./install.ts";
|
|
11
|
+
import { type PluginScript } from "./runtime.ts";
|
|
12
|
+
import { type PluginsState } from "./watcher.ts";
|
|
13
|
+
/** What `createPlugins` takes. */
|
|
14
|
+
export type PluginsOptions = {
|
|
15
|
+
/**
|
|
16
|
+
* The directories plugins are listed in, in order: the first root's plugin wins a duplicate name. A root marked
|
|
17
|
+
* `required` (`{ path, required: true }`, the app's own) makes `load` reject when one of its plugins fails.
|
|
18
|
+
*/
|
|
19
|
+
readonly roots: readonly PluginRoot[];
|
|
20
|
+
/**
|
|
21
|
+
* The app's API (`{ name: "@acme/app", versions: ["v3", "v2"] }`, newest first): plugins import it at a listed
|
|
22
|
+
* version, its per-kind modules from their kind only, one version per facet, and never Chord directly. Without one,
|
|
23
|
+
* plugins import the host packages as listed.
|
|
24
|
+
*/
|
|
25
|
+
readonly api?: AppApi;
|
|
26
|
+
/**
|
|
27
|
+
* The app's facet kinds (one file per kind in a plugin), each with where its builds run and the host packages they
|
|
28
|
+
* keep external: `{ server: { platform: "node", hostPackages: ["@earendil-works/chord", "@app/core"] }, … }`.
|
|
29
|
+
*/
|
|
30
|
+
readonly kinds: Readonly<Record<string, KindDefinition>>;
|
|
31
|
+
/**
|
|
32
|
+
* The server's own base code, files and directories, hashed when the component is created: `base` is set while one
|
|
33
|
+
* differs from it or a source file is new in one of the directories (the app restarts its hosts; Chord restarts
|
|
34
|
+
* nothing).
|
|
35
|
+
*/
|
|
36
|
+
readonly base?: readonly string[];
|
|
37
|
+
/** Where the app serves browser builds' assets: the URL prefix their imports evaluate to. */
|
|
38
|
+
readonly publicPath?: string;
|
|
39
|
+
/** How `installDependencies` runs npm. */
|
|
40
|
+
readonly install?: InstallOptions;
|
|
41
|
+
/** The watcher cannot watch (reported once), and the marks' watch listeners that threw. */
|
|
42
|
+
readonly onError: (error: PluginsError) => void;
|
|
43
|
+
};
|
|
44
|
+
/** One facet kind: Node or browser builds, and the host packages (by specifier) its builds keep external. */
|
|
45
|
+
export type KindDefinition = {
|
|
46
|
+
readonly platform: "node" | "browser";
|
|
47
|
+
readonly hostPackages: readonly string[];
|
|
48
|
+
};
|
|
49
|
+
/** What the component reports. */
|
|
50
|
+
export type PluginsError = BatchError | {
|
|
51
|
+
readonly kind: "watch_failed";
|
|
52
|
+
readonly error: unknown;
|
|
53
|
+
};
|
|
54
|
+
/**
|
|
55
|
+
* A build of some plugins, plain data (a clone of it reloads the same): every facet of each, the plugins as its
|
|
56
|
+
* discovery saw them by name (what a reload evaluates with), and the plugins no longer discovered.
|
|
57
|
+
*/
|
|
58
|
+
export type Built = {
|
|
59
|
+
readonly facets: readonly BuiltFacet[];
|
|
60
|
+
readonly plugins: Readonly<Record<string, Plugin>>;
|
|
61
|
+
readonly removed: readonly string[];
|
|
62
|
+
};
|
|
63
|
+
/**
|
|
64
|
+
* What a rollout step did on one of its hosts (`host` named by the step): its reload's report; `stopped` when the host
|
|
65
|
+
* stopped cleanly during the step (it gets the current set at its next start); `error` when it crashed or its reload
|
|
66
|
+
* failed (every plugin of the step's kinds in the build counts as failed there).
|
|
67
|
+
*/
|
|
68
|
+
export type RolloutHost = {
|
|
69
|
+
readonly host: string;
|
|
70
|
+
readonly report: ReloadReport;
|
|
71
|
+
} | {
|
|
72
|
+
readonly host: string;
|
|
73
|
+
readonly stopped: true;
|
|
74
|
+
} | {
|
|
75
|
+
readonly host: string;
|
|
76
|
+
readonly error: unknown;
|
|
77
|
+
};
|
|
78
|
+
/** What a rollout step does: reloads its hosts with the facets of its kinds, one result per host (D12). */
|
|
79
|
+
export type RolloutStep = {
|
|
80
|
+
readonly name: string;
|
|
81
|
+
readonly kinds: readonly string[];
|
|
82
|
+
reload(built: Built, context: Context): Promise<{
|
|
83
|
+
readonly hosts: readonly RolloutHost[];
|
|
84
|
+
}>;
|
|
85
|
+
};
|
|
86
|
+
/** What a rollout did: each step's hosts in order, and the step it stopped at (rejected), if it stopped. */
|
|
87
|
+
export type RolloutResult = {
|
|
88
|
+
readonly steps: readonly {
|
|
89
|
+
readonly name: string;
|
|
90
|
+
readonly hosts: readonly RolloutHost[];
|
|
91
|
+
}[];
|
|
92
|
+
readonly stopped: {
|
|
93
|
+
readonly step: string;
|
|
94
|
+
readonly error: unknown;
|
|
95
|
+
} | undefined;
|
|
96
|
+
};
|
|
97
|
+
/** The plugins component. */
|
|
98
|
+
export interface Plugins {
|
|
99
|
+
/** The marks: `{ dirty, install, set, base }`, a JSON watchable. */
|
|
100
|
+
readonly state: Watchable<PluginsState>;
|
|
101
|
+
/** The plugins of the last discovery. */
|
|
102
|
+
readonly discovery: Discovery;
|
|
103
|
+
/**
|
|
104
|
+
* Builds every facet of `names` (and of plugins discovered since the last build; discovery runs again first when
|
|
105
|
+
* the plugin set changed): plain data. It changes no current set: a rollout ships it.
|
|
106
|
+
*/
|
|
107
|
+
build(names: readonly string[], context: Context): Promise<Built>;
|
|
108
|
+
/**
|
|
109
|
+
* The complete current set of `kind`: every discovered plugin's facet of it (built on first use), as the last
|
|
110
|
+
* rollout or reload shipping `kind` left it; what a worker starts with.
|
|
111
|
+
*/
|
|
112
|
+
scripts(kind: string, context: Context): Promise<readonly PluginScript[]>;
|
|
113
|
+
/**
|
|
114
|
+
* `kind`'s current set now, synchronously (`undefined` before its first use): a rollout step reads it as the rollout
|
|
115
|
+
* applied its build, before another rollout can change it.
|
|
116
|
+
*/
|
|
117
|
+
current(kind: string): readonly PluginScript[] | undefined;
|
|
118
|
+
/**
|
|
119
|
+
* Loads `host` with `kind`'s current set, evaluated with `modules` (the host packages, this process's instances, by
|
|
120
|
+
* specifier; kept for the host's reloads), and `core` (the app's own facets): a plugin whose build or evaluation
|
|
121
|
+
* fails is left out and reported with the host's report. A required root's plugin failing, and a problem discovery
|
|
122
|
+
* reported in a required root (missing, an invalid package, a name another root has), reject the load with a
|
|
123
|
+
* `PluginError` once the host's load settled.
|
|
124
|
+
*/
|
|
125
|
+
load<P extends Principal>(host: Host<P>, options: {
|
|
126
|
+
readonly kind: string;
|
|
127
|
+
readonly core: readonly PluginFacet<P>[];
|
|
128
|
+
readonly modules: HostPackages;
|
|
129
|
+
}, context: Context): Promise<LoadReport>;
|
|
130
|
+
/**
|
|
131
|
+
* Applies `built` to the current set of `host`'s kind (loaded by `load`) and reloads `host` with that complete set,
|
|
132
|
+
* after its earlier reloads (`PluginRuntime.reload`). The host's report.
|
|
133
|
+
*/
|
|
134
|
+
reload<P extends Principal>(host: Host<P>, built: Built, context: Context): Promise<ReloadReport>;
|
|
135
|
+
/** An in-process rollout step named `name`: `reload(host, built)`, one host named `name`. */
|
|
136
|
+
step<P extends Principal>(name: string, host: Host<P>): RolloutStep;
|
|
137
|
+
/**
|
|
138
|
+
* Runs `steps` in order with `built`, applying it to the current set of each step's kinds right before that step,
|
|
139
|
+
* and stops at one that rejects; failed plugins and hosts do not stop it. Clears the dirty marks of the built
|
|
140
|
+
* plugins applied on every host of every step (not failed on any, every built kind of theirs shipped by a step)
|
|
141
|
+
* that did not change since the build.
|
|
142
|
+
*/
|
|
143
|
+
rollout(steps: readonly RolloutStep[], built: Built, context: Context): Promise<RolloutResult>;
|
|
144
|
+
/** Installs plugin `name`'s dependencies (`installDependencies`): its install mark clears, and it is dirty. */
|
|
145
|
+
installDependencies(name: string, context: Context): Promise<void>;
|
|
146
|
+
/**
|
|
147
|
+
* Adds a running base artifact's record (a base bundle's `inputs`, beside `base`): `base` is set while one of its
|
|
148
|
+
* files differs from the bytes it read or is gone; each is compared once now (settles once those comparisons did).
|
|
149
|
+
* Files under `node_modules` are never watched.
|
|
150
|
+
*/
|
|
151
|
+
watchBase(inputs: BaseInputs): Promise<void>;
|
|
152
|
+
/**
|
|
153
|
+
* Installs new plugins from git or npm into `root`, one of the roots (`installPlugin`), and marks `set`: the next
|
|
154
|
+
* build discovers and builds them. Returns their names.
|
|
155
|
+
*/
|
|
156
|
+
installPlugin(source: PluginSource, root: string, context: Context): Promise<readonly string[]>;
|
|
157
|
+
/** Stops the watcher. */
|
|
158
|
+
close(): void;
|
|
159
|
+
}
|
|
160
|
+
/** Creates the plugins component (and its plugin runtime) and starts the watcher. Discovery runs at first use. */
|
|
161
|
+
export declare function createPlugins(options: PluginsOptions, _context: Context): Plugins;
|
|
162
|
+
//# sourceMappingURL=plugins.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"plugins.d.ts","sourceRoot":"","sources":["../../../src/node/plugins/plugins.ts"],"names":[],"mappings":"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"}
|