@plurnk/plurnk-grammar 0.2.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 (77) hide show
  1. package/bin/plurnk.js +1 -1
  2. package/{schema → dist/schema}/LogEntry.json +1 -1
  3. package/{schema → dist/schema}/Packet.json +15 -2
  4. package/{schema → dist/schema}/Run.json +6 -1
  5. package/{schema → dist/schema}/SchemeRegistration.json +6 -0
  6. package/{schema → dist/schema}/Session.json +1 -1
  7. package/dist/src/AstBuilder.d.ts +19 -0
  8. package/dist/src/AstBuilder.d.ts.map +1 -0
  9. package/{src/AstBuilder.ts → dist/src/AstBuilder.js} +176 -161
  10. package/dist/src/AstBuilder.js.map +1 -0
  11. package/dist/src/PlurnkErrorStrategy.d.ts +10 -0
  12. package/dist/src/PlurnkErrorStrategy.d.ts.map +1 -0
  13. package/{src/PlurnkErrorStrategy.ts → dist/src/PlurnkErrorStrategy.js} +41 -49
  14. package/dist/src/PlurnkErrorStrategy.js.map +1 -0
  15. package/dist/src/PlurnkParseError.d.ts +14 -0
  16. package/dist/src/PlurnkParseError.d.ts.map +1 -0
  17. package/{src/PlurnkParseError.ts → dist/src/PlurnkParseError.js} +6 -9
  18. package/dist/src/PlurnkParseError.js.map +1 -0
  19. package/dist/src/PlurnkParser.d.ts +6 -0
  20. package/dist/src/PlurnkParser.d.ts.map +1 -0
  21. package/{src/PlurnkParser.ts → dist/src/PlurnkParser.js} +32 -40
  22. package/dist/src/PlurnkParser.js.map +1 -0
  23. package/dist/src/RecordingListener.d.ts +9 -0
  24. package/dist/src/RecordingListener.d.ts.map +1 -0
  25. package/dist/src/RecordingListener.js +19 -0
  26. package/dist/src/RecordingListener.js.map +1 -0
  27. package/dist/src/Validator.d.ts +28 -0
  28. package/dist/src/Validator.d.ts.map +1 -0
  29. package/dist/src/Validator.js +86 -0
  30. package/dist/src/Validator.js.map +1 -0
  31. package/dist/src/generated/plurnkLexer.d.ts +88 -0
  32. package/dist/src/generated/plurnkLexer.d.ts.map +1 -0
  33. package/dist/src/generated/plurnkLexer.js +440 -0
  34. package/dist/src/generated/plurnkLexer.js.map +1 -0
  35. package/dist/src/generated/plurnkParser.d.ts +274 -0
  36. package/dist/src/generated/plurnkParser.d.ts.map +1 -0
  37. package/dist/src/generated/plurnkParser.js +1833 -0
  38. package/dist/src/generated/plurnkParser.js.map +1 -0
  39. package/{src/generated/plurnkParserVisitor.ts → dist/src/generated/plurnkParserVisitor.d.ts} +2 -7
  40. package/dist/src/generated/plurnkParserVisitor.d.ts.map +1 -0
  41. package/dist/src/generated/plurnkParserVisitor.js +131 -0
  42. package/dist/src/generated/plurnkParserVisitor.js.map +1 -0
  43. package/dist/src/index.d.ts +10 -0
  44. package/dist/src/index.d.ts.map +1 -0
  45. package/dist/src/index.js +7 -0
  46. package/dist/src/index.js.map +1 -0
  47. package/dist/src/types.d.ts +23 -0
  48. package/dist/src/types.d.ts.map +1 -0
  49. package/dist/src/types.generated.d.ts +465 -0
  50. package/dist/src/types.generated.d.ts.map +1 -0
  51. package/dist/src/types.generated.js +4 -0
  52. package/dist/src/types.generated.js.map +1 -0
  53. package/dist/src/types.js +4 -0
  54. package/dist/src/types.js.map +1 -0
  55. package/package.json +10 -7
  56. package/plurnk.md +1 -1
  57. package/src/RecordingListener.ts +0 -34
  58. package/src/Validator.ts +0 -94
  59. package/src/generated/plurnkLexer.ts +0 -467
  60. package/src/generated/plurnkParser.ts +0 -1891
  61. package/src/index.ts +0 -29
  62. package/src/types.generated.ts +0 -491
  63. package/src/types.ts +0 -30
  64. /package/{schema → dist/schema}/Agent.json +0 -0
  65. /package/{schema → dist/schema}/ChannelContent.json +0 -0
  66. /package/{schema → dist/schema}/Entry.json +0 -0
  67. /package/{schema → dist/schema}/LineMarker.json +0 -0
  68. /package/{schema → dist/schema}/Loop.json +0 -0
  69. /package/{schema → dist/schema}/MatcherBody.json +0 -0
  70. /package/{schema → dist/schema}/Params.json +0 -0
  71. /package/{schema → dist/schema}/ParsedPath.json +0 -0
  72. /package/{schema → dist/schema}/PlurnkStatement.json +0 -0
  73. /package/{schema → dist/schema}/Position.json +0 -0
  74. /package/{schema → dist/schema}/ProviderDeclaration.json +0 -0
  75. /package/{schema → dist/schema}/SendBody.json +0 -0
  76. /package/{schema → dist/schema}/Turn.json +0 -0
  77. /package/{schema → dist/schema}/Visibility.json +0 -0
