@ldsg/cli 0.3.45 → 0.3.47

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 (30) hide show
  1. package/.rush/temp/package-deps_build.json +8 -7
  2. package/.tsbuildinfo +1 -1
  3. package/CHANGELOG.json +46 -0
  4. package/CHANGELOG.md +15 -1
  5. package/dist/commands/generate/utils/generate-application/index.js +2 -2
  6. package/dist/commands/generate/utils/generate-application/index.js.map +1 -1
  7. package/dist/commands/generate/utils/generate-application/utils/build-app-generator/index.js +1 -0
  8. package/dist/commands/generate/utils/generate-application/utils/build-app-generator/index.js.map +1 -1
  9. package/dist/commands/generate/utils/generate-application/utils/build-app-generator-app/index.d.ts +9 -0
  10. package/dist/commands/generate/utils/generate-application/utils/build-app-generator-app/index.js +24 -0
  11. package/dist/commands/generate/utils/generate-application/utils/build-app-generator-app/index.js.map +1 -0
  12. package/dist/commands/generate/utils/generate-application/utils/build-meta-generator/index.js +16 -8
  13. package/dist/commands/generate/utils/generate-application/utils/build-meta-generator/index.js.map +1 -1
  14. package/dist/commands/generate/utils/generate-application/utils/build-meta-generator-app/index.d.ts +8 -0
  15. package/dist/commands/generate/utils/generate-application/utils/build-meta-generator-app/index.js +23 -0
  16. package/dist/commands/generate/utils/generate-application/utils/build-meta-generator-app/index.js.map +1 -0
  17. package/dist/commands/generate/utils/generate-application/utils/index.d.ts +3 -2
  18. package/dist/commands/generate/utils/generate-application/utils/index.js +3 -2
  19. package/dist/commands/generate/utils/generate-application/utils/index.js.map +1 -1
  20. package/dist/commands/generate/utils/generate-application/utils/load-generator-app/index.d.ts +7 -0
  21. package/dist/commands/generate/utils/generate-application/utils/load-generator-app/index.js +30 -0
  22. package/dist/commands/generate/utils/generate-application/utils/load-generator-app/index.js.map +1 -0
  23. package/package.json +4 -4
  24. package/src/commands/generate/utils/generate-application/index.ts +3 -3
  25. package/src/commands/generate/utils/generate-application/utils/build-app-generator-app/index.ts +41 -0
  26. package/src/commands/generate/utils/generate-application/utils/build-meta-generator-app/index.ts +30 -0
  27. package/src/commands/generate/utils/generate-application/utils/index.ts +3 -2
  28. package/src/commands/generate/utils/generate-application/utils/load-generator-app/index.ts +63 -0
  29. package/src/commands/generate/utils/generate-application/utils/build-app-generator/index.ts +0 -39
  30. package/src/commands/generate/utils/generate-application/utils/build-meta-generator/index.ts +0 -45
