@mimir-labs/core 0.4.0 → 0.5.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 (57) hide show
  1. package/README.md +13 -2
  2. package/dist/implementation/contracts/descriptor.d.ts +7 -1
  3. package/dist/implementation/contracts/resource.d.ts +93 -0
  4. package/dist/implementation/descriptors/descriptor-repository.js +33 -14
  5. package/dist/implementation/descriptors/descriptor-repository.js.map +1 -1
  6. package/dist/implementation/generation/generate-service.d.ts +4 -0
  7. package/dist/implementation/generation/generate-service.js +14 -4
  8. package/dist/implementation/generation/generate-service.js.map +1 -1
  9. package/dist/implementation/generation/types.d.ts +1 -0
  10. package/dist/implementation/io/fs.d.ts +1 -0
  11. package/dist/implementation/io/fs.js +13 -0
  12. package/dist/implementation/io/fs.js.map +1 -1
  13. package/dist/implementation/knowledge/knowledge-engine.d.ts +8 -0
  14. package/dist/implementation/knowledge/knowledge-engine.js +40 -0
  15. package/dist/implementation/knowledge/knowledge-engine.js.map +1 -0
  16. package/dist/implementation/knowledge/knowledge-graph.d.ts +12 -0
  17. package/dist/implementation/knowledge/knowledge-graph.js +34 -0
  18. package/dist/implementation/knowledge/knowledge-graph.js.map +1 -0
  19. package/dist/implementation/knowledge/model.d.ts +44 -0
  20. package/dist/implementation/knowledge/model.js +3 -0
  21. package/dist/implementation/knowledge/model.js.map +1 -0
  22. package/dist/implementation/knowledge/persistence-policy.d.ts +21 -0
  23. package/dist/implementation/knowledge/persistence-policy.js +51 -0
  24. package/dist/implementation/knowledge/persistence-policy.js.map +1 -0
  25. package/dist/implementation/knowledge/providers.d.ts +36 -0
  26. package/dist/implementation/knowledge/providers.js +150 -0
  27. package/dist/implementation/knowledge/providers.js.map +1 -0
  28. package/dist/implementation/resource-discovery/design-token-extractor.d.ts +3 -0
  29. package/dist/implementation/resource-discovery/design-token-extractor.js +78 -0
  30. package/dist/implementation/resource-discovery/design-token-extractor.js.map +1 -0
  31. package/dist/implementation/resource-discovery/react-pattern-extractor.d.ts +3 -0
  32. package/dist/implementation/resource-discovery/react-pattern-extractor.js +49 -0
  33. package/dist/implementation/resource-discovery/react-pattern-extractor.js.map +1 -0
  34. package/dist/implementation/resource-discovery/relationship-extractor.d.ts +3 -0
  35. package/dist/implementation/resource-discovery/relationship-extractor.js +80 -0
  36. package/dist/implementation/resource-discovery/relationship-extractor.js.map +1 -0
  37. package/dist/implementation/resource-discovery/semantic-resource-classifier.d.ts +23 -0
  38. package/dist/implementation/resource-discovery/semantic-resource-classifier.js +267 -0
  39. package/dist/implementation/resource-discovery/semantic-resource-classifier.js.map +1 -0
  40. package/dist/implementation/resource-discovery/storybook-extractor.d.ts +2 -1
  41. package/dist/implementation/resource-discovery/storybook-extractor.js +83 -44
  42. package/dist/implementation/resource-discovery/storybook-extractor.js.map +1 -1
  43. package/dist/implementation/resource-discovery/typescript-analysis.d.ts +7 -0
  44. package/dist/implementation/resource-discovery/typescript-analysis.js +42 -0
  45. package/dist/implementation/resource-discovery/typescript-analysis.js.map +1 -0
  46. package/dist/implementation/resource-discovery/typescript-extractor.d.ts +8 -2
  47. package/dist/implementation/resource-discovery/typescript-extractor.js +166 -108
  48. package/dist/implementation/resource-discovery/typescript-extractor.js.map +1 -1
  49. package/dist/implementation/resource-discovery/typescript-public-api-extractor.d.ts +11 -0
  50. package/dist/implementation/resource-discovery/typescript-public-api-extractor.js +439 -0
  51. package/dist/implementation/resource-discovery/typescript-public-api-extractor.js.map +1 -0
  52. package/dist/implementation/resource-identity.d.ts +1 -0
  53. package/dist/implementation/resource-identity.js +7 -0
  54. package/dist/implementation/resource-identity.js.map +1 -1
  55. package/dist/implementation/services/authoring-service.js +251 -140
  56. package/dist/implementation/services/authoring-service.js.map +1 -1
  57. package/package.json +1 -1
