@happyvertical/smrt-core 0.57.15 → 0.57.16
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.
- package/dist/manifest/static-manifest.js +1 -1
- package/dist/manifest/static-manifest.js.map +1 -1
- package/dist/manifest/store.js +1 -1
- package/dist/manifest.json +1 -1
- package/dist/registry.d.ts.map +1 -1
- package/dist/registry.js +30 -9
- package/dist/registry.js.map +1 -1
- package/dist/scanner/manifest-generator.d.ts +9 -0
- package/dist/scanner/manifest-generator.d.ts.map +1 -1
- package/dist/scanner/manifest-generator.js +41 -24
- package/dist/scanner/manifest-generator.js.map +1 -1
- package/dist/smrt-knowledge.json +4 -4
- package/dist/vite-plugin/sveltekit-generator.d.ts.map +1 -1
- package/dist/vite-plugin/sveltekit-generator.js +2 -0
- package/dist/vite-plugin/sveltekit-generator.js.map +1 -1
- package/package.json +5 -5
|
@@ -72,6 +72,15 @@ export declare class ManifestGenerator {
|
|
|
72
72
|
* a local class named like its imported parent never resolves to itself.
|
|
73
73
|
*/
|
|
74
74
|
private resolveParentDefinition;
|
|
75
|
+
/**
|
|
76
|
+
* `obj`'s parent among `objectsByName` (keyed by class name), without
|
|
77
|
+
* loading dependency manifests. An import-qualified parent only matches a
|
|
78
|
+
* definition of that package, never a same-named class of another one
|
|
79
|
+
* (#4176); a definition carrying no package identity still matches by name.
|
|
80
|
+
* `manifest` is the one `objectsByName` was built from, where a qualified
|
|
81
|
+
* parent that lost its class-name slot is still found.
|
|
82
|
+
*/
|
|
83
|
+
private namedParent;
|
|
75
84
|
/**
|
|
76
85
|
* Stamp `importPath` (via {@link determineImportPath}) on every object
|
|
77
86
|
* that does not already have one. Safe to call unconditionally: objects
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"manifest-generator.d.ts","sourceRoot":"","sources":["../../src/scanner/manifest-generator.ts"],"names":[],"mappings":"AAAA;;GAEG;AAuEH,OAAO,KAAK,EAaV,UAAU,EAEV,mBAAmB,EACnB,cAAc,EAEf,MAAM,YAAY,CAAC;AAGpB,2EAA2E;AAC3E,UAAU,eAAe;IACvB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAClC,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC;CACxB;AAoLD,qBAAa,iBAAiB;IAC5B;;;;;;;;;;;;OAYG;IACH,gBAAgB,CACd,WAAW,EAAE,UAAU,EAAE,EACzB,OAAO,CAAC,EAAE;QACR,WAAW,CAAC,EAAE,MAAM,CAAC;QACrB,cAAc,CAAC,EAAE,MAAM,CAAC;QACxB,WAAW,CAAC,EAAE,eAAe,CAAC;QAC9B,gBAAgB,CAAC,EAAE,MAAM,EAAE,CAAC;QAC5B,iBAAiB,CAAC,EAAE,cAAc,EAAE,CAAC;KACtC,GACA,mBAAmB;IAiHtB;;;;;;;;;;;;OAYG;IACH,qBAAqB,CACnB,QAAQ,EAAE,mBAAmB,EAC7B,OAAO,CAAC,EAAE;QAAE,WAAW,CAAC,EAAE,MAAM,CAAC;QAAC,WAAW,CAAC,EAAE,eAAe,CAAA;KAAE,GAChE,IAAI;IA4KP;;;;;;;;;;OAUG;IACH,qBAAqB,CAAC,QAAQ,EAAE,mBAAmB,GAAG,IAAI;IAiB1D;;;OAGG;IACH,OAAO,CAAC,SAAS;IAIjB;;;;;;OAMG;IACH,OAAO,CAAC,uBAAuB;IAoB/B;;;;;OAKG;IACH,kBAAkB,CAChB,QAAQ,EAAE,mBAAmB,EAC7B,WAAW,CAAC,EAAE,MAAM,EACpB,WAAW,CAAC,EAAE,eAAe,GAC5B,IAAI;IASP;;;;;;OAMG;IACH,wBAAwB,CAAC,QAAQ,EAAE,mBAAmB,GAAG,IAAI;IAM7D,OAAO,CAAC,uBAAuB;IAsD/B;;;;;;;OAOG;IACH,mBAAmB,CAAC,QAAQ,EAAE,mBAAmB,GAAG,IAAI;IAkDxD;;;;;;;OAOG;IACH,gBAAgB,CAAC,QAAQ,EAAE,mBAAmB,GAAG,IAAI;IAyDrD;;;;;;;;;OASG;IACH,0BAA0B,CAAC,QAAQ,EAAE,mBAAmB,GAAG,IAAI;IAqD/D;;;;;;;;;;;;;OAaG;IACH,eAAe,CAAC,QAAQ,EAAE,mBAAmB,GAAG,IAAI;IAiHpD,gCAAgC,CAAC,QAAQ,EAAE,mBAAmB,GAAG,IAAI;IA0DrE,OAAO,CAAC,0BAA0B;IAoBlC,OAAO,CAAC,+BAA+B;IAqBvC,OAAO,CAAC,2BAA2B;IAyBnC;;;;;;;;;;OAUG;IACH,uBAAuB,CAAC,QAAQ,EAAE,mBAAmB,GAAG,IAAI;IAiH5D;;;;;;;;;;;;OAYG;IACH,eAAe,CAAC,QAAQ,EAAE,mBAAmB,GAAG,IAAI;
|
|
1
|
+
{"version":3,"file":"manifest-generator.d.ts","sourceRoot":"","sources":["../../src/scanner/manifest-generator.ts"],"names":[],"mappings":"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"}
|
|
@@ -236,7 +236,7 @@ var ManifestGenerator = class {
|
|
|
236
236
|
const objectsByName = new Map(Object.values(manifest.objects).map((objectDef) => [objectDef.className, objectDef]));
|
|
237
237
|
for (const objectDef of Object.values(manifest.objects)) {
|
|
238
238
|
const config = objectDef.decoratorConfig;
|
|
239
|
-
const isCollection = objectDef.extends === "SmrtCollection" || this.extendsCollection(objectDef, objectsByName);
|
|
239
|
+
const isCollection = objectDef.extends === "SmrtCollection" || this.extendsCollection(objectDef, objectsByName, manifest);
|
|
240
240
|
let collectionItem;
|
|
241
241
|
if (isCollection) {
|
|
242
242
|
const seenParents = /* @__PURE__ */ new Set();
|
|
@@ -333,6 +333,26 @@ var ManifestGenerator = class {
|
|
|
333
333
|
return parent === child ? void 0 : parent;
|
|
334
334
|
}
|
|
335
335
|
/**
|
|
336
|
+
* `obj`'s parent among `objectsByName` (keyed by class name), without
|
|
337
|
+
* loading dependency manifests. An import-qualified parent only matches a
|
|
338
|
+
* definition of that package, never a same-named class of another one
|
|
339
|
+
* (#4176); a definition carrying no package identity still matches by name.
|
|
340
|
+
* `manifest` is the one `objectsByName` was built from, where a qualified
|
|
341
|
+
* parent that lost its class-name slot is still found.
|
|
342
|
+
*/
|
|
343
|
+
namedParent(obj, objectsByName, manifest) {
|
|
344
|
+
const qualified = obj.extendsQualified;
|
|
345
|
+
if (!qualified) return obj.extends ? objectsByName.get(obj.extends) : void 0;
|
|
346
|
+
const direct = objectsByName.get(qualified);
|
|
347
|
+
if (direct) return direct;
|
|
348
|
+
const identity = (candidate) => candidate.qualifiedName ?? (candidate.packageName ? `${candidate.packageName}:${candidate.className}` : void 0);
|
|
349
|
+
const candidate = objectsByName.get(this.simpleClassName(qualified));
|
|
350
|
+
if (candidate && (identity(candidate) ?? qualified) === qualified) return candidate;
|
|
351
|
+
const keyed = manifest?.objects[qualified];
|
|
352
|
+
if (keyed) return keyed;
|
|
353
|
+
for (const definition of [...objectsByName.values(), ...Object.values(manifest?.objects ?? {})]) if (identity(definition) === qualified) return definition;
|
|
354
|
+
}
|
|
355
|
+
/**
|
|
336
356
|
* Stamp `importPath` (via {@link determineImportPath}) on every object
|
|
337
357
|
* that does not already have one. Safe to call unconditionally: objects
|
|
338
358
|
* that went through `generateManifest()`'s own inline assignment already
|
|
@@ -681,7 +701,7 @@ var ManifestGenerator = class {
|
|
|
681
701
|
const schemaClasses = new Map(Object.values(aggregatedManifest.objects).map((obj) => [obj.className, obj]));
|
|
682
702
|
for (const obj of Object.values(manifest.objects)) schemaClasses.set(obj.className, obj);
|
|
683
703
|
for (const [name, obj] of Object.entries(manifest.objects)) {
|
|
684
|
-
if (this.extendsCollection(obj, schemaClasses)) {
|
|
704
|
+
if (this.extendsCollection(obj, schemaClasses, aggregatedManifest)) {
|
|
685
705
|
delete obj.schema;
|
|
686
706
|
continue;
|
|
687
707
|
}
|
|
@@ -703,17 +723,17 @@ var ManifestGenerator = class {
|
|
|
703
723
|
}
|
|
704
724
|
this.resolveSamePackageForeignKeyColumnTypes(manifest, generator);
|
|
705
725
|
for (const obj of Object.values(manifest.objects)) {
|
|
706
|
-
if (!this.extendsCollection(obj, schemaClasses)) continue;
|
|
726
|
+
if (!this.extendsCollection(obj, schemaClasses, aggregatedManifest)) continue;
|
|
707
727
|
let current = obj;
|
|
708
728
|
const visited = /* @__PURE__ */ new Set();
|
|
709
729
|
while (current && !visited.has(current)) {
|
|
710
730
|
visited.add(current);
|
|
711
731
|
const item = this.findItemClass(current, aggregatedManifest, schemaClasses);
|
|
712
|
-
if (item?.schema && !this.extendsCollection(item, schemaClasses)) {
|
|
732
|
+
if (item?.schema && !this.extendsCollection(item, schemaClasses, aggregatedManifest)) {
|
|
713
733
|
obj.schema = structuredClone(item.schema);
|
|
714
734
|
break;
|
|
715
735
|
}
|
|
716
|
-
current =
|
|
736
|
+
current = this.namedParent(current, schemaClasses, aggregatedManifest);
|
|
717
737
|
}
|
|
718
738
|
}
|
|
719
739
|
}
|
|
@@ -1168,8 +1188,8 @@ var ManifestGenerator = class {
|
|
|
1168
1188
|
}
|
|
1169
1189
|
this.applySubclassExposureInheritance(manifest, objectsByName);
|
|
1170
1190
|
for (const obj of Object.values(manifest.objects)) {
|
|
1171
|
-
const isCollection = obj.extends === "SmrtCollection" || this.extendsCollection(obj, objectsByName);
|
|
1172
|
-
if (!isCollection && !this.extendsAnyCollectionBase(obj, objectsByName)) continue;
|
|
1191
|
+
const isCollection = obj.extends === "SmrtCollection" || this.extendsCollection(obj, objectsByName, manifest);
|
|
1192
|
+
if (!isCollection && !this.extendsAnyCollectionBase(obj, objectsByName, manifest)) continue;
|
|
1173
1193
|
const itemClass = this.findItemClass(obj, manifest, objectsByName);
|
|
1174
1194
|
if (!itemClass || itemClass === obj) continue;
|
|
1175
1195
|
logger.debug(`[manifest-generator] ${obj.className} is a collection class for ${itemClass.className}`);
|
|
@@ -1208,12 +1228,12 @@ var ManifestGenerator = class {
|
|
|
1208
1228
|
if (!parentName) return void 0;
|
|
1209
1229
|
const simpleParent = this.simpleClassName(parentName);
|
|
1210
1230
|
if (FRAMEWORK_ABSTRACT_BASE_NAMES.has(simpleParent) || FRAMEWORK_METHOD_BASE_NAMES.has(simpleParent) || isSmrtCollectionExtendsName(parentName)) return;
|
|
1211
|
-
if (this.extendsCollection(obj, objectsByName) || this.extendsAnyCollectionBase(obj, objectsByName)) return;
|
|
1231
|
+
if (this.extendsCollection(obj, objectsByName, manifest) || this.extendsAnyCollectionBase(obj, objectsByName, manifest)) return;
|
|
1212
1232
|
let parent = (obj.extendsQualified ? manifest.objects[obj.extendsQualified] : void 0) ?? objectsByName.get(obj.extends ?? simpleParent);
|
|
1213
1233
|
if (parent === obj) parent = void 0;
|
|
1214
1234
|
if (!parent && manifest.smrtDependencies?.length) parent = this.loadParentFromExternalPackage(parentName, manifest.smrtDependencies, objectsByName);
|
|
1215
1235
|
if (!parent || parent === obj) return void 0;
|
|
1216
|
-
if (this.extendsCollection(parent, objectsByName) || this.extendsAnyCollectionBase(parent, objectsByName)) return;
|
|
1236
|
+
if (this.extendsCollection(parent, objectsByName, manifest) || this.extendsAnyCollectionBase(parent, objectsByName, manifest)) return;
|
|
1217
1237
|
return parent;
|
|
1218
1238
|
}
|
|
1219
1239
|
/**
|
|
@@ -1295,7 +1315,7 @@ var ManifestGenerator = class {
|
|
|
1295
1315
|
const objectsByName = new Map(Object.values(manifest.objects).map((objectDef) => [objectDef.className, objectDef]));
|
|
1296
1316
|
const findings = [];
|
|
1297
1317
|
for (const obj of Object.values(manifest.objects)) {
|
|
1298
|
-
if (obj.extends !== "SmrtCollection" && !this.extendsCollection(obj, objectsByName) && !this.extendsAnyCollectionBase(obj, objectsByName)) continue;
|
|
1318
|
+
if (obj.extends !== "SmrtCollection" && !this.extendsCollection(obj, objectsByName, manifest) && !this.extendsAnyCollectionBase(obj, objectsByName, manifest)) continue;
|
|
1299
1319
|
const itemClass = this.findItemClass(obj, manifest, objectsByName);
|
|
1300
1320
|
if (!itemClass || itemClass === obj) continue;
|
|
1301
1321
|
const escalations = findCollectionWriteEscalations(obj.decoratorConfig || {}, itemClass.decoratorConfig || {});
|
|
@@ -1312,14 +1332,14 @@ var ManifestGenerator = class {
|
|
|
1312
1332
|
* `SmrtJunction`, `SmrtJunctionBase`, `SmrtReportCollection`), following
|
|
1313
1333
|
* parents declared in this manifest.
|
|
1314
1334
|
*/
|
|
1315
|
-
extendsAnyCollectionBase(obj, objectsByName) {
|
|
1335
|
+
extendsAnyCollectionBase(obj, objectsByName, manifest) {
|
|
1316
1336
|
let current = obj;
|
|
1317
1337
|
const visited = /* @__PURE__ */ new Set();
|
|
1318
1338
|
while (current?.extends) {
|
|
1319
1339
|
if (isSmrtCollectionExtendsName(current.extends)) return true;
|
|
1320
|
-
if (visited.has(current
|
|
1321
|
-
visited.add(current
|
|
1322
|
-
current =
|
|
1340
|
+
if (visited.has(current)) return false;
|
|
1341
|
+
visited.add(current);
|
|
1342
|
+
current = this.namedParent(current, objectsByName, manifest);
|
|
1323
1343
|
}
|
|
1324
1344
|
return false;
|
|
1325
1345
|
}
|
|
@@ -1330,17 +1350,14 @@ var ManifestGenerator = class {
|
|
|
1330
1350
|
* @param objectsByName - Map of className -> objectDef for lookups
|
|
1331
1351
|
* @returns true if this class extends SmrtCollection
|
|
1332
1352
|
*/
|
|
1333
|
-
extendsCollection(obj, objectsByName) {
|
|
1334
|
-
|
|
1335
|
-
let currentClass = obj.extends;
|
|
1353
|
+
extendsCollection(obj, objectsByName, manifest) {
|
|
1354
|
+
let current = obj;
|
|
1336
1355
|
const visited = /* @__PURE__ */ new Set();
|
|
1337
|
-
while (
|
|
1338
|
-
if (visited.has(
|
|
1339
|
-
visited.add(
|
|
1340
|
-
if (
|
|
1341
|
-
|
|
1342
|
-
if (!parentObj) break;
|
|
1343
|
-
currentClass = parentObj.extends;
|
|
1356
|
+
while (current?.extends) {
|
|
1357
|
+
if (visited.has(current)) break;
|
|
1358
|
+
visited.add(current);
|
|
1359
|
+
if (current.extends === "SmrtCollection") return true;
|
|
1360
|
+
current = this.namedParent(current, objectsByName, manifest);
|
|
1344
1361
|
}
|
|
1345
1362
|
return false;
|
|
1346
1363
|
}
|