perttool 0.1.0-alpha.2

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 (176) hide show
  1. package/CHANGELOG.md +53 -0
  2. package/LICENSE +21 -0
  3. package/README.md +134 -0
  4. package/dist/analysis/graph.d.ts +41 -0
  5. package/dist/analysis/graph.d.ts.map +1 -0
  6. package/dist/analysis/graph.js +199 -0
  7. package/dist/analysis/graph.js.map +1 -0
  8. package/dist/analysis/precedence.d.ts +52 -0
  9. package/dist/analysis/precedence.d.ts.map +1 -0
  10. package/dist/analysis/precedence.js +187 -0
  11. package/dist/analysis/precedence.js.map +1 -0
  12. package/dist/analysis/resource.d.ts +96 -0
  13. package/dist/analysis/resource.d.ts.map +1 -0
  14. package/dist/analysis/resource.js +522 -0
  15. package/dist/analysis/resource.js.map +1 -0
  16. package/dist/application/analyze.d.ts +32 -0
  17. package/dist/application/analyze.d.ts.map +1 -0
  18. package/dist/application/analyze.js +144 -0
  19. package/dist/application/analyze.js.map +1 -0
  20. package/dist/application/check.d.ts +24 -0
  21. package/dist/application/check.d.ts.map +1 -0
  22. package/dist/application/check.js +43 -0
  23. package/dist/application/check.js.map +1 -0
  24. package/dist/application/format.d.ts +21 -0
  25. package/dist/application/format.d.ts.map +1 -0
  26. package/dist/application/format.js +52 -0
  27. package/dist/application/format.js.map +1 -0
  28. package/dist/application/mutate.d.ts +4 -0
  29. package/dist/application/mutate.d.ts.map +1 -0
  30. package/dist/application/mutate.js +175 -0
  31. package/dist/application/mutate.js.map +1 -0
  32. package/dist/application/next.d.ts +86 -0
  33. package/dist/application/next.d.ts.map +1 -0
  34. package/dist/application/next.js +310 -0
  35. package/dist/application/next.js.map +1 -0
  36. package/dist/cli.d.ts +3 -0
  37. package/dist/cli.d.ts.map +1 -0
  38. package/dist/cli.js +2103 -0
  39. package/dist/cli.js.map +1 -0
  40. package/dist/conversion/mermaid-import.d.ts +26 -0
  41. package/dist/conversion/mermaid-import.d.ts.map +1 -0
  42. package/dist/conversion/mermaid-import.js +655 -0
  43. package/dist/conversion/mermaid-import.js.map +1 -0
  44. package/dist/conversion/mermaid.d.ts +38 -0
  45. package/dist/conversion/mermaid.d.ts.map +1 -0
  46. package/dist/conversion/mermaid.js +362 -0
  47. package/dist/conversion/mermaid.js.map +1 -0
  48. package/dist/editing/unified-diff.d.ts +7 -0
  49. package/dist/editing/unified-diff.d.ts.map +1 -0
  50. package/dist/editing/unified-diff.js +81 -0
  51. package/dist/editing/unified-diff.js.map +1 -0
  52. package/dist/formatter/source-formatter.d.ts +17 -0
  53. package/dist/formatter/source-formatter.d.ts.map +1 -0
  54. package/dist/formatter/source-formatter.js +210 -0
  55. package/dist/formatter/source-formatter.js.map +1 -0
  56. package/dist/help/registry.d.ts +37 -0
  57. package/dist/help/registry.d.ts.map +1 -0
  58. package/dist/help/registry.js +657 -0
  59. package/dist/help/registry.js.map +1 -0
  60. package/dist/index.d.ts +44 -0
  61. package/dist/index.d.ts.map +1 -0
  62. package/dist/index.js +23 -0
  63. package/dist/index.js.map +1 -0
  64. package/dist/io/document-file.d.ts +9 -0
  65. package/dist/io/document-file.d.ts.map +1 -0
  66. package/dist/io/document-file.js +19 -0
  67. package/dist/io/document-file.js.map +1 -0
  68. package/dist/io/safe-write.d.ts +33 -0
  69. package/dist/io/safe-write.d.ts.map +1 -0
  70. package/dist/io/safe-write.js +280 -0
  71. package/dist/io/safe-write.js.map +1 -0
  72. package/dist/model/diagnostics.d.ts +43 -0
  73. package/dist/model/diagnostics.d.ts.map +1 -0
  74. package/dist/model/diagnostics.js +47 -0
  75. package/dist/model/diagnostics.js.map +1 -0
  76. package/dist/model/rational.d.ts +21 -0
  77. package/dist/model/rational.d.ts.map +1 -0
  78. package/dist/model/rational.js +84 -0
  79. package/dist/model/rational.js.map +1 -0
  80. package/dist/model/syntax.d.ts +67 -0
  81. package/dist/model/syntax.d.ts.map +1 -0
  82. package/dist/model/syntax.js +15 -0
  83. package/dist/model/syntax.js.map +1 -0
  84. package/dist/model/units.d.ts +18 -0
  85. package/dist/model/units.d.ts.map +1 -0
  86. package/dist/model/units.js +29 -0
  87. package/dist/model/units.js.map +1 -0
  88. package/dist/mutation/advance.d.ts +26 -0
  89. package/dist/mutation/advance.d.ts.map +1 -0
  90. package/dist/mutation/advance.js +261 -0
  91. package/dist/mutation/advance.js.map +1 -0
  92. package/dist/mutation/diagnostics.d.ts +10 -0
  93. package/dist/mutation/diagnostics.d.ts.map +1 -0
  94. package/dist/mutation/diagnostics.js +10 -0
  95. package/dist/mutation/diagnostics.js.map +1 -0
  96. package/dist/mutation/entity-editor.d.ts +16 -0
  97. package/dist/mutation/entity-editor.d.ts.map +1 -0
  98. package/dist/mutation/entity-editor.js +103 -0
  99. package/dist/mutation/entity-editor.js.map +1 -0
  100. package/dist/mutation/milestone.d.ts +5 -0
  101. package/dist/mutation/milestone.d.ts.map +1 -0
  102. package/dist/mutation/milestone.js +194 -0
  103. package/dist/mutation/milestone.js.map +1 -0
  104. package/dist/mutation/resource.d.ts +5 -0
  105. package/dist/mutation/resource.d.ts.map +1 -0
  106. package/dist/mutation/resource.js +145 -0
  107. package/dist/mutation/resource.js.map +1 -0
  108. package/dist/mutation/source.d.ts +22 -0
  109. package/dist/mutation/source.d.ts.map +1 -0
  110. package/dist/mutation/source.js +155 -0
  111. package/dist/mutation/source.js.map +1 -0
  112. package/dist/mutation/task.d.ts +10 -0
  113. package/dist/mutation/task.d.ts.map +1 -0
  114. package/dist/mutation/task.js +644 -0
  115. package/dist/mutation/task.js.map +1 -0
  116. package/dist/mutation/text-edits.d.ts +8 -0
  117. package/dist/mutation/text-edits.d.ts.map +1 -0
  118. package/dist/mutation/text-edits.js +33 -0
  119. package/dist/mutation/text-edits.js.map +1 -0
  120. package/dist/mutation/types.d.ts +153 -0
  121. package/dist/mutation/types.d.ts.map +1 -0
  122. package/dist/mutation/types.js +2 -0
  123. package/dist/mutation/types.js.map +1 -0
  124. package/dist/parser/document-parser.d.ts +6 -0
  125. package/dist/parser/document-parser.d.ts.map +1 -0
  126. package/dist/parser/document-parser.js +735 -0
  127. package/dist/parser/document-parser.js.map +1 -0
  128. package/dist/recommendation/explanation-types.d.ts +226 -0
  129. package/dist/recommendation/explanation-types.d.ts.map +1 -0
  130. package/dist/recommendation/explanation-types.js +2 -0
  131. package/dist/recommendation/explanation-types.js.map +1 -0
  132. package/dist/recommendation/explanation-validation.d.ts +4 -0
  133. package/dist/recommendation/explanation-validation.d.ts.map +1 -0
  134. package/dist/recommendation/explanation-validation.js +745 -0
  135. package/dist/recommendation/explanation-validation.js.map +1 -0
  136. package/dist/recommendation/explanation-values.d.ts +7 -0
  137. package/dist/recommendation/explanation-values.d.ts.map +1 -0
  138. package/dist/recommendation/explanation-values.js +283 -0
  139. package/dist/recommendation/explanation-values.js.map +1 -0
  140. package/dist/recommendation/explanation.d.ts +8 -0
  141. package/dist/recommendation/explanation.d.ts.map +1 -0
  142. package/dist/recommendation/explanation.js +1022 -0
  143. package/dist/recommendation/explanation.js.map +1 -0
  144. package/dist/recommendation/failure.d.ts +3 -0
  145. package/dist/recommendation/failure.d.ts.map +1 -0
  146. package/dist/recommendation/failure.js +4 -0
  147. package/dist/recommendation/failure.js.map +1 -0
  148. package/dist/recommendation/json.d.ts +3 -0
  149. package/dist/recommendation/json.d.ts.map +1 -0
  150. package/dist/recommendation/json.js +252 -0
  151. package/dist/recommendation/json.js.map +1 -0
  152. package/dist/recommendation/override-types.d.ts +117 -0
  153. package/dist/recommendation/override-types.d.ts.map +1 -0
  154. package/dist/recommendation/override-types.js +2 -0
  155. package/dist/recommendation/override-types.js.map +1 -0
  156. package/dist/recommendation/override.d.ts +7 -0
  157. package/dist/recommendation/override.d.ts.map +1 -0
  158. package/dist/recommendation/override.js +717 -0
  159. package/dist/recommendation/override.js.map +1 -0
  160. package/dist/recommendation/ranking.d.ts +7 -0
  161. package/dist/recommendation/ranking.d.ts.map +1 -0
  162. package/dist/recommendation/ranking.js +391 -0
  163. package/dist/recommendation/ranking.js.map +1 -0
  164. package/dist/recommendation/types.d.ts +83 -0
  165. package/dist/recommendation/types.d.ts.map +1 -0
  166. package/dist/recommendation/types.js +2 -0
  167. package/dist/recommendation/types.js.map +1 -0
  168. package/dist/semantic/validator.d.ts +4 -0
  169. package/dist/semantic/validator.d.ts.map +1 -0
  170. package/dist/semantic/validator.js +490 -0
  171. package/dist/semantic/validator.js.map +1 -0
  172. package/dist/version.d.ts +2 -0
  173. package/dist/version.d.ts.map +1 -0
  174. package/dist/version.js +2 -0
  175. package/dist/version.js.map +1 -0
  176. package/package.json +61 -0
