@plurnk/plurnk-contracts 1.4.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 (81) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +119 -0
  3. package/SPEC.md +954 -0
  4. package/bin/plurnk-contracts.js +43 -0
  5. package/dist/plurnk.gbnf +394 -0
  6. package/dist/schema/ClientDisplayCapabilities.json +54 -0
  7. package/dist/schema/ClientStatement.json +68 -0
  8. package/dist/schema/EntryReadResult.json +101 -0
  9. package/dist/schema/LineMarker.json +16 -0
  10. package/dist/schema/LoopFlags.json +16 -0
  11. package/dist/schema/MatcherBody.json +84 -0
  12. package/dist/schema/Notice.json +67 -0
  13. package/dist/schema/OperationResult.json +44 -0
  14. package/dist/schema/ParsedPath.json +64 -0
  15. package/dist/schema/PlurnkStatement.json +264 -0
  16. package/dist/schema/Position.json +20 -0
  17. package/dist/schema/ProblemDetails.json +51 -0
  18. package/dist/schema/ProposalDisposition.json +26 -0
  19. package/dist/schema/ProposalProjection.json +44 -0
  20. package/dist/schema/ProviderCost.json +69 -0
  21. package/dist/schema/ResourceSelection.json +20 -0
  22. package/dist/schema/SendBody.json +13 -0
  23. package/dist/schema/TextRegion.json +31 -0
  24. package/dist/src/AstBuilder.d.ts +24 -0
  25. package/dist/src/AstBuilder.d.ts.map +1 -0
  26. package/dist/src/AstBuilder.js +609 -0
  27. package/dist/src/AstBuilder.js.map +1 -0
  28. package/dist/src/PathSyntax.d.ts +9 -0
  29. package/dist/src/PathSyntax.d.ts.map +1 -0
  30. package/dist/src/PathSyntax.js +36 -0
  31. package/dist/src/PathSyntax.js.map +1 -0
  32. package/dist/src/PlurnkErrorStrategy.d.ts +10 -0
  33. package/dist/src/PlurnkErrorStrategy.d.ts.map +1 -0
  34. package/dist/src/PlurnkErrorStrategy.js +147 -0
  35. package/dist/src/PlurnkErrorStrategy.js.map +1 -0
  36. package/dist/src/PlurnkParseError.d.ts +17 -0
  37. package/dist/src/PlurnkParseError.d.ts.map +1 -0
  38. package/dist/src/PlurnkParseError.js +24 -0
  39. package/dist/src/PlurnkParseError.js.map +1 -0
  40. package/dist/src/PlurnkParser.d.ts +9 -0
  41. package/dist/src/PlurnkParser.d.ts.map +1 -0
  42. package/dist/src/PlurnkParser.js +396 -0
  43. package/dist/src/PlurnkParser.js.map +1 -0
  44. package/dist/src/Problems.d.ts +8 -0
  45. package/dist/src/Problems.d.ts.map +1 -0
  46. package/dist/src/Problems.js +23 -0
  47. package/dist/src/Problems.js.map +1 -0
  48. package/dist/src/RecordingListener.d.ts +9 -0
  49. package/dist/src/RecordingListener.d.ts.map +1 -0
  50. package/dist/src/RecordingListener.js +19 -0
  51. package/dist/src/RecordingListener.js.map +1 -0
  52. package/dist/src/Validator.d.ts +49 -0
  53. package/dist/src/Validator.d.ts.map +1 -0
  54. package/dist/src/Validator.js +211 -0
  55. package/dist/src/Validator.js.map +1 -0
  56. package/dist/src/generated/plurnkLexer.d.ts +129 -0
  57. package/dist/src/generated/plurnkLexer.d.ts.map +1 -0
  58. package/dist/src/generated/plurnkLexer.js +808 -0
  59. package/dist/src/generated/plurnkLexer.js.map +1 -0
  60. package/dist/src/generated/plurnkParser.d.ts +525 -0
  61. package/dist/src/generated/plurnkParser.d.ts.map +1 -0
  62. package/dist/src/generated/plurnkParser.js +3896 -0
  63. package/dist/src/generated/plurnkParser.js.map +1 -0
  64. package/dist/src/generated/plurnkParserVisitor.d.ts +298 -0
  65. package/dist/src/generated/plurnkParserVisitor.d.ts.map +1 -0
  66. package/dist/src/generated/plurnkParserVisitor.js +257 -0
  67. package/dist/src/generated/plurnkParserVisitor.js.map +1 -0
  68. package/dist/src/index.d.ts +13 -0
  69. package/dist/src/index.d.ts.map +1 -0
  70. package/dist/src/index.js +10 -0
  71. package/dist/src/index.js.map +1 -0
  72. package/dist/src/types.d.ts +29 -0
  73. package/dist/src/types.d.ts.map +1 -0
  74. package/dist/src/types.generated.d.ts +450 -0
  75. package/dist/src/types.generated.d.ts.map +1 -0
  76. package/dist/src/types.generated.js +4 -0
  77. package/dist/src/types.generated.js.map +1 -0
  78. package/dist/src/types.js +23 -0
  79. package/dist/src/types.js.map +1 -0
  80. package/package.json +87 -0
  81. package/plurnk.md +220 -0