@@ -0,0 +1 @@
1
+ {"version":3,"file":"AstBuilder.js","sourceRoot":"","sources":["../../src/AstBuilder.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,10 @@
1
+ import { DefaultErrorStrategy, type Parser, type RecognitionException } from "antlr4ng";
2
+ import { plurnkLexer } from "./generated/plurnkLexer.ts";
3
+ export default class PlurnkErrorStrategy extends DefaultErrorStrategy {
4
+ #private;
5
+ static translateLexerMessage(lexer: plurnkLexer, originalMsg: string): string;
6
+ reportError(recognizer: Parser, e: RecognitionException): void;
7
+ reportMissingToken(recognizer: Parser): void;
8
+ reportUnwantedToken(recognizer: Parser): void;
9
+ }
10
+ //# sourceMappingURL=PlurnkErrorStrategy.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"PlurnkErrorStrategy.d.ts","sourceRoot":"","sources":["../../src/PlurnkErrorStrategy.ts"],"names":[],"mappings":"AAAA,OAAO,EACH,oBAAoB,EAIpB,KAAK,MAAM,EACX,KAAK,oBAAoB,EAC5B,MAAM,UAAU,CAAC;AAElB,OAAO,EAAE,WAAW,EAAE,MAAM,4BAA4B,CAAC;AAEzD,MAAM,CAAC,OAAO,OAAO,mBAAoB,SAAQ,oBAAoB;;IAuCjE,MAAM,CAAC,qBAAqB,CAAC,KAAK,EAAE,WAAW,EAAE,WAAW,EAAE,MAAM,GAAG,MAAM;IAoC7D,WAAW,CAAC,UAAU,EAAE,MAAM,EAAE,CAAC,EAAE,oBAAoB,GAAG,IAAI;IAiB9D,kBAAkB,CAAC,UAAU,EAAE,MAAM,GAAG,IAAI;IAiB5C,mBAAmB,CAAC,UAAU,EAAE,MAAM,GAAG,IAAI;CAkBhE"}
@@ -1,18 +1,8 @@
1
- import {
2
- DefaultErrorStrategy,
3
- InputMismatchException,
4
- NoViableAltException,
5
- Token,
6
- type Parser,
7
- type RecognitionException,
8
- } from "antlr4ng";
9
- import { plurnkParser } from "./generated/plurnkParser.ts";
10
- import { plurnkLexer } from "./generated/plurnkLexer.ts";
11
-
1
+ import { DefaultErrorStrategy, InputMismatchException, NoViableAltException, Token, } from "antlr4ng";
2
+ import { plurnkParser } from "./generated/plurnkParser.js";
12
3
  export default class PlurnkErrorStrategy extends DefaultErrorStrategy {
13
4
  static #OFFENDING_CHAR_RE = /at: '([^']*)'$/;
14
-
15
- static #LEXER_MODE_CONTEXT: Record<string, string> = {
5
+ static #LEXER_MODE_CONTEXT = {
16
6
  DEFAULT_MODE: "between statements",
17
7
  SLOTS: "in slot region — expected `[signal]`, `(path)`, `<L>`, or `:body:` (any order)",
18
8
  SIGNAL_TAGS: "in tag signal — expected tag, `,`, or `]`",
@@ -21,8 +11,7 @@ export default class PlurnkErrorStrategy extends DefaultErrorStrategy {
21
11
  PATH: "in path slot — expected path characters or `)`",
22
12
  BODY: "in body",
23
13
  };
24
-
25
- static #SLOT_BY_TOKEN: Record<number, string> = {
14
+ static #SLOT_BY_TOKEN = {
26
15
  [plurnkParser.OPEN_FIND]: "open tag `<<OPsuffix`",
27
16
  [plurnkParser.OPEN_READ]: "open tag `<<OPsuffix`",
28
17
  [plurnkParser.OPEN_EDIT]: "open tag `<<OPsuffix`",
@@ -47,69 +36,71 @@ export default class PlurnkErrorStrategy extends DefaultErrorStrategy {
47
36
  [plurnkParser.CLOSE_TAG]: "close tag `:OPsuffix`",
48
37
  [plurnkParser.TEXT]: "text between statements",
49
38
  };
50
-
51
- static translateLexerMessage(lexer: plurnkLexer, originalMsg: string): string {
39
+ static translateLexerMessage(lexer, originalMsg) {
52
40
  const modeName = lexer.modeNames[lexer.mode] ?? "DEFAULT_MODE";
53
41
  const context = PlurnkErrorStrategy.#LEXER_MODE_CONTEXT[modeName] ?? "between statements";
54
42
  const ch = PlurnkErrorStrategy.#extractOffendingChar(originalMsg);
55
43
  return `unrecognized character ${ch} ${context}`;
56
44
  }
57
-
58
- static #extractOffendingChar(msg: string): string {
45
+ static #extractOffendingChar(msg) {
59
46
  const m = PlurnkErrorStrategy.#OFFENDING_CHAR_RE.exec(msg);
60
- if (!m) return "input";
47
+ if (!m)
48
+ return "input";
61
49
  const text = m[1];
62
50
  return text === "" ? "end of input" : `'${text}'`;
63
51
  }
64
-
65
- static #describeToken(tok: Token | null): string {
66
- if (!tok || tok.type === Token.EOF) return "end of input";
52
+ static #describeToken(tok) {
53
+ if (!tok || tok.type === Token.EOF)
54
+ return "end of input";
67
55
  const slot = PlurnkErrorStrategy.#SLOT_BY_TOKEN[tok.type];
68
- if (slot) return slot;
56
+ if (slot)
57
+ return slot;
69
58
  const text = tok.text ?? "";
70
59
  return text.length > 0 ? `'${text}'` : "input";
71
60
  }
72
-
73
- static #describeExpected(e: RecognitionException): string | null {
61
+ static #describeExpected(e) {
74
62
  const expected = e.getExpectedTokens();
75
- if (!expected) return null;
76
- const types: number[] = expected.toArray();
77
- if (types.length === 0) return null;
63
+ if (!expected)
64
+ return null;
65
+ const types = expected.toArray();
66
+ if (types.length === 0)
67
+ return null;
78
68
  const names = types
79
69
  .map((t) => PlurnkErrorStrategy.#SLOT_BY_TOKEN[t])
80
- .filter((s): s is string => Boolean(s));
81
- if (names.length === 0) return null;
82
- if (names.length === 1) return names[0];
83
- if (names.length === 2) return `${names[0]} or ${names[1]}`;
70
+ .filter((s) => Boolean(s));
71
+ if (names.length === 0)
72
+ return null;
73
+ if (names.length === 1)
74
+ return names[0];
75
+ if (names.length === 2)
76
+ return `${names[0]} or ${names[1]}`;
84
77
  return `${names.slice(0, -1).join(", ")}, or ${names[names.length - 1]}`;
85
78
  }
86
-
87
- public override reportError(recognizer: Parser, e: RecognitionException): void {
88
- if (this.inErrorRecoveryMode(recognizer)) return;
79
+ reportError(recognizer, e) {
80
+ if (this.inErrorRecoveryMode(recognizer))
81
+ return;
89
82
  this.beginErrorCondition(recognizer);
90
-
91
83
  const got = PlurnkErrorStrategy.#describeToken(e.offendingToken);
92
84
  const expected = PlurnkErrorStrategy.#describeExpected(e);
93
-
94
- let msg: string;
85
+ let msg;
95
86
  if (e instanceof InputMismatchException || e instanceof NoViableAltException) {
96
87
  msg = expected ? `unexpected ${got}; expected ${expected}` : `unexpected ${got}`;
97
- } else {
88
+ }
89
+ else {
98
90
  msg = `unexpected ${got}`;
99
91
  }
100
-
101
92
  recognizer.notifyErrorListeners(msg, e.offendingToken, e);
102
93
  }
103
-
104
- public override reportMissingToken(recognizer: Parser): void {
105
- if (this.inErrorRecoveryMode(recognizer)) return;
94
+ reportMissingToken(recognizer) {
95
+ if (this.inErrorRecoveryMode(recognizer))
96
+ return;
106
97
  this.beginErrorCondition(recognizer);
107
98
  const tok = recognizer.getCurrentToken();
108
99
  const expectedTokens = this.getExpectedTokens(recognizer);
109
100
  const expectedNames = expectedTokens
110
101
  .toArray()
111
102
  .map((t) => PlurnkErrorStrategy.#SLOT_BY_TOKEN[t])
112
- .filter((s): s is string => Boolean(s));
103
+ .filter((s) => Boolean(s));
113
104
  const expected = expectedNames.length > 0
114
105
  ? (expectedNames.length === 1 ? expectedNames[0] : expectedNames.join(" or "))
115
106
  : "more input";
@@ -117,9 +108,9 @@ export default class PlurnkErrorStrategy extends DefaultErrorStrategy {
117
108
  const msg = `expected ${expected}; got ${got}`;
118
109
  recognizer.notifyErrorListeners(msg, tok, null);
119
110
  }
120
-
121
- public override reportUnwantedToken(recognizer: Parser): void {
122
- if (this.inErrorRecoveryMode(recognizer)) return;
111
+ reportUnwantedToken(recognizer) {
112
+ if (this.inErrorRecoveryMode(recognizer))
113
+ return;
123
114
  this.beginErrorCondition(recognizer);
124
115
  const tok = recognizer.getCurrentToken();
125
116
  const got = PlurnkErrorStrategy.#describeToken(tok);
@@ -127,7 +118,7 @@ export default class PlurnkErrorStrategy extends DefaultErrorStrategy {
127
118
  const expectedNames = expectedTokens
128
119
  .toArray()
129
120
  .map((t) => PlurnkErrorStrategy.#SLOT_BY_TOKEN[t])
130
- .filter((s): s is string => Boolean(s));
121
+ .filter((s) => Boolean(s));
131
122
  const expected = expectedNames.length > 0
132
123
  ? (expectedNames.length === 1 ? expectedNames[0] : expectedNames.join(" or "))
133
124
  : null;
@@ -137,3 +128,4 @@ export default class PlurnkErrorStrategy extends DefaultErrorStrategy {
137
128
  recognizer.notifyErrorListeners(msg, tok, null);
138
129
  }
139
130
  }
131
+ //# sourceMappingURL=PlurnkErrorStrategy.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"PlurnkErrorStrategy.js","sourceRoot":"","sources":["../../src/PlurnkErrorStrategy.ts"],"names":[],"mappings":"AAAA,OAAO,EACH,oBAAoB,EACpB,sBAAsB,EACtB,oBAAoB,EACpB,KAAK,GAGR,MAAM,UAAU,CAAC;AAClB,OAAO,EAAE,YAAY,EAAE,MAAM,6BAA6B,CAAC;AAG3D,MAAM,CAAC,OAAO,OAAO,mBAAoB,SAAQ,oBAAoB;IACjE,MAAM,CAAC,kBAAkB,GAAG,gBAAgB,CAAC;IAE7C,MAAM,CAAC,mBAAmB,GAA2B;QACjD,YAAY,EAAE,oBAAoB;QAClC,KAAK,EAAE,gFAAgF;QACvF,WAAW,EAAE,2CAA2C;QACxD,UAAU,EAAE,iDAAiD;QAC7D,YAAY,EAAE,qDAAqD;QACnE,IAAI,EAAE,gDAAgD;QACtD,IAAI,EAAE,SAAS;KAClB,CAAC;IAEF,MAAM,CAAC,cAAc,GAA2B;QAC5C,CAAC,YAAY,CAAC,SAAS,CAAC,EAAE,uBAAuB;QACjD,CAAC,YAAY,CAAC,SAAS,CAAC,EAAE,uBAAuB;QACjD,CAAC,YAAY,CAAC,SAAS,CAAC,EAAE,uBAAuB;QACjD,CAAC,YAAY,CAAC,SAAS,CAAC,EAAE,uBAAuB;QACjD,CAAC,YAAY,CAAC,SAAS,CAAC,EAAE,uBAAuB;QACjD,CAAC,YAAY,CAAC,SAAS,CAAC,EAAE,uBAAuB;QACjD,CAAC,YAAY,CAAC,SAAS,CAAC,EAAE,uBAAuB;QACjD,CAAC,YAAY,CAAC,SAAS,CAAC,EAAE,uBAAuB;QACjD,CAAC,YAAY,CAAC,SAAS,CAAC,EAAE,uBAAuB;QACjD,CAAC,YAAY,CAAC,QAAQ,CAAC,EAAE,0BAA0B;QACnD,CAAC,YAAY,CAAC,QAAQ,CAAC,EAAE,0BAA0B;QACnD,CAAC,YAAY,CAAC,MAAM,CAAC,EAAE,wBAAwB;QAC/C,CAAC,YAAY,CAAC,MAAM,CAAC,EAAE,wBAAwB;QAC/C,CAAC,YAAY,CAAC,QAAQ,CAAC,EAAE,mBAAmB;QAC5C,CAAC,YAAY,CAAC,KAAK,CAAC,EAAE,kBAAkB;QACxC,CAAC,YAAY,CAAC,KAAK,CAAC,EAAE,KAAK;QAC3B,CAAC,YAAY,CAAC,GAAG,CAAC,EAAE,uBAAuB;QAC3C,CAAC,YAAY,CAAC,KAAK,CAAC,EAAE,2BAA2B;QACjD,CAAC,YAAY,CAAC,GAAG,CAAC,EAAE,KAAK;QACzB,CAAC,YAAY,CAAC,SAAS,CAAC,EAAE,cAAc;QACxC,CAAC,YAAY,CAAC,SAAS,CAAC,EAAE,cAAc;QACxC,CAAC,YAAY,CAAC,SAAS,CAAC,EAAE,uBAAuB;QACjD,CAAC,YAAY,CAAC,IAAI,CAAC,EAAE,yBAAyB;KACjD,CAAC;IAEF,MAAM,CAAC,qBAAqB,CAAC,KAAkB,EAAE,WAAmB;QAChE,MAAM,QAAQ,GAAG,KAAK,CAAC,SAAS,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,cAAc,CAAC;QAC/D,MAAM,OAAO,GAAG,mBAAmB,CAAC,mBAAmB,CAAC,QAAQ,CAAC,IAAI,oBAAoB,CAAC;QAC1F,MAAM,EAAE,GAAG,mBAAmB,CAAC,qBAAqB,CAAC,WAAW,CAAC,CAAC;QAClE,OAAO,0BAA0B,EAAE,IAAI,OAAO,EAAE,CAAC;IACrD,CAAC;IAED,MAAM,CAAC,qBAAqB,CAAC,GAAW;QACpC,MAAM,CAAC,GAAG,mBAAmB,CAAC,kBAAkB,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;QAC3D,IAAI,CAAC,CAAC;YAAE,OAAO,OAAO,CAAC;QACvB,MAAM,IAAI,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;QAClB,OAAO,IAAI,KAAK,EAAE,CAAC,CAAC,CAAC,cAAc,CAAC,CAAC,CAAC,IAAI,IAAI,GAAG,CAAC;IACtD,CAAC;IAED,MAAM,CAAC,cAAc,CAAC,GAAiB;QACnC,IAAI,CAAC,GAAG,IAAI,GAAG,CAAC,IAAI,KAAK,KAAK,CAAC,GAAG;YAAE,OAAO,cAAc,CAAC;QAC1D,MAAM,IAAI,GAAG,mBAAmB,CAAC,cAAc,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;QAC1D,IAAI,IAAI;YAAE,OAAO,IAAI,CAAC;QACtB,MAAM,IAAI,GAAG,GAAG,CAAC,IAAI,IAAI,EAAE,CAAC;QAC5B,OAAO,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,IAAI,GAAG,CAAC,CAAC,CAAC,OAAO,CAAC;IACnD,CAAC;IAED,MAAM,CAAC,iBAAiB,CAAC,CAAuB;QAC5C,MAAM,QAAQ,GAAG,CAAC,CAAC,iBAAiB,EAAE,CAAC;QACvC,IAAI,CAAC,QAAQ;YAAE,OAAO,IAAI,CAAC;QAC3B,MAAM,KAAK,GAAa,QAAQ,CAAC,OAAO,EAAE,CAAC;QAC3C,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC;YAAE,OAAO,IAAI,CAAC;QACpC,MAAM,KAAK,GAAG,KAAK;aACd,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,mBAAmB,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC;aACjD,MAAM,CAAC,CAAC,CAAC,EAAe,EAAE,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC;QAC5C,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC;YAAE,OAAO,IAAI,CAAC;QACpC,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC;YAAE,OAAO,KAAK,CAAC,CAAC,CAAC,CAAC;QACxC,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC;YAAE,OAAO,GAAG,KAAK,CAAC,CAAC,CAAC,OAAO,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC;QAC5D,OAAO,GAAG,KAAK,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,KAAK,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC,EAAE,CAAC;IAC7E,CAAC;IAEe,WAAW,CAAC,UAAkB,EAAE,CAAuB;QACnE,IAAI,IAAI,CAAC,mBAAmB,CAAC,UAAU,CAAC;YAAE,OAAO;QACjD,IAAI,CAAC,mBAAmB,CAAC,UAAU,CAAC,CAAC;QAErC,MAAM,GAAG,GAAG,mBAAmB,CAAC,cAAc,CAAC,CAAC,CAAC,cAAc,CAAC,CAAC;QACjE,MAAM,QAAQ,GAAG,mBAAmB,CAAC,iBAAiB,CAAC,CAAC,CAAC,CAAC;QAE1D,IAAI,GAAW,CAAC;QAChB,IAAI,CAAC,YAAY,sBAAsB,IAAI,CAAC,YAAY,oBAAoB,EAAE,CAAC;YAC3E,GAAG,GAAG,QAAQ,CAAC,CAAC,CAAC,cAAc,GAAG,cAAc,QAAQ,EAAE,CAAC,CAAC,CAAC,cAAc,GAAG,EAAE,CAAC;QACrF,CAAC;aAAM,CAAC;YACJ,GAAG,GAAG,cAAc,GAAG,EAAE,CAAC;QAC9B,CAAC;QAED,UAAU,CAAC,oBAAoB,CAAC,GAAG,EAAE,CAAC,CAAC,cAAc,EAAE,CAAC,CAAC,CAAC;IAC9D,CAAC;IAEe,kBAAkB,CAAC,UAAkB;QACjD,IAAI,IAAI,CAAC,mBAAmB,CAAC,UAAU,CAAC;YAAE,OAAO;QACjD,IAAI,CAAC,mBAAmB,CAAC,UAAU,CAAC,CAAC;QACrC,MAAM,GAAG,GAAG,UAAU,CAAC,eAAe,EAAE,CAAC;QACzC,MAAM,cAAc,GAAG,IAAI,CAAC,iBAAiB,CAAC,UAAU,CAAC,CAAC;QAC1D,MAAM,aAAa,GAAG,cAAc;aAC/B,OAAO,EAAE;aACT,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,mBAAmB,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC;aACjD,MAAM,CAAC,CAAC,CAAC,EAAe,EAAE,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC;QAC5C,MAAM,QAAQ,GAAG,aAAa,CAAC,MAAM,GAAG,CAAC;YACrC,CAAC,CAAC,CAAC,aAAa,CAAC,MAAM,KAAK,CAAC,CAAC,CAAC,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,aAAa,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;YAC9E,CAAC,CAAC,YAAY,CAAC;QACnB,MAAM,GAAG,GAAG,mBAAmB,CAAC,cAAc,CAAC,GAAG,CAAC,CAAC;QACpD,MAAM,GAAG,GAAG,YAAY,QAAQ,SAAS,GAAG,EAAE,CAAC;QAC/C,UAAU,CAAC,oBAAoB,CAAC,GAAG,EAAE,GAAG,EAAE,IAAI,CAAC,CAAC;IACpD,CAAC;IAEe,mBAAmB,CAAC,UAAkB;QAClD,IAAI,IAAI,CAAC,mBAAmB,CAAC,UAAU,CAAC;YAAE,OAAO;QACjD,IAAI,CAAC,mBAAmB,CAAC,UAAU,CAAC,CAAC;QACrC,MAAM,GAAG,GAAG,UAAU,CAAC,eAAe,EAAE,CAAC;QACzC,MAAM,GAAG,GAAG,mBAAmB,CAAC,cAAc,CAAC,GAAG,CAAC,CAAC;QACpD,MAAM,cAAc,GAAG,IAAI,CAAC,iBAAiB,CAAC,UAAU,CAAC,CAAC;QAC1D,MAAM,aAAa,GAAG,cAAc;aAC/B,OAAO,EAAE;aACT,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,mBAAmB,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC;aACjD,MAAM,CAAC,CAAC,CAAC,EAAe,EAAE,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC;QAC5C,MAAM,QAAQ,GAAG,aAAa,CAAC,MAAM,GAAG,CAAC;YACrC,CAAC,CAAC,CAAC,aAAa,CAAC,MAAM,KAAK,CAAC,CAAC,CAAC,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,aAAa,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;YAC9E,CAAC,CAAC,IAAI,CAAC;QACX,MAAM,GAAG,GAAG,QAAQ;YAChB,CAAC,CAAC,cAAc,GAAG,cAAc,QAAQ,EAAE;YAC3C,CAAC,CAAC,cAAc,GAAG,EAAE,CAAC;QAC1B,UAAU,CAAC,oBAAoB,CAAC,GAAG,EAAE,GAAG,EAAE,IAAI,CAAC,CAAC;IACpD,CAAC"}
@@ -0,0 +1,14 @@
1
+ export type ErrorSource = "lexer" | "parser" | "visitor";
2
+ export default class PlurnkParseError extends Error {
3
+ readonly line: number;
4
+ readonly column: number;
5
+ readonly source: ErrorSource;
6
+ constructor(line: number, column: number, source: ErrorSource, message: string);
7
+ toJSON(): {
8
+ line: number;
9
+ column: number;
10
+ source: ErrorSource;
11
+ message: string;
12
+ };
13
+ }
14
+ //# sourceMappingURL=PlurnkParseError.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"PlurnkParseError.d.ts","sourceRoot":"","sources":["../../src/PlurnkParseError.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,WAAW,GAAG,OAAO,GAAG,QAAQ,GAAG,SAAS,CAAC;AAEzD,MAAM,CAAC,OAAO,OAAO,gBAAiB,SAAQ,KAAK;IAC/C,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,MAAM,EAAE,WAAW,CAAC;gBAEjB,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,WAAW,EAAE,OAAO,EAAE,MAAM;IAQ9E,MAAM,IAAI;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,WAAW,CAAC;QAAC,OAAO,EAAE,MAAM,CAAA;KAAE;CAQnF"}
@@ -1,19 +1,15 @@
1
- export type ErrorSource = "lexer" | "parser" | "visitor";
2
-
3
1
  export default class PlurnkParseError extends Error {
4
- readonly line: number;
5
- readonly column: number;
6
- readonly source: ErrorSource;
7
-
8
- constructor(line: number, column: number, source: ErrorSource, message: string) {
2
+ line;
3
+ column;
4
+ source;
5
+ constructor(line, column, source, message) {
9
6
  super(`Plurnk ${source} error at ${line}:${column} — ${message}`);
10
7
  this.name = "PlurnkParseError";
11
8
  this.line = line;
12
9
  this.column = column;
13
10
  this.source = source;
14
11
  }
15
-
16
- toJSON(): { line: number; column: number; source: ErrorSource; message: string } {
12
+ toJSON() {
17
13
  return {
18
14
  line: this.line,
19
15
  column: this.column,
@@ -22,3 +18,4 @@ export default class PlurnkParseError extends Error {
22
18
  };
23
19
  }
24
20
  }
21
+ //# sourceMappingURL=PlurnkParseError.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"PlurnkParseError.js","sourceRoot":"","sources":["../../src/PlurnkParseError.ts"],"names":[],"mappings":"AAEA,MAAM,CAAC,OAAO,OAAO,gBAAiB,SAAQ,KAAK;IACtC,IAAI,CAAS;IACb,MAAM,CAAS;IACf,MAAM,CAAc;IAE7B,YAAY,IAAY,EAAE,MAAc,EAAE,MAAmB,EAAE,OAAe;QAC1E,KAAK,CAAC,UAAU,MAAM,aAAa,IAAI,IAAI,MAAM,MAAM,OAAO,EAAE,CAAC,CAAC;QAClE,IAAI,CAAC,IAAI,GAAG,kBAAkB,CAAC;QAC/B,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;QACjB,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;QACrB,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;IACzB,CAAC;IAED,MAAM;QACF,OAAO;YACH,IAAI,EAAE,IAAI,CAAC,IAAI;YACf,MAAM,EAAE,IAAI,CAAC,MAAM;YACnB,MAAM,EAAE,IAAI,CAAC,MAAM;YACnB,OAAO,EAAE,IAAI,CAAC,OAAO;SACxB,CAAC;IACN,CAAC;CACJ"}
@@ -0,0 +1,6 @@
1
+ import type { ParseResult } from "./types.ts";
2
+ export default class PlurnkParser {
3
+ #private;
4
+ static parse(input: string): ParseResult;
5
+ }
6
+ //# sourceMappingURL=PlurnkParser.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"PlurnkParser.d.ts","sourceRoot":"","sources":["../../src/PlurnkParser.ts"],"names":[],"mappings":"AAOA,OAAO,KAAK,EAAa,WAAW,EAAY,MAAM,YAAY,CAAC;AAEnE,MAAM,CAAC,OAAO,OAAO,YAAY;;IAC7B,MAAM,CAAC,KAAK,CAAC,KAAK,EAAE,MAAM,GAAG,WAAW;CAiF3C"}
@@ -1,67 +1,61 @@
1
1
  import { CharStream, CommonTokenStream } from "antlr4ng";
2
- import { plurnkLexer } from "./generated/plurnkLexer.ts";
3
- import { plurnkParser } from "./generated/plurnkParser.ts";
4
- import AstBuilder from "./AstBuilder.ts";
5
- import PlurnkParseError from "./PlurnkParseError.ts";
6
- import PlurnkErrorStrategy from "./PlurnkErrorStrategy.ts";
7
- import RecordingListener from "./RecordingListener.ts";
8
- import type { ParseItem, ParseResult, Position } from "./types.ts";
9
-
2
+ import { plurnkLexer } from "./generated/plurnkLexer.js";
3
+ import { plurnkParser } from "./generated/plurnkParser.js";
4
+ import AstBuilder from "./AstBuilder.js";
5
+ import PlurnkParseError from "./PlurnkParseError.js";
6
+ import PlurnkErrorStrategy from "./PlurnkErrorStrategy.js";
7
+ import RecordingListener from "./RecordingListener.js";
10
8
  export default class PlurnkParser {
11
- static parse(input: string): ParseResult {
9
+ static parse(input) {
12
10
  const lexer = new plurnkLexer(CharStream.fromString(input));
13
- const errors: PlurnkParseError[] = [];
11
+ const errors = [];
14
12
  lexer.removeErrorListeners();
15
13
  lexer.addErrorListener(new RecordingListener("lexer", errors));
16
-
17
14
  const tokenStream = new CommonTokenStream(lexer);
18
15
  const parser = new plurnkParser(tokenStream);
19
16
  parser.removeErrorListeners();
20
17
  parser.addErrorListener(new RecordingListener("parser", errors));
21
18
  parser.errorHandler = new PlurnkErrorStrategy();
22
-
23
19
  const tree = parser.document();
24
-
25
- const items: ParseItem[] = [];
26
- const consumedErrors = new Set<PlurnkParseError>();
27
-
20
+ const items = [];
21
+ const consumedErrors = new Set();
28
22
  for (const child of tree.children ?? []) {
29
- const ctx = child as any;
23
+ const ctx = child;
30
24
  const start = ctx.start ?? ctx.symbol;
31
25
  const stop = ctx.stop ?? ctx.symbol;
32
- if (!start) continue;
33
-
26
+ if (!start)
27
+ continue;
34
28
  if (ctx.ruleIndex === plurnkParser.RULE_statement) {
35
- const errForStatement = errors.find(
36
- (e) => !consumedErrors.has(e) && PlurnkParser.#errorInRange(e, start, stop ?? start),
37
- );
29
+ const errForStatement = errors.find((e) => !consumedErrors.has(e) && PlurnkParser.#errorInRange(e, start, stop ?? start));
38
30
  if (errForStatement) {
39
31
  consumedErrors.add(errForStatement);
40
32
  items.push({ kind: "error", error: errForStatement });
41
- } else {
33
+ }
34
+ else {
42
35
  try {
43
36
  items.push({ kind: "statement", statement: AstBuilder.build(ctx) });
44
- } catch (e) {
37
+ }
38
+ catch (e) {
45
39
  if (e instanceof PlurnkParseError) {
46
40
  items.push({ kind: "error", error: e });
47
- } else {
41
+ }
42
+ else {
48
43
  throw e;
49
44
  }
50
45
  }
51
46
  }
52
- } else if (ctx.symbol?.type === plurnkLexer.TEXT) {
53
- const position: Position = { line: start.line, column: start.column };
47
+ }
48
+ else if (ctx.symbol?.type === plurnkLexer.TEXT) {
49
+ const position = { line: start.line, column: start.column };
54
50
  items.push({ kind: "text", text: ctx.symbol.text ?? "", position });
55
51
  }
56
52
  }
57
-
58
53
  for (const err of errors) {
59
54
  if (!consumedErrors.has(err)) {
60
55
  items.push({ kind: "error", error: err });
61
56
  }
62
57
  }
63
-
64
- let unparsedTail: ParseResult["unparsedTail"];
58
+ let unparsedTail;
65
59
  if (lexer.mode !== 0) {
66
60
  const openTag = lexer.getOpenTag();
67
61
  const from = { line: lexer.getOpenTagLine(), column: lexer.getOpenTagColumn() };
@@ -75,18 +69,16 @@ export default class PlurnkParser {
75
69
  : `statement \`<<${openTag}\` opened at line ${from.line} but never reached its close tag — add \`:${openTag}\` to terminate`;
76
70
  unparsedTail = { from, reason };
77
71
  }
78
-
79
72
  return { items, unparsedTail };
80
73
  }
81
-
82
- static #errorInRange(
83
- err: PlurnkParseError,
84
- start: { line: number; column: number },
85
- stop: { line: number; column: number },
86
- ): boolean {
87
- if (err.line < start.line || err.line > stop.line) return false;
88
- if (err.line === start.line && err.column < start.column) return false;
89
- if (err.line === stop.line && err.column > stop.column) return false;
74
+ static #errorInRange(err, start, stop) {
75
+ if (err.line < start.line || err.line > stop.line)
76
+ return false;
77
+ if (err.line === start.line && err.column < start.column)
78
+ return false;
79
+ if (err.line === stop.line && err.column > stop.column)
80
+ return false;
90
81
  return true;
91
82
  }
92
83
  }
84
+ //# sourceMappingURL=PlurnkParser.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"PlurnkParser.js","sourceRoot":"","sources":["../../src/PlurnkParser.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,9 @@
1
+ import { BaseErrorListener, type RecognitionException, type Recognizer, type Token } from "antlr4ng";
2
+ import PlurnkParseError from "./PlurnkParseError.ts";
3
+ export default class RecordingListener extends BaseErrorListener {
4
+ readonly errors: PlurnkParseError[];
5
+ readonly source: "lexer" | "parser";
6
+ constructor(source: "lexer" | "parser", errors: PlurnkParseError[]);
7
+ syntaxError(recognizer: Recognizer<any>, _offendingSymbol: Token | null, line: number, column: number, msg: string, _e: RecognitionException | null): void;
8
+ }
9
+ //# sourceMappingURL=RecordingListener.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"RecordingListener.d.ts","sourceRoot":"","sources":["../../src/RecordingListener.ts"],"names":[],"mappings":"AAAA,OAAO,EACH,iBAAiB,EACjB,KAAK,oBAAoB,EACzB,KAAK,UAAU,EACf,KAAK,KAAK,EACb,MAAM,UAAU,CAAC;AAElB,OAAO,gBAAgB,MAAM,uBAAuB,CAAC;AAGrD,MAAM,CAAC,OAAO,OAAO,iBAAkB,SAAQ,iBAAiB;IAC5D,QAAQ,CAAC,MAAM,EAAE,gBAAgB,EAAE,CAAC;IACpC,QAAQ,CAAC,MAAM,EAAE,OAAO,GAAG,QAAQ,CAAC;gBAExB,MAAM,EAAE,OAAO,GAAG,QAAQ,EAAE,MAAM,EAAE,gBAAgB,EAAE;IAMzD,WAAW,CAChB,UAAU,EAAE,UAAU,CAAC,GAAG,CAAC,EAC3B,gBAAgB,EAAE,KAAK,GAAG,IAAI,EAC9B,IAAI,EAAE,MAAM,EACZ,MAAM,EAAE,MAAM,EACd,GAAG,EAAE,MAAM,EACX,EAAE,EAAE,oBAAoB,GAAG,IAAI,GAChC,IAAI;CAMV"}
@@ -0,0 +1,19 @@
1
+ import { BaseErrorListener, } from "antlr4ng";
2
+ import PlurnkParseError from "./PlurnkParseError.js";
3
+ import PlurnkErrorStrategy from "./PlurnkErrorStrategy.js";
4
+ export default class RecordingListener extends BaseErrorListener {
5
+ errors;
6
+ source;
7
+ constructor(source, errors) {
8
+ super();
9
+ this.source = source;
10
+ this.errors = errors;
11
+ }
12
+ syntaxError(recognizer, _offendingSymbol, line, column, msg, _e) {
13
+ const translated = this.source === "lexer"
14
+ ? PlurnkErrorStrategy.translateLexerMessage(recognizer, msg)
15
+ : msg;
16
+ this.errors.push(new PlurnkParseError(line, column, this.source, translated));
17
+ }
18
+ }
19
+ //# sourceMappingURL=RecordingListener.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"RecordingListener.js","sourceRoot":"","sources":["../../src/RecordingListener.ts"],"names":[],"mappings":"AAAA,OAAO,EACH,iBAAiB,GAIpB,MAAM,UAAU,CAAC;AAElB,OAAO,gBAAgB,MAAM,uBAAuB,CAAC;AACrD,OAAO,mBAAmB,MAAM,0BAA0B,CAAC;AAE3D,MAAM,CAAC,OAAO,OAAO,iBAAkB,SAAQ,iBAAiB;IACnD,MAAM,CAAqB;IAC3B,MAAM,CAAqB;IAEpC,YAAY,MAA0B,EAAE,MAA0B;QAC9D,KAAK,EAAE,CAAC;QACR,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;QACrB,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;IACzB,CAAC;IAEQ,WAAW,CAChB,UAA2B,EAC3B,gBAA8B,EAC9B,IAAY,EACZ,MAAc,EACd,GAAW,EACX,EAA+B;QAE/B,MAAM,UAAU,GAAG,IAAI,CAAC,MAAM,KAAK,OAAO;YACtC,CAAC,CAAC,mBAAmB,CAAC,qBAAqB,CAAC,UAAyB,EAAE,GAAG,CAAC;YAC3E,CAAC,CAAC,GAAG,CAAC;QACV,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,gBAAgB,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,CAAC,MAAM,EAAE,UAAU,CAAC,CAAC,CAAC;IAClF,CAAC;CACJ"}
@@ -0,0 +1,28 @@
1
+ import { type OutputUnit } from "@cfworker/json-schema";
2
+ export type ValidationResult = {
3
+ valid: boolean;
4
+ errors: OutputUnit[];
5
+ };
6
+ export default class Validator {
7
+ #private;
8
+ static validatePosition(obj: unknown): ValidationResult;
9
+ static validateLineMarker(obj: unknown): ValidationResult;
10
+ static validateParams(obj: unknown): ValidationResult;
11
+ static validateChannelContent(obj: unknown): ValidationResult;
12
+ static validateParsedPath(obj: unknown): ValidationResult;
13
+ static validateMatcherBody(obj: unknown): ValidationResult;
14
+ static validateSendBody(obj: unknown): ValidationResult;
15
+ static validateEntry(obj: unknown): ValidationResult;
16
+ static validateSchemeRegistration(obj: unknown): ValidationResult;
17
+ static validateProviderDeclaration(obj: unknown): ValidationResult;
18
+ static validateVisibility(obj: unknown): ValidationResult;
19
+ static validateLogEntry(obj: unknown): ValidationResult;
20
+ static validatePlurnkStatement(obj: unknown): ValidationResult;
21
+ static validateTurn(obj: unknown): ValidationResult;
22
+ static validateLoop(obj: unknown): ValidationResult;
23
+ static validateRun(obj: unknown): ValidationResult;
24
+ static validateSession(obj: unknown): ValidationResult;
25
+ static validateAgent(obj: unknown): ValidationResult;
26
+ static validatePacket(obj: unknown): ValidationResult;
27
+ }
28
+ //# sourceMappingURL=Validator.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Validator.d.ts","sourceRoot":"","sources":["../../src/Validator.ts"],"names":[],"mappings":"AAAA,OAAO,EAA4B,KAAK,UAAU,EAAe,MAAM,uBAAuB,CAAC;AAqB/F,MAAM,MAAM,gBAAgB,GAAG;IAAE,KAAK,EAAE,OAAO,CAAC;IAAC,MAAM,EAAE,UAAU,EAAE,CAAA;CAAE,CAAC;AAaxE,MAAM,CAAC,OAAO,OAAO,SAAS;;IAmC1B,MAAM,CAAC,gBAAgB,CAAC,GAAG,EAAE,OAAO,GAAG,gBAAgB;IACvD,MAAM,CAAC,kBAAkB,CAAC,GAAG,EAAE,OAAO,GAAG,gBAAgB;IACzD,MAAM,CAAC,cAAc,CAAC,GAAG,EAAE,OAAO,GAAG,gBAAgB;IACrD,MAAM,CAAC,sBAAsB,CAAC,GAAG,EAAE,OAAO,GAAG,gBAAgB;IAC7D,MAAM,CAAC,kBAAkB,CAAC,GAAG,EAAE,OAAO,GAAG,gBAAgB;IACzD,MAAM,CAAC,mBAAmB,CAAC,GAAG,EAAE,OAAO,GAAG,gBAAgB;IAC1D,MAAM,CAAC,gBAAgB,CAAC,GAAG,EAAE,OAAO,GAAG,gBAAgB;IACvD,MAAM,CAAC,aAAa,CAAC,GAAG,EAAE,OAAO,GAAG,gBAAgB;IACpD,MAAM,CAAC,0BAA0B,CAAC,GAAG,EAAE,OAAO,GAAG,gBAAgB;IACjE,MAAM,CAAC,2BAA2B,CAAC,GAAG,EAAE,OAAO,GAAG,gBAAgB;IAClE,MAAM,CAAC,kBAAkB,CAAC,GAAG,EAAE,OAAO,GAAG,gBAAgB;IACzD,MAAM,CAAC,gBAAgB,CAAC,GAAG,EAAE,OAAO,GAAG,gBAAgB;IACvD,MAAM,CAAC,uBAAuB,CAAC,GAAG,EAAE,OAAO,GAAG,gBAAgB;IAC9D,MAAM,CAAC,YAAY,CAAC,GAAG,EAAE,OAAO,GAAG,gBAAgB;IACnD,MAAM,CAAC,YAAY,CAAC,GAAG,EAAE,OAAO,GAAG,gBAAgB;IACnD,MAAM,CAAC,WAAW,CAAC,GAAG,EAAE,OAAO,GAAG,gBAAgB;IAClD,MAAM,CAAC,eAAe,CAAC,GAAG,EAAE,OAAO,GAAG,gBAAgB;IACtD,MAAM,CAAC,aAAa,CAAC,GAAG,EAAE,OAAO,GAAG,gBAAgB;IACpD,MAAM,CAAC,cAAc,CAAC,GAAG,EAAE,OAAO,GAAG,gBAAgB;CAMxD"}
@@ -0,0 +1,86 @@
1
+ import { Validator as CfValidator } from "@cfworker/json-schema";
2
+ import positionSchema from "../schema/Position.json" with { type: "json" };
3
+ import lineMarkerSchema from "../schema/LineMarker.json" with { type: "json" };
4
+ import paramsSchema from "../schema/Params.json" with { type: "json" };
5
+ import channelContentSchema from "../schema/ChannelContent.json" with { type: "json" };
6
+ import parsedPathSchema from "../schema/ParsedPath.json" with { type: "json" };
7
+ import matcherBodySchema from "../schema/MatcherBody.json" with { type: "json" };
8
+ import sendBodySchema from "../schema/SendBody.json" with { type: "json" };
9
+ import entrySchema from "../schema/Entry.json" with { type: "json" };
10
+ import schemeRegistrationSchema from "../schema/SchemeRegistration.json" with { type: "json" };
11
+ import providerDeclarationSchema from "../schema/ProviderDeclaration.json" with { type: "json" };
12
+ import visibilitySchema from "../schema/Visibility.json" with { type: "json" };
13
+ import logEntrySchema from "../schema/LogEntry.json" with { type: "json" };
14
+ import plurnkStatementSchema from "../schema/PlurnkStatement.json" with { type: "json" };
15
+ import turnSchema from "../schema/Turn.json" with { type: "json" };
16
+ import loopSchema from "../schema/Loop.json" with { type: "json" };
17
+ import runSchema from "../schema/Run.json" with { type: "json" };
18
+ import sessionSchema from "../schema/Session.json" with { type: "json" };
19
+ import agentSchema from "../schema/Agent.json" with { type: "json" };
20
+ import packetSchema from "../schema/Packet.json" with { type: "json" };
21
+ // All foundational schemas — handy when a top-level shape transitively references many others.
22
+ const FOUNDATIONAL = [
23
+ positionSchema, lineMarkerSchema, paramsSchema, channelContentSchema,
24
+ parsedPathSchema, matcherBodySchema, sendBodySchema,
25
+ plurnkStatementSchema,
26
+ entrySchema, logEntrySchema,
27
+ schemeRegistrationSchema, providerDeclarationSchema,
28
+ visibilitySchema,
29
+ packetSchema,
30
+ ];
31
+ export default class Validator {
32
+ static #position = new CfValidator(positionSchema, "2020-12");
33
+ static #lineMarker = new CfValidator(lineMarkerSchema, "2020-12");
34
+ static #params = new CfValidator(paramsSchema, "2020-12");
35
+ static #channelContent = new CfValidator(channelContentSchema, "2020-12");
36
+ static #parsedPath = Validator.#buildWithRefs(parsedPathSchema, [paramsSchema]);
37
+ static #matcherBody = new CfValidator(matcherBodySchema, "2020-12");
38
+ static #sendBody = new CfValidator(sendBodySchema, "2020-12");
39
+ static #entry = Validator.#buildWithRefs(entrySchema, [paramsSchema, channelContentSchema]);
40
+ static #schemeRegistration = new CfValidator(schemeRegistrationSchema, "2020-12");
41
+ static #providerDeclaration = new CfValidator(providerDeclarationSchema, "2020-12");
42
+ static #visibility = new CfValidator(visibilitySchema, "2020-12");
43
+ static #logEntry = Validator.#buildWithRefs(logEntrySchema, [paramsSchema, lineMarkerSchema]);
44
+ static #plurnkStatement = Validator.#buildWithRefs(plurnkStatementSchema, [positionSchema, lineMarkerSchema, paramsSchema, parsedPathSchema, matcherBodySchema, sendBodySchema]);
45
+ static #turn = Validator.#buildWithRefs(turnSchema, FOUNDATIONAL);
46
+ static #loop = new CfValidator(loopSchema, "2020-12");
47
+ static #run = new CfValidator(runSchema, "2020-12");
48
+ static #session = Validator.#buildWithRefs(sessionSchema, [schemeRegistrationSchema]);
49
+ static #agent = Validator.#buildWithRefs(agentSchema, [providerDeclarationSchema, schemeRegistrationSchema]);
50
+ static #packet = Validator.#buildWithRefs(packetSchema, FOUNDATIONAL);
51
+ static #buildWithRefs(mainSchema, refSchemas) {
52
+ const validator = new CfValidator(mainSchema, "2020-12");
53
+ const mainId = mainSchema.$id;
54
+ for (const ref of refSchemas) {
55
+ const refId = ref.$id;
56
+ if (refId && refId === mainId)
57
+ continue;
58
+ validator.addSchema(ref);
59
+ }
60
+ return validator;
61
+ }
62
+ static validatePosition(obj) { return Validator.#run_(Validator.#position, obj); }
63
+ static validateLineMarker(obj) { return Validator.#run_(Validator.#lineMarker, obj); }
64
+ static validateParams(obj) { return Validator.#run_(Validator.#params, obj); }
65
+ static validateChannelContent(obj) { return Validator.#run_(Validator.#channelContent, obj); }
66
+ static validateParsedPath(obj) { return Validator.#run_(Validator.#parsedPath, obj); }
67
+ static validateMatcherBody(obj) { return Validator.#run_(Validator.#matcherBody, obj); }
68
+ static validateSendBody(obj) { return Validator.#run_(Validator.#sendBody, obj); }
69
+ static validateEntry(obj) { return Validator.#run_(Validator.#entry, obj); }
70
+ static validateSchemeRegistration(obj) { return Validator.#run_(Validator.#schemeRegistration, obj); }
71
+ static validateProviderDeclaration(obj) { return Validator.#run_(Validator.#providerDeclaration, obj); }
72
+ static validateVisibility(obj) { return Validator.#run_(Validator.#visibility, obj); }
73
+ static validateLogEntry(obj) { return Validator.#run_(Validator.#logEntry, obj); }
74
+ static validatePlurnkStatement(obj) { return Validator.#run_(Validator.#plurnkStatement, obj); }
75
+ static validateTurn(obj) { return Validator.#run_(Validator.#turn, obj); }
76
+ static validateLoop(obj) { return Validator.#run_(Validator.#loop, obj); }
77
+ static validateRun(obj) { return Validator.#run_(Validator.#run, obj); }
78
+ static validateSession(obj) { return Validator.#run_(Validator.#session, obj); }
79
+ static validateAgent(obj) { return Validator.#run_(Validator.#agent, obj); }
80
+ static validatePacket(obj) { return Validator.#run_(Validator.#packet, obj); }
81
+ static #run_(validator, obj) {
82
+ const result = validator.validate(obj);
83
+ return { valid: result.valid, errors: result.errors };
84
+ }
85
+ }
86
+ //# sourceMappingURL=Validator.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Validator.js","sourceRoot":"","sources":["../../src/Validator.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,IAAI,WAAW,EAAgC,MAAM,uBAAuB,CAAC;AAC/F,OAAO,cAAc,MAAM,yBAAyB,CAAC,OAAO,IAAI,EAAE,MAAM,EAAE,CAAC;AAC3E,OAAO,gBAAgB,MAAM,2BAA2B,CAAC,OAAO,IAAI,EAAE,MAAM,EAAE,CAAC;AAC/E,OAAO,YAAY,MAAM,uBAAuB,CAAC,OAAO,IAAI,EAAE,MAAM,EAAE,CAAC;AACvE,OAAO,oBAAoB,MAAM,+BAA+B,CAAC,OAAO,IAAI,EAAE,MAAM,EAAE,CAAC;AACvF,OAAO,gBAAgB,MAAM,2BAA2B,CAAC,OAAO,IAAI,EAAE,MAAM,EAAE,CAAC;AAC/E,OAAO,iBAAiB,MAAM,4BAA4B,CAAC,OAAO,IAAI,EAAE,MAAM,EAAE,CAAC;AACjF,OAAO,cAAc,MAAM,yBAAyB,CAAC,OAAO,IAAI,EAAE,MAAM,EAAE,CAAC;AAC3E,OAAO,WAAW,MAAM,sBAAsB,CAAC,OAAO,IAAI,EAAE,MAAM,EAAE,CAAC;AACrE,OAAO,wBAAwB,MAAM,mCAAmC,CAAC,OAAO,IAAI,EAAE,MAAM,EAAE,CAAC;AAC/F,OAAO,yBAAyB,MAAM,oCAAoC,CAAC,OAAO,IAAI,EAAE,MAAM,EAAE,CAAC;AACjG,OAAO,gBAAgB,MAAM,2BAA2B,CAAC,OAAO,IAAI,EAAE,MAAM,EAAE,CAAC;AAC/E,OAAO,cAAc,MAAM,yBAAyB,CAAC,OAAO,IAAI,EAAE,MAAM,EAAE,CAAC;AAC3E,OAAO,qBAAqB,MAAM,gCAAgC,CAAC,OAAO,IAAI,EAAE,MAAM,EAAE,CAAC;AACzF,OAAO,UAAU,MAAM,qBAAqB,CAAC,OAAO,IAAI,EAAE,MAAM,EAAE,CAAC;AACnE,OAAO,UAAU,MAAM,qBAAqB,CAAC,OAAO,IAAI,EAAE,MAAM,EAAE,CAAC;AACnE,OAAO,SAAS,MAAM,oBAAoB,CAAC,OAAO,IAAI,EAAE,MAAM,EAAE,CAAC;AACjE,OAAO,aAAa,MAAM,wBAAwB,CAAC,OAAO,IAAI,EAAE,MAAM,EAAE,CAAC;AACzE,OAAO,WAAW,MAAM,sBAAsB,CAAC,OAAO,IAAI,EAAE,MAAM,EAAE,CAAC;AACrE,OAAO,YAAY,MAAM,uBAAuB,CAAC,OAAO,IAAI,EAAE,MAAM,EAAE,CAAC;AAIvE,+FAA+F;AAC/F,MAAM,YAAY,GAAG;IACjB,cAAc,EAAE,gBAAgB,EAAE,YAAY,EAAE,oBAAoB;IACpE,gBAAgB,EAAE,iBAAiB,EAAE,cAAc;IACnD,qBAAqB;IACrB,WAAW,EAAE,cAAc;IAC3B,wBAAwB,EAAE,yBAAyB;IACnD,gBAAgB;IAChB,YAAY;CACf,CAAC;AAEF,MAAM,CAAC,OAAO,OAAO,SAAS;IAC1B,MAAM,CAAC,SAAS,GAAG,IAAI,WAAW,CAAC,cAAwB,EAAE,SAAS,CAAC,CAAC;IACxE,MAAM,CAAC,WAAW,GAAG,IAAI,WAAW,CAAC,gBAA0B,EAAE,SAAS,CAAC,CAAC;IAC5E,MAAM,CAAC,OAAO,GAAG,IAAI,WAAW,CAAC,YAAsB,EAAE,SAAS,CAAC,CAAC;IACpE,MAAM,CAAC,eAAe,GAAG,IAAI,WAAW,CAAC,oBAA8B,EAAE,SAAS,CAAC,CAAC;IACpF,MAAM,CAAC,WAAW,GAAG,SAAS,CAAC,cAAc,CAAC,gBAAgB,EAAE,CAAC,YAAY,CAAC,CAAC,CAAC;IAChF,MAAM,CAAC,YAAY,GAAG,IAAI,WAAW,CAAC,iBAA2B,EAAE,SAAS,CAAC,CAAC;IAC9E,MAAM,CAAC,SAAS,GAAG,IAAI,WAAW,CAAC,cAAwB,EAAE,SAAS,CAAC,CAAC;IACxE,MAAM,CAAC,MAAM,GAAG,SAAS,CAAC,cAAc,CAAC,WAAW,EAAE,CAAC,YAAY,EAAE,oBAAoB,CAAC,CAAC,CAAC;IAC5F,MAAM,CAAC,mBAAmB,GAAG,IAAI,WAAW,CAAC,wBAAkC,EAAE,SAAS,CAAC,CAAC;IAC5F,MAAM,CAAC,oBAAoB,GAAG,IAAI,WAAW,CAAC,yBAAmC,EAAE,SAAS,CAAC,CAAC;IAC9F,MAAM,CAAC,WAAW,GAAG,IAAI,WAAW,CAAC,gBAA0B,EAAE,SAAS,CAAC,CAAC;IAC5E,MAAM,CAAC,SAAS,GAAG,SAAS,CAAC,cAAc,CAAC,cAAc,EAAE,CAAC,YAAY,EAAE,gBAAgB,CAAC,CAAC,CAAC;IAC9F,MAAM,CAAC,gBAAgB,GAAG,SAAS,CAAC,cAAc,CAC9C,qBAAqB,EACrB,CAAC,cAAc,EAAE,gBAAgB,EAAE,YAAY,EAAE,gBAAgB,EAAE,iBAAiB,EAAE,cAAc,CAAC,CACxG,CAAC;IACF,MAAM,CAAC,KAAK,GAAG,SAAS,CAAC,cAAc,CAAC,UAAU,EAAE,YAAY,CAAC,CAAC;IAClE,MAAM,CAAC,KAAK,GAAG,IAAI,WAAW,CAAC,UAAoB,EAAE,SAAS,CAAC,CAAC;IAChE,MAAM,CAAC,IAAI,GAAG,IAAI,WAAW,CAAC,SAAmB,EAAE,SAAS,CAAC,CAAC;IAC9D,MAAM,CAAC,QAAQ,GAAG,SAAS,CAAC,cAAc,CAAC,aAAa,EAAE,CAAC,wBAAwB,CAAC,CAAC,CAAC;IACtF,MAAM,CAAC,MAAM,GAAG,SAAS,CAAC,cAAc,CAAC,WAAW,EAAE,CAAC,yBAAyB,EAAE,wBAAwB,CAAC,CAAC,CAAC;IAC7G,MAAM,CAAC,OAAO,GAAG,SAAS,CAAC,cAAc,CAAC,YAAY,EAAE,YAAY,CAAC,CAAC;IAEtE,MAAM,CAAC,cAAc,CAAC,UAAmB,EAAE,UAAqB;QAC5D,MAAM,SAAS,GAAG,IAAI,WAAW,CAAC,UAAoB,EAAE,SAAS,CAAC,CAAC;QACnE,MAAM,MAAM,GAAI,UAA+B,CAAC,GAAG,CAAC;QACpD,KAAK,MAAM,GAAG,IAAI,UAAU,EAAE,CAAC;YAC3B,MAAM,KAAK,GAAI,GAAwB,CAAC,GAAG,CAAC;YAC5C,IAAI,KAAK,IAAI,KAAK,KAAK,MAAM;gBAAE,SAAS;YACxC,SAAS,CAAC,SAAS,CAAC,GAAa,CAAC,CAAC;QACvC,CAAC;QACD,OAAO,SAAS,CAAC;IACrB,CAAC;IAED,MAAM,CAAC,gBAAgB,CAAC,GAAY,IAAsB,OAAO,SAAS,CAAC,KAAK,CAAC,SAAS,CAAC,SAAS,EAAE,GAAG,CAAC,CAAC,CAAC,CAAC;IAC7G,MAAM,CAAC,kBAAkB,CAAC,GAAY,IAAsB,OAAO,SAAS,CAAC,KAAK,CAAC,SAAS,CAAC,WAAW,EAAE,GAAG,CAAC,CAAC,CAAC,CAAC;IACjH,MAAM,CAAC,cAAc,CAAC,GAAY,IAAsB,OAAO,SAAS,CAAC,KAAK,CAAC,SAAS,CAAC,OAAO,EAAE,GAAG,CAAC,CAAC,CAAC,CAAC;IACzG,MAAM,CAAC,sBAAsB,CAAC,GAAY,IAAsB,OAAO,SAAS,CAAC,KAAK,CAAC,SAAS,CAAC,eAAe,EAAE,GAAG,CAAC,CAAC,CAAC,CAAC;IACzH,MAAM,CAAC,kBAAkB,CAAC,GAAY,IAAsB,OAAO,SAAS,CAAC,KAAK,CAAC,SAAS,CAAC,WAAW,EAAE,GAAG,CAAC,CAAC,CAAC,CAAC;IACjH,MAAM,CAAC,mBAAmB,CAAC,GAAY,IAAsB,OAAO,SAAS,CAAC,KAAK,CAAC,SAAS,CAAC,YAAY,EAAE,GAAG,CAAC,CAAC,CAAC,CAAC;IACnH,MAAM,CAAC,gBAAgB,CAAC,GAAY,IAAsB,OAAO,SAAS,CAAC,KAAK,CAAC,SAAS,CAAC,SAAS,EAAE,GAAG,CAAC,CAAC,CAAC,CAAC;IAC7G,MAAM,CAAC,aAAa,CAAC,GAAY,IAAsB,OAAO,SAAS,CAAC,KAAK,CAAC,SAAS,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC,CAAC,CAAC;IACvG,MAAM,CAAC,0BAA0B,CAAC,GAAY,IAAsB,OAAO,SAAS,CAAC,KAAK,CAAC,SAAS,CAAC,mBAAmB,EAAE,GAAG,CAAC,CAAC,CAAC,CAAC;IACjI,MAAM,CAAC,2BAA2B,CAAC,GAAY,IAAsB,OAAO,SAAS,CAAC,KAAK,CAAC,SAAS,CAAC,oBAAoB,EAAE,GAAG,CAAC,CAAC,CAAC,CAAC;IACnI,MAAM,CAAC,kBAAkB,CAAC,GAAY,IAAsB,OAAO,SAAS,CAAC,KAAK,CAAC,SAAS,CAAC,WAAW,EAAE,GAAG,CAAC,CAAC,CAAC,CAAC;IACjH,MAAM,CAAC,gBAAgB,CAAC,GAAY,IAAsB,OAAO,SAAS,CAAC,KAAK,CAAC,SAAS,CAAC,SAAS,EAAE,GAAG,CAAC,CAAC,CAAC,CAAC;IAC7G,MAAM,CAAC,uBAAuB,CAAC,GAAY,IAAsB,OAAO,SAAS,CAAC,KAAK,CAAC,SAAS,CAAC,gBAAgB,EAAE,GAAG,CAAC,CAAC,CAAC,CAAC;IAC3H,MAAM,CAAC,YAAY,CAAC,GAAY,IAAsB,OAAO,SAAS,CAAC,KAAK,CAAC,SAAS,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC,CAAC,CAAC;IACrG,MAAM,CAAC,YAAY,CAAC,GAAY,IAAsB,OAAO,SAAS,CAAC,KAAK,CAAC,SAAS,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC,CAAC,CAAC;IACrG,MAAM,CAAC,WAAW,CAAC,GAAY,IAAsB,OAAO,SAAS,CAAC,KAAK,CAAC,SAAS,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC,CAAC,CAAC;IACnG,MAAM,CAAC,eAAe,CAAC,GAAY,IAAsB,OAAO,SAAS,CAAC,KAAK,CAAC,SAAS,CAAC,QAAQ,EAAE,GAAG,CAAC,CAAC,CAAC,CAAC;IAC3G,MAAM,CAAC,aAAa,CAAC,GAAY,IAAsB,OAAO,SAAS,CAAC,KAAK,CAAC,SAAS,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC,CAAC,CAAC;IACvG,MAAM,CAAC,cAAc,CAAC,GAAY,IAAsB,OAAO,SAAS,CAAC,KAAK,CAAC,SAAS,CAAC,OAAO,EAAE,GAAG,CAAC,CAAC,CAAC,CAAC;IAEzG,MAAM,CAAC,KAAK,CAAC,SAAsB,EAAE,GAAY;QAC7C,MAAM,MAAM,GAAG,SAAS,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC;QACvC,OAAO,EAAE,KAAK,EAAE,MAAM,CAAC,KAAK,EAAE,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,CAAC;IAC1D,CAAC"}