@plurnk/plurnk-schemes 1.24.0 → 1.25.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/SPEC.md CHANGED
@@ -128,7 +128,7 @@ and discovery path.
128
128
 
129
129
  §scheme-operation-dispatch Sister scheme handlers implement op methods consumed by plurnk-service via
130
130
  dispatch. The consumer owns READ for every `category: "data"` scheme and owns
131
- exact-target FIND over its canonical representation; no handler method can
131
+ exact-resource FIND over its canonical representation; no handler method can
132
132
  replace either projection. Other absent operation methods return **501**. The
133
133
  exported **`SchemeHandler`** interface gives operation methods their grammar
134
134
  statement and `ctx`, including KILL's target, scope, metadata and aside. Bundled
@@ -195,8 +195,10 @@ channel, applies tag/binary/text rules (including {§markerless-first-page}), an
195
195
  composes that channel's producer evidence. Cold and warm reads therefore have
196
196
  identical semantics.
197
197
 
198
- Exact FIND uses the same `prepareRepresentation?` seam and then the standard
199
- entry query; the queried default channel's durable producer result composes
198
+ FIND classifies the target after canonical address resolution; a resolved
199
+ collection remains broad when `folderScopes` is declared, even when the authored
200
+ path omitted its trailing slash. Exact FIND uses the same `prepareRepresentation?`
201
+ seam and then the standard entry query; the queried default channel's durable producer result composes
200
202
  with that exact query just as it does with exact READ. `prepareFind?` is only
201
203
  the optional broad-scope discovery seam
202
204
  used before standard entry selection when no custom broad `find()` exists. A
@@ -667,10 +669,9 @@ admission and correlation. Message representations reject mutation while remaini
667
669
  recipients. Scratch entries and protocol artifacts retain their own existing write contracts.
668
670
 
669
671
  §message-immutable-recovery An EDIT, COPY or MOVE onto, or KILL of, a message address is
670
- refused 405 `message-immutable`; its detail names the address as a received message that
671
- answering settles, and its `recovery` gives the working form with that address:
672
- `` Answer it with `SEND (message://tester/bde40185)` and your reply as the body, or finish your
673
- work with a parameterless KILL whose body is the answer. ``
672
+ refused 405 `message-immutable`; its detail names the address as an immutable received message,
673
+ and its `recovery` distinguishes replying from concluding the loop:
674
+ `` Reply with `SEND (message://tester/bde40185)` and a body, or conclude the loop with parameterless KILL. ``
674
675
 
675
676
  §problems-schemes **Slicer and matcher Problems.** Every code this family mints, its status, and the sentence that is its contract (placeholders in *italics* are filled at emission; a fixed recovery follows its detail).
676
677
 
@@ -11,9 +11,9 @@ export default class MessageScheme {
11
11
  };
12
12
  }
