cc-core-cli 1.0.131 → 1.0.135

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 (467) hide show
  1. package/bin/index.js +4 -4
  2. package/package.json +1 -1
  3. package/template/admin/Dockerfile +4 -7
  4. package/template/admin/config/service-account.json +1 -0
  5. package/template/admin/index.js +67 -0
  6. package/template/admin/next.config.js +66 -0
  7. package/template/admin/package.json +10 -23
  8. package/template/admin/pages/404.js +13 -0
  9. package/template/admin/pages/[...url_key].js +21 -0
  10. package/template/admin/pages/_app.js +16 -0
  11. package/template/admin/pages/_document.js +43 -0
  12. package/template/admin/pages/callback/[channel].js +13 -0
  13. package/template/admin/pages/callback.js +13 -0
  14. package/template/admin/pages/change_password_expired.js +13 -0
  15. package/template/admin/pages/check_session.js +13 -0
  16. package/template/admin/pages/cognito.js +13 -0
  17. package/template/admin/pages/confirmpassword.js +12 -0
  18. package/template/admin/pages/forgotpassword.js +12 -0
  19. package/template/admin/pages/index.js +13 -0
  20. package/template/admin/pages/login.js +13 -0
  21. package/template/admin/pages/maintenance.js +12 -0
  22. package/template/admin/pages/password_expired.js +13 -0
  23. package/template/admin/pages/permission_denied.js +13 -0
  24. package/template/admin/pages/profile.js +14 -0
  25. package/template/admin/pages/register.js +13 -0
  26. package/template/admin/pages/setting/[...setting_url_key].js +13 -0
  27. package/template/admin/pages/setting/entities/[subList]/detail.js +14 -0
  28. package/template/admin/pages/setting/entities/[subList]/detail_compare.js +8 -0
  29. package/template/admin/pages/setting/entities/[subList]/index.js +7 -0
  30. package/template/admin/pages/setting/entities/detail/index.js +14 -0
  31. package/template/admin/pages/setting/entities/index.js +14 -0
  32. package/template/admin/pages/social.js +13 -0
  33. package/template/admin/pages/token_expired.js +12 -0
  34. package/template/admin/public/icon-192x192.png +0 -0
  35. package/template/admin/public/icon-256x256.png +0 -0
  36. package/template/admin/public/icon-384x384.png +0 -0
  37. package/template/admin/public/icon-512x512.png +0 -0
  38. package/template/admin/public/manifest.json +32 -0
  39. package/template/admin/public/private-image-worker.js +7 -10
  40. package/template/admin/public/static/images/adv_settings.svg +130 -0
  41. package/template/admin/public/static/images/aws-cognito.png +0 -0
  42. package/template/admin/public/static/images/azure-ad.svg +1 -0
  43. package/template/admin/public/static/images/bin_icon.svg +1 -0
  44. package/template/admin/public/static/images/color-picker.png +0 -0
  45. package/template/admin/public/static/images/csv_icon.svg +1 -0
  46. package/template/admin/public/static/images/default-file.png +0 -0
  47. package/template/admin/public/static/images/default-img.png +0 -0
  48. package/template/admin/public/static/images/default-map.png +0 -0
  49. package/template/admin/public/static/images/default-profile.png +0 -0
  50. package/template/admin/public/static/images/doc_icon.svg +1 -0
  51. package/template/admin/public/static/images/exe_icon.svg +1 -0
  52. package/template/admin/public/static/images/gif_icon.svg +1 -0
  53. package/template/admin/public/static/images/google.png +0 -0
  54. package/template/admin/public/static/images/icon-youtub.webp +0 -0
  55. package/template/admin/public/static/images/id-connect.png +0 -0
  56. package/template/admin/public/static/images/iso_icon.svg +1 -0
  57. package/template/admin/public/static/images/json_icon.png +0 -0
  58. package/template/admin/public/static/images/lang/af-ZA.svg +41 -0
  59. package/template/admin/public/static/images/lang/ar-AE.svg +38 -0
  60. package/template/admin/public/static/images/lang/ar-BH.svg +36 -0
  61. package/template/admin/public/static/images/lang/ar-DZ.svg +40 -0
  62. package/template/admin/public/static/images/lang/ar-EG.svg +38 -0
  63. package/template/admin/public/static/images/lang/ar-IQ.svg +46 -0
  64. package/template/admin/public/static/images/lang/ar-JO.svg +39 -0
  65. package/template/admin/public/static/images/lang/ar-KW.svg +38 -0
  66. package/template/admin/public/static/images/lang/ar-LB.svg +40 -0
  67. package/template/admin/public/static/images/lang/ar-LY.svg +41 -0
  68. package/template/admin/public/static/images/lang/ar-MA.svg +36 -0
  69. package/template/admin/public/static/images/lang/ar-OM.svg +70 -0
  70. package/template/admin/public/static/images/lang/ar-QA.svg +36 -0
  71. package/template/admin/public/static/images/lang/ar-SA.svg +62 -0
  72. package/template/admin/public/static/images/lang/ar-TN.svg +40 -0
  73. package/template/admin/public/static/images/lang/ar-YE.svg +37 -0
  74. package/template/admin/public/static/images/lang/az-AZ.svg +41 -0
  75. package/template/admin/public/static/images/lang/be-BY.svg +38 -0
  76. package/template/admin/public/static/images/lang/bg-BG.svg +37 -0
  77. package/template/admin/public/static/images/lang/bs-BA.svg +48 -0
  78. package/template/admin/public/static/images/lang/ca-ES.svg +89 -0
  79. package/template/admin/public/static/images/lang/cs-CZ.svg +37 -0
  80. package/template/admin/public/static/images/lang/cy-GB.svg +43 -0
  81. package/template/admin/public/static/images/lang/da-DK.svg +36 -0
  82. package/template/admin/public/static/images/lang/de-AT.svg +39 -0
  83. package/template/admin/public/static/images/lang/de-CH.svg +36 -0
  84. package/template/admin/public/static/images/lang/de-DE.svg +37 -0
  85. package/template/admin/public/static/images/lang/de-LI.svg +45 -0
  86. package/template/admin/public/static/images/lang/de-LU.svg +37 -0
  87. package/template/admin/public/static/images/lang/dv-MV.svg +37 -0
  88. package/template/admin/public/static/images/lang/el-GR.svg +46 -0
  89. package/template/admin/public/static/images/lang/en-AU.svg +51 -0
  90. package/template/admin/public/static/images/lang/en-BZ.svg +196 -0
  91. package/template/admin/public/static/images/lang/en-CA.svg +43 -0
  92. package/template/admin/public/static/images/lang/en-GB.svg +43 -0
  93. package/template/admin/public/static/images/lang/en-IE.svg +37 -0
  94. package/template/admin/public/static/images/lang/en-JM.svg +40 -0
  95. package/template/admin/public/static/images/lang/en-NZ.svg +51 -0
  96. package/template/admin/public/static/images/lang/en-PH.svg +51 -0
  97. package/template/admin/public/static/images/lang/en-SG.svg +44 -0
  98. package/template/admin/public/static/images/lang/en-TT.svg +40 -0
  99. package/template/admin/public/static/images/lang/en-US.svg +88 -0
  100. package/template/admin/public/static/images/lang/en-ZA.svg +41 -0
  101. package/template/admin/public/static/images/lang/en-ZW.svg +50 -0
  102. package/template/admin/public/static/images/lang/es-AR.svg +41 -0
  103. package/template/admin/public/static/images/lang/es-BO.svg +101 -0
  104. package/template/admin/public/static/images/lang/es-CL.svg +38 -0
  105. package/template/admin/public/static/images/lang/es-CO.svg +37 -0
  106. package/template/admin/public/static/images/lang/es-CR.svg +111 -0
  107. package/template/admin/public/static/images/lang/es-DO.svg +103 -0
  108. package/template/admin/public/static/images/lang/es-EC.svg +87 -0
  109. package/template/admin/public/static/images/lang/es-ES.svg +89 -0
  110. package/template/admin/public/static/images/lang/es-GT.svg +109 -0
  111. package/template/admin/public/static/images/lang/es-HN.svg +46 -0
  112. package/template/admin/public/static/images/lang/es-MX.svg +60 -0
  113. package/template/admin/public/static/images/lang/es-NI.svg +82 -0
  114. package/template/admin/public/static/images/lang/es-PA.svg +41 -0
  115. package/template/admin/public/static/images/lang/es-PE.svg +37 -0
  116. package/template/admin/public/static/images/lang/es-PR.svg +43 -0
  117. package/template/admin/public/static/images/lang/es-PY.svg +41 -0
  118. package/template/admin/public/static/images/lang/es-SV.svg +115 -0
  119. package/template/admin/public/static/images/lang/es-UY.svg +75 -0
  120. package/template/admin/public/static/images/lang/es-VE.svg +49 -0
  121. package/template/admin/public/static/images/lang/et-EE.svg +37 -0
  122. package/template/admin/public/static/images/lang/eu-ES.svg +89 -0
  123. package/template/admin/public/static/images/lang/fa-IR.svg +81 -0
  124. package/template/admin/public/static/images/lang/fi-FI.svg +36 -0
  125. package/template/admin/public/static/images/lang/fr-BE.svg +37 -0
  126. package/template/admin/public/static/images/lang/fr-CA.svg +43 -0
  127. package/template/admin/public/static/images/lang/fr-CH.svg +36 -0
  128. package/template/admin/public/static/images/lang/fr-FR.svg +37 -0
  129. package/template/admin/public/static/images/lang/fr-LU.svg +37 -0
  130. package/template/admin/public/static/images/lang/fr-MC.svg +36 -0
  131. package/template/admin/public/static/images/lang/gl-ES.svg +89 -0
  132. package/template/admin/public/static/images/lang/gu-IN.svg +59 -0
  133. package/template/admin/public/static/images/lang/he-IL.svg +37 -0
  134. package/template/admin/public/static/images/lang/hi-IN.svg +59 -0
  135. package/template/admin/public/static/images/lang/hr-BA.svg +48 -0
  136. package/template/admin/public/static/images/lang/hr-HR.svg +101 -0
  137. package/template/admin/public/static/images/lang/hu-HU.svg +37 -0
  138. package/template/admin/public/static/images/lang/hy-AM.svg +37 -0
  139. package/template/admin/public/static/images/lang/id-ID.svg +36 -0
  140. package/template/admin/public/static/images/lang/is-IS.svg +37 -0
  141. package/template/admin/public/static/images/lang/it-CH.svg +36 -0
  142. package/template/admin/public/static/images/lang/it-IT.svg +37 -0
  143. package/template/admin/public/static/images/lang/ja-JP.svg +36 -0
  144. package/template/admin/public/static/images/lang/ka-GE.svg +42 -0
  145. package/template/admin/public/static/images/lang/kk-KZ.svg +72 -0
  146. package/template/admin/public/static/images/lang/kn-IN.svg +59 -0
  147. package/template/admin/public/static/images/lang/ko-KR.svg +57 -0
  148. package/template/admin/public/static/images/lang/kok-IN.svg +59 -0
  149. package/template/admin/public/static/images/lang/ky-KG.svg +54 -0
  150. package/template/admin/public/static/images/lang/lt-LT.svg +37 -0
  151. package/template/admin/public/static/images/lang/lv-LV.svg +36 -0
  152. package/template/admin/public/static/images/lang/mi-NZ.svg +51 -0
  153. package/template/admin/public/static/images/lang/mk-MK.svg +46 -0
  154. package/template/admin/public/static/images/lang/mn-MN.svg +50 -0
  155. package/template/admin/public/static/images/lang/mr-IN.svg +59 -0
  156. package/template/admin/public/static/images/lang/ms-BN.svg +47 -0
  157. package/template/admin/public/static/images/lang/ms-MY.svg +53 -0
  158. package/template/admin/public/static/images/lang/mt-MT.svg +50 -0
  159. package/template/admin/public/static/images/lang/nb-NO.svg +37 -0
  160. package/template/admin/public/static/images/lang/nl-BE.svg +37 -0
  161. package/template/admin/public/static/images/lang/nl-NL.svg +37 -0
  162. package/template/admin/public/static/images/lang/nn-NO.svg +37 -0
  163. package/template/admin/public/static/images/lang/ns-ZA.svg +41 -0
  164. package/template/admin/public/static/images/lang/pa-IN.svg +59 -0
  165. package/template/admin/public/static/images/lang/pl-PL.svg +36 -0
  166. package/template/admin/public/static/images/lang/ps-AR.svg +68 -0
  167. package/template/admin/public/static/images/lang/pt-BR.svg +51 -0
  168. package/template/admin/public/static/images/lang/pt-PT.svg +55 -0
  169. package/template/admin/public/static/images/lang/qu-BO.svg +101 -0
  170. package/template/admin/public/static/images/lang/qu-EC.svg +87 -0
  171. package/template/admin/public/static/images/lang/qu-PE.svg +37 -0
  172. package/template/admin/public/static/images/lang/ro-RO.svg +37 -0
  173. package/template/admin/public/static/images/lang/ru-RU.svg +37 -0
  174. package/template/admin/public/static/images/lang/sa-IN.svg +59 -0
  175. package/template/admin/public/static/images/lang/se-FI.svg +36 -0
  176. package/template/admin/public/static/images/lang/se-NO.svg +37 -0
  177. package/template/admin/public/static/images/lang/se-SE.svg +36 -0
  178. package/template/admin/public/static/images/lang/sk-SK.svg +41 -0
  179. package/template/admin/public/static/images/lang/sl-SI.svg +51 -0
  180. package/template/admin/public/static/images/lang/sq-AL.svg +36 -0
  181. package/template/admin/public/static/images/lang/sr-BA.svg +48 -0
  182. package/template/admin/public/static/images/lang/sr-SP.svg +79 -0
  183. package/template/admin/public/static/images/lang/sv-FI.svg +36 -0
  184. package/template/admin/public/static/images/lang/sv-SE.svg +36 -0
  185. package/template/admin/public/static/images/lang/sw-KE.svg +55 -0
  186. package/template/admin/public/static/images/lang/syr-SY.svg +41 -0
  187. package/template/admin/public/static/images/lang/ta-IN.svg +59 -0
  188. package/template/admin/public/static/images/lang/te-IN.svg +59 -0
  189. package/template/admin/public/static/images/lang/th-TH.svg +40 -0
  190. package/template/admin/public/static/images/lang/tl-PH.svg +51 -0
  191. package/template/admin/public/static/images/lang/tn-ZA.svg +41 -0
  192. package/template/admin/public/static/images/lang/tr-TR.svg +39 -0
  193. package/template/admin/public/static/images/lang/tt-RU.svg +37 -0
  194. package/template/admin/public/static/images/lang/uk-UA.svg +36 -0
  195. package/template/admin/public/static/images/lang/ur-PK.svg +40 -0
  196. package/template/admin/public/static/images/lang/vi-VN.svg +36 -0
  197. package/template/admin/public/static/images/lang/xh-ZA.svg +41 -0
  198. package/template/admin/public/static/images/lang/zh-CN.svg +42 -0
  199. package/template/admin/public/static/images/lang/zh-HK.svg +42 -0
  200. package/template/admin/public/static/images/lang/zh-SG.svg +44 -0
  201. package/template/admin/public/static/images/lang/zh-TW.svg +43 -0
  202. package/template/admin/public/static/images/lang/zu-ZA.svg +41 -0
  203. package/template/admin/public/static/images/logo-company-default.svg +1 -0
  204. package/template/admin/public/static/images/logo.png +0 -0
  205. package/template/admin/public/static/images/m_logo.png +0 -0
  206. package/template/admin/public/static/images/maintenance-icon.png +0 -0
  207. package/template/admin/public/static/images/member_logo.png +0 -0
  208. package/template/admin/public/static/images/pdf_icon.svg +1 -0
  209. package/template/admin/public/static/images/png_icon.svg +1 -0
  210. package/template/admin/public/static/images/security.png +0 -0
  211. package/template/admin/public/static/images/template-bar.svg +820 -0
  212. package/template/admin/public/static/images/template-bubble.png +0 -0
  213. package/template/admin/public/static/images/template-line.png +0 -0
  214. package/template/admin/public/static/images/template-mixed.jpeg +0 -0
  215. package/template/admin/public/static/images/template-pie.png +0 -0
  216. package/template/admin/public/static/images/template-polar-area.png +0 -0
  217. package/template/admin/public/static/images/template-radar.jpg +0 -0
  218. package/template/admin/public/static/images/template-radar.png +0 -0
  219. package/template/admin/public/static/images/template-scatter.png +0 -0
  220. package/template/admin/public/static/images/translation.svg +82 -0
  221. package/template/admin/public/static/images/txt_icon.svg +1 -0
  222. package/template/admin/public/static/images/widget-bubble.png +0 -0
  223. package/template/admin/public/static/images/widget-column.png +0 -0
  224. package/template/admin/public/static/images/widget-combo.png +0 -0
  225. package/template/admin/public/static/images/widget-doughnut.png +0 -0
  226. package/template/admin/public/static/images/widget-line.png +0 -0
  227. package/template/admin/public/static/images/widget-pie.png +0 -0
  228. package/template/admin/public/static/images/widget-scatter.png +0 -0
  229. package/template/admin/public/static/images/widget-summary_box.png +0 -0
  230. package/template/admin/public/static/images/widget-treemap.png +0 -0
  231. package/template/admin/public/static/images/xls_icon.svg +1 -0
  232. package/template/admin/public/static/images/xml_icon.svg +1 -0
  233. package/template/admin/public/static/images/zip_icon.svg +1 -0
  234. package/template/admin/public/static/styles/activity_log.less +157 -0
  235. package/template/admin/public/static/styles/calendar.less +145 -0
  236. package/template/admin/public/static/styles/collections.less +123 -0
  237. package/template/admin/public/static/styles/compute_field.less +250 -0
  238. package/template/admin/public/static/styles/custom-antd.less +80 -0
  239. package/template/admin/public/static/styles/custom_icon.less +556 -0
  240. package/template/admin/public/static/styles/date_search.less +63 -0
  241. package/template/admin/public/static/styles/datepicker.less +323 -0
  242. package/template/admin/public/static/styles/detail.less +2690 -0
  243. package/template/admin/public/static/styles/editTable.less +23 -0
  244. package/template/admin/public/static/styles/entities.less +897 -0
  245. package/template/admin/public/static/styles/filter.less +24 -0
  246. package/template/admin/public/static/styles/filter_new.less +154 -0
  247. package/template/admin/public/static/styles/hook.less +142 -0
  248. package/template/admin/public/static/styles/import_export.less +62 -0
  249. package/template/admin/public/static/styles/input.less +386 -0
  250. package/template/admin/public/static/styles/layout.less +1455 -0
  251. package/template/admin/public/static/styles/login.less +263 -0
  252. package/template/admin/public/static/styles/mainheader.less +32 -0
  253. package/template/admin/public/static/styles/matrix.less +105 -0
  254. package/template/admin/public/static/styles/permission_denied.less +13 -0
  255. package/template/admin/public/static/styles/pipeline.less +84 -0
  256. package/template/admin/public/static/styles/print_template.less +730 -0
  257. package/template/admin/public/static/styles/rabbitmq.less +3 -0
  258. package/template/admin/public/static/styles/restful.less +22 -0
  259. package/template/admin/public/static/styles/setting.less +534 -0
  260. package/template/admin/public/static/styles/style.less +1957 -0
  261. package/template/admin/public/static/styles/system.less +11 -0
  262. package/template/admin/public/static/styles/tree_theme_minimal.less +321 -0
  263. package/template/admin/public/static/styles/versioning_control.less +24 -0
  264. package/template/admin/public/static/styles/wysiwyg.less +8 -0
  265. package/template/admin/theme/main.less +1 -0
  266. package/template/admin/theme/vars.less +41 -0
  267. package/template/admin_v3/src/pages/api/database/[type]/index.ts +23 -0
  268. package/template/admin_v3/src/pages/api/layout_chart_widget/[name]/index.ts +18 -0
  269. package/template/admin_v3/src/pages/api/layout_chart_widget/compare_matrix.ts +17 -0
  270. package/template/admin_v3/src/pages/api/redis/[type]/[connect]/index.ts +20 -0
  271. package/template/admin_v3/src/pages/api/redis/custom.ts +10 -0
  272. package/template/{admin/src/pages/api/entity/schema/index.ts → admin_v3/src/pages/api/setting/module/[code].ts} +12 -5
  273. package/template/admin_v3/src/pages/api/template/[type].ts +21 -0
  274. package/template/{admin/src/pages/api/import_export/execute/index.ts → admin_v3/src/pages/api/template/bulk_print/[id].ts} +4 -2
  275. package/template/admin_v3/src/pages/api/template/print/[id]/[doc_ref].ts +11 -0
  276. package/template/core_v3/Dockerfile +60 -0
  277. package/template/core_v3/_env +12 -0
  278. package/template/core_v3/_gitignore +52 -0
  279. package/template/core_v3/_npmrc +1 -0
  280. package/template/core_v3/buildspec.yml +29 -0
  281. package/template/core_v3/docker-compose.yml +11 -0
  282. package/template/core_v3/jest.config.js +43 -0
  283. package/template/core_v3/newrelic.sh +15 -0
  284. package/template/core_v3/package.json +54 -0
  285. package/template/core_v3/post-install.js +34 -0
  286. package/template/core_v3/sonar-project.properties +27 -0
  287. package/template/core_v3/src/app.controller.ts +39 -0
  288. package/template/core_v3/src/app.module.ts +174 -0
  289. package/template/core_v3/src/app.service.ts +21 -0
  290. package/template/core_v3/src/app_cluster.service.ts +61 -0
  291. package/template/core_v3/src/core/core.controller.ts +444 -0
  292. package/template/core_v3/src/core/core.module.ts +90 -0
  293. package/template/core_v3/src/core/core.service.ts +737 -0
  294. package/template/core_v3/src/core/setting/_settings/about.layout.json +105 -0
  295. package/template/core_v3/src/core/setting/_settings/cache.layout.json +309 -0
  296. package/template/core_v3/src/core/setting/_settings/global_login.json +299 -0
  297. package/template/core_v3/src/core/setting/_settings/header_footer.json +83 -0
  298. package/template/core_v3/src/core/setting/_settings/import_export.layout.json +69 -0
  299. package/template/core_v3/src/core/setting/_settings/list_detail.json +685 -0
  300. package/template/core_v3/src/core/setting/_settings/logs.layout.json +39 -0
  301. package/template/core_v3/src/core/setting/_settings/queue.layout.json +63 -0
  302. package/template/core_v3/src/core/setting/_settings/schedule.layout.json +132 -0
  303. package/template/core_v3/src/core/setting/_settings/security.layout.json +1110 -0
  304. package/template/core_v3/src/core/setting/_settings/storage.layout.json +158 -0
  305. package/template/core_v3/src/core/setting/_settings/swagger.layout.json +128 -0
  306. package/template/core_v3/src/core/setting/_settings/toast.json +344 -0
  307. package/template/core_v3/src/main.ts +308 -0
  308. package/template/core_v3/src/modules/modules.ts +16 -0
  309. package/template/core_v3/src/private.controller.ts +18 -0
  310. package/template/core_v3/storage/documents/index.html +14 -0
  311. package/template/core_v3/storage/public/system/menu/icons/company.svg +1 -0
  312. package/template/core_v3/storage/public/system/menu/icons/deploy.svg +2 -0
  313. package/template/core_v3/storage/public/system/menu/icons/entities.svg +55 -0
  314. package/template/core_v3/storage/public/system/menu/icons/files.svg +1 -0
  315. package/template/core_v3/storage/public/system/menu/icons/gateway.svg +1 -0
  316. package/template/core_v3/storage/public/system/menu/icons/import-export.svg +41 -0
  317. package/template/core_v3/storage/public/system/menu/icons/integration.svg +1 -0
  318. package/template/core_v3/storage/public/system/menu/icons/master_data.svg +53 -0
  319. package/template/core_v3/storage/public/system/menu/icons/modules.svg +79 -0
  320. package/template/core_v3/storage/public/system/menu/icons/monitoring.svg +114 -0
  321. package/template/core_v3/storage/public/system/menu/icons/pipeline.svg +1 -0
  322. package/template/core_v3/storage/public/system/menu/icons/provider.svg +1 -0
  323. package/template/core_v3/storage/public/system/menu/icons/report.svg +69 -0
  324. package/template/core_v3/storage/public/system/menu/icons/schedule.svg +1 -0
  325. package/template/core_v3/storage/public/system/menu/icons/security.svg +1 -0
  326. package/template/core_v3/storage/public/system/menu/icons/storage.svg +1 -0
  327. package/template/core_v3/storage/public/system/menu/icons/template.svg +44 -0
  328. package/template/core_v3/storage/public/system/menu/icons/theme-layout.svg +1 -0
  329. package/template/core_v3/test/__mocks__/cc-core-lib.d.ts +161 -0
  330. package/template/core_v3/test/__mocks__/cc-core-lib.js +311 -0
  331. package/template/core_v3/test/__mocks__/pdf-img-convert.js +5 -0
  332. package/template/core_v3/test/jest.setup.ts +25 -0
  333. package/template/core_v3/tsconfig.build.json +4 -0
  334. package/template/core_v3/tsconfig.json +22 -0
  335. package/template/core_v3/tsconfig.test.json +17 -0
  336. package/template/core_v3/version.json +5 -0
  337. package/template/admin/next-env.d.ts +0 -5
  338. package/template/admin/postcss.config.js +0 -6
  339. package/template/admin/public/images/component/barchart.svg +0 -20
  340. package/template/admin/public/images/component/bubble_chart.svg +0 -17
  341. package/template/admin/public/images/component/button.svg +0 -17
  342. package/template/admin/public/images/component/calendar.svg +0 -63
  343. package/template/admin/public/images/component/checkbox.svg +0 -25
  344. package/template/admin/public/images/component/color_picker.svg +0 -25
  345. package/template/admin/public/images/component/cron_tab.svg +0 -33
  346. package/template/admin/public/images/component/currency.svg +0 -34
  347. package/template/admin/public/images/component/custom_fields.svg +0 -34
  348. package/template/admin/public/images/component/data_table.svg +0 -101
  349. package/template/admin/public/images/component/date_picker.svg +0 -47
  350. package/template/admin/public/images/component/donut.svg +0 -23
  351. package/template/admin/public/images/component/edit_table.svg +0 -96
  352. package/template/admin/public/images/component/entity_field.svg +0 -36
  353. package/template/admin/public/images/component/entity_layout.svg +0 -40
  354. package/template/admin/public/images/component/entity_list.svg +0 -88
  355. package/template/admin/public/images/component/file.svg +0 -36
  356. package/template/admin/public/images/component/hidden_field.svg +0 -34
  357. package/template/admin/public/images/component/image.svg +0 -38
  358. package/template/admin/public/images/component/input.svg +0 -34
  359. package/template/admin/public/images/component/input_icon.svg +0 -13
  360. package/template/admin/public/images/component/input_number.svg +0 -34
  361. package/template/admin/public/images/component/input_translate.svg +0 -47
  362. package/template/admin/public/images/component/json.svg +0 -31
  363. package/template/admin/public/images/component/label.svg +0 -11
  364. package/template/admin/public/images/component/line_chart.svg +0 -19
  365. package/template/admin/public/images/component/matrix_table.svg +0 -34
  366. package/template/admin/public/images/component/mixed_chart.svg +0 -25
  367. package/template/admin/public/images/component/polar_chart.svg +0 -33
  368. package/template/admin/public/images/component/radio.svg +0 -24
  369. package/template/admin/public/images/component/redar_chart.svg +0 -17
  370. package/template/admin/public/images/component/scatter_chart.svg +0 -25
  371. package/template/admin/public/images/component/select.svg +0 -34
  372. package/template/admin/public/images/component/summary_box.svg +0 -31
  373. package/template/admin/public/images/component/switch.svg +0 -12
  374. package/template/admin/public/images/component/translate.svg +0 -35
  375. package/template/admin/public/images/component/tree.svg +0 -78
  376. package/template/admin/public/images/default-profile.png +0 -0
  377. package/template/admin/public/images/empty-data.png +0 -0
  378. package/template/admin/public/images/file.png +0 -0
  379. package/template/admin/public/images/forgot-step-1.png +0 -0
  380. package/template/admin/public/images/forgot-step-2.png +0 -0
  381. package/template/admin/public/images/forgot-step-3.png +0 -0
  382. package/template/admin/public/images/form.png +0 -0
  383. package/template/admin/public/images/info-panel.png +0 -0
  384. package/template/admin/public/images/panel.png +0 -0
  385. package/template/admin/public/images/stack.png +0 -0
  386. package/template/admin/public/images/type-all.png +0 -0
  387. package/template/admin/public/images/type-boolean.png +0 -0
  388. package/template/admin/public/images/type-date.png +0 -0
  389. package/template/admin/public/images/type-file.png +0 -0
  390. package/template/admin/public/images/type-image.png +0 -0
  391. package/template/admin/public/images/type-json.png +0 -0
  392. package/template/admin/public/images/type-number.png +0 -0
  393. package/template/admin/public/images/type-options.png +0 -0
  394. package/template/admin/public/images/type-password.png +0 -0
  395. package/template/admin/public/images/type-related.png +0 -0
  396. package/template/admin/public/images/type-string.png +0 -0
  397. package/template/admin/public/images/type-trash.png +0 -0
  398. package/template/admin/public/images/type-unknown.png +0 -0
  399. package/template/admin/public/images/upload.png +0 -0
  400. package/template/admin/src/pages/[...url_key].tsx +0 -9
  401. package/template/admin/src/pages/_app.tsx +0 -22
  402. package/template/admin/src/pages/activate.tsx +0 -9
  403. package/template/admin/src/pages/api/auth/activate_account/confirm.ts +0 -13
  404. package/template/admin/src/pages/api/auth/activate_account/index.ts +0 -13
  405. package/template/admin/src/pages/api/auth/activate_account/resend.ts +0 -13
  406. package/template/admin/src/pages/api/auth/activate_account/set_password.ts +0 -17
  407. package/template/admin/src/pages/api/auth/authen/confirm.ts +0 -24
  408. package/template/admin/src/pages/api/auth/authen/resend.ts +0 -13
  409. package/template/admin/src/pages/api/auth/callback/index.ts +0 -24
  410. package/template/admin/src/pages/api/auth/forgot_password/confirm.ts +0 -13
  411. package/template/admin/src/pages/api/auth/forgot_password/index.ts +0 -13
  412. package/template/admin/src/pages/api/auth/forgot_password/resend.ts +0 -13
  413. package/template/admin/src/pages/api/auth/forgot_password/reset.ts +0 -17
  414. package/template/admin/src/pages/api/auth/login.ts +0 -24
  415. package/template/admin/src/pages/api/auth/logout.ts +0 -30
  416. package/template/admin/src/pages/api/custom/[...path].ts +0 -16
  417. package/template/admin/src/pages/api/download.ts +0 -79
  418. package/template/admin/src/pages/api/entity/[entity]/[id].ts +0 -46
  419. package/template/admin/src/pages/api/entity/[entity]/delete.ts +0 -18
  420. package/template/admin/src/pages/api/entity/[entity]/find.ts +0 -17
  421. package/template/admin/src/pages/api/entity/[entity]/index.ts +0 -30
  422. package/template/admin/src/pages/api/entity/[entity]/update.ts +0 -18
  423. package/template/admin/src/pages/api/entity/approve/[entity]/[id].ts +0 -19
  424. package/template/admin/src/pages/api/entity/schema/[entity]/index.ts +0 -27
  425. package/template/admin/src/pages/api/entity/schema/[entity]/relate.ts +0 -16
  426. package/template/admin/src/pages/api/import_export/example/index.ts +0 -13
  427. package/template/admin/src/pages/api/import_export/export/index.ts +0 -13
  428. package/template/admin/src/pages/api/import_export/import/index.ts +0 -13
  429. package/template/admin/src/pages/api/import_export/progresses/index.ts +0 -13
  430. package/template/admin/src/pages/api/import_export/verify_progress/index.ts +0 -13
  431. package/template/admin/src/pages/api/language/set.ts +0 -15
  432. package/template/admin/src/pages/api/media/private.ts +0 -49
  433. package/template/admin/src/pages/api/queue/[queue]/count.ts +0 -17
  434. package/template/admin/src/pages/api/queue/[queue]/flush.ts +0 -17
  435. package/template/admin/src/pages/api/queue/[queue]/flushall.ts +0 -16
  436. package/template/admin/src/pages/api/queue/[queue]/index.ts +0 -20
  437. package/template/admin/src/pages/api/queue/index.ts +0 -13
  438. package/template/admin/src/pages/api/redis/index.ts +0 -0
  439. package/template/admin/src/pages/api/setting/[code].ts +0 -21
  440. package/template/admin/src/pages/api/system/config.ts +0 -13
  441. package/template/admin/src/pages/api/system/data_source/[code].ts +0 -17
  442. package/template/admin/src/pages/api/system/endpoint/[method].ts +0 -17
  443. package/template/admin/src/pages/api/system/queue.ts +0 -13
  444. package/template/admin/src/pages/api/system/role.ts +0 -13
  445. package/template/admin/src/pages/api/user/change_password.ts +0 -13
  446. package/template/admin/src/pages/api/user/filter/index.ts +0 -13
  447. package/template/admin/src/pages/api/user/me.ts +0 -24
  448. package/template/admin/src/pages/api/user/register.ts +0 -13
  449. package/template/admin/src/pages/callback/[channel].tsx +0 -9
  450. package/template/admin/src/pages/entity/[entity]/[layout]/[id].tsx +0 -17
  451. package/template/admin/src/pages/entity/[entity]/[layout]/index.tsx +0 -19
  452. package/template/admin/src/pages/forgot_password.tsx +0 -9
  453. package/template/admin/src/pages/index.tsx +0 -7
  454. package/template/admin/src/pages/login.tsx +0 -9
  455. package/template/admin/src/pages/profile.tsx +0 -9
  456. package/template/admin/src/pages/register.tsx +0 -9
  457. package/template/admin/src/pages/setting/entities/[key].tsx +0 -10
  458. package/template/admin/src/pages/setting/entities/index.tsx +0 -10
  459. package/template/admin/src/pages/setting/module/[module]/[layout].tsx +0 -16
  460. package/template/admin/src/pages/setting/modules.tsx +0 -10
  461. package/template/admin/src/styles/global.css +0 -101
  462. package/template/admin/src/styles/workflow.css +0 -40
  463. package/template/admin/src/utils/color.ts +0 -88
  464. package/template/admin/tailwind.config.js +0 -57
  465. package/template/admin/tsconfig.json +0 -36
  466. /package/template/admin/public/{images → static/images}/split.svg +0 -0
  467. /package/template/admin/{src/pages/api/redis/[connect]/index.ts → public/static/styles/custom.less} +0 -0
