@0disoft/mensor-compiler 0.2.0 → 0.9.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 (48) hide show
  1. package/README.md +70 -0
  2. package/dist/src/check-project.d.ts +2 -1
  3. package/dist/src/check-project.d.ts.map +1 -1
  4. package/dist/src/check-project.js +191 -26
  5. package/dist/src/check-project.js.map +1 -1
  6. package/dist/src/filesystem.d.ts +31 -2
  7. package/dist/src/filesystem.d.ts.map +1 -1
  8. package/dist/src/filesystem.js +142 -12
  9. package/dist/src/filesystem.js.map +1 -1
  10. package/dist/src/form-index-types.d.ts +2 -62
  11. package/dist/src/form-index-types.d.ts.map +1 -1
  12. package/dist/src/form-index-types.js.map +1 -1
  13. package/dist/src/form-index.d.ts +5 -0
  14. package/dist/src/form-index.d.ts.map +1 -1
  15. package/dist/src/form-index.js +23 -0
  16. package/dist/src/form-index.js.map +1 -1
  17. package/dist/src/form-rule.d.ts.map +1 -1
  18. package/dist/src/form-rule.js +35 -12
  19. package/dist/src/form-rule.js.map +1 -1
  20. package/dist/src/html-forms.d.ts.map +1 -1
  21. package/dist/src/html-forms.js +150 -87
  22. package/dist/src/html-forms.js.map +1 -1
  23. package/dist/src/index.d.ts +3 -2
  24. package/dist/src/index.d.ts.map +1 -1
  25. package/dist/src/index.js +2 -1
  26. package/dist/src/index.js.map +1 -1
  27. package/dist/src/locations.d.ts +7 -0
  28. package/dist/src/locations.d.ts.map +1 -1
  29. package/dist/src/locations.js +77 -67
  30. package/dist/src/locations.js.map +1 -1
  31. package/dist/src/module-boundary-rule.d.ts +2 -0
  32. package/dist/src/module-boundary-rule.d.ts.map +1 -1
  33. package/dist/src/module-boundary-rule.js +89 -55
  34. package/dist/src/module-boundary-rule.js.map +1 -1
  35. package/dist/src/route-index.d.ts +6 -1
  36. package/dist/src/route-index.d.ts.map +1 -1
  37. package/dist/src/route-index.js +26 -8
  38. package/dist/src/route-index.js.map +1 -1
  39. package/dist/src/route-rule.d.ts +3 -2
  40. package/dist/src/route-rule.d.ts.map +1 -1
  41. package/dist/src/route-rule.js +2 -7
  42. package/dist/src/route-rule.js.map +1 -1
  43. package/dist/src/types.d.ts +19 -1
  44. package/dist/src/types.d.ts.map +1 -1
  45. package/dist/src/typescript-source.d.ts.map +1 -1
  46. package/dist/src/typescript-source.js +206 -45
  47. package/dist/src/typescript-source.js.map +1 -1
  48. package/package.json +2 -2
@@ -5,6 +5,7 @@ const staticHtmlSourceKind = "mensor/static-html";
5
5
  const formControlTagNames = ["button", "input", "select", "textarea"];
