@thomasfosterau/effect-parse 0.5.0 → 0.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.
Files changed (99) hide show
  1. package/CHANGELOG.md +202 -0
  2. package/README.md +19 -1
  3. package/dist/Ascii.d.ts.map +1 -1
  4. package/dist/Ascii.js +5 -3
  5. package/dist/Ascii.js.map +1 -1
  6. package/dist/Binary.d.ts +5 -2
  7. package/dist/Binary.d.ts.map +1 -1
  8. package/dist/Binary.js +20 -3
  9. package/dist/Binary.js.map +1 -1
  10. package/dist/Bits.d.ts.map +1 -1
  11. package/dist/Bits.js +4 -0
  12. package/dist/Bits.js.map +1 -1
  13. package/dist/Input.d.ts +21 -3
  14. package/dist/Input.d.ts.map +1 -1
  15. package/dist/Input.js +31 -4
  16. package/dist/Input.js.map +1 -1
  17. package/dist/Nom.d.ts.map +1 -1
  18. package/dist/ParseError.d.ts +69 -11
  19. package/dist/ParseError.d.ts.map +1 -1
  20. package/dist/ParseError.js +129 -28
  21. package/dist/ParseError.js.map +1 -1
  22. package/dist/Parser.d.ts +10 -4
  23. package/dist/Parser.d.ts.map +1 -1
  24. package/dist/Parser.js +10 -24
  25. package/dist/Parser.js.map +1 -1
  26. package/dist/ParserSchema.d.ts.map +1 -1
  27. package/dist/ParserSchema.js +1 -2
  28. package/dist/ParserSchema.js.map +1 -1
  29. package/dist/ParserStream.d.ts +119 -12
  30. package/dist/ParserStream.d.ts.map +1 -1
  31. package/dist/ParserStream.js +282 -55
  32. package/dist/ParserStream.js.map +1 -1
  33. package/dist/Syntax.js +1 -1
  34. package/dist/Text.d.ts.map +1 -1
  35. package/dist/Text.js +13 -7
  36. package/dist/Text.js.map +1 -1
  37. package/dist/Token.d.ts +10 -1
  38. package/dist/Token.d.ts.map +1 -1
  39. package/dist/Token.js +14 -5
  40. package/dist/Token.js.map +1 -1
  41. package/dist/internal/compiler/closure.d.ts +1 -1
  42. package/dist/internal/compiler/closure.d.ts.map +1 -1
  43. package/dist/internal/compiler/closure.js +7 -17
  44. package/dist/internal/compiler/closure.js.map +1 -1
  45. package/dist/internal/compiler/first.d.ts.map +1 -1
  46. package/dist/internal/compiler/first.js +2 -1
  47. package/dist/internal/compiler/first.js.map +1 -1
  48. package/dist/internal/compiler/graph.d.ts +23 -1
  49. package/dist/internal/compiler/graph.d.ts.map +1 -1
  50. package/dist/internal/compiler/graph.js +27 -5
  51. package/dist/internal/compiler/graph.js.map +1 -1
  52. package/dist/internal/compiler/jit.d.ts.map +1 -1
  53. package/dist/internal/compiler/jit.js +26 -13
  54. package/dist/internal/compiler/jit.js.map +1 -1
  55. package/dist/internal/compiler/registry.d.ts +1 -1
  56. package/dist/internal/compiler/wasm.d.ts.map +1 -1
  57. package/dist/internal/compiler/wasm.js +105 -34
  58. package/dist/internal/compiler/wasm.js.map +1 -1
  59. package/dist/internal/node.d.ts +19 -1
  60. package/dist/internal/node.d.ts.map +1 -1
  61. package/dist/internal/node.js +42 -8
  62. package/dist/internal/node.js.map +1 -1
  63. package/dist/internal/run.d.ts +3 -1
  64. package/dist/internal/run.d.ts.map +1 -1
  65. package/dist/internal/run.js +4 -2
  66. package/dist/internal/run.js.map +1 -1
  67. package/dist/internal/stack.d.ts +8 -0
  68. package/dist/internal/stack.d.ts.map +1 -1
  69. package/dist/internal/stack.js +17 -1
  70. package/dist/internal/stack.js.map +1 -1
  71. package/dist/internal/tokens.d.ts +10 -3
  72. package/dist/internal/tokens.d.ts.map +1 -1
  73. package/dist/internal/tokens.js +22 -9
  74. package/dist/internal/tokens.js.map +1 -1
  75. package/dist/internal/tuple.d.ts +6 -0
  76. package/dist/internal/tuple.d.ts.map +1 -0
  77. package/dist/internal/tuple.js +170 -0
  78. package/dist/internal/tuple.js.map +1 -0
  79. package/package.json +17 -10
  80. package/src/Ascii.ts +5 -3
  81. package/src/Binary.ts +24 -3
  82. package/src/Bits.ts +4 -0
  83. package/src/Input.ts +37 -4
  84. package/src/ParseError.ts +206 -52
  85. package/src/Parser.ts +19 -29
  86. package/src/ParserSchema.ts +1 -2
  87. package/src/ParserStream.ts +336 -62
  88. package/src/Text.ts +16 -12
  89. package/src/Token.ts +14 -5
  90. package/src/internal/compiler/closure.ts +9 -18
  91. package/src/internal/compiler/first.ts +6 -0
  92. package/src/internal/compiler/graph.ts +32 -4
  93. package/src/internal/compiler/jit.ts +37 -17
  94. package/src/internal/compiler/wasm.ts +141 -68
  95. package/src/internal/node.ts +49 -3
  96. package/src/internal/run.ts +4 -2
  97. package/src/internal/stack.ts +17 -0
  98. package/src/internal/tokens.ts +20 -10
  99. package/src/internal/tuple.ts +141 -0
@@ -17,16 +17,8 @@ export type ErrorKind = "Alpha" | "AlphaNumeric" | "Alt" | "Assert" | "Bits" | "
17
17
  * @category type ids
18
18
  */
19
19
  export declare const TypeId: "~effect-parse/ParseError";