package/CHANGELOG.json CHANGED
@@ -1,6 +1,52 @@
1
1
  {
2
2
  "name": "@ldsg/cli",
3
3
  "entries": [
4
+ {
5
+ "version": "0.3.47",
6
+ "tag": "@ldsg/cli_v0.3.47",
7
+ "date": "Wed, 04 Nov 2026 04:53:36 GMT",
8
+ "comments": {
9
+ "patch": [
10
+ {
11
+ "comment": "发布更新"
12
+ }
13
+ ],
14
+ "dependency": [
15
+ {
16
+ "comment": "Updating dependency \"@ldsg/handler\" to `0.3.47`"
17
+ },
18
+ {
19
+ "comment": "Updating dependency \"@ldsg/utils\" to `0.3.47`"
20
+ },
21
+ {
22
+ "comment": "Updating dependency \"@ldsg/types\" to `0.3.47`"
23
+ }
24
+ ]
25
+ }
26
+ },
27
+ {
28
+ "version": "0.3.46",
29
+ "tag": "@ldsg/cli_v0.3.46",
30
+ "date": "Tue, 03 Nov 2026 14:23:20 GMT",
31
+ "comments": {
32
+ "patch": [
33
+ {
34
+ "comment": "发布更新"
35
+ }
36
+ ],
37
+ "dependency": [
38
+ {
39
+ "comment": "Updating dependency \"@ldsg/handler\" to `0.3.46`"
40
+ },
41
+ {
42
+ "comment": "Updating dependency \"@ldsg/utils\" to `0.3.46`"
43
+ },
44
+ {
45
+ "comment": "Updating dependency \"@ldsg/types\" to `0.3.46`"
46
+ }
47
+ ]
48
+ }
49
+ },
4
50
  {
5
51
  "version": "0.3.45",
6
52
  "tag": "@ldsg/cli_v0.3.45",
package/CHANGELOG.md CHANGED
@@ -1,6 +1,20 @@
1
1
  # Change Log - @ldsg/cli
2
2
 
3
- This log was last generated on Thu, 29 Oct 2026 14:46:45 GMT and should not be manually modified.
3
+ This log was last generated on Wed, 04 Nov 2026 04:53:36 GMT and should not be manually modified.
4
+
5
+ ## 0.3.47
6
+ Wed, 04 Nov 2026 04:53:36 GMT
7
+
8
+ ### Patches
9
+
10
+ - 发布更新
11
+
12
+ ## 0.3.46
13
+ Tue, 03 Nov 2026 14:23:20 GMT
14
+
15
+ ### Patches
16
+
17
+ - 发布更新
4
18
 
5
19
  ## 0.3.45
6
20
  Thu, 29 Oct 2026 14:46:45 GMT
@@ -10,8 +10,8 @@ const node_path_1 = __importDefault(require("node:path"));
10
10
  const utils_2 = require("./utils");
11
11
  const generateApplication = async (params) => {
12
12
  const { outputPath, isZip } = params;
13
- const { metaGenerator } = await (0, utils_2.buildMetaGenerator)(params);
14
- const { appGenerator } = await (0, utils_2.buildAppGenerator)({ metaGenerator, ...params });
13
+ const { metaGenerator } = await (0, utils_2.buildMetaGeneratorApp)(params);
14
+ const { appGenerator } = await (0, utils_2.buildAppGeneratorApp)({ metaGenerator, ...params });
15
15
  const generateAppRes = await (0, utils_2.generateApp)({ appGenerator, ...params });
16
16
  {
17
17
  const { archive } = generateAppRes;
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../src/commands/generate/utils/generate-application/index.ts"],"names":[],"mappings":";;;;;;AAAA,uCAAiD;AACjD,wDAA0B;AAC1B,0DAA6B;AAE7B,mCAA6E;AAatE,MAAM,mBAAmB,GAAwB,KAAK,EAAE,MAAM,EAAE,EAAE;IACvE,MAAM,EAAE,UAAU,EAAE,KAAK,EAAE,GAAG,MAAM,CAAC;IAKrC,MAAM,EAAE,aAAa,EAAE,GAAG,MAAM,IAAA,0BAAkB,EAAC,MAAM,CAAC,CAAC;IAK3D,MAAM,EAAE,YAAY,EAAE,GAAG,MAAM,IAAA,yBAAiB,EAAC,EAAE,aAAa,EAAE,GAAG,MAAM,EAAE,CAAC,CAAC;IAK/E,MAAM,cAAc,GAAG,MAAM,IAAA,mBAAW,EAAC,EAAE,YAAY,EAAE,GAAG,MAAM,EAAE,CAAC,CAAC;IAKtE,CAAC;QACC,MAAM,EAAE,OAAO,EAAE,GAAG,cAAc,CAAC;QAEnC,IAAI,KAAK,EAAE,CAAC;YACV,MAAM,aAAa,GAAG,mBAAI,CAAC,IAAI,CAAC,UAAU,EAAE,SAAS,CAAC,CAAC;YAEvD,MAAM,kBAAE,CAAC,UAAU,CAAC,aAAa,EAAE,OAAO,CAAC,CAAC;QAC9C,CAAC;aAAM,CAAC;YACN,IAAA,0BAAkB,EAAC,EAAE,OAAO,EAAE,UAAU,EAAE,CAAC,CAAC;QAC9C,CAAC;IACH,CAAC;AACH,CAAC,CAAC;AAhCW,QAAA,mBAAmB,uBAgC9B"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../src/commands/generate/utils/generate-application/index.ts"],"names":[],"mappings":";;;;;;AAAA,uCAAiD;AACjD,wDAA0B;AAC1B,0DAA6B;AAE7B,mCAAmF;AAa5E,MAAM,mBAAmB,GAAwB,KAAK,EAAE,MAAM,EAAE,EAAE;IACvE,MAAM,EAAE,UAAU,EAAE,KAAK,EAAE,GAAG,MAAM,CAAC;IAKrC,MAAM,EAAE,aAAa,EAAE,GAAG,MAAM,IAAA,6BAAqB,EAAC,MAAM,CAAC,CAAC;IAK9D,MAAM,EAAE,YAAY,EAAE,GAAG,MAAM,IAAA,4BAAoB,EAAC,EAAE,aAAa,EAAE,GAAG,MAAM,EAAE,CAAC,CAAC;IAKlF,MAAM,cAAc,GAAG,MAAM,IAAA,mBAAW,EAAC,EAAE,YAAY,EAAE,GAAG,MAAM,EAAE,CAAC,CAAC;IAKtE,CAAC;QACC,MAAM,EAAE,OAAO,EAAE,GAAG,cAAc,CAAC;QAEnC,IAAI,KAAK,EAAE,CAAC;YACV,MAAM,aAAa,GAAG,mBAAI,CAAC,IAAI,CAAC,UAAU,EAAE,SAAS,CAAC,CAAC;YAEvD,MAAM,kBAAE,CAAC,UAAU,CAAC,aAAa,EAAE,OAAO,CAAC,CAAC;QAC9C,CAAC;aAAM,CAAC;YACN,IAAA,0BAAkB,EAAC,EAAE,OAAO,EAAE,UAAU,EAAE,CAAC,CAAC;QAC9C,CAAC;IACH,CAAC;AACH,CAAC,CAAC;AAhCW,QAAA,mBAAmB,uBAgC9B"}
@@ -9,6 +9,7 @@ const node_os_1 = __importDefault(require("node:os"));
9
9
  const utils_1 = require("@ldsg/utils");
10
10
  const buildAppGenerator = async (params) => {
11
11
  const { metaGenerator, ...restParams } = params;
12
+ console.debug("buildAppGenerator restParams", restParams);
12
13
  const { archive } = await metaGenerator.generate(restParams);
13
14
  const outputPath = node_path_1.default.join(node_os_1.default.homedir(), ".ldsg", "app-generator");
14
15
  (0, utils_1.extractZipToFolder)({
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../../../src/commands/generate/utils/generate-application/utils/build-app-generator/index.ts"],"names":[],"mappings":";;;;;;AACA,0DAA6B;AAC7B,sDAAyB;AACzB,uCAAiD;AAY1C,MAAM,iBAAiB,GAAsB,KAAK,EAAE,MAAM,EAAE,EAAE;IACnE,MAAM,EAAE,aAAa,EAAE,GAAG,UAAU,EAAE,GAAG,MAAM,CAAC;IAEhD,MAAM,EAAE,OAAO,EAAE,GAAG,MAAM,aAAa,CAAC,QAAQ,CAAC,UAAU,CAAC,CAAC;IAE7D,MAAM,UAAU,GAAG,mBAAI,CAAC,IAAI,CAAC,iBAAE,CAAC,OAAO,EAAE,EAAE,OAAO,EAAE,eAAe,CAAC,CAAC;IAErE,IAAA,0BAAkB,EAAC;QACjB,OAAO;QACP,UAAU;KACX,CAAC,CAAC;IAEH,MAAM,GAAG,GAAyB;QAChC,YAAY,EAAE;YACZ,QAAQ,EAAE,KAAK,IAAI,EAAE;gBACnB,OAAO;oBACL,OAAO;iBACR,CAAC;YACJ,CAAC;SACF;KACF,CAAC;IAEF,OAAO,GAAG,CAAC;AACb,CAAC,CAAC;AAvBW,QAAA,iBAAiB,qBAuB5B"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../../../src/commands/generate/utils/generate-application/utils/build-app-generator/index.ts"],"names":[],"mappings":";;;;;;AACA,0DAA6B;AAC7B,sDAAyB;AACzB,uCAAiD;AAY1C,MAAM,iBAAiB,GAAsB,KAAK,EAAE,MAAM,EAAE,EAAE;IACnE,MAAM,EAAE,aAAa,EAAE,GAAG,UAAU,EAAE,GAAG,MAAM,CAAC;IAEhD,OAAO,CAAC,KAAK,CAAC,8BAA8B,EAAC,UAAU,CAAC,CAAA;IAExD,MAAM,EAAE,OAAO,EAAE,GAAG,MAAM,aAAa,CAAC,QAAQ,CAAC,UAAU,CAAC,CAAC;IAE7D,MAAM,UAAU,GAAG,mBAAI,CAAC,IAAI,CAAC,iBAAE,CAAC,OAAO,EAAE,EAAE,OAAO,EAAE,eAAe,CAAC,CAAC;IAErE,IAAA,0BAAkB,EAAC;QACjB,OAAO;QACP,UAAU;KACX,CAAC,CAAC;IAEH,MAAM,GAAG,GAAyB;QAChC,YAAY,EAAE;YACZ,QAAQ,EAAE,KAAK,IAAI,EAAE;gBACnB,OAAO;oBACL,OAAO;iBACR,CAAC;YACJ,CAAC;SACF;KACF,CAAC;IAEF,OAAO,GAAG,CAAC;AACb,CAAC,CAAC;AAzBW,QAAA,iBAAiB,qBAyB5B"}
@@ -0,0 +1,9 @@
1
+ import { GenerateParams, Generator } from "@ldsg/types";
2
+ export interface BuildAppGeneratorAppParams extends GenerateParams {
3
+ metaGenerator: Generator;
4
+ }
5
+ export interface BuildAppGeneratorAppRes {
6
+ appGenerator: Generator;
7
+ }
8
+ export type BuildAppGeneratorApp = (params: BuildAppGeneratorAppParams) => Promise<BuildAppGeneratorAppRes>;
9
+ export declare const buildAppGeneratorApp: BuildAppGeneratorApp;
@@ -0,0 +1,24 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ exports.buildAppGeneratorApp = void 0;
7
+ const node_os_1 = __importDefault(require("node:os"));
8
+ const node_path_1 = __importDefault(require("node:path"));
9
+ const load_generator_app_1 = require("../load-generator-app");
10
+ const META_GENERATOR_KIND = "meta_generator";
11
+ const buildAppGeneratorApp = async (params) => {
12
+ const { metaGenerator, ...restParams } = params;
13
+ const { archive } = await metaGenerator.generate({ ...restParams, kind: META_GENERATOR_KIND });
14
+ const appGenerator = await (0, load_generator_app_1.loadGeneratorApp)({
15
+ archive,
16
+ outputPath: node_path_1.default.join(node_os_1.default.homedir(), ".ldsg", "app-generator"),
17
+ });
18
+ const res = {
19
+ appGenerator,
20
+ };
21
+ return res;
22
+ };
23
+ exports.buildAppGeneratorApp = buildAppGeneratorApp;
24
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../../../src/commands/generate/utils/generate-application/utils/build-app-generator-app/index.ts"],"names":[],"mappings":";;;;;;AACA,sDAAyB;AACzB,0DAA6B;AAC7B,8DAAyD;AAiBzD,MAAM,mBAAmB,GAAG,gBAAgB,CAAC;AAEtC,MAAM,oBAAoB,GAAyB,KAAK,EAAE,MAAM,EAAE,EAAE;IACzE,MAAM,EAAE,aAAa,EAAE,GAAG,UAAU,EAAE,GAAG,MAAM,CAAC;IAKhD,MAAM,EAAE,OAAO,EAAE,GAAG,MAAM,aAAa,CAAC,QAAQ,CAAC,EAAE,GAAG,UAAU,EAAE,IAAI,EAAE,mBAAmB,EAAE,CAAC,CAAC;IAE/F,MAAM,YAAY,GAAG,MAAM,IAAA,qCAAgB,EAAC;QAC1C,OAAO;QACP,UAAU,EAAE,mBAAI,CAAC,IAAI,CAAC,iBAAE,CAAC,OAAO,EAAE,EAAE,OAAO,EAAE,eAAe,CAAC;KAC9D,CAAC,CAAC;IAEH,MAAM,GAAG,GAA4B;QACnC,YAAY;KACb,CAAC;IAEF,OAAO,GAAG,CAAC;AACb,CAAC,CAAC;AAlBW,QAAA,oBAAoB,wBAkB/B"}
@@ -7,24 +7,32 @@ exports.buildMetaGenerator = void 0;
7
7
  const utils_1 = require("@ldsg/utils");
8
8
  const node_path_1 = __importDefault(require("node:path"));
9
9
  const node_os_1 = __importDefault(require("node:os"));
10
+ const node_url_1 = require("node:url");
11
+ const fs_extra_1 = __importDefault(require("fs-extra"));
10
12
  const buildMetaGenerator = async (params) => {
11
13
  const { archive } = await (0, utils_1.generateMetaGeneratorApp)(params);
14
+ let metaGenerator;
12
15
  {
13
16
  const outputPath = node_path_1.default.join(node_os_1.default.homedir(), ".ldsg", "meta-generator");
17
+ await fs_extra_1.default.remove(outputPath);
14
18
  (0, utils_1.extractZipToFolder)({
15
19
  archive,
16
20
  outputPath,
17
21
  });
18
- (0, utils_1.installDependencies)({ cwd: outputPath });
22
+ await (0, utils_1.installDependencies)({ cwd: outputPath });
23
+ await (0, utils_1.buildWithPnpmWorkspace)({
24
+ cwd: outputPath,
25
+ });
26
+ const importModule = new Function("specifier", "return import(specifier)");
27
+ const entryPath = node_path_1.default.join(outputPath, "dist", "index.js");
28
+ const entryUrl = `${(0, node_url_1.pathToFileURL)(entryPath).href}?t=${Date.now()}`;
29
+ const { generate } = (await importModule(entryUrl));
30
+ metaGenerator = {
31
+ generate,
32
+ };
19
33
  }
20
34
  const res = {
21
- metaGenerator: {
22
- generate: async () => {
23
- return {
24
- archive,
25
- };
26
- },
27
- },
35
+ metaGenerator,
28
36
  };
29
37
  return res;
30
38
  };
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../../../src/commands/generate/utils/generate-application/utils/build-meta-generator/index.ts"],"names":[],"mappings":";;;;;;AAAA,uCAAgG;AAEhG,0DAA6B;AAC7B,sDAAyB;AAalB,MAAM,kBAAkB,GAAuB,KAAK,EAAE,MAAM,EAAE,EAAE;IACrE,MAAM,EAAE,OAAO,EAAE,GAAG,MAAM,IAAA,gCAAwB,EAAC,MAAM,CAAC,CAAC;IAK3D,CAAC;QACC,MAAM,UAAU,GAAG,mBAAI,CAAC,IAAI,CAAC,iBAAE,CAAC,OAAO,EAAE,EAAE,OAAO,EAAE,gBAAgB,CAAC,CAAC;QAEtE,IAAA,0BAAkB,EAAC;YACjB,OAAO;YACP,UAAU;SACX,CAAC,CAAC;QAEH,IAAA,2BAAmB,EAAC,EAAE,GAAG,EAAE,UAAU,EAAE,CAAC,CAAC;IAC3C,CAAC;IAED,MAAM,GAAG,GAA0B;QACjC,aAAa,EAAE;YACb,QAAQ,EAAE,KAAK,IAAI,EAAE;gBACnB,OAAO;oBACL,OAAO;iBACR,CAAC;YACJ,CAAC;SACF;KACF,CAAC;IAEF,OAAO,GAAG,CAAC;AACb,CAAC,CAAC;AA5BW,QAAA,kBAAkB,sBA4B7B"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../../../src/commands/generate/utils/generate-application/utils/build-meta-generator/index.ts"],"names":[],"mappings":";;;;;;AAAA,uCAKqB;AAErB,0DAA6B;AAC7B,sDAAyB;AACzB,uCAAyC;AACzC,wDAA0B;AAYnB,MAAM,kBAAkB,GAAuB,KAAK,EAAE,MAAM,EAAE,EAAE;IACrE,MAAM,EAAE,OAAO,EAAE,GAAG,MAAM,IAAA,gCAAwB,EAAC,MAAM,CAAC,CAAC;IAE3D,IAAI,aAAwB,CAAC;IAK7B,CAAC;QACC,MAAM,UAAU,GAAG,mBAAI,CAAC,IAAI,CAAC,iBAAE,CAAC,OAAO,EAAE,EAAE,OAAO,EAAE,gBAAgB,CAAC,CAAC;QAKtE,MAAM,kBAAE,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC;QAK5B,IAAA,0BAAkB,EAAC;YACjB,OAAO;YACP,UAAU;SACX,CAAC,CAAC;QAKH,MAAM,IAAA,2BAAmB,EAAC,EAAE,GAAG,EAAE,UAAU,EAAE,CAAC,CAAC;QAK/C,MAAM,IAAA,8BAAsB,EAAC;YAC3B,GAAG,EAAE,UAAU;SAChB,CAAC,CAAC;QAOH,MAAM,YAAY,GAAG,IAAI,QAAQ,CAAC,WAAW,EAAE,0BAA0B,CAEpD,CAAC;QAEtB,MAAM,SAAS,GAAG,mBAAI,CAAC,IAAI,CAAC,UAAU,EAAE,MAAM,EAAE,UAAU,CAAC,CAAC;QAK5D,MAAM,QAAQ,GAAG,GAAG,IAAA,wBAAa,EAAC,SAAS,CAAC,CAAC,IAAI,MAAM,IAAI,CAAC,GAAG,EAAE,EAAE,CAAC;QAEpE,MAAM,EAAE,QAAQ,EAAE,GAAG,CAAC,MAAM,YAAY,CAAC,QAAQ,CAAC,CAEjD,CAAC;QAEF,aAAa,GAAG;YACd,QAAQ;SACT,CAAC;IACJ,CAAC;IAED,MAAM,GAAG,GAA0B;QACjC,aAAa;KACd,CAAC;IAEF,OAAO,GAAG,CAAC;AACb,CAAC,CAAC;AAlEW,QAAA,kBAAkB,sBAkE7B"}
@@ -0,0 +1,8 @@
1
+ import { GenerateParams, Generator } from "@ldsg/types";
2
+ export interface BuildMetaGeneratorAppParams extends GenerateParams {
3
+ }
4
+ export interface BuildMetaGeneratorAppRes {
5
+ metaGenerator: Generator;
6
+ }
7
+ export type BuildMetaGeneratorApp = (params: BuildMetaGeneratorAppParams) => Promise<BuildMetaGeneratorAppRes>;
8
+ export declare const buildMetaGeneratorApp: BuildMetaGeneratorApp;
@@ -0,0 +1,23 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ exports.buildMetaGeneratorApp = void 0;
7
+ const utils_1 = require("@ldsg/utils");
8
+ const node_os_1 = __importDefault(require("node:os"));
9
+ const node_path_1 = __importDefault(require("node:path"));
10
+ const load_generator_app_1 = require("../load-generator-app");
11
+ const buildMetaGeneratorApp = async (params) => {
12
+ const { archive } = await (0, utils_1.generateMetaGeneratorApp)(params);
13
+ const metaGenerator = await (0, load_generator_app_1.loadGeneratorApp)({
14
+ archive,
15
+ outputPath: node_path_1.default.join(node_os_1.default.homedir(), ".ldsg", "meta-generator"),
16
+ });
17
+ const res = {
18
+ metaGenerator,
19
+ };
20
+ return res;
21
+ };
22
+ exports.buildMetaGeneratorApp = buildMetaGeneratorApp;
23
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../../../src/commands/generate/utils/generate-application/utils/build-meta-generator-app/index.ts"],"names":[],"mappings":";;;;;;AAAA,uCAAuD;AAEvD,sDAAyB;AACzB,0DAA6B;AAC7B,8DAAyD;AAYlD,MAAM,qBAAqB,GAA0B,KAAK,EAAE,MAAM,EAAE,EAAE;IAC3E,MAAM,EAAE,OAAO,EAAE,GAAG,MAAM,IAAA,gCAAwB,EAAC,MAAM,CAAC,CAAC;IAE3D,MAAM,aAAa,GAAG,MAAM,IAAA,qCAAgB,EAAC;QAC3C,OAAO;QACP,UAAU,EAAE,mBAAI,CAAC,IAAI,CAAC,iBAAE,CAAC,OAAO,EAAE,EAAE,OAAO,EAAE,gBAAgB,CAAC;KAC/D,CAAC,CAAC;IAEH,MAAM,GAAG,GAA6B;QACpC,aAAa;KACd,CAAC;IAEF,OAAO,GAAG,CAAC;AACb,CAAC,CAAC;AAbW,QAAA,qBAAqB,yBAahC"}
@@ -1,3 +1,4 @@
1
- export * from "./build-app-generator";
2
- export * from "./build-meta-generator";
1
+ export * from "./build-app-generator-app";
2
+ export * from "./build-meta-generator-app";
3
3
  export * from "./generate-app";
4
+ export * from "./load-generator-app";
@@ -14,7 +14,8 @@ var __exportStar = (this && this.__exportStar) || function(m, exports) {
14
14
  for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
15
15
  };
16
16
  Object.defineProperty(exports, "__esModule", { value: true });
17
- __exportStar(require("./build-app-generator"), exports);
18
- __exportStar(require("./build-meta-generator"), exports);
17
+ __exportStar(require("./build-app-generator-app"), exports);
18
+ __exportStar(require("./build-meta-generator-app"), exports);
19
19
  __exportStar(require("./generate-app"), exports);
20
+ __exportStar(require("./load-generator-app"), exports);
20
21
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../../src/commands/generate/utils/generate-application/utils/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,wDAAsC;AACtC,yDAAuC;AACvC,iDAA+B"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../../src/commands/generate/utils/generate-application/utils/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,4DAA0C;AAC1C,6DAA2C;AAC3C,iDAA+B;AAC/B,uDAAqC"}
@@ -0,0 +1,7 @@
1
+ import { Generator } from "@ldsg/types";
2
+ export interface LoadGeneratorAppParams {
3
+ archive: Buffer<ArrayBufferLike>;
4
+ outputPath: string;
5
+ }
6
+ export type LoadGeneratorApp = (params: LoadGeneratorAppParams) => Promise<Generator>;
7
+ export declare const loadGeneratorApp: LoadGeneratorApp;
@@ -0,0 +1,30 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ exports.loadGeneratorApp = void 0;
7
+ const utils_1 = require("@ldsg/utils");
8
+ const fs_extra_1 = __importDefault(require("fs-extra"));
9
+ const node_path_1 = __importDefault(require("node:path"));
10
+ const node_url_1 = require("node:url");
11
+ const loadGeneratorApp = async (params) => {
12
+ const { archive, outputPath } = params;
13
+ await fs_extra_1.default.remove(outputPath);
14
+ (0, utils_1.extractZipToFolder)({
15
+ archive,
16
+ outputPath,
17
+ });
18
+ await (0, utils_1.installDependencies)({ cwd: outputPath });
19
+ await (0, utils_1.buildWithPnpmWorkspace)({ cwd: outputPath });
20
+ const importModule = new Function("specifier", "return import(specifier)");
21
+ const entryPath = node_path_1.default.join(outputPath, "dist", "index.js");
22
+ const entryUrl = `${(0, node_url_1.pathToFileURL)(entryPath).href}?t=${Date.now()}`;
23
+ const { generate } = (await importModule(entryUrl));
24
+ const res = {
25
+ generate,
26
+ };
27
+ return res;
28
+ };
29
+ exports.loadGeneratorApp = loadGeneratorApp;
30
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../../../src/commands/generate/utils/generate-application/utils/load-generator-app/index.ts"],"names":[],"mappings":";;;;;;AACA,uCAA8F;AAC9F,wDAA0B;AAC1B,0DAA6B;AAC7B,uCAAyC;AAgBlC,MAAM,gBAAgB,GAAqB,KAAK,EAAE,MAAM,EAAE,EAAE;IACjE,MAAM,EAAE,OAAO,EAAE,UAAU,EAAE,GAAG,MAAM,CAAC;IAKvC,MAAM,kBAAE,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC;IAE5B,IAAA,0BAAkB,EAAC;QACjB,OAAO;QACP,UAAU;KACX,CAAC,CAAC;IAEH,MAAM,IAAA,2BAAmB,EAAC,EAAE,GAAG,EAAE,UAAU,EAAE,CAAC,CAAC;IAE/C,MAAM,IAAA,8BAAsB,EAAC,EAAE,GAAG,EAAE,UAAU,EAAE,CAAC,CAAC;IAOlD,MAAM,YAAY,GAAG,IAAI,QAAQ,CAAC,WAAW,EAAE,0BAA0B,CAEpD,CAAC;IAEtB,MAAM,SAAS,GAAG,mBAAI,CAAC,IAAI,CAAC,UAAU,EAAE,MAAM,EAAE,UAAU,CAAC,CAAC;IAK5D,MAAM,QAAQ,GAAG,GAAG,IAAA,wBAAa,EAAC,SAAS,CAAC,CAAC,IAAI,MAAM,IAAI,CAAC,GAAG,EAAE,EAAE,CAAC;IAEpE,MAAM,EAAE,QAAQ,EAAE,GAAG,CAAC,MAAM,YAAY,CAAC,QAAQ,CAAC,CAEjD,CAAC;IAEF,MAAM,GAAG,GAAc;QACrB,QAAQ;KACT,CAAC;IAEF,OAAO,GAAG,CAAC;AACb,CAAC,CAAC;AA1CW,QAAA,gBAAgB,oBA0C3B"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@ldsg/cli",
3
- "version": "0.3.45",
3
+ "version": "0.3.47",
4
4
  "description": "",
5
5
  "keywords": [],
6
6
  "license": "ISC",
@@ -17,8 +17,8 @@
17
17
  "commander": "^12.0.0",
18
18
  "fs-extra": "^11.3.0",
19
19
  "js-yaml": "^4.1.0",
20
- "@ldsg/handler": "0.3.45",
21
- "@ldsg/utils": "0.3.45"
20
+ "@ldsg/handler": "0.3.47",
21
+ "@ldsg/utils": "0.3.47"
22
22
  },
