@simplysm/sd-cli 10.0.36 → 10.0.39

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 (87) hide show
  1. package/dist/SdLinter.js.map +1 -1
  2. package/dist/SdTsIncrementalBuilder.d.ts +17 -4
  3. package/dist/SdTsIncrementalBuilder.js +29 -33
  4. package/dist/SdTsIncrementalBuilder.js.map +1 -1
  5. package/dist/build-cluster.js +98 -30
  6. package/dist/build-cluster.js.map +1 -1
  7. package/dist/builders/SdCliClientBuilder.d.ts +6 -2
  8. package/dist/builders/SdCliClientBuilder.js +107 -97
  9. package/dist/builders/SdCliClientBuilder.js.map +1 -1
  10. package/dist/builders/SdCliJsLibLinter.js.map +1 -1
  11. package/dist/builders/SdCliServerBuilder.d.ts +2 -1
  12. package/dist/builders/SdCliServerBuilder.js +68 -13
  13. package/dist/builders/SdCliServerBuilder.js.map +1 -1
  14. package/dist/builders/SdCliTsLibBuilder.d.ts +5 -2
  15. package/dist/builders/SdCliTsLibBuilder.js +64 -10
  16. package/dist/builders/SdCliTsLibBuilder.js.map +1 -1
  17. package/dist/commons.d.ts +28 -2
  18. package/dist/commons.js.map +1 -1
  19. package/dist/entry/SdCliElectron.d.ts +7 -0
  20. package/dist/entry/SdCliElectron.js +42 -0
  21. package/dist/entry/SdCliElectron.js.map +1 -0
  22. package/dist/entry/SdCliLocalUpdate.d.ts +3 -3
  23. package/dist/entry/SdCliLocalUpdate.js +20 -26
  24. package/dist/entry/SdCliLocalUpdate.js.map +1 -1
  25. package/dist/entry/SdCliProject.d.ts +3 -3
  26. package/dist/entry/SdCliProject.js +87 -36
  27. package/dist/entry/SdCliProject.js.map +1 -1
  28. package/dist/index.d.ts +1 -0
  29. package/dist/index.js +2 -0
  30. package/dist/index.js.map +1 -0
  31. package/dist/sd-cli.d.ts +1 -1
  32. package/dist/sd-cli.js +62 -16
  33. package/dist/sd-cli.js.map +1 -1
  34. package/dist/server-worker.js.map +1 -1
  35. package/dist/utils/SdCliBuildResultUtil.js +1 -1
  36. package/dist/utils/SdCliBuildResultUtil.js.map +1 -1
  37. package/dist/utils/SdCliViteElectronMainPlugin.d.ts +6 -0
  38. package/dist/utils/SdCliViteElectronMainPlugin.js +81 -0
  39. package/dist/utils/SdCliViteElectronMainPlugin.js.map +1 -0
  40. package/dist/utils/SdCliViteExternalPlugin.d.ts +7 -0
  41. package/dist/utils/SdCliViteExternalPlugin.js +98 -0
  42. package/dist/utils/SdCliViteExternalPlugin.js.map +1 -0
  43. package/dist/utils/SdCliViteLoggerPlugin.d.ts +6 -0
  44. package/dist/utils/SdCliViteLoggerPlugin.js +24 -0
  45. package/dist/utils/SdCliViteLoggerPlugin.js.map +1 -0
  46. package/dist/utils/SdCliViteNodeGlobalPlugin.d.ts +2 -0
  47. package/dist/utils/SdCliViteNodeGlobalPlugin.js +29 -0
  48. package/dist/utils/SdCliViteNodeGlobalPlugin.js.map +1 -0
  49. package/dist/utils/SdCliViteReactSwcPlugin.d.ts +2 -0
  50. package/dist/utils/SdCliViteReactSwcPlugin.js +141 -0
  51. package/dist/utils/SdCliViteReactSwcPlugin.js.map +1 -0
  52. package/dist/utils/SdCliViteWatchWithResolutionsPlugin.d.ts +2 -0
  53. package/dist/utils/SdCliViteWatchWithResolutionsPlugin.js +26 -0
  54. package/dist/utils/SdCliViteWatchWithResolutionsPlugin.js.map +1 -0
  55. package/dist/utils/getElectronReactExternals.d.ts +1 -0
  56. package/dist/utils/getElectronReactExternals.js +17 -0
  57. package/dist/utils/getElectronReactExternals.js.map +1 -0
  58. package/dist/utils/sdCliTsDefineTransformer.d.ts +4 -0
  59. package/dist/utils/sdCliTsDefineTransformer.js +26 -0
  60. package/dist/utils/sdCliTsDefineTransformer.js.map +1 -0
  61. package/package.json +25 -10
  62. package/src/SdLinter.ts +2 -2
  63. package/src/SdTsIncrementalBuilder.ts +116 -94
  64. package/src/build-cluster.ts +173 -111
  65. package/src/builders/SdCliClientBuilder.ts +226 -204
  66. package/src/builders/SdCliServerBuilder.ts +311 -240
  67. package/src/builders/SdCliTsLibBuilder.ts +160 -89
  68. package/src/commons.ts +66 -34
  69. package/src/entry/SdCliElectron.ts +55 -0
  70. package/src/entry/SdCliLocalUpdate.ts +104 -101
  71. package/src/entry/SdCliProject.ts +452 -401
  72. package/src/index.ts +1 -0
  73. package/src/sd-cli.ts +185 -141
  74. package/src/utils/SdCliBuildResultUtil.ts +1 -2
  75. package/src/utils/SdCliViteElectronMainPlugin.ts +86 -0
  76. package/src/utils/SdCliViteExternalPlugin.ts +112 -0
  77. package/src/utils/SdCliViteLoggerPlugin.ts +29 -0
  78. package/src/utils/SdCliViteNodeGlobalPlugin.ts +31 -0
  79. package/src/utils/SdCliViteReactSwcPlugin.ts +154 -0
  80. package/src/utils/SdCliViteWatchWithResolutionsPlugin.ts +29 -0
  81. package/src/utils/getElectronReactExternals.ts +19 -0
  82. package/src/utils/sdCliTsDefineTransformer.ts +31 -0
  83. package/.eslintrc.cjs +0 -18
  84. package/dist/utils/SdCliConfigUtil.d.ts +0 -7
  85. package/dist/utils/SdCliConfigUtil.js +0 -69
  86. package/dist/utils/SdCliConfigUtil.js.map +0 -1
  87. package/src/utils/SdCliConfigUtil.ts +0 -94
