@plurnk/plurnk-schemes 1.16.5 → 1.17.0
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/README.md +5 -7
- package/SPEC.md +68 -56
- package/dist/ByteSource.d.ts +6 -0
- package/dist/ByteSource.d.ts.map +1 -0
- package/dist/ByteSource.js +2 -0
- package/dist/ByteSource.js.map +1 -0
- package/dist/FileByteSource.d.ts +9 -0
- package/dist/FileByteSource.d.ts.map +1 -0
- package/dist/FileByteSource.js +42 -0
- package/dist/FileByteSource.js.map +1 -0
- package/dist/GeneratedByteSource.d.ts +8 -0
- package/dist/GeneratedByteSource.d.ts.map +1 -0
- package/dist/GeneratedByteSource.js +21 -0
- package/dist/GeneratedByteSource.js.map +1 -0
- package/dist/Manifest.d.ts.map +1 -1
- package/dist/Manifest.js +4 -25
- package/dist/Manifest.js.map +1 -1
- package/dist/MetadataOptions.d.ts +10 -0
- package/dist/MetadataOptions.d.ts.map +1 -0
- package/dist/MetadataOptions.js +41 -0
- package/dist/MetadataOptions.js.map +1 -0
- package/dist/MimetypeClassifier.d.ts +3 -0
- package/dist/MimetypeClassifier.d.ts.map +1 -1
- package/dist/MimetypeClassifier.js +6 -0
- package/dist/MimetypeClassifier.js.map +1 -1
- package/dist/OutputScheme.d.ts +0 -1
- package/dist/OutputScheme.d.ts.map +1 -1
- package/dist/OutputScheme.js +4 -12
- package/dist/OutputScheme.js.map +1 -1
- package/dist/ResourceNames.d.ts +5 -0
- package/dist/ResourceNames.d.ts.map +1 -0
- package/dist/ResourceNames.js +17 -0
- package/dist/ResourceNames.js.map +1 -0
- package/dist/Results.d.ts +0 -1
- package/dist/Results.d.ts.map +1 -1
- package/dist/Results.js.map +1 -1
- package/dist/ctx.d.ts +4 -7
- package/dist/ctx.d.ts.map +1 -1
- package/dist/handler.d.ts +4 -1
- package/dist/handler.d.ts.map +1 -1
- package/dist/index.d.ts +9 -3
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +4 -0
- package/dist/index.js.map +1 -1
- package/dist/types.d.ts +6 -12
- package/dist/types.d.ts.map +1 -1
- package/package.json +4 -4
package/README.md
CHANGED
|
@@ -85,13 +85,11 @@ static manifest: SchemeManifest = {
|
|
|
85
85
|
lineAnchors: true, // publish stable line anchors without EDIT
|
|
86
86
|
textEditScopes: true, // use the standard text-edit capability
|
|
87
87
|
glyph: "🦊", // optional client-only display marker
|
|
88
|
-
example: "### READ0 (foo://thing/42)", // concise hot-path operation example set
|
|
89
88
|
documentation, // deep doc from docs/foo.md, pulled through the skills catalog
|
|
90
89
|
};
|
|
91
90
|
```
|
|
92
91
|
|
|
93
|
-
- **`
|
|
94
|
-
- **`documentation`** — the **deep doc** (ops, channels, edge cases) with an exact H2 `Summary`. The consumer materializes it as a pull-able `worker://~/_plurnk/plurnk/<name>.md` entry: FIND catalogs the summary and the model READs the body on demand, off the hot path. It is analogous to executor supplemental `details`. **Convention:** keep it in a **`docs/<name>.md`** file (root) and load it at module init with the snippet above — `../` resolves the same from `src/` (test) and `dist/` (built); add `docs/**/*` to `files`. A missing file fails-hard at import.
|
|
92
|
+
- **`documentation`** — the **deep doc** (ops, channels, edge cases) with an exact H2 `Summary`. The consumer materializes it as a pull-able `worker:///_plurnk/plurnk/<name>.md` entry: FIND catalogs the summary and the model READs the body on demand, off the hot path. It is analogous to executor supplemental `details`. **Convention:** keep it in a **`docs/<name>.md`** file (root) and load it at module init with the snippet above — `../` resolves the same from `src/` (test) and `dist/` (built); add `docs/**/*` to `files`. A missing file fails-hard at import.
|
|
95
93
|
- **`glyph`** — optional opaque client display metadata. It is discoverable through the client capability wire and never rendered into model teaching; clients choose fallback, fonts, and theme.
|
|
96
94
|
|
|
97
95
|
Declare `lineAnchors: true` when stable textual representations should publish
|
|
@@ -103,9 +101,9 @@ any model-facing line anchor; scheme handlers receive numeric
|
|
|
103
101
|
`ctx.entries.operations.editBatch`; it owns the anchor recheck and atomic
|
|
104
102
|
collision guard.
|
|
105
103
|
|
|
106
|
-
### 4.
|
|
104
|
+
### 4. Discoverable references
|
|
107
105
|
|
|
108
|
-
|
|
106
|
+
Put operation contracts and examples in `documentation`. Its `## Summary` orients the model during FIND; the model READs the reference when it needs the details. No second catalog is injected into every packet.
|
|
109
107
|
|
|
110
108
|
That's the whole contract: declare, `implements SchemeHandler`, manifest with self-doc. Publish, install, discovered.
|
|
111
109
|
|
|
@@ -113,10 +111,10 @@ That's the whole contract: declare, `implements SchemeHandler`, manifest with se
|
|
|
113
111
|
|
|
114
112
|
### Types
|
|
115
113
|
|
|
116
|
-
- Manifest: `SchemeManifest` (including capability `traits`, `
|
|
114
|
+
- Manifest: `SchemeManifest` (including capability `traits`, `documentation`, and client-only `glyph`) and `WriterTier`; contracts-owned `LoopPolicy` / `DEFAULT_LOOP_POLICY` are re-exported.
|
|
117
115
|
- Behavior contract: `SchemeHandler`, numeric-only `ResolvedEditStatement` (also exported as `EditStatement`), and optional `PacketSectionTransformer` (`PacketSectionDraft`); the remaining re-exported scheme-facing grammar types (`PlurnkStatement` + per-op statements + `ParsedPath` / `LocalPath` / `UrlPath`).
|
|
118
116
|
- Results: universal `SchemeResult` plus RFC 9457 `ProblemDetails`, optional `EntryResult` / `ProposalResult` / `PassthroughResult` authoring shapes, `SchemeResultBase`, matcher navigation `MatchEvidence`, and target-shaped standard `EntryFindResult` pagination/count metadata.
|
|
119
|
-
- Capability ctx: `SchemeCtx` and its entry, channel, notification, projection, and subscription domains. Entry schemes
|
|
117
|
+
- Capability ctx: `SchemeCtx` and its entry, channel, notification, projection, and subscription domains. Entry schemes reuse typed standard operations at canonical workspace addresses.
|
|
120
118
|
|
|
121
119
|
### Helpers (`export default class`, static methods)
|
|
122
120
|
|
package/SPEC.md
CHANGED
|
@@ -23,8 +23,6 @@ class Notes {
|
|
|
23
23
|
channels: { body: "text/markdown", preview: "text/markdown" },
|
|
24
24
|
defaultChannel: "body",
|
|
25
25
|
category: "data",
|
|
26
|
-
entryOwner: "worker",
|
|
27
|
-
inherit: "snapshot",
|
|
28
26
|
writableBy: ["model", "client"],
|
|
29
27
|
volatile: false,
|
|
30
28
|
modelVisible: true,
|
|
@@ -37,31 +35,26 @@ class Notes {
|
|
|
37
35
|
| Field | Constraint |
|
|
38
36
|
|---|---|
|
|
39
37
|
| `name` | Matches `package.json#plurnk.name`. Addressing/routing identity (the URI prefix). |
|
|
40
|
-
| §manifest-authority `authority?` | URI-authority disposition: `"namespace"` folds authored authority into pathname; `"resource"` preserves it as the entry authority
|
|
38
|
+
| §manifest-authority `authority?` | URI-authority disposition: `"namespace"` folds authored authority into pathname; `"resource"` preserves it as the entry authority. Absent means `"namespace"`. |
|
|
41
39
|
| `channels` | `Record<channelName, mimetype>`. Channel names lowercase. Empty = dynamic per-call. |
|
|
42
40
|
| `defaultChannel` | Channel targeted when path has no `#fragment`. Dynamic-channel schemes may name it without fixing a mimetype; empty means no default. |
|
|
43
41
|
| `category` | `"data"` (entry-bearing) \| `"logging"` (`log://` rows) \| `"control"` (owns no entries). |
|
|
44
|
-
| §manifest-entry-owner `entryOwner` | Required on data schemes: `"commons"` binds the reserved workspace-shared principal; `"worker"` binds the effective calling Worker; `"resolved"` requires `resolveEntryAddress` to select and authorize the principal. URI `authority` remains an independent resource coordinate. Forbidden on non-data schemes. |
|
|
45
|
-
| §manifest-entry-inheritance `inherit` | Required on data schemes: `"snapshot"` copies quiescent Worker-owned entries into a FORK, `"rederive"` omits stored bytes and lets the child materializer rebuild them from inherited Functionality, and `"none"` carries no entry. Commons-owned entries remain shared live and are never copied. Forbidden on non-data schemes. |
|
|
46
42
|
| `writableBy` | Subset of `["model", "client", "_plurnk", "plugin"]`; empty declares an immutable scheme. Consumer returns 403 for outside-set writes. |
|
|
47
43
|
| `volatile` | Boolean. |
|
|
48
44
|
| `modelVisible` | Boolean. |
|
|
49
45
|
| `folderScopes?` | `true` declares that a trailing slash on FIND is a collection scope. Absent/false means `/` is ordinary resource syntax. |
|
|
50
46
|
| `lineAnchors?` | `true` publishes and accepts shared line anchors for stable textual representations without declaring EDIT support. |
|
|
51
|
-
| `textEditScopes?` | `true` declares the shared textual EDIT coordinate and collision contract.
|
|
52
|
-
| §manifest-metadata-modifier `metadataModifier?` | `true` declares that the scheme owns the
|
|
47
|
+
| `textEditScopes?` | `true` declares the shared textual EDIT coordinate and collision contract. It implies published anchors only on resources authorized for model writes by {§entry-address-resolution}; handlers receive only numeric coordinates and route standard entry mutation through `ctx.entries.operations.editBatch`. |
|
|
48
|
+
| §manifest-metadata-modifier `metadataModifier?` | `true` declares that the scheme owns the `[metadata]` modifier (one JSON array of option objects). Absent/false rejects it before handler invocation. |
|
|
53
49
|
| §manifest-capability-traits `traits?` | Unique lowercase capability facts (for example `web` or `interaction`). The scheme declares facts only; the consumer's general capability-policy cascade decides admission. |
|
|
54
|
-
| `
|
|
55
|
-
| `documentation?` | The **deep doc** (semantics / channels / edge cases), with an exact H2 `Summary` for discovery. Consumer materializes it as a pull-able `worker://~/_plurnk/plurnk/<name>.md` entry READ on demand; never hits the hot path. Analogous to executor supplemental `details`. |
|
|
50
|
+
| `documentation?` | The **deep doc** (semantics / channels / edge cases), with an exact H2 `Summary` for discovery. Consumer materializes it as a pull-able `worker:///_plurnk/plurnk/<name>.md` entry READ on demand; never hits the hot path. Analogous to executor supplemental `details`. |
|
|
56
51
|
| §manifest-client-display `glyph?` | Non-empty opaque client presentation glyph. It is projected through {§client-display-capabilities}; omission delegates identity fallback to the client. It never enters model teaching. |
|
|
57
|
-
| `foldedByDefault?` | Entries land body-suppressed, off the ranked manifest surface (READable via address, not poured into the ranked view). For executor-output streams (`<tag>://`) — containment one level up. Absent/false → ranked/first-class. |
|
|
58
52
|
| `storedScheme?` | Value persisted to `entries.scheme`, which may differ from the addressing `name`. Absent defaults to `name`. It must be a non-null string because every persisted identity component is non-null. |
|
|
59
53
|
|
|
60
|
-
The manifest is closed: unknown top-level fields fail admission.
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
a child is distinct from permitting an actor to address an ancestor's entry.
|
|
54
|
+
The manifest is closed: unknown top-level fields fail admission. Every entry
|
|
55
|
+
belongs to the operation's workspace. Resource coordinates and intrinsic
|
|
56
|
+
mutability are resolved through {§entry-address-resolution}; manifests do not
|
|
57
|
+
declare per-worker ownership, visibility, or inheritance policy.
|
|
65
58
|
|
|
66
59
|
{§manifest-metadata-modifier} is the scheme's explicit opt-in to
|
|
67
60
|
{§scheme-metadata-modifier}. Core never parses or moves metadata into the
|
|
@@ -70,6 +63,10 @@ resource preparation receives the same ordered raw blocks on
|
|
|
70
63
|
`request.metadata`. A present modifier on any scheme that did not opt in is a
|
|
71
64
|
non-retryable `400 scheme-metadata-unsupported`, and the handler is not called.
|
|
72
65
|
|
|
66
|
+
The invoked handler owns this admission, not an address it consumes internally.
|
|
67
|
+
EXEC delegates its blocks to the selected executor under {§executor-metadata};
|
|
68
|
+
its source acquisition is a separate READ without inherited EXEC metadata.
|
|
69
|
+
|
|
73
70
|
{§manifest-capability-traits} `traits` are closed manifest data, not a policy
|
|
74
71
|
channel. Names match `^[a-z][a-z0-9-]*$`, are unique, and carry through a
|
|
75
72
|
synthesized runtime-output scheme. A handler never interprets policy or a named
|
|
@@ -81,12 +78,37 @@ Proposal behavior is orthogonal to capabilities. A handler proposes by
|
|
|
81
78
|
returning 202; the consumer's proposal lifecycle decides whether the client or
|
|
82
79
|
the loop's proposal disposition resolves it, with timeout as a lifecycle bound.
|
|
83
80
|
|
|
84
|
-
§manifest-self-doc **
|
|
81
|
+
§manifest-self-doc **Discoverable scheme references.** `documentation` contains the scheme's operation contracts and examples. The consumer materializes it as **`worker:///_plurnk/plurnk/<name>.md`**: FIND projects its exact H2 `Summary`, and READ retrieves its body on demand. There is no separate injected example catalog. Reference availability follows the registered capabilities, not illustrative operations. `glyph` is client display metadata under {§manifest-client-display}, not self-documentation.
|
|
85
82
|
|
|
86
|
-
**Authoring convention — `docs/<name>.md`.** The contract field stays a plain `string`, but a sibling SHOULD keep the deep doc in a **`docs/<name>.md`** file at the package root rather than inline, and load it into the manifest at module init — e.g. `documentation: await readFile(new URL("../docs/<name>.md", import.meta.url), "utf-8")` (top-level await; `../` resolves identically from `src/` in test and `dist/` once built). Ship it by adding `docs/**/*` to `files`. This keeps prose out of the handler source and gives editors real Markdown; the consumer materializes it at `worker
|
|
83
|
+
**Authoring convention — `docs/<name>.md`.** The contract field stays a plain `string`, but a sibling SHOULD keep the deep doc in a **`docs/<name>.md`** file at the package root rather than inline, and load it into the manifest at module init — e.g. `documentation: await readFile(new URL("../docs/<name>.md", import.meta.url), "utf-8")` (top-level await; `../` resolves identically from `src/` in test and `dist/` once built). Ship it by adding `docs/**/*` to `files`. This keeps prose out of the handler source and gives editors real Markdown; the consumer materializes it at `worker:///_plurnk/plurnk/<name>.md`. A missing file fails-hard at import (no silent empty doc).
|
|
87
84
|
|
|
88
85
|
## §2 Interface
|
|
89
86
|
|
|
87
|
+
§resource-publication-names **Published resources have names, not invented ordinals.**
|
|
88
|
+
`ResourceNames` allocates one URI-encoded component per resource: a supplied name
|
|
89
|
+
is preserved; no name produces eight hexadecimal characters. A repeated name
|
|
90
|
+
gets an eight-character hash suffix, never overwrites a sibling. Passing stable
|
|
91
|
+
identities in collection order reconstructs the same names. Allocation neither
|
|
92
|
+
creates entries nor changes their ownership or publication policy.
|
|
93
|
+
|
|
94
|
+
§scheme-source-bytes **Original bytes retain the full resource identity.**
|
|
95
|
+
`byteSource({authority, pathname}, ctx)` supplies a `ByteSource`: `size()` returns
|
|
96
|
+
the byte count or `null` for an absent source; `read(first, last)` returns the
|
|
97
|
+
one-based inclusive byte window. The context carries the invoking actor and
|
|
98
|
+
workspace. READ, FIND, transfers, and native model attachments
|
|
99
|
+
use this same source contract. Public `EntryData` also accepts `bytes` beside
|
|
100
|
+
an empty `content`; the consumer owns its storage encoding. Binary channels retain
|
|
101
|
+
those bytes exactly. Textual channels accept exact UTF-8 (including BOM and line
|
|
102
|
+
endings); invalid text bytes fail before replacing the stored resource.
|
|
103
|
+
|
|
104
|
+
An optional `nativePath()` identifies the original regular file, or `null` when
|
|
105
|
+
absent. It never creates a copy. The resource owner resolves it under the same
|
|
106
|
+
identity and admission as the byte source; only an admitted consumer may use
|
|
107
|
+
it. `FileByteSource` implements this for filesystem-backed schemes. Consumers
|
|
108
|
+
must not substitute the file for a selected derived channel. Native execution
|
|
109
|
+
preserves the file's name and surrounding filesystem; it grants no new
|
|
110
|
+
capability, changes no working directory, and performs no automatic copying.
|
|
111
|
+
|
|
90
112
|
Sister scheme handlers implement op methods consumed by plurnk-service via
|
|
91
113
|
dispatch. The consumer owns READ for every `category: "data"` scheme and owns
|
|
92
114
|
exact-target FIND over its canonical representation; no handler method can
|
|
@@ -102,7 +124,7 @@ import type { EditBatchResult, ResolvedEditStatement, SchemeAddressCtx, SchemeHa
|
|
|
102
124
|
export interface SchemeHandler {
|
|
103
125
|
ready?(): Promise<void>;
|
|
104
126
|
close?(): Promise<void>;
|
|
105
|
-
resolveEntryAddress?(target: ParsedPath, ctx: SchemeAddressCtx): Promise<EntryAddress | SchemeResult | null>;
|
|
127
|
+
resolveEntryAddress?(target: ParsedPath, ctx: SchemeAddressCtx, access?: "read" | "write"): Promise<EntryAddress | SchemeResult | null>;
|
|
106
128
|
prepareRepresentation?(
|
|
107
129
|
request: RepresentationPreparationRequest,
|
|
108
130
|
ctx: SchemeCtx,
|
|
@@ -134,8 +156,8 @@ their mutation adapter.
|
|
|
134
156
|
|
|
135
157
|
§read-preparation `prepareRepresentation?` is the optional, operation-neutral
|
|
136
158
|
acquisition seam for one exact resource. Core first resolves its canonical
|
|
137
|
-
authority
|
|
138
|
-
that exact coordinate
|
|
159
|
+
authority and pathname, binds `ctx.entries`/channels/subscriptions to
|
|
160
|
+
that exact workspace coordinate, and removes the channel fragment. The request
|
|
139
161
|
is exactly `{ target, metadata, authority, pathname }`: the target remains pure
|
|
140
162
|
resource identity while `metadata` is the exact opaque modifier or `null`.
|
|
141
163
|
READ coordinates, FIND matchers, the selected channel, and operation intent are
|
|
@@ -171,32 +193,18 @@ is selected from the same channels used by READ and exact FIND. A selected
|
|
|
171
193
|
channel's producer failure aborts before destination mutation; successful
|
|
172
194
|
non-`200` content remains eligible for transfer.
|
|
173
195
|
|
|
174
|
-
§entry-address-resolution `resolveEntryAddress?`
|
|
175
|
-
law for client and model operations. Core removes the channel fragment and
|
|
176
|
-
target-slot pathname aliases {§path-parentheses} before invocation; query and
|
|
177
|
-
other identity components remain exact. The hook receives capability-free
|
|
178
|
-
`SchemeAddressCtx`, so it cannot access storage before Core has bound a
|
|
179
|
-
principal. Its return depends on {§manifest-entry-owner}:
|
|
196
|
+
§entry-address-resolution `resolveEntryAddress?` defines canonical addresses for client and model operations. Core removes the channel fragment and target-slot escapes {§path-parentheses} before invocation; other identity components remain exact. The hook receives capability-free `SchemeAddressCtx` and returns only the resource coordinate, never a storage principal. The optional access argument defaults to `read`; `write` checks intrinsic mutability before a mutation or proposal. Resolution is observational and has no effects.
|
|
180
197
|
|
|
181
|
-
|
|
|
198
|
+
| Return | Meaning |
|
|
182
199
|
|---|---|
|
|
183
|
-
|
|
|
184
|
-
|
|
|
185
|
-
|
|
|
186
|
-
| `
|
|
187
|
-
|
|
188
|
-
|
|
189
|
-
|
|
190
|
-
|
|
191
|
-
then constructs `SchemeCtx`; every entry, channel, notification, subscription,
|
|
192
|
-
mutation, proposal-application, client-read, and cancellation path uses the
|
|
193
|
-
same binding. A plugin never receives or returns database owner IDs. Core-owned
|
|
194
|
-
adapters may resolve a named Worker to a private ID, but no public extension
|
|
195
|
-
can. A `resolved` scheme owns cross-actor authorization: unauthorized and
|
|
196
|
-
unknown principals are indistinguishable unless its public protocol says
|
|
197
|
-
otherwise. No storage capability accepts an owner override.
|
|
198
|
-
|
|
199
|
-
A sibling does `export default class X implements SchemeHandler` (with `static manifest: SchemeManifest`) and gets compile-time signature checking. Every registered handler exposes either that static manifest or an instance `manifest` for dynamically derived identities; `Manifest.of` validates the complete resolved declaration and its registration name before the handler becomes dispatchable. The interface is the handler-delegable subset of grammar's operation union. `LOOK`/`BUFF` are client-facing operations, log-targeted KILL is core-owned curation, and WORK/FORK/PLAN are core-owned worker/program operations; none is dispatchable to a plugin scheme. **The statement + path types (`ReadStatement`, `SendStatement`, `UrlPath`, …) are re-exported from this barrel**, so a sibling depends on and peers (`^1`) ONLY `@plurnk/plurnk-schemes` — grammar rides underneath as the framework's transitive dep (§3).
|
|
200
|
+
| Hook absent | Use the standard coordinate from {§manifest-authority}. |
|
|
201
|
+
| `{ authority, pathname }` | Bind this exact resource in the operation's workspace. |
|
|
202
|
+
| Non-success `SchemeResult` | Preserve the expected address or mutability refusal exactly. |
|
|
203
|
+
| `null` | No resource at this selector. |
|
|
204
|
+
|
|
205
|
+
Entry, channel, notification, subscription, mutation, proposal, client-read, and cancellation capabilities use that same workspace coordinate. Caller identity supplies provenance, not resource ownership or an alternate namespace. READ checks model write eligibility only to publish EDIT anchors ({§line-anchor-write-authority}); COPY checks the destination and MOVE also checks source mutability before any destination effect.
|
|
206
|
+
|
|
207
|
+
A sibling does `export default class X implements SchemeHandler` (with `static manifest: SchemeManifest`) and gets compile-time signature checking. Every registered handler exposes either that static manifest or an instance `manifest` for dynamically derived identities; `Manifest.of` validates the complete resolved declaration and its registration name before the handler becomes dispatchable. The interface is the handler-delegable subset of grammar's operation union. `LOOK`/`BUFF` are client-facing operations, log-targeted KILL is core-owned curation, and WORK/FORK and the native dispositions are core-owned worker/program operations; none is dispatchable to a plugin scheme. **The statement + path types (`ReadStatement`, `SendStatement`, `UrlPath`, …) are re-exported from this barrel**, so a sibling depends on and peers (`^1`) ONLY `@plurnk/plurnk-schemes` — grammar rides underneath as the framework's transitive dep (§3).
|
|
200
208
|
|
|
201
209
|
§handler-lifecycle A registered handler object is a process-lived shared
|
|
202
210
|
instance and may receive overlapping operation calls. Retained handler state is
|
|
@@ -304,14 +312,14 @@ does not reverse a landed mutation.
|
|
|
304
312
|
- Manifest: `SchemeManifest`, `SchemeAuthority`, `EntryCoordinate`, and `WriterTier`.
|
|
305
313
|
- Mutation receipts: `EditBatchResult`, `EditBatchReceipt`, `EditReceipt`, `EditEffectReceipt`, `EditReceiptUnit`, and `ParseIssueTransition`.
|
|
306
314
|
- §scheme-packet-transform **Packet-section transformation.** A scheme may implement `transformSections(sections: PacketSectionDraft[]) → PacketSectionDraft[] | Promise<…>` to add, remove, or reorder sections before core measures the packet. The exact draft shape is `{ name; slot: "system"|"user"; header: string|null; content }`; no token measurement exists at this boundary. Core invokes implementations in registration order and applies `PacketSections.assertDrafts` to the initial list and every returned list. Names are non-empty and unique within the packet.
|
|
307
|
-
- Behavior contract: `SchemeHandler` (§2). Scheme-facing grammar types re-exported here so siblings pin only this package: `PlurnkStatement` + the per-op statement types (`ReadStatement`, `FindStatement`, `
|
|
315
|
+
- Behavior contract: `SchemeHandler` (§2). Scheme-facing grammar types re-exported here so siblings pin only this package: `PlurnkStatement` + the per-op statement types (`ReadStatement`, `FindStatement`, `CopyStatement`, `MoveStatement`, `SendStatement`, `ExecStatement`, `WorkStatement`, `ForkStatement`, `KillStatement`, `ContinuationStatement`) and path types (`ParsedPath` = `LocalPath` | `UrlPath`). EDIT uses `ResolvedEditStatement`, also exported under the compatibility name `EditStatement`, under {§resolved-edit-statement}.
|
|
308
316
|
- Target syntax: contracts-owned `PathSyntax` is re-exported for the shared exact-versus-path-glob classifier {§path-glob}.
|
|
309
317
|
- Discovery: `SchemeDiscovery` (behavior class) with `SchemeInfo` / `SchemeDiscoveryResult` / `DiscoverOptions` (§6).
|
|
310
318
|
- §executor-scheme-output Executor-scheme ("an executor is a scheme"): `OutputScheme.manifestFromRuntime(decl)` derives a read-only-output `SchemeManifest` from an executor's `RuntimeDecl` (zero scheme-authoring). Executor output is a canonical entry and therefore inherits core's exact READ projection under {§read-preparation}; no executor-specific READ helper exists. `Summarize.summarize(content, mimetype)` -> `OrientIndex` is the structural-only EXEC-receipt index (no content - universal-receipt containment). A per-tag executor-scheme supplies its manifest via instance `get manifest()` (§2 `SchemeHandler.manifest?`).
|
|
311
319
|
- Results: `SchemeResult` is the universal operation-result contract. Statuses below 400 carry no `problem`; statuses 400–599 require RFC 9457 `ProblemDetails`, and the legacy `error` member is forbidden. `EntryResult`, `ProposalResult`, and `PassthroughResult` are optional conventional shapes, not engine routing discriminators. Guards inspect those optional shapes; proposal routing itself is engine-owned and follows status plus operation semantics.
|
|
312
320
|
- Standard `EntryFindResult` exposes only its paged `results`, complete `matchingPathCount` / `matchLocationCount`, `itemsWeightTotal` / `returnedItemsWeightTotal`, and typed range. `EntryCatalogChannel.weight` and `EntryCatalogScope.weight` are model-independent curation weights; model-facing JSON may project them under its own vocabulary. Each resource-mode `EntryCatalogItem` is a nonempty, default-first array of flat `EntryCatalogChannel` objects; a scope is the one-element `EntryCatalogScopeGroup`. Exact matcher mode returns flat `MatchEvidence` locations. Pagination is the materialization bound; no path-owning channel wrapper, hidden `matches`, `pathnames`, or overflow-only result collection exists.
|
|
313
321
|
- §scheme-catalog-parse-issues An `EntryCatalogChannel` may carry a positive `parseIssues` count when its exact content projection reported parser recovery sites. Zero and unavailable evidence are omitted. This is advisory metadata and never a validity gate or operation failure.
|
|
314
|
-
- Capability ctx (see §3.bis): `SchemeCtx`, `StreamSubscription`, and the domain capabilities. Entry authors additionally receive `EntryOperationCaps`,
|
|
322
|
+
- Capability ctx (see §3.bis): `SchemeCtx`, `StreamSubscription`, and the domain capabilities. Entry authors additionally receive `EntryOperationCaps`, `EntryAddress`, and typed standard-operation results. `editBatch` receives the numeric splices of one operation for one canonical resource and channel; it validates against one snapshot and commits one revision or none ({§edit-batch}). Core calls it separately for each authored EDIT, in execution order.
|
|
315
323
|
|
|
316
324
|
Behavior ships as `export default class` (one class per file, static methods) — the ecosystem class paradigm. Type-only modules, the barrel, and the frozen `DEFAULT_LOOP_POLICY` constant are the only non-class files.
|
|
317
325
|
|
|
@@ -333,7 +341,7 @@ entry `authority` and `pathname`, a fragmentless and credential-free transport
|
|
|
333
341
|
| Userinfo | No | No | No |
|
|
334
342
|
|
|
335
343
|
The canonical storage coordinate is authority `<host>[:<port>]` plus pathname
|
|
336
|
-
`<path>[?<query>]`, keyed together with workspace
|
|
344
|
+
`<path>[?<query>]`, keyed together with workspace and the exact
|
|
337
345
|
addressed scheme. `NetworkAddress.render({ scheme, authority, pathname })` is
|
|
338
346
|
its model-facing inverse: it applies the Plurnk lexical target spelling
|
|
339
347
|
{§path-parentheses} after reconstructing the exact address. Transport URLs and
|
|
@@ -348,6 +356,7 @@ is never a `NetworkAddress` component.
|
|
|
348
356
|
- `MimetypeClassifier.isHtml(mimetype)` — recognizes the normalized web-projection family: `text/html` and `application/xhtml+xml`.
|
|
349
357
|
- `MimetypeClassifier.isJson(mimetype)` - `application/json` plus `+json` variants, used only by result summarization.
|
|
350
358
|
- `MimetypeClassifier.normalizeAutoText(mimetype)` — `text/plain` / null / undefined → `TEXT_PRIMITIVE_MIMETYPE` (`text/markdown`).
|
|
359
|
+
- §mimetype-verbatim-transfer `MimetypeClassifier.isTransferCompatible(source, destination, sourceClassification?)` permits verbatim COPY/MOVE between equal mimetypes, or from any textual source into `text/plain` or `text/markdown`. Unequal structured or binary destination types remain incompatible. Configured consumers supply the source's resolved `{ binary }` classification; registry-free callers use the shared taxonomy. Compatibility never converts content or changes either channel's declared type.
|
|
351
360
|
- `TEXT_PRIMITIVE_MIMETYPE` — `"text/markdown"` (named export from the same module).
|
|
352
361
|
|
|
353
362
|
### §scheme-projection Projection capability
|
|
@@ -482,21 +491,26 @@ database schemas, prepared-statement names, and private service modules.
|
|
|
482
491
|
**Interfaces only**: this repo exports the contract and the consumer injects
|
|
483
492
|
its implementation.
|
|
484
493
|
|
|
485
|
-
`SchemeCtx` carries per-dispatch identity (`workspaceId`/`workerId`/`
|
|
494
|
+
`SchemeCtx` carries per-dispatch identity (`workspaceId`/`workerId`/`loopId`/`turnId`/`writer`/`signal`) plus **six live capability namespaces** replacing raw `db`:
|
|
486
495
|
|
|
487
|
-
§scheme-ctx-
|
|
496
|
+
§scheme-ctx-workspace-environment `workspaceId` selects shared Functionality and admission policy; `workerId` attributes the operation and selects its journal. Core binds the addressed resource before supplying this context. Handlers must use that binding rather than reinterpret caller identity as resource ownership ({§runtime-resource-binding}).
|
|
488
497
|
|
|
489
498
|
- `entries` — direct storage over the scheme and authority already bound by core
|
|
490
|
-
(`read`/`write`/`delete`) plus `operations`, the standard PLURNK
|
|
491
|
-
`
|
|
499
|
+
(`address`/`read`/`write`/`delete`) plus `operations`, the standard PLURNK
|
|
500
|
+
`EDIT`/`FIND`/`SEND` implementations for entry-bearing schemes. READ selection
|
|
501
|
+
and model-facing projection belong to the consumer's universal dispatch
|
|
502
|
+
({§universal-read-composition}); `entries.read` returns stored channels, not
|
|
503
|
+
a projected READ receipt.
|
|
504
|
+
`address(pathname)` returns the bound resource's URI without fetching or
|
|
505
|
+
creating it. Links preserve the bound resource authority, never a
|
|
506
|
+
caller-relative namespace.
|
|
492
507
|
A write may omit channel state to select the `static` default; a successful
|
|
493
508
|
storage read always returns each channel's persisted lifecycle state.
|
|
494
509
|
Optional `attributes` are scheme-private durable metadata. They are scoped to
|
|
495
510
|
that entry, replaced only when explicitly written, and never projected into
|
|
496
511
|
model content, catalogs, or client entry data.
|
|
497
|
-
Standard operations are bound to the canonical
|
|
498
|
-
handler receives this context.
|
|
499
|
-
are not part of the plugin contract. A handler may implement its own op method
|
|
512
|
+
Standard operations are bound to the canonical workspace coordinate selected
|
|
513
|
+
before the handler receives this context. A handler may implement its own op method
|
|
500
514
|
instead. In particular, a handler with `find()` owns FIND; one without it
|
|
501
515
|
receives the standard stored-entry behavior.
|
|
502
516
|
- `channels` — content writes + state (`append`/`replace`/`setState`).
|
|
@@ -528,8 +542,6 @@ This permits one multi-channel producer to preserve successful evidence beside
|
|
|
528
542
|
an independently failed representation without inventing another settlement
|
|
529
543
|
path or reducing a result to a state label.
|
|
530
544
|
|
|
531
|
-
There is **no `visibility` capability**: entry-level SHOW/HIDE was removed in the index/visibility teardown — SHOW/HIDE now collapse/expand `log://` rows, a log-side concern with no entry-visibility for a scheme to set.
|
|
532
|
-
|
|
533
545
|
The consumer passes exactly this public context to every handler. Bundled
|
|
534
546
|
adapters that also implement daemon-owned lifecycle behavior receive those
|
|
535
547
|
collaborators separately at construction or binding time; consumers must not
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ByteSource.d.ts","sourceRoot":"","sources":["../src/ByteSource.ts"],"names":[],"mappings":"AAEA,MAAM,WAAW,UAAU;IACvB,IAAI,IAAI,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,CAAC;IAC/B,IAAI,CAAC,KAAK,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,UAAU,CAAC,CAAC;IACtD,UAAU,CAAC,IAAI,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,CAAC;CACzC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ByteSource.js","sourceRoot":"","sources":["../src/ByteSource.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import type { ByteSource } from "./ByteSource.ts";
|
|
2
|
+
export default class FileByteSource implements ByteSource {
|
|
3
|
+
#private;
|
|
4
|
+
constructor(locate: () => Promise<string | null>);
|
|
5
|
+
nativePath(): Promise<string | null>;
|
|
6
|
+
size(): Promise<number | null>;
|
|
7
|
+
read(start: number, end: number): Promise<Uint8Array>;
|
|
8
|
+
}
|
|
9
|
+
//# sourceMappingURL=FileByteSource.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"FileByteSource.d.ts","sourceRoot":"","sources":["../src/FileByteSource.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAGlD,MAAM,CAAC,OAAO,OAAO,cAAe,YAAW,UAAU;;IAGrD,YAAY,MAAM,EAAE,MAAM,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,EAE/C;IAEK,UAAU,IAAI,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,CAUzC;IAEK,IAAI,IAAI,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,CAGnC;IAEK,IAAI,CAAC,KAAK,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,UAAU,CAAC,CAW1D;CACJ"}
|
|
@@ -0,0 +1,42 @@
|
|
|
1
|
+
import { open, stat } from "node:fs/promises";
|
|
2
|
+
// {§scheme-source-bytes} Location and original bytes share their resource owner.
|
|
3
|
+
export default class FileByteSource {
|
|
4
|
+
#locate;
|
|
5
|
+
constructor(locate) {
|
|
6
|
+
this.#locate = locate;
|
|
7
|
+
}
|
|
8
|
+
async nativePath() {
|
|
9
|
+
try {
|
|
10
|
+
const file = await this.#locate();
|
|
11
|
+
if (file === null)
|
|
12
|
+
return null;
|
|
13
|
+
if (!(await stat(file)).isFile())
|
|
14
|
+
throw new TypeError("The byte source is not a regular file.");
|
|
15
|
+
return file;
|
|
16
|
+
}
|
|
17
|
+
catch (cause) {
|
|
18
|
+
if (cause?.code === "ENOENT")
|
|
19
|
+
return null;
|
|
20
|
+
throw cause;
|
|
21
|
+
}
|
|
22
|
+
}
|
|
23
|
+
async size() {
|
|
24
|
+
const file = await this.nativePath();
|
|
25
|
+
return file === null ? null : (await stat(file)).size;
|
|
26
|
+
}
|
|
27
|
+
async read(start, end) {
|
|
28
|
+
const file = await this.nativePath();
|
|
29
|
+
if (file === null)
|
|
30
|
+
throw new Error("The byte source no longer exists.");
|
|
31
|
+
const handle = await open(file, "r");
|
|
32
|
+
try {
|
|
33
|
+
const buffer = Buffer.alloc(end - start + 1);
|
|
34
|
+
const { bytesRead } = await handle.read(buffer, 0, buffer.length, start - 1);
|
|
35
|
+
return buffer.subarray(0, bytesRead);
|
|
36
|
+
}
|
|
37
|
+
finally {
|
|
38
|
+
await handle.close();
|
|
39
|
+
}
|
|
40
|
+
}
|
|
41
|
+
}
|
|
42
|
+
//# sourceMappingURL=FileByteSource.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"FileByteSource.js","sourceRoot":"","sources":["../src/FileByteSource.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE,MAAM,kBAAkB,CAAC;AAG9C,iFAAiF;AACjF,MAAM,CAAC,OAAO,OAAO,cAAc;IACtB,OAAO,CAA+B;IAE/C,YAAY,MAAoC;QAC5C,IAAI,CAAC,OAAO,GAAG,MAAM,CAAC;IAC1B,CAAC;IAED,KAAK,CAAC,UAAU;QACZ,IAAI,CAAC;YACD,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,OAAO,EAAE,CAAC;YAClC,IAAI,IAAI,KAAK,IAAI;gBAAE,OAAO,IAAI,CAAC;YAC/B,IAAI,CAAC,CAAC,MAAM,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,MAAM,EAAE;gBAAE,MAAM,IAAI,SAAS,CAAC,wCAAwC,CAAC,CAAC;YAChG,OAAO,IAAI,CAAC;QAChB,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACb,IAAK,KAA+B,EAAE,IAAI,KAAK,QAAQ;gBAAE,OAAO,IAAI,CAAC;YACrE,MAAM,KAAK,CAAC;QAChB,CAAC;IACL,CAAC;IAED,KAAK,CAAC,IAAI;QACN,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,UAAU,EAAE,CAAC;QACrC,OAAO,IAAI,KAAK,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,MAAM,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC;IAC1D,CAAC;IAED,KAAK,CAAC,IAAI,CAAC,KAAa,EAAE,GAAW;QACjC,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,UAAU,EAAE,CAAC;QACrC,IAAI,IAAI,KAAK,IAAI;YAAE,MAAM,IAAI,KAAK,CAAC,mCAAmC,CAAC,CAAC;QACxE,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC;QACrC,IAAI,CAAC;YACD,MAAM,MAAM,GAAG,MAAM,CAAC,KAAK,CAAC,GAAG,GAAG,KAAK,GAAG,CAAC,CAAC,CAAC;YAC7C,MAAM,EAAE,SAAS,EAAE,GAAG,MAAM,MAAM,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,KAAK,GAAG,CAAC,CAAC,CAAC;YAC7E,OAAO,MAAM,CAAC,QAAQ,CAAC,CAAC,EAAE,SAAS,CAAC,CAAC;QACzC,CAAC;gBAAS,CAAC;YACP,MAAM,MAAM,CAAC,KAAK,EAAE,CAAC;QACzB,CAAC;IACL,CAAC;CACJ"}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import type { ByteSource } from "./ByteSource.ts";
|
|
2
|
+
export default class GeneratedByteSource implements ByteSource {
|
|
3
|
+
#private;
|
|
4
|
+
constructor(generate: () => Promise<Uint8Array | null>);
|
|
5
|
+
size(): Promise<number | null>;
|
|
6
|
+
read(start: number, end: number): Promise<Uint8Array>;
|
|
7
|
+
}
|
|
8
|
+
//# sourceMappingURL=GeneratedByteSource.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"GeneratedByteSource.d.ts","sourceRoot":"","sources":["../src/GeneratedByteSource.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAGlD,MAAM,CAAC,OAAO,OAAO,mBAAoB,YAAW,UAAU;;IAI1D,YAAY,QAAQ,EAAE,MAAM,OAAO,CAAC,UAAU,GAAG,IAAI,CAAC,EAErD;IAMK,IAAI,IAAI,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,CAEnC;IAEK,IAAI,CAAC,KAAK,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,UAAU,CAAC,CAI1D;CACJ"}
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
// {§scheme-source-bytes} One demand-loaded snapshot, with no native file identity.
|
|
2
|
+
export default class GeneratedByteSource {
|
|
3
|
+
#generate;
|
|
4
|
+
#bytes;
|
|
5
|
+
constructor(generate) {
|
|
6
|
+
this.#generate = generate;
|
|
7
|
+
}
|
|
8
|
+
#load() {
|
|
9
|
+
return this.#bytes ??= this.#generate();
|
|
10
|
+
}
|
|
11
|
+
async size() {
|
|
12
|
+
return (await this.#load())?.length ?? null;
|
|
13
|
+
}
|
|
14
|
+
async read(start, end) {
|
|
15
|
+
const bytes = await this.#load();
|
|
16
|
+
if (bytes === null)
|
|
17
|
+
throw new Error("The byte source no longer exists.");
|
|
18
|
+
return bytes.slice(start - 1, end);
|
|
19
|
+
}
|
|
20
|
+
}
|
|
21
|
+
//# sourceMappingURL=GeneratedByteSource.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"GeneratedByteSource.js","sourceRoot":"","sources":["../src/GeneratedByteSource.ts"],"names":[],"mappings":"AAEA,mFAAmF;AACnF,MAAM,CAAC,OAAO,OAAO,mBAAmB;IAC3B,SAAS,CAAmC;IACrD,MAAM,CAAyC;IAE/C,YAAY,QAA0C;QAClD,IAAI,CAAC,SAAS,GAAG,QAAQ,CAAC;IAC9B,CAAC;IAED,KAAK;QACD,OAAO,IAAI,CAAC,MAAM,KAAK,IAAI,CAAC,SAAS,EAAE,CAAC;IAC5C,CAAC;IAED,KAAK,CAAC,IAAI;QACN,OAAO,CAAC,MAAM,IAAI,CAAC,KAAK,EAAE,CAAC,EAAE,MAAM,IAAI,IAAI,CAAC;IAChD,CAAC;IAED,KAAK,CAAC,IAAI,CAAC,KAAa,EAAE,GAAW;QACjC,MAAM,KAAK,GAAG,MAAM,IAAI,CAAC,KAAK,EAAE,CAAC;QACjC,IAAI,KAAK,KAAK,IAAI;YAAE,MAAM,IAAI,KAAK,CAAC,mCAAmC,CAAC,CAAC;QACzE,OAAO,KAAK,CAAC,KAAK,CAAC,KAAK,GAAG,CAAC,EAAE,GAAG,CAAC,CAAC;IACvC,CAAC;CACJ"}
|
package/dist/Manifest.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Manifest.d.ts","sourceRoot":"","sources":["../src/Manifest.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,
|
|
1
|
+
{"version":3,"file":"Manifest.d.ts","sourceRoot":"","sources":["../src/Manifest.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAmB,cAAc,EAAc,MAAM,YAAY,CAAC;AAyB9E,MAAM,CAAC,OAAO,OAAO,QAAQ;;IACzB,MAAM,CAAC,EAAE,CAAC,OAAO,EAAE,OAAO,EAAE,YAAY,CAAC,EAAE,MAAM,GAAG,cAAc,CAiDjE;CAwCJ"}
|
package/dist/Manifest.js
CHANGED
|
@@ -1,16 +1,12 @@
|
|
|
1
1
|
const WRITERS = new Set(["model", "client", "_plurnk", "plugin"]);
|
|
2
2
|
const CATEGORIES = new Set(["data", "logging", "control"]);
|
|
3
|
-
const AUTHORITIES = new Set(["namespace", "resource"
|
|
4
|
-
const ENTRY_OWNERS = new Set(["commons", "worker", "resolved"]);
|
|
5
|
-
const ENTRY_INHERITANCE = new Set(["none", "snapshot", "rederive"]);
|
|
3
|
+
const AUTHORITIES = new Set(["namespace", "resource"]);
|
|
6
4
|
const MANIFEST_FIELD_NAMES = new Set(Object.keys({
|
|
7
5
|
name: true,
|
|
8
6
|
authority: true,
|
|
9
7
|
channels: true,
|
|
10
8
|
defaultChannel: true,
|
|
11
9
|
category: true,
|
|
12
|
-
entryOwner: true,
|
|
13
|
-
inherit: true,
|
|
14
10
|
writableBy: true,
|
|
15
11
|
volatile: true,
|
|
16
12
|
modelVisible: true,
|
|
@@ -18,9 +14,7 @@ const MANIFEST_FIELD_NAMES = new Set(Object.keys({
|
|
|
18
14
|
textEditScopes: true,
|
|
19
15
|
metadataModifier: true,
|
|
20
16
|
lineAnchors: true,
|
|
21
|
-
foldedByDefault: true,
|
|
22
17
|
traits: true,
|
|
23
|
-
example: true,
|
|
24
18
|
documentation: true,
|
|
25
19
|
glyph: true,
|
|
26
20
|
storedScheme: true,
|
|
@@ -46,7 +40,7 @@ export default class Manifest {
|
|
|
46
40
|
throw new Error(`scheme identity mismatch: registered '${expectedName}', manifest declares '${name}'`);
|
|
47
41
|
}
|
|
48
42
|
if (manifest.authority !== undefined && !AUTHORITIES.has(manifest.authority)) {
|
|
49
|
-
throw new Error(`scheme '${name}' manifest.authority must be namespace
|
|
43
|
+
throw new Error(`scheme '${name}' manifest.authority must be namespace or resource`);
|
|
50
44
|
}
|
|
51
45
|
const channels = manifest.channels;
|
|
52
46
|
if (typeof channels !== "object" || channels === null || Array.isArray(channels)
|
|
@@ -63,21 +57,6 @@ export default class Manifest {
|
|
|
63
57
|
if (!CATEGORIES.has(manifest.category)) {
|
|
64
58
|
throw new Error(`scheme '${name}' manifest.category must be data, logging, or control`);
|
|
65
59
|
}
|
|
66
|
-
if (manifest.category === "data") {
|
|
67
|
-
if (!ENTRY_OWNERS.has(manifest.entryOwner)) {
|
|
68
|
-
throw new Error(`data scheme '${name}' manifest.entryOwner must be commons, worker, or resolved`);
|
|
69
|
-
}
|
|
70
|
-
if (!ENTRY_INHERITANCE.has(manifest.inherit)) {
|
|
71
|
-
throw new Error(`data scheme '${name}' manifest.inherit must be none, snapshot, or rederive`);
|
|
72
|
-
}
|
|
73
|
-
if (manifest.entryOwner === "resolved"
|
|
74
|
-
&& typeof handler.resolveEntryAddress !== "function") {
|
|
75
|
-
throw new Error(`data scheme '${name}' with resolved entry ownership must implement resolveEntryAddress`);
|
|
76
|
-
}
|
|
77
|
-
}
|
|
78
|
-
else if (manifest.entryOwner !== undefined || manifest.inherit !== undefined) {
|
|
79
|
-
throw new Error(`non-data scheme '${name}' must not declare manifest.entryOwner or manifest.inherit`);
|
|
80
|
-
}
|
|
81
60
|
const writableBy = manifest.writableBy;
|
|
82
61
|
if (!Array.isArray(writableBy)
|
|
83
62
|
|| !writableBy.every((writer) => typeof writer === "string" && WRITERS.has(writer))
|
|
@@ -86,9 +65,9 @@ export default class Manifest {
|
|
|
86
65
|
}
|
|
87
66
|
Manifest.#boolean(manifest, "volatile");
|
|
88
67
|
Manifest.#boolean(manifest, "modelVisible");
|
|
89
|
-
for (const field of ["folderScopes", "textEditScopes", "metadataModifier", "lineAnchors"
|
|
68
|
+
for (const field of ["folderScopes", "textEditScopes", "metadataModifier", "lineAnchors"])
|
|
90
69
|
Manifest.#optionalBoolean(manifest, field);
|
|
91
|
-
for (const field of ["
|
|
70
|
+
for (const field of ["documentation", "storedScheme"])
|
|
92
71
|
Manifest.#optionalString(manifest, field);
|
|
93
72
|
Manifest.#optionalNonemptyString(manifest, "glyph");
|
|
94
73
|
Manifest.#traits(manifest.traits, name);
|
package/dist/Manifest.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Manifest.js","sourceRoot":"","sources":["../src/Manifest.ts"],"names":[],"mappings":"AAEA,MAAM,OAAO,GAAG,IAAI,GAAG,CAAa,CAAC,OAAO,EAAE,QAAQ,EAAE,SAAS,EAAE,QAAQ,CAAC,CAAC,CAAC;AAC9E,MAAM,UAAU,GAAG,IAAI,GAAG,CAA6B,CAAC,MAAM,EAAE,SAAS,EAAE,SAAS,CAAC,CAAC,CAAC;AACvF,MAAM,WAAW,GAAG,IAAI,GAAG,CAAkB,CAAC,WAAW,EAAE,UAAU,
|
|
1
|
+
{"version":3,"file":"Manifest.js","sourceRoot":"","sources":["../src/Manifest.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import { type SchemeResult } from "./Results.ts";
|
|
2
|
+
export type MetadataOptionsParsed = {
|
|
3
|
+
readonly options: Readonly<Record<string, unknown>>;
|
|
4
|
+
} | {
|
|
5
|
+
readonly failure: SchemeResult;
|
|
6
|
+
};
|
|
7
|
+
export default class MetadataOptions {
|
|
8
|
+
static parse(blocks: readonly string[] | null | undefined, source: string, extra?: Record<string, unknown>): MetadataOptionsParsed;
|
|
9
|
+
}
|
|
10
|
+
//# sourceMappingURL=MetadataOptions.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"MetadataOptions.d.ts","sourceRoot":"","sources":["../src/MetadataOptions.ts"],"names":[],"mappings":"AAKA,OAAgB,EAAE,KAAK,YAAY,EAAE,MAAM,cAAc,CAAC;AAE1D,MAAM,MAAM,qBAAqB,GAC3B;IAAE,QAAQ,CAAC,OAAO,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CAAA;CAAE,GACvD;IAAE,QAAQ,CAAC,OAAO,EAAE,YAAY,CAAA;CAAE,CAAC;AAEzC,MAAM,CAAC,OAAO,OAAO,eAAe;IAEhC,MAAM,CAAC,KAAK,CAAC,MAAM,EAAE,SAAS,MAAM,EAAE,GAAG,IAAI,GAAG,SAAS,EAAE,MAAM,EAAE,MAAM,EAAE,KAAK,GAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAM,GAAG,qBAAqB,CA0BrI;CACJ"}
|
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
// {§scheme-metadata-modifier} The heading's `[metadata]` block, read with its
|
|
2
|
+
// brackets, is one JSON array of option objects merged left to right with later
|
|
3
|
+
// keys winning. The language keeps the inner text opaque; this is the one
|
|
4
|
+
// reader every owner (scheme or executor) uses before interpreting its keys,
|
|
5
|
+
// so malformed content fails the same way everywhere: the owner's 400.
|
|
6
|
+
import Results from "./Results.js";
|
|
7
|
+
export default class MetadataOptions {
|
|
8
|
+
// `source` names the owner in the Problem (`executor:metadata`, `http`, …).
|
|
9
|
+
static parse(blocks, source, extra = {}) {
|
|
10
|
+
const fail = (code, detail) => ({
|
|
11
|
+
failure: Results.failure(source, code, 400, detail, {}, { ...extra, retryable: false }),
|
|
12
|
+
});
|
|
13
|
+
const list = blocks ?? [];
|
|
14
|
+
if (list.length === 0)
|
|
15
|
+
return { options: {} };
|
|
16
|
+
if (list.length > 1)
|
|
17
|
+
return fail("metadata-repeated", "One [metadata] block per operand; merge the options into one JSON array.");
|
|
18
|
+
let parsed;
|
|
19
|
+
try {
|
|
20
|
+
parsed = JSON.parse(`[${list[0]}]`);
|
|
21
|
+
}
|
|
22
|
+
catch (cause) {
|
|
23
|
+
if (!(cause instanceof SyntaxError))
|
|
24
|
+
throw cause;
|
|
25
|
+
// Never echo the parser message: V8 quotes the input, and metadata may hold credentials.
|
|
26
|
+
return fail("metadata-invalid", "[metadata] must be a JSON array of option objects.");
|
|
27
|
+
}
|
|
28
|
+
const options = {};
|
|
29
|
+
for (const element of parsed) {
|
|
30
|
+
if (typeof element !== "object" || element === null || Array.isArray(element)) {
|
|
31
|
+
return fail("metadata-invalid", "[metadata] must be a JSON array of option objects; every element is an object.");
|
|
32
|
+
}
|
|
33
|
+
Object.assign(options, element);
|
|
34
|
+
}
|
|
35
|
+
// {§matcher-option} — `pattern` is the language's key: the parser lifts it into the
|
|
36
|
+
// statement's matcher and leaves the block for its owner, who never interprets it.
|
|
37
|
+
delete options.pattern;
|
|
38
|
+
return { options };
|
|
39
|
+
}
|
|
40
|
+
}
|
|
41
|
+
//# sourceMappingURL=MetadataOptions.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"MetadataOptions.js","sourceRoot":"","sources":["../src/MetadataOptions.ts"],"names":[],"mappings":"AAAA,8EAA8E;AAC9E,gFAAgF;AAChF,0EAA0E;AAC1E,6EAA6E;AAC7E,uEAAuE;AACvE,OAAO,OAA8B,MAAM,cAAc,CAAC;AAM1D,MAAM,CAAC,OAAO,OAAO,eAAe;IAChC,4EAA4E;IAC5E,MAAM,CAAC,KAAK,CAAC,MAA4C,EAAE,MAAc,EAAE,KAAK,GAA4B,EAAE;QAC1G,MAAM,IAAI,GAAG,CAAC,IAAY,EAAE,MAAc,EAAyB,EAAE,CAAC,CAAC;YACnE,OAAO,EAAE,OAAO,CAAC,OAAO,CAAC,MAAM,EAAE,IAAI,EAAE,GAAG,EAAE,MAAM,EAAE,EAAE,EAAE,EAAE,GAAG,KAAK,EAAE,SAAS,EAAE,KAAK,EAAE,CAAC;SAC1F,CAAC,CAAC;QACH,MAAM,IAAI,GAAG,MAAM,IAAI,EAAE,CAAC;QAC1B,IAAI,IAAI,CAAC,MAAM,KAAK,CAAC;YAAE,OAAO,EAAE,OAAO,EAAE,EAAE,EAAE,CAAC;QAC9C,IAAI,IAAI,CAAC,MAAM,GAAG,CAAC;YAAE,OAAO,IAAI,CAAC,mBAAmB,EAAE,0EAA0E,CAAC,CAAC;QAClI,IAAI,MAAe,CAAC;QACpB,IAAI,CAAC;YACD,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,IAAI,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;QACxC,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACb,IAAI,CAAC,CAAC,KAAK,YAAY,WAAW,CAAC;gBAAE,MAAM,KAAK,CAAC;YACjD,yFAAyF;YACzF,OAAO,IAAI,CAAC,kBAAkB,EAAE,oDAAoD,CAAC,CAAC;QAC1F,CAAC;QACD,MAAM,OAAO,GAA4B,EAAE,CAAC;QAC5C,KAAK,MAAM,OAAO,IAAI,MAAmB,EAAE,CAAC;YACxC,IAAI,OAAO,OAAO,KAAK,QAAQ,IAAI,OAAO,KAAK,IAAI,IAAI,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,EAAE,CAAC;gBAC5E,OAAO,IAAI,CAAC,kBAAkB,EAAE,gFAAgF,CAAC,CAAC;YACtH,CAAC;YACD,MAAM,CAAC,MAAM,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;QACpC,CAAC;QACD,oFAAoF;QACpF,mFAAmF;QACnF,OAAO,OAAO,CAAC,OAAO,CAAC;QACvB,OAAO,EAAE,OAAO,EAAE,CAAC;IACvB,CAAC;CACJ"}
|
|
@@ -3,6 +3,9 @@ export default class MimetypeClassifier {
|
|
|
3
3
|
static isBinary(mimetype: string): boolean;
|
|
4
4
|
static isJson(mimetype: string): boolean;
|
|
5
5
|
static isHtml(mimetype: string): boolean;
|
|
6
|
+
static isTransferCompatible(source: string, destination: string, sourceClassification?: {
|
|
7
|
+
readonly binary: boolean;
|
|
8
|
+
}): boolean;
|
|
6
9
|
static normalizeAutoText(mimetype: string | null | undefined): string;
|
|
7
10
|
}
|
|
8
11
|
//# sourceMappingURL=MimetypeClassifier.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"MimetypeClassifier.d.ts","sourceRoot":"","sources":["../src/MimetypeClassifier.ts"],"names":[],"mappings":"AAoBA,eAAO,MAAM,uBAAuB,kBAAkB,CAAC;AAEvD,MAAM,CAAC,OAAO,OAAO,kBAAkB;IAEnC,MAAM,CAAC,QAAQ,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAEzC;IAKD,MAAM,CAAC,MAAM,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAEvC;IAGD,MAAM,CAAC,MAAM,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAEvC;IAMD,MAAM,CAAC,iBAAiB,CAAC,QAAQ,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS,GAAG,MAAM,CAKpE;CACJ"}
|
|
1
|
+
{"version":3,"file":"MimetypeClassifier.d.ts","sourceRoot":"","sources":["../src/MimetypeClassifier.ts"],"names":[],"mappings":"AAoBA,eAAO,MAAM,uBAAuB,kBAAkB,CAAC;AAEvD,MAAM,CAAC,OAAO,OAAO,kBAAkB;IAEnC,MAAM,CAAC,QAAQ,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAEzC;IAKD,MAAM,CAAC,MAAM,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAEvC;IAGD,MAAM,CAAC,MAAM,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAEvC;IAGD,MAAM,CAAC,oBAAoB,CACvB,MAAM,EAAE,MAAM,EACd,WAAW,EAAE,MAAM,EACnB,oBAAoB,GAAE;QAAE,QAAQ,CAAC,MAAM,EAAE,OAAO,CAAA;KAA6B,GAC9E,OAAO,CAIT;IAMD,MAAM,CAAC,iBAAiB,CAAC,QAAQ,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS,GAAG,MAAM,CAKpE;CACJ"}
|
|
@@ -32,6 +32,12 @@ export default class MimetypeClassifier {
|
|
|
32
32
|
static isHtml(mimetype) {
|
|
33
33
|
return mimetype === "text/html" || mimetype === "application/xhtml+xml";
|
|
34
34
|
}
|
|
35
|
+
// {§mimetype-verbatim-transfer}
|
|
36
|
+
static isTransferCompatible(source, destination, sourceClassification = classifyMimetype(source)) {
|
|
37
|
+
return source === destination
|
|
38
|
+
|| (!sourceClassification.binary
|
|
39
|
+
&& (destination === "text/plain" || destination === TEXT_PRIMITIVE_MIMETYPE));
|
|
40
|
+
}
|
|
35
41
|
// Normalize an auto-derived text mimetype to the text primitive.
|
|
36
42
|
// Use at any consumer-side auto-derivation point (file scheme
|
|
37
43
|
// extension fallback, log rx wrap, etc.): text/plain / null / undefined
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"MimetypeClassifier.js","sourceRoot":"","sources":["../src/MimetypeClassifier.ts"],"names":[],"mappings":"AAAA,sDAAsD;AACtD,EAAE;AACF,8EAA8E;AAC9E,4EAA4E;AAC5E,oFAAoF;AACpF,EAAE;AACF,kFAAkF;AAClF,8DAA8D;AAC9D,mFAAmF;AAEnF,OAAO,EAAE,gBAAgB,EAAE,MAAM,0BAA0B,CAAC;AAE5D,sEAAsE;AACtE,oEAAoE;AACpE,mEAAmE;AACnE,wEAAwE;AACxE,wEAAwE;AACxE,qEAAqE;AACrE,gEAAgE;AAChE,aAAa;AACb,MAAM,CAAC,MAAM,uBAAuB,GAAG,eAAe,CAAC;AAEvD,MAAM,CAAC,OAAO,OAAO,kBAAkB;IACnC,4EAA4E;IAC5E,MAAM,CAAC,QAAQ,CAAC,QAAgB;QAC5B,OAAO,gBAAgB,CAAC,QAAQ,CAAC,CAAC,MAAM,CAAC;IAC7C,CAAC;IAED,mDAAmD;IACnD,oEAAoE;IACpE,uEAAuE;IACvE,MAAM,CAAC,MAAM,CAAC,QAAgB;QAC1B,OAAO,QAAQ,KAAK,kBAAkB,IAAI,QAAQ,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC;IACzE,CAAC;IAED,gFAAgF;IAChF,MAAM,CAAC,MAAM,CAAC,QAAgB;QAC1B,OAAO,QAAQ,KAAK,WAAW,IAAI,QAAQ,KAAK,uBAAuB,CAAC;IAC5E,CAAC;IAED,iEAAiE;IACjE,8DAA8D;IAC9D,wEAAwE;IACxE,2BAA2B;IAC3B,MAAM,CAAC,iBAAiB,CAAC,QAAmC;QACxD,IAAI,QAAQ,KAAK,IAAI,IAAI,QAAQ,KAAK,SAAS,IAAI,QAAQ,KAAK,EAAE,IAAI,QAAQ,KAAK,YAAY,EAAE,CAAC;YAC9F,OAAO,uBAAuB,CAAC;QACnC,CAAC;QACD,OAAO,QAAQ,CAAC;IACpB,CAAC;CACJ"}
|
|
1
|
+
{"version":3,"file":"MimetypeClassifier.js","sourceRoot":"","sources":["../src/MimetypeClassifier.ts"],"names":[],"mappings":"AAAA,sDAAsD;AACtD,EAAE;AACF,8EAA8E;AAC9E,4EAA4E;AAC5E,oFAAoF;AACpF,EAAE;AACF,kFAAkF;AAClF,8DAA8D;AAC9D,mFAAmF;AAEnF,OAAO,EAAE,gBAAgB,EAAE,MAAM,0BAA0B,CAAC;AAE5D,sEAAsE;AACtE,oEAAoE;AACpE,mEAAmE;AACnE,wEAAwE;AACxE,wEAAwE;AACxE,qEAAqE;AACrE,gEAAgE;AAChE,aAAa;AACb,MAAM,CAAC,MAAM,uBAAuB,GAAG,eAAe,CAAC;AAEvD,MAAM,CAAC,OAAO,OAAO,kBAAkB;IACnC,4EAA4E;IAC5E,MAAM,CAAC,QAAQ,CAAC,QAAgB;QAC5B,OAAO,gBAAgB,CAAC,QAAQ,CAAC,CAAC,MAAM,CAAC;IAC7C,CAAC;IAED,mDAAmD;IACnD,oEAAoE;IACpE,uEAAuE;IACvE,MAAM,CAAC,MAAM,CAAC,QAAgB;QAC1B,OAAO,QAAQ,KAAK,kBAAkB,IAAI,QAAQ,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC;IACzE,CAAC;IAED,gFAAgF;IAChF,MAAM,CAAC,MAAM,CAAC,QAAgB;QAC1B,OAAO,QAAQ,KAAK,WAAW,IAAI,QAAQ,KAAK,uBAAuB,CAAC;IAC5E,CAAC;IAED,gCAAgC;IAChC,MAAM,CAAC,oBAAoB,CACvB,MAAc,EACd,WAAmB,EACnB,oBAAoB,GAAiC,gBAAgB,CAAC,MAAM,CAAC;QAE7E,OAAO,MAAM,KAAK,WAAW;eACtB,CAAC,CAAC,oBAAoB,CAAC,MAAM;mBACzB,CAAC,WAAW,KAAK,YAAY,IAAI,WAAW,KAAK,uBAAuB,CAAC,CAAC,CAAC;IAC1F,CAAC;IAED,iEAAiE;IACjE,8DAA8D;IAC9D,wEAAwE;IACxE,2BAA2B;IAC3B,MAAM,CAAC,iBAAiB,CAAC,QAAmC;QACxD,IAAI,QAAQ,KAAK,IAAI,IAAI,QAAQ,KAAK,SAAS,IAAI,QAAQ,KAAK,EAAE,IAAI,QAAQ,KAAK,YAAY,EAAE,CAAC;YAC9F,OAAO,uBAAuB,CAAC;QACnC,CAAC;QACD,OAAO,QAAQ,CAAC;IACpB,CAAC;CACJ"}
|
package/dist/OutputScheme.d.ts
CHANGED
|
@@ -2,7 +2,6 @@ import type { SchemeManifest } from "./types.ts";
|
|
|
2
2
|
export interface RuntimeDecl {
|
|
3
3
|
readonly name: string;
|
|
4
4
|
readonly glyph?: string;
|
|
5
|
-
readonly example?: string;
|
|
6
5
|
readonly channels: Record<string, string>;
|
|
7
6
|
readonly defaultChannel: string;
|
|
8
7
|
readonly traits?: ReadonlyArray<string>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"OutputScheme.d.ts","sourceRoot":"","sources":["../src/OutputScheme.ts"],"names":[],"mappings":"AAOA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,YAAY,CAAC;AAIjD,MAAM,WAAW,WAAW;IACxB,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,KAAK,CAAC,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,
|
|
1
|
+
{"version":3,"file":"OutputScheme.d.ts","sourceRoot":"","sources":["../src/OutputScheme.ts"],"names":[],"mappings":"AAOA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,YAAY,CAAC;AAIjD,MAAM,WAAW,WAAW;IACxB,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,KAAK,CAAC,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAC1C,QAAQ,CAAC,cAAc,EAAE,MAAM,CAAC;IAChC,QAAQ,CAAC,MAAM,CAAC,EAAE,aAAa,CAAC,MAAM,CAAC,CAAC;CAC3C;AAED,MAAM,CAAC,OAAO,OAAO,YAAY;IAG7B,MAAM,CAAC,mBAAmB,CAAC,IAAI,EAAE,WAAW,GAAG,cAAc,CAc5D;CACJ"}
|
package/dist/OutputScheme.js
CHANGED
|
@@ -1,32 +1,24 @@
|
|
|
1
1
|
// {§executor-scheme-output} Derive an output-scheme manifest from an executor's
|
|
2
2
|
// per-tag runtime declaration. An
|
|
3
3
|
// executor authors NO SchemeManifest: its `plurnk.runtimes[]` entry already
|
|
4
|
-
// carries name / glyph /
|
|
4
|
+
// carries name / glyph / output-channels, and everything else is the shared
|
|
5
5
|
// read-only-output default. So EXEC runtime `sh` gets `sh://` for free, and a multi-tag
|
|
6
6
|
// executor derives a distinct manifest per tag.
|
|
7
7
|
export default class OutputScheme {
|
|
8
|
-
//
|
|
9
|
-
//
|
|
10
|
-
// re-runs to new output (`volatile`), it lives folded off the ranked surface
|
|
11
|
-
// (`foldedByDefault`), and its body is `data`, not control/logging. The
|
|
12
|
-
// per-call output mimetype overrides the channel seed at stream time
|
|
13
|
-
// (`notifyChunk` mimetype) — the declared channels here are placeholders.
|
|
8
|
+
// {§executor-scheme-output}: read-only model access to plugin-produced data.
|
|
9
|
+
// Per-call output mimetypes override the declared channel seeds at stream time.
|
|
14
10
|
static manifestFromRuntime(decl) {
|
|
15
11
|
return {
|
|
16
12
|
name: decl.name,
|
|
17
|
-
authority: "
|
|
13
|
+
authority: "namespace",
|
|
18
14
|
channels: decl.channels,
|
|
19
15
|
defaultChannel: decl.defaultChannel,
|
|
20
16
|
category: "data",
|
|
21
|
-
entryOwner: "resolved",
|
|
22
|
-
inherit: "none",
|
|
23
17
|
writableBy: ["plugin"],
|
|
24
18
|
volatile: true,
|
|
25
19
|
modelVisible: true,
|
|
26
20
|
folderScopes: true,
|
|
27
|
-
foldedByDefault: true,
|
|
28
21
|
glyph: decl.glyph,
|
|
29
|
-
example: decl.example,
|
|
30
22
|
traits: decl.traits,
|
|
31
23
|
};
|
|
32
24
|
}
|
package/dist/OutputScheme.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"OutputScheme.js","sourceRoot":"","sources":["../src/OutputScheme.ts"],"names":[],"mappings":"AAAA,gFAAgF;AAChF,kCAAkC;AAClC,4EAA4E;AAC5E,
|
|
1
|
+
{"version":3,"file":"OutputScheme.js","sourceRoot":"","sources":["../src/OutputScheme.ts"],"names":[],"mappings":"AAAA,gFAAgF;AAChF,kCAAkC;AAClC,4EAA4E;AAC5E,4EAA4E;AAC5E,wFAAwF;AACxF,gDAAgD;AAchD,MAAM,CAAC,OAAO,OAAO,YAAY;IAC7B,6EAA6E;IAC7E,gFAAgF;IAChF,MAAM,CAAC,mBAAmB,CAAC,IAAiB;QACxC,OAAO;YACH,IAAI,EAAE,IAAI,CAAC,IAAI;YACf,SAAS,EAAE,WAAW;YACtB,QAAQ,EAAE,IAAI,CAAC,QAAQ;YACvB,cAAc,EAAE,IAAI,CAAC,cAAc;YACnC,QAAQ,EAAE,MAAM;YAChB,UAAU,EAAE,CAAC,QAAQ,CAAC;YACtB,QAAQ,EAAE,IAAI;YACd,YAAY,EAAE,IAAI;YAClB,YAAY,EAAE,IAAI;YAClB,KAAK,EAAE,IAAI,CAAC,KAAK;YACjB,MAAM,EAAE,IAAI,CAAC,MAAM;SACtB,CAAC;IACN,CAAC;CACJ"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ResourceNames.d.ts","sourceRoot":"","sources":["../src/ResourceNames.ts"],"names":[],"mappings":"AAIA,MAAM,CAAC,OAAO,OAAO,aAAa;;IAG9B,QAAQ,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,QAAQ,GAAE,MAAqB,GAAG,MAAM,CAQ/D;CACJ"}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
import { createHash, randomUUID } from "node:crypto";
|
|
2
|
+
// {§resource-publication-names} One allocator per resource collection. A stable
|
|
3
|
+
// identity lets a live collection reconstruct its paths on subsequent READs.
|
|
4
|
+
export default class ResourceNames {
|
|
5
|
+
#used = new Set();
|
|
6
|
+
allocate(name, identity = randomUUID()) {
|
|
7
|
+
const supplied = name === undefined || name === "" || name === "." || name === ".." ? null : name;
|
|
8
|
+
let attempt = 0;
|
|
9
|
+
const hash = () => createHash("sha256").update(identity).update(`\0${attempt++}`).digest("hex").slice(0, 8);
|
|
10
|
+
let candidate = supplied ?? hash();
|
|
11
|
+
while (this.#used.has(candidate))
|
|
12
|
+
candidate = `${supplied === null ? "" : `${supplied}.`}${hash()}`;
|
|
13
|
+
this.#used.add(candidate);
|
|
14
|
+
return encodeURIComponent(candidate).replace(/[!'()*]/gu, (character) => `%${character.charCodeAt(0).toString(16).toUpperCase()}`);
|
|
15
|
+
}
|
|
16
|
+
}
|
|
17
|
+
//# sourceMappingURL=ResourceNames.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ResourceNames.js","sourceRoot":"","sources":["../src/ResourceNames.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AAErD,gFAAgF;AAChF,6EAA6E;AAC7E,MAAM,CAAC,OAAO,OAAO,aAAa;IACrB,KAAK,GAAG,IAAI,GAAG,EAAU,CAAC;IAEnC,QAAQ,CAAC,IAAa,EAAE,QAAQ,GAAW,UAAU,EAAE;QACnD,MAAM,QAAQ,GAAG,IAAI,KAAK,SAAS,IAAI,IAAI,KAAK,EAAE,IAAI,IAAI,KAAK,GAAG,IAAI,IAAI,KAAK,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC;QAClG,IAAI,OAAO,GAAG,CAAC,CAAC;QAChB,MAAM,IAAI,GAAG,GAAW,EAAE,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,MAAM,CAAC,KAAK,OAAO,EAAE,EAAE,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;QACpH,IAAI,SAAS,GAAG,QAAQ,IAAI,IAAI,EAAE,CAAC;QACnC,OAAO,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,SAAS,CAAC;YAAE,SAAS,GAAG,GAAG,QAAQ,KAAK,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,QAAQ,GAAG,GAAG,IAAI,EAAE,EAAE,CAAC;QACpG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;QAC1B,OAAO,kBAAkB,CAAC,SAAS,CAAC,CAAC,OAAO,CAAC,WAAW,EAAE,CAAC,SAAS,EAAE,EAAE,CAAC,IAAI,SAAS,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,WAAW,EAAE,EAAE,CAAC,CAAC;IACvI,CAAC;CACJ"}
|
package/dist/Results.d.ts
CHANGED
package/dist/Results.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Results.d.ts","sourceRoot":"","sources":["../src/Results.ts"],"names":[],"mappings":"AAAA,OAAO,EACH,2BAA2B,EAG3B,KAAK,cAAc,EACtB,MAAM,0BAA0B,CAAC;AAClC,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,0BAA0B,CAAC;AAE3D,YAAY,EAAE,cAAc,EAAE,CAAC;AAC/B,OAAO,EAAE,2BAA2B,EAAE,CAAC;AAEvC,MAAM,WAAW,kBAAkB;IAC/B,QAAQ,CAAC,SAAS,EAAE,SAAS,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,CAAC;IACtD,QAAQ,CAAC,SAAS,EAAE,SAAS,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,CAAC;CACjE;AAED,MAAM,WAAW,YAAY;IACzB,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,OAAO,CAAC,EAAE,cAAc,CAAC;IAClC,QAAQ,CAAC,mBAAmB,CAAC,EAAE,aAAa,CAAC,kBAAkB,CAAC,CAAC;IACjE,QAAQ,CAAC,KAAK,CAAC,EAAE,KAAK,CAAC;IACvB,QAAQ,EAAE,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC;CACrC;AAED,MAAM,WAAW,gBAAiB,SAAQ,YAAY;IAClD,QAAQ,CAAC,OAAO,CAAC,EAAE,cAAc,CAAC;CACrC;AAKD,MAAM,WAAW,qBAAsB,SAAQ,gBAAgB;IAC3D,QAAQ,CAAC,OAAO,CAAC,EAAE,KAAK,CAAC;IACzB,QAAQ,CAAC,QAAQ,CAAC,EAAE,KAAK,CAAC;IAC1B,QAAQ,CAAC,OAAO,CAAC,EAAE,KAAK,CAAC;IACzB,QAAQ,CAAC,SAAS,CAAC,EAAE,KAAK,CAAC;IAC3B,QAAQ,CAAC,kBAAkB,CAAC,EAAE,KAAK,CAAC;IACpC,QAAQ,CAAC,WAAW,CAAC,EAAE,KAAK,CAAC;IAC7B,QAAQ,CAAC,MAAM,CAAC,EAAE,KAAK,CAAC;IACxB,QAAQ,CAAC,OAAO,CAAC,EAAE,KAAK,CAAC;IACzB,QAAQ,CAAC,KAAK,CAAC,EAAE,KAAK,CAAC;CAC1B;AAMD,MAAM,WAAW,+BAAgC,SAAQ,gBAAgB;CAAG;AAK5E,MAAM,WAAW,aAAa;IAC1B,QAAQ,CAAC,OAAO,CAAC,EAAE,MAAM,CAAC;IAC1B,QAAQ,CAAC,MAAM,CAAC,EAAE,UAAU,CAAC;IAE7B,QAAQ,CAAC,OAAO,CAAC,EAAE,MAAM,CAAC;IAG1B,QAAQ,CAAC,OAAO,CAAC,EAAE,MAAM,CAAC;
|
|
1
|
+
{"version":3,"file":"Results.d.ts","sourceRoot":"","sources":["../src/Results.ts"],"names":[],"mappings":"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"}
|
package/dist/Results.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Results.js","sourceRoot":"","sources":["../src/Results.ts"],"names":[],"mappings":"AAAA,OAAO,EACH,2BAA2B,EAC3B,QAAQ,EACR,SAAS,GAEZ,MAAM,0BAA0B,CAAC;AAIlC,OAAO,EAAE,2BAA2B,EAAE,CAAC;
|
|
1
|
+
{"version":3,"file":"Results.js","sourceRoot":"","sources":["../src/Results.ts"],"names":[],"mappings":"AAAA,OAAO,EACH,2BAA2B,EAC3B,QAAQ,EACR,SAAS,GAEZ,MAAM,0BAA0B,CAAC;AAIlC,OAAO,EAAE,2BAA2B,EAAE,CAAC;AAkFvC,MAAM,CAAC,OAAO,OAAO,OAAO;IACxB,MAAM,CAAC,OAAO,CAAC,MAAoB;QAC/B,OAAO,OAAO,IAAI,MAAM,IAAI,MAAM,CAAC,KAAK,KAAK,OAAO,CAAC;IACzD,CAAC;IAED,MAAM,CAAC,UAAU,CAAC,MAAoB;QAClC,OAAO,OAAO,IAAI,MAAM,IAAI,MAAM,CAAC,KAAK,KAAK,UAAU,CAAC;IAC5D,CAAC;IAED,MAAM,CAAC,aAAa,CAAC,MAAoB;QACrC,OAAO,OAAO,IAAI,MAAM,IAAI,MAAM,CAAC,KAAK,KAAK,aAAa,CAAC;IAC/D,CAAC;IAED,MAAM,CAAC,aAAa,CAAC,MAAc;QAC/B,OAAO,MAAM,IAAI,GAAG,CAAC;IACzB,CAAC;IAED,MAAM,CAAC,OAAO,CACV,KAAa,EACb,IAAY,EACZ,MAAc,EACd,MAAc,EACd,UAAU,GAAsC,EAAE;QAElD,OAAO,QAAQ,CAAC,MAAM,CAAC,KAAK,EAAE,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,UAAU,CAAC,CAAC;IACpE,CAAC;IAED,MAAM,CAAC,OAAO,CACV,KAAa,EACb,IAAY,EACZ,MAAc,EACd,MAAc,EACd,MAAM,GAAsC,EAAE,EAC9C,UAAU,GAAsC,EAAE;QAElD,OAAO,OAAO,CAAC,MAAM,CAAC;YAClB,GAAG,MAAM;YACT,MAAM;YACN,OAAO,EAAE,OAAO,CAAC,OAAO,CAAC,KAAK,EAAE,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,UAAU,CAAC;SACpE,CAAC,CAAC;IACP,CAAC;IAED,MAAM,CAAC,aAAa,CAAC,OAAgB;QACjC,SAAS,CAAC,oBAAoB,CAAC,OAAyB,CAAC,CAAC;IAC9D,CAAC;IAED,MAAM,CAAC,mBAAmB,CAAC,QAAiB;QACxC,IACI,QAAQ,KAAK,IAAI;eACd,OAAO,QAAQ,KAAK,QAAQ;eAC5B,KAAK,CAAC,OAAO,CAAC,QAAQ,CAAC,EAC5B,CAAC;YACC,MAAM,IAAI,SAAS,CAAC,4CAA4C,CAAC,CAAC;QACtE,CAAC;QACD,MAAM,MAAM,GAAG,QAAmC,CAAC;QACnD,MAAM,MAAM,GAAG,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,KAAK,SAAS,IAAI,GAAG,KAAK,QAAQ,IAAI,GAAG,KAAK,SAAS,CAAC,CAAC;QAC/G,IAAI,MAAM,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YACpB,MAAM,IAAI,SAAS,CAAC,4CAA4C,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;QACjG,CAAC;QACD,IAAI,MAAM,CAAC,OAAO,KAAK,SAAS,IAAI,OAAO,MAAM,CAAC,OAAO,KAAK,QAAQ,EAAE,CAAC;YACrE,MAAM,IAAI,SAAS,CAAC,kDAAkD,CAAC,CAAC;QAC5E,CAAC;QACD,MAAM,UAAU,GAAG,MAAM,CAAC,MAAM,CAAC,MAAM,EAAE,SAAS,CAAC,CAAC;QACpD,MAAM,SAAS,GAAG,MAAM,CAAC,MAAM,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC;QAClD,IAAI,CAAC,UAAU,IAAI,CAAC,SAAS,EAAE,CAAC;YAC5B,MAAM,IAAI,SAAS,CAAC,2DAA2D,CAAC,CAAC;QACrF,CAAC;QACD,IAAI,UAAU,IAAI,CAAC,OAAO,MAAM,CAAC,OAAO,KAAK,QAAQ,IAAI,MAAM,CAAC,OAAO,CAAC,MAAM,KAAK,CAAC,CAAC,EAAE,CAAC;YACpF,MAAM,IAAI,SAAS,CAAC,4DAA4D,CAAC,CAAC;QACtF,CAAC;QACD,IAAI,SAAS;YAAE,SAAS,CAAC,gBAAgB,CAAC,MAAM,CAAC,MAAoB,CAAC,CAAC;QACvE,OAAO,QAAyB,CAAC;IACrC,CAAC;IAED,MAAM,CAAC,uBAAuB,CAAC,QAAiB;QAC5C,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,QAAQ,CAAC,EAAE,CAAC;YAC3B,MAAM,IAAI,SAAS,CAAC,gDAAgD,CAAC,CAAC;QAC1E,CAAC;QACD,KAAK,MAAM,IAAI,IAAI,QAAQ;YAAE,OAAO,CAAC,mBAAmB,CAAC,IAAI,CAAC,CAAC;QAC/D,OAAO,QAAwC,CAAC;IACpD,CAAC;IAED,MAAM,CAAC,gBAAgB,CAAyB,MAAS;QACrD,MAAM,KAAK,GAAG,OAAO,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;QACrC,MAAM,MAAM,GAAG,KAAgC,CAAC;QAChD,IAAI,MAAM,CAAC,MAAM,CAAC,MAAM,EAAE,QAAQ,CAAC,IAAI,MAAM,CAAC,MAAM,KAAK,SAAS,EAAE,CAAC;YACjE,SAAS,CAAC,gBAAgB,CAAC,MAAM,CAAC,MAAoB,CAAC,CAAC;QAC5D,CAAC;QACD,IAAI,MAAM,CAAC,MAAM,CAAC,MAAM,EAAE,SAAS,CAAC,IAAI,MAAM,CAAC,OAAO,KAAK,SAAS,EAAE,CAAC;YACnE,OAAO,CAAC,uBAAuB,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;QACpD,CAAC;QACD,OAAO,KAAK,CAAC;IACjB,CAAC;IAED,MAAM,CAAC,+BAA+B,CAA4C,MAAS;QACvF,MAAM,KAAK,GAAG,OAAO,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;QACrC,IAAI,KAAK,CAAC,MAAM,GAAG,GAAG,IAAI,KAAK,CAAC,MAAM,KAAK,GAAG,EAAE,CAAC;YAC7C,MAAM,IAAI,2BAA2B,CACjC,uDAAuD,CAC1D,CAAC;QACN,CAAC;QACD,IAAI,KAAK,CAAC,MAAM,IAAI,GAAG,IAAI,KAAK,CAAC,MAAM,GAAG,GAAG,IAAI,KAAK,CAAC,MAAM,KAAK,GAAG,EAAE,CAAC;YACpE,MAAM,IAAI,2BAA2B,CACjC,0DAA0D,CAC7D,CAAC;QACN,CAAC;QACD,IAAI,MAAM,CAAC,MAAM,CAAC,KAAK,EAAE,iBAAiB,CAAC,EAAE,CAAC;YAC1C,MAAM,IAAI,2BAA2B,CACjC,oEAAoE,CACvE,CAAC;QACN,CAAC;QACD,MAAM,gBAAgB,GAAG,CAAC,SAAS,EAAE,UAAU,EAAE,SAAS,EAAE,WAAW,EAAE,oBAAoB,EAAE,aAAa,EAAE,iBAAiB,EAAE,QAAQ,EAAE,SAAS,EAAE,OAAO,CAAC,CAAC;QAC/J,MAAM,KAAK,GAAG,gBAAgB,CAAC,IAAI,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,MAAM,CAAC,MAAM,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC,CAAC;QAC5E,IAAI,KAAK,KAAK,SAAS,EAAE,CAAC;YACtB,MAAM,IAAI,2BAA2B,CACjC,uEAAuE,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,EAAE,CACjG,CAAC;QACN,CAAC;QACD,OAAO,KAAK,CAAC;IACjB,CAAC;IAED,MAAM,CAAC,2BAA2B,CAAkC,MAAS;QACzE,MAAM,KAAK,GAAG,OAAO,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;QACrC,IAAI,KAAK,CAAC,MAAM,GAAG,GAAG,IAAI,KAAK,CAAC,MAAM,KAAK,GAAG,EAAE,CAAC;YAC7C,MAAM,IAAI,2BAA2B,CACjC,yDAAyD,KAAK,CAAC,MAAM,EAAE,CAC1E,CAAC;QACN,CAAC;QACD,MAAM,gBAAgB,GAAG,CAAC,SAAS,EAAE,UAAU,EAAE,SAAS,EAAE,WAAW,EAAE,oBAAoB,EAAE,aAAa,EAAE,iBAAiB,EAAE,QAAQ,EAAE,SAAS,EAAE,OAAO,CAAC,CAAC;QAC/J,MAAM,KAAK,GAAG,gBAAgB,CAAC,IAAI,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,MAAM,CAAC,MAAM,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC,CAAC;QAC5E,IAAI,KAAK,KAAK,SAAS,EAAE,CAAC;YACtB,MAAM,IAAI,2BAA2B,CACjC,oEAAoE,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,EAAE,CAC9F,CAAC;QACN,CAAC;QACD,OAAO,KAAK,CAAC;IACjB,CAAC;IAED,MAAM,CAAC,yBAAyB,CAAC,KAAc;QAC3C,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YAC9C,MAAM,IAAI,SAAS,CAAC,0DAA0D,CAAC,CAAC;QACpF,CAAC;QACD,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;YACvB,IAAI,IAAI,KAAK,IAAI,IAAI,OAAO,IAAI,KAAK,QAAQ,IAAI,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,CAAC;gBACnE,MAAM,IAAI,SAAS,CAAC,iDAAiD,CAAC,CAAC;YAC3E,CAAC;YACD,MAAM,MAAM,GAAG,IAA+B,CAAC;YAC/C,MAAM,MAAM,GAAG,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,KAAK,WAAW,IAAI,GAAG,KAAK,WAAW,CAAC,CAAC;YAC/F,IAAI,MAAM,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;gBACpB,MAAM,IAAI,SAAS,CAAC,iDAAiD,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;YACtG,CAAC;YACD,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,MAAM,EAAE,WAAW,CAAC,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,MAAM,EAAE,WAAW,CAAC,EAAE,CAAC;gBAC7E,MAAM,IAAI,SAAS,CAAC,+EAA+E,CAAC,CAAC;YACzG,CAAC;YACD,MAAM,EAAE,SAAS,EAAE,SAAS,EAAE,GAAG,MAAM,CAAC;YACxC,IACI,CAAC,KAAK,CAAC,OAAO,CAAC,SAAS,CAAC;mBACtB,SAAS,CAAC,MAAM,KAAK,CAAC;mBACtB,CAAC,SAAS,CAAC,KAAK,CAAC,MAAM,CAAC,aAAa,CAAC,EAC3C,CAAC;gBACC,MAAM,IAAI,SAAS,CAAC,yEAAyE,CAAC,CAAC;YACnG,CAAC;YACD,IACI,CAAC,KAAK,CAAC,OAAO,CAAC,SAAS,CAAC;mBACtB,SAAS,CAAC,MAAM,KAAK,CAAC;mBACtB,CAAC,SAAS,CAAC,KAAK,CAAC,MAAM,CAAC,aAAa,CAAC,EAC3C,CAAC;gBACC,MAAM,IAAI,SAAS,CAAC,wEAAwE,CAAC,CAAC;YAClG,CAAC;YACD,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC,UAAU,EAAE,KAAK,EAAE,EAAE,CAAC,SAAS,CAAC,KAAK,CAAC,KAAK,UAAU,CAAC,EAAE,CAAC;gBAC3E,MAAM,IAAI,SAAS,CAAC,uFAAuF,CAAC,CAAC;YACjH,CAAC;QACL,CAAC;QACD,OAAO,KAA0C,CAAC;IACtD,CAAC;IAED,MAAM,CAAC,MAAM,CAAyB,MAAS;QAC3C,MAAM,KAAK,GAAG,SAAS,CAAC,qBAAqB,CAAC,MAAM,CAAC,CAAC;QACtD,IAAI,KAAK,CAAC,mBAAmB,KAAK,SAAS,EAAE,CAAC;YAC1C,OAAO,CAAC,yBAAyB,CAAC,KAAK,CAAC,mBAAmB,CAAC,CAAC;QACjE,CAAC;QACD,OAAO,KAAK,CAAC;IACjB,CAAC;IAED,MAAM,CAAC,cAAc,CAAyB,MAAS,EAAE,QAAgB;QACrE,IAAI,MAAM,CAAC,OAAO,KAAK,SAAS;YAAE,OAAO,OAAO,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;QAChE,MAAM,CAAC,OAAO,CAAC,QAAQ,GAAG,QAAQ,CAAC;QACnC,OAAO,OAAO,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;IAClC,CAAC;CACJ"}
|
package/dist/ctx.d.ts
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import type { WriterTier } from "./types.ts";
|
|
2
|
-
import type { ClientInteractionRequest, ClientInteractionResolution, FindStatement, RangeExtent,
|
|
2
|
+
import type { ClientInteractionRequest, ClientInteractionResolution, FindStatement, RangeExtent, SendStatement } from "@plurnk/plurnk-contracts";
|
|
3
3
|
import type { TextRegion } from "@plurnk/plurnk-contracts";
|
|
4
4
|
import type { ResolvedEditStatement } from "./edit-statement.ts";
|
|
5
5
|
import type { ChannelProducerResult, MatchEvidence, SchemeResult } from "./Results.ts";
|
|
@@ -9,6 +9,7 @@ export type ChannelState = "static" | "active" | TerminalChannelState;
|
|
|
9
9
|
export interface EntryData {
|
|
10
10
|
readonly channels: Record<string, {
|
|
11
11
|
content: string;
|
|
12
|
+
bytes?: Uint8Array;
|
|
12
13
|
mimetype: string;
|
|
13
14
|
state?: ChannelState;
|
|
14
15
|
producerResult?: ChannelProducerResult;
|
|
@@ -24,11 +25,9 @@ export interface StoredEntryData {
|
|
|
24
25
|
}>;
|
|
25
26
|
readonly attributes?: Readonly<Record<string, unknown>>;
|
|
26
27
|
}
|
|
27
|
-
export type EntryOwner = "commons" | "worker";
|
|
28
28
|
export interface EntryAddress {
|
|
29
29
|
readonly authority: string;
|
|
30
30
|
readonly pathname: string;
|
|
31
|
-
readonly owner?: EntryOwner;
|
|
32
31
|
}
|
|
33
32
|
export interface EntryEditResult extends EditBatchResult {
|
|
34
33
|
readonly entryId: number | null;
|
|
@@ -43,7 +42,6 @@ export interface EntryReadResult extends SchemeResult {
|
|
|
43
42
|
readonly matches?: ReadonlyArray<MatchEvidence>;
|
|
44
43
|
readonly range?: RangeExtent;
|
|
45
44
|
readonly reason?: string;
|
|
46
|
-
readonly awaitWorker?: string;
|
|
47
45
|
}
|
|
48
46
|
export type EntryStreamLifecycle = {
|
|
49
47
|
readonly state: "active";
|
|
@@ -58,7 +56,7 @@ export interface EntryCatalogChannel {
|
|
|
58
56
|
readonly sourceMimetype?: string;
|
|
59
57
|
readonly weight: number;
|
|
60
58
|
readonly lines: number;
|
|
61
|
-
readonly
|
|
59
|
+
readonly aside?: string;
|
|
62
60
|
readonly parseIssues?: number;
|
|
63
61
|
}
|
|
64
62
|
export interface EntryCatalogDefaultChannel extends EntryCatalogChannel {
|
|
@@ -84,7 +82,6 @@ export interface EntryFindResult extends SchemeResult {
|
|
|
84
82
|
}
|
|
85
83
|
export interface EntryOperationCaps {
|
|
86
84
|
editBatch(statements: readonly ResolvedEditStatement[]): Promise<EntryEditResult>;
|
|
87
|
-
read(statement: ReadStatement): Promise<EntryReadResult>;
|
|
88
85
|
find(statement: FindStatement): Promise<EntryFindResult>;
|
|
89
86
|
send(statement: SendStatement): Promise<SchemeResult>;
|
|
90
87
|
}
|
|
@@ -97,6 +94,7 @@ export interface EntryStorageWriteResult extends SchemeResult {
|
|
|
97
94
|
}
|
|
98
95
|
export interface EntryCaps {
|
|
99
96
|
readonly operations: EntryOperationCaps;
|
|
97
|
+
address(pathname: string): Promise<string>;
|
|
100
98
|
read(pathname: string): Promise<EntryStorageReadResult>;
|
|
101
99
|
write(pathname: string, entry: EntryData): Promise<EntryStorageWriteResult>;
|
|
102
100
|
delete(pathname: string, channel?: string): Promise<SchemeResult>;
|
|
@@ -138,7 +136,6 @@ export interface SubscriptionHandle {
|
|
|
138
136
|
export interface SchemeAddressCtx {
|
|
139
137
|
readonly workspaceId: number;
|
|
140
138
|
readonly workerId: number;
|
|
141
|
-
readonly functionalityWorkerId: number;
|
|
142
139
|
readonly loopId: number;
|
|
143
140
|
readonly turnId: number;
|
|
144
141
|
readonly writer: WriterTier;
|
package/dist/ctx.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ctx.d.ts","sourceRoot":"","sources":["../src/ctx.ts"],"names":[],"mappings":"AAMA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,YAAY,CAAC;AAC7C,OAAO,KAAK,EACR,wBAAwB,EACxB,2BAA2B,EAC3B,aAAa,EACb,WAAW,EACX,aAAa,
|
|
1
|
+
{"version":3,"file":"ctx.d.ts","sourceRoot":"","sources":["../src/ctx.ts"],"names":[],"mappings":"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"}
|
package/dist/handler.d.ts
CHANGED
|
@@ -5,6 +5,8 @@ import type { EditBatchResult } from "./edit-receipt.ts";
|
|
|
5
5
|
import type { RepresentationPreparationResult, SchemeResult } from "./Results.ts";
|
|
6
6
|
import type { SchemeManifest } from "./types.ts";
|
|
7
7
|
import type { ResolvedEditStatement } from "./edit-statement.ts";
|
|
8
|
+
import type { ByteSource } from "./ByteSource.ts";
|
|
9
|
+
import type { EntryCoordinate } from "./types.ts";
|
|
8
10
|
export interface RepresentationPreparationRequest {
|
|
9
11
|
readonly target: ParsedPath;
|
|
10
12
|
readonly metadata: readonly string[] | null;
|
|
@@ -16,9 +18,10 @@ export interface SchemeHandler extends PluginAttributionSource {
|
|
|
16
18
|
ready?(): Promise<void>;
|
|
17
19
|
close?(): Promise<void>;
|
|
18
20
|
applyResolution?(request: ProposalApplyRequest, ctx: SchemeCtx): Promise<ProposalApplyResult>;
|
|
19
|
-
resolveEntryAddress?(target: ParsedPath, ctx: SchemeAddressCtx): Promise<EntryAddress | SchemeResult | null>;
|
|
21
|
+
resolveEntryAddress?(target: ParsedPath, ctx: SchemeAddressCtx, access?: "read" | "write"): Promise<EntryAddress | SchemeResult | null>;
|
|
20
22
|
prepareFind?(statement: FindStatement, ctx: SchemeCtx): Promise<SchemeResult>;
|
|
21
23
|
prepareRepresentation?(request: RepresentationPreparationRequest, ctx: SchemeCtx): Promise<RepresentationPreparationResult>;
|
|
24
|
+
byteSource?(address: EntryCoordinate, ctx: SchemeAddressCtx): ByteSource;
|
|
22
25
|
find?(statement: FindStatement, ctx: SchemeCtx): Promise<SchemeResult>;
|
|
23
26
|
editBatch?(statements: readonly ResolvedEditStatement[], ctx: SchemeCtx): Promise<EditBatchResult>;
|
|
24
27
|
send?(statement: SendStatement, ctx: SchemeCtx): Promise<SchemeResult>;
|
package/dist/handler.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"handler.d.ts","sourceRoot":"","sources":["../src/handler.ts"],"names":[],"mappings":"AAqBA,OAAO,KAAK,EACR,aAAa,EACb,aAAa,EACb,aAAa,EACb,aAAa,EACb,UAAU,EACb,MAAM,0BAA0B,CAAC;AAClC,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,qBAAqB,CAAC;AACnE,OAAO,KAAK,EAAE,YAAY,EAAE,oBAAoB,EAAE,mBAAmB,EAAE,gBAAgB,EAAE,SAAS,EAAE,MAAM,UAAU,CAAC;AACrH,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AACzD,OAAO,KAAK,EAAE,+BAA+B,EAAE,YAAY,EAAE,MAAM,cAAc,CAAC;AAClF,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,YAAY,CAAC;AACjD,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,qBAAqB,CAAC;
|
|
1
|
+
{"version":3,"file":"handler.d.ts","sourceRoot":"","sources":["../src/handler.ts"],"names":[],"mappings":"AAqBA,OAAO,KAAK,EACR,aAAa,EACb,aAAa,EACb,aAAa,EACb,aAAa,EACb,UAAU,EACb,MAAM,0BAA0B,CAAC;AAClC,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,qBAAqB,CAAC;AACnE,OAAO,KAAK,EAAE,YAAY,EAAE,oBAAoB,EAAE,mBAAmB,EAAE,gBAAgB,EAAE,SAAS,EAAE,MAAM,UAAU,CAAC;AACrH,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AACzD,OAAO,KAAK,EAAE,+BAA+B,EAAE,YAAY,EAAE,MAAM,cAAc,CAAC;AAClF,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,YAAY,CAAC;AACjD,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,qBAAqB,CAAC;AACjE,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAClD,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,YAAY,CAAC;AAElD,MAAM,WAAW,gCAAgC;IAC7C,QAAQ,CAAC,MAAM,EAAE,UAAU,CAAC;IAC5B,QAAQ,CAAC,QAAQ,EAAE,SAAS,MAAM,EAAE,GAAG,IAAI,CAAC;IAC5C,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAC3B,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;CAC7B;AAED,MAAM,WAAW,aAAc,SAAQ,uBAAuB;IAK1D,QAAQ,CAAC,QAAQ,CAAC,EAAE,cAAc,CAAC;IAKnC,KAAK,CAAC,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;IACxB,KAAK,CAAC,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;IACxB,eAAe,CAAC,CAAC,OAAO,EAAE,oBAAoB,EAAE,GAAG,EAAE,SAAS,GAAG,OAAO,CAAC,mBAAmB,CAAC,CAAC;IAS9F,mBAAmB,CAAC,CAChB,MAAM,EAAE,UAAU,EAClB,GAAG,EAAE,gBAAgB,EACrB,MAAM,CAAC,EAAE,MAAM,GAAG,OAAO,GAC1B,OAAO,CAAC,YAAY,GAAG,YAAY,GAAG,IAAI,CAAC,CAAC;IAM/C,WAAW,CAAC,CAAC,SAAS,EAAE,aAAa,EAAE,GAAG,EAAE,SAAS,GAAG,OAAO,CAAC,YAAY,CAAC,CAAC;IAK9E,qBAAqB,CAAC,CAClB,OAAO,EAAE,gCAAgC,EACzC,GAAG,EAAE,SAAS,GACf,OAAO,CAAC,+BAA+B,CAAC,CAAC;IAC5C,UAAU,CAAC,CAAC,OAAO,EAAE,eAAe,EAAE,GAAG,EAAE,gBAAgB,GAAG,UAAU,CAAC;IACzE,IAAI,CAAC,CAAC,SAAS,EAAE,aAAa,EAAE,GAAG,EAAE,SAAS,GAAG,OAAO,CAAC,YAAY,CAAC,CAAC;IACvE,SAAS,CAAC,CAAC,UAAU,EAAE,SAAS,qBAAqB,EAAE,EAAE,GAAG,EAAE,SAAS,GAAG,OAAO,CAAC,eAAe,CAAC,CAAC;IACnG,IAAI,CAAC,CAAC,SAAS,EAAE,aAAa,EAAE,GAAG,EAAE,SAAS,GAAG,OAAO,CAAC,YAAY,CAAC,CAAC;IACvE,IAAI,CAAC,CAAC,SAAS,EAAE,aAAa,EAAE,GAAG,EAAE,SAAS,GAAG,OAAO,CAAC,YAAY,CAAC,CAAC;IACvE,IAAI,CAAC,CAAC,SAAS,EAAE,aAAa,EAAE,GAAG,EAAE,SAAS,GAAG,OAAO,CAAC,YAAY,CAAC,CAAC;CAC1E"}
|
package/dist/index.d.ts
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
export type { EntryCoordinate, SchemeAuthority,
|
|
1
|
+
export type { EntryCoordinate, SchemeAuthority, SchemeManifest, WriterTier, } from "./types.ts";
|
|
2
2
|
export { default as Manifest } from "./Manifest.ts";
|
|
3
3
|
export { default as NetworkAddress } from "./NetworkAddress.ts";
|
|
4
4
|
export { default as MimetypeClassifier, TEXT_PRIMITIVE_MIMETYPE } from "./MimetypeClassifier.ts";
|
|
@@ -12,19 +12,25 @@ export type { SchemeInfo, SchemeDiscoveryResult, DiscoverOptions } from "./Schem
|
|
|
12
12
|
export { default as Summarize } from "./Summarize.ts";
|
|
13
13
|
export type { OrientIndex } from "./Summarize.ts";
|
|
14
14
|
export { default as OutputScheme } from "./OutputScheme.ts";
|
|
15
|
+
export { default as ResourceNames } from "./ResourceNames.ts";
|
|
15
16
|
export type { RuntimeDecl } from "./OutputScheme.ts";
|
|
16
17
|
export { default as Results } from "./Results.ts";
|
|
18
|
+
export { default as MetadataOptions } from "./MetadataOptions.ts";
|
|
19
|
+
export type { MetadataOptionsParsed } from "./MetadataOptions.ts";
|
|
17
20
|
export { default as PacketSections } from "./PacketSections.ts";
|
|
18
21
|
export { InvalidOperationResultError } from "./Results.ts";
|
|
19
22
|
export { PathSyntax } from "@plurnk/plurnk-contracts";
|
|
20
23
|
export { MimetypeInputLimitError as ProjectionInputLimitError } from "@plurnk/plurnk-mimetypes";
|
|
21
24
|
export type { AppliedEditBatchReceipt, AppliedEditReceipt, EditBatchReceipt, EditBatchResult, EditEffectReceipt, EditReceipt, EditReceiptUnit, ParseIssueTransition, ReviewerReplacementEditBatchReceipt, SupersededEditReceipt, } from "./edit-receipt.ts";
|
|
22
25
|
export type { ChannelProducerResult, EntryResult, MatchEvidence, PassthroughResult, ProposalResult, ProblemDetails, RepresentationPreparationResult, ScopeNormalization, SchemeResult, SchemeResultBase, } from "./Results.ts";
|
|
23
|
-
export type { ChannelCaps, ChannelState, TerminalChannelState, EntryCaps, EntryCatalogChannel, EntryCatalogDefaultChannel, EntryCatalogItem, EntryCatalogScope, EntryCatalogScopeGroup, EntryData, EntryEditResult, EntryFindResult, EntryOperationCaps,
|
|
26
|
+
export type { ChannelCaps, ChannelState, TerminalChannelState, EntryCaps, EntryCatalogChannel, EntryCatalogDefaultChannel, EntryCatalogItem, EntryCatalogScope, EntryCatalogScopeGroup, EntryData, EntryEditResult, EntryFindResult, EntryOperationCaps, EntryAddress, EntryReadResult, EntryStorageReadResult, EntryStreamLifecycle, EntryStorageWriteResult, StoredEntryData, StreamSubscription, ProjectionCaps, InteractionCaps, ProjectedText, NotifyCaps, ProposalApplyRequest, ProposalApplyResult, ProposalAware, SchemeAddressCtx, SchemeCtx, SubscriptionCaps, SubscriptionHandle, } from "./ctx.ts";
|
|
24
27
|
export type { ResolvedEditStatement, ResolvedEditStatement as EditStatement, } from "./edit-statement.ts";
|
|
25
28
|
export type { RepresentationPreparationRequest, SchemeHandler } from "./handler.ts";
|
|
26
29
|
export type { PacketSectionDraft, PacketSectionTransformer } from "./packet.ts";
|
|
27
30
|
export type { PluginAttributionContext, PluginAttributionDeclaration, PluginAttributionSource, } from "@plurnk/plurnk-meta";
|
|
28
|
-
export type { PlurnkStatement, FindStatement, ReadStatement, CopyStatement, MoveStatement, SendStatement, ExecStatement, WorkStatement, ForkStatement, KillStatement,
|
|
31
|
+
export type { PlurnkStatement, FindStatement, ReadStatement, CopyStatement, MoveStatement, SendStatement, ExecStatement, WorkStatement, ForkStatement, KillStatement, DispositionStatement, ParsedPath, LocalPath, UrlPath, } from "@plurnk/plurnk-contracts";
|
|
29
32
|
export type { WindowResult } from "./Slicer.ts";
|
|
33
|
+
export type { ByteSource } from "./ByteSource.ts";
|
|
34
|
+
export { default as FileByteSource } from "./FileByteSource.ts";
|
|
35
|
+
export { default as GeneratedByteSource } from "./GeneratedByteSource.ts";
|
|
30
36
|
//# sourceMappingURL=index.d.ts.map
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAQA,YAAY,EACR,eAAe,EACf,eAAe,EACf,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
package/dist/index.js
CHANGED
|
@@ -14,9 +14,13 @@ export { default as Matcher } from "./Matcher.js";
|
|
|
14
14
|
export { default as SchemeDiscovery } from "./SchemeDiscovery.js";
|
|
15
15
|
export { default as Summarize } from "./Summarize.js";
|
|
16
16
|
export { default as OutputScheme } from "./OutputScheme.js";
|
|
17
|
+
export { default as ResourceNames } from "./ResourceNames.js";
|
|
17
18
|
export { default as Results } from "./Results.js";
|
|
19
|
+
export { default as MetadataOptions } from "./MetadataOptions.js";
|
|
18
20
|
export { default as PacketSections } from "./PacketSections.js";
|
|
19
21
|
export { InvalidOperationResultError } from "./Results.js";
|
|
20
22
|
export { PathSyntax } from "@plurnk/plurnk-contracts";
|
|
21
23
|
export { MimetypeInputLimitError as ProjectionInputLimitError } from "@plurnk/plurnk-mimetypes";
|
|
24
|
+
export { default as FileByteSource } from "./FileByteSource.js";
|
|
25
|
+
export { default as GeneratedByteSource } from "./GeneratedByteSource.js";
|
|
22
26
|
//# sourceMappingURL=index.js.map
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,gDAAgD;AAChD,EAAE;AACF,uEAAuE;AACvE,0EAA0E;AAC1E,+BAA+B;AAC/B,4BAA4B;
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,gDAAgD;AAChD,EAAE;AACF,uEAAuE;AACvE,0EAA0E;AAC1E,+BAA+B;AAC/B,4BAA4B;AAU5B,4EAA4E;AAC5E,OAAO,EAAE,OAAO,IAAI,QAAQ,EAAE,MAAM,eAAe,CAAC;AACpD,OAAO,EAAE,OAAO,IAAI,cAAc,EAAE,MAAM,qBAAqB,CAAC;AAChE,OAAO,EAAE,OAAO,IAAI,kBAAkB,EAAE,uBAAuB,EAAE,MAAM,yBAAyB,CAAC;AACjG,OAAO,EAAE,OAAO,IAAI,MAAM,EAAE,MAAM,aAAa,CAAC;AAShD,OAAO,EAAE,OAAO,IAAI,YAAY,EAAE,MAAM,mBAAmB,CAAC;AAC5D,OAAO,EAAE,OAAO,IAAI,OAAO,EAAE,MAAM,cAAc,CAAC;AAElD,OAAO,EAAE,OAAO,IAAI,eAAe,EAAE,MAAM,sBAAsB,CAAC;AAElE,OAAO,EAAE,OAAO,IAAI,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAEtD,OAAO,EAAE,OAAO,IAAI,YAAY,EAAE,MAAM,mBAAmB,CAAC;AAC5D,OAAO,EAAE,OAAO,IAAI,aAAa,EAAE,MAAM,oBAAoB,CAAC;AAE9D,OAAO,EAAE,OAAO,IAAI,OAAO,EAAE,MAAM,cAAc,CAAC;AAClD,OAAO,EAAE,OAAO,IAAI,eAAe,EAAE,MAAM,sBAAsB,CAAC;AAElE,OAAO,EAAE,OAAO,IAAI,cAAc,EAAE,MAAM,qBAAqB,CAAC;AAChE,OAAO,EAAE,2BAA2B,EAAE,MAAM,cAAc,CAAC;AAC3D,OAAO,EAAE,UAAU,EAAE,MAAM,0BAA0B,CAAC;AACtD,OAAO,EAAE,uBAAuB,IAAI,yBAAyB,EAAE,MAAM,0BAA0B,CAAC;AAgGhG,OAAO,EAAE,OAAO,IAAI,cAAc,EAAE,MAAM,qBAAqB,CAAC;AAChE,OAAO,EAAE,OAAO,IAAI,mBAAmB,EAAE,MAAM,0BAA0B,CAAC"}
|
package/dist/types.d.ts
CHANGED
|
@@ -1,7 +1,5 @@
|
|
|
1
1
|
export type WriterTier = "model" | "client" | "_plurnk" | "plugin";
|
|
2
|
-
export type SchemeAuthority = "namespace" | "resource"
|
|
3
|
-
export type SchemeEntryOwner = "commons" | "worker" | "resolved";
|
|
4
|
-
export type SchemeEntryInheritance = "none" | "snapshot" | "rederive";
|
|
2
|
+
export type SchemeAuthority = "namespace" | "resource";
|
|
5
3
|
export interface EntryCoordinate {
|
|
6
4
|
readonly authority: string;
|
|
7
5
|
readonly pathname: string;
|
|
@@ -18,21 +16,17 @@ interface SchemeManifestBase {
|
|
|
18
16
|
readonly textEditScopes?: boolean;
|
|
19
17
|
readonly metadataModifier?: boolean;
|
|
20
18
|
readonly lineAnchors?: boolean;
|
|
21
|
-
readonly foldedByDefault?: boolean;
|
|
22
19
|
readonly traits?: ReadonlyArray<string>;
|
|
23
|
-
readonly example?: string;
|
|
24
20
|
readonly documentation?: string;
|
|
25
21
|
readonly glyph?: string;
|
|
26
22
|
readonly storedScheme?: string;
|
|
27
23
|
}
|
|
28
|
-
export type SchemeManifest =
|
|
24
|
+
export type SchemeManifest = SchemeManifestBase & ({
|
|
29
25
|
readonly category: "data";
|
|
30
|
-
|
|
31
|
-
readonly
|
|
32
|
-
}
|
|
33
|
-
readonly category: "
|
|
34
|
-
readonly entryOwner?: never;
|
|
35
|
-
readonly inherit?: never;
|
|
26
|
+
} | {
|
|
27
|
+
readonly category: "logging";
|
|
28
|
+
} | {
|
|
29
|
+
readonly category: "control";
|
|
36
30
|
});
|
|
37
31
|
export {};
|
|
38
32
|
//# sourceMappingURL=types.d.ts.map
|
package/dist/types.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAUA,MAAM,MAAM,UAAU,GAAG,OAAO,GAAG,QAAQ,GAAG,SAAS,GAAG,QAAQ,CAAC;
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAUA,MAAM,MAAM,UAAU,GAAG,OAAO,GAAG,QAAQ,GAAG,SAAS,GAAG,QAAQ,CAAC;AAKnE,MAAM,MAAM,eAAe,GAAG,WAAW,GAAG,UAAU,CAAC;AAEvD,MAAM,WAAW,eAAe;IAC5B,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAC3B,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;CAC7B;AAED,UAAU,kBAAkB;IACxB,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,SAAS,CAAC,EAAE,eAAe,CAAC;IACrC,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAG1C,QAAQ,CAAC,cAAc,EAAE,MAAM,CAAC;IAGhC,QAAQ,CAAC,UAAU,EAAE,aAAa,CAAC,UAAU,CAAC,CAAC;IAC/C,QAAQ,CAAC,QAAQ,EAAE,OAAO,CAAC;IAC3B,QAAQ,CAAC,YAAY,EAAE,OAAO,CAAC;IAI/B,QAAQ,CAAC,YAAY,CAAC,EAAE,OAAO,CAAC;IAGhC,QAAQ,CAAC,cAAc,CAAC,EAAE,OAAO,CAAC;IAGlC,QAAQ,CAAC,gBAAgB,CAAC,EAAE,OAAO,CAAC;IAIpC,QAAQ,CAAC,WAAW,CAAC,EAAE,OAAO,CAAC;IAG/B,QAAQ,CAAC,MAAM,CAAC,EAAE,aAAa,CAAC,MAAM,CAAC,CAAC;IAExC,QAAQ,CAAC,aAAa,CAAC,EAAE,MAAM,CAAC;IAGhC,QAAQ,CAAC,KAAK,CAAC,EAAE,MAAM,CAAC;IAGxB,QAAQ,CAAC,YAAY,CAAC,EAAE,MAAM,CAAC;CAClC;AAED,MAAM,MAAM,cAAc,GAAG,kBAAkB,GAAG,CAC9C;IAAE,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAA;CAAE,GAC3B;IAAE,QAAQ,CAAC,QAAQ,EAAE,SAAS,CAAA;CAAE,GAChC;IAAE,QAAQ,CAAC,QAAQ,EAAE,SAAS,CAAA;CAAE,CACrC,CAAC"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@plurnk/plurnk-schemes",
|
|
3
|
-
"version": "1.
|
|
3
|
+
"version": "1.17.0",
|
|
4
4
|
"description": "Framework + contract for the @plurnk/plurnk-schemes-* URI handler packages.",
|
|
5
5
|
"keywords": [
|
|
6
6
|
"plurnk",
|
|
@@ -49,10 +49,10 @@
|
|
|
49
49
|
"prepack": "npm run build"
|
|
50
50
|
},
|
|
51
51
|
"peerDependencies": {
|
|
52
|
-
"@plurnk/plurnk-mimetypes": "^1.
|
|
52
|
+
"@plurnk/plurnk-mimetypes": "^1.17.0"
|
|
53
53
|
},
|
|
54
54
|
"dependencies": {
|
|
55
|
-
"@plurnk/plurnk-contracts": "1.
|
|
56
|
-
"@plurnk/plurnk-meta": "1.
|
|
55
|
+
"@plurnk/plurnk-contracts": "1.17.0",
|
|
56
|
+
"@plurnk/plurnk-meta": "1.17.0"
|
|
57
57
|
}
|
|
58
58
|
}
|