@@ -1,10 +1,12 @@
1
- import { requestExecuteImport, getHeadersFromRequest } from '@shopstack/cs-admin-lib/server'
1
+ import { getHeadersFromRequest } from '@shopstack/cs-admin-lib/server';
2
+ import { requestBulkPrint } from '@shopstack/cs-admin-lib/server';
2
3
  import { NextApiRequest, NextApiResponse } from "next";
3
4
 
4
5
  export default async (req: NextApiRequest, res: NextApiResponse) => {
5
6
  if (req.method === 'POST') {
7
+ const { id } = req.query as { id: string }
6
8
  try {
7
- const result = await requestExecuteImport(req.body, getHeadersFromRequest(req))
9
+ const result = await requestBulkPrint(id, req.body, getHeadersFromRequest(req))
8
10
  return res.status(200).json(result)
9
11
  } catch (e) {
10
12
  return res.status(e.status).json(e.error)
@@ -0,0 +1,11 @@
1
+ import { requestPrint } from "@shopstack/cs-admin-lib/server";
2
+ import { getHeadersFromRequest } from "@shopstack/cs-admin-lib/server";
3
+ import { NextApiRequest, NextApiResponse } from "next";
4
+
5
+ export default async (req: NextApiRequest, res: NextApiResponse) => {
6
+ if (req.method === 'GET') {
7
+ const { id, doc_ref } = req.query as { id: string, doc_ref: string }
8
+ const result = await requestPrint(id, doc_ref, getHeadersFromRequest(req))
9
+ return res.status(200).json(result)
10
+ }
11
+ }
@@ -0,0 +1,60 @@
1
+ FROM node:22.14.0-alpine3.20 as development
2
+
3
+ RUN apk update
4
+ RUN apk add --no-cache build-base g++ cairo-dev jpeg-dev pango-dev giflib-dev
5
+ RUN apk add --update --repository http://dl-3.alpinelinux.org/alpine/edge/testing libmount ttf-dejavu ttf-droid ttf-freefont ttf-liberation fontconfig
6
+
7
+ WORKDIR /usr/src/app
8
+ COPY package.json .
9
+ COPY .npmrc .
10
+ COPY . .
11
+ RUN npm install -g @nestjs/cli && npm install
12
+ RUN npm run build
13
+
14
+
15
+
16
+ FROM node:22.14.0-alpine3.20 as production
17
+
18
+ ARG NODE_ENV=production
19
+ ENV NODE_ENV=${NODE_ENV}\
20
+ PUPPETEER_SKIP_CHROMIUM_DOWNLOAD=true \
21
+ PUPPETEER_EXECUTABLE_PATH=/usr/bin/chromium-browser
22
+ # Install latest chrome dev package and fonts to support major charsets (Chinese, Japanese, Arabic, Hebrew, Thai and a few others)
23
+ # Note: this installs the necessary libs to make the bundled version of Chromium that Puppeteer
24
+ # installs, work.
25
+ RUN apk update && apk add --no-cache chromium
26
+ RUN apk update && apk upgrade -U -a --ignore alpine-baselayout
27
+ RUN apk add --no-cache build-base g++ cairo-dev jpeg-dev pango-dev giflib-dev
28
+ RUN apk add --update --repository http://dl-3.alpinelinux.org/alpine/edge/testing libmount ttf-dejavu ttf-droid ttf-freefont ttf-liberation fontconfig wget
29
+ RUN mkdir -p /usr/share/fonts/truetype/sarabun
30
+
31
+ # Download the Sarabun fonts and install them
32
+ RUN wget -q -O /usr/share/fonts/truetype/sarabun/Sarabun-Regular.ttf \
33
+ https://github.com/google/fonts/raw/main/ofl/sarabun/Sarabun-Regular.ttf && \
34
+ wget -q -O /usr/share/fonts/truetype/sarabun/Sarabun-Bold.ttf \
35
+ https://github.com/google/fonts/raw/main/ofl/sarabun/Sarabun-Bold.ttf && \
36
+ wget -q -O /usr/share/fonts/truetype/sarabun/Sarabun-Italic.ttf \
37
+ https://github.com/google/fonts/raw/main/ofl/sarabun/Sarabun-Italic.ttf && \
38
+ wget -q -O /usr/share/fonts/truetype/sarabun/Sarabun-BoldItalic.ttf \
39
+ https://github.com/google/fonts/raw/main/ofl/sarabun/Sarabun-BoldItalic.ttf
40
+
41
+ # Update font cache
42
+ RUN fc-cache -f -v
43
+
44
+ # Verify if Sarabun font was installed (for debugging)
45
+ RUN fc-list | grep "Sarabun"
46
+
47
+ WORKDIR /usr/src/app
48
+ COPY package.json .
49
+ COPY .npmrc .
50
+ COPY . .
51
+ RUN npm install --only=production
52
+ COPY --from=development /usr/src/app/dist ./dist
53
+
54
+ RUN find /usr/local/lib/node_modules -name "yarn.lock" -type f -delete
55
+ RUN find /usr/local/lib/node_modules -name "package-lock.json" -type f -delete
56
+
57
+ RUN find /usr/src/app/node_modules -name "yarn.lock" -type f -delete
58
+ RUN find /usr/src/app/node_modules -name "package-lock.json" -type f -delete
59
+
60
+ CMD ["npm", "run", "start:prod"]
@@ -0,0 +1,12 @@
1
+ NODE_ENV=dev
2
+ PORT=3000
3
+ LOOP_BACK_IP=0.0.0.0
4
+ MONGODB_URI=mongodb://{username}:{password}@127.0.0.1:27017/dev_db?authSource=admin
5
+ SESSION_REDIS_URL=redis://127.0.0.1:6379/1
6
+ CACHE_REDIS_URL=redis://127.0.0.1:6379/1
7
+ QUEUE_REDIS_URL=redis://127.0.0.1:6379/2
8
+ QUEUE_CONCURRENCY=1
9
+ MAX_WORKER=1
10
+ CUSTOM_MODULES=
11
+ DEFAULT_API_KEY=0939f325-e24f-4de3-8796-4d5e7243849c
12
+ DEFAULT_SECRET_KEY=ogi6xld0kftb5yvm6t17x2a6bmyipnfja6s7v5v2
@@ -0,0 +1,52 @@
1
+ # These are some examples of commonly ignored file patterns.
2
+ # You should customize this list as applicable to your project.
3
+ # Learn more about .gitignore:
4
+ # https://www.atlassian.com/git/tutorials/saving-changes/gitignore
5
+
6
+ # Node artifact files
7
+ node_modules/
8
+ dist/
9
+ tmp/
10
+ temp/
11
+ lib/
12
+ storage/*
13
+ !storage/public/
14
+ storage/public/*
15
+ !storage/public/system/
16
+ storage/public/system/*
17
+ !storage/public/system/menu/
18
+ storage/public/system/menu/*
19
+ !storage/public/system/menu/icons/
20
+ !storage/documents/
21
+
22
+ # Generated by MacOS
23
+ .DS_Store
24
+
25
+ # Generated by Windows
26
+ Thumbs.db
27
+
28
+ # Applications
29
+ *.app
30
+ *.exe
31
+ *.war
32
+
33
+ # Large media files
34
+ *.mp4
35
+ *.tiff
36
+ *.avi
37
+ *.flv
38
+ *.mov
39
+ *.wmv
40
+
41
+ # Environment file
42
+ .env
43
+
44
+ # Log fiels
45
+ *.log
46
+
47
+ # Package lock file
48
+ package-lock.json
49
+
50
+ # Test files
51
+ .scannerwork/
52
+ coverage/
@@ -0,0 +1 @@
1
+ //registry.npmjs.org/:_authToken={{SHOPSTACK_TOKEN}}
@@ -0,0 +1,29 @@
1
+ version: 0.2
2
+
3
+ phases:
4
+ pre_build:
5
+ commands:
6
+ - echo Logging in to Amazon ECR...
7
+ - $(aws ecr get-login --no-include-email --region ap-southeast-1)
8
+ - REPOSITORY_URI=$ECR_URI
9
+ - COMMIT_HASH=$(echo $CODEBUILD_RESOLVED_SOURCE_VERSION | cut -c 1-7)
10
+ - IMAGE_TAG=${COMMIT_HASH:=latest}
11
+ build:
12
+ commands:
13
+ - echo logging in dockerhub...
14
+ - docker login -u $dockeruser -p $dockerpassword
15
+ - echo Build started on `date`
16
+ - echo Building the Docker image...
17
+ - sed -i "s|{{SHOPSTACK_TOKEN}}|$SHOPSATCK_TOKEN|g" .npmrc
18
+ - cat .npmrc
19
+ - docker build --no-cache -t $REPOSITORY_URI:latest --build-arg commit_hash=$COMMIT_HASH .
20
+ - docker tag $REPOSITORY_URI:latest $REPOSITORY_URI:$IMAGE_TAG
21
+ post_build:
22
+ commands:
23
+ - echo Build completed on `date`
24
+ - echo Pushing the Docker image...
25
+ - docker push $REPOSITORY_URI:$IMAGE_TAG
26
+ - echo Writing image definitions file...
27
+ - printf '[{"name":"%s","imageUri":"%s"}]' $IMAGE_CONTAINER_NAME $REPOSITORY_URI:$IMAGE_TAG > imagedefinitions.json
28
+ artifacts:
29
+ files: imagedefinitions.json
@@ -0,0 +1,11 @@
1
+ version: "3.0"
2
+ services:
3
+ cc-core:
4
+ build:
5
+ context: .
6
+ image: cc-core
7
+ container_name: cc-core
8
+ restart: always
9
+ env_file: .env
10
+ ports:
11
+ - "3000:3000"
@@ -0,0 +1,43 @@
1
+ module.exports = {
2
+ preset: 'ts-jest',
3
+ testEnvironment: 'node',
4
+ roots: ['<rootDir>/src/modules'],
5
+ testRegex: '.*\\.spec\\.ts$',
6
+ transform: {
7
+ '^.+\\.(t|j)s$': 'ts-jest'
8
+ },
9
+ transformIgnorePatterns: [
10
+ 'node_modules/(?!(@shopstack/cc-core-lib)/.*)',
11
+ ],
12
+ moduleNameMapper: {
13
+ '^@/(.*)$': '<rootDir>/src/$1',
14
+ '^(\\.{1,2}/.*)\\.js$': '$1',
15
+ 'pdf-img-convert': '<rootDir>/test/__mocks__/pdf-img-convert.js',
16
+ '@shopstack/cc-core-lib/core': '<rootDir>/test/__mocks__/cc-core-lib.js'
17
+ },
18
+ setupFilesAfterEnv: ['<rootDir>/test/jest.setup.ts'],
19
+ collectCoverageFrom: [
20
+ 'src/**/*.ts',
21
+ '!src/**/*.spec.ts',
22
+ '!src/**/*.module.ts',
23
+ '!src/main.ts',
24
+ '!src/**/index.ts',
25
+ '!src/modules/aws-s3/**/*',
26
+ '!src/**/*.enum.ts',
27
+ '!src/**/*.layout.ts',
28
+ '!src/**/*.workflow.ts',
29
+ '!src/**/*.custom_action.ts',
30
+ '!src/modules/modules.ts'
31
+ ],
32
+ coverageDirectory: './coverage',
33
+ coverageReporters: ['lcov', 'text', 'text-summary'],
34
+ moduleFileExtensions: ['js', 'json', 'ts'],
35
+ globals: {
36
+ 'ts-jest': {
37
+ tsconfig: 'tsconfig.test.json'
38
+ }
39
+ },
40
+ verbose: true,
41
+ testTimeout: 30000,
42
+ moduleDirectories: ['node_modules', 'src/__tests__/mocks', 'test/__mocks__']
43
+ };
@@ -0,0 +1,15 @@
1
+ #!/bin/bash
2
+
3
+ export NEW_RELIC_NO_CONFIG_FILE=true
4
+
5
+ if [ -z "$NEW_RELIC_LICENSE_KEY" ] || [ -z "$NEW_RELIC_APP_NAME" ]; then
6
+ export NEW_RELIC_ENABLED=false
7
+ echo "Don't enable newrelic because some variable is not set"
8
+ return 0
9
+ fi
10
+
11
+ export NEW_RELIC_ENABLED=true
12
+ export NEW_RELIC_DISTRIBUTED_TRACING_ENABLED=true
13
+ export NEW_RELIC_LOG=stdout
14
+
15
+ echo "Enable newrelic"
@@ -0,0 +1,54 @@
1
+ {
2
+ "name": "cs-core",
3
+ "version": "1.0.0",
4
+ "description": "",
5
+ "author": "",
6
+ "private": true,
7
+ "license": "UNLICENSED",
8
+ "scripts": {
9
+ "prebuild": "rimraf dist",
10
+ "postinstall": "node post-install.js",
11
+ "build": "source ./newrelic.sh && nest build",
12
+ "format": "prettier --write \"src/**/*.ts\" \"test/**/*.ts\"",
13
+ "start": "nest start",
14
+ "start:dev": "source ./newrelic.sh && nest start --watch",
15
+ "start:debug": "nest start --debug --watch",
16
+ "start:prod": "source ./newrelic.sh && node dist/src/main",
17
+ "lint": "eslint \"{src,apps,libs,test}/**/*.ts\" --fix",
18
+ "test": "jest",
19
+ "test:watch": "jest --watch",
20
+ "test:cov": "jest --coverage",
21
+ "test:debug": "node --inspect-brk -r tsconfig-paths/register -r ts-node/register node_modules/.bin/jest --runInBand",
22
+ "sonar": "node -r dotenv/config ./node_modules/.bin/jest --coverage && node -r dotenv/config ./node_modules/.bin/sonar-scanner",
23
+ "sonar:coverage": "jest --coverage --coverageReporters=lcov --coverageDirectory=coverage"
24
+ },
25
+ "dependencies": {
26
+ "@shopstack/cs-core-lib": "^3.0.0",
27
+ "reflect-metadata": "^0.1.14"
28
+ },
29
+ "devDependencies": {
30
+ "@nestjs/testing": "^10.3.5",
31
+ "@types/bcrypt": "^5.0.2",
32
+ "@types/bull": "^3.14.4",
33
+ "@types/chroma-js": "^2.4.0",
34
+ "@types/express": "^4.17.8",
35
+ "@types/jest": "^29.5.14",
36
+ "@types/node": "^13.13.27",
37
+ "@types/numeral": "^2.0.2",
38
+ "@types/supertest": "^2.0.10",
39
+ "@typescript-eslint/eslint-plugin": "^6.1.0",
40
+ "@typescript-eslint/parser": "^6.1.0",
41
+ "eslint": "^8.44.0",
42
+ "eslint-config-prettier": "^6.13.0",
43
+ "eslint-plugin-import": "^2.22.1",
44
+ "jest": "^29.7.0",
45
+ "prettier": "^1.19.1",
46
+ "sonarqube-scanner": "^4.3.0",
47
+ "supertest": "^4.0.2",
48
+ "ts-jest": "^29.3.4",
49
+ "ts-loader": "^6.2.1",
50
+ "ts-node": "^10.9.1",
51
+ "tsconfig-paths": "^3.9.0",
52
+ "typescript": "^5.8.2"
53
+ }
54
+ }
@@ -0,0 +1,34 @@
1
+ const fs = require("fs-extra");
2
+ const ora = require("ora");
3
+ const { exec } = require("child_process");
4
+
5
+ const mainPath = "./src/modules";
6
+ const moduleDependencies = [];
7
+ const spinner = ora("Checking module dependencies").start();
8
+
9
+ const modules = fs.readdirSync(mainPath);
10
+ for (const folder of modules) {
11
+ if (!fs.lstatSync(`${mainPath}/${folder}`).isDirectory()) continue;
12
+ if (!fs.existsSync(`${mainPath}/${folder}/module.json`)) continue;
13
+
14
+ const moduleConfig = require(`${mainPath}/${folder}/module.json`);
15
+ if (!moduleConfig.dependencies) continue;
16
+
17
+ for (const lib in moduleConfig.dependencies) {
18
+ moduleDependencies.push(`${lib}@${moduleConfig.dependencies[lib]}`);
19
+ }
20
+ }
21
+
22
+ spinner.succeed("Checking module depencies done.");
23
+
24
+ if (!moduleDependencies.length) return true;
25
+
26
+ spinner.start(`Install module dependencies`);
27
+
28
+ exec(`npm install --no-save ${moduleDependencies.join(" ")}`, err => {
29
+ if (err) {
30
+ return spinner.fail(`Install module dependencies failed ${err.message}`);
31
+ }
32
+ spinner.succeed("Install module dependencies done.");
33
+ return true;
34
+ });
@@ -0,0 +1,27 @@
1
+ # Project identification
2
+ sonar.projectKey=demo-points-core
3
+ sonar.projectName=Demo Points Core
4
+ sonar.projectVersion=1.0.0
5
+
6
+ # Source code location
7
+ sonar.sources=src
8
+ sonar.tests=src
9
+ sonar.test.inclusions=**/*.spec.ts
10
+ sonar.exclusions=**/*.layout.ts,**/*.workflow.ts,**/*.custom_action.ts,**/*.module.ts,**/main.ts,**/index.ts,**/aws-s3/**,**/*.enum.ts
11
+
12
+ # Language
13
+ sonar.language=ts
14
+ sonar.typescript.lcov.reportPaths=coverage/lcov.info
15
+
16
+ # Encoding of the source files
17
+ sonar.sourceEncoding=UTF-8
18
+
19
+ # Coverage report path
20
+ sonar.javascript.lcov.reportPaths=coverage/lcov.info
21
+
22
+ # SonarCloud configuration
23
+ sonar.host.url=https://sonarcloud.io
24
+ sonar.organization=your-organization-key # You need to replace this with your organization key
25
+
26
+ # Authentication token should be provided via environment variable SONAR_TOKEN
27
+ # DO NOT add the token directly in this file for security reasons
@@ -0,0 +1,39 @@
1
+ import * as _ from "lodash";
2
+
3
+ import { Controller, Get, Param } from "@nestjs/common";
4
+ import { AppService } from "./app.service";
5
+
6
+ import { Public, CONST } from "@shopstack/cc-core-lib/core";
7
+ @Controller()
8
+ export class AppController {
9
+ constructor(private readonly appService: AppService) { }
10
+
11
+ @Public()
12
+ @Get("/health_check")
13
+ healthCheck(): boolean {
14
+ return this.appService.healthCheck();
15
+ }
16
+
17
+ @Public()
18
+ @Get("/health_check/init")
19
+ init(): string {
20
+ return this.appService.init();
21
+ }
22
+
23
+ @Get("/all_x_routes/:method/:entity")
24
+ listAllRoutes(@Param() params: any): any {
25
+ const { method, entity } = params;
26
+ if (_.isEmpty(method)) {
27
+ return [];
28
+ }
29
+ const result = CONST.ENDPOINT_PATHS.filter(
30
+ p => p.method.toLowerCase() === method.toLowerCase()
31
+ );
32
+ if (_.isEmpty(entity) || entity === "undefined") {
33
+ return result;
34
+ }
35
+ return result.filter(
36
+ r => r.path.indexOf(entity) === 0 || r.path.indexOf(":entity") === 0
37
+ );
38
+ }
39
+ }
@@ -0,0 +1,174 @@
1
+ import * as _ from "lodash";
2
+ import {
3
+ Module,
4
+ } from "@nestjs/common";
5
+ import { MongooseModule } from "@nestjs/mongoose";
6
+ import { ClsModule } from "nestjs-cls";
7
+ import * as dotenv from "dotenv";
8
+
9
+ import { NestEmitterModule } from "nest-emitter";
10
+ import { EventEmitter } from "events";
11
+
12
+ import { StoragePrivateController } from "./private.controller";
13
+ import { AppController } from "./app.controller";
14
+ import { AppService } from "./app.service";
15
+ import { ScheduleModule } from "@nestjs/schedule";
16
+
17
+ import { CUSTOM_MODULES } from "./modules/modules";
18
+ // import { CoreModule } from "./core/core.module";
19
+ import {
20
+ UserModule,
21
+ AuthModule,
22
+ EntitiesModule,
23
+ ScheduleActionModule,
24
+ SettingModule,
25
+ TemplateModule,
26
+ QueueModule,
27
+ TranslateModule,
28
+ AttachmentModule,
29
+ NotificationModule,
30
+ RedisModule,
31
+ MailSettingModule,
32
+ SmsModule,
33
+ ShortlyModule,
34
+ LayoutModule,
35
+ CompanyModule,
36
+ LanguageModule,
37
+ ImportExportModule,
38
+ CommentDataModule,
39
+ DatabaseModule,
40
+ DeployModule,
41
+ CustomFunctionModule,
42
+ CacheModule,
43
+ PipelineModule,
44
+ RewriteUrlModule
45
+ } from '@shopstack/cc-core-lib/core'
46
+
47
+ import { CoreModule } from './core/core.module'
48
+
49
+ // const { CoreModule } = core
50
+
51
+ dotenv.config();
52
+
53
+ const SPECIFY_CUSTOM_MODULES =
54
+ process.env.CUSTOM_MODULES === "" || process.env.CUSTOM_MODULES === undefined
55
+ ? []
56
+ : process.env.CUSTOM_MODULES.split(",");
57
+ const RUN_CUSTOM_MODULES =
58
+ SPECIFY_CUSTOM_MODULES.length === 0
59
+ ? CUSTOM_MODULES.map(c => c.module)
60
+ : CUSTOM_MODULES.filter(c =>
61
+ SPECIFY_CUSTOM_MODULES.includes(c.module.name)
62
+ ).map(c => c.module);
63
+
64
+ const mongoConfig = {};
65
+
66
+ if (+process.env.MONGODB_MIN_POOL_SIZE) {
67
+ mongoConfig["minPoolSize"] = +process.env.MONGODB_MIN_POOL_SIZE;
68
+ }
69
+
70
+ if (+process.env.MONGODB_MAX_POOL_SIZE) {
71
+ mongoConfig["maxPoolSize"] = +process.env.MONGODB_MAX_POOL_SIZE;
72
+ }
73
+
74
+ @Module({
75
+ imports: [
76
+ // MongooseModule.forRootAsync({
77
+ // useFactory: async () => ({
78
+ // uri: process.env.MONGODB_URI,
79
+ // useNewUrlParser: true,
80
+ // useFindAndModify: false
81
+ // })
82
+ // }),
83
+ MongooseModule.forRoot(process.env.MONGODB_URI, mongoConfig),
84
+ // Register the ClsModule,
85
+ ClsModule.forRoot({
86
+ middleware: {
87
+ // automatically mount the
88
+ // ClsMiddleware for all routes
89
+ mount: true,
90
+ // and use the setup method to
91
+ // provide default store values.
92
+ setup: (cls, req) => {
93
+ cls.set("request", {
94
+ api_key: _.get(req, "api_key", {}),
95
+ profile: _.get(req, "profile", {}),
96
+ permissions: _.get(req, "permissions", []),
97
+ headers: _.get(req, "headers", {}),
98
+ ip: _.get(req, "ip"),
99
+ protocol: _.get(req, "protocol"),
100
+ hostname: _.get(req, "hostname"),
101
+ url: _.get(req, "url"),
102
+ method: _.get(req, "method"),
103
+ body: _.get(req, "body", {}),
104
+ action_profile: _.get(req, "action_profile", {}),
105
+ permisson_entities: _.get(req, "permisson_entities", {}),
106
+ permisson_tab: _.get(req, "permisson_tab", {})
107
+ });
108
+ }
109
+ },
110
+ interceptor: {
111
+ mount: true,
112
+ setup: (cls, ctx) => {
113
+ const req = ctx.switchToHttp().getRequest();
114
+ cls.set("request", {
115
+ api_key: _.get(req, "api_key", {}),
116
+ profile: _.get(req, "profile", {}),
117
+ permissions: _.get(req, "permissions", []),
118
+ roles: _.get(req, "roles", []),
119
+ headers: _.get(req, "headers", {}),
120
+ // ip: req.connection.remoteAddress,
121
+ ip:
122
+ _.get(req, "socket.remoteAddress") ||
123
+ _.get(req, "connection.remoteAddress"),
124
+ protocol: _.get(req, "protocol"),
125
+ hostname: _.get(req, "hostname"),
126
+ url: _.get(req, "url"),
127
+ method: _.get(req, "method"),
128
+ body: _.get(req, "body", {}),
129
+ action_profile: _.get(req, "action_profile", {}),
130
+ permisson_entities: _.get(req, "permisson_entities", {}),
131
+ permisson_tab: _.get(req, "permisson_tab", {})
132
+ });
133
+ }
134
+ }
135
+ }),
136
+
137
+ EntitiesModule,
138
+ NestEmitterModule.forRoot(new EventEmitter()),
139
+ ScheduleModule.forRoot(),
140
+ AuthModule,
141
+ SettingModule,
142
+ QueueModule,
143
+ RedisModule,
144
+ DatabaseModule,
145
+ CacheModule,
146
+
147
+ CompanyModule,
148
+
149
+ AttachmentModule,
150
+ CommentDataModule,
151
+ CustomFunctionModule,
152
+ DeployModule,
153
+ ImportExportModule,
154
+ LanguageModule,
155
+ MailSettingModule,
156
+ ScheduleActionModule,
157
+ SmsModule,
158
+ TemplateModule,
159
+ TranslateModule,
160
+ NotificationModule,
161
+ ShortlyModule,
162
+ UserModule,
163
+ PipelineModule,
164
+ LayoutModule,
165
+ RewriteUrlModule,
166
+
167
+ // ...RUN_CUSTOM_MODULES,
168
+
169
+ CoreModule
170
+ ],
171
+ controllers: [AppController, StoragePrivateController],
172
+ providers: [AppService]
173
+ })
174
+ export class AppModule { }
@@ -0,0 +1,21 @@
1
+ import { Injectable, Logger } from "@nestjs/common";
2
+ import * as os from "os";
3
+ import { CONST } from "@shopstack/cc-core-lib/core";
4
+
5
+ @Injectable()
6
+ export class AppService {
7
+ private _isReady: boolean;
8
+
9
+ init(): string {
10
+ this._isReady = true;
11
+ Logger.log(`CPU cores ${os.cpus().length}`, "OS");
12
+ return "health_check";
13
+ }
14
+
15
+ healthCheck(): boolean {
16
+ if (!CONST.HEALTH_CHECK) {
17
+ throw new Error("not ready");
18
+ }
19
+ return true;
20
+ }
21
+ }
@@ -0,0 +1,61 @@
1
+ import * as _ from "lodash";
2
+ import * as cluster from "cluster";
3
+ import * as os from "os";
4
+ import { Injectable } from "@nestjs/common";
5
+ import axios, { AxiosInstance } from "axios";
6
+ import { CONST } from '@shopstack/cc-core-lib/core'
7
+
8
+ CONST.INTERNAL_DOMAIN = `http://${process.env.LOOP_BACK_IP}:${process.env
9
+ .PORT || 3000}/api/v1`;
10
+
11
+ const numCPUs = _.isEmpty(process.env.MAX_WORKER)
12
+ ? os.cpus().length
13
+ : parseInt(process.env.MAX_WORKER, 10) === 0
14
+ ? os.cpus().length
15
+ : parseInt(process.env.MAX_WORKER, 10);
16
+ console.log("MAXIMUM WORKER PROCESS: " + numCPUs);
17
+ // const numCPUs = 2;
18
+ let checkInit = false;
19
+ let mainPID = 0;
20
+
21
+ @Injectable()
22
+ export class AppClusterService {
23
+ static async clusterize(callback: Function): Promise<void> {
24
+ if (cluster.isMaster) {
25
+ console.log(`Master server started on ${process.pid}`);
26
+ CONST.MAIN_PROCESS = true;
27
+ for (let i = 0; i < numCPUs; i++) {
28
+ const env = { WORKER_NO: i + 1 }
29
+ const worker = cluster.fork(env);
30
+ worker.process['env'] = env
31
+ }
32
+ cluster.on("listening", (worker, address) => {
33
+ console.log(
34
+ `A worker is now connected to ${address.address}:${address.port}`
35
+ );
36
+ const http: AxiosInstance = axios.create();
37
+ if (worker.process["env"].WORKER_NO == "1") {
38
+ http.get(`${CONST.INTERNAL_DOMAIN}/entities/init_data`);
39
+ http.get(`${CONST.INTERNAL_DOMAIN}/setting/update_version`);
40
+ }
41
+ http.get(`${CONST.INTERNAL_DOMAIN}/user_role/reload_system`);
42
+ http.get(`${CONST.INTERNAL_DOMAIN}/translate/generate`);
43
+ http.get(`${CONST.INTERNAL_DOMAIN}/health_check/init`);
44
+ });
45
+ // cluster.on("online", worker => {
46
+ // console.log("Yay, the worker responded after it was forked");
47
+ // });
48
+ cluster.on("exit", (worker, code, signal, ...other) => {
49
+ const env = worker.process['env']
50
+ console.log(
51
+ `Worker ${worker.process.pid} (${code},${signal}) died. Restarting`
52
+ );
53
+ const newWorker = cluster.fork(env);
54
+ newWorker.process['env'] = env
55
+ });
56
+ } else {
57
+ console.log(`Cluster server started on ${process.pid}`);
58
+ await callback();
59
+ }
60
+ }
61
+ }