@@ -0,0 +1,81 @@
1
+ import { build, defineConfig } from "vite";
2
+ import { SdCliViteExternalPlugin } from "./SdCliViteExternalPlugin";
3
+ import path from "path";
4
+ export const SdCliViteElectronMainPlugin = (opt) => {
5
+ let mainConfig;
6
+ return [
7
+ {
8
+ name: "sd-cli:vite:electron-main",
9
+ apply: "serve",
10
+ configureServer: (server) => {
11
+ server.httpServer?.on("listening", async () => {
12
+ mainConfig = defineConfig({
13
+ mode: server.config.mode,
14
+ define: server.config.define,
15
+ root: server.config.root,
16
+ optimizeDeps: {
17
+ force: server.config.optimizeDeps?.force
18
+ },
19
+ build: {
20
+ sourcemap: true,
21
+ minify: false,
22
+ outDir: opt.distPath,
23
+ lib: {
24
+ entry: opt.entry,
25
+ formats: ["cjs"],
26
+ fileName: () => "[name].js"
27
+ }
28
+ },
29
+ customLogger: server.config.customLogger,
30
+ plugins: [
31
+ SdCliViteExternalPlugin({
32
+ cachePath: path.resolve(opt.cachePath, "externals"),
33
+ nodeBuiltinModules: true,
34
+ includes: ["electron"]
35
+ }),
36
+ {
37
+ name: ":startup",
38
+ closeBundle: () => {
39
+ server.ws.send({ type: "full-reload" });
40
+ }
41
+ }
42
+ ]
43
+ });
44
+ await build(mainConfig);
45
+ });
46
+ },
47
+ },
48
+ {
49
+ name: "sd-cli:vite:electron-main",
50
+ apply: "build",
51
+ config: (config) => {
52
+ mainConfig = defineConfig({
53
+ mode: config.mode,
54
+ define: config.define,
55
+ root: config.root,
56
+ resolve: {
57
+ alias: config.resolve?.alias
58
+ },
59
+ optimizeDeps: {
60
+ force: config.optimizeDeps?.force
61
+ },
62
+ build: {
63
+ sourcemap: false,
64
+ minify: true,
65
+ outDir: opt.distPath,
66
+ lib: {
67
+ entry: opt.entry,
68
+ formats: ["cjs"],
69
+ fileName: () => "[name].js"
70
+ }
71
+ },
72
+ customLogger: config.customLogger
73
+ });
74
+ },
75
+ closeBundle: async () => {
76
+ await build(mainConfig);
77
+ }
78
+ }
79
+ ];
80
+ };
81
+ //# sourceMappingURL=SdCliViteElectronMainPlugin.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"SdCliViteElectronMainPlugin.js","sourceRoot":"","sources":["../../src/utils/SdCliViteElectronMainPlugin.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,KAAK,EAAE,YAAY,EAA2B,MAAM,MAAM,CAAC;AACnE,OAAO,EAAC,uBAAuB,EAAC,MAAM,2BAA2B,CAAC;AAClE,OAAO,IAAI,MAAM,MAAM,CAAC;AAExB,MAAM,CAAC,MAAM,2BAA2B,GAAG,CAAC,GAI3C,EAAkB,EAAE;IACjB,IAAI,UAAsB,CAAC;IAE3B,OAAO;QACH;YACI,IAAI,EAAE,2BAA2B;YACjC,KAAK,EAAE,OAAO;YACd,eAAe,EAAE,CAAC,MAAM,EAAE,EAAE;gBACxB,MAAM,CAAC,UAAU,EAAE,EAAE,CAAC,WAAW,EAAE,KAAK,IAAI,EAAE;oBAC1C,UAAU,GAAG,YAAY,CAAC;wBACtB,IAAI,EAAE,MAAM,CAAC,MAAM,CAAC,IAAI;wBACxB,MAAM,EAAE,MAAM,CAAC,MAAM,CAAC,MAAM;wBAC5B,IAAI,EAAE,MAAM,CAAC,MAAM,CAAC,IAAI;wBACxB,YAAY,EAAE;4BACV,KAAK,EAAE,MAAM,CAAC,MAAM,CAAC,YAAY,EAAE,KAAK;yBAC3C;wBACD,KAAK,EAAE;4BACH,SAAS,EAAE,IAAI;4BACf,MAAM,EAAE,KAAK;4BACb,MAAM,EAAE,GAAG,CAAC,QAAQ;4BACpB,GAAG,EAAE;gCACD,KAAK,EAAE,GAAG,CAAC,KAAK;gCAChB,OAAO,EAAE,CAAC,KAAK,CAAC;gCAChB,QAAQ,EAAE,GAAG,EAAE,CAAC,WAAW;6BAC9B;yBACJ;wBACD,YAAY,EAAE,MAAM,CAAC,MAAM,CAAC,YAAY;wBACxC,OAAO,EAAE;4BACL,uBAAuB,CAAC;gCACpB,SAAS,EAAE,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,SAAS,EAAE,WAAW,CAAC;gCACnD,kBAAkB,EAAE,IAAI;gCACxB,QAAQ,EAAE,CAAC,UAAU,CAAC;6BACzB,CAAC;4BACF;gCACI,IAAI,EAAE,UAAU;gCAChB,WAAW,EAAE,GAAG,EAAE;oCACd,MAAM,CAAC,EAAE,CAAC,IAAI,CAAC,EAAC,IAAI,EAAE,aAAa,EAAC,CAAC,CAAC;gCAC1C,CAAC;6BACJ;yBACJ;qBACJ,CAAC,CAAC;oBACH,MAAM,KAAK,CAAC,UAAU,CAAC,CAAC;gBAC5B,CAAC,CAAC,CAAC;YACP,CAAC;SACJ;QACD;YACI,IAAI,EAAE,2BAA2B;YACjC,KAAK,EAAE,OAAO;YACd,MAAM,EAAE,CAAC,MAAM,EAAE,EAAE;gBACf,UAAU,GAAG,YAAY,CAAC;oBACtB,IAAI,EAAE,MAAM,CAAC,IAAI;oBACjB,MAAM,EAAE,MAAM,CAAC,MAAM;oBACrB,IAAI,EAAE,MAAM,CAAC,IAAI;oBACjB,OAAO,EAAE;wBACL,KAAK,EAAE,MAAM,CAAC,OAAO,EAAE,KAAK;qBAC/B;oBACD,YAAY,EAAE;wBACV,KAAK,EAAE,MAAM,CAAC,YAAY,EAAE,KAAK;qBACpC;oBACD,KAAK,EAAE;wBACH,SAAS,EAAE,KAAK;wBAChB,MAAM,EAAE,IAAI;wBACZ,MAAM,EAAE,GAAG,CAAC,QAAQ;wBACpB,GAAG,EAAE;4BACD,KAAK,EAAE,GAAG,CAAC,KAAK;4BAChB,OAAO,EAAE,CAAC,KAAK,CAAC;4BAChB,QAAQ,EAAE,GAAG,EAAE,CAAC,WAAW;yBAC9B;qBACJ;oBACD,YAAY,EAAE,MAAM,CAAC,YAAY;iBACpC,CAAC,CAAC;YACP,CAAC;YACD,WAAW,EAAE,KAAK,IAAI,EAAE;gBACpB,MAAM,KAAK,CAAC,UAAU,CAAC,CAAC;YAC5B,CAAC;SACJ;KACJ,CAAC;AACN,CAAC,CAAC"}
@@ -0,0 +1,7 @@
1
+ import { PluginOption } from "vite";
2
+ export declare const SdCliViteExternalPlugin: (opt: {
3
+ cachePath: string;
4
+ nodeBuiltinModules?: boolean;
5
+ dependencies?: boolean;
6
+ includes?: string[];
7
+ }) => PluginOption[];
@@ -0,0 +1,98 @@
1
+ import { builtinModules, createRequire } from "node:module";
2
+ import { FsUtil, PathUtil } from "@simplysm/sd-core-node";
3
+ import path from "path";
4
+ import { pathToFileURL } from "url";
5
+ import libEsm from "lib-esm";
6
+ import esbuild from "esbuild";
7
+ export const SdCliViteExternalPlugin = (opt) => {
8
+ const externals = opt.includes ?? [];
9
+ const builtins = [
10
+ ...builtinModules,
11
+ ...builtinModules.map((item) => `node:${item}`)
12
+ ];
13
+ return [
14
+ {
15
+ name: "sd-cli:vite:external",
16
+ enforce: "pre",
17
+ apply: "build",
18
+ config: (conf) => {
19
+ if (opt.dependencies) {
20
+ const npmConfigPath = FsUtil.findAllParentChildPaths("package.json", conf.root ?? opt.cachePath).first();
21
+ const npmConfig = FsUtil.readJson(npmConfigPath);
22
+ if (npmConfig.dependencies) {
23
+ externals.push(...Object.keys(npmConfig.dependencies));
24
+ }
25
+ }
26
+ },
27
+ resolveId: (source, importer) => {
28
+ if (importer === undefined)
29
+ return;
30
+ if ([...externals, ...builtins].includes(source)) {
31
+ return {
32
+ id: source,
33
+ external: true
34
+ };
35
+ }
36
+ return;
37
+ }
38
+ },
39
+ {
40
+ name: "sd-cli:vite:external",
41
+ enforce: "pre",
42
+ apply: "serve",
43
+ config: (conf) => {
44
+ if (opt.dependencies) {
45
+ const npmConfigPath = FsUtil.findAllParentChildPaths("package.json", conf.root ?? opt.cachePath).first();
46
+ const npmConfig = FsUtil.readJson(npmConfigPath);
47
+ if (npmConfig.dependencies) {
48
+ externals.push(...Object.keys(npmConfig.dependencies));
49
+ }
50
+ }
51
+ async function _getSnippetsAsync(moduleName, importer) {
52
+ const myRequire = createRequire(pathToFileURL(importer ?? process.cwd()).toString());
53
+ let realModuleName;
54
+ try {
55
+ realModuleName = moduleName;
56
+ }
57
+ catch {
58
+ realModuleName = await _getPreBundleAsync(moduleName);
59
+ }
60
+ const module = myRequire(realModuleName);
61
+ const members = Object.getOwnPropertyNames(module);
62
+ const { exports } = libEsm({ exports: members });
63
+ return `const avoid_parse_require = require; const _M_ = avoid_parse_require("${PathUtil.posix(realModuleName)}"); ${exports}`;
64
+ }
65
+ async function _getPreBundleAsync(moduleName) {
66
+ const outfile = path.posix.join(opt.cachePath, moduleName) + ".cjs";
67
+ await esbuild.build({
68
+ entryPoints: [moduleName],
69
+ outfile,
70
+ target: 'node18',
71
+ format: 'cjs',
72
+ bundle: true,
73
+ sourcemap: 'inline',
74
+ platform: 'node',
75
+ external: builtins
76
+ });
77
+ return outfile;
78
+ }
79
+ return {
80
+ resolve: {
81
+ alias: [{
82
+ find: new RegExp(`^(${[...externals, ...builtins].join("|")})$`),
83
+ replacement: "$1",
84
+ customResolver: async (source, importer) => {
85
+ const id = path.posix.join(opt.cachePath, source) + ".mjs";
86
+ if (!FsUtil.exists(id)) {
87
+ await FsUtil.writeFileAsync(id, await _getSnippetsAsync(source, importer));
88
+ }
89
+ return { id };
90
+ }
91
+ }],
92
+ }
93
+ };
94
+ }
95
+ }
96
+ ];
97
+ };
98
+ //# sourceMappingURL=SdCliViteExternalPlugin.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"SdCliViteExternalPlugin.js","sourceRoot":"","sources":["../../src/utils/SdCliViteExternalPlugin.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,6 @@
1
+ import { PluginOption } from "vite";
2
+ import { Logger } from "@simplysm/sd-core-node";
3
+ export declare const SdCliViteLoggerPlugin: (opt: {
4
+ logger: Logger;
5
+ name: string;
6
+ }) => PluginOption[];
@@ -0,0 +1,24 @@
1
+ import * as vite from "vite";
2
+ export const SdCliViteLoggerPlugin = (opt) => {
3
+ return [
4
+ {
5
+ name: "sd-cli:vite:logger",
6
+ enforce: "pre",
7
+ config: () => ({
8
+ customLogger: {
9
+ ...vite.createLogger(),
10
+ info: (msg) => {
11
+ opt.logger.debug(`[${opt.name}] ${msg}`);
12
+ },
13
+ warn: (msg) => {
14
+ opt.logger.warn(`[${opt.name}] ${msg}`);
15
+ },
16
+ error: (msg) => {
17
+ opt.logger.error(`[${opt.name}] ${msg}`);
18
+ }
19
+ },
20
+ })
21
+ }
22
+ ];
23
+ };
24
+ //# sourceMappingURL=SdCliViteLoggerPlugin.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"SdCliViteLoggerPlugin.js","sourceRoot":"","sources":["../../src/utils/SdCliViteLoggerPlugin.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,IAAI,MAAM,MAAM,CAAC;AAI7B,MAAM,CAAC,MAAM,qBAAqB,GAAG,CAAC,GAGrC,EAAkB,EAAE;IACjB,OAAO;QACH;YACI,IAAI,EAAE,oBAAoB;YAC1B,OAAO,EAAE,KAAK;YACd,MAAM,EAAE,GAAG,EAAE,CAAC,CAAC;gBACX,YAAY,EAAE;oBACV,GAAG,IAAI,CAAC,YAAY,EAAE;oBACtB,IAAI,EAAE,CAAC,GAAG,EAAE,EAAE;wBACV,GAAG,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI,GAAG,CAAC,IAAI,KAAK,GAAG,EAAE,CAAC,CAAC;oBAC7C,CAAC;oBACD,IAAI,EAAE,CAAC,GAAG,EAAE,EAAE;wBACV,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,GAAG,CAAC,IAAI,KAAK,GAAG,EAAE,CAAC,CAAC;oBAC5C,CAAC;oBACD,KAAK,EAAE,CAAC,GAAG,EAAE,EAAE;wBACX,GAAG,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI,GAAG,CAAC,IAAI,KAAK,GAAG,EAAE,CAAC,CAAC;oBAC7C,CAAC;iBACJ;aACJ,CAAC;SACL;KACJ,CAAC;AACN,CAAC,CAAC"}
@@ -0,0 +1,2 @@
1
+ import { PluginOption } from "vite";
2
+ export declare const SdCliViteNodeGlobalPlugin: () => PluginOption[];
@@ -0,0 +1,29 @@
1
+ import stdLibBrowser from "node-stdlib-browser";
2
+ import inject from "@rollup/plugin-inject";
3
+ import { fileURLToPath } from "url";
4
+ const esbuildShim = fileURLToPath(await import.meta.resolve("node-stdlib-browser/helpers/esbuild/shim"));
5
+ export const SdCliViteNodeGlobalPlugin = () => {
6
+ return [
7
+ {
8
+ name: "sd-cli:vite:node-global",
9
+ enforce: "pre",
10
+ config: () => ({
11
+ optimizeDeps: {
12
+ include: ["buffer", "process"]
13
+ },
14
+ resolve: {
15
+ alias: stdLibBrowser
16
+ }
17
+ }),
18
+ },
19
+ {
20
+ ...inject({
21
+ global: [esbuildShim, 'global'],
22
+ process: [esbuildShim, 'process'],
23
+ Buffer: [esbuildShim, 'Buffer']
24
+ }),
25
+ enforce: 'post'
26
+ }
27
+ ];
28
+ };
29
+ //# sourceMappingURL=SdCliViteNodeGlobalPlugin.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"SdCliViteNodeGlobalPlugin.js","sourceRoot":"","sources":["../../src/utils/SdCliViteNodeGlobalPlugin.ts"],"names":[],"mappings":"AACA,OAAO,aAAa,MAAM,qBAAqB,CAAC;AAChD,OAAO,MAAM,MAAM,uBAAuB,CAAC;AAC3C,OAAO,EAAE,aAAa,EAAE,MAAM,KAAK,CAAC;AAEpC,MAAM,WAAW,GAAG,aAAa,CAAC,MAAM,MAAM,CAAC,IAAI,CAAC,OAAQ,CAAC,0CAA0C,CAAC,CAAC,CAAC;AAE1G,MAAM,CAAC,MAAM,yBAAyB,GAAG,GAAmB,EAAE;IAC5D,OAAO;QACL;YACE,IAAI,EAAE,yBAAyB;YAC/B,OAAO,EAAE,KAAK;YACd,MAAM,EAAE,GAAG,EAAE,CAAC,CAAC;gBACb,YAAY,EAAE;oBACZ,OAAO,EAAE,CAAC,QAAQ,EAAE,SAAS,CAAC;iBAC/B;gBACD,OAAO,EAAE;oBACP,KAAK,EAAE,aAAa;iBACrB;aACF,CAAC;SACH;QACD;YACE,GAAG,MAAM,CAAC;gBACR,MAAM,EAAE,CAAC,WAAW,EAAE,QAAQ,CAAC;gBAC/B,OAAO,EAAE,CAAC,WAAW,EAAE,SAAS,CAAC;gBACjC,MAAM,EAAE,CAAC,WAAW,EAAE,QAAQ,CAAC;aAChC,CAAC;YACF,OAAO,EAAE,MAAM;SAChB;KACF,CAAC;AACJ,CAAC,CAAC"}
@@ -0,0 +1,2 @@
1
+ import { PluginOption } from "vite";
2
+ export declare const SdCliViteReactSwcPlugin: () => PluginOption[];
@@ -0,0 +1,141 @@
1
+ import { FsUtil } from "@simplysm/sd-core-node";
2
+ import { transform, } from "@swc/core";
3
+ import path from "path";
4
+ const runtimePublicPath = "/@react-refresh";
5
+ export const SdCliViteReactSwcPlugin = () => {
6
+ return [
7
+ {
8
+ name: "sd-cli:vite:react-swc:resolve-runtime",
9
+ apply: "serve",
10
+ enforce: "pre",
11
+ resolveId: (source) => (source === runtimePublicPath ? source : undefined),
12
+ load: (id) => {
13
+ if (id !== runtimePublicPath)
14
+ return;
15
+ return FsUtil.readFile(path.resolve(process.cwd(), "node_modules/@vitejs/plugin-react-swc/refresh-runtime.js"));
16
+ }
17
+ },
18
+ {
19
+ name: "sd-cli:vite:react-swc",
20
+ apply: "serve",
21
+ config: () => ({
22
+ esbuild: false,
23
+ optimizeDeps: {
24
+ include: [`react/jsx-dev-runtime`],
25
+ },
26
+ }),
27
+ transformIndexHtml: (html, ctx) => [
28
+ {
29
+ tag: "script",
30
+ attrs: { type: "module" },
31
+ children: `import { injectIntoGlobalHook } from "${ctx.server.config.base + runtimePublicPath.slice(1)}";
32
+ injectIntoGlobalHook(window);
33
+ window.$RefreshReg$ = () => {};
34
+ window.$RefreshSig$ = () => (type) => type;`,
35
+ },
36
+ ],
37
+ transform: async (code, id) => {
38
+ const realId = id.split("?").first();
39
+ const result = await transformWithOptions(realId, code, true);
40
+ if (!result)
41
+ return;
42
+ if (!/\$Refresh(?:Reg|Sig)\$\(/.test(result.code)) {
43
+ return result;
44
+ }
45
+ result.code = `import * as RefreshRuntime from "${runtimePublicPath}";
46
+
47
+ if (!window.$RefreshReg$) throw new Error("React refresh preamble was not loaded. Something is wrong.");
48
+ const prevRefreshReg = window.$RefreshReg$;
49
+ const prevRefreshSig = window.$RefreshSig$;
50
+ window.$RefreshReg$ = RefreshRuntime.getRefreshReg("${realId}");
51
+ window.$RefreshSig$ = RefreshRuntime.createSignatureFunctionForTransform;
52
+
53
+ ${result.code}
54
+
55
+ window.$RefreshReg$ = prevRefreshReg;
56
+ window.$RefreshSig$ = prevRefreshSig;
57
+ RefreshRuntime.__hmr_import(import.meta.url).then((currentExports) => {
58
+ RefreshRuntime.registerExportsForReactRefresh("${realId}", currentExports);
59
+ import.meta.hot.accept((nextExports) => {
60
+ if (!nextExports) return;
61
+ const invalidateMessage = RefreshRuntime.validateRefreshBoundaryAndEnqueueUpdate(currentExports, nextExports);
62
+ if (invalidateMessage) import.meta.hot.invalidate(invalidateMessage);
63
+ });
64
+ });
65
+ `;
66
+ const sourceMap = JSON.parse(result.map);
67
+ sourceMap.mappings = ";;;;;;;;" + sourceMap.mappings;
68
+ return { code: result.code, map: sourceMap };
69
+ },
70
+ },
71
+ {
72
+ name: "sd-cli:vite:react-swc",
73
+ apply: "build",
74
+ enforce: "pre",
75
+ config: () => ({
76
+ esbuild: {
77
+ minifyIdentifiers: false,
78
+ },
79
+ build: {
80
+ rollupOptions: {
81
+ onwarn: (warning, defaultHandler) => {
82
+ if (warning.code === "MODULE_LEVEL_DIRECTIVE" &&
83
+ warning.message.includes("use client")) {
84
+ return;
85
+ }
86
+ defaultHandler(warning);
87
+ }
88
+ }
89
+ },
90
+ }),
91
+ transform: (code, _id) => transformWithOptions(_id.split("?")[0], code, false)
92
+ }
93
+ ];
94
+ };
95
+ const transformWithOptions = async (id, code, dev) => {
96
+ const parser = id.endsWith(".tsx") ? { syntax: "typescript", tsx: true, decorators: true }
97
+ : id.endsWith(".ts") ? { syntax: "typescript", tsx: false, decorators: true }
98
+ : id.endsWith(".jsx") ? { syntax: "ecmascript", jsx: true }
99
+ : undefined;
100
+ if (!parser)
101
+ return;
102
+ let result;
103
+ try {
104
+ result = await transform(code, {
105
+ filename: id,
106
+ swcrc: false,
107
+ configFile: false,
108
+ sourceMaps: true,
109
+ jsc: {
110
+ target: "es2021",
111
+ parser,
112
+ transform: {
113
+ useDefineForClassFields: true,
114
+ react: {
115
+ runtime: "automatic",
116
+ importSource: "react",
117
+ ...dev ? {
118
+ refresh: true,
119
+ development: true,
120
+ } : {}
121
+ },
122
+ decoratorMetadata: true
123
+ },
124
+ },
125
+ });
126
+ }
127
+ catch (e) {
128
+ const message = e.message;
129
+ const fileStartIndex = message.indexOf("╭─[");
130
+ if (fileStartIndex !== -1) {
131
+ const match = message.slice(fileStartIndex).match(/:(\d+):(\d+)]/);
132
+ if (match) {
133
+ e.line = match[1];
134
+ e.column = match[2];
135
+ }
136
+ }
137
+ throw e;
138
+ }
139
+ return result;
140
+ };
141
+ //# sourceMappingURL=SdCliViteReactSwcPlugin.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"SdCliViteReactSwcPlugin.js","sourceRoot":"","sources":["../../src/utils/SdCliViteReactSwcPlugin.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ import { PluginOption } from "vite";
2
+ export declare const SdCliViteServeWithResolutionsPlugin: () => PluginOption[];
@@ -0,0 +1,26 @@
1
+ import * as vite from "vite";
2
+ import path from "path";
3
+ import { FsUtil } from "@simplysm/sd-core-node";
4
+ export const SdCliViteServeWithResolutionsPlugin = () => {
5
+ const projNpmConfig = FsUtil.readJson(path.resolve(process.cwd(), "package.json"));
6
+ return [
7
+ {
8
+ name: "sd-cli:vite:serve-with-resolutions",
9
+ apply: "serve",
10
+ enforce: "pre",
11
+ config: () => ({
12
+ server: {
13
+ fs: {
14
+ allow: [
15
+ vite.searchForWorkspaceRoot(process.cwd()),
16
+ ...projNpmConfig.resolutions
17
+ ? Object.values(projNpmConfig.resolutions).map((item) => vite.searchForWorkspaceRoot(path.resolve(process.cwd(), item.slice(7))))
18
+ : []
19
+ ].distinct()
20
+ },
21
+ },
22
+ }),
23
+ }
24
+ ];
25
+ };
26
+ //# sourceMappingURL=SdCliViteWatchWithResolutionsPlugin.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"SdCliViteWatchWithResolutionsPlugin.js","sourceRoot":"","sources":["../../src/utils/SdCliViteWatchWithResolutionsPlugin.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,IAAI,MAAM,MAAM,CAAC;AAE7B,OAAO,IAAI,MAAM,MAAM,CAAC;AAExB,OAAO,EAAE,MAAM,EAAE,MAAM,wBAAwB,CAAC;AAEhD,MAAM,CAAC,MAAM,mCAAmC,GAAG,GAAmB,EAAE;IACtE,MAAM,aAAa,GAAe,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,cAAc,CAAC,CAAC,CAAC;IAE/F,OAAO;QACL;YACE,IAAI,EAAE,oCAAoC;YAC1C,KAAK,EAAE,OAAO;YACd,OAAO,EAAE,KAAK;YACd,MAAM,EAAE,GAAG,EAAE,CAAC,CAAC;gBACb,MAAM,EAAE;oBACN,EAAE,EAAE;wBACF,KAAK,EAAE;4BACL,IAAI,CAAC,sBAAsB,CAAC,OAAO,CAAC,GAAG,EAAE,CAAC;4BAC1C,GAAG,aAAa,CAAC,WAAW;gCAC1B,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,aAAa,CAAC,WAAW,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,sBAAsB,CAAC,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;gCACjI,CAAC,CAAC,EAAE;yBACP,CAAC,QAAQ,EAAE;qBACb;iBACF;aACF,CAAC;SACH;KACF,CAAC;AACJ,CAAC,CAAC"}
@@ -0,0 +1 @@
1
+ export declare const getElectronReactExternals: (pkgPath: string, deps: string[]) => string[];
@@ -0,0 +1,17 @@
1
+ import { FsUtil } from "@simplysm/sd-core-node";
2
+ export const getElectronReactExternals = (pkgPath, deps) => {
3
+ const result = [];
4
+ for (const dep of deps) {
5
+ if (dep === "electron")
6
+ continue;
7
+ const depNpmConfFilePath = FsUtil.findAllParentChildPaths(`node_modules/${dep}/package.json`, pkgPath).first();
8
+ if (depNpmConfFilePath === undefined)
9
+ continue;
10
+ const depNpmConf = FsUtil.readJson(depNpmConfFilePath);
11
+ if (depNpmConf.dependencies && Object.keys(depNpmConf.dependencies).includes("react"))
12
+ continue;
13
+ result.push(dep);
14
+ }
15
+ return result;
16
+ };
17
+ //# sourceMappingURL=getElectronReactExternals.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"getElectronReactExternals.js","sourceRoot":"","sources":["../../src/utils/getElectronReactExternals.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,MAAM,EAAC,MAAM,wBAAwB,CAAC;AAG9C,MAAM,CAAC,MAAM,yBAAyB,GAAG,CAAC,OAAe,EAAE,IAAc,EAAY,EAAE;IACnF,MAAM,MAAM,GAAa,EAAE,CAAC;IAC5B,KAAK,MAAM,GAAG,IAAI,IAAI,EAAE;QACpB,IAAI,GAAG,KAAK,UAAU;YAAE,SAAS;QAEjC,MAAM,kBAAkB,GAAG,MAAM,CAAC,uBAAuB,CAAC,gBAAgB,GAAG,eAAe,EAAE,OAAO,CAAC,CAAC,KAAK,EAAE,CAAC;QAC/G,IAAI,kBAAkB,KAAK,SAAS;YAAE,SAAS;QAE/C,MAAM,UAAU,GAAG,MAAM,CAAC,QAAQ,CAAC,kBAAkB,CAAe,CAAC;QACrE,IAAI,UAAU,CAAC,YAAY,IAAI,MAAM,CAAC,IAAI,CAAC,UAAU,CAAC,YAAY,CAAC,CAAC,QAAQ,CAAC,OAAO,CAAC;YAAE,SAAS;QAEhG,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;KACpB;IAED,OAAO,MAAM,CAAC;AAClB,CAAC,CAAC"}
@@ -0,0 +1,4 @@
1
+ import ts from "typescript";
2
+ export declare function sdCliTsDefineTransformer(_: ts.Program, args: {
3
+ replace: Record<string, string>;
4
+ }): ts.TransformerFactory<ts.SourceFile>;
@@ -0,0 +1,26 @@
1
+ import ts from "typescript";
2
+ export function sdCliTsDefineTransformer(_, args) {
3
+ return (context) => {
4
+ return (sourceFile) => {
5
+ const visitor = (node) => {
6
+ if (ts.isCallExpression(node) ||
7
+ ts.isIdentifier(node) ||
8
+ ts.isExpressionStatement(node) ||
9
+ ts.isPropertyAccessExpression(node) ||
10
+ ts.isTypeOfExpression(node) ||
11
+ ts.isElementAccessExpression(node)) {
12
+ const regex = /\[["'`](.*)["'`]]/;
13
+ const replaceKey = node.getText().replace(new RegExp(regex, "g"), str => `.${str.match(regex)[1]}`);
14
+ const replaceValue = args.replace[replaceKey];
15
+ if (replaceValue !== undefined) {
16
+ return ts.factory.createIdentifier(replaceValue);
17
+ }
18
+ return node;
19
+ }
20
+ return ts.visitEachChild(node, visitor, context);
21
+ };
22
+ return ts.visitNode(sourceFile, visitor);
23
+ };
24
+ };
25
+ }
26
+ //# sourceMappingURL=sdCliTsDefineTransformer.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"sdCliTsDefineTransformer.js","sourceRoot":"","sources":["../../src/utils/sdCliTsDefineTransformer.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,YAAY,CAAC;AAE5B,MAAM,UAAU,wBAAwB,CAAC,CAAa,EAAE,IAAyC;IAC7F,OAAO,CAAC,OAAO,EAAE,EAAE;QACf,OAAO,CAAC,UAAU,EAAE,EAAE;YAClB,MAAM,OAAO,GAAG,CAAC,IAAa,EAAW,EAAE;gBACvC,IACI,EAAE,CAAC,gBAAgB,CAAC,IAAI,CAAC;oBACzB,EAAE,CAAC,YAAY,CAAC,IAAI,CAAC;oBACrB,EAAE,CAAC,qBAAqB,CAAC,IAAI,CAAC;oBAC9B,EAAE,CAAC,0BAA0B,CAAC,IAAI,CAAC;oBACnC,EAAE,CAAC,kBAAkB,CAAC,IAAI,CAAC;oBAC3B,EAAE,CAAC,yBAAyB,CAAC,IAAI,CAAC,EACpC;oBACE,MAAM,KAAK,GAAG,mBAAmB,CAAC;oBAClC,MAAM,UAAU,GAAG,IAAI,CAAC,OAAO,EAAE,CAAC,OAAO,CAAC,IAAI,MAAM,CAAC,KAAK,EAAE,GAAG,CAAC,EAAE,GAAG,CAAC,EAAE,CAAC,IAAI,GAAG,CAAC,KAAK,CAAC,KAAK,CAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;oBACrG,MAAM,YAAY,GAAG,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC;oBAC9C,IAAI,YAAY,KAAK,SAAS,EAAE;wBAC5B,OAAO,EAAE,CAAC,OAAO,CAAC,gBAAgB,CAAC,YAAY,CAAC,CAAC;qBACpD;oBAED,OAAO,IAAI,CAAC;iBACf;gBAED,OAAO,EAAE,CAAC,cAAc,CAAC,IAAI,EAAE,OAAO,EAAE,OAAO,CAAC,CAAC;YACrD,CAAC,CAAC;YAEF,OAAO,EAAE,CAAC,SAAS,CAAC,UAAU,EAAE,OAAO,CAAC,CAAC;QAC7C,CAAC,CAAC;IACN,CAAC,CAAC;AACN,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@simplysm/sd-cli",
3
- "version": "10.0.36",
3
+ "version": "10.0.39",
4
4
  "description": "심플리즘 패키지 - CLI",
5
5
  "author": "김석래",
6
6
  "repository": {
@@ -11,25 +11,40 @@
11
11
  "license": "MIT",
12
12
  "bin": "./dist/sd-cli.js",
13
13
  "type": "module",
14
+ "main": "./dist/index.js",
15
+ "types": "./dist/index.d.ts",
14
16
  "engines": {
15
17
  "node": "^18"
16
18
  },
17
19
  "dependencies": {
18
- "@simplysm/sd-core-common": "10.0.36",
19
- "@simplysm/sd-core-node": "10.0.36",
20
- "@simplysm/sd-service-server": "10.0.36",
21
- "@vitejs/plugin-react": "^4.0.3",
22
- "esbuild": "^0.18.11",
23
- "eslint": "^8.44.0",
24
- "rollup": "^3.26.2",
20
+ "@electron/rebuild": "^3.2.13",
21
+ "@rollup/plugin-inject": "^5.0.3",
22
+ "@simplysm/sd-core-common": "10.0.39",
23
+ "@simplysm/sd-core-node": "10.0.39",
24
+ "@simplysm/sd-service-server": "10.0.39",
25
+ "@vitejs/plugin-react-swc": "^3.3.2",
26
+ "electron": "^25.4.0",
27
+ "electron-builder": "^24.6.3",
28
+ "esbuild": "^0.18.20",
29
+ "esbuild-plugin-tsc": "^0.4.0",
30
+ "eslint": "^8.46.0",
31
+ "less": "^4.2.0",
32
+ "lib-esm": "^0.4.1",
33
+ "node-stdlib-browser": "^1.2.0",
34
+ "rollup": "^3.27.2",
25
35
  "semver": "^7.5.4",
36
+ "ts-transformer-keys": "^0.4.4",
26
37
  "typescript": "^4.9.5",
27
- "vite": "^4.4.2",
38
+ "vite": "^4.4.9",
39
+ "vite-plugin-electron": "^0.13.0-beta.1",
40
+ "vite-plugin-electron-renderer": "^0.14.5",
41
+ "vite-plugin-pwa": "^0.16.4",
28
42
  "vite-tsconfig-paths": "^4.2.0",
29
43
  "yargs": "^17.7.2"
30
44
  },
31
45
  "devDependencies": {
32
- "@types/eslint": "^8.44.0",
46
+ "@types/eslint": "^8.44.2",
47
+ "@types/less": "^3.0.3",
33
48
  "@types/yargs": "^17.0.24"
34
49
  }
35
50
  }
package/src/SdLinter.ts CHANGED
@@ -1,5 +1,5 @@
1
- import { ISdCliPackageBuildResult } from "./commons";
2
- import { ESLint } from "eslint";
1
+ import {ISdCliPackageBuildResult} from "./commons";
2
+ import {ESLint} from "eslint";
3
3
  import ts from "typescript";
4
4
 
5
5
  export class SdLinter {