@plurnk/plurnk-schemes 1.4.0 → 1.5.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 +25 -10
- package/SPEC.md +88 -42
- package/dist/Matcher.js +2 -2
- package/dist/Matcher.js.map +1 -1
- package/dist/Results.d.ts +14 -1
- package/dist/Results.d.ts.map +1 -1
- package/dist/Results.js +36 -6
- package/dist/Results.js.map +1 -1
- package/dist/Slicer.d.ts +7 -16
- package/dist/Slicer.d.ts.map +1 -1
- package/dist/Slicer.js +72 -32
- package/dist/Slicer.js.map +1 -1
- package/dist/ctx.d.ts +19 -16
- package/dist/ctx.d.ts.map +1 -1
- package/dist/handler.d.ts +8 -4
- package/dist/handler.d.ts.map +1 -1
- package/dist/handler.js +6 -6
- package/dist/handler.js.map +1 -1
- package/dist/index.d.ts +4 -6
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +0 -1
- package/dist/index.js.map +1 -1
- package/package.json +4 -4
- package/dist/DefaultRead.d.ts +0 -15
- package/dist/DefaultRead.d.ts.map +0 -1
- package/dist/DefaultRead.js +0 -51
- package/dist/DefaultRead.js.map +0 -1
package/README.md
CHANGED
|
@@ -25,28 +25,43 @@ Ship a scheme by publishing a package — **under any scope** (`@acme/whatever`;
|
|
|
25
25
|
|
|
26
26
|
```ts
|
|
27
27
|
import type {
|
|
28
|
-
|
|
28
|
+
RepresentationPreparationRequest, RepresentationPreparationResult,
|
|
29
|
+
SchemeHandler, SchemeManifest, SchemeCtx,
|
|
29
30
|
} from "@plurnk/plurnk-schemes";
|
|
30
31
|
|
|
31
32
|
export default class Foo implements SchemeHandler {
|
|
32
33
|
static manifest: SchemeManifest = { /* step 3 */ };
|
|
33
34
|
|
|
34
|
-
async
|
|
35
|
-
|
|
35
|
+
async prepareRepresentation(
|
|
36
|
+
{ target, pathname }: RepresentationPreparationRequest,
|
|
37
|
+
ctx: SchemeCtx,
|
|
38
|
+
): Promise<RepresentationPreparationResult> {
|
|
39
|
+
const { content, mimetype } = await acquire(target);
|
|
40
|
+
const written = await ctx.entries.write(pathname, {
|
|
41
|
+
channels: { body: { content, mimetype } },
|
|
42
|
+
tags: [],
|
|
43
|
+
});
|
|
44
|
+
return written.status >= 400 ? written : { status: 200 };
|
|
36
45
|
}
|
|
37
46
|
}
|
|
38
47
|
```
|
|
39
48
|
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
49
|
+
Core owns READ. A stored scheme needs no READ method; an acquisition scheme
|
|
50
|
+
implements scope-blind `prepareRepresentation`, writes its complete channels,
|
|
51
|
+
and lets core select the channel and apply operation-owned semantics. Exact
|
|
52
|
+
READ, exact FIND, and COPY/MOVE source selection all reuse that acquisition;
|
|
53
|
+
the producer receives none of their scopes, matchers, or channel choices.
|
|
54
|
+
Implement only
|
|
55
|
+
the remaining delegated methods you support—`find`, `editBatch`, `send`, and
|
|
56
|
+
the other optional methods in `SchemeHandler`. COPY and MOVE are engine-owned
|
|
57
|
+
compositions over `ctx.entries` and `editBatch`, so plugins do not override
|
|
58
|
+
them or author COPY/MOVE effect envelopes. A regional `editBatch`
|
|
44
59
|
returns `EditBatchResult` with its typed `EditBatchReceipt`; the engine validates
|
|
45
60
|
and projects it.
|
|
46
61
|
The optional synchronous `attributions(context)` hook may return no, one, or
|
|
47
62
|
many opaque tags for each provider emission attempt ({§plugin-attribution}).
|
|
48
63
|
`implements SchemeHandler` gives compile-time signature checking. The statement
|
|
49
|
-
and path types (`
|
|
64
|
+
and path types (`FindStatement`, `SendStatement`, `UrlPath`, etc.) are re-exported
|
|
50
65
|
from this package, so you depend on and peer (`^1`) only
|
|
51
66
|
`@plurnk/plurnk-schemes`; grammar rides underneath.
|
|
52
67
|
|
|
@@ -88,14 +103,14 @@ That's the whole contract: declare, `implements SchemeHandler`, manifest with se
|
|
|
88
103
|
|
|
89
104
|
- Manifest/flags: `SchemeManifest` (including `example` / `documentation` self-doc and client-only `glyph`), `SchemeFlagAffinity`, and `WriterTier`; contracts-owned `LoopFlags` / `DEFAULT_LOOP_FLAGS` are re-exported.
|
|
90
105
|
- Behavior contract: `SchemeHandler` + optional `PacketSectionTransformer` (`PacketSectionDraft`); the re-exported scheme-facing grammar types (`PlurnkStatement` + per-op statements + `ParsedPath` / `LocalPath` / `UrlPath`).
|
|
91
|
-
- Results: universal `SchemeResult` plus RFC 9457 `ProblemDetails`, optional `EntryResult` / `ProposalResult` / `PassthroughResult` authoring shapes, `SchemeResultBase`,
|
|
106
|
+
- 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.
|
|
92
107
|
- Capability ctx: `SchemeCtx` and its entry, channel, tag, notification, projection, and subscription domains. Entry schemes can reuse typed standard operations with semantic commons/worker ownership.
|
|
93
108
|
|
|
94
109
|
### Helpers (`export default class`, static methods)
|
|
95
110
|
|
|
96
111
|
- `SchemeResolver.forLoop(handlers, flags)` — active-scheme resolution under loop flags.
|
|
97
112
|
- `MimetypeClassifier.isBinary` / `.isJson` / `.normalizeAutoText` (+ `TEXT_PRIMITIVE_MIMETYPE` named export) - registry-free mimetype taxonomy and scheme-local helpers. Configured consumers use `Mimetypes.classify()` for handler-aware binary decisions.
|
|
98
|
-
- `Slicer.lines` / `.linesRaw` / `.textReplacement` / `.lineMarkerEdit` / `.lineMarkerEditBatch` - universal text-region projection and same-snapshot replacement; `Slicer.page` handles ordered results
|
|
113
|
+
- `Slicer.lines` / `.linesRaw` / `.textReplacement` / `.lineMarkerEdit` / `.lineMarkerEditBatch` - universal text-region projection and same-snapshot replacement; `Slicer.page` handles ordered results, and `.coversAvailable` derives complete coverage from their compact `RangeExtent`.
|
|
99
114
|
- `PathMimetype.resolve(pathname, default, mimetypes)` — path-extension mimetype resolver.
|
|
100
115
|
- `Matcher.matchAgainstContent(body, content, mimetype, mimetypes)` - boolean resource selection over `Mimetypes.query` (glob/regex/jsonpath/xpath), returning locator/exact-region `MatchEvidence`.
|
|
101
116
|
- `Results.problem` / `.failure` / `.assert` / `.assertReadResult` / `.assertMatchEvidenceList` / `.attachInstance` / `.isEntry` / `.isProposal` / `.isPassthrough` / `.isErrorStatus` - RFC 9457 result builders, validators, durable-occurrence attachment, and guards.
|
package/SPEC.md
CHANGED
|
@@ -39,7 +39,7 @@ class Notes {
|
|
|
39
39
|
| `writableBy` | Subset of `["model", "client", "plurnk", "plugin"]`; empty declares an immutable scheme. Consumer returns 403 for outside-set writes. |
|
|
40
40
|
| `volatile` | Boolean. |
|
|
41
41
|
| `modelVisible` | Boolean. |
|
|
42
|
-
| `folderScopes?` | `true` declares that a trailing slash on FIND
|
|
42
|
+
| `folderScopes?` | `true` declares that a trailing slash on FIND is a collection scope. Absent/false means `/` is ordinary resource syntax. |
|
|
43
43
|
| `flags?` | Optional exact `SchemeFlagAffinity`; see {§manifest-flag-affinity}. |
|
|
44
44
|
| `example?` | The scheme's terse **hot-path** one-liner (e.g. `"READ(foo://thing/42)"`) — renders in the live catalogue every turn, so keep it to one canonical usage line. Omit → not advertised. Depth goes in `documentation`. |
|
|
45
45
|
| `documentation?` | The **deep doc** (semantics / channels / edge cases). Consumer materializes it as a pull-able `worker://plurnk/docs/<name>.md` entry READ on demand; never hits the hot path. Mirrors `ExecInfo.documentation`. |
|
|
@@ -73,12 +73,13 @@ the consumer's proposal lifecycle decides whether a client, loop auto,
|
|
|
73
73
|
## §2 Interface
|
|
74
74
|
|
|
75
75
|
Sister scheme handlers implement op methods consumed by plurnk-service via
|
|
76
|
-
dispatch.
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
**`SchemeHandler`** interface
|
|
80
|
-
|
|
81
|
-
|
|
76
|
+
dispatch. The consumer owns READ for every `category: "data"` scheme and owns
|
|
77
|
+
exact-target FIND over its canonical representation; no handler method can
|
|
78
|
+
replace either projection. Other absent operation methods return **501**. The
|
|
79
|
+
exported **`SchemeHandler`** interface gives operation methods their grammar
|
|
80
|
+
statement and `ctx`, while representation preparation receives a deliberately
|
|
81
|
+
narrower request. `editBatch` returns the typed `EditBatchResult`
|
|
82
|
+
specialization:
|
|
82
83
|
|
|
83
84
|
```ts
|
|
84
85
|
import type { EditBatchResult, SchemeHandler } from "@plurnk/plurnk-schemes";
|
|
@@ -86,9 +87,12 @@ import type { EditBatchResult, SchemeHandler } from "@plurnk/plurnk-schemes";
|
|
|
86
87
|
export interface SchemeHandler {
|
|
87
88
|
ready?(): Promise<void>;
|
|
88
89
|
close?(): Promise<void>;
|
|
89
|
-
resolveEntryAddress?(target: ParsedPath, ctx: SchemeCtx): Promise<EntryAddress | null>;
|
|
90
|
+
resolveEntryAddress?(target: ParsedPath, ctx: SchemeCtx): Promise<EntryAddress | SchemeResult | null>;
|
|
91
|
+
prepareRepresentation?(
|
|
92
|
+
request: RepresentationPreparationRequest,
|
|
93
|
+
ctx: SchemeCtx,
|
|
94
|
+
): Promise<RepresentationPreparationResult>;
|
|
90
95
|
prepareFind?(statement: FindStatement, ctx: SchemeCtx): Promise<SchemeResult>;
|
|
91
|
-
read?(statement: ReadStatement, ctx: SchemeCtx): Promise<SchemeResult>;
|
|
92
96
|
find?(statement: FindStatement, ctx: SchemeCtx): Promise<SchemeResult>;
|
|
93
97
|
editBatch?(statements: readonly EditStatement[], ctx: SchemeCtx): Promise<EditBatchResult>;
|
|
94
98
|
send?(statement: SendStatement, ctx: SchemeCtx): Promise<SchemeResult>;
|
|
@@ -101,26 +105,55 @@ export interface SchemeHandler {
|
|
|
101
105
|
}
|
|
102
106
|
```
|
|
103
107
|
|
|
104
|
-
`
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
`ctx.entries
|
|
113
|
-
|
|
114
|
-
|
|
108
|
+
§read-preparation `prepareRepresentation?` is the optional, operation-neutral
|
|
109
|
+
acquisition seam for one exact resource. Core first resolves its canonical
|
|
110
|
+
pathname and owner, binds `ctx.entries`/channels/subscriptions to that owner,
|
|
111
|
+
and removes the channel fragment. The request is exactly
|
|
112
|
+
`{ target, pathname }`: READ coordinates, FIND matchers, the selected channel,
|
|
113
|
+
and operation intent are structurally unavailable.
|
|
114
|
+
|
|
115
|
+
A stored scheme omits the hook. An acquired scheme writes its complete channel
|
|
116
|
+
topology through `ctx.entries` and returns `200` readiness. A live scheme first
|
|
117
|
+
seeds those same canonical channels, opens a subscription, and may return `102`
|
|
118
|
+
only while production remains live. Other statuses are exact terminal results.
|
|
119
|
+
Per-channel producer status belongs durably on that channel as
|
|
120
|
+
`producerResult`; no transient preparation result may carry content, channel
|
|
121
|
+
selection, or channel outcomes. After `200`, core alone selects the authored
|
|
122
|
+
channel, applies tag/binary/text rules (including markerless `<1,16>`), and
|
|
123
|
+
composes that channel's producer evidence. Cold and warm reads therefore have
|
|
124
|
+
identical semantics.
|
|
125
|
+
|
|
126
|
+
Exact FIND uses the same `prepareRepresentation?` seam and then the standard
|
|
127
|
+
entry query; the queried default channel's durable producer result composes
|
|
128
|
+
with that exact query just as it does with exact READ. `prepareFind?` is only
|
|
129
|
+
the optional broad-scope discovery seam
|
|
130
|
+
used before standard entry selection when no custom broad `find()` exists. A
|
|
131
|
+
custom `find()` may own genuinely different candidate enumeration, but never
|
|
132
|
+
exact-resource materialization or READ coordinates. Every standard query uses
|
|
133
|
+
the same canonical identity as `ctx.entries`; URL authority cannot disappear
|
|
134
|
+
between preparation and lookup.
|
|
135
|
+
|
|
136
|
+
An exact COPY/MOVE source also resolves and prepares through this seam before
|
|
137
|
+
core selects its canonical stored channel. COPY/MOVE retain their own source
|
|
138
|
+
scope algebra: an absent source scope means the complete channel and an explicit
|
|
139
|
+
scope preserves raw source separators. Neither distinction is exposed to the
|
|
140
|
+
producer. A live `102` leaves the composition unapplied; a ready representation
|
|
141
|
+
is selected from the same channels used by READ and exact FIND. A selected
|
|
142
|
+
channel's producer failure aborts before destination mutation; successful
|
|
143
|
+
non-`200` content remains eligible for transfer.
|
|
115
144
|
|
|
116
145
|
§entry-address-resolution `resolveEntryAddress?` gives a client observation the
|
|
117
146
|
same address law as model-facing operations without creating a second CRUD
|
|
118
|
-
protocol.
|
|
147
|
+
protocol. Core removes the channel fragment and target-slot pathname aliases
|
|
148
|
+
{§path-parentheses} before invocation; query and other identity components
|
|
149
|
+
remain exact. The hook returns the canonical stored `pathname` and a semantic
|
|
150
|
+
owner:
|
|
119
151
|
|
|
120
152
|
| Return | Meaning |
|
|
121
153
|
|-----------------------------------------|---------------------------------------------------|
|
|
122
154
|
| `{ pathname, owner: "commons" }` | Resolve in the shared workspace namespace |
|
|
123
155
|
| `{ pathname, owner: "worker" }` | Resolve in the calling worker's namespace |
|
|
156
|
+
| Non-success `SchemeResult` | Preserve an expected address refusal exactly |
|
|
124
157
|
| `null` | The selector names no client-visible entry |
|
|
125
158
|
| Hook absent | Use the standard pathname and `commons` ownership |
|
|
126
159
|
|
|
@@ -225,9 +258,9 @@ effects shown to consumers; plugins do not invent a second effect envelope.
|
|
|
225
258
|
- 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`, `OpenStatement`, `FoldStatement`, `EditStatement`, `CopyStatement`, `MoveStatement`, `SendStatement`, `ExecStatement`, `WorkStatement`, `ForkStatement`, `KillStatement`, `PlanStatement`) and path types (`ParsedPath` = `LocalPath` | `UrlPath`).
|
|
226
259
|
- Target syntax: contracts-owned `PathSyntax` is re-exported for the shared exact-versus-path-glob classifier {§path-glob}.
|
|
227
260
|
- Discovery: `SchemeDiscovery` (behavior class) with `SchemeInfo` / `SchemeDiscoveryResult` / `DiscoverOptions` (§6).
|
|
228
|
-
- §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)
|
|
261
|
+
- §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?`).
|
|
229
262
|
- 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.
|
|
230
|
-
- Standard
|
|
263
|
+
- Standard `EntryFindResult` exposes only its paged `results`, complete `matchingPathCount` / `matchLocationCount`, content weights, and typed range. Resource-mode rows are `EntryCatalogItem` or `EntryCatalogScope`; exact matcher mode returns flat `MatchEvidence` locations. Pagination is the materialization bound; no hidden `matches`, `pathnames`, or overflow-only result collection exists.
|
|
231
264
|
- Capability ctx (see §3.bis): `SchemeCtx`, `StreamSubscription`, and the domain capabilities. Entry authors additionally receive `EntryOperationCaps`, semantic `EntryOwner`/`EntryAddress`, and typed standard-operation results. `editBatch` receives every same-turn EDIT for one canonical resource and channel; it validates against one snapshot and commits one revision or none. There is no sequential single-EDIT fallback.
|
|
232
265
|
|
|
233
266
|
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_FLAGS` constant are the only non-class files.
|
|
@@ -308,6 +341,10 @@ Successful results carry schemes-owned, boundary-validated normalization
|
|
|
308
341
|
evidence containing both the authored and canonical coordinates. Producers do
|
|
309
342
|
not emit or proactively teach the tolerated form.
|
|
310
343
|
|
|
344
|
+
A harmless end-column overshoot clamps to the line's end rather than erroring
|
|
345
|
+
— the model asked for "through the end" and the line is shorter than it
|
|
346
|
+
guessed. Start-column overshoot and out-of-range lines remain 416 errors.
|
|
347
|
+
|
|
311
348
|
- `Slicer.lines(content, marker)` returns the selected text, source
|
|
312
349
|
`startLine`, and complete resolved `region`; `Slicer.linesRaw` preserves
|
|
313
350
|
original newline separators for COPY/MOVE source transfer.
|
|
@@ -317,15 +354,19 @@ not emit or proactively teach the tolerated form.
|
|
|
317
354
|
- `Slicer.lineMarkerEdit` applies one replacement.
|
|
318
355
|
- `Slicer.lineMarkerEditBatch` validates all replacements against one snapshot,
|
|
319
356
|
rejects overlaps, and applies all or none.
|
|
320
|
-
- `Slicer.page(items, marker)` is the separate ordered-result
|
|
321
|
-
helper; it accepts only one or two integer positions
|
|
322
|
-
|
|
323
|
-
|
|
324
|
-
|
|
325
|
-
|
|
326
|
-
|
|
327
|
-
|
|
328
|
-
|
|
357
|
+
- `Slicer.page(items, marker, options?)` is the separate ordered-result
|
|
358
|
+
pagination helper; it accepts only one or two integer positions and can name
|
|
359
|
+
an operation-owned range unit. `allowEmpty` preserves an otherwise valid
|
|
360
|
+
positive request when an upstream filter yields no items.
|
|
361
|
+
- `Slicer.coversAvailable(range)` derives whether a successful range selected
|
|
362
|
+
the complete available extent; that fact is never serialized separately.
|
|
363
|
+
|
|
364
|
+
A successful line or pagination selection carries the contracts-owned
|
|
365
|
+
`RangeExtent` {§range-extent}; a 416 carries the same extent without
|
|
366
|
+
`returned`. Exact regions use `region` instead. An exact-region failure,
|
|
367
|
+
including a failed tolerated three-coordinate scope, carries
|
|
368
|
+
`requestedCoordinates` exactly as authored; an invalid-arity text scope does
|
|
369
|
+
likewise. Both carry `columnKind: "unicodeCodePoints"`.
|
|
329
370
|
|
|
330
371
|
### §path-extension-mimetype Path-extension mimetype — `PathMimetype`
|
|
331
372
|
|
|
@@ -338,7 +379,7 @@ endpoints and `total: 0`.
|
|
|
338
379
|
- `Results.problem(owner, code, status, detail, extensions?)` — build and validate RFC 9457 Problem Details with a stable `https://problems.plurnk.dev/<owner>/<code>` type.
|
|
339
380
|
- `Results.failure(owner, code, status, detail, fields?, extensions?)` — build and validate a failed operation result.
|
|
340
381
|
- `Results.assert(result)` — validate the complete success/failure discrimination and reject malformed plugin output.
|
|
341
|
-
- `Results.assertMatchEvidence(evidence)` / `assertMatchEvidenceList(evidence)` - enforce the exact `{
|
|
382
|
+
- `Results.assertMatchEvidence(evidence)` / `assertMatchEvidenceList(evidence)` - enforce the exact `{ locator?, region? }` shape and shared `TextRegion` contract.
|
|
342
383
|
- `Results.assertReadResult(result)` - validate the universal operation result plus any `region` and `matches` it exposes.
|
|
343
384
|
- `Results.attachInstance(result, uri)` — attach the durable occurrence URI to a failed result.
|
|
344
385
|
|
|
@@ -353,12 +394,12 @@ entries, channels, and tags never return a bare failure status.
|
|
|
353
394
|
|
|
354
395
|
- `Matcher.matchAgainstContent(body, content, mimetype, mimetypes)` is the body-matcher adapter over `Mimetypes.query` (glob/regex/jsonpath/xpath).
|
|
355
396
|
- A match returns status 200 and `matches: MatchEvidence[]`.
|
|
356
|
-
`MatchEvidence` is `{
|
|
397
|
+
`MatchEvidence` is `{locator?, region?}`. `locator` preserves a structural locator;
|
|
357
398
|
`region` is a complete four-coordinate `TextRegion` only when the finding has
|
|
358
399
|
an honest exact or nearest-enclosing mapping into the text the model can READ.
|
|
359
|
-
Each item must contain at least one of `
|
|
400
|
+
Each item must contain at least one of `locator` or `region`; other fields violate
|
|
360
401
|
the shared evidence contract.
|
|
361
|
-
- The matcher is a boolean resource selector. It does not replace content with matched values or choose a retrieval window.
|
|
402
|
+
- The matcher is a boolean resource selector. It does not replace content with matched values or choose a retrieval window. FIND owns selection and pagination; exact READ owns text projection.
|
|
362
403
|
- Empty results return 204 with `matches: []`; `UnsupportedDialectError` maps to 415; `InvalidExpressionError` maps to 400; `QueryParseFailureError` maps to 203 with raw content, text/markdown, and `reason`.
|
|
363
404
|
- A multi-resource matcher omits candidates that return 415 when at least one candidate supports the dialect. If no candidate supports it, the matcher returns the first exact 415 Problem. An unreadable binary marker therefore cannot poison a repository-wide text search or masquerade as a match.
|
|
364
405
|
|
|
@@ -381,12 +422,12 @@ its implementation.
|
|
|
381
422
|
Standard operations are bound to the handler's manifest. Their optional
|
|
382
423
|
owner is semantic: `"commons"` (default) or the current `"worker"`; database
|
|
383
424
|
owner IDs are not part of the plugin contract. A handler may implement its
|
|
384
|
-
own op method instead. In particular, a handler with `find()` owns FIND
|
|
385
|
-
|
|
425
|
+
own op method instead. In particular, a handler with `find()` owns FIND; one
|
|
426
|
+
without it receives the standard stored-entry behavior.
|
|
386
427
|
- `channels` — content writes + state (`append`/`replace`/`setState`).
|
|
387
428
|
- `tags` — entry tags (`add`/`remove`/`list`).
|
|
388
429
|
- `notify` — between-turn client signal (`streamEvent`, metadata-only); not model-facing. (No `wakeWorker`: the worker wake carries subscription-close context that only exists at stream completion, so it lives on `subscriptions.close`. Only streaming schemes wake a worker, always via close.)
|
|
389
|
-
- `projection` — the text and bounded-byte projection capability in {§scheme-projection}. Acquisition schemes own
|
|
430
|
+
- `projection` — the text and bounded-byte projection capability in {§scheme-projection}. Acquisition schemes own source representations; they do not instantiate or second-guess the reader family. `null` means no readable projection.
|
|
390
431
|
- §scheme-subscriptions `subscriptions` — one streaming lifecycle:
|
|
391
432
|
|
|
392
433
|
| Surface | Lifetime | Contract |
|
|
@@ -397,9 +438,14 @@ its implementation.
|
|
|
397
438
|
|
|
398
439
|
`notifyChunk` appends and emits one stream event. Its optional stateless
|
|
399
440
|
`mimetype` retypes the channel only when the stored type differs.
|
|
400
|
-
`close` validates and persists the exact
|
|
401
|
-
channel state
|
|
402
|
-
|
|
441
|
+
`close(result, summary?, channelStates?)` validates and persists the exact
|
|
442
|
+
universal `SchemeResult`, settles channel state (exact named overrides, then the
|
|
443
|
+
result-status default), unregisters the live handle, and wakes the worker.
|
|
444
|
+
`summary` is presentation only; it never replaces or reconstructs the result.
|
|
445
|
+
An override names an existing channel and is exactly `closed` or `errored`;
|
|
446
|
+
invalid overrides fail before any channel state is changed. This permits one
|
|
447
|
+
multi-channel producer to preserve successful evidence beside an independently
|
|
448
|
+
failed representation without inventing another settlement path.
|
|
403
449
|
|
|
404
450
|
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.
|
|
405
451
|
|
package/dist/Matcher.js
CHANGED
|
@@ -16,7 +16,7 @@ export default class Matcher {
|
|
|
16
16
|
for (const match of matches) {
|
|
17
17
|
const regions = match.regions ?? [];
|
|
18
18
|
if (regions.length === 0 && match.matching !== undefined) {
|
|
19
|
-
const item = Results.assertMatchEvidence({
|
|
19
|
+
const item = Results.assertMatchEvidence({ locator: match.matching });
|
|
20
20
|
const key = JSON.stringify(item);
|
|
21
21
|
if (!seen.has(key)) {
|
|
22
22
|
seen.add(key);
|
|
@@ -26,7 +26,7 @@ export default class Matcher {
|
|
|
26
26
|
}
|
|
27
27
|
for (const region of regions) {
|
|
28
28
|
const item = Results.assertMatchEvidence({
|
|
29
|
-
...(match.matching === undefined ? {} : {
|
|
29
|
+
...(match.matching === undefined ? {} : { locator: match.matching }),
|
|
30
30
|
region,
|
|
31
31
|
});
|
|
32
32
|
const key = JSON.stringify(item);
|
package/dist/Matcher.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Matcher.js","sourceRoot":"","sources":["../src/Matcher.ts"],"names":[],"mappings":"AAAA,6EAA6E;AAC7E,yEAAyE;AACzE,4EAA4E;AAC5E,0EAA0E;AAC1E,kBAAkB;AAClB,EAAE;AACF,sEAAsE;AACtE,gFAAgF;AAIhF,OAAO,EACH,uBAAuB,EACvB,sBAAsB,EACtB,sBAAsB,GACzB,MAAM,0BAA0B,CAAC;AAClC,OAAO,EAAE,uBAAuB,EAAE,MAAM,yBAAyB,CAAC;AAClE,OAAO,OAAkD,MAAM,cAAc,CAAC;AAS9E,MAAM,CAAC,OAAO,OAAO,OAAO;IACxB,MAAM,CAAC,SAAS,CAAC,OAA8B;QAC3C,MAAM,QAAQ,GAAoB,EAAE,CAAC;QACrC,MAAM,IAAI,GAAG,IAAI,GAAG,EAAU,CAAC;QAC/B,KAAK,MAAM,KAAK,IAAI,OAAO,EAAE,CAAC;YAC1B,MAAM,OAAO,GAAG,KAAK,CAAC,OAAO,IAAI,EAAE,CAAC;YACpC,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC,IAAI,KAAK,CAAC,QAAQ,KAAK,SAAS,EAAE,CAAC;gBACvD,MAAM,IAAI,GAAG,OAAO,CAAC,mBAAmB,CAAC,EAAE,
|
|
1
|
+
{"version":3,"file":"Matcher.js","sourceRoot":"","sources":["../src/Matcher.ts"],"names":[],"mappings":"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"}
|
package/dist/Results.d.ts
CHANGED
|
@@ -16,8 +16,19 @@ export interface SchemeResult {
|
|
|
16
16
|
export interface SchemeResultBase extends SchemeResult {
|
|
17
17
|
readonly problem?: ProblemDetails;
|
|
18
18
|
}
|
|
19
|
+
export interface ChannelProducerResult extends SchemeResultBase {
|
|
20
|
+
readonly content?: never;
|
|
21
|
+
readonly mimetype?: never;
|
|
22
|
+
readonly channel?: never;
|
|
23
|
+
readonly startLine?: never;
|
|
24
|
+
readonly region?: never;
|
|
25
|
+
readonly matches?: never;
|
|
26
|
+
readonly range?: never;
|
|
27
|
+
}
|
|
28
|
+
export interface RepresentationPreparationResult extends SchemeResultBase {
|
|
29
|
+
}
|
|
19
30
|
export interface MatchEvidence {
|
|
20
|
-
readonly
|
|
31
|
+
readonly locator?: string;
|
|
21
32
|
readonly region?: TextRegion;
|
|
22
33
|
}
|
|
23
34
|
export interface EntryResult extends SchemeResultBase {
|
|
@@ -57,6 +68,8 @@ export default class Results {
|
|
|
57
68
|
static assertMatchEvidence(evidence: unknown): MatchEvidence;
|
|
58
69
|
static assertMatchEvidenceList(evidence: unknown): ReadonlyArray<MatchEvidence>;
|
|
59
70
|
static assertReadResult<T extends SchemeResult>(result: T): T;
|
|
71
|
+
static assertRepresentationPreparation<T extends RepresentationPreparationResult>(result: T): T;
|
|
72
|
+
static assertChannelProducerResult<T extends ChannelProducerResult>(result: T): T;
|
|
60
73
|
static assertScopeNormalizations(value: unknown): ReadonlyArray<ScopeNormalization>;
|
|
61
74
|
static assert<T extends SchemeResult>(result: T): T;
|
|
62
75
|
static attachInstance<T extends SchemeResult>(result: T, instance: string): T;
|
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,aAAa;IAC1B,QAAQ,CAAC,
|
|
1
|
+
{"version":3,"file":"Results.d.ts","sourceRoot":"","sources":["../src/Results.ts"],"names":[],"mappings":"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"}
|
package/dist/Results.js
CHANGED
|
@@ -33,17 +33,17 @@ export default class Results {
|
|
|
33
33
|
throw new TypeError("invalid match evidence: expected an object");
|
|
34
34
|
}
|
|
35
35
|
const record = evidence;
|
|
36
|
-
const extras = Object.keys(record).filter((key) => key !== "
|
|
36
|
+
const extras = Object.keys(record).filter((key) => key !== "locator" && key !== "region");
|
|
37
37
|
if (extras.length > 0) {
|
|
38
38
|
throw new TypeError(`invalid match evidence: unexpected field ${JSON.stringify(extras[0])}`);
|
|
39
39
|
}
|
|
40
|
-
const
|
|
40
|
+
const hasLocator = Object.hasOwn(record, "locator");
|
|
41
41
|
const hasRegion = Object.hasOwn(record, "region");
|
|
42
|
-
if (!
|
|
43
|
-
throw new TypeError("invalid match evidence: expected
|
|
42
|
+
if (!hasLocator && !hasRegion) {
|
|
43
|
+
throw new TypeError("invalid match evidence: expected locator, region, or both");
|
|
44
44
|
}
|
|
45
|
-
if (
|
|
46
|
-
throw new TypeError("invalid match evidence:
|
|
45
|
+
if (hasLocator && (typeof record.locator !== "string" || record.locator.length === 0)) {
|
|
46
|
+
throw new TypeError("invalid match evidence: locator must be a non-empty string");
|
|
47
47
|
}
|
|
48
48
|
if (hasRegion)
|
|
49
49
|
Validator.assertTextRegion(record.region);
|
|
@@ -68,6 +68,36 @@ export default class Results {
|
|
|
68
68
|
}
|
|
69
69
|
return exact;
|
|
70
70
|
}
|
|
71
|
+
static assertRepresentationPreparation(result) {
|
|
72
|
+
const exact = Results.assert(result);
|
|
73
|
+
if (exact.status < 200 && exact.status !== 102) {
|
|
74
|
+
throw new InvalidOperationResultError("a live representation preparation must use status 102");
|
|
75
|
+
}
|
|
76
|
+
if (exact.status >= 200 && exact.status < 300 && exact.status !== 200) {
|
|
77
|
+
throw new InvalidOperationResultError("representation preparation readiness must use status 200");
|
|
78
|
+
}
|
|
79
|
+
if (Object.hasOwn(exact, "channelOutcomes")) {
|
|
80
|
+
throw new InvalidOperationResultError("representation preparation cannot carry transient channel outcomes");
|
|
81
|
+
}
|
|
82
|
+
const projectionFields = ["content", "mimetype", "channel", "startLine", "region", "matches", "range"];
|
|
83
|
+
const owned = projectionFields.find((field) => Object.hasOwn(exact, field));
|
|
84
|
+
if (owned !== undefined) {
|
|
85
|
+
throw new InvalidOperationResultError(`representation preparation cannot carry core-owned projection field ${JSON.stringify(owned)}`);
|
|
86
|
+
}
|
|
87
|
+
return exact;
|
|
88
|
+
}
|
|
89
|
+
static assertChannelProducerResult(result) {
|
|
90
|
+
const exact = Results.assert(result);
|
|
91
|
+
if (exact.status < 200 || exact.status === 202) {
|
|
92
|
+
throw new InvalidOperationResultError(`channel producer result cannot use nonterminal status ${exact.status}`);
|
|
93
|
+
}
|
|
94
|
+
const projectionFields = ["content", "mimetype", "channel", "startLine", "region", "matches", "range"];
|
|
95
|
+
const owned = projectionFields.find((field) => Object.hasOwn(exact, field));
|
|
96
|
+
if (owned !== undefined) {
|
|
97
|
+
throw new InvalidOperationResultError(`channel producer result cannot carry core-owned projection field ${JSON.stringify(owned)}`);
|
|
98
|
+
}
|
|
99
|
+
return exact;
|
|
100
|
+
}
|
|
71
101
|
static assertScopeNormalizations(value) {
|
|
72
102
|
if (!Array.isArray(value) || value.length === 0) {
|
|
73
103
|
throw new TypeError("invalid scope normalizations: expected a non-empty array");
|
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;AA2EvC,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,CAAC,CAAC;QAC1F,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,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,QAAQ,EAAE,SAAS,EAAE,OAAO,CAAC,CAAC;QACvG,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,QAAQ,EAAE,SAAS,EAAE,OAAO,CAAC,CAAC;QACvG,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/Slicer.d.ts
CHANGED
|
@@ -1,5 +1,4 @@
|
|
|
1
|
-
import type { LineMarker } from "@plurnk/plurnk-contracts";
|
|
2
|
-
import type { TextRegion } from "@plurnk/plurnk-contracts";
|
|
1
|
+
import type { LineMarker, RangeExtent, TextRegion } from "@plurnk/plurnk-contracts";
|
|
3
2
|
import { type SchemeResult, type ScopeNormalization } from "./Results.ts";
|
|
4
3
|
export interface TextReplacement {
|
|
5
4
|
readonly start: number;
|
|
@@ -9,19 +8,7 @@ export interface TextReplacement {
|
|
|
9
8
|
readonly endLine: number;
|
|
10
9
|
readonly normalization?: ScopeNormalization;
|
|
11
10
|
}
|
|
12
|
-
export type RangeUnit = "
|
|
13
|
-
export interface RangeExtent {
|
|
14
|
-
readonly unit: RangeUnit;
|
|
15
|
-
readonly requested: {
|
|
16
|
-
readonly first: number;
|
|
17
|
-
readonly last: number | null;
|
|
18
|
-
};
|
|
19
|
-
readonly available: {
|
|
20
|
-
readonly first: number | null;
|
|
21
|
-
readonly last: number | null;
|
|
22
|
-
readonly total: number;
|
|
23
|
-
};
|
|
24
|
-
}
|
|
11
|
+
export type RangeUnit = RangeExtent["unit"];
|
|
25
12
|
export interface SliceResult extends SchemeResult {
|
|
26
13
|
text?: string;
|
|
27
14
|
startLine?: number;
|
|
@@ -42,11 +29,15 @@ export interface BatchEdit {
|
|
|
42
29
|
}
|
|
43
30
|
export default class Slicer {
|
|
44
31
|
#private;
|
|
32
|
+
static coversAvailable(range: RangeExtent): boolean;
|
|
45
33
|
static textReplacement(content: string, marker: LineMarker, body: string): TextReplacement | {
|
|
46
34
|
error: string;
|
|
47
35
|
};
|
|
48
36
|
static lines(content: string, marker: LineMarker): SliceResult;
|
|
49
|
-
static page<T>(items: readonly T[], marker: LineMarker
|
|
37
|
+
static page<T>(items: readonly T[], marker: LineMarker, options?: {
|
|
38
|
+
readonly unit?: RangeUnit;
|
|
39
|
+
readonly allowEmpty?: boolean;
|
|
40
|
+
}): PageResult<T>;
|
|
50
41
|
static linesRaw(content: string, marker: LineMarker): SliceResult;
|
|
51
42
|
static lineMarkerEdit(content: string, marker: LineMarker, body: string): EditResult;
|
|
52
43
|
static lineMarkerEditBatch(content: string, edits: readonly BatchEdit[]): EditResult;
|
package/dist/Slicer.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Slicer.d.ts","sourceRoot":"","sources":["../src/Slicer.ts"],"names":[],"mappings":"AAkBA,OAAO,KAAK,EAAE,UAAU,EAAE,
|
|
1
|
+
{"version":3,"file":"Slicer.d.ts","sourceRoot":"","sources":["../src/Slicer.ts"],"names":[],"mappings":"AAkBA,OAAO,KAAK,EAAE,UAAU,EAAE,WAAW,EAAE,UAAU,EAAE,MAAM,0BAA0B,CAAC;AAEpF,OAAgB,EAAE,KAAK,YAAY,EAAE,KAAK,kBAAkB,EAAE,MAAM,cAAc,CAAC;AAQnF,MAAM,WAAW,eAAe;IAC5B,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAC;IACrB,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAC3B,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,aAAa,CAAC,EAAE,kBAAkB,CAAC;CAC/C;AAED,MAAM,MAAM,SAAS,GAAG,WAAW,CAAC,MAAM,CAAC,CAAC;AAC5C,MAAM,WAAW,WAAY,SAAQ,YAAY;IAC7C,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,MAAM,CAAC,EAAE,UAAU,CAAC;IACpB,KAAK,CAAC,EAAE,WAAW,CAAC;CACvB;AACD,MAAM,WAAW,UAAU,CAAC,CAAC,CAAE,SAAQ,YAAY;IAAG,KAAK,CAAC,EAAE,CAAC,EAAE,CAAC;IAAC,KAAK,CAAC,EAAE,WAAW,CAAA;CAAE;AACxF,MAAM,WAAW,UAAW,SAAQ,YAAY;IAAG,MAAM,CAAC,EAAE,MAAM,CAAC;IAAC,KAAK,CAAC,EAAE,WAAW,CAAA;CAAE;AACzF,MAAM,WAAW,SAAS;IACtB,QAAQ,CAAC,MAAM,EAAE,UAAU,CAAC;IAC5B,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;CACzB;AAED,MAAM,CAAC,OAAO,OAAO,MAAM;;IAmEvB,MAAM,CAAC,eAAe,CAAC,KAAK,EAAE,WAAW,GAAG,OAAO,CAGlD;IA8FD,MAAM,CAAC,eAAe,CAClB,OAAO,EAAE,MAAM,EACf,MAAM,EAAE,UAAU,EAClB,IAAI,EAAE,MAAM,GACb,eAAe,GAAG;QAAE,KAAK,EAAE,MAAM,CAAA;KAAE,CAkBrC;IA2ED,MAAM,CAAC,KAAK,CAAC,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,UAAU,GAAG,WAAW,CA6E7D;IAKD,MAAM,CAAC,IAAI,CAAC,CAAC,EACT,KAAK,EAAE,SAAS,CAAC,EAAE,EACnB,MAAM,EAAE,UAAU,EAClB,OAAO,GAAE;QAAE,QAAQ,CAAC,IAAI,CAAC,EAAE,SAAS,CAAC;QAAC,QAAQ,CAAC,UAAU,CAAC,EAAE,OAAO,CAAA;KAAO,GAC3E,UAAU,CAAC,CAAC,CAAC,CA2Ef;IAQD,MAAM,CAAC,QAAQ,CAAC,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,UAAU,GAAG,WAAW,CAkBhE;IAUD,MAAM,CAAC,cAAc,CAAC,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,UAAU,EAAE,IAAI,EAAE,MAAM,GAAG,UAAU,CAEnF;IAED,MAAM,CAAC,mBAAmB,CAAC,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,SAAS,SAAS,EAAE,GAAG,UAAU,CA+EnF;CAEJ"}
|
package/dist/Slicer.js
CHANGED
|
@@ -39,22 +39,25 @@ export default class Slicer {
|
|
|
39
39
|
});
|
|
40
40
|
}
|
|
41
41
|
static #extent(marker, total, unit) {
|
|
42
|
+
const first = marker.marks[0];
|
|
42
43
|
return {
|
|
43
44
|
unit,
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
last: marker.marks.length > 1 ? marker.marks[1] : null,
|
|
47
|
-
},
|
|
48
|
-
available: {
|
|
49
|
-
first: total === 0 ? null : 1,
|
|
50
|
-
last: total === 0 ? null : total,
|
|
51
|
-
total,
|
|
52
|
-
},
|
|
45
|
+
total,
|
|
46
|
+
requested: [first, marker.marks[1] ?? first],
|
|
53
47
|
};
|
|
54
48
|
}
|
|
49
|
+
static #projectedExtent(extent, first, last) {
|
|
50
|
+
return first === null || last === null
|
|
51
|
+
? extent
|
|
52
|
+
: { ...extent, returned: [first, last] };
|
|
53
|
+
}
|
|
54
|
+
static coversAvailable(range) {
|
|
55
|
+
return range.total === 0
|
|
56
|
+
|| (range.returned?.[0] === 1 && range.returned[1] === range.total);
|
|
57
|
+
}
|
|
55
58
|
static #exactTextReplacement(content, marker, body) {
|
|
56
|
-
const [startLine, startColumn, endLine,
|
|
57
|
-
if (![startLine, startColumn, endLine,
|
|
59
|
+
const [startLine, startColumn, endLine, rawEndColumn] = marker.marks;
|
|
60
|
+
if (![startLine, startColumn, endLine, rawEndColumn].every(Number.isSafeInteger)) {
|
|
58
61
|
return { error: "An exact text region requires four integer coordinates." };
|
|
59
62
|
}
|
|
60
63
|
const lines = TextCoordinates.lines(content);
|
|
@@ -64,6 +67,11 @@ export default class Slicer {
|
|
|
64
67
|
if (endLine < 1 || endLine > lines.length) {
|
|
65
68
|
return { error: `End line ${endLine} is outside the available line range 1..${lines.length}.` };
|
|
66
69
|
}
|
|
70
|
+
// A harmless end-column overshoot clamps to the line's end — the model
|
|
71
|
+
// asked for "through the end" and the line is shorter than it guessed.
|
|
72
|
+
const endLineData = lines[endLine - 1];
|
|
73
|
+
const maxEndColumn = [...content.slice(endLineData.start, endLineData.contentEnd)].length + 1;
|
|
74
|
+
const endColumn = Math.min(rawEndColumn, maxEndColumn);
|
|
67
75
|
let start;
|
|
68
76
|
let end;
|
|
69
77
|
try {
|
|
@@ -75,7 +83,7 @@ export default class Slicer {
|
|
|
75
83
|
}
|
|
76
84
|
if (end < start) {
|
|
77
85
|
return {
|
|
78
|
-
error: `Exact region ${startLine},${startColumn},${endLine},${
|
|
86
|
+
error: `Exact region ${startLine},${startColumn},${endLine},${rawEndColumn} ends before it starts.`,
|
|
79
87
|
};
|
|
80
88
|
}
|
|
81
89
|
return { start, end, body, startLine, endLine };
|
|
@@ -199,19 +207,20 @@ export default class Slicer {
|
|
|
199
207
|
// entry would 416. start>end here yields an empty slice for READ and a
|
|
200
208
|
// full replacement for EDIT.
|
|
201
209
|
if (totalLines === 0) {
|
|
202
|
-
if ((first === 0 || first === 1) && last === -1)
|
|
210
|
+
if ((first === 0 || first === 1) && (last === -1 || last > 0)) {
|
|
203
211
|
return { kind: "range", start: 1, end: 0 };
|
|
212
|
+
}
|
|
204
213
|
return { error: `Range ${first},${last} cannot select from empty content.` };
|
|
205
214
|
}
|
|
206
215
|
let n = first;
|
|
207
216
|
let m = last;
|
|
208
217
|
if (n === 0)
|
|
209
218
|
n = 1;
|
|
210
|
-
if (m === -1)
|
|
219
|
+
if (m === -1 || m > totalLines)
|
|
211
220
|
m = totalLines;
|
|
212
221
|
if (n < 1 || n > totalLines)
|
|
213
222
|
return { error: `Range start ${first} is outside the available line range 1..${totalLines}.` };
|
|
214
|
-
if (m < 1
|
|
223
|
+
if (m < 1)
|
|
215
224
|
return { error: `Range end ${last} is outside the available line range 1..${totalLines}.` };
|
|
216
225
|
if (n > m)
|
|
217
226
|
return { error: `Range start ${first} exceeds end ${last}.` };
|
|
@@ -260,14 +269,27 @@ export default class Slicer {
|
|
|
260
269
|
if ("error" in norm) {
|
|
261
270
|
return Slicer.#rangeFailure(norm.error, Slicer.#extent(marker, lines.length, "line"));
|
|
262
271
|
}
|
|
263
|
-
|
|
264
|
-
|
|
272
|
+
const extent = Slicer.#extent(marker, lines.length, "line");
|
|
273
|
+
if (norm.kind !== "range") {
|
|
274
|
+
return {
|
|
275
|
+
status: 200,
|
|
276
|
+
text: "",
|
|
277
|
+
startLine: undefined,
|
|
278
|
+
range: Slicer.#projectedExtent(extent, null, null),
|
|
279
|
+
};
|
|
280
|
+
}
|
|
265
281
|
if (lines.length === 0) {
|
|
266
282
|
const region = TextCoordinates.regionFromOffsets(content, 0, 0);
|
|
267
283
|
if (region === null) {
|
|
268
284
|
throw new Error("Slicer could not address an empty text resource.");
|
|
269
285
|
}
|
|
270
|
-
return {
|
|
286
|
+
return {
|
|
287
|
+
status: 200,
|
|
288
|
+
text: "",
|
|
289
|
+
startLine: 1,
|
|
290
|
+
region,
|
|
291
|
+
range: Slicer.#projectedExtent(extent, null, null),
|
|
292
|
+
};
|
|
271
293
|
}
|
|
272
294
|
const selected = lines
|
|
273
295
|
.slice(norm.start - 1, norm.end)
|
|
@@ -281,14 +303,15 @@ export default class Slicer {
|
|
|
281
303
|
text: selected.join("\n"),
|
|
282
304
|
startLine: norm.start,
|
|
283
305
|
region,
|
|
306
|
+
range: Slicer.#projectedExtent(extent, norm.start, norm.end),
|
|
284
307
|
};
|
|
285
308
|
}
|
|
286
309
|
// `<L>` over an ordered result set uses the same positional contract as
|
|
287
310
|
// READ slicing. The returned extent lets a scheme put exact recovery facts
|
|
288
311
|
// in RFC 9457 Problem Details instead of emitting a bare 416.
|
|
289
|
-
static page(items, marker) {
|
|
312
|
+
static page(items, marker, options = {}) {
|
|
290
313
|
const total = items.length;
|
|
291
|
-
const extent = Slicer.#extent(marker, total, "result");
|
|
314
|
+
const extent = Slicer.#extent(marker, total, options.unit ?? "result");
|
|
292
315
|
if (marker.marks.length !== 1 && marker.marks.length !== 2) {
|
|
293
316
|
return Slicer.#failure("range-not-satisfiable", 416, `Result pagination requires one position or an inclusive two-position range; received ${marker.marks.length} positions.`, { range: extent }, {
|
|
294
317
|
range: extent,
|
|
@@ -298,31 +321,48 @@ export default class Slicer {
|
|
|
298
321
|
retryable: false,
|
|
299
322
|
});
|
|
300
323
|
}
|
|
301
|
-
const
|
|
302
|
-
if (!Number.isInteger(first) ||
|
|
324
|
+
const [first, last] = extent.requested;
|
|
325
|
+
if (!Number.isInteger(first) || !Number.isInteger(last)) {
|
|
303
326
|
return Slicer.#rangeFailure(`Result ranges require integer positions; the result set contains ${total} item(s).`, extent);
|
|
304
327
|
}
|
|
305
|
-
if (
|
|
306
|
-
if (first === 0 || first === -1)
|
|
307
|
-
return { status: 200, items: [] };
|
|
308
|
-
|
|
309
|
-
|
|
328
|
+
if (marker.marks.length === 1) {
|
|
329
|
+
if (first === 0 || first === -1) {
|
|
330
|
+
return { status: 200, items: [], range: Slicer.#projectedExtent(extent, null, null) };
|
|
331
|
+
}
|
|
332
|
+
if (total === 0 && options.allowEmpty === true && first > 0) {
|
|
333
|
+
return { status: 200, items: [], range: Slicer.#projectedExtent(extent, null, null) };
|
|
334
|
+
}
|
|
335
|
+
if (first > 0 && first <= total) {
|
|
336
|
+
return {
|
|
337
|
+
status: 200,
|
|
338
|
+
items: [items[first - 1]],
|
|
339
|
+
range: Slicer.#projectedExtent(extent, first, first),
|
|
340
|
+
};
|
|
341
|
+
}
|
|
310
342
|
return Slicer.#rangeFailure(`Result ${first} is out of range; available positions are 1..${total}.`, extent);
|
|
311
343
|
}
|
|
312
344
|
if (total === 0) {
|
|
313
|
-
if (
|
|
314
|
-
return { status: 200, items: [] };
|
|
345
|
+
if (options.allowEmpty === true && first > 0 && (last === -1 || last >= first)) {
|
|
346
|
+
return { status: 200, items: [], range: Slicer.#projectedExtent(extent, null, null) };
|
|
347
|
+
}
|
|
348
|
+
if ((first === 0 || first === 1) && last === -1) {
|
|
349
|
+
return { status: 200, items: [], range: Slicer.#projectedExtent(extent, null, null) };
|
|
350
|
+
}
|
|
315
351
|
return Slicer.#rangeFailure(`Result range ${first},${last} cannot select from an empty result set.`, extent);
|
|
316
352
|
}
|
|
317
353
|
const n = first === 0 ? 1 : first;
|
|
318
|
-
const m = last === -1 ? total : last;
|
|
354
|
+
const m = last === -1 ? total : Math.min(last, total);
|
|
319
355
|
if (n < 1 || n > total)
|
|
320
356
|
return Slicer.#rangeFailure(`Result range start ${first} is out of range; available positions are 1..${total}.`, extent);
|
|
321
|
-
if (m < 1
|
|
357
|
+
if (m < 1)
|
|
322
358
|
return Slicer.#rangeFailure(`Result range end ${last} is out of range; available positions are 1..${total}.`, extent);
|
|
323
359
|
if (n > m)
|
|
324
360
|
return Slicer.#rangeFailure(`Result range start ${first} exceeds end ${last}.`, extent);
|
|
325
|
-
return {
|
|
361
|
+
return {
|
|
362
|
+
status: 200,
|
|
363
|
+
items: items.slice(n - 1, m),
|
|
364
|
+
range: Slicer.#projectedExtent(extent, n, m),
|
|
365
|
+
};
|
|
326
366
|
}
|
|
327
367
|
// COPY-style raw slice. Returns the selected source bytes verbatim (no
|
|
328
368
|
// line-number prefix), including any separators owned by a whole-line
|
package/dist/Slicer.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Slicer.js","sourceRoot":"","sources":["../src/Slicer.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"Slicer.js","sourceRoot":"","sources":["../src/Slicer.ts"],"names":[],"mappings":"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"}
|
package/dist/ctx.d.ts
CHANGED
|
@@ -1,14 +1,16 @@
|
|
|
1
1
|
import type { WriterTier } from "./types.ts";
|
|
2
|
-
import type { EditStatement, FindStatement, ReadStatement, SendStatement } from "@plurnk/plurnk-contracts";
|
|
2
|
+
import type { EditStatement, FindStatement, RangeExtent, ReadStatement, SendStatement } from "@plurnk/plurnk-contracts";
|
|
3
3
|
import type { TextRegion } from "@plurnk/plurnk-contracts";
|
|
4
|
-
import type { MatchEvidence, SchemeResult } from "./Results.ts";
|
|
4
|
+
import type { ChannelProducerResult, MatchEvidence, SchemeResult } from "./Results.ts";
|
|
5
5
|
import type { EditBatchReceipt, EditBatchResult } from "./edit-receipt.ts";
|
|
6
|
-
export type
|
|
6
|
+
export type TerminalChannelState = "closed" | "errored";
|
|
7
|
+
export type ChannelState = "static" | "active" | TerminalChannelState;
|
|
7
8
|
export interface EntryData {
|
|
8
9
|
readonly channels: Record<string, {
|
|
9
10
|
content: string;
|
|
10
11
|
mimetype: string;
|
|
11
12
|
state?: ChannelState;
|
|
13
|
+
producerResult?: ChannelProducerResult;
|
|
12
14
|
}>;
|
|
13
15
|
readonly tags: ReadonlyArray<string>;
|
|
14
16
|
}
|
|
@@ -17,6 +19,7 @@ export interface StoredEntryData {
|
|
|
17
19
|
content: string;
|
|
18
20
|
mimetype: string;
|
|
19
21
|
state: ChannelState;
|
|
22
|
+
producerResult?: ChannelProducerResult;
|
|
20
23
|
}>;
|
|
21
24
|
readonly tags: ReadonlyArray<string>;
|
|
22
25
|
}
|
|
@@ -36,6 +39,7 @@ export interface EntryReadResult extends SchemeResult {
|
|
|
36
39
|
readonly startLine?: number | null;
|
|
37
40
|
readonly region?: TextRegion;
|
|
38
41
|
readonly matches?: ReadonlyArray<MatchEvidence>;
|
|
42
|
+
readonly range?: RangeExtent;
|
|
39
43
|
readonly reason?: string;
|
|
40
44
|
readonly awaitWorker?: string;
|
|
41
45
|
}
|
|
@@ -48,21 +52,22 @@ export interface EntryCatalogItem {
|
|
|
48
52
|
tokens: number;
|
|
49
53
|
lines: number;
|
|
50
54
|
}>>;
|
|
51
|
-
readonly
|
|
55
|
+
readonly matchLocationCount?: number;
|
|
52
56
|
}
|
|
53
|
-
export interface
|
|
54
|
-
readonly
|
|
55
|
-
readonly
|
|
57
|
+
export interface EntryCatalogScope {
|
|
58
|
+
readonly path: string;
|
|
59
|
+
readonly items: number;
|
|
60
|
+
readonly tokens: number;
|
|
56
61
|
}
|
|
57
62
|
export interface EntryFindResult extends SchemeResult {
|
|
58
63
|
readonly content: string | null;
|
|
59
64
|
readonly mimetype: string | null;
|
|
60
|
-
readonly results: ReadonlyArray<EntryCatalogItem>;
|
|
65
|
+
readonly results: ReadonlyArray<EntryCatalogItem | EntryCatalogScope | MatchEvidence>;
|
|
61
66
|
readonly itemsTokenTotal: number;
|
|
62
|
-
readonly
|
|
63
|
-
readonly
|
|
64
|
-
readonly
|
|
65
|
-
readonly
|
|
67
|
+
readonly returnedItemsTokenTotal: number;
|
|
68
|
+
readonly matchingPathCount: number;
|
|
69
|
+
readonly matchLocationCount: number;
|
|
70
|
+
readonly range?: RangeExtent;
|
|
66
71
|
}
|
|
67
72
|
export interface EntryOperationCaps {
|
|
68
73
|
editBatch(statements: readonly EditStatement[], owner?: EntryOwner): Promise<EntryEditResult>;
|
|
@@ -113,12 +118,10 @@ export interface ProjectionCaps {
|
|
|
113
118
|
}
|
|
114
119
|
export interface StreamSubscription extends AbortSignal {
|
|
115
120
|
notifyChunk(channel: string, chunk: string, mimetype?: string): Promise<void>;
|
|
116
|
-
close(result: SchemeResult, summary?: string): Promise<void>;
|
|
121
|
+
close(result: SchemeResult, summary?: string, channelStates?: Readonly<Record<string, TerminalChannelState>>): Promise<void>;
|
|
117
122
|
}
|
|
118
123
|
export interface SubscriptionCaps extends Pick<StreamSubscription, "notifyChunk" | "close"> {
|
|
119
|
-
open(pathname: string, handle: SubscriptionHandle
|
|
120
|
-
publishedChannel?: string;
|
|
121
|
-
}): Promise<StreamSubscription>;
|
|
124
|
+
open(pathname: string, handle: SubscriptionHandle): Promise<StreamSubscription>;
|
|
122
125
|
}
|
|
123
126
|
export interface SubscriptionHandle {
|
|
124
127
|
cancel(): void | Promise<void>;
|
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,EAAE,aAAa,EAAE,aAAa,EAAE,aAAa,EAAE,aAAa,EAAE,MAAM,0BAA0B,CAAC;
|
|
1
|
+
{"version":3,"file":"ctx.d.ts","sourceRoot":"","sources":["../src/ctx.ts"],"names":[],"mappings":"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"}
|
package/dist/handler.d.ts
CHANGED
|
@@ -1,17 +1,21 @@
|
|
|
1
|
-
import type { FindStatement,
|
|
1
|
+
import type { FindStatement, EditStatement, SendStatement, ExecStatement, WorkStatement, ForkStatement, KillStatement, PlanStatement, ParsedPath } from "@plurnk/plurnk-contracts";
|
|
2
2
|
import type { PluginAttributionSource } from "@plurnk/plurnk-meta";
|
|
3
3
|
import type { EntryAddress, ProposalApplyRequest, ProposalApplyResult, SchemeCtx } from "./ctx.ts";
|
|
4
4
|
import type { EditBatchResult } from "./edit-receipt.ts";
|
|
5
|
-
import type { SchemeResult } from "./Results.ts";
|
|
5
|
+
import type { RepresentationPreparationResult, SchemeResult } from "./Results.ts";
|
|
6
6
|
import type { SchemeManifest } from "./types.ts";
|
|
7
|
+
export interface RepresentationPreparationRequest {
|
|
8
|
+
readonly target: ParsedPath;
|
|
9
|
+
readonly pathname: string;
|
|
10
|
+
}
|
|
7
11
|
export interface SchemeHandler extends PluginAttributionSource {
|
|
8
12
|
readonly manifest?: SchemeManifest;
|
|
9
13
|
ready?(): Promise<void>;
|
|
10
14
|
close?(): Promise<void>;
|
|
11
15
|
applyResolution?(request: ProposalApplyRequest, ctx: SchemeCtx): Promise<ProposalApplyResult>;
|
|
12
|
-
resolveEntryAddress?(target: ParsedPath, ctx: SchemeCtx): Promise<EntryAddress | null>;
|
|
16
|
+
resolveEntryAddress?(target: ParsedPath, ctx: SchemeCtx): Promise<EntryAddress | SchemeResult | null>;
|
|
13
17
|
prepareFind?(statement: FindStatement, ctx: SchemeCtx): Promise<SchemeResult>;
|
|
14
|
-
|
|
18
|
+
prepareRepresentation?(request: RepresentationPreparationRequest, ctx: SchemeCtx): Promise<RepresentationPreparationResult>;
|
|
15
19
|
find?(statement: FindStatement, ctx: SchemeCtx): Promise<SchemeResult>;
|
|
16
20
|
editBatch?(statements: readonly EditStatement[], ctx: SchemeCtx): Promise<EditBatchResult>;
|
|
17
21
|
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,aAAa,EACb,aAAa,EACb,aAAa,EACb,aAAa,EACb,
|
|
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,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,SAAS,EAAE,MAAM,UAAU,CAAC;AACnG,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;AAEjD,MAAM,WAAW,gCAAgC;IAC7C,QAAQ,CAAC,MAAM,EAAE,UAAU,CAAC;IAC5B,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;IAM9F,mBAAmB,CAAC,CAChB,MAAM,EAAE,UAAU,EAClB,GAAG,EAAE,SAAS,GACf,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,IAAI,CAAC,CAAC,SAAS,EAAE,aAAa,EAAE,GAAG,EAAE,SAAS,GAAG,OAAO,CAAC,YAAY,CAAC,CAAC;IACvE,SAAS,CAAC,CAAC,UAAU,EAAE,SAAS,aAAa,EAAE,EAAE,GAAG,EAAE,SAAS,GAAG,OAAO,CAAC,eAAe,CAAC,CAAC;IAC3F,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;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;IACvE,IAAI,CAAC,CAAC,SAAS,EAAE,aAAa,EAAE,GAAG,EAAE,SAAS,GAAG,OAAO,CAAC,YAAY,CAAC,CAAC;CAC1E"}
|
package/dist/handler.js
CHANGED
|
@@ -1,13 +1,13 @@
|
|
|
1
1
|
// The scheme BEHAVIOR contract — the typed counterpart to SchemeManifest
|
|
2
2
|
// (which types a scheme's declaration). A handler implements a method per op it
|
|
3
|
-
// supports, named for the lowercased op (
|
|
3
|
+
// supports, named for the lowercased op (SEND → send, FIND → find,
|
|
4
4
|
// …). OPEN/FOLD are deliberately absent: core routes those curation operations
|
|
5
|
-
// only to its log owner.
|
|
6
|
-
//
|
|
7
|
-
//
|
|
5
|
+
// only to its log owner. Core owns every READ: stored schemes inherit it and
|
|
6
|
+
// other readable schemes provide a scope-blind representation first. FIND may
|
|
7
|
+
// still be candidate-store-specific.
|
|
8
8
|
// Every method is therefore OPTIONAL — a scheme implements only its distinct
|
|
9
|
-
// surface.
|
|
10
|
-
//
|
|
9
|
+
// surface. Operation methods share `(statement, ctx) => Promise<SchemeResult>`;
|
|
10
|
+
// preparation hooks deliberately receive narrower inputs.
|
|
11
11
|
//
|
|
12
12
|
// `implements SchemeHandler` gives a sibling compile-time checking of its op
|
|
13
13
|
// signatures instead of the duck-typed `object` the engine falls back to. The
|
package/dist/handler.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"handler.js","sourceRoot":"","sources":["../src/handler.ts"],"names":[],"mappings":"AAAA,yEAAyE;AACzE,gFAAgF;AAChF,
|
|
1
|
+
{"version":3,"file":"handler.js","sourceRoot":"","sources":["../src/handler.ts"],"names":[],"mappings":"AAAA,yEAAyE;AACzE,gFAAgF;AAChF,mEAAmE;AACnE,+EAA+E;AAC/E,6EAA6E;AAC7E,8EAA8E;AAC9E,qCAAqC;AACrC,6EAA6E;AAC7E,gFAAgF;AAChF,0DAA0D;AAC1D,EAAE;AACF,6EAA6E;AAC7E,8EAA8E;AAC9E,+EAA+E;AAC/E,gFAAgF;AAChF,gFAAgF"}
|
package/dist/index.d.ts
CHANGED
|
@@ -5,7 +5,7 @@ export { default as Manifest } from "./Manifest.ts";
|
|
|
5
5
|
export { default as NetworkAddress } from "./NetworkAddress.ts";
|
|
6
6
|
export { default as MimetypeClassifier, TEXT_PRIMITIVE_MIMETYPE } from "./MimetypeClassifier.ts";
|
|
7
7
|
export { default as Slicer } from "./Slicer.ts";
|
|
8
|
-
export type { BatchEdit, EditResult as LineEditResult, PageResult,
|
|
8
|
+
export type { BatchEdit, EditResult as LineEditResult, PageResult, RangeUnit, SliceResult, TextReplacement, } from "./Slicer.ts";
|
|
9
9
|
export { default as PathMimetype } from "./PathMimetype.ts";
|
|
10
10
|
export { default as Matcher } from "./Matcher.ts";
|
|
11
11
|
export type { MatchResult } from "./Matcher.ts";
|
|
@@ -15,17 +15,15 @@ export { default as Summarize } from "./Summarize.ts";
|
|
|
15
15
|
export type { OrientIndex } from "./Summarize.ts";
|
|
16
16
|
export { default as OutputScheme } from "./OutputScheme.ts";
|
|
17
17
|
export type { RuntimeDecl } from "./OutputScheme.ts";
|
|
18
|
-
export { default as DefaultRead } from "./DefaultRead.ts";
|
|
19
|
-
export type { ReadResolution } from "./DefaultRead.ts";
|
|
20
18
|
export { default as Results } from "./Results.ts";
|
|
21
19
|
export { default as PacketSections } from "./PacketSections.ts";
|
|
22
20
|
export { InvalidOperationResultError } from "./Results.ts";
|
|
23
21
|
export { PathSyntax } from "@plurnk/plurnk-contracts";
|
|
24
22
|
export { MimetypeInputLimitError as ProjectionInputLimitError } from "@plurnk/plurnk-mimetypes";
|
|
25
23
|
export type { AppliedEditBatchReceipt, AppliedEditReceipt, EditBatchReceipt, EditBatchResult, EditEffectReceipt, EditReceipt, EditReceiptUnit, ReviewerReplacementEditBatchReceipt, SupersededEditReceipt, } from "./edit-receipt.ts";
|
|
26
|
-
export type { EntryResult, MatchEvidence, PassthroughResult, ProposalResult, ProblemDetails, ScopeNormalization, SchemeResult, SchemeResultBase, } from "./Results.ts";
|
|
27
|
-
export type { ChannelCaps, ChannelState, EntryCaps, EntryCatalogItem, EntryData, EntryEditResult, EntryFindResult,
|
|
28
|
-
export type { SchemeHandler } from "./handler.ts";
|
|
24
|
+
export type { ChannelProducerResult, EntryResult, MatchEvidence, PassthroughResult, ProposalResult, ProblemDetails, RepresentationPreparationResult, ScopeNormalization, SchemeResult, SchemeResultBase, } from "./Results.ts";
|
|
25
|
+
export type { ChannelCaps, ChannelState, TerminalChannelState, EntryCaps, EntryCatalogItem, EntryCatalogScope, EntryData, EntryEditResult, EntryFindResult, EntryOperationCaps, EntryOwner, EntryAddress, EntryReadResult, EntryStorageReadResult, EntryStorageWriteResult, StoredEntryData, StreamSubscription, ProjectionCaps, ProjectedText, NotifyCaps, ProposalApplyRequest, ProposalApplyResult, ProposalAware, SchemeCtx, SubscriptionCaps, SubscriptionHandle, TagCaps, TagListResult, } from "./ctx.ts";
|
|
26
|
+
export type { RepresentationPreparationRequest, SchemeHandler } from "./handler.ts";
|
|
29
27
|
export type { PacketSectionDraft, PacketSectionTransformer } from "./packet.ts";
|
|
30
28
|
export type { PluginAttributionContext, PluginAttributionDeclaration, PluginAttributionSource, } from "@plurnk/plurnk-meta";
|
|
31
29
|
export type { PlurnkStatement, FindStatement, ReadStatement, OpenStatement, FoldStatement, EditStatement, CopyStatement, MoveStatement, SendStatement, ExecStatement, WorkStatement, ForkStatement, KillStatement, PlanStatement, ParsedPath, LocalPath, UrlPath, } from "@plurnk/plurnk-contracts";
|
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,SAAS,EACT,kBAAkB,EAClB,cAAc,EACd,UAAU,GACb,MAAM,YAAY,CAAC;AACpB,OAAO,EAAE,kBAAkB,EAAE,MAAM,YAAY,CAAC;AAGhD,OAAO,EAAE,OAAO,IAAI,cAAc,EAAE,MAAM,qBAAqB,CAAC;AAChE,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;AAChD,YAAY,EACR,SAAS,EACT,UAAU,IAAI,cAAc,EAC5B,UAAU,EACV,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
package/dist/index.js
CHANGED
|
@@ -16,7 +16,6 @@ export { default as Matcher } from "./Matcher.js";
|
|
|
16
16
|
export { default as SchemeDiscovery } from "./SchemeDiscovery.js";
|
|
17
17
|
export { default as Summarize } from "./Summarize.js";
|
|
18
18
|
export { default as OutputScheme } from "./OutputScheme.js";
|
|
19
|
-
export { default as DefaultRead } from "./DefaultRead.js";
|
|
20
19
|
export { default as Results } from "./Results.js";
|
|
21
20
|
export { default as PacketSections } from "./PacketSections.js";
|
|
22
21
|
export { InvalidOperationResultError } from "./Results.js";
|
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,yEAAyE;AACzE,4BAA4B;AAS5B,OAAO,EAAE,kBAAkB,EAAE,MAAM,YAAY,CAAC;AAEhD,4EAA4E;AAC5E,OAAO,EAAE,OAAO,IAAI,cAAc,EAAE,MAAM,qBAAqB,CAAC;AAChE,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;
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,gDAAgD;AAChD,EAAE;AACF,uEAAuE;AACvE,0EAA0E;AAC1E,yEAAyE;AACzE,4BAA4B;AAS5B,OAAO,EAAE,kBAAkB,EAAE,MAAM,YAAY,CAAC;AAEhD,4EAA4E;AAC5E,OAAO,EAAE,OAAO,IAAI,cAAc,EAAE,MAAM,qBAAqB,CAAC;AAChE,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;AAE5D,OAAO,EAAE,OAAO,IAAI,OAAO,EAAE,MAAM,cAAc,CAAC;AAClD,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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@plurnk/plurnk-schemes",
|
|
3
|
-
"version": "1.
|
|
3
|
+
"version": "1.5.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.5.0"
|
|
53
53
|
},
|
|
54
54
|
"dependencies": {
|
|
55
|
-
"@plurnk/plurnk-contracts": "1.
|
|
56
|
-
"@plurnk/plurnk-meta": "1.
|
|
55
|
+
"@plurnk/plurnk-contracts": "1.5.0",
|
|
56
|
+
"@plurnk/plurnk-meta": "1.5.0"
|
|
57
57
|
}
|
|
58
58
|
}
|
package/dist/DefaultRead.d.ts
DELETED
|
@@ -1,15 +0,0 @@
|
|
|
1
|
-
import type { ReadStatement } from "@plurnk/plurnk-contracts";
|
|
2
|
-
import type { TextRegion } from "@plurnk/plurnk-contracts";
|
|
3
|
-
import type { Mimetypes } from "@plurnk/plurnk-mimetypes";
|
|
4
|
-
import type { RangeExtent } from "./Slicer.ts";
|
|
5
|
-
import type { SchemeResult } from "./Results.ts";
|
|
6
|
-
export interface ReadResolution extends SchemeResult {
|
|
7
|
-
readonly body?: string;
|
|
8
|
-
readonly startLine?: number;
|
|
9
|
-
readonly region?: TextRegion;
|
|
10
|
-
readonly range?: RangeExtent;
|
|
11
|
-
}
|
|
12
|
-
export default class DefaultRead {
|
|
13
|
-
static read(content: string, mimetype: string, statement: ReadStatement, mimetypes: Mimetypes): Promise<ReadResolution>;
|
|
14
|
-
}
|
|
15
|
-
//# sourceMappingURL=DefaultRead.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"DefaultRead.d.ts","sourceRoot":"","sources":["../src/DefaultRead.ts"],"names":[],"mappings":"AAQA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,0BAA0B,CAAC;AAC9D,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,0BAA0B,CAAC;AAC3D,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,0BAA0B,CAAC;AAI1D,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAC/C,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,cAAc,CAAC;AAEjD,MAAM,WAAW,cAAe,SAAQ,YAAY;IAChD,QAAQ,CAAC,IAAI,CAAC,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,SAAS,CAAC,EAAE,MAAM,CAAC;IAC5B,QAAQ,CAAC,MAAM,CAAC,EAAE,UAAU,CAAC;IAC7B,QAAQ,CAAC,KAAK,CAAC,EAAE,WAAW,CAAC;CAChC;AAED,MAAM,CAAC,OAAO,OAAO,WAAW;IAK5B,OAAa,IAAI,CACb,OAAO,EAAE,MAAM,EACf,QAAQ,EAAE,MAAM,EAChB,SAAS,EAAE,aAAa,EACxB,SAAS,EAAE,SAAS,GACrB,OAAO,CAAC,cAAc,CAAC,CA6BzB;CACJ"}
|
package/dist/DefaultRead.js
DELETED
|
@@ -1,51 +0,0 @@
|
|
|
1
|
-
// {§executor-scheme-output} The free default READ an executor-scheme inherits:
|
|
2
|
-
// generic matcher selection and `<L>` projection
|
|
3
|
-
// over a produced output blob, reusing Slicer + Matcher so the logic is
|
|
4
|
-
// single-sourced (not forked into BaseExecutor). A pure resolver - given the
|
|
5
|
-
// stored output + the READ statement, it returns which text to serve; the
|
|
6
|
-
// executor-scheme delivers them. READ-purity holds: this reads already-produced
|
|
7
|
-
// output, it never triggers EXEC.
|
|
8
|
-
import Slicer from "./Slicer.js";
|
|
9
|
-
import Matcher from "./Matcher.js";
|
|
10
|
-
export default class DefaultRead {
|
|
11
|
-
// Resolve a READ against an output blob:
|
|
12
|
-
// matcher body present -> select the complete blob and retain coordinates
|
|
13
|
-
// <L> text scope -> project text from the selected blob
|
|
14
|
-
// no <L> -> return the complete selected blob
|
|
15
|
-
static async read(content, mimetype, statement, mimetypes) {
|
|
16
|
-
let matches;
|
|
17
|
-
let selectionFallback = null;
|
|
18
|
-
if (statement.body !== null) {
|
|
19
|
-
const selected = await Matcher.matchAgainstContent(statement.body, content, mimetype, mimetypes);
|
|
20
|
-
if (selected.status === 203)
|
|
21
|
-
selectionFallback = selected;
|
|
22
|
-
else if (selected.status !== 200)
|
|
23
|
-
return selected;
|
|
24
|
-
else
|
|
25
|
-
matches = selected.matches;
|
|
26
|
-
}
|
|
27
|
-
if (statement.lineMarker !== null) {
|
|
28
|
-
const s = Slicer.lines(content, statement.lineMarker);
|
|
29
|
-
if (s.status >= 400)
|
|
30
|
-
return s;
|
|
31
|
-
return {
|
|
32
|
-
status: selectionFallback?.status ?? (s.text === "" ? 204 : s.status),
|
|
33
|
-
body: s.text,
|
|
34
|
-
...(s.startLine === undefined ? {} : { startLine: s.startLine }),
|
|
35
|
-
...(s.region === undefined ? {} : { region: s.region }),
|
|
36
|
-
...(s.range === undefined ? {} : { range: s.range }),
|
|
37
|
-
...(matches === undefined ? {} : { matches }),
|
|
38
|
-
...(selectionFallback?.mimetype === undefined ? {} : { mimetype: selectionFallback.mimetype }),
|
|
39
|
-
...(selectionFallback?.reason === undefined ? {} : { reason: selectionFallback.reason }),
|
|
40
|
-
};
|
|
41
|
-
}
|
|
42
|
-
if (selectionFallback !== null)
|
|
43
|
-
return selectionFallback;
|
|
44
|
-
return {
|
|
45
|
-
status: 200,
|
|
46
|
-
body: content,
|
|
47
|
-
...(matches === undefined ? {} : { matches }),
|
|
48
|
-
};
|
|
49
|
-
}
|
|
50
|
-
}
|
|
51
|
-
//# sourceMappingURL=DefaultRead.js.map
|
package/dist/DefaultRead.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"DefaultRead.js","sourceRoot":"","sources":["../src/DefaultRead.ts"],"names":[],"mappings":"AAAA,+EAA+E;AAC/E,iDAAiD;AACjD,wEAAwE;AACxE,6EAA6E;AAC7E,0EAA0E;AAC1E,gFAAgF;AAChF,kCAAkC;AAKlC,OAAO,MAAM,MAAM,aAAa,CAAC;AACjC,OAAO,OAAO,MAAM,cAAc,CAAC;AAYnC,MAAM,CAAC,OAAO,OAAO,WAAW;IAC5B,yCAAyC;IACzC,4EAA4E;IAC5E,gEAAgE;IAChE,8DAA8D;IAC9D,MAAM,CAAC,KAAK,CAAC,IAAI,CACb,OAAe,EACf,QAAgB,EAChB,SAAwB,EACxB,SAAoB;QAEpB,IAAI,OAA+B,CAAC;QACpC,IAAI,iBAAiB,GAAuB,IAAI,CAAC;QACjD,IAAI,SAAS,CAAC,IAAI,KAAK,IAAI,EAAE,CAAC;YAC1B,MAAM,QAAQ,GAAG,MAAM,OAAO,CAAC,mBAAmB,CAAC,SAAS,CAAC,IAAI,EAAE,OAAO,EAAE,QAAQ,EAAE,SAAS,CAAC,CAAC;YACjG,IAAI,QAAQ,CAAC,MAAM,KAAK,GAAG;gBAAE,iBAAiB,GAAG,QAAQ,CAAC;iBACrD,IAAI,QAAQ,CAAC,MAAM,KAAK,GAAG;gBAAE,OAAO,QAAQ,CAAC;;gBAC7C,OAAO,GAAG,QAAQ,CAAC,OAAO,CAAC;QACpC,CAAC;QACD,IAAI,SAAS,CAAC,UAAU,KAAK,IAAI,EAAE,CAAC;YAChC,MAAM,CAAC,GAAG,MAAM,CAAC,KAAK,CAAC,OAAO,EAAE,SAAS,CAAC,UAAU,CAAC,CAAC;YACtD,IAAI,CAAC,CAAC,MAAM,IAAI,GAAG;gBAAE,OAAO,CAAC,CAAC;YAC9B,OAAO;gBACH,MAAM,EAAE,iBAAiB,EAAE,MAAM,IAAI,CAAC,CAAC,CAAC,IAAI,KAAK,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC;gBACrE,IAAI,EAAE,CAAC,CAAC,IAAI;gBACZ,GAAG,CAAC,CAAC,CAAC,SAAS,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,SAAS,EAAE,CAAC,CAAC,SAAS,EAAE,CAAC;gBAChE,GAAG,CAAC,CAAC,CAAC,MAAM,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC;gBACvD,GAAG,CAAC,CAAC,CAAC,KAAK,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,EAAE,CAAC;gBACpD,GAAG,CAAC,OAAO,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,CAAC;gBAC7C,GAAG,CAAC,iBAAiB,EAAE,QAAQ,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,QAAQ,EAAE,iBAAiB,CAAC,QAAQ,EAAE,CAAC;gBAC9F,GAAG,CAAC,iBAAiB,EAAE,MAAM,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,iBAAiB,CAAC,MAAM,EAAE,CAAC;aAC3F,CAAC;QACN,CAAC;QACD,IAAI,iBAAiB,KAAK,IAAI;YAAE,OAAO,iBAAiB,CAAC;QACzD,OAAO;YACH,MAAM,EAAE,GAAG;YACX,IAAI,EAAE,OAAO;YACb,GAAG,CAAC,OAAO,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,CAAC;SAChD,CAAC;IACN,CAAC;CACJ"}
|