@@ -0,0 +1,439 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ exports.extractTypeScriptPublicApi = extractTypeScriptPublicApi;
7
+ exports.getComponentPublicApiKey = getComponentPublicApiKey;
8
+ const node_path_1 = __importDefault(require("node:path"));
9
+ const typescript_1 = __importDefault(require("typescript"));
10
+ const typescript_analysis_1 = require("./typescript-analysis");
11
+ function normalizeSlashes(value) {
12
+ return value.split(node_path_1.default.sep).join("/");
13
+ }
14
+ function componentKey(filePath, name) {
15
+ return `${normalizeSlashes(filePath)}::${name}`;
16
+ }
17
+ function toStaticLiteralValue(expression) {
18
+ if (typescript_1.default.isStringLiteral(expression) || typescript_1.default.isNoSubstitutionTemplateLiteral(expression)) {
19
+ return expression.text;
20
+ }
21
+ if (typescript_1.default.isNumericLiteral(expression)) {
22
+ return Number(expression.text);
23
+ }
24
+ if (expression.kind === typescript_1.default.SyntaxKind.TrueKeyword) {
25
+ return true;
26
+ }
27
+ if (expression.kind === typescript_1.default.SyntaxKind.FalseKeyword) {
28
+ return false;
29
+ }
30
+ if (expression.kind === typescript_1.default.SyntaxKind.NullKeyword) {
31
+ return null;
32
+ }
33
+ if (typescript_1.default.isPrefixUnaryExpression(expression) && typescript_1.default.isNumericLiteral(expression.operand)) {
34
+ if (expression.operator === typescript_1.default.SyntaxKind.MinusToken) {
35
+ return -Number(expression.operand.text);
36
+ }
37
+ if (expression.operator === typescript_1.default.SyntaxKind.PlusToken) {
38
+ return Number(expression.operand.text);
39
+ }
40
+ }
41
+ return undefined;
42
+ }
43
+ function extractDefaultValuesFromParameter(parameter) {
44
+ const defaults = new Map();
45
+ if (!typescript_1.default.isObjectBindingPattern(parameter.name)) {
46
+ return defaults;
47
+ }
48
+ for (const element of parameter.name.elements) {
49
+ if (!typescript_1.default.isIdentifier(element.name) || !element.initializer) {
50
+ continue;
51
+ }
52
+ const defaultValue = toStaticLiteralValue(element.initializer);
53
+ if (defaultValue === undefined) {
54
+ continue;
55
+ }
56
+ const propertyName = element.propertyName;
57
+ const propName = propertyName && (typescript_1.default.isIdentifier(propertyName) || typescript_1.default.isStringLiteral(propertyName))
58
+ ? propertyName.text
59
+ : element.name.text;
60
+ defaults.set(propName, defaultValue);
61
+ }
62
+ return defaults;
63
+ }
64
+ function extractDefaultValuesFromDeclaration(declaration) {
65
+ if (typescript_1.default.isFunctionDeclaration(declaration) || typescript_1.default.isFunctionExpression(declaration) || typescript_1.default.isArrowFunction(declaration)) {
66
+ const firstParameter = declaration.parameters[0];
67
+ return firstParameter ? extractDefaultValuesFromParameter(firstParameter) : new Map();
68
+ }
69
+ if (typescript_1.default.isVariableDeclaration(declaration) && declaration.initializer) {
70
+ if (typescript_1.default.isArrowFunction(declaration.initializer) || typescript_1.default.isFunctionExpression(declaration.initializer)) {
71
+ const firstParameter = declaration.initializer.parameters[0];
72
+ return firstParameter ? extractDefaultValuesFromParameter(firstParameter) : new Map();
73
+ }
74
+ }
75
+ return new Map();
76
+ }
77
+ function typeDisplay(checker, type) {
78
+ return checker.typeToString(type, undefined, typescript_1.default.TypeFormatFlags.NoTruncation);
79
+ }
80
+ function literalFromType(checker, type) {
81
+ if (type.flags & typescript_1.default.TypeFlags.StringLiteral) {
82
+ return type.value;
83
+ }
84
+ if (type.flags & typescript_1.default.TypeFlags.NumberLiteral) {
85
+ return type.value;
86
+ }
87
+ if (type.flags & typescript_1.default.TypeFlags.BooleanLiteral) {
88
+ return checker.typeToString(type) === "true";
89
+ }
90
+ if (type.flags & typescript_1.default.TypeFlags.Null) {
91
+ return null;
92
+ }
93
+ return undefined;
94
+ }
95
+ function serializeType(checker, type) {
96
+ const display = typeDisplay(checker, type);
97
+ if (type.isUnion()) {
98
+ const values = [];
99
+ for (const candidate of type.types) {
100
+ const literalValue = literalFromType(checker, candidate);
101
+ if (literalValue === undefined) {
102
+ return {
103
+ kind: "reference",
104
+ name: display,
105
+ display
106
+ };
107
+ }
108
+ values.push(literalValue);
109
+ }
110
+ return {
111
+ kind: "union",
112
+ values: [...new Set(values)],
113
+ display
114
+ };
115
+ }
116
+ const literalValue = literalFromType(checker, type);
117
+ if (literalValue !== undefined) {
118
+ return {
119
+ kind: "literal",
120
+ value: literalValue
121
+ };
122
+ }
123
+ if (type.flags & typescript_1.default.TypeFlags.String) {
124
+ return { kind: "primitive", name: "string" };
125
+ }
126
+ if (type.flags & typescript_1.default.TypeFlags.Number) {
127
+ return { kind: "primitive", name: "number" };
128
+ }
129
+ if (type.flags & typescript_1.default.TypeFlags.Boolean) {
130
+ return { kind: "primitive", name: "boolean" };
131
+ }
132
+ if (type.flags & typescript_1.default.TypeFlags.BigInt) {
133
+ return { kind: "primitive", name: "bigint" };
134
+ }
135
+ if (type.flags & typescript_1.default.TypeFlags.Void) {
136
+ return { kind: "primitive", name: "void" };
137
+ }
138
+ if (type.flags & typescript_1.default.TypeFlags.Undefined) {
139
+ return { kind: "primitive", name: "undefined" };
140
+ }
141
+ if (type.flags & typescript_1.default.TypeFlags.Null) {
142
+ return { kind: "primitive", name: "null" };
143
+ }
144
+ if (type.flags & typescript_1.default.TypeFlags.Any) {
145
+ return { kind: "unknown", display: "any" };
146
+ }
147
+ if (type.flags & typescript_1.default.TypeFlags.Unknown) {
148
+ return { kind: "unknown", display: "unknown" };
149
+ }
150
+ const symbol = type.aliasSymbol ?? type.getSymbol();
151
+ if (symbol) {
152
+ for (const declaration of symbol.declarations ?? []) {
153
+ if (!typescript_1.default.isEnumDeclaration(declaration)) {
154
+ continue;
155
+ }
156
+ const members = [];
157
+ for (const member of declaration.members) {
158
+ const memberName = typescript_1.default.isIdentifier(member.name)
159
+ ? member.name.text
160
+ : typescript_1.default.isStringLiteral(member.name)
161
+ ? member.name.text
162
+ : undefined;
163
+ if (!memberName) {
164
+ continue;
165
+ }
166
+ if (member.initializer) {
167
+ const staticValue = toStaticLiteralValue(member.initializer);
168
+ if (typeof staticValue === "string" || typeof staticValue === "number") {
169
+ members.push(staticValue);
170
+ continue;
171
+ }
172
+ }
173
+ members.push(memberName);
174
+ }
175
+ return {
176
+ kind: "enum",
177
+ name: symbol.getName(),
178
+ members,
179
+ display
180
+ };
181
+ }
182
+ return {
183
+ kind: "reference",
184
+ name: symbol.getName(),
185
+ display
186
+ };
187
+ }
188
+ return {
189
+ kind: "unknown",
190
+ display
191
+ };
192
+ }
193
+ function readTagText(tag) {
194
+ return typescript_1.default.displayPartsToString(tag.text).trim();
195
+ }
196
+ function declarationOwnerName(declaration) {
197
+ let node = declaration;
198
+ while (node) {
199
+ if (typescript_1.default.isInterfaceDeclaration(node) || typescript_1.default.isTypeAliasDeclaration(node) || typescript_1.default.isClassDeclaration(node)) {
200
+ return node.name?.text;
201
+ }
202
+ node = node.parent;
203
+ }
204
+ return undefined;
205
+ }
206
+ function collectTypeReferenceNames(typeNode, names) {
207
+ if (!typeNode) {
208
+ return;
209
+ }
210
+ if (typescript_1.default.isTypeReferenceNode(typeNode)) {
211
+ if (typescript_1.default.isIdentifier(typeNode.typeName)) {
212
+ names.add(typeNode.typeName.text);
213
+ }
214
+ if (typeNode.typeArguments) {
215
+ for (const argument of typeNode.typeArguments) {
216
+ collectTypeReferenceNames(argument, names);
217
+ }
218
+ }
219
+ return;
220
+ }
221
+ if (typescript_1.default.isIntersectionTypeNode(typeNode) || typescript_1.default.isUnionTypeNode(typeNode)) {
222
+ for (const member of typeNode.types) {
223
+ collectTypeReferenceNames(member, names);
224
+ }
225
+ return;
226
+ }
227
+ if (typescript_1.default.isParenthesizedTypeNode(typeNode)) {
228
+ collectTypeReferenceNames(typeNode.type, names);
229
+ return;
230
+ }
231
+ if (typescript_1.default.isTypeLiteralNode(typeNode)) {
232
+ return;
233
+ }
234
+ }
235
+ function rootTypeNamesForProps(propsType, declaration) {
236
+ const names = new Set();
237
+ const symbol = propsType.aliasSymbol ?? propsType.getSymbol();
238
+ if (symbol) {
239
+ names.add(symbol.getName());
240
+ }
241
+ if (declaration &&
242
+ (typescript_1.default.isFunctionDeclaration(declaration) || typescript_1.default.isFunctionExpression(declaration) || typescript_1.default.isArrowFunction(declaration))) {
243
+ const firstParameter = declaration.parameters[0];
244
+ collectTypeReferenceNames(firstParameter?.type, names);
245
+ }
246
+ if (declaration && typescript_1.default.isVariableDeclaration(declaration) && declaration.initializer) {
247
+ if (typescript_1.default.isArrowFunction(declaration.initializer) || typescript_1.default.isFunctionExpression(declaration.initializer)) {
248
+ const firstParameter = declaration.initializer.parameters[0];
249
+ collectTypeReferenceNames(firstParameter?.type, names);
250
+ }
251
+ if (declaration.type && typescript_1.default.isTypeReferenceNode(declaration.type) && declaration.type.typeArguments?.[0]) {
252
+ collectTypeReferenceNames(declaration.type.typeArguments[0], names);
253
+ }
254
+ }
255
+ return names;
256
+ }
257
+ function getExportSymbol(checker, sourceFile, exportName) {
258
+ const moduleSymbol = checker.getSymbolAtLocation(sourceFile);
259
+ if (!moduleSymbol) {
260
+ return undefined;
261
+ }
262
+ const exports = checker.getExportsOfModule(moduleSymbol);
263
+ const directMatch = exports.find((item) => item.getName() === exportName);
264
+ if (!directMatch) {
265
+ return undefined;
266
+ }
267
+ if ((directMatch.flags & typescript_1.default.SymbolFlags.Alias) !== 0) {
268
+ return checker.getAliasedSymbol(directMatch);
269
+ }
270
+ return directMatch;
271
+ }
272
+ function extractPropsTypeForComponent(checker, componentSymbol) {
273
+ const declaration = componentSymbol.valueDeclaration ?? componentSymbol.declarations?.[0];
274
+ if (declaration) {
275
+ const componentType = checker.getTypeOfSymbolAtLocation(componentSymbol, declaration);
276
+ const signatures = checker.getSignaturesOfType(componentType, typescript_1.default.SignatureKind.Call);
277
+ for (const signature of signatures) {
278
+ const parameters = signature.getParameters();
279
+ if (parameters.length === 0) {
280
+ continue;
281
+ }
282
+ const propsParameter = parameters[0];
283
+ const propsDeclaration = propsParameter.valueDeclaration ?? declaration;
284
+ const propsType = checker.getTypeOfSymbolAtLocation(propsParameter, propsDeclaration);
285
+ return {
286
+ propsType,
287
+ declaration
288
+ };
289
+ }
290
+ if (typescript_1.default.isFunctionDeclaration(declaration) ||
291
+ typescript_1.default.isFunctionExpression(declaration) ||
292
+ typescript_1.default.isArrowFunction(declaration)) {
293
+ const firstParameter = declaration.parameters[0];
294
+ if (firstParameter) {
295
+ return {
296
+ propsType: checker.getTypeAtLocation(firstParameter),
297
+ declaration
298
+ };
299
+ }
300
+ }
301
+ if (typescript_1.default.isVariableDeclaration(declaration) && declaration.initializer) {
302
+ if (typescript_1.default.isArrowFunction(declaration.initializer) || typescript_1.default.isFunctionExpression(declaration.initializer)) {
303
+ const firstParameter = declaration.initializer.parameters[0];
304
+ if (firstParameter) {
305
+ return {
306
+ propsType: checker.getTypeAtLocation(firstParameter),
307
+ declaration
308
+ };
309
+ }
310
+ }
311
+ }
312
+ }
313
+ return {
314
+ propsType: null,
315
+ declaration
316
+ };
317
+ }
318
+ function toLegacyTypeString(type) {
319
+ if (type.kind === "primitive") {
320
+ return type.name;
321
+ }
322
+ if (type.kind === "literal") {
323
+ return String(type.value);
324
+ }
325
+ if (type.kind === "union") {
326
+ return type.values.map((value) => JSON.stringify(value)).join(" | ");
327
+ }
328
+ if (type.kind === "enum" || type.kind === "reference" || type.kind === "unknown") {
329
+ return type.display;
330
+ }
331
+ return "unknown";
332
+ }
333
+ function buildPublicProp(checker, propSymbol, fallbackNode, defaultValues, rootTypeNames) {
334
+ const declaration = propSymbol.valueDeclaration ?? propSymbol.declarations?.[0];
335
+ const type = checker.getTypeOfSymbolAtLocation(propSymbol, declaration ?? fallbackNode);
336
+ const description = typescript_1.default.displayPartsToString(propSymbol.getDocumentationComment(checker)).trim();
337
+ const tags = propSymbol.getJsDocTags();
338
+ const ownerName = declaration ? declarationOwnerName(declaration) : undefined;
339
+ const inherited = Boolean(ownerName && !rootTypeNames.has(ownerName));
340
+ const deprecatedTag = tags.find((tag) => tag.name === "deprecated");
341
+ const defaultTag = tags.find((tag) => tag.name === "default");
342
+ const remarksTag = tags.find((tag) => tag.name === "remarks");
343
+ return {
344
+ name: propSymbol.getName(),
345
+ type: serializeType(checker, type),
346
+ required: (propSymbol.flags & typescript_1.default.SymbolFlags.Optional) === 0,
347
+ inherited,
348
+ inheritedFrom: inherited ? ownerName : undefined,
349
+ description: description === "" ? undefined : description,
350
+ deprecated: deprecatedTag ? readTagText(deprecatedTag) || true : undefined,
351
+ default: defaultValues.get(propSymbol.getName()),
352
+ remarks: remarksTag ? readTagText(remarksTag) || undefined : undefined,
353
+ ...(defaultTag && !defaultValues.has(propSymbol.getName())
354
+ ? {
355
+ default: readTagText(defaultTag)
356
+ }
357
+ : {})
358
+ };
359
+ }
360
+ function buildEmptyApi() {
361
+ return {
362
+ props: [],
363
+ events: [],
364
+ slots: [],
365
+ methods: [],
366
+ refs: []
367
+ };
368
+ }
369
+ function buildLegacyProps(publicProps) {
370
+ const props = {};
371
+ for (const prop of publicProps) {
372
+ props[prop.name] = {
373
+ name: prop.name,
374
+ type: toLegacyTypeString(prop.type),
375
+ required: prop.required
376
+ };
377
+ }
378
+ return props;
379
+ }
380
+ async function extractTypeScriptPublicApi(cwd, components, analysis) {
381
+ if (components.length === 0) {
382
+ return new Map();
383
+ }
384
+ const resolvedAnalysis = analysis ?? (await (0, typescript_analysis_1.createTypeScriptAnalysis)(cwd));
385
+ const { program, checker } = resolvedAnalysis;
386
+ const sourceByRelativePath = new Map();
387
+ for (const sourceFile of program.getSourceFiles()) {
388
+ if (sourceFile.isDeclarationFile) {
389
+ continue;
390
+ }
391
+ const relativePath = normalizeSlashes(node_path_1.default.relative(cwd, sourceFile.fileName));
392
+ sourceByRelativePath.set(relativePath, sourceFile);
393
+ }
394
+ const result = new Map();
395
+ for (const component of components) {
396
+ const sourceFile = sourceByRelativePath.get(component.filePath);
397
+ if (!sourceFile) {
398
+ continue;
399
+ }
400
+ const exportSymbol = getExportSymbol(checker, sourceFile, component.importName);
401
+ if (!exportSymbol) {
402
+ continue;
403
+ }
404
+ const { propsType, declaration } = extractPropsTypeForComponent(checker, exportSymbol);
405
+ if (!propsType || !declaration) {
406
+ result.set(componentKey(component.filePath, component.name), {
407
+ name: component.name,
408
+ filePath: component.filePath,
409
+ api: buildEmptyApi(),
410
+ props: {}
411
+ });
412
+ continue;
413
+ }
414
+ const defaultValues = extractDefaultValuesFromDeclaration(declaration);
415
+ const rootTypeNames = rootTypeNamesForProps(propsType, declaration);
416
+ const props = checker
417
+ .getPropertiesOfType(propsType)
418
+ .map((propSymbol) => buildPublicProp(checker, propSymbol, declaration, defaultValues, rootTypeNames))
419
+ .sort((a, b) => a.name.localeCompare(b.name));
420
+ const api = {
421
+ props,
422
+ events: [],
423
+ slots: [],
424
+ methods: [],
425
+ refs: []
426
+ };
427
+ result.set(componentKey(component.filePath, component.name), {
428
+ name: component.name,
429
+ filePath: component.filePath,
430
+ api,
431
+ props: buildLegacyProps(props)
432
+ });
433
+ }
434
+ return result;
435
+ }
436
+ function getComponentPublicApiKey(component) {
437
+ return componentKey(component.filePath, component.name);
438
+ }
439
+ //# sourceMappingURL=typescript-public-api-extractor.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"typescript-public-api-extractor.js","sourceRoot":"","sources":["../../../src/implementation/resource-discovery/typescript-public-api-extractor.ts"],"names":[],"mappings":"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"}
@@ -1 +1,2 @@
1
1
  export declare function createComponentResourceId(packageName: string, componentName: string): string;