20
- declare const ParseError_base: new <A extends Record<string, any> = {}>(args: import("effect/Types").VoidIfEmpty<{ readonly [P in keyof A as P extends "_tag" ? never : P]: A[P]; }>) => import("effect/Cause").YieldableError & {
21
- readonly _tag: "ParseError";
22
- } & Readonly<A>;
23
- /**
24
- * An error produced by running a parser.
25
- *
26
- * @since 0.1.0
27
- * @category models
28
- */
29
- export declare class ParseError<out E = never> extends /*#__PURE__*/ ParseError_base<{
20
+ /** What a {@link ParseError} is built from. */
21
+ interface Fields<E> {
30
22
  /** The input that was being parsed. */
31
23
  readonly input: Input;
32
24
  /** The offset of the failure in the input. */
@@ -48,7 +40,73 @@ export declare class ParseError<out E = never> extends /*#__PURE__*/ ParseError_
48
40
  * then show the input as text, with line and column numbers.
49
41
  */
50
42
  readonly encoding?: Encoding<Uint8Array> | undefined;
51
- }> {
43
+ }
44
+ /**
45
+ * What a {@link ParseError} serialises as (`toJSON`): everything but the
46
+ * input it was parsing and the encoding it was read in.
47
+ *
48
+ * @since 0.6.0
49
+ * @category models
50
+ */
51
+ export interface ParseErrorJson<out E = never> {
52
+ readonly _tag: "ParseError";
53
+ /** The offset of the failure in the input. */
54
+ readonly offset: number;
55
+ /** The 1-based line and column of the failure. */
56
+ readonly position: LineColumn;
57
+ readonly kind: ErrorKind;
58
+ readonly mode: ErrMode;
59
+ readonly expected: ReadonlyArray<string>;
60
+ readonly context: ReadonlyArray<string>;
61
+ readonly cause: E | undefined;
62
+ readonly description: string | undefined;
63
+ /** The rendered message, which shows a bounded window of the input around the failure. */
64
+ readonly message: string;
65
+ }
66
+ declare const ParseError_base: new <A extends Record<string, any> = {}>(args: import("effect/Types").VoidIfEmpty<{ readonly [P in keyof A as P extends "_tag" ? never : P]: A[P]; }>) => import("effect/Cause").YieldableError & {
67
+ readonly _tag: "ParseError";
68
+ } & Readonly<A>;
69
+ /**
70
+ * An error produced by running a parser.
71
+ *
72
+ * The error keeps the whole input alive for as long as it is retained
73
+ * (`input`), but does not serialise it: `input` and `encoding` are
74
+ * accessors, not own properties, `toJSON` (which `JSON.stringify`,
75
+ * Effect's `Cause` rendering and Node's `inspect` use) leaves them out, and
76
+ * `message` shows a bounded window around the failure, never a whole line.
77
+ *
78
+ * @since 0.1.0
79
+ * @category models
80
+ */
81
+ export declare class ParseError<out E = never> extends /*#__PURE__*/ ParseError_base<Omit<Fields<unknown>, "input" | "encoding">> {
82
+ #private;
83
+ /** The user supplied cause, if any. */
84
+ readonly cause: E | undefined;
85
+ constructor(fields: Fields<E>);
86
+ /**
87
+ * The input that was being parsed. The error holds it (for
88
+ * {@link ParseError.position} and the message) and keeps it alive, but it
89
+ * is not one of the error's own properties, so `JSON.stringify`, object
90
+ * spread, `Object.keys`, `toJSON` and loggers do not see it.
91
+ *
92
+ * @since 0.1.0
93
+ */
94
+ get input(): Input;
95
+ /**
96
+ * For byte inputs parsed by `Text` parsers, the text encoding. Errors
97
+ * then show the input as text, with line and column numbers. Like
98
+ * `input`, it is not an own property.
99
+ *
100
+ * @since 0.1.0
101
+ */
102
+ get encoding(): Encoding<Uint8Array> | undefined;
103
+ /**
104
+ * The error without its `input` and `encoding`: what `JSON.stringify`,
105
+ * Effect's `Cause` rendering and Node's `inspect` show.
106
+ *
107
+ * @since 0.6.0
108
+ */
109
+ toJSON(): ParseErrorJson<E>;
52
110
  /**
53
111
  * @since 0.1.0
54
112
  */
@@ -1 +1 @@
1
- {"version":3,"file":"ParseError.d.ts","names":[],"sources":["../src/ParseError.ts"],"mappings":";;;;;;;;;;;;;YAwCY;;;;;qBAuCC;;;;;;;;;;qBAQA,eAAe,iCACJ;;WAEX,OAAO;;WAEP;;WAEA,MAAM;;WAEN,MAAM;;WAEN,UAAU;;WAEV,SAAS;;WAET,OAAO;;WAEP;;;;;WAKA,WAAW,SAAS;;;;;YAMrB,gBAAgB;;;;;;;MAQtB,YAAY;;;;;;MASH;;;;EAOJ;;;;;;qBASE,eAAgB,eAAa,KAAK;;;;;;;qBAQlC,cAAe,WAC1B,OAAO,OACP,SAAS,SACT,MAAM,SACN,WAAW,kBACV,WAAW;;;;;;;qBAsBD,WAAY,GAAG,MAAM,WAAW,OAAK,OAAO,OAAO;;;;;;;iBAS/C;WACN;WACA;;;;;;;;;;;qBAYE,aAAc,OAAO,OAAO,gBAAgB,WAAW,kBAAgB;;;;;;;qBA6CvE,iBAAkB,UAAU;;qBA8B5B,eAAgB"}
1
+ {"version":3,"file":"ParseError.d.ts","names":[],"sources":["../src/ParseError.ts"],"mappings":";;;;;;;;;;;;;YAwCY;;;;;qBAuCC;;UAGH,OAAO;;WAEN,OAAO;;WAEP;;WAEA,MAAM;;WAEN,MAAM;;WAEN,UAAU;;WAEV,SAAS;;WAET,OAAO;;WAEP;;;;;WAKA,WAAW,SAAS;;;;;;;;;iBAUd,mBAAmB;WACzB;;WAEA;;WAEA,UAAU;WACV,MAAM;WACN,MAAM;WACN,UAAU;WACV,SAAS;WACT,OAAO;WACP;;WAEA;;;;;;;;;;;;;;;;;qBAeE,eAAe,iCACJ,gBAA+B,KAAK;;;WAGzC,OAAO;EAYZ,YAAA,QAAQ,OAAO;;;;;;;;;MAsBvB,SAAS;;;;;;;;MAWT,YAAY,SAAS;;;;;;;EAUhB,UAAU,eAAe;;;;YAkBxB,gBAAgB;;;;;;;MAQtB,YAAY;;;;;;MASH;;;;EAOJ;;;;;;qBASE,eAAgB,eAAa,KAAK;;;;;;;qBAQlC,cAAe,WAC1B,OAAO,OACP,SAAS,SACT,MAAM,SACN,WAAW,kBACV,WAAW;;;;;;;qBAsBD,WAAY,GAAG,MAAM,WAAW,OAAK,OAAO,OAAO;;;;;;;iBAS/C;WACN;WACA;;;;;;;;;;;qBAYE,aAAc,OAAO,OAAO,gBAAgB,WAAW,kBAAgB;;;;;;;qBA6CvE,iBAAkB,UAAU;;qBA8B5B,eAAgB"}
@@ -34,10 +34,74 @@ const TypeId = "~effect-parse/ParseError";
34
34
  /**
35
35
  * An error produced by running a parser.
36
36
  *
37
+ * The error keeps the whole input alive for as long as it is retained
38
+ * (`input`), but does not serialise it: `input` and `encoding` are
39
+ * accessors, not own properties, `toJSON` (which `JSON.stringify`,
40
+ * Effect's `Cause` rendering and Node's `inspect` use) leaves them out, and
41
+ * `message` shows a bounded window around the failure, never a whole line.
42
+ *
37
43
  * @since 0.1.0
38
44
  * @category models
39
45
  */
40
46
  var ParseError = class extends (/*#__PURE__*/ Data.TaggedError("ParseError")) {
47
+ #input;
48
+ #encoding;
49
+ #position;
50
+ #message;
51
+ constructor(fields) {
52
+ super({
53
+ offset: fields.offset,
54
+ kind: fields.kind,
55
+ mode: fields.mode,
56
+ expected: fields.expected,
57
+ context: fields.context,
58
+ cause: fields.cause,
59
+ description: fields.description
60
+ });
61
+ this.#input = fields.input;
62
+ this.#encoding = fields.encoding;
63
+ }
64
+ /**
65
+ * The input that was being parsed. The error holds it (for
66
+ * {@link ParseError.position} and the message) and keeps it alive, but it
67
+ * is not one of the error's own properties, so `JSON.stringify`, object
68
+ * spread, `Object.keys`, `toJSON` and loggers do not see it.
69
+ *
70
+ * @since 0.1.0
71
+ */
72
+ get input() {
73
+ return this.#input;
74
+ }
75
+ /**
76
+ * For byte inputs parsed by `Text` parsers, the text encoding. Errors
77
+ * then show the input as text, with line and column numbers. Like
78
+ * `input`, it is not an own property.
79
+ *
80
+ * @since 0.1.0
81
+ */
82
+ get encoding() {
83
+ return this.#encoding;
84
+ }
85
+ /**
86
+ * The error without its `input` and `encoding`: what `JSON.stringify`,
87
+ * Effect's `Cause` rendering and Node's `inspect` show.
88
+ *
89
+ * @since 0.6.0
90
+ */
91
+ toJSON() {
92
+ return {
93
+ _tag: this._tag,
94
+ offset: this.offset,
95
+ position: this.position,
96
+ kind: this.kind,
97
+ mode: this.mode,
98
+ expected: this.expected,
99
+ context: this.context,
100
+ cause: this.cause,
101
+ description: this.description,
102
+ message: this.message
103
+ };
104
+ }
41
105
  /**
42
106
  * @since 0.1.0
43
107
  */
@@ -49,7 +113,7 @@ var ParseError = class extends (/*#__PURE__*/ Data.TaggedError("ParseError")) {
49
113
  * @since 0.1.0
50
114
  */
51
115
  get position() {
52
- return lineColumn(this.input, this.offset, this.encoding);
116
+ return this.#position ??= lineColumn(this.#input, this.offset, this.#encoding);
53
117
  }
54
118
  /**
55
119
  * The rendered, human-readable error message.
@@ -57,7 +121,7 @@ var ParseError = class extends (/*#__PURE__*/ Data.TaggedError("ParseError")) {
57
121
  * @since 0.1.0
58
122
  */
59
123
  get message() {
60
- return render(this);
124
+ return this.#message ??= render(this);
61
125
  }
62
126
  /**
63
127
  * @since 0.1.0
@@ -185,40 +249,77 @@ const causeMessage = (cause) => {
185
249
  if (Predicate.isObjectOrArray(cause) && "message" in cause && Predicate.isString(cause.message)) return cause.message;
186
250
  return inspectToken(cause);
187
251
  };
188
- const renderSnippet = (input, offset, encoding) => {
252
+ /**
253
+ * How many characters of the failing line a message shows on each side of
254
+ * the failure. A line has no length limit (minified JSON is one line), and
255
+ * the input's sender chooses its length, so the message shows a window
256
+ * and marks what it left out with `…`.
257
+ */
258
+ const SnippetWindow = 60;
259
+ const Ellipsis = "…";
260
+ /** The two lines of a text snippet: the window of the line, and a caret under the failure. */
261
+ const snippetLines = (line, window, before, cutStart, cutEnd) => {
262
+ const gutter = String(line);
263
+ const pad = " ".repeat(gutter.length);
264
+ const shown = window.endsWith("\r") && !cutEnd ? window.slice(0, -1) : window;
265
+ return [`${gutter} | ${cutStart ? Ellipsis : ""}${shown}${cutEnd ? Ellipsis : ""}`, `${pad} | ${" ".repeat(before + (cutStart ? 1 : 0))}^`];
266
+ };
267
+ const isHighSurrogate = (c) => c >= 55296 && c <= 56319;
268
+ const isLowSurrogate = (c) => c >= 56320 && c <= 57343;
269
+ const renderSnippet = (input, offset, encoding, line) => {
189
270
  if (encoding !== void 0 && input instanceof Uint8Array) {
271
+ const ring = new Array(SnippetWindow);
272
+ let before = 0;
190
273
  let lineStart = 0;
274
+ let after = 0;
191
275
  let end = input.length;
192
- let column = 1;
276
+ let cutEnd = false;
193
277
  text.walk(encoding, input, 0, input.length, (cp, i, w) => {
194
- if (i >= offset && cp === 10) {
195
- end = i;
196
- return false;
197
- }
198
278
  if (i < offset) {
199
279
  if (cp === 10) {
280
+ before = 0;
200
281
  lineStart = i + w;
201
- column = 1;
202
- } else column++;
282
+ } else {
283
+ ring[before % SnippetWindow] = i;
284
+ before++;
285
+ }
286
+ return;
203
287
  }
288
+ if (cp === 10) {
289
+ end = i;
290
+ return false;
291
+ }
292
+ if (after === SnippetWindow) {
293
+ end = i;
294
+ cutEnd = true;
295
+ return false;
296
+ }
297
+ after++;
204
298
  });
205
- let line = text.lenientText(encoding, input, lineStart, end);
206
- if (line.endsWith("\r")) line = line.slice(0, -1);
207
- const gutter = String(lineColumn(input, offset, encoding).line);
208
- const pad = " ".repeat(gutter.length);
209
- return [`${gutter} | ${line}`, `${pad} | ${" ".repeat(column - 1)}^`];
299
+ const cutStart = before > SnippetWindow;
300
+ const start = cutStart ? ring[before % SnippetWindow] : lineStart;
301
+ const shown = Math.min(before, SnippetWindow);
302
+ return snippetLines(line, text.lenientText(encoding, input, start, end), shown, cutStart, cutEnd);
210
303
  }
211
304
  if (Predicate.isString(input)) {
212
- const { column, line } = lineColumn(input, offset);
213
- let start = offset;
214
- while (start > 0 && input.charCodeAt(start - 1) !== 10) start--;
215
- let end = offset;
216
- while (end < input.length && input.charCodeAt(end) !== 10) end++;
217
- let text = input.slice(start, end);
218
- if (text.endsWith("\r")) text = text.slice(0, -1);
219
- const gutter = String(line);
220
- const pad = " ".repeat(gutter.length);
221
- return [`${gutter} | ${text}`, `${pad} | ${" ".repeat(column - 1)}^`];
305
+ const at = Math.min(offset, input.length);
306
+ let start = at;
307
+ let before = 0;
308
+ while (start > 0 && input.charCodeAt(start - 1) !== 10 && before < SnippetWindow) {
309
+ start--;
310
+ if (start > 0 && isLowSurrogate(input.charCodeAt(start)) && isHighSurrogate(input.charCodeAt(start - 1))) start--;
311
+ before++;
312
+ }
313
+ const cutStart = start > 0 && input.charCodeAt(start - 1) !== 10;
314
+ let end = at;
315
+ let after = 0;
316
+ while (end < input.length && input.charCodeAt(end) !== 10 && after < SnippetWindow) {
317
+ if (isHighSurrogate(input.charCodeAt(end)) && end + 1 < input.length && isLowSurrogate(input.charCodeAt(end + 1))) end++;
318
+ end++;
319
+ after++;
320
+ }
321
+ const cutEnd = end < input.length && input.charCodeAt(end) !== 10;
322
+ return snippetLines(line, input.slice(start, end), before, cutStart, cutEnd);
222
323
  }
223
324
  if (input instanceof Uint8Array) {
224
325
  const start = Math.max(0, offset - 8);
@@ -234,13 +335,13 @@ const render = (error) => {
234
335
  const { encoding, input, offset } = error;
235
336
  const lines = [];
236
337
  if (Predicate.isString(input)) {
237
- const { column, line } = lineColumn(input, offset);
338
+ const { column, line } = error.position;
238
339
  lines.push(`Parse error at line ${line}, column ${column}:`);
239
340
  } else if (encoding !== void 0) {
240
- const { column, line } = lineColumn(input, offset, encoding);
341
+ const { column, line } = error.position;
241
342
  lines.push(`Parse error at line ${line}, column ${column} (byte ${offset}):`);
242
343
  } else lines.push(`Parse error at offset ${offset}:`);
243
- lines.push(...renderSnippet(input, offset, encoding));
344
+ lines.push(...renderSnippet(input, offset, encoding, error.position.line));
244
345
  for (let i = error.context.length - 1; i >= 0; i--) lines.push(`while parsing ${error.context[i]}`);
245
346
  const cause = causeMessage(error.cause);
246
347
  if (cause !== void 0) lines.push(cause);
@@ -1 +1 @@
1
- {"version":3,"file":"ParseError.js","names":[],"sources":["../src/ParseError.ts"],"sourcesContent":["/**\n * The error type produced when running a parser.\n *\n * `ParseError` merges winnow's `ContextError`/`ParseError` and nom's\n * `VerboseError`. It records where parsing failed, what was expected there,\n * the context labels that were active, and an optional typed `cause`\n * produced by `Parser.fail`, `Parser.tryMap` and friends. Its `message`\n * shows the failing position in the input:\n *\n * ```text\n * Parse error at line 1, column 4:\n * 1 | [1,,2]\n * | ^\n * expected digit\n * ```\n *\n * `ParseError` is a `Data.TaggedError`, so it can be yielded directly inside\n * `Effect.gen`.\n *\n * @since 0.1.0\n */\nimport * as Arr from \"effect/Array\"\nimport * as Predicate from \"effect/Predicate\"\nimport * as Data from \"effect/Data\"\nimport * as Option from \"effect/Option\"\nimport * as Result from \"effect/Result\"\nimport type { Encoding } from \"./Encoding.js\"\nimport type { ErrMode, Failure, Input } from \"./Input.js\"\nimport * as text from \"./internal/text.js\"\n\n/**\n * The kind of parser that produced an error, in the spirit of nom's\n * `ErrorKind`.\n *\n * `\"TooDeep\"` is not produced by a parser: the runners report it when\n * deeply nested input exhausts the call stack (see `Parser.suspend`).\n *\n * @since 0.1.0\n * @category models\n */\nexport type ErrorKind =\n | \"Alpha\"\n | \"AlphaNumeric\"\n | \"Alt\"\n | \"Assert\"\n | \"Bits\"\n | \"Complete\"\n | \"CrLf\"\n | \"Digit\"\n | \"Dispatch\"\n | \"Eof\"\n | \"Escaped\"\n | \"Fail\"\n | \"Float\"\n | \"HexDigit\"\n | \"Incomplete\"\n | \"LineEnding\"\n | \"Literal\"\n | \"Many\"\n | \"MultiSpace\"\n | \"NoneOf\"\n | \"Not\"\n | \"OctDigit\"\n | \"OneOf\"\n | \"Permutation\"\n | \"Separated\"\n | \"Slice\"\n | \"Space\"\n | \"Take\"\n | \"TakeUntil\"\n | \"TakeWhile\"\n | \"Token\"\n | \"TooDeep\"\n | \"Verify\"\n\n/**\n * @since 0.1.0\n * @category type ids\n */\nexport const TypeId = \"~effect-parse/ParseError\" as const\n\n/**\n * An error produced by running a parser.\n *\n * @since 0.1.0\n * @category models\n */\nexport class ParseError<out E = never>\n extends /*#__PURE__*/ Data.TaggedError(\"ParseError\")<{\n /** The input that was being parsed. */\n readonly input: Input\n /** The offset of the failure in the input. */\n readonly offset: number\n /** The kind of parser that failed. */\n readonly kind: ErrorKind\n /** How the error propagated before parsing stopped. */\n readonly mode: ErrMode\n /** Descriptions of what was expected at `offset`. */\n readonly expected: ReadonlyArray<string>\n /** Context labels (`Parser.context`), innermost first. */\n readonly context: ReadonlyArray<string>\n /** The user supplied cause, if any. */\n readonly cause: E | undefined\n /** An optional free-form description. */\n readonly description: string | undefined\n /**\n * For byte inputs parsed by `Text` parsers, the text encoding. Errors\n * then show the input as text, with line and column numbers.\n */\n readonly encoding?: Encoding<Uint8Array> | undefined\n }>\n{\n /**\n * @since 0.1.0\n */\n readonly [TypeId]: typeof TypeId = TypeId\n\n /**\n * The 1-based line and column of the failure (for strings and encoded\n * text; for other inputs the line is 1 and the column is `offset + 1`).\n *\n * @since 0.1.0\n */\n get position(): LineColumn {\n return lineColumn(this.input, this.offset, this.encoding)\n }\n\n /**\n * The rendered, human-readable error message.\n *\n * @since 0.1.0\n */\n override get message(): string {\n return render(this)\n }\n\n /**\n * @since 0.1.0\n */\n override toString(): string {\n return `ParseError: ${this.message}`\n }\n}\n\n/**\n * @since 0.1.0\n * @category guards\n */\nexport const isParseError = (u: unknown): u is ParseError<unknown> => Predicate.isObjectOrArray(u) && TypeId in u\n\n/**\n * Builds a `ParseError` from the failure details recorded while parsing.\n *\n * @since 0.1.0\n * @category constructors\n */\nexport const fromFailure = <E = never>(\n input: Input,\n failure: Failure,\n mode: ErrMode,\n encoding?: Encoding<any>\n): ParseError<E> =>\n new ParseError<E>({\n input,\n offset: failure.offset,\n kind: failure.kind,\n mode,\n expected: failure.expected,\n context: failure.context,\n // SAFETY: `E` is the user error type of the parser whose run recorded\n // `failure`; a failure with `hasCause` carries a cause raised by that\n // parser's `fail` / `mapError`\n cause: failure.hasCause ? (failure.cause as E) : undefined,\n description: failure.message,\n encoding: input instanceof Uint8Array ? encoding : undefined\n })\n\n/**\n * The user supplied cause of an error, if any.\n *\n * @since 0.1.0\n * @category getters\n */\nexport const getCause = <E>(self: ParseError<E>): Option.Option<E> =>\n self.cause === undefined ? Option.none() : Option.some(self.cause)\n\n/**\n * A 1-based line/column position.\n *\n * @since 0.1.0\n * @category models\n */\nexport interface LineColumn {\n readonly line: number\n readonly column: number\n}\n\n/**\n * Computes the 1-based line and column (in code points) of an offset. Lines\n * are separated by `\\n`. Byte inputs are read as text when an `encoding`\n * is given. For other inputs the line is always 1 and the column is\n * `offset + 1`.\n *\n * @since 0.1.0\n * @category utils\n */\nexport const lineColumn = (input: Input, offset: number, encoding?: Encoding<any>): LineColumn => {\n if (encoding !== undefined && input instanceof Uint8Array) {\n let line = 1\n let column = 1\n text.walk(encoding, input, 0, Math.min(offset, input.length), (cp) => {\n if (cp === 10) {\n line++\n column = 1\n } else {\n column++\n }\n })\n return { line, column }\n }\n if (!Predicate.isString(input)) return { line: 1, column: offset + 1 }\n let line = 1\n let lineStart = 0\n for (let i = 0; i < offset && i < input.length; i++) {\n if (input.charCodeAt(i) === 10) {\n line++\n lineStart = i + 1\n }\n }\n return { line, column: codePointCount(input, lineStart, Math.min(offset, input.length)) + 1 }\n}\n\nconst codePointCount = (s: string, start: number, end: number): number => {\n let n = 0\n for (let i = start; i < end; i++) {\n const c = s.charCodeAt(i)\n if (c >= 0xd800 && c <= 0xdbff && i + 1 < end) {\n const d = s.charCodeAt(i + 1)\n if (d >= 0xdc00 && d <= 0xdfff) i++\n }\n n++\n }\n return n\n}\n\n/**\n * Formats a list of expectations: `a`, `a or b`, `a, b or c`.\n *\n * @since 0.1.0\n * @category utils\n */\nexport const formatExpected = (expected: ReadonlyArray<string>): string => {\n if (Arr.isReadonlyArrayEmpty(expected)) return \"\"\n if (expected.length === 1) return expected[0]\n return `${expected.slice(0, -1).join(\", \")} or ${expected[expected.length - 1]}`\n}\n\nconst hexBytes = (bytes: Uint8Array): string =>\n Array.from(bytes, (b) => `0x${b.toString(16).padStart(2, \"0\")}`).join(\" \")\n\nconst describeFound = (input: Input, offset: number, encoding: Encoding<any> | undefined): string => {\n if (offset >= input.length) return \"end of input\"\n if (encoding !== undefined && input instanceof Uint8Array) {\n const cp = encoding.decode(input, offset, input.length)\n if (cp >= 0) return JSON.stringify(String.fromCodePoint(cp))\n const bad = input.subarray(offset, Math.min(input.length, offset + Math.max(encoding.unit, 1)))\n return cp === text.Truncated\n ? `incomplete ${encoding.name} sequence ${hexBytes(input.subarray(offset))}`\n : `invalid ${encoding.name} ${hexBytes(bad)}`\n }\n if (Predicate.isString(input)) {\n const cp = input.codePointAt(offset) ?? Number.NaN\n return JSON.stringify(String.fromCodePoint(cp))\n }\n if (input instanceof Uint8Array) {\n return `0x${input[offset].toString(16).padStart(2, \"0\")}`\n }\n return inspectToken(input[offset])\n}\n\n/** @internal */\nexport const inspectToken = (u: unknown): string => {\n if (Predicate.isString(u)) return JSON.stringify(u)\n if (Predicate.isObjectOrArray(u)) {\n // `JSON.stringify` throws on cycles and `BigInt`s. Fall back to what\n // `String` gives an array (its elements joined) or an object's tag\n // (`[object Map]`), never a user `toString` that might throw in turn.\n return Result.getOrElse(\n Result.try(() => JSON.stringify(u)),\n () => (Array.isArray(u) ? u.join(\",\") : Object.prototype.toString.call(u))\n )\n }\n return String(u)\n}\n\nconst causeMessage = (cause: unknown): string | undefined => {\n if (cause === undefined) return undefined\n if (Predicate.isString(cause)) return cause\n // An `Error`'s message, or any other object's string `message`\n if (Predicate.isObjectOrArray(cause) && \"message\" in cause && Predicate.isString(cause.message)) {\n return cause.message\n }\n return inspectToken(cause)\n}\n\nconst renderSnippet = (input: Input, offset: number, encoding: Encoding<any> | undefined): Array<string> => {\n if (encoding !== undefined && input instanceof Uint8Array) {\n // Find the line containing `offset`, then decode it\n let lineStart = 0\n let end = input.length\n let column = 1\n text.walk(encoding, input, 0, input.length, (cp, i, w) => {\n if (i >= offset && cp === 10) {\n end = i\n return false\n }\n if (i < offset) {\n if (cp === 10) {\n lineStart = i + w\n column = 1\n } else {\n column++\n }\n }\n })\n let line = text.lenientText(encoding, input, lineStart, end)\n if (line.endsWith(\"\\r\")) line = line.slice(0, -1)\n const gutter = String(lineColumn(input, offset, encoding).line)\n const pad = \" \".repeat(gutter.length)\n return [`${gutter} | ${line}`, `${pad} | ${\" \".repeat(column - 1)}^`]\n }\n if (Predicate.isString(input)) {\n const { column, line } = lineColumn(input, offset)\n let start = offset\n while (start > 0 && input.charCodeAt(start - 1) !== 10) start--\n let end = offset\n while (end < input.length && input.charCodeAt(end) !== 10) end++\n let text = input.slice(start, end)\n if (text.endsWith(\"\\r\")) text = text.slice(0, -1)\n const gutter = String(line)\n const pad = \" \".repeat(gutter.length)\n return [`${gutter} | ${text}`, `${pad} | ${\" \".repeat(column - 1)}^`]\n }\n if (input instanceof Uint8Array) {\n const start = Math.max(0, offset - 8)\n const end = Math.min(input.length, offset + 8)\n const bytes: Array<string> = []\n for (let i = start; i < end; i++) bytes.push(input[i].toString(16).padStart(2, \"0\"))\n const caret = (offset - start) * 3\n return [`${start.toString(16).padStart(8, \"0\")} | ${bytes.join(\" \")}`, `${\" \".repeat(8)} | ${\" \".repeat(caret)}^`]\n }\n return []\n}\n\nconst render = (error: ParseError<unknown>): string => {\n const { encoding, input, offset } = error\n const lines: Array<string> = []\n if (Predicate.isString(input)) {\n const { column, line } = lineColumn(input, offset)\n lines.push(`Parse error at line ${line}, column ${column}:`)\n } else if (encoding !== undefined) {\n const { column, line } = lineColumn(input, offset, encoding)\n lines.push(`Parse error at line ${line}, column ${column} (byte ${offset}):`)\n } else {\n lines.push(`Parse error at offset ${offset}:`)\n }\n lines.push(...renderSnippet(input, offset, encoding))\n for (let i = error.context.length - 1; i >= 0; i--) {\n lines.push(`while parsing ${error.context[i]}`)\n }\n const cause = causeMessage(error.cause)\n if (cause !== undefined) lines.push(cause)\n if (error.description !== undefined) lines.push(error.description)\n if (error.mode === \"Incomplete\") {\n lines.push(\"unexpected end of input (incomplete)\")\n } else if (Arr.isReadonlyArrayNonEmpty(error.expected)) {\n lines.push(`expected ${formatExpected(error.expected)}, found ${describeFound(input, offset, encoding)}`)\n } else if (cause === undefined && error.description === undefined) {\n lines.push(`unexpected ${describeFound(input, offset, encoding)} (${error.kind})`)\n }\n return lines.join(\"\\n\")\n}\n"],"mappings":"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"}
1
+ {"version":3,"file":"ParseError.js","names":[],"sources":["../src/ParseError.ts"],"sourcesContent":["/**\n * The error type produced when running a parser.\n *\n * `ParseError` merges winnow's `ContextError`/`ParseError` and nom's\n * `VerboseError`. It records where parsing failed, what was expected there,\n * the context labels that were active, and an optional typed `cause`\n * produced by `Parser.fail`, `Parser.tryMap` and friends. Its `message`\n * shows the failing position in the input:\n *\n * ```text\n * Parse error at line 1, column 4:\n * 1 | [1,,2]\n * | ^\n * expected digit\n * ```\n *\n * `ParseError` is a `Data.TaggedError`, so it can be yielded directly inside\n * `Effect.gen`.\n *\n * @since 0.1.0\n */\nimport * as Arr from \"effect/Array\"\nimport * as Predicate from \"effect/Predicate\"\nimport * as Data from \"effect/Data\"\nimport * as Option from \"effect/Option\"\nimport * as Result from \"effect/Result\"\nimport type { Encoding } from \"./Encoding.js\"\nimport type { ErrMode, Failure, Input } from \"./Input.js\"\nimport * as text from \"./internal/text.js\"\n\n/**\n * The kind of parser that produced an error, in the spirit of nom's\n * `ErrorKind`.\n *\n * `\"TooDeep\"` is not produced by a parser: the runners report it when\n * deeply nested input exhausts the call stack (see `Parser.suspend`).\n *\n * @since 0.1.0\n * @category models\n */\nexport type ErrorKind =\n | \"Alpha\"\n | \"AlphaNumeric\"\n | \"Alt\"\n | \"Assert\"\n | \"Bits\"\n | \"Complete\"\n | \"CrLf\"\n | \"Digit\"\n | \"Dispatch\"\n | \"Eof\"\n | \"Escaped\"\n | \"Fail\"\n | \"Float\"\n | \"HexDigit\"\n | \"Incomplete\"\n | \"LineEnding\"\n | \"Literal\"\n | \"Many\"\n | \"MultiSpace\"\n | \"NoneOf\"\n | \"Not\"\n | \"OctDigit\"\n | \"OneOf\"\n | \"Permutation\"\n | \"Separated\"\n | \"Slice\"\n | \"Space\"\n | \"Take\"\n | \"TakeUntil\"\n | \"TakeWhile\"\n | \"Token\"\n | \"TooDeep\"\n | \"Verify\"\n\n/**\n * @since 0.1.0\n * @category type ids\n */\nexport const TypeId = \"~effect-parse/ParseError\" as const\n\n/** What a {@link ParseError} is built from. */\ninterface Fields<E> {\n /** The input that was being parsed. */\n readonly input: Input\n /** The offset of the failure in the input. */\n readonly offset: number\n /** The kind of parser that failed. */\n readonly kind: ErrorKind\n /** How the error propagated before parsing stopped. */\n readonly mode: ErrMode\n /** Descriptions of what was expected at `offset`. */\n readonly expected: ReadonlyArray<string>\n /** Context labels (`Parser.context`), innermost first. */\n readonly context: ReadonlyArray<string>\n /** The user supplied cause, if any. */\n readonly cause: E | undefined\n /** An optional free-form description. */\n readonly description: string | undefined\n /**\n * For byte inputs parsed by `Text` parsers, the text encoding. Errors\n * then show the input as text, with line and column numbers.\n */\n readonly encoding?: Encoding<Uint8Array> | undefined\n}\n\n/**\n * What a {@link ParseError} serialises as (`toJSON`): everything but the\n * input it was parsing and the encoding it was read in.\n *\n * @since 0.6.0\n * @category models\n */\nexport interface ParseErrorJson<out E = never> {\n readonly _tag: \"ParseError\"\n /** The offset of the failure in the input. */\n readonly offset: number\n /** The 1-based line and column of the failure. */\n readonly position: LineColumn\n readonly kind: ErrorKind\n readonly mode: ErrMode\n readonly expected: ReadonlyArray<string>\n readonly context: ReadonlyArray<string>\n readonly cause: E | undefined\n readonly description: string | undefined\n /** The rendered message, which shows a bounded window of the input around the failure. */\n readonly message: string\n}\n\n/**\n * An error produced by running a parser.\n *\n * The error keeps the whole input alive for as long as it is retained\n * (`input`), but does not serialise it: `input` and `encoding` are\n * accessors, not own properties, `toJSON` (which `JSON.stringify`,\n * Effect's `Cause` rendering and Node's `inspect` use) leaves them out, and\n * `message` shows a bounded window around the failure, never a whole line.\n *\n * @since 0.1.0\n * @category models\n */\nexport class ParseError<out E = never>\n extends /*#__PURE__*/ Data.TaggedError(\"ParseError\")<Omit<Fields<unknown>, \"input\" | \"encoding\">>\n{\n /** The user supplied cause, if any. */\n declare readonly cause: E | undefined\n\n // Private fields, not properties: nothing that walks the error (its own\n // keys, enumerable or not, or the arguments `Data.TaggedError` keeps for\n // `toJSON` and structural equality) can reach the input (#117)\n readonly #input: Input\n readonly #encoding: Encoding<Uint8Array> | undefined\n // Both are functions of the fields above, which never change, and both\n // scan the input up to the failure: computed on first use, then kept\n #position: LineColumn | undefined\n #message: string | undefined\n\n constructor(fields: Fields<E>) {\n super({\n offset: fields.offset,\n kind: fields.kind,\n mode: fields.mode,\n expected: fields.expected,\n context: fields.context,\n cause: fields.cause,\n description: fields.description\n })\n this.#input = fields.input\n this.#encoding = fields.encoding\n }\n\n /**\n * The input that was being parsed. The error holds it (for\n * {@link ParseError.position} and the message) and keeps it alive, but it\n * is not one of the error's own properties, so `JSON.stringify`, object\n * spread, `Object.keys`, `toJSON` and loggers do not see it.\n *\n * @since 0.1.0\n */\n get input(): Input {\n return this.#input\n }\n\n /**\n * For byte inputs parsed by `Text` parsers, the text encoding. Errors\n * then show the input as text, with line and column numbers. Like\n * `input`, it is not an own property.\n *\n * @since 0.1.0\n */\n get encoding(): Encoding<Uint8Array> | undefined {\n return this.#encoding\n }\n\n /**\n * The error without its `input` and `encoding`: what `JSON.stringify`,\n * Effect's `Cause` rendering and Node's `inspect` show.\n *\n * @since 0.6.0\n */\n override toJSON(): ParseErrorJson<E> {\n return {\n _tag: this._tag,\n offset: this.offset,\n position: this.position,\n kind: this.kind,\n mode: this.mode,\n expected: this.expected,\n context: this.context,\n cause: this.cause,\n description: this.description,\n message: this.message\n }\n }\n\n /**\n * @since 0.1.0\n */\n readonly [TypeId]: typeof TypeId = TypeId\n\n /**\n * The 1-based line and column of the failure (for strings and encoded\n * text; for other inputs the line is 1 and the column is `offset + 1`).\n *\n * @since 0.1.0\n */\n get position(): LineColumn {\n return (this.#position ??= lineColumn(this.#input, this.offset, this.#encoding))\n }\n\n /**\n * The rendered, human-readable error message.\n *\n * @since 0.1.0\n */\n override get message(): string {\n return (this.#message ??= render(this))\n }\n\n /**\n * @since 0.1.0\n */\n override toString(): string {\n return `ParseError: ${this.message}`\n }\n}\n\n/**\n * @since 0.1.0\n * @category guards\n */\nexport const isParseError = (u: unknown): u is ParseError<unknown> => Predicate.isObjectOrArray(u) && TypeId in u\n\n/**\n * Builds a `ParseError` from the failure details recorded while parsing.\n *\n * @since 0.1.0\n * @category constructors\n */\nexport const fromFailure = <E = never>(\n input: Input,\n failure: Failure,\n mode: ErrMode,\n encoding?: Encoding<any>\n): ParseError<E> =>\n new ParseError<E>({\n input,\n offset: failure.offset,\n kind: failure.kind,\n mode,\n expected: failure.expected,\n context: failure.context,\n // SAFETY: `E` is the user error type of the parser whose run recorded\n // `failure`; a failure with `hasCause` carries a cause raised by that\n // parser's `fail` / `mapError`\n cause: failure.hasCause ? (failure.cause as E) : undefined,\n description: failure.message,\n encoding: input instanceof Uint8Array ? encoding : undefined\n })\n\n/**\n * The user supplied cause of an error, if any.\n *\n * @since 0.1.0\n * @category getters\n */\nexport const getCause = <E>(self: ParseError<E>): Option.Option<E> =>\n self.cause === undefined ? Option.none() : Option.some(self.cause)\n\n/**\n * A 1-based line/column position.\n *\n * @since 0.1.0\n * @category models\n */\nexport interface LineColumn {\n readonly line: number\n readonly column: number\n}\n\n/**\n * Computes the 1-based line and column (in code points) of an offset. Lines\n * are separated by `\\n`. Byte inputs are read as text when an `encoding`\n * is given. For other inputs the line is always 1 and the column is\n * `offset + 1`.\n *\n * @since 0.1.0\n * @category utils\n */\nexport const lineColumn = (input: Input, offset: number, encoding?: Encoding<any>): LineColumn => {\n if (encoding !== undefined && input instanceof Uint8Array) {\n let line = 1\n let column = 1\n text.walk(encoding, input, 0, Math.min(offset, input.length), (cp) => {\n if (cp === 10) {\n line++\n column = 1\n } else {\n column++\n }\n })\n return { line, column }\n }\n if (!Predicate.isString(input)) return { line: 1, column: offset + 1 }\n let line = 1\n let lineStart = 0\n for (let i = 0; i < offset && i < input.length; i++) {\n if (input.charCodeAt(i) === 10) {\n line++\n lineStart = i + 1\n }\n }\n return { line, column: codePointCount(input, lineStart, Math.min(offset, input.length)) + 1 }\n}\n\nconst codePointCount = (s: string, start: number, end: number): number => {\n let n = 0\n for (let i = start; i < end; i++) {\n const c = s.charCodeAt(i)\n if (c >= 0xd800 && c <= 0xdbff && i + 1 < end) {\n const d = s.charCodeAt(i + 1)\n if (d >= 0xdc00 && d <= 0xdfff) i++\n }\n n++\n }\n return n\n}\n\n/**\n * Formats a list of expectations: `a`, `a or b`, `a, b or c`.\n *\n * @since 0.1.0\n * @category utils\n */\nexport const formatExpected = (expected: ReadonlyArray<string>): string => {\n if (Arr.isReadonlyArrayEmpty(expected)) return \"\"\n if (expected.length === 1) return expected[0]\n return `${expected.slice(0, -1).join(\", \")} or ${expected[expected.length - 1]}`\n}\n\nconst hexBytes = (bytes: Uint8Array): string =>\n Array.from(bytes, (b) => `0x${b.toString(16).padStart(2, \"0\")}`).join(\" \")\n\nconst describeFound = (input: Input, offset: number, encoding: Encoding<any> | undefined): string => {\n if (offset >= input.length) return \"end of input\"\n if (encoding !== undefined && input instanceof Uint8Array) {\n const cp = encoding.decode(input, offset, input.length)\n if (cp >= 0) return JSON.stringify(String.fromCodePoint(cp))\n const bad = input.subarray(offset, Math.min(input.length, offset + Math.max(encoding.unit, 1)))\n return cp === text.Truncated\n ? `incomplete ${encoding.name} sequence ${hexBytes(input.subarray(offset))}`\n : `invalid ${encoding.name} ${hexBytes(bad)}`\n }\n if (Predicate.isString(input)) {\n const cp = input.codePointAt(offset) ?? Number.NaN\n return JSON.stringify(String.fromCodePoint(cp))\n }\n if (input instanceof Uint8Array) {\n return `0x${input[offset].toString(16).padStart(2, \"0\")}`\n }\n return inspectToken(input[offset])\n}\n\n/** @internal */\nexport const inspectToken = (u: unknown): string => {\n if (Predicate.isString(u)) return JSON.stringify(u)\n if (Predicate.isObjectOrArray(u)) {\n // `JSON.stringify` throws on cycles and `BigInt`s. Fall back to what\n // `String` gives an array (its elements joined) or an object's tag\n // (`[object Map]`), never a user `toString` that might throw in turn.\n return Result.getOrElse(\n Result.try(() => JSON.stringify(u)),\n () => (Array.isArray(u) ? u.join(\",\") : Object.prototype.toString.call(u))\n )\n }\n return String(u)\n}\n\nconst causeMessage = (cause: unknown): string | undefined => {\n if (cause === undefined) return undefined\n if (Predicate.isString(cause)) return cause\n // An `Error`'s message, or any other object's string `message`\n if (Predicate.isObjectOrArray(cause) && \"message\" in cause && Predicate.isString(cause.message)) {\n return cause.message\n }\n return inspectToken(cause)\n}\n\n/**\n * How many characters of the failing line a message shows on each side of\n * the failure. A line has no length limit (minified JSON is one line), and\n * the input's sender chooses its length, so the message shows a window\n * and marks what it left out with `…`.\n */\nconst SnippetWindow = 60\n\nconst Ellipsis = \"…\"\n\n/** The two lines of a text snippet: the window of the line, and a caret under the failure. */\nconst snippetLines = (line: number, window: string, before: number, cutStart: boolean, cutEnd: boolean) => {\n const gutter = String(line)\n const pad = \" \".repeat(gutter.length)\n const shown = window.endsWith(\"\\r\") && !cutEnd ? window.slice(0, -1) : window\n return [\n `${gutter} | ${cutStart ? Ellipsis : \"\"}${shown}${cutEnd ? Ellipsis : \"\"}`,\n `${pad} | ${\" \".repeat(before + (cutStart ? 1 : 0))}^`\n ]\n}\n\nconst isHighSurrogate = (c: number): boolean => c >= 0xd800 && c <= 0xdbff\nconst isLowSurrogate = (c: number): boolean => c >= 0xdc00 && c <= 0xdfff\n\nconst renderSnippet = (\n input: Input,\n offset: number,\n encoding: Encoding<any> | undefined,\n line: number\n): Array<string> => {\n if (encoding !== undefined && input instanceof Uint8Array) {\n // The window is found in one walk: where the last `SnippetWindow`\n // characters before the failure start (a ring of their offsets), and\n // where the line or the window ends after it\n const ring = new Array<number>(SnippetWindow)\n let before = 0\n let lineStart = 0\n let after = 0\n let end = input.length\n let cutEnd = false\n text.walk(encoding, input, 0, input.length, (cp, i, w) => {\n if (i < offset) {\n if (cp === 10) {\n before = 0\n lineStart = i + w\n } else {\n ring[before % SnippetWindow] = i\n before++\n }\n return\n }\n if (cp === 10) {\n end = i\n return false\n }\n if (after === SnippetWindow) {\n end = i\n cutEnd = true\n return false\n }\n after++\n })\n const cutStart = before > SnippetWindow\n const start = cutStart ? ring[before % SnippetWindow] : lineStart\n const shown = Math.min(before, SnippetWindow)\n return snippetLines(line, text.lenientText(encoding, input, start, end), shown, cutStart, cutEnd)\n }\n if (Predicate.isString(input)) {\n const at = Math.min(offset, input.length)\n let start = at\n let before = 0\n while (start > 0 && input.charCodeAt(start - 1) !== 10 && before < SnippetWindow) {\n start--\n // A surrogate pair is one character of the window, and is never split\n if (start > 0 && isLowSurrogate(input.charCodeAt(start)) && isHighSurrogate(input.charCodeAt(start - 1))) start--\n before++\n }\n const cutStart = start > 0 && input.charCodeAt(start - 1) !== 10\n let end = at\n let after = 0\n while (end < input.length && input.charCodeAt(end) !== 10 && after < SnippetWindow) {\n if (isHighSurrogate(input.charCodeAt(end)) && end + 1 < input.length && isLowSurrogate(input.charCodeAt(end + 1)))\n end++\n end++\n after++\n }\n const cutEnd = end < input.length && input.charCodeAt(end) !== 10\n return snippetLines(line, input.slice(start, end), before, cutStart, cutEnd)\n }\n if (input instanceof Uint8Array) {\n const start = Math.max(0, offset - 8)\n const end = Math.min(input.length, offset + 8)\n const bytes: Array<string> = []\n for (let i = start; i < end; i++) bytes.push(input[i].toString(16).padStart(2, \"0\"))\n const caret = (offset - start) * 3\n return [`${start.toString(16).padStart(8, \"0\")} | ${bytes.join(\" \")}`, `${\" \".repeat(8)} | ${\" \".repeat(caret)}^`]\n }\n return []\n}\n\nconst render = (error: ParseError<unknown>): string => {\n const { encoding, input, offset } = error\n const lines: Array<string> = []\n if (Predicate.isString(input)) {\n const { column, line } = error.position\n lines.push(`Parse error at line ${line}, column ${column}:`)\n } else if (encoding !== undefined) {\n const { column, line } = error.position\n lines.push(`Parse error at line ${line}, column ${column} (byte ${offset}):`)\n } else {\n lines.push(`Parse error at offset ${offset}:`)\n }\n lines.push(...renderSnippet(input, offset, encoding, error.position.line))\n for (let i = error.context.length - 1; i >= 0; i--) {\n lines.push(`while parsing ${error.context[i]}`)\n }\n const cause = causeMessage(error.cause)\n if (cause !== undefined) lines.push(cause)\n if (error.description !== undefined) lines.push(error.description)\n if (error.mode === \"Incomplete\") {\n lines.push(\"unexpected end of input (incomplete)\")\n } else if (Arr.isReadonlyArrayNonEmpty(error.expected)) {\n lines.push(`expected ${formatExpected(error.expected)}, found ${describeFound(input, offset, encoding)}`)\n } else if (cause === undefined && error.description === undefined) {\n lines.push(`unexpected ${describeFound(input, offset, encoding)} (${error.kind})`)\n }\n return lines.join(\"\\n\")\n}\n"],"mappings":"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"}
package/dist/Parser.d.ts CHANGED
@@ -1,12 +1,12 @@
1
1
  import * as Result from "effect/Result";
2
2
  import { ErrMode, Fail, Input, Slice, Source, State, TraceEvent } from "./Input.js";
3
+ import { Defer as Defer$1, Node } from "./internal/node.js";
3
4
  import * as Option from "effect/Option";
4
5
  import * as Context from "effect/Context";
5
6
  import * as Effect from "effect/Effect";
6
7
  import { Pipeable } from "effect/Pipeable";
7
8
  import * as ParseError from "./ParseError.js";
8
9
  import { ErrorKind } from "./ParseError.js";
9
- import { Defer as Defer$1, Node } from "./internal/node.js";
10
10
  import { Contravariant, Covariant, Simplify } from "effect/Types";
11
11
  /**
12
12
  * @since 0.1.0
@@ -105,6 +105,12 @@ export declare namespace Parser {
105
105
  * - `{ min, max }`: between `min` and `max` times (inclusive); `min`
106
106
  * defaults to 0 and `max` to unbounded.
107
107
  *
108
+ * A count and both bounds must be non-negative integers (`max` may be
109
+ * `Infinity`) with `min <= max`. Every combinator that takes a range
110
+ * throws a `RangeError` otherwise, when the parser is built: a range that
111
+ * comes from data (a config file, a query parameter) is checked there,
112
+ * whatever its static type says.
113
+ *
108
114
  * @since 0.1.0
109
115
  * @category models
110
116
  */
@@ -1166,9 +1172,9 @@ export declare const permutation: <const Ps extends ReadonlyArray<Parser.Any>>(.
1166
1172
  * exactly that many times. With a literal positive `min`, the output is
1167
1173
  * typed as a non-empty array.
1168
1174
  *
1169
- * As in winnow, an unbounded repetition of a parser that succeeds without
1170
- * consuming input fails with an unrecoverable assertion instead of looping
1171
- * forever.
1175
+ * A parser that succeeds without consuming input fails the repetition with
1176
+ * an unrecoverable `Assert` failure, whatever the range (winnow checks only
1177
+ * unbounded ones): a bound can come from the input (`Binary.lengthRepeat`).
1172
1178
  *
1173
1179
  * @example
1174
1180
  * ```ts
@@ -1 +1 @@
1
- {"version":3,"file":"Parser.d.ts","names":["DeferSymbol"],"sources":["../src/Parser.ts"],"mappings":"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"}
1
+ {"version":3,"file":"Parser.d.ts","names":["DeferSymbol"],"sources":["../src/Parser.ts"],"mappings":"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"}