@plurnk/plurnk-schemes 1.3.6 → 1.3.7
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/SPEC.md +17 -1
- package/dist/handler.d.ts +1 -0
- package/dist/handler.d.ts.map +1 -1
- package/dist/handler.js +4 -4
- package/dist/handler.js.map +1 -1
- package/package.json +4 -4
package/SPEC.md
CHANGED
|
@@ -55,13 +55,20 @@ class Known {
|
|
|
55
55
|
|
|
56
56
|
## §2 Interface
|
|
57
57
|
|
|
58
|
-
Sister scheme handlers implement op methods consumed by plurnk-service via
|
|
58
|
+
Sister scheme handlers implement op methods consumed by plurnk-service via
|
|
59
|
+
dispatch. An absent method returns **501**, except FIND on an entry-bearing
|
|
60
|
+
`category: "data"` scheme: the consumer supplies its standard stored-entry
|
|
61
|
+
FIND automatically. The op-dispatch surface is the exported
|
|
62
|
+
**`SchemeHandler`** interface — every method optional, each
|
|
63
|
+
`(statement, ctx) => Promise<SchemeResult>`, the per-op statement type from
|
|
64
|
+
grammar:
|
|
59
65
|
|
|
60
66
|
```ts
|
|
61
67
|
import type { SchemeHandler } from "@plurnk/plurnk-schemes";
|
|
62
68
|
|
|
63
69
|
export interface SchemeHandler {
|
|
64
70
|
close?(): Promise<void>;
|
|
71
|
+
prepareFind?(statement: FindStatement, ctx: SchemeCtx): Promise<SchemeResult>;
|
|
65
72
|
read?(statement: ReadStatement, ctx: SchemeCtx): Promise<SchemeResult>;
|
|
66
73
|
find?(statement: FindStatement, ctx: SchemeCtx): Promise<SchemeResult>;
|
|
67
74
|
open?(statement: OpenStatement, ctx: SchemeCtx): Promise<SchemeResult>;
|
|
@@ -79,6 +86,15 @@ export interface SchemeHandler {
|
|
|
79
86
|
}
|
|
80
87
|
```
|
|
81
88
|
|
|
89
|
+
`prepareFind?` is not a second query implementation. It is the optional
|
|
90
|
+
discovery/materialization seam invoked before the consumer's standard FIND
|
|
91
|
+
when a data scheme has no custom `find()`. Stored schemes omit it. Acquisition
|
|
92
|
+
schemes use it to make an exact requested resource into an ordinary entry,
|
|
93
|
+
then receive the same catalog, matcher, span, weight, pagination, and status
|
|
94
|
+
semantics as every other entry-bearing scheme. A custom `find()` replaces the
|
|
95
|
+
whole operation only where the scheme owns genuinely different candidate
|
|
96
|
+
semantics.
|
|
97
|
+
|
|
82
98
|
A sibling does `export default class X implements SchemeHandler` (with `static manifest: SchemeManifest`) and gets compile-time signature checking. The op set is exactly grammar's `PlurnkStatement` dispatch union and moves with the framework's grammar bump (0.74.57 added `work?`/`fork?`; `LOOK`/`BUFF` are grammar `ClientStatement` ops, client-facing and never dispatched to a scheme, so they're intentionally absent here). **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).
|
|
83
99
|
|
|
84
100
|
`close?()` is the process-lifecycle hook for pooled resources such as browser processes, sockets, and client connections. The consumer calls it once per unique handler instance after in-flight scheme work drains and before backing stores close. Stateless handlers omit it.
|
package/dist/handler.d.ts
CHANGED
|
@@ -7,6 +7,7 @@ export interface SchemeHandler {
|
|
|
7
7
|
ready?(): Promise<void>;
|
|
8
8
|
close?(): Promise<void>;
|
|
9
9
|
applyResolution?(request: ProposalApplyRequest, ctx: SchemeCtx): Promise<ProposalApplyResult>;
|
|
10
|
+
prepareFind?(statement: FindStatement, ctx: SchemeCtx): Promise<SchemeResult>;
|
|
10
11
|
read?(statement: ReadStatement, ctx: SchemeCtx): Promise<SchemeResult>;
|
|
11
12
|
find?(statement: FindStatement, ctx: SchemeCtx): Promise<SchemeResult>;
|
|
12
13
|
open?(statement: OpenStatement, 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":"AAuBA,OAAO,KAAK,EACR,aAAa,EACb,aAAa,EACb,aAAa,EACb,aAAa,EACb,aAAa,EACb,aAAa,EACb,aAAa,EACb,aAAa,EACb,aAAa,EACb,aAAa,EACb,aAAa,EACb,aAAa,EACb,aAAa,EAChB,MAAM,wBAAwB,CAAC;AAChC,OAAO,KAAK,EAAE,oBAAoB,EAAE,mBAAmB,EAAE,SAAS,EAAE,MAAM,UAAU,CAAC;AACrF,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,cAAc,CAAC;AACjD,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,YAAY,CAAC;AAEjD,MAAM,WAAW,aAAa;IAM1B,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;
|
|
1
|
+
{"version":3,"file":"handler.d.ts","sourceRoot":"","sources":["../src/handler.ts"],"names":[],"mappings":"AAuBA,OAAO,KAAK,EACR,aAAa,EACb,aAAa,EACb,aAAa,EACb,aAAa,EACb,aAAa,EACb,aAAa,EACb,aAAa,EACb,aAAa,EACb,aAAa,EACb,aAAa,EACb,aAAa,EACb,aAAa,EACb,aAAa,EAChB,MAAM,wBAAwB,CAAC;AAChC,OAAO,KAAK,EAAE,oBAAoB,EAAE,mBAAmB,EAAE,SAAS,EAAE,MAAM,UAAU,CAAC;AACrF,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,cAAc,CAAC;AACjD,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,YAAY,CAAC;AAEjD,MAAM,WAAW,aAAa;IAM1B,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;IAK9F,WAAW,CAAC,CAAC,SAAS,EAAE,aAAa,EAAE,GAAG,EAAE,SAAS,GAAG,OAAO,CAAC,YAAY,CAAC,CAAC;IAC9E,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,SAAS,CAAC,CAAC,UAAU,EAAE,SAAS,aAAa,EAAE,EAAE,GAAG,EAAE,SAAS,GAAG,OAAO,CAAC,YAAY,CAAC,CAAC;IACxF,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;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,10 +1,10 @@
|
|
|
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
3
|
// supports, named for the lowercased op (READ → read, SEND → send, FIND → find,
|
|
4
|
-
// …)
|
|
5
|
-
//
|
|
6
|
-
// therefore OPTIONAL — a scheme implements only its
|
|
7
|
-
//
|
|
4
|
+
// …). An absent method returns 501 except FIND on a data scheme, for which the
|
|
5
|
+
// consumer supplies its standard entry query after optional `prepareFind`.
|
|
6
|
+
// Every method is therefore OPTIONAL — a scheme implements only its distinct
|
|
7
|
+
// surface. All share one shape:
|
|
8
8
|
// `(statement, ctx) => Promise<SchemeResult>`.
|
|
9
9
|
//
|
|
10
10
|
// `implements SchemeHandler` gives a sibling compile-time checking of its op
|
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,gFAAgF;AAChF
|
|
1
|
+
{"version":3,"file":"handler.js","sourceRoot":"","sources":["../src/handler.ts"],"names":[],"mappings":"AAAA,yEAAyE;AACzE,gFAAgF;AAChF,gFAAgF;AAChF,+EAA+E;AAC/E,2EAA2E;AAC3E,6EAA6E;AAC7E,gCAAgC;AAChC,+CAA+C;AAC/C,EAAE;AACF,6EAA6E;AAC7E,8EAA8E;AAC9E,+EAA+E;AAC/E,gFAAgF;AAChF,gFAAgF"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@plurnk/plurnk-schemes",
|
|
3
|
-
"version": "1.3.
|
|
3
|
+
"version": "1.3.7",
|
|
4
4
|
"description": "Framework + contract for the @plurnk/plurnk-schemes-* URI handler packages.",
|
|
5
5
|
"keywords": [
|
|
6
6
|
"plurnk",
|
|
@@ -47,10 +47,10 @@
|
|
|
47
47
|
"prepack": "npm run build"
|
|
48
48
|
},
|
|
49
49
|
"peerDependencies": {
|
|
50
|
-
"@plurnk/plurnk-grammar": "^1.3.
|
|
51
|
-
"@plurnk/plurnk-mimetypes": "^1.3.
|
|
50
|
+
"@plurnk/plurnk-grammar": "^1.3.7",
|
|
51
|
+
"@plurnk/plurnk-mimetypes": "^1.3.7"
|
|
52
52
|
},
|
|
53
53
|
"dependencies": {
|
|
54
|
-
"@plurnk/plurnk-meta": "1.3.
|
|
54
|
+
"@plurnk/plurnk-meta": "1.3.7"
|
|
55
55
|
}
|
|
56
56
|
}
|