@simplysm/sd-cli 7.0.247 → 7.0.263

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 (110) hide show
  1. package/README.md +48 -0
  2. package/dist/bin/sd-cli.mjs +171 -13
  3. package/dist/build-tool/SdCliElectron.mjs +3 -2
  4. package/dist/builder/SdCliClientBuilder.mjs +33 -35
  5. package/dist/builder/SdCliServerBuilder.d.ts +1 -0
  6. package/dist/builder/SdCliServerBuilder.mjs +58 -22
  7. package/dist/builder/SdCliTsLibBuilder.mjs +18 -12
  8. package/dist/commons.d.ts +9 -1
  9. package/dist/entry-points/SdCliProjectGenerator.d.ts +37 -0
  10. package/dist/entry-points/SdCliProjectGenerator.mjs +288 -0
  11. package/dist/entry-points/SdCliWorkspace.d.ts +6 -3
  12. package/dist/entry-points/SdCliWorkspace.mjs +147 -120
  13. package/dist/entry-points/file/base/fc_package_eslintrc.d.ts +3 -0
  14. package/dist/entry-points/file/base/fc_package_eslintrc.mjs +31 -0
  15. package/dist/entry-points/file/base/fc_package_npmconfig.d.ts +9 -0
  16. package/dist/entry-points/file/base/fc_package_npmconfig.mjs +32 -0
  17. package/dist/entry-points/file/base/fc_package_tsconfig.d.ts +4 -0
  18. package/dist/entry-points/file/base/fc_package_tsconfig.mjs +12 -0
  19. package/dist/entry-points/file/client/fc_package_AppModule.d.ts +1 -0
  20. package/dist/entry-points/file/client/fc_package_AppModule.mjs +37 -0
  21. package/dist/entry-points/file/client/fc_package_AppPage.d.ts +1 -0
  22. package/dist/entry-points/file/client/fc_package_AppPage.mjs +34 -0
  23. package/dist/entry-points/file/client/fc_package_appicons.d.ts +1 -0
  24. package/dist/entry-points/file/client/fc_package_appicons.mjs +6 -0
  25. package/dist/entry-points/file/client/fc_package_client_main.d.ts +1 -0
  26. package/dist/entry-points/file/client/fc_package_client_main.mjs +19 -0
  27. package/dist/entry-points/file/client/fc_package_index.d.ts +3 -0
  28. package/dist/entry-points/file/client/fc_package_index.mjs +88 -0
  29. package/dist/entry-points/file/client/fc_package_manifest.d.ts +5 -0
  30. package/dist/entry-points/file/client/fc_package_manifest.mjs +54 -0
  31. package/dist/entry-points/file/client/fc_package_polyfills.d.ts +1 -0
  32. package/dist/entry-points/file/client/fc_package_polyfills.mjs +11 -0
  33. package/dist/entry-points/file/client/fc_package_styles.d.ts +1 -0
  34. package/dist/entry-points/file/client/fc_package_styles.mjs +7 -0
  35. package/dist/entry-points/file/db/fc_package_DbContext.d.ts +3 -0
  36. package/dist/entry-points/file/db/fc_package_DbContext.mjs +14 -0
  37. package/dist/entry-points/file/db/fc_package_DbModel.d.ts +4 -0
  38. package/dist/entry-points/file/db/fc_package_DbModel.mjs +12 -0
  39. package/dist/entry-points/file/project/fc_project_editor_config.d.ts +1 -0
  40. package/dist/entry-points/file/project/fc_project_editor_config.mjs +22 -0
  41. package/dist/entry-points/file/project/fc_project_eslintrc.d.ts +1 -0
  42. package/dist/entry-points/file/project/fc_project_eslintrc.mjs +30 -0
  43. package/dist/entry-points/file/project/fc_project_gitattributes.d.ts +1 -0
  44. package/dist/entry-points/file/project/fc_project_gitattributes.mjs +6 -0
  45. package/dist/entry-points/file/project/fc_project_gitignore.d.ts +1 -0
  46. package/dist/entry-points/file/project/fc_project_gitignore.mjs +17 -0
  47. package/dist/entry-points/file/project/fc_project_npmconfig.d.ts +7 -0
  48. package/dist/entry-points/file/project/fc_project_npmconfig.mjs +35 -0
  49. package/dist/entry-points/file/project/fc_project_readme.d.ts +3 -0
  50. package/dist/entry-points/file/project/fc_project_readme.mjs +12 -0
  51. package/dist/entry-points/file/project/fc_project_simplysm.d.ts +1 -0
  52. package/dist/entry-points/file/project/fc_project_simplysm.mjs +2 -0
  53. package/dist/entry-points/file/project/fc_project_tsconfig.d.ts +1 -0
  54. package/dist/entry-points/file/project/fc_project_tsconfig.mjs +26 -0
  55. package/dist/entry-points/file/server/fc_package_server_main.d.ts +4 -0
  56. package/dist/entry-points/file/server/fc_package_server_main.mjs +60 -0
  57. package/dist/index.d.ts +23 -0
  58. package/dist/index.mjs +24 -1
  59. package/dist/packages/SdCliPackage.d.ts +1 -0
  60. package/dist/packages/SdCliPackage.mjs +68 -62
  61. package/dist/utils/SdCliBuildResultUtil.mjs +2 -2
  62. package/dist/worker/server-worker.d.ts +1 -0
  63. package/dist/worker/server-worker.mjs +67 -0
  64. package/package.json +10 -8
  65. package/src/bin/sd-cli.ts +198 -12
  66. package/src/build-tool/SdCliElectron.ts +2 -1
  67. package/src/builder/SdCliClientBuilder.ts +36 -36
  68. package/src/builder/SdCliJsLibBuilder.ts +70 -70
  69. package/src/builder/SdCliServerBuilder.ts +58 -20
  70. package/src/builder/SdCliTsLibBuilder.ts +450 -445
  71. package/src/commons.ts +7 -1
  72. package/src/entry-points/SdCliProjectGenerator.ts +353 -0
  73. package/src/entry-points/SdCliWorkspace.ts +171 -137
  74. package/src/entry-points/file/assets/assets/icons/icon-128x128.png +0 -0
  75. package/src/entry-points/file/assets/assets/icons/icon-144x144.png +0 -0
  76. package/src/entry-points/file/assets/assets/icons/icon-152x152.png +0 -0
  77. package/src/entry-points/file/assets/assets/icons/icon-192x192.png +0 -0
  78. package/src/entry-points/file/assets/assets/icons/icon-384x384.png +0 -0
  79. package/src/entry-points/file/assets/assets/icons/icon-512x512.png +0 -0
  80. package/src/entry-points/file/assets/assets/icons/icon-72x72.png +0 -0
  81. package/src/entry-points/file/assets/assets/icons/icon-96x96.png +0 -0
  82. package/src/entry-points/file/assets/favicon.ico +0 -0
  83. package/src/entry-points/file/base/fc_package_eslintrc.ts +30 -0
  84. package/src/entry-points/file/base/fc_package_npmconfig.ts +43 -0
  85. package/src/entry-points/file/base/fc_package_tsconfig.ts +11 -0
  86. package/src/entry-points/file/client/fc_package_AppModule.ts +36 -0
  87. package/src/entry-points/file/client/fc_package_AppPage.ts +33 -0
  88. package/src/entry-points/file/client/fc_package_appicons.ts +5 -0
  89. package/src/entry-points/file/client/fc_package_client_main.ts +18 -0
  90. package/src/entry-points/file/client/fc_package_index.ts +87 -0
  91. package/src/entry-points/file/client/fc_package_manifest.ts +53 -0
  92. package/src/entry-points/file/client/fc_package_polyfills.ts +10 -0
  93. package/src/entry-points/file/client/fc_package_styles.ts +6 -0
  94. package/src/entry-points/file/db/fc_package_DbContext.ts +14 -0
  95. package/src/entry-points/file/db/fc_package_DbModel.ts +11 -0
  96. package/src/entry-points/file/project/fc_project_editor_config.ts +21 -0
  97. package/src/entry-points/file/project/fc_project_eslintrc.ts +29 -0
  98. package/src/entry-points/file/project/fc_project_gitattributes.ts +5 -0
  99. package/src/entry-points/file/project/fc_project_gitignore.ts +16 -0
  100. package/src/entry-points/file/project/fc_project_npmconfig.ts +34 -0
  101. package/src/entry-points/file/project/fc_project_readme.ts +11 -0
  102. package/src/entry-points/file/project/fc_project_simplysm.ts +1 -0
  103. package/src/entry-points/file/project/fc_project_tsconfig.ts +25 -0
  104. package/src/entry-points/file/server/fc_package_server_main.ts +62 -0
  105. package/src/index.ts +23 -0
  106. package/src/packages/SdCliPackage.ts +75 -58
  107. package/src/utils/SdCliBuildResultUtil.ts +76 -76
  108. package/src/worker/server-worker.ts +72 -0
  109. package/tsconfig-build.json +2 -1
  110. package/tsconfig.json +2 -1