2
+ export declare function createResourceId(packageName: string, kind: string, resourceName: string): string;
@@ -1,6 +1,7 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.createComponentResourceId = createComponentResourceId;
4
+ exports.createResourceId = createResourceId;
4
5
  function sanitizeSegment(value) {
5
6
  return value
6
7
  .toLowerCase()
@@ -27,4 +28,10 @@ function createComponentResourceId(packageName, componentName) {
27
28
  const name = sanitizeSegment(componentName) || "component";
28
29
  return `${org}.${pkg}.component.${name}`;
29
30
  }
31
+ function createResourceId(packageName, kind, resourceName) {
32
+ const { org, pkg } = splitPackageName(packageName);
33
+ const normalizedKind = sanitizeSegment(kind) || "resource";
34
+ const name = sanitizeSegment(resourceName) || "resource";
35
+ return `${org}.${pkg}.${normalizedKind}.${name}`;
36
+ }
30
37
  //# sourceMappingURL=resource-identity.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"resource-identity.js","sourceRoot":"","sources":["../../src/implementation/resource-identity.ts"],"names":[],"mappings":";;AAsBA,8DAMC;AA5BD,SAAS,eAAe,CAAC,KAAa;IACpC,OAAO,KAAK;SACT,WAAW,EAAE;SACb,OAAO,CAAC,IAAI,EAAE,EAAE,CAAC;SACjB,OAAO,CAAC,aAAa,EAAE,EAAE,CAAC;SAC1B,IAAI,EAAE,CAAC;AACZ,CAAC;AAED,SAAS,gBAAgB,CAAC,WAAmB;IAC3C,IAAI,WAAW,CAAC,UAAU,CAAC,GAAG,CAAC,EAAE,CAAC;QAChC,MAAM,KAAK,GAAG,WAAW,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;QACrC,MAAM,GAAG,GAAG,eAAe,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,OAAO,CAAC,CAAC;QACjD,MAAM,GAAG,GAAG,eAAe,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,SAAS,CAAC,CAAC;QACnD,OAAO,EAAE,GAAG,EAAE,GAAG,IAAI,OAAO,EAAE,GAAG,EAAE,GAAG,IAAI,SAAS,EAAE,CAAC;IACxD,CAAC;IAED,OAAO;QACL,GAAG,EAAE,OAAO;QACZ,GAAG,EAAE,eAAe,CAAC,WAAW,CAAC,IAAI,SAAS;KAC/C,CAAC;AACJ,CAAC;AAED,SAAgB,yBAAyB,CAAC,WAAmB,EAAE,aAAqB;IAClF,kFAAkF;IAClF,sFAAsF;IACtF,MAAM,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,gBAAgB,CAAC,WAAW,CAAC,CAAC;IACnD,MAAM,IAAI,GAAG,eAAe,CAAC,aAAa,CAAC,IAAI,WAAW,CAAC;IAC3D,OAAO,GAAG,GAAG,IAAI,GAAG,cAAc,IAAI,EAAE,CAAC;AAC3C,CAAC"}
1
+ {"version":3,"file":"resource-identity.js","sourceRoot":"","sources":["../../src/implementation/resource-identity.ts"],"names":[],"mappings":";;AAsBA,8DAMC;AAED,4CAKC;AAnCD,SAAS,eAAe,CAAC,KAAa;IACpC,OAAO,KAAK;SACT,WAAW,EAAE;SACb,OAAO,CAAC,IAAI,EAAE,EAAE,CAAC;SACjB,OAAO,CAAC,aAAa,EAAE,EAAE,CAAC;SAC1B,IAAI,EAAE,CAAC;AACZ,CAAC;AAED,SAAS,gBAAgB,CAAC,WAAmB;IAC3C,IAAI,WAAW,CAAC,UAAU,CAAC,GAAG,CAAC,EAAE,CAAC;QAChC,MAAM,KAAK,GAAG,WAAW,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;QACrC,MAAM,GAAG,GAAG,eAAe,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,OAAO,CAAC,CAAC;QACjD,MAAM,GAAG,GAAG,eAAe,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,SAAS,CAAC,CAAC;QACnD,OAAO,EAAE,GAAG,EAAE,GAAG,IAAI,OAAO,EAAE,GAAG,EAAE,GAAG,IAAI,SAAS,EAAE,CAAC;IACxD,CAAC;IAED,OAAO;QACL,GAAG,EAAE,OAAO;QACZ,GAAG,EAAE,eAAe,CAAC,WAAW,CAAC,IAAI,SAAS;KAC/C,CAAC;AACJ,CAAC;AAED,SAAgB,yBAAyB,CAAC,WAAmB,EAAE,aAAqB;IAClF,kFAAkF;IAClF,sFAAsF;IACtF,MAAM,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,gBAAgB,CAAC,WAAW,CAAC,CAAC;IACnD,MAAM,IAAI,GAAG,eAAe,CAAC,aAAa,CAAC,IAAI,WAAW,CAAC;IAC3D,OAAO,GAAG,GAAG,IAAI,GAAG,cAAc,IAAI,EAAE,CAAC;AAC3C,CAAC;AAED,SAAgB,gBAAgB,CAAC,WAAmB,EAAE,IAAY,EAAE,YAAoB;IACtF,MAAM,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,gBAAgB,CAAC,WAAW,CAAC,CAAC;IACnD,MAAM,cAAc,GAAG,eAAe,CAAC,IAAI,CAAC,IAAI,UAAU,CAAC;IAC3D,MAAM,IAAI,GAAG,eAAe,CAAC,YAAY,CAAC,IAAI,UAAU,CAAC;IACzD,OAAO,GAAG,GAAG,IAAI,GAAG,IAAI,cAAc,IAAI,IAAI,EAAE,CAAC;AACnD,CAAC"}