@plurnk/plurnk-schemes 1.4.0 → 1.6.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.
@@ -1 +1 @@
1
- {"version":3,"file":"Results.d.ts","sourceRoot":"","sources":["../src/Results.ts"],"names":[],"mappings":"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"}
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 !== "path" && key !== "region");
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 hasPath = Object.hasOwn(record, "path");
40
+ const hasLocator = Object.hasOwn(record, "locator");
41
41
  const hasRegion = Object.hasOwn(record, "region");
42
- if (!hasPath && !hasRegion) {
43
- throw new TypeError("invalid match evidence: expected path, region, or both");
42
+ if (!hasLocator && !hasRegion) {
43
+ throw new TypeError("invalid match evidence: expected locator, region, or both");
44
44
  }
45
- if (hasPath && (typeof record.path !== "string" || record.path.length === 0)) {
46
- throw new TypeError("invalid match evidence: path must be a non-empty string");
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", "lineAnchorIdentity", "lineAnchors", "lineNumberWidth", "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", "lineAnchorIdentity", "lineAnchors", "lineNumberWidth", "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");
@@ -1 +1 @@
1
- {"version":3,"file":"Results.js","sourceRoot":"","sources":["../src/Results.ts"],"names":[],"mappings":"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"}
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;AA6EvC,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,oBAAoB,EAAE,aAAa,EAAE,iBAAiB,EAAE,QAAQ,EAAE,SAAS,EAAE,OAAO,CAAC,CAAC;QAC/J,MAAM,KAAK,GAAG,gBAAgB,CAAC,IAAI,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,MAAM,CAAC,MAAM,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC,CAAC;QAC5E,IAAI,KAAK,KAAK,SAAS,EAAE,CAAC;YACtB,MAAM,IAAI,2BAA2B,CACjC,uEAAuE,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,EAAE,CACjG,CAAC;QACN,CAAC;QACD,OAAO,KAAK,CAAC;IACjB,CAAC;IAED,MAAM,CAAC,2BAA2B,CAAkC,MAAS;QACzE,MAAM,KAAK,GAAG,OAAO,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;QACrC,IAAI,KAAK,CAAC,MAAM,GAAG,GAAG,IAAI,KAAK,CAAC,MAAM,KAAK,GAAG,EAAE,CAAC;YAC7C,MAAM,IAAI,2BAA2B,CACjC,yDAAyD,KAAK,CAAC,MAAM,EAAE,CAC1E,CAAC;QACN,CAAC;QACD,MAAM,gBAAgB,GAAG,CAAC,SAAS,EAAE,UAAU,EAAE,SAAS,EAAE,WAAW,EAAE,oBAAoB,EAAE,aAAa,EAAE,iBAAiB,EAAE,QAAQ,EAAE,SAAS,EAAE,OAAO,CAAC,CAAC;QAC/J,MAAM,KAAK,GAAG,gBAAgB,CAAC,IAAI,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,MAAM,CAAC,MAAM,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC,CAAC;QAC5E,IAAI,KAAK,KAAK,SAAS,EAAE,CAAC;YACtB,MAAM,IAAI,2BAA2B,CACjC,oEAAoE,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,EAAE,CAC9F,CAAC;QACN,CAAC;QACD,OAAO,KAAK,CAAC;IACjB,CAAC;IAED,MAAM,CAAC,yBAAyB,CAAC,KAAc;QAC3C,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YAC9C,MAAM,IAAI,SAAS,CAAC,0DAA0D,CAAC,CAAC;QACpF,CAAC;QACD,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;YACvB,IAAI,IAAI,KAAK,IAAI,IAAI,OAAO,IAAI,KAAK,QAAQ,IAAI,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,CAAC;gBACnE,MAAM,IAAI,SAAS,CAAC,iDAAiD,CAAC,CAAC;YAC3E,CAAC;YACD,MAAM,MAAM,GAAG,IAA+B,CAAC;YAC/C,MAAM,MAAM,GAAG,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,KAAK,WAAW,IAAI,GAAG,KAAK,WAAW,CAAC,CAAC;YAC/F,IAAI,MAAM,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;gBACpB,MAAM,IAAI,SAAS,CAAC,iDAAiD,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;YACtG,CAAC;YACD,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,MAAM,EAAE,WAAW,CAAC,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,MAAM,EAAE,WAAW,CAAC,EAAE,CAAC;gBAC7E,MAAM,IAAI,SAAS,CAAC,+EAA+E,CAAC,CAAC;YACzG,CAAC;YACD,MAAM,EAAE,SAAS,EAAE,SAAS,EAAE,GAAG,MAAM,CAAC;YACxC,IACI,CAAC,KAAK,CAAC,OAAO,CAAC,SAAS,CAAC;mBACtB,SAAS,CAAC,MAAM,KAAK,CAAC;mBACtB,CAAC,SAAS,CAAC,KAAK,CAAC,MAAM,CAAC,aAAa,CAAC,EAC3C,CAAC;gBACC,MAAM,IAAI,SAAS,CAAC,yEAAyE,CAAC,CAAC;YACnG,CAAC;YACD,IACI,CAAC,KAAK,CAAC,OAAO,CAAC,SAAS,CAAC;mBACtB,SAAS,CAAC,MAAM,KAAK,CAAC;mBACtB,CAAC,SAAS,CAAC,KAAK,CAAC,MAAM,CAAC,aAAa,CAAC,EAC3C,CAAC;gBACC,MAAM,IAAI,SAAS,CAAC,wEAAwE,CAAC,CAAC;YAClG,CAAC;YACD,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC,UAAU,EAAE,KAAK,EAAE,EAAE,CAAC,SAAS,CAAC,KAAK,CAAC,KAAK,UAAU,CAAC,EAAE,CAAC;gBAC3E,MAAM,IAAI,SAAS,CAAC,uFAAuF,CAAC,CAAC;YACjH,CAAC;QACL,CAAC;QACD,OAAO,KAA0C,CAAC;IACtD,CAAC;IAED,MAAM,CAAC,MAAM,CAAyB,MAAS;QAC3C,MAAM,KAAK,GAAG,SAAS,CAAC,qBAAqB,CAAC,MAAM,CAAC,CAAC;QACtD,IAAI,KAAK,CAAC,mBAAmB,KAAK,SAAS,EAAE,CAAC;YAC1C,OAAO,CAAC,yBAAyB,CAAC,KAAK,CAAC,mBAAmB,CAAC,CAAC;QACjE,CAAC;QACD,OAAO,KAAK,CAAC;IACjB,CAAC;IAED,MAAM,CAAC,cAAc,CAAyB,MAAS,EAAE,QAAgB;QACrE,IAAI,MAAM,CAAC,OAAO,KAAK,SAAS;YAAE,OAAO,OAAO,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;QAChE,MAAM,CAAC,OAAO,CAAC,QAAQ,GAAG,QAAQ,CAAC;QACnC,OAAO,OAAO,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;IAClC,CAAC;CACJ"}
package/dist/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 = "line" | "result";
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): PageResult<T>;
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;
@@ -1 +1 @@
1
- {"version":3,"file":"Slicer.d.ts","sourceRoot":"","sources":["../src/Slicer.ts"],"names":[],"mappings":"AAkBA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,0BAA0B,CAAC;AAC3D,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,0BAA0B,CAAC;AAE3D,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,MAAM,GAAG,QAAQ,CAAC;AAC1C,MAAM,WAAW,WAAW;IACxB,QAAQ,CAAC,IAAI,EAAE,SAAS,CAAC;IACzB,QAAQ,CAAC,SAAS,EAAE;QAAE,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;QAAC,QAAQ,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI,CAAA;KAAE,CAAC;IAC7E,QAAQ,CAAC,SAAS,EAAE;QAAE,QAAQ,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI,CAAC;QAAC,QAAQ,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI,CAAC;QAAC,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAA;KAAE,CAAC;CAC/G;AACD,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;;IAsJvB,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;IAyED,MAAM,CAAC,KAAK,CAAC,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,UAAU,GAAG,WAAW,CA8D7D;IAKD,MAAM,CAAC,IAAI,CAAC,CAAC,EAAE,KAAK,EAAE,SAAS,CAAC,EAAE,EAAE,MAAM,EAAE,UAAU,GAAG,UAAU,CAAC,CAAC,CAAC,CAuDrE;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"}
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;IAiGD,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;IA8ED,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,46 +39,57 @@ 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
- requested: {
45
- first: marker.marks[0],
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, endColumn] = marker.marks;
57
- if (![startLine, startColumn, endLine, endColumn].every(Number.isSafeInteger)) {
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);
61
64
  if (startLine < 1 || startLine > lines.length) {
62
65
  return { error: `Start line ${startLine} is outside the available line range 1..${lines.length}.` };
63
66
  }
64
- if (endLine < 1 || endLine > lines.length) {
67
+ if (endLine < 1) {
65
68
  return { error: `End line ${endLine} is outside the available line range 1..${lines.length}.` };
66
69
  }
70
+ if (rawEndColumn < 1) {
71
+ return { error: `End column ${rawEndColumn} must be positive.` };
72
+ }
73
+ const pastEof = endLine > lines.length;
74
+ const resolvedEndLine = pastEof ? lines.length : endLine;
75
+ const endLineData = lines[resolvedEndLine - 1];
76
+ const maxEndColumn = [...content.slice(endLineData.start, endLineData.contentEnd)].length + 1;
77
+ const endColumn = pastEof ? maxEndColumn : Math.min(rawEndColumn, maxEndColumn);
67
78
  let start;
68
79
  let end;
69
80
  try {
70
81
  start = TextCoordinates.offsetAtPosition(content, startLine, startColumn);
71
- end = TextCoordinates.offsetAtPosition(content, endLine, endColumn);
82
+ end = TextCoordinates.offsetAtPosition(content, resolvedEndLine, endColumn);
72
83
  }
73
84
  catch (cause) {
74
85
  return { error: cause instanceof Error ? cause.message : String(cause) };
75
86
  }
76
87
  if (end < start) {
77
88
  return {
78
- error: `Exact region ${startLine},${startColumn},${endLine},${endColumn} ends before it starts.`,
89
+ error: `Exact region ${startLine},${startColumn},${endLine},${rawEndColumn} ends before it starts.`,
79
90
  };
80
91
  }
81
- return { start, end, body, startLine, endLine };
92
+ return { start, end, body, startLine, endLine: resolvedEndLine };
82
93
  }
83
94
  static #preferredSeparator(content, lines) {
84
95
  return lines.find(({ separator }) => separator.length > 0)?.separator
@@ -156,13 +167,17 @@ export default class Slicer {
156
167
  return { error: "A tolerated three-coordinate text region requires integer coordinates." };
157
168
  }
158
169
  const lines = TextCoordinates.lines(content);
159
- const last = lines[endLine - 1];
160
- if (endLine < 1 || last === undefined) {
170
+ if (endLine < 1) {
161
171
  return { error: `End line ${endLine} is outside the available line range 1..${lines.length}.` };
162
172
  }
173
+ const resolvedEndLine = Math.min(endLine, lines.length);
174
+ const last = lines[resolvedEndLine - 1];
175
+ if (last === undefined) {
176
+ return { error: `End line ${endLine} cannot select from empty content.` };
177
+ }
163
178
  const endColumn = [...content.slice(last.start, last.contentEnd)].length + 1;
164
179
  const requested = [startLine, startColumn, endLine];
165
- const canonical = [startLine, startColumn, endLine, endColumn];
180
+ const canonical = [startLine, startColumn, resolvedEndLine, endColumn];
166
181
  return {
167
182
  marker: { ...marker, marks: [...canonical] },
168
183
  normalization: { requested, canonical },
@@ -199,19 +214,20 @@ export default class Slicer {
199
214
  // entry would 416. start>end here yields an empty slice for READ and a
200
215
  // full replacement for EDIT.
201
216
  if (totalLines === 0) {
202
- if ((first === 0 || first === 1) && last === -1)
217
+ if ((first === 0 || first === 1) && (last === -1 || last > 0)) {
203
218
  return { kind: "range", start: 1, end: 0 };
219
+ }
204
220
  return { error: `Range ${first},${last} cannot select from empty content.` };
205
221
  }
206
222
  let n = first;
207
223
  let m = last;
208
224
  if (n === 0)
209
225
  n = 1;
210
- if (m === -1)
226
+ if (m === -1 || m > totalLines)
211
227
  m = totalLines;
212
228
  if (n < 1 || n > totalLines)
213
229
  return { error: `Range start ${first} is outside the available line range 1..${totalLines}.` };
214
- if (m < 1 || m > totalLines)
230
+ if (m < 1)
215
231
  return { error: `Range end ${last} is outside the available line range 1..${totalLines}.` };
216
232
  if (n > m)
217
233
  return { error: `Range start ${first} exceeds end ${last}.` };
@@ -219,9 +235,8 @@ export default class Slicer {
219
235
  }
220
236
  // READ a line range. Returns the raw selected lines (no `N:` prefix)
221
237
  // plus the 1-indexed position of the first selected line. The render
222
- // layer adds `N:` per plurnk.md starting from `startLine` - keeps numbering as a
223
- // presentation concern, prevents double-prefixing when the same content
224
- // passes through the log render.
238
+ // READ projection and packet presentation add the applicable coordinate
239
+ // prefix from `startLine`; canonical content remains unprefixed.
225
240
  //
226
241
  // Sentinel positions <0> and <-1> select no content (they're insertion
227
242
  // points, not lines) → status 200 with empty text.
@@ -260,14 +275,27 @@ export default class Slicer {
260
275
  if ("error" in norm) {
261
276
  return Slicer.#rangeFailure(norm.error, Slicer.#extent(marker, lines.length, "line"));
262
277
  }
263
- if (norm.kind !== "range")
264
- return { status: 200, text: "", startLine: undefined };
278
+ const extent = Slicer.#extent(marker, lines.length, "line");
279
+ if (norm.kind !== "range") {
280
+ return {
281
+ status: 200,
282
+ text: "",
283
+ startLine: undefined,
284
+ range: Slicer.#projectedExtent(extent, null, null),
285
+ };
286
+ }
265
287
  if (lines.length === 0) {
266
288
  const region = TextCoordinates.regionFromOffsets(content, 0, 0);
267
289
  if (region === null) {
268
290
  throw new Error("Slicer could not address an empty text resource.");
269
291
  }
270
- return { status: 200, text: "", startLine: 1, region };
292
+ return {
293
+ status: 200,
294
+ text: "",
295
+ startLine: 1,
296
+ region,
297
+ range: Slicer.#projectedExtent(extent, null, null),
298
+ };
271
299
  }
272
300
  const selected = lines
273
301
  .slice(norm.start - 1, norm.end)
@@ -281,14 +309,15 @@ export default class Slicer {
281
309
  text: selected.join("\n"),
282
310
  startLine: norm.start,
283
311
  region,
312
+ range: Slicer.#projectedExtent(extent, norm.start, norm.end),
284
313
  };
285
314
  }
286
315
  // `<L>` over an ordered result set uses the same positional contract as
287
316
  // READ slicing. The returned extent lets a scheme put exact recovery facts
288
317
  // in RFC 9457 Problem Details instead of emitting a bare 416.
289
- static page(items, marker) {
318
+ static page(items, marker, options = {}) {
290
319
  const total = items.length;
291
- const extent = Slicer.#extent(marker, total, "result");
320
+ const extent = Slicer.#extent(marker, total, options.unit ?? "result");
292
321
  if (marker.marks.length !== 1 && marker.marks.length !== 2) {
293
322
  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
323
  range: extent,
@@ -298,31 +327,48 @@ export default class Slicer {
298
327
  retryable: false,
299
328
  });
300
329
  }
301
- const { first, last } = extent.requested;
302
- if (!Number.isInteger(first) || (last !== null && !Number.isInteger(last))) {
330
+ const [first, last] = extent.requested;
331
+ if (!Number.isInteger(first) || !Number.isInteger(last)) {
303
332
  return Slicer.#rangeFailure(`Result ranges require integer positions; the result set contains ${total} item(s).`, extent);
304
333
  }
305
- if (last === null) {
306
- if (first === 0 || first === -1)
307
- return { status: 200, items: [] };
308
- if (first > 0 && first <= total)
309
- return { status: 200, items: [items[first - 1]] };
334
+ if (marker.marks.length === 1) {
335
+ if (first === 0 || first === -1) {
336
+ return { status: 200, items: [], range: Slicer.#projectedExtent(extent, null, null) };
337
+ }
338
+ if (total === 0 && options.allowEmpty === true && first > 0) {
339
+ return { status: 200, items: [], range: Slicer.#projectedExtent(extent, null, null) };
340
+ }
341
+ if (first > 0 && first <= total) {
342
+ return {
343
+ status: 200,
344
+ items: [items[first - 1]],
345
+ range: Slicer.#projectedExtent(extent, first, first),
346
+ };
347
+ }
310
348
  return Slicer.#rangeFailure(`Result ${first} is out of range; available positions are 1..${total}.`, extent);
311
349
  }
312
350
  if (total === 0) {
313
- if ((first === 0 || first === 1) && last === -1)
314
- return { status: 200, items: [] };
351
+ if (options.allowEmpty === true && first > 0 && (last === -1 || last >= first)) {
352
+ return { status: 200, items: [], range: Slicer.#projectedExtent(extent, null, null) };
353
+ }
354
+ if ((first === 0 || first === 1) && last === -1) {
355
+ return { status: 200, items: [], range: Slicer.#projectedExtent(extent, null, null) };
356
+ }
315
357
  return Slicer.#rangeFailure(`Result range ${first},${last} cannot select from an empty result set.`, extent);
316
358
  }
317
359
  const n = first === 0 ? 1 : first;
318
- const m = last === -1 ? total : last;
360
+ const m = last === -1 ? total : Math.min(last, total);
319
361
  if (n < 1 || n > total)
320
362
  return Slicer.#rangeFailure(`Result range start ${first} is out of range; available positions are 1..${total}.`, extent);
321
- if (m < 1 || m > total)
363
+ if (m < 1)
322
364
  return Slicer.#rangeFailure(`Result range end ${last} is out of range; available positions are 1..${total}.`, extent);
323
365
  if (n > m)
324
366
  return Slicer.#rangeFailure(`Result range start ${first} exceeds end ${last}.`, extent);
325
- return { status: 200, items: items.slice(n - 1, m) };
367
+ return {
368
+ status: 200,
369
+ items: items.slice(n - 1, m),
370
+ range: Slicer.#projectedExtent(extent, n, m),
371
+ };
326
372
  }
327
373
  // COPY-style raw slice. Returns the selected source bytes verbatim (no
328
374
  // line-number prefix), including any separators owned by a whole-line
@@ -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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"}