@carlonicora/nestjs-neo4jsonapi 1.82.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.
- package/dist/scripts/generate-module/__tests__/dto-imports.spec.d.ts +2 -0
- package/dist/scripts/generate-module/__tests__/dto-imports.spec.d.ts.map +1 -0
- package/dist/scripts/generate-module/__tests__/dto-imports.spec.js +38 -0
- package/dist/scripts/generate-module/__tests__/dto-imports.spec.js.map +1 -0
- package/dist/scripts/generate-module/__tests__/fixtures.d.ts.map +1 -1
- package/dist/scripts/generate-module/__tests__/fixtures.js +1 -0
- package/dist/scripts/generate-module/__tests__/fixtures.js.map +1 -1
- package/dist/scripts/generate-module/__tests__/scope-detector.spec.d.ts +2 -0
- package/dist/scripts/generate-module/__tests__/scope-detector.spec.d.ts.map +1 -0
- package/dist/scripts/generate-module/__tests__/scope-detector.spec.js +84 -0
- package/dist/scripts/generate-module/__tests__/scope-detector.spec.js.map +1 -0
- package/dist/scripts/generate-module/__tests__/service-module.spec.js +1 -1
- package/dist/scripts/generate-module/__tests__/service-module.spec.js.map +1 -1
- package/dist/scripts/generate-module/generator.d.ts +2 -0
- package/dist/scripts/generate-module/generator.d.ts.map +1 -1
- package/dist/scripts/generate-module/generator.js +10 -5
- package/dist/scripts/generate-module/generator.js.map +1 -1
- package/dist/scripts/generate-module/index.js +3 -1
- package/dist/scripts/generate-module/index.js.map +1 -1
- package/dist/scripts/generate-module/templates/module.template.js +2 -2
- package/dist/scripts/generate-module/templates/module.template.js.map +1 -1
- package/dist/scripts/generate-module/templates/service.spec.template.d.ts.map +1 -1
- package/dist/scripts/generate-module/templates/service.spec.template.js +0 -2
- package/dist/scripts/generate-module/templates/service.spec.template.js.map +1 -1
- package/dist/scripts/generate-module/types/template-data.interface.d.ts +2 -0
- package/dist/scripts/generate-module/types/template-data.interface.d.ts.map +1 -1
- package/dist/scripts/generate-module/utils/dto-imports.d.ts +15 -0
- package/dist/scripts/generate-module/utils/dto-imports.d.ts.map +1 -0
- package/dist/scripts/generate-module/utils/dto-imports.js +36 -0
- package/dist/scripts/generate-module/utils/dto-imports.js.map +1 -0
- package/dist/scripts/generate-module/utils/module-registrar.d.ts +6 -1
- package/dist/scripts/generate-module/utils/module-registrar.d.ts.map +1 -1
- package/dist/scripts/generate-module/utils/module-registrar.js +21 -95
- package/dist/scripts/generate-module/utils/module-registrar.js.map +1 -1
- package/dist/scripts/generate-module/utils/scope-detector.d.ts +17 -0
- package/dist/scripts/generate-module/utils/scope-detector.d.ts.map +1 -0
- package/dist/scripts/generate-module/utils/scope-detector.js +153 -0
- package/dist/scripts/generate-module/utils/scope-detector.js.map +1 -0
- package/dist/scripts/generate-module/utils/type-utils.d.ts +5 -0
- package/dist/scripts/generate-module/utils/type-utils.d.ts.map +1 -1
- package/dist/scripts/generate-module/utils/type-utils.js +10 -1
- package/dist/scripts/generate-module/utils/type-utils.js.map +1 -1
- package/package.json +1 -1
|
@@ -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"}
|
|
@@ -1 +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,
|
|
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"}
|
|
@@ -9,6 +9,7 @@ function makeTemplateData(overrides = {}) {
|
|
|
9
9
|
nodeName: "widget",
|
|
10
10
|
isCompanyScoped: true,
|
|
11
11
|
targetDir: "features/demo",
|
|
12
|
+
sharedScope: "@test/shared",
|
|
12
13
|
fields: [
|
|
13
14
|
{ name: "name", type: "string", required: true, tsType: "string" },
|
|
14
15
|
{ name: "due_date", type: "date", required: false, tsType: "string" },
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"fixtures.js","sourceRoot":"","sources":["../../../../scripts/generate-module/__tests__/fixtures.ts"],"names":[],"mappings":";;AAEA,
|
|
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 @@
|
|
|
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"}
|
|
@@ -17,7 +17,7 @@ const module_template_1 = require("../templates/module.template");
|
|
|
17
17
|
const out = (0, module_template_1.generateModuleFile)((0, fixtures_1.makeTemplateData)());
|
|
18
18
|
(0, vitest_1.expect)(out).toContain("GraphModule");
|
|
19
19
|
(0, vitest_1.expect)(out).toContain("GraphDescriptorRegistry");
|
|
20
|
-
(0, vitest_1.expect)(out).toContain('import { ModuleId } from "@
|
|
20
|
+
(0, vitest_1.expect)(out).toContain('import { ModuleId } from "@test/shared"');
|
|
21
21
|
(0, vitest_1.expect)(out).toContain("this.graphRegistry.register({");
|
|
22
22
|
(0, vitest_1.expect)(out).toContain("moduleId: ModuleId.Widget");
|
|
23
23
|
(0, vitest_1.expect)(out).toContain("imports: [AuditModule, GraphModule]");
|
|
@@ -1 +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
|
|
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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"generator.d.ts","sourceRoot":"","sources":["../../../scripts/generate-module/generator.ts"],"names":[],"mappings":"
|
|
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");
|
|
@@ -175,6 +179,7 @@ async function generateModule(options) {
|
|
|
175
179
|
nodeName: names.camelCase,
|
|
176
180
|
isCompanyScoped: jsonSchema.isCompanyScoped !== false, // Default: true
|
|
177
181
|
targetDir: jsonSchema.targetDir,
|
|
182
|
+
sharedScope,
|
|
178
183
|
description: jsonSchema.description,
|
|
179
184
|
chat: jsonSchema.chat,
|
|
180
185
|
requiresS3: jsonSchema.requiresS3 === true,
|
|
@@ -230,18 +235,18 @@ async function generateModule(options) {
|
|
|
230
235
|
path: path.resolve(process.cwd(), `${basePath}/controllers/${names.kebabCase}.controller.ts`),
|
|
231
236
|
content: (0, controller_template_1.generateControllerFile)(templateData),
|
|
232
237
|
},
|
|
233
|
-
// DTOs
|
|
238
|
+
// DTOs (class-validator imports pruned to exactly what each file uses)
|
|
234
239
|
{
|
|
235
240
|
path: path.resolve(process.cwd(), `${basePath}/dtos/${names.kebabCase}.dto.ts`),
|
|
236
|
-
content: (0, dto_base_template_1.generateBaseDTOFile)(templateData),
|
|
241
|
+
content: (0, dto_imports_1.pruneClassValidatorImports)((0, dto_base_template_1.generateBaseDTOFile)(templateData)),
|
|
237
242
|
},
|
|
238
243
|
{
|
|
239
244
|
path: path.resolve(process.cwd(), `${basePath}/dtos/${names.kebabCase}.post.dto.ts`),
|
|
240
|
-
content: (0, dto_post_template_1.generatePostDTOFile)(templateData),
|
|
245
|
+
content: (0, dto_imports_1.pruneClassValidatorImports)((0, dto_post_template_1.generatePostDTOFile)(templateData)),
|
|
241
246
|
},
|
|
242
247
|
{
|
|
243
248
|
path: path.resolve(process.cwd(), `${basePath}/dtos/${names.kebabCase}.put.dto.ts`),
|
|
244
|
-
content: (0, dto_put_template_1.generatePutDTOFile)(templateData),
|
|
249
|
+
content: (0, dto_imports_1.pruneClassValidatorImports)((0, dto_put_template_1.generatePutDTOFile)(templateData)),
|
|
245
250
|
},
|
|
246
251
|
];
|
|
247
252
|
// Add relationship DTO file if there are MANY relationships
|
|
@@ -249,7 +254,7 @@ async function generateModule(options) {
|
|
|
249
254
|
if (relationshipDTOContent) {
|
|
250
255
|
filesToWrite.push({
|
|
251
256
|
path: path.resolve(process.cwd(), `${basePath}/dtos/${names.kebabCase}.relationship.dto.ts`),
|
|
252
|
-
content: relationshipDTOContent,
|
|
257
|
+
content: (0, dto_imports_1.pruneClassValidatorImports)(relationshipDTOContent),
|
|
253
258
|
});
|
|
254
259
|
}
|
|
255
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":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
|
|
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"
|
|
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,
|
|
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"}
|
|
@@ -8,7 +8,7 @@ exports.generateModuleFile = generateModuleFile;
|
|
|
8
8
|
* @returns Generated TypeScript code
|
|
9
9
|
*/
|
|
10
10
|
function generateModuleFile(data) {
|
|
11
|
-
const { names, targetDir, requiresS3, exportService } = data;
|
|
11
|
+
const { names, targetDir, requiresS3, exportService, sharedScope } = data;
|
|
12
12
|
const libImports = ["AuditModule", "GraphModule", "GraphDescriptorRegistry", "modelRegistry"];
|
|
13
13
|
if (requiresS3)
|
|
14
14
|
libImports.push("S3Module");
|
|
@@ -18,7 +18,7 @@ function generateModuleFile(data) {
|
|
|
18
18
|
${[...libImports].sort().join(",\n ")},
|
|
19
19
|
} from "@carlonicora/nestjs-neo4jsonapi";
|
|
20
20
|
import { Module, OnModuleInit } from "@nestjs/common";
|
|
21
|
-
import { ModuleId } from "
|
|
21
|
+
import { ModuleId } from "${sharedScope}";
|
|
22
22
|
import { ${names.pascalCase}Controller } from "src/${targetDir}/${names.kebabCase}/controllers/${names.kebabCase}.controller";
|
|
23
23
|
import { ${names.pascalCase}Descriptor } from "src/${targetDir}/${names.kebabCase}/entities/${names.kebabCase}";
|
|
24
24
|
import { ${names.pascalCase}Repository } from "src/${targetDir}/${names.kebabCase}/repositories/${names.kebabCase}.repository";
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"module.template.js","sourceRoot":"","sources":["../../../../scripts/generate-module/templates/module.template.ts"],"names":[],"mappings":";;AAQA,gDAkCC;AAxCD;;;;;GAKG;AACH,SAAgB,kBAAkB,CAAC,IAAkB;IACnD,MAAM,EAAE,KAAK,EAAE,SAAS,EAAE,UAAU,EAAE,aAAa,EAAE,GAAG,IAAI,CAAC;
|
|
1
|
+
{"version":3,"file":"module.template.js","sourceRoot":"","sources":["../../../../scripts/generate-module/templates/module.template.ts"],"names":[],"mappings":";;AAQA,gDAkCC;AAxCD;;;;;GAKG;AACH,SAAgB,kBAAkB,CAAC,IAAkB;IACnD,MAAM,EAAE,KAAK,EAAE,SAAS,EAAE,UAAU,EAAE,aAAa,EAAE,WAAW,EAAE,GAAG,IAAI,CAAC;IAE1E,MAAM,UAAU,GAAG,CAAC,aAAa,EAAE,aAAa,EAAE,yBAAyB,EAAE,eAAe,CAAC,CAAC;IAC9F,IAAI,UAAU;QAAE,UAAU,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;IAE5C,MAAM,aAAa,GAAG,UAAU,CAAC,CAAC,CAAC,sCAAsC,CAAC,CAAC,CAAC,4BAA4B,CAAC;IACzG,MAAM,UAAU,GAAG,aAAa,CAAC,CAAC,CAAC,IAAI,KAAK,CAAC,UAAU,UAAU,CAAC,CAAC,CAAC,IAAI,CAAC;IAEzE,OAAO;IACL,CAAC,GAAG,UAAU,CAAC,CAAC,IAAI,EAAE,CAAC,IAAI,CAAC,OAAO,CAAC;;;4BAGZ,WAAW;WAC5B,KAAK,CAAC,UAAU,0BAA0B,SAAS,IAAI,KAAK,CAAC,SAAS,gBAAgB,KAAK,CAAC,SAAS;WACrG,KAAK,CAAC,UAAU,0BAA0B,SAAS,IAAI,KAAK,CAAC,SAAS,aAAa,KAAK,CAAC,SAAS;WAClG,KAAK,CAAC,UAAU,0BAA0B,SAAS,IAAI,KAAK,CAAC,SAAS,iBAAiB,KAAK,CAAC,SAAS;WACtG,KAAK,CAAC,UAAU,uBAAuB,SAAS,IAAI,KAAK,CAAC,SAAS,aAAa,KAAK,CAAC,SAAS;;;kBAGxF,KAAK,CAAC,UAAU;gBAClB,KAAK,CAAC,UAAU,gCAAgC,KAAK,CAAC,UAAU,eAAe,KAAK,CAAC,UAAU;aAClG,UAAU;aACV,aAAa;;eAEX,KAAK,CAAC,UAAU;;;;6BAIF,KAAK,CAAC,UAAU;gDACG,KAAK,CAAC,UAAU,kCAAkC,KAAK,CAAC,UAAU;;;CAGjH,CAAC;AACF,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"service.spec.template.d.ts","sourceRoot":"","sources":["../../../../scripts/generate-module/templates/service.spec.template.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,YAAY,EAAE,MAAM,kCAAkC,CAAC;AAUhE;;;;;GAKG;AACH,wBAAgB,uBAAuB,CAAC,IAAI,EAAE,YAAY,GAAG,MAAM,
|
|
1
|
+
{"version":3,"file":"service.spec.template.d.ts","sourceRoot":"","sources":["../../../../scripts/generate-module/templates/service.spec.template.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,YAAY,EAAE,MAAM,kCAAkC,CAAC;AAUhE;;;;;GAKG;AACH,wBAAgB,uBAAuB,CAAC,IAAI,EAAE,YAAY,GAAG,MAAM,CA8ZlE"}
|
|
@@ -130,7 +130,6 @@ describe("${names.pascalCase}Service", () => {
|
|
|
130
130
|
let repository: Mocked<${names.pascalCase}Repository>;
|
|
131
131
|
let jsonApiService: Mocked<JsonApiService>;
|
|
132
132
|
let clsService: Mocked<ClsService>;
|
|
133
|
-
let auditService: Mocked<AuditService>;
|
|
134
133
|
|
|
135
134
|
${testIdsCode}
|
|
136
135
|
|
|
@@ -200,7 +199,6 @@ describe("${names.pascalCase}Service", () => {
|
|
|
200
199
|
) as Mocked<${names.pascalCase}Repository>;
|
|
201
200
|
jsonApiService = module.get<JsonApiService>(JsonApiService) as Mocked<JsonApiService>;
|
|
202
201
|
clsService = module.get<ClsService>(ClsService) as Mocked<ClsService>;
|
|
203
|
-
auditService = module.get<AuditService>(AuditService) as Mocked<AuditService>;
|
|
204
202
|
|
|
205
203
|
// Default CLS context
|
|
206
204
|
clsService.get.mockImplementation((key: string) => {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"service.spec.template.js","sourceRoot":"","sources":["../../../../scripts/generate-module/templates/service.spec.template.ts"],"names":[],"mappings":";AAAA;;;;GAIG;;AAkBH,
|
|
1
|
+
{"version":3,"file":"service.spec.template.js","sourceRoot":"","sources":["../../../../scripts/generate-module/templates/service.spec.template.ts"],"names":[],"mappings":"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"}
|
|
@@ -117,6 +117,8 @@ export interface TemplateData {
|
|
|
117
117
|
nodeName: string;
|
|
118
118
|
isCompanyScoped: boolean;
|
|
119
119
|
targetDir: string;
|
|
120
|
+
/** Host app's shared package scope, e.g. "@dreamer/shared" (source of ModuleId). */
|
|
121
|
+
sharedScope: string;
|
|
120
122
|
description?: string;
|
|
121
123
|
chat?: {
|
|
122
124
|
summary: string;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"template-data.interface.d.ts","sourceRoot":"","sources":["../../../../scripts/generate-module/types/template-data.interface.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"template-data.interface.d.ts","sourceRoot":"","sources":["../../../../scripts/generate-module/types/template-data.interface.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH;;GAEG;AACH,MAAM,WAAW,cAAc;IAC7B,UAAU,EAAE,MAAM,CAAC;IACnB,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,EAAE,MAAM,CAAC;IAClB,WAAW,EAAE,MAAM,CAAC;CACrB;AAED;;GAEG;AACH,MAAM,WAAW,eAAe;IAC9B,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,MAAM,EAAE,CAAC;CACjB;AAED;;GAEG;AACH,MAAM,WAAW,aAAa;IAC5B,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,EAAE,OAAO,CAAC;IAClB,MAAM,EAAE,MAAM,CAAC;IACf,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,IAAI,CAAC,EAAE;QAAE,IAAI,EAAE,MAAM,CAAA;KAAE,CAAC;IACxB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,QAAQ,CAAC,EAAE,OAAO,CAAC;CACpB;AAED;;GAEG;AACH,MAAM,WAAW,sBAAsB;IACrC,GAAG,EAAE,MAAM,CAAC;IACZ,KAAK,EAAE,MAAM,CAAC;IACd,SAAS,EAAE,IAAI,GAAG,KAAK,CAAC;IACxB,YAAY,EAAE,MAAM,CAAC;IACrB,WAAW,EAAE,KAAK,GAAG,MAAM,CAAC;IAC5B,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,QAAQ,EAAE,OAAO,CAAC;IAClB,aAAa,EAAE;QACb,IAAI,EAAE,MAAM,CAAC;QACb,SAAS,EAAE,MAAM,CAAC;QAClB,UAAU,EAAE,MAAM,CAAC;QACnB,SAAS,EAAE,MAAM,CAAC;QAClB,SAAS,EAAE,MAAM,CAAC;KACnB,CAAC;IAEF,cAAc,EAAE,OAAO,CAAC;IACxB,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,UAAU,CAAC,EAAE,MAAM,CAAC;IAEpB,MAAM,CAAC,EAAE,aAAa,EAAE,CAAC;IAEzB,SAAS,CAAC,EAAE,OAAO,CAAC;IAEpB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB;AAED;;GAEG;AACH,MAAM,WAAW,WAAW;IAC1B,IAAI,EAAE,MAAM,CAAC;IACb,UAAU,EAAE,MAAM,CAAC;IACnB,eAAe,EAAE,MAAM,CAAC;IACxB,SAAS,EAAE,MAAM,CAAC;IAClB,WAAW,EAAE,MAAM,CAAC;IAEpB,cAAc,EAAE,OAAO,CAAC;IACxB,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,UAAU,CAAC,EAAE,MAAM,CAAC;IAEpB,aAAa,CAAC,EAAE,MAAM,CAAC;CACxB;AAED;;GAEG;AACH,MAAM,WAAW,QAAQ;IACvB,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,UAAU,EAAE,OAAO,CAAC;IACpB,UAAU,EAAE,MAAM,EAAE,CAAC;CACtB;AAED;;GAEG;AACH,MAAM,WAAW,eAAe;IAC9B,GAAG,EAAE,MAAM,CAAC;IACZ,QAAQ,EAAE,MAAM,CAAC;IACjB,MAAM,EAAE,OAAO,CAAC;IAChB,UAAU,EAAE,OAAO,CAAC;IACpB,UAAU,EAAE,MAAM,CAAC;IAEnB,cAAc,EAAE,OAAO,CAAC;CACzB;AAED;;;GAGG;AACH,MAAM,WAAW,aAAa;IAC5B,SAAS,EAAE,MAAM,CAAC;IAClB,cAAc,EAAE,MAAM,CAAC;IACvB,cAAc,EAAE,MAAM,CAAC;IACvB,cAAc,EAAE,MAAM,CAAC;IACvB,oBAAoB,EAAE,MAAM,CAAC;CAC9B;AAED;;GAEG;AACH,MAAM,WAAW,YAAY;IAE3B,KAAK,EAAE,cAAc,CAAC;IACtB,QAAQ,EAAE,MAAM,CAAC;IACjB,SAAS,EAAE,MAAM,CAAC;IAClB,QAAQ,EAAE,MAAM,CAAC;IAGjB,eAAe,EAAE,OAAO,CAAC;IACzB,SAAS,EAAE,MAAM,CAAC;IAClB,oFAAoF;IACpF,WAAW,EAAE,MAAM,CAAC;IACpB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,IAAI,CAAC,EAAE;QAAE,OAAO,EAAE,MAAM,CAAC;QAAC,gBAAgB,EAAE,MAAM,EAAE,CAAA;KAAE,CAAC;IACvD,UAAU,EAAE,OAAO,CAAC;IACpB,aAAa,EAAE,OAAO,CAAC;IAGvB,MAAM,EAAE,aAAa,EAAE,CAAC;IAGxB,aAAa,EAAE,sBAAsB,EAAE,CAAC;IAGxC,UAAU,EAAE,aAAa,EAAE,CAAC;IAG5B,cAAc,EAAE,eAAe,EAAE,CAAC;IAClC,aAAa,EAAE,eAAe,EAAE,CAAC;IACjC,WAAW,EAAE,eAAe,EAAE,CAAC;IAC/B,UAAU,EAAE,eAAe,EAAE,CAAC;IAG9B,YAAY,EAAE,WAAW,EAAE,CAAC;IAG5B,SAAS,EAAE,QAAQ,EAAE,CAAC;IACtB,oBAAoB,EAAE,eAAe,EAAE,CAAC;IACxC,mBAAmB,EAAE,eAAe,EAAE,CAAC;CACxC"}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Prune a generated DTO file's `class-validator` import to exactly the
|
|
3
|
+
* decorators it actually uses.
|
|
4
|
+
*
|
|
5
|
+
* The validator import list is assembled from a fixed base set plus field-type
|
|
6
|
+
* inferences, which can over-include (e.g. `IsOptional` when every field and
|
|
7
|
+
* relationship is required, or `IsDefined` when everything is optional). An
|
|
8
|
+
* unused import is an ESLint `no-unused-vars` error, so we filter the list down
|
|
9
|
+
* to the names that appear as a `@Name(` decorator in the rest of the file.
|
|
10
|
+
*
|
|
11
|
+
* @param content - The full generated DTO file content.
|
|
12
|
+
* @returns The content with its class-validator import line pruned.
|
|
13
|
+
*/
|
|
14
|
+
export declare function pruneClassValidatorImports(content: string): string;
|
|
15
|
+
//# sourceMappingURL=dto-imports.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"dto-imports.d.ts","sourceRoot":"","sources":["../../../../scripts/generate-module/utils/dto-imports.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AACH,wBAAgB,0BAA0B,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,CAoBlE"}
|
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.pruneClassValidatorImports = pruneClassValidatorImports;
|
|
4
|
+
/**
|
|
5
|
+
* Prune a generated DTO file's `class-validator` import to exactly the
|
|
6
|
+
* decorators it actually uses.
|
|
7
|
+
*
|
|
8
|
+
* The validator import list is assembled from a fixed base set plus field-type
|
|
9
|
+
* inferences, which can over-include (e.g. `IsOptional` when every field and
|
|
10
|
+
* relationship is required, or `IsDefined` when everything is optional). An
|
|
11
|
+
* unused import is an ESLint `no-unused-vars` error, so we filter the list down
|
|
12
|
+
* to the names that appear as a `@Name(` decorator in the rest of the file.
|
|
13
|
+
*
|
|
14
|
+
* @param content - The full generated DTO file content.
|
|
15
|
+
* @returns The content with its class-validator import line pruned.
|
|
16
|
+
*/
|
|
17
|
+
function pruneClassValidatorImports(content) {
|
|
18
|
+
const importRe = /import \{ ([^}]+) \} from "class-validator";/;
|
|
19
|
+
const match = content.match(importRe);
|
|
20
|
+
if (!match)
|
|
21
|
+
return content;
|
|
22
|
+
const names = match[1]
|
|
23
|
+
.split(",")
|
|
24
|
+
.map((n) => n.trim())
|
|
25
|
+
.filter(Boolean);
|
|
26
|
+
// Everything except the import line itself — a name appearing only in the
|
|
27
|
+
// import must not count as "used".
|
|
28
|
+
const body = content.replace(importRe, "");
|
|
29
|
+
const used = names.filter((name) => new RegExp(`@${name}\\(`).test(body));
|
|
30
|
+
// class-validator decorators are always used somewhere (Equals/IsUUID at minimum),
|
|
31
|
+
// but guard against an empty list just in case.
|
|
32
|
+
if (used.length === 0)
|
|
33
|
+
return content;
|
|
34
|
+
return content.replace(importRe, `import { ${used.join(", ")} } from "class-validator";`);
|
|
35
|
+
}
|
|
36
|
+
//# sourceMappingURL=dto-imports.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"dto-imports.js","sourceRoot":"","sources":["../../../../scripts/generate-module/utils/dto-imports.ts"],"names":[],"mappings":";;AAaA,gEAoBC;AAjCD;;;;;;;;;;;;GAYG;AACH,SAAgB,0BAA0B,CAAC,OAAe;IACxD,MAAM,QAAQ,GAAG,8CAA8C,CAAC;IAChE,MAAM,KAAK,GAAG,OAAO,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC;IACtC,IAAI,CAAC,KAAK;QAAE,OAAO,OAAO,CAAC;IAE3B,MAAM,KAAK,GAAG,KAAK,CAAC,CAAC,CAAC;SACnB,KAAK,CAAC,GAAG,CAAC;SACV,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;SACpB,MAAM,CAAC,OAAO,CAAC,CAAC;IAEnB,0EAA0E;IAC1E,mCAAmC;IACnC,MAAM,IAAI,GAAG,OAAO,CAAC,OAAO,CAAC,QAAQ,EAAE,EAAE,CAAC,CAAC;IAC3C,MAAM,IAAI,GAAG,KAAK,CAAC,MAAM,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,MAAM,CAAC,IAAI,IAAI,KAAK,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;IAE1E,mFAAmF;IACnF,gDAAgD;IAChD,IAAI,IAAI,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,OAAO,CAAC;IAEtC,OAAO,OAAO,CAAC,OAAO,CAAC,QAAQ,EAAE,YAAY,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,4BAA4B,CAAC,CAAC;AAC5F,CAAC"}
|
|
@@ -1,5 +1,10 @@
|
|
|
1
1
|
/**
|
|
2
|
-
*
|
|
2
|
+
* Register the new module in the base aggregator module file.
|
|
3
|
+
*
|
|
4
|
+
* The leaf `<Module>Module` is added directly to `features.modules.ts`
|
|
5
|
+
* (or `foundations.modules.ts`) regardless of how deep `targetDir` is. The repo
|
|
6
|
+
* lists leaf feature modules there directly; creating per-domain sub-aggregators
|
|
7
|
+
* produced orphan `*.modules.ts` files and double-registration.
|
|
3
8
|
*
|
|
4
9
|
* @param params - Module information
|
|
5
10
|
*/
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"module-registrar.d.ts","sourceRoot":"","sources":["../../../../scripts/generate-module/utils/module-registrar.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"module-registrar.d.ts","sourceRoot":"","sources":["../../../../scripts/generate-module/utils/module-registrar.ts"],"names":[],"mappings":"AAkFA;;;;;;;;;GASG;AACH,wBAAgB,cAAc,CAAC,MAAM,EAAE;IACrC,UAAU,EAAE,MAAM,CAAC;IACnB,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,EAAE,MAAM,CAAC;IAClB,MAAM,CAAC,EAAE,OAAO,CAAC;CAClB,GAAG,IAAI,CAeP"}
|
|
@@ -36,15 +36,6 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
36
36
|
exports.registerModule = registerModule;
|
|
37
37
|
const fs = __importStar(require("fs"));
|
|
38
38
|
const path = __importStar(require("path"));
|
|
39
|
-
/**
|
|
40
|
-
* Convert kebab-case to PascalCase
|
|
41
|
-
*/
|
|
42
|
-
function toPascalCase(str) {
|
|
43
|
-
return str
|
|
44
|
-
.split("-")
|
|
45
|
-
.map((word) => word.charAt(0).toUpperCase() + word.slice(1))
|
|
46
|
-
.join("");
|
|
47
|
-
}
|
|
48
39
|
/**
|
|
49
40
|
* Register an import and add to @Module imports array in a module file
|
|
50
41
|
*/
|
|
@@ -90,106 +81,41 @@ function addToModuleFile(params) {
|
|
|
90
81
|
}
|
|
91
82
|
content = content.slice(0, insertPosition) + newImport + content.slice(insertPosition);
|
|
92
83
|
// Find the @Module imports array
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
84
|
+
// Insert the new module as the first entry in the @Module imports array.
|
|
85
|
+
// We deliberately do NOT split/re-sort the existing entries: an entry such as
|
|
86
|
+
// `RbacModule.register({ moduleUserPaths, rbac, devMode })` contains commas and
|
|
87
|
+
// would be shredded by a naive `split(",")`. Prepending after the opening `[`
|
|
88
|
+
// is comma-safe; Prettier (run afterwards) normalises the formatting.
|
|
89
|
+
const importsArrayOpenRegex = /imports:\s*\[/;
|
|
90
|
+
if (!importsArrayOpenRegex.test(content)) {
|
|
96
91
|
throw new Error(`Could not find @Module imports array in ${fullPath}`);
|
|
97
92
|
}
|
|
98
|
-
|
|
99
|
-
const importsArrayContent = match[1];
|
|
100
|
-
const modules = importsArrayContent
|
|
101
|
-
.split(",")
|
|
102
|
-
.map((m) => m.trim())
|
|
103
|
-
.filter((m) => m);
|
|
104
|
-
// Add new module alphabetically
|
|
105
|
-
modules.push(moduleClassName);
|
|
106
|
-
modules.sort();
|
|
107
|
-
// Rebuild imports array with proper formatting
|
|
108
|
-
const newImportsArray = `imports: [\n ${modules.join(",\n ")},\n ]`;
|
|
109
|
-
content = content.replace(moduleImportsRegex, newImportsArray);
|
|
93
|
+
content = content.replace(importsArrayOpenRegex, (open) => `${open}\n ${moduleClassName},`);
|
|
110
94
|
// Write back
|
|
111
95
|
fs.writeFileSync(fullPath, content, "utf-8");
|
|
112
96
|
console.info(`✓ Registered ${moduleClassName} in ${fullPath}`);
|
|
113
97
|
}
|
|
114
98
|
/**
|
|
115
|
-
*
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
@Module({
|
|
123
|
-
imports: [],
|
|
124
|
-
})
|
|
125
|
-
export class ${pascalName}Modules {}
|
|
126
|
-
`;
|
|
127
|
-
const filePath = path.resolve(process.cwd(), `apps/api/src/${targetDir}/${subfolderName}.modules.ts`);
|
|
128
|
-
if (dryRun) {
|
|
129
|
-
console.info(`[DRY RUN] Would create ${filePath}`);
|
|
130
|
-
return;
|
|
131
|
-
}
|
|
132
|
-
// Ensure the directory exists
|
|
133
|
-
const dir = path.dirname(filePath);
|
|
134
|
-
if (!fs.existsSync(dir)) {
|
|
135
|
-
fs.mkdirSync(dir, { recursive: true });
|
|
136
|
-
}
|
|
137
|
-
fs.writeFileSync(filePath, content, "utf-8");
|
|
138
|
-
console.info(`✓ Created ${filePath}`);
|
|
139
|
-
}
|
|
140
|
-
/**
|
|
141
|
-
* Update parent modules.ts to register the new module
|
|
99
|
+
* Register the new module in the base aggregator module file.
|
|
100
|
+
*
|
|
101
|
+
* The leaf `<Module>Module` is added directly to `features.modules.ts`
|
|
102
|
+
* (or `foundations.modules.ts`) regardless of how deep `targetDir` is. The repo
|
|
103
|
+
* lists leaf feature modules there directly; creating per-domain sub-aggregators
|
|
104
|
+
* produced orphan `*.modules.ts` files and double-registration.
|
|
142
105
|
*
|
|
143
106
|
* @param params - Module information
|
|
144
107
|
*/
|
|
145
108
|
function registerModule(params) {
|
|
146
109
|
const { moduleName, targetDir, kebabName, dryRun = false } = params;
|
|
147
|
-
const
|
|
148
|
-
const baseDir = segments[0]; // "features" or "foundations"
|
|
110
|
+
const baseDir = targetDir.split("/")[0]; // "features" or "foundations"
|
|
149
111
|
if (!["features", "foundations"].includes(baseDir)) {
|
|
150
112
|
throw new Error(`Unknown target directory: ${targetDir}. Must start with "features" or "foundations"`);
|
|
151
113
|
}
|
|
152
|
-
|
|
153
|
-
|
|
154
|
-
|
|
155
|
-
|
|
156
|
-
|
|
157
|
-
|
|
158
|
-
moduleClassName,
|
|
159
|
-
importPath,
|
|
160
|
-
dryRun,
|
|
161
|
-
});
|
|
162
|
-
}
|
|
163
|
-
else {
|
|
164
|
-
// Subdirectory case: "features/customer-management" → register in subfolder
|
|
165
|
-
const subfolderName = segments[1]; // e.g., "customer-management"
|
|
166
|
-
const subfolderModulePath = `apps/api/src/${targetDir}/${subfolderName}.modules.ts`;
|
|
167
|
-
const fullSubfolderPath = path.resolve(process.cwd(), subfolderModulePath);
|
|
168
|
-
// Check if subfolder's .modules.ts exists
|
|
169
|
-
if (!fs.existsSync(fullSubfolderPath)) {
|
|
170
|
-
// Create the subfolder's .modules.ts file
|
|
171
|
-
createSubfolderModulesFile({
|
|
172
|
-
subfolderName,
|
|
173
|
-
targetDir,
|
|
174
|
-
dryRun,
|
|
175
|
-
});
|
|
176
|
-
// Register the new subfolder modules in the parent
|
|
177
|
-
const parentModulePath = `apps/api/src/${baseDir}/${baseDir}.modules.ts`;
|
|
178
|
-
const pascalSubfolderName = toPascalCase(subfolderName);
|
|
179
|
-
addToModuleFile({
|
|
180
|
-
moduleFilePath: parentModulePath,
|
|
181
|
-
moduleClassName: `${pascalSubfolderName}Modules`,
|
|
182
|
-
importPath: `src/${targetDir}/${subfolderName}.modules`,
|
|
183
|
-
dryRun,
|
|
184
|
-
});
|
|
185
|
-
}
|
|
186
|
-
// Register the new module in the subfolder's .modules.ts
|
|
187
|
-
addToModuleFile({
|
|
188
|
-
moduleFilePath: subfolderModulePath,
|
|
189
|
-
moduleClassName,
|
|
190
|
-
importPath,
|
|
191
|
-
dryRun,
|
|
192
|
-
});
|
|
193
|
-
}
|
|
114
|
+
addToModuleFile({
|
|
115
|
+
moduleFilePath: `apps/api/src/${baseDir}/${baseDir}.modules.ts`,
|
|
116
|
+
moduleClassName: `${moduleName}Module`,
|
|
117
|
+
importPath: `src/${targetDir}/${kebabName}/${kebabName}.module`,
|
|
118
|
+
dryRun,
|
|
119
|
+
});
|
|
194
120
|
}
|
|
195
121
|
//# sourceMappingURL=module-registrar.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"module-registrar.js","sourceRoot":"","sources":["../../../../scripts/generate-module/utils/module-registrar.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
|
|
1
|
+
{"version":3,"file":"module-registrar.js","sourceRoot":"","sources":["../../../../scripts/generate-module/utils/module-registrar.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AA4FA,wCAoBC;AAhHD,uCAAyB;AACzB,2CAA6B;AAE7B;;GAEG;AACH,SAAS,eAAe,CAAC,MAKxB;IACC,MAAM,EAAE,cAAc,EAAE,eAAe,EAAE,UAAU,EAAE,MAAM,EAAE,GAAG,MAAM,CAAC;IAEvE,MAAM,QAAQ,GAAG,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,cAAc,CAAC,CAAC;IAE7D,8BAA8B;IAC9B,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,QAAQ,CAAC,EAAE,CAAC;QAC7B,OAAO,CAAC,IAAI,CAAC,uCAAuC,QAAQ,EAAE,CAAC,CAAC;QAChE,OAAO,CAAC,IAAI,CAAC,yCAAyC,eAAe,EAAE,CAAC,CAAC;QACzE,OAAO;IACT,CAAC;IAED,IAAI,OAAO,GAAG,EAAE,CAAC,YAAY,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC;IAEjD,yBAAyB;IACzB,MAAM,SAAS,GAAG,YAAY,eAAe,YAAY,UAAU,MAAM,CAAC;IAE1E,4BAA4B;IAC5B,IAAI,OAAO,CAAC,QAAQ,CAAC,YAAY,eAAe,IAAI,CAAC,EAAE,CAAC;QACtD,OAAO,CAAC,IAAI,CAAC,OAAO,eAAe,2BAA2B,QAAQ,EAAE,CAAC,CAAC;QAC1E,OAAO;IACT,CAAC;IAED,IAAI,MAAM,EAAE,CAAC;QACX,OAAO,CAAC,IAAI,CAAC,iCAAiC,QAAQ,GAAG,CAAC,CAAC;QAC3D,OAAO,CAAC,IAAI,CAAC,KAAK,SAAS,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC;QACtC,OAAO,CAAC,IAAI,CAAC,uBAAuB,eAAe,mBAAmB,CAAC,CAAC;QACxE,OAAO;IACT,CAAC;IAED,iCAAiC;IACjC,MAAM,WAAW,GAAG,wCAAwC,CAAC;IAC7D,MAAM,OAAO,GAAG,CAAC,GAAG,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAC,CAAC,CAAC;IAEnD,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACzB,MAAM,IAAI,KAAK,CAAC,2CAA2C,QAAQ,EAAE,CAAC,CAAC;IACzE,CAAC;IAED,MAAM,UAAU,GAAG,OAAO,CAAC,OAAO,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;IAC/C,MAAM,aAAa,GAAG,UAAU,CAAC,KAAM,GAAG,UAAU,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC;IAE/D,mCAAmC;IACnC,IAAI,cAAc,GAAG,aAAa,CAAC;IACnC,KAAK,MAAM,GAAG,IAAI,OAAO,EAAE,CAAC;QAC1B,MAAM,OAAO,GAAG,GAAG,CAAC,CAAC,CAAC,CAAC;QACvB,IAAI,OAAO,GAAG,SAAS,EAAE,CAAC;YACxB,cAAc,GAAG,GAAG,CAAC,KAAM,CAAC;YAC5B,MAAM;QACR,CAAC;IACH,CAAC;IAED,OAAO,GAAG,OAAO,CAAC,KAAK,CAAC,CAAC,EAAE,cAAc,CAAC,GAAG,SAAS,GAAG,OAAO,CAAC,KAAK,CAAC,cAAc,CAAC,CAAC;IAEvF,iCAAiC;IACjC,yEAAyE;IACzE,8EAA8E;IAC9E,gFAAgF;IAChF,8EAA8E;IAC9E,sEAAsE;IACtE,MAAM,qBAAqB,GAAG,eAAe,CAAC;IAC9C,IAAI,CAAC,qBAAqB,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC;QACzC,MAAM,IAAI,KAAK,CAAC,2CAA2C,QAAQ,EAAE,CAAC,CAAC;IACzE,CAAC;IAED,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC,qBAAqB,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC,GAAG,IAAI,SAAS,eAAe,GAAG,CAAC,CAAC;IAE/F,aAAa;IACb,EAAE,CAAC,aAAa,CAAC,QAAQ,EAAE,OAAO,EAAE,OAAO,CAAC,CAAC;IAC7C,OAAO,CAAC,IAAI,CAAC,gBAAgB,eAAe,OAAO,QAAQ,EAAE,CAAC,CAAC;AACjE,CAAC;AAED;;;;;;;;;GASG;AACH,SAAgB,cAAc,CAAC,MAK9B;IACC,MAAM,EAAE,UAAU,EAAE,SAAS,EAAE,SAAS,EAAE,MAAM,GAAG,KAAK,EAAE,GAAG,MAAM,CAAC;IAEpE,MAAM,OAAO,GAAG,SAAS,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,8BAA8B;IAEvE,IAAI,CAAC,CAAC,UAAU,EAAE,aAAa,CAAC,CAAC,QAAQ,CAAC,OAAO,CAAC,EAAE,CAAC;QACnD,MAAM,IAAI,KAAK,CAAC,6BAA6B,SAAS,+CAA+C,CAAC,CAAC;IACzG,CAAC;IAED,eAAe,CAAC;QACd,cAAc,EAAE,gBAAgB,OAAO,IAAI,OAAO,aAAa;QAC/D,eAAe,EAAE,GAAG,UAAU,QAAQ;QACtC,UAAU,EAAE,OAAO,SAAS,IAAI,SAAS,IAAI,SAAS,SAAS;QAC/D,MAAM;KACP,CAAC,CAAC;AACL,CAAC"}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Detect the host app's "shared" package import scope (e.g. `@dreamer/shared`).
|
|
3
|
+
*
|
|
4
|
+
* The generated module imports `ModuleId` from this package. The scope differs
|
|
5
|
+
* per host app, so it must be resolved from the target repo rather than
|
|
6
|
+
* hardcoded. Resolution order:
|
|
7
|
+
* 1. explicit override (CLI `--shared-scope`)
|
|
8
|
+
* 2. a `@<scope>/shared` key in `tsconfig.base.json` / `tsconfig.json` paths
|
|
9
|
+
* 3. a `@<scope>/shared` entry in the root `package.json` dependencies
|
|
10
|
+
* 4. the provided fallback
|
|
11
|
+
*/
|
|
12
|
+
export declare function detectSharedScope(params?: {
|
|
13
|
+
cwd?: string;
|
|
14
|
+
override?: string;
|
|
15
|
+
fallback?: string;
|
|
16
|
+
}): string;
|
|
17
|
+
//# sourceMappingURL=scope-detector.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"scope-detector.d.ts","sourceRoot":"","sources":["../../../../scripts/generate-module/utils/scope-detector.ts"],"names":[],"mappings":"AAGA;;;;;;;;;;GAUG;AACH,wBAAgB,iBAAiB,CAAC,MAAM,CAAC,EAAE;IAAE,GAAG,CAAC,EAAE,MAAM,CAAC;IAAC,QAAQ,CAAC,EAAE,MAAM,CAAC;IAAC,QAAQ,CAAC,EAAE,MAAM,CAAA;CAAE,GAAG,MAAM,CAazG"}
|
|
@@ -0,0 +1,153 @@
|
|
|
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
|
+
exports.detectSharedScope = detectSharedScope;
|
|
37
|
+
const fs = __importStar(require("fs"));
|
|
38
|
+
const path = __importStar(require("path"));
|
|
39
|
+
/**
|
|
40
|
+
* Detect the host app's "shared" package import scope (e.g. `@dreamer/shared`).
|
|
41
|
+
*
|
|
42
|
+
* The generated module imports `ModuleId` from this package. The scope differs
|
|
43
|
+
* per host app, so it must be resolved from the target repo rather than
|
|
44
|
+
* hardcoded. Resolution order:
|
|
45
|
+
* 1. explicit override (CLI `--shared-scope`)
|
|
46
|
+
* 2. a `@<scope>/shared` key in `tsconfig.base.json` / `tsconfig.json` paths
|
|
47
|
+
* 3. a `@<scope>/shared` entry in the root `package.json` dependencies
|
|
48
|
+
* 4. the provided fallback
|
|
49
|
+
*/
|
|
50
|
+
function detectSharedScope(params) {
|
|
51
|
+
const cwd = params?.cwd ?? process.cwd();
|
|
52
|
+
const fallback = params?.fallback ?? "@app/shared";
|
|
53
|
+
if (params?.override)
|
|
54
|
+
return params.override;
|
|
55
|
+
const fromTsconfig = findSharedInTsconfigPaths(cwd);
|
|
56
|
+
if (fromTsconfig)
|
|
57
|
+
return fromTsconfig;
|
|
58
|
+
const fromPackageJson = findSharedInRootPackageJson(cwd);
|
|
59
|
+
if (fromPackageJson)
|
|
60
|
+
return fromPackageJson;
|
|
61
|
+
return fallback;
|
|
62
|
+
}
|
|
63
|
+
function readJsonSafe(filePath) {
|
|
64
|
+
try {
|
|
65
|
+
if (!fs.existsSync(filePath))
|
|
66
|
+
return undefined;
|
|
67
|
+
// tsconfig files are JSONC (comments + trailing commas), so plain JSON.parse
|
|
68
|
+
// throws on them. Strip comments/trailing commas before parsing.
|
|
69
|
+
return JSON.parse(stripJsonc(fs.readFileSync(filePath, "utf-8")));
|
|
70
|
+
}
|
|
71
|
+
catch {
|
|
72
|
+
return undefined;
|
|
73
|
+
}
|
|
74
|
+
}
|
|
75
|
+
/**
|
|
76
|
+
* Remove `//` line comments, block comments and trailing commas from a JSONC
|
|
77
|
+
* string while preserving comment-like sequences inside string literals.
|
|
78
|
+
*/
|
|
79
|
+
function stripJsonc(input) {
|
|
80
|
+
let out = "";
|
|
81
|
+
let inString = false;
|
|
82
|
+
let inLine = false;
|
|
83
|
+
let inBlock = false;
|
|
84
|
+
for (let i = 0; i < input.length; i++) {
|
|
85
|
+
const c = input[i];
|
|
86
|
+
const next = input[i + 1];
|
|
87
|
+
if (inLine) {
|
|
88
|
+
if (c === "\n") {
|
|
89
|
+
inLine = false;
|
|
90
|
+
out += c;
|
|
91
|
+
}
|
|
92
|
+
continue;
|
|
93
|
+
}
|
|
94
|
+
if (inBlock) {
|
|
95
|
+
if (c === "*" && next === "/") {
|
|
96
|
+
inBlock = false;
|
|
97
|
+
i++;
|
|
98
|
+
}
|
|
99
|
+
continue;
|
|
100
|
+
}
|
|
101
|
+
if (inString) {
|
|
102
|
+
out += c;
|
|
103
|
+
if (c === "\\") {
|
|
104
|
+
out += next ?? "";
|
|
105
|
+
i++;
|
|
106
|
+
}
|
|
107
|
+
else if (c === '"') {
|
|
108
|
+
inString = false;
|
|
109
|
+
}
|
|
110
|
+
continue;
|
|
111
|
+
}
|
|
112
|
+
if (c === '"') {
|
|
113
|
+
inString = true;
|
|
114
|
+
out += c;
|
|
115
|
+
continue;
|
|
116
|
+
}
|
|
117
|
+
if (c === "/" && next === "/") {
|
|
118
|
+
inLine = true;
|
|
119
|
+
i++;
|
|
120
|
+
continue;
|
|
121
|
+
}
|
|
122
|
+
if (c === "/" && next === "*") {
|
|
123
|
+
inBlock = true;
|
|
124
|
+
i++;
|
|
125
|
+
continue;
|
|
126
|
+
}
|
|
127
|
+
out += c;
|
|
128
|
+
}
|
|
129
|
+
// Drop trailing commas before } or ].
|
|
130
|
+
return out.replace(/,(\s*[}\]])/g, "$1");
|
|
131
|
+
}
|
|
132
|
+
function findSharedInTsconfigPaths(cwd) {
|
|
133
|
+
for (const file of ["tsconfig.base.json", "tsconfig.json"]) {
|
|
134
|
+
const json = readJsonSafe(path.resolve(cwd, file));
|
|
135
|
+
const paths = json?.compilerOptions?.paths;
|
|
136
|
+
if (!paths)
|
|
137
|
+
continue;
|
|
138
|
+
// Prefer the bare alias (e.g. "@dreamer/shared") over the glob ("@dreamer/shared/*").
|
|
139
|
+
const key = Object.keys(paths).find((k) => /^@[^/]+\/shared$/.test(k));
|
|
140
|
+
if (key)
|
|
141
|
+
return key;
|
|
142
|
+
}
|
|
143
|
+
return undefined;
|
|
144
|
+
}
|
|
145
|
+
function findSharedInRootPackageJson(cwd) {
|
|
146
|
+
const json = readJsonSafe(path.resolve(cwd, "package.json"));
|
|
147
|
+
if (!json)
|
|
148
|
+
return undefined;
|
|
149
|
+
const deps = { ...json.dependencies, ...json.devDependencies };
|
|
150
|
+
const name = Object.keys(deps).find((k) => /^@[^/]+\/shared$/.test(k));
|
|
151
|
+
return name;
|
|
152
|
+
}
|
|
153
|
+
//# sourceMappingURL=scope-detector.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"scope-detector.js","sourceRoot":"","sources":["../../../../scripts/generate-module/utils/scope-detector.ts"],"names":[],"mappings":"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"}
|
|
@@ -11,6 +11,11 @@ export type CypherType = CypherBaseType | CypherArrayType;
|
|
|
11
11
|
* Normalize a type string to canonical lowercase form
|
|
12
12
|
* Handles case-insensitive input (e.g., "String", "NUMBER[]", "DateTime")
|
|
13
13
|
*
|
|
14
|
+
* The pseudo-type "blocknote" is a frontend-facing rich-text marker: on the
|
|
15
|
+
* backend it is persisted as a stringified-JSON `string` (Neo4j cannot store
|
|
16
|
+
* nested objects as a property), so it normalises to "string". The frontend
|
|
17
|
+
* generator reads the raw "blocknote" type to wire a BlockNote editor.
|
|
18
|
+
*
|
|
14
19
|
* @param input - The input type string (case-insensitive)
|
|
15
20
|
* @returns The normalized CypherType or null if invalid
|
|
16
21
|
*/
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"type-utils.d.ts","sourceRoot":"","sources":["../../../../scripts/generate-module/utils/type-utils.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAGH,QAAA,MAAM,gBAAgB,sEAAuE,CAAC;AAG9F,QAAA,MAAM,iBAAiB,kFAAmF,CAAC;AAE3G,MAAM,MAAM,cAAc,GAAG,CAAC,OAAO,gBAAgB,CAAC,CAAC,MAAM,CAAC,CAAC;AAC/D,MAAM,MAAM,eAAe,GAAG,CAAC,OAAO,iBAAiB,CAAC,CAAC,MAAM,CAAC,CAAC;AACjE,MAAM,MAAM,UAAU,GAAG,cAAc,GAAG,eAAe,CAAC;AAE1D
|
|
1
|
+
{"version":3,"file":"type-utils.d.ts","sourceRoot":"","sources":["../../../../scripts/generate-module/utils/type-utils.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAGH,QAAA,MAAM,gBAAgB,sEAAuE,CAAC;AAG9F,QAAA,MAAM,iBAAiB,kFAAmF,CAAC;AAE3G,MAAM,MAAM,cAAc,GAAG,CAAC,OAAO,gBAAgB,CAAC,CAAC,MAAM,CAAC,CAAC;AAC/D,MAAM,MAAM,eAAe,GAAG,CAAC,OAAO,iBAAiB,CAAC,CAAC,MAAM,CAAC,CAAC;AACjE,MAAM,MAAM,UAAU,GAAG,cAAc,GAAG,eAAe,CAAC;AAE1D;;;;;;;;;;;GAWG;AACH,wBAAgB,mBAAmB,CAAC,KAAK,EAAE,MAAM,GAAG,UAAU,GAAG,IAAI,CAiBpE;AAED;;;;;GAKG;AACH,wBAAgB,WAAW,CAAC,IAAI,EAAE,UAAU,GAAG,IAAI,IAAI,eAAe,CAErE;AAED;;;;;GAKG;AACH,wBAAgB,WAAW,CAAC,IAAI,EAAE,UAAU,GAAG,cAAc,CAK5D;AAED;;;;;GAKG;AACH,wBAAgB,SAAS,CAAC,IAAI,EAAE,UAAU,GAAG,MAAM,CAgBlD;AAED;;;;;;GAMG;AACH,wBAAgB,uBAAuB,CAAC,IAAI,EAAE,UAAU,EAAE,QAAQ,EAAE,OAAO,GAAG,MAAM,EAAE,CA0DrF;AAED;;;;;GAKG;AACH,wBAAgB,oBAAoB,CAAC,KAAK,EAAE,UAAU,EAAE,GAAG,MAAM,EAAE,CAgDlE;AAED;;;;GAIG;AACH,wBAAgB,aAAa,IAAI,MAAM,EAAE,CAExC"}
|
|
@@ -19,11 +19,20 @@ const VALID_ARRAY_TYPES = ["string[]", "number[]", "boolean[]", "date[]", "datet
|
|
|
19
19
|
* Normalize a type string to canonical lowercase form
|
|
20
20
|
* Handles case-insensitive input (e.g., "String", "NUMBER[]", "DateTime")
|
|
21
21
|
*
|
|
22
|
+
* The pseudo-type "blocknote" is a frontend-facing rich-text marker: on the
|
|
23
|
+
* backend it is persisted as a stringified-JSON `string` (Neo4j cannot store
|
|
24
|
+
* nested objects as a property), so it normalises to "string". The frontend
|
|
25
|
+
* generator reads the raw "blocknote" type to wire a BlockNote editor.
|
|
26
|
+
*
|
|
22
27
|
* @param input - The input type string (case-insensitive)
|
|
23
28
|
* @returns The normalized CypherType or null if invalid
|
|
24
29
|
*/
|
|
25
30
|
function normalizeCypherType(input) {
|
|
26
31
|
const normalized = input.toLowerCase().trim();
|
|
32
|
+
// Rich-text BlockNote fields are stored as stringified JSON on the backend.
|
|
33
|
+
if (normalized === "blocknote") {
|
|
34
|
+
return "string";
|
|
35
|
+
}
|
|
27
36
|
if (VALID_BASE_TYPES.includes(normalized)) {
|
|
28
37
|
return normalized;
|
|
29
38
|
}
|
|
@@ -200,6 +209,6 @@ function getValidationImports(types) {
|
|
|
200
209
|
* @returns Array of all valid type strings
|
|
201
210
|
*/
|
|
202
211
|
function getValidTypes() {
|
|
203
|
-
return [...VALID_BASE_TYPES, ...VALID_ARRAY_TYPES];
|
|
212
|
+
return [...VALID_BASE_TYPES, ...VALID_ARRAY_TYPES, "blocknote"];
|
|
204
213
|
}
|
|
205
214
|
//# sourceMappingURL=type-utils.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"type-utils.js","sourceRoot":"","sources":["../../../../scripts/generate-module/utils/type-utils.ts"],"names":[],"mappings":";AAAA;;;GAGG;;
|
|
1
|
+
{"version":3,"file":"type-utils.js","sourceRoot":"","sources":["../../../../scripts/generate-module/utils/type-utils.ts"],"names":[],"mappings":";AAAA;;;GAGG;;AAwBH,kDAiBC;AAQD,kCAEC;AAQD,kCAKC;AAQD,8BAgBC;AASD,0DA0DC;AAQD,oDAgDC;AAOD,sCAEC;AA1ND,4BAA4B;AAC5B,MAAM,gBAAgB,GAAG,CAAC,QAAQ,EAAE,QAAQ,EAAE,SAAS,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,CAAU,CAAC;AAE9F,oBAAoB;AACpB,MAAM,iBAAiB,GAAG,CAAC,UAAU,EAAE,UAAU,EAAE,WAAW,EAAE,QAAQ,EAAE,YAAY,EAAE,QAAQ,CAAU,CAAC;AAM3G;;;;;;;;;;;GAWG;AACH,SAAgB,mBAAmB,CAAC,KAAa;IAC/C,MAAM,UAAU,GAAG,KAAK,CAAC,WAAW,EAAE,CAAC,IAAI,EAAE,CAAC;IAE9C,4EAA4E;IAC5E,IAAI,UAAU,KAAK,WAAW,EAAE,CAAC;QAC/B,OAAO,QAAQ,CAAC;IAClB,CAAC;IAED,IAAK,gBAAsC,CAAC,QAAQ,CAAC,UAAU,CAAC,EAAE,CAAC;QACjE,OAAO,UAA4B,CAAC;IACtC,CAAC;IAED,IAAK,iBAAuC,CAAC,QAAQ,CAAC,UAAU,CAAC,EAAE,CAAC;QAClE,OAAO,UAA6B,CAAC;IACvC,CAAC;IAED,OAAO,IAAI,CAAC;AACd,CAAC;AAED;;;;;GAKG;AACH,SAAgB,WAAW,CAAC,IAAgB;IAC1C,OAAO,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;AAC7B,CAAC;AAED;;;;;GAKG;AACH,SAAgB,WAAW,CAAC,IAAgB;IAC1C,IAAI,WAAW,CAAC,IAAI,CAAC,EAAE,CAAC;QACtB,OAAO,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAmB,CAAC;IAC7C,CAAC;IACD,OAAO,IAAsB,CAAC;AAChC,CAAC;AAED;;;;;GAKG;AACH,SAAgB,SAAS,CAAC,IAAgB;IACxC,MAAM,OAAO,GAA+B;QAC1C,MAAM,EAAE,QAAQ;QAChB,MAAM,EAAE,QAAQ;QAChB,OAAO,EAAE,SAAS;QAClB,IAAI,EAAE,QAAQ;QACd,QAAQ,EAAE,QAAQ;QAClB,IAAI,EAAE,KAAK;QACX,UAAU,EAAE,UAAU;QACtB,UAAU,EAAE,UAAU;QACtB,WAAW,EAAE,WAAW;QACxB,QAAQ,EAAE,UAAU;QACpB,YAAY,EAAE,UAAU;QACxB,QAAQ,EAAE,OAAO;KAClB,CAAC;IACF,OAAO,OAAO,CAAC,IAAI,CAAC,CAAC;AACvB,CAAC;AAED;;;;;;GAMG;AACH,SAAgB,uBAAuB,CAAC,IAAgB,EAAE,QAAiB;IACzE,MAAM,UAAU,GAAa,EAAE,CAAC;IAEhC,6BAA6B;IAC7B,IAAI,QAAQ,EAAE,CAAC;QACb,UAAU,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC;QAChC,oDAAoD;QACpD,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,IAAI,IAAI,KAAK,SAAS,EAAE,CAAC;YAC7C,UAAU,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC;QACnC,CAAC;IACH,CAAC;SAAM,CAAC;QACN,UAAU,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC;IACnC,CAAC;IAED,2BAA2B;IAC3B,IAAI,WAAW,CAAC,IAAI,CAAC,EAAE,CAAC;QACtB,UAAU,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;QAC9B,MAAM,QAAQ,GAAG,WAAW,CAAC,IAAI,CAAC,CAAC;QACnC,QAAQ,QAAQ,EAAE,CAAC;YACjB,KAAK,QAAQ;gBACX,UAAU,CAAC,IAAI,CAAC,2BAA2B,CAAC,CAAC;gBAC7C,MAAM;YACR,KAAK,QAAQ;gBACX,UAAU,CAAC,IAAI,CAAC,+BAA+B,CAAC,CAAC;gBACjD,MAAM;YACR,KAAK,SAAS;gBACZ,UAAU,CAAC,IAAI,CAAC,4BAA4B,CAAC,CAAC;gBAC9C,MAAM;YACR,KAAK,MAAM,CAAC;YACZ,KAAK,UAAU;gBACb,UAAU,CAAC,IAAI,CAAC,mCAAmC,CAAC,CAAC;gBACrD,MAAM;YACR,KAAK,MAAM;gBACT,iEAAiE;gBACjE,MAAM;QACV,CAAC;IACH,CAAC;SAAM,CAAC;QACN,QAAQ,IAAI,EAAE,CAAC;YACb,KAAK,QAAQ;gBACX,UAAU,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;gBAC/B,MAAM;YACR,KAAK,QAAQ;gBACX,UAAU,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;gBAC/B,MAAM;YACR,KAAK,SAAS;gBACZ,UAAU,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC;gBAChC,MAAM;YACR,KAAK,MAAM,CAAC;YACZ,KAAK,UAAU;gBACb,UAAU,CAAC,IAAI,CAAC,iBAAiB,CAAC,CAAC;gBACnC,MAAM;YACR,KAAK,MAAM;gBACT,UAAU,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;gBAC/B,MAAM;QACV,CAAC;IACH,CAAC;IAED,OAAO,UAAU,CAAC;AACpB,CAAC;AAED;;;;;GAKG;AACH,SAAgB,oBAAoB,CAAC,KAAmB;IACtD,wBAAwB;IACxB,MAAM,OAAO,GAAG,IAAI,GAAG,CAAS,CAAC,QAAQ,EAAE,QAAQ,EAAE,gBAAgB,EAAE,YAAY,EAAE,WAAW,EAAE,YAAY,CAAC,CAAC,CAAC;IAEjH,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;QACzB,IAAI,WAAW,CAAC,IAAI,CAAC,EAAE,CAAC;YACtB,OAAO,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;YAEvB,MAAM,QAAQ,GAAG,WAAW,CAAC,IAAI,CAAC,CAAC;YACnC,QAAQ,QAAQ,EAAE,CAAC;gBACjB,KAAK,QAAQ;oBACX,OAAO,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC;oBACxB,MAAM;gBACR,KAAK,QAAQ;oBACX,OAAO,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC;oBACxB,MAAM;gBACR,KAAK,SAAS;oBACZ,OAAO,CAAC,GAAG,CAAC,WAAW,CAAC,CAAC;oBACzB,MAAM;gBACR,KAAK,MAAM,CAAC;gBACZ,KAAK,UAAU;oBACb,OAAO,CAAC,GAAG,CAAC,cAAc,CAAC,CAAC;oBAC5B,MAAM;gBACR,yCAAyC;YAC3C,CAAC;QACH,CAAC;aAAM,CAAC;YACN,QAAQ,IAAI,EAAE,CAAC;gBACb,KAAK,QAAQ;oBACX,OAAO,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC;oBACxB,MAAM;gBACR,KAAK,QAAQ;oBACX,OAAO,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC;oBACxB,MAAM;gBACR,KAAK,SAAS;oBACZ,OAAO,CAAC,GAAG,CAAC,WAAW,CAAC,CAAC;oBACzB,MAAM;gBACR,KAAK,MAAM,CAAC;gBACZ,KAAK,UAAU;oBACb,OAAO,CAAC,GAAG,CAAC,cAAc,CAAC,CAAC;oBAC5B,MAAM;gBACR,KAAK,MAAM;oBACT,OAAO,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC;oBACxB,MAAM;YACV,CAAC;QACH,CAAC;IACH,CAAC;IAED,OAAO,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,IAAI,EAAE,CAAC;AACpC,CAAC;AAED;;;;GAIG;AACH,SAAgB,aAAa;IAC3B,OAAO,CAAC,GAAG,gBAAgB,EAAE,GAAG,iBAAiB,EAAE,WAAW,CAAC,CAAC;AAClE,CAAC"}
|
package/package.json
CHANGED