skir 1.2.3 → 1.2.5

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 (99) hide show
  1. package/README.md +1 -1
  2. package/dist/config_parser.d.ts.map +1 -1
  3. package/dist/module_collector.d.ts.map +1 -1
  4. package/dist/parser.d.ts.map +1 -1
  5. package/package.json +6 -4
  6. package/src/config_parser.ts +4 -1
  7. package/src/module_collector.ts +18 -20
  8. package/src/parser.ts +12 -0
  9. package/src/project_initializer.ts +18 -0
  10. package/dist/casing.d.ts +0 -5
  11. package/dist/casing.js +0 -23
  12. package/dist/casing.js.map +0 -1
  13. package/dist/command_line_parser.d.ts +0 -36
  14. package/dist/command_line_parser.d.ts.map +0 -1
  15. package/dist/command_line_parser.js +0 -240
  16. package/dist/command_line_parser.js.map +0 -1
  17. package/dist/compatibility_checker.d.ts +0 -74
  18. package/dist/compatibility_checker.js +0 -331
  19. package/dist/compatibility_checker.js.map +0 -1
  20. package/dist/compiler.d.ts +0 -3
  21. package/dist/compiler.js +0 -406
  22. package/dist/compiler.js.map +0 -1
  23. package/dist/completion_helper.d.ts +0 -27
  24. package/dist/completion_helper.js +0 -101
  25. package/dist/completion_helper.js.map +0 -1
  26. package/dist/config.d.ts +0 -18
  27. package/dist/config.js +0 -19
  28. package/dist/config.js.map +0 -1
  29. package/dist/config_parser.d.ts +0 -34
  30. package/dist/config_parser.js +0 -214
  31. package/dist/config_parser.js.map +0 -1
  32. package/dist/definition_finder.d.ts +0 -16
  33. package/dist/definition_finder.js +0 -375
  34. package/dist/definition_finder.js.map +0 -1
  35. package/dist/dependency_manager.d.ts +0 -14
  36. package/dist/dependency_manager.js +0 -109
  37. package/dist/dependency_manager.js.map +0 -1
  38. package/dist/doc_comment_parser.d.ts +0 -6
  39. package/dist/doc_comment_parser.js +0 -269
  40. package/dist/doc_comment_parser.js.map +0 -1
  41. package/dist/doc_reference_resolver.d.ts +0 -5
  42. package/dist/doc_reference_resolver.js +0 -232
  43. package/dist/doc_reference_resolver.js.map +0 -1
  44. package/dist/error_renderer.d.ts +0 -24
  45. package/dist/error_renderer.js +0 -326
  46. package/dist/error_renderer.js.map +0 -1
  47. package/dist/exit_error.d.ts +0 -8
  48. package/dist/exit_error.d.ts.map +0 -1
  49. package/dist/exit_error.js +0 -8
  50. package/dist/exit_error.js.map +0 -1
  51. package/dist/expected_names.d.ts +0 -11
  52. package/dist/expected_names.js +0 -34
  53. package/dist/expected_names.js.map +0 -1
  54. package/dist/formatter.d.ts +0 -28
  55. package/dist/formatter.js +0 -338
  56. package/dist/formatter.js.map +0 -1
  57. package/dist/get_dependencies_flow.d.ts +0 -40
  58. package/dist/get_dependencies_flow.js +0 -177
  59. package/dist/get_dependencies_flow.js.map +0 -1
  60. package/dist/import_block_formatter.d.ts +0 -3
  61. package/dist/import_block_formatter.js +0 -36
  62. package/dist/import_block_formatter.js.map +0 -1
  63. package/dist/index.d.ts +0 -2
  64. package/dist/index.d.ts.map +0 -1
  65. package/dist/index.js +0 -2
  66. package/dist/index.js.map +0 -1
  67. package/dist/io.d.ts +0 -23
  68. package/dist/io.d.ts.map +0 -1
  69. package/dist/io.js +0 -58
  70. package/dist/io.js.map +0 -1
  71. package/dist/literals.d.ts +0 -12
  72. package/dist/literals.js +0 -96
  73. package/dist/literals.js.map +0 -1
  74. package/dist/module_collector.d.ts +0 -9
  75. package/dist/module_collector.js +0 -75
  76. package/dist/module_collector.js.map +0 -1
  77. package/dist/module_set.d.ts +0 -51
  78. package/dist/module_set.js +0 -1331
  79. package/dist/module_set.js.map +0 -1
  80. package/dist/package_downloader.d.ts +0 -4
  81. package/dist/package_downloader.js +0 -256
  82. package/dist/package_downloader.js.map +0 -1
  83. package/dist/package_types.d.ts +0 -30
  84. package/dist/package_types.d.ts.map +0 -1
  85. package/dist/package_types.js +0 -2
  86. package/dist/package_types.js.map +0 -1
  87. package/dist/parser.d.ts +0 -7
  88. package/dist/parser.js +0 -1323
  89. package/dist/parser.js.map +0 -1
  90. package/dist/project_initializer.d.ts +0 -2
  91. package/dist/project_initializer.d.ts.map +0 -1
  92. package/dist/project_initializer.js +0 -189
  93. package/dist/project_initializer.js.map +0 -1
  94. package/dist/snapshotter.d.ts +0 -16
  95. package/dist/snapshotter.js +0 -263
  96. package/dist/snapshotter.js.map +0 -1
  97. package/dist/tokenizer.d.ts +0 -18
  98. package/dist/tokenizer.js +0 -244
  99. package/dist/tokenizer.js.map +0 -1