13
13
  async resolveEntryAddress(target, _ctx, access = "read") {
14
- // {§message-immutable-recovery} — a KILL here is an attempt to acknowledge or dismiss; answering is how.
14
+ // {§message-immutable-recovery} — immutable evidence is neither a reply nor a lifecycle control.
15
15
  if (access === "write")
16
- return Results.failure(`scheme:${this.manifest.name}`, "message-immutable", 405, `\`${target.raw}\` is a received message; it cannot be edited, moved or killed, and answering it is what settles it.`, {}, { retryable: false, recovery: `Answer it with \`SEND (${target.raw})\` and your reply as the body, or finish your work with a parameterless KILL whose body is the answer.` });
16
+ return Results.failure(`scheme:${this.manifest.name}`, "message-immutable", 405, `\`${target.raw}\` is a received message; it cannot be edited, moved or killed.`, {}, { retryable: false, recovery: `Reply with \`SEND (${target.raw})\` and a body, or conclude the loop with parameterless KILL.` });
17
17
  if (target.kind !== "url")
18
18
  return null;
19
19
  return {
@@ -1 +1 @@
1
- {"version":3,"file":"MessageScheme.js","sourceRoot":"","sources":["../src/MessageScheme.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAA2D,MAAM,0BAA0B,CAAC;AAI/G,OAAO,OAAO,MAAM,cAAc,CAAC;AAEnC,yGAAyG;AACzG,MAAM,CAAC,OAAO,OAAO,aAAa;IACrB,QAAQ,CAAiB;IAElC,YAAY,IAAY;QACpB,IAAI,CAAC,QAAQ,GAAG;YACZ,IAAI,EAAE,SAAS,EAAE,UAAU,EAAE,QAAQ,EAAE,MAAM,EAAE,QAAQ,EAAE,EAAE,IAAI,EAAE,eAAe,EAAE;YAClF,cAAc,EAAE,MAAM,EAAE,UAAU,EAAE,CAAC,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,SAAS,CAAC;YAC5E,QAAQ,EAAE,KAAK,EAAE,YAAY,EAAE,IAAI,EAAE,YAAY,EAAE,IAAI,EAAE,cAAc,EAAE,KAAK;SACjF,CAAC;IACN,CAAC;IAED,KAAK,CAAC,mBAAmB,CAAC,MAAkB,EAAE,IAAsB,EAAE,MAAM,GAAqB,MAAM;QACnG,yGAAyG;QACzG,IAAI,MAAM,KAAK,OAAO;YAAE,OAAO,OAAO,CAAC,OAAO,CAC1C,UAAU,IAAI,CAAC,QAAQ,CAAC,IAAI,EAAE,EAAE,mBAAmB,EAAE,GAAG,EACxD,KAAK,MAAM,CAAC,GAAG,sGAAsG,EACrH,EAAE,EACF,EAAE,SAAS,EAAE,KAAK,EAAE,QAAQ,EAAE,0BAA0B,MAAM,CAAC,GAAG,yGAAyG,EAAE,CAChL,CAAC;QACF,IAAI,MAAM,CAAC,IAAI,KAAK,KAAK;YAAE,OAAO,IAAI,CAAC;QACvC,OAAO;YACH,SAAS,EAAE,MAAM,CAAC,QAAQ,IAAI,EAAE;YAChC,QAAQ,EAAE,UAAU,CAAC,YAAY,CAAC,MAAM,CAAC,QAAQ,CAAC,GAAG,CAAC,MAAM,CAAC,KAAK,KAAK,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,MAAM,CAAC,KAAK,EAAE,CAAC;SACzG,CAAC;IACN,CAAC;IAED,KAAK,CAAC,qBAAqB,CAAC,OAAyC,EAAE,GAAc;QACjF,OAAO,GAAG,CAAC,QAAQ,CAAC,OAAO,CAAC,OAAO,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;IACpD,CAAC;IAED,KAAK,CAAC,WAAW,CAAC,UAAyB,EAAE,GAAc;QACvD,OAAO,GAAG,CAAC,QAAQ,CAAC,OAAO,EAAE,CAAC;IAClC,CAAC;IAED,KAAK,CAAC,IAAI,CAAC,SAAwB,EAAE,GAAc;QAC/C,OAAO,GAAG,CAAC,QAAQ,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC;IACzC,CAAC;CACJ"}
1
+ {"version":3,"file":"MessageScheme.js","sourceRoot":"","sources":["../src/MessageScheme.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAA2D,MAAM,0BAA0B,CAAC;AAI/G,OAAO,OAAO,MAAM,cAAc,CAAC;AAEnC,yGAAyG;AACzG,MAAM,CAAC,OAAO,OAAO,aAAa;IACrB,QAAQ,CAAiB;IAElC,YAAY,IAAY;QACpB,IAAI,CAAC,QAAQ,GAAG;YACZ,IAAI,EAAE,SAAS,EAAE,UAAU,EAAE,QAAQ,EAAE,MAAM,EAAE,QAAQ,EAAE,EAAE,IAAI,EAAE,eAAe,EAAE;YAClF,cAAc,EAAE,MAAM,EAAE,UAAU,EAAE,CAAC,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,SAAS,CAAC;YAC5E,QAAQ,EAAE,KAAK,EAAE,YAAY,EAAE,IAAI,EAAE,YAAY,EAAE,IAAI,EAAE,cAAc,EAAE,KAAK;SACjF,CAAC;IACN,CAAC;IAED,KAAK,CAAC,mBAAmB,CAAC,MAAkB,EAAE,IAAsB,EAAE,MAAM,GAAqB,MAAM;QACnG,iGAAiG;QACjG,IAAI,MAAM,KAAK,OAAO;YAAE,OAAO,OAAO,CAAC,OAAO,CAC1C,UAAU,IAAI,CAAC,QAAQ,CAAC,IAAI,EAAE,EAAE,mBAAmB,EAAE,GAAG,EACxD,KAAK,MAAM,CAAC,GAAG,iEAAiE,EAChF,EAAE,EACF,EAAE,SAAS,EAAE,KAAK,EAAE,QAAQ,EAAE,sBAAsB,MAAM,CAAC,GAAG,+DAA+D,EAAE,CAClI,CAAC;QACF,IAAI,MAAM,CAAC,IAAI,KAAK,KAAK;YAAE,OAAO,IAAI,CAAC;QACvC,OAAO;YACH,SAAS,EAAE,MAAM,CAAC,QAAQ,IAAI,EAAE;YAChC,QAAQ,EAAE,UAAU,CAAC,YAAY,CAAC,MAAM,CAAC,QAAQ,CAAC,GAAG,CAAC,MAAM,CAAC,KAAK,KAAK,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,MAAM,CAAC,KAAK,EAAE,CAAC;SACzG,CAAC;IACN,CAAC;IAED,KAAK,CAAC,qBAAqB,CAAC,OAAyC,EAAE,GAAc;QACjF,OAAO,GAAG,CAAC,QAAQ,CAAC,OAAO,CAAC,OAAO,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;IACpD,CAAC;IAED,KAAK,CAAC,WAAW,CAAC,UAAyB,EAAE,GAAc;QACvD,OAAO,GAAG,CAAC,QAAQ,CAAC,OAAO,EAAE,CAAC;IAClC,CAAC;IAED,KAAK,CAAC,IAAI,CAAC,SAAwB,EAAE,GAAc;QAC/C,OAAO,GAAG,CAAC,QAAQ,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC;IACzC,CAAC;CACJ"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@plurnk/plurnk-schemes",
3
- "version": "1.24.0",
3
+ "version": "1.25.0",
4
4
  "description": "Framework + contract for the @plurnk/plurnk-schemes-* URI handler packages.",
5
5
  "keywords": [
6
6
  "plurnk",
@@ -48,13 +48,13 @@
48
48
  "prepack": "npm run build"
49
49
  },
50
50
  "peerDependencies": {
51
- "@plurnk/plurnk-mimetypes": "^1.24.0"
51
+ "@plurnk/plurnk-mimetypes": "^1.25.0"
52
52
  },
53
53
  "dependencies": {
54
- "@plurnk/plurnk-contracts": "1.24.0",
55
- "@plurnk/plurnk-meta": "1.24.0"
54
+ "@plurnk/plurnk-contracts": "1.25.0",
55
+ "@plurnk/plurnk-meta": "1.25.0"
56
56
  },
57
57
  "devDependencies": {
58
- "@plurnk/plurnk-parser": "1.24.0"
58
+ "@plurnk/plurnk-parser": "1.25.0"
59
59
  }
60
60
  }