effect-grammar 0.4.0 → 0.5.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (72) hide show
  1. package/README.md +175 -87
  2. package/dist/binary.d.ts +64 -0
  3. package/dist/binary.d.ts.map +1 -0
  4. package/dist/binary.js +246 -0
  5. package/dist/binary.js.map +1 -0
  6. package/dist/codec.d.ts +17 -0
  7. package/dist/codec.d.ts.map +1 -0
  8. package/dist/codec.js +14 -0
  9. package/dist/codec.js.map +1 -0
  10. package/dist/combinators.d.ts +112 -6
  11. package/dist/combinators.d.ts.map +1 -1
  12. package/dist/combinators.js +218 -28
  13. package/dist/combinators.js.map +1 -1
  14. package/dist/compile.d.ts +36 -0
  15. package/dist/compile.d.ts.map +1 -0
  16. package/dist/compile.js +228 -0
  17. package/dist/compile.js.map +1 -0
  18. package/dist/core.d.ts +34 -1
  19. package/dist/core.d.ts.map +1 -1
  20. package/dist/core.js +51 -1
  21. package/dist/core.js.map +1 -1
  22. package/dist/env.d.ts +5 -0
  23. package/dist/env.d.ts.map +1 -1
  24. package/dist/env.js +20 -1
  25. package/dist/env.js.map +1 -1
  26. package/dist/errors.d.ts +12 -0
  27. package/dist/errors.d.ts.map +1 -1
  28. package/dist/errors.js +40 -4
  29. package/dist/errors.js.map +1 -1
  30. package/dist/gen.d.ts.map +1 -1
  31. package/dist/gen.js +5 -7
  32. package/dist/gen.js.map +1 -1
  33. package/dist/index.d.ts +5 -4
  34. package/dist/index.d.ts.map +1 -1
  35. package/dist/index.js +3 -2
  36. package/dist/index.js.map +1 -1
  37. package/dist/parse.d.ts +10 -1
  38. package/dist/parse.d.ts.map +1 -1
  39. package/dist/parse.js +81 -19
  40. package/dist/parse.js.map +1 -1
  41. package/dist/pattern.d.ts +2 -1
  42. package/dist/pattern.d.ts.map +1 -1
  43. package/dist/pattern.js +46 -2
  44. package/dist/pattern.js.map +1 -1
  45. package/dist/print.d.ts +8 -0
  46. package/dist/print.d.ts.map +1 -1
  47. package/dist/print.js +136 -18
  48. package/dist/print.js.map +1 -1
  49. package/dist/render.d.ts.map +1 -1
  50. package/dist/render.js +33 -6
  51. package/dist/render.js.map +1 -1
  52. package/dist/schema.d.ts +8 -3
  53. package/dist/schema.d.ts.map +1 -1
  54. package/dist/schema.js +11 -13
  55. package/dist/schema.js.map +1 -1
  56. package/dist/testing.d.ts +18 -0
  57. package/dist/testing.d.ts.map +1 -0
  58. package/dist/testing.js +72 -0
  59. package/dist/testing.js.map +1 -0
  60. package/package.json +9 -3
  61. package/dist/ast.d.ts +0 -115
  62. package/dist/ast.d.ts.map +0 -1
  63. package/dist/ast.js +0 -253
  64. package/dist/ast.js.map +0 -1
  65. package/dist/grammar.d.ts +0 -8
  66. package/dist/grammar.d.ts.map +0 -1
  67. package/dist/grammar.js +0 -8
  68. package/dist/grammar.js.map +0 -1
  69. package/dist/recovery.d.ts +0 -10
  70. package/dist/recovery.d.ts.map +0 -1
  71. package/dist/recovery.js +0 -296
  72. package/dist/recovery.js.map +0 -1
package/dist/errors.d.ts CHANGED
@@ -1,5 +1,6 @@
1
1
  import { Schema } from "effect";
2
2
  import type { Value } from "./core.ts";
