@carlonicora/nestjs-neo4jsonapi 1.81.0 → 1.83.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 (66) hide show
  1. package/dist/scripts/generate-module/__tests__/dto-imports.spec.d.ts +2 -0
  2. package/dist/scripts/generate-module/__tests__/dto-imports.spec.d.ts.map +1 -0
  3. package/dist/scripts/generate-module/__tests__/dto-imports.spec.js +38 -0
  4. package/dist/scripts/generate-module/__tests__/dto-imports.spec.js.map +1 -0
  5. package/dist/scripts/generate-module/__tests__/entity.spec.d.ts +2 -0
  6. package/dist/scripts/generate-module/__tests__/entity.spec.d.ts.map +1 -0
  7. package/dist/scripts/generate-module/__tests__/entity.spec.js +58 -0
  8. package/dist/scripts/generate-module/__tests__/entity.spec.js.map +1 -0
  9. package/dist/scripts/generate-module/__tests__/fixtures.d.ts +3 -0
  10. package/dist/scripts/generate-module/__tests__/fixtures.d.ts.map +1 -0
  11. package/dist/scripts/generate-module/__tests__/fixtures.js +32 -0
  12. package/dist/scripts/generate-module/__tests__/fixtures.js.map +1 -0
  13. package/dist/scripts/generate-module/__tests__/plumbing.spec.d.ts +2 -0
  14. package/dist/scripts/generate-module/__tests__/plumbing.spec.d.ts.map +1 -0
  15. package/dist/scripts/generate-module/__tests__/plumbing.spec.js +19 -0
  16. package/dist/scripts/generate-module/__tests__/plumbing.spec.js.map +1 -0
  17. package/dist/scripts/generate-module/__tests__/scope-detector.spec.d.ts +2 -0
  18. package/dist/scripts/generate-module/__tests__/scope-detector.spec.d.ts.map +1 -0
  19. package/dist/scripts/generate-module/__tests__/scope-detector.spec.js +84 -0
  20. package/dist/scripts/generate-module/__tests__/scope-detector.spec.js.map +1 -0
  21. package/dist/scripts/generate-module/__tests__/service-module.spec.d.ts +2 -0
  22. package/dist/scripts/generate-module/__tests__/service-module.spec.d.ts.map +1 -0
  23. package/dist/scripts/generate-module/__tests__/service-module.spec.js +33 -0
  24. package/dist/scripts/generate-module/__tests__/service-module.spec.js.map +1 -0
  25. package/dist/scripts/generate-module/generator.d.ts +2 -0
  26. package/dist/scripts/generate-module/generator.d.ts.map +1 -1
  27. package/dist/scripts/generate-module/generator.js +18 -5
  28. package/dist/scripts/generate-module/generator.js.map +1 -1
  29. package/dist/scripts/generate-module/index.js +3 -1
  30. package/dist/scripts/generate-module/index.js.map +1 -1
  31. package/dist/scripts/generate-module/templates/entity.template.d.ts.map +1 -1
  32. package/dist/scripts/generate-module/templates/entity.template.js +26 -8
  33. package/dist/scripts/generate-module/templates/entity.template.js.map +1 -1
  34. package/dist/scripts/generate-module/templates/module.template.d.ts.map +1 -1
  35. package/dist/scripts/generate-module/templates/module.template.js +14 -10
  36. package/dist/scripts/generate-module/templates/module.template.js.map +1 -1
  37. package/dist/scripts/generate-module/templates/service.spec.template.d.ts.map +1 -1
  38. package/dist/scripts/generate-module/templates/service.spec.template.js +14 -1
  39. package/dist/scripts/generate-module/templates/service.spec.template.js.map +1 -1
  40. package/dist/scripts/generate-module/templates/service.template.d.ts.map +1 -1
  41. package/dist/scripts/generate-module/templates/service.template.js +3 -1
  42. package/dist/scripts/generate-module/templates/service.template.js.map +1 -1
  43. package/dist/scripts/generate-module/transformers/relationship-mapper.d.ts.map +1 -1
  44. package/dist/scripts/generate-module/transformers/relationship-mapper.js +5 -0
  45. package/dist/scripts/generate-module/transformers/relationship-mapper.js.map +1 -1
  46. package/dist/scripts/generate-module/types/json-schema.interface.d.ts +18 -0
  47. package/dist/scripts/generate-module/types/json-schema.interface.d.ts.map +1 -1
  48. package/dist/scripts/generate-module/types/template-data.interface.d.ts +16 -0
  49. package/dist/scripts/generate-module/types/template-data.interface.d.ts.map +1 -1
  50. package/dist/scripts/generate-module/utils/dto-imports.d.ts +15 -0
  51. package/dist/scripts/generate-module/utils/dto-imports.d.ts.map +1 -0
  52. package/dist/scripts/generate-module/utils/dto-imports.js +36 -0
  53. package/dist/scripts/generate-module/utils/dto-imports.js.map +1 -0
  54. package/dist/scripts/generate-module/utils/module-registrar.d.ts +6 -1
  55. package/dist/scripts/generate-module/utils/module-registrar.d.ts.map +1 -1
  56. package/dist/scripts/generate-module/utils/module-registrar.js +21 -95
  57. package/dist/scripts/generate-module/utils/module-registrar.js.map +1 -1
  58. package/dist/scripts/generate-module/utils/scope-detector.d.ts +17 -0
  59. package/dist/scripts/generate-module/utils/scope-detector.d.ts.map +1 -0
  60. package/dist/scripts/generate-module/utils/scope-detector.js +153 -0
  61. package/dist/scripts/generate-module/utils/scope-detector.js.map +1 -0
  62. package/dist/scripts/generate-module/utils/type-utils.d.ts +5 -0
  63. package/dist/scripts/generate-module/utils/type-utils.d.ts.map +1 -1
  64. package/dist/scripts/generate-module/utils/type-utils.js +10 -1
  65. package/dist/scripts/generate-module/utils/type-utils.js.map +1 -1
  66. package/package.json +1 -1
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=dto-imports.spec.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"dto-imports.spec.d.ts","sourceRoot":"","sources":["../../../../scripts/generate-module/__tests__/dto-imports.spec.ts"],"names":[],"mappings":""}
@@ -0,0 +1,38 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ const vitest_1 = require("vitest");
4
+ const dto_imports_1 = require("../utils/dto-imports");
5
+ (0, vitest_1.describe)("pruneClassValidatorImports", () => {
6
+ (0, vitest_1.it)("drops validators that are imported but never used as decorators", () => {
7
+ const content = [
8
+ `import { Type } from "class-transformer";`,
9
+ `import { Equals, IsDefined, IsNotEmpty, IsNumber, IsOptional, IsUUID, ValidateNested } from "class-validator";`,
10
+ ``,
11
+ `export class FooDTO {`,
12
+ ` @Equals("foos") type: string;`,
13
+ ` @IsUUID() id: string;`,
14
+ ` @IsDefined() @IsNotEmpty() @IsNumber() number: number;`,
15
+ ` @ValidateNested() @Type(() => Object) data: object;`,
16
+ `}`,
17
+ ].join("\n");
18
+ const out = (0, dto_imports_1.pruneClassValidatorImports)(content);
19
+ // IsOptional is unused → removed; everything else is kept.
20
+ (0, vitest_1.expect)(out).toContain(`import { Equals, IsDefined, IsNotEmpty, IsNumber, IsUUID, ValidateNested } from "class-validator";`);
21
+ (0, vitest_1.expect)(out).not.toContain("IsOptional");
22
+ });
23
+ (0, vitest_1.it)("keeps validators that are used", () => {
24
+ const content = [
25
+ `import { IsOptional, IsString } from "class-validator";`,
26
+ `export class BarDTO {`,
27
+ ` @IsOptional() @IsString() name?: string;`,
28
+ `}`,
29
+ ].join("\n");
30
+ const out = (0, dto_imports_1.pruneClassValidatorImports)(content);
31
+ (0, vitest_1.expect)(out).toContain(`import { IsOptional, IsString } from "class-validator";`);
32
+ });
33
+ (0, vitest_1.it)("is a no-op when there is no class-validator import", () => {
34
+ const content = `export const x = 1;\n`;
35
+ (0, vitest_1.expect)((0, dto_imports_1.pruneClassValidatorImports)(content)).toBe(content);
36
+ });
37
+ });
38
+ //# sourceMappingURL=dto-imports.spec.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"dto-imports.spec.js","sourceRoot":"","sources":["../../../../scripts/generate-module/__tests__/dto-imports.spec.ts"],"names":[],"mappings":";;AAAA,mCAA8C;AAC9C,sDAAkE;AAElE,IAAA,iBAAQ,EAAC,4BAA4B,EAAE,GAAG,EAAE;IAC1C,IAAA,WAAE,EAAC,iEAAiE,EAAE,GAAG,EAAE;QACzE,MAAM,OAAO,GAAG;YACd,2CAA2C;YAC3C,gHAAgH;YAChH,EAAE;YACF,uBAAuB;YACvB,iCAAiC;YACjC,yBAAyB;YACzB,0DAA0D;YAC1D,uDAAuD;YACvD,GAAG;SACJ,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAEb,MAAM,GAAG,GAAG,IAAA,wCAA0B,EAAC,OAAO,CAAC,CAAC;QAChD,2DAA2D;QAC3D,IAAA,eAAM,EAAC,GAAG,CAAC,CAAC,SAAS,CACnB,oGAAoG,CACrG,CAAC;QACF,IAAA,eAAM,EAAC,GAAG,CAAC,CAAC,GAAG,CAAC,SAAS,CAAC,YAAY,CAAC,CAAC;IAC1C,CAAC,CAAC,CAAC;IAEH,IAAA,WAAE,EAAC,gCAAgC,EAAE,GAAG,EAAE;QACxC,MAAM,OAAO,GAAG;YACd,yDAAyD;YACzD,uBAAuB;YACvB,4CAA4C;YAC5C,GAAG;SACJ,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACb,MAAM,GAAG,GAAG,IAAA,wCAA0B,EAAC,OAAO,CAAC,CAAC;QAChD,IAAA,eAAM,EAAC,GAAG,CAAC,CAAC,SAAS,CAAC,yDAAyD,CAAC,CAAC;IACnF,CAAC,CAAC,CAAC;IAEH,IAAA,WAAE,EAAC,oDAAoD,EAAE,GAAG,EAAE;QAC5D,MAAM,OAAO,GAAG,uBAAuB,CAAC;QACxC,IAAA,eAAM,EAAC,IAAA,wCAA0B,EAAC,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;IAC5D,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=entity.spec.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"entity.spec.d.ts","sourceRoot":"","sources":["../../../../scripts/generate-module/__tests__/entity.spec.ts"],"names":[],"mappings":""}
@@ -0,0 +1,58 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ const vitest_1 = require("vitest");
4
+ const fixtures_1 = require("./fixtures");
5
+ const entity_template_1 = require("../templates/entity.template");
6
+ (0, vitest_1.describe)("backend entity template", () => {
7
+ (0, vitest_1.it)("emits entity-level description and chat", () => {
8
+ const out = (0, entity_template_1.generateEntityFile)((0, fixtures_1.makeTemplateData)({
9
+ description: "A demo widget.",
10
+ chat: { summary: "data.name ?? data.id", textSearchFields: ["name"] },
11
+ }));
12
+ (0, vitest_1.expect)(out).toContain('"A demo widget."');
13
+ (0, vitest_1.expect)(out).toContain("chat:");
14
+ (0, vitest_1.expect)(out).toContain("summary: (data) => data.name ?? data.id");
15
+ (0, vitest_1.expect)(out).toContain('textSearchFields: ["name"]');
16
+ });
17
+ (0, vitest_1.it)("emits field description and kind", () => {
18
+ const out = (0, entity_template_1.generateEntityFile)((0, fixtures_1.makeTemplateData)({
19
+ fields: [{ name: "value", type: "number", required: false, tsType: "number", description: "Money.", kind: { type: "money" } }],
20
+ }));
21
+ (0, vitest_1.expect)(out).toContain('value: { type: "number", description: "Money.", kind: { type: "money" } }');
22
+ });
23
+ (0, vitest_1.it)("moves readOnly+computed fields into computed{} and out of fields{}", () => {
24
+ const out = (0, entity_template_1.generateEntityFile)((0, fixtures_1.makeTemplateData)({
25
+ fields: [
26
+ { name: "name", type: "string", required: true, tsType: "string" },
27
+ { name: "effective_value", type: "number", required: false, tsType: "number", readOnly: true, computed: "p.record?.get('effective_value') ?? undefined" },
28
+ ],
29
+ }));
30
+ (0, vitest_1.expect)(out).toContain("effective_value?: number;"); // present in entity TS type
31
+ (0, vitest_1.expect)(out).toContain("computed: {"); // computed block present
32
+ (0, vitest_1.expect)(out).toContain("effective_value: {");
33
+ (0, vitest_1.expect)(out).toContain("compute: (p) => p.record?.get('effective_value') ?? undefined");
34
+ (0, vitest_1.expect)(out).not.toMatch(/effective_value:\s*\{\s*type:/); // absent from fields{} block
35
+ });
36
+ (0, vitest_1.it)("excludes a computed field from fields{} even when not readOnly", () => {
37
+ const out = (0, entity_template_1.generateEntityFile)((0, fixtures_1.makeTemplateData)({
38
+ fields: [
39
+ { name: "name", type: "string", required: true, tsType: "string" },
40
+ { name: "score", type: "number", required: false, tsType: "number", computed: "p.record?.get('score') ?? 0" },
41
+ ],
42
+ }));
43
+ (0, vitest_1.expect)(out).not.toMatch(/score:\s*\{\s*type:/); // not in fields{}
44
+ (0, vitest_1.expect)(out).toContain("compute: (p) => p.record?.get('score') ?? 0"); // in computed{}
45
+ });
46
+ (0, vitest_1.it)("emits relationship description", () => {
47
+ const out = (0, entity_template_1.generateEntityFile)((0, fixtures_1.makeTemplateData)({
48
+ relationships: [{
49
+ key: "account", model: "accountMeta", direction: "out", relationship: "FOR",
50
+ cardinality: "one", required: true, dtoKey: "account", description: "The owning account.",
51
+ relatedEntity: { name: "Account", directory: "crm", pascalCase: "Account", camelCase: "account", kebabCase: "account" },
52
+ isNewStructure: false,
53
+ }],
54
+ }));
55
+ (0, vitest_1.expect)(out).toContain('description: "The owning account."');
56
+ });
57
+ });
58
+ //# sourceMappingURL=entity.spec.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"entity.spec.js","sourceRoot":"","sources":["../../../../scripts/generate-module/__tests__/entity.spec.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,3 @@
1
+ import { TemplateData } from "../types/template-data.interface";
2
+ export declare function makeTemplateData(overrides?: Partial<TemplateData>): TemplateData;
3
+ //# sourceMappingURL=fixtures.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"fixtures.d.ts","sourceRoot":"","sources":["../../../../scripts/generate-module/__tests__/fixtures.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,kCAAkC,CAAC;AAEhE,wBAAgB,gBAAgB,CAAC,SAAS,GAAE,OAAO,CAAC,YAAY,CAAM,GAAG,YAAY,CA2BpF"}
@@ -0,0 +1,32 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.makeTemplateData = makeTemplateData;
4
+ function makeTemplateData(overrides = {}) {
5
+ return {
6
+ names: { pascalCase: "Widget", camelCase: "widget", kebabCase: "widget", pluralKebab: "widgets" },
7
+ endpoint: "widgets",
8
+ labelName: "Widget",
9
+ nodeName: "widget",
10
+ isCompanyScoped: true,
11
+ targetDir: "features/demo",
12
+ sharedScope: "@test/shared",
13
+ fields: [
14
+ { name: "name", type: "string", required: true, tsType: "string" },
15
+ { name: "due_date", type: "date", required: false, tsType: "string" },
16
+ ],
17
+ relationships: [],
18
+ aliasMetas: [],
19
+ libraryImports: [],
20
+ entityImports: [],
21
+ metaImports: [],
22
+ dtoImports: [],
23
+ nestedRoutes: [],
24
+ dtoFields: [],
25
+ postDtoRelationships: [],
26
+ putDtoRelationships: [],
27
+ requiresS3: false,
28
+ exportService: true,
29
+ ...overrides,
30
+ };
31
+ }
32
+ //# sourceMappingURL=fixtures.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"fixtures.js","sourceRoot":"","sources":["../../../../scripts/generate-module/__tests__/fixtures.ts"],"names":[],"mappings":";;AAEA,4CA2BC;AA3BD,SAAgB,gBAAgB,CAAC,YAAmC,EAAE;IACpE,OAAO;QACL,KAAK,EAAE,EAAE,UAAU,EAAE,QAAQ,EAAE,SAAS,EAAE,QAAQ,EAAE,SAAS,EAAE,QAAQ,EAAE,WAAW,EAAE,SAAS,EAAE;QACjG,QAAQ,EAAE,SAAS;QACnB,SAAS,EAAE,QAAQ;QACnB,QAAQ,EAAE,QAAQ;QAClB,eAAe,EAAE,IAAI;QACrB,SAAS,EAAE,eAAe;QAC1B,WAAW,EAAE,cAAc;QAC3B,MAAM,EAAE;YACN,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,QAAQ,EAAE,QAAQ,EAAE,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE;YAClE,EAAE,IAAI,EAAE,UAAU,EAAE,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,KAAK,EAAE,MAAM,EAAE,QAAQ,EAAE;SACtE;QACD,aAAa,EAAE,EAAE;QACjB,UAAU,EAAE,EAAE;QACd,cAAc,EAAE,EAAE;QAClB,aAAa,EAAE,EAAE;QACjB,WAAW,EAAE,EAAE;QACf,UAAU,EAAE,EAAE;QACd,YAAY,EAAE,EAAE;QAChB,SAAS,EAAE,EAAE;QACb,oBAAoB,EAAE,EAAE;QACxB,mBAAmB,EAAE,EAAE;QACvB,UAAU,EAAE,KAAK;QACjB,aAAa,EAAE,IAAI;QACnB,GAAG,SAAS;KACb,CAAC;AACJ,CAAC"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=plumbing.spec.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"plumbing.spec.d.ts","sourceRoot":"","sources":["../../../../scripts/generate-module/__tests__/plumbing.spec.ts"],"names":[],"mappings":""}
@@ -0,0 +1,19 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ const vitest_1 = require("vitest");
4
+ const fixtures_1 = require("./fixtures");
5
+ (0, vitest_1.describe)("backend plumbing fixtures", () => {
6
+ (0, vitest_1.it)("builds a TemplateData with the new optional fields defaulted", () => {
7
+ const data = (0, fixtures_1.makeTemplateData)();
8
+ (0, vitest_1.expect)(data.requiresS3).toBe(false);
9
+ (0, vitest_1.expect)(data.exportService).toBe(true);
10
+ });
11
+ (0, vitest_1.it)("carries field descriptors through overrides", () => {
12
+ const data = (0, fixtures_1.makeTemplateData)({
13
+ fields: [{ name: "value", type: "number", required: false, tsType: "number", kind: { type: "money" }, description: "Money." }],
14
+ });
15
+ (0, vitest_1.expect)(data.fields[0].kind?.type).toBe("money");
16
+ (0, vitest_1.expect)(data.fields[0].description).toBe("Money.");
17
+ });
18
+ });
19
+ //# sourceMappingURL=plumbing.spec.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"plumbing.spec.js","sourceRoot":"","sources":["../../../../scripts/generate-module/__tests__/plumbing.spec.ts"],"names":[],"mappings":";;AAAA,mCAA8C;AAC9C,yCAA8C;AAE9C,IAAA,iBAAQ,EAAC,2BAA2B,EAAE,GAAG,EAAE;IACzC,IAAA,WAAE,EAAC,8DAA8D,EAAE,GAAG,EAAE;QACtE,MAAM,IAAI,GAAG,IAAA,2BAAgB,GAAE,CAAC;QAChC,IAAA,eAAM,EAAC,IAAI,CAAC,UAAU,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QACpC,IAAA,eAAM,EAAC,IAAI,CAAC,aAAa,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IACxC,CAAC,CAAC,CAAC;IAEH,IAAA,WAAE,EAAC,6CAA6C,EAAE,GAAG,EAAE;QACrD,MAAM,IAAI,GAAG,IAAA,2BAAgB,EAAC;YAC5B,MAAM,EAAE,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE,QAAQ,EAAE,QAAQ,EAAE,KAAK,EAAE,MAAM,EAAE,QAAQ,EAAE,IAAI,EAAE,EAAE,IAAI,EAAE,OAAO,EAAE,EAAE,WAAW,EAAE,QAAQ,EAAE,CAAC;SAC/H,CAAC,CAAC;QACH,IAAA,eAAM,EAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;QAChD,IAAA,eAAM,EAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;IACpD,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=scope-detector.spec.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"scope-detector.spec.d.ts","sourceRoot":"","sources":["../../../../scripts/generate-module/__tests__/scope-detector.spec.ts"],"names":[],"mappings":""}
@@ -0,0 +1,84 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
15
+ }) : function(o, v) {
16
+ o["default"] = v;
17
+ });
18
+ var __importStar = (this && this.__importStar) || (function () {
19
+ var ownKeys = function(o) {
20
+ ownKeys = Object.getOwnPropertyNames || function (o) {
21
+ var ar = [];
22
+ for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
23
+ return ar;
24
+ };
25
+ return ownKeys(o);
26
+ };
27
+ return function (mod) {
28
+ if (mod && mod.__esModule) return mod;
29
+ var result = {};
30
+ if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
31
+ __setModuleDefault(result, mod);
32
+ return result;
33
+ };
34
+ })();
35
+ Object.defineProperty(exports, "__esModule", { value: true });
36
+ const vitest_1 = require("vitest");
37
+ const fs = __importStar(require("fs"));
38
+ const os = __importStar(require("os"));
39
+ const path = __importStar(require("path"));
40
+ const scope_detector_1 = require("../utils/scope-detector");
41
+ (0, vitest_1.describe)("detectSharedScope", () => {
42
+ (0, vitest_1.it)("prefers an explicit override", () => {
43
+ (0, vitest_1.expect)((0, scope_detector_1.detectSharedScope)({ override: "@override/shared", cwd: os.tmpdir() })).toBe("@override/shared");
44
+ });
45
+ (0, vitest_1.it)("falls back when nothing is found", () => {
46
+ const empty = fs.mkdtempSync(path.join(os.tmpdir(), "scope-empty-"));
47
+ try {
48
+ (0, vitest_1.expect)((0, scope_detector_1.detectSharedScope)({ cwd: empty, fallback: "@fallback/shared" })).toBe("@fallback/shared");
49
+ }
50
+ finally {
51
+ fs.rmSync(empty, { recursive: true, force: true });
52
+ }
53
+ });
54
+ (0, vitest_1.it)("reads the bare @scope/shared alias from a JSONC tsconfig.base.json (comments + trailing commas)", () => {
55
+ const dir = fs.mkdtempSync(path.join(os.tmpdir(), "scope-tsconfig-"));
56
+ try {
57
+ // Deliberately JSONC: line comment + trailing comma, which plain JSON.parse rejects.
58
+ fs.writeFileSync(path.join(dir, "tsconfig.base.json"), `{
59
+ "compilerOptions": {
60
+ // path aliases
61
+ "paths": {
62
+ "@dreamer/shared": ["x"],
63
+ "@dreamer/shared/*": ["x/*"],
64
+ },
65
+ },
66
+ }`);
67
+ (0, vitest_1.expect)((0, scope_detector_1.detectSharedScope)({ cwd: dir })).toBe("@dreamer/shared");
68
+ }
69
+ finally {
70
+ fs.rmSync(dir, { recursive: true, force: true });
71
+ }
72
+ });
73
+ (0, vitest_1.it)("falls back to a @scope/shared dependency in root package.json", () => {
74
+ const dir = fs.mkdtempSync(path.join(os.tmpdir(), "scope-pkg-"));
75
+ try {
76
+ fs.writeFileSync(path.join(dir, "package.json"), JSON.stringify({ dependencies: { "@acme/shared": "workspace:*" } }));
77
+ (0, vitest_1.expect)((0, scope_detector_1.detectSharedScope)({ cwd: dir })).toBe("@acme/shared");
78
+ }
79
+ finally {
80
+ fs.rmSync(dir, { recursive: true, force: true });
81
+ }
82
+ });
83
+ });
84
+ //# sourceMappingURL=scope-detector.spec.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"scope-detector.spec.js","sourceRoot":"","sources":["../../../../scripts/generate-module/__tests__/scope-detector.spec.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,mCAAmE;AACnE,uCAAyB;AACzB,uCAAyB;AACzB,2CAA6B;AAC7B,4DAA4D;AAE5D,IAAA,iBAAQ,EAAC,mBAAmB,EAAE,GAAG,EAAE;IACjC,IAAA,WAAE,EAAC,8BAA8B,EAAE,GAAG,EAAE;QACtC,IAAA,eAAM,EAAC,IAAA,kCAAiB,EAAC,EAAE,QAAQ,EAAE,kBAAkB,EAAE,GAAG,EAAE,EAAE,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,kBAAkB,CAAC,CAAC;IACzG,CAAC,CAAC,CAAC;IAEH,IAAA,WAAE,EAAC,kCAAkC,EAAE,GAAG,EAAE;QAC1C,MAAM,KAAK,GAAG,EAAE,CAAC,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,MAAM,EAAE,EAAE,cAAc,CAAC,CAAC,CAAC;QACrE,IAAI,CAAC;YACH,IAAA,eAAM,EAAC,IAAA,kCAAiB,EAAC,EAAE,GAAG,EAAE,KAAK,EAAE,QAAQ,EAAE,kBAAkB,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,kBAAkB,CAAC,CAAC;QACnG,CAAC;gBAAS,CAAC;YACT,EAAE,CAAC,MAAM,CAAC,KAAK,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC;QACrD,CAAC;IACH,CAAC,CAAC,CAAC;IAEH,IAAA,WAAE,EAAC,iGAAiG,EAAE,GAAG,EAAE;QACzG,MAAM,GAAG,GAAG,EAAE,CAAC,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,MAAM,EAAE,EAAE,iBAAiB,CAAC,CAAC,CAAC;QACtE,IAAI,CAAC;YACH,qFAAqF;YACrF,EAAE,CAAC,aAAa,CACd,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,oBAAoB,CAAC,EACpC;;;;;;;;EAQN,CACK,CAAC;YACF,IAAA,eAAM,EAAC,IAAA,kCAAiB,EAAC,EAAE,GAAG,EAAE,GAAG,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,iBAAiB,CAAC,CAAC;QAClE,CAAC;gBAAS,CAAC;YACT,EAAE,CAAC,MAAM,CAAC,GAAG,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC;QACnD,CAAC;IACH,CAAC,CAAC,CAAC;IAEH,IAAA,WAAE,EAAC,+DAA+D,EAAE,GAAG,EAAE;QACvE,MAAM,GAAG,GAAG,EAAE,CAAC,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,MAAM,EAAE,EAAE,YAAY,CAAC,CAAC,CAAC;QACjE,IAAI,CAAC;YACH,EAAE,CAAC,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,cAAc,CAAC,EAAE,IAAI,CAAC,SAAS,CAAC,EAAE,YAAY,EAAE,EAAE,cAAc,EAAE,aAAa,EAAE,EAAE,CAAC,CAAC,CAAC;YACtH,IAAA,eAAM,EAAC,IAAA,kCAAiB,EAAC,EAAE,GAAG,EAAE,GAAG,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC;QAC/D,CAAC;gBAAS,CAAC;YACT,EAAE,CAAC,MAAM,CAAC,GAAG,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC;QACnD,CAAC;IACH,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=service-module.spec.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"service-module.spec.d.ts","sourceRoot":"","sources":["../../../../scripts/generate-module/__tests__/service-module.spec.ts"],"names":[],"mappings":""}
@@ -0,0 +1,33 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ const vitest_1 = require("vitest");
4
+ const fixtures_1 = require("./fixtures");
5
+ const service_template_1 = require("../templates/service.template");
6
+ const module_template_1 = require("../templates/module.template");
7
+ (0, vitest_1.describe)("backend service template", () => {
8
+ (0, vitest_1.it)("injects AuditService into the constructor and super()", () => {
9
+ const out = (0, service_template_1.generateServiceFile)((0, fixtures_1.makeTemplateData)());
10
+ (0, vitest_1.expect)(out).toContain("AuditService");
11
+ (0, vitest_1.expect)(out).toContain("auditService: AuditService");
12
+ (0, vitest_1.expect)(out).toMatch(/super\(jsonApiService, widgetRepository, clsService, WidgetDescriptor\.model, auditService\)/);
13
+ });
14
+ });
15
+ (0, vitest_1.describe)("backend module template", () => {
16
+ (0, vitest_1.it)("registers with GraphModule and ModuleId", () => {
17
+ const out = (0, module_template_1.generateModuleFile)((0, fixtures_1.makeTemplateData)());
18
+ (0, vitest_1.expect)(out).toContain("GraphModule");
19
+ (0, vitest_1.expect)(out).toContain("GraphDescriptorRegistry");
20
+ (0, vitest_1.expect)(out).toContain('import { ModuleId } from "@test/shared"');
21
+ (0, vitest_1.expect)(out).toContain("this.graphRegistry.register({");
22
+ (0, vitest_1.expect)(out).toContain("moduleId: ModuleId.Widget");
23
+ (0, vitest_1.expect)(out).toContain("imports: [AuditModule, GraphModule]");
24
+ });
25
+ (0, vitest_1.it)("exports the service by default and respects exportService:false", () => {
26
+ (0, vitest_1.expect)((0, module_template_1.generateModuleFile)((0, fixtures_1.makeTemplateData)())).toContain("exports: [WidgetService]");
27
+ (0, vitest_1.expect)((0, module_template_1.generateModuleFile)((0, fixtures_1.makeTemplateData)({ exportService: false }))).toContain("exports: []");
28
+ });
29
+ (0, vitest_1.it)("adds S3Module only when requiresS3", () => {
30
+ (0, vitest_1.expect)((0, module_template_1.generateModuleFile)((0, fixtures_1.makeTemplateData)({ requiresS3: true }))).toContain("S3Module");
31
+ });
32
+ });
33
+ //# sourceMappingURL=service-module.spec.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"service-module.spec.js","sourceRoot":"","sources":["../../../../scripts/generate-module/__tests__/service-module.spec.ts"],"names":[],"mappings":";;AAAA,mCAA8C;AAC9C,yCAA8C;AAC9C,oEAAoE;AACpE,kEAAkE;AAElE,IAAA,iBAAQ,EAAC,0BAA0B,EAAE,GAAG,EAAE;IACxC,IAAA,WAAE,EAAC,uDAAuD,EAAE,GAAG,EAAE;QAC/D,MAAM,GAAG,GAAG,IAAA,sCAAmB,EAAC,IAAA,2BAAgB,GAAE,CAAC,CAAC;QACpD,IAAA,eAAM,EAAC,GAAG,CAAC,CAAC,SAAS,CAAC,cAAc,CAAC,CAAC;QACtC,IAAA,eAAM,EAAC,GAAG,CAAC,CAAC,SAAS,CAAC,4BAA4B,CAAC,CAAC;QACpD,IAAA,eAAM,EAAC,GAAG,CAAC,CAAC,OAAO,CAAC,8FAA8F,CAAC,CAAC;IACtH,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC;AAEH,IAAA,iBAAQ,EAAC,yBAAyB,EAAE,GAAG,EAAE;IACvC,IAAA,WAAE,EAAC,yCAAyC,EAAE,GAAG,EAAE;QACjD,MAAM,GAAG,GAAG,IAAA,oCAAkB,EAAC,IAAA,2BAAgB,GAAE,CAAC,CAAC;QACnD,IAAA,eAAM,EAAC,GAAG,CAAC,CAAC,SAAS,CAAC,aAAa,CAAC,CAAC;QACrC,IAAA,eAAM,EAAC,GAAG,CAAC,CAAC,SAAS,CAAC,yBAAyB,CAAC,CAAC;QACjD,IAAA,eAAM,EAAC,GAAG,CAAC,CAAC,SAAS,CAAC,yCAAyC,CAAC,CAAC;QACjE,IAAA,eAAM,EAAC,GAAG,CAAC,CAAC,SAAS,CAAC,+BAA+B,CAAC,CAAC;QACvD,IAAA,eAAM,EAAC,GAAG,CAAC,CAAC,SAAS,CAAC,2BAA2B,CAAC,CAAC;QACnD,IAAA,eAAM,EAAC,GAAG,CAAC,CAAC,SAAS,CAAC,qCAAqC,CAAC,CAAC;IAC/D,CAAC,CAAC,CAAC;IAEH,IAAA,WAAE,EAAC,iEAAiE,EAAE,GAAG,EAAE;QACzE,IAAA,eAAM,EAAC,IAAA,oCAAkB,EAAC,IAAA,2BAAgB,GAAE,CAAC,CAAC,CAAC,SAAS,CAAC,0BAA0B,CAAC,CAAC;QACrF,IAAA,eAAM,EAAC,IAAA,oCAAkB,EAAC,IAAA,2BAAgB,EAAC,EAAE,aAAa,EAAE,KAAK,EAAE,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,aAAa,CAAC,CAAC;IAClG,CAAC,CAAC,CAAC;IAEH,IAAA,WAAE,EAAC,oCAAoC,EAAE,GAAG,EAAE;QAC5C,IAAA,eAAM,EAAC,IAAA,oCAAkB,EAAC,IAAA,2BAAgB,EAAC,EAAE,UAAU,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,UAAU,CAAC,CAAC;IAC3F,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC"}
@@ -3,6 +3,8 @@ export interface GenerateModuleOptions {
3
3
  dryRun?: boolean;
4
4
  force?: boolean;
5
5
  noRegister?: boolean;
6
+ /** Override the detected host-app shared package scope (source of ModuleId). */
7
+ sharedScope?: string;
6
8
  }