@@ -110,6 +110,9 @@ export class SdCliServerBuilder extends EventEmitter {
110
110
  // pm2.json 파일 쓰기
111
111
  await this._writeDistPm2ConfigFileAsync();
112
112
 
113
+ // iis web.config 파일 쓰기
114
+ await this._writeDistIisConfigFileAsync();
115
+
113
116
  // 배포용 package.json 파일 생성
114
117
  await this._writeDistNpmConfigFileAsync(extModules.filter((item) => item.exists).map((item) => item.name));
115
118
 
@@ -134,8 +137,9 @@ export class SdCliServerBuilder extends EventEmitter {
134
137
  ObjectUtil.merge(
135
138
  {
136
139
  "name": npmConfig.name.replace(/@/g, "").replace(/\//g, "-"),
137
- "script": path.basename(path.resolve(this._parsedTsconfig.options.outDir!, "main.mjs")),
138
- "node_args": "--experimental-specifier-resolution=node --experimental-import-meta-resolve",
140
+ "script": path.basename(path.resolve(this._parsedTsconfig.options.outDir!, "main.js")),
141
+ // "script": path.basename(path.resolve(this._parsedTsconfig.options.outDir!, "main.mjs")),
142
+ // "node_args": "--experimental-specifier-resolution=node --experimental-import-meta-resolve",
139
143
  "watch": true,
140
144
  "watch_delay": 2000,
141
145
  "ignore_watch": [
@@ -152,7 +156,8 @@ export class SdCliServerBuilder extends EventEmitter {
152
156
  },
153
157
  (typeof this._config.pm2 !== "boolean") ? this._config.pm2 : {},
154
158
  {
155
- arrayProcess: "concat"
159
+ arrayProcess: "concat",
160
+ useDelTargetNull: true
156
161
  }),
157
162
  undefined,
158
163
  2
@@ -160,6 +165,37 @@ export class SdCliServerBuilder extends EventEmitter {
160
165
  );
161
166
  }
162
167
 
168
+ private async _writeDistIisConfigFileAsync(): Promise<void> {
169
+ if (this._config.iis === undefined || this._config.iis === false) return;
170
+
171
+ const iisDistPath = path.resolve(this._parsedTsconfig.options.outDir!, "web.config");
172
+ const serverExeFilePath = (this._config.iis !== true && "serverExeFilePath" in this._config.iis)
173
+ ? (this._config.iis.serverExeFilePath ?? "C:\\Program Files\\nodejs\\node.exe")
174
+ : "C:\\Program Files\\nodejs\\node.exe";
175
+ await FsUtil.writeFileAsync(iisDistPath, `
176
+ <configuration>
177
+ <system.webServer>
178
+ <handlers>
179
+ <add name="iisnode" path="main.js" verb="*" modules="iisnode" />
180
+ </handlers>
181
+ <iisnode nodeProcessCommandLine="${serverExeFilePath}"
182
+ watchedFiles="web.config;*.js"
183
+ loggingEnabled="true"
184
+ devErrorsEnabled="true" />
185
+ <rewrite>
186
+ <rules>
187
+ <rule name="main">
188
+ <action type="Rewrite" url="main.js" />
189
+ </rule>
190
+ </rules>
191
+ </rewrite>
192
+ <httpErrors errorMode="Detailed" />
193
+ </system.webServer>
194
+ </configuration>
195
+
196
+ `.trim());
197
+ }
198
+
163
199
  private async _writeDistNpmConfigFileAsync(deps: string[]): Promise<void> {
164
200
  const distNpmConfig = ObjectUtil.clone(this._getNpmConfig(this._rootPath))!;
165
201
  distNpmConfig.dependencies = {};
@@ -207,6 +243,7 @@ export class SdCliServerBuilder extends EventEmitter {
207
243
  mode: watch ? "development" : "production",
208
244
  devtool: false,
209
245
  target: ["node", "es2020"],
246
+ // target: ["node", "es2020"],
210
247
  profile: false,
211
248
  resolve: {
212
249
  roots: [this._rootPath],
@@ -230,23 +267,27 @@ export class SdCliServerBuilder extends EventEmitter {
230
267
  hashFunction: "xxhash64",
231
268
  clean: true,
232
269
  path: this._parsedTsconfig.options.outDir,
233
- filename: "[name].mjs",
234
- chunkFilename: "[name].mjs",
270
+ filename: "[name].js",
271
+ chunkFilename: "[name].js",
272
+ // filename: "[name].mjs",
273
+ // chunkFilename: "[name].mjs",
235
274
  assetModuleFilename: "res/[name][ext][query]",
236
- library: {
237
- type: "module"
238
- },
239
- module: true
275
+ libraryTarget: "commonjs2"
276
+ // library: {
277
+ // type: "module"
278
+ // },
279
+ // module: true
240
280
  },
241
- experiments: {
281
+ /*experiments: {
242
282
  outputModule: true
243
- },
283
+ },*/
244
284
  watch: false,
245
285
  watchOptions: { poll: undefined, ignored: undefined },
246
286
  performance: { hints: false },
247
287
  infrastructureLogging: { level: "error" },
248
288
  stats: "errors-warnings",
249
- externals: extModules.toObject((item) => item.name, (item) => "node-commonjs " + item.name),
289
+ externals: extModules.toObject((item) => item.name, (item) => "commonjs2 " + item.name),
290
+ // externals: extModules.toObject((item) => item.name, (item) => "node-commonjs " + item.name),
250
291
  cache: {
251
292
  type: "filesystem",
252
293
  profile: watch ? undefined : false,
@@ -259,13 +300,10 @@ export class SdCliServerBuilder extends EventEmitter {
259
300
  .update(watch.toString())
260
301
  .digest("hex")
261
302
  },
262
- // cache: { type: "memory", maxGenerations: 1 },
263
- ...watch ? {
264
- snapshot: {
265
- immutablePaths: internalModuleCachePaths,
266
- managedPaths: internalModuleCachePaths
267
- }
268
- } : {},
303
+ snapshot: {
304
+ immutablePaths: internalModuleCachePaths,
305
+ managedPaths: internalModuleCachePaths
306
+ },
269
307
  node: false,
270
308
  optimization: {
271
309
  minimizer: watch ? [] : [
@@ -279,7 +317,7 @@ export class SdCliServerBuilder extends EventEmitter {
279
317
  keep_fnames: true,
280
318
  ie8: false,
281
319
  safari10: false,
282
- module: true,
320
+ // module: true,
283
321
  format: {
284
322
  comments: false
285
323
  }