@@ -0,0 +1,211 @@
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 parsedPathSchema from "../schema/ParsedPath.json" with { type: "json" };
5
+ import matcherBodySchema from "../schema/MatcherBody.json" with { type: "json" };
6
+ import sendBodySchema from "../schema/SendBody.json" with { type: "json" };
7
+ import resourceSelectionSchema from "../schema/ResourceSelection.json" with { type: "json" };
8
+ import plurnkStatementSchema from "../schema/PlurnkStatement.json" with { type: "json" };
9
+ import clientStatementSchema from "../schema/ClientStatement.json" with { type: "json" };
10
+ import noticeSchema from "../schema/Notice.json" with { type: "json" };
11
+ import problemDetailsSchema from "../schema/ProblemDetails.json" with { type: "json" };
12
+ import operationResultSchema from "../schema/OperationResult.json" with { type: "json" };
13
+ import entryReadResultSchema from "../schema/EntryReadResult.json" with { type: "json" };
14
+ import textRegionSchema from "../schema/TextRegion.json" with { type: "json" };
15
+ import proposalProjectionSchema from "../schema/ProposalProjection.json" with { type: "json" };
16
+ import proposalDispositionSchema from "../schema/ProposalDisposition.json" with { type: "json" };
17
+ import loopFlagsSchema from "../schema/LoopFlags.json" with { type: "json" };
18
+ import clientDisplayCapabilitiesSchema from "../schema/ClientDisplayCapabilities.json" with { type: "json" };
19
+ export class InvalidNoticeError extends TypeError {
20
+ }
21
+ export class InvalidProblemDetailsError extends TypeError {
22
+ }
23
+ export class InvalidOperationResultError extends TypeError {
24
+ }
25
+ export class InvalidEntryReadResultError extends TypeError {
26
+ }
27
+ export class InvalidTextRegionError extends TypeError {
28
+ }
29
+ export class InvalidLoopFlagsError extends TypeError {
30
+ }
31
+ export class InvalidProposalProjectionError extends TypeError {
32
+ }
33
+ export class InvalidClientDisplayCapabilitiesError extends TypeError {
34
+ }
35
+ export default class Validator {
36
+ static #position = new CfValidator(positionSchema, "2020-12");
37
+ static #lineMarker = new CfValidator(lineMarkerSchema, "2020-12");
38
+ static #parsedPath = new CfValidator(parsedPathSchema, "2020-12");
39
+ static #matcherBody = new CfValidator(matcherBodySchema, "2020-12");
40
+ static #sendBody = new CfValidator(sendBodySchema, "2020-12");
41
+ static #plurnkStatement = Validator.#withRefs(plurnkStatementSchema, [
42
+ positionSchema,
43
+ lineMarkerSchema,
44
+ parsedPathSchema,
45
+ matcherBodySchema,
46
+ sendBodySchema,
47
+ resourceSelectionSchema,
48
+ ]);
49
+ static #clientStatement = Validator.#withRefs(clientStatementSchema, [
50
+ plurnkStatementSchema,
51
+ positionSchema,
52
+ lineMarkerSchema,
53
+ parsedPathSchema,
54
+ matcherBodySchema,
55
+ sendBodySchema,
56
+ resourceSelectionSchema,
57
+ ]);
58
+ static #notice = new CfValidator(noticeSchema, "2020-12");
59
+ static #problemDetails = new CfValidator(problemDetailsSchema, "2020-12");
60
+ static #operationResult = Validator.#withRefs(operationResultSchema, [problemDetailsSchema]);
61
+ static #entryReadResult = Validator.#withRefs(entryReadResultSchema, [problemDetailsSchema]);
62
+ static #textRegion = new CfValidator(textRegionSchema, "2020-12");
63
+ static #loopFlags = new CfValidator(loopFlagsSchema, "2020-12");
64
+ static #proposalProjection = Validator.#withRefs(proposalProjectionSchema, [proposalDispositionSchema, loopFlagsSchema]);
65
+ static #clientDisplayCapabilities = new CfValidator(clientDisplayCapabilitiesSchema, "2020-12");
66
+ static #withRefs(mainSchema, refSchemas) {
67
+ const validator = new CfValidator(mainSchema, "2020-12");
68
+ const mainId = mainSchema.$id;
69
+ for (const ref of refSchemas) {
70
+ if (ref.$id === mainId)
71
+ continue;
72
+ validator.addSchema(ref);
73
+ }
74
+ return validator;
75
+ }
76
+ static validatePosition(value) {
77
+ return Validator.#validate(Validator.#position, value);
78
+ }
79
+ static validateLineMarker(value) {
80
+ return Validator.#validate(Validator.#lineMarker, value);
81
+ }
82
+ static validateParsedPath(value) {
83
+ return Validator.#validate(Validator.#parsedPath, value);
84
+ }
85
+ static validateMatcherBody(value) {
86
+ return Validator.#validate(Validator.#matcherBody, value);
87
+ }
88
+ static validateSendBody(value) {
89
+ return Validator.#validate(Validator.#sendBody, value);
90
+ }
91
+ static validatePlurnkStatement(value) {
92
+ return Validator.#validate(Validator.#plurnkStatement, value);
93
+ }
94
+ static validateClientStatement(value) {
95
+ return Validator.#validate(Validator.#clientStatement, value);
96
+ }
97
+ static validateNotice(value) {
98
+ return Validator.#validate(Validator.#notice, value);
99
+ }
100
+ static validateProblemDetails(value) {
101
+ return Validator.#validate(Validator.#problemDetails, value);
102
+ }
103
+ static validateOperationResult(value) {
104
+ return Validator.#validate(Validator.#operationResult, value);
105
+ }
106
+ static validateEntryReadResult(value) {
107
+ const result = Validator.#validate(Validator.#entryReadResult, value);
108
+ if (!result.valid)
109
+ return result;
110
+ const entry = value.entry;
111
+ if (entry === null)
112
+ return result;
113
+ for (const [name, channel] of Object.entries(entry.channels)) {
114
+ const returnedLength = [...channel.content].length;
115
+ if (channel.contentOffset + returnedLength !== channel.contentLength) {
116
+ return {
117
+ valid: false,
118
+ errors: [{
119
+ keyword: "entry-read-suffix",
120
+ instanceLocation: `/entry/channels/${name}`,
121
+ keywordLocation: "#/$defs/channel",
122
+ error: "contentOffset plus the returned Unicode-code-point length must equal contentLength",
123
+ }],
124
+ };
125
+ }
126
+ }
127
+ return result;
128
+ }
129
+ static validateTextRegion(value) {
130
+ return Validator.#validate(Validator.#textRegion, value);
131
+ }
132
+ static validateLoopFlags(value) {
133
+ return Validator.#validate(Validator.#loopFlags, value);
134
+ }
135
+ static validateProposalProjection(value) {
136
+ return Validator.#validate(Validator.#proposalProjection, value);
137
+ }
138
+ static validateClientDisplayCapabilities(value) {
139
+ return Validator.#validate(Validator.#clientDisplayCapabilities, value);
140
+ }
141
+ static assertNotice(value) {
142
+ const result = Validator.validateNotice(value);
143
+ if (!result.valid)
144
+ throw new InvalidNoticeError(`invalid Notice: ${JSON.stringify(result.errors)}`);
145
+ return value;
146
+ }
147
+ static assertProblemDetails(value) {
148
+ const result = Validator.validateProblemDetails(value);
149
+ if (!result.valid) {
150
+ throw new InvalidProblemDetailsError(`invalid RFC 9457 Problem Details: ${JSON.stringify(result.errors)}`);
151
+ }
152
+ return value;
153
+ }
154
+ static assertOperationResult(value) {
155
+ const result = Validator.validateOperationResult(value);
156
+ if (!result.valid) {
157
+ throw new InvalidOperationResultError(`invalid operation result: ${JSON.stringify(result.errors)}`);
158
+ }
159
+ if (value.problem !== undefined && value.problem.status !== value.status) {
160
+ throw new InvalidOperationResultError(`operation result status ${value.status} does not match problem status ${value.problem.status}`);
161
+ }
162
+ return value;
163
+ }
164
+ static assertEntryReadResult(value) {
165
+ const result = Validator.validateEntryReadResult(value);
166
+ if (!result.valid) {
167
+ throw new InvalidEntryReadResultError(`invalid EntryReadResult: ${JSON.stringify(result.errors)}`);
168
+ }
169
+ if ("problem" in value && value.problem.status !== value.status) {
170
+ throw new InvalidEntryReadResultError(`EntryReadResult status ${value.status} does not match problem status ${value.problem.status}`);
171
+ }
172
+ return value;
173
+ }
174
+ static assertTextRegion(value) {
175
+ const result = Validator.validateTextRegion(value);
176
+ if (!result.valid) {
177
+ throw new InvalidTextRegionError(`invalid TextRegion: ${JSON.stringify(result.errors)}`);
178
+ }
179
+ if (value.endLine < value.startLine
180
+ || (value.endLine === value.startLine && value.endColumn < value.startColumn)) {
181
+ throw new InvalidTextRegionError("TextRegion ends before it starts");
182
+ }
183
+ return value;
184
+ }
185
+ static assertLoopFlags(value) {
186
+ const result = Validator.validateLoopFlags(value);
187
+ if (!result.valid) {
188
+ throw new InvalidLoopFlagsError(`invalid LoopFlags: ${JSON.stringify(result.errors)}`);
189
+ }
190
+ return value;
191
+ }
192
+ static assertProposalProjection(value) {
193
+ const result = Validator.validateProposalProjection(value);
194
+ if (!result.valid) {
195
+ throw new InvalidProposalProjectionError(`invalid ProposalProjection: ${JSON.stringify(result.errors)}`);
196
+ }
197
+ return value;
198
+ }
199
+ static assertClientDisplayCapabilities(value) {
200
+ const result = Validator.validateClientDisplayCapabilities(value);
201
+ if (!result.valid) {
202
+ throw new InvalidClientDisplayCapabilitiesError(`invalid ClientDisplayCapabilities: ${JSON.stringify(result.errors)}`);
203
+ }
204
+ return value;
205
+ }
206
+ static #validate(validator, value) {
207
+ const result = validator.validate(value);
208
+ return { valid: result.valid, errors: result.errors };
209
+ }
210
+ }
211
+ //# sourceMappingURL=Validator.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Validator.js","sourceRoot":"","sources":["../../src/Validator.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,129 @@
1
+ import * as antlr from "antlr4ng";
2
+ export declare class plurnkLexer extends antlr.Lexer {
3
+ static readonly LBRACKET = 1;
4
+ static readonly RBRACKET = 2;
5
+ static readonly LPAREN = 3;
6
+ static readonly RPAREN = 4;
7
+ static readonly L_MARKER = 5;
8
+ static readonly COLON = 6;
9
+ static readonly COMMA = 7;
10
+ static readonly INT = 8;
11
+ static readonly DISPOSITION = 9;
12
+ static readonly IDENT = 10;
13
+ static readonly TAG = 11;
14
+ static readonly TARGET_TEXT = 12;
15
+ static readonly BODY_TEXT = 13;
16
+ static readonly CLOSE_TAG = 14;
17
+ static readonly TEXT = 15;
18
+ static readonly OPEN_TURN = 16;
19
+ static readonly CLOSE_TURN = 17;
20
+ static readonly OPEN_FIND = 18;
21
+ static readonly OPEN_READ = 19;
22
+ static readonly OPEN_EDIT = 20;
23
+ static readonly OPEN_COPY = 21;
24
+ static readonly OPEN_MOVE = 22;
25
+ static readonly OPEN_OPEN = 23;
26
+ static readonly OPEN_FOLD = 24;
27
+ static readonly OPEN_SEND = 25;
28
+ static readonly OPEN_EXEC = 26;
29
+ static readonly OPEN_WORK = 27;
30
+ static readonly OPEN_FORK = 28;
31
+ static readonly OPEN_KILL = 29;
32
+ static readonly OPEN_PLAN = 30;
33
+ static readonly OPEN_LOOK = 31;
34
+ static readonly OPEN_BUFF = 32;
35
+ static readonly WS = 33;
36
+ static readonly SLOTS_WS = 34;
37
+ static readonly ST_WS = 35;
38
+ static readonly SI_WS = 36;
39
+ static readonly SD_WS = 37;
40
+ static readonly ST_COMMA = 38;
41
+ static readonly TARGET_BACKSLASH = 39;
42
+ static readonly B_COLON = 40;
43
+ static readonly SLOTS = 1;
44
+ static readonly SIGNAL_TAGS = 2;
45
+ static readonly SIGNAL_INT = 3;
46
+ static readonly SIGNAL_IDENT = 4;
47
+ static readonly TARGET = 5;
48
+ static readonly BODY = 6;
49
+ static readonly channelNames: string[];
50
+ static readonly literalNames: (string | null)[];
51
+ static readonly symbolicNames: (string | null)[];
52
+ static readonly modeNames: string[];
53
+ static readonly ruleNames: string[];
54
+ private openTag;
55
+ private openTagLine;
56
+ private openTagColumn;
57
+ private bodyStart;
58
+ private targetDepth;
59
+ private setOpenTag;
60
+ getOpenTag(): string;
61
+ getOpenTagLine(): number;
62
+ getOpenTagColumn(): number;
63
+ private setBodyStart;
64
+ getBodyStart(): {
65
+ line: number;
66
+ column: number;
67
+ };
68
+ private atColonCloseTag;
69
+ private isIdentChar;
70
+ private consumeRestOfCloseTagAfterColon;
71
+ private isOpKeywordAfterLtLt;
72
+ private isSendOp;
73
+ private isExecOp;
74
+ private isKillOp;
75
+ private isTurnOp;
76
+ private turnSuffixStack;
77
+ private atTurnCloseTag;
78
+ private atSlotsEmptyClose;
79
+ constructor(input: antlr.CharStream);
80
+ get grammarFileName(): string;
81
+ get literalNames(): (string | null)[];
82
+ get symbolicNames(): (string | null)[];
83
+ get ruleNames(): string[];
84
+ get serializedATN(): number[];
85
+ get channelNames(): string[];
86
+ get modeNames(): string[];
87
+ action(localContext: antlr.ParserRuleContext | null, ruleIndex: number, actionIndex: number): void;
88
+ private OPEN_FIND_action;
89
+ private OPEN_READ_action;
90
+ private OPEN_EDIT_action;
91
+ private OPEN_COPY_action;
92
+ private OPEN_MOVE_action;
93
+ private OPEN_OPEN_action;
94
+ private OPEN_FOLD_action;
95
+ private OPEN_SEND_action;
96
+ private OPEN_EXEC_action;
97
+ private OPEN_WORK_action;
98
+ private OPEN_FORK_action;
99
+ private OPEN_KILL_action;
100
+ private OPEN_PLAN_action;
101
+ private OPEN_TURN_action;
102
+ private OPEN_LOOK_action;
103
+ private OPEN_BUFF_action;
104
+ private CLOSE_TURN_action;
105
+ private SLOTS_LPAREN_action;
106
+ private SLOTS_EMPTY_CLOSE_action;
107
+ private SLOTS_COLON_TURN_action;
108
+ private SLOTS_COLON_action;
109
+ private TARGET_NEST_OPEN_action;
110
+ private TARGET_NEST_END_action;
111
+ private B_CLOSE_action;
112
+ sempred(localContext: antlr.ParserRuleContext | null, ruleIndex: number, predIndex: number): boolean;
113
+ private CLOSE_TURN_sempred;
114
+ private TEXT_sempred;
115
+ private SLOTS_LB_TAGS_sempred;
116
+ private SLOTS_LB_INT_sempred;
117
+ private SLOTS_LB_IDENT_sempred;
118
+ private SLOTS_EMPTY_CLOSE_sempred;
119
+ private SLOTS_COLON_TURN_sempred;
120
+ private TARGET_NEST_END_sempred;
121
+ private B_CLOSE_sempred;
122
+ static readonly _serializedATN: number[];
123
+ private static __ATN;
124
+ static get _ATN(): antlr.ATN;
125
+ private static readonly vocabulary;
126
+ get vocabulary(): antlr.Vocabulary;
127
+ private static readonly decisionsToDFA;
128
+ }
129
+ //# sourceMappingURL=plurnkLexer.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"plurnkLexer.d.ts","sourceRoot":"","sources":["../../../src/generated/plurnkLexer.ts"],"names":[],"mappings":"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"}