7
9
  /**
8
10
  * Main generator function
@@ -1 +1 @@
1
- {"version":3,"file":"generator.d.ts","sourceRoot":"","sources":["../../../scripts/generate-module/generator.ts"],"names":[],"mappings":"AA2BA,MAAM,WAAW,qBAAqB;IACpC,QAAQ,EAAE,MAAM,CAAC;IACjB,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,UAAU,CAAC,EAAE,OAAO,CAAC;CACtB;AAED;;;;GAIG;AACH,wBAAsB,cAAc,CAAC,OAAO,EAAE,qBAAqB,GAAG,OAAO,CAAC,IAAI,CAAC,CAqQlF"}
1
+ {"version":3,"file":"generator.d.ts","sourceRoot":"","sources":["../../../scripts/generate-module/generator.ts"],"names":[],"mappings":"AA6BA,MAAM,WAAW,qBAAqB;IACpC,QAAQ,EAAE,MAAM,CAAC;IACjB,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,gFAAgF;IAChF,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB;AAED;;;;GAIG;AACH,wBAAsB,cAAc,CAAC,OAAO,EAAE,qBAAqB,GAAG,OAAO,CAAC,IAAI,CAAC,CAiRlF"}
@@ -57,6 +57,8 @@ const controller_spec_template_1 = require("./templates/controller.spec.template
57
57
  const dto_spec_template_1 = require("./templates/dto.spec.template");
58
58
  const file_writer_1 = require("./utils/file-writer");
59
59
  const module_registrar_1 = require("./utils/module-registrar");
60
+ const scope_detector_1 = require("./utils/scope-detector");
61
+ const dto_imports_1 = require("./utils/dto-imports");
60
62
  const type_utils_1 = require("./utils/type-utils");
61
63
  /**
62
64
  * Main generator function
@@ -65,6 +67,8 @@ const type_utils_1 = require("./utils/type-utils");
65
67
  */