@@ -1,214 +0,0 @@
1
- import * as CcGen from "skir-cc-gen";
2
- import * as DartGen from "skir-dart-gen";
3
- import * as GoGen from "skir-go-gen";
4
- import * as JavaGen from "skir-java-gen";
5
- import * as KotlinGen from "skir-kotlin-gen";
6
- import * as PythonGen from "skir-python-gen";
7
- import * as RustGen from "skir-rust-gen";
8
- import * as SwiftGen from "skir-swift-gen";
9
- import * as TypescriptGen from "skir-typescript-gen";
10
- import { LineCounter, parseDocument } from "yaml";
11
- import { SkirConfig } from "./config.js";
12
- /** Synchronous version - doesn't import any module. */
13
- export function parseSkirConfig(yamlCode) {
14
- return parseSkirConfigInternal(yamlCode, (mod) => STATIC_GENERATORS[mod]);
15
- }
16
- /** Async version - dynamically imports generator modules. */
17
- export async function parseSkirConfigWithDynamicImports(yamlCode) {
18
- return parseSkirConfigInternalAsync(yamlCode, importCodeGenerator);
19
- }
20
- export async function importCodeGenerator(mod) {
21
- const module = await import(mod);
22
- const generator = module.GENERATOR;
23
- if (typeof generator !== "object") {
24
- throw new Error(`Cannot import GENERATOR from module ${mod}`);
25
- }
26
- return generator;
27
- }
28
- function parseYaml(yamlCode) {
29
- const errors = [];
30
- // 1. Parse YAML into a Document object
31
- const lineCounter = new LineCounter();
32
- const doc = parseDocument(yamlCode, { lineCounter });
33
- const offsetToPos = (offset) => {
34
- const pos = lineCounter.linePos(offset);
35
- return {
36
- offset: offset,
37
- lineNumber: pos.line,
38
- colNumber: pos.col,
39
- };
40
- };
41
- const offsetRangeToRange = (start, end) => ({
42
- start: offsetToPos(start),
43
- end: offsetToPos(end),
44
- });
45
- const pathToRange = (path) => {
46
- const node = doc.getIn(path, true);
47
- if (!node || !node.range) {
48
- return undefined;
49
- }
50
- return offsetRangeToRange(node.range[0], node.range[1]);
51
- };
52
- const pushErrorAtPath = (path, message) => {
53
- const pathRemainder = [];
54
- while (path.length !== 0) {
55
- const range = pathToRange(path);
56
- if (range) {
57
- break;
58
- }
59
- else {
60
- // It's possible that 'path' does not map to a node if 'path' refers to
61
- // a property which is missing. In that case, we pop the last element
62
- // of 'path' and try again, until we find a node that exists. The
63
- // elements which were popped will be included in the error message.
64
- pathRemainder.push(path.at(-1));
65
- path = path.slice(0, -1);
66
- }
67
- }
68
- pathRemainder.reverse();
69
- const pathRemainderStr = pathRemainder
70
- .map((p, i) => typeof p === "number" ? `[${p}]` : i === 0 ? p : `.${String(p)}`)
71
- .join("");
72
- const messagePrefix = pathRemainder.length
73
- ? `Missing property '${pathRemainderStr}': `
74
- : "";
75
- const range = pathToRange(path);
76
- errors.push({
77
- message: messagePrefix + message,
78
- range: range,
79
- });
80
- };
81
- // Check for YAML parsing errors
82
- if (doc.errors.length > 0) {
83
- for (const error of doc.errors) {
84
- const range = offsetRangeToRange(error.pos[0], error.pos[1]);
85
- errors.push({
86
- message: error.message,
87
- range: range,
88
- });
89
- }
90
- return {
91
- earlyReturn: {
92
- skirConfig: undefined,
93
- errors: errors,
94
- },
95
- zodResult: { success: false },
96
- errors,
97
- pushErrorAtPath,
98
- };
99
- }
100
- // 2. Validate with Zod schema
101
- const jsData = doc.toJS();
102
- const zodResult = SkirConfig.safeParse(jsData);
103
- if (!zodResult.success) {
104
- for (const issue of zodResult.error.issues) {
105
- pushErrorAtPath(issue.path, issue.message);
106
- }
107
- const maybeForgotToEditAfterInit = jsData &&
108
- typeof jsData === "object" &&
109
- "generators" in jsData &&
110
- jsData.generators === null
111
- ? true
112
- : false;
113
- return {
114
- earlyReturn: {
115
- skirConfig: undefined,
116
- errors: errors,
117
- maybeForgotToEditAfterInit,
118
- },
119
- zodResult,
120
- errors,
121
- pushErrorAtPath,
122
- };
123
- }
124
- return {
125
- zodResult,
126
- errors,
127
- pushErrorAtPath,
128
- };
129
- }
130
- function parseSkirConfigInternal(yamlCode, getGenerator) {
131
- const { earlyReturn, errors, zodResult, pushErrorAtPath } = parseYaml(yamlCode);
132
- if (earlyReturn) {
133
- return earlyReturn;
134
- }
135
- // Validate each generator's config with Zod schema
136
- for (let i = 0; i < zodResult.data.generators.length; i++) {
137
- const generatorConfig = zodResult.data.generators[i];
138
- const { mod } = generatorConfig;
139
- const generator = getGenerator(mod);
140
- if (generator) {
141
- const parsedGeneratorConfig = generator.configType.safeParse(generatorConfig.config);
142
- if (!parsedGeneratorConfig.success) {
143
- for (const issue of parsedGeneratorConfig.error.issues) {
144
- const path = [
145
- "generators",
146
- i,
147
- "config",
148
- ...issue.path,
149
- ];
150
- pushErrorAtPath(path, issue.message ?? "Error");
151
- }
152
- }
153
- }
154
- }
155
- if (errors.length > 0) {
156
- return { skirConfig: undefined, errors: errors };
157
- }
158
- return { skirConfig: zodResult.data, errors: [] };
159
- }
160
- async function parseSkirConfigInternalAsync(yamlCode, getGenerator) {
161
- const { earlyReturn, errors, zodResult, pushErrorAtPath } = parseYaml(yamlCode);
162
- if (earlyReturn) {
163
- return earlyReturn;
164
- }
165
- // Validate each generator's config with Zod schema
166
- for (let i = 0; i < zodResult.data.generators.length; i++) {
167
- const generatorConfig = zodResult.data.generators[i];
168
- const { mod } = generatorConfig;
169
- let generator;
170
- try {
171
- generator = await getGenerator(mod);
172
- }
173
- catch (e) {
174
- if (e instanceof Error) {
175
- pushErrorAtPath(["generators", i, "mod"], e.message);
176
- continue;
177
- }
178
- else {
179
- throw e;
180
- }
181
- }
182
- if (generator) {
183
- const parsedGeneratorConfig = generator.configType.safeParse(generatorConfig.config);
184
- if (!parsedGeneratorConfig.success) {
185
- for (const issue of parsedGeneratorConfig.error.issues) {
186
- const path = [
187
- "generators",
188
- i,
189
- "config",
190
- ...issue.path,
191
- ];
192
- pushErrorAtPath(path, issue.message ?? "Error");
193
- }
194
- }
195
- }
196
- }
197
- if (errors.length > 0) {
198
- return { skirConfig: undefined, errors: errors };
199
- }
200
- return { skirConfig: zodResult.data, errors: [] };
201
- }
202
- // TODO: remove the casts
203
- const STATIC_GENERATORS = {
204
- "skir-cc-gen": CcGen.GENERATOR,
205
- "skir-dart-gen": DartGen.GENERATOR,
206
- "skir-go-gen": GoGen.GENERATOR,
207
- "skir-java-gen": JavaGen.GENERATOR,
208
- "skir-kotlin-gen": KotlinGen.GENERATOR,
209
- "skir-python-gen": PythonGen.GENERATOR,
210
- "skir-rust-gen": RustGen.GENERATOR,
211
- "skir-swift-gen": SwiftGen.GENERATOR,
212
- "skir-typescript-gen": TypescriptGen.GENERATOR,
213
- };
214
- //# sourceMappingURL=config_parser.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"config_parser.js","sourceRoot":"","sources":["../src/config_parser.ts"],"names":[],"mappings":"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"}
@@ -1,16 +0,0 @@
1
- /**
2
- * Utilities to help implement the jump-to-definition functionality for skir
3
- * files in IDEs.
4
- */
5
- import { type Constant, type Field, type ImportAlias, type Method, type Module, type Record, type Token } from "skir-internal";
6
- export interface DefinitionMatch {
7
- /** Module containing the definition. */
8
- modulePath: string;
9
- /** Position of the definition within the module. */
10
- declaration: Constant | Field | ImportAlias | Method | Record | undefined;
11
- /** Token which got hovered. */
12
- referenceToken: Token;
13
- }
14
- export declare function findDefinition(module: Module, position: number): DefinitionMatch | null;
15
- export declare function findReferences(definition: Token, modules: readonly Module[]): Token[];
16
- //# sourceMappingURL=definition_finder.d.ts.map
@@ -1,375 +0,0 @@
1
- /**
2
- * Utilities to help implement the jump-to-definition functionality for skir
3
- * files in IDEs.
4
- */
5
- import { unquoteAndUnescape, } from "skir-internal";
6
- export function findDefinition(module, position) {
7
- return findDefinitionInDeclarations(module.declarations, position);
8
- }
9
- function findDefinitionInDeclarations(declarations, position) {
10
- for (const declaration of declarations) {
11
- const maybeMatch = findDefinitionInDeclaration(declaration, position);
12
- if (maybeMatch) {
13
- return maybeMatch;
14
- }
15
- }
16
- return null;
17
- }
18
- function findDefinitionInDeclaration(declaration, position) {
19
- // First, look for a match in the doc comment.
20
- switch (declaration.kind) {
21
- case "import":
22
- case "import-alias":
23
- case "removed":
24
- // No doc.
25
- break;
26
- default: {
27
- for (const docPiece of declaration.doc.pieces) {
28
- if (docPiece.kind === "reference") {
29
- for (const namePart of docPiece.nameParts) {
30
- if (tokenContains(namePart.token, position)) {
31
- const { declaration } = namePart;
32
- if (declaration) {
33
- return declarationToMatch(declaration, namePart.token);
34
- }
35
- else {
36
- return null;
37
- }
38
- }
39
- }
40
- }
41
- }
42
- }
43
- }
44
- // If the position lands on the declaration's own name token, return it as
45
- // its own definition.
46
- switch (declaration.kind) {
47
- case "constant":
48
- case "field":
49
- case "import-alias":
50
- case "method":
51
- case "record": {
52
- if (tokenContains(declaration.name, position)) {
53
- return declarationToMatch(declaration, declaration.name);
54
- }
55
- break;
56
- }
57
- }
58
- // Then look for a match in the declaration itself.
59
- switch (declaration.kind) {
60
- case "constant": {
61
- if (declaration.type) {
62
- const maybeMatch = findDefinitionInResolvedType(declaration.type, position);
63
- if (maybeMatch) {
64
- return maybeMatch;
65
- }
66
- }
67
- const maybeMatch = findDefinitionInValue(declaration.value, position);
68
- if (maybeMatch) {
69
- return maybeMatch;
70
- }
71
- return null;
72
- }
73
- case "field": {
74
- if (declaration.type) {
75
- return findDefinitionInResolvedType(declaration.type, position);
76
- }
77
- return null;
78
- }
79
- case "import":
80
- case "import-alias": {
81
- if (tokenContains(declaration.modulePath, position) &&
82
- declaration.resolvedModulePath) {
83
- return {
84
- modulePath: declaration.resolvedModulePath,
85
- declaration: undefined,
86
- referenceToken: declaration.modulePath,
87
- };
88
- }
89
- return null;
90
- }
91
- case "method": {
92
- if (declaration.requestType) {
93
- const maybeMatch = findDefinitionInResolvedType(declaration.requestType, position);
94
- if (maybeMatch) {
95
- return maybeMatch;
96
- }
97
- }
98
- if (declaration.responseType) {
99
- const maybeMatch = findDefinitionInResolvedType(declaration.responseType, position);
100
- if (maybeMatch) {
101
- return maybeMatch;
102
- }
103
- }
104
- return null;
105
- }
106
- case "record": {
107
- return (findDefinitionInDeclarations(declaration.fields, position) ??
108
- findDefinitionInDeclarations(declaration.nestedRecords, position));
109
- }
110
- case "removed": {
111
- return null;
112
- }
113
- }
114
- }
115
- function findDefinitionInResolvedType(type, position) {
116
- switch (type.kind) {
117
- case "array": {
118
- if (type.key) {
119
- for (const item of type.key.path) {
120
- if (tokenContains(item.name, position)) {
121
- const { declaration } = item;
122
- if (declaration) {
123
- return declarationToMatch(declaration, item.name);
124
- }
125
- }
126
- }
127
- }
128
- return findDefinitionInResolvedType(type.item, position);
129
- }
130
- case "optional": {
131
- return findDefinitionInResolvedType(type.other, position);
132
- }
133
- case "primitive": {
134
- return null;
135
- }
136
- case "record": {
137
- for (const namePart of type.nameParts) {
138
- if (tokenContains(namePart.token, position)) {
139
- return declarationToMatch(namePart.declaration, namePart.token);
140
- }
141
- }
142
- return null;
143
- }
144
- }
145
- }
146
- function findDefinitionInValue(value, position) {
147
- switch (value.kind) {
148
- case "array": {
149
- for (const item of value.items) {
150
- const maybeMatch = findDefinitionInValue(item, position);
151
- if (maybeMatch) {
152
- return maybeMatch;
153
- }
154
- }
155
- return null;
156
- }
157
- case "object": {
158
- if (!value.record) {
159
- return null;
160
- }
161
- if (value.record.recordType === "struct") {
162
- // Look for a match with a field name.
163
- for (const entry of Object.values(value.entries)) {
164
- if (tokenContains(entry.name, position)) {
165
- const { fieldDeclaration } = entry;
166
- if (fieldDeclaration) {
167
- return declarationToMatch(fieldDeclaration, entry.name);
168
- }
169
- else {
170
- return null;
171
- }
172
- }
173
- }
174
- }
175
- else {
176
- // An enum. Look for a match with the "kind" field.
177
- const kindEntry = value.entries["kind"];
178
- if (kindEntry && isStringLiteral(kindEntry.value)) {
179
- if (tokenContains(kindEntry.value.token, position)) {
180
- const variantName = unquoteAndUnescape(kindEntry.value.token.text);
181
- const variantDeclaration = value.record.nameToDeclaration[variantName];
182
- if (variantDeclaration?.kind === "field") {
183
- return declarationToMatch(variantDeclaration, kindEntry.value.token);
184
- }
185
- }
186
- else {
187
- return null;
188
- }
189
- }
190
- }
191
- // Look for a match within the field values.
192
- for (const entry of Object.values(value.entries)) {
193
- const maybeMatch = findDefinitionInValue(entry.value, position);
194
- if (maybeMatch) {
195
- return maybeMatch;
196
- }
197
- }
198
- return null;
199
- }
200
- case "literal": {
201
- if (isStringLiteral(value) && value.type?.kind === "enum") {
202
- const { variant } = value.type;
203
- return declarationToMatch(variant, value.token);
204
- }
205
- return null;
206
- }
207
- }
208
- }
209
- function tokenContains(token, position) {
210
- const end = token.position + token.text.length;
211
- return position >= token.position && position <= end;
212
- }
213
- function declarationToMatch(declaration, referenceToken) {
214
- const { name } = declaration;
215
- return {
216
- modulePath: name.line.modulePath,
217
- declaration: declaration,
218
- referenceToken,
219
- };
220
- }
221
- function isStringLiteral(value) {
222
- return value.kind === "literal" && /^["']/.test(value.token.text);
223
- }
224
- // -----------------------------------------------------------------------------
225
- // REFERENCES FINDER
226
- // -----------------------------------------------------------------------------
227
- export function findReferences(definition, modules) {
228
- const references = [];
229
- for (const module of modules) {
230
- findReferencesInDeclarations(definition, module.declarations, references);
231
- }
232
- return references;
233
- }
234
- function findReferencesInDeclarations(definition, declarations, references) {
235
- for (const declaration of declarations) {
236
- findReferencesInDeclaration(definition, declaration, references);
237
- }
238
- }
239
- function findReferencesInDeclaration(definition, declaration, references) {
240
- // First, collect references from the doc comment.
241
- switch (declaration.kind) {
242
- case "import":
243
- case "import-alias":
244
- case "removed":
245
- // No doc.
246
- break;
247
- default: {
248
- for (const docPiece of declaration.doc.pieces) {
249
- if (docPiece.kind === "reference") {
250
- for (const namePart of docPiece.nameParts) {
251
- if (namePart.declaration?.name === definition) {
252
- references.push(namePart.token);
253
- }
254
- }
255
- }
256
- }
257
- }
258
- }
259
- // Then collect references from the declaration body.
260
- switch (declaration.kind) {
261
- case "constant": {
262
- if (declaration.type) {
263
- findReferencesInResolvedType(definition, declaration.type, references);
264
- }
265
- findReferencesInValue(definition, declaration.value, references);
266
- break;
267
- }
268
- case "field": {
269
- if (declaration.type) {
270
- findReferencesInResolvedType(definition, declaration.type, references);
271
- }
272
- break;
273
- }
274
- case "import":
275
- case "import-alias": {
276
- // Module path tokens are not declaration references.
277
- break;
278
- }
279
- case "method": {
280
- if (declaration.requestType) {
281
- findReferencesInResolvedType(definition, declaration.requestType, references);
282
- }
283
- if (declaration.responseType) {
284
- findReferencesInResolvedType(definition, declaration.responseType, references);
285
- }
286
- break;
287
- }
288
- case "record": {
289
- findReferencesInDeclarations(definition, declaration.fields, references);
290
- break;
291
- }
292
- case "removed": {
293
- break;
294
- }
295
- }
296
- }
297
- function findReferencesInResolvedType(definition, type, references) {
298
- switch (type.kind) {
299
- case "array": {
300
- if (type.key) {
301
- for (const item of type.key.path) {
302
- if (item.declaration?.name === definition) {
303
- references.push(item.name);
304
- }
305
- }
306
- }
307
- findReferencesInResolvedType(definition, type.item, references);
308
- break;
309
- }
310
- case "optional": {
311
- findReferencesInResolvedType(definition, type.other, references);
312
- break;
313
- }
314
- case "primitive": {
315
- break;
316
- }
317
- case "record": {
318
- for (const namePart of type.nameParts) {
319
- if (namePart.declaration.name === definition) {
320
- references.push(namePart.token);
321
- }
322
- }
323
- break;
324
- }
325
- }
326
- }
327
- function findReferencesInValue(definition, value, references) {
328
- switch (value.kind) {
329
- case "array": {
330
- for (const item of value.items) {
331
- findReferencesInValue(definition, item, references);
332
- }
333
- break;
334
- }
335
- case "object": {
336
- if (!value.record) {
337
- break;
338
- }
339
- if (value.record.recordType === "struct") {
340
- // Check field name keys, then recurse into field values.
341
- for (const entry of Object.values(value.entries)) {
342
- if (entry.fieldDeclaration?.name === definition) {
343
- references.push(entry.name);
344
- }
345
- findReferencesInValue(definition, entry.value, references);
346
- }
347
- }
348
- else {
349
- // An enum. Only the "kind" token is a navigable reference — mirrors
350
- // findDefinition's behavior of returning null when the position is
351
- // not within the kind token.
352
- const kindEntry = value.entries["kind"];
353
- if (kindEntry && kindEntry.value.kind === "literal") {
354
- const variantName = unquoteAndUnescape(kindEntry.value.token.text);
355
- const variantDeclaration = value.record.nameToDeclaration[variantName];
356
- if (variantDeclaration?.kind === "field" &&
357
- variantDeclaration.name === definition) {
358
- references.push(kindEntry.value.token);
359
- }
360
- }
361
- }
362
- break;
363
- }
364
- case "literal": {
365
- if (isStringLiteral(value) && value.type?.kind === "enum") {
366
- const { variant } = value.type;
367
- if (variant.name === definition) {
368
- references.push(value.token);
369
- }
370
- }
371
- break;
372
- }
373
- }
374
- }
375
- //# sourceMappingURL=definition_finder.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"definition_finder.js","sourceRoot":"","sources":["../src/definition_finder.ts"],"names":[],"mappings":"AAAA;;;GAGG;AACH,OAAO,EACL,kBAAkB,GAWnB,MAAM,eAAe,CAAC;AAWvB,MAAM,UAAU,cAAc,CAC5B,MAAc,EACd,QAAgB;IAEhB,OAAO,4BAA4B,CAAC,MAAM,CAAC,YAAY,EAAE,QAAQ,CAAC,CAAC;AACrE,CAAC;AAED,SAAS,4BAA4B,CACnC,YAAoC,EACpC,QAAgB;IAEhB,KAAK,MAAM,WAAW,IAAI,YAAY,EAAE,CAAC;QACvC,MAAM,UAAU,GAAG,2BAA2B,CAAC,WAAW,EAAE,QAAQ,CAAC,CAAC;QACtE,IAAI,UAAU,EAAE,CAAC;YACf,OAAO,UAAU,CAAC;QACpB,CAAC;IACH,CAAC;IACD,OAAO,IAAI,CAAC;AACd,CAAC;AAED,SAAS,2BAA2B,CAClC,WAAwB,EACxB,QAAgB;IAEhB,8CAA8C;IAC9C,QAAQ,WAAW,CAAC,IAAI,EAAE,CAAC;QACzB,KAAK,QAAQ,CAAC;QACd,KAAK,cAAc,CAAC;QACpB,KAAK,SAAS;YACZ,UAAU;YACV,MAAM;QACR,OAAO,CAAC,CAAC,CAAC;YACR,KAAK,MAAM,QAAQ,IAAI,WAAW,CAAC,GAAG,CAAC,MAAM,EAAE,CAAC;gBAC9C,IAAI,QAAQ,CAAC,IAAI,KAAK,WAAW,EAAE,CAAC;oBAClC,KAAK,MAAM,QAAQ,IAAI,QAAQ,CAAC,SAAS,EAAE,CAAC;wBAC1C,IAAI,aAAa,CAAC,QAAQ,CAAC,KAAK,EAAE,QAAQ,CAAC,EAAE,CAAC;4BAC5C,MAAM,EAAE,WAAW,EAAE,GAAG,QAAQ,CAAC;4BACjC,IAAI,WAAW,EAAE,CAAC;gCAChB,OAAO,kBAAkB,CAAC,WAAW,EAAE,QAAQ,CAAC,KAAK,CAAC,CAAC;4BACzD,CAAC;iCAAM,CAAC;gCACN,OAAO,IAAI,CAAC;4BACd,CAAC;wBACH,CAAC;oBACH,CAAC;gBACH,CAAC;YACH,CAAC;QACH,CAAC;IACH,CAAC;IAED,0EAA0E;IAC1E,sBAAsB;IACtB,QAAQ,WAAW,CAAC,IAAI,EAAE,CAAC;QACzB,KAAK,UAAU,CAAC;QAChB,KAAK,OAAO,CAAC;QACb,KAAK,cAAc,CAAC;QACpB,KAAK,QAAQ,CAAC;QACd,KAAK,QAAQ,CAAC,CAAC,CAAC;YACd,IAAI,aAAa,CAAC,WAAW,CAAC,IAAI,EAAE,QAAQ,CAAC,EAAE,CAAC;gBAC9C,OAAO,kBAAkB,CAAC,WAAW,EAAE,WAAW,CAAC,IAAI,CAAC,CAAC;YAC3D,CAAC;YACD,MAAM;QACR,CAAC;IACH,CAAC;IAED,mDAAmD;IACnD,QAAQ,WAAW,CAAC,IAAI,EAAE,CAAC;QACzB,KAAK,UAAU,CAAC,CAAC,CAAC;YAChB,IAAI,WAAW,CAAC,IAAI,EAAE,CAAC;gBACrB,MAAM,UAAU,GAAG,4BAA4B,CAC7C,WAAW,CAAC,IAAI,EAChB,QAAQ,CACT,CAAC;gBACF,IAAI,UAAU,EAAE,CAAC;oBACf,OAAO,UAAU,CAAC;gBACpB,CAAC;YACH,CAAC;YAED,MAAM,UAAU,GAAG,qBAAqB,CAAC,WAAW,CAAC,KAAK,EAAE,QAAQ,CAAC,CAAC;YACtE,IAAI,UAAU,EAAE,CAAC;gBACf,OAAO,UAAU,CAAC;YACpB,CAAC;YAED,OAAO,IAAI,CAAC;QACd,CAAC;QACD,KAAK,OAAO,CAAC,CAAC,CAAC;YACb,IAAI,WAAW,CAAC,IAAI,EAAE,CAAC;gBACrB,OAAO,4BAA4B,CAAC,WAAW,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAC;YAClE,CAAC;YACD,OAAO,IAAI,CAAC;QACd,CAAC;QACD,KAAK,QAAQ,CAAC;QACd,KAAK,cAAc,CAAC,CAAC,CAAC;YACpB,IACE,aAAa,CAAC,WAAW,CAAC,UAAU,EAAE,QAAQ,CAAC;gBAC/C,WAAW,CAAC,kBAAkB,EAC9B,CAAC;gBACD,OAAO;oBACL,UAAU,EAAE,WAAW,CAAC,kBAAkB;oBAC1C,WAAW,EAAE,SAAS;oBACtB,cAAc,EAAE,WAAW,CAAC,UAAU;iBACvC,CAAC;YACJ,CAAC;YACD,OAAO,IAAI,CAAC;QACd,CAAC;QACD,KAAK,QAAQ,CAAC,CAAC,CAAC;YACd,IAAI,WAAW,CAAC,WAAW,EAAE,CAAC;gBAC5B,MAAM,UAAU,GAAG,4BAA4B,CAC7C,WAAW,CAAC,WAAW,EACvB,QAAQ,CACT,CAAC;gBACF,IAAI,UAAU,EAAE,CAAC;oBACf,OAAO,UAAU,CAAC;gBACpB,CAAC;YACH,CAAC;YACD,IAAI,WAAW,CAAC,YAAY,EAAE,CAAC;gBAC7B,MAAM,UAAU,GAAG,4BAA4B,CAC7C,WAAW,CAAC,YAAY,EACxB,QAAQ,CACT,CAAC;gBACF,IAAI,UAAU,EAAE,CAAC;oBACf,OAAO,UAAU,CAAC;gBACpB,CAAC;YACH,CAAC;YACD,OAAO,IAAI,CAAC;QACd,CAAC;QACD,KAAK,QAAQ,CAAC,CAAC,CAAC;YACd,OAAO,CACL,4BAA4B,CAAC,WAAW,CAAC,MAAM,EAAE,QAAQ,CAAC;gBAC1D,4BAA4B,CAAC,WAAW,CAAC,aAAa,EAAE,QAAQ,CAAC,CAClE,CAAC;QACJ,CAAC;QACD,KAAK,SAAS,CAAC,CAAC,CAAC;YACf,OAAO,IAAI,CAAC;QACd,CAAC;IACH,CAAC;AACH,CAAC;AAED,SAAS,4BAA4B,CACnC,IAAkB,EAClB,QAAgB;IAEhB,QAAQ,IAAI,CAAC,IAAI,EAAE,CAAC;QAClB,KAAK,OAAO,CAAC,CAAC,CAAC;YACb,IAAI,IAAI,CAAC,GAAG,EAAE,CAAC;gBACb,KAAK,MAAM,IAAI,IAAI,IAAI,CAAC,GAAG,CAAC,IAAI,EAAE,CAAC;oBACjC,IAAI,aAAa,CAAC,IAAI,CAAC,IAAI,EAAE,QAAQ,CAAC,EAAE,CAAC;wBACvC,MAAM,EAAE,WAAW,EAAE,GAAG,IAAI,CAAC;wBAC7B,IAAI,WAAW,EAAE,CAAC;4BAChB,OAAO,kBAAkB,CAAC,WAAW,EAAE,IAAI,CAAC,IAAI,CAAC,CAAC;wBACpD,CAAC;oBACH,CAAC;gBACH,CAAC;YACH,CAAC;YACD,OAAO,4BAA4B,CAAC,IAAI,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAC;QAC3D,CAAC;QACD,KAAK,UAAU,CAAC,CAAC,CAAC;YAChB,OAAO,4BAA4B,CAAC,IAAI,CAAC,KAAK,EAAE,QAAQ,CAAC,CAAC;QAC5D,CAAC;QACD,KAAK,WAAW,CAAC,CAAC,CAAC;YACjB,OAAO,IAAI,CAAC;QACd,CAAC;QACD,KAAK,QAAQ,CAAC,CAAC,CAAC;YACd,KAAK,MAAM,QAAQ,IAAI,IAAI,CAAC,SAAS,EAAE,CAAC;gBACtC,IAAI,aAAa,CAAC,QAAQ,CAAC,KAAK,EAAE,QAAQ,CAAC,EAAE,CAAC;oBAC5C,OAAO,kBAAkB,CAAC,QAAQ,CAAC,WAAW,EAAE,QAAQ,CAAC,KAAK,CAAC,CAAC;gBAClE,CAAC;YACH,CAAC;YACD,OAAO,IAAI,CAAC;QACd,CAAC;IACH,CAAC;AACH,CAAC;AAED,SAAS,qBAAqB,CAC5B,KAAY,EACZ,QAAgB;IAEhB,QAAQ,KAAK,CAAC,IAAI,EAAE,CAAC;QACnB,KAAK,OAAO,CAAC,CAAC,CAAC;YACb,KAAK,MAAM,IAAI,IAAI,KAAK,CAAC,KAAK,EAAE,CAAC;gBAC/B,MAAM,UAAU,GAAG,qBAAqB,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAC;gBACzD,IAAI,UAAU,EAAE,CAAC;oBACf,OAAO,UAAU,CAAC;gBACpB,CAAC;YACH,CAAC;YACD,OAAO,IAAI,CAAC;QACd,CAAC;QACD,KAAK,QAAQ,CAAC,CAAC,CAAC;YACd,IAAI,CAAC,KAAK,CAAC,MAAM,EAAE,CAAC;gBAClB,OAAO,IAAI,CAAC;YACd,CAAC;YACD,IAAI,KAAK,CAAC,MAAM,CAAC,UAAU,KAAK,QAAQ,EAAE,CAAC;gBACzC,sCAAsC;gBACtC,KAAK,MAAM,KAAK,IAAI,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,OAAO,CAAC,EAAE,CAAC;oBACjD,IAAI,aAAa,CAAC,KAAK,CAAC,IAAI,EAAE,QAAQ,CAAC,EAAE,CAAC;wBACxC,MAAM,EAAE,gBAAgB,EAAE,GAAG,KAAK,CAAC;wBACnC,IAAI,gBAAgB,EAAE,CAAC;4BACrB,OAAO,kBAAkB,CAAC,gBAAgB,EAAE,KAAK,CAAC,IAAI,CAAC,CAAC;wBAC1D,CAAC;6BAAM,CAAC;4BACN,OAAO,IAAI,CAAC;wBACd,CAAC;oBACH,CAAC;gBACH,CAAC;YACH,CAAC;iBAAM,CAAC;gBACN,mDAAmD;gBACnD,MAAM,SAAS,GAAG,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;gBACxC,IAAI,SAAS,IAAI,eAAe,CAAC,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC;oBAClD,IAAI,aAAa,CAAC,SAAS,CAAC,KAAK,CAAC,KAAK,EAAE,QAAQ,CAAC,EAAE,CAAC;wBACnD,MAAM,WAAW,GAAG,kBAAkB,CAAC,SAAS,CAAC,KAAK,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;wBACnE,MAAM,kBAAkB,GACtB,KAAK,CAAC,MAAM,CAAC,iBAAiB,CAAC,WAAW,CAAC,CAAC;wBAC9C,IAAI,kBAAkB,EAAE,IAAI,KAAK,OAAO,EAAE,CAAC;4BACzC,OAAO,kBAAkB,CACvB,kBAAkB,EAClB,SAAS,CAAC,KAAK,CAAC,KAAK,CACtB,CAAC;wBACJ,CAAC;oBACH,CAAC;yBAAM,CAAC;wBACN,OAAO,IAAI,CAAC;oBACd,CAAC;gBACH,CAAC;YACH,CAAC;YACD,4CAA4C;YAC5C,KAAK,MAAM,KAAK,IAAI,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,OAAO,CAAC,EAAE,CAAC;gBACjD,MAAM,UAAU,GAAG,qBAAqB,CAAC,KAAK,CAAC,KAAK,EAAE,QAAQ,CAAC,CAAC;gBAChE,IAAI,UAAU,EAAE,CAAC;oBACf,OAAO,UAAU,CAAC;gBACpB,CAAC;YACH,CAAC;YACD,OAAO,IAAI,CAAC;QACd,CAAC;QACD,KAAK,SAAS,CAAC,CAAC,CAAC;YACf,IAAI,eAAe,CAAC,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,EAAE,IAAI,KAAK,MAAM,EAAE,CAAC;gBAC1D,MAAM,EAAE,OAAO,EAAE,GAAG,KAAK,CAAC,IAAI,CAAC;gBAC/B,OAAO,kBAAkB,CAAC,OAAO,EAAE,KAAK,CAAC,KAAK,CAAC,CAAC;YAClD,CAAC;YACD,OAAO,IAAI,CAAC;QACd,CAAC;IACH,CAAC;AACH,CAAC;AAED,SAAS,aAAa,CAAC,KAAY,EAAE,QAAgB;IACnD,MAAM,GAAG,GAAG,KAAK,CAAC,QAAQ,GAAG,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC;IAC/C,OAAO,QAAQ,IAAI,KAAK,CAAC,QAAQ,IAAI,QAAQ,IAAI,GAAG,CAAC;AACvD,CAAC;AAED,SAAS,kBAAkB,CACzB,WAA6D,EAC7D,cAAqB;IAErB,MAAM,EAAE,IAAI,EAAE,GAAG,WAAW,CAAC;IAC7B,OAAO;QACL,UAAU,EAAE,IAAI,CAAC,IAAI,CAAC,UAAU;QAChC,WAAW,EAAE,WAAW;QACxB,cAAc;KACf,CAAC;AACJ,CAAC;AAED,SAAS,eAAe,CAAC,KAAY;IACnC,OAAO,KAAK,CAAC,IAAI,KAAK,SAAS,IAAI,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;AACpE,CAAC;AAED,gFAAgF;AAChF,oBAAoB;AACpB,gFAAgF;AAEhF,MAAM,UAAU,cAAc,CAC5B,UAAiB,EACjB,OAA0B;IAE1B,MAAM,UAAU,GAAY,EAAE,CAAC;IAC/B,KAAK,MAAM,MAAM,IAAI,OAAO,EAAE,CAAC;QAC7B,4BAA4B,CAAC,UAAU,EAAE,MAAM,CAAC,YAAY,EAAE,UAAU,CAAC,CAAC;IAC5E,CAAC;IACD,OAAO,UAAU,CAAC;AACpB,CAAC;AAED,SAAS,4BAA4B,CACnC,UAAiB,EACjB,YAAoC,EACpC,UAAmB;IAEnB,KAAK,MAAM,WAAW,IAAI,YAAY,EAAE,CAAC;QACvC,2BAA2B,CAAC,UAAU,EAAE,WAAW,EAAE,UAAU,CAAC,CAAC;IACnE,CAAC;AACH,CAAC;AAED,SAAS,2BAA2B,CAClC,UAAiB,EACjB,WAAwB,EACxB,UAAmB;IAEnB,kDAAkD;IAClD,QAAQ,WAAW,CAAC,IAAI,EAAE,CAAC;QACzB,KAAK,QAAQ,CAAC;QACd,KAAK,cAAc,CAAC;QACpB,KAAK,SAAS;YACZ,UAAU;YACV,MAAM;QACR,OAAO,CAAC,CAAC,CAAC;YACR,KAAK,MAAM,QAAQ,IAAI,WAAW,CAAC,GAAG,CAAC,MAAM,EAAE,CAAC;gBAC9C,IAAI,QAAQ,CAAC,IAAI,KAAK,WAAW,EAAE,CAAC;oBAClC,KAAK,MAAM,QAAQ,IAAI,QAAQ,CAAC,SAAS,EAAE,CAAC;wBAC1C,IAAI,QAAQ,CAAC,WAAW,EAAE,IAAI,KAAK,UAAU,EAAE,CAAC;4BAC9C,UAAU,CAAC,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;wBAClC,CAAC;oBACH,CAAC;gBACH,CAAC;YACH,CAAC;QACH,CAAC;IACH,CAAC;IAED,qDAAqD;IACrD,QAAQ,WAAW,CAAC,IAAI,EAAE,CAAC;QACzB,KAAK,UAAU,CAAC,CAAC,CAAC;YAChB,IAAI,WAAW,CAAC,IAAI,EAAE,CAAC;gBACrB,4BAA4B,CAAC,UAAU,EAAE,WAAW,CAAC,IAAI,EAAE,UAAU,CAAC,CAAC;YACzE,CAAC;YACD,qBAAqB,CAAC,UAAU,EAAE,WAAW,CAAC,KAAK,EAAE,UAAU,CAAC,CAAC;YACjE,MAAM;QACR,CAAC;QACD,KAAK,OAAO,CAAC,CAAC,CAAC;YACb,IAAI,WAAW,CAAC,IAAI,EAAE,CAAC;gBACrB,4BAA4B,CAAC,UAAU,EAAE,WAAW,CAAC,IAAI,EAAE,UAAU,CAAC,CAAC;YACzE,CAAC;YACD,MAAM;QACR,CAAC;QACD,KAAK,QAAQ,CAAC;QACd,KAAK,cAAc,CAAC,CAAC,CAAC;YACpB,qDAAqD;YACrD,MAAM;QACR,CAAC;QACD,KAAK,QAAQ,CAAC,CAAC,CAAC;YACd,IAAI,WAAW,CAAC,WAAW,EAAE,CAAC;gBAC5B,4BAA4B,CAC1B,UAAU,EACV,WAAW,CAAC,WAAW,EACvB,UAAU,CACX,CAAC;YACJ,CAAC;YACD,IAAI,WAAW,CAAC,YAAY,EAAE,CAAC;gBAC7B,4BAA4B,CAC1B,UAAU,EACV,WAAW,CAAC,YAAY,EACxB,UAAU,CACX,CAAC;YACJ,CAAC;YACD,MAAM;QACR,CAAC;QACD,KAAK,QAAQ,CAAC,CAAC,CAAC;YACd,4BAA4B,CAAC,UAAU,EAAE,WAAW,CAAC,MAAM,EAAE,UAAU,CAAC,CAAC;YACzE,MAAM;QACR,CAAC;QACD,KAAK,SAAS,CAAC,CAAC,CAAC;YACf,MAAM;QACR,CAAC;IACH,CAAC;AACH,CAAC;AAED,SAAS,4BAA4B,CACnC,UAAiB,EACjB,IAAkB,EAClB,UAAmB;IAEnB,QAAQ,IAAI,CAAC,IAAI,EAAE,CAAC;QAClB,KAAK,OAAO,CAAC,CAAC,CAAC;YACb,IAAI,IAAI,CAAC,GAAG,EAAE,CAAC;gBACb,KAAK,MAAM,IAAI,IAAI,IAAI,CAAC,GAAG,CAAC,IAAI,EAAE,CAAC;oBACjC,IAAI,IAAI,CAAC,WAAW,EAAE,IAAI,KAAK,UAAU,EAAE,CAAC;wBAC1C,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;oBAC7B,CAAC;gBACH,CAAC;YACH,CAAC;YACD,4BAA4B,CAAC,UAAU,EAAE,IAAI,CAAC,IAAI,EAAE,UAAU,CAAC,CAAC;YAChE,MAAM;QACR,CAAC;QACD,KAAK,UAAU,CAAC,CAAC,CAAC;YAChB,4BAA4B,CAAC,UAAU,EAAE,IAAI,CAAC,KAAK,EAAE,UAAU,CAAC,CAAC;YACjE,MAAM;QACR,CAAC;QACD,KAAK,WAAW,CAAC,CAAC,CAAC;YACjB,MAAM;QACR,CAAC;QACD,KAAK,QAAQ,CAAC,CAAC,CAAC;YACd,KAAK,MAAM,QAAQ,IAAI,IAAI,CAAC,SAAS,EAAE,CAAC;gBACtC,IAAI,QAAQ,CAAC,WAAW,CAAC,IAAI,KAAK,UAAU,EAAE,CAAC;oBAC7C,UAAU,CAAC,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;gBAClC,CAAC;YACH,CAAC;YACD,MAAM;QACR,CAAC;IACH,CAAC;AACH,CAAC;AAED,SAAS,qBAAqB,CAC5B,UAAiB,EACjB,KAAY,EACZ,UAAmB;IAEnB,QAAQ,KAAK,CAAC,IAAI,EAAE,CAAC;QACnB,KAAK,OAAO,CAAC,CAAC,CAAC;YACb,KAAK,MAAM,IAAI,IAAI,KAAK,CAAC,KAAK,EAAE,CAAC;gBAC/B,qBAAqB,CAAC,UAAU,EAAE,IAAI,EAAE,UAAU,CAAC,CAAC;YACtD,CAAC;YACD,MAAM;QACR,CAAC;QACD,KAAK,QAAQ,CAAC,CAAC,CAAC;YACd,IAAI,CAAC,KAAK,CAAC,MAAM,EAAE,CAAC;gBAClB,MAAM;YACR,CAAC;YACD,IAAI,KAAK,CAAC,MAAM,CAAC,UAAU,KAAK,QAAQ,EAAE,CAAC;gBACzC,yDAAyD;gBACzD,KAAK,MAAM,KAAK,IAAI,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,OAAO,CAAC,EAAE,CAAC;oBACjD,IAAI,KAAK,CAAC,gBAAgB,EAAE,IAAI,KAAK,UAAU,EAAE,CAAC;wBAChD,UAAU,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;oBAC9B,CAAC;oBACD,qBAAqB,CAAC,UAAU,EAAE,KAAK,CAAC,KAAK,EAAE,UAAU,CAAC,CAAC;gBAC7D,CAAC;YACH,CAAC;iBAAM,CAAC;gBACN,oEAAoE;gBACpE,mEAAmE;gBACnE,6BAA6B;gBAC7B,MAAM,SAAS,GAAG,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;gBACxC,IAAI,SAAS,IAAI,SAAS,CAAC,KAAK,CAAC,IAAI,KAAK,SAAS,EAAE,CAAC;oBACpD,MAAM,WAAW,GAAG,kBAAkB,CAAC,SAAS,CAAC,KAAK,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;oBACnE,MAAM,kBAAkB,GACtB,KAAK,CAAC,MAAM,CAAC,iBAAiB,CAAC,WAAW,CAAC,CAAC;oBAC9C,IACE,kBAAkB,EAAE,IAAI,KAAK,OAAO;wBACpC,kBAAkB,CAAC,IAAI,KAAK,UAAU,EACtC,CAAC;wBACD,UAAU,CAAC,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;oBACzC,CAAC;gBACH,CAAC;YACH,CAAC;YACD,MAAM;QACR,CAAC;QACD,KAAK,SAAS,CAAC,CAAC,CAAC;YACf,IAAI,eAAe,CAAC,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,EAAE,IAAI,KAAK,MAAM,EAAE,CAAC;gBAC1D,MAAM,EAAE,OAAO,EAAE,GAAG,KAAK,CAAC,IAAI,CAAC;gBAC/B,IAAI,OAAO,CAAC,IAAI,KAAK,UAAU,EAAE,CAAC;oBAChC,UAAU,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;gBAC/B,CAAC;YACH,CAAC;YACD,MAAM;QACR,CAAC;IACH,CAAC;AACH,CAAC"}
@@ -1,14 +0,0 @@
1
- import { AsyncFileReader } from "./io.js";
2
- import type { DependenciesResult, PackageDownloader, PackageIdToVersion } from "./package_types.js";
3
- export declare class DependencyManager {
4
- private readonly rootDir;
5
- private readonly githubToken;
6
- private readonly fileReader;
7
- private readonly packageDownloader;
8
- constructor(rootDir: string, githubToken: string | undefined, fileReader?: AsyncFileReader, packageDownloader?: PackageDownloader);
9
- getDependencies(dependencies: PackageIdToVersion, writeOption?: "write" | "no-write"): Promise<DependenciesResult>;
10
- private writeOnDisk;
11
- private get externalDir();
12
- private readDependenciesFile;
13
- }
14
- //# sourceMappingURL=dependency_manager.d.ts.map