@@ -0,0 +1,155 @@
1
+ const bareTagPattern = /^[A-Za-z][A-Za-z0-9_-]*$/;
2
+ export function splitPhysicalLines(text) {
3
+ if (text.length === 0)
4
+ return [];
5
+ const lines = [];
6
+ let start = 0;
7
+ while (start < text.length) {
8
+ const newline = text.indexOf("\n", start);
9
+ if (newline === -1) {
10
+ lines.push({ text: text.slice(start), start, end: text.length, endWithEnding: text.length });
11
+ break;
12
+ }
13
+ const end = newline > start && text[newline - 1] === "\r" ? newline - 1 : newline;
14
+ lines.push({ text: text.slice(start, end), start, end, endWithEnding: newline + 1 });
15
+ start = newline + 1;
16
+ }
17
+ return lines;
18
+ }
19
+ export function majorLineEnding(text) {
20
+ let lf = 0;
21
+ let crlf = 0;
22
+ let first;
23
+ for (let index = 0; index < text.length; index += 1) {
24
+ if (text[index] !== "\n")
25
+ continue;
26
+ const ending = index > 0 && text[index - 1] === "\r" ? "\r\n" : "\n";
27
+ first ??= ending;
28
+ if (ending === "\r\n")
29
+ crlf += 1;
30
+ else
31
+ lf += 1;
32
+ }
33
+ if (lf === crlf)
34
+ return first ?? "\n";
35
+ return crlf > lf ? "\r\n" : "\n";
36
+ }
37
+ export function lineIndexAt(lines, offset) {
38
+ const index = lines.findIndex((line, lineIndex) => offset >= line.start &&
39
+ (offset < line.endWithEnding ||
40
+ (lineIndex === lines.length - 1 && offset === line.endWithEnding)));
41
+ if (index === -1)
42
+ throw new Error("mutation span does not resolve to a physical line");
43
+ return index;
44
+ }
45
+ export function contentEndOffset(field, lines) {
46
+ let offset = field.span.end.offset;
47
+ if (field.children !== undefined && field.children.length > 0) {
48
+ offset = field.children[field.children.length - 1].span.end.offset;
49
+ }
50
+ else if (field.name === "requires" && Array.isArray(field.value) && field.value.length > 0) {
51
+ offset = field.value[field.value.length - 1].span.end.offset;
52
+ }
53
+ else if (field.contentSpan !== undefined) {
54
+ offset = field.contentSpan.end.offset;
55
+ }
56
+ return lines[lineIndexAt(lines, offset)].endWithEnding;
57
+ }
58
+ export function contentTextEndOffset(field, lines) {
59
+ let offset = field.span.end.offset;
60
+ if (field.children !== undefined && field.children.length > 0) {
61
+ offset = field.children[field.children.length - 1].span.end.offset;
62
+ }
63
+ else if (field.name === "requires" && Array.isArray(field.value) && field.value.length > 0) {
64
+ offset = field.value[field.value.length - 1].span.end.offset;
65
+ }
66
+ else if (field.contentSpan !== undefined) {
67
+ offset = field.contentSpan.end.offset;
68
+ }
69
+ return lines[lineIndexAt(lines, offset)].end;
70
+ }
71
+ function declarationContentEndOffset(declaration, lines) {
72
+ const lastField = declaration.fields[declaration.fields.length - 1];
73
+ const offset = lastField?.span.end.offset ?? declaration.headerSpan.end.offset;
74
+ return lastField === undefined
75
+ ? lines[lineIndexAt(lines, offset)].endWithEnding
76
+ : contentEndOffset(lastField, lines);
77
+ }
78
+ export function leadingCommentStart(lines, elementStart, indentation) {
79
+ let index = lineIndexAt(lines, elementStart) - 1;
80
+ let start = elementStart;
81
+ while (index >= 0) {
82
+ const line = lines[index];
83
+ const match = /^( *)(#.*)$/.exec(line.text);
84
+ if (match === null || match[1].length !== indentation)
85
+ break;
86
+ start = line.start;
87
+ index -= 1;
88
+ }
89
+ return start;
90
+ }
91
+ export function deleteFieldEdit(field, lines) {
92
+ return {
93
+ startOffset: leadingCommentStart(lines, field.span.start.offset, 2),
94
+ endOffset: contentEndOffset(field, lines),
95
+ replacement: "",
96
+ };
97
+ }
98
+ export function deleteDeclarationEdit(declaration, lines) {
99
+ return {
100
+ startOffset: leadingCommentStart(lines, declaration.headerSpan.start.offset, 0),
101
+ endOffset: declarationContentEndOffset(declaration, lines),
102
+ replacement: "",
103
+ };
104
+ }
105
+ function serializeTag(tag) {
106
+ return bareTagPattern.test(tag) ? tag : JSON.stringify(tag);
107
+ }
108
+ export function serializeTags(tags) {
109
+ return `[${tags.map(serializeTag).join(", ")}]`;
110
+ }
111
+ export function serializeTextField(name, value, lineEnding) {
112
+ if (!value.includes("\n") ||
113
+ value.includes("\r") ||
114
+ value.startsWith("\n") ||
115
+ value.endsWith("\n")) {
116
+ return ` ${name} ${JSON.stringify(value)}`;
117
+ }
118
+ return [
119
+ ` ${name} |`,
120
+ ...value.split("\n").map((line) => (line === "" ? "" : ` ${line}`)),
121
+ ].join(lineEnding);
122
+ }
123
+ export function fieldInsertionOffset(declaration, name, deleted, lines, fieldRank) {
124
+ const rank = fieldRank.get(name);
125
+ const later = declaration.fields.find((field) => !deleted.has(field.name) && (fieldRank.get(field.name) ?? 99) > rank);
126
+ if (later !== undefined) {
127
+ return leadingCommentStart(lines, later.span.start.offset, 2);
128
+ }
129
+ const surviving = declaration.fields.filter((field) => !deleted.has(field.name)).at(-1);
130
+ if (surviving === undefined)
131
+ throw new Error("mutation removed every required field");
132
+ return contentEndOffset(surviving, lines);
133
+ }
134
+ export function insertionText(text, offset, serializedFields, lineEnding) {
135
+ const prefix = offset > 0 && text[offset - 1] !== "\n" ? lineEnding : "";
136
+ const suffix = offset < text.length || text.endsWith("\n") ? lineEnding : "";
137
+ return `${prefix}${serializedFields.join(lineEnding)}${suffix}`;
138
+ }
139
+ export function appendDeclarationEdit(text, serialized, lineEnding = majorLineEnding(text)) {
140
+ const lines = splitPhysicalLines(text);
141
+ const trailingBlank = text.endsWith("\n") && lines.length > 0 && lines[lines.length - 1].text.trim() === "";
142
+ const prefix = text.length === 0
143
+ ? ""
144
+ : trailingBlank
145
+ ? ""
146
+ : text.endsWith("\n")
147
+ ? lineEnding
148
+ : `${lineEnding}${lineEnding}`;
149
+ return {
150
+ startOffset: text.length,
151
+ endOffset: text.length,
152
+ replacement: `${prefix}${serialized}${lineEnding}`,
153
+ };
154
+ }
155
+ //# sourceMappingURL=source.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"source.js","sourceRoot":"","sources":["../../src/mutation/source.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,10 @@
1
+ import type { Diagnostic } from "../model/diagnostics.js";
2
+ import type { DocumentNode } from "../model/syntax.js";
3
+ import type { TaskMutation } from "./types.js";
4
+ import type { TextEdit } from "./text-edits.js";
5
+ export interface TaskMutationPlan {
6
+ readonly edits: readonly TextEdit[];
7
+ readonly diagnostic?: Diagnostic;
8
+ }
9
+ export declare function planTaskMutationEdits(text: string, document: DocumentNode, mutation: TaskMutation): TaskMutationPlan;
10
+ //# sourceMappingURL=task.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"task.d.ts","sourceRoot":"","sources":["../../src/mutation/task.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,yBAAyB,CAAC;AAC1D,OAAO,KAAK,EAEV,YAAY,EAGb,MAAM,oBAAoB,CAAC;AAG5B,OAAO,KAAK,EAMV,YAAY,EAEb,MAAM,YAAY,CAAC;AAgBpB,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,iBAAiB,CAAC;AAEhD,MAAM,WAAW,gBAAgB;IAC/B,QAAQ,CAAC,KAAK,EAAE,SAAS,QAAQ,EAAE,CAAC;IACpC,QAAQ,CAAC,UAAU,CAAC,EAAE,UAAU,CAAC;CAClC;AAwnBD,wBAAgB,qBAAqB,CACnC,IAAI,EAAE,MAAM,EACZ,QAAQ,EAAE,YAAY,EACtB,QAAQ,EAAE,YAAY,GACrB,gBAAgB,CAwDlB"}