@nathapp/na-cli 1.0.1-rc.6 → 1.0.2

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 (393) hide show
  1. package/README.md +88 -20
  2. package/dist/index.js +36 -2
  3. package/dist/index.js.map +1 -1
  4. package/dist/templates/k8s-cert-manager/README.md +60 -0
  5. package/dist/templates/k8s-cert-manager/cloudflare-cert-manager-issuer.yaml +26 -0
  6. package/dist/templates/k8s-deployment/templates/_deployment.tpl +1 -1
  7. package/dist/templates/k8s-deployment/templates/_endpointslice.tpl +42 -0
  8. package/dist/templates/k8s-deployment/templates/_gateway.tpl +94 -0
  9. package/dist/templates/k8s-deployment/templates/_grpcroute.tpl +186 -0
  10. package/dist/templates/k8s-deployment/templates/_httproute.tpl +209 -0
  11. package/dist/templates/k8s-deployment/templates/_ingressroute.tpl +178 -0
  12. package/dist/templates/k8s-deployment/templates/_middleware.tpl +553 -0
  13. package/dist/templates/k8s-deployment/templates/_serverstransport.tpl +73 -0
  14. package/dist/templates/k8s-deployment/templates/_service.tpl +4 -1
  15. package/dist/templates/k8s-helm-chart/templates/endpointslice.yaml +1 -0
  16. package/dist/templates/k8s-helm-chart/templates/gateway.yaml +1 -0
  17. package/dist/templates/k8s-helm-chart/templates/grpcroute.yaml +1 -0
  18. package/dist/templates/k8s-helm-chart/templates/httproute.yaml +1 -0
  19. package/dist/templates/k8s-helm-chart/templates/ingressroute.yaml +1 -0
  20. package/dist/templates/k8s-helm-chart/templates/middleware.yaml +1 -0
  21. package/dist/templates/k8s-helm-chart/templates/serverstransport.yaml +1 -0
  22. package/dist/templates/k8s-helm-chart/values.yaml +3 -5
  23. package/dist/templates/nestjs-api/{.env → .env.local} +5 -0
  24. package/dist/templates/nestjs-api/.gitignore-rename +2 -1
  25. package/dist/templates/nestjs-api/Dockerfile +33 -13
  26. package/dist/templates/nestjs-api/package.json +49 -39
  27. package/dist/templates/nestjs-api/src/i18n/en_US/date.json +7 -0
  28. package/dist/templates/nestjs-api/src/i18n/en_US/validation.json +16 -0
  29. package/dist/templates/nestjs-api/src/i18n/zh_CN/date.json +7 -0
  30. package/dist/templates/nestjs-api/src/i18n/zh_CN/validation.json +16 -0
  31. package/dist/templates/nestjs-api/src/i18n/zh_TW/date.json +7 -0
  32. package/dist/templates/nestjs-api/src/i18n/zh_TW/validation.json +16 -0
  33. package/dist/templates/nestjs-api/test/jest-test.json +26 -0
  34. package/dist/templates/nestjs-library/.npmignore-rename +4 -0
  35. package/dist/templates/nestjs-library/package.json +8 -8
  36. package/dist/templates/ts-library/.npmignore-rename +4 -0
  37. package/dist/templates/turbo-nestjs-vuexy/README.md +3 -0
  38. package/dist/templates/turbo-nestjs-vuexy/package.json +49 -0
  39. package/dist/templates/turbo-nestjs-vuexy/packages/eslint-config/README.md +3 -0
  40. package/dist/templates/turbo-nestjs-vuexy/packages/eslint-config/library.js +43 -0
  41. package/dist/templates/turbo-nestjs-vuexy/packages/eslint-config/package.json +18 -0
  42. package/dist/templates/turbo-nestjs-vuexy/packages/eslint-config/vue.js +236 -0
  43. package/dist/templates/{ts-library/tsconfig.json → turbo-nestjs-vuexy/packages/typescript-config/base.json} +4 -6
  44. package/dist/templates/turbo-nestjs-vuexy/packages/typescript-config/nestjs.json +12 -0
  45. package/dist/templates/turbo-nestjs-vuexy/packages/typescript-config/package.json +9 -0
  46. package/dist/templates/turbo-nestjs-vuexy/packages/typescript-config/vue.json +82 -0
  47. package/dist/templates/turbo-nestjs-vuexy/turbo.json +24 -0
  48. package/dist/templates/vuexy-portal/.editorconfig +1 -0
  49. package/dist/templates/vuexy-portal/.eslintrc.cjs +237 -0
  50. package/dist/templates/vuexy-portal/.gitignore-rename +42 -0
  51. package/dist/templates/vuexy-portal/.stylelintrc.json +46 -0
  52. package/dist/templates/vuexy-portal/Dockerfile +43 -0
  53. package/dist/templates/vuexy-portal/README.md +35 -0
  54. package/dist/templates/vuexy-portal/auto-imports.d.ts +1131 -0
  55. package/dist/templates/vuexy-portal/components.d.ts +68 -0
  56. package/dist/templates/vuexy-portal/dev.Dockerfile +25 -0
  57. package/dist/templates/vuexy-portal/docker-compose.dev.yml +14 -0
  58. package/dist/templates/vuexy-portal/docker-compose.prod.yml +13 -0
  59. package/dist/templates/vuexy-portal/entrypoint.sh +6 -0
  60. package/dist/templates/vuexy-portal/env.d.ts +12 -0
  61. package/dist/templates/vuexy-portal/index.html +57 -0
  62. package/dist/templates/vuexy-portal/nginx.conf +14 -0
  63. package/dist/templates/vuexy-portal/package.json +140 -0
  64. package/dist/templates/vuexy-portal/pnpm-lock.yaml +7963 -0
  65. package/dist/templates/vuexy-portal/prod.Dockerfile +41 -0
  66. package/dist/templates/vuexy-portal/public/favicon.ico +0 -0
  67. package/dist/templates/vuexy-portal/public/images/avatars/avatar-1.png +0 -0
  68. package/dist/templates/vuexy-portal/public/images/avatars/avatar-2.png +0 -0
  69. package/dist/templates/vuexy-portal/public/images/svg/discord.svg +10 -0
  70. package/dist/templates/vuexy-portal/public/images/svg/gift.svg +8 -0
  71. package/dist/templates/vuexy-portal/public/images/svg/keyboard.svg +8 -0
  72. package/dist/templates/vuexy-portal/public/images/svg/laptop.svg +8 -0
  73. package/dist/templates/vuexy-portal/public/images/svg/lightbulb.svg +8 -0
  74. package/dist/templates/vuexy-portal/public/images/svg/rocket.svg +8 -0
  75. package/dist/templates/vuexy-portal/public/loader.css +79 -0
  76. package/dist/templates/vuexy-portal/public/mockServiceWorker.js +287 -0
  77. package/dist/templates/vuexy-portal/shims.d.ts +15 -0
  78. package/dist/templates/vuexy-portal/src/@core/components/AppBarSearch.vue +278 -0
  79. package/dist/templates/vuexy-portal/src/@core/components/AppDrawerHeaderSection.vue +30 -0
  80. package/dist/templates/vuexy-portal/src/@core/components/AppStepper.vue +371 -0
  81. package/dist/templates/vuexy-portal/src/@core/components/BuyNow.vue +92 -0
  82. package/dist/templates/vuexy-portal/src/@core/components/CardStatisticsVerticalSimple.vue +35 -0
  83. package/dist/templates/vuexy-portal/src/@core/components/CustomizerSection.vue +27 -0
  84. package/dist/templates/vuexy-portal/src/@core/components/DialogCloseBtn.vue +25 -0
  85. package/dist/templates/vuexy-portal/src/@core/components/DropZone.vue +135 -0
  86. package/dist/templates/vuexy-portal/src/@core/components/I18n.vue +48 -0
  87. package/dist/templates/vuexy-portal/src/@core/components/MoreBtn.vue +24 -0
  88. package/dist/templates/vuexy-portal/src/@core/components/Notifications.vue +245 -0
  89. package/dist/templates/vuexy-portal/src/@core/components/ProductDescriptionEditor.vue +198 -0
  90. package/dist/templates/vuexy-portal/src/@core/components/ScrollToTop.vue +41 -0
  91. package/dist/templates/vuexy-portal/src/@core/components/Shortcuts.vue +99 -0
  92. package/dist/templates/vuexy-portal/src/@core/components/TablePagination.vue +39 -0
  93. package/dist/templates/vuexy-portal/src/@core/components/TheCustomizer.vue +618 -0
  94. package/dist/templates/vuexy-portal/src/@core/components/ThemeSwitcher.vue +61 -0
  95. package/dist/templates/vuexy-portal/src/@core/components/TiptapEditor.vue +166 -0
  96. package/dist/templates/vuexy-portal/src/@core/components/app-form-elements/AppAutocomplete.vue +57 -0
  97. package/dist/templates/vuexy-portal/src/@core/components/app-form-elements/AppCombobox.vue +57 -0
  98. package/dist/templates/vuexy-portal/src/@core/components/app-form-elements/AppDateTimePicker.vue +543 -0
  99. package/dist/templates/vuexy-portal/src/@core/components/app-form-elements/AppSelect.vue +50 -0
  100. package/dist/templates/vuexy-portal/src/@core/components/app-form-elements/AppTextField.vue +78 -0
  101. package/dist/templates/vuexy-portal/src/@core/components/app-form-elements/AppTextarea.vue +50 -0
  102. package/dist/templates/vuexy-portal/src/@core/components/app-form-elements/CustomCheckboxes.vue +81 -0
  103. package/dist/templates/vuexy-portal/src/@core/components/app-form-elements/CustomCheckboxesWithIcon.vue +95 -0
  104. package/dist/templates/vuexy-portal/src/@core/components/app-form-elements/CustomCheckboxesWithImage.vue +93 -0
  105. package/dist/templates/vuexy-portal/src/@core/components/app-form-elements/CustomRadios.vue +81 -0
  106. package/dist/templates/vuexy-portal/src/@core/components/app-form-elements/CustomRadiosWithIcon.vue +88 -0
  107. package/dist/templates/vuexy-portal/src/@core/components/app-form-elements/CustomRadiosWithImage.vue +99 -0
  108. package/dist/templates/vuexy-portal/src/@core/components/cards/AppCardActions.vue +167 -0
  109. package/dist/templates/vuexy-portal/src/@core/components/cards/AppCardCode.vue +152 -0
  110. package/dist/templates/vuexy-portal/src/@core/components/cards/CardStatisticsHorizontal.vue +41 -0
  111. package/dist/templates/vuexy-portal/src/@core/components/cards/CardStatisticsVertical.vue +48 -0
  112. package/dist/templates/vuexy-portal/src/@core/scss/base/_components.scss +185 -0
  113. package/dist/templates/vuexy-portal/src/@core/scss/base/_dark.scss +16 -0
  114. package/dist/templates/vuexy-portal/src/@core/scss/base/_default-layout-w-horizontal-nav.scss +45 -0
  115. package/dist/templates/vuexy-portal/src/@core/scss/base/_default-layout-w-vertical-nav.scss +103 -0
  116. package/dist/templates/vuexy-portal/src/@core/scss/base/_default-layout.scss +16 -0
  117. package/dist/templates/vuexy-portal/src/@core/scss/base/_horizontal-nav.scss +194 -0
  118. package/dist/templates/vuexy-portal/src/@core/scss/base/_index.scss +48 -0
  119. package/dist/templates/vuexy-portal/src/@core/scss/base/_layouts.scss +63 -0
  120. package/dist/templates/vuexy-portal/src/@core/scss/base/_misc.scss +20 -0
  121. package/dist/templates/vuexy-portal/src/@core/scss/base/_mixins.scss +63 -0
  122. package/dist/templates/vuexy-portal/src/@core/scss/base/_route-transitions.scss +70 -0
  123. package/dist/templates/vuexy-portal/src/@core/scss/base/_utilities.scss +181 -0
  124. package/dist/templates/vuexy-portal/src/@core/scss/base/_utils.scss +90 -0
  125. package/dist/templates/vuexy-portal/src/@core/scss/base/_variables.scss +198 -0
  126. package/dist/templates/vuexy-portal/src/@core/scss/base/_vertical-nav.scss +255 -0
  127. package/dist/templates/vuexy-portal/src/@core/scss/base/libs/_perfect-scrollbar.scss +35 -0
  128. package/dist/templates/vuexy-portal/src/@core/scss/base/libs/vuetify/_index.scss +1 -0
  129. package/dist/templates/vuexy-portal/src/@core/scss/base/libs/vuetify/_overrides.scss +264 -0
  130. package/dist/templates/vuexy-portal/src/@core/scss/base/libs/vuetify/_variables.scss +62 -0
  131. package/dist/templates/vuexy-portal/src/@core/scss/base/placeholders/_default-layout-horizontal-nav.scss +27 -0
  132. package/dist/templates/vuexy-portal/src/@core/scss/base/placeholders/_default-layout-vertical-nav.scss +45 -0
  133. package/dist/templates/vuexy-portal/src/@core/scss/base/placeholders/_default-layout.scss +3 -0
  134. package/dist/templates/vuexy-portal/src/@core/scss/base/placeholders/_horizontal-nav.scss +98 -0
  135. package/dist/templates/vuexy-portal/src/@core/scss/base/placeholders/_index.scss +7 -0
  136. package/dist/templates/vuexy-portal/src/@core/scss/base/placeholders/_misc.scss +7 -0
  137. package/dist/templates/vuexy-portal/src/@core/scss/base/placeholders/_nav.scss +33 -0
  138. package/dist/templates/vuexy-portal/src/@core/scss/base/placeholders/_vertical-nav.scss +80 -0
  139. package/dist/templates/vuexy-portal/src/@core/scss/base/skins/_bordered.scss +72 -0
  140. package/dist/templates/vuexy-portal/src/@core/scss/base/skins/_index.scss +1 -0
  141. package/dist/templates/vuexy-portal/src/@core/scss/template/_default-layout-w-horizontal-nav.scss +9 -0
  142. package/dist/templates/vuexy-portal/src/@core/scss/template/_default-layout-w-vertical-nav.scss +20 -0
  143. package/dist/templates/vuexy-portal/src/@core/scss/template/_horizontal-nav.scss +40 -0
  144. package/dist/templates/vuexy-portal/src/@core/scss/template/_mixins.scss +6 -0
  145. package/dist/templates/vuexy-portal/src/@core/scss/template/_utilities.scss +49 -0
  146. package/dist/templates/vuexy-portal/src/@core/scss/template/_variables.scss +102 -0
  147. package/dist/templates/vuexy-portal/src/@core/scss/template/_vertical-nav.scss +47 -0
  148. package/dist/templates/vuexy-portal/src/@core/scss/template/index.scss +17 -0
  149. package/dist/templates/vuexy-portal/src/@core/scss/template/libs/apex-chart.scss +108 -0
  150. package/dist/templates/vuexy-portal/src/@core/scss/template/libs/full-calendar.scss +351 -0
  151. package/dist/templates/vuexy-portal/src/@core/scss/template/libs/shepherd.scss +94 -0
  152. package/dist/templates/vuexy-portal/src/@core/scss/template/libs/swiper.scss +5 -0
  153. package/dist/templates/vuexy-portal/src/@core/scss/template/libs/vuetify/_variables.scss +351 -0
  154. package/dist/templates/vuexy-portal/src/@core/scss/template/libs/vuetify/components/_alert.scss +114 -0
  155. package/dist/templates/vuexy-portal/src/@core/scss/template/libs/vuetify/components/_avatar.scss +27 -0
  156. package/dist/templates/vuexy-portal/src/@core/scss/template/libs/vuetify/components/_badge.scss +25 -0
  157. package/dist/templates/vuexy-portal/src/@core/scss/template/libs/vuetify/components/_button.scss +280 -0
  158. package/dist/templates/vuexy-portal/src/@core/scss/template/libs/vuetify/components/_cards.scss +3 -0
  159. package/dist/templates/vuexy-portal/src/@core/scss/template/libs/vuetify/components/_checkbox.scss +57 -0
  160. package/dist/templates/vuexy-portal/src/@core/scss/template/libs/vuetify/components/_chip.scss +102 -0
  161. package/dist/templates/vuexy-portal/src/@core/scss/template/libs/vuetify/components/_dialog.scss +27 -0
  162. package/dist/templates/vuexy-portal/src/@core/scss/template/libs/vuetify/components/_expansion-panels.scss +106 -0
  163. package/dist/templates/vuexy-portal/src/@core/scss/template/libs/vuetify/components/_field.scss +308 -0
  164. package/dist/templates/vuexy-portal/src/@core/scss/template/libs/vuetify/components/_list.scss +30 -0
  165. package/dist/templates/vuexy-portal/src/@core/scss/template/libs/vuetify/components/_menu.scss +35 -0
  166. package/dist/templates/vuexy-portal/src/@core/scss/template/libs/vuetify/components/_otp-input.scss +17 -0
  167. package/dist/templates/vuexy-portal/src/@core/scss/template/libs/vuetify/components/_pagination.scss +140 -0
  168. package/dist/templates/vuexy-portal/src/@core/scss/template/libs/vuetify/components/_progress.scss +13 -0
  169. package/dist/templates/vuexy-portal/src/@core/scss/template/libs/vuetify/components/_radio.scss +46 -0
  170. package/dist/templates/vuexy-portal/src/@core/scss/template/libs/vuetify/components/_rating.scss +20 -0
  171. package/dist/templates/vuexy-portal/src/@core/scss/template/libs/vuetify/components/_slider.scss +27 -0
  172. package/dist/templates/vuexy-portal/src/@core/scss/template/libs/vuetify/components/_snackbar.scss +10 -0
  173. package/dist/templates/vuexy-portal/src/@core/scss/template/libs/vuetify/components/_switch.scss +58 -0
  174. package/dist/templates/vuexy-portal/src/@core/scss/template/libs/vuetify/components/_table.scss +48 -0
  175. package/dist/templates/vuexy-portal/src/@core/scss/template/libs/vuetify/components/_tabs.scss +91 -0
  176. package/dist/templates/vuexy-portal/src/@core/scss/template/libs/vuetify/components/_textarea.scss +9 -0
  177. package/dist/templates/vuexy-portal/src/@core/scss/template/libs/vuetify/components/_timeline.scss +99 -0
  178. package/dist/templates/vuexy-portal/src/@core/scss/template/libs/vuetify/components/_tooltip.scss +6 -0
  179. package/dist/templates/vuexy-portal/src/@core/scss/template/libs/vuetify/components/index.scss +25 -0
  180. package/dist/templates/vuexy-portal/src/@core/scss/template/libs/vuetify/index.scss +3 -0
  181. package/dist/templates/vuexy-portal/src/@core/scss/template/libs/vuetify/overrides.scss +18 -0
  182. package/dist/templates/vuexy-portal/src/@core/scss/template/pages/misc.scss +20 -0
  183. package/dist/templates/vuexy-portal/src/@core/scss/template/pages/page-auth.scss +63 -0
  184. package/dist/templates/vuexy-portal/src/@core/scss/template/placeholders/_default-layout-horizontal-nav.scss +7 -0
  185. package/dist/templates/vuexy-portal/src/@core/scss/template/placeholders/_default-layout-vertical-nav.scss +8 -0
  186. package/dist/templates/vuexy-portal/src/@core/scss/template/placeholders/_horizontal-nav.scss +47 -0
  187. package/dist/templates/vuexy-portal/src/@core/scss/template/placeholders/_index.scss +6 -0
  188. package/dist/templates/vuexy-portal/src/@core/scss/template/placeholders/_misc.scss +3 -0
  189. package/dist/templates/vuexy-portal/src/@core/scss/template/placeholders/_nav.scss +27 -0
  190. package/dist/templates/vuexy-portal/src/@core/scss/template/placeholders/_vertical-nav.scss +35 -0
  191. package/dist/templates/vuexy-portal/src/@core/scss/template/skins/_bordered.scss +82 -0
  192. package/dist/templates/vuexy-portal/src/@core/scss/template/skins/_index.scss +1 -0
  193. package/dist/templates/vuexy-portal/src/@custom/assets/images/user-profile-header.png +0 -0
  194. package/dist/templates/vuexy-portal/src/@custom/components/ConfirmationDialog.vue +155 -0
  195. package/dist/templates/vuexy-portal/src/@layouts/components/HorizontalNav.vue +35 -0
  196. package/dist/templates/vuexy-portal/src/@layouts/components/HorizontalNavGroup.vue +110 -0
  197. package/dist/templates/vuexy-portal/src/@layouts/components/HorizontalNavLayout.vue +150 -0
  198. package/dist/templates/vuexy-portal/src/@layouts/components/HorizontalNavLink.vue +56 -0
  199. package/dist/templates/vuexy-portal/src/@layouts/components/HorizontalNavPopper.vue +175 -0
  200. package/dist/templates/vuexy-portal/src/@layouts/components/TransitionExpand.vue +92 -0
  201. package/dist/templates/vuexy-portal/src/@layouts/components/VNodeRenderer.tsx +17 -0
  202. package/dist/templates/vuexy-portal/src/@layouts/components/VerticalNav.vue +236 -0
  203. package/dist/templates/vuexy-portal/src/@layouts/components/VerticalNavGroup.vue +267 -0
  204. package/dist/templates/vuexy-portal/src/@layouts/components/VerticalNavLayout.vue +232 -0
  205. package/dist/templates/vuexy-portal/src/@layouts/components/VerticalNavLink.vue +68 -0
  206. package/dist/templates/vuexy-portal/src/@layouts/components/VerticalNavSectionTitle.vue +37 -0
  207. package/dist/templates/vuexy-portal/src/@layouts/styles/_classes.scss +3 -0
  208. package/dist/templates/vuexy-portal/src/@layouts/styles/_default-layout.scss +35 -0
  209. package/dist/templates/vuexy-portal/src/@layouts/styles/_global.scss +10 -0
  210. package/dist/templates/vuexy-portal/src/@layouts/styles/_mixins.scss +30 -0
  211. package/dist/templates/vuexy-portal/src/@layouts/styles/_placeholders.scss +53 -0
  212. package/dist/templates/vuexy-portal/src/@layouts/styles/_rtl.scss +7 -0
  213. package/dist/templates/vuexy-portal/src/@layouts/styles/_variables.scss +29 -0
  214. package/dist/templates/vuexy-portal/src/@layouts/styles/index.scss +3 -0
  215. package/dist/templates/vuexy-portal/src/App.vue +26 -0
  216. package/dist/templates/vuexy-portal/src/assets/images/avatars/avatar-1.png +0 -0
  217. package/dist/templates/vuexy-portal/src/assets/images/customizer-icons/border-light.svg +16 -0
  218. package/dist/templates/vuexy-portal/src/assets/images/customizer-icons/collapsed-light.svg +17 -0
  219. package/dist/templates/vuexy-portal/src/assets/images/customizer-icons/compact-light.svg +11 -0
  220. package/dist/templates/vuexy-portal/src/assets/images/customizer-icons/default-light.svg +17 -0
  221. package/dist/templates/vuexy-portal/src/assets/images/customizer-icons/horizontal-light.svg +12 -0
  222. package/dist/templates/vuexy-portal/src/assets/images/customizer-icons/ltr-light.svg +15 -0
  223. package/dist/templates/vuexy-portal/src/assets/images/customizer-icons/rtl-light.svg +15 -0
  224. package/dist/templates/vuexy-portal/src/assets/images/customizer-icons/wide-light.svg +11 -0
  225. package/dist/templates/vuexy-portal/src/assets/images/logo.svg +6 -0
  226. package/dist/templates/vuexy-portal/src/assets/images/misc/3d-safe-box-with-golden-dollar-coins.png +0 -0
  227. package/dist/templates/vuexy-portal/src/assets/images/misc/3d-space-rocket-with-smoke.png +0 -0
  228. package/dist/templates/vuexy-portal/src/assets/images/misc/dollar-coins-flying-pink-piggy-bank.png +0 -0
  229. package/dist/templates/vuexy-portal/src/assets/images/misc/fleet-car.png +0 -0
  230. package/dist/templates/vuexy-portal/src/assets/images/pages/misc-mask-dark.png +0 -0
  231. package/dist/templates/vuexy-portal/src/assets/images/pages/misc-mask-light.png +0 -0
  232. package/dist/templates/vuexy-portal/src/assets/images/svg/Card.svg +8 -0
  233. package/dist/templates/vuexy-portal/src/assets/images/svg/Check.svg +4 -0
  234. package/dist/templates/vuexy-portal/src/assets/images/svg/Diamond.svg +12 -0
  235. package/dist/templates/vuexy-portal/src/assets/images/svg/Suitcase.svg +4 -0
  236. package/dist/templates/vuexy-portal/src/assets/images/svg/Wallet.svg +10 -0
  237. package/dist/templates/vuexy-portal/src/assets/images/svg/address.svg +25 -0
  238. package/dist/templates/vuexy-portal/src/assets/images/svg/auth-v1-bottom-shape.svg +4 -0
  239. package/dist/templates/vuexy-portal/src/assets/images/svg/auth-v1-top-shape.svg +4 -0
  240. package/dist/templates/vuexy-portal/src/assets/images/svg/cart.svg +5 -0
  241. package/dist/templates/vuexy-portal/src/assets/images/svg/checkbox-checked.svg +4 -0
  242. package/dist/templates/vuexy-portal/src/assets/images/svg/checkbox-indeterminate.svg +4 -0
  243. package/dist/templates/vuexy-portal/src/assets/images/svg/checkbox-unchecked.svg +10 -0
  244. package/dist/templates/vuexy-portal/src/assets/images/svg/discord.svg +10 -0
  245. package/dist/templates/vuexy-portal/src/assets/images/svg/gift.svg +8 -0
  246. package/dist/templates/vuexy-portal/src/assets/images/svg/home.svg +5 -0
  247. package/dist/templates/vuexy-portal/src/assets/images/svg/keyboard.svg +4 -0
  248. package/dist/templates/vuexy-portal/src/assets/images/svg/laptop.svg +4 -0
  249. package/dist/templates/vuexy-portal/src/assets/images/svg/lightbulb.svg +8 -0
  250. package/dist/templates/vuexy-portal/src/assets/images/svg/office.svg +4 -0
  251. package/dist/templates/vuexy-portal/src/assets/images/svg/paper-send.svg +4 -0
  252. package/dist/templates/vuexy-portal/src/assets/images/svg/payment.svg +21 -0
  253. package/dist/templates/vuexy-portal/src/assets/images/svg/radio-checked.svg +3 -0
  254. package/dist/templates/vuexy-portal/src/assets/images/svg/radio-unchecked.svg +3 -0
  255. package/dist/templates/vuexy-portal/src/assets/images/svg/rocket.svg +4 -0
  256. package/dist/templates/vuexy-portal/src/assets/images/svg/trending.svg +14 -0
  257. package/dist/templates/vuexy-portal/src/assets/images/svg/user-info.svg +4 -0
  258. package/dist/templates/vuexy-portal/src/assets/images/svg/user.svg +6 -0
  259. package/dist/templates/vuexy-portal/src/assets/images/svg/wizard-account.svg +6 -0
  260. package/dist/templates/vuexy-portal/src/assets/images/svg/wizard-address.svg +18 -0
  261. package/dist/templates/vuexy-portal/src/assets/images/svg/wizard-personal.svg +6 -0
  262. package/dist/templates/vuexy-portal/src/assets/images/svg/wizard-social-link.svg +6 -0
  263. package/dist/templates/vuexy-portal/src/assets/images/svg/wizard-submit.svg +6 -0
  264. package/dist/templates/vuexy-portal/src/assets/styles/styles.scss +1 -0
  265. package/dist/templates/vuexy-portal/src/assets/styles/variables/_template.scss +6 -0
  266. package/dist/templates/vuexy-portal/src/assets/styles/variables/_vuetify.scss +7 -0
  267. package/dist/templates/vuexy-portal/src/components/AppLoadingIndicator.vue +63 -0
  268. package/dist/templates/vuexy-portal/src/components/AppPricing.vue +247 -0
  269. package/dist/templates/vuexy-portal/src/components/AppSearchHeader.vue +77 -0
  270. package/dist/templates/vuexy-portal/src/components/ErrorHeader.vue +40 -0
  271. package/dist/templates/vuexy-portal/src/components/dialogs/AddAuthenticatorAppDialog.vue +101 -0
  272. package/dist/templates/vuexy-portal/src/components/dialogs/AddEditAddressDialog.vue +238 -0
  273. package/dist/templates/vuexy-portal/src/components/dialogs/AddEditPermissionDialog.vue +93 -0
  274. package/dist/templates/vuexy-portal/src/components/dialogs/AddEditRoleDialog.vue +302 -0
  275. package/dist/templates/vuexy-portal/src/components/dialogs/AddPaymentMethodDialog.vue +120 -0
  276. package/dist/templates/vuexy-portal/src/components/dialogs/CardAddEditDialog.vue +153 -0
  277. package/dist/templates/vuexy-portal/src/components/dialogs/ConfirmDialog.vue +151 -0
  278. package/dist/templates/vuexy-portal/src/components/dialogs/CreateAppDialog.vue +459 -0
  279. package/dist/templates/vuexy-portal/src/components/dialogs/EnableOneTimePasswordDialog.vue +85 -0
  280. package/dist/templates/vuexy-portal/src/components/dialogs/PaymentProvidersDialog.vue +123 -0
  281. package/dist/templates/vuexy-portal/src/components/dialogs/PricingPlanDialog.vue +34 -0
  282. package/dist/templates/vuexy-portal/src/components/dialogs/ReferAndEarnDialog.vue +181 -0
  283. package/dist/templates/vuexy-portal/src/components/dialogs/ShareProjectDialog.vue +198 -0
  284. package/dist/templates/vuexy-portal/src/components/dialogs/TwoFactorAuthDialog.vue +120 -0
  285. package/dist/templates/vuexy-portal/src/components/dialogs/UserInfoEditDialog.vue +246 -0
  286. package/dist/templates/vuexy-portal/src/components/dialogs/UserUpgradePlanDialog.vue +101 -0
  287. package/dist/templates/vuexy-portal/src/layouts/blank.vue +42 -0
  288. package/dist/templates/vuexy-portal/src/layouts/components/DefaultLayoutWithHorizontalNav.vue +75 -0
  289. package/dist/templates/vuexy-portal/src/layouts/components/DefaultLayoutWithVerticalNav.vue +79 -0
  290. package/dist/templates/vuexy-portal/src/layouts/components/Footer.vue +17 -0
  291. package/dist/templates/vuexy-portal/src/layouts/components/NavSearchBar.vue +266 -0
  292. package/dist/templates/vuexy-portal/src/layouts/components/NavbarShortcuts.vue +45 -0
  293. package/dist/templates/vuexy-portal/src/layouts/components/NavbarThemeSwitcher.vue +22 -0
  294. package/dist/templates/vuexy-portal/src/layouts/components/UserProfile.vue +114 -0
  295. package/dist/templates/vuexy-portal/src/layouts/default.vue +30 -0
  296. package/dist/templates/vuexy-portal/src/pages/[...error].vue +46 -0
  297. package/dist/templates/vuexy-portal/src/pages/account-settings/[tab].vue +57 -0
  298. package/dist/templates/vuexy-portal/src/pages/index.vue +32 -0
  299. package/dist/templates/vuexy-portal/src/pages/login.vue +178 -0
  300. package/dist/templates/vuexy-portal/src/pages/not-authorized.vue +47 -0
  301. package/dist/templates/vuexy-portal/src/pages/second-page.vue +13 -0
  302. package/dist/templates/vuexy-portal/src/plugins/casl/shims-ability.d.ts +8 -0
  303. package/dist/templates/vuexy-portal/src/plugins/i18n/locales/en_US.json +88 -0
  304. package/dist/templates/vuexy-portal/src/plugins/i18n/locales/zh_CN.json +88 -0
  305. package/dist/templates/vuexy-portal/src/plugins/i18n/vue-i18n.d.ts +17 -0
  306. package/dist/templates/vuexy-portal/src/plugins/iconify/icons.css +21039 -0
  307. package/dist/templates/vuexy-portal/src/plugins/iconify/package.json +3 -0
  308. package/dist/templates/vuexy-portal/src/views/account-settings/AccountSettingsSecurity.vue +179 -0
  309. package/dist/templates/vuexy-portal/typed-router.d.ts +146 -0
  310. package/dist/utils/template.js +122 -47
  311. package/dist/utils/template.js.map +1 -1
  312. package/package.json +1 -1
  313. package/.gitlab-ci.yml +0 -143
  314. package/Makefile +0 -62
  315. package/dist/templates/db-schema/.gitlab-ci.yml +0 -139
  316. package/dist/templates/db-schema/Makefile +0 -885
  317. package/dist/templates/k8s-deployment/.gitlab-ci.yml +0 -128
  318. package/dist/templates/k8s-deployment/Makefile +0 -196
  319. package/dist/templates/k8s-deployment/resources/charts/mysql/charts/mysql-install/script/Makefile +0 -12
  320. package/dist/templates/k8s-deployment/resources/charts/redis/charts/redis-install/script/Makefile +0 -8
  321. package/dist/templates/k8s-deployment/services/charts/hooks/charts/pre-delete-rsc/script/Makefile +0 -49
  322. package/dist/templates/k8s-deployment/services/charts/tests/charts/e2e-test-cypress/Makefile +0 -9
  323. package/dist/templates/k8s-deployment/services/charts/tests/charts/e2e-test-js/script/Makefile +0 -14
  324. package/dist/templates/k8s-deployment/services/charts/tests/charts/e2e-test-js/tests/_t-0100-readiness-liveness.ts +0 -84
  325. package/dist/templates/k8s-deployment/services/charts/tests/charts/e2e-test-js/tests/hub.ts +0 -372
  326. package/dist/templates/k8s-deployment/services/charts/tests/charts/e2e-test-js/tests/individual-contact.ts +0 -158
  327. package/dist/templates/k8s-deployment/services/charts/tests/charts/e2e-test-js/tests/individual-contract.ts +0 -328
  328. package/dist/templates/k8s-deployment/services/charts/tests/charts/e2e-test-js/tests/individual-kyc.ts +0 -304
  329. package/dist/templates/k8s-deployment/services/charts/tests/charts/e2e-test-js/tests/individual-onboard-app.ts +0 -823
  330. package/dist/templates/k8s-deployment/services/charts/tests/charts/e2e-test-js/tests/individual-onboard-web.ts +0 -493
  331. package/dist/templates/k8s-deployment/services/charts/tests/charts/e2e-test-js/tests/individual-profile.ts +0 -277
  332. package/dist/templates/k8s-deployment/services/charts/tests/charts/e2e-test-js/tests/individual-whitelist.ts +0 -133
  333. package/dist/templates/k8s-deployment/services/charts/tests/charts/e2e-test-js/tests/t-0200-start.ts +0 -172
  334. package/dist/templates/mxw-base-api-express/.dockerignore +0 -2
  335. package/dist/templates/mxw-base-api-express/.env +0 -10
  336. package/dist/templates/mxw-base-api-express/.gitignore-rename +0 -3
  337. package/dist/templates/mxw-base-api-express/.gitlab-ci.yml +0 -174
  338. package/dist/templates/mxw-base-api-express/.nvmrc +0 -1
  339. package/dist/templates/mxw-base-api-express/Dockerfile +0 -14
  340. package/dist/templates/mxw-base-api-express/Makefile +0 -84
  341. package/dist/templates/mxw-base-api-express/README.md +0 -71
  342. package/dist/templates/mxw-base-api-express/package.json +0 -55
  343. package/dist/templates/mxw-base-api-express/src/app-service.test.ts +0 -94
  344. package/dist/templates/mxw-base-api-express/src/app-service.ts +0 -498
  345. package/dist/templates/mxw-base-api-express/src/auth/auth-user.test.ts +0 -215
  346. package/dist/templates/mxw-base-api-express/src/auth/auth-user.ts +0 -86
  347. package/dist/templates/mxw-base-api-express/src/auth/auth.ts +0 -81
  348. package/dist/templates/mxw-base-api-express/src/core-service.ts +0 -72
  349. package/dist/templates/mxw-base-api-express/src/crud.ts +0 -84
  350. package/dist/templates/mxw-base-api-express/src/http-handler.ts +0 -71
  351. package/dist/templates/mxw-base-api-express/src/server.ts +0 -54
  352. package/dist/templates/mxw-base-api-express/src/test.ts +0 -38
  353. package/dist/templates/mxw-base-api-express/src/utils/api-utilities.ts +0 -52
  354. package/dist/templates/mxw-base-api-express/src/utils/file-utilities.ts +0 -55
  355. package/dist/templates/mxw-base-api-express/tsconfig.json +0 -32
  356. package/dist/templates/nestjs-api/.dockerignore +0 -6
  357. package/dist/templates/nestjs-api/.gitlab-ci.yml +0 -174
  358. package/dist/templates/nestjs-api/.nvmrc +0 -1
  359. package/dist/templates/nestjs-api/.prettierrc +0 -4
  360. package/dist/templates/nestjs-api/Makefile +0 -95
  361. package/dist/templates/nestjs-api/nest-cli.json +0 -11
  362. package/dist/templates/nestjs-api/src/app.controller.spec.ts +0 -24
  363. package/dist/templates/nestjs-api/src/app.controller.ts +0 -27
  364. package/dist/templates/nestjs-api/src/app.module.ts +0 -49
  365. package/dist/templates/nestjs-api/src/app.service.ts +0 -27
  366. package/dist/templates/nestjs-api/src/main.ts +0 -26
  367. package/dist/templates/nestjs-api/test/app.e2e-spec.ts +0 -47
  368. package/dist/templates/nestjs-api/tsconfig.build.json +0 -4
  369. package/dist/templates/nestjs-api/tsconfig.json +0 -24
  370. package/dist/templates/nestjs-library/.eslintrc.js +0 -24
  371. package/dist/templates/nestjs-library/.gitlab-ci.yml +0 -138
  372. package/dist/templates/nestjs-library/.prettierrc +0 -6
  373. package/dist/templates/nestjs-library/Makefile +0 -60
  374. package/dist/templates/nestjs-library/index.ts +0 -1
  375. package/dist/templates/nestjs-library/lib/index.ts +0 -2
  376. package/dist/templates/nestjs-library/test/app/controller/hello.controller.ts +0 -7
  377. package/dist/templates/nestjs-library/tsconfig.build.json +0 -7
  378. package/dist/templates/nestjs-library/tsconfig.json +0 -18
  379. package/dist/templates/ts-library/.dockerignore +0 -2
  380. package/dist/templates/ts-library/.eslintrc.js +0 -24
  381. package/dist/templates/ts-library/.gitlab-ci.yml +0 -136
  382. package/dist/templates/ts-library/.prettierrc +0 -6
  383. package/dist/templates/ts-library/Makefile +0 -58
  384. package/dist/templates/ts-library/index.ts +0 -1
  385. package/dist/templates/ts-library/lib/index.ts +0 -1
  386. package/dist/templates/ts-library/lib/samples/index.ts +0 -5
  387. package/dist/templates/ts-library/lib/samples/samples-function.ts +0 -3
  388. package/dist/templates/ts-library/test/sample.e2e-spec.ts +0 -10
  389. package/dist/templates/ts-library/tsconfig.build.json +0 -4
  390. package/dist/utils/help.js +0 -8
  391. package/dist/utils/help.js.map +0 -1
  392. package/tsconfig.json +0 -24
  393. /package/dist/templates/{nestjs-api/.eslintrc.js → turbo-nestjs-vuexy/packages/eslint-config/nest.js} +0 -0