66
68
  async function generateModule(options) {
67
69
  const { jsonPath, dryRun = false, force = false, noRegister = false } = options;
70
+ // Resolve the host app's shared package scope (source of ModuleId) once.
71
+ const sharedScope = (0, scope_detector_1.detectSharedScope)({ override: options.sharedScope });
68
72
  // 1. Load and parse JSON
69
73
  console.info(`📖 Loading JSON schema from: ${jsonPath}`);
70
74
  const jsonContent = fs.readFileSync(jsonPath, "utf-8");
@@ -129,6 +133,10 @@ async function generateModule(options) {
129
133
  type: normalizedType,
130
134
  required: !field.nullable,
131
135
  tsType: (0, type_utils_1.getTsType)(normalizedType),
136
+ description: field.description,
137
+ kind: field.kind,
138
+ computed: field.computed,
139
+ readOnly: field.readOnly,
132
140
  };
133
141
  });
134
142
  // Build alias metas only for relationships where multiple aliases target the same entity
@@ -171,6 +179,11 @@ async function generateModule(options) {
171
179
  nodeName: names.camelCase,
172
180
  isCompanyScoped: jsonSchema.isCompanyScoped !== false, // Default: true
173
181
  targetDir: jsonSchema.targetDir,
182
+ sharedScope,
183
+ description: jsonSchema.description,
184
+ chat: jsonSchema.chat,
185
+ requiresS3: jsonSchema.requiresS3 === true,
186
+ exportService: jsonSchema.exportService !== false, // default: export
174
187
  fields,
175
188
  relationships,
176
189
  aliasMetas,
@@ -222,18 +235,18 @@ async function generateModule(options) {
222
235
  path: path.resolve(process.cwd(), `${basePath}/controllers/${names.kebabCase}.controller.ts`),
223
236
  content: (0, controller_template_1.generateControllerFile)(templateData),
224
237
  },
225
- // DTOs
238
+ // DTOs (class-validator imports pruned to exactly what each file uses)
226
239
  {
227
240
  path: path.resolve(process.cwd(), `${basePath}/dtos/${names.kebabCase}.dto.ts`),
228
- content: (0, dto_base_template_1.generateBaseDTOFile)(templateData),
241
+ content: (0, dto_imports_1.pruneClassValidatorImports)((0, dto_base_template_1.generateBaseDTOFile)(templateData)),
229
242
  },
230
243
  {
231
244
  path: path.resolve(process.cwd(), `${basePath}/dtos/${names.kebabCase}.post.dto.ts`),
232
- content: (0, dto_post_template_1.generatePostDTOFile)(templateData),
245
+ content: (0, dto_imports_1.pruneClassValidatorImports)((0, dto_post_template_1.generatePostDTOFile)(templateData)),
233
246
  },
234
247
  {
235
248
  path: path.resolve(process.cwd(), `${basePath}/dtos/${names.kebabCase}.put.dto.ts`),
236
- content: (0, dto_put_template_1.generatePutDTOFile)(templateData),
249
+ content: (0, dto_imports_1.pruneClassValidatorImports)((0, dto_put_template_1.generatePutDTOFile)(templateData)),
237
250
  },
238
251
  ];