23
23
  "devDependencies": {
24
24
  "@types/fs-extra": "^11.0.4",
@@ -37,7 +37,7 @@
37
37
  "ts-node": "^10.9.2",
38
38
  "tslib": "^2.8.1",
39
39
  "typescript": "^5.3.3",
40
- "@ldsg/types": "0.3.45"
40
+ "@ldsg/types": "0.3.47"
41
41
  },
42
42
  "scripts": {
43
43
  "build": "tsc --project tsconfig.build.json",
@@ -2,7 +2,7 @@ import { extractZipToFolder } from "@ldsg/utils";
2
2
  import fs from "fs-extra";
3
3
  import path from "node:path";
4
4
  import type { GenerateParams } from "@ldsg/types";
5
- import { buildAppGenerator, buildMetaGenerator, generateApp } from "./utils";
5
+ import { buildAppGeneratorApp, buildMetaGeneratorApp, generateApp } from "./utils";
6
6
 
7
7
  interface GenerateApplicationParams extends GenerateParams {}
8
8
 
@@ -21,12 +21,12 @@ export const generateApplication: GenerateApplication = async (params) => {
21
21
  /**
22
22
  * 1. 基于资源记录,使用此应用(@ldsg/cli)内置能力构建(含生成、依赖安装、构建)元生成器(Meta Generator);
23
23
  */
24
- const { metaGenerator } = await buildMetaGenerator(params);
24
+ const { metaGenerator } = await buildMetaGeneratorApp(params);
25
25
 
26
26
  /**
27
27
  * 2. 基于资源记录,使用元生成器(Meta Generator)能力构建(含生成、依赖安装、构建)应用生成器(App Generator);
28
28
  */
29
- const { appGenerator } = await buildAppGenerator({ metaGenerator, ...params });
29
+ const { appGenerator } = await buildAppGeneratorApp({ metaGenerator, ...params });
30
30
 
31
31
  /**
32
32
  * 3. 基于资源记录,使用应用生成器(App Generator)能力生成(仅含生成,不含依赖安装、构建)生成应用(App)压缩包;
@@ -0,0 +1,41 @@
1
+ import { GenerateParams, Generator } from "@ldsg/types";
2
+ import os from "node:os";
3
+ import path from "node:path";
4
+ import { loadGeneratorApp } from "../load-generator-app";
5
+
6
+ export interface BuildAppGeneratorAppParams extends GenerateParams {
7
+ metaGenerator: Generator;
8
+ }
9
+
10
+ export interface BuildAppGeneratorAppRes {
11
+ appGenerator: Generator;
12
+ }
13
+
14
+ export type BuildAppGeneratorApp = (
15
+ params: BuildAppGeneratorAppParams,
16
+ ) => Promise<BuildAppGeneratorAppRes>;
17
+
18
+ /**
19
+ * 元生成器在生成器集合中的 kind,与默认生成器资源 settings.kind 一致
20
+ */
21
+ const META_GENERATOR_KIND = "meta_generator";
22
+
23
+ export const buildAppGeneratorApp: BuildAppGeneratorApp = async (params) => {
24
+ const { metaGenerator, ...restParams } = params;
25
+
26
+ /**
27
+ * 使用元生成器生成应用生成器应用
28
+ */
29
+ const { archive } = await metaGenerator.generate({ ...restParams, kind: META_GENERATOR_KIND });
30
+
31
+ const appGenerator = await loadGeneratorApp({
32
+ archive,
33
+ outputPath: path.join(os.homedir(), ".ldsg", "app-generator"),
34
+ });
35
+
36
+ const res: BuildAppGeneratorAppRes = {
37
+ appGenerator,
38
+ };
39
+
40
+ return res;
41
+ };
@@ -0,0 +1,30 @@
1
+ import { generateMetaGeneratorApp } from "@ldsg/utils";
2
+ import { GenerateParams, Generator } from "@ldsg/types";
3
+ import os from "node:os";
4
+ import path from "node:path";
5
+ import { loadGeneratorApp } from "../load-generator-app";
6
+
7
+ export interface BuildMetaGeneratorAppParams extends GenerateParams {}
8
+
9
+ export interface BuildMetaGeneratorAppRes {
10
+ metaGenerator: Generator;
11
+ }
12
+
13
+ export type BuildMetaGeneratorApp = (
14
+ params: BuildMetaGeneratorAppParams,
15
+ ) => Promise<BuildMetaGeneratorAppRes>;
16
+
17
+ export const buildMetaGeneratorApp: BuildMetaGeneratorApp = async (params) => {
18
+ const { archive } = await generateMetaGeneratorApp(params);
19
+
20
+ const metaGenerator = await loadGeneratorApp({
21
+ archive,
22
+ outputPath: path.join(os.homedir(), ".ldsg", "meta-generator"),
23
+ });
24
+
25
+ const res: BuildMetaGeneratorAppRes = {
26
+ metaGenerator,
27
+ };
28
+
29
+ return res;
30
+ };
@@ -1,3 +1,4 @@
1
- export * from "./build-app-generator";
2
- export * from "./build-meta-generator";
1
+ export * from "./build-app-generator-app";
2
+ export * from "./build-meta-generator-app";
3
3
  export * from "./generate-app";
4
+ export * from "./load-generator-app";
@@ -0,0 +1,63 @@
1
+ import { Generator } from "@ldsg/types";
2
+ import { buildWithPnpmWorkspace, extractZipToFolder, installDependencies } from "@ldsg/utils";
3
+ import fs from "fs-extra";
4
+ import path from "node:path";
5
+ import { pathToFileURL } from "node:url";
6
+
7
+ export interface LoadGeneratorAppParams {
8
+ archive: Buffer<ArrayBufferLike>;
9
+
10
+ /**
11
+ * 生成器应用的解压与构建目录
12
+ */
13
+ outputPath: string;
14
+ }
15
+
16
+ export type LoadGeneratorApp = (params: LoadGeneratorAppParams) => Promise<Generator>;
17
+
18
+ /**
19
+ * 解压、安装依赖、构建并加载生成器应用,返回其 generate 能力
20
+ */
21
+ export const loadGeneratorApp: LoadGeneratorApp = async (params) => {
22
+ const { archive, outputPath } = params;
23
+
24
+ /**
25
+ * 清理上一次构建产物,避免旧的 dist 残留被动态导入
26
+ */
27
+ await fs.remove(outputPath);
28
+
29
+ extractZipToFolder({
30
+ archive,
31
+ outputPath,
32
+ });
33
+
34
+ await installDependencies({ cwd: outputPath });
35
+
36
+ await buildWithPnpmWorkspace({ cwd: outputPath });
37
+
38
+ /**
39
+ * 产物为 ESM 单文件模块(模板 package.json 的 type 为 module,vite ssr 构建全量内联),
40
+ * 而 @ldsg/cli 编译为 commonjs,tsc 会把 import() 降级为 require(),
41
+ * 故通过 Function 保留原生动态 import。
42
+ */
43
+ const importModule = new Function("specifier", "return import(specifier)") as (
44
+ specifier: string,
45
+ ) => Promise<unknown>;
46
+
47
+ const entryPath = path.join(outputPath, "dist", "index.js");
48
+
49
+ /**
50
+ * 追加时间戳,避免 Node 的 ESM 模块缓存复用上一次构建的产物
51
+ */
52
+ const entryUrl = `${pathToFileURL(entryPath).href}?t=${Date.now()}`;
53
+
54
+ const { generate } = (await importModule(entryUrl)) as {
55
+ generate: Generator["generate"];
56
+ };
57
+
58
+ const res: Generator = {
59
+ generate,
60
+ };
61
+
62
+ return res;
63
+ };
@@ -1,39 +0,0 @@
1
- import { GenerateParams, Generator } from "@ldsg/types";
2
- import path from "node:path";
3
- import os from "node:os";
4
- import { extractZipToFolder } from "@ldsg/utils";
5
-
6
- export interface BuildAppGeneratorParams extends GenerateParams {
7
- metaGenerator: Generator;
8
- }
9
-
10
- export interface BuildAppGeneratorRes {
11
- appGenerator: Generator;
12
- }
13
-
14
- export type BuildAppGenerator = (params: BuildAppGeneratorParams) => Promise<BuildAppGeneratorRes>;
15
-
16
- export const buildAppGenerator: BuildAppGenerator = async (params) => {
17
- const { metaGenerator, ...restParams } = params;
18
-
19
- const { archive } = await metaGenerator.generate(restParams);
20
-
21
- const outputPath = path.join(os.homedir(), ".ldsg", "app-generator");
22
-
23
- extractZipToFolder({
24
- archive,
25
- outputPath,
26
- });
27
-
28
- const res: BuildAppGeneratorRes = {
29
- appGenerator: {
30
- generate: async () => {
31
- return {
32
- archive,
33
- };
34
- },
35
- },
36
- };
37
-
38
- return res;
39
- };
@@ -1,45 +0,0 @@
1
- import { extractZipToFolder, generateMetaGeneratorApp, installDependencies } from "@ldsg/utils";
2
- import { GenerateParams, Generator } from "@ldsg/types";
3
- import path from "node:path";
4
- import os from "node:os";
5
- import { cwd } from "node:process";
6
-
7
- export interface BuildMetaGeneratorParams extends GenerateParams {}
8
-
9
- export interface BuildMetaGeneratorRes {
10
- metaGenerator: Generator;
11
- }
12
-
13
- export type BuildMetaGenerator = (
14
- params: BuildMetaGeneratorParams,
15
- ) => Promise<BuildMetaGeneratorRes>;
16
-
17
- export const buildMetaGenerator: BuildMetaGenerator = async (params) => {
18
- const { archive } = await generateMetaGeneratorApp(params);
19
-
20
- /**
21
- * 解压、安装依赖、导出模块
22
- */
23
- {
24
- const outputPath = path.join(os.homedir(), ".ldsg", "meta-generator");
25
-
26
- extractZipToFolder({
27
- archive,
28
- outputPath,
29
- });
30
-
31
- installDependencies({ cwd: outputPath });
32
- }
33
-
34
- const res: BuildMetaGeneratorRes = {
35
- metaGenerator: {
36
- generate: async () => {
37
- return {
38
- archive,
39
- };
40
- },
41
- },
42
- };
43
-
44
- return res;
45
- };