skir 0.0.1

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 (141) hide show
  1. package/README.md +447 -0
  2. package/dist/casing.d.ts +8 -0
  3. package/dist/casing.d.ts.map +1 -0
  4. package/dist/casing.js +49 -0
  5. package/dist/casing.js.map +1 -0
  6. package/dist/casing.test.d.ts +2 -0
  7. package/dist/casing.test.d.ts.map +1 -0
  8. package/dist/casing.test.js +134 -0
  9. package/dist/casing.test.js.map +1 -0
  10. package/dist/command_line_parser.d.ts +33 -0
  11. package/dist/command_line_parser.d.ts.map +1 -0
  12. package/dist/command_line_parser.js +171 -0
  13. package/dist/command_line_parser.js.map +1 -0
  14. package/dist/command_line_parser.test.d.ts +2 -0
  15. package/dist/command_line_parser.test.d.ts.map +1 -0
  16. package/dist/command_line_parser.test.js +302 -0
  17. package/dist/command_line_parser.test.js.map +1 -0
  18. package/dist/compatibility_checker.d.ts +68 -0
  19. package/dist/compatibility_checker.d.ts.map +1 -0
  20. package/dist/compatibility_checker.js +328 -0
  21. package/dist/compatibility_checker.js.map +1 -0
  22. package/dist/compatibility_checker.test.d.ts +2 -0
  23. package/dist/compatibility_checker.test.d.ts.map +1 -0
  24. package/dist/compatibility_checker.test.js +528 -0
  25. package/dist/compatibility_checker.test.js.map +1 -0
  26. package/dist/compiler.d.ts +3 -0
  27. package/dist/compiler.d.ts.map +1 -0
  28. package/dist/compiler.js +358 -0
  29. package/dist/compiler.js.map +1 -0
  30. package/dist/config.d.ts +47 -0
  31. package/dist/config.d.ts.map +1 -0
  32. package/dist/config.js +23 -0
  33. package/dist/config.js.map +1 -0
  34. package/dist/definition_finder.d.ts +12 -0
  35. package/dist/definition_finder.d.ts.map +1 -0
  36. package/dist/definition_finder.js +180 -0
  37. package/dist/definition_finder.js.map +1 -0
  38. package/dist/definition_finder.test.d.ts +2 -0
  39. package/dist/definition_finder.test.d.ts.map +1 -0
  40. package/dist/definition_finder.test.js +164 -0
  41. package/dist/definition_finder.test.js.map +1 -0
  42. package/dist/encoding.d.ts +2 -0
  43. package/dist/encoding.d.ts.map +1 -0
  44. package/dist/encoding.js +38 -0
  45. package/dist/encoding.js.map +1 -0
  46. package/dist/encoding.test.d.ts +2 -0
  47. package/dist/encoding.test.d.ts.map +1 -0
  48. package/dist/encoding.test.js +23 -0
  49. package/dist/encoding.test.js.map +1 -0
  50. package/dist/error_renderer.d.ts +10 -0
  51. package/dist/error_renderer.d.ts.map +1 -0
  52. package/dist/error_renderer.js +247 -0
  53. package/dist/error_renderer.js.map +1 -0
  54. package/dist/formatter.d.ts +3 -0
  55. package/dist/formatter.d.ts.map +1 -0
  56. package/dist/formatter.js +263 -0
  57. package/dist/formatter.js.map +1 -0
  58. package/dist/formatter.test.d.ts +2 -0
  59. package/dist/formatter.test.d.ts.map +1 -0
  60. package/dist/formatter.test.js +156 -0
  61. package/dist/formatter.test.js.map +1 -0
  62. package/dist/index.d.ts +6 -0
  63. package/dist/index.d.ts.map +1 -0
  64. package/dist/index.js +5 -0
  65. package/dist/index.js.map +1 -0
  66. package/dist/index.test.d.ts +2 -0
  67. package/dist/index.test.d.ts.map +1 -0
  68. package/dist/index.test.js +14 -0
  69. package/dist/index.test.js.map +1 -0
  70. package/dist/io.d.ts +13 -0
  71. package/dist/io.d.ts.map +1 -0
  72. package/dist/io.js +22 -0
  73. package/dist/io.js.map +1 -0
  74. package/dist/language_server.d.ts +15 -0
  75. package/dist/language_server.d.ts.map +1 -0
  76. package/dist/language_server.js +248 -0
  77. package/dist/language_server.js.map +1 -0
  78. package/dist/literals.d.ts +13 -0
  79. package/dist/literals.d.ts.map +1 -0
  80. package/dist/literals.js +100 -0
  81. package/dist/literals.js.map +1 -0
  82. package/dist/literals.test.d.ts +2 -0
  83. package/dist/literals.test.d.ts.map +1 -0
  84. package/dist/literals.test.js +149 -0
  85. package/dist/literals.test.js.map +1 -0
  86. package/dist/module_collector.d.ts +3 -0
  87. package/dist/module_collector.d.ts.map +1 -0
  88. package/dist/module_collector.js +22 -0
  89. package/dist/module_collector.js.map +1 -0
  90. package/dist/module_set.d.ts +44 -0
  91. package/dist/module_set.d.ts.map +1 -0
  92. package/dist/module_set.js +1025 -0
  93. package/dist/module_set.js.map +1 -0
  94. package/dist/module_set.test.d.ts +2 -0
  95. package/dist/module_set.test.d.ts.map +1 -0
  96. package/dist/module_set.test.js +1330 -0
  97. package/dist/module_set.test.js.map +1 -0
  98. package/dist/parser.d.ts +6 -0
  99. package/dist/parser.d.ts.map +1 -0
  100. package/dist/parser.js +971 -0
  101. package/dist/parser.js.map +1 -0
  102. package/dist/parser.test.d.ts +2 -0
  103. package/dist/parser.test.d.ts.map +1 -0
  104. package/dist/parser.test.js +1366 -0
  105. package/dist/parser.test.js.map +1 -0
  106. package/dist/snapshotter.d.ts +6 -0
  107. package/dist/snapshotter.d.ts.map +1 -0
  108. package/dist/snapshotter.js +107 -0
  109. package/dist/snapshotter.js.map +1 -0
  110. package/dist/tokenizer.d.ts +4 -0
  111. package/dist/tokenizer.d.ts.map +1 -0
  112. package/dist/tokenizer.js +192 -0
  113. package/dist/tokenizer.js.map +1 -0
  114. package/dist/tokenizer.test.d.ts +2 -0
  115. package/dist/tokenizer.test.d.ts.map +1 -0
  116. package/dist/tokenizer.test.js +425 -0
  117. package/dist/tokenizer.test.js.map +1 -0
  118. package/dist/types.d.ts +375 -0
  119. package/dist/types.d.ts.map +1 -0
  120. package/dist/types.js +2 -0
  121. package/dist/types.js.map +1 -0
  122. package/package.json +63 -0
  123. package/src/casing.ts +64 -0
  124. package/src/command_line_parser.ts +249 -0
  125. package/src/compatibility_checker.ts +470 -0
  126. package/src/compiler.ts +435 -0
  127. package/src/config.ts +28 -0
  128. package/src/definition_finder.ts +221 -0
  129. package/src/encoding.ts +32 -0
  130. package/src/error_renderer.ts +278 -0
  131. package/src/formatter.ts +274 -0
  132. package/src/index.ts +6 -0
  133. package/src/io.ts +33 -0
  134. package/src/language_server.ts +301 -0
  135. package/src/literals.ts +120 -0
  136. package/src/module_collector.ts +22 -0
  137. package/src/module_set.ts +1175 -0
  138. package/src/parser.ts +1122 -0
  139. package/src/snapshotter.ts +136 -0
  140. package/src/tokenizer.ts +216 -0
  141. package/src/types.ts +518 -0
