@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
@@ -0,0 +1,635 @@
1
+ import { QueryBuilder } from "./QueryBuilder";
2
+ import { QueryHelper } from "./QueryHelper";
3
+ import { DateTime, NeverEntryError, ObjectUtil, SdError } from "@simplysm/sd-core-common";
4
+ import { Queryable } from "./Queryable";
5
+ import { SystemMigration } from "./models/SystemMigration";
6
+ import { DbDefinitionUtil } from "./utils/DbDefinitionUtil";
7
+ export class DbContext {
8
+ getTableDefinitions() {
9
+ return Object.values(this)
10
+ .ofType(Queryable)
11
+ .map(qr => qr.tableDef)
12
+ .filterExists();
13
+ }
14
+ // noinspection TypeScriptAbstractClassConstructorCanBeMadeProtected
15
+ constructor(_executor, opt) {
16
+ this._executor = _executor;
17
+ this.opt = opt;
18
+ // public static readonly SELECT_CACHE_TIMEOUT = 1000;
19
+ // public static readonly selectCache = new Map<string, { result: any[]; timeout: any } | undefined>();
20
+ this.status = "ready";
21
+ this.prepareDefs = [];
22
+ this.qb = new QueryBuilder(this.opt.dialect);
23
+ this.qh = new QueryHelper(this.opt.dialect);
24
+ this.systemMigration = new Queryable(this, SystemMigration);
25
+ }
26
+ async connectWithoutTransactionAsync(callback) {
27
+ if (!this._executor)
28
+ throw new Error("DB 실행기를 알 수 없습니다.");
29
+ await this._executor.connectAsync();
30
+ this.status = "connect";
31
+ this.lastConnectionDateTime = new DateTime();
32
+ let result;
33
+ try {
34
+ result = await callback();
35
+ }
36
+ catch (err) {
37
+ await this._executor.closeAsync();
38
+ this.status = "ready";
39
+ this.lastConnectionDateTime = undefined;
40
+ throw err;
41
+ }
42
+ await this._executor.closeAsync();
43
+ this.status = "ready";
44
+ this.lastConnectionDateTime = undefined;
45
+ return result;
46
+ }
47
+ async connectAsync(fn, isolationLevel) {
48
+ if (!this._executor)
49
+ throw new Error("DB 실행기를 알 수 없습니다.");
50
+ await this._executor.connectAsync();
51
+ this.status = "connect";
52
+ this.lastConnectionDateTime = new DateTime();
53
+ await this._executor.beginTransactionAsync(isolationLevel);
54
+ this.status = "transact";
55
+ let result;
56
+ try {
57
+ result = await fn();
58
+ await this._executor.commitTransactionAsync();
59
+ this.status = "connect";
60
+ this.lastConnectionDateTime = new DateTime();
61
+ }
62
+ catch (err) {
63
+ try {
64
+ await this._executor.rollbackTransactionAsync();
65
+ this.status = "connect";
66
+ this.lastConnectionDateTime = new DateTime();
67
+ }
68
+ catch (err1) {
69
+ if (!(err1 instanceof Error))
70
+ throw new NeverEntryError();
71
+ if (!err1.message.includes("ROLLBACK") || !err1.message.includes("BEGIN")) {
72
+ await this._executor.closeAsync();
73
+ this.status = "ready";
74
+ this.lastConnectionDateTime = undefined;
75
+ throw err1;
76
+ }
77
+ }
78
+ await this._executor.closeAsync();
79
+ this.status = "ready";
80
+ this.lastConnectionDateTime = undefined;
81
+ throw err;
82
+ }
83
+ await this._executor.closeAsync();
84
+ this.status = "ready";
85
+ this.lastConnectionDateTime = undefined;
86
+ return result;
87
+ }
88
+ async transAsync(fn, isolationLevel) {
89
+ if (!this._executor)
90
+ throw new Error("DB 실행기를 알 수 없습니다.");
91
+ if (this.status === "transact") {
92
+ throw new Error("이미 TRANSACTION 상태 입니다.");
93
+ }
94
+ await this._executor.beginTransactionAsync(isolationLevel);
95
+ this.status = "transact";
96
+ let result;
97
+ try {
98
+ result = await fn();
99
+ await this._executor.commitTransactionAsync();
100
+ this.status = "connect";
101
+ this.lastConnectionDateTime = new DateTime();
102
+ }
103
+ catch (err) {
104
+ try {
105
+ await this._executor.rollbackTransactionAsync();
106
+ this.status = "connect";
107
+ this.lastConnectionDateTime = new DateTime();
108
+ }
109
+ catch (err1) {
110
+ if (!(err1 instanceof Error))
111
+ throw new NeverEntryError();
112
+ if (!err1.message.includes("ROLLBACK") || !err1.message.includes("BEGIN")) {
113
+ await this._executor.closeAsync();
114
+ this.status = "ready";
115
+ this.lastConnectionDateTime = undefined;
116
+ throw err1;
117
+ }
118
+ }
119
+ await this._executor.closeAsync();
120
+ this.status = "ready";
121
+ this.lastConnectionDateTime = undefined;
122
+ throw err;
123
+ }
124
+ return result;
125
+ }
126
+ async executeDefsAsync(defs, options) {
127
+ if (!this._executor)
128
+ throw new Error("DB 실행기를 알 수 없습니다.");
129
+ return await this._executor.executeDefsAsync(defs, options);
130
+ }
131
+ async executeQueriesAsync(queries) {
132
+ if (!this._executor)
133
+ throw new Error("DB 실행기를 알 수 없습니다.");
134
+ return await this._executor.executeAsync(queries);
135
+ }
136
+ async bulkInsertAsync(tableName, columnDefs, records) {
137
+ if (!this._executor)
138
+ throw new Error("DB 실행기를 알 수 없습니다.");
139
+ await this._executor.bulkInsertAsync(tableName, columnDefs, records);
140
+ }
141
+ async executePreparedAsync() {
142
+ if (this.prepareDefs.length < 1)
143
+ return;
144
+ await this.executeDefsAsync(this.prepareDefs);
145
+ this.prepareDefs = [];
146
+ // DbContext.selectCache.clear();
147
+ }
148
+ async getIsDbExistsAsync(database) {
149
+ if (this.opt.dialect !== "sqlite") {
150
+ if (database === undefined)
151
+ throw new NeverEntryError();
152
+ return (await this.executeDefsAsync([
153
+ {
154
+ type: "getDatabaseInfo",
155
+ database
156
+ }
157
+ ]))[0].length > 0;
158
+ }
159
+ else {
160
+ throw new Error("sqlite 미구현");
161
+ }
162
+ }
163
+ async getIsTableExistsAsync(tableNameDef) {
164
+ return (await this.executeDefsAsync([
165
+ {
166
+ type: "getTableInfo",
167
+ table: tableNameDef
168
+ }
169
+ ]))[0].length > 0;
170
+ }
171
+ get tableDefs() {
172
+ return Object.keys(this)
173
+ .filter((key) => !key.startsWith("_"))
174
+ .map((key) => this[key])
175
+ .ofType(Queryable)
176
+ .map((qr) => DbDefinitionUtil.getTableDef(qr.tableType))
177
+ .filterExists();
178
+ }
179
+ async getTableInfosAsync(database, schema) {
180
+ return (await this.executeDefsAsync([{
181
+ type: "getTableInfos",
182
+ database,
183
+ schema
184
+ }]))[0].map((item) => ({
185
+ schema: item.TABLE_SCHEMA,
186
+ name: item.TABLE_NAME
187
+ }));
188
+ }
189
+ async getTableColumnInfosAsync(database, schema, table) {
190
+ return (await this.executeDefsAsync([
191
+ {
192
+ type: "getTableColumnInfos",
193
+ table: { database, schema, name: table }
194
+ }
195
+ ]))[0].map((item) => ({
196
+ name: item.name,
197
+ dataType: item.dataType,
198
+ length: item.length,
199
+ precision: item.precision,
200
+ digits: item.digits,
201
+ nullable: item.nullable,
202
+ autoIncrement: item.autoIncrement
203
+ }));
204
+ }
205
+ async getTablePkColumnNamesAsync(database, schema, table) {
206
+ return (await this.executeDefsAsync([
207
+ {
208
+ type: "getTablePrimaryKeys",
209
+ table: { database, schema, name: table }
210
+ }
211
+ ]))[0].map((item) => item.name);
212
+ }
213
+ async getTableFksAsync(database, schema, table) {
214
+ return (await this.executeDefsAsync([
215
+ {
216
+ type: "getTableForeignKeys",
217
+ table: { database, schema, name: table }
218
+ }
219
+ ]))[0]
220
+ .groupBy((item) => item.name)
221
+ .map((item) => ({
222
+ name: item.key,
223
+ sourceColumnNames: item.values.map((item1) => item1.sourceColumnName),
224
+ targetSchemaName: item.values[0].targetSchemaName,
225
+ targetTableName: item.values[0].targetTableName
226
+ }));
227
+ }
228
+ async getTableIndexesAsync(database, schema, table) {
229
+ return (await this.executeDefsAsync([
230
+ {
231
+ type: "getTableIndexes",
232
+ table: { database, schema, name: table }
233
+ }
234
+ ]))[0]
235
+ .groupBy((item) => item.name)
236
+ .map((item) => ({
237
+ name: item.key,
238
+ columns: item.values.map((item1) => ({
239
+ name: item1.columnName,
240
+ orderBy: item1.isDesc === true ? "DESC" : "ASC"
241
+ }))
242
+ }));
243
+ }
244
+ async truncateTable(table) {
245
+ await this.executeDefsAsync([{
246
+ type: "truncateTable",
247
+ table: {
248
+ ...this.opt.dialect === "sqlite" ? {} : {
249
+ database: this.opt.database,
250
+ schema: this.opt.schema,
251
+ },
252
+ name: table
253
+ }
254
+ }]);
255
+ }
256
+ async initializeAsync(dbs, force) {
257
+ if (force && this.status === "transact") {
258
+ throw new Error("DB 강제 초기화는 트랜젝션 상에서는 동작하지 못합니다.\nconnect 대신에 connectWithoutTransaction 로 연결하여 시도하세요.");
259
+ }
260
+ if (force && this.opt.dialect === "sqlite") {
261
+ throw new Error("sqlite 강제초기화 불가, 강제로 초기화 하려면, 데이터베이스 파일을 삭제하고 초기화를 수행하세요.");
262
+ }
263
+ // 강제 아닐때
264
+ if (!force) {
265
+ const isDbExists = this.opt.dialect === "sqlite" ? true : await this.getIsDbExistsAsync(this.opt.database);
266
+ const isMigrationTableExists = !isDbExists ? false : await this.getIsTableExistsAsync({
267
+ ...this.opt.dialect === "sqlite" ? {} : {
268
+ database: this.opt.database,
269
+ schema: this.opt.schema,
270
+ },
271
+ name: "_migration"
272
+ });
273
+ // DB / Migration TABLE 있을때
274
+ if (isDbExists && isMigrationTableExists) {
275
+ const dbMigrationCodes = (await this.systemMigration
276
+ .select((item) => ({
277
+ code: item.code
278
+ }))
279
+ .resultAsync()).map((item) => item.code);
280
+ const migrations = this.migrations
281
+ .filter((item) => !dbMigrationCodes.includes(item.name))
282
+ .orderBy((item) => item.name);
283
+ // 마이그레이션 있을때
284
+ if (migrations.length > 0) {
285
+ if (this.status !== "transact") {
286
+ await this.transAsync(async () => {
287
+ for (const migration of migrations) {
288
+ await new migration().up(this);
289
+ await this.systemMigration.insertAsync([{
290
+ code: migration.name
291
+ }]);
292
+ }
293
+ });
294
+ }
295
+ else {
296
+ for (const migration of migrations) {
297
+ await new migration().up(this);
298
+ await this.systemMigration.insertAsync([{
299
+ code: migration.name
300
+ }]);
301
+ }
302
+ }
303
+ return true;
304
+ }
305
+ else {
306
+ return false;
307
+ }
308
+ }
309
+ }
310
+ // 강제 혹은 첫 수행
311
+ let tableDefs;
312
+ if (this.opt.dialect !== "sqlite") {
313
+ const dbNames = dbs ?? (this.opt.database !== undefined ? [this.opt.database] : []);
314
+ if (dbNames.length < 1) {
315
+ throw new Error("생성할 데이터베이스가 없습니다.");
316
+ }
317
+ // DB 초기화
318
+ for (const dbName of dbNames) {
319
+ await this.executeDefsAsync([{
320
+ type: "createDatabaseIfNotExists",
321
+ database: dbName
322
+ }]);
323
+ await this.executeQueriesAsync([`USE ${dbName};`]);
324
+ await this.executeDefsAsync([{
325
+ type: "clearDatabaseIfExists",
326
+ database: dbName
327
+ }]);
328
+ }
329
+ await this.executeQueriesAsync([`USE ${this.opt.database};`]);
330
+ // TABLE 초기화: 생성/PK 설정
331
+ tableDefs = this.tableDefs
332
+ .filter((item) => item.database === undefined || dbNames.includes(item.database))
333
+ .filterExists();
334
+ }
335
+ else {
336
+ tableDefs = this.tableDefs.filterExists();
337
+ }
338
+ const queryDefsList = [];
339
+ queryDefsList.push(...this.getCreateTablesFullQueryDefsFromTableDef(tableDefs));
340
+ // Migration 데이터 저장 등록
341
+ const migrationInsertQueryDefs = [];
342
+ for (const migration of this.migrations.orderBy((item) => item.name)) {
343
+ migrationInsertQueryDefs.push({
344
+ type: "insert",
345
+ from: this.qb.getTableName({
346
+ ...this.opt.dialect === "sqlite" ? {} : {
347
+ database: this.opt.database,
348
+ schema: this.opt.schema
349
+ },
350
+ name: "_migration"
351
+ }),
352
+ record: {
353
+ [this.qb.wrap("code")]: `N'${migration.name}'`
354
+ }
355
+ });
356
+ }
357
+ queryDefsList.push(migrationInsertQueryDefs);
358
+ for (const queryDefs of queryDefsList) {
359
+ await this.executeDefsAsync(queryDefs);
360
+ }
361
+ return true;
362
+ }
363
+ getCreateTablesFullQueryDefsFromTableDef(tableDefs) {
364
+ const result = [];
365
+ const createTableQueryDefs = [];
366
+ for (const tableDef of tableDefs) {
367
+ createTableQueryDefs.push(this.getCreateTableQueryDefFromTableDef(tableDef));
368
+ }
369
+ result.push(createTableQueryDefs);
370
+ // TABLE 초기화: FK 설정
371
+ const addFkQueryDefs = [];
372
+ for (const tableDef of tableDefs) {
373
+ addFkQueryDefs.push(...this.getCreateFksQueryDefsFromTableDef(tableDef));
374
+ }
375
+ result.push(addFkQueryDefs);
376
+ // TABLE 초기화: INDEX 설정
377
+ const createIndexQueryDefs = [];
378
+ for (const tableDef of tableDefs) {
379
+ createIndexQueryDefs.push(...this.getCreateIndexesQueryDefsFromTableDef(tableDef));
380
+ }
381
+ result.push(createIndexQueryDefs);
382
+ return result;
383
+ }
384
+ getCreateTableQueryDefFromTableDef(tableDef) {
385
+ if (tableDef.columns.length < 1) {
386
+ throw new Error(`'${tableDef.name}'의 컬럼 설정이 잘못되었습니다.`);
387
+ }
388
+ if (!tableDef.view) {
389
+ return {
390
+ type: "createTable",
391
+ table: this.getTableNameDef(tableDef),
392
+ columns: tableDef.columns.map((col) => ObjectUtil.clearUndefined({
393
+ name: col.name,
394
+ dataType: this.qh.type(col.dataType ?? col.typeFwd()),
395
+ autoIncrement: col.autoIncrement,
396
+ nullable: col.nullable
397
+ })),
398
+ primaryKeys: tableDef.columns
399
+ .filter((item) => item.primaryKey !== undefined)
400
+ .orderBy((item) => item.primaryKey)
401
+ .map((item) => ({
402
+ columnName: item.name,
403
+ orderBy: "ASC"
404
+ }))
405
+ };
406
+ }
407
+ else {
408
+ return {
409
+ type: "createView",
410
+ table: this.getTableNameDef(tableDef),
411
+ queryDef: tableDef.view(this).getSelectQueryDef()
412
+ };
413
+ }
414
+ }
415
+ getCreateFksQueryDefsFromTableDef(tableDef) {
416
+ if (tableDef.columns.length < 1) {
417
+ throw new Error(`'${tableDef.name}'의 컬럼 설정이 잘못되었습니다.`);
418
+ }
419
+ const addFkQueryDefs = [];
420
+ for (const fkDef of tableDef.foreignKeys) {
421
+ try {
422
+ const targetTableDef = DbDefinitionUtil.getTableDef(fkDef.targetTypeFwd());
423
+ if (targetTableDef.columns.length < 1) {
424
+ throw new Error(`${targetTableDef.name}의 컬럼 설정이 잘못되었습니다.`);
425
+ }
426
+ const targetPkNames = targetTableDef.columns
427
+ .filter((item) => item.primaryKey !== undefined)
428
+ .orderBy((item) => item.primaryKey)
429
+ .map((item) => item.name);
430
+ addFkQueryDefs.push(...[
431
+ {
432
+ type: "addForeignKey",
433
+ table: this.getTableNameDef(tableDef),
434
+ foreignKey: {
435
+ name: fkDef.name,
436
+ fkColumns: fkDef.columnPropertyKeys.map((propKey) => tableDef.columns.single((col) => col.propertyKey === propKey).name),
437
+ targetTable: this.getTableNameDef(targetTableDef),
438
+ targetPkColumns: targetPkNames
439
+ }
440
+ },
441
+ {
442
+ type: "createIndex",
443
+ table: this.getTableNameDef(tableDef),
444
+ index: {
445
+ name: fkDef.name,
446
+ columns: fkDef.columnPropertyKeys.map((item) => ({
447
+ name: tableDef.columns.single((col) => col.propertyKey === item).name,
448
+ orderBy: "ASC",
449
+ unique: false
450
+ }))
451
+ }
452
+ }
453
+ ]);
454
+ }
455
+ catch (err) {
456
+ if (err instanceof Error) {
457
+ throw new SdError(err, tableDef.name + " > " + fkDef.name + ": 오류");
458
+ }
459
+ else {
460
+ throw err;
461
+ }
462
+ }
463
+ }
464
+ return addFkQueryDefs;
465
+ }
466
+ getCreateIndexesQueryDefsFromTableDef(tableDef) {
467
+ if (tableDef.columns.length < 1) {
468
+ throw new Error(`'${tableDef.name}'의 컬럼 설정이 잘못되었습니다.`);
469
+ }
470
+ const createIndexQueryDefs = [];
471
+ for (const indexDef of tableDef.indexes) {
472
+ createIndexQueryDefs.push({
473
+ type: "createIndex",
474
+ table: this.getTableNameDef(tableDef),
475
+ index: {
476
+ name: indexDef.name,
477
+ columns: indexDef.columns.orderBy((item) => item.order).map((item) => ({
478
+ name: tableDef.columns.single((col) => col.propertyKey === item.columnPropertyKey).name,
479
+ orderBy: item.orderBy,
480
+ unique: item.unique
481
+ }))
482
+ }
483
+ });
484
+ }
485
+ return createIndexQueryDefs;
486
+ }
487
+ getAddColumnQueryDefFromTableDef(tableDef, columnName) {
488
+ if (tableDef.columns.length < 1) {
489
+ throw new Error(`'${tableDef.name}'의 컬럼 설정이 잘못되었습니다.`);
490
+ }
491
+ const columnDef = tableDef.columns.single((col) => col.name === columnName);
492
+ if (!columnDef) {
493
+ throw new Error(`'${tableDef.name}.${columnName}' 설정이 잘못되었습니다.`);
494
+ }
495
+ return {
496
+ type: "addColumn",
497
+ table: this.getTableNameDef(tableDef),
498
+ column: {
499
+ name: columnDef.name,
500
+ dataType: this.qh.type(columnDef.dataType ?? columnDef.typeFwd()),
501
+ autoIncrement: columnDef.autoIncrement,
502
+ nullable: columnDef.nullable
503
+ }
504
+ };
505
+ }
506
+ getModifyColumnQueryDefFromTableDef(tableDef, columnName) {
507
+ if (tableDef.columns.length < 1) {
508
+ throw new Error(`'${tableDef.name}'의 컬럼 설정이 잘못되었습니다.`);
509
+ }
510
+ const columnDef = tableDef.columns.single((col) => col.name === columnName);
511
+ if (!columnDef) {
512
+ throw new Error(`'${tableDef.name}.${columnName}' 설정이 잘못되었습니다.`);
513
+ }
514
+ return {
515
+ type: "modifyColumn",
516
+ table: this.getTableNameDef(tableDef),
517
+ column: {
518
+ name: columnDef.name,
519
+ dataType: this.qh.type(columnDef.dataType ?? columnDef.typeFwd()),
520
+ autoIncrement: columnDef.autoIncrement,
521
+ nullable: columnDef.nullable
522
+ }
523
+ };
524
+ }
525
+ getModifyPkQueryDefFromTableDef(tableDef, columnNames) {
526
+ if (tableDef.columns.length < 1) {
527
+ throw new Error(`'${tableDef.name}'의 컬럼 설정이 잘못되었습니다.`);
528
+ }
529
+ return [
530
+ {
531
+ type: "dropPrimaryKey",
532
+ table: this.getTableNameDef(tableDef)
533
+ },
534
+ ...(columnNames.length > 0) ? [
535
+ {
536
+ type: "addPrimaryKey",
537
+ table: this.getTableNameDef(tableDef),
538
+ columns: columnNames
539
+ }
540
+ ] : []
541
+ ];
542
+ }
543
+ getAddFkQueryDefFromTableDef(tableDef, fkName) {
544
+ if (tableDef.columns.length < 1) {
545
+ throw new Error(`'${tableDef.name}'의 컬럼 설정이 잘못되었습니다.`);
546
+ }
547
+ const fkDef = tableDef.foreignKeys.single((col) => col.name === fkName);
548
+ if (!fkDef) {
549
+ throw new Error(`'${tableDef.name} => FK: ${fkName}' 설정이 잘못되었습니다.`);
550
+ }
551
+ const targetTableDef = DbDefinitionUtil.getTableDef(fkDef.targetTypeFwd());
552
+ if (targetTableDef.columns.length < 1) {
553
+ throw new Error(`${targetTableDef.name}의 컬럼 설정이 잘못되었습니다.`);
554
+ }
555
+ const targetPkNames = targetTableDef.columns
556
+ .filter((item) => item.primaryKey !== undefined)
557
+ .orderBy((item) => item.primaryKey)
558
+ .map((item) => item.name);
559
+ return {
560
+ type: "addForeignKey",
561
+ table: this.getTableNameDef(tableDef),
562
+ foreignKey: {
563
+ name: fkDef.name,
564
+ fkColumns: fkDef.columnPropertyKeys.map((propKey) => tableDef.columns.single((col) => col.propertyKey === propKey).name),
565
+ targetTable: this.getTableNameDef(targetTableDef),
566
+ targetPkColumns: targetPkNames
567
+ }
568
+ };
569
+ }
570
+ getRemoveFkQueryDefFromTableDef(tableDef, fkName) {
571
+ if (tableDef.columns.length < 1) {
572
+ throw new Error(`'${tableDef.name}'의 컬럼 설정이 잘못되었습니다.`);
573
+ }
574
+ return {
575
+ type: "removeForeignKey",
576
+ table: this.getTableNameDef(tableDef),
577
+ foreignKey: fkName
578
+ };
579
+ }
580
+ getCreateIndexQueryDefFromTableDef(tableDef, indexName) {
581
+ if (tableDef.columns.length < 1) {
582
+ throw new Error(`'${tableDef.name}'의 컬럼 설정이 잘못되었습니다.`);
583
+ }
584
+ let indexDef = tableDef.indexes.single((item) => item.name === indexName);
585
+ if (!indexDef) {
586
+ const fkDef = tableDef.foreignKeys.single((item) => item.name === indexName);
587
+ if (!fkDef) {
588
+ throw new Error(`'${tableDef.name} => IDX: ${indexName}' 설정이 잘못되었습니다.`);
589
+ }
590
+ indexDef = {
591
+ name: fkDef.name,
592
+ description: fkDef.description,
593
+ columns: fkDef.columnPropertyKeys.map((propKey, i) => ({
594
+ columnPropertyKey: propKey,
595
+ name: tableDef.columns.single((col) => col.propertyKey === propKey).name,
596
+ order: i + 1,
597
+ orderBy: "ASC",
598
+ unique: false
599
+ }))
600
+ };
601
+ }
602
+ return {
603
+ type: "createIndex",
604
+ table: this.getTableNameDef(tableDef),
605
+ index: {
606
+ name: indexDef.name,
607
+ columns: indexDef.columns.orderBy((item) => item.order).map((item) => ({
608
+ name: tableDef.columns.single((col) => col.propertyKey === item.columnPropertyKey).name,
609
+ orderBy: item.orderBy,
610
+ unique: item.unique
611
+ }))
612
+ }
613
+ };
614
+ }
615
+ getDropIndexQueryDefFromTableDef(tableDef, indexName) {
616
+ if (tableDef.columns.length < 1) {
617
+ throw new Error(`'${tableDef.name}'의 컬럼 설정이 잘못되었습니다.`);
618
+ }
619
+ return {
620
+ type: "dropIndex",
621
+ table: this.getTableNameDef(tableDef),
622
+ index: indexName
623
+ };
624
+ }
625
+ getTableNameDef(tableDef) {
626
+ return {
627
+ ...this.opt.dialect === "sqlite" ? {} : {
628
+ database: tableDef.database ?? this.opt.database,
629
+ schema: tableDef.schema ?? this.opt.schema
630
+ },
631
+ name: tableDef.name
632
+ };
633
+ }
634
+ }
635
+ //# sourceMappingURL=DbContext.js.map
@@ -0,0 +1,15 @@
1
+ /// <reference types="node" />
2
+ import { EventEmitter } from "events";
3
+ import { IQueryColumnDef, ISOLATION_LEVEL, TDbConnectionConfig } from "./commons";
4
+ export interface IDbConnection extends EventEmitter {
5
+ config: TDbConnectionConfig;
6
+ isConnected: boolean;
7
+ isOnTransaction: boolean;
8
+ connectAsync(): Promise<void>;
9
+ closeAsync(): Promise<void>;
10
+ beginTransactionAsync(isolationLevel?: ISOLATION_LEVEL): Promise<void>;
11
+ commitTransactionAsync(): Promise<void>;
12
+ rollbackTransactionAsync(): Promise<void>;
13
+ executeAsync(queries: string[]): Promise<any[][]>;
14
+ bulkInsertAsync(tableName: string, columnDefs: IQueryColumnDef[], records: Record<string, any>[]): Promise<void>;
15
+ }
@@ -0,0 +1 @@
1
+ {"version":3,"file":"IDbConnection.js","sourceRoot":"","sources":["../../../../sd-orm-common/src/IDbConnection.ts"],"names":[],"mappings":""}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=IDbConnection.js.map
@@ -0,0 +1,17 @@
1
+ import { IQueryColumnDef, IQueryResultParseOption, ISOLATION_LEVEL, TQueryDef } from "./commons";
2
+ import { TDbContextOption } from "./DbContext";
3
+ export interface IDbContextExecutor {
4
+ getInfoAsync(): Promise<{
5
+ dialect: TDbContextOption["dialect"];
6
+ database?: string;
7
+ schema?: string;
8
+ }>;
9
+ connectAsync(): Promise<void>;
10
+ beginTransactionAsync(isolationLevel?: ISOLATION_LEVEL): Promise<void>;
11
+ commitTransactionAsync(): Promise<void>;
12
+ rollbackTransactionAsync(): Promise<void>;
13
+ executeDefsAsync(defs: TQueryDef[], options?: (IQueryResultParseOption | undefined)[]): Promise<any[][]>;
14
+ executeAsync(queries: string[]): Promise<any[][]>;
15
+ bulkInsertAsync(tableName: string, columnDefs: IQueryColumnDef[], records: Record<string, any>[]): Promise<void>;
16
+ closeAsync(): Promise<void>;
17
+ }
@@ -0,0 +1 @@
1
+ {"version":3,"file":"IDbContextExecutor.js","sourceRoot":"","sources":["../../../../sd-orm-common/src/IDbContextExecutor.ts"],"names":[],"mappings":""}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=IDbContextExecutor.js.map
@@ -0,0 +1,4 @@
1
+ import { DbContext } from "./DbContext";
2
+ export interface IDbMigration {
3
+ up(db: DbContext): Promise<void>;
4
+ }
@@ -0,0 +1 @@
1
+ {"version":3,"file":"IDbMigration.js","sourceRoot":"","sources":["../../../../sd-orm-common/src/IDbMigration.ts"],"names":[],"mappings":""}