@simplysm/sd-cli 7.3.4 → 10.0.21

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 (468) hide show
  1. package/.eslintrc.cjs +18 -0
  2. package/dist/SdLinter.d.ts +5 -0
  3. package/dist/SdLinter.js.map +1 -0
  4. package/dist/SdLinter.mjs +37 -0
  5. package/dist/SdTsIncrementalBuilder.d.ts +16 -0
  6. package/dist/SdTsIncrementalBuilder.js.map +1 -0
  7. package/dist/SdTsIncrementalBuilder.mjs +54 -0
  8. package/dist/build-cluster.js.map +1 -0
  9. package/dist/build-cluster.mjs +124 -0
  10. package/dist/builders/SdCliClientBuilder.d.ts +13 -0
  11. package/dist/builders/SdCliClientBuilder.js.map +1 -0
  12. package/dist/builders/SdCliClientBuilder.mjs +167 -0
  13. package/dist/builders/SdCliJsLibLinter.d.ts +14 -0
  14. package/dist/builders/SdCliJsLibLinter.js.map +1 -0
  15. package/dist/builders/SdCliJsLibLinter.mjs +60 -0
  16. package/dist/builders/SdCliServerBuilder.d.ts +14 -0
  17. package/dist/builders/SdCliServerBuilder.js.map +1 -0
  18. package/dist/builders/SdCliServerBuilder.mjs +171 -0
  19. package/dist/builders/SdCliTsLibBuilder.d.ts +13 -0
  20. package/dist/builders/SdCliTsLibBuilder.js.map +1 -0
  21. package/dist/builders/SdCliTsLibBuilder.mjs +75 -0
  22. package/dist/commons.d.ts +20 -110
  23. package/dist/commons.js.map +1 -0
  24. package/dist/commons.mjs +1 -1
  25. package/dist/entry/SdCliProject.d.ts +29 -0
  26. package/dist/entry/SdCliProject.js.map +1 -0
  27. package/dist/entry/SdCliProject.mjs +353 -0
  28. package/dist/sd-cli.js.map +1 -0
  29. package/dist/sd-cli.mjs +119 -0
  30. package/dist/sd-core-common/src/decorators/NotifyPropertyChange.d.ts +20 -0
  31. package/dist/sd-core-common/src/decorators/NotifyPropertyChange.js.map +1 -0
  32. package/dist/sd-core-common/src/decorators/NotifyPropertyChange.mjs +12 -0
  33. package/dist/sd-core-common/src/decorators/PropertyGetSetDecoratorBase.d.ts +43 -0
  34. package/dist/sd-core-common/src/decorators/PropertyGetSetDecoratorBase.js.map +1 -0
  35. package/dist/sd-core-common/src/decorators/PropertyGetSetDecoratorBase.mjs +54 -0
  36. package/dist/sd-core-common/src/decorators/PropertyValidate.d.ts +16 -0
  37. package/dist/sd-core-common/src/decorators/PropertyValidate.js.map +1 -0
  38. package/dist/sd-core-common/src/decorators/PropertyValidate.mjs +26 -0
  39. package/dist/sd-core-common/src/decorators/decorator-return-types.d.ts +14 -0
  40. package/dist/sd-core-common/src/decorators/decorator-return-types.js.map +1 -0
  41. package/dist/sd-core-common/src/decorators/decorator-return-types.mjs +2 -0
  42. package/dist/sd-core-common/src/errors/ArgumentError.d.ts +10 -0
  43. package/dist/sd-core-common/src/errors/ArgumentError.js.map +1 -0
  44. package/dist/sd-core-common/src/errors/ArgumentError.mjs +13 -0
  45. package/dist/sd-core-common/src/errors/NeverEntryError.d.ts +10 -0
  46. package/dist/sd-core-common/src/errors/NeverEntryError.js.map +1 -0
  47. package/dist/sd-core-common/src/errors/NeverEntryError.mjs +13 -0
  48. package/dist/sd-core-common/src/errors/NotImplementError.d.ts +10 -0
  49. package/dist/sd-core-common/src/errors/NotImplementError.js.map +1 -0
  50. package/dist/sd-core-common/src/errors/NotImplementError.mjs +13 -0
  51. package/dist/sd-core-common/src/errors/SdError.d.ts +23 -0
  52. package/dist/sd-core-common/src/errors/SdError.js.map +1 -0
  53. package/dist/sd-core-common/src/errors/SdError.mjs +40 -0
  54. package/dist/sd-core-common/src/errors/TimeoutError.d.ts +11 -0
  55. package/dist/sd-core-common/src/errors/TimeoutError.js.map +1 -0
  56. package/dist/sd-core-common/src/errors/TimeoutError.mjs +16 -0
  57. package/dist/sd-core-common/src/extensions/ArrayExtension.d.ts +147 -0
  58. package/dist/sd-core-common/src/extensions/ArrayExtension.js.map +1 -0
  59. package/dist/sd-core-common/src/extensions/ArrayExtension.mjs +448 -0
  60. package/dist/sd-core-common/src/extensions/MapExtension.d.ts +4 -0
  61. package/dist/sd-core-common/src/extensions/MapExtension.js.map +1 -0
  62. package/dist/sd-core-common/src/extensions/MapExtension.mjs +15 -0
  63. package/dist/sd-core-common/src/extensions/SetExtension.d.ts +3 -0
  64. package/dist/sd-core-common/src/extensions/SetExtension.js.map +1 -0
  65. package/dist/sd-core-common/src/extensions/SetExtension.mjs +10 -0
  66. package/dist/sd-core-common/src/index.d.ts +32 -0
  67. package/dist/sd-core-common/src/index.js.map +1 -0
  68. package/dist/sd-core-common/src/index.mjs +33 -0
  69. package/dist/sd-core-common/src/types/DateOnly.d.ts +135 -0
  70. package/dist/sd-core-common/src/types/DateOnly.js.map +1 -0
  71. package/dist/sd-core-common/src/types/DateOnly.mjs +220 -0
  72. package/dist/sd-core-common/src/types/DateTime.d.ts +42 -0
  73. package/dist/sd-core-common/src/types/DateTime.js.map +1 -0
  74. package/dist/sd-core-common/src/types/DateTime.mjs +156 -0
  75. package/dist/sd-core-common/src/types/DeepPartial.d.ts +3 -0
  76. package/dist/sd-core-common/src/types/DeepPartial.js.map +1 -0
  77. package/dist/sd-core-common/src/types/DeepPartial.mjs +2 -0
  78. package/dist/sd-core-common/src/types/ObjectSet.d.ts +4 -0
  79. package/dist/sd-core-common/src/types/ObjectSet.js.map +1 -0
  80. package/dist/sd-core-common/src/types/ObjectSet.mjs +18 -0
  81. package/dist/sd-core-common/src/types/Time.d.ts +27 -0
  82. package/dist/sd-core-common/src/types/Time.js.map +1 -0
  83. package/dist/sd-core-common/src/types/Time.mjs +108 -0
  84. package/dist/sd-core-common/src/types/Type.d.ts +7 -0
  85. package/dist/sd-core-common/src/types/Type.js.map +1 -0
  86. package/dist/sd-core-common/src/types/Type.mjs +2 -0
  87. package/dist/sd-core-common/src/types/UnwrappedType.d.ts +1 -0
  88. package/dist/sd-core-common/src/types/UnwrappedType.js.map +1 -0
  89. package/dist/sd-core-common/src/types/UnwrappedType.mjs +2 -0
  90. package/dist/sd-core-common/src/types/Uuid.d.ts +8 -0
  91. package/dist/sd-core-common/src/types/Uuid.js.map +1 -0
  92. package/dist/sd-core-common/src/types/Uuid.mjs +26 -0
  93. package/dist/sd-core-common/src/types/WrappedType.d.ts +1 -0
  94. package/dist/sd-core-common/src/types/WrappedType.js.map +1 -0
  95. package/dist/sd-core-common/src/types/WrappedType.mjs +2 -0
  96. package/dist/sd-core-common/src/utils/DateTimeFormatUtil.d.ts +12 -0
  97. package/dist/sd-core-common/src/utils/DateTimeFormatUtil.js.map +1 -0
  98. package/dist/sd-core-common/src/utils/DateTimeFormatUtil.mjs +67 -0
  99. package/dist/sd-core-common/src/utils/FunctionQueue.d.ts +8 -0
  100. package/dist/sd-core-common/src/utils/FunctionQueue.js.map +1 -0
  101. package/dist/sd-core-common/src/utils/FunctionQueue.mjs +46 -0
  102. package/dist/sd-core-common/src/utils/FunctionUtil.d.ts +6 -0
  103. package/dist/sd-core-common/src/utils/FunctionUtil.js.map +1 -0
  104. package/dist/sd-core-common/src/utils/FunctionUtil.mjs +31 -0
  105. package/dist/sd-core-common/src/utils/JsonConvert.d.ts +8 -0
  106. package/dist/sd-core-common/src/utils/JsonConvert.js.map +1 -0
  107. package/dist/sd-core-common/src/utils/JsonConvert.mjs +78 -0
  108. package/dist/sd-core-common/src/utils/MathUtil.d.ts +3 -0
  109. package/dist/sd-core-common/src/utils/MathUtil.js.map +1 -0
  110. package/dist/sd-core-common/src/utils/MathUtil.mjs +6 -0
  111. package/dist/sd-core-common/src/utils/NumberUtil.d.ts +6 -0
  112. package/dist/sd-core-common/src/utils/NumberUtil.js.map +1 -0
  113. package/dist/sd-core-common/src/utils/NumberUtil.mjs +32 -0
  114. package/dist/sd-core-common/src/utils/ObjectUtil.d.ts +80 -0
  115. package/dist/sd-core-common/src/utils/ObjectUtil.js.map +1 -0
  116. package/dist/sd-core-common/src/utils/ObjectUtil.mjs +452 -0
  117. package/dist/sd-core-common/src/utils/SdSyncEventEmitter.d.ts +6 -0
  118. package/dist/sd-core-common/src/utils/SdSyncEventEmitter.js.map +1 -0
  119. package/dist/sd-core-common/src/utils/SdSyncEventEmitter.mjs +27 -0
  120. package/dist/sd-core-common/src/utils/StringUtil.d.ts +8 -0
  121. package/dist/sd-core-common/src/utils/StringUtil.js.map +1 -0
  122. package/dist/sd-core-common/src/utils/StringUtil.mjs +77 -0
  123. package/dist/sd-core-common/src/utils/Wait.d.ts +4 -0
  124. package/dist/sd-core-common/src/utils/Wait.js.map +1 -0
  125. package/dist/sd-core-common/src/utils/Wait.mjs +23 -0
  126. package/dist/sd-core-node/src/index.d.ts +6 -0
  127. package/dist/sd-core-node/src/index.js.map +1 -0
  128. package/dist/sd-core-node/src/index.mjs +7 -0
  129. package/dist/sd-core-node/src/utils/FsUtil.d.ts +44 -0
  130. package/dist/sd-core-node/src/utils/FsUtil.js.map +1 -0
  131. package/dist/sd-core-node/src/utils/FsUtil.mjs +493 -0
  132. package/dist/sd-core-node/src/utils/Logger.d.ts +91 -0
  133. package/dist/sd-core-node/src/utils/Logger.js.map +1 -0
  134. package/dist/sd-core-node/src/utils/Logger.mjs +185 -0
  135. package/dist/sd-core-node/src/utils/PathUtil.d.ts +6 -0
  136. package/dist/sd-core-node/src/utils/PathUtil.js.map +1 -0
  137. package/dist/sd-core-node/src/utils/PathUtil.mjs +24 -0
  138. package/dist/sd-core-node/src/utils/SdFsWatcher.d.ts +15 -0
  139. package/dist/sd-core-node/src/utils/SdFsWatcher.js.map +1 -0
  140. package/dist/sd-core-node/src/utils/SdFsWatcher.mjs +43 -0
  141. package/dist/sd-core-node/src/utils/SdProcess.d.ts +5 -0
  142. package/dist/sd-core-node/src/utils/SdProcess.js.map +1 -0
  143. package/dist/sd-core-node/src/utils/SdProcess.mjs +36 -0
  144. package/dist/sd-orm-common/src/CaseQueryHelper.d.ts +12 -0
  145. package/dist/sd-orm-common/src/CaseQueryHelper.js.map +1 -0
  146. package/dist/sd-orm-common/src/CaseQueryHelper.mjs +19 -0
  147. package/dist/sd-orm-common/src/CaseWhenQueryHelper.d.ts +12 -0
  148. package/dist/sd-orm-common/src/CaseWhenQueryHelper.js.map +1 -0
  149. package/dist/sd-orm-common/src/CaseWhenQueryHelper.mjs +20 -0
  150. package/dist/sd-orm-common/src/DbContext.d.ts +81 -0
  151. package/dist/sd-orm-common/src/DbContext.js.map +1 -0
  152. package/dist/sd-orm-common/src/DbContext.mjs +635 -0
  153. package/dist/sd-orm-common/src/IDbConnection.d.ts +15 -0
  154. package/dist/sd-orm-common/src/IDbConnection.js.map +1 -0
  155. package/dist/sd-orm-common/src/IDbConnection.mjs +2 -0
  156. package/dist/sd-orm-common/src/IDbContextExecutor.d.ts +17 -0
  157. package/dist/sd-orm-common/src/IDbContextExecutor.js.map +1 -0
  158. package/dist/sd-orm-common/src/IDbContextExecutor.mjs +2 -0
  159. package/dist/sd-orm-common/src/IDbMigration.d.ts +4 -0
  160. package/dist/sd-orm-common/src/IDbMigration.js.map +1 -0
  161. package/dist/sd-orm-common/src/IDbMigration.mjs +2 -0
  162. package/dist/sd-orm-common/src/QueryBuilder.d.ts +48 -0
  163. package/dist/sd-orm-common/src/QueryBuilder.js.map +1 -0
  164. package/dist/sd-orm-common/src/QueryBuilder.mjs +1022 -0
  165. package/dist/sd-orm-common/src/QueryHelper.d.ts +75 -0
  166. package/dist/sd-orm-common/src/QueryHelper.js.map +1 -0
  167. package/dist/sd-orm-common/src/QueryHelper.mjs +627 -0
  168. package/dist/sd-orm-common/src/QueryUnit.d.ts +10 -0
  169. package/dist/sd-orm-common/src/QueryUnit.js.map +1 -0
  170. package/dist/sd-orm-common/src/QueryUnit.mjs +16 -0
  171. package/dist/sd-orm-common/src/Queryable.d.ts +105 -0
  172. package/dist/sd-orm-common/src/Queryable.js.map +1 -0
  173. package/dist/sd-orm-common/src/Queryable.mjs +1375 -0
  174. package/dist/sd-orm-common/src/SdOrmDataType.d.ts +21 -0
  175. package/dist/sd-orm-common/src/SdOrmDataType.js.map +1 -0
  176. package/dist/sd-orm-common/src/SdOrmDataType.mjs +2 -0
  177. package/dist/sd-orm-common/src/commons.d.ts +400 -0
  178. package/dist/sd-orm-common/src/commons.js.map +1 -0
  179. package/dist/sd-orm-common/src/commons.mjs +8 -0
  180. package/dist/sd-orm-common/src/decorators.d.ts +29 -0
  181. package/dist/sd-orm-common/src/decorators.js.map +1 -0
  182. package/dist/sd-orm-common/src/decorators.mjs +89 -0
  183. package/dist/sd-orm-common/src/index.d.ts +17 -0
  184. package/dist/sd-orm-common/src/index.js.map +1 -0
  185. package/dist/sd-orm-common/src/index.mjs +18 -0
  186. package/dist/sd-orm-common/src/models/SystemMigration.d.ts +3 -0
  187. package/dist/sd-orm-common/src/models/SystemMigration.js.map +1 -0
  188. package/dist/sd-orm-common/src/models/SystemMigration.mjs +13 -0
  189. package/dist/sd-orm-common/src/utils/DbDefinitionUtil.d.ts +14 -0
  190. package/dist/sd-orm-common/src/utils/DbDefinitionUtil.js.map +1 -0
  191. package/dist/sd-orm-common/src/utils/DbDefinitionUtil.mjs +66 -0
  192. package/dist/sd-orm-common/src/utils/SdOrmUtil.d.ts +8 -0
  193. package/dist/sd-orm-common/src/utils/SdOrmUtil.js.map +1 -0
  194. package/dist/sd-orm-common/src/utils/SdOrmUtil.mjs +248 -0
  195. package/dist/sd-orm-node/src/DbConnectionFactory.d.ts +4 -0
  196. package/dist/sd-orm-node/src/DbConnectionFactory.js.map +1 -0
  197. package/dist/sd-orm-node/src/DbConnectionFactory.mjs +17 -0
  198. package/dist/sd-orm-node/src/NodeDbContextExecutor.d.ts +19 -0
  199. package/dist/sd-orm-node/src/NodeDbContextExecutor.js.map +1 -0
  200. package/dist/sd-orm-node/src/NodeDbContextExecutor.mjs +71 -0
  201. package/dist/sd-orm-node/src/SdOrm.d.ts +10 -0
  202. package/dist/sd-orm-node/src/SdOrm.js.map +1 -0
  203. package/dist/sd-orm-node/src/SdOrm.mjs +25 -0
  204. package/dist/sd-orm-node/src/index.d.ts +4 -0
  205. package/dist/sd-orm-node/src/index.js.map +1 -0
  206. package/dist/sd-orm-node/src/index.mjs +5 -0
  207. package/dist/sd-orm-node-mssql/src/MssqlDbConnection.d.ts +25 -0
  208. package/dist/sd-orm-node-mssql/src/MssqlDbConnection.js.map +1 -0
  209. package/dist/sd-orm-node-mssql/src/MssqlDbConnection.mjs +321 -0
  210. package/dist/sd-orm-node-mssql/src/index.d.ts +2 -0
  211. package/dist/sd-orm-node-mssql/src/index.js.map +1 -0
  212. package/dist/sd-orm-node-mssql/src/index.mjs +3 -0
  213. package/dist/sd-orm-node-mysql/src/MysqlDbConnection.d.ts +22 -0
  214. package/dist/sd-orm-node-mysql/src/MysqlDbConnection.js.map +1 -0
  215. package/dist/sd-orm-node-mysql/src/MysqlDbConnection.mjs +200 -0
  216. package/dist/sd-orm-node-mysql/src/index.d.ts +2 -0
  217. package/dist/sd-orm-node-mysql/src/index.js.map +1 -0
  218. package/dist/sd-orm-node-mysql/src/index.mjs +3 -0
  219. package/dist/sd-orm-node-sqlite/src/SqliteDbConnection.d.ts +22 -0
  220. package/dist/sd-orm-node-sqlite/src/SqliteDbConnection.js.map +1 -0
  221. package/dist/sd-orm-node-sqlite/src/SqliteDbConnection.mjs +172 -0
  222. package/dist/sd-orm-node-sqlite/src/index.d.ts +2 -0
  223. package/dist/sd-orm-node-sqlite/src/index.js.map +1 -0
  224. package/dist/sd-orm-node-sqlite/src/index.mjs +3 -0
  225. package/dist/sd-service-common/src/commons-orm.d.ts +4 -0
  226. package/dist/sd-service-common/src/commons-orm.js.map +1 -0
  227. package/dist/sd-service-common/src/commons-orm.mjs +2 -0
  228. package/dist/sd-service-common/src/commons-smtp.d.ts +29 -0
  229. package/dist/sd-service-common/src/commons-smtp.js.map +1 -0
  230. package/dist/sd-service-common/src/commons-smtp.mjs +2 -0
  231. package/dist/sd-service-common/src/commons.d.ts +57 -0
  232. package/dist/sd-service-common/src/commons.js.map +1 -0
  233. package/dist/sd-service-common/src/commons.mjs +3 -0
  234. package/dist/sd-service-common/src/index.d.ts +3 -0
  235. package/dist/sd-service-common/src/index.js.map +1 -0
  236. package/dist/sd-service-common/src/index.mjs +4 -0
  237. package/dist/sd-service-server/src/ApiServiceError.d.ts +12 -0
  238. package/dist/sd-service-server/src/ApiServiceError.js.map +1 -0
  239. package/dist/sd-service-server/src/ApiServiceError.mjs +15 -0
  240. package/dist/sd-service-server/src/SdServiceServer.d.ts +39 -0
  241. package/dist/sd-service-server/src/SdServiceServer.js.map +1 -0
  242. package/dist/sd-service-server/src/SdServiceServer.mjs +513 -0
  243. package/dist/sd-service-server/src/commons.d.ts +23 -0
  244. package/dist/sd-service-server/src/commons.js.map +1 -0
  245. package/dist/sd-service-server/src/commons.mjs +3 -0
  246. package/dist/sd-service-server/src/index.d.ts +8 -0
  247. package/dist/sd-service-server/src/index.js.map +1 -0
  248. package/dist/sd-service-server/src/index.mjs +9 -0
  249. package/dist/sd-service-server/src/services/SdAutoUpdateService.d.ts +4 -0
  250. package/dist/sd-service-server/src/services/SdAutoUpdateService.js.map +1 -0
  251. package/dist/sd-service-server/src/services/SdAutoUpdateService.mjs +20 -0
  252. package/dist/sd-service-server/src/services/SdCryptoService.d.ts +7 -0
  253. package/dist/sd-service-server/src/services/SdCryptoService.js.map +1 -0
  254. package/dist/sd-service-server/src/services/SdCryptoService.mjs +39 -0
  255. package/dist/sd-service-server/src/services/SdOrmService.d.ts +22 -0
  256. package/dist/sd-service-server/src/services/SdOrmService.js.map +1 -0
  257. package/dist/sd-service-server/src/services/SdOrmService.mjs +115 -0
  258. package/dist/sd-service-server/src/services/SdSmtpClientService.d.ts +6 -0
  259. package/dist/sd-service-server/src/services/SdSmtpClientService.js.map +1 -0
  260. package/dist/sd-service-server/src/services/SdSmtpClientService.mjs +44 -0
  261. package/dist/sd-service-server/src/utils/SdServiceServerConfigUtil.d.ts +4 -0
  262. package/dist/sd-service-server/src/utils/SdServiceServerConfigUtil.js.map +1 -0
  263. package/dist/sd-service-server/src/utils/SdServiceServerConfigUtil.mjs +36 -0
  264. package/dist/server-worker.d.ts +1 -0
  265. package/dist/server-worker.js.map +1 -0
  266. package/dist/server-worker.mjs +36 -0
  267. package/dist/utils/SdCliBuildResultUtil.d.ts +1 -4
  268. package/dist/utils/SdCliBuildResultUtil.js.map +1 -0
  269. package/dist/utils/SdCliBuildResultUtil.mjs +3 -29
  270. package/dist/utils/SdCliConfigUtil.js.map +1 -0
  271. package/dist/utils/SdCliConfigUtil.mjs +1 -1
  272. package/package.json +14 -56
  273. package/src/SdLinter.ts +41 -0
  274. package/src/SdTsIncrementalBuilder.ts +75 -0
  275. package/src/build-cluster.ts +133 -0
  276. package/src/builders/SdCliClientBuilder.ts +189 -0
  277. package/src/builders/SdCliJsLibLinter.ts +72 -0
  278. package/src/builders/SdCliServerBuilder.ts +191 -0
  279. package/src/builders/SdCliTsLibBuilder.ts +96 -0
  280. package/src/commons.ts +21 -112
  281. package/src/entry/SdCliProject.ts +467 -0
  282. package/src/sd-cli.ts +136 -0
  283. package/src/server-worker.ts +45 -0
  284. package/src/utils/SdCliBuildResultUtil.ts +5 -38
  285. package/tsconfig.json +9 -0
  286. package/README.md +0 -105
  287. package/assets/client-files/assets/icons/icon-128x128.png +0 -0
  288. package/assets/client-files/assets/icons/icon-144x144.png +0 -0
  289. package/assets/client-files/assets/icons/icon-152x152.png +0 -0
  290. package/assets/client-files/assets/icons/icon-192x192.png +0 -0
  291. package/assets/client-files/assets/icons/icon-384x384.png +0 -0
  292. package/assets/client-files/assets/icons/icon-512x512.png +0 -0
  293. package/assets/client-files/assets/icons/icon-72x72.png +0 -0
  294. package/assets/client-files/assets/icons/icon-96x96.png +0 -0
  295. package/assets/client-files/favicon.ico +0 -0
  296. package/dist/SdCliBuildResultError.d.ts +0 -5
  297. package/dist/SdCliBuildResultError.mjs +0 -8
  298. package/dist/bin/sd-cli.d.ts +0 -2
  299. package/dist/bin/sd-cli.mjs +0 -410
  300. package/dist/build-tool/SdCliCacheCompilerHost.d.ts +0 -10
  301. package/dist/build-tool/SdCliCacheCompilerHost.mjs +0 -51
  302. package/dist/build-tool/SdCliCordova.d.ts +0 -16
  303. package/dist/build-tool/SdCliCordova.mjs +0 -212
  304. package/dist/build-tool/SdCliElectron.d.ts +0 -9
  305. package/dist/build-tool/SdCliElectron.mjs +0 -72
  306. package/dist/build-tool/SdCliGithubApi.d.ts +0 -13
  307. package/dist/build-tool/SdCliGithubApi.mjs +0 -92
  308. package/dist/build-tool/SdCliIndexFileGenerator.d.ts +0 -13
  309. package/dist/build-tool/SdCliIndexFileGenerator.mjs +0 -62
  310. package/dist/build-tool/SdCliNgCacheCompilerHost.d.ts +0 -12
  311. package/dist/build-tool/SdCliNgCacheCompilerHost.mjs +0 -43
  312. package/dist/build-tool/SdCliPackageLinter.d.ts +0 -8
  313. package/dist/build-tool/SdCliPackageLinter.mjs +0 -62
  314. package/dist/builder/SdCliClientBuilder.d.ts +0 -26
  315. package/dist/builder/SdCliClientBuilder.mjs +0 -769
  316. package/dist/builder/SdCliJsLibBuilder.d.ts +0 -14
  317. package/dist/builder/SdCliJsLibBuilder.mjs +0 -54
  318. package/dist/builder/SdCliServerBuilder.d.ts +0 -28
  319. package/dist/builder/SdCliServerBuilder.mjs +0 -482
  320. package/dist/builder/SdCliTsLibBuilder.d.ts +0 -35
  321. package/dist/builder/SdCliTsLibBuilder.mjs +0 -317
  322. package/dist/entry-points/SdCliFileCrypto.d.ts +0 -7
  323. package/dist/entry-points/SdCliFileCrypto.mjs +0 -72
  324. package/dist/entry-points/SdCliLocalUpdate.d.ts +0 -13
  325. package/dist/entry-points/SdCliLocalUpdate.mjs +0 -100
  326. package/dist/entry-points/SdCliPrepare.d.ts +0 -5
  327. package/dist/entry-points/SdCliPrepare.mjs +0 -86
  328. package/dist/entry-points/SdCliProject.d.ts +0 -34
  329. package/dist/entry-points/SdCliProject.mjs +0 -416
  330. package/dist/entry-points/SdCliProjectGenerator.d.ts +0 -44
  331. package/dist/entry-points/SdCliProjectGenerator.mjs +0 -326
  332. package/dist/entry-points/file/base/fc_package_eslintrc.d.ts +0 -3
  333. package/dist/entry-points/file/base/fc_package_eslintrc.mjs +0 -31
  334. package/dist/entry-points/file/base/fc_package_npmconfig.d.ts +0 -9
  335. package/dist/entry-points/file/base/fc_package_npmconfig.mjs +0 -32
  336. package/dist/entry-points/file/base/fc_package_tsconfig.d.ts +0 -5
  337. package/dist/entry-points/file/base/fc_package_tsconfig.mjs +0 -13
  338. package/dist/entry-points/file/client/fc_package_AppModule.d.ts +0 -1
  339. package/dist/entry-points/file/client/fc_package_AppModule.mjs +0 -37
  340. package/dist/entry-points/file/client/fc_package_AppPage.d.ts +0 -1
  341. package/dist/entry-points/file/client/fc_package_AppPage.mjs +0 -14
  342. package/dist/entry-points/file/client/fc_package_Page.d.ts +0 -4
  343. package/dist/entry-points/file/client/fc_package_Page.mjs +0 -19
  344. package/dist/entry-points/file/client/fc_package_client_main.d.ts +0 -1
  345. package/dist/entry-points/file/client/fc_package_client_main.mjs +0 -19
  346. package/dist/entry-points/file/client/fc_package_index.d.ts +0 -3
  347. package/dist/entry-points/file/client/fc_package_index.mjs +0 -88
  348. package/dist/entry-points/file/client/fc_package_manifest.d.ts +0 -5
  349. package/dist/entry-points/file/client/fc_package_manifest.mjs +0 -54
  350. package/dist/entry-points/file/client/fc_package_polyfills.d.ts +0 -1
  351. package/dist/entry-points/file/client/fc_package_polyfills.mjs +0 -11
  352. package/dist/entry-points/file/client/fc_package_styles.d.ts +0 -1
  353. package/dist/entry-points/file/client/fc_package_styles.mjs +0 -7
  354. package/dist/entry-points/file/db/fc_package_DbContext.d.ts +0 -3
  355. package/dist/entry-points/file/db/fc_package_DbContext.mjs +0 -14
  356. package/dist/entry-points/file/db/fc_package_DbModel.d.ts +0 -4
  357. package/dist/entry-points/file/db/fc_package_DbModel.mjs +0 -12
  358. package/dist/entry-points/file/project/fc_project_editor_config.d.ts +0 -1
  359. package/dist/entry-points/file/project/fc_project_editor_config.mjs +0 -22
  360. package/dist/entry-points/file/project/fc_project_eslintrc.d.ts +0 -1
  361. package/dist/entry-points/file/project/fc_project_eslintrc.mjs +0 -30
  362. package/dist/entry-points/file/project/fc_project_gitattributes.d.ts +0 -1
  363. package/dist/entry-points/file/project/fc_project_gitattributes.mjs +0 -6
  364. package/dist/entry-points/file/project/fc_project_gitignore.d.ts +0 -1
  365. package/dist/entry-points/file/project/fc_project_gitignore.mjs +0 -27
  366. package/dist/entry-points/file/project/fc_project_npmconfig.d.ts +0 -7
  367. package/dist/entry-points/file/project/fc_project_npmconfig.mjs +0 -37
  368. package/dist/entry-points/file/project/fc_project_readme.d.ts +0 -3
  369. package/dist/entry-points/file/project/fc_project_readme.mjs +0 -13
  370. package/dist/entry-points/file/project/fc_project_simplysm.d.ts +0 -1
  371. package/dist/entry-points/file/project/fc_project_simplysm.mjs +0 -2
  372. package/dist/entry-points/file/project/fc_project_tsconfig.d.ts +0 -1
  373. package/dist/entry-points/file/project/fc_project_tsconfig.mjs +0 -25
  374. package/dist/entry-points/file/server/fc_package_server_main.d.ts +0 -5
  375. package/dist/entry-points/file/server/fc_package_server_main.mjs +0 -60
  376. package/dist/index.d.ts +0 -54
  377. package/dist/index.mjs +0 -55
  378. package/dist/ng-tools/SdCliNgModuleGenerator.d.ts +0 -29
  379. package/dist/ng-tools/SdCliNgModuleGenerator.mjs +0 -502
  380. package/dist/ng-tools/babel/SdCliBbFileMetadata.d.ts +0 -25
  381. package/dist/ng-tools/babel/SdCliBbFileMetadata.mjs +0 -539
  382. package/dist/ng-tools/babel/SdCliBbRootMetadata.d.ts +0 -23
  383. package/dist/ng-tools/babel/SdCliBbRootMetadata.mjs +0 -247
  384. package/dist/ng-tools/babel/SdCliBbUtil.d.ts +0 -5
  385. package/dist/ng-tools/babel/SdCliBbUtil.mjs +0 -14
  386. package/dist/ng-tools/babel/TSdCliBbNgMetadata.d.ts +0 -42
  387. package/dist/ng-tools/babel/TSdCliBbNgMetadata.mjs +0 -216
  388. package/dist/ng-tools/babel/TSdCliBbTypeMetadata.d.ts +0 -55
  389. package/dist/ng-tools/babel/TSdCliBbTypeMetadata.mjs +0 -151
  390. package/dist/ng-tools/commons.d.ts +0 -9
  391. package/dist/ng-tools/commons.mjs +0 -2
  392. package/dist/ng-tools/typescript/SdCliTsFileMetadata.d.ts +0 -61
  393. package/dist/ng-tools/typescript/SdCliTsFileMetadata.mjs +0 -325
  394. package/dist/ng-tools/typescript/SdCliTsRootMetadata.d.ts +0 -8
  395. package/dist/ng-tools/typescript/SdCliTsRootMetadata.mjs +0 -28
  396. package/dist/ng-tools/typescript/SdCliTsUtil.d.ts +0 -5
  397. package/dist/ng-tools/typescript/SdCliTsUtil.mjs +0 -28
  398. package/dist/packages/SdCliPackage.d.ts +0 -22
  399. package/dist/packages/SdCliPackage.mjs +0 -206
  400. package/dist/utils/SdCliNpmConfigUtil.d.ts +0 -7
  401. package/dist/utils/SdCliNpmConfigUtil.mjs +0 -15
  402. package/dist/worker/build-worker.mjs +0 -67
  403. package/dist/worker/server-worker.mjs +0 -67
  404. package/docs/client-add-page.md +0 -8
  405. package/docs/client-router.md +0 -85
  406. package/docs/client-sw.md +0 -101
  407. package/docs/conf-orm.md +0 -81
  408. package/docs/conf-usage.md +0 -5
  409. package/docs/lib-local-update.md +0 -50
  410. package/docs/lib-ts-paths.md +0 -25
  411. package/lib/cordova-entry.js +0 -22
  412. package/src/SdCliBuildResultError.ts +0 -9
  413. package/src/bin/sd-cli.ts +0 -493
  414. package/src/build-tool/SdCliCacheCompilerHost.ts +0 -79
  415. package/src/build-tool/SdCliCordova.ts +0 -263
  416. package/src/build-tool/SdCliElectron.ts +0 -85
  417. package/src/build-tool/SdCliGithubApi.ts +0 -111
  418. package/src/build-tool/SdCliIndexFileGenerator.ts +0 -79
  419. package/src/build-tool/SdCliNgCacheCompilerHost.ts +0 -58
  420. package/src/build-tool/SdCliPackageLinter.ts +0 -74
  421. package/src/builder/SdCliClientBuilder.ts +0 -879
  422. package/src/builder/SdCliJsLibBuilder.ts +0 -70
  423. package/src/builder/SdCliServerBuilder.ts +0 -552
  424. package/src/builder/SdCliTsLibBuilder.ts +0 -450
  425. package/src/entry-points/SdCliFileCrypto.ts +0 -87
  426. package/src/entry-points/SdCliLocalUpdate.ts +0 -121
  427. package/src/entry-points/SdCliPrepare.ts +0 -86
  428. package/src/entry-points/SdCliProject.ts +0 -491
  429. package/src/entry-points/SdCliProjectGenerator.ts +0 -402
  430. package/src/entry-points/file/base/fc_package_eslintrc.ts +0 -30
  431. package/src/entry-points/file/base/fc_package_npmconfig.ts +0 -43
  432. package/src/entry-points/file/base/fc_package_tsconfig.ts +0 -12
  433. package/src/entry-points/file/client/fc_package_AppModule.ts +0 -36
  434. package/src/entry-points/file/client/fc_package_AppPage.ts +0 -13
  435. package/src/entry-points/file/client/fc_package_Page.ts +0 -19
  436. package/src/entry-points/file/client/fc_package_client_main.ts +0 -18
  437. package/src/entry-points/file/client/fc_package_index.ts +0 -87
  438. package/src/entry-points/file/client/fc_package_manifest.ts +0 -53
  439. package/src/entry-points/file/client/fc_package_polyfills.ts +0 -10
  440. package/src/entry-points/file/client/fc_package_styles.ts +0 -6
  441. package/src/entry-points/file/db/fc_package_DbContext.ts +0 -14
  442. package/src/entry-points/file/db/fc_package_DbModel.ts +0 -11
  443. package/src/entry-points/file/project/fc_project_editor_config.ts +0 -21
  444. package/src/entry-points/file/project/fc_project_eslintrc.ts +0 -29
  445. package/src/entry-points/file/project/fc_project_gitattributes.ts +0 -5
  446. package/src/entry-points/file/project/fc_project_gitignore.ts +0 -26
  447. package/src/entry-points/file/project/fc_project_npmconfig.ts +0 -36
  448. package/src/entry-points/file/project/fc_project_readme.ts +0 -12
  449. package/src/entry-points/file/project/fc_project_simplysm.ts +0 -1
  450. package/src/entry-points/file/project/fc_project_tsconfig.ts +0 -24
  451. package/src/entry-points/file/server/fc_package_server_main.ts +0 -62
  452. package/src/index.ts +0 -54
  453. package/src/ng-tools/SdCliNgModuleGenerator.ts +0 -672
  454. package/src/ng-tools/babel/SdCliBbFileMetadata.ts +0 -629
  455. package/src/ng-tools/babel/SdCliBbRootMetadata.ts +0 -292
  456. package/src/ng-tools/babel/SdCliBbUtil.ts +0 -15
  457. package/src/ng-tools/babel/TSdCliBbNgMetadata.ts +0 -251
  458. package/src/ng-tools/babel/TSdCliBbTypeMetadata.ts +0 -212
  459. package/src/ng-tools/commons.ts +0 -3
  460. package/src/ng-tools/typescript/SdCliTsFileMetadata.ts +0 -384
  461. package/src/ng-tools/typescript/SdCliTsRootMetadata.ts +0 -32
  462. package/src/ng-tools/typescript/SdCliTsUtil.ts +0 -29
  463. package/src/packages/SdCliPackage.ts +0 -259
  464. package/src/utils/SdCliNpmConfigUtil.ts +0 -16
  465. package/src/worker/build-worker.ts +0 -73
  466. package/src/worker/server-worker.ts +0 -72
  467. /package/dist/{worker/build-worker.d.ts → build-cluster.d.ts} +0 -0
  468. /package/dist/{worker/server-worker.d.ts → sd-cli.d.ts} +0 -0