239
252
  // Add relationship DTO file if there are MANY relationships
@@ -241,7 +254,7 @@ async function generateModule(options) {
241
254
  if (relationshipDTOContent) {
242
255
  filesToWrite.push({
243
256
  path: path.resolve(process.cwd(), `${basePath}/dtos/${names.kebabCase}.relationship.dto.ts`),
244
- content: relationshipDTOContent,
257
+ content: (0, dto_imports_1.pruneClassValidatorImports)(relationshipDTOContent),
245
258
  });
246
259
  }
247
260
  // Add test files (co-located with source files)
@@ -1 +1 @@
1
- {"version":3,"file":"generator.js","sourceRoot":"","sources":["../../../scripts/generate-module/generator.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"generator.js","sourceRoot":"","sources":["../../../scripts/generate-module/generator.ts"],"names":[],"mappings":"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"}
@@ -45,7 +45,8 @@ program
45
45
  .argument("<json-file>", "Path to JSON schema file")
46
46
  .option("--dry-run", "Preview files without writing them", false)
47
47
  .option("--force", "Overwrite existing files", false)
48
- .option("--no-register", "Skip module registration in parent module", false)
48
+ .option("--no-register", "Skip module registration in parent module")
49
+ .option("--shared-scope <scope>", "Override the shared package scope that exports ModuleId (auto-detected by default)")
49
50
  .action(async (jsonFile, options) => {
50
51
  try {
51
52
  const jsonPath = path.resolve(process.cwd(), jsonFile);
@@ -59,6 +60,7 @@ program
59
60
  dryRun: options.dryRun,
60
61
  force: options.force,
61
62
  noRegister: !options.register,
63
+ sharedScope: options.sharedScope,
62
64
  });
63
65
  }
64
66
  catch (error) {
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../scripts/generate-module/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAEA,yCAAoC;AACpC,2CAA6B;AAC7B,2CAA6C;AAE7C,MAAM,OAAO,GAAG,IAAI,mBAAO,EAAE,CAAC;AAE9B,OAAO;KACJ,IAAI,CAAC,iBAAiB,CAAC;KACvB,WAAW,CAAC,wDAAwD,CAAC;KACrE,OAAO,CAAC,OAAO,CAAC;KAChB,QAAQ,CAAC,aAAa,EAAE,0BAA0B,CAAC;KACnD,MAAM,CAAC,WAAW,EAAE,oCAAoC,EAAE,KAAK,CAAC;KAChE,MAAM,CAAC,SAAS,EAAE,0BAA0B,EAAE,KAAK,CAAC;KACpD,MAAM,CAAC,eAAe,EAAE,2CAA2C,EAAE,KAAK,CAAC;KAC3E,MAAM,CAAC,KAAK,EAAE,QAAgB,EAAE,OAAO,EAAE,EAAE;IAC1C,IAAI,CAAC;QACH,MAAM,QAAQ,GAAG,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,QAAQ,CAAC,CAAC;QAEvD,OAAO,CAAC,IAAI,CAAC,gCAAgC,CAAC,CAAC;QAC/C,OAAO,CAAC,IAAI,CAAC,iBAAiB,QAAQ,EAAE,CAAC,CAAC;QAC1C,OAAO,CAAC,IAAI,CAAC,eAAe,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC;QAC7D,OAAO,CAAC,IAAI,CAAC,aAAa,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC;QAC1D,OAAO,CAAC,IAAI,CAAC,gBAAgB,OAAO,CAAC,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,IAAI,CAAC,CAAC;QAElE,MAAM,IAAA,0BAAc,EAAC;YACnB,QAAQ;YACR,MAAM,EAAE,OAAO,CAAC,MAAM;YACtB,KAAK,EAAE,OAAO,CAAC,KAAK;YACpB,UAAU,EAAE,CAAC,OAAO,CAAC,QAAQ;SAC9B,CAAC,CAAC;IACL,CAAC;IAAC,OAAO,KAAU,EAAE,CAAC;QACpB,OAAO,CAAC,KAAK,CAAC,cAAc,KAAK,CAAC,OAAO,IAAI,CAAC,CAAC;QAC/C,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;AACH,CAAC,CAAC,CAAC;AAEL,OAAO,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../scripts/generate-module/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAEA,yCAAoC;AACpC,2CAA6B;AAC7B,2CAA6C;AAE7C,MAAM,OAAO,GAAG,IAAI,mBAAO,EAAE,CAAC;AAE9B,OAAO;KACJ,IAAI,CAAC,iBAAiB,CAAC;KACvB,WAAW,CAAC,wDAAwD,CAAC;KACrE,OAAO,CAAC,OAAO,CAAC;KAChB,QAAQ,CAAC,aAAa,EAAE,0BAA0B,CAAC;KACnD,MAAM,CAAC,WAAW,EAAE,oCAAoC,EAAE,KAAK,CAAC;KAChE,MAAM,CAAC,SAAS,EAAE,0BAA0B,EAAE,KAAK,CAAC;KACpD,MAAM,CAAC,eAAe,EAAE,2CAA2C,CAAC;KACpE,MAAM,CAAC,wBAAwB,EAAE,oFAAoF,CAAC;KACtH,MAAM,CAAC,KAAK,EAAE,QAAgB,EAAE,OAAO,EAAE,EAAE;IAC1C,IAAI,CAAC;QACH,MAAM,QAAQ,GAAG,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,QAAQ,CAAC,CAAC;QAEvD,OAAO,CAAC,IAAI,CAAC,gCAAgC,CAAC,CAAC;QAC/C,OAAO,CAAC,IAAI,CAAC,iBAAiB,QAAQ,EAAE,CAAC,CAAC;QAC1C,OAAO,CAAC,IAAI,CAAC,eAAe,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC;QAC7D,OAAO,CAAC,IAAI,CAAC,aAAa,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC;QAC1D,OAAO,CAAC,IAAI,CAAC,gBAAgB,OAAO,CAAC,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,IAAI,CAAC,CAAC;QAElE,MAAM,IAAA,0BAAc,EAAC;YACnB,QAAQ;YACR,MAAM,EAAE,OAAO,CAAC,MAAM;YACtB,KAAK,EAAE,OAAO,CAAC,KAAK;YACpB,UAAU,EAAE,CAAC,OAAO,CAAC,QAAQ;YAC7B,WAAW,EAAE,OAAO,CAAC,WAAW;SACjC,CAAC,CAAC;IACL,CAAC;IAAC,OAAO,KAAU,EAAE,CAAC;QACpB,OAAO,CAAC,KAAK,CAAC,cAAc,KAAK,CAAC,OAAO,IAAI,CAAC,CAAC;QAC/C,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;AACH,CAAC,CAAC,CAAC;AAEL,OAAO,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"entity.template.d.ts","sourceRoot":"","sources":["../../../../scripts/generate-module/templates/entity.template.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAA0B,MAAM,kCAAkC,CAAC;AA2BxF;;;;;;;;GAQG;AACH,wBAAgB,kBAAkB,CAAC,IAAI,EAAE,YAAY,GAAG,MAAM,CAgK7D"}
1
+ {"version":3,"file":"entity.template.d.ts","sourceRoot":"","sources":["../../../../scripts/generate-module/templates/entity.template.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAA0B,MAAM,kCAAkC,CAAC;AA2BxF;;;;;;;;GAQG;AACH,wBAAgB,kBAAkB,CAAC,IAAI,EAAE,YAAY,GAAG,MAAM,CAiL7D"}
@@ -77,21 +77,37 @@ function generateEntityFile(data) {
77
77
  metaImportsByPath.get(importPath).push(rel.model);
78
78
  }
79
79
  }
80
- // Build field definitions for descriptor
81
- const fieldDefinitions = fields
80
+ // Build field definitions for descriptor (readOnly fields go under computed{}, not here)
81
+ const writableFields = fields.filter((f) => !f.readOnly && !f.computed);
82
+ const fieldDefinitions = writableFields
82
83
  .map((field) => {
83
- const parts = [];
84
- parts.push(`type: "${field.type}"`);
85
- if (field.required) {
84
+ const parts = [`type: "${field.type}"`];
85
+ if (field.required)
86
86
  parts.push(`required: true`);
87
- }
87
+ if (field.description)
88
+ parts.push(`description: ${JSON.stringify(field.description)}`);
89
+ if (field.kind)
90
+ parts.push(`kind: { type: "${field.kind.type}" }`);
88
91
  return ` ${field.name}: { ${parts.join(", ")} },`;
89
92
  })
90
93
  .join("\n");
94
+ // Build computed{} block from fields carrying a `computed` expression
95
+ const computedFields = fields.filter((f) => f.computed);
96
+ const computedBlock = computedFields.length
97
+ ? `\n computed: {\n${computedFields
98
+ .map((f) => {
99
+ const expr = f.computed.trim();
100
+ const desc = f.description ? `\n description: ${JSON.stringify(f.description)},` : "";
101
+ return ` ${f.name}: {\n compute: (p) => ${expr},${desc}\n },`;
102
+ })
103
+ .join("\n")}\n },\n`
104
+ : "";
91
105
  // Build relationship definitions for descriptor
92
106
  const relationshipDefinitions = relationships
93
107
  .map((rel) => {
94
108
  const parts = [];
109
+ if (rel.description)
110
+ parts.push(`description: ${JSON.stringify(rel.description)}`);
95
111
  parts.push(`model: ${rel.model}`);
96
112
  parts.push(`direction: "${rel.direction}"`);
97
113
  parts.push(`relationship: "${rel.relationship}"`);
@@ -162,11 +178,13 @@ ${data.isCompanyScoped ? " company: Company;\n" : ""}${relationships
162
178
  */
163
179
  export const ${names.pascalCase}Descriptor = defineEntity<${names.pascalCase}>()({
164
180
  ...${names.camelCase}Meta,
165
- ${!data.isCompanyScoped ? "\n isCompanyScoped: false,\n" : ""}
181
+ ${data.description ? `\n description: ${JSON.stringify(data.description)},\n` : ""}${data.chat
182
+ ? `\n chat: {\n summary: (data) => ${data.chat.summary},\n textSearchFields: ${JSON.stringify(data.chat.textSearchFields)},\n },\n`
183
+ : ""}${!data.isCompanyScoped ? "\n isCompanyScoped: false,\n" : ""}
166
184
  fields: {
167
185
  ${fieldDefinitions}
168
186
  },
169
-
187
+ ${computedBlock}
170
188
  relationships: {
171
189
  ${relationshipDefinitions}
172
190
  },