@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,86 +0,0 @@
1
- import { FsUtil, Logger } from "@simplysm/sd-core-node";
2
- import { fileURLToPath } from "url";
3
-
4
- export class SdCliPrepare {
5
- private readonly _logger = Logger.get(["simplysm", "sd-cli", this.constructor.name]);
6
-
7
- public async prepareAsync(): Promise<void> {
8
- // 타입체크 속도 지연 메시지 추가
9
- const r1 = await this._modifyTypescriptCodeForTypeCheckPerformanceWarning();
10
- this._logger.log(`[모듈수정] 타입체크 속도 지연 메시지 추가 (${r1 ? "O" : "X"})`);
11
- }
12
-
13
- private async _modifyTypescriptCodeForTypeCheckPerformanceWarning(): Promise<boolean> {
14
- const fileUrl = await import.meta.resolve!("typescript");
15
- const filePath = fileURLToPath(fileUrl);
16
- const fileContent = await FsUtil.readFileAsync(filePath);
17
- const modifiedFileContent = fileContent.replace(`
18
- function checkSourceElement(node) {
19
- if (node) {
20
- var saveCurrentNode = currentNode;
21
- currentNode = node;
22
- instantiationCount = 0;
23
- checkSourceElementWorker(node);
24
- currentNode = saveCurrentNode;
25
- }
26
- }`, `
27
-
28
- function checkSourceElement(node) {
29
- if (node) {
30
- const prevUsage = process.cpuUsage();
31
-
32
- var saveCurrentNode = currentNode;
33
- currentNode = node;
34
- instantiationCount = 0;
35
- checkSourceElementWorker(node);
36
- currentNode = saveCurrentNode;
37
-
38
- const usage = process.cpuUsage(prevUsage);
39
- const usageMs = Math.round((usage.user + usage.system) / 1000);
40
- node.parent.childrenUsages = [...node.parent.childrenUsages ?? [], {
41
- node,
42
- usageMs,
43
- childrenUsages: node.childrenUsages
44
- }];
45
- if (node.hasChildPerformanceWarning) {
46
- node.parent.hasChildPerformanceWarning = true;
47
- }
48
- else if (usageMs > 1000 && node.kind !== 253) {
49
- const sf = ts.getSourceFileOfNode(node);
50
-
51
- const fn = (children, depth) => {
52
- let result = "";
53
-
54
- const largeChildren = children
55
- .filter((item) => item.usageMs > 50)
56
- .sort((p, n) => p.usageMs > n.usageMs ? -1 : p.usageMs < n.usageMs ? 1 : 0);
57
- for (const child of largeChildren) {
58
- const pos = sf.getLineAndCharacterOfPosition(child.node.getStart());
59
- for(let i = 0 ; i < depth; i++){
60
- result += " ";
61
- }
62
- result += sf.fileName.replace(/\\//g, "\\\\") + "(" + (pos.line + 1) + ", " + (pos.character + 1) + "): " + child.usageMs + "ms/cpu\\n";
63
-
64
- result += fn(child.childrenUsages ?? [], depth + 1);
65
- }
66
-
67
- return result;
68
- };
69
-
70
- const tree = fn(node.childrenUsages ?? [], 1);
71
-
72
- error(node, {
73
- code: 9000,
74
- category: ts.DiagnosticCategory.Warning,
75
- key: "simplysm_check_source_element_performance_slow",
76
- message: ("소스코드 타입분석에 너무 오랜 시간이 소요됩니다. [" + usageMs + "ms/cpu]\\n" + tree).trim()
77
- });
78
-
79
- node.parent.hasChildPerformanceWarning = true;
80
- }
81
- }
82
- }`);
83
- await FsUtil.writeFileAsync(filePath, modifiedFileContent);
84
- return modifiedFileContent.includes("const prevUsage = process.cpuUsage();");
85
- }
86
- }
@@ -1,491 +0,0 @@
1
- import { FsUtil, Logger, SdProcess } from "@simplysm/sd-core-node";
2
- import path from "path";
3
- import { INpmConfig, ISdCliConfig, ISdCliPackageBuildResult } from "../commons";
4
- import { SdCliPackage } from "../packages/SdCliPackage";
5
- import { JsonConvert, Wait } from "@simplysm/sd-core-common";
6
- import os from "os";
7
- import { SdCliBuildResultUtil } from "../utils/SdCliBuildResultUtil";
8
- import semver from "semver/preload";
9
- import { SdCliConfigUtil } from "../utils/SdCliConfigUtil";
10
- import { SdCliLocalUpdate } from "./SdCliLocalUpdate";
11
- import { fileURLToPath } from "url";
12
- import cp from "child_process";
13
-
14
- export class SdCliProject {
15
- private readonly _logger = Logger.get(["simplysm", "sd-cli", this.constructor.name]);
16
-
17
- private readonly _npmConfig: INpmConfig;
18
- private readonly _serverInfoMap = new Map<string, IServerInfo>();
19
-
20
- public constructor(private readonly _rootPath: string) {
21
- const npmConfigFilePath = path.resolve(this._rootPath, "package.json");
22
- this._npmConfig = FsUtil.readJson(npmConfigFilePath);
23
- }
24
-
25
- public async watchAsync(opt: { confFileRelPath: string; optNames: string[]; pkgs: string[] }): Promise<void> {
26
- this._logger.debug("프로젝트 설정 가져오기...");
27
- const config = await SdCliConfigUtil.loadConfigAsync(path.resolve(this._rootPath, opt.confFileRelPath), true, opt.optNames);
28
-
29
- if (config.localUpdates) {
30
- this._logger.debug("로컬 라이브러리 업데이트 변경감지 시작...");
31
- await new SdCliLocalUpdate(this._rootPath).watchAsync({ confFileRelPath: opt.confFileRelPath });
32
- }
33
-
34
- this._logger.debug("패키지 목록 구성...");
35
- const allPkgs = await this._getPackagesAsync(config);
36
- const pkgs = allPkgs.filter((pkg) => opt.pkgs.length === 0 || opt.pkgs.includes(path.basename(pkg.rootPath)));
37
-
38
- this._logger.debug("패키지 이벤트 설정...");
39
- let changeCount = 0;
40
- let changePkgs: SdCliPackage[] = [];
41
- const totalResultMap = new Map<string, ISdCliPackageBuildResult[]>();
42
- for (const pkg of pkgs) {
43
- pkg
44
- .on("change", () => {
45
- if (changeCount === 0) {
46
- this._logger.log("빌드를 시작합니다...");
47
- }
48
- changeCount++;
49
- this._logger.debug(`[${pkg.name}] 빌드를 시작합니다...`);
50
- })
51
- .on("complete", (results) => {
52
- changePkgs.push(pkg);
53
-
54
- this._logger.debug(`[${pkg.name}] 빌드가 완료되었습니다.`);
55
- totalResultMap.set(pkg.name, results);
56
-
57
- setTimeout(async () => {
58
- changeCount--;
59
- if (changeCount === 0) {
60
- const currChangePkgs = [...changePkgs].distinct(true);
61
- changePkgs = [];
62
-
63
- for (const changePkg of currChangePkgs) {
64
- if (changePkg.config.type === "server" && !results.some((item) => item.severity === "error")) {
65
- await this._restartServerAsync(changePkg);
66
- }
67
-
68
- if (changePkg.config.type === "client") {
69
- if (typeof changePkg.config.server === "string") {
70
- const serverInfo = this._serverInfoMap.get(changePkg.config.server);
71
- if (serverInfo) {
72
- await this._sendServerWorkerBroadcastReloadAsync(serverInfo);
73
- }
74
- }
75
- else {
76
- const serverInfo = this._serverInfoMap.get("PORT:" + changePkg.config.server.port);
77
- if (serverInfo) {
78
- await this._sendServerWorkerBroadcastReloadAsync(serverInfo);
79
- }
80
- }
81
- }
82
- }
83
-
84
- this._loggingResults(totalResultMap);
85
- this._loggingOpenClientHrefs();
86
- this._logger.info("모든 빌드가 완료되었습니다.");
87
- }
88
- }, 500);
89
- });
90
- }
91
-
92
-
93
- if (changeCount === 0) {
94
- this._logger.log("빌드를 시작합니다...");
95
- }
96
- changeCount++;
97
-
98
- try {
99
- const pkgNames = pkgs.map((item) => item.name);
100
- const buildCompletedPackageNames: string[] = [];
101
- await pkgs.parallelAsync(async (pkg) => {
102
- await Wait.until(() => !pkg.allDependencies.some((dep) => pkgNames.includes(dep) && !buildCompletedPackageNames.includes(dep)));
103
- if (pkg.config.type === "client") {
104
- await pkg.watchAsync();
105
-
106
- if (typeof pkg.config.server === "string") {
107
- const serverInfo = this._serverInfoMap.getOrCreate(pkg.config.server, { pathProxy: [], clientInfos: [] });
108
-
109
- serverInfo.pathProxy.push({
110
- from: pkg.name.split("/").last()!,
111
- to: path.resolve(pkg.rootPath, "dist")
112
- });
113
- await this._reloadServerWorkerPathProxyAsync(serverInfo);
114
-
115
- serverInfo.clientInfos.push({
116
- pkgKey: pkg.name.split("/").last()!,
117
- platforms: pkg.config.builder ? Object.keys(pkg.config.builder) : ["web"],
118
- cordovaTargets: pkg.config.builder?.cordova?.target ? Object.keys(pkg.config.builder.cordova.target) : ["browser"]
119
- });
120
- }
121
- else { // DEV SERVER
122
- const serverInfo = this._serverInfoMap.getOrCreate("PORT:" + pkg.config.server.port, {
123
- pathProxy: [],
124
- clientInfos: []
125
- });
126
- if (serverInfo.worker === undefined) {
127
- const serverWorkerInfo = await this._runServerWorkerAsync(pkg.config.server);
128
- serverInfo.worker = serverWorkerInfo.worker;
129
- serverInfo.url = serverWorkerInfo.url;
130
-
131
- serverInfo.pathProxy.push({
132
- from: pkg.name.split("/").last()!,
133
- to: path.resolve(pkg.rootPath, "dist")
134
- });
135
- await this._reloadServerWorkerPathProxyAsync(serverInfo);
136
-
137
- serverInfo.clientInfos.push({
138
- pkgKey: pkg.name.split("/").last()!,
139
- platforms: pkg.config.builder ? Object.keys(pkg.config.builder) : ["web"],
140
- cordovaTargets: pkg.config.builder?.cordova?.target ? Object.keys(pkg.config.builder.cordova.target) : ["browser"]
141
- });
142
- }
143
- }
144
- }
145
- else {
146
- await pkg.watchAsync();
147
- }
148
- buildCompletedPackageNames.push(pkg.name);
149
- });
150
- }
151
- catch (err) {
152
- this._loggingResults(totalResultMap);
153
- this._loggingOpenClientHrefs();
154
- throw err;
155
- }
156
-
157
- changeCount--;
158
- if (changeCount === 0) {
159
- this._loggingResults(totalResultMap);
160
- this._loggingOpenClientHrefs();
161
- this._logger.info("모든 빌드가 완료되었습니다.");
162
- }
163
- }
164
-
165
- public async buildAsync(opt: { confFileRelPath: string; optNames: string[]; pkgs: string[] }): Promise<void> {
166
- this._logger.debug("프로젝트 설정 가져오기...");
167
- const config = await SdCliConfigUtil.loadConfigAsync(path.resolve(this._rootPath, opt.confFileRelPath), false, opt.optNames);
168
-
169
- this._logger.debug("패키지 목록 구성...");
170
- const allPkgs = await this._getPackagesAsync(config);
171
- const pkgs = allPkgs.filter((pkg) => opt.pkgs.length === 0 || opt.pkgs.includes(path.basename(pkg.rootPath)));
172
-
173
- this._logger.debug("프로젝트 및 패키지 버전 설정...");
174
- await this._upgradeVersionAsync(allPkgs);
175
-
176
- // 빌드
177
- await this._buildPkgsAsync(pkgs);
178
- }
179
-
180
- public async publishAsync(opt: { noBuild: boolean; confFileRelPath: string; optNames: string[]; pkgs: string[] }): Promise<void> {
181
- this._logger.debug("프로젝트 설정 가져오기...");
182
- const config = await SdCliConfigUtil.loadConfigAsync(path.resolve(this._rootPath, opt.confFileRelPath), false, opt.optNames);
183
-
184
- if (opt.noBuild) {
185
- this._logger.warn("빌드하지 않고, 배포하는것은 상당히 위험합니다.");
186
- await this._waitSecMessageAsync("프로세스를 중지하려면, 'CTRL+C'를 누르세요.", 5);
187
- }
188
-
189
- // GIT 사용중일 경우, 커밋되지 않은 수정사항이 있는지 확인
190
- if (FsUtil.exists(path.resolve(process.cwd(), ".git"))) {
191
- this._logger.debug("GIT 커밋여부 확인...");
192
- const gitStatusResult = await SdProcess.spawnAsync("git status");
193
- if (gitStatusResult.includes("Changes") || gitStatusResult.includes("Untracked")) {
194
- throw new Error("커밋되지 않은 정보가 있습니다.\n" + gitStatusResult);
195
- }
196
- }
197
-
198
- this._logger.debug("패키지 목록 구성...");
199
- const allPkgs = await this._getPackagesAsync(config);
200
- const pkgs = allPkgs.filter((pkg) => opt.pkgs.length === 0 || opt.pkgs.includes(path.basename(pkg.rootPath)));
201
-
202
- this._logger.debug("프로젝트 및 패키지 버전 설정...");
203
- await this._upgradeVersionAsync(allPkgs);
204
-
205
- // 빌드
206
- if (!opt.noBuild) {
207
- // this._logger.debug("노드패키지 업데이트...");
208
- // await new SdCliNpm(this._rootPath).updateAsync();
209
-
210
- this._logger.debug("빌드를 시작합니다...");
211
- await this._buildPkgsAsync(pkgs);
212
- }
213
-
214
- // GIT 사용중일경우, 새 버전 커밋 및 TAG 생성
215
- if (FsUtil.exists(path.resolve(process.cwd(), ".git"))) {
216
- this._logger.debug("새 버전 커밋 및 TAG 생성...");
217
- await SdProcess.spawnAsync("git add .");
218
- await SdProcess.spawnAsync(`git commit -m "v${this._npmConfig.version}"`);
219
- await SdProcess.spawnAsync(`git tag -a "v${this._npmConfig.version}" -m "v${this._npmConfig.version}"`);
220
-
221
- this._logger.debug("새 버전 푸쉬...");
222
- await SdProcess.spawnAsync("git push");
223
- await SdProcess.spawnAsync("git push --tags");
224
- }
225
-
226
- this._logger.debug("배포 시작...");
227
- await pkgs.parallelAsync(async (pkg) => {
228
- if (pkg.config.publish == null) return;
229
-
230
- this._logger.debug(`[${pkg.name}] 배포를 시작합니다...`);
231
- await pkg.publishAsync();
232
- this._logger.debug(`[${pkg.name}] 배포가 완료되었습니다.`);
233
- });
234
- this._logger.info(`모든 배포가 완료되었습니다. (v${this._npmConfig.version})`);
235
- }
236
-
237
- private async _runServerWorkerAsync(filePathOrOpt: string | { port: number }): Promise<{ worker: cp.ChildProcess; url: string }> {
238
- const workerPath = fileURLToPath(await import.meta.resolve!("../worker/server-worker"));
239
- return await new Promise<{ worker: cp.ChildProcess; url: string }>((resolve, reject) => {
240
- const worker = cp.fork(workerPath, [
241
- JsonConvert.stringify(filePathOrOpt)
242
- ], {
243
- stdio: ["pipe", "pipe", "pipe", "ipc"],
244
- env: process.env
245
- });
246
-
247
- worker.on("error", (err) => {
248
- reject(err);
249
- });
250
-
251
- worker.stdout!.pipe(process.stdout);
252
- worker.stderr!.pipe(process.stderr);
253
-
254
- worker.on("message", (url: string) => {
255
- resolve({ worker, url });
256
- });
257
- });
258
- }
259
-
260
- private async _reloadServerWorkerPathProxyAsync(serverInfo: IServerInfo): Promise<void> {
261
- if (!serverInfo.worker) return;
262
-
263
- await new Promise<void>((resolve, reject) => {
264
- serverInfo.worker!.send(JsonConvert.stringify(serverInfo.pathProxy), (err) => {
265
- if (err) {
266
- reject(err);
267
- return;
268
- }
269
- resolve();
270
- });
271
- });
272
- }
273
-
274
- private async _sendServerWorkerBroadcastReloadAsync(serverInfo: IServerInfo): Promise<void> {
275
- if (!serverInfo.worker) return;
276
-
277
- await new Promise<void>((resolve, reject) => {
278
- serverInfo.worker!.send("broadcastReload", (err) => {
279
- if (err) {
280
- reject(err);
281
- return;
282
- }
283
- resolve();
284
- });
285
- });
286
- }
287
-
288
- private _isServerRestarting = false;
289
-
290
- private async _restartServerAsync(pkg: SdCliPackage): Promise<void> {
291
- await Wait.until(() => !this._isServerRestarting);
292
-
293
- this._isServerRestarting = true;
294
- const entryFileRelPath = pkg.main;
295
- if (entryFileRelPath === undefined) {
296
- this._logger.error(`서버패키지(${pkg.name})의 'package.json'에서 'main'필드를 찾을 수 없습니다.`);
297
- this._isServerRestarting = false;
298
- return;
299
- }
300
- const entryFilePath = path.resolve(pkg.rootPath, entryFileRelPath);
301
-
302
- try {
303
- const serverInfo = this._serverInfoMap.getOrCreate(path.basename(pkg.rootPath), {
304
- pathProxy: [],
305
- clientInfos: []
306
- });
307
- if (serverInfo.worker) {
308
- this._logger.log(`[${pkg.name}] 기존 서버 중지...`);
309
- cp.exec(`taskkill /pid ${serverInfo.worker.pid} /F /T`);
310
- delete serverInfo.worker;
311
- delete serverInfo.url;
312
- }
313
-
314
- this._logger.log(`[${pkg.name}] 서버 시작중...`);
315
-
316
- const serverWorkerInfo = await this._runServerWorkerAsync(entryFilePath);
317
- serverInfo.worker = serverWorkerInfo.worker;
318
- serverInfo.url = serverWorkerInfo.url;
319
- await this._reloadServerWorkerPathProxyAsync(serverInfo);
320
-
321
- this._logger.log(`[${pkg.name}] 서버가 시작되었습니다.`);
322
- }
323
- catch (err) {
324
- this._logger.error(`서버(${pkg.name}) 재시작중 오류 발생`, err);
325
- }
326
-
327
- this._isServerRestarting = false;
328
- }
329
-
330
- private async _buildPkgsAsync(pkgs: SdCliPackage[]): Promise<void> {
331
- this._logger.debug("빌드를 시작합니다...");
332
- const pkgNames = pkgs.map((item) => item.name);
333
- const buildCompletedPackageNames: string[] = [];
334
- const totalResultMap = new Map<string, ISdCliPackageBuildResult[]>();
335
- try {
336
- await pkgs.parallelAsync(async (pkg) => {
337
- await Wait.until(() => !pkg.allDependencies.some((dep) => pkgNames.includes(dep) && !buildCompletedPackageNames.includes(dep)));
338
-
339
- this._logger.debug(`[${pkg.name}] 빌드를 시작합니다...`);
340
- totalResultMap.set(pkg.name, await pkg.buildAsync());
341
- this._logger.debug(`[${pkg.name}] 빌드가 완료되었습니다.`);
342
-
343
- buildCompletedPackageNames.push(pkg.name);
344
- });
345
-
346
- this._loggingResults(totalResultMap);
347
- if (Array.from(totalResultMap.values()).mapMany().some((item) => item.severity === "error")) {
348
- throw new Error("빌드중 오류가 발생하였습니다.");
349
- }
350
- else {
351
- this._logger.info("모든 빌드가 완료되었습니다.");
352
- }
353
- }
354
- catch (err) {
355
- this._loggingResults(totalResultMap);
356
- throw err;
357
- }
358
- }
359
-
360
- private async _upgradeVersionAsync(pkgs: SdCliPackage[]): Promise<void> {
361
- // 작업공간 package.json 버전 설정
362
- const newVersion = semver.inc(this._npmConfig.version, "patch")!;
363
- this._npmConfig.version = newVersion;
364
-
365
- const pkgNames = pkgs.map((item) => item.name);
366
-
367
- const updateDepVersion = (deps: Record<string, string> | undefined): void => {
368
- if (!deps) return;
369
- for (const depName of Object.keys(deps)) {
370
- if (pkgNames.includes(depName)) {
371
- deps[depName] = newVersion;
372
- }
373
- }
374
- };
375
- updateDepVersion(this._npmConfig.dependencies);
376
- updateDepVersion(this._npmConfig.optionalDependencies);
377
- updateDepVersion(this._npmConfig.devDependencies);
378
- updateDepVersion(this._npmConfig.peerDependencies);
379
-
380
- const npmConfigFilePath = path.resolve(this._rootPath, "package.json");
381
- await FsUtil.writeJsonAsync(npmConfigFilePath, this._npmConfig, { space: 2 });
382
-
383
- // 각 패키지 package.json 버전 설정
384
- await pkgs.parallelAsync(async (pkg) => {
385
- await pkg.setNewVersionAsync(newVersion, pkgNames);
386
- });
387
- }
388
-
389
- private async _waitSecMessageAsync(msg: string, sec: number): Promise<void> {
390
- for (let i = sec; i > 0; i--) {
391
- if (i !== sec) {
392
- process.stdout.cursorTo(0);
393
- }
394
- process.stdout.write(`${msg} ${i}`);
395
- await Wait.time(1000);
396
- }
397
-
398
- process.stdout.cursorTo(0);
399
- process.stdout.clearLine(0);
400
- }
401
-
402
- private async _getPackagesAsync(conf: ISdCliConfig): Promise<SdCliPackage[]> {
403
- const pkgRootPaths = await this._npmConfig.workspaces?.mapManyAsync(async (item) => await FsUtil.globAsync(item));
404
- if (!pkgRootPaths) {
405
- throw new Error("최상위 'package.json'에서 'workspaces'를 찾을 수 없습니다.");
406
- }
407
-
408
- return pkgRootPaths.map((pkgRootPath) => {
409
- // if (pkgs.length > 0 && !pkgs.includes(path.basename(pkgRootPath))) return undefined;
410
- const pkgConfig = conf.packages[path.basename(pkgRootPath)];
411
- if (!pkgConfig) return undefined;
412
- return new SdCliPackage(this._rootPath, pkgRootPath, pkgConfig);
413
- }).filterExists();
414
- }
415
-
416
- private _loggingResults(totalResultMap: Map<string, ISdCliPackageBuildResult[]>): void {
417
- const totalResults = Array.from(totalResultMap.entries())
418
- .mapMany((item) => item[1].map((item1) => ({
419
- pkgName: item[0],
420
- ...item1
421
- })))
422
- .orderBy((item) => `${item.pkgName}_${item.filePath}`);
423
-
424
- const warnings = totalResults
425
- .filter((item) => item.severity === "warning")
426
- .map((item) => `${SdCliBuildResultUtil.getMessage(item)} (${item.pkgName})`)
427
- .distinct();
428
-
429
- const errors = totalResults
430
- .filter((item) => item.severity === "error")
431
- .map((item) => `${SdCliBuildResultUtil.getMessage(item)} (${item.pkgName})`)
432
- .distinct();
433
-
434
- if (warnings.length > 0) {
435
- this._logger.warn(`경고 발생${os.EOL}`, warnings.join(os.EOL));
436
- }
437
- if (errors.length > 0) {
438
- this._logger.error(`오류 발생${os.EOL}`, errors.join(os.EOL));
439
- }
440
-
441
- if (errors.length > 0) {
442
- this._logger.error(`경고: ${warnings.length}건, 오류: ${errors.length}건`);
443
- }
444
- else if (warnings.length > 0) {
445
- this._logger.warn(`경고: ${warnings.length}건, 오류: ${errors.length}건`);
446
- }
447
- }
448
-
449
- private _loggingOpenClientHrefs(): void {
450
- const clientHrefs: string[] = [];
451
-
452
- const serverInfos = Array.from(this._serverInfoMap.values());
453
- for (const serverInfo of serverInfos) {
454
- if (!serverInfo.worker) continue;
455
-
456
- /*const protocolStr = serverInfo.server.options.ssl ? "https" : "http";
457
- const portStr = serverInfo.server.options.port.toString();*/
458
-
459
- for (const clientInfo of serverInfo.clientInfos) {
460
- for (const platform of clientInfo.platforms) {
461
- if (platform === "web") {
462
- clientHrefs.push(`${serverInfo.url}/${clientInfo.pkgKey}/`);
463
- }
464
- else if (platform === "electron") {
465
- clientHrefs.push(`sd-cli run-electron ${clientInfo.pkgKey} ${serverInfo.url}`);
466
- }
467
- else if (platform === "cordova") {
468
- for (const target of clientInfo.cordovaTargets) {
469
- if (target === "browser") {
470
- clientHrefs.push(`${serverInfo.url}/${clientInfo.pkgKey}/${platform}/`);
471
- }
472
- else {
473
- clientHrefs.push(`sd-cli run-cordova ${target} ${clientInfo.pkgKey} ${serverInfo.url}`);
474
- }
475
- }
476
- }
477
- }
478
- }
479
- }
480
- if (clientHrefs.length > 0) {
481
- this._logger.log(`오픈된 클라이언트:\n${clientHrefs.join("\n")}`);
482
- }
483
- }
484
- }
485
-
486
- interface IServerInfo {
487
- worker?: cp.ChildProcess;
488
- url?: string;
489
- pathProxy: { from: string; to: string }[];
490
- clientInfos: { pkgKey: string; platforms: string[]; cordovaTargets: string[] }[];
491
- }