@@ -1,52 +0,0 @@
1
- import { isUndefinedOrNullOrEmpty } from "mxw-libs-utils";
2
- import { mxw } from "mxw-sdk-js";
3
-
4
- /**
5
- * NOTE: due to limited header size for Bearer this Utils is
6
- * To Transform Large Size Property to hash.
7
- */
8
- export default class ApiUtils {
9
-
10
- // change to loop if having more property
11
- public static transformParamsWithHash( params: any) {
12
- const tokenParams = {
13
- ... params,
14
- }
15
- // docBase64 too large to header, will throw error
16
- if(tokenParams.hasOwnProperty("docBase64") && !isUndefinedOrNullOrEmpty(tokenParams.docBase64)) {
17
- tokenParams.docBase64Signature = this.hashMessage(tokenParams.docBase64);
18
- delete tokenParams.docBase64;
19
- params = {
20
- ...params,
21
- docBase64Signature: tokenParams.docBase64Signature,
22
- }
23
- }
24
- return {
25
- tokenParams,
26
- requestParams: params,
27
- };
28
- }
29
-
30
- public static verify(params: any) {
31
-
32
- if(!params.hasOwnProperty("docBase64") || isUndefinedOrNullOrEmpty(params.docBase64)) {
33
- return true;
34
- }
35
-
36
- if(isUndefinedOrNullOrEmpty(params?.docBase64Signature)) {
37
- return false;
38
- }
39
-
40
- return this.verifyHash(params.docBase64, params.docBase64Signature);
41
- }
42
-
43
- public static verifyHash(message: string, hash: string) {
44
- const signature = this.hashMessage(message);
45
- return signature == hash;
46
- }
47
-
48
-
49
- public static hashMessage(message: string) {
50
- return mxw.utils.hashMessage(message);
51
- }
52
- }
@@ -1,55 +0,0 @@
1
-
2
- import fs from "fs";
3
- import { errors, INVALID_REQUEST } from "mxw-libs-errors";
4
- import { base64 } from "mxw-libs-utils";
5
- import path from 'path'
6
- import axios from "axios";
7
-
8
- export default class FileUtils {
9
-
10
-
11
- public static validUrl(url) {
12
- return /http(s)?:\/\/(\w+:?\w*@)?(\S+)(:\d+)?((?<=\.)\w+)+(\/([\w#!:.?+=&%@!\-/])*)?/gi.test(url);
13
- }
14
-
15
- public static validFileType(filename) {
16
- return /(?<=\S+)\.(jpg|png|jpeg|pdf)/gi.test(filename);
17
- }
18
-
19
- public static isImage(filename) {
20
- return /(?<=\S+)\.(jpg|png|jpeg)/gi.test(filename);
21
- }
22
-
23
- public static readFileAndConvert(fileName: string) {
24
- if (fs.statSync(fileName).isFile()) {
25
- return FileUtils.base64ToNode(fs.readFileSync(path.resolve(fileName)));
26
- }
27
- return null;
28
- }
29
-
30
- public static base64ToNode(buffer: Buffer) {
31
- return buffer.toString('base64');
32
- }
33
-
34
-
35
- public static writeFile(filename: string, data: string) {
36
- const buffer = Buffer.from(base64.decode(data));
37
- return this.writeBufferToFile(filename, buffer);
38
- }
39
-
40
- public static writeToFile(filename: string, data: string) {
41
- const buffer = Buffer.from(data, "utf-8");
42
- return this.writeBufferToFile(filename, buffer);
43
- }
44
-
45
- public static writeBufferToFile(filename: string, buffer: Buffer) {
46
- return new Promise<void>((resolve, reject) => {
47
- fs.writeFile(filename, buffer, {}, (error) => {
48
- if (error) {
49
- return reject(error);
50
- }
51
- return resolve();
52
- });
53
- });
54
- }
55
- }
@@ -1,32 +0,0 @@
1
- {
2
- "compilerOptions": {
3
- "module": "commonjs",
4
- "esModuleInterop": true,
5
- "target": "es6",
6
- "noImplicitAny": false,
7
- // "noUnusedLocals": true,
8
- "forceConsistentCasingInFileNames": true,
9
- "noFallthroughCasesInSwitch": true,
10
- "moduleResolution": "node",
11
- "sourceMap": true,
12
- "outDir": "dist",
13
- "baseUrl": "./",
14
- "paths": {
15
- "*": [
16
- "node_modules/*",
17
- "src/types/*"
18
- ]
19
- },
20
- "typeRoots": [
21
- "node_modules/@types/*"
22
- ],
23
- "types": [
24
- "node"
25
- ]
26
- },
27
- "exclude": [
28
- "src/**/*.test.ts",
29
- "src/**/**/*.test.ts",
30
- "src/**/**/**/*.test.ts"
31
- ]
32
- }
@@ -1,6 +0,0 @@
1
- dist
2
- node_modules
3
-
4
- .tomg-config
5
- generated
6
- .pem
@@ -1,174 +0,0 @@
1
- # Project must implement Makefile for commands (test, version-prerelease, version-patch, name, version, image)
2
- # command:
3
- # - test: run project test cases
4
- # - version-prerelease: bump prerelease version
5
- # - version-patch: bump release version
6
- # - name: display project name
7
- # - version: display project version
8
- # - image: display project name and version (e.g. hello-world:1.0.0)
9
- #
10
- stages:
11
- # run test cases
12
- - test
13
- # build container image and push to registry
14
- - prepare
15
- - build-init
16
- - build
17
- - build-commit
18
- # mark release commit as verified
19
- - release
20
- - notify
21
-
22
- run-test:
23
- stage: test
24
- image: registry-intl.cn-hongkong.aliyuncs.com/gkci/docker:18-ci
25
- services:
26
- - docker:18-dind
27
- script:
28
- - make test
29
- rules:
30
- # NOT triggerred by bot and NOT commit message contains `run-without-release` keyword and NOT tag was created
31
- - if: '$CI_COMMIT_MESSAGE =~ /release-by-bot/ || $CI_COMMIT_MESSAGE =~ /run-without-release/ || $CI_COMMIT_TAG != null'
32
- when: never
33
- # Merge request
34
- - if: '$CI_PIPELINE_SOURCE == "merge_request_event"'
35
- # Commit to protected branch or commit branch is default branch (master)
36
- - if: '$CI_COMMIT_REF_PROTECTED == "true" || $CI_COMMIT_BRANCH == $CI_DEFAULT_BRANCH'
37
- # Commit message contains `run-test` keyword
38
- - if: '$CI_COMMIT_MESSAGE =~ /run-test/'
39
- # Commit message contains `run-prerelease` keyword and commit branch is not default branch (master)
40
- - if: '$CI_COMMIT_MESSAGE =~ /run-prerelease/ && $CI_COMMIT_BRANCH != $CI_DEFAULT_BRANCH'
41
-
42
- run-pre-prepare:
43
- stage: prepare
44
- image: registry-intl.cn-hongkong.aliyuncs.com/gkci/node:10.20.0-alpine-ci-1
45
- artifacts:
46
- paths:
47
- - package.json
48
- - package-lock.json
49
- - image-tag.txt
50
- - postman-collection.json
51
- script:
52
- - make spec
53
- - make version-prerelease
54
- - make image | awk '{ printf("%s/%s/%s", ENVIRON["CONTAINER_REGISTRY_URL"], ENVIRON["CONTAINER_REGISTRY_NAMESPACE"], $0)}' > image-tag.txt
55
- rules:
56
- # NOT triggerred by bot and NOT commit message contains `run-without-release` keyword and NOT merge request and NOT tag was created
57
- - if: '$CI_COMMIT_MESSAGE =~ /release-by-bot/ || $CI_COMMIT_MESSAGE =~ /run-without-release/ || $CI_PIPELINE_SOURCE == "merge_request_event" || $CI_COMMIT_TAG != null'
58
- when: never
59
- # Commit message contains `run-prerelease` keyword and commit branch is not default branch (master)
60
- - if: '$CI_COMMIT_MESSAGE =~ /run-prerelease/ && $CI_COMMIT_BRANCH != $CI_DEFAULT_BRANCH'
61
-
62
- run-prepare:
63
- stage: prepare
64
- image: registry-intl.cn-hongkong.aliyuncs.com/gkci/node:10.20.0-alpine-ci-1
65
- artifacts:
66
- paths:
67
- - package.json
68
- - package-lock.json
69
- - image-tag.txt
70
- - postman-collection.json
71
- script:
72
- - make spec
73
- - make version-patch
74
- - make image | awk '{ printf("%s/%s/%s", ENVIRON["CONTAINER_REGISTRY_URL"], ENVIRON["CONTAINER_REGISTRY_NAMESPACE"], $0)}' > image-tag.txt
75
- rules:
76
- # NOT triggerred by bot and NOT commit message contains `run-without-release` keyword and NOT merge request and NOT tag was created
77
- - if: '$CI_COMMIT_MESSAGE =~ /release-by-bot/ || $CI_COMMIT_MESSAGE =~ /run-without-release/ || $CI_PIPELINE_SOURCE == "merge_request_event" || $CI_COMMIT_TAG != null'
78
- when: never
79
- # Commit into default branch (master)
80
- - if: '$CI_COMMIT_BRANCH == $CI_DEFAULT_BRANCH'
81
-
82
- run-build-warmer:
83
- stage: build-init
84
- image:
85
- name: registry-intl.cn-hongkong.aliyuncs.com/gkci/kaniko-warmer:debug
86
- entrypoint: [""]
87
- before_script:
88
- - echo "$DOCKER_AUTH_CONFIG" > /kaniko/.docker/config.json
89
- script:
90
- - warmer `cat $CI_PROJECT_DIR/Dockerfile | grep FROM | awk -F" " '{ printf("--image=%s ", $2) }'`
91
- rules:
92
- # NOT triggerred by bot and NOT commit message contains `run-without-release` keyword and NOT merge request and NOT tag was created
93
- - if: '$CI_COMMIT_MESSAGE =~ /release-by-bot/ || $CI_COMMIT_MESSAGE =~ /run-without-release/ || $CI_PIPELINE_SOURCE == "merge_request_event" || $CI_COMMIT_TAG != null'
94
- when: never
95
- # Commit message contains `run-prerelease` keyword and commit branch is not default branch (master)
96
- - if: '$CI_COMMIT_MESSAGE =~ /run-prerelease/ && $CI_COMMIT_BRANCH != $CI_DEFAULT_BRANCH'
97
- # Commit into default branch (master)
98
- - if: '$CI_COMMIT_BRANCH == $CI_DEFAULT_BRANCH'
99
-
100
- run-build:
101
- stage: build
102
- image:
103
- name: registry-intl.cn-hongkong.aliyuncs.com/gkci/kaniko-executor:debug
104
- entrypoint: [""]
105
- artifacts:
106
- paths:
107
- - image-digest.txt
108
- before_script:
109
- - echo "$DOCKER_AUTH_CONFIG" > /kaniko/.docker/config.json
110
- script:
111
- - echo "BUILDING... `cat $CI_PROJECT_DIR/image-tag.txt`"
112
- - if [ -f $CI_PROJECT_DIR/dependency.txt ] && ! [ -z "`cat $CI_PROJECT_DIR/dependency.txt`" ]; then cat $CI_PROJECT_DIR/dependency.txt | awk '{$1=$1;print;exit}' > $CI_PROJECT_DIR/dep.txt; else echo > $CI_PROJECT_DIR/dep.txt; fi
113
- - echo -n 'LABEL DEPENDENCY='; cat $CI_PROJECT_DIR/dep.txt
114
- - executor --cache=true --context $CI_PROJECT_DIR --dockerfile $CI_PROJECT_DIR/Dockerfile --digest-file $CI_PROJECT_DIR/image-digest.txt --destination "`cat $CI_PROJECT_DIR/image-tag.txt`" --label "dependency=`cat $CI_PROJECT_DIR/dep.txt`"
115
- - echo "PUSHED `cat $CI_PROJECT_DIR/image-tag.txt` (`cat $CI_PROJECT_DIR/image-digest.txt`)"
116
- rules:
117
- # NOT triggerred by bot and NOT commit message contains `run-without-release` keyword and NOT merge request and NOT tag was created
118
- - if: '$CI_COMMIT_MESSAGE =~ /release-by-bot/ || $CI_COMMIT_MESSAGE =~ /run-without-release/ || $CI_PIPELINE_SOURCE == "merge_request_event" || $CI_COMMIT_TAG != null'
119
- when: never
120
- # Commit message contains `run-prerelease` keyword and commit branch is not default branch (master)
121
- - if: '$CI_COMMIT_MESSAGE =~ /run-prerelease/ && $CI_COMMIT_BRANCH != $CI_DEFAULT_BRANCH'
122
- # Commit into default branch (master)
123
- - if: '$CI_COMMIT_BRANCH == $CI_DEFAULT_BRANCH'
124
-
125
- run-build-commit:
126
- stage: build-commit
127
- image: registry-intl.cn-hongkong.aliyuncs.com/gkci/node:10.20.0-alpine-ci-1
128
- before_script:
129
- - git config --global user.name "$GITLAB_USER_NAME"
130
- - git config --global user.email "$GITLAB_USER_EMAIL"
131
- script:
132
- - git add -A
133
- - git commit -m "$(make version)" -m "== release-by-bot ($CI_COMMIT_SHA) =="
134
- - git tag -a "$(make version)" -m "$(cat image-tag.txt) ($(cat image-digest.txt))"
135
- - git push "https://${GITLAB_USER_NAME}:${CI_GIT_TOKEN}@${CI_REPOSITORY_URL#*@}" "HEAD:${CI_COMMIT_BRANCH}"
136
- - git push "https://${GITLAB_USER_NAME}:${CI_GIT_TOKEN}@${CI_REPOSITORY_URL#*@}" --tags
137
- rules:
138
- # NOT triggerred by bot and NOT commit message contains `run-without-release` keyword and NOT merge request and NOT tag was created
139
- - if: '$CI_COMMIT_MESSAGE =~ /release-by-bot/ || $CI_COMMIT_MESSAGE =~ /run-without-release/ || $CI_PIPELINE_SOURCE == "merge_request_event" || $CI_COMMIT_TAG != null'
140
- when: never
141
- # Commit message contains `run-prerelease` keyword and commit branch is not default branch (master)
142
- - if: '$CI_COMMIT_MESSAGE =~ /run-prerelease/ && $CI_COMMIT_BRANCH != $CI_DEFAULT_BRANCH'
143
- # Commit into default branch (master)
144
- - if: '$CI_COMMIT_BRANCH == $CI_DEFAULT_BRANCH'
145
-
146
- run-release:
147
- stage: release
148
- image: registry-intl.cn-hongkong.aliyuncs.com/gkci/node:10.20.0-alpine-ci-1
149
- script:
150
- - echo "Bumped version $(make version)"
151
- rules:
152
- # NOT commit message contains `run-without-release` keyword and NOT merge request
153
- - if: '$CI_COMMIT_MESSAGE =~ /run-without-release/ || $CI_PIPELINE_SOURCE == "merge_request_event"'
154
- when: never
155
- # Tag was created
156
- - if: '$CI_COMMIT_TAG != null'
157
-
158
- run-notify:
159
- stage: notify
160
- image: registry-intl.cn-hongkong.aliyuncs.com/gkci/node:10.20.0-alpine-ci-1
161
- before_script:
162
- - apk --no-cache add curl
163
- script:
164
- - 'curl -X POST -H "Content-Type: application/json" -d "{\"chat_id\": \"$TELEGRAM_CHAT_ID\", \"text\": \"CI: $CI_PROJECT_NAMESPACE/$CI_PROJECT_NAME version:$(make version) has been released \"}" https://api.telegram.org/bot$TELEGRAM_BOT_TOKEN/sendMessage'
165
- rules:
166
- # NOT triggerred by bot and NOT commit message contains `run-without-release` keyword and NOT merge request and NOT tag was created
167
- - if: '$CI_COMMIT_MESSAGE =~ /release-by-bot/ || $CI_COMMIT_MESSAGE =~ /run-without-release/ || $CI_PIPELINE_SOURCE == "merge_request_event" || $CI_COMMIT_TAG != null'
168
- when: never
169
- - if: '$TELEGRAM_BOT_TOKEN == null || $TELEGRAM_BOT_TOKEN == "" || $TELEGRAM_CHAT_ID == null || $TELEGRAM_CHAT_ID == ""'
170
- when: never
171
- # Commit message contains `run-prerelease` keyword and commit branch is not default branch (master)
172
- - if: '$CI_COMMIT_MESSAGE =~ /run-prerelease/ && $CI_COMMIT_BRANCH != $CI_DEFAULT_BRANCH'
173
- # Commit into default branch (master)
174
- - if: '$CI_COMMIT_BRANCH == $CI_DEFAULT_BRANCH'
@@ -1 +0,0 @@
1
- v16.14.2
@@ -1,4 +0,0 @@
1
- {
2
- "singleQuote": true,
3
- "trailingComma": "all"
4
- }
@@ -1,95 +0,0 @@
1
- MAKEFILE := $(abspath $(lastword $(MAKEFILE_LIST)))
2
- ROOT_PATH := $(shell pwd)
3
- SERVICE_NAME := <%= projectName %>
4
-
5
- .PHONY: version name image
6
-
7
- version-major: version-sync
8
- @npm -s version major --no-git-tag-version
9
-
10
- version-minor: version-sync
11
- @npm -s version minor --no-git-tag-version
12
-
13
- version-patch: version-sync
14
- @npm -s version patch --no-git-tag-version
15
-
16
- version-prerelease: version-sync
17
- @npm -s version prerelease --preid=rc --no-git-tag-version
18
-
19
- version-latest:
20
- @(git tag --sort=-creatordate || echo) | awk 'NR==1 { \
21
- split($$0, n, "-"); \
22
- if (n[1] != "") { \
23
- split(n[1], v, "."); \
24
- if (v[1] ~ /^[0-9]+$$/ && v[2] ~ /^[0-9]+$$/ && v[3] ~ /^[0-9]+$$/) { \
25
- print $$0; \
26
- exit 0; \
27
- } \
28
- } \
29
- print "1.0.0-rc.0"; \
30
- } \
31
- END { \
32
- if (NR == 0) { \
33
- print "1.0.0-rc.0"; \
34
- } \
35
- }'
36
-
37
- version-sync:
38
- @git checkout $(CI_COMMIT_BRANCH)
39
- @git pull --tags 2&>/dev/null || true
40
- @git tag --sort=-creatordate | head -10
41
- @cat package.json | jq -r --arg PKG_VERSION `make --no-print-directory -f$(MAKEFILE) version-latest` '.version=$$PKG_VERSION' > package.json;
42
- @echo -n "Current Git tag: "; cat package.json | jq -r '.version'
43
-
44
- version:
45
- @echo $(shell node -p "require('$(ROOT_PATH)/package.json').version")
46
-
47
- name:
48
- @echo $(SERVICE_NAME)
49
-
50
- image:
51
- @echo $(SERVICE_NAME):$(shell node -p "require('$(ROOT_PATH)/package.json').version")
52
-
53
- test:
54
- @npm i
55
- @npm run -s test
56
-
57
- spec:
58
- @set -e -o pipefail; \
59
- if [ -f "$(ROOT_PATH)/spec.yaml" ]; then \
60
- make --no-print-directory -f$(MAKEFILE) spec-file > $(ROOT_PATH)/all-spec.yaml; \
61
- openapi2postmanv2 -s $(ROOT_PATH)/all-spec.yaml -o postman-collection.json | \
62
- awk ' \
63
- BEGIN{ result = 0; error = "" } \
64
- { \
65
- if (0 < index($$0, "Conversion successful, collection written to file")) { \
66
- result = 1; \
67
- } \
68
- error = error $$0; \
69
- } \
70
- END{ \
71
- if (result != 1) { \
72
- print error; \
73
- exit(-1); \
74
- } \
75
- }'; \
76
- rm -f $(ROOT_PATH)/all-spec.yaml; \
77
- fi;
78
-
79
- spec-file:
80
- @cat $(ROOT_PATH)/spec.yaml;
81
- @for file in `find $(ROOT_PATH)/src -iname "*-spec.yaml"`; do \
82
- echo ""; \
83
- cat $$file; \
84
- done;
85
-
86
-
87
- gen-keypair:
88
- @openssl genrsa -out private.pem 2048
89
- @openssl rsa -in private.pem -pubout -out public.pem
90
-
91
- view-privatekey:
92
- @awk '{printf "%s\\n", $$0}' private.pem
93
-
94
- view-publickey:
95
- @awk '{printf "%s\\n", $$0}' public.pem
@@ -1,11 +0,0 @@
1
- {
2
- "$schema": "https://json.schemastore.org/nest-cli",
3
- "collection": "@nestjs/schematics",
4
- "sourceRoot": "src",
5
- "compilerOptions": {
6
- "deleteOutDir": true,
7
- "assets": [
8
- "i18n/**/*"
9
- ]
10
- }
11
- }
@@ -1,24 +0,0 @@
1
- import { Test, TestingModule } from '@nestjs/testing';
2
- import { AppController } from './app.controller';
3
- import { AppService } from '@/app.service';
4
-
5
- describe('AppController', () => {
6
- let appController: AppController;
7
- let appService: AppService;
8
-
9
- beforeEach(async () => {
10
- const app: TestingModule = await Test.createTestingModule({
11
- controllers: [AppController],
12
- providers: [AppService],
13
- }).compile();
14
-
15
- appController = app.get<AppController>(AppController);
16
- appService = app.get(AppService);
17
- });
18
-
19
- describe('root', () => {
20
- it('should return "App Version"', () => {
21
- expect(appController.get()).toEqual(appService.displayVersion());
22
- });
23
- });
24
- });
@@ -1,27 +0,0 @@
1
- import { JsonResponse } from '@nathapp/common';
2
- import { Public } from '@nathapp/nestjs-auth';
3
- import { Controller, Get } from '@nestjs/common';
4
- import { AppService } from './app.service';
5
-
6
- @Controller()
7
- export class AppController {
8
- constructor(private readonly appService: AppService) { }
9
-
10
- @Get('/')
11
- @Public()
12
- get() {
13
- return this.appService.displayVersion();
14
- }
15
-
16
- @Get('/liveness')
17
- @Public()
18
- liveness() {
19
- return JsonResponse.Ok({});
20
- }
21
-
22
- @Get('/readiness')
23
- @Public()
24
- readiness() {
25
- return JsonResponse.Ok({});
26
- }
27
- }
@@ -1,49 +0,0 @@
1
- import {
2
- DefaultJwtModuleOptionsFactory,
3
- JwtModule,
4
- JwtRefreshGuard,
5
- JwtRefreshStrategy,
6
- JwtStrategy,
7
- } from '@nathapp/nestjs-auth';
8
- import { I18nCoreModule, LoggerMiddleware } from '@nathapp/nestjs-common';
9
- import {
10
- MiddlewareConsumer,
11
- Module,
12
- NestModule,
13
- RequestMethod,
14
- } from '@nestjs/common';
15
- import { ConfigModule } from '@nestjs/config';
16
- import { AppController } from './app.controller';
17
- import { AppService } from './app.service';
18
-
19
- @Module({
20
- imports: [
21
- ConfigModule.forRoot(),
22
- JwtModule.forRootAsync({
23
- imports: [ConfigModule],
24
- useClass: DefaultJwtModuleOptionsFactory,
25
- }),
26
- I18nCoreModule.forRoot(),
27
- ],
28
- controllers: [AppController],
29
- providers: [
30
- AppService,
31
- JwtModule,
32
- JwtStrategy,
33
- //JwtRefreshStrategy,
34
- //JwtRefreshGuard,
35
- ],
36
- })
37
- export class AppModule implements NestModule {
38
- configure(consumer: MiddlewareConsumer) {
39
- consumer
40
- .apply(LoggerMiddleware)
41
- .exclude(
42
- { path: '/', method: RequestMethod.GET },
43
- { path: '/favicon.ico', method: RequestMethod.GET },
44
- { path: '/liveness', method: RequestMethod.GET },
45
- { path: '/readiness', method: RequestMethod.GET },
46
- )
47
- .forRoutes({ path: '*', method: RequestMethod.ALL });
48
- }
49
- }
@@ -1,27 +0,0 @@
1
- import { JsonResponse } from '@nathapp/common';
2
- import { Injectable } from '@nestjs/common';
3
-
4
- @Injectable()
5
- export class AppService {
6
- displayVersion(): any {
7
- return JsonResponse.Ok({
8
- version: `${process.env.npm_package_name} ${process.env.npm_package_version}`,
9
- });
10
- }
11
-
12
- appVersion(): string {
13
- return process.env.npm_package_version || '1.0.0-rc.0';
14
- }
15
-
16
- appName(): string {
17
- return process.env.npm_package_name || 'noname-app';
18
- }
19
-
20
- getAppInfo(): any {
21
- return {
22
- name: this.appName(),
23
- version: this.appVersion(),
24
- description: '',
25
- };
26
- }
27
- }
@@ -1,26 +0,0 @@
1
- import { AppFactory } from '@nathapp/nestjs-app';
2
- import { getLoggerLevel } from '@nathapp/nestjs-common';
3
- import { AppModule } from './app.module';
4
- import { AppService } from './app.service';
5
-
6
- async function bootstrap() {
7
- <%if (isFastify) { -%>
8
- const app = await AppFactory.createFastifyApp(AppModule, {
9
- logger: getLoggerLevel(),
10
- });
11
- <% } else{ %>
12
- const app = await AppFactory.create(AppModule, {
13
- logger: getLoggerLevel(),
14
- });
15
- <% }-%>
16
- const appService = app.get(AppService);
17
- app
18
- .useAppGlobalPipes()
19
- .useAppGlobalPrefix()
20
- .useAppGlobalFilters()
21
- .useAppGlobalGuards()
22
- .useSwaggerUIOnDevOnly(appService.getAppInfo());
23
-
24
- await app.start();
25
- }
26
- bootstrap();
@@ -1,47 +0,0 @@
1
- import { Test, TestingModule } from '@nestjs/testing';
2
- import { INestApplication } from '@nestjs/common';
3
- import * as request from 'supertest';
4
- import { AppModule } from './../src/app.module';
5
- import { AppService } from './../src/app.service';
6
- <%if (isFastify) { -%>
7
- import {
8
- FastifyAdapter,
9
- NestFastifyApplication,
10
- } from '@nestjs/platform-fastify';
11
- <% }-%>
12
-
13
- describe('AppController (e2e)', () => {
14
- let app: INestApplication;
15
- let appService: AppService;
16
-
17
- beforeEach(async () => {
18
- const moduleFixture: TestingModule = await Test.createTestingModule({
19
- imports: [AppModule],
20
- }).compile();
21
-
22
- <%if (isFastify) { -%>
23
- app = moduleFixture.createNestApplication<NestFastifyApplication>(
24
- new FastifyAdapter(),
25
- );
26
- <% } else{ %>
27
- app = moduleFixture.createNestApplication();
28
- <% }-%>
29
- appService = app.get(AppService);
30
- await app.init();
31
- <%if (isFastify) { -%>
32
- await app.getHttpAdapter().getInstance().ready();
33
- <% }-%>
34
- });
35
-
36
- afterEach(async () => {
37
- await app.close();
38
- });
39
-
40
- it('/ (GET)', () => {
41
- const response = appService.displayVersion();
42
- return request(app.getHttpServer())
43
- .get('/')
44
- .expect(200)
45
- .expect({ ret: response.ret, data: response.data });
46
- });
47
- });
@@ -1,4 +0,0 @@
1
- {
2
- "extends": "./tsconfig.json",
3
- "exclude": ["generated", "node_modules", "test", "dist", "**/*spec.ts"]
4
- }
@@ -1,24 +0,0 @@
1
- {
2
- "compilerOptions": {
3
- "module": "commonjs",
4
- "declaration": true,
5
- "removeComments": true,
6
- "emitDecoratorMetadata": true,
7
- "experimentalDecorators": true,
8
- "allowSyntheticDefaultImports": true,
9
- "target": "es2017",
10
- "sourceMap": true,
11
- "outDir": "./dist",
12
- "baseUrl": "./",
13
- "incremental": true,
14
- "skipLibCheck": true,
15
- "strictNullChecks": false,
16
- "noImplicitAny": false,
17
- "strictBindCallApply": false,
18
- "forceConsistentCasingInFileNames": false,
19
- "noFallthroughCasesInSwitch": false,
20
- "paths": {
21
- "@/*": ["src/*"],
22
- }
23
- }
24
- }