@@ -0,0 +1 @@
1
+ {"version":3,"file":"parser.test.js","sourceRoot":"","sources":["../src/parser.test.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,6 @@
1
+ export declare function takeSnapshot(args: {
2
+ rootDir: string;
3
+ srcDir: string;
4
+ check: boolean;
5
+ }): Promise<void>;
6
+ //# sourceMappingURL=snapshotter.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"snapshotter.d.ts","sourceRoot":"","sources":["../src/snapshotter.ts"],"names":[],"mappings":"AAYA,wBAAsB,YAAY,CAAC,IAAI,EAAE;IACvC,OAAO,EAAE,MAAM,CAAC;IAChB,MAAM,EAAE,MAAM,CAAC;IACf,KAAK,EAAE,OAAO,CAAC;CAChB,GAAG,OAAO,CAAC,IAAI,CAAC,CA4ChB"}
@@ -0,0 +1,107 @@
1
+ import { readFile, writeFile } from "node:fs/promises";
2
+ import { join } from "node:path";
3
+ import { checkBackwardCompatibility } from "./compatibility_checker.js";
4
+ import { formatError, makeRed, renderBreakingChanges, renderErrors, } from "./error_renderer.js";
5
+ import { collectModules } from "./module_collector.js";
6
+ import { ModuleSet } from "./module_set.js";
7
+ export async function takeSnapshot(args) {
8
+ const newModuleSet = await collectModules(args.srcDir);
9
+ if (newModuleSet.errors.length) {
10
+ renderErrors(newModuleSet.errors);
11
+ process.exit(1);
12
+ }
13
+ const snapshotPath = join(args.rootDir, "skir-snapshot.json");
14
+ const oldModuleSet = await readLastSnapshot(join(args.rootDir, snapshotPath));
15
+ if (!(oldModuleSet instanceof ModuleSet)) {
16
+ console.error(makeRed(`Corrupted snapshot file: ${snapshotPath}`));
17
+ console.error(`Error: ${oldModuleSet.error.toString()}`);
18
+ console.log("If the snapshot file cannot be restored to a valid state, delete it and run again. " +
19
+ "Breaking changes from recent commits will not be detected, but a valid snapshot will be created for future comparisons.");
20
+ process.exit(1);
21
+ }
22
+ const breakingChanges = checkBackwardCompatibility({
23
+ before: oldModuleSet,
24
+ after: newModuleSet,
25
+ });
26
+ if (breakingChanges.length) {
27
+ renderBreakingChanges(breakingChanges, {
28
+ before: oldModuleSet,
29
+ after: newModuleSet,
30
+ });
31
+ process.exit(1);
32
+ }
33
+ const newSnapshot = makeSnapshot(newModuleSet, new Date());
34
+ if (sameModules(newSnapshot, makeSnapshot(oldModuleSet, new Date()))) {
35
+ console.log("No changes detected since last snapshot.");
36
+ return;
37
+ }
38
+ if (args.check) {
39
+ console.error(makeRed(`Modules have changed since the last snapshot. ` +
40
+ `Run the command without --check to take a new snapshot.`));
41
+ process.exit(1);
42
+ }
43
+ await writeFile(snapshotPath, JSON.stringify(newSnapshot, null, 2), "utf-8");
44
+ console.log("Snapshot taken. No breaking changes detected.");
45
+ }
46
+ async function readLastSnapshot(snapshotPath) {
47
+ let snapshot;
48
+ try {
49
+ const textContent = await readFile(snapshotPath, "utf-8");
50
+ snapshot = JSON.parse(textContent);
51
+ }
52
+ catch (error) {
53
+ if (error instanceof SyntaxError) {
54
+ return {
55
+ kind: "corrupted",
56
+ error: error,
57
+ };
58
+ }
59
+ const isNotFoundError = error instanceof Error && "code" in error && error.code === "ENOENT";
60
+ if (isNotFoundError) {
61
+ return ModuleSet.fromMap(new Map());
62
+ }
63
+ else {
64
+ // Rethrow I/O error
65
+ throw error;
66
+ }
67
+ }
68
+ const pathToSourceCode = new Map();
69
+ try {
70
+ for (const [path, sourceCode] of Object.entries(snapshot.modules)) {
71
+ // + "" to ensure string type
72
+ pathToSourceCode.set(path + "", sourceCode + "");
73
+ }
74
+ }
75
+ catch (error) {
76
+ return {
77
+ kind: "corrupted",
78
+ error: error,
79
+ };
80
+ }
81
+ const moduleSet = ModuleSet.fromMap(pathToSourceCode);
82
+ if (moduleSet.errors.length) {
83
+ const firstError = formatError(moduleSet.errors[0]);
84
+ return {
85
+ kind: "corrupted",
86
+ error: new Error(`errors in modules; first error: ${firstError}`),
87
+ };
88
+ }
89
+ return moduleSet;
90
+ }
91
+ function makeSnapshot(moduleSet, now) {
92
+ const modules = {};
93
+ for (const module of moduleSet.resolvedModules) {
94
+ modules[module.path] = module.sourceCode;
95
+ }
96
+ return {
97
+ lastChange: now.toISOString(),
98
+ modules: modules,
99
+ };
100
+ }
101
+ function sameModules(a, b) {
102
+ return (Object.keys(a.modules).length === Object.keys(b.modules).length ||
103
+ Object.entries(a.modules).every(([path, sourceCode]) => {
104
+ return sourceCode === b.modules[path];
105
+ }));
106
+ }
107
+ //# sourceMappingURL=snapshotter.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"snapshotter.js","sourceRoot":"","sources":["../src/snapshotter.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,4 @@
1
+ import type { Result, Token } from "./types.js";
2
+ /** Tokenizes the given module. */
3
+ export declare function tokenizeModule(code: string, modulePath: string, keepComments?: "keep-comments"): Result<Token[]>;
4
+ //# sourceMappingURL=tokenizer.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"tokenizer.d.ts","sourceRoot":"","sources":["../src/tokenizer.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAuB,MAAM,EAAa,KAAK,EAAE,MAAM,YAAY,CAAC;AAEhF,kCAAkC;AAClC,wBAAgB,cAAc,CAC5B,IAAI,EAAE,MAAM,EACZ,UAAU,EAAE,MAAM,EAClB,YAAY,CAAC,EAAE,eAAe,GAC7B,MAAM,CAAC,KAAK,EAAE,CAAC,CAyHjB"}
@@ -0,0 +1,192 @@
1
+ import { unquoteAndUnescape } from "./literals.js";
2
+ /** Tokenizes the given module. */
3
+ export function tokenizeModule(code, modulePath, keepComments) {
4
+ const tokens = [];
5
+ const errors = [];
6
+ const lines = new Lines(code, modulePath);
7
+ // Multiline comment: \/\*([^*]|\*[^\/])*(\*\/)?
8
+ // Single-line comment: \/\/[^\n\r]*
9
+ // Number: -?(0|[1-9][0-9]*)(\.[0-9]+)?\b
10
+ // Word: \b\w+\b
11
+ // Whitespaces: [ \n\r\t]+
12
+ // Symbol: \.\.|\{\||\|\}|[{}[\]()*.:=;|?,]
13
+ // Double-quote string literal: "(\\(\n|\r|\n\r|.)|[^\\\"\n\r])*"?
14
+ // Single-quote string literal: '(\\(\n|\r|\n\r|.)|[^\\\'\n\r])*'?
15
+ //
16
+ // To iterate on this regex, use https://regex101.com/.
17
+ const re = /(\/\*([^*]|\*[^/])*(\*\/)?)|(\/\/[^\n\r]*)|(-?(0|[1-9][0-9]*)(\.[0-9]+)?\b)|\b(\w+)\b|([ \n\r\t]+)|(\.\.|\{\||\|\}|[{}[\]()*.:=;|?,])|("(\\(\n|\r|\n\r|.)|[^\\"\n\r])*"?)|('(\\(\n|\r|\n\r|.)|[^\\'\n\r])*'?)|($)/g;
18
+ // 1 2 3 4 5 6 7 8 9 10 11 13 14 16 17
19
+ let group;
20
+ let expectedPosition = 0;
21
+ while ((group = re.exec(code)) !== null) {
22
+ const position = re.lastIndex - group[0].length;
23
+ // Check that all the regex matches are consecutive.
24
+ // If there is a gap between two matches, it means that we have an invalid
25
+ // sequence of characters.
26
+ if (position !== expectedPosition) {
27
+ const line = lines.advancePosition(expectedPosition);
28
+ const colNumber = expectedPosition - line.position;
29
+ errors.push({
30
+ token: {
31
+ text: code.substring(expectedPosition, position),
32
+ position: expectedPosition,
33
+ line: line,
34
+ colNumber: colNumber,
35
+ },
36
+ message: "Invalid sequence of characters",
37
+ });
38
+ }
39
+ expectedPosition = re.lastIndex;
40
+ const line = lines.advancePosition(position);
41
+ const colNumber = position - line.position;
42
+ const token = {
43
+ text: group[0],
44
+ position: position,
45
+ line: line,
46
+ colNumber: colNumber,
47
+ };
48
+ // Skip multiline comments.
49
+ if (group[1] !== undefined && !keepComments) {
50
+ // Make sure the multiline comment is terminated.
51
+ if (!group[1].endsWith("*/")) {
52
+ errors.push({
53
+ token: token,
54
+ message: "Unterminated multi-line comment",
55
+ });
56
+ }
57
+ continue;
58
+ }
59
+ // Skip single-line comments.
60
+ if (group[4] !== undefined && !keepComments) {
61
+ continue;
62
+ }
63
+ if (group[8] !== undefined) {
64
+ if (!validateWord(token, errors)) {
65
+ continue;
66
+ }
67
+ }
68
+ // Skip whitespaces.
69
+ if (group[9] !== undefined)
70
+ continue;
71
+ // Validate string literals.
72
+ const stringLiteral = group[11] || group[14];
73
+ if (stringLiteral !== undefined) {
74
+ if (!stringLiteral.endsWith(stringLiteral[0])) {
75
+ errors.push({
76
+ token: token,
77
+ message: "Unterminated string literal",
78
+ });
79
+ continue;
80
+ }
81
+ const stringLiteralRe = /^["'](\\(\r\n|u[0-9A-Fa-f]{4}|["'\\/bfnrt\n\r])|[^\\])*["']$/;
82
+ if (!stringLiteralRe.test(stringLiteral)) {
83
+ errors.push({
84
+ token: token,
85
+ message: "String literal contains invalid escape sequence",
86
+ });
87
+ continue;
88
+ }
89
+ // Check that the string doesn't contain lone surrogates.
90
+ // See https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String/isWellFormed
91
+ const unquoted = unquoteAndUnescape(stringLiteral);
92
+ try {
93
+ encodeURIComponent(unquoted);
94
+ }
95
+ catch {
96
+ errors.push({
97
+ token: token,
98
+ message: "String literal contains lone surrogates",
99
+ });
100
+ continue;
101
+ }
102
+ }
103
+ tokens.push(token);
104
+ if (group[17] !== undefined) {
105
+ // The end of the string has been reached.
106
+ // The last token we added is an empty string.
107
+ break;
108
+ }
109
+ }
110
+ return { result: tokens, errors: errors };
111
+ }
112
+ function validateWord(token, errors) {
113
+ if (/^[0-9]/.test(token.text)) {
114
+ errors.push({
115
+ token: token,
116
+ message: "Invalid number",
117
+ });
118
+ return false;
119
+ }
120
+ if (token.text.startsWith("_")) {
121
+ errors.push({
122
+ token: token,
123
+ message: "Identifier cannot start with _",
124
+ });
125
+ return false;
126
+ }
127
+ if (token.text.endsWith("_")) {
128
+ errors.push({
129
+ token: token,
130
+ message: "Identifier cannot end with _",
131
+ });
132
+ return false;
133
+ }
134
+ if (token.text.includes("__")) {
135
+ errors.push({
136
+ token: token,
137
+ message: "Identifier cannot contain __ sequence",
138
+ });
139
+ return false;
140
+ }
141
+ if (/_[0-9]/.test(token.text)) {
142
+ // The problem is we could end up with duplicate field names when converting
143
+ // to camel case. For example: "field0" and "field_0" would both be
144
+ // converted to "field0".
145
+ errors.push({
146
+ token: token,
147
+ message: "Digit cannot follow _",
148
+ });
149
+ return false;
150
+ }
151
+ return true;
152
+ }
153
+ class Lines {
154
+ /** Splits the given code into multiple lines. */
155
+ constructor(code, modulePath) {
156
+ this.lines = [];
157
+ const lines = this.lines;
158
+ let lineStart = 0;
159
+ let group;
160
+ const re = /\n|\r|\n\r|$/g;
161
+ while ((group = re.exec(code)) !== null) {
162
+ const match = group[0];
163
+ const lineEnd = re.lastIndex - match.length;
164
+ const lineString = code.substring(lineStart, lineEnd);
165
+ lines.push({
166
+ lineNumber: lines.length,
167
+ line: lineString,
168
+ position: lineStart,
169
+ modulePath: modulePath,
170
+ });
171
+ // Record the position after the EOL or EOF.
172
+ lineStart = re.lastIndex;
173
+ if (match === "") {
174
+ break;
175
+ }
176
+ }
177
+ }
178
+ /**
179
+ * Returns the line at the given position, where the position is the char
180
+ * index within `code`.
181
+ * Requires the position to be >= the position given the last time the method
182
+ * was called.
183
+ */
184
+ advancePosition(position) {
185
+ const lines = this.lines;
186
+ while (lines.length >= 2 && position >= this.lines[1].position) {
187
+ lines.shift();
188
+ }
189
+ return lines[0];
190
+ }
191
+ }
192
+ //# sourceMappingURL=tokenizer.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"tokenizer.js","sourceRoot":"","sources":["../src/tokenizer.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=tokenizer.test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"tokenizer.test.d.ts","sourceRoot":"","sources":["../src/tokenizer.test.ts"],"names":[],"mappings":""}