@earendil-works/chord 1.5.0 → 1.5.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +51 -0
- package/README.md +50 -90
- package/dist/contracts/accepts.d.ts +81 -0
- package/dist/contracts/accepts.d.ts.map +1 -0
- package/dist/contracts/accepts.js.map +1 -0
- package/dist/contracts/contract.d.ts +121 -0
- package/dist/contracts/contract.d.ts.map +1 -0
- package/dist/contracts/contract.js.map +1 -0
- package/dist/contracts/declare.d.ts.map +1 -0
- package/dist/contracts/declare.js.map +1 -0
- package/dist/contracts/evolve.d.ts.map +1 -0
- package/dist/contracts/evolve.js.map +1 -0
- package/dist/contracts/fingerprint.d.ts +16 -0
- package/dist/contracts/fingerprint.d.ts.map +1 -0
- package/dist/contracts/fingerprint.js.map +1 -0
- package/dist/contracts/history.d.ts.map +1 -0
- package/dist/contracts/history.js.map +1 -0
- package/dist/contracts/host-kind.d.ts.map +1 -0
- package/dist/contracts/host-kind.js.map +1 -0
- package/dist/contracts/index.d.ts.map +1 -0
- package/dist/contracts/index.js.map +1 -0
- package/dist/contracts/internal.d.ts.map +1 -0
- package/dist/contracts/internal.js.map +1 -0
- package/dist/contracts/names.d.ts.map +1 -0
- package/dist/contracts/names.js.map +1 -0
- package/dist/contracts/params.d.ts +28 -0
- package/dist/contracts/params.d.ts.map +1 -0
- package/dist/contracts/params.js.map +1 -0
- package/dist/contracts/schema.d.ts.map +1 -0
- package/dist/contracts/schema.js.map +1 -0
- package/dist/contracts/snapshot.d.ts +16 -0
- package/dist/contracts/snapshot.d.ts.map +1 -0
- package/dist/contracts/snapshot.js +167 -0
- package/dist/contracts/snapshot.js.map +1 -0
- package/dist/data/args.d.ts +50 -0
- package/dist/data/args.d.ts.map +1 -0
- package/dist/data/args.js.map +1 -0
- package/dist/data/errors.d.ts +80 -0
- package/dist/data/errors.d.ts.map +1 -0
- package/dist/data/errors.js +116 -0
- package/dist/data/errors.js.map +1 -0
- package/dist/data/failure.d.ts.map +1 -0
- package/dist/data/failure.js +77 -0
- package/dist/data/failure.js.map +1 -0
- package/dist/data/index.d.ts +4 -0
- package/dist/data/index.d.ts.map +1 -0
- package/dist/data/index.js +5 -0
- package/dist/data/index.js.map +1 -0
- package/dist/data/internal.d.ts +7 -0
- package/dist/data/internal.d.ts.map +1 -0
- package/dist/data/internal.js +8 -0
- package/dist/data/internal.js.map +1 -0
- package/dist/data/params.d.ts +20 -0
- package/dist/data/params.d.ts.map +1 -0
- package/dist/data/params.js.map +1 -0
- package/dist/data/principal.d.ts +22 -0
- package/dist/data/principal.d.ts.map +1 -0
- package/dist/data/principal.js +49 -0
- package/dist/data/principal.js.map +1 -0
- package/dist/data/validator.d.ts +12 -0
- package/dist/data/validator.d.ts.map +1 -0
- package/dist/data/validator.js +35 -0
- package/dist/data/validator.js.map +1 -0
- package/dist/documents/address-source.d.ts +20 -0
- package/dist/documents/address-source.d.ts.map +1 -0
- package/dist/documents/address-source.js.map +1 -0
- package/dist/documents/definition.d.ts +84 -0
- package/dist/documents/definition.d.ts.map +1 -0
- package/dist/documents/definition.js +74 -0
- package/dist/documents/definition.js.map +1 -0
- package/dist/documents/documents.d.ts +126 -0
- package/dist/documents/documents.d.ts.map +1 -0
- package/dist/documents/documents.js +248 -0
- package/dist/documents/documents.js.map +1 -0
- package/dist/documents/fence.d.ts.map +1 -0
- package/dist/documents/fence.js.map +1 -0
- package/dist/documents/handles.d.ts +76 -0
- package/dist/documents/handles.d.ts.map +1 -0
- package/dist/documents/handles.js.map +1 -0
- package/dist/documents/index.d.ts.map +1 -0
- package/dist/documents/index.js.map +1 -0
- package/dist/documents/internal.d.ts +9 -0
- package/dist/documents/internal.d.ts.map +1 -0
- package/dist/documents/internal.js.map +1 -0
- package/dist/documents/keyed-slot.d.ts +103 -0
- package/dist/documents/keyed-slot.d.ts.map +1 -0
- package/dist/documents/keyed-slot.js +395 -0
- package/dist/documents/keyed-slot.js.map +1 -0
- package/dist/documents/line.d.ts.map +1 -0
- package/dist/documents/line.js.map +1 -0
- package/dist/documents/persistence.d.ts +104 -0
- package/dist/documents/persistence.d.ts.map +1 -0
- package/dist/documents/persistence.js +129 -0
- package/dist/documents/persistence.js.map +1 -0
- package/dist/documents/residency.d.ts +31 -0
- package/dist/documents/residency.d.ts.map +1 -0
- package/dist/documents/residency.js.map +1 -0
- package/dist/documents/slot.d.ts +109 -0
- package/dist/documents/slot.d.ts.map +1 -0
- package/dist/documents/slot.js +181 -0
- package/dist/documents/slot.js.map +1 -0
- package/dist/documents/transaction.d.ts +143 -0
- package/dist/documents/transaction.d.ts.map +1 -0
- package/dist/documents/transaction.js +442 -0
- package/dist/documents/transaction.js.map +1 -0
- package/dist/host/activity.d.ts +31 -0
- package/dist/host/activity.d.ts.map +1 -0
- package/dist/host/activity.js +40 -0
- package/dist/host/activity.js.map +1 -0
- package/dist/host/adapted.d.ts +49 -0
- package/dist/host/adapted.d.ts.map +1 -0
- package/dist/host/adapted.js.map +1 -0
- package/dist/host/attempt.d.ts +308 -0
- package/dist/host/attempt.d.ts.map +1 -0
- package/dist/host/attempt.js +1199 -0
- package/dist/host/attempt.js.map +1 -0
- package/dist/host/backoff.d.ts.map +1 -0
- package/dist/host/backoff.js.map +1 -0
- package/dist/host/ctx.d.ts +94 -0
- package/dist/host/ctx.d.ts.map +1 -0
- package/dist/host/ctx.js +200 -0
- package/dist/host/ctx.js.map +1 -0
- package/dist/host/deadline.d.ts.map +1 -0
- package/dist/host/deadline.js.map +1 -0
- package/dist/host/dependencies.d.ts.map +1 -0
- package/dist/host/dependencies.js.map +1 -0
- package/dist/host/destination.d.ts +48 -0
- package/dist/host/destination.d.ts.map +1 -0
- package/dist/host/destination.js.map +1 -0
- package/dist/host/facet.d.ts +84 -0
- package/dist/host/facet.d.ts.map +1 -0
- package/dist/host/facet.js.map +1 -0
- package/dist/host/follow.d.ts +52 -0
- package/dist/host/follow.d.ts.map +1 -0
- package/dist/host/follow.js.map +1 -0
- package/dist/host/host.d.ts +571 -0
- package/dist/host/host.d.ts.map +1 -0
- package/dist/host/host.js +1318 -0
- package/dist/host/host.js.map +1 -0
- package/dist/host/index.d.ts +17 -0
- package/dist/host/index.d.ts.map +1 -0
- package/dist/host/index.js.map +1 -0
- package/dist/host/internal.d.ts +11 -0
- package/dist/host/internal.d.ts.map +1 -0
- package/dist/host/internal.js +9 -0
- package/dist/host/internal.js.map +1 -0
- package/dist/host/members.d.ts +50 -0
- package/dist/host/members.d.ts.map +1 -0
- package/dist/host/members.js.map +1 -0
- package/dist/host/native.d.ts +64 -0
- package/dist/host/native.d.ts.map +1 -0
- package/dist/host/native.js +126 -0
- package/dist/host/native.js.map +1 -0
- package/dist/host/object.d.ts +331 -0
- package/dist/host/object.d.ts.map +1 -0
- package/dist/host/object.js +1296 -0
- package/dist/host/object.js.map +1 -0
- package/dist/host/old-work.d.ts +34 -0
- package/dist/host/old-work.d.ts.map +1 -0
- package/dist/host/old-work.js +52 -0
- package/dist/host/old-work.js.map +1 -0
- package/dist/host/parked.d.ts +23 -0
- package/dist/host/parked.d.ts.map +1 -0
- package/dist/host/parked.js.map +1 -0
- package/dist/host/presence.d.ts +34 -0
- package/dist/host/presence.d.ts.map +1 -0
- package/dist/host/presence.js.map +1 -0
- package/dist/host/readiness.d.ts +27 -0
- package/dist/host/readiness.d.ts.map +1 -0
- package/dist/host/readiness.js +134 -0
- package/dist/host/readiness.js.map +1 -0
- package/dist/host/ref-state.d.ts +53 -0
- package/dist/host/ref-state.d.ts.map +1 -0
- package/dist/host/ref-state.js +83 -0
- package/dist/host/ref-state.js.map +1 -0
- package/dist/host/reference-keys.d.ts +36 -0
- package/dist/host/reference-keys.d.ts.map +1 -0
- package/dist/host/reference-keys.js +168 -0
- package/dist/host/reference-keys.js.map +1 -0
- package/dist/host/reference-source.d.ts +65 -0
- package/dist/host/reference-source.d.ts.map +1 -0
- package/dist/host/reference-source.js +285 -0
- package/dist/host/reference-source.js.map +1 -0
- package/dist/host/reference.d.ts +321 -0
- package/dist/host/reference.d.ts.map +1 -0
- package/dist/host/reference.js +797 -0
- package/dist/host/reference.js.map +1 -0
- package/dist/host/reload-cycle.d.ts +16 -0
- package/dist/host/reload-cycle.d.ts.map +1 -0
- package/dist/host/reload-cycle.js +81 -0
- package/dist/host/reload-cycle.js.map +1 -0
- package/dist/host/retry-on.d.ts.map +1 -0
- package/dist/host/retry-on.js.map +1 -0
- package/dist/host/revocation.d.ts +16 -0
- package/dist/host/revocation.d.ts.map +1 -0
- package/dist/host/revocation.js.map +1 -0
- package/dist/host/root.d.ts +37 -0
- package/dist/host/root.d.ts.map +1 -0
- package/dist/host/root.js +68 -0
- package/dist/host/root.js.map +1 -0
- package/dist/host/route.d.ts +64 -0
- package/dist/host/route.d.ts.map +1 -0
- package/dist/host/route.js +227 -0
- package/dist/host/route.js.map +1 -0
- package/dist/host/routines.d.ts +78 -0
- package/dist/host/routines.d.ts.map +1 -0
- package/dist/host/routines.js +398 -0
- package/dist/host/routines.js.map +1 -0
- package/dist/host/sleep.d.ts +9 -0
- package/dist/host/sleep.d.ts.map +1 -0
- package/dist/host/sleep.js.map +1 -0
- package/dist/host/staging.d.ts +94 -0
- package/dist/host/staging.d.ts.map +1 -0
- package/dist/host/staging.js +304 -0
- package/dist/host/staging.js.map +1 -0
- package/dist/host/unbound-clock.d.ts +23 -0
- package/dist/host/unbound-clock.d.ts.map +1 -0
- package/dist/host/unbound-clock.js +58 -0
- package/dist/host/unbound-clock.js.map +1 -0
- package/dist/host/unbound.d.ts +37 -0
- package/dist/host/unbound.d.ts.map +1 -0
- package/dist/host/unbound.js +88 -0
- package/dist/host/unbound.js.map +1 -0
- package/dist/host/uuid.d.ts.map +1 -0
- package/dist/host/uuid.js.map +1 -0
- package/dist/index.d.ts +29 -19
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +20 -10
- package/dist/index.js.map +1 -1
- package/dist/jobs/definition.d.ts.map +1 -0
- package/dist/jobs/definition.js.map +1 -0
- package/dist/jobs/index.d.ts.map +1 -0
- package/dist/jobs/index.js.map +1 -0
- package/dist/jobs/internal.d.ts.map +1 -0
- package/dist/jobs/internal.js.map +1 -0
- package/dist/jobs/job.d.ts +149 -0
- package/dist/jobs/job.d.ts.map +1 -0
- package/dist/jobs/job.js +387 -0
- package/dist/jobs/job.js.map +1 -0
- package/dist/jobs/persisted.d.ts +38 -0
- package/dist/jobs/persisted.d.ts.map +1 -0
- package/dist/jobs/persisted.js.map +1 -0
- package/dist/jobs/records.d.ts +231 -0
- package/dist/jobs/records.d.ts.map +1 -0
- package/dist/jobs/records.js +871 -0
- package/dist/jobs/records.js.map +1 -0
- package/dist/jobs/run-states.d.ts +69 -0
- package/dist/jobs/run-states.d.ts.map +1 -0
- package/dist/jobs/run-states.js +228 -0
- package/dist/jobs/run-states.js.map +1 -0
- package/dist/jobs/run.d.ts +117 -0
- package/dist/jobs/run.d.ts.map +1 -0
- package/dist/jobs/run.js +204 -0
- package/dist/jobs/run.js.map +1 -0
- package/dist/jobs/running.d.ts +44 -0
- package/dist/jobs/running.d.ts.map +1 -0
- package/dist/jobs/running.js.map +1 -0
- package/dist/jobs/stored.d.ts +63 -0
- package/dist/jobs/stored.d.ts.map +1 -0
- package/dist/jobs/stored.js.map +1 -0
- package/dist/link/binary.d.ts.map +1 -0
- package/dist/link/binary.js +544 -0
- package/dist/link/binary.js.map +1 -0
- package/dist/link/channel.d.ts +68 -0
- package/dist/link/channel.d.ts.map +1 -0
- package/dist/link/channel.js +215 -0
- package/dist/link/channel.js.map +1 -0
- package/dist/link/errors.d.ts.map +1 -0
- package/dist/link/errors.js.map +1 -0
- package/dist/link/index.d.ts.map +1 -0
- package/dist/link/index.js.map +1 -0
- package/dist/link/internal.d.ts.map +1 -0
- package/dist/link/internal.js.map +1 -0
- package/dist/link/ipc.d.ts.map +1 -0
- package/dist/link/ipc.js.map +1 -0
- package/dist/link/link.d.ts.map +1 -0
- package/dist/link/link.js.map +1 -0
- package/dist/link/message.d.ts +262 -0
- package/dist/link/message.d.ts.map +1 -0
- package/dist/link/message.js +156 -0
- package/dist/link/message.js.map +1 -0
- package/dist/link/part.d.ts +80 -0
- package/dist/link/part.d.ts.map +1 -0
- package/dist/link/part.js +165 -0
- package/dist/link/part.js.map +1 -0
- package/dist/link/text.d.ts.map +1 -0
- package/dist/link/text.js +355 -0
- package/dist/link/text.js.map +1 -0
- package/dist/link/values.d.ts.map +1 -0
- package/dist/link/values.js +121 -0
- package/dist/link/values.js.map +1 -0
- package/dist/link/websocket.d.ts.map +1 -0
- package/dist/link/websocket.js.map +1 -0
- package/dist/node/app/app.d.ts +269 -0
- package/dist/node/app/app.d.ts.map +1 -0
- package/dist/node/app/app.js +513 -0
- package/dist/node/app/app.js.map +1 -0
- package/dist/node/app/archive.d.ts +37 -0
- package/dist/node/app/archive.d.ts.map +1 -0
- package/dist/node/app/archive.js +204 -0
- package/dist/node/app/archive.js.map +1 -0
- package/dist/node/app/blobs.d.ts +23 -0
- package/dist/node/app/blobs.d.ts.map +1 -0
- package/dist/node/app/blobs.js +64 -0
- package/dist/node/app/blobs.js.map +1 -0
- package/dist/node/app/data.d.ts +35 -0
- package/dist/node/app/data.d.ts.map +1 -0
- package/dist/node/app/data.js +44 -0
- package/dist/node/app/data.js.map +1 -0
- package/dist/node/app/ephemeral-sessions.d.ts +20 -0
- package/dist/node/app/ephemeral-sessions.d.ts.map +1 -0
- package/dist/node/app/ephemeral-sessions.js +69 -0
- package/dist/node/app/ephemeral-sessions.js.map +1 -0
- package/dist/node/app/ephemeral.d.ts +11 -0
- package/dist/node/app/ephemeral.d.ts.map +1 -0
- package/dist/node/app/ephemeral.js +34 -0
- package/dist/node/app/ephemeral.js.map +1 -0
- package/dist/node/app/files-copy.d.ts +13 -0
- package/dist/node/app/files-copy.d.ts.map +1 -0
- package/dist/node/app/files-copy.js +86 -0
- package/dist/node/app/files-copy.js.map +1 -0
- package/dist/node/app/files-entry.d.ts +4 -0
- package/dist/node/app/files-entry.d.ts.map +1 -0
- package/dist/node/app/files-entry.js +7 -0
- package/dist/node/app/files-entry.js.map +1 -0
- package/dist/node/app/files-index.d.ts +180 -0
- package/dist/node/app/files-index.d.ts.map +1 -0
- package/dist/node/app/files-index.js +535 -0
- package/dist/node/app/files-index.js.map +1 -0
- package/dist/node/app/files.d.ts +363 -0
- package/dist/node/app/files.d.ts.map +1 -0
- package/dist/node/app/files.js +368 -0
- package/dist/node/app/files.js.map +1 -0
- package/dist/node/app/folder-views.d.ts +21 -0
- package/dist/node/app/folder-views.d.ts.map +1 -0
- package/dist/node/app/folder-views.js +55 -0
- package/dist/node/app/folder-views.js.map +1 -0
- package/dist/node/app/index.d.ts +12 -0
- package/dist/node/app/index.d.ts.map +1 -0
- package/dist/node/app/index.js +15 -0
- package/dist/node/app/index.js.map +1 -0
- package/dist/node/app/info.d.ts +66 -0
- package/dist/node/app/info.d.ts.map +1 -0
- package/dist/node/app/info.js +37 -0
- package/dist/node/app/info.js.map +1 -0
- package/dist/node/app/invite.d.ts +5 -0
- package/dist/node/app/invite.d.ts.map +1 -0
- package/dist/node/app/invite.js +64 -0
- package/dist/node/app/invite.js.map +1 -0
- package/dist/node/app/layout.d.ts +36 -0
- package/dist/node/app/layout.d.ts.map +1 -0
- package/dist/node/app/layout.js +87 -0
- package/dist/node/app/layout.js.map +1 -0
- package/dist/node/app/owner.d.ts +31 -0
- package/dist/node/app/owner.d.ts.map +1 -0
- package/dist/node/app/owner.js +104 -0
- package/dist/node/app/owner.js.map +1 -0
- package/dist/node/app/pairing.d.ts +55 -0
- package/dist/node/app/pairing.d.ts.map +1 -0
- package/dist/node/app/pairing.js +183 -0
- package/dist/node/app/pairing.js.map +1 -0
- package/dist/node/app/secrets.d.ts +16 -0
- package/dist/node/app/secrets.d.ts.map +1 -0
- package/dist/node/app/secrets.js +72 -0
- package/dist/node/app/secrets.js.map +1 -0
- package/dist/node/app/sessions.d.ts +72 -0
- package/dist/node/app/sessions.d.ts.map +1 -0
- package/dist/node/app/sessions.js +222 -0
- package/dist/node/app/sessions.js.map +1 -0
- package/dist/node/app/tar.d.ts +24 -0
- package/dist/node/app/tar.d.ts.map +1 -0
- package/dist/node/app/tar.js +167 -0
- package/dist/node/app/tar.js.map +1 -0
- package/dist/node/app/uploads.d.ts +37 -0
- package/dist/node/app/uploads.d.ts.map +1 -0
- package/dist/node/app/uploads.js +157 -0
- package/dist/node/app/uploads.js.map +1 -0
- package/dist/node/app/users.d.ts +37 -0
- package/dist/node/app/users.d.ts.map +1 -0
- package/dist/node/app/users.js +62 -0
- package/dist/node/app/users.js.map +1 -0
- package/dist/node/app/worker.d.ts +18 -0
- package/dist/node/app/worker.d.ts.map +1 -0
- package/dist/node/app/worker.js +84 -0
- package/dist/node/app/worker.js.map +1 -0
- package/dist/node/compression.d.ts +7 -0
- package/dist/node/compression.d.ts.map +1 -0
- package/dist/node/compression.js +25 -0
- package/dist/node/compression.js.map +1 -0
- package/dist/node/http/admission.d.ts.map +1 -0
- package/dist/node/http/admission.js.map +1 -0
- package/dist/node/http/authenticate.d.ts +21 -0
- package/dist/node/http/authenticate.d.ts.map +1 -0
- package/dist/node/http/authenticate.js +34 -0
- package/dist/node/http/authenticate.js.map +1 -0
- package/dist/node/http/cookies.d.ts +32 -0
- package/dist/node/http/cookies.d.ts.map +1 -0
- package/dist/node/http/cookies.js +70 -0
- package/dist/node/http/cookies.js.map +1 -0
- package/dist/node/http/file.d.ts.map +1 -0
- package/dist/node/http/file.js.map +1 -0
- package/dist/node/http/headers.d.ts.map +1 -0
- package/dist/node/http/headers.js +136 -0
- package/dist/node/http/headers.js.map +1 -0
- package/dist/node/http/http.d.ts +111 -0
- package/dist/node/http/http.d.ts.map +1 -0
- package/dist/node/http/http.js +524 -0
- package/dist/node/http/http.js.map +1 -0
- package/dist/node/http/incoming.d.ts.map +1 -0
- package/dist/node/http/incoming.js.map +1 -0
- package/dist/node/http/index.d.ts +11 -0
- package/dist/node/http/index.d.ts.map +1 -0
- package/dist/node/http/index.js +12 -0
- package/dist/node/http/index.js.map +1 -0
- package/dist/node/http/node.d.ts.map +1 -0
- package/dist/node/http/node.js.map +1 -0
- package/dist/node/http/request.d.ts +60 -0
- package/dist/node/http/request.d.ts.map +1 -0
- package/dist/node/http/request.js +118 -0
- package/dist/node/http/request.js.map +1 -0
- package/dist/node/http/response.d.ts +63 -0
- package/dist/node/http/response.d.ts.map +1 -0
- package/dist/node/http/response.js.map +1 -0
- package/dist/node/http/router.d.ts +132 -0
- package/dist/node/http/router.d.ts.map +1 -0
- package/dist/node/http/router.js +267 -0
- package/dist/node/http/router.js.map +1 -0
- package/dist/node/http/upgrades.d.ts +61 -0
- package/dist/node/http/upgrades.d.ts.map +1 -0
- package/dist/node/http/upgrades.js +192 -0
- package/dist/node/http/upgrades.js.map +1 -0
- package/dist/node/plugins/base-inputs.d.ts +14 -0
- package/dist/node/plugins/base-inputs.d.ts.map +1 -0
- package/dist/node/plugins/base-inputs.js +33 -0
- package/dist/node/plugins/base-inputs.js.map +1 -0
- package/dist/node/plugins/build.d.ts +77 -0
- package/dist/node/plugins/build.d.ts.map +1 -0
- package/dist/node/plugins/build.js +576 -0
- package/dist/node/plugins/build.js.map +1 -0
- package/dist/node/plugins/css-modules.d.ts +13 -0
- package/dist/node/plugins/css-modules.d.ts.map +1 -0
- package/dist/node/plugins/css-modules.js +58 -0
- package/dist/node/plugins/css-modules.js.map +1 -0
- package/dist/node/plugins/discover.d.ts +67 -0
- package/dist/node/plugins/discover.d.ts.map +1 -0
- package/dist/node/plugins/discover.js +369 -0
- package/dist/node/plugins/discover.js.map +1 -0
- package/dist/node/plugins/evaluate.d.ts +33 -0
- package/dist/node/plugins/evaluate.d.ts.map +1 -0
- package/dist/node/plugins/evaluate.js +121 -0
- package/dist/node/plugins/evaluate.js.map +1 -0
- package/dist/node/plugins/index.d.ts +11 -0
- package/dist/node/plugins/index.d.ts.map +1 -0
- package/dist/node/plugins/index.js +13 -0
- package/dist/node/plugins/index.js.map +1 -0
- package/dist/node/plugins/install.d.ts +38 -0
- package/dist/node/plugins/install.d.ts.map +1 -0
- package/dist/node/plugins/install.js +213 -0
- package/dist/node/plugins/install.js.map +1 -0
- package/dist/node/plugins/plugins.d.ts +162 -0
- package/dist/node/plugins/plugins.d.ts.map +1 -0
- package/dist/node/plugins/plugins.js +244 -0
- package/dist/node/plugins/plugins.js.map +1 -0
- package/dist/node/plugins/runtime.d.ts +57 -0
- package/dist/node/plugins/runtime.d.ts.map +1 -0
- package/dist/node/plugins/runtime.js +92 -0
- package/dist/node/plugins/runtime.js.map +1 -0
- package/dist/node/plugins/stack.d.ts.map +1 -0
- package/dist/node/plugins/stack.js.map +1 -0
- package/dist/node/plugins/testing.d.ts +58 -0
- package/dist/node/plugins/testing.d.ts.map +1 -0
- package/dist/node/plugins/testing.js +210 -0
- package/dist/node/plugins/testing.js.map +1 -0
- package/dist/node/plugins/watcher.d.ts +69 -0
- package/dist/node/plugins/watcher.d.ts.map +1 -0
- package/dist/node/plugins/watcher.js +622 -0
- package/dist/node/plugins/watcher.js.map +1 -0
- package/dist/node/surfaces/bundle.d.ts +31 -0
- package/dist/node/surfaces/bundle.d.ts.map +1 -0
- package/dist/node/surfaces/bundle.js +118 -0
- package/dist/node/surfaces/bundle.js.map +1 -0
- package/dist/node/surfaces/current.d.ts +17 -0
- package/dist/node/surfaces/current.d.ts.map +1 -0
- package/dist/node/surfaces/current.js +54 -0
- package/dist/node/surfaces/current.js.map +1 -0
- package/dist/node/surfaces/index.d.ts +6 -0
- package/dist/node/surfaces/index.d.ts.map +1 -0
- package/dist/node/surfaces/index.js +6 -0
- package/dist/node/surfaces/index.js.map +1 -0
- package/dist/node/surfaces/published.d.ts +27 -0
- package/dist/node/surfaces/published.d.ts.map +1 -0
- package/dist/node/surfaces/published.js +142 -0
- package/dist/node/surfaces/published.js.map +1 -0
- package/dist/node/surfaces/served.d.ts +15 -0
- package/dist/node/surfaces/served.d.ts.map +1 -0
- package/dist/node/surfaces/served.js +42 -0
- package/dist/node/surfaces/served.js.map +1 -0
- package/dist/node/surfaces/surface-build.d.ts +53 -0
- package/dist/node/surfaces/surface-build.d.ts.map +1 -0
- package/dist/node/surfaces/surface-build.js +105 -0
- package/dist/node/surfaces/surface-build.js.map +1 -0
- package/dist/node/surfaces/tui.d.ts +40 -0
- package/dist/node/surfaces/tui.d.ts.map +1 -0
- package/dist/node/surfaces/tui.js +55 -0
- package/dist/node/surfaces/tui.js.map +1 -0
- package/dist/node/surfaces/web.d.ts +56 -0
- package/dist/node/surfaces/web.d.ts.map +1 -0
- package/dist/node/surfaces/web.js +108 -0
- package/dist/node/surfaces/web.js.map +1 -0
- package/dist/node/tui/actions.d.ts +49 -0
- package/dist/node/tui/actions.d.ts.map +1 -0
- package/dist/node/tui/actions.js +195 -0
- package/dist/node/tui/actions.js.map +1 -0
- package/dist/node/tui/credentials.d.ts +17 -0
- package/dist/node/tui/credentials.d.ts.map +1 -0
- package/dist/node/tui/credentials.js +54 -0
- package/dist/node/tui/credentials.js.map +1 -0
- package/dist/node/tui/filter.d.ts +5 -0
- package/dist/node/tui/filter.d.ts.map +1 -0
- package/dist/node/tui/filter.js +79 -0
- package/dist/node/tui/filter.js.map +1 -0
- package/dist/node/tui/index.d.ts +6 -0
- package/dist/node/tui/index.d.ts.map +1 -0
- package/dist/node/tui/index.js +6 -0
- package/dist/node/tui/index.js.map +1 -0
- package/dist/node/tui/launcher.d.ts +40 -0
- package/dist/node/tui/launcher.d.ts.map +1 -0
- package/dist/node/tui/launcher.js +439 -0
- package/dist/node/tui/launcher.js.map +1 -0
- package/dist/node/tui/pipe.d.ts +18 -0
- package/dist/node/tui/pipe.d.ts.map +1 -0
- package/dist/node/tui/pipe.js +134 -0
- package/dist/node/tui/pipe.js.map +1 -0
- package/dist/node/tui/sandbox.d.ts +54 -0
- package/dist/node/tui/sandbox.d.ts.map +1 -0
- package/dist/node/tui/sandbox.js +431 -0
- package/dist/node/tui/sandbox.js.map +1 -0
- package/dist/node/workers/base.d.ts +30 -0
- package/dist/node/workers/base.d.ts.map +1 -0
- package/dist/node/workers/base.js +255 -0
- package/dist/node/workers/base.js.map +1 -0
- package/dist/node/workers/child.d.ts +4 -0
- package/dist/node/workers/child.d.ts.map +1 -0
- package/dist/node/workers/child.js +6 -0
- package/dist/node/workers/child.js.map +1 -0
- package/dist/node/workers/control.d.ts +83 -0
- package/dist/node/workers/control.d.ts.map +1 -0
- package/dist/node/workers/control.js +77 -0
- package/dist/node/workers/control.js.map +1 -0
- package/dist/node/workers/index.d.ts +4 -0
- package/dist/node/workers/index.d.ts.map +1 -0
- package/dist/node/workers/index.js +7 -0
- package/dist/node/workers/index.js.map +1 -0
- package/dist/node/workers/lock.d.ts +30 -0
- package/dist/node/workers/lock.d.ts.map +1 -0
- package/dist/node/workers/lock.js +180 -0
- package/dist/node/workers/lock.js.map +1 -0
- package/dist/node/workers/main.d.ts +46 -0
- package/dist/node/workers/main.d.ts.map +1 -0
- package/dist/node/workers/main.js +230 -0
- package/dist/node/workers/main.js.map +1 -0
- package/dist/node/workers/process.d.ts +42 -0
- package/dist/node/workers/process.d.ts.map +1 -0
- package/dist/node/workers/process.js +125 -0
- package/dist/node/workers/process.js.map +1 -0
- package/dist/node/workers/workers.d.ts +122 -0
- package/dist/node/workers/workers.d.ts.map +1 -0
- package/dist/node/workers/workers.js +677 -0
- package/dist/node/workers/workers.js.map +1 -0
- package/dist/react/hooks.d.ts +43 -0
- package/dist/react/hooks.d.ts.map +1 -0
- package/dist/react/hooks.js +82 -0
- package/dist/react/hooks.js.map +1 -0
- package/dist/react/index.d.ts +3 -0
- package/dist/react/index.d.ts.map +1 -0
- package/dist/react/index.js +4 -0
- package/dist/react/index.js.map +1 -0
- package/dist/react/stores.d.ts +9 -0
- package/dist/react/stores.d.ts.map +1 -0
- package/dist/react/stores.js +37 -0
- package/dist/react/stores.js.map +1 -0
- package/dist/registries/contribution.d.ts.map +1 -0
- package/dist/registries/contribution.js.map +1 -0
- package/dist/registries/entries.d.ts.map +1 -0
- package/dist/registries/entries.js.map +1 -0
- package/dist/registries/index.d.ts.map +1 -0
- package/dist/registries/index.js.map +1 -0
- package/dist/registries/internal.d.ts.map +1 -0
- package/dist/registries/internal.js.map +1 -0
- package/dist/registries/record.d.ts +115 -0
- package/dist/registries/record.d.ts.map +1 -0
- package/dist/registries/record.js +283 -0
- package/dist/registries/record.js.map +1 -0
- package/dist/registries/registry.d.ts +74 -0
- package/dist/registries/registry.d.ts.map +1 -0
- package/dist/registries/registry.js.map +1 -0
- package/dist/registries/value.d.ts.map +1 -0
- package/dist/registries/value.js +224 -0
- package/dist/registries/value.js.map +1 -0
- package/dist/remote/calls.d.ts.map +1 -0
- package/dist/remote/calls.js.map +1 -0
- package/dist/remote/consumer.d.ts +43 -0
- package/dist/remote/consumer.d.ts.map +1 -0
- package/dist/remote/consumer.js +350 -0
- package/dist/remote/consumer.js.map +1 -0
- package/dist/remote/hold.d.ts +141 -0
- package/dist/remote/hold.d.ts.map +1 -0
- package/dist/remote/hold.js +579 -0
- package/dist/remote/hold.js.map +1 -0
- package/dist/remote/host-link.d.ts +77 -0
- package/dist/remote/host-link.d.ts.map +1 -0
- package/dist/remote/host-link.js +184 -0
- package/dist/remote/host-link.js.map +1 -0
- package/dist/remote/internal.d.ts.map +1 -0
- package/dist/remote/internal.js.map +1 -0
- package/dist/remote/path.d.ts.map +1 -0
- package/dist/remote/path.js.map +1 -0
- package/dist/remote/provider.d.ts +89 -0
- package/dist/remote/provider.d.ts.map +1 -0
- package/dist/remote/provider.js +597 -0
- package/dist/remote/provider.js.map +1 -0
- package/dist/remote/relay.d.ts +69 -0
- package/dist/remote/relay.d.ts.map +1 -0
- package/dist/remote/relay.js +219 -0
- package/dist/remote/relay.js.map +1 -0
- package/dist/remote/remote-object.d.ts +138 -0
- package/dist/remote/remote-object.d.ts.map +1 -0
- package/dist/remote/remote-object.js +492 -0
- package/dist/remote/remote-object.js.map +1 -0
- package/dist/remote/replica.d.ts +59 -0
- package/dist/remote/replica.d.ts.map +1 -0
- package/dist/remote/replica.js +125 -0
- package/dist/remote/replica.js.map +1 -0
- package/dist/sqlite/node.d.ts +9 -1
- package/dist/sqlite/node.d.ts.map +1 -1
- package/dist/sqlite/node.js +9 -3
- package/dist/sqlite/node.js.map +1 -1
- package/dist/state/batch.d.ts +64 -0
- package/dist/state/batch.d.ts.map +1 -0
- package/dist/state/batch.js +164 -0
- package/dist/state/batch.js.map +1 -0
- package/dist/state/derive.d.ts +52 -0
- package/dist/state/derive.d.ts.map +1 -0
- package/dist/state/derive.js +182 -0
- package/dist/state/derive.js.map +1 -0
- package/dist/state/index.d.ts +6 -0
- package/dist/state/index.d.ts.map +1 -0
- package/dist/state/index.js.map +1 -0
- package/dist/state/internal.d.ts.map +1 -0
- package/dist/state/internal.js.map +1 -0
- package/dist/state/native-source.d.ts +106 -0
- package/dist/state/native-source.d.ts.map +1 -0
- package/dist/state/native-source.js +240 -0
- package/dist/state/native-source.js.map +1 -0
- package/dist/state/watchable.d.ts +114 -0
- package/dist/state/watchable.d.ts.map +1 -0
- package/dist/state/watchable.js +156 -0
- package/dist/state/watchable.js.map +1 -0
- package/dist/state/writable.d.ts +32 -0
- package/dist/state/writable.d.ts.map +1 -0
- package/dist/state/writable.js.map +1 -0
- package/dist/store/adapter.d.ts +67 -0
- package/dist/store/adapter.d.ts.map +1 -0
- package/dist/store/adapter.js.map +1 -0
- package/dist/store/allocator.d.ts.map +1 -0
- package/dist/store/allocator.js.map +1 -0
- package/dist/store/applier.d.ts.map +1 -0
- package/dist/store/applier.js.map +1 -0
- package/dist/store/apply-batch.d.ts +12 -0
- package/dist/store/apply-batch.d.ts.map +1 -0
- package/dist/store/apply-batch.js.map +1 -0
- package/dist/store/archive.d.ts +32 -0
- package/dist/store/archive.d.ts.map +1 -0
- package/dist/store/archive.js +130 -0
- package/dist/store/archive.js.map +1 -0
- package/dist/store/backend.d.ts +10 -0
- package/dist/store/backend.d.ts.map +1 -0
- package/dist/store/backend.js.map +1 -0
- package/dist/store/catalog.d.ts +24 -0
- package/dist/store/catalog.d.ts.map +1 -0
- package/dist/store/catalog.js.map +1 -0
- package/dist/store/claims.d.ts.map +1 -0
- package/dist/store/claims.js.map +1 -0
- package/dist/store/columns.d.ts.map +1 -0
- package/dist/store/columns.js.map +1 -0
- package/dist/store/engine.d.ts +176 -0
- package/dist/store/engine.d.ts.map +1 -0
- package/dist/store/engine.js +283 -0
- package/dist/store/engine.js.map +1 -0
- package/dist/store/evaluate.d.ts +17 -0
- package/dist/store/evaluate.d.ts.map +1 -0
- package/dist/store/evaluate.js.map +1 -0
- package/dist/store/export.d.ts +17 -0
- package/dist/store/export.d.ts.map +1 -0
- package/dist/store/export.js +200 -0
- package/dist/store/export.js.map +1 -0
- package/dist/store/expression.d.ts +150 -0
- package/dist/store/expression.d.ts.map +1 -0
- package/dist/store/expression.js.map +1 -0
- package/dist/store/import.d.ts +10 -0
- package/dist/store/import.d.ts.map +1 -0
- package/dist/store/import.js +276 -0
- package/dist/store/import.js.map +1 -0
- package/dist/store/index.d.ts.map +1 -0
- package/dist/store/index.js.map +1 -0
- package/dist/store/json-column.d.ts +33 -0
- package/dist/store/json-column.d.ts.map +1 -0
- package/dist/store/json-column.js +62 -0
- package/dist/store/json-column.js.map +1 -0
- package/dist/store/jsonl.d.ts.map +1 -0
- package/dist/store/jsonl.js.map +1 -0
- package/dist/store/live-query.d.ts +108 -0
- package/dist/store/live-query.d.ts.map +1 -0
- package/dist/store/live-query.js +254 -0
- package/dist/store/live-query.js.map +1 -0
- package/dist/store/outbox.d.ts +26 -0
- package/dist/store/outbox.d.ts.map +1 -0
- package/dist/store/outbox.js.map +1 -0
- package/dist/store/query.d.ts +39 -0
- package/dist/store/query.d.ts.map +1 -0
- package/dist/store/query.js.map +1 -0
- package/dist/store/refusal.d.ts.map +1 -0
- package/dist/store/refusal.js.map +1 -0
- package/dist/store/rows.d.ts +80 -0
- package/dist/store/rows.d.ts.map +1 -0
- package/dist/store/rows.js.map +1 -0
- package/dist/store/schema.d.ts +25 -0
- package/dist/store/schema.d.ts.map +1 -0
- package/dist/store/schema.js +115 -0
- package/dist/store/schema.js.map +1 -0
- package/dist/store/sql.d.ts +73 -0
- package/dist/store/sql.d.ts.map +1 -0
- package/dist/store/sql.js.map +1 -0
- package/dist/store/step.d.ts +50 -0
- package/dist/store/step.d.ts.map +1 -0
- package/dist/store/step.js +52 -0
- package/dist/store/step.js.map +1 -0
- package/dist/store/store.d.ts +171 -0
- package/dist/store/store.d.ts.map +1 -0
- package/dist/store/store.js +818 -0
- package/dist/store/store.js.map +1 -0
- package/dist/store/table-changes.d.ts +29 -0
- package/dist/store/table-changes.d.ts.map +1 -0
- package/dist/store/table-changes.js.map +1 -0
- package/dist/store/table-evolve.d.ts.map +1 -0
- package/dist/store/table-evolve.js.map +1 -0
- package/dist/store/table-handle.d.ts +73 -0
- package/dist/store/table-handle.d.ts.map +1 -0
- package/dist/store/table-handle.js +101 -0
- package/dist/store/table-handle.js.map +1 -0
- package/dist/store/table-history.d.ts.map +1 -0
- package/dist/store/table-history.js.map +1 -0
- package/dist/store/table-migration.d.ts +16 -0
- package/dist/store/table-migration.d.ts.map +1 -0
- package/dist/store/table-migration.js +202 -0
- package/dist/store/table-migration.js.map +1 -0
- package/dist/store/table-writes.d.ts.map +1 -0
- package/dist/store/table-writes.js +170 -0
- package/dist/store/table-writes.js.map +1 -0
- package/dist/store/table.d.ts +80 -0
- package/dist/store/table.d.ts.map +1 -0
- package/dist/store/table.js.map +1 -0
- package/dist/store/text.d.ts.map +1 -0
- package/dist/store/text.js.map +1 -0
- package/dist/store/writes.d.ts.map +1 -0
- package/dist/store/writes.js.map +1 -0
- package/dist/surfaces/active-language.d.ts +20 -0
- package/dist/surfaces/active-language.d.ts.map +1 -0
- package/dist/surfaces/active-language.js +78 -0
- package/dist/surfaces/active-language.js.map +1 -0
- package/dist/surfaces/active-theme.d.ts +16 -0
- package/dist/surfaces/active-theme.d.ts.map +1 -0
- package/dist/surfaces/active-theme.js +47 -0
- package/dist/surfaces/active-theme.js.map +1 -0
- package/dist/surfaces/client.d.ts +96 -0
- package/dist/surfaces/client.d.ts.map +1 -0
- package/dist/surfaces/client.js +264 -0
- package/dist/surfaces/client.js.map +1 -0
- package/dist/surfaces/connection.d.ts +49 -0
- package/dist/surfaces/connection.d.ts.map +1 -0
- package/dist/surfaces/connection.js +142 -0
- package/dist/surfaces/connection.js.map +1 -0
- package/dist/surfaces/format.d.ts +5 -0
- package/dist/surfaces/format.d.ts.map +1 -0
- package/dist/surfaces/format.js +37 -0
- package/dist/surfaces/format.js.map +1 -0
- package/dist/surfaces/index.d.ts +15 -0
- package/dist/surfaces/index.d.ts.map +1 -0
- package/dist/surfaces/index.js +18 -0
- package/dist/surfaces/index.js.map +1 -0
- package/dist/surfaces/language.d.ts +53 -0
- package/dist/surfaces/language.d.ts.map +1 -0
- package/dist/surfaces/language.js +74 -0
- package/dist/surfaces/language.js.map +1 -0
- package/dist/surfaces/loaded.d.ts +42 -0
- package/dist/surfaces/loaded.d.ts.map +1 -0
- package/dist/surfaces/loaded.js +116 -0
- package/dist/surfaces/loaded.js.map +1 -0
- package/dist/surfaces/locale-choice.d.ts +25 -0
- package/dist/surfaces/locale-choice.d.ts.map +1 -0
- package/dist/surfaces/locale-choice.js +14 -0
- package/dist/surfaces/locale-choice.js.map +1 -0
- package/dist/surfaces/messages.d.ts +67 -0
- package/dist/surfaces/messages.d.ts.map +1 -0
- package/dist/surfaces/messages.js +112 -0
- package/dist/surfaces/messages.js.map +1 -0
- package/dist/surfaces/page-state.d.ts +14 -0
- package/dist/surfaces/page-state.d.ts.map +1 -0
- package/dist/surfaces/page-state.js +43 -0
- package/dist/surfaces/page-state.js.map +1 -0
- package/dist/surfaces/preference.d.ts +32 -0
- package/dist/surfaces/preference.d.ts.map +1 -0
- package/dist/surfaces/preference.js +72 -0
- package/dist/surfaces/preference.js.map +1 -0
- package/dist/surfaces/registered.d.ts +33 -0
- package/dist/surfaces/registered.d.ts.map +1 -0
- package/dist/surfaces/registered.js +51 -0
- package/dist/surfaces/registered.js.map +1 -0
- package/dist/surfaces/scripts.d.ts +84 -0
- package/dist/surfaces/scripts.d.ts.map +1 -0
- package/dist/surfaces/scripts.js +28 -0
- package/dist/surfaces/scripts.js.map +1 -0
- package/dist/surfaces/theme-choice.d.ts +31 -0
- package/dist/surfaces/theme-choice.d.ts.map +1 -0
- package/dist/surfaces/theme-choice.js +18 -0
- package/dist/surfaces/theme-choice.js.map +1 -0
- package/dist/surfaces/themes.d.ts +43 -0
- package/dist/surfaces/themes.d.ts.map +1 -0
- package/dist/surfaces/themes.js +110 -0
- package/dist/surfaces/themes.js.map +1 -0
- package/dist/surfaces/translations.d.ts +29 -0
- package/dist/surfaces/translations.d.ts.map +1 -0
- package/dist/surfaces/translations.js +57 -0
- package/dist/surfaces/translations.js.map +1 -0
- package/dist/sync/batch.d.ts +18 -0
- package/dist/sync/batch.d.ts.map +1 -0
- package/dist/sync/batch.js +125 -0
- package/dist/sync/batch.js.map +1 -0
- package/dist/sync/client.d.ts +166 -0
- package/dist/sync/client.d.ts.map +1 -0
- package/dist/sync/client.js +438 -0
- package/dist/sync/client.js.map +1 -0
- package/dist/sync/files.d.ts +46 -0
- package/dist/sync/files.d.ts.map +1 -0
- package/dist/sync/files.js +13 -0
- package/dist/sync/files.js.map +1 -0
- package/dist/sync/filesystem.d.ts +37 -0
- package/dist/sync/filesystem.d.ts.map +1 -0
- package/dist/sync/filesystem.js +185 -0
- package/dist/sync/filesystem.js.map +1 -0
- package/dist/sync/index.d.ts +8 -0
- package/dist/sync/index.d.ts.map +1 -0
- package/dist/sync/index.js +9 -0
- package/dist/sync/index.js.map +1 -0
- package/dist/sync/lines.d.ts +18 -0
- package/dist/sync/lines.d.ts.map +1 -0
- package/dist/sync/lines.js +46 -0
- package/dist/sync/lines.js.map +1 -0
- package/dist/sync/remote.d.ts +130 -0
- package/dist/sync/remote.d.ts.map +1 -0
- package/dist/sync/remote.js +46 -0
- package/dist/sync/remote.js.map +1 -0
- package/dist/sync/state.d.ts +17 -0
- package/dist/sync/state.d.ts.map +1 -0
- package/dist/sync/state.js +40 -0
- package/dist/sync/state.js.map +1 -0
- package/dist/telemetry-ingest/batch.d.ts +70 -0
- package/dist/telemetry-ingest/batch.d.ts.map +1 -0
- package/dist/telemetry-ingest/batch.js +110 -0
- package/dist/telemetry-ingest/batch.js.map +1 -0
- package/dist/telemetry-ingest/facet.d.ts +21 -0
- package/dist/telemetry-ingest/facet.d.ts.map +1 -0
- package/dist/telemetry-ingest/facet.js +96 -0
- package/dist/telemetry-ingest/facet.js.map +1 -0
- package/dist/telemetry-ingest/index.d.ts +5 -0
- package/dist/telemetry-ingest/index.d.ts.map +1 -0
- package/dist/telemetry-ingest/index.js +8 -0
- package/dist/telemetry-ingest/index.js.map +1 -0
- package/dist/telemetry-ingest/recorder.d.ts +50 -0
- package/dist/telemetry-ingest/recorder.d.ts.map +1 -0
- package/dist/telemetry-ingest/recorder.js +298 -0
- package/dist/telemetry-ingest/recorder.js.map +1 -0
- package/dist/telemetry-ingest/sender.d.ts +14 -0
- package/dist/telemetry-ingest/sender.d.ts.map +1 -0
- package/dist/telemetry-ingest/sender.js +64 -0
- package/dist/telemetry-ingest/sender.js.map +1 -0
- package/dist/telemetry-sqlite/index.d.ts +13 -4
- package/dist/telemetry-sqlite/index.d.ts.map +1 -1
- package/dist/telemetry-sqlite/index.js +81 -241
- package/dist/telemetry-sqlite/index.js.map +1 -1
- package/dist/telemetry-sqlite/node.d.ts +13 -0
- package/dist/telemetry-sqlite/node.d.ts.map +1 -0
- package/dist/telemetry-sqlite/node.js +27 -0
- package/dist/telemetry-sqlite/node.js.map +1 -0
- package/dist/telemetry-sqlite/schema.d.ts +9 -0
- package/dist/telemetry-sqlite/schema.d.ts.map +1 -0
- package/dist/telemetry-sqlite/schema.js +61 -0
- package/dist/telemetry-sqlite/schema.js.map +1 -0
- package/dist/telemetry-sqlite/store.d.ts +3 -0
- package/dist/telemetry-sqlite/store.d.ts.map +1 -1
- package/dist/telemetry-sqlite/store.js +24 -13
- package/dist/telemetry-sqlite/store.js.map +1 -1
- package/dist/telemetry.d.ts +937 -0
- package/dist/telemetry.d.ts.map +1 -0
- package/dist/telemetry.js +470 -0
- package/dist/telemetry.js.map +1 -0
- package/dist/tui/bridge.d.ts +112 -0
- package/dist/tui/bridge.d.ts.map +1 -0
- package/dist/tui/bridge.js +9 -0
- package/dist/tui/bridge.js.map +1 -0
- package/dist/tui/channel.d.ts +44 -0
- package/dist/tui/channel.d.ts.map +1 -0
- package/dist/tui/channel.js +150 -0
- package/dist/tui/channel.js.map +1 -0
- package/dist/tui/frames.d.ts +5 -0
- package/dist/tui/frames.d.ts.map +1 -0
- package/dist/tui/frames.js +52 -0
- package/dist/tui/frames.js.map +1 -0
- package/dist/tui/index.d.ts +7 -0
- package/dist/tui/index.d.ts.map +1 -0
- package/dist/tui/index.js +8 -0
- package/dist/tui/index.js.map +1 -0
- package/dist/tui/runtime.d.ts +46 -0
- package/dist/tui/runtime.d.ts.map +1 -0
- package/dist/tui/runtime.js +101 -0
- package/dist/tui/runtime.js.map +1 -0
- package/dist/tui/scope.d.ts +46 -0
- package/dist/tui/scope.d.ts.map +1 -0
- package/dist/tui/scope.js +141 -0
- package/dist/tui/scope.js.map +1 -0
- package/dist/tui/terminal.d.ts +15 -0
- package/dist/tui/terminal.d.ts.map +1 -0
- package/dist/tui/terminal.js +37 -0
- package/dist/tui/terminal.js.map +1 -0
- package/dist/tui/theme.d.ts +17 -0
- package/dist/tui/theme.d.ts.map +1 -0
- package/dist/tui/theme.js +38 -0
- package/dist/tui/theme.js.map +1 -0
- package/dist/web/environment.d.ts +4 -0
- package/dist/web/environment.d.ts.map +1 -0
- package/dist/web/environment.js +37 -0
- package/dist/web/environment.js.map +1 -0
- package/dist/web/index.d.ts +5 -0
- package/dist/web/index.d.ts.map +1 -0
- package/dist/web/index.js +7 -0
- package/dist/web/index.js.map +1 -0
- package/dist/web/language.d.ts +7 -0
- package/dist/web/language.d.ts.map +1 -0
- package/dist/web/language.js +21 -0
- package/dist/web/language.js.map +1 -0
- package/dist/web/page.d.ts +29 -0
- package/dist/web/page.d.ts.map +1 -0
- package/dist/web/page.js +92 -0
- package/dist/web/page.js.map +1 -0
- package/dist/web/scripts.d.ts +23 -0
- package/dist/web/scripts.d.ts.map +1 -0
- package/dist/web/scripts.js +50 -0
- package/dist/web/scripts.js.map +1 -0
- package/dist/web/styles.d.ts +17 -0
- package/dist/web/styles.d.ts.map +1 -0
- package/dist/web/styles.js +218 -0
- package/dist/web/styles.js.map +1 -0
- package/dist/web/themes.d.ts +6 -0
- package/dist/web/themes.d.ts.map +1 -0
- package/dist/web/themes.js +31 -0
- package/dist/web/themes.js.map +1 -0
- package/docs/benchmarks.md +1036 -0
- package/docs/decisions.md +3436 -0
- package/docs/dependencies/book.md +1671 -0
- package/docs/dependencies/index.html +2641 -0
- package/docs/design.md +3065 -0
- package/docs/durable-observers/book.md +432 -0
- package/docs/durable-observers/index.html +517 -0
- package/docs/guide-plugins-hosts/book.md +957 -0
- package/docs/guide-plugins-hosts/index.html +952 -0
- package/docs/http-workers/book.md +378 -0
- package/docs/http-workers/index.html +515 -0
- package/docs/i18n/book.md +217 -0
- package/docs/i18n/index.html +344 -0
- package/docs/layer-1.md +311 -0
- package/docs/layer-2.md +216 -0
- package/docs/p3-features/README.md +6 -0
- package/docs/p3-features/book.md +478 -0
- package/docs/plugin-authoring.md +276 -0
- package/docs/plugin-model/book.md +186 -0
- package/docs/plugin-model/index.html +310 -0
- package/docs/plugin-primer/book.md +273 -0
- package/docs/plugin-primer/index.html +430 -0
- package/docs/slice-1.md +236 -0
- package/docs/slice-10.md +288 -0
- package/docs/slice-11.md +114 -0
- package/docs/slice-12.md +132 -0
- package/docs/slice-13.md +121 -0
- package/docs/slice-2.md +174 -0
- package/docs/slice-3a.md +296 -0
- package/docs/slice-3b.md +197 -0
- package/docs/slice-4a.md +418 -0
- package/docs/slice-4b.md +208 -0
- package/docs/slice-6a.md +676 -0
- package/docs/slice-6b.md +332 -0
- package/docs/slice-7b/book.md +608 -0
- package/docs/slice-7b/index.html +842 -0
- package/docs/slice-7b.md +255 -0
- package/docs/slice-7c.md +165 -0
- package/docs/slice-9.md +110 -0
- package/docs/slices.md +241 -0
- package/docs/store/book.md +670 -0
- package/docs/store/index.html +861 -0
- package/docs/store/walkthrough.md +193 -0
- package/docs/theming/book.md +223 -0
- package/docs/theming/index.html +371 -0
- package/docs/tutorial/book.md +2169 -0
- package/docs/tutorial/index.html +2112 -0
- package/docs/tutorial/screens/click-after.png +0 -0
- package/docs/tutorial/screens/click-before.png +0 -0
- package/docs/tutorial/screens/edited.png +0 -0
- package/docs/tutorial/screens/french.png +0 -0
- package/docs/tutorial/screens/harbor.png +0 -0
- package/docs/tutorial/screens/page.png +0 -0
- package/docs/tutorial/screens/traces-ada.png +0 -0
- package/docs/tutorial/screens/traces.png +0 -0
- package/package.json +99 -21
- package/dist/cell.d.ts +0 -122
- package/dist/cell.d.ts.map +0 -1
- package/dist/cell.js +0 -356
- package/dist/cell.js.map +0 -1
- package/dist/cluster.d.ts +0 -27
- package/dist/cluster.d.ts.map +0 -1
- package/dist/cluster.js +0 -230
- package/dist/cluster.js.map +0 -1
- package/dist/connection.d.ts +0 -270
- package/dist/connection.d.ts.map +0 -1
- package/dist/connection.js +0 -1216
- package/dist/connection.js.map +0 -1
- package/dist/contract.d.ts +0 -207
- package/dist/contract.d.ts.map +0 -1
- package/dist/contract.js +0 -241
- package/dist/contract.js.map +0 -1
- package/dist/declare.d.ts +0 -33
- package/dist/declare.d.ts.map +0 -1
- package/dist/declare.js +0 -2
- package/dist/declare.js.map +0 -1
- package/dist/errors.d.ts +0 -28
- package/dist/errors.d.ts.map +0 -1
- package/dist/errors.js +0 -59
- package/dist/errors.js.map +0 -1
- package/dist/host.d.ts +0 -348
- package/dist/host.d.ts.map +0 -1
- package/dist/host.js +0 -1002
- package/dist/host.js.map +0 -1
- package/dist/link.d.ts +0 -107
- package/dist/link.d.ts.map +0 -1
- package/dist/link.js +0 -355
- package/dist/link.js.map +0 -1
- package/dist/loader.d.ts +0 -4
- package/dist/loader.d.ts.map +0 -1
- package/dist/loader.js +0 -73
- package/dist/loader.js.map +0 -1
- package/dist/manager.d.ts +0 -115
- package/dist/manager.d.ts.map +0 -1
- package/dist/manager.js +0 -345
- package/dist/manager.js.map +0 -1
- package/dist/next/contracts/accepts.d.ts +0 -81
- package/dist/next/contracts/accepts.d.ts.map +0 -1
- package/dist/next/contracts/accepts.js.map +0 -1
- package/dist/next/contracts/contract.d.ts +0 -121
- package/dist/next/contracts/contract.d.ts.map +0 -1
- package/dist/next/contracts/contract.js.map +0 -1
- package/dist/next/contracts/declare.d.ts.map +0 -1
- package/dist/next/contracts/declare.js.map +0 -1
- package/dist/next/contracts/evolve.d.ts.map +0 -1
- package/dist/next/contracts/evolve.js.map +0 -1
- package/dist/next/contracts/fingerprint.d.ts +0 -16
- package/dist/next/contracts/fingerprint.d.ts.map +0 -1
- package/dist/next/contracts/fingerprint.js.map +0 -1
- package/dist/next/contracts/history.d.ts.map +0 -1
- package/dist/next/contracts/history.js.map +0 -1
- package/dist/next/contracts/host-kind.d.ts.map +0 -1
- package/dist/next/contracts/host-kind.js.map +0 -1
- package/dist/next/contracts/index.d.ts.map +0 -1
- package/dist/next/contracts/index.js.map +0 -1
- package/dist/next/contracts/internal.d.ts.map +0 -1
- package/dist/next/contracts/internal.js.map +0 -1
- package/dist/next/contracts/names.d.ts.map +0 -1
- package/dist/next/contracts/names.js.map +0 -1
- package/dist/next/contracts/params.d.ts +0 -28
- package/dist/next/contracts/params.d.ts.map +0 -1
- package/dist/next/contracts/params.js.map +0 -1
- package/dist/next/contracts/schema.d.ts.map +0 -1
- package/dist/next/contracts/schema.js.map +0 -1
- package/dist/next/contracts/snapshot.d.ts +0 -16
- package/dist/next/contracts/snapshot.d.ts.map +0 -1
- package/dist/next/contracts/snapshot.js +0 -167
- package/dist/next/contracts/snapshot.js.map +0 -1
- package/dist/next/data/args.d.ts +0 -50
- package/dist/next/data/args.d.ts.map +0 -1
- package/dist/next/data/args.js.map +0 -1
- package/dist/next/data/errors.d.ts +0 -73
- package/dist/next/data/errors.d.ts.map +0 -1
- package/dist/next/data/errors.js +0 -107
- package/dist/next/data/errors.js.map +0 -1
- package/dist/next/data/failure.d.ts.map +0 -1
- package/dist/next/data/failure.js +0 -72
- package/dist/next/data/failure.js.map +0 -1
- package/dist/next/data/index.d.ts +0 -4
- package/dist/next/data/index.d.ts.map +0 -1
- package/dist/next/data/index.js +0 -4
- package/dist/next/data/index.js.map +0 -1
- package/dist/next/data/internal.d.ts +0 -7
- package/dist/next/data/internal.d.ts.map +0 -1
- package/dist/next/data/internal.js +0 -8
- package/dist/next/data/internal.js.map +0 -1
- package/dist/next/data/params.d.ts +0 -20
- package/dist/next/data/params.d.ts.map +0 -1
- package/dist/next/data/params.js.map +0 -1
- package/dist/next/data/principal.d.ts +0 -17
- package/dist/next/data/principal.d.ts.map +0 -1
- package/dist/next/data/principal.js +0 -41
- package/dist/next/data/principal.js.map +0 -1
- package/dist/next/data/validator.d.ts +0 -12
- package/dist/next/data/validator.d.ts.map +0 -1
- package/dist/next/data/validator.js +0 -34
- package/dist/next/data/validator.js.map +0 -1
- package/dist/next/documents/address-source.d.ts +0 -20
- package/dist/next/documents/address-source.d.ts.map +0 -1
- package/dist/next/documents/address-source.js.map +0 -1
- package/dist/next/documents/definition.d.ts +0 -84
- package/dist/next/documents/definition.d.ts.map +0 -1
- package/dist/next/documents/definition.js +0 -73
- package/dist/next/documents/definition.js.map +0 -1
- package/dist/next/documents/documents.d.ts +0 -106
- package/dist/next/documents/documents.d.ts.map +0 -1
- package/dist/next/documents/documents.js +0 -224
- package/dist/next/documents/documents.js.map +0 -1
- package/dist/next/documents/fence.d.ts.map +0 -1
- package/dist/next/documents/fence.js.map +0 -1
- package/dist/next/documents/handles.d.ts +0 -76
- package/dist/next/documents/handles.d.ts.map +0 -1
- package/dist/next/documents/handles.js.map +0 -1
- package/dist/next/documents/index.d.ts.map +0 -1
- package/dist/next/documents/index.js.map +0 -1
- package/dist/next/documents/internal.d.ts +0 -9
- package/dist/next/documents/internal.d.ts.map +0 -1
- package/dist/next/documents/internal.js.map +0 -1
- package/dist/next/documents/keyed-slot.d.ts +0 -103
- package/dist/next/documents/keyed-slot.d.ts.map +0 -1
- package/dist/next/documents/keyed-slot.js +0 -395
- package/dist/next/documents/keyed-slot.js.map +0 -1
- package/dist/next/documents/line.d.ts.map +0 -1
- package/dist/next/documents/line.js.map +0 -1
- package/dist/next/documents/persistence.d.ts +0 -104
- package/dist/next/documents/persistence.d.ts.map +0 -1
- package/dist/next/documents/persistence.js +0 -128
- package/dist/next/documents/persistence.js.map +0 -1
- package/dist/next/documents/residency.d.ts +0 -31
- package/dist/next/documents/residency.d.ts.map +0 -1
- package/dist/next/documents/residency.js.map +0 -1
- package/dist/next/documents/slot.d.ts +0 -109
- package/dist/next/documents/slot.d.ts.map +0 -1
- package/dist/next/documents/slot.js +0 -181
- package/dist/next/documents/slot.js.map +0 -1
- package/dist/next/documents/transaction.d.ts +0 -133
- package/dist/next/documents/transaction.d.ts.map +0 -1
- package/dist/next/documents/transaction.js +0 -409
- package/dist/next/documents/transaction.js.map +0 -1
- package/dist/next/host/activity.d.ts +0 -31
- package/dist/next/host/activity.d.ts.map +0 -1
- package/dist/next/host/activity.js +0 -40
- package/dist/next/host/activity.js.map +0 -1
- package/dist/next/host/adapted.d.ts +0 -49
- package/dist/next/host/adapted.d.ts.map +0 -1
- package/dist/next/host/adapted.js.map +0 -1
- package/dist/next/host/attempt.d.ts +0 -278
- package/dist/next/host/attempt.d.ts.map +0 -1
- package/dist/next/host/attempt.js +0 -1072
- package/dist/next/host/attempt.js.map +0 -1
- package/dist/next/host/backoff.d.ts.map +0 -1
- package/dist/next/host/backoff.js.map +0 -1
- package/dist/next/host/ctx.d.ts +0 -47
- package/dist/next/host/ctx.d.ts.map +0 -1
- package/dist/next/host/ctx.js +0 -108
- package/dist/next/host/ctx.js.map +0 -1
- package/dist/next/host/deadline.d.ts.map +0 -1
- package/dist/next/host/deadline.js.map +0 -1
- package/dist/next/host/dependencies.d.ts.map +0 -1
- package/dist/next/host/dependencies.js.map +0 -1
- package/dist/next/host/destination.d.ts +0 -48
- package/dist/next/host/destination.d.ts.map +0 -1
- package/dist/next/host/destination.js.map +0 -1
- package/dist/next/host/facet.d.ts +0 -79
- package/dist/next/host/facet.d.ts.map +0 -1
- package/dist/next/host/facet.js.map +0 -1
- package/dist/next/host/follow.d.ts +0 -52
- package/dist/next/host/follow.d.ts.map +0 -1
- package/dist/next/host/follow.js.map +0 -1
- package/dist/next/host/host.d.ts +0 -495
- package/dist/next/host/host.d.ts.map +0 -1
- package/dist/next/host/host.js +0 -1075
- package/dist/next/host/host.js.map +0 -1
- package/dist/next/host/index.d.ts +0 -17
- package/dist/next/host/index.d.ts.map +0 -1
- package/dist/next/host/index.js.map +0 -1
- package/dist/next/host/internal.d.ts +0 -10
- package/dist/next/host/internal.d.ts.map +0 -1
- package/dist/next/host/internal.js +0 -8
- package/dist/next/host/internal.js.map +0 -1
- package/dist/next/host/members.d.ts +0 -50
- package/dist/next/host/members.d.ts.map +0 -1
- package/dist/next/host/members.js.map +0 -1
- package/dist/next/host/native.d.ts +0 -55
- package/dist/next/host/native.d.ts.map +0 -1
- package/dist/next/host/native.js +0 -92
- package/dist/next/host/native.js.map +0 -1
- package/dist/next/host/object.d.ts +0 -290
- package/dist/next/host/object.d.ts.map +0 -1
- package/dist/next/host/object.js +0 -1127
- package/dist/next/host/object.js.map +0 -1
- package/dist/next/host/parked.d.ts +0 -23
- package/dist/next/host/parked.d.ts.map +0 -1
- package/dist/next/host/parked.js.map +0 -1
- package/dist/next/host/presence.d.ts +0 -34
- package/dist/next/host/presence.d.ts.map +0 -1
- package/dist/next/host/presence.js.map +0 -1
- package/dist/next/host/ref-state.d.ts +0 -53
- package/dist/next/host/ref-state.d.ts.map +0 -1
- package/dist/next/host/ref-state.js +0 -83
- package/dist/next/host/ref-state.js.map +0 -1
- package/dist/next/host/reference-keys.d.ts +0 -36
- package/dist/next/host/reference-keys.d.ts.map +0 -1
- package/dist/next/host/reference-keys.js +0 -168
- package/dist/next/host/reference-keys.js.map +0 -1
- package/dist/next/host/reference-source.d.ts +0 -65
- package/dist/next/host/reference-source.d.ts.map +0 -1
- package/dist/next/host/reference-source.js +0 -285
- package/dist/next/host/reference-source.js.map +0 -1
- package/dist/next/host/reference.d.ts +0 -308
- package/dist/next/host/reference.d.ts.map +0 -1
- package/dist/next/host/reference.js +0 -775
- package/dist/next/host/reference.js.map +0 -1
- package/dist/next/host/retry-on.d.ts.map +0 -1
- package/dist/next/host/retry-on.js.map +0 -1
- package/dist/next/host/revocation.d.ts +0 -16
- package/dist/next/host/revocation.d.ts.map +0 -1
- package/dist/next/host/revocation.js.map +0 -1
- package/dist/next/host/root.d.ts +0 -27
- package/dist/next/host/root.d.ts.map +0 -1
- package/dist/next/host/root.js +0 -68
- package/dist/next/host/root.js.map +0 -1
- package/dist/next/host/route.d.ts +0 -64
- package/dist/next/host/route.d.ts.map +0 -1
- package/dist/next/host/route.js +0 -190
- package/dist/next/host/route.js.map +0 -1
- package/dist/next/host/routines.d.ts +0 -76
- package/dist/next/host/routines.d.ts.map +0 -1
- package/dist/next/host/routines.js +0 -350
- package/dist/next/host/routines.js.map +0 -1
- package/dist/next/host/sleep.d.ts +0 -9
- package/dist/next/host/sleep.d.ts.map +0 -1
- package/dist/next/host/sleep.js.map +0 -1
- package/dist/next/host/staging.d.ts +0 -94
- package/dist/next/host/staging.d.ts.map +0 -1
- package/dist/next/host/staging.js +0 -302
- package/dist/next/host/staging.js.map +0 -1
- package/dist/next/host/unbound.d.ts +0 -30
- package/dist/next/host/unbound.d.ts.map +0 -1
- package/dist/next/host/unbound.js +0 -67
- package/dist/next/host/unbound.js.map +0 -1
- package/dist/next/host/uuid.d.ts.map +0 -1
- package/dist/next/host/uuid.js.map +0 -1
- package/dist/next/index.d.ts +0 -28
- package/dist/next/index.d.ts.map +0 -1
- package/dist/next/index.js +0 -18
- package/dist/next/index.js.map +0 -1
- package/dist/next/jobs/definition.d.ts.map +0 -1
- package/dist/next/jobs/definition.js.map +0 -1
- package/dist/next/jobs/index.d.ts.map +0 -1
- package/dist/next/jobs/index.js.map +0 -1
- package/dist/next/jobs/internal.d.ts.map +0 -1
- package/dist/next/jobs/internal.js.map +0 -1
- package/dist/next/jobs/job.d.ts +0 -152
- package/dist/next/jobs/job.d.ts.map +0 -1
- package/dist/next/jobs/job.js +0 -320
- package/dist/next/jobs/job.js.map +0 -1
- package/dist/next/jobs/persisted.d.ts +0 -38
- package/dist/next/jobs/persisted.d.ts.map +0 -1
- package/dist/next/jobs/persisted.js.map +0 -1
- package/dist/next/jobs/records.d.ts +0 -231
- package/dist/next/jobs/records.d.ts.map +0 -1
- package/dist/next/jobs/records.js +0 -869
- package/dist/next/jobs/records.js.map +0 -1
- package/dist/next/jobs/run-states.d.ts +0 -69
- package/dist/next/jobs/run-states.d.ts.map +0 -1
- package/dist/next/jobs/run-states.js +0 -228
- package/dist/next/jobs/run-states.js.map +0 -1
- package/dist/next/jobs/run.d.ts +0 -113
- package/dist/next/jobs/run.d.ts.map +0 -1
- package/dist/next/jobs/run.js +0 -200
- package/dist/next/jobs/run.js.map +0 -1
- package/dist/next/jobs/running.d.ts +0 -44
- package/dist/next/jobs/running.d.ts.map +0 -1
- package/dist/next/jobs/running.js.map +0 -1
- package/dist/next/jobs/stored.d.ts +0 -63
- package/dist/next/jobs/stored.d.ts.map +0 -1
- package/dist/next/jobs/stored.js.map +0 -1
- package/dist/next/link/binary.d.ts.map +0 -1
- package/dist/next/link/binary.js +0 -534
- package/dist/next/link/binary.js.map +0 -1
- package/dist/next/link/channel.d.ts +0 -63
- package/dist/next/link/channel.d.ts.map +0 -1
- package/dist/next/link/channel.js +0 -202
- package/dist/next/link/channel.js.map +0 -1
- package/dist/next/link/errors.d.ts.map +0 -1
- package/dist/next/link/errors.js.map +0 -1
- package/dist/next/link/index.d.ts.map +0 -1
- package/dist/next/link/index.js.map +0 -1
- package/dist/next/link/internal.d.ts.map +0 -1
- package/dist/next/link/internal.js.map +0 -1
- package/dist/next/link/ipc.d.ts.map +0 -1
- package/dist/next/link/ipc.js.map +0 -1
- package/dist/next/link/link.d.ts.map +0 -1
- package/dist/next/link/link.js.map +0 -1
- package/dist/next/link/message.d.ts +0 -249
- package/dist/next/link/message.d.ts.map +0 -1
- package/dist/next/link/message.js +0 -123
- package/dist/next/link/message.js.map +0 -1
- package/dist/next/link/part.d.ts +0 -80
- package/dist/next/link/part.d.ts.map +0 -1
- package/dist/next/link/part.js +0 -164
- package/dist/next/link/part.js.map +0 -1
- package/dist/next/link/text.d.ts.map +0 -1
- package/dist/next/link/text.js +0 -335
- package/dist/next/link/text.js.map +0 -1
- package/dist/next/link/values.d.ts.map +0 -1
- package/dist/next/link/values.js +0 -117
- package/dist/next/link/values.js.map +0 -1
- package/dist/next/link/websocket.d.ts.map +0 -1
- package/dist/next/link/websocket.js.map +0 -1
- package/dist/next/registries/contribution.d.ts.map +0 -1
- package/dist/next/registries/contribution.js.map +0 -1
- package/dist/next/registries/entries.d.ts.map +0 -1
- package/dist/next/registries/entries.js.map +0 -1
- package/dist/next/registries/index.d.ts.map +0 -1
- package/dist/next/registries/index.js.map +0 -1
- package/dist/next/registries/internal.d.ts.map +0 -1
- package/dist/next/registries/internal.js.map +0 -1
- package/dist/next/registries/record.d.ts +0 -94
- package/dist/next/registries/record.d.ts.map +0 -1
- package/dist/next/registries/record.js +0 -253
- package/dist/next/registries/record.js.map +0 -1
- package/dist/next/registries/registry.d.ts +0 -74
- package/dist/next/registries/registry.d.ts.map +0 -1
- package/dist/next/registries/registry.js.map +0 -1
- package/dist/next/registries/value.d.ts.map +0 -1
- package/dist/next/registries/value.js +0 -199
- package/dist/next/registries/value.js.map +0 -1
- package/dist/next/remote/calls.d.ts.map +0 -1
- package/dist/next/remote/calls.js.map +0 -1
- package/dist/next/remote/consumer.d.ts +0 -42
- package/dist/next/remote/consumer.d.ts.map +0 -1
- package/dist/next/remote/consumer.js +0 -343
- package/dist/next/remote/consumer.js.map +0 -1
- package/dist/next/remote/hold.d.ts +0 -130
- package/dist/next/remote/hold.d.ts.map +0 -1
- package/dist/next/remote/hold.js +0 -537
- package/dist/next/remote/hold.js.map +0 -1
- package/dist/next/remote/host-link.d.ts +0 -77
- package/dist/next/remote/host-link.d.ts.map +0 -1
- package/dist/next/remote/host-link.js +0 -182
- package/dist/next/remote/host-link.js.map +0 -1
- package/dist/next/remote/internal.d.ts.map +0 -1
- package/dist/next/remote/internal.js.map +0 -1
- package/dist/next/remote/path.d.ts.map +0 -1
- package/dist/next/remote/path.js.map +0 -1
- package/dist/next/remote/provider.d.ts +0 -76
- package/dist/next/remote/provider.d.ts.map +0 -1
- package/dist/next/remote/provider.js +0 -506
- package/dist/next/remote/provider.js.map +0 -1
- package/dist/next/remote/relay.d.ts +0 -58
- package/dist/next/remote/relay.d.ts.map +0 -1
- package/dist/next/remote/relay.js +0 -117
- package/dist/next/remote/relay.js.map +0 -1
- package/dist/next/remote/remote-object.d.ts +0 -133
- package/dist/next/remote/remote-object.d.ts.map +0 -1
- package/dist/next/remote/remote-object.js +0 -411
- package/dist/next/remote/remote-object.js.map +0 -1
- package/dist/next/remote/replica.d.ts +0 -59
- package/dist/next/remote/replica.d.ts.map +0 -1
- package/dist/next/remote/replica.js +0 -125
- package/dist/next/remote/replica.js.map +0 -1
- package/dist/next/state/batch.d.ts +0 -64
- package/dist/next/state/batch.d.ts.map +0 -1
- package/dist/next/state/batch.js +0 -163
- package/dist/next/state/batch.js.map +0 -1
- package/dist/next/state/derive.d.ts +0 -52
- package/dist/next/state/derive.d.ts.map +0 -1
- package/dist/next/state/derive.js +0 -182
- package/dist/next/state/derive.js.map +0 -1
- package/dist/next/state/index.d.ts +0 -6
- package/dist/next/state/index.d.ts.map +0 -1
- package/dist/next/state/index.js.map +0 -1
- package/dist/next/state/internal.d.ts.map +0 -1
- package/dist/next/state/internal.js.map +0 -1
- package/dist/next/state/native-source.d.ts +0 -106
- package/dist/next/state/native-source.d.ts.map +0 -1
- package/dist/next/state/native-source.js +0 -240
- package/dist/next/state/native-source.js.map +0 -1
- package/dist/next/state/watchable.d.ts +0 -114
- package/dist/next/state/watchable.d.ts.map +0 -1
- package/dist/next/state/watchable.js +0 -156
- package/dist/next/state/watchable.js.map +0 -1
- package/dist/next/state/writable.d.ts +0 -32
- package/dist/next/state/writable.d.ts.map +0 -1
- package/dist/next/state/writable.js.map +0 -1
- package/dist/next/store/adapter.d.ts +0 -67
- package/dist/next/store/adapter.d.ts.map +0 -1
- package/dist/next/store/adapter.js.map +0 -1
- package/dist/next/store/allocator.d.ts.map +0 -1
- package/dist/next/store/allocator.js.map +0 -1
- package/dist/next/store/applier.d.ts.map +0 -1
- package/dist/next/store/applier.js.map +0 -1
- package/dist/next/store/apply-batch.d.ts +0 -12
- package/dist/next/store/apply-batch.d.ts.map +0 -1
- package/dist/next/store/apply-batch.js.map +0 -1
- package/dist/next/store/archive.d.ts +0 -32
- package/dist/next/store/archive.d.ts.map +0 -1
- package/dist/next/store/archive.js +0 -129
- package/dist/next/store/archive.js.map +0 -1
- package/dist/next/store/backend.d.ts +0 -10
- package/dist/next/store/backend.d.ts.map +0 -1
- package/dist/next/store/backend.js.map +0 -1
- package/dist/next/store/catalog.d.ts +0 -24
- package/dist/next/store/catalog.d.ts.map +0 -1
- package/dist/next/store/catalog.js.map +0 -1
- package/dist/next/store/claims.d.ts.map +0 -1
- package/dist/next/store/claims.js.map +0 -1
- package/dist/next/store/columns.d.ts.map +0 -1
- package/dist/next/store/columns.js.map +0 -1
- package/dist/next/store/engine.d.ts +0 -176
- package/dist/next/store/engine.d.ts.map +0 -1
- package/dist/next/store/engine.js +0 -283
- package/dist/next/store/engine.js.map +0 -1
- package/dist/next/store/evaluate.d.ts +0 -17
- package/dist/next/store/evaluate.d.ts.map +0 -1
- package/dist/next/store/evaluate.js.map +0 -1
- package/dist/next/store/export.d.ts +0 -17
- package/dist/next/store/export.d.ts.map +0 -1
- package/dist/next/store/export.js +0 -200
- package/dist/next/store/export.js.map +0 -1
- package/dist/next/store/expression.d.ts +0 -150
- package/dist/next/store/expression.d.ts.map +0 -1
- package/dist/next/store/expression.js.map +0 -1
- package/dist/next/store/import.d.ts +0 -10
- package/dist/next/store/import.d.ts.map +0 -1
- package/dist/next/store/import.js +0 -276
- package/dist/next/store/import.js.map +0 -1
- package/dist/next/store/index.d.ts.map +0 -1
- package/dist/next/store/index.js.map +0 -1
- package/dist/next/store/json-column.d.ts +0 -33
- package/dist/next/store/json-column.d.ts.map +0 -1
- package/dist/next/store/json-column.js +0 -61
- package/dist/next/store/json-column.js.map +0 -1
- package/dist/next/store/jsonl.d.ts.map +0 -1
- package/dist/next/store/jsonl.js.map +0 -1
- package/dist/next/store/outbox.d.ts +0 -26
- package/dist/next/store/outbox.d.ts.map +0 -1
- package/dist/next/store/outbox.js.map +0 -1
- package/dist/next/store/query.d.ts +0 -39
- package/dist/next/store/query.d.ts.map +0 -1
- package/dist/next/store/query.js.map +0 -1
- package/dist/next/store/refusal.d.ts.map +0 -1
- package/dist/next/store/refusal.js.map +0 -1
- package/dist/next/store/rows.d.ts +0 -80
- package/dist/next/store/rows.d.ts.map +0 -1
- package/dist/next/store/rows.js.map +0 -1
- package/dist/next/store/schema.d.ts +0 -25
- package/dist/next/store/schema.d.ts.map +0 -1
- package/dist/next/store/schema.js +0 -115
- package/dist/next/store/schema.js.map +0 -1
- package/dist/next/store/sql.d.ts +0 -73
- package/dist/next/store/sql.d.ts.map +0 -1
- package/dist/next/store/sql.js.map +0 -1
- package/dist/next/store/step.d.ts +0 -48
- package/dist/next/store/step.d.ts.map +0 -1
- package/dist/next/store/step.js +0 -50
- package/dist/next/store/step.js.map +0 -1
- package/dist/next/store/store.d.ts +0 -161
- package/dist/next/store/store.d.ts.map +0 -1
- package/dist/next/store/store.js +0 -627
- package/dist/next/store/store.js.map +0 -1
- package/dist/next/store/table-changes.d.ts +0 -29
- package/dist/next/store/table-changes.d.ts.map +0 -1
- package/dist/next/store/table-changes.js.map +0 -1
- package/dist/next/store/table-evolve.d.ts.map +0 -1
- package/dist/next/store/table-evolve.js.map +0 -1
- package/dist/next/store/table-handle.d.ts +0 -67
- package/dist/next/store/table-handle.d.ts.map +0 -1
- package/dist/next/store/table-handle.js +0 -101
- package/dist/next/store/table-handle.js.map +0 -1
- package/dist/next/store/table-history.d.ts.map +0 -1
- package/dist/next/store/table-history.js.map +0 -1
- package/dist/next/store/table-migration.d.ts +0 -16
- package/dist/next/store/table-migration.d.ts.map +0 -1
- package/dist/next/store/table-migration.js +0 -202
- package/dist/next/store/table-migration.js.map +0 -1
- package/dist/next/store/table-writes.d.ts.map +0 -1
- package/dist/next/store/table-writes.js +0 -165
- package/dist/next/store/table-writes.js.map +0 -1
- package/dist/next/store/table.d.ts +0 -80
- package/dist/next/store/table.d.ts.map +0 -1
- package/dist/next/store/table.js.map +0 -1
- package/dist/next/store/text.d.ts.map +0 -1
- package/dist/next/store/text.js.map +0 -1
- package/dist/next/store/writes.d.ts.map +0 -1
- package/dist/next/store/writes.js.map +0 -1
- package/dist/next-node/compression.d.ts +0 -7
- package/dist/next-node/compression.d.ts.map +0 -1
- package/dist/next-node/compression.js +0 -24
- package/dist/next-node/compression.js.map +0 -1
- package/dist/next-node/http/admission.d.ts.map +0 -1
- package/dist/next-node/http/admission.js.map +0 -1
- package/dist/next-node/http/authenticate.d.ts +0 -21
- package/dist/next-node/http/authenticate.d.ts.map +0 -1
- package/dist/next-node/http/authenticate.js +0 -34
- package/dist/next-node/http/authenticate.js.map +0 -1
- package/dist/next-node/http/cookies.d.ts +0 -24
- package/dist/next-node/http/cookies.d.ts.map +0 -1
- package/dist/next-node/http/cookies.js +0 -62
- package/dist/next-node/http/cookies.js.map +0 -1
- package/dist/next-node/http/file.d.ts.map +0 -1
- package/dist/next-node/http/file.js.map +0 -1
- package/dist/next-node/http/headers.d.ts.map +0 -1
- package/dist/next-node/http/headers.js +0 -129
- package/dist/next-node/http/headers.js.map +0 -1
- package/dist/next-node/http/http.d.ts +0 -100
- package/dist/next-node/http/http.d.ts.map +0 -1
- package/dist/next-node/http/http.js +0 -462
- package/dist/next-node/http/http.js.map +0 -1
- package/dist/next-node/http/incoming.d.ts.map +0 -1
- package/dist/next-node/http/incoming.js.map +0 -1
- package/dist/next-node/http/index.d.ts +0 -11
- package/dist/next-node/http/index.d.ts.map +0 -1
- package/dist/next-node/http/index.js +0 -12
- package/dist/next-node/http/index.js.map +0 -1
- package/dist/next-node/http/node.d.ts.map +0 -1
- package/dist/next-node/http/node.js.map +0 -1
- package/dist/next-node/http/request.d.ts +0 -54
- package/dist/next-node/http/request.d.ts.map +0 -1
- package/dist/next-node/http/request.js +0 -116
- package/dist/next-node/http/request.js.map +0 -1
- package/dist/next-node/http/response.d.ts +0 -63
- package/dist/next-node/http/response.d.ts.map +0 -1
- package/dist/next-node/http/response.js.map +0 -1
- package/dist/next-node/http/router.d.ts +0 -114
- package/dist/next-node/http/router.d.ts.map +0 -1
- package/dist/next-node/http/router.js +0 -261
- package/dist/next-node/http/router.js.map +0 -1
- package/dist/next-node/http/upgrades.d.ts +0 -58
- package/dist/next-node/http/upgrades.d.ts.map +0 -1
- package/dist/next-node/http/upgrades.js +0 -184
- package/dist/next-node/http/upgrades.js.map +0 -1
- package/dist/next-node/plugins/build.d.ts +0 -57
- package/dist/next-node/plugins/build.d.ts.map +0 -1
- package/dist/next-node/plugins/build.js +0 -334
- package/dist/next-node/plugins/build.js.map +0 -1
- package/dist/next-node/plugins/discover.d.ts +0 -36
- package/dist/next-node/plugins/discover.d.ts.map +0 -1
- package/dist/next-node/plugins/discover.js +0 -91
- package/dist/next-node/plugins/discover.js.map +0 -1
- package/dist/next-node/plugins/evaluate.d.ts +0 -33
- package/dist/next-node/plugins/evaluate.d.ts.map +0 -1
- package/dist/next-node/plugins/evaluate.js +0 -98
- package/dist/next-node/plugins/evaluate.js.map +0 -1
- package/dist/next-node/plugins/index.d.ts +0 -9
- package/dist/next-node/plugins/index.d.ts.map +0 -1
- package/dist/next-node/plugins/index.js +0 -11
- package/dist/next-node/plugins/index.js.map +0 -1
- package/dist/next-node/plugins/install.d.ts +0 -13
- package/dist/next-node/plugins/install.d.ts.map +0 -1
- package/dist/next-node/plugins/install.js +0 -37
- package/dist/next-node/plugins/install.js.map +0 -1
- package/dist/next-node/plugins/plugins.d.ts +0 -135
- package/dist/next-node/plugins/plugins.d.ts.map +0 -1
- package/dist/next-node/plugins/plugins.js +0 -206
- package/dist/next-node/plugins/plugins.js.map +0 -1
- package/dist/next-node/plugins/runtime.d.ts +0 -41
- package/dist/next-node/plugins/runtime.d.ts.map +0 -1
- package/dist/next-node/plugins/runtime.js +0 -136
- package/dist/next-node/plugins/runtime.js.map +0 -1
- package/dist/next-node/plugins/stack.d.ts.map +0 -1
- package/dist/next-node/plugins/stack.js.map +0 -1
- package/dist/next-node/plugins/watcher.d.ts +0 -58
- package/dist/next-node/plugins/watcher.d.ts.map +0 -1
- package/dist/next-node/plugins/watcher.js +0 -281
- package/dist/next-node/plugins/watcher.js.map +0 -1
- package/dist/next-node/workers/control.d.ts +0 -83
- package/dist/next-node/workers/control.d.ts.map +0 -1
- package/dist/next-node/workers/control.js +0 -77
- package/dist/next-node/workers/control.js.map +0 -1
- package/dist/next-node/workers/index.d.ts +0 -5
- package/dist/next-node/workers/index.d.ts.map +0 -1
- package/dist/next-node/workers/index.js +0 -7
- package/dist/next-node/workers/index.js.map +0 -1
- package/dist/next-node/workers/lock.d.ts +0 -21
- package/dist/next-node/workers/lock.d.ts.map +0 -1
- package/dist/next-node/workers/lock.js +0 -137
- package/dist/next-node/workers/lock.js.map +0 -1
- package/dist/next-node/workers/main.d.ts +0 -46
- package/dist/next-node/workers/main.d.ts.map +0 -1
- package/dist/next-node/workers/main.js +0 -230
- package/dist/next-node/workers/main.js.map +0 -1
- package/dist/next-node/workers/process.d.ts +0 -42
- package/dist/next-node/workers/process.d.ts.map +0 -1
- package/dist/next-node/workers/process.js +0 -125
- package/dist/next-node/workers/process.js.map +0 -1
- package/dist/next-node/workers/workers.d.ts +0 -80
- package/dist/next-node/workers/workers.d.ts.map +0 -1
- package/dist/next-node/workers/workers.js +0 -572
- package/dist/next-node/workers/workers.js.map +0 -1
- package/dist/node.d.ts +0 -4
- package/dist/node.d.ts.map +0 -1
- package/dist/node.js +0 -4
- package/dist/node.js.map +0 -1
- package/dist/object.d.ts +0 -438
- package/dist/object.d.ts.map +0 -1
- package/dist/object.js +0 -1570
- package/dist/object.js.map +0 -1
- package/dist/publish.d.ts +0 -5
- package/dist/publish.d.ts.map +0 -1
- package/dist/publish.js +0 -40
- package/dist/publish.js.map +0 -1
- package/dist/registry.d.ts +0 -25
- package/dist/registry.d.ts.map +0 -1
- package/dist/registry.js +0 -6
- package/dist/registry.js.map +0 -1
- package/dist/reload.d.ts +0 -126
- package/dist/reload.d.ts.map +0 -1
- package/dist/reload.js +0 -653
- package/dist/reload.js.map +0 -1
- package/dist/remote.d.ts +0 -165
- package/dist/remote.d.ts.map +0 -1
- package/dist/remote.js +0 -612
- package/dist/remote.js.map +0 -1
- package/dist/schema.d.ts +0 -25
- package/dist/schema.d.ts.map +0 -1
- package/dist/schema.js +0 -403
- package/dist/schema.js.map +0 -1
- package/dist/state.d.ts +0 -92
- package/dist/state.d.ts.map +0 -1
- package/dist/state.js +0 -287
- package/dist/state.js.map +0 -1
- package/dist/types.d.ts +0 -88
- package/dist/types.d.ts.map +0 -1
- package/dist/types.js +0 -2
- package/dist/types.js.map +0 -1
- package/dist/websocket.d.ts +0 -15
- package/dist/websocket.d.ts.map +0 -1
- package/dist/websocket.js +0 -16
- package/dist/websocket.js.map +0 -1
- package/dist/wire.d.ts +0 -197
- package/dist/wire.d.ts.map +0 -1
- package/dist/wire.js +0 -166
- package/dist/wire.js.map +0 -1
- package/docs/guide.md +0 -814
- package/docs/next/benchmarks.md +0 -959
- package/docs/next/decisions.md +0 -2957
- package/docs/next/dependencies/book.md +0 -1671
- package/docs/next/dependencies/index.html +0 -2641
- package/docs/next/design.md +0 -2554
- package/docs/next/durable-observers/book.md +0 -432
- package/docs/next/durable-observers/index.html +0 -517
- package/docs/next/guide-plugins-hosts/book.md +0 -607
- package/docs/next/guide-plugins-hosts/index.html +0 -652
- package/docs/next/http-workers/book.md +0 -378
- package/docs/next/http-workers/index.html +0 -515
- package/docs/next/layer-1.md +0 -311
- package/docs/next/layer-2.md +0 -216
- package/docs/next/plugin-model/book.md +0 -186
- package/docs/next/plugin-model/index.html +0 -310
- package/docs/next/plugin-primer/book.md +0 -273
- package/docs/next/plugin-primer/index.html +0 -430
- package/docs/next/slice-1.md +0 -236
- package/docs/next/slice-10.md +0 -285
- package/docs/next/slice-11.md +0 -93
- package/docs/next/slice-2.md +0 -174
- package/docs/next/slice-3a.md +0 -296
- package/docs/next/slice-3b.md +0 -197
- package/docs/next/slice-4a.md +0 -418
- package/docs/next/slice-4b.md +0 -208
- package/docs/next/slice-6a.md +0 -676
- package/docs/next/slice-6b.md +0 -332
- package/docs/next/slice-7b/book.md +0 -608
- package/docs/next/slice-7b/index.html +0 -842
- package/docs/next/slice-7b.md +0 -255
- package/docs/next/slice-7c.md +0 -165
- package/docs/next/slices.md +0 -230
- package/docs/next/store/book.md +0 -665
- package/docs/next/store/index.html +0 -861
- package/docs/next/store/walkthrough.md +0 -193
- package/docs/spec.md +0 -288
- package/docs/tutorial.md +0 -932
- /package/dist/{next/contracts → contracts}/accepts.js +0 -0
- /package/dist/{next/contracts → contracts}/contract.js +0 -0
- /package/dist/{next/contracts → contracts}/declare.d.ts +0 -0
- /package/dist/{next/contracts → contracts}/declare.js +0 -0
- /package/dist/{next/contracts → contracts}/evolve.d.ts +0 -0
- /package/dist/{next/contracts → contracts}/evolve.js +0 -0
- /package/dist/{next/contracts → contracts}/fingerprint.js +0 -0
- /package/dist/{next/contracts → contracts}/history.d.ts +0 -0
- /package/dist/{next/contracts → contracts}/history.js +0 -0
- /package/dist/{next/contracts → contracts}/host-kind.d.ts +0 -0
- /package/dist/{next/contracts → contracts}/host-kind.js +0 -0
- /package/dist/{next/contracts → contracts}/index.d.ts +0 -0
- /package/dist/{next/contracts → contracts}/index.js +0 -0
- /package/dist/{next/contracts → contracts}/internal.d.ts +0 -0
- /package/dist/{next/contracts → contracts}/internal.js +0 -0
- /package/dist/{next/contracts → contracts}/names.d.ts +0 -0
- /package/dist/{next/contracts → contracts}/names.js +0 -0
- /package/dist/{next/contracts → contracts}/params.js +0 -0
- /package/dist/{next/contracts → contracts}/schema.d.ts +0 -0
- /package/dist/{next/contracts → contracts}/schema.js +0 -0
- /package/dist/{next/data → data}/args.js +0 -0
- /package/dist/{next/data → data}/failure.d.ts +0 -0
- /package/dist/{next/data → data}/params.js +0 -0
- /package/dist/{next/documents → documents}/address-source.js +0 -0
- /package/dist/{next/documents → documents}/fence.d.ts +0 -0
- /package/dist/{next/documents → documents}/fence.js +0 -0
- /package/dist/{next/documents → documents}/handles.js +0 -0
- /package/dist/{next/documents → documents}/index.d.ts +0 -0
- /package/dist/{next/documents → documents}/index.js +0 -0
- /package/dist/{next/documents → documents}/internal.js +0 -0
- /package/dist/{next/documents → documents}/line.d.ts +0 -0
- /package/dist/{next/documents → documents}/line.js +0 -0
- /package/dist/{next/documents → documents}/residency.js +0 -0
- /package/dist/{next/host → host}/adapted.js +0 -0
- /package/dist/{next/host → host}/backoff.d.ts +0 -0
- /package/dist/{next/host → host}/backoff.js +0 -0
- /package/dist/{next/host → host}/deadline.d.ts +0 -0
- /package/dist/{next/host → host}/deadline.js +0 -0
- /package/dist/{next/host → host}/dependencies.d.ts +0 -0
- /package/dist/{next/host → host}/dependencies.js +0 -0
- /package/dist/{next/host → host}/destination.js +0 -0
- /package/dist/{next/host → host}/facet.js +0 -0
- /package/dist/{next/host → host}/follow.js +0 -0
- /package/dist/{next/host → host}/index.js +0 -0
- /package/dist/{next/host → host}/members.js +0 -0
- /package/dist/{next/host → host}/parked.js +0 -0
- /package/dist/{next/host → host}/presence.js +0 -0
- /package/dist/{next/host → host}/retry-on.d.ts +0 -0
- /package/dist/{next/host → host}/retry-on.js +0 -0
- /package/dist/{next/host → host}/revocation.js +0 -0
- /package/dist/{next/host → host}/sleep.js +0 -0
- /package/dist/{next/host → host}/uuid.d.ts +0 -0
- /package/dist/{next/host → host}/uuid.js +0 -0
- /package/dist/{next/jobs → jobs}/definition.d.ts +0 -0
- /package/dist/{next/jobs → jobs}/definition.js +0 -0
- /package/dist/{next/jobs → jobs}/index.d.ts +0 -0
- /package/dist/{next/jobs → jobs}/index.js +0 -0
- /package/dist/{next/jobs → jobs}/internal.d.ts +0 -0
- /package/dist/{next/jobs → jobs}/internal.js +0 -0
- /package/dist/{next/jobs → jobs}/persisted.js +0 -0
- /package/dist/{next/jobs → jobs}/running.js +0 -0
- /package/dist/{next/jobs → jobs}/stored.js +0 -0
- /package/dist/{next/link → link}/binary.d.ts +0 -0
- /package/dist/{next/link → link}/errors.d.ts +0 -0
- /package/dist/{next/link → link}/errors.js +0 -0
- /package/dist/{next/link → link}/index.d.ts +0 -0
- /package/dist/{next/link → link}/index.js +0 -0
- /package/dist/{next/link → link}/internal.d.ts +0 -0
- /package/dist/{next/link → link}/internal.js +0 -0
- /package/dist/{next/link → link}/ipc.d.ts +0 -0
- /package/dist/{next/link → link}/ipc.js +0 -0
- /package/dist/{next/link → link}/link.d.ts +0 -0
- /package/dist/{next/link → link}/link.js +0 -0
- /package/dist/{next/link → link}/text.d.ts +0 -0
- /package/dist/{next/link → link}/values.d.ts +0 -0
- /package/dist/{next/link → link}/websocket.d.ts +0 -0
- /package/dist/{next/link → link}/websocket.js +0 -0
- /package/dist/{next-node → node}/http/admission.d.ts +0 -0
- /package/dist/{next-node → node}/http/admission.js +0 -0
- /package/dist/{next-node → node}/http/file.d.ts +0 -0
- /package/dist/{next-node → node}/http/file.js +0 -0
- /package/dist/{next-node → node}/http/headers.d.ts +0 -0
- /package/dist/{next-node → node}/http/incoming.d.ts +0 -0
- /package/dist/{next-node → node}/http/incoming.js +0 -0
- /package/dist/{next-node → node}/http/node.d.ts +0 -0
- /package/dist/{next-node → node}/http/node.js +0 -0
- /package/dist/{next-node → node}/http/response.js +0 -0
- /package/dist/{next-node → node}/plugins/stack.d.ts +0 -0
- /package/dist/{next-node → node}/plugins/stack.js +0 -0
- /package/dist/{next/registries → registries}/contribution.d.ts +0 -0
- /package/dist/{next/registries → registries}/contribution.js +0 -0
- /package/dist/{next/registries → registries}/entries.d.ts +0 -0
- /package/dist/{next/registries → registries}/entries.js +0 -0
- /package/dist/{next/registries → registries}/index.d.ts +0 -0
- /package/dist/{next/registries → registries}/index.js +0 -0
- /package/dist/{next/registries → registries}/internal.d.ts +0 -0
- /package/dist/{next/registries → registries}/internal.js +0 -0
- /package/dist/{next/registries → registries}/registry.js +0 -0
- /package/dist/{next/registries → registries}/value.d.ts +0 -0
- /package/dist/{next/remote → remote}/calls.d.ts +0 -0
- /package/dist/{next/remote → remote}/calls.js +0 -0
- /package/dist/{next/remote → remote}/internal.d.ts +0 -0
- /package/dist/{next/remote → remote}/internal.js +0 -0
- /package/dist/{next/remote → remote}/path.d.ts +0 -0
- /package/dist/{next/remote → remote}/path.js +0 -0
- /package/dist/{next/state → state}/index.js +0 -0
- /package/dist/{next/state → state}/internal.d.ts +0 -0
- /package/dist/{next/state → state}/internal.js +0 -0
- /package/dist/{next/state → state}/writable.js +0 -0
- /package/dist/{next/store → store}/adapter.js +0 -0
- /package/dist/{next/store → store}/allocator.d.ts +0 -0
- /package/dist/{next/store → store}/allocator.js +0 -0
- /package/dist/{next/store → store}/applier.d.ts +0 -0
- /package/dist/{next/store → store}/applier.js +0 -0
- /package/dist/{next/store → store}/apply-batch.js +0 -0
- /package/dist/{next/store → store}/backend.js +0 -0
- /package/dist/{next/store → store}/catalog.js +0 -0
- /package/dist/{next/store → store}/claims.d.ts +0 -0
- /package/dist/{next/store → store}/claims.js +0 -0
- /package/dist/{next/store → store}/columns.d.ts +0 -0
- /package/dist/{next/store → store}/columns.js +0 -0
- /package/dist/{next/store → store}/evaluate.js +0 -0
- /package/dist/{next/store → store}/expression.js +0 -0
- /package/dist/{next/store → store}/index.d.ts +0 -0
- /package/dist/{next/store → store}/index.js +0 -0
- /package/dist/{next/store → store}/jsonl.d.ts +0 -0
- /package/dist/{next/store → store}/jsonl.js +0 -0
- /package/dist/{next/store → store}/outbox.js +0 -0
- /package/dist/{next/store → store}/query.js +0 -0
- /package/dist/{next/store → store}/refusal.d.ts +0 -0
- /package/dist/{next/store → store}/refusal.js +0 -0
- /package/dist/{next/store → store}/rows.js +0 -0
- /package/dist/{next/store → store}/sql.js +0 -0
- /package/dist/{next/store → store}/table-changes.js +0 -0
- /package/dist/{next/store → store}/table-evolve.d.ts +0 -0
- /package/dist/{next/store → store}/table-evolve.js +0 -0
- /package/dist/{next/store → store}/table-history.d.ts +0 -0
- /package/dist/{next/store → store}/table-history.js +0 -0
- /package/dist/{next/store → store}/table-writes.d.ts +0 -0
- /package/dist/{next/store → store}/table.js +0 -0
- /package/dist/{next/store → store}/text.d.ts +0 -0
- /package/dist/{next/store → store}/text.js +0 -0
- /package/dist/{next/store → store}/writes.d.ts +0 -0
- /package/dist/{next/store → store}/writes.js +0 -0
- /package/docs/{next/dependencies → dependencies}/model.md +0 -0
- /package/docs/{next/flow-control → flow-control}/book.md +0 -0
- /package/docs/{next/flow-control → flow-control}/fold/index.html +0 -0
- /package/docs/{next/flow-control → flow-control}/index.html +0 -0
- /package/docs/{next/flow-control → flow-control}/window/index.html +0 -0
- /package/docs/{next/slice-4.md → slice-4.md} +0 -0
- /package/docs/{next/slice-5.md → slice-5.md} +0 -0
- /package/docs/{next/slice-7a.md → slice-7a.md} +0 -0
- /package/docs/{next/slice-8.md → slice-8.md} +0 -0
|
@@ -1,57 +0,0 @@
|
|
|
1
|
-
import type { Context } from "../../context/index.ts";
|
|
2
|
-
import type { Plugin } from "./discover.ts";
|
|
3
|
-
/** What `buildFacet` takes besides the plugin and the kind. */
|
|
4
|
-
export type BuildOptions = {
|
|
5
|
-
/** The host packages' specifiers (`@earendil-works/chord/next`, `react`, `react/jsx-runtime`, `@app/core`): external. */
|
|
6
|
-
readonly hostPackages: readonly string[];
|
|
7
|
-
/** Where the script runs: Node (a server, a worker, a TUI) or a browser (a page). */
|
|
8
|
-
readonly platform: "node" | "browser";
|
|
9
|
-
/** The discovered plugins: a file of one of them may be imported (a copy). */
|
|
10
|
-
readonly plugins?: readonly Plugin[];
|
|
11
|
-
/** Where the app serves a browser build's assets: the URL prefix their imports evaluate to (`/` by default). */
|
|
12
|
-
readonly publicPath?: string;
|
|
13
|
-
};
|
|
14
|
-
/** A file a build read, with the hash of the bytes it handed esbuild (the watcher's inputs). */
|
|
15
|
-
export type BuildInput = {
|
|
16
|
-
readonly file: string;
|
|
17
|
-
readonly hash: string;
|
|
18
|
-
};
|
|
19
|
-
/** A built facet: its script and what it used, or the build's errors. Plain data. */
|
|
20
|
-
export type BuiltFacet = {
|
|
21
|
-
readonly kind: "script";
|
|
22
|
-
readonly plugin: string;
|
|
23
|
-
readonly facet: string;
|
|
24
|
-
/** The wrapped CommonJS script, minified, with an inline source map whose sources are relative to the plugin. */
|
|
25
|
-
readonly source: string;
|
|
26
|
-
/** A hash of `source`: the same on every machine and checkout for the same files. */
|
|
27
|
-
readonly digest: string;
|
|
28
|
-
/** Every plugin file it read (its own and copied ones; not packages), absolute paths, with their hashes. */
|
|
29
|
-
readonly inputs: readonly BuildInput[];
|
|
30
|
-
/** The files of other plugins inlined into it, absolute paths. */
|
|
31
|
-
readonly copied: readonly string[];
|
|
32
|
-
/** A browser build's stylesheet, when it imports CSS. */
|
|
33
|
-
readonly css?: {
|
|
34
|
-
readonly name: string;
|
|
35
|
-
readonly text: string;
|
|
36
|
-
};
|
|
37
|
-
/** A browser build's assets, by content-hashed file name. */
|
|
38
|
-
readonly assets: readonly {
|
|
39
|
-
readonly name: string;
|
|
40
|
-
readonly bytes: Uint8Array;
|
|
41
|
-
}[];
|
|
42
|
-
} | {
|
|
43
|
-
readonly kind: "failed";
|
|
44
|
-
readonly plugin: string;
|
|
45
|
-
readonly facet: string;
|
|
46
|
-
readonly errors: readonly string[];
|
|
47
|
-
};
|
|
48
|
-
/**
|
|
49
|
-
* Builds `plugin`'s facet of `kind` (one esbuild build from cold): a script wrapped as `(function (require, module,
|
|
50
|
-
* exports) { … })`, or the errors that refuse it (an import the rules of §2 do not admit, a syntax error, `import.meta`,
|
|
51
|
-
* `__dirname`, `__filename`, a literal dynamic `import("x")`, a top-level `await`), each naming its file and line. A
|
|
52
|
-
* computed `import(x)` becomes a call of the script's `require`.
|
|
53
|
-
*/
|
|
54
|
-
export declare function buildFacet(plugin: Plugin, kind: string, options: BuildOptions, context: Context): Promise<BuiltFacet>;
|
|
55
|
-
/** Whether `path` lies inside directory `dir` (both absolute). */
|
|
56
|
-
export declare function inside(dir: string, path: string): boolean;
|
|
57
|
-
//# sourceMappingURL=build.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"build.d.ts","sourceRoot":"","sources":["../../../src/next-node/plugins/build.ts"],"names":[],"mappings":"AAWA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,wBAAwB,CAAC;AACtD,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,eAAe,CAAC;AAI5C,+DAA+D;AAC/D,MAAM,MAAM,YAAY,GAAG;IAC1B,yHAAyH;IACzH,QAAQ,CAAC,YAAY,EAAE,SAAS,MAAM,EAAE,CAAC;IACzC,qFAAqF;IACrF,QAAQ,CAAC,QAAQ,EAAE,MAAM,GAAG,SAAS,CAAC;IACtC,8EAA8E;IAC9E,QAAQ,CAAC,OAAO,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;IACrC,gHAAgH;IAChH,QAAQ,CAAC,UAAU,CAAC,EAAE,MAAM,CAAC;CAC7B,CAAC;AAEF,gGAAgG;AAChG,MAAM,MAAM,UAAU,GAAG;IAAE,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IAAC,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAA;CAAE,CAAC;AAE1E,qFAAqF;AACrF,MAAM,MAAM,UAAU,GACnB;IACA,QAAQ,CAAC,IAAI,EAAE,QAAQ,CAAC;IACxB,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,iHAAiH;IACjH,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,qFAAqF;IACrF,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,4GAA4G;IAC5G,QAAQ,CAAC,MAAM,EAAE,SAAS,UAAU,EAAE,CAAC;IACvC,kEAAkE;IAClE,QAAQ,CAAC,MAAM,EAAE,SAAS,MAAM,EAAE,CAAC;IACnC,yDAAyD;IACzD,QAAQ,CAAC,GAAG,CAAC,EAAE;QAAE,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;QAAC,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAA;KAAE,CAAC;IAChE,6DAA6D;IAC7D,QAAQ,CAAC,MAAM,EAAE,SAAS;QAAE,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;QAAC,QAAQ,CAAC,KAAK,EAAE,UAAU,CAAA;KAAE,EAAE,CAAC;CACjF,GACD;IAAE,QAAQ,CAAC,IAAI,EAAE,QAAQ,CAAC;IAAC,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IAAC,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IAAC,QAAQ,CAAC,MAAM,EAAE,SAAS,MAAM,EAAE,CAAA;CAAE,CAAC;AAKpH;;;;;GAKG;AACH,wBAAsB,UAAU,CAC/B,MAAM,EAAE,MAAM,EACd,IAAI,EAAE,MAAM,EACZ,OAAO,EAAE,YAAY,EACrB,OAAO,EAAE,OAAO,GACd,OAAO,CAAC,UAAU,CAAC,CAwErB;AAmPD,kEAAkE;AAClE,wBAAgB,MAAM,CAAC,GAAG,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,OAAO,CAGzD"}
|
|
@@ -1,334 +0,0 @@
|
|
|
1
|
-
// Building (slice 7c §2): one facet of one plugin as one script, by esbuild from cold. Its own files, files of other
|
|
2
|
-
// discovered plugins imported by name (`@app/notes/contract`: copies; decision "Plugins import each other by name") and
|
|
3
|
-
// its npm `dependencies` are inlined; host packages, this component, `chord.external`
|
|
4
|
-
// packages and Node builtins stay external, answered at evaluation by the `require` the script takes. The result is
|
|
5
|
-
// plain data, the same value a worker or a page evaluates where it runs; a failed build is a result, never a throw.
|
|
6
|
-
import { createHash } from "node:crypto";
|
|
7
|
-
import { readFile } from "node:fs/promises";
|
|
8
|
-
import { isBuiltin } from "node:module";
|
|
9
|
-
import { basename, dirname, extname, isAbsolute, join, relative, resolve, sep } from "node:path";
|
|
10
|
-
import { build } from "esbuild";
|
|
11
|
-
import { PLUGINS_SPECIFIER, packageName } from "./evaluate.js";
|
|
12
|
-
import { inlineSourceMap } from "./stack.js";
|
|
13
|
-
/** What a free `__dirname` and `__filename` become in a build: names no script has, found again by `freeGlobals`. */
|
|
14
|
-
const GLOBAL_MARKERS = { __dirname: "__chord_plugin_dirname", __filename: "__chord_plugin_filename" };
|
|
15
|
-
/**
|
|
16
|
-
* Builds `plugin`'s facet of `kind` (one esbuild build from cold): a script wrapped as `(function (require, module,
|
|
17
|
-
* exports) { … })`, or the errors that refuse it (an import the rules of §2 do not admit, a syntax error, `import.meta`,
|
|
18
|
-
* `__dirname`, `__filename`, a literal dynamic `import("x")`, a top-level `await`), each naming its file and line. A
|
|
19
|
-
* computed `import(x)` becomes a call of the script's `require`.
|
|
20
|
-
*/
|
|
21
|
-
export async function buildFacet(plugin, kind, options, context) {
|
|
22
|
-
const failed = (errors) => ({
|
|
23
|
-
kind: "failed",
|
|
24
|
-
plugin: plugin.name,
|
|
25
|
-
facet: kind,
|
|
26
|
-
errors,
|
|
27
|
-
});
|
|
28
|
-
const entry = plugin.facets[kind];
|
|
29
|
-
if (entry === undefined)
|
|
30
|
-
return failed([`plugin "${plugin.name}" has no ${kind} facet`]);
|
|
31
|
-
context.abortSignal?.throwIfAborted();
|
|
32
|
-
const rules = new ImportRules(plugin, options);
|
|
33
|
-
const browser = options.platform === "browser";
|
|
34
|
-
let result;
|
|
35
|
-
try {
|
|
36
|
-
result = await build({
|
|
37
|
-
entryPoints: [entry],
|
|
38
|
-
absWorkingDir: plugin.dir,
|
|
39
|
-
// Nothing is written: the directory only makes the source map's paths relative to the plugin.
|
|
40
|
-
outdir: plugin.dir,
|
|
41
|
-
entryNames: "[name]-[hash]",
|
|
42
|
-
assetNames: "[name]-[hash]",
|
|
43
|
-
publicPath: options.publicPath ?? "/",
|
|
44
|
-
write: false,
|
|
45
|
-
bundle: true,
|
|
46
|
-
format: "cjs",
|
|
47
|
-
platform: options.platform,
|
|
48
|
-
target: browser ? "es2022" : "node22",
|
|
49
|
-
minify: true,
|
|
50
|
-
legalComments: "none",
|
|
51
|
-
sourcemap: "inline",
|
|
52
|
-
// Positions only: a stack is mapped to files and lines, never shown their text.
|
|
53
|
-
sourcesContent: false,
|
|
54
|
-
// Ignore any tsconfig.json: TypeScript is stripped, JSX compiled with the automatic React runtime.
|
|
55
|
-
tsconfigRaw: "{}",
|
|
56
|
-
jsx: "automatic",
|
|
57
|
-
banner: { js: "(function (require, module, exports) {" },
|
|
58
|
-
footer: { js: "})" },
|
|
59
|
-
// `import.meta` is refused here; a free `__dirname` or `__filename` becomes a marker found in the output below
|
|
60
|
-
// (esbuild reports no `import.meta` it substituted itself).
|
|
61
|
-
define: GLOBAL_MARKERS,
|
|
62
|
-
logOverride: { "empty-import-meta": "error" },
|
|
63
|
-
// A computed `import(x)` (a literal one is refused below) goes through the facet's `require`, which names the
|
|
64
|
-
// facet when it does not answer; `vm.Script` has no loader for a real one.
|
|
65
|
-
supported: { "dynamic-import": false },
|
|
66
|
-
logLevel: "silent",
|
|
67
|
-
plugins: [rules.plugin],
|
|
68
|
-
});
|
|
69
|
-
}
|
|
70
|
-
catch (error) {
|
|
71
|
-
return failed((error.errors ?? [{ text: String(error) }]).map((each) => describe(plugin, each)));
|
|
72
|
-
}
|
|
73
|
-
// Never written: esbuild hands the outputs back.
|
|
74
|
-
const files = result.outputFiles;
|
|
75
|
-
const script = files.find((file) => file.path.endsWith(".js"));
|
|
76
|
-
const css = files.find((file) => file.path.endsWith(".css"));
|
|
77
|
-
const source = script.text;
|
|
78
|
-
const globals = freeGlobals(source);
|
|
79
|
-
if (globals.length > 0)
|
|
80
|
-
return failed(globals);
|
|
81
|
-
return {
|
|
82
|
-
kind: "script",
|
|
83
|
-
plugin: plugin.name,
|
|
84
|
-
facet: kind,
|
|
85
|
-
source,
|
|
86
|
-
digest: createHash("sha256").update(source).digest("hex"),
|
|
87
|
-
inputs: rules.inputs(),
|
|
88
|
-
copied: rules.copied(),
|
|
89
|
-
...(css === undefined ? {} : { css: { name: basename(css.path), text: css.text } }),
|
|
90
|
-
assets: files
|
|
91
|
-
.filter((file) => file !== script && file !== css)
|
|
92
|
-
.map((file) => ({ name: relative(plugin.dir, file.path), bytes: file.contents })),
|
|
93
|
-
};
|
|
94
|
-
}
|
|
95
|
-
/** Where a build error points for what a plugin script cannot have. */
|
|
96
|
-
const PLUGIN_FILE_HINT = `a file of the plugin is read through pluginFile(path) from "${PLUGINS_SPECIFIER}"`;
|
|
97
|
-
/** The error of a script using `import.meta`, `__dirname` or `__filename`. */
|
|
98
|
-
const NO_MODULE_IDENTITY = `import.meta.url, __dirname and __filename are not available in a plugin script (${PLUGIN_FILE_HINT})`;
|
|
99
|
-
/**
|
|
100
|
-
* The errors for every free `__dirname` and `__filename` in the built `source` (their markers), each at its file, line
|
|
101
|
-
* and column through the script's source map.
|
|
102
|
-
*/
|
|
103
|
-
function freeGlobals(source) {
|
|
104
|
-
// Most scripts have none: no map parsed for them.
|
|
105
|
-
if (!source.includes("__chord_plugin_"))
|
|
106
|
-
return [];
|
|
107
|
-
const map = inlineSourceMap(source);
|
|
108
|
-
if (map === undefined)
|
|
109
|
-
return [];
|
|
110
|
-
const errors = [];
|
|
111
|
-
for (const [line, text] of source.split("\n").entries()) {
|
|
112
|
-
for (const match of text.matchAll(/__chord_plugin_(?:dirname|filename)/g)) {
|
|
113
|
-
const entry = map.findEntry(line, match.index);
|
|
114
|
-
if (!("originalSource" in entry))
|
|
115
|
-
continue;
|
|
116
|
-
errors.push(`${entry.originalSource}:${entry.originalLine + 1}:${entry.originalColumn + 1}: ${NO_MODULE_IDENTITY}`);
|
|
117
|
-
}
|
|
118
|
-
}
|
|
119
|
-
return errors;
|
|
120
|
-
}
|
|
121
|
-
/** What only a browser build imports: stylesheets and wasm assets. */
|
|
122
|
-
const BROWSER_ONLY = new Set([".css", ".wasm"]);
|
|
123
|
-
/** Marks esbuild's resolution the rules ask for themselves, so they do not judge it again. */
|
|
124
|
-
const RESOLVING = Symbol("chord.plugins.resolving");
|
|
125
|
-
/** How the source files a build reads are loaded, by extension (packages load as esbuild decides). */
|
|
126
|
-
const LOADERS = {
|
|
127
|
-
".ts": "ts",
|
|
128
|
-
".mts": "ts",
|
|
129
|
-
".cts": "ts",
|
|
130
|
-
".tsx": "tsx",
|
|
131
|
-
".js": "js",
|
|
132
|
-
".mjs": "js",
|
|
133
|
-
".cjs": "js",
|
|
134
|
-
".jsx": "jsx",
|
|
135
|
-
".json": "json",
|
|
136
|
-
".css": "css",
|
|
137
|
-
".wasm": "file",
|
|
138
|
-
};
|
|
139
|
-
/** What an asset import's resolution carries to its load (the `file` loader whatever its extension). */
|
|
140
|
-
const ASSET = Symbol("chord.plugins.asset");
|
|
141
|
-
/**
|
|
142
|
-
* The import rules of one build (§2's table) as an esbuild plugin, and what the build read: every file of a plugin
|
|
143
|
-
* hashed as it is handed to esbuild (the exact bytes built, not a later read racing a save), and the copied files.
|
|
144
|
-
*/
|
|
145
|
-
class ImportRules {
|
|
146
|
-
plugin;
|
|
147
|
-
#own;
|
|
148
|
-
#others;
|
|
149
|
-
#options;
|
|
150
|
-
#hostPackages;
|
|
151
|
-
#inputs = new Map();
|
|
152
|
-
#copied = new Set();
|
|
153
|
-
constructor(own, options) {
|
|
154
|
-
this.#own = own;
|
|
155
|
-
this.#others = (options.plugins ?? []).filter((each) => each.dir !== own.dir);
|
|
156
|
-
this.#options = options;
|
|
157
|
-
this.#hostPackages = new Set(options.hostPackages);
|
|
158
|
-
this.plugin = {
|
|
159
|
-
name: "chord-plugin-imports",
|
|
160
|
-
setup: (builder) => {
|
|
161
|
-
builder.onResolve({ filter: /.*/ }, async (args) => {
|
|
162
|
-
// The plugin's files are resolved here, the entry too: esbuild then gives them no Node module type
|
|
163
|
-
// (`"type": "module"`), whose interop would read a whole host package for a default import instead
|
|
164
|
-
// of honouring the `__esModule` an ESM namespace is wrapped with (§3).
|
|
165
|
-
if (args.kind === "entry-point")
|
|
166
|
-
return { path: resolve(own.dir, args.path) };
|
|
167
|
-
if (args.pluginData === RESOLVING)
|
|
168
|
-
return undefined;
|
|
169
|
-
const resolved = await this.#resolve(args.path, args.importer, args.kind);
|
|
170
|
-
if (resolved.kind === "error")
|
|
171
|
-
return { errors: [{ text: resolved.text }] };
|
|
172
|
-
if (resolved.kind === "external")
|
|
173
|
-
return { path: args.path, external: true };
|
|
174
|
-
if (resolved.kind === "default")
|
|
175
|
-
return undefined;
|
|
176
|
-
const found = await builder.resolve(resolved.path, {
|
|
177
|
-
kind: args.kind,
|
|
178
|
-
importer: args.importer,
|
|
179
|
-
resolveDir: args.resolveDir,
|
|
180
|
-
pluginData: RESOLVING,
|
|
181
|
-
});
|
|
182
|
-
if (found.errors.length > 0)
|
|
183
|
-
return { errors: found.errors };
|
|
184
|
-
if (options.platform === "node" && BROWSER_ONLY.has(extname(found.path))) {
|
|
185
|
-
return { errors: [{ text: `"${args.path}": stylesheets and assets are for browser builds` }] };
|
|
186
|
-
}
|
|
187
|
-
const checked = this.#checkFile(found.path, args.importer, args.path, resolved.named);
|
|
188
|
-
if (checked !== undefined)
|
|
189
|
-
return { errors: [{ text: checked }] };
|
|
190
|
-
return { path: found.path, pluginData: resolved.asset ? ASSET : undefined };
|
|
191
|
-
});
|
|
192
|
-
builder.onLoad({ filter: /.*/ }, async (args) => {
|
|
193
|
-
if (args.namespace !== "file")
|
|
194
|
-
return undefined;
|
|
195
|
-
const asset = args.pluginData === ASSET;
|
|
196
|
-
const loader = asset ? "file" : LOADERS[extname(args.path)];
|
|
197
|
-
if (loader === undefined || this.#place(args.path).kind === "package")
|
|
198
|
-
return undefined;
|
|
199
|
-
const contents = await readFile(args.path);
|
|
200
|
-
this.#inputs.set(args.path, createHash("sha256").update(contents).digest("hex"));
|
|
201
|
-
return { contents, loader, resolveDir: dirname(args.path) };
|
|
202
|
-
});
|
|
203
|
-
},
|
|
204
|
-
};
|
|
205
|
-
}
|
|
206
|
-
/** Every plugin file read, sorted by path. */
|
|
207
|
-
inputs() {
|
|
208
|
-
return [...this.#inputs].map(([file, hash]) => ({ file, hash })).sort((a, b) => (a.file < b.file ? -1 : 1));
|
|
209
|
-
}
|
|
210
|
-
/** The other plugins' files inlined, sorted. */
|
|
211
|
-
copied() {
|
|
212
|
-
return [...this.#copied].sort();
|
|
213
|
-
}
|
|
214
|
-
/**
|
|
215
|
-
* What an import of `specifier` from `importer` becomes: external, refused, esbuild's own resolution (a package of
|
|
216
|
-
* the plugin's `dependencies`, or anything a package imports), or a path esbuild resolves and the rules check.
|
|
217
|
-
*/
|
|
218
|
-
async #resolve(specifier, importer, kind) {
|
|
219
|
-
const browser = this.#options.platform === "browser";
|
|
220
|
-
if (kind === "dynamic-import") {
|
|
221
|
-
return {
|
|
222
|
-
kind: "error",
|
|
223
|
-
text: `import("${specifier}"): a plugin script has no dynamic import (${PLUGIN_FILE_HINT})`,
|
|
224
|
-
};
|
|
225
|
-
}
|
|
226
|
-
if (specifier === PLUGINS_SPECIFIER || this.#hostPackages.has(specifier))
|
|
227
|
-
return { kind: "external" };
|
|
228
|
-
if (isBuiltin(specifier)) {
|
|
229
|
-
if (!browser)
|
|
230
|
-
return { kind: "external" };
|
|
231
|
-
return { kind: "error", text: `"${specifier}": a Node builtin in a browser build` };
|
|
232
|
-
}
|
|
233
|
-
if (specifier.endsWith("?url")) {
|
|
234
|
-
if (browser)
|
|
235
|
-
return { kind: "path", path: specifier.slice(0, -"?url".length), asset: true };
|
|
236
|
-
return { kind: "error", text: `"${specifier}": assets by URL are for browser builds (${PLUGIN_FILE_HINT})` };
|
|
237
|
-
}
|
|
238
|
-
const from = this.#place(importer);
|
|
239
|
-
if (from.kind === "package")
|
|
240
|
-
return { kind: "default" };
|
|
241
|
-
if (specifier.startsWith(".") || isAbsolute(specifier))
|
|
242
|
-
return { kind: "path", path: specifier, asset: false };
|
|
243
|
-
const name = packageName(specifier);
|
|
244
|
-
const named = name === this.#own.name ? this.#own : this.#others.find((each) => each.name === name);
|
|
245
|
-
if (named !== undefined)
|
|
246
|
-
return this.#byName(specifier, named, from);
|
|
247
|
-
if (from.kind === "copied") {
|
|
248
|
-
return { kind: "error", text: `"${specifier}": ${copiedRule(from.plugin)}` };
|
|
249
|
-
}
|
|
250
|
-
if (this.#own.external.includes(name)) {
|
|
251
|
-
if (!browser)
|
|
252
|
-
return { kind: "external" };
|
|
253
|
-
return { kind: "error", text: `"${specifier}": chord.external packages are for Node builds` };
|
|
254
|
-
}
|
|
255
|
-
if (this.#own.dependencies.includes(name))
|
|
256
|
-
return { kind: "default" };
|
|
257
|
-
return {
|
|
258
|
-
kind: "error",
|
|
259
|
-
text: `"${specifier}": neither a host package, in the dependencies of plugin "${this.#own.name}" nor a discovered plugin "${name}"`,
|
|
260
|
-
};
|
|
261
|
-
}
|
|
262
|
-
/**
|
|
263
|
-
* An import by name of a file of plugin `named` (`@app/notes/contract`, decision "Plugins import each other by name"):
|
|
264
|
-
* its path in that plugin's directory, wherever that is; from a copied file only its own plugin's.
|
|
265
|
-
*/
|
|
266
|
-
#byName(specifier, named, from) {
|
|
267
|
-
const file = specifier.slice(named.name.length + 1);
|
|
268
|
-
if (file === "") {
|
|
269
|
-
return {
|
|
270
|
-
kind: "error",
|
|
271
|
-
text: `"${specifier}": names plugin "${named.name}", not a file of it ("${named.name}/contract")`,
|
|
272
|
-
};
|
|
273
|
-
}
|
|
274
|
-
if (from.kind === "copied" && from.plugin !== named) {
|
|
275
|
-
return { kind: "error", text: `"${specifier}": ${copiedRule(from.plugin)}` };
|
|
276
|
-
}
|
|
277
|
-
return { kind: "path", path: join(named.dir, file), asset: false, named };
|
|
278
|
-
}
|
|
279
|
-
/**
|
|
280
|
-
* Why the file `path` (resolved from `importer`'s import of `specifier`, by name of plugin `named` or a relative path)
|
|
281
|
-
* may not be inlined: a relative path into another plugin's directory, outside every discovered plugin, or, from a
|
|
282
|
-
* copied file, outside that file's own plugin; `undefined` when it may (another plugin's file is recorded as copied).
|
|
283
|
-
*/
|
|
284
|
-
#checkFile(path, importer, specifier, named) {
|
|
285
|
-
const from = this.#place(importer);
|
|
286
|
-
const to = this.#place(path);
|
|
287
|
-
if (to.kind === "own" && from.kind === "own")
|
|
288
|
-
return undefined;
|
|
289
|
-
if (to.kind === "copied" && (to.plugin === named || (from.kind === "copied" && from.plugin === to.plugin))) {
|
|
290
|
-
this.#copied.add(path);
|
|
291
|
-
return undefined;
|
|
292
|
-
}
|
|
293
|
-
if (from.kind === "copied")
|
|
294
|
-
return `"${specifier}": ${copiedRule(from.plugin)}`;
|
|
295
|
-
if (to.kind === "copied") {
|
|
296
|
-
return `"${specifier}": a relative path into plugin "${to.plugin.name}" (import its files by name: "${to.plugin.name}/…")`;
|
|
297
|
-
}
|
|
298
|
-
return `"${specifier}": outside the plugin (base code is reached through a host package, packages through dependencies)`;
|
|
299
|
-
}
|
|
300
|
-
/** Where `path` lies. */
|
|
301
|
-
#place(path) {
|
|
302
|
-
if (path.split(sep).includes("node_modules"))
|
|
303
|
-
return { kind: "package" };
|
|
304
|
-
if (inside(this.#own.dir, path))
|
|
305
|
-
return { kind: "own" };
|
|
306
|
-
const other = this.#others.find((each) => inside(each.dir, path));
|
|
307
|
-
return other === undefined ? { kind: "outside" } : { kind: "copied", plugin: other };
|
|
308
|
-
}
|
|
309
|
-
}
|
|
310
|
-
/** The rule a copied file broke. */
|
|
311
|
-
function copiedRule(plugin) {
|
|
312
|
-
return `a file copied from plugin "${plugin.name}" may import only host packages and files of its own plugin`;
|
|
313
|
-
}
|
|
314
|
-
/** Whether `path` lies inside directory `dir` (both absolute). */
|
|
315
|
-
export function inside(dir, path) {
|
|
316
|
-
const rest = relative(dir, path);
|
|
317
|
-
return rest !== "" && !rest.startsWith("..") && !isAbsolute(rest);
|
|
318
|
-
}
|
|
319
|
-
/** One build error as `file:line:column: text`, its file relative to the plugin, with the hint where it applies. */
|
|
320
|
-
function describe(plugin, message) {
|
|
321
|
-
let text = message.text;
|
|
322
|
-
if (message.id === "empty-import-meta") {
|
|
323
|
-
text = NO_MODULE_IDENTITY;
|
|
324
|
-
}
|
|
325
|
-
else if (text.startsWith("Top-level await")) {
|
|
326
|
-
text = "a plugin script has no top-level await (a facet declares synchronously)";
|
|
327
|
-
}
|
|
328
|
-
const location = message.location;
|
|
329
|
-
if (location === null || location === undefined)
|
|
330
|
-
return text;
|
|
331
|
-
const file = isAbsolute(location.file) ? relative(plugin.dir, location.file) : location.file;
|
|
332
|
-
return `${file}:${location.line}:${location.column + 1}: ${text}`;
|
|
333
|
-
}
|
|
334
|
-
//# sourceMappingURL=build.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"build.js","sourceRoot":"","sources":["../../../src/next-node/plugins/build.ts"],"names":[],"mappings":"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","sourcesContent":["// Building (slice 7c §2): one facet of one plugin as one script, by esbuild from cold. Its own files, files of other\n// discovered plugins imported by name (`@app/notes/contract`: copies; decision \"Plugins import each other by name\") and\n// its npm `dependencies` are inlined; host packages, this component, `chord.external`\n// packages and Node builtins stay external, answered at evaluation by the `require` the script takes. The result is\n// plain data, the same value a worker or a page evaluates where it runs; a failed build is a result, never a throw.\n\nimport { createHash } from \"node:crypto\";\nimport { readFile } from \"node:fs/promises\";\nimport { isBuiltin } from \"node:module\";\nimport { basename, dirname, extname, isAbsolute, join, relative, resolve, sep } from \"node:path\";\nimport { type BuildFailure, build, type Plugin as EsbuildPlugin, type Loader, type Message } from \"esbuild\";\nimport type { Context } from \"../../context/index.ts\";\nimport type { Plugin } from \"./discover.ts\";\nimport { PLUGINS_SPECIFIER, packageName } from \"./evaluate.ts\";\nimport { inlineSourceMap } from \"./stack.ts\";\n\n/** What `buildFacet` takes besides the plugin and the kind. */\nexport type BuildOptions = {\n\t/** The host packages' specifiers (`@earendil-works/chord/next`, `react`, `react/jsx-runtime`, `@app/core`): external. */\n\treadonly hostPackages: readonly string[];\n\t/** Where the script runs: Node (a server, a worker, a TUI) or a browser (a page). */\n\treadonly platform: \"node\" | \"browser\";\n\t/** The discovered plugins: a file of one of them may be imported (a copy). */\n\treadonly plugins?: readonly Plugin[];\n\t/** Where the app serves a browser build's assets: the URL prefix their imports evaluate to (`/` by default). */\n\treadonly publicPath?: string;\n};\n\n/** A file a build read, with the hash of the bytes it handed esbuild (the watcher's inputs). */\nexport type BuildInput = { readonly file: string; readonly hash: string };\n\n/** A built facet: its script and what it used, or the build's errors. Plain data. */\nexport type BuiltFacet =\n\t| {\n\t\t\treadonly kind: \"script\";\n\t\t\treadonly plugin: string;\n\t\t\treadonly facet: string;\n\t\t\t/** The wrapped CommonJS script, minified, with an inline source map whose sources are relative to the plugin. */\n\t\t\treadonly source: string;\n\t\t\t/** A hash of `source`: the same on every machine and checkout for the same files. */\n\t\t\treadonly digest: string;\n\t\t\t/** Every plugin file it read (its own and copied ones; not packages), absolute paths, with their hashes. */\n\t\t\treadonly inputs: readonly BuildInput[];\n\t\t\t/** The files of other plugins inlined into it, absolute paths. */\n\t\t\treadonly copied: readonly string[];\n\t\t\t/** A browser build's stylesheet, when it imports CSS. */\n\t\t\treadonly css?: { readonly name: string; readonly text: string };\n\t\t\t/** A browser build's assets, by content-hashed file name. */\n\t\t\treadonly assets: readonly { readonly name: string; readonly bytes: Uint8Array }[];\n\t }\n\t| { readonly kind: \"failed\"; readonly plugin: string; readonly facet: string; readonly errors: readonly string[] };\n\n/** What a free `__dirname` and `__filename` become in a build: names no script has, found again by `freeGlobals`. */\nconst GLOBAL_MARKERS = { __dirname: \"__chord_plugin_dirname\", __filename: \"__chord_plugin_filename\" };\n\n/**\n * Builds `plugin`'s facet of `kind` (one esbuild build from cold): a script wrapped as `(function (require, module,\n * exports) { … })`, or the errors that refuse it (an import the rules of §2 do not admit, a syntax error, `import.meta`,\n * `__dirname`, `__filename`, a literal dynamic `import(\"x\")`, a top-level `await`), each naming its file and line. A\n * computed `import(x)` becomes a call of the script's `require`.\n */\nexport async function buildFacet(\n\tplugin: Plugin,\n\tkind: string,\n\toptions: BuildOptions,\n\tcontext: Context,\n): Promise<BuiltFacet> {\n\tconst failed = (errors: readonly string[]): BuiltFacet => ({\n\t\tkind: \"failed\",\n\t\tplugin: plugin.name,\n\t\tfacet: kind,\n\t\terrors,\n\t});\n\tconst entry = plugin.facets[kind];\n\tif (entry === undefined) return failed([`plugin \"${plugin.name}\" has no ${kind} facet`]);\n\tcontext.abortSignal?.throwIfAborted();\n\tconst rules = new ImportRules(plugin, options);\n\tconst browser = options.platform === \"browser\";\n\tlet result: Awaited<ReturnType<typeof build>>;\n\ttry {\n\t\tresult = await build({\n\t\t\tentryPoints: [entry],\n\t\t\tabsWorkingDir: plugin.dir,\n\t\t\t// Nothing is written: the directory only makes the source map's paths relative to the plugin.\n\t\t\toutdir: plugin.dir,\n\t\t\tentryNames: \"[name]-[hash]\",\n\t\t\tassetNames: \"[name]-[hash]\",\n\t\t\tpublicPath: options.publicPath ?? \"/\",\n\t\t\twrite: false,\n\t\t\tbundle: true,\n\t\t\tformat: \"cjs\",\n\t\t\tplatform: options.platform,\n\t\t\ttarget: browser ? \"es2022\" : \"node22\",\n\t\t\tminify: true,\n\t\t\tlegalComments: \"none\",\n\t\t\tsourcemap: \"inline\",\n\t\t\t// Positions only: a stack is mapped to files and lines, never shown their text.\n\t\t\tsourcesContent: false,\n\t\t\t// Ignore any tsconfig.json: TypeScript is stripped, JSX compiled with the automatic React runtime.\n\t\t\ttsconfigRaw: \"{}\",\n\t\t\tjsx: \"automatic\",\n\t\t\tbanner: { js: \"(function (require, module, exports) {\" },\n\t\t\tfooter: { js: \"})\" },\n\t\t\t// `import.meta` is refused here; a free `__dirname` or `__filename` becomes a marker found in the output below\n\t\t\t// (esbuild reports no `import.meta` it substituted itself).\n\t\t\tdefine: GLOBAL_MARKERS,\n\t\t\tlogOverride: { \"empty-import-meta\": \"error\" },\n\t\t\t// A computed `import(x)` (a literal one is refused below) goes through the facet's `require`, which names the\n\t\t\t// facet when it does not answer; `vm.Script` has no loader for a real one.\n\t\t\tsupported: { \"dynamic-import\": false },\n\t\t\tlogLevel: \"silent\",\n\t\t\tplugins: [rules.plugin],\n\t\t});\n\t} catch (error) {\n\t\treturn failed(\n\t\t\t((error as BuildFailure).errors ?? [{ text: String(error) }]).map((each) => describe(plugin, each)),\n\t\t);\n\t}\n\t// Never written: esbuild hands the outputs back.\n\tconst files = result.outputFiles!;\n\tconst script = files.find((file) => file.path.endsWith(\".js\"))!;\n\tconst css = files.find((file) => file.path.endsWith(\".css\"));\n\tconst source = script.text;\n\tconst globals = freeGlobals(source);\n\tif (globals.length > 0) return failed(globals);\n\treturn {\n\t\tkind: \"script\",\n\t\tplugin: plugin.name,\n\t\tfacet: kind,\n\t\tsource,\n\t\tdigest: createHash(\"sha256\").update(source).digest(\"hex\"),\n\t\tinputs: rules.inputs(),\n\t\tcopied: rules.copied(),\n\t\t...(css === undefined ? {} : { css: { name: basename(css.path), text: css.text } }),\n\t\tassets: files\n\t\t\t.filter((file) => file !== script && file !== css)\n\t\t\t.map((file) => ({ name: relative(plugin.dir, file.path), bytes: file.contents })),\n\t};\n}\n\n/** Where a build error points for what a plugin script cannot have. */\nconst PLUGIN_FILE_HINT = `a file of the plugin is read through pluginFile(path) from \"${PLUGINS_SPECIFIER}\"`;\n\n/** The error of a script using `import.meta`, `__dirname` or `__filename`. */\nconst NO_MODULE_IDENTITY = `import.meta.url, __dirname and __filename are not available in a plugin script (${PLUGIN_FILE_HINT})`;\n\n/**\n * The errors for every free `__dirname` and `__filename` in the built `source` (their markers), each at its file, line\n * and column through the script's source map.\n */\nfunction freeGlobals(source: string): string[] {\n\t// Most scripts have none: no map parsed for them.\n\tif (!source.includes(\"__chord_plugin_\")) return [];\n\tconst map = inlineSourceMap(source);\n\tif (map === undefined) return [];\n\tconst errors: string[] = [];\n\tfor (const [line, text] of source.split(\"\\n\").entries()) {\n\t\tfor (const match of text.matchAll(/__chord_plugin_(?:dirname|filename)/g)) {\n\t\t\tconst entry = map.findEntry(line, match.index);\n\t\t\tif (!(\"originalSource\" in entry)) continue;\n\t\t\terrors.push(\n\t\t\t\t`${entry.originalSource}:${entry.originalLine + 1}:${entry.originalColumn + 1}: ${NO_MODULE_IDENTITY}`,\n\t\t\t);\n\t\t}\n\t}\n\treturn errors;\n}\n\n/** Where a resolved file lies, from the plugin being built: its own source, another plugin's (a copy), a package. */\ntype Place =\n\t| { readonly kind: \"own\" }\n\t| { readonly kind: \"copied\"; readonly plugin: Plugin }\n\t| { readonly kind: \"package\" }\n\t| { readonly kind: \"outside\" };\n\n/** What only a browser build imports: stylesheets and wasm assets. */\nconst BROWSER_ONLY = new Set([\".css\", \".wasm\"]);\n\n/** Marks esbuild's resolution the rules ask for themselves, so they do not judge it again. */\nconst RESOLVING = Symbol(\"chord.plugins.resolving\");\n\n/** How the source files a build reads are loaded, by extension (packages load as esbuild decides). */\nconst LOADERS: Readonly<Record<string, Loader>> = {\n\t\".ts\": \"ts\",\n\t\".mts\": \"ts\",\n\t\".cts\": \"ts\",\n\t\".tsx\": \"tsx\",\n\t\".js\": \"js\",\n\t\".mjs\": \"js\",\n\t\".cjs\": \"js\",\n\t\".jsx\": \"jsx\",\n\t\".json\": \"json\",\n\t\".css\": \"css\",\n\t\".wasm\": \"file\",\n};\n\n/** What an asset import's resolution carries to its load (the `file` loader whatever its extension). */\nconst ASSET = Symbol(\"chord.plugins.asset\");\n\n/**\n * The import rules of one build (§2's table) as an esbuild plugin, and what the build read: every file of a plugin\n * hashed as it is handed to esbuild (the exact bytes built, not a later read racing a save), and the copied files.\n */\nclass ImportRules {\n\treadonly plugin: EsbuildPlugin;\n\treadonly #own: Plugin;\n\treadonly #others: readonly Plugin[];\n\treadonly #options: BuildOptions;\n\treadonly #hostPackages: ReadonlySet<string>;\n\treadonly #inputs = new Map<string, string>();\n\treadonly #copied = new Set<string>();\n\n\tconstructor(own: Plugin, options: BuildOptions) {\n\t\tthis.#own = own;\n\t\tthis.#others = (options.plugins ?? []).filter((each) => each.dir !== own.dir);\n\t\tthis.#options = options;\n\t\tthis.#hostPackages = new Set(options.hostPackages);\n\t\tthis.plugin = {\n\t\t\tname: \"chord-plugin-imports\",\n\t\t\tsetup: (builder) => {\n\t\t\t\tbuilder.onResolve({ filter: /.*/ }, async (args) => {\n\t\t\t\t\t// The plugin's files are resolved here, the entry too: esbuild then gives them no Node module type\n\t\t\t\t\t// (`\"type\": \"module\"`), whose interop would read a whole host package for a default import instead\n\t\t\t\t\t// of honouring the `__esModule` an ESM namespace is wrapped with (§3).\n\t\t\t\t\tif (args.kind === \"entry-point\") return { path: resolve(own.dir, args.path) };\n\t\t\t\t\tif (args.pluginData === RESOLVING) return undefined;\n\t\t\t\t\tconst resolved = await this.#resolve(args.path, args.importer, args.kind);\n\t\t\t\t\tif (resolved.kind === \"error\") return { errors: [{ text: resolved.text }] };\n\t\t\t\t\tif (resolved.kind === \"external\") return { path: args.path, external: true };\n\t\t\t\t\tif (resolved.kind === \"default\") return undefined;\n\t\t\t\t\tconst found = await builder.resolve(resolved.path, {\n\t\t\t\t\t\tkind: args.kind,\n\t\t\t\t\t\timporter: args.importer,\n\t\t\t\t\t\tresolveDir: args.resolveDir,\n\t\t\t\t\t\tpluginData: RESOLVING,\n\t\t\t\t\t});\n\t\t\t\t\tif (found.errors.length > 0) return { errors: found.errors };\n\t\t\t\t\tif (options.platform === \"node\" && BROWSER_ONLY.has(extname(found.path))) {\n\t\t\t\t\t\treturn { errors: [{ text: `\"${args.path}\": stylesheets and assets are for browser builds` }] };\n\t\t\t\t\t}\n\t\t\t\t\tconst checked = this.#checkFile(found.path, args.importer, args.path, resolved.named);\n\t\t\t\t\tif (checked !== undefined) return { errors: [{ text: checked }] };\n\t\t\t\t\treturn { path: found.path, pluginData: resolved.asset ? ASSET : undefined };\n\t\t\t\t});\n\t\t\t\tbuilder.onLoad({ filter: /.*/ }, async (args) => {\n\t\t\t\t\tif (args.namespace !== \"file\") return undefined;\n\t\t\t\t\tconst asset = args.pluginData === ASSET;\n\t\t\t\t\tconst loader = asset ? \"file\" : LOADERS[extname(args.path)];\n\t\t\t\t\tif (loader === undefined || this.#place(args.path).kind === \"package\") return undefined;\n\t\t\t\t\tconst contents = await readFile(args.path);\n\t\t\t\t\tthis.#inputs.set(args.path, createHash(\"sha256\").update(contents).digest(\"hex\"));\n\t\t\t\t\treturn { contents, loader, resolveDir: dirname(args.path) };\n\t\t\t\t});\n\t\t\t},\n\t\t};\n\t}\n\n\t/** Every plugin file read, sorted by path. */\n\tinputs(): BuildInput[] {\n\t\treturn [...this.#inputs].map(([file, hash]) => ({ file, hash })).sort((a, b) => (a.file < b.file ? -1 : 1));\n\t}\n\n\t/** The other plugins' files inlined, sorted. */\n\tcopied(): string[] {\n\t\treturn [...this.#copied].sort();\n\t}\n\n\t/**\n\t * What an import of `specifier` from `importer` becomes: external, refused, esbuild's own resolution (a package of\n\t * the plugin's `dependencies`, or anything a package imports), or a path esbuild resolves and the rules check.\n\t */\n\tasync #resolve(\n\t\tspecifier: string,\n\t\timporter: string,\n\t\tkind: string,\n\t): Promise<\n\t\t| { readonly kind: \"external\" }\n\t\t| { readonly kind: \"default\" }\n\t\t| {\n\t\t\t\treadonly kind: \"path\";\n\t\t\t\treadonly path: string;\n\t\t\t\treadonly asset: boolean;\n\t\t\t\t/** The plugin an import by name named (`@app/notes/contract`). */\n\t\t\t\treadonly named?: Plugin;\n\t\t }\n\t\t| { readonly kind: \"error\"; readonly text: string }\n\t> {\n\t\tconst browser = this.#options.platform === \"browser\";\n\t\tif (kind === \"dynamic-import\") {\n\t\t\treturn {\n\t\t\t\tkind: \"error\",\n\t\t\t\ttext: `import(\"${specifier}\"): a plugin script has no dynamic import (${PLUGIN_FILE_HINT})`,\n\t\t\t};\n\t\t}\n\t\tif (specifier === PLUGINS_SPECIFIER || this.#hostPackages.has(specifier)) return { kind: \"external\" };\n\t\tif (isBuiltin(specifier)) {\n\t\t\tif (!browser) return { kind: \"external\" };\n\t\t\treturn { kind: \"error\", text: `\"${specifier}\": a Node builtin in a browser build` };\n\t\t}\n\t\tif (specifier.endsWith(\"?url\")) {\n\t\t\tif (browser) return { kind: \"path\", path: specifier.slice(0, -\"?url\".length), asset: true };\n\t\t\treturn { kind: \"error\", text: `\"${specifier}\": assets by URL are for browser builds (${PLUGIN_FILE_HINT})` };\n\t\t}\n\t\tconst from = this.#place(importer);\n\t\tif (from.kind === \"package\") return { kind: \"default\" };\n\t\tif (specifier.startsWith(\".\") || isAbsolute(specifier)) return { kind: \"path\", path: specifier, asset: false };\n\t\tconst name = packageName(specifier);\n\t\tconst named = name === this.#own.name ? this.#own : this.#others.find((each) => each.name === name);\n\t\tif (named !== undefined) return this.#byName(specifier, named, from);\n\t\tif (from.kind === \"copied\") {\n\t\t\treturn { kind: \"error\", text: `\"${specifier}\": ${copiedRule(from.plugin)}` };\n\t\t}\n\t\tif (this.#own.external.includes(name)) {\n\t\t\tif (!browser) return { kind: \"external\" };\n\t\t\treturn { kind: \"error\", text: `\"${specifier}\": chord.external packages are for Node builds` };\n\t\t}\n\t\tif (this.#own.dependencies.includes(name)) return { kind: \"default\" };\n\t\treturn {\n\t\t\tkind: \"error\",\n\t\t\ttext: `\"${specifier}\": neither a host package, in the dependencies of plugin \"${this.#own.name}\" nor a discovered plugin \"${name}\"`,\n\t\t};\n\t}\n\n\t/**\n\t * An import by name of a file of plugin `named` (`@app/notes/contract`, decision \"Plugins import each other by name\"):\n\t * its path in that plugin's directory, wherever that is; from a copied file only its own plugin's.\n\t */\n\t#byName(\n\t\tspecifier: string,\n\t\tnamed: Plugin,\n\t\tfrom: Place,\n\t):\n\t\t| { readonly kind: \"path\"; readonly path: string; readonly asset: false; readonly named: Plugin }\n\t\t| { readonly kind: \"error\"; readonly text: string } {\n\t\tconst file = specifier.slice(named.name.length + 1);\n\t\tif (file === \"\") {\n\t\t\treturn {\n\t\t\t\tkind: \"error\",\n\t\t\t\ttext: `\"${specifier}\": names plugin \"${named.name}\", not a file of it (\"${named.name}/contract\")`,\n\t\t\t};\n\t\t}\n\t\tif (from.kind === \"copied\" && from.plugin !== named) {\n\t\t\treturn { kind: \"error\", text: `\"${specifier}\": ${copiedRule(from.plugin)}` };\n\t\t}\n\t\treturn { kind: \"path\", path: join(named.dir, file), asset: false, named };\n\t}\n\n\t/**\n\t * Why the file `path` (resolved from `importer`'s import of `specifier`, by name of plugin `named` or a relative path)\n\t * may not be inlined: a relative path into another plugin's directory, outside every discovered plugin, or, from a\n\t * copied file, outside that file's own plugin; `undefined` when it may (another plugin's file is recorded as copied).\n\t */\n\t#checkFile(path: string, importer: string, specifier: string, named: Plugin | undefined): string | undefined {\n\t\tconst from = this.#place(importer);\n\t\tconst to = this.#place(path);\n\t\tif (to.kind === \"own\" && from.kind === \"own\") return undefined;\n\t\tif (to.kind === \"copied\" && (to.plugin === named || (from.kind === \"copied\" && from.plugin === to.plugin))) {\n\t\t\tthis.#copied.add(path);\n\t\t\treturn undefined;\n\t\t}\n\t\tif (from.kind === \"copied\") return `\"${specifier}\": ${copiedRule(from.plugin)}`;\n\t\tif (to.kind === \"copied\") {\n\t\t\treturn `\"${specifier}\": a relative path into plugin \"${to.plugin.name}\" (import its files by name: \"${to.plugin.name}/…\")`;\n\t\t}\n\t\treturn `\"${specifier}\": outside the plugin (base code is reached through a host package, packages through dependencies)`;\n\t}\n\n\t/** Where `path` lies. */\n\t#place(path: string): Place {\n\t\tif (path.split(sep).includes(\"node_modules\")) return { kind: \"package\" };\n\t\tif (inside(this.#own.dir, path)) return { kind: \"own\" };\n\t\tconst other = this.#others.find((each) => inside(each.dir, path));\n\t\treturn other === undefined ? { kind: \"outside\" } : { kind: \"copied\", plugin: other };\n\t}\n}\n\n/** The rule a copied file broke. */\nfunction copiedRule(plugin: Plugin): string {\n\treturn `a file copied from plugin \"${plugin.name}\" may import only host packages and files of its own plugin`;\n}\n\n/** Whether `path` lies inside directory `dir` (both absolute). */\nexport function inside(dir: string, path: string): boolean {\n\tconst rest = relative(dir, path);\n\treturn rest !== \"\" && !rest.startsWith(\"..\") && !isAbsolute(rest);\n}\n\n/** One build error as `file:line:column: text`, its file relative to the plugin, with the hint where it applies. */\nfunction describe(plugin: Plugin, message: Message): string {\n\tlet text = message.text;\n\tif (message.id === \"empty-import-meta\") {\n\t\ttext = NO_MODULE_IDENTITY;\n\t} else if (text.startsWith(\"Top-level await\")) {\n\t\ttext = \"a plugin script has no top-level await (a facet declares synchronously)\";\n\t}\n\tconst location = message.location;\n\tif (location === null || location === undefined) return text;\n\tconst file = isAbsolute(location.file) ? relative(plugin.dir, location.file) : location.file;\n\treturn `${file}:${location.line}:${location.column + 1}: ${text}`;\n}\n"]}
|
|
@@ -1,36 +0,0 @@
|
|
|
1
|
-
import type { Context } from "../../context/index.ts";
|
|
2
|
-
/** A plugin on disk: its name (its `package.json` name), its real directory, its facet files and npm packages. */
|
|
3
|
-
export type Plugin = {
|
|
4
|
-
readonly name: string;
|
|
5
|
-
/** Its directory's real path (symlinks followed). */
|
|
6
|
-
readonly dir: string;
|
|
7
|
-
/** Its facet files by kind, absolute paths; none for a contracts-only plugin. */
|
|
8
|
-
readonly facets: Readonly<Record<string, string>>;
|
|
9
|
-
/** The packages in its `dependencies`: bundled into the facets that import them. */
|
|
10
|
-
readonly dependencies: readonly string[];
|
|
11
|
-
/** The packages in its `chord.external`: kept external in Node builds, loaded from its `node_modules`. */
|
|
12
|
-
readonly external: readonly string[];
|
|
13
|
-
};
|
|
14
|
-
/** A directory under a root that is not a plugin, or a plugin left out, and why. */
|
|
15
|
-
export type DiscoveryProblem = {
|
|
16
|
-
readonly path: string;
|
|
17
|
-
readonly error: string;
|
|
18
|
-
};
|
|
19
|
-
/** What discovery found: the plugins by name, and the directories it reported. */
|
|
20
|
-
export type Discovery = {
|
|
21
|
-
readonly plugins: readonly Plugin[];
|
|
22
|
-
readonly problems: readonly DiscoveryProblem[];
|
|
23
|
-
};
|
|
24
|
-
/** What discovery takes besides the roots: the app's facet kinds (`["server", "worker", "web", "tui"]`). */
|
|
25
|
-
export type DiscoveryOptions = {
|
|
26
|
-
readonly kinds: readonly string[];
|
|
27
|
-
};
|
|
28
|
-
/**
|
|
29
|
-
* Lists every root one level deep: a directory with a valid `package.json` is a plugin (a missing root is empty). A
|
|
30
|
-
* directory without a `package.json`, with an invalid one or an invalid name, with two files of one facet kind, or whose
|
|
31
|
-
* name an earlier root (or an earlier directory of the same root) has already, is reported. Plugins sorted by name.
|
|
32
|
-
*/
|
|
33
|
-
export declare function discoverPlugins(roots: readonly string[], options: DiscoveryOptions, context: Context): Promise<Discovery>;
|
|
34
|
-
/** The facet files' extensions, in no order of preference: two files of one kind are reported. */
|
|
35
|
-
export declare const FACET_EXTENSIONS: readonly string[];
|
|
36
|
-
//# sourceMappingURL=discover.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"discover.d.ts","sourceRoot":"","sources":["../../../src/next-node/plugins/discover.ts"],"names":[],"mappings":"AAMA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,wBAAwB,CAAC;AAGtD,kHAAkH;AAClH,MAAM,MAAM,MAAM,GAAG;IACpB,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,qDAAqD;IACrD,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAC;IACrB,iFAAiF;IACjF,QAAQ,CAAC,MAAM,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,CAAC;IAClD,oFAAoF;IACpF,QAAQ,CAAC,YAAY,EAAE,SAAS,MAAM,EAAE,CAAC;IACzC,0GAA0G;IAC1G,QAAQ,CAAC,QAAQ,EAAE,SAAS,MAAM,EAAE,CAAC;CACrC,CAAC;AAEF,oFAAoF;AACpF,MAAM,MAAM,gBAAgB,GAAG;IAAE,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IAAC,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAA;CAAE,CAAC;AAEjF,kFAAkF;AAClF,MAAM,MAAM,SAAS,GAAG;IAAE,QAAQ,CAAC,OAAO,EAAE,SAAS,MAAM,EAAE,CAAC;IAAC,QAAQ,CAAC,QAAQ,EAAE,SAAS,gBAAgB,EAAE,CAAA;CAAE,CAAC;AAEhH,4GAA4G;AAC5G,MAAM,MAAM,gBAAgB,GAAG;IAAE,QAAQ,CAAC,KAAK,EAAE,SAAS,MAAM,EAAE,CAAA;CAAE,CAAC;AAErE;;;;GAIG;AACH,wBAAsB,eAAe,CACpC,KAAK,EAAE,SAAS,MAAM,EAAE,EACxB,OAAO,EAAE,gBAAgB,EACzB,OAAO,EAAE,OAAO,GACd,OAAO,CAAC,SAAS,CAAC,CAqBpB;AAuBD,kGAAkG;AAClG,eAAO,MAAM,gBAAgB,EAAE,SAAS,MAAM,EAAmC,CAAC"}
|
|
@@ -1,91 +0,0 @@
|
|
|
1
|
-
// Discovery (slice 7c §1): the plugins under the app's roots, found by listing each root one level deep and reading only
|
|
2
|
-
// each directory's `package.json` (its `name`, its `dependencies`, its `chord.external`); its facet files are the ones
|
|
3
|
-
// named after the app's facet kinds. Nothing parses or runs plugin code.
|
|
4
|
-
import { readdir, readFile, realpath, stat } from "node:fs/promises";
|
|
5
|
-
import { join } from "node:path";
|
|
6
|
-
import { isPluginName } from "../../next/host/staging.js";
|
|
7
|
-
/**
|
|
8
|
-
* Lists every root one level deep: a directory with a valid `package.json` is a plugin (a missing root is empty). A
|
|
9
|
-
* directory without a `package.json`, with an invalid one or an invalid name, with two files of one facet kind, or whose
|
|
10
|
-
* name an earlier root (or an earlier directory of the same root) has already, is reported. Plugins sorted by name.
|
|
11
|
-
*/
|
|
12
|
-
export async function discoverPlugins(roots, options, context) {
|
|
13
|
-
const plugins = new Map();
|
|
14
|
-
const problems = [];
|
|
15
|
-
for (const root of roots) {
|
|
16
|
-
for (const dir of await directoriesOf(root)) {
|
|
17
|
-
context.abortSignal?.throwIfAborted();
|
|
18
|
-
const found = await pluginAt(dir, options.kinds);
|
|
19
|
-
if (found.kind === "problem") {
|
|
20
|
-
problems.push({ path: dir, error: found.error });
|
|
21
|
-
continue;
|
|
22
|
-
}
|
|
23
|
-
const other = plugins.get(found.plugin.name);
|
|
24
|
-
if (other !== undefined) {
|
|
25
|
-
problems.push({ path: dir, error: `plugin "${found.plugin.name}" is in ${other.dir} already` });
|
|
26
|
-
continue;
|
|
27
|
-
}
|
|
28
|
-
plugins.set(found.plugin.name, found.plugin);
|
|
29
|
-
}
|
|
30
|
-
}
|
|
31
|
-
const sorted = [...plugins.values()].sort((a, b) => (a.name < b.name ? -1 : a.name > b.name ? 1 : 0));
|
|
32
|
-
return { plugins: sorted, problems };
|
|
33
|
-
}
|
|
34
|
-
/** The directories directly under `root`, by real path, in name order; none when `root` does not exist. */
|
|
35
|
-
async function directoriesOf(root) {
|
|
36
|
-
let names;
|
|
37
|
-
try {
|
|
38
|
-
names = (await readdir(root)).sort();
|
|
39
|
-
}
|
|
40
|
-
catch (error) {
|
|
41
|
-
if (error.code === "ENOENT")
|
|
42
|
-
return [];
|
|
43
|
-
throw error;
|
|
44
|
-
}
|
|
45
|
-
const dirs = [];
|
|
46
|
-
for (const name of names) {
|
|
47
|
-
// Not plugins: hidden directories and a root's own packages.
|
|
48
|
-
if (name.startsWith(".") || name === "node_modules")
|
|
49
|
-
continue;
|
|
50
|
-
const path = join(root, name);
|
|
51
|
-
// `stat` follows a symlink: a linked plugin directory is listed by its real path.
|
|
52
|
-
const info = await stat(path).catch(() => undefined);
|
|
53
|
-
if (info?.isDirectory() === true)
|
|
54
|
-
dirs.push(await realpath(path));
|
|
55
|
-
}
|
|
56
|
-
return dirs;
|
|
57
|
-
}
|
|
58
|
-
/** The facet files' extensions, in no order of preference: two files of one kind are reported. */
|
|
59
|
-
export const FACET_EXTENSIONS = [".ts", ".tsx", ".js", ".mjs"];
|
|
60
|
-
/** The plugin in `dir` (its real path), or why it is none. */
|
|
61
|
-
async function pluginAt(dir, kinds) {
|
|
62
|
-
let manifest;
|
|
63
|
-
try {
|
|
64
|
-
manifest = JSON.parse(await readFile(join(dir, "package.json"), "utf8"));
|
|
65
|
-
}
|
|
66
|
-
catch (error) {
|
|
67
|
-
const missing = error.code === "ENOENT";
|
|
68
|
-
return { kind: "problem", error: missing ? "no package.json" : `package.json: ${error.message}` };
|
|
69
|
-
}
|
|
70
|
-
// A trust boundary: a plugin's own `package.json`.
|
|
71
|
-
const { name, dependencies, chord } = (manifest ?? {});
|
|
72
|
-
if (typeof name !== "string" || !isPluginName(name)) {
|
|
73
|
-
return { kind: "problem", error: `package.json: ${JSON.stringify(name)} is not a valid plugin name` };
|
|
74
|
-
}
|
|
75
|
-
const external = chord?.external ?? [];
|
|
76
|
-
if (!Array.isArray(external) || !external.every((each) => typeof each === "string")) {
|
|
77
|
-
return { kind: "problem", error: "package.json: chord.external is not a list of package names" };
|
|
78
|
-
}
|
|
79
|
-
const files = new Set(await readdir(dir));
|
|
80
|
-
const facets = {};
|
|
81
|
-
for (const kind of kinds) {
|
|
82
|
-
const named = FACET_EXTENSIONS.map((extension) => `${kind}${extension}`).filter((file) => files.has(file));
|
|
83
|
-
if (named.length > 1)
|
|
84
|
-
return { kind: "problem", error: `two ${kind} facets: ${named.join(", ")}` };
|
|
85
|
-
if (named.length === 1)
|
|
86
|
-
facets[kind] = join(dir, named[0]);
|
|
87
|
-
}
|
|
88
|
-
const packages = typeof dependencies === "object" && dependencies !== null ? Object.keys(dependencies) : [];
|
|
89
|
-
return { kind: "plugin", plugin: { name, dir, facets, dependencies: packages, external } };
|
|
90
|
-
}
|
|
91
|
-
//# sourceMappingURL=discover.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"discover.js","sourceRoot":"","sources":["../../../src/next-node/plugins/discover.ts"],"names":[],"mappings":"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","sourcesContent":["// Discovery (slice 7c §1): the plugins under the app's roots, found by listing each root one level deep and reading only\n// each directory's `package.json` (its `name`, its `dependencies`, its `chord.external`); its facet files are the ones\n// named after the app's facet kinds. Nothing parses or runs plugin code.\n\nimport { readdir, readFile, realpath, stat } from \"node:fs/promises\";\nimport { join } from \"node:path\";\nimport type { Context } from \"../../context/index.ts\";\nimport { isPluginName } from \"../../next/host/staging.ts\";\n\n/** A plugin on disk: its name (its `package.json` name), its real directory, its facet files and npm packages. */\nexport type Plugin = {\n\treadonly name: string;\n\t/** Its directory's real path (symlinks followed). */\n\treadonly dir: string;\n\t/** Its facet files by kind, absolute paths; none for a contracts-only plugin. */\n\treadonly facets: Readonly<Record<string, string>>;\n\t/** The packages in its `dependencies`: bundled into the facets that import them. */\n\treadonly dependencies: readonly string[];\n\t/** The packages in its `chord.external`: kept external in Node builds, loaded from its `node_modules`. */\n\treadonly external: readonly string[];\n};\n\n/** A directory under a root that is not a plugin, or a plugin left out, and why. */\nexport type DiscoveryProblem = { readonly path: string; readonly error: string };\n\n/** What discovery found: the plugins by name, and the directories it reported. */\nexport type Discovery = { readonly plugins: readonly Plugin[]; readonly problems: readonly DiscoveryProblem[] };\n\n/** What discovery takes besides the roots: the app's facet kinds (`[\"server\", \"worker\", \"web\", \"tui\"]`). */\nexport type DiscoveryOptions = { readonly kinds: readonly string[] };\n\n/**\n * Lists every root one level deep: a directory with a valid `package.json` is a plugin (a missing root is empty). A\n * directory without a `package.json`, with an invalid one or an invalid name, with two files of one facet kind, or whose\n * name an earlier root (or an earlier directory of the same root) has already, is reported. Plugins sorted by name.\n */\nexport async function discoverPlugins(\n\troots: readonly string[],\n\toptions: DiscoveryOptions,\n\tcontext: Context,\n): Promise<Discovery> {\n\tconst plugins = new Map<string, Plugin>();\n\tconst problems: DiscoveryProblem[] = [];\n\tfor (const root of roots) {\n\t\tfor (const dir of await directoriesOf(root)) {\n\t\t\tcontext.abortSignal?.throwIfAborted();\n\t\t\tconst found = await pluginAt(dir, options.kinds);\n\t\t\tif (found.kind === \"problem\") {\n\t\t\t\tproblems.push({ path: dir, error: found.error });\n\t\t\t\tcontinue;\n\t\t\t}\n\t\t\tconst other = plugins.get(found.plugin.name);\n\t\t\tif (other !== undefined) {\n\t\t\t\tproblems.push({ path: dir, error: `plugin \"${found.plugin.name}\" is in ${other.dir} already` });\n\t\t\t\tcontinue;\n\t\t\t}\n\t\t\tplugins.set(found.plugin.name, found.plugin);\n\t\t}\n\t}\n\tconst sorted = [...plugins.values()].sort((a, b) => (a.name < b.name ? -1 : a.name > b.name ? 1 : 0));\n\treturn { plugins: sorted, problems };\n}\n\n/** The directories directly under `root`, by real path, in name order; none when `root` does not exist. */\nasync function directoriesOf(root: string): Promise<string[]> {\n\tlet names: string[];\n\ttry {\n\t\tnames = (await readdir(root)).sort();\n\t} catch (error) {\n\t\tif ((error as NodeJS.ErrnoException).code === \"ENOENT\") return [];\n\t\tthrow error;\n\t}\n\tconst dirs: string[] = [];\n\tfor (const name of names) {\n\t\t// Not plugins: hidden directories and a root's own packages.\n\t\tif (name.startsWith(\".\") || name === \"node_modules\") continue;\n\t\tconst path = join(root, name);\n\t\t// `stat` follows a symlink: a linked plugin directory is listed by its real path.\n\t\tconst info = await stat(path).catch(() => undefined);\n\t\tif (info?.isDirectory() === true) dirs.push(await realpath(path));\n\t}\n\treturn dirs;\n}\n\n/** The facet files' extensions, in no order of preference: two files of one kind are reported. */\nexport const FACET_EXTENSIONS: readonly string[] = [\".ts\", \".tsx\", \".js\", \".mjs\"];\n\n/** The plugin in `dir` (its real path), or why it is none. */\nasync function pluginAt(\n\tdir: string,\n\tkinds: readonly string[],\n): Promise<\n\t{ readonly kind: \"plugin\"; readonly plugin: Plugin } | { readonly kind: \"problem\"; readonly error: string }\n> {\n\tlet manifest: unknown;\n\ttry {\n\t\tmanifest = JSON.parse(await readFile(join(dir, \"package.json\"), \"utf8\"));\n\t} catch (error) {\n\t\tconst missing = (error as NodeJS.ErrnoException).code === \"ENOENT\";\n\t\treturn { kind: \"problem\", error: missing ? \"no package.json\" : `package.json: ${(error as Error).message}` };\n\t}\n\t// A trust boundary: a plugin's own `package.json`.\n\tconst { name, dependencies, chord } = (manifest ?? {}) as {\n\t\treadonly name?: unknown;\n\t\treadonly dependencies?: unknown;\n\t\treadonly chord?: { readonly external?: unknown };\n\t};\n\tif (typeof name !== \"string\" || !isPluginName(name)) {\n\t\treturn { kind: \"problem\", error: `package.json: ${JSON.stringify(name)} is not a valid plugin name` };\n\t}\n\tconst external = chord?.external ?? [];\n\tif (!Array.isArray(external) || !external.every((each) => typeof each === \"string\")) {\n\t\treturn { kind: \"problem\", error: \"package.json: chord.external is not a list of package names\" };\n\t}\n\tconst files = new Set(await readdir(dir));\n\tconst facets: Record<string, string> = {};\n\tfor (const kind of kinds) {\n\t\tconst named = FACET_EXTENSIONS.map((extension) => `${kind}${extension}`).filter((file) => files.has(file));\n\t\tif (named.length > 1) return { kind: \"problem\", error: `two ${kind} facets: ${named.join(\", \")}` };\n\t\tif (named.length === 1) facets[kind] = join(dir, named[0]!);\n\t}\n\tconst packages = typeof dependencies === \"object\" && dependencies !== null ? Object.keys(dependencies) : [];\n\treturn { kind: \"plugin\", plugin: { name, dir, facets, dependencies: packages, external } };\n}\n"]}
|