6
6
  export function createStaticHtmlFormIndexProvider(options) {
7
7
  const documents = new Map();
8
+ const indexes = new Map();
8
9
  const sources = new Map();
9
10
  async function getDocument(documentPath) {
10
11
  let document = documents.get(documentPath);
@@ -27,62 +28,98 @@ export function createStaticHtmlFormIndexProvider(options) {
27
28
  return {
28
29
  async getIndex(documentPaths) {
29
30
  const uniquePaths = [...new Set(documentPaths)].sort(compareText);
30
- const indexedDocuments = [];
31
- for (const documentPath of uniquePaths) {
32
- indexedDocuments.push(await getDocument(documentPath));
31
+ const key = JSON.stringify(uniquePaths);
32
+ let index = indexes.get(key);
33
+ if (index === undefined) {
34
+ index = (async () => {
35
+ const indexedDocuments = [];
36
+ for (const documentPath of uniquePaths) {
37
+ indexedDocuments.push(await getDocument(documentPath));
38
+ }
39
+ const validate = () => {
40
+ const serialized = serializeFormIndex({
41
+ schemaVersion: 1,
42
+ producer: {
43
+ name: staticHtmlSourceKind,
44
+ version: options.producerVersion,
45
+ },
46
+ documents: indexedDocuments,
47
+ });
48
+ const parsed = parseFormIndex(serialized);
49
+ return verifyFormIndexContent(parsed, (documentPath) => sources.get(documentPath));
50
+ };
51
+ return options.timing === undefined
52
+ ? validate()
53
+ : options.timing.measureSync("formIndexValidation", validate);
54
+ })();
55
+ indexes.set(key, index);
33
56
  }
34
- const validate = () => {
35
- const serialized = serializeFormIndex({
36
- schemaVersion: 1,
37
- producer: {
38
- name: staticHtmlSourceKind,
39
- version: options.producerVersion,
40
- },
41
- documents: indexedDocuments,
42
- });
43
- const parsed = parseFormIndex(serialized);
44
- return verifyFormIndexContent(parsed, (documentPath) => sources.get(documentPath));
45
- };
46
- return options.timing === undefined
47
- ? validate()
48
- : options.timing.measureSync("formIndexValidation", validate);
57
+ return index;
49
58
  },
50
59
  };
51
60
  }
52
61
  export function extractStaticHtmlFormDocument(documentPath, html) {
53
62
  const document = parse(html, { sourceCodeLocationInfo: true });
54
- const elements = [];
55
- collectElements(document.childNodes, elements);
56
- const forms = elements.filter((element) => element.tagName === "form");
57
- const controls = elements.filter(isFormControl);
63
+ const index = collectElementIndex(document.childNodes);
64
+ const controlStates = new Map();
65
+ const controlsByForm = new Map();
66
+ const groupsByForm = new Map();
67
+ for (const control of index.controls) {
68
+ const owner = associatedForm(control, index);
69
+ const inputType = controlInputType(control);
70
+ const disabled = attribute(control, "disabled") !== null ||
71
+ index.disabledByAncestor.get(control) === true;
72
+ const state = {
73
+ disabled,
74
+ inputType,
75
+ owner,
76
+ successfulCandidate: isSuccessfulFieldCandidate(control, inputType, disabled),
77
+ };
78
+ controlStates.set(control, state);
79
+ if (owner === undefined) {
80
+ continue;
81
+ }
82
+ appendMapArray(controlsByForm, owner, control);
83
+ const name = attribute(control, "name");
84
+ if (state.successfulCandidate && name !== null && name.length > 0) {
85
+ let groups = groupsByForm.get(owner);
86
+ if (groups === undefined) {
87
+ groups = new Map();
88
+ groupsByForm.set(owner, groups);
89
+ }
90
+ appendMapArray(groups, name, control);
91
+ }
92
+ }
58
93
  return {
59
94
  path: documentPath,
60
95
  contentDigest: createContentDigest(html),
61
96
  sourceKind: staticHtmlSourceKind,
62
97
  inspection: { state: "complete" },
63
- forms: forms.map((form) => indexedFormFact(form, forms, controls)),
98
+ forms: index.forms.map((form) => indexedFormFact(form, controlsByForm.get(form) ?? [], groupsByForm.get(form) ?? new Map(), controlStates)),
64
99
  };
65
100
  }
66
- function indexedFormFact(form, forms, controls) {
67
- const ownedControls = controls.filter((control) => associatedForm(control, forms) === form);
101
+ function indexedFormFact(form, ownedControls, nameGroups, controlStates) {
68
102
  return {
69
103
  identity: stringAttributeEvidence(form, "id"),
70
104
  method: methodEvidence(form),
71
105
  action: actionEvidence(form),
72
106
  range: elementStartTagRange(form),
73
- controls: ownedControls.map((control) => indexedControlFact(control, ownedControls)),
107
+ controls: ownedControls.map((control) => indexedControlFact(control, nameGroups, controlStates)),
74
108
  };
75
109
  }
76
- function indexedControlFact(control, ownedControls) {
110
+ function indexedControlFact(control, nameGroups, controlStates) {
77
111
  const range = elementStartTagRange(control);
78
- const inputType = controlInputType(control);
112
+ const state = controlStates.get(control);
113
+ if (state === undefined) {
114
+ throw new Error("Missing indexed control state.");
115
+ }
79
116
  return {
80
117
  name: stringAttributeEvidence(control, "name"),
81
118
  controlKind: known(control.tagName, range),
82
- inputType: known(inputType, range),
119
+ inputType: known(state.inputType, range),
83
120
  multiple: known(attribute(control, "multiple") !== null, range),
84
- multiplicity: known(controlMultiplicity(control, ownedControls), range),
85
- successful: successfulEvidence(control, inputType, range),
121
+ multiplicity: known(controlMultiplicity(control, nameGroups, state), range),
122
+ successful: successfulEvidence(control, state, range),
86
123
  range,
87
124
  };
88
125
  }
@@ -107,11 +144,11 @@ function stringAttributeEvidence(element, name) {
107
144
  ? { state: "absent", range }
108
145
  : known(value, range);
109
146
  }
110
- function successfulEvidence(control, inputType, range) {
111
- if (isEffectivelyDisabled(control)) {
147
+ function successfulEvidence(control, state, range) {
148
+ if (state.disabled) {
112
149
  return known(false, range);
113
150
  }
114
- const unsupportedReason = unsupportedControlReason(control, inputType);
151
+ const unsupportedReason = unsupportedControlReason(control, state.inputType);
115
152
  if (unsupportedReason !== undefined) {
116
153
  return {
117
154
  state: "unsupported",
@@ -119,11 +156,11 @@ function successfulEvidence(control, inputType, range) {
119
156
  range,
120
157
  };
121
158
  }
122
- return known(isSuccessfulFieldCandidate(control), range);
159
+ return known(state.successfulCandidate, range);
123
160
  }
124
161
  function unsupportedControlReason(control, inputType) {
125
162
  const name = attribute(control, "name") ?? "";
126
- const isSubmitter = control.tagName === "button" ||
163
+ const isSubmitter = (control.tagName === "button" && inputType === "submit") ||
127
164
  (control.tagName === "input" && ["image", "submit"].includes(inputType));
128
165
  if (isSubmitter &&
129
166
  (attribute(control, "formaction") !== null ||
@@ -138,13 +175,12 @@ function unsupportedControlReason(control, inputType) {
138
175
  }
139
176
  return undefined;
140
177
  }
141
- function controlMultiplicity(control, ownedControls) {
178
+ function controlMultiplicity(control, nameGroups, state) {
142
179
  const name = attribute(control, "name");
143
- if (name === null || name.length === 0 || !isSuccessfulFieldCandidate(control)) {
180
+ if (name === null || name.length === 0 || !state.successfulCandidate) {
144
181
  return "scalar";
145
182
  }
146
- const group = ownedControls.filter((candidate) => attribute(candidate, "name") === name &&
147
- isSuccessfulFieldCandidate(candidate));
183
+ const group = nameGroups.get(name) ?? [];
148
184
  if (group.length > 0 &&
149
185
  group.every((candidate) => candidate.tagName === "input" && controlInputType(candidate) === "radio")) {
150
186
  return "mutually-exclusive";
@@ -160,79 +196,106 @@ function known(value, range) {
160
196
  }
161
197
  function controlInputType(element) {
162
198
  if (element.tagName === "input") {
163
- return asciiLowercase(attribute(element, "type") ?? "text");
199
+ const value = asciiLowercase(attribute(element, "type") ?? "text");
200
+ return inputTypes.has(value) ? value : "text";
164
201
  }
165
202
  if (element.tagName === "button") {
166
- return asciiLowercase(attribute(element, "type") ?? "submit");
203
+ const value = asciiLowercase(attribute(element, "type") ?? "submit");
204
+ return buttonTypes.has(value) ? value : "submit";
167
205
  }
168
206
  return "";
169
207
  }
208
+ const buttonTypes = new Set(["button", "reset", "submit"]);
209
+ const inputTypes = new Set([
210
+ "button", "checkbox", "color", "date", "datetime-local", "email", "file",
211
+ "hidden", "image", "month", "number", "password", "radio", "range",
212
+ "reset", "search", "submit", "tel", "text", "time", "url", "week",
213
+ ]);
170
214
  function asciiLowercase(value) {
171
215
  return value.replace(/[A-Z]/gu, (character) => String.fromCharCode(character.charCodeAt(0) + 32));
172
216
  }
173
- function collectElements(nodes, result) {
174
- for (const node of nodes) {
217
+ function collectElementIndex(nodes) {
218
+ const controls = [];
219
+ const disabledByAncestor = new Map();
220
+ const firstElementById = new Map();
221
+ const forms = [];
222
+ const nearestForm = new Map();
223
+ const stack = [...nodes].reverse().map((node) => ({
224
+ ancestorDisabled: false,
225
+ nearestForm: undefined,
226
+ node,
227
+ }));
228
+ while (stack.length > 0) {
229
+ const frame = stack.pop();
230
+ if (frame === undefined) {
231
+ continue;
232
+ }
233
+ const { node } = frame;
175
234
  if (!("tagName" in node)) {
176
235
  continue;
177
236
  }
178
- result.push(node);
179
- collectElements(node.childNodes, result);
237
+ disabledByAncestor.set(node, frame.ancestorDisabled);
238
+ const id = attribute(node, "id");
239
+ if (id !== null && id.length > 0 && !firstElementById.has(id)) {
240
+ firstElementById.set(id, node);
241
+ }
242
+ const currentForm = node.tagName === "form" ? node : frame.nearestForm;
243
+ if (node.tagName === "form") {
244
+ forms.push(node);
245
+ }
246
+ if (isFormControl(node)) {
247
+ controls.push(node);
248
+ if (frame.nearestForm !== undefined) {
249
+ nearestForm.set(node, frame.nearestForm);
250
+ }
251
+ }
252
+ const disabledFieldset = node.tagName === "fieldset" &&
253
+ attribute(node, "disabled") !== null;
254
+ const firstLegend = disabledFieldset
255
+ ? node.childNodes.find((child) => "tagName" in child && child.tagName === "legend")
256
+ : undefined;
257
+ for (let index = node.childNodes.length - 1; index >= 0; index -= 1) {
258
+ const child = node.childNodes[index];
259
+ if (child !== undefined) {
260
+ stack.push({
261
+ ancestorDisabled: frame.ancestorDisabled ||
262
+ (disabledFieldset && child !== firstLegend),
263
+ nearestForm: currentForm,
264
+ node: child,
265
+ });
266
+ }
267
+ }
180
268
  }
269
+ return { controls, disabledByAncestor, firstElementById, forms, nearestForm };
181
270
  }
182
271
  function isFormControl(element) {
183
272
  return formControlTagNames.some((tagName) => tagName === element.tagName);
184
273
  }
185
- function isSuccessfulFieldCandidate(element) {
186
- if (isEffectivelyDisabled(element) || element.tagName === "button") {
274
+ function isSuccessfulFieldCandidate(element, inputType, disabled) {
275
+ if (disabled || element.tagName === "button") {
187
276
  return false;
188
277
  }
189
278
  if (element.tagName !== "input") {
190
279
  return true;
191
280
  }
192
- const type = controlInputType(element);
193
- return !["button", "file", "image", "reset", "submit"].includes(type);
194
- }
195
- function isEffectivelyDisabled(element) {
196
- if (attribute(element, "disabled") !== null) {
197
- return true;
198
- }
199
- let parent = element.parentNode;
200
- while (parent !== null) {
201
- if ("tagName" in parent &&
202
- parent.tagName === "fieldset" &&
203
- attribute(parent, "disabled") !== null) {
204
- const firstLegend = parent.childNodes.find((child) => "tagName" in child && child.tagName === "legend");
205
- if (firstLegend === undefined || !isDescendantOf(element, firstLegend)) {
206
- return true;
207
- }
208
- }
209
- parent = "parentNode" in parent ? parent.parentNode : null;
210
- }
211
- return false;
281
+ return !["button", "file", "image", "reset", "submit"].includes(inputType);
212
282
  }
213
- function isDescendantOf(element, ancestor) {
214
- let parent = element.parentNode;
215
- while (parent !== null) {
216
- if (parent === ancestor) {
217
- return true;
218
- }
219
- parent = "parentNode" in parent ? parent.parentNode : null;
220
- }
221
- return false;
222
- }
223
- function associatedForm(control, forms) {
283
+ function associatedForm(control, index) {
224
284
  const explicitForm = attribute(control, "form");
225
285
  if (explicitForm !== null) {
226
- return forms.find((form) => attribute(form, "id") === explicitForm);
286
+ const owner = index.firstElementById.get(explicitForm);
287
+ return owner?.tagName === "form" ? owner : undefined;
227
288
  }
228
- let parent = control.parentNode;
229
- while (parent !== null) {
230
- if ("tagName" in parent && parent.tagName === "form") {
231
- return parent;
232
- }
233
- parent = "parentNode" in parent ? parent.parentNode : null;
289
+ return index.nearestForm.get(control);
290
+ }
291
+ function appendMapArray(map, key, value) {
292
+ const values = map.get(key);
293
+ if (values === undefined) {
294
+ map.set(key, [value]);
295
+ }
296
+ else {
297
+ values.push(value);
234
298
  }
235
- return undefined;
236
299
  }
237
300
  function attribute(element, name) {
238
301
  return element.attrs.find((entry) => entry.name === name)?.value ?? null;
@@ -1 +1 @@
1
- {"version":3,"file":"html-forms.js","sourceRoot":"","sources":["../../src/html-forms.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"html-forms.js","sourceRoot":"","sources":["../../src/html-forms.ts"],"names":[],"mappings":"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"}
@@ -1,3 +1,4 @@
1
- export { checkProject } from "./check-project.js";
2
- export type { CheckProjectFailure, CheckProjectBaseOptions, CheckProjectOptions, CheckProjectResult, CheckProjectSuccess, CheckProjectV2Options, CheckProjectV2Result, CheckProjectV2Success, CompilerFailure, } from "./types.js";
1
+ export { checkProject, compileProject } from "./check-project.js";
2
+ export { extractStaticHtmlFormDocument } from "./html-forms.js";
3
+ export type { CheckProjectFailure, CheckProjectBaseOptions, CheckProjectOptions, CheckProjectResult, CheckProjectSuccess, CheckProjectV2Options, CheckProjectV2Result, CheckProjectV2Success, CompilerFailure, CompileProjectDiagnostics, CompileProjectFailure, CompileProjectOptions, CompileProjectResult, CompileProjectSuccess, } from "./types.js";
3
4
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAClD,YAAY,EACV,mBAAmB,EACnB,uBAAuB,EACvB,mBAAmB,EACnB,kBAAkB,EAClB,mBAAmB,EACnB,qBAAqB,EACrB,oBAAoB,EACpB,qBAAqB,EACrB,eAAe,GAChB,MAAM,YAAY,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAC;AAClE,OAAO,EAAE,6BAA6B,EAAE,MAAM,iBAAiB,CAAC;AAChE,YAAY,EACV,mBAAmB,EACnB,uBAAuB,EACvB,mBAAmB,EACnB,kBAAkB,EAClB,mBAAmB,EACnB,qBAAqB,EACrB,oBAAoB,EACpB,qBAAqB,EACrB,eAAe,EACf,yBAAyB,EACzB,qBAAqB,EACrB,qBAAqB,EACrB,oBAAoB,EACpB,qBAAqB,GACtB,MAAM,YAAY,CAAC"}
package/dist/src/index.js CHANGED
@@ -1,2 +1,3 @@
1
- export { checkProject } from "./check-project.js";
1
+ export { checkProject, compileProject } from "./check-project.js";
2
+ export { extractStaticHtmlFormDocument } from "./html-forms.js";
2
3
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAC;AAClE,OAAO,EAAE,6BAA6B,EAAE,MAAM,iBAAiB,CAAC"}
@@ -1,4 +1,11 @@
1
+ import { type Node } from "jsonc-parser";
1
2
  import type { SourceRange } from "@0disoft/mensor-contract";
3
+ export interface ContractLocator {
4
+ readonly lineStarts: readonly number[];
5
+ readonly root: Node | undefined;
6
+ readonly text: string;
7
+ }
8
+ export declare function contractLocatorFor(text: string): ContractLocator;
2
9
  export declare function handlerFileRange(contractText: string, actionIndex: number): SourceRange;
3
10
  export declare function handlerExportRange(contractText: string, actionIndex: number): SourceRange;
4
11
  export declare function actionSchemaPropertyRange(contractText: string, actionIndex: number, propertyName: string): SourceRange;
@@ -1 +1 @@
1
- {"version":3,"file":"locations.d.ts","sourceRoot":"","sources":["../../src/locations.ts"],"names":[],"mappings":"AAMA,OAAO,KAAK,EAAkB,WAAW,EAAE,MAAM,0BAA0B,CAAC;AAO5E,wBAAgB,gBAAgB,CAC9B,YAAY,EAAE,MAAM,EACpB,WAAW,EAAE,MAAM,GAClB,WAAW,CAOb;AAED,wBAAgB,kBAAkB,CAChC,YAAY,EAAE,MAAM,EACpB,WAAW,EAAE,MAAM,GAClB,WAAW,CAYb;AAED,wBAAgB,yBAAyB,CACvC,YAAY,EAAE,MAAM,EACpB,WAAW,EAAE,MAAM,EACnB,YAAY,EAAE,MAAM,GACnB,WAAW,CAsBb;AAED,wBAAgB,4BAA4B,CAC1C,YAAY,EAAE,MAAM,EACpB,WAAW,EAAE,MAAM,EACnB,YAAY,EAAE,MAAM,GACnB,WAAW,CAab;AAED,wBAAgB,wBAAwB,CACtC,YAAY,EAAE,MAAM,EACpB,WAAW,EAAE,MAAM,EACnB,YAAY,EAAE,QAAQ,GAAG,MAAM,GAC9B,WAAW,CAYb;AAED,wBAAgB,uBAAuB,CACrC,YAAY,EAAE,MAAM,EACpB,WAAW,EAAE,MAAM,EACnB,YAAY,EAAE,cAAc,GAAG,IAAI,GAAG,UAAU,GAC/C,WAAW,CAYb;AAED,wBAAgB,6BAA6B,CAC3C,YAAY,EAAE,MAAM,EACpB,WAAW,EAAE,MAAM,EACnB,YAAY,EAAE,MAAM,GACnB,WAAW,CAgBb;AAED,wBAAgB,oBAAoB,CAClC,YAAY,EAAE,MAAM,EACpB,aAAa,EAAE,MAAM,GACpB,WAAW,CAOb;AAED,wBAAgB,yBAAyB,CACvC,YAAY,EAAE,MAAM,EACpB,SAAS,EAAE,MAAM,GAChB,WAAW,CAOb;AAED,wBAAgB,sBAAsB,CAAC,YAAY,EAAE,MAAM,GAAG,WAAW,CAOxE"}
1
+ {"version":3,"file":"locations.d.ts","sourceRoot":"","sources":["../../src/locations.ts"],"names":[],"mappings":"AAAA,OAAO,EAGL,KAAK,IAAI,EACV,MAAM,cAAc,CAAC;AAEtB,OAAO,KAAK,EAAkB,WAAW,EAAE,MAAM,0BAA0B,CAAC;AAO5E,MAAM,WAAW,eAAe;IAC9B,QAAQ,CAAC,UAAU,EAAE,SAAS,MAAM,EAAE,CAAC;IACvC,QAAQ,CAAC,IAAI,EAAE,IAAI,GAAG,SAAS,CAAC;IAChC,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;CACvB;AAKD,wBAAgB,kBAAkB,CAAC,IAAI,EAAE,MAAM,GAAG,eAAe,CAoBhE;AAED,wBAAgB,gBAAgB,CAC9B,YAAY,EAAE,MAAM,EACpB,WAAW,EAAE,MAAM,GAClB,WAAW,CAEb;AAED,wBAAgB,kBAAkB,CAChC,YAAY,EAAE,MAAM,EACpB,WAAW,EAAE,MAAM,GAClB,WAAW,CAOb;AAED,wBAAgB,yBAAyB,CACvC,YAAY,EAAE,MAAM,EACpB,WAAW,EAAE,MAAM,EACnB,YAAY,EAAE,MAAM,GACnB,WAAW,CAsBb;AAED,wBAAgB,4BAA4B,CAC1C,YAAY,EAAE,MAAM,EACpB,WAAW,EAAE,MAAM,EACnB,YAAY,EAAE,MAAM,GACnB,WAAW,CAQb;AAED,wBAAgB,wBAAwB,CACtC,YAAY,EAAE,MAAM,EACpB,WAAW,EAAE,MAAM,EACnB,YAAY,EAAE,QAAQ,GAAG,MAAM,GAC9B,WAAW,CAOb;AAED,wBAAgB,uBAAuB,CACrC,YAAY,EAAE,MAAM,EACpB,WAAW,EAAE,MAAM,EACnB,YAAY,EAAE,cAAc,GAAG,IAAI,GAAG,UAAU,GAC/C,WAAW,CAOb;AAED,wBAAgB,6BAA6B,CAC3C,YAAY,EAAE,MAAM,EACpB,WAAW,EAAE,MAAM,EACnB,YAAY,EAAE,MAAM,GACnB,WAAW,CAWb;AAED,wBAAgB,oBAAoB,CAClC,YAAY,EAAE,MAAM,EACpB,aAAa,EAAE,MAAM,GACpB,WAAW,CAEb;AAED,wBAAgB,yBAAyB,CACvC,YAAY,EAAE,MAAM,EACpB,SAAS,EAAE,MAAM,GAChB,WAAW,CAEb;AAED,wBAAgB,sBAAsB,CAAC,YAAY,EAAE,MAAM,GAAG,WAAW,CAExE"}
@@ -3,33 +3,46 @@ const zeroRange = {
3
3
  start: { line: 0, character: 0 },
4
4
  end: { line: 0, character: 0 },
5
5
  };
6
- export function handlerFileRange(contractText, actionIndex) {
7
- const root = parseTree(contractText);
8
- if (root === undefined) {
9
- return zeroRange;
6
+ const locatorCache = new Map();
7
+ const maxCachedLocators = 16;
8
+ export function contractLocatorFor(text) {
9
+ const cached = locatorCache.get(text);
10
+ if (cached !== undefined) {
11
+ locatorCache.delete(text);
12
+ locatorCache.set(text, cached);
13
+ return cached;
14
+ }
15
+ const locator = {
16
+ lineStarts: lineStartsFor(text),
17
+ root: parseTree(text),
18
+ text,
19
+ };
20
+ locatorCache.set(text, locator);
21
+ if (locatorCache.size > maxCachedLocators) {
22
+ const oldest = locatorCache.keys().next().value;
23
+ if (oldest !== undefined) {
24
+ locatorCache.delete(oldest);
25
+ }
10
26
  }
11
- const node = findNodeAtLocation(root, ["actions", actionIndex, "handler", "file"]);
12
- return node === undefined ? zeroRange : nodeRange(contractText, node);
27
+ return locator;
28
+ }
29
+ export function handlerFileRange(contractText, actionIndex) {
30
+ return rangeAt(contractText, ["actions", actionIndex, "handler", "file"]);
13
31
  }
14
32
  export function handlerExportRange(contractText, actionIndex) {
15
- const root = parseTree(contractText);
16
- if (root === undefined) {
17
- return zeroRange;
18
- }
19
- const node = findNodeAtLocation(root, [
33
+ return rangeAt(contractText, [
20
34
  "actions",
21
35
  actionIndex,
22
36
  "handler",
23
37
  "export",
24
38
  ]);
25
- return node === undefined ? zeroRange : nodeRange(contractText, node);
26
39
  }
27
40
  export function actionSchemaPropertyRange(contractText, actionIndex, propertyName) {
28
- const root = parseTree(contractText);
29
- if (root === undefined) {
41
+ const locator = contractLocatorFor(contractText);
42
+ if (locator.root === undefined) {
30
43
  return zeroRange;
31
44
  }
32
- const properties = findNodeAtLocation(root, [
45
+ const properties = findNodeAtLocation(locator.root, [
33
46
  "actions",
34
47
  actionIndex,
35
48
  "input",
@@ -42,57 +55,38 @@ export function actionSchemaPropertyRange(contractText, actionIndex, propertyNam
42
55
  for (const property of properties.children ?? []) {
43
56
  const key = property.children?.[0];
44
57
  if (key?.type === "string" && key.value === propertyName) {
45
- return nodeRange(contractText, key);
58
+ return nodeRange(locator, key);
46
59
  }
47
60
  }
48
61
  return zeroRange;
49
62
  }
50
63
  export function actionFormCodecPropertyRange(contractText, actionIndex, propertyName) {
51
- const root = parseTree(contractText);
52
- if (root === undefined) {
53
- return zeroRange;
54
- }
55
- const node = findNodeAtLocation(root, [
64
+ return rangeAt(contractText, [
56
65
  "actions",
57
66
  actionIndex,
58
67
  "input",
59
68
  "formCodec",
60
69
  propertyName,
61
70
  ]);
62
- return node === undefined ? zeroRange : nodeRange(contractText, node);
63
71
  }
64
72
  export function actionRoutePropertyRange(contractText, actionIndex, propertyName) {
65
- const root = parseTree(contractText);
66
- if (root === undefined) {
67
- return zeroRange;
68
- }
69
- const node = findNodeAtLocation(root, [
73
+ return rangeAt(contractText, [
70
74
  "actions",
71
75
  actionIndex,
72
76
  "route",
73
77
  propertyName,
74
78
  ]);
75
- return node === undefined ? zeroRange : nodeRange(contractText, node);
76
79
  }
77
80
  export function actionFormPropertyRange(contractText, actionIndex, propertyName) {
78
- const root = parseTree(contractText);
79
- if (root === undefined) {
80
- return zeroRange;
81
- }
82
- const node = findNodeAtLocation(root, [
81
+ return rangeAt(contractText, [
83
82
  "actions",
84
83
  actionIndex,
85
84
  "form",
86
85
  propertyName,
87
86
  ]);
88
- return node === undefined ? zeroRange : nodeRange(contractText, node);
89
87
  }
90
88
  export function actionBindingDecoderKindRange(contractText, actionIndex, bindingIndex) {
91
- const root = parseTree(contractText);
92
- if (root === undefined) {
93
- return zeroRange;
94
- }
95
- const node = findNodeAtLocation(root, [
89
+ return rangeAt(contractText, [
96
90
  "actions",
97
91
  actionIndex,
98
92
  "input",
@@ -102,47 +96,63 @@ export function actionBindingDecoderKindRange(contractText, actionIndex, binding
102
96
  "decode",
103
97
  "kind",
104
98
  ]);
105
- return node === undefined ? zeroRange : nodeRange(contractText, node);
106
99
  }
107
100
  export function projectBoundaryRange(contractText, boundaryIndex) {
108
- const root = parseTree(contractText);
109
- if (root === undefined) {
110
- return zeroRange;
111
- }
112
- const node = findNodeAtLocation(root, ["boundaries", boundaryIndex]);
113
- return node === undefined ? zeroRange : nodeRange(contractText, node);
101
+ return rangeAt(contractText, ["boundaries", boundaryIndex]);
114
102
  }
115
103
  export function projectOwnershipRuleRange(contractText, ruleIndex) {
116
- const root = parseTree(contractText);
117
- if (root === undefined) {
118
- return zeroRange;
119
- }
120
- const node = findNodeAtLocation(root, ["ownershipRules", ruleIndex]);
121
- return node === undefined ? zeroRange : nodeRange(contractText, node);
104
+ return rangeAt(contractText, ["ownershipRules", ruleIndex]);
122
105
  }
123
106
  export function projectRouteIndexRange(contractText) {
124
- const root = parseTree(contractText);
125
- if (root === undefined) {
107
+ return rangeAt(contractText, ["routeIndex"]);
108
+ }
109
+ function rangeAt(text, path) {
110
+ const locator = contractLocatorFor(text);
111
+ if (locator.root === undefined) {
126
112
  return zeroRange;
127
113
  }
128
- const node = findNodeAtLocation(root, ["routeIndex"]);
129
- return node === undefined ? zeroRange : nodeRange(contractText, node);
114
+ const node = findNodeAtLocation(locator.root, path);
115
+ return node === undefined ? zeroRange : nodeRange(locator, node);
130
116
  }
131
- function nodeRange(text, node) {
117
+ function nodeRange(locator, node) {
132
118
  return {
133
- start: positionAt(text, node.offset),
134
- end: positionAt(text, node.offset + node.length),
119
+ start: positionAt(locator, node.offset),
120
+ end: positionAt(locator, node.offset + node.length),
135
121
  };
136
122
  }
137
- function positionAt(text, offset) {
138
- let line = 0;
139
- let lineStart = 0;
140
- for (let index = 0; index < offset; index += 1) {
141
- if (text.charCodeAt(index) === 10) {
142
- line += 1;
143
- lineStart = index + 1;
123
+ function positionAt(locator, offset) {
124
+ let low = 0;
125
+ let high = locator.lineStarts.length;
126
+ while (low < high) {
127
+ const middle = Math.floor((low + high) / 2);
128
+ const lineStart = locator.lineStarts[middle];
129
+ if (lineStart !== undefined && lineStart <= offset) {
130
+ low = middle + 1;
131
+ }
132
+ else {
133
+ high = middle;
134
+ }
135
+ }
136
+ const line = Math.max(0, low - 1);
137
+ return {
138
+ line,
139
+ character: offset - (locator.lineStarts[line] ?? 0),
140
+ };
141
+ }
142
+ function lineStartsFor(text) {
143
+ const starts = [0];
144
+ for (let index = 0; index < text.length; index += 1) {
145
+ const code = text.charCodeAt(index);
146
+ if (code === 13) {
147
+ if (text.charCodeAt(index + 1) === 10) {
148
+ index += 1;
149
+ }
150
+ starts.push(index + 1);
151
+ }
152
+ else if (code === 10) {
153
+ starts.push(index + 1);
144
154
  }
145
155
  }
146
- return { line, character: offset - lineStart };
156
+ return starts;
147
157
  }
148
158
  //# sourceMappingURL=locations.js.map