@@ -1,70 +0,0 @@
1
- import { ISdCliPackageBuildResult } from "../commons";
2
- import { EventEmitter } from "events";
3
- import { FsUtil, Logger, SdFsWatcher } from "@simplysm/sd-core-node";
4
- import path from "path";
5
- import { SdCliPackageLinter } from "../build-tool/SdCliPackageLinter";
6
-
7
- export class SdCliJsLibBuilder extends EventEmitter {
8
- private readonly _logger = Logger.get(["simplysm", "sd-cli", this.constructor.name]);
9
-
10
- private readonly _linter: SdCliPackageLinter;
11
-
12
- public constructor(private readonly _rootPath: string) {
13
- super();
14
- this._linter = new SdCliPackageLinter(this._rootPath);
15
- }
16
-
17
- public override on(event: "change", listener: () => void): this;
18
- public override on(event: "complete", listener: (results: ISdCliPackageBuildResult[]) => void): this;
19
- public override on(event: string | symbol, listener: (...args: any[]) => void): this {
20
- return super.on(event, listener);
21
- }
22
-
23
- public async watchAsync(): Promise<void> {
24
- this.emit("change");
25
-
26
- const relatedPaths = await this.getRelatedPathsAsync();
27
- const watcher = SdFsWatcher.watch(relatedPaths);
28
- watcher.onChange({}, async (changedInfos) => {
29
- const changeFilePaths = changedInfos.filter((item) => ["add", "change", "unlink"].includes(item.event)).map((item) => item.path);
30
- if (changeFilePaths.length === 0) return;
31
-
32
- this._logger.debug("파일 변경 감지");
33
- this.emit("change");
34
- const watchBuildResults: ISdCliPackageBuildResult[] = [];
35
-
36
- const lintFilePaths = changedInfos.filter((item) => ["add", "change"].includes(item.event)).map((item) => item.path);
37
- if (lintFilePaths.length > 0) {
38
- watchBuildResults.push(...await this._linter.lintAsync(lintFilePaths));
39
- }
40
-
41
- const watchRelatedPaths = await this.getRelatedPathsAsync();
42
- watcher.add(watchRelatedPaths);
43
-
44
- this.emit("complete", watchBuildResults);
45
- });
46
-
47
- // 빌드
48
- const buildResults = await this._linter.lintAsync(relatedPaths);
49
-
50
- this.emit("complete", buildResults);
51
- }
52
-
53
- public async buildAsync(): Promise<ISdCliPackageBuildResult[]> {
54
- const relatedPaths = await this.getRelatedPathsAsync();
55
- return await this._linter.lintAsync(relatedPaths);
56
- }
57
-
58
- private async getRelatedPathsAsync(): Promise<string[]> {
59
- const mySourceGlobPath = path.resolve(this._rootPath, "**", "+(*.js|*.cjs|*.mjs)");
60
- const mySourceFilePaths = await FsUtil.globAsync(mySourceGlobPath, {
61
- ignore: [
62
- "**/node_modules/**",
63
- "**/dist/**",
64
- "**/.*/**"
65
- ]
66
- });
67
-
68
- return [...mySourceFilePaths, path.resolve(this._rootPath, ".eslintrc.cjs")].distinct();
69
- }
70
- }
@@ -1,552 +0,0 @@
1
- import { INpmConfig, ISdCliPackageBuildResult, ISdCliServerPackageConfig, ITsconfig } from "../commons";
2
- import { EventEmitter } from "events";
3
- import { FsUtil, Logger, PathUtil } from "@simplysm/sd-core-node";
4
- import webpack from "webpack";
5
- import path from "path";
6
- import ts from "typescript";
7
- import { SdCliBuildResultUtil } from "../utils/SdCliBuildResultUtil";
8
- import { ErrorInfo } from "ts-loader/dist/interfaces";
9
- import os from "os";
10
- import { ESLint } from "eslint";
11
- import TerserPlugin from "terser-webpack-plugin";
12
- import { ObjectUtil, StringUtil } from "@simplysm/sd-core-common";
13
- import ESLintWebpackPlugin from "eslint-webpack-plugin";
14
- import CopyWebpackPlugin from "copy-webpack-plugin";
15
- import { LicenseWebpackPlugin } from "license-webpack-plugin";
16
- import { SdCliNpmConfigUtil } from "../utils/SdCliNpmConfigUtil";
17
- import { createHash } from "crypto";
18
- import { fileURLToPath } from "url";
19
- import LintResult = ESLint.LintResult;
20
-
21
- export class SdCliServerBuilder extends EventEmitter {
22
- private readonly _logger = Logger.get(["simplysm", "sd-cli", this.constructor.name]);
23
-
24
- private readonly _tsconfigFilePath: string;
25
- private readonly _tsconfig: ITsconfig;
26
- private readonly _parsedTsconfig: ts.ParsedCommandLine;
27
- private readonly _npmConfigMap = new Map<string, INpmConfig>();
28
-
29
- private readonly _cacheBasePath = path.resolve(this._rootPath, ".cache");
30
-
31
- public constructor(private readonly _rootPath: string,
32
- private readonly _config: ISdCliServerPackageConfig,
33
- private readonly _projRootPath: string) {
34
- super();
35
-
36
- // tsconfig
37
- this._tsconfigFilePath = path.resolve(this._rootPath, "tsconfig-build.json");
38
- this._tsconfig = FsUtil.readJson(this._tsconfigFilePath);
39
- this._parsedTsconfig = ts.parseJsonConfigFileContent(this._tsconfig, ts.sys, this._rootPath);
40
- }
41
-
42
- public override on(event: "change", listener: () => void): this;
43
- public override on(event: "complete", listener: (results: ISdCliPackageBuildResult[]) => void): this;
44
- public override on(event: string | symbol, listener: (...args: any[]) => void): this {
45
- return super.on(event, listener);
46
- }
47
-
48
- private async _checkCacheAsync(watch: boolean): Promise<void> {
49
- const projPkgLockContent = await FsUtil.readFileAsync(path.resolve(this._projRootPath, "yarn.lock"));
50
-
51
- // const cachePath = path.resolve(cacheBasePath, pkgVersion);
52
-
53
- const versionHash = createHash("sha1")
54
- .update(projPkgLockContent)
55
- .update(JSON.stringify(this._parsedTsconfig.options))
56
- .update(JSON.stringify(this._config))
57
- .update(watch.toString())
58
- .digest("hex");
59
- if (
60
- !FsUtil.exists(path.resolve(this._cacheBasePath, "version")) // 버전파일이 없거나
61
- || (
62
- FsUtil.exists(path.resolve(this._cacheBasePath, "version")) &&
63
- await FsUtil.readFileAsync(path.resolve(this._cacheBasePath, "version")) !== versionHash
64
- ) // 버전이 현재 버전과 다르면
65
- ) {
66
- // 캐시 삭제
67
- await FsUtil.removeAsync(path.resolve(this._cacheBasePath));
68
- }
69
- // 버전쓰기
70
- await FsUtil.writeFileAsync(path.resolve(this._cacheBasePath, "version"), versionHash);
71
- }
72
-
73
- public async watchAsync(): Promise<void> {
74
- // DIST 비우기
75
- await FsUtil.removeAsync(this._parsedTsconfig.options.outDir!);
76
-
77
- // 캐시체크
78
- await this._checkCacheAsync(true);
79
-
80
- // 빌드 준비
81
- const extModules = this._getExternalModules();
82
- const webpackConfig = await this._getWebpackConfigAsync(true, extModules);
83
- const compiler = webpack(webpackConfig);
84
- await new Promise<void>((resolve, reject) => {
85
- compiler.hooks.watchRun.tapAsync(this.constructor.name, (args, callback) => {
86
- this.emit("change");
87
- this._logger.debug("Webpack 빌드 수행...");
88
- callback();
89
- });
90
-
91
- compiler.watch({}, async (err, stats) => {
92
- if (err != null || stats == null) {
93
- this.emit("complete", [{
94
- filePath: undefined,
95
- line: undefined,
96
- char: undefined,
97
- code: undefined,
98
- severity: "error",
99
- message: err?.stack ?? "알 수 없는 오류 (stats=null)"
100
- }]);
101
- reject(err);
102
- return;
103
- }
104
-
105
- // .config.json 파일 쓰기
106
- await this._writeDistConfigFileAsync();
107
-
108
- // 결과 반환
109
- this._logger.debug("Webpack 빌드 완료");
110
- const results = SdCliBuildResultUtil.convertFromWebpackStats(stats);
111
- this.emit("complete", results);
112
- resolve();
113
- });
114
- });
115
- }
116
-
117
- public async buildAsync(): Promise<ISdCliPackageBuildResult[]> {
118
- // DIST 비우기
119
- await FsUtil.removeAsync(this._parsedTsconfig.options.outDir!);
120
-
121
- // 빌드
122
- this._logger.debug("Webpack 빌드 수행...");
123
- const extModules = this._getExternalModules();
124
- const webpackConfig = await this._getWebpackConfigAsync(false, extModules);
125
- const compiler = webpack(webpackConfig);
126
- const buildResults = await new Promise<ISdCliPackageBuildResult[]>((resolve, reject) => {
127
- compiler.run((err, stats) => {
128
- if (err != null || stats == null) {
129
- reject(err);
130
- return;
131
- }
132
-
133
- // 결과 반환
134
- const results = SdCliBuildResultUtil.convertFromWebpackStats(stats);
135
- resolve(results);
136
- });
137
- });
138
-
139
- // .config.json 파일 쓰기
140
- await this._writeDistConfigFileAsync();
141
-
142
- // pm2.json 파일 쓰기
143
- await this._writeDistPm2ConfigFileAsync();
144
-
145
- // iis web.config 파일 쓰기
146
- await this._writeDistIisConfigFileAsync();
147
-
148
- // 배포용 package.json 파일 생성
149
- await this._writeDistNpmConfigFileAsync(extModules.filter((item) => item.exists).map((item) => item.name));
150
-
151
- // 마무리
152
- this._logger.debug("Webpack 빌드 완료");
153
- return buildResults;
154
- }
155
-
156
- private async _writeDistConfigFileAsync(): Promise<void> {
157
- const configDistPath = path.resolve(this._parsedTsconfig.options.outDir!, ".config.json");
158
- await FsUtil.writeFileAsync(configDistPath, JSON.stringify(this._config.configs ?? {}, undefined, 2));
159
- }
160
-
161
- private async _writeDistPm2ConfigFileAsync(): Promise<void> {
162
- if (this._config.pm2 === undefined || this._config.pm2 === false) return;
163
-
164
- const npmConfig = this._getNpmConfig(this._rootPath)!;
165
- const pm2DistPath = path.resolve(this._parsedTsconfig.options.outDir!, typeof this._config.pm2 !== "boolean" ? this._config.pm2.fileName ?? "pm2.json" : "pm2.json");
166
- await FsUtil.writeFileAsync(
167
- pm2DistPath,
168
- JSON.stringify(
169
- ObjectUtil.merge(
170
- {
171
- "name": npmConfig.name.replace(/@/g, "").replace(/\//g, "-"),
172
- "script": path.basename(path.resolve(this._parsedTsconfig.options.outDir!, "main.js")),
173
- "node_args": "--max-old-space-size=8192",
174
- // "script": path.basename(path.resolve(this._parsedTsconfig.options.outDir!, "main.mjs")),
175
- // "node_args": "--experimental-specifier-resolution=node --experimental-import-meta-resolve",
176
- "watch": true,
177
- "watch_delay": 2000,
178
- "ignore_watch": [
179
- "node_modules",
180
- "www"
181
- ].distinct(),
182
- ...typeof this._config.pm2 !== "boolean" && this._config.pm2.noInterpreter ? {} : {
183
- "interpreter": "node@" + process.versions.node,
184
- },
185
- "env": {
186
- NODE_ENV: "production",
187
- SD_VERSION: npmConfig.version,
188
- TZ: "Asia/Seoul",
189
- ...this._config.env ? this._config.env : {}
190
- }
191
- },
192
- (typeof this._config.pm2 !== "boolean") ? this._config.pm2.config : {},
193
- {
194
- arrayProcess: "concat",
195
- useDelTargetNull: true
196
- }),
197
- undefined,
198
- 2
199
- )
200
- );
201
- }
202
-
203
- private async _writeDistIisConfigFileAsync(): Promise<void> {
204
- if (this._config.iis === undefined || this._config.iis === false) return;
205
-
206
- const iisDistPath = path.resolve(this._parsedTsconfig.options.outDir!, "web.config");
207
- const serverExeFilePath = (this._config.iis !== true && "serverExeFilePath" in this._config.iis)
208
- ? (this._config.iis.serverExeFilePath ?? "C:\\Program Files\\nodejs\\node.exe")
209
- : "C:\\Program Files\\nodejs\\node.exe";
210
- await FsUtil.writeFileAsync(iisDistPath, `
211
- <configuration>
212
- <system.webServer>
213
- <handlers>
214
- <add name="iisnode" path="main.js" verb="*" modules="iisnode" />
215
- </handlers>
216
- <iisnode nodeProcessCommandLine="${serverExeFilePath}"
217
- watchedFiles="web.config;*.js"
218
- loggingEnabled="true"
219
- devErrorsEnabled="true" />
220
- <rewrite>
221
- <rules>
222
- <rule name="main">
223
- <action type="Rewrite" url="main.js" />
224
- </rule>
225
- </rules>
226
- </rewrite>
227
- <httpErrors errorMode="Detailed" />
228
- </system.webServer>
229
- </configuration>
230
-
231
- `.trim());
232
- }
233
-
234
- private async _writeDistNpmConfigFileAsync(deps: string[]): Promise<void> {
235
- const distNpmConfig = ObjectUtil.clone(this._getNpmConfig(this._rootPath))!;
236
- distNpmConfig.dependencies = {};
237
- for (const dep of deps) {
238
- distNpmConfig.dependencies[dep] = "*";
239
- }
240
- delete distNpmConfig.optionalDependencies;
241
- delete distNpmConfig.devDependencies;
242
- delete distNpmConfig.peerDependencies;
243
-
244
- if (this._config.pm2 !== undefined && (typeof this._config.pm2 === "boolean" || !this._config.pm2.noStartScript)) {
245
- distNpmConfig.scripts = { "start": "pm2 start pm2.json" };
246
- }
247
-
248
- await FsUtil.writeFileAsync(
249
- path.resolve(this._parsedTsconfig.options.outDir!, "package.json"),
250
- JSON.stringify(distNpmConfig, undefined, 2)
251
- );
252
- }
253
-
254
- private _getInternalModuleCachePaths(projName: string): string[] {
255
- return [
256
- ...FsUtil.findAllParentChildDirPaths("node_modules/*/package.json", this._rootPath, this._projRootPath),
257
- ...FsUtil.findAllParentChildDirPaths(`node_modules/!(@simplysm|@${projName})/*/package.json`, this._rootPath, this._projRootPath),
258
- ].map((p) => path.dirname(p));
259
- }
260
-
261
- private async _getWebpackConfigAsync(watch: boolean, extModules: { name: string; exists: boolean }[]): Promise<webpack.Configuration> {
262
- const projNpmConfig = this._getNpmConfig(this._projRootPath)!;
263
- const projName = projNpmConfig.name;
264
-
265
- const internalModuleCachePaths = watch ? this._getInternalModuleCachePaths(projName) : undefined;
266
-
267
- const npmConfig = this._getNpmConfig(this._rootPath)!;
268
- const pkgKey = npmConfig.name.split("/").last()!;
269
- // const pkgVersion = npmConfig.version;
270
-
271
- const entries: Record<string, [string]> = {
272
- main: [path.resolve(this._rootPath, "src/main.ts")]
273
- };
274
- if (this._tsconfig.files) {
275
- for (const entryFileRelPath of this._tsconfig.files) {
276
- const entryFileBaseName = entryFileRelPath.slice(4, -path.extname(entryFileRelPath).length);
277
- entries[entryFileBaseName] = [path.resolve(this._rootPath, entryFileRelPath)];
278
- }
279
- }
280
-
281
- let prevProgressMessage = "";
282
- return {
283
- mode: watch ? "development" : "production",
284
- devtool: false,
285
- target: ["node", "es2020"],
286
- profile: false,
287
- resolve: {
288
- roots: [this._rootPath],
289
- extensions: [".ts", ".js", ".mjs", ".cjs"],
290
- symlinks: true,
291
- modules: [this._projRootPath, "node_modules"],
292
- mainFields: ["es2020", "default", "module", "main"],
293
- conditionNames: ["es2020", "..."]
294
- },
295
- resolveLoader: {
296
- symlinks: true
297
- },
298
- context: this._projRootPath,
299
- entry: entries,
300
- output: {
301
- uniqueName: pkgKey,
302
- hashFunction: "xxhash64",
303
- clean: true,
304
- path: this._parsedTsconfig.options.outDir,
305
- filename: "[name].js",
306
- chunkFilename: "[name].js",
307
- // filename: "[name].mjs",
308
- // chunkFilename: "[name].mjs",
309
- assetModuleFilename: "res/[name][ext][query]",
310
- libraryTarget: "commonjs2"
311
- // library: {
312
- // type: "module"
313
- // },
314
- // module: true
315
- },
316
- /*experiments: {
317
- outputModule: true
318
- },*/
319
- watch: false,
320
- watchOptions: { poll: undefined, ignored: undefined },
321
- performance: { hints: false },
322
- infrastructureLogging: { level: "error" },
323
- stats: "errors-warnings",
324
- externals: extModules.toObject((item) => item.name, (item) => "commonjs2 " + item.name),
325
- // externals: extModules.toObject((item) => item.name, (item) => item.exists ? "commonjs2 " + item.name : `var {name: '${item.name}'}`),
326
- // externals: extModules.toObject((item) => item.name, (item) => "node-commonjs " + item.name),
327
- cache: {
328
- type: "filesystem",
329
- profile: watch ? undefined : false,
330
- cacheDirectory: this._cacheBasePath,
331
- maxMemoryGenerations: 1,
332
- name: "webpack"
333
- },
334
- snapshot: {
335
- immutablePaths: internalModuleCachePaths,
336
- managedPaths: internalModuleCachePaths
337
- },
338
- node: false,
339
- optimization: {
340
- minimizer: watch ? [] : [
341
- new TerserPlugin({
342
- extractComments: false,
343
- terserOptions: {
344
- compress: true,
345
- ecma: 2020,
346
- sourceMap: false,
347
- keep_classnames: true,
348
- keep_fnames: true,
349
- ie8: false,
350
- safari10: false,
351
- // module: true,
352
- format: {
353
- comments: false
354
- }
355
- }
356
- })
357
- ],
358
- moduleIds: "deterministic",
359
- chunkIds: watch ? "named" : "deterministic",
360
- emitOnErrors: watch
361
- },
362
- module: {
363
- strictExportPresence: true,
364
- parser: {
365
- javascript: {
366
- importMeta: false
367
- }
368
- },
369
- rules: [
370
- {
371
- test: /\.[cm]?[tj]sx?$/,
372
- resolve: {
373
- fullySpecified: false
374
- }
375
- },
376
- ...watch ? [
377
- {
378
- test: /\.[cm]?jsx?$/,
379
- enforce: "pre" as const,
380
- loader: fileURLToPath(await import.meta.resolve!("source-map-loader")),
381
- options: {
382
- filterSourceMappingUrl: (mapUri: string, resourcePath: string) => {
383
- const projRegex = new RegExp(`node_modules[\\\\/]@${projName}[\\\\/]`);
384
- return !resourcePath.includes("node_modules")
385
- || (/node_modules[\\/]@simplysm[\\/]/).test(resourcePath)
386
- || projRegex.test(resourcePath);
387
- }
388
- }
389
- }
390
- ] : [],
391
- {
392
- test: /\.[cm]?tsx?$/,
393
- exclude: /node_modules/,
394
- loader: fileURLToPath(await import.meta.resolve!("ts-loader")),
395
- options: {
396
- configFile: this._tsconfigFilePath,
397
- errorFormatter: (msg: ErrorInfo) => {
398
- return SdCliBuildResultUtil.getMessage({
399
- filePath: msg.file,
400
- line: msg.line,
401
- char: msg.character,
402
- code: "TS" + msg.code.toString(),
403
- severity: msg.severity,
404
- message: msg.content
405
- });
406
- }
407
- }
408
- },
409
- {
410
- test: /\.(png|jpe?g|gif|svg|woff|woff2|ttf|eot|ico|otf|csv|xlsx?|pptx?|docx?|zip|pfx|pkl)$/,
411
- type: "asset/resource"
412
- }
413
- ]
414
- },
415
- plugins: [
416
- ...watch ? [] : [
417
- new LicenseWebpackPlugin({
418
- stats: { warnings: false, errors: false },
419
- perChunkOutput: false,
420
- outputFilename: "3rd_party_licenses.txt",
421
- skipChildCompilers: true
422
- }) as any
423
- ],
424
- new CopyWebpackPlugin({
425
- patterns: ["assets/"].map((item) => ({
426
- context: this._rootPath,
427
- to: item,
428
- from: `src/${item}`,
429
- noErrorOnMissing: true,
430
- force: true,
431
- globOptions: {
432
- dot: true,
433
- followSymbolicLinks: false,
434
- ignore: [
435
- ".gitkeep",
436
- "**/.DS_Store",
437
- "**/Thumbs.db"
438
- ].map((i) => PathUtil.posix(this._rootPath, i))
439
- },
440
- priority: 0
441
- }))
442
- }),
443
- new webpack.EnvironmentPlugin({
444
- SD_VERSION: this._getNpmConfig(this._rootPath)!.version,
445
- ...this._config.env
446
- }),
447
- new ESLintWebpackPlugin({
448
- context: this._rootPath,
449
- eslintPath: path.resolve(this._projRootPath, "node_modules", "eslint"),
450
- exclude: ["node_modules"],
451
- extensions: ["ts", "js", "mjs", "cjs"],
452
- fix: false,
453
- threads: false,
454
- lintDirtyModulesOnly: watch,
455
- formatter: (results: LintResult[]) => {
456
- const resultMessages: string[] = [];
457
- for (const result of results) {
458
- for (const msg of result.messages) {
459
- const severity = msg.severity === 1 ? "warning" : msg.severity === 2 ? "error" : undefined;
460
- if (severity === undefined) continue;
461
-
462
- resultMessages.push(SdCliBuildResultUtil.getMessage({
463
- filePath: result.filePath,
464
- line: msg.line,
465
- char: msg.column,
466
- code: msg.ruleId?.toString(),
467
- severity,
468
- message: msg.message
469
- }));
470
- }
471
- }
472
- return resultMessages.join(os.EOL);
473
- }
474
- }),
475
- new webpack.ProgressPlugin({
476
- handler: (per: number, msg: string, ...args: string[]) => {
477
- const phaseText = msg ? ` - phase: ${msg}` : "";
478
- const argsText = args.length > 0 ? ` - args: [${args.join(", ")}]` : "";
479
- const progressMessage = `Webpack 빌드 수행중...(${Math.round(per * 100)}%)${phaseText}${argsText}`;
480
- if (progressMessage !== prevProgressMessage) {
481
- prevProgressMessage = progressMessage;
482
- this._logger.debug(progressMessage);
483
- }
484
- }
485
- })
486
- ]
487
- };
488
- }
489
-
490
- private _getExternalModules(): { name: string; exists: boolean }[] {
491
- const loadedModuleNames: string[] = [];
492
- const results: { name: string; exists: boolean }[] = [];
493
-
494
- const fn = (currPath: string): void => {
495
- const npmConfig = this._getNpmConfig(currPath);
496
- if (!npmConfig) return;
497
-
498
- const deps = SdCliNpmConfigUtil.getDependencies(npmConfig);
499
- for (const moduleName of deps.defaults) {
500
- if (loadedModuleNames.includes(moduleName)) continue;
501
- loadedModuleNames.push(moduleName);
502
-
503
- const modulePath = FsUtil.findAllParentChildDirPaths("node_modules/" + moduleName, currPath, this._projRootPath).first();
504
- if (StringUtil.isNullOrEmpty(modulePath)) {
505
- continue;
506
- }
507
-
508
- if (FsUtil.glob(path.resolve(modulePath, "**/binding.gyp")).length > 0) {
509
- results.push({ name: moduleName, exists: true });
510
- }
511
-
512
- if (this._config.externalNodeModules?.includes(moduleName)) {
513
- results.push({ name: moduleName, exists: true });
514
- }
515
-
516
- fn(modulePath);
517
- }
518
-
519
- for (const optModuleName of deps.optionals) {
520
- if (loadedModuleNames.includes(optModuleName)) continue;
521
- loadedModuleNames.push(optModuleName);
522
-
523
- const optModulePath = FsUtil.findAllParentChildDirPaths("node_modules/" + optModuleName, currPath, this._projRootPath).first();
524
- if (StringUtil.isNullOrEmpty(optModulePath)) {
525
- results.push({ name: optModuleName, exists: false });
526
- continue;
527
- }
528
-
529
- if (FsUtil.glob(path.resolve(optModulePath, "**/binding.gyp")).length > 0) {
530
- results.push({ name: optModuleName, exists: true });
531
- }
532
-
533
- if (this._config.externalNodeModules?.includes(optModuleName)) {
534
- results.push({ name: optModuleName, exists: true });
535
- }
536
-
537
- fn(optModulePath);
538
- }
539
- };
540
-
541
- fn(this._rootPath);
542
-
543
- return results;
544
- }
545
-
546
- private _getNpmConfig(pkgPath: string): INpmConfig | undefined {
547
- if (!this._npmConfigMap.has(pkgPath)) {
548
- this._npmConfigMap.set(pkgPath, FsUtil.readJson(path.resolve(pkgPath, "package.json")));
549
- }
550
- return this._npmConfigMap.get(pkgPath);
551
- }
552
- }