3
+ export declare const describeExpected: (expected: ReadonlyArray<string>) => string;
3
4
  declare const ParseError_base: Schema.Class<ParseError, Schema.TaggedStruct<"ParseError", {
4
5
  readonly pos: Schema.Finite;
5
6
  readonly line: Schema.Finite;
@@ -33,11 +34,21 @@ export type PrintIssue = {
33
34
  readonly _tag: "NoAlternative";
34
35
  readonly actual: Value;
35
36
  readonly issues: ReadonlyArray<PrintIssue>;
37
+ } | {
38
+ readonly _tag: "RoundTrip";
39
+ readonly value: Value;
40
+ readonly printed: string;
41
+ readonly parsed?: Value | undefined;
42
+ readonly error?: string | undefined;
36
43
  } | {
37
44
  readonly _tag: "AtPath";
38
45
  readonly path: string | number;
39
46
  readonly issue: PrintIssue;
40
47
  };
48
+ /** The tail of a round-trip message: what the value printed as and how that read back. */
49
+ export declare const describeRoundTrip: (issue: Extract<PrintIssue, {
50
+ _tag: "RoundTrip";
51
+ }>) => string;
41
52
  declare const PrintError_base: Schema.Class<PrintError, Schema.TaggedStruct<"PrintError", {
42
53
  readonly issue: Schema.Unknown;
43
54
  }>, import("effect/Cause").YieldableError>;
@@ -46,6 +57,7 @@ export declare class PrintError extends PrintError_base {
46
57
  get message(): string;
47
58
  static format(error: PrintError | PrintIssue): string;
48
59
  }
60
+ export declare const hex: (bytes: Uint8Array) => string;
49
61
  export declare const preview: <T>(value: T) => string;
50
62
  export declare const exceptionMessage: (error: Value) => string;
51
63
  export {};
@@ -1 +1 @@
1
- {"version":3,"file":"errors.d.ts","sourceRoot":"","sources":["../src/errors.ts"],"names":[],"mappings":"AAAA,OAAO,EAAa,MAAM,EAAE,MAAM,QAAQ,CAAA;AAE1C,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,WAAW,CAAA;;;;;;;;AAEtC,qBAAa,UAAW,SAAQ,eAM9B;IACA,IAAa,OAAO,IAAI,MAAM,CAK7B;CACF;AAED,MAAM,MAAM,UAAU,GAClB;IACE,QAAQ,CAAC,IAAI,EAAE,cAAc,CAAA;IAC7B,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAA;IACzB,QAAQ,CAAC,MAAM,EAAE,KAAK,CAAA;CACvB,GACD;IACE,QAAQ,CAAC,IAAI,EAAE,kBAAkB,CAAA;IACjC,QAAQ,CAAC,QAAQ,EAAE,KAAK,CAAA;IACxB,QAAQ,CAAC,MAAM,EAAE,KAAK,CAAA;CACvB,GACD;IACE,QAAQ,CAAC,IAAI,EAAE,cAAc,CAAA;IAC7B,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAA;CACvB,GACD;IACE,QAAQ,CAAC,IAAI,EAAE,gBAAgB,CAAA;IAC/B,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAA;CACzB,GACD;IACE,QAAQ,CAAC,IAAI,EAAE,cAAc,CAAA;IAC7B,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAA;IACzB,QAAQ,CAAC,MAAM,EAAE,KAAK,CAAA;IACtB,QAAQ,CAAC,MAAM,CAAC,EAAE,MAAM,GAAG,SAAS,CAAA;CACrC,GACD;IACE,QAAQ,CAAC,IAAI,EAAE,eAAe,CAAA;IAC9B,QAAQ,CAAC,MAAM,EAAE,KAAK,CAAA;IACtB,QAAQ,CAAC,MAAM,EAAE,aAAa,CAAC,UAAU,CAAC,CAAA;CAC3C,GACD;IACE,QAAQ,CAAC,IAAI,EAAE,QAAQ,CAAA;IACvB,QAAQ,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAAA;IAC9B,QAAQ,CAAC,KAAK,EAAE,UAAU,CAAA;CAC3B,CAAA;;;;AA+BL,qBAAa,UAAW,SAAQ,eAE9B;IACA,SAAiB,KAAK,EAAE,UAAU,CAAA;IAElC,IAAa,OAAO,IAAI,MAAM,CAE7B;IAED,MAAM,CAAC,MAAM,CAAC,KAAK,EAAE,UAAU,GAAG,UAAU,GAAG,MAAM,CAEpD;CACF;AAED,eAAO,MAAM,OAAO,GAAI,CAAC,SAAS,CAAC,KAAG,MAMrC,CAAA;AAED,eAAO,MAAM,gBAAgB,UAAW,KAAK,KAAG,MACW,CAAA"}
1
+ {"version":3,"file":"errors.d.ts","sourceRoot":"","sources":["../src/errors.ts"],"names":[],"mappings":"AAAA,OAAO,EAAa,MAAM,EAAE,MAAM,QAAQ,CAAA;AAE1C,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,WAAW,CAAA;AAEtC,eAAO,MAAM,gBAAgB,aAAc,aAAa,CAAC,MAAM,CAAC,KAAG,MACK,CAAA;;;;;;;;AAExE,qBAAa,UAAW,SAAQ,eAM9B;IACA,IAAa,OAAO,IAAI,MAAM,CAG7B;CACF;AAED,MAAM,MAAM,UAAU,GAClB;IACE,QAAQ,CAAC,IAAI,EAAE,cAAc,CAAA;IAC7B,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAA;IACzB,QAAQ,CAAC,MAAM,EAAE,KAAK,CAAA;CACvB,GACD;IACE,QAAQ,CAAC,IAAI,EAAE,kBAAkB,CAAA;IACjC,QAAQ,CAAC,QAAQ,EAAE,KAAK,CAAA;IACxB,QAAQ,CAAC,MAAM,EAAE,KAAK,CAAA;CACvB,GACD;IACE,QAAQ,CAAC,IAAI,EAAE,cAAc,CAAA;IAC7B,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAA;CACvB,GACD;IACE,QAAQ,CAAC,IAAI,EAAE,gBAAgB,CAAA;IAC/B,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAA;CACzB,GACD;IACE,QAAQ,CAAC,IAAI,EAAE,cAAc,CAAA;IAC7B,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAA;IACzB,QAAQ,CAAC,MAAM,EAAE,KAAK,CAAA;IACtB,QAAQ,CAAC,MAAM,CAAC,EAAE,MAAM,GAAG,SAAS,CAAA;CACrC,GACD;IACE,QAAQ,CAAC,IAAI,EAAE,eAAe,CAAA;IAC9B,QAAQ,CAAC,MAAM,EAAE,KAAK,CAAA;IACtB,QAAQ,CAAC,MAAM,EAAE,aAAa,CAAC,UAAU,CAAC,CAAA;CAC3C,GACD;IACE,QAAQ,CAAC,IAAI,EAAE,WAAW,CAAA;IAC1B,QAAQ,CAAC,KAAK,EAAE,KAAK,CAAA;IACrB,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAA;IACxB,QAAQ,CAAC,MAAM,CAAC,EAAE,KAAK,GAAG,SAAS,CAAA;IACnC,QAAQ,CAAC,KAAK,CAAC,EAAE,MAAM,GAAG,SAAS,CAAA;CACpC,GACD;IACE,QAAQ,CAAC,IAAI,EAAE,QAAQ,CAAA;IACvB,QAAQ,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAAA;IAC9B,QAAQ,CAAC,KAAK,EAAE,UAAU,CAAA;CAC3B,CAAA;AAiCL,0FAA0F;AAC1F,eAAO,MAAM,iBAAiB,UAAW,OAAO,CAAC,UAAU,EAAE;IAAE,IAAI,EAAE,WAAW,CAAA;CAAE,CAAC,KAAG,MAGO,CAAA;;;;AAE7F,qBAAa,UAAW,SAAQ,eAE9B;IACA,SAAiB,KAAK,EAAE,UAAU,CAAA;IAElC,IAAa,OAAO,IAAI,MAAM,CAE7B;IAED,MAAM,CAAC,MAAM,CAAC,KAAK,EAAE,UAAU,GAAG,UAAU,GAAG,MAAM,CAEpD;CACF;AAED,eAAO,MAAM,GAAG,UAAW,UAAU,KAAG,MACmC,CAAA;AAwB3E,eAAO,MAAM,OAAO,GAAI,CAAC,SAAS,CAAC,KAAG,MAUrC,CAAA;AAED,eAAO,MAAM,gBAAgB,UAAW,KAAK,KAAG,MACW,CAAA"}
package/dist/errors.js CHANGED
@@ -1,4 +1,5 @@
1
1
  import { Predicate, Schema } from "effect";
2
+ export const describeExpected = (expected) => expected.length === 1 ? expected[0] : `one of ${expected.join(", ")}`;
2
3
  export class ParseError extends Schema.TaggedError()("ParseError", {
3
4
  pos: Schema.Finite,
4
5
  line: Schema.Finite,
@@ -8,8 +9,7 @@ export class ParseError extends Schema.TaggedError()("ParseError", {
8
9
  }) {
9
10
  get message() {
10
11
  const found = this.found === undefined ? "end of input" : JSON.stringify(this.found);
11
- const expected = this.expected.length === 1 ? this.expected[0] : `one of ${this.expected.join(", ")}`;
12
- return `line ${this.line}, column ${this.column}: expected ${expected}, found ${found}`;
12
+ return `line ${this.line}, column ${this.column}: expected ${describeExpected(this.expected)}, found ${found}`;
13
13
  }
14
14
  }
15
15
  const pathText = (path) => path.map((part) => (Predicate.isNumber(part) ? `[${part}]` : `.${part}`)).join("");
@@ -36,8 +36,14 @@ const formatAt = (issue, path) => {
36
36
  return `${prefix}no choice branch accepts ${preview(issue.actual)}:\n ${issue.issues
37
37
  .map((child) => formatAt(child, []))
38
38
  .join("\n ")}`;
39
+ case "RoundTrip":
40
+ return `${prefix}${preview(issue.value)} ${describeRoundTrip(issue)}`;
39
41
  }
40
42
  };
43
+ /** The tail of a round-trip message: what the value printed as and how that read back. */
44
+ export const describeRoundTrip = (issue) => issue.error === undefined
45
+ ? `prints as ${JSON.stringify(issue.printed)}, which reads back as ${preview(issue.parsed)}`
46
+ : `prints as ${JSON.stringify(issue.printed)}, which does not parse back: ${issue.error}`;
41
47
  export class PrintError extends Schema.TaggedError()("PrintError", {
42
48
  issue: Schema.Unknown,
43
49
  }) {
@@ -48,12 +54,42 @@ export class PrintError extends Schema.TaggedError()("PrintError", {
48
54
  return formatAt(error._tag === "PrintError" ? error.issue : error, []);
49
55
  }
50
56
  }
57
+ export const hex = (bytes) => Array.from(bytes, (byte) => byte.toString(16).padStart(2, "0")).join(" ");
58
+ /**
59
+ * `JSON.stringify`, except that bytes show as `<07 ab>` and a bigint as `5n`,
60
+ * unquoted so neither reads as a string. A replacer cannot do this: its result
61
+ * is quoted, and `toJSON` turns a `Buffer` into an object before it runs.
62
+ */
63
+ const show = (value, seen) => {
64
+ if (Predicate.isBigInt(value))
65
+ return `${value}n`;
66
+ if (Predicate.isUint8Array(value))
67
+ return `<${hex(value)}>`;
68
+ if (seen.includes(value))
69
+ throw new TypeError("circular value");
70
+ if (Array.isArray(value)) {
71
+ return `[${Array.from(value, (item) => show(item, [...seen, value]) ?? "null").join(",")}]`;
72
+ }
73
+ if (!Predicate.isObject(value) || Predicate.isFunction(value["toJSON"])) {
74
+ return JSON.stringify(value);
75
+ }
76
+ const fields = Object.entries(value).flatMap(([key, field]) => {
77
+ const text = show(field, [...seen, value]);
78
+ return text === undefined ? [] : [`${JSON.stringify(key)}:${text}`];
79
+ });
80
+ return `{${fields.join(",")}}`;
81
+ };
51
82
  export const preview = (value) => {
52
83
  try {
53
- return JSON.stringify(value) ?? String(value);
84
+ return show(value, []) ?? String(value);
54
85
  }
55
86
  catch {
56
- return String(value);
87
+ try {
88
+ return String(value);
89
+ }
90
+ catch {
91
+ return "<unprintable value>";
92
+ }
57
93
  }
58
94
  };
59
95
  export const exceptionMessage = (error) => Predicate.isError(error) ? error.message : preview(error);
@@ -1 +1 @@
1
- {"version":3,"file":"errors.js","sourceRoot":"","sources":["../src/errors.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"errors.js","sourceRoot":"","sources":["../src/errors.ts"],"names":[],"mappings":"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"}
package/dist/gen.d.ts.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"gen.d.ts","sourceRoot":"","sources":["../src/gen.ts"],"names":[],"mappings":"AAEA,OAAO,EAEL,KAAK,MAAM,EACX,KAAK,IAAI,EACT,KAAK,OAAO,EACZ,KAAK,eAAe,EAMpB,KAAK,GAAG,EACR,KAAK,OAAO,EAGZ,KAAK,MAAM,EAGZ,MAAM,WAAW,CAAA;AAGlB,MAAM,MAAM,UAAU,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,SAAS,CAAC,IAAI,CAAC,GAAG,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAA;AAuD5E,eAAO,MAAM,aAAa,QAAS,OAAO,CAAC,OAAO,CAAC,SAAS,MAAM,KAAG,IAQpE,CAAA;AAED,eAAO,MAAM,GAAG,GAAI,CAAC,EAAE,CAAC,SAAS,MAAM,CAAC,OAAO,GAAG,CAAC,CAAC,CAAC,OAAO,CAAC,KAAG,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAQvE,CAAA;AAuHD,eAAO,MAAM,GAAG,GAAI,CAAC,OAAO,MAAM,SAAS,CAAC,eAAe,EAAE,CAAC,EAAE,OAAO,CAAC,KAAG,UAAU,CAAC,CAAC,CAoCtF,CAAA;AAED,eAAO,MAAM,GAAG,aAAc,aAAa,CAAC,MAAM,CAAC,KAAG,MAGlD,CAAA"}
1
+ {"version":3,"file":"gen.d.ts","sourceRoot":"","sources":["../src/gen.ts"],"names":[],"mappings":"AAEA,OAAO,EAEL,KAAK,MAAM,EACX,KAAK,IAAI,EACT,KAAK,OAAO,EACZ,KAAK,eAAe,EAMpB,KAAK,GAAG,EACR,KAAK,OAAO,EAGZ,KAAK,MAAM,EAGZ,MAAM,WAAW,CAAA;AAGlB,MAAM,MAAM,UAAU,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,SAAS,CAAC,IAAI,CAAC,GAAG,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAA;AAiE5E,eAAO,MAAM,aAAa,QAAS,OAAO,CAAC,OAAO,CAAC,SAAS,MAAM,KAAG,IACzC,CAAA;AAE5B,eAAO,MAAM,GAAG,GAAI,CAAC,EAAE,CAAC,SAAS,MAAM,CAAC,OAAO,GAAG,CAAC,CAAC,CAAC,OAAO,CAAC,KAAG,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAGvE,CAAA;AAuHD,eAAO,MAAM,GAAG,GAAI,CAAC,OAAO,MAAM,SAAS,CAAC,eAAe,EAAE,CAAC,EAAE,OAAO,CAAC,KAAG,UAAU,CAAC,CAAC,CAoCtF,CAAA;AAED,eAAO,MAAM,GAAG,aAAc,aAAa,CAAC,MAAM,CAAC,KAAG,MAGlD,CAAA"}
package/dist/gen.js CHANGED
@@ -38,19 +38,17 @@ const refFor = (expr, scope) => {
38
38
  return ref;
39
39
  };
40
40
  const isRef = (value) => Predicate.isObject(value) && refs.has(value);
41
- export const assertInScope = (ref, where) => {
41
+ const openEntry = (ref, where) => {
42
42
  const entry = entryOf(ref);
43
43
  if (!entry.scope.open) {
44
44
  throw new Error(`${where}: this ref is out of scope; a ref can only be used inside the gen that bound it, while that gen is being built`);
45
45
  }
46
- return entry.expr;
46
+ return entry;
47
47
  };
48
+ export const assertInScope = (ref, where) => openEntry(ref, where).expr;
48
49
  export const get = (ref, key) => {
49
- const entry = entryOf(ref);
50
- if (!entry.scope.open) {
51
- throw new Error("get: this ref is out of scope; a ref can only be used inside the gen that bound it, while that gen is being built");
52
- }
53
- return refFor({ _tag: "Prop", object: entry.expr, key }, entry.scope);
50
+ const { expr, scope } = openEntry(ref, "get");
51
+ return refFor({ _tag: "Prop", object: expr, key }, scope);
54
52
  };
55
53
  const isPlainObject = (value) => {
56
54
  const proto = Object.getPrototypeOf(value);
package/dist/gen.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"gen.js","sourceRoot":"","sources":["../src/gen.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"gen.js","sourceRoot":"","sources":["../src/gen.ts"],"names":[],"mappings":"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"}
package/dist/index.d.ts CHANGED
@@ -1,8 +1,9 @@
1
+ export { auditFidelity, prepare, type Prepared, type FidelityEntry, validate } from "./compile.ts";
2
+ export type { Fidelity, Grammar, GrammarIssue, Ref, Silent, Type } from "./core.ts";
1
3
  export { ParseError, PrintError, type PrintIssue } from "./errors.ts";
2
- export type { Grammar, GrammarIssue, Ref, Silent, Type } from "./core.ts";
3
- export { as, between, choice, decodeTo, type DecodeToOptions, defaulted, empty, flag, gen, type GenGrammar, get, integer, label, lexeme, literal, many, match, matchValue, optional, prefix, regex, repeat, type RepeatOptions, sepBy, seq, skip, space, spaces, struct, suffix, suspend, symbol, taggedChoice, take, transform, transformOrFail, type TransformOptions, type TransformOrFailOptions, trivia, tuple, wrap, } from "./combinators.ts";
4
+ export { as, between, checkedChoice, choice, choiceOn, choiceOnEntries, countPrefixed, decodeTo, type DecodeToOptions, defaulted, empty, filter, flag, gen, type GenGrammar, get, integer, iso, label, lengthPrefixed, lexeme, literal, literals, many, match, matchValue, merge, optional, partialIso, prefix, regex, repeat, type RepeatOptions, sepBy, seq, skip, space, spaces, struct, suffix, suspend, symbol, taggedChoice, take, transform, transformOrFail, type TransformOptions, type TransformOrFailOptions, trivia, tuple, } from "./combinators.ts";
4
5
  export { parse } from "./parse.ts";
5
- export { print } from "./print.ts";
6
+ export { print, printChecked } from "./print.ts";
6
7
  export { describe, render } from "./render.ts";
7
- export { codec } from "./schema.ts";
8
+ export { type CodecOptions, codec } from "./schema.ts";
8
9
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,UAAU,EAAE,KAAK,UAAU,EAAE,MAAM,aAAa,CAAA;AACrE,YAAY,EAAE,OAAO,EAAE,YAAY,EAAE,GAAG,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,WAAW,CAAA;AACzE,OAAO,EACL,EAAE,EACF,OAAO,EACP,MAAM,EACN,QAAQ,EACR,KAAK,eAAe,EACpB,SAAS,EACT,KAAK,EACL,IAAI,EACJ,GAAG,EACH,KAAK,UAAU,EACf,GAAG,EACH,OAAO,EACP,KAAK,EACL,MAAM,EACN,OAAO,EACP,IAAI,EACJ,KAAK,EACL,UAAU,EACV,QAAQ,EACR,MAAM,EACN,KAAK,EACL,MAAM,EACN,KAAK,aAAa,EAClB,KAAK,EACL,GAAG,EACH,IAAI,EACJ,KAAK,EACL,MAAM,EACN,MAAM,EACN,MAAM,EACN,OAAO,EACP,MAAM,EACN,YAAY,EACZ,IAAI,EACJ,SAAS,EACT,eAAe,EACf,KAAK,gBAAgB,EACrB,KAAK,sBAAsB,EAC3B,MAAM,EACN,KAAK,EACL,IAAI,GACL,MAAM,kBAAkB,CAAA;AACzB,OAAO,EAAE,KAAK,EAAE,MAAM,YAAY,CAAA;AAClC,OAAO,EAAE,KAAK,EAAE,MAAM,YAAY,CAAA;AAClC,OAAO,EAAE,QAAQ,EAAE,MAAM,EAAE,MAAM,aAAa,CAAA;AAC9C,OAAO,EAAE,KAAK,EAAE,MAAM,aAAa,CAAA"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,OAAO,EAAE,KAAK,QAAQ,EAAE,KAAK,aAAa,EAAE,QAAQ,EAAE,MAAM,cAAc,CAAA;AAClG,YAAY,EAAE,QAAQ,EAAE,OAAO,EAAE,YAAY,EAAE,GAAG,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,WAAW,CAAA;AACnF,OAAO,EAAE,UAAU,EAAE,UAAU,EAAE,KAAK,UAAU,EAAE,MAAM,aAAa,CAAA;AACrE,OAAO,EACL,EAAE,EACF,OAAO,EACP,aAAa,EACb,MAAM,EACN,QAAQ,EACR,eAAe,EACf,aAAa,EACb,QAAQ,EACR,KAAK,eAAe,EACpB,SAAS,EACT,KAAK,EACL,MAAM,EACN,IAAI,EACJ,GAAG,EACH,KAAK,UAAU,EACf,GAAG,EACH,OAAO,EACP,GAAG,EACH,KAAK,EACL,cAAc,EACd,MAAM,EACN,OAAO,EACP,QAAQ,EACR,IAAI,EACJ,KAAK,EACL,UAAU,EACV,KAAK,EACL,QAAQ,EACR,UAAU,EACV,MAAM,EACN,KAAK,EACL,MAAM,EACN,KAAK,aAAa,EAClB,KAAK,EACL,GAAG,EACH,IAAI,EACJ,KAAK,EACL,MAAM,EACN,MAAM,EACN,MAAM,EACN,OAAO,EACP,MAAM,EACN,YAAY,EACZ,IAAI,EACJ,SAAS,EACT,eAAe,EACf,KAAK,gBAAgB,EACrB,KAAK,sBAAsB,EAC3B,MAAM,EACN,KAAK,GACN,MAAM,kBAAkB,CAAA;AACzB,OAAO,EAAE,KAAK,EAAE,MAAM,YAAY,CAAA;AAClC,OAAO,EAAE,KAAK,EAAE,YAAY,EAAE,MAAM,YAAY,CAAA;AAChD,OAAO,EAAE,QAAQ,EAAE,MAAM,EAAE,MAAM,aAAa,CAAA;AAC9C,OAAO,EAAE,KAAK,YAAY,EAAE,KAAK,EAAE,MAAM,aAAa,CAAA"}
package/dist/index.js CHANGED
@@ -1,7 +1,8 @@
1
+ export { auditFidelity, prepare, validate } from "./compile.js";
1
2
  export { ParseError, PrintError } from "./errors.js";
2
- export { as, between, choice, decodeTo, defaulted, empty, flag, gen, get, integer, label, lexeme, literal, many, match, matchValue, optional, prefix, regex, repeat, sepBy, seq, skip, space, spaces, struct, suffix, suspend, symbol, taggedChoice, take, transform, transformOrFail, trivia, tuple, wrap, } from "./combinators.js";
3
+ export { as, between, checkedChoice, choice, choiceOn, choiceOnEntries, countPrefixed, decodeTo, defaulted, empty, filter, flag, gen, get, integer, iso, label, lengthPrefixed, lexeme, literal, literals, many, match, matchValue, merge, optional, partialIso, prefix, regex, repeat, sepBy, seq, skip, space, spaces, struct, suffix, suspend, symbol, taggedChoice, take, transform, transformOrFail, trivia, tuple, } from "./combinators.js";
3
4
  export { parse } from "./parse.js";
4
- export { print } from "./print.js";
5
+ export { print, printChecked } from "./print.js";
5
6
  export { describe, render } from "./render.js";
6
7
  export { codec } from "./schema.js";
7
8
  //# sourceMappingURL=index.js.map
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,UAAU,EAAmB,MAAM,aAAa,CAAA;AAErE,OAAO,EACL,EAAE,EACF,OAAO,EACP,MAAM,EACN,QAAQ,EAER,SAAS,EACT,KAAK,EACL,IAAI,EACJ,GAAG,EAEH,GAAG,EACH,OAAO,EACP,KAAK,EACL,MAAM,EACN,OAAO,EACP,IAAI,EACJ,KAAK,EACL,UAAU,EACV,QAAQ,EACR,MAAM,EACN,KAAK,EACL,MAAM,EAEN,KAAK,EACL,GAAG,EACH,IAAI,EACJ,KAAK,EACL,MAAM,EACN,MAAM,EACN,MAAM,EACN,OAAO,EACP,MAAM,EACN,YAAY,EACZ,IAAI,EACJ,SAAS,EACT,eAAe,EAGf,MAAM,EACN,KAAK,EACL,IAAI,GACL,MAAM,kBAAkB,CAAA;AACzB,OAAO,EAAE,KAAK,EAAE,MAAM,YAAY,CAAA;AAClC,OAAO,EAAE,KAAK,EAAE,MAAM,YAAY,CAAA;AAClC,OAAO,EAAE,QAAQ,EAAE,MAAM,EAAE,MAAM,aAAa,CAAA;AAC9C,OAAO,EAAE,KAAK,EAAE,MAAM,aAAa,CAAA"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,OAAO,EAAqC,QAAQ,EAAE,MAAM,cAAc,CAAA;AAElG,OAAO,EAAE,UAAU,EAAE,UAAU,EAAmB,MAAM,aAAa,CAAA;AACrE,OAAO,EACL,EAAE,EACF,OAAO,EACP,aAAa,EACb,MAAM,EACN,QAAQ,EACR,eAAe,EACf,aAAa,EACb,QAAQ,EAER,SAAS,EACT,KAAK,EACL,MAAM,EACN,IAAI,EACJ,GAAG,EAEH,GAAG,EACH,OAAO,EACP,GAAG,EACH,KAAK,EACL,cAAc,EACd,MAAM,EACN,OAAO,EACP,QAAQ,EACR,IAAI,EACJ,KAAK,EACL,UAAU,EACV,KAAK,EACL,QAAQ,EACR,UAAU,EACV,MAAM,EACN,KAAK,EACL,MAAM,EAEN,KAAK,EACL,GAAG,EACH,IAAI,EACJ,KAAK,EACL,MAAM,EACN,MAAM,EACN,MAAM,EACN,OAAO,EACP,MAAM,EACN,YAAY,EACZ,IAAI,EACJ,SAAS,EACT,eAAe,EAGf,MAAM,EACN,KAAK,GACN,MAAM,kBAAkB,CAAA;AACzB,OAAO,EAAE,KAAK,EAAE,MAAM,YAAY,CAAA;AAClC,OAAO,EAAE,KAAK,EAAE,YAAY,EAAE,MAAM,YAAY,CAAA;AAChD,OAAO,EAAE,QAAQ,EAAE,MAAM,EAAE,MAAM,aAAa,CAAA;AAC9C,OAAO,EAAqB,KAAK,EAAE,MAAM,aAAa,CAAA"}
package/dist/parse.d.ts CHANGED
@@ -1,5 +1,14 @@
1
1
  import { Result } from "effect";
2
- import { type Grammar } from "./core.ts";
2
+ import { type Grammar, type GrammarInternal, type Value } from "./core.ts";
3
+ import { type Frame } from "./env.ts";
3
4
  import { ParseError } from "./errors.ts";
5
+ export declare const reparse: (grammar: GrammarInternal, text: string, env: Frame | undefined) => {
6
+ readonly ok: true;
7
+ readonly value: Value;
8
+ } | {
9
+ readonly ok: false;
10
+ readonly error: ParseError;
11
+ };
12
+ /** Interpret a grammar from cursor zero and require the whole input to be consumed. */
4
13
  export declare const parse: <A>(grammar: Grammar<A>, input: string) => Result.Result<A, ParseError>;
5
14
  //# sourceMappingURL=parse.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"parse.d.ts","sourceRoot":"","sources":["../src/parse.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAA;AAE/B,OAAO,EACL,KAAK,OAAO,EAMb,MAAM,WAAW,CAAA;AAElB,OAAO,EAAoB,UAAU,EAAW,MAAM,aAAa,CAAA;AA8KnE,eAAO,MAAM,KAAK,GAAI,CAAC,WAAW,OAAO,CAAC,CAAC,CAAC,SAAS,MAAM,KAAG,MAAM,CAAC,MAAM,CAAC,CAAC,EAAE,UAAU,CASxF,CAAA"}
1
+ {"version":3,"file":"parse.d.ts","sourceRoot":"","sources":["../src/parse.ts"],"names":[],"mappings":"AAAA,OAAO,EAAa,MAAM,EAAE,MAAM,QAAQ,CAAA;AAE1C,OAAO,EACL,KAAK,OAAO,EACZ,KAAK,eAAe,EAKpB,KAAK,KAAK,EACX,MAAM,WAAW,CAAA;AAClB,OAAO,EAKL,KAAK,KAAK,EAMX,MAAM,UAAU,CAAA;AACjB,OAAO,EAAoB,UAAU,EAAW,MAAM,aAAa,CAAA;AA+NnE,eAAO,MAAM,OAAO,YACT,eAAe,QAClB,MAAM,OACP,KAAK,GAAG,SAAS,KAEpB;IAAE,QAAQ,CAAC,EAAE,EAAE,IAAI,CAAC;IAAC,QAAQ,CAAC,KAAK,EAAE,KAAK,CAAA;CAAE,GAC5C;IAAE,QAAQ,CAAC,EAAE,EAAE,KAAK,CAAC;IAAC,QAAQ,CAAC,KAAK,EAAE,UAAU,CAAA;CAYnD,CAAA;AAED,uFAAuF;AACvF,eAAO,MAAM,KAAK,GAAI,CAAC,WAAW,OAAO,CAAC,CAAC,CAAC,SAAS,MAAM,KAAG,MAAM,CAAC,MAAM,CAAC,CAAC,EAAE,UAAU,CASxF,CAAA"}
package/dist/parse.js CHANGED
@@ -1,19 +1,20 @@
1
- import { Result } from "effect";
1
+ import { Predicate, Result } from "effect";
2
2
  import { nodeOf, resolve, unsafeToNever, } from "./core.js";
3
- import { bind, caseFor, evaluate, frame, isCount, materialize, Unbound } from "./env.js";
3
+ import { bind, caseFor, copyFields, evaluate, frame, isCount, materialize, nonByte, Unbound, } from "./env.js";
4
4
  import { exceptionMessage, ParseError, preview } from "./errors.js";
5
5
  import { describe } from "./render.js";
6
6
  const Fail = Symbol("effect-grammar/ParseFail");
7
- const failAt = (state, expected) => {
8
- if (state.pos > state.furthest) {
9
- state.furthest = state.pos;
7
+ const failAtPosition = (state, position, expected) => {
8
+ if (position > state.furthest) {
9
+ state.furthest = position;
10
10
  state.expected = new Set([expected]);
11
11
  }
12
- else if (state.pos === state.furthest) {
12
+ else if (position === state.furthest) {
13
13
  state.expected.add(expected);
14
14
  }
15
15
  return Fail;
16
16
  };
17
+ const failAt = (state, expected) => failAtPosition(state, state.pos, expected);
17
18
  const go = (grammar, state, env) => {
18
19
  const node = nodeOf(grammar);
19
20
  switch (node._tag) {
@@ -28,12 +29,13 @@ const go = (grammar, state, env) => {
28
29
  while (current < end && state.input[current] === node.value[current - state.pos])
29
30
  current++;
30
31
  state.pos = current;
31
- return failAt(state, JSON.stringify(node.value));
32
+ return failAt(state, node.name ?? JSON.stringify(node.value));
32
33
  }
33
34
  case "Regex": {
34
- node.re.lastIndex = state.pos;
35
- const match = node.re.exec(state.input);
36
- if (match === null)
35
+ const expression = new RegExp(node.source, `${node.flags}y`);
36
+ expression.lastIndex = state.pos;
37
+ const match = expression.exec(state.input);
38
+ if (match === null || match.index !== state.pos)
37
39
  return failAt(state, node.name);
38
40
  state.pos += match[0].length;
39
41
  return match[0];
@@ -98,21 +100,22 @@ const go = (grammar, state, env) => {
98
100
  const value = go(node.inner, state, env);
99
101
  if (value === Fail)
100
102
  return Fail;
103
+ const consumed = state.pos;
101
104
  try {
102
105
  const decoded = node.decode(unsafeToNever(value));
103
106
  if (Result.isFailure(decoded)) {
104
107
  state.pos = start;
105
- return failAt(state, decoded.failure.message);
108
+ return failAtPosition(state, consumed, decoded.failure.message);
106
109
  }
107
110
  if (node.is?.(unsafeToNever(decoded.success)) === false) {
108
111
  state.pos = start;
109
- return failAt(state, node.name ?? describe(node.inner));
112
+ return failAtPosition(state, consumed, node.name ?? describe(node.inner));
110
113
  }
111
114
  return decoded.success;
112
115
  }
113
116
  catch (error) {
114
117
  state.pos = start;
115
- return failAt(state, `${node.name ?? describe(node.inner)}: ${exceptionMessage(error)}`);
118
+ return failAtPosition(state, consumed, `${node.name ?? describe(node.inner)}: ${exceptionMessage(error)}`);
116
119
  }
117
120
  }
118
121
  case "Skip":
@@ -126,8 +129,29 @@ const go = (grammar, state, env) => {
126
129
  }
127
130
  return value;
128
131
  }
129
- case "Suspend":
130
- return go(resolve(node), state, env);
132
+ case "Suspend": {
133
+ const positions = state.suspended.get(node) ?? new Set();
134
+ if (positions.has(state.pos))
135
+ return failAt(state, "a non-left-recursive grammar");
136
+ state.suspended.set(node, positions);
137
+ const position = state.pos;
138
+ positions.add(position);
139
+ let target;
140
+ try {
141
+ target = resolve(node);
142
+ }
143
+ catch (error) {
144
+ return failAt(state, exceptionMessage(error));
145
+ }
146
+ try {
147
+ return go(target, state, env);
148
+ }
149
+ finally {
150
+ positions.delete(position);
151
+ if (positions.size === 0)
152
+ state.suspended.delete(node);
153
+ }
154
+ }
131
155
  case "Match": {
132
156
  const key = evaluate(node.scrutinee, env);
133
157
  if (key === Unbound)
@@ -142,11 +166,20 @@ const go = (grammar, state, env) => {
142
166
  if (count === Unbound)
143
167
  return failAt(state, "a bound take count");
144
168
  if (!isCount(count))
145
- return failAt(state, `<char>{${preview(count)}}`);
146
- if (state.input.length - state.pos < count) {
147
- return failAt(state, `${count} chars`);
169
+ return failAt(state, `<${node.unit}>{${preview(count)}}`);
170
+ const available = state.input.length - state.pos;
171
+ if (available < count) {
172
+ if (node.unit === "char")
173
+ return failAt(state, `${count} chars`);
174
+ const expected = `${count} bytes but only ${available} remain`;
175
+ return failAtPosition(state, state.input.length, node.name === undefined ? expected : `${node.name}: ${expected}`);
148
176
  }
149
177
  const value = state.input.slice(state.pos, state.pos + count);
178
+ if (node.unit === "byte") {
179
+ const index = value.search(nonByte);
180
+ if (index !== -1)
181
+ return failAtPosition(state, state.pos + index, "a byte");
182
+ }
150
183
  state.pos += count;
151
184
  return value;
152
185
  }
@@ -168,6 +201,19 @@ const go = (grammar, state, env) => {
168
201
  }
169
202
  return values;
170
203
  }
204
+ case "Merge": {
205
+ const merged = {};
206
+ for (const part of node.parts) {
207
+ const start = state.pos;
208
+ const value = go(part.grammar, state, env);
209
+ if (value === Fail)
210
+ return Fail;
211
+ if (!Predicate.isObject(value))
212
+ return failAtPosition(state, start, "an object to merge");
213
+ copyFields(merged, value, part.keys);
214
+ }
215
+ return merged;
216
+ }
171
217
  }
172
218
  };
173
219
  const toError = (state) => {
@@ -181,8 +227,24 @@ const toError = (state) => {
181
227
  found: code === undefined ? undefined : String.fromCodePoint(code),
182
228
  });
183
229
  };
230
+ export const reparse = (grammar, text, env) => {
231
+ const state = {
232
+ input: text,
233
+ pos: 0,
234
+ furthest: 0,
235
+ expected: new Set(),
236
+ suspended: new Map(),
237
+ };
238
+ const value = go(grammar, state, env);
239
+ if (value !== Fail && state.pos === text.length)
240
+ return { ok: true, value };
241
+ if (value !== Fail)
242
+ failAt(state, "end of input");
243
+ return { ok: false, error: toError(state) };
244
+ };
245
+ /** Interpret a grammar from cursor zero and require the whole input to be consumed. */
184
246
  export const parse = (grammar, input) => {
185
- const state = { input, pos: 0, furthest: 0, expected: new Set() };
247
+ const state = { input, pos: 0, furthest: 0, expected: new Set(), suspended: new Map() };
186
248
  const value = go(grammar, state, undefined);
187
249
  if (value !== Fail && state.pos === input.length) {
188
250
  // SAFETY: interpreting Grammar<A> preserves its output type across every node.
package/dist/parse.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"parse.js","sourceRoot":"","sources":["../src/parse.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"parse.js","sourceRoot":"","sources":["../src/parse.ts"],"names":[],"mappings":"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"}
package/dist/pattern.d.ts CHANGED
@@ -1,5 +1,6 @@
1
1
  import type { Pattern, Value } from "./core.ts";
2
2
  import { type Frame } from "./env.ts";
3
- import type { PrintIssue } from "./errors.ts";
3
+ import { type PrintIssue } from "./errors.ts";
4
+ export declare const ownKeys: (value: Readonly<Record<string, Value>>, fields: ReadonlyArray<string>) => Array<string | symbol> | PrintIssue;
4
5
  export declare const unifyPattern: (pattern: Pattern, value: Value, values: Frame) => PrintIssue | undefined;
5
6
  //# sourceMappingURL=pattern.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"pattern.d.ts","sourceRoot":"","sources":["../src/pattern.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,OAAO,EAAE,KAAK,EAAE,MAAM,WAAW,CAAA;AAC/C,OAAO,EAAQ,KAAK,KAAK,EAAE,MAAM,UAAU,CAAA;AAC3C,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,aAAa,CAAA;AAE7C,eAAO,MAAM,YAAY,YACd,OAAO,SACT,KAAK,UACJ,KAAK,KACZ,UAAU,GAAG,SAwCf,CAAA"}
1
+ {"version":3,"file":"pattern.d.ts","sourceRoot":"","sources":["../src/pattern.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,OAAO,EAAE,KAAK,EAAE,MAAM,WAAW,CAAA;AAC/C,OAAO,EAAQ,KAAK,KAAK,EAAE,MAAM,UAAU,CAAA;AAC3C,OAAO,EAAoB,KAAK,UAAU,EAAE,MAAM,aAAa,CAAA;AAE/D,eAAO,MAAM,OAAO,UACX,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC,UAC9B,aAAa,CAAC,MAAM,CAAC,KAC5B,KAAK,CAAC,MAAM,GAAG,MAAM,CAAC,GAAG,UAqB3B,CAAA;AAED,eAAO,MAAM,YAAY,YACd,OAAO,SACT,KAAK,UACJ,KAAK,KACZ,UAAU,GAAG,SA4Df,CAAA"}
package/dist/pattern.js CHANGED
@@ -1,5 +1,30 @@
1
1
  import { Equal, Predicate } from "effect";
2
2
  import { bind } from "./env.js";
3
+ import { exceptionMessage } from "./errors.js";
4
+ export const ownKeys = (value, fields) => {
5
+ let keys;
6
+ try {
7
+ keys = Reflect.ownKeys(value);
8
+ for (const key of keys)
9
+ Object.getOwnPropertyDescriptor(value, key);
10
+ }
11
+ catch (error) {
12
+ return {
13
+ _tag: "InvalidValue",
14
+ expected: `an inspectable object with exactly the fields ${fields.join(", ")}`,
15
+ actual: value,
16
+ detail: `could not inspect own fields: ${exceptionMessage(error)}`,
17
+ };
18
+ }
19
+ return keys.every((key) => Predicate.isString(key) && fields.includes(key))
20
+ ? keys
21
+ : {
22
+ _tag: "InvalidValue",
23
+ expected: `exactly the fields ${fields.join(", ")}`,
24
+ actual: value,
25
+ detail: "unexpected own field",
26
+ };
27
+ };
3
28
  export const unifyPattern = (pattern, value, values) => {
4
29
  switch (pattern._tag) {
5
30
  case "Ref":
@@ -13,11 +38,30 @@ export const unifyPattern = (pattern, value, values) => {
13
38
  if (!Predicate.isObject(value) || Array.isArray(value)) {
14
39
  return { _tag: "TypeMismatch", expected: "an object", actual: value };
15
40
  }
41
+ const keys = ownKeys(value, pattern.fields.map(([key]) => key));
42
+ if (!Array.isArray(keys))
43
+ return keys;
16
44
  for (const [key, field] of pattern.fields) {
17
- if (!Object.hasOwn(value, key)) {
45
+ if (!keys.includes(key)) {
18
46
  return { _tag: "AtPath", path: key, issue: { _tag: "MissingField", field: key } };
19
47
  }
20
- const issue = unifyPattern(field, value[key], values);
48
+ let fieldValue;
49
+ try {
50
+ fieldValue = value[key];
51
+ }
52
+ catch (error) {
53
+ return {
54
+ _tag: "AtPath",
55
+ path: key,
56
+ issue: {
57
+ _tag: "InvalidValue",
58
+ expected: "a readable field",
59
+ actual: value,
60
+ detail: exceptionMessage(error),
61
+ },
62
+ };
63
+ }
64
+ const issue = unifyPattern(field, fieldValue, values);
21
65
  if (issue !== undefined)
22
66
  return { _tag: "AtPath", path: key, issue };
23
67
  }
@@ -1 +1 @@
1
- {"version":3,"file":"pattern.js","sourceRoot":"","sources":["../src/pattern.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,SAAS,EAAE,MAAM,QAAQ,CAAA;AAGzC,OAAO,EAAE,IAAI,EAAc,MAAM,UAAU,CAAA;AAG3C,MAAM,CAAC,MAAM,YAAY,GAAG,CAC1B,OAAgB,EAChB,KAAY,EACZ,MAAa,EACW,EAAE;IAC1B,QAAQ,OAAO,CAAC,IAAI,EAAE,CAAC;QACrB,KAAK,KAAK;YACR,IAAI,CAAC,MAAM,EAAE,OAAO,CAAC,IAAI,EAAE,KAAK,CAAC,CAAA;YACjC,OAAO,SAAS,CAAA;QAClB,KAAK,OAAO;YACV,OAAO,KAAK,CAAC,MAAM,CAAC,KAAK,EAAE,OAAO,CAAC,KAAK,CAAC;gBACvC,CAAC,CAAC,SAAS;gBACX,CAAC,CAAC,EAAE,IAAI,EAAE,kBAAkB,EAAE,QAAQ,EAAE,OAAO,CAAC,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,CAAA;QAC1E,KAAK,QAAQ,EAAE,CAAC;YACd,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,KAAK,CAAC,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC;gBACvD,OAAO,EAAE,IAAI,EAAE,cAAc,EAAE,QAAQ,EAAE,WAAW,EAAE,MAAM,EAAE,KAAK,EAAE,CAAA;YACvE,CAAC;YACD,KAAK,MAAM,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,OAAO,CAAC,MAAM,EAAE,CAAC;gBAC1C,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,KAAK,EAAE,GAAG,CAAC,EAAE,CAAC;oBAC/B,OAAO,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,GAAG,EAAE,KAAK,EAAE,EAAE,IAAI,EAAE,cAAc,EAAE,KAAK,EAAE,GAAG,EAAE,EAAE,CAAA;gBACnF,CAAC;gBACD,MAAM,KAAK,GAAG,YAAY,CAAC,KAAK,EAAE,KAAK,CAAC,GAAG,CAAC,EAAE,MAAM,CAAC,CAAA;gBACrD,IAAI,KAAK,KAAK,SAAS;oBAAE,OAAO,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,GAAG,EAAE,KAAK,EAAE,CAAA;YACtE,CAAC;YACD,OAAO,SAAS,CAAA;QAClB,CAAC;QACD,KAAK,OAAO,EAAE,CAAC;YACb,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC;gBACvB,OAAO,EAAE,IAAI,EAAE,cAAc,EAAE,QAAQ,EAAE,UAAU,EAAE,MAAM,EAAE,KAAK,EAAE,CAAA;YACtE,IAAI,KAAK,CAAC,MAAM,KAAK,OAAO,CAAC,KAAK,CAAC,MAAM,EAAE,CAAC;gBAC1C,OAAO;oBACL,IAAI,EAAE,cAAc;oBACpB,QAAQ,EAAE,GAAG,OAAO,CAAC,KAAK,CAAC,MAAM,QAAQ;oBACzC,MAAM,EAAE,KAAK,CAAC,MAAM;oBACpB,MAAM,EAAE,YAAY,OAAO,CAAC,KAAK,CAAC,MAAM,eAAe,KAAK,CAAC,MAAM,EAAE;iBACtE,CAAA;YACH,CAAC;YACD,KAAK,MAAM,CAAC,KAAK,EAAE,IAAI,CAAC,IAAI,OAAO,CAAC,KAAK,CAAC,OAAO,EAAE,EAAE,CAAC;gBACpD,MAAM,KAAK,GAAG,YAAY,CAAC,IAAI,EAAE,KAAK,CAAC,KAAK,CAAC,EAAE,MAAM,CAAC,CAAA;gBACtD,IAAI,KAAK,KAAK,SAAS;oBAAE,OAAO,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,KAAK,EAAE,KAAK,EAAE,CAAA;YACxE,CAAC;YACD,OAAO,SAAS,CAAA;QAClB,CAAC;IACH,CAAC;AACH,CAAC,CAAA"}
1
+ {"version":3,"file":"pattern.js","sourceRoot":"","sources":["../src/pattern.ts"],"names":[],"mappings":"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"}
package/dist/print.d.ts CHANGED
@@ -2,5 +2,13 @@ import { Result } from "effect";
2
2
  import { type Grammar, type GrammarInternal, type Value } from "./core.ts";
3
3
  import { PrintError } from "./errors.ts";
4
4
  export declare const printUnknown: (grammar: GrammarInternal, value: Value) => Result.Result<string, PrintError>;
5
+ /** Print a value using the grammar's selected branches and configured spellings. This does not verify a round trip; see {@link printCheckedUnknown}. */
5
6
  export declare const print: <A>(grammar: Grammar<A>, value: A) => Result.Result<string, PrintError>;
7
+ export declare const printCheckedUnknown: (grammar: GrammarInternal, value: Value) => Result.Result<string, PrintError>;
8
+ /**
9
+ * Print a value, then parse the whole output back and confirm it equals the
10
+ * original. Fails if the text would decode to a different value, so a checked
11
+ * print never hides a broken round trip.
12
+ */
13
+ export declare const printChecked: <A>(grammar: Grammar<A>, value: A) => Result.Result<string, PrintError>;
6
14
  //# sourceMappingURL=print.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"print.d.ts","sourceRoot":"","sources":["../src/print.ts"],"names":[],"mappings":"AAAA,OAAO,EAAa,MAAM,EAAE,MAAM,QAAQ,CAAA;AAE1C,OAAO,EACL,KAAK,OAAO,EACZ,KAAK,eAAe,EAOpB,KAAK,KAAK,EACX,MAAM,WAAW,CAAA;AAElB,OAAO,EAA6B,UAAU,EAAmB,MAAM,aAAa,CAAA;AAwOpF,eAAO,MAAM,YAAY,YACd,eAAe,SACjB,KAAK,KACX,MAAM,CAAC,MAAM,CAAC,MAAM,EAAE,UAAU,CAKlC,CAAA;AAED,eAAO,MAAM,KAAK,GAAI,CAAC,WAAW,OAAO,CAAC,CAAC,CAAC,SAAS,CAAC,KAAG,MAAM,CAAC,MAAM,CAAC,MAAM,EAAE,UAAU,CAC3D,CAAA"}
1
+ {"version":3,"file":"print.d.ts","sourceRoot":"","sources":["../src/print.ts"],"names":[],"mappings":"AAAA,OAAO,EAAoB,MAAM,EAAE,MAAM,QAAQ,CAAA;AAEjD,OAAO,EACL,KAAK,OAAO,EACZ,KAAK,eAAe,EAOpB,KAAK,KAAK,EACX,MAAM,WAAW,CAAA;AAYlB,OAAO,EAIL,UAAU,EAEX,MAAM,aAAa,CAAA;AA+VpB,eAAO,MAAM,YAAY,YACd,eAAe,SACjB,KAAK,KACX,MAAM,CAAC,MAAM,CAAC,MAAM,EAAE,UAAU,CAKlC,CAAA;AAED,wJAAwJ;AACxJ,eAAO,MAAM,KAAK,GAAI,CAAC,WAAW,OAAO,CAAC,CAAC,CAAC,SAAS,CAAC,KAAG,MAAM,CAAC,MAAM,CAAC,MAAM,EAAE,UAAU,CAC3D,CAAA;AAE9B,eAAO,MAAM,mBAAmB,YACrB,eAAe,SACjB,KAAK,KACX,MAAM,CAAC,MAAM,CAAC,MAAM,EAAE,UAAU,CAKlC,CAAA;AAED;;;;GAIG;AACH,eAAO,MAAM,YAAY,GAAI,CAAC,WAAW,OAAO,CAAC,CAAC,CAAC,SAAS,CAAC,KAAG,MAAM,CAAC,MAAM,CAAC,MAAM,EAAE,UAAU,CAC3D,CAAA"}