@happyvertical/smrt-core 0.36.3 → 0.36.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.
- package/dist/collection.d.ts +8 -3
- package/dist/collection.d.ts.map +1 -1
- package/dist/collection.js +6 -0
- package/dist/collection.js.map +1 -1
- package/dist/manifest/static-manifest.d.ts.map +1 -1
- package/dist/manifest/static-manifest.js +13 -198
- package/dist/manifest/static-manifest.js.map +1 -1
- package/dist/manifest/store.js +2 -2
- package/dist/manifest/store.js.map +1 -1
- package/dist/manifest/test-manifest-stub.d.ts.map +1 -1
- package/dist/manifest/test-manifest-stub.js +13 -198
- package/dist/manifest/test-manifest-stub.js.map +1 -1
- package/dist/manifest.json +13 -175
- package/dist/registry/types.d.ts +21 -0
- package/dist/registry/types.d.ts.map +1 -1
- package/dist/registry.d.ts.map +1 -1
- package/dist/registry.js +9 -0
- package/dist/registry.js.map +1 -1
- package/dist/scanner/manifest-generator.d.ts +2 -0
- package/dist/scanner/manifest-generator.d.ts.map +1 -1
- package/dist/scanner/manifest-generator.js +30 -1
- package/dist/scanner/manifest-generator.js.map +1 -1
- package/dist/smrt-knowledge.json +14 -26
- package/dist/vite-plugin/index.d.ts.map +1 -1
- package/dist/vite-plugin/index.js +2 -0
- package/dist/vite-plugin/index.js.map +1 -1
- package/package.json +10 -10
|
@@ -59,6 +59,8 @@ export declare class ManifestGenerator {
|
|
|
59
59
|
* @param manifest - The manifest to process in-place
|
|
60
60
|
*/
|
|
61
61
|
generateSchemas(manifest: SmartObjectManifest): void;
|
|
62
|
+
normalizeReportObjects(manifest: SmartObjectManifest): void;
|
|
63
|
+
normalizeReportTenantScope(manifest: SmartObjectManifest): void;
|
|
62
64
|
private resolveSamePackageForeignKeyColumnTypes;
|
|
63
65
|
private findForeignKeyTargetSchema;
|
|
64
66
|
private getObjectTableName;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"manifest-generator.d.ts","sourceRoot":"","sources":["../../src/scanner/manifest-generator.ts"],"names":[],"mappings":"AAAA;;GAEG;AAaH,OAAO,KAAK,EAUV,UAAU,EAEV,mBAAmB,EACnB,cAAc,EAEf,MAAM,YAAY,CAAC;
|
|
1
|
+
{"version":3,"file":"manifest-generator.d.ts","sourceRoot":"","sources":["../../src/scanner/manifest-generator.ts"],"names":[],"mappings":"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"}
|
|
@@ -10,7 +10,9 @@ const require$1 = createRequire(import.meta.url);
|
|
|
10
10
|
const FRAMEWORK_ABSTRACT_BASE_NAMES = /* @__PURE__ */ new Set([
|
|
11
11
|
"SmrtJunction",
|
|
12
12
|
"SmrtHierarchical",
|
|
13
|
-
"SmrtPolymorphicAssociation"
|
|
13
|
+
"SmrtPolymorphicAssociation",
|
|
14
|
+
"SmrtReport",
|
|
15
|
+
"SmrtReportCollection"
|
|
14
16
|
]);
|
|
15
17
|
function inferVisibility(filePath, explicitVisibility) {
|
|
16
18
|
if (explicitVisibility) return explicitVisibility;
|
|
@@ -99,8 +101,10 @@ Class names must be unique within a package. Use different class names or separa
|
|
|
99
101
|
manifest.objects[manifestKey] = objectDef;
|
|
100
102
|
}
|
|
101
103
|
}
|
|
104
|
+
this.normalizeReportTenantScope(manifest);
|
|
102
105
|
this.injectTenantScopedFields(manifest);
|
|
103
106
|
this.mergeInheritedFields(manifest);
|
|
107
|
+
this.normalizeReportObjects(manifest);
|
|
104
108
|
this.generateValidationRules(manifest);
|
|
105
109
|
this.generateSchemas(manifest);
|
|
106
110
|
this.assertTenantScopedSchemaContract(manifest);
|
|
@@ -355,6 +359,9 @@ ${failures.map((failure) => ` - ${failure}`).join("\n")}`
|
|
|
355
359
|
Object.values(manifest.objects).map((o) => o.className)
|
|
356
360
|
);
|
|
357
361
|
for (const [name, obj] of Object.entries(manifest.objects)) {
|
|
362
|
+
if (FRAMEWORK_ABSTRACT_BASE_NAMES.has(obj.className)) {
|
|
363
|
+
continue;
|
|
364
|
+
}
|
|
358
365
|
const tableName = obj.decoratorConfig?.tableName || this.classNameToTableName(obj.className);
|
|
359
366
|
if (obj.decoratorConfig?.tableStrategy === "sti") {
|
|
360
367
|
if (processedSTIBases.has(name)) continue;
|
|
@@ -406,6 +413,28 @@ ${failures.map((failure) => ` - ${failure}`).join("\n")}`
|
|
|
406
413
|
}
|
|
407
414
|
this.resolveSamePackageForeignKeyColumnTypes(manifest, generator);
|
|
408
415
|
}
|
|
416
|
+
normalizeReportObjects(manifest) {
|
|
417
|
+
for (const obj of Object.values(manifest.objects)) {
|
|
418
|
+
if (!obj.decoratorConfig?.report) continue;
|
|
419
|
+
obj.decoratorConfig.api ??= { include: ["list", "get"] };
|
|
420
|
+
obj.decoratorConfig.mcp ??= { include: ["list", "get"] };
|
|
421
|
+
if (obj.decoratorConfig.conflictColumns) continue;
|
|
422
|
+
const tenantScoped = obj.decoratorConfig.tenantScoped;
|
|
423
|
+
const tenantField = tenantScoped && typeof tenantScoped === "object" ? tenantScoped.field || "tenantId" : tenantScoped ? "tenantId" : void 0;
|
|
424
|
+
const tenantColumn = tenantField && obj.fields[tenantField] ? toSnakeCase(tenantField) : "";
|
|
425
|
+
const conflictColumns = Object.entries(obj.fields).filter(([, field]) => {
|
|
426
|
+
const kind = field._meta?.__report?.kind;
|
|
427
|
+
return kind === "group" || kind === "bucket";
|
|
428
|
+
}).map(([fieldName]) => toSnakeCase(fieldName));
|
|
429
|
+
obj.decoratorConfig.conflictColumns = conflictColumns.length > 0 ? [...tenantColumn ? [tenantColumn] : [], ...conflictColumns] : ["id"];
|
|
430
|
+
}
|
|
431
|
+
}
|
|
432
|
+
normalizeReportTenantScope(manifest) {
|
|
433
|
+
for (const obj of Object.values(manifest.objects)) {
|
|
434
|
+
if (!obj.decoratorConfig?.report) continue;
|
|
435
|
+
obj.decoratorConfig.tenantScoped ??= { mode: "optional" };
|
|
436
|
+
}
|
|
437
|
+
}
|
|
409
438
|
resolveSamePackageForeignKeyColumnTypes(manifest, generator) {
|
|
410
439
|
const schemaByTable = /* @__PURE__ */ new Map();
|
|
411
440
|
const ownerBySchema = /* @__PURE__ */ new Map();
|