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

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 (387) hide show
  1. package/README.md +1 -1
  2. package/dist/index.js +0 -0
  3. package/dist/templates/k8s-cert-manager/README.md +60 -0
  4. package/dist/templates/k8s-cert-manager/cloudflare-cert-manager-issuer.yaml +26 -0
  5. package/dist/templates/k8s-deployment/templates/_deployment.tpl +1 -1
  6. package/dist/templates/k8s-deployment/templates/_endpointslice.tpl +42 -0
  7. package/dist/templates/k8s-deployment/templates/_gateway.tpl +94 -0
  8. package/dist/templates/k8s-deployment/templates/_grpcroute.tpl +186 -0
  9. package/dist/templates/k8s-deployment/templates/_httproute.tpl +209 -0
  10. package/dist/templates/k8s-deployment/templates/_ingressroute.tpl +178 -0
  11. package/dist/templates/k8s-deployment/templates/_middleware.tpl +553 -0
  12. package/dist/templates/k8s-deployment/templates/_serverstransport.tpl +73 -0
  13. package/dist/templates/k8s-deployment/templates/_service.tpl +4 -1
  14. package/dist/templates/k8s-helm-chart/templates/endpointslice.yaml +1 -0
  15. package/dist/templates/k8s-helm-chart/templates/gateway.yaml +1 -0
  16. package/dist/templates/k8s-helm-chart/templates/grpcroute.yaml +1 -0
  17. package/dist/templates/k8s-helm-chart/templates/httproute.yaml +1 -0
  18. package/dist/templates/k8s-helm-chart/templates/ingressroute.yaml +1 -0
  19. package/dist/templates/k8s-helm-chart/templates/middleware.yaml +1 -0
  20. package/dist/templates/k8s-helm-chart/templates/serverstransport.yaml +1 -0
  21. package/dist/templates/k8s-helm-chart/values.yaml +3 -5
  22. package/dist/templates/nestjs-api/{.env → .env.local} +5 -0
  23. package/dist/templates/nestjs-api/.gitignore-rename +2 -1
  24. package/dist/templates/nestjs-api/Dockerfile +33 -13
  25. package/dist/templates/nestjs-api/package.json +23 -14
  26. package/dist/templates/nestjs-api/src/i18n/en_US/date.json +7 -0
  27. package/dist/templates/nestjs-api/src/i18n/en_US/validation.json +16 -0
  28. package/dist/templates/nestjs-api/src/i18n/zh_CN/date.json +7 -0
  29. package/dist/templates/nestjs-api/src/i18n/zh_CN/validation.json +16 -0
  30. package/dist/templates/nestjs-api/src/i18n/zh_TW/date.json +7 -0
  31. package/dist/templates/nestjs-api/src/i18n/zh_TW/validation.json +16 -0
  32. package/dist/templates/nestjs-library/.npmignore-rename +4 -0
  33. package/dist/templates/nestjs-library/package.json +2 -2
  34. package/dist/templates/ts-library/.npmignore-rename +4 -0
  35. package/dist/templates/turbo-nestjs-vuexy/README.md +3 -0
  36. package/dist/templates/turbo-nestjs-vuexy/package.json +49 -0
  37. package/dist/templates/turbo-nestjs-vuexy/packages/eslint-config/README.md +3 -0
  38. package/dist/templates/turbo-nestjs-vuexy/packages/eslint-config/library.js +43 -0
  39. package/dist/templates/turbo-nestjs-vuexy/packages/eslint-config/package.json +18 -0
  40. package/dist/templates/turbo-nestjs-vuexy/packages/eslint-config/vue.js +236 -0
  41. package/dist/templates/{ts-library/tsconfig.json → turbo-nestjs-vuexy/packages/typescript-config/base.json} +4 -6
  42. package/dist/templates/turbo-nestjs-vuexy/packages/typescript-config/nestjs.json +12 -0
  43. package/dist/templates/turbo-nestjs-vuexy/packages/typescript-config/package.json +9 -0
  44. package/dist/templates/turbo-nestjs-vuexy/packages/typescript-config/vue.json +82 -0
  45. package/dist/templates/turbo-nestjs-vuexy/turbo.json +24 -0
  46. package/dist/templates/vuexy-portal/.editorconfig +1 -0
  47. package/dist/templates/vuexy-portal/.eslintrc.cjs +237 -0
  48. package/dist/templates/vuexy-portal/.gitignore-rename +42 -0
  49. package/dist/templates/vuexy-portal/.stylelintrc.json +46 -0
  50. package/dist/templates/vuexy-portal/Dockerfile +43 -0
  51. package/dist/templates/vuexy-portal/README.md +35 -0
  52. package/dist/templates/vuexy-portal/auto-imports.d.ts +1131 -0
  53. package/dist/templates/vuexy-portal/components.d.ts +68 -0
  54. package/dist/templates/vuexy-portal/dev.Dockerfile +25 -0
  55. package/dist/templates/vuexy-portal/docker-compose.dev.yml +14 -0
  56. package/dist/templates/vuexy-portal/docker-compose.prod.yml +13 -0
  57. package/dist/templates/vuexy-portal/entrypoint.sh +6 -0
  58. package/dist/templates/vuexy-portal/env.d.ts +12 -0
  59. package/dist/templates/vuexy-portal/index.html +57 -0
  60. package/dist/templates/vuexy-portal/nginx.conf +14 -0
  61. package/dist/templates/vuexy-portal/package.json +140 -0
  62. package/dist/templates/vuexy-portal/pnpm-lock.yaml +7963 -0
  63. package/dist/templates/vuexy-portal/prod.Dockerfile +41 -0
  64. package/dist/templates/vuexy-portal/public/favicon.ico +0 -0
  65. package/dist/templates/vuexy-portal/public/images/avatars/avatar-1.png +0 -0
  66. package/dist/templates/vuexy-portal/public/images/avatars/avatar-2.png +0 -0
  67. package/dist/templates/vuexy-portal/public/images/svg/discord.svg +10 -0
  68. package/dist/templates/vuexy-portal/public/images/svg/gift.svg +8 -0
  69. package/dist/templates/vuexy-portal/public/images/svg/keyboard.svg +8 -0
  70. package/dist/templates/vuexy-portal/public/images/svg/laptop.svg +8 -0
  71. package/dist/templates/vuexy-portal/public/images/svg/lightbulb.svg +8 -0
  72. package/dist/templates/vuexy-portal/public/images/svg/rocket.svg +8 -0
  73. package/dist/templates/vuexy-portal/public/loader.css +79 -0
  74. package/dist/templates/vuexy-portal/public/mockServiceWorker.js +287 -0
  75. package/dist/templates/vuexy-portal/shims.d.ts +15 -0
  76. package/dist/templates/vuexy-portal/src/@core/components/AppBarSearch.vue +278 -0
  77. package/dist/templates/vuexy-portal/src/@core/components/AppDrawerHeaderSection.vue +30 -0
  78. package/dist/templates/vuexy-portal/src/@core/components/AppStepper.vue +371 -0
  79. package/dist/templates/vuexy-portal/src/@core/components/BuyNow.vue +92 -0
  80. package/dist/templates/vuexy-portal/src/@core/components/CardStatisticsVerticalSimple.vue +35 -0
  81. package/dist/templates/vuexy-portal/src/@core/components/CustomizerSection.vue +27 -0
  82. package/dist/templates/vuexy-portal/src/@core/components/DialogCloseBtn.vue +25 -0
  83. package/dist/templates/vuexy-portal/src/@core/components/DropZone.vue +135 -0
  84. package/dist/templates/vuexy-portal/src/@core/components/I18n.vue +48 -0
  85. package/dist/templates/vuexy-portal/src/@core/components/MoreBtn.vue +24 -0
  86. package/dist/templates/vuexy-portal/src/@core/components/Notifications.vue +245 -0
  87. package/dist/templates/vuexy-portal/src/@core/components/ProductDescriptionEditor.vue +198 -0
  88. package/dist/templates/vuexy-portal/src/@core/components/ScrollToTop.vue +41 -0
  89. package/dist/templates/vuexy-portal/src/@core/components/Shortcuts.vue +99 -0
  90. package/dist/templates/vuexy-portal/src/@core/components/TablePagination.vue +39 -0
  91. package/dist/templates/vuexy-portal/src/@core/components/TheCustomizer.vue +618 -0
  92. package/dist/templates/vuexy-portal/src/@core/components/ThemeSwitcher.vue +61 -0
  93. package/dist/templates/vuexy-portal/src/@core/components/TiptapEditor.vue +166 -0
  94. package/dist/templates/vuexy-portal/src/@core/components/app-form-elements/AppAutocomplete.vue +57 -0
  95. package/dist/templates/vuexy-portal/src/@core/components/app-form-elements/AppCombobox.vue +57 -0
  96. package/dist/templates/vuexy-portal/src/@core/components/app-form-elements/AppDateTimePicker.vue +543 -0
  97. package/dist/templates/vuexy-portal/src/@core/components/app-form-elements/AppSelect.vue +50 -0
  98. package/dist/templates/vuexy-portal/src/@core/components/app-form-elements/AppTextField.vue +78 -0
  99. package/dist/templates/vuexy-portal/src/@core/components/app-form-elements/AppTextarea.vue +50 -0
  100. package/dist/templates/vuexy-portal/src/@core/components/app-form-elements/CustomCheckboxes.vue +81 -0
  101. package/dist/templates/vuexy-portal/src/@core/components/app-form-elements/CustomCheckboxesWithIcon.vue +95 -0
  102. package/dist/templates/vuexy-portal/src/@core/components/app-form-elements/CustomCheckboxesWithImage.vue +93 -0
  103. package/dist/templates/vuexy-portal/src/@core/components/app-form-elements/CustomRadios.vue +81 -0
  104. package/dist/templates/vuexy-portal/src/@core/components/app-form-elements/CustomRadiosWithIcon.vue +88 -0
  105. package/dist/templates/vuexy-portal/src/@core/components/app-form-elements/CustomRadiosWithImage.vue +99 -0
  106. package/dist/templates/vuexy-portal/src/@core/components/cards/AppCardActions.vue +167 -0
  107. package/dist/templates/vuexy-portal/src/@core/components/cards/AppCardCode.vue +152 -0
  108. package/dist/templates/vuexy-portal/src/@core/components/cards/CardStatisticsHorizontal.vue +41 -0
  109. package/dist/templates/vuexy-portal/src/@core/components/cards/CardStatisticsVertical.vue +48 -0
  110. package/dist/templates/vuexy-portal/src/@core/scss/base/_components.scss +185 -0
  111. package/dist/templates/vuexy-portal/src/@core/scss/base/_dark.scss +16 -0
  112. package/dist/templates/vuexy-portal/src/@core/scss/base/_default-layout-w-horizontal-nav.scss +45 -0
  113. package/dist/templates/vuexy-portal/src/@core/scss/base/_default-layout-w-vertical-nav.scss +103 -0
  114. package/dist/templates/vuexy-portal/src/@core/scss/base/_default-layout.scss +16 -0
  115. package/dist/templates/vuexy-portal/src/@core/scss/base/_horizontal-nav.scss +194 -0
  116. package/dist/templates/vuexy-portal/src/@core/scss/base/_index.scss +48 -0
  117. package/dist/templates/vuexy-portal/src/@core/scss/base/_layouts.scss +63 -0
  118. package/dist/templates/vuexy-portal/src/@core/scss/base/_misc.scss +20 -0
  119. package/dist/templates/vuexy-portal/src/@core/scss/base/_mixins.scss +63 -0
  120. package/dist/templates/vuexy-portal/src/@core/scss/base/_route-transitions.scss +70 -0
  121. package/dist/templates/vuexy-portal/src/@core/scss/base/_utilities.scss +181 -0
  122. package/dist/templates/vuexy-portal/src/@core/scss/base/_utils.scss +90 -0
  123. package/dist/templates/vuexy-portal/src/@core/scss/base/_variables.scss +198 -0
  124. package/dist/templates/vuexy-portal/src/@core/scss/base/_vertical-nav.scss +255 -0
  125. package/dist/templates/vuexy-portal/src/@core/scss/base/libs/_perfect-scrollbar.scss +35 -0
  126. package/dist/templates/vuexy-portal/src/@core/scss/base/libs/vuetify/_index.scss +1 -0
  127. package/dist/templates/vuexy-portal/src/@core/scss/base/libs/vuetify/_overrides.scss +264 -0
  128. package/dist/templates/vuexy-portal/src/@core/scss/base/libs/vuetify/_variables.scss +62 -0
  129. package/dist/templates/vuexy-portal/src/@core/scss/base/placeholders/_default-layout-horizontal-nav.scss +27 -0
  130. package/dist/templates/vuexy-portal/src/@core/scss/base/placeholders/_default-layout-vertical-nav.scss +45 -0
  131. package/dist/templates/vuexy-portal/src/@core/scss/base/placeholders/_default-layout.scss +3 -0
  132. package/dist/templates/vuexy-portal/src/@core/scss/base/placeholders/_horizontal-nav.scss +98 -0
  133. package/dist/templates/vuexy-portal/src/@core/scss/base/placeholders/_index.scss +7 -0
  134. package/dist/templates/vuexy-portal/src/@core/scss/base/placeholders/_misc.scss +7 -0
  135. package/dist/templates/vuexy-portal/src/@core/scss/base/placeholders/_nav.scss +33 -0
  136. package/dist/templates/vuexy-portal/src/@core/scss/base/placeholders/_vertical-nav.scss +80 -0
  137. package/dist/templates/vuexy-portal/src/@core/scss/base/skins/_bordered.scss +72 -0
  138. package/dist/templates/vuexy-portal/src/@core/scss/base/skins/_index.scss +1 -0
  139. package/dist/templates/vuexy-portal/src/@core/scss/template/_default-layout-w-horizontal-nav.scss +9 -0
  140. package/dist/templates/vuexy-portal/src/@core/scss/template/_default-layout-w-vertical-nav.scss +20 -0
  141. package/dist/templates/vuexy-portal/src/@core/scss/template/_horizontal-nav.scss +40 -0
  142. package/dist/templates/vuexy-portal/src/@core/scss/template/_mixins.scss +6 -0
  143. package/dist/templates/vuexy-portal/src/@core/scss/template/_utilities.scss +49 -0
  144. package/dist/templates/vuexy-portal/src/@core/scss/template/_variables.scss +102 -0
  145. package/dist/templates/vuexy-portal/src/@core/scss/template/_vertical-nav.scss +47 -0
  146. package/dist/templates/vuexy-portal/src/@core/scss/template/index.scss +17 -0
  147. package/dist/templates/vuexy-portal/src/@core/scss/template/libs/apex-chart.scss +108 -0
  148. package/dist/templates/vuexy-portal/src/@core/scss/template/libs/full-calendar.scss +351 -0
  149. package/dist/templates/vuexy-portal/src/@core/scss/template/libs/shepherd.scss +94 -0
  150. package/dist/templates/vuexy-portal/src/@core/scss/template/libs/swiper.scss +5 -0
  151. package/dist/templates/vuexy-portal/src/@core/scss/template/libs/vuetify/_variables.scss +351 -0
  152. package/dist/templates/vuexy-portal/src/@core/scss/template/libs/vuetify/components/_alert.scss +114 -0
  153. package/dist/templates/vuexy-portal/src/@core/scss/template/libs/vuetify/components/_avatar.scss +27 -0
  154. package/dist/templates/vuexy-portal/src/@core/scss/template/libs/vuetify/components/_badge.scss +25 -0
  155. package/dist/templates/vuexy-portal/src/@core/scss/template/libs/vuetify/components/_button.scss +280 -0
  156. package/dist/templates/vuexy-portal/src/@core/scss/template/libs/vuetify/components/_cards.scss +3 -0
  157. package/dist/templates/vuexy-portal/src/@core/scss/template/libs/vuetify/components/_checkbox.scss +57 -0
  158. package/dist/templates/vuexy-portal/src/@core/scss/template/libs/vuetify/components/_chip.scss +102 -0
  159. package/dist/templates/vuexy-portal/src/@core/scss/template/libs/vuetify/components/_dialog.scss +27 -0
  160. package/dist/templates/vuexy-portal/src/@core/scss/template/libs/vuetify/components/_expansion-panels.scss +106 -0
  161. package/dist/templates/vuexy-portal/src/@core/scss/template/libs/vuetify/components/_field.scss +308 -0
  162. package/dist/templates/vuexy-portal/src/@core/scss/template/libs/vuetify/components/_list.scss +30 -0
  163. package/dist/templates/vuexy-portal/src/@core/scss/template/libs/vuetify/components/_menu.scss +35 -0
  164. package/dist/templates/vuexy-portal/src/@core/scss/template/libs/vuetify/components/_otp-input.scss +17 -0
  165. package/dist/templates/vuexy-portal/src/@core/scss/template/libs/vuetify/components/_pagination.scss +140 -0
  166. package/dist/templates/vuexy-portal/src/@core/scss/template/libs/vuetify/components/_progress.scss +13 -0
  167. package/dist/templates/vuexy-portal/src/@core/scss/template/libs/vuetify/components/_radio.scss +46 -0
  168. package/dist/templates/vuexy-portal/src/@core/scss/template/libs/vuetify/components/_rating.scss +20 -0
  169. package/dist/templates/vuexy-portal/src/@core/scss/template/libs/vuetify/components/_slider.scss +27 -0
  170. package/dist/templates/vuexy-portal/src/@core/scss/template/libs/vuetify/components/_snackbar.scss +10 -0
  171. package/dist/templates/vuexy-portal/src/@core/scss/template/libs/vuetify/components/_switch.scss +58 -0
  172. package/dist/templates/vuexy-portal/src/@core/scss/template/libs/vuetify/components/_table.scss +48 -0
  173. package/dist/templates/vuexy-portal/src/@core/scss/template/libs/vuetify/components/_tabs.scss +91 -0
  174. package/dist/templates/vuexy-portal/src/@core/scss/template/libs/vuetify/components/_textarea.scss +9 -0
  175. package/dist/templates/vuexy-portal/src/@core/scss/template/libs/vuetify/components/_timeline.scss +99 -0
  176. package/dist/templates/vuexy-portal/src/@core/scss/template/libs/vuetify/components/_tooltip.scss +6 -0
  177. package/dist/templates/vuexy-portal/src/@core/scss/template/libs/vuetify/components/index.scss +25 -0
  178. package/dist/templates/vuexy-portal/src/@core/scss/template/libs/vuetify/index.scss +3 -0
  179. package/dist/templates/vuexy-portal/src/@core/scss/template/libs/vuetify/overrides.scss +18 -0
  180. package/dist/templates/vuexy-portal/src/@core/scss/template/pages/misc.scss +20 -0
  181. package/dist/templates/vuexy-portal/src/@core/scss/template/pages/page-auth.scss +63 -0
  182. package/dist/templates/vuexy-portal/src/@core/scss/template/placeholders/_default-layout-horizontal-nav.scss +7 -0
  183. package/dist/templates/vuexy-portal/src/@core/scss/template/placeholders/_default-layout-vertical-nav.scss +8 -0
  184. package/dist/templates/vuexy-portal/src/@core/scss/template/placeholders/_horizontal-nav.scss +47 -0
  185. package/dist/templates/vuexy-portal/src/@core/scss/template/placeholders/_index.scss +6 -0
  186. package/dist/templates/vuexy-portal/src/@core/scss/template/placeholders/_misc.scss +3 -0
  187. package/dist/templates/vuexy-portal/src/@core/scss/template/placeholders/_nav.scss +27 -0
  188. package/dist/templates/vuexy-portal/src/@core/scss/template/placeholders/_vertical-nav.scss +35 -0
  189. package/dist/templates/vuexy-portal/src/@core/scss/template/skins/_bordered.scss +82 -0
  190. package/dist/templates/vuexy-portal/src/@core/scss/template/skins/_index.scss +1 -0
  191. package/dist/templates/vuexy-portal/src/@custom/assets/images/user-profile-header.png +0 -0
  192. package/dist/templates/vuexy-portal/src/@custom/components/ConfirmationDialog.vue +155 -0
  193. package/dist/templates/vuexy-portal/src/@layouts/components/HorizontalNav.vue +35 -0
  194. package/dist/templates/vuexy-portal/src/@layouts/components/HorizontalNavGroup.vue +110 -0
  195. package/dist/templates/vuexy-portal/src/@layouts/components/HorizontalNavLayout.vue +150 -0
  196. package/dist/templates/vuexy-portal/src/@layouts/components/HorizontalNavLink.vue +56 -0
  197. package/dist/templates/vuexy-portal/src/@layouts/components/HorizontalNavPopper.vue +175 -0
  198. package/dist/templates/vuexy-portal/src/@layouts/components/TransitionExpand.vue +92 -0
  199. package/dist/templates/vuexy-portal/src/@layouts/components/VNodeRenderer.tsx +17 -0
  200. package/dist/templates/vuexy-portal/src/@layouts/components/VerticalNav.vue +236 -0
  201. package/dist/templates/vuexy-portal/src/@layouts/components/VerticalNavGroup.vue +267 -0
  202. package/dist/templates/vuexy-portal/src/@layouts/components/VerticalNavLayout.vue +232 -0
  203. package/dist/templates/vuexy-portal/src/@layouts/components/VerticalNavLink.vue +68 -0
  204. package/dist/templates/vuexy-portal/src/@layouts/components/VerticalNavSectionTitle.vue +37 -0
  205. package/dist/templates/vuexy-portal/src/@layouts/styles/_classes.scss +3 -0
  206. package/dist/templates/vuexy-portal/src/@layouts/styles/_default-layout.scss +35 -0
  207. package/dist/templates/vuexy-portal/src/@layouts/styles/_global.scss +10 -0
  208. package/dist/templates/vuexy-portal/src/@layouts/styles/_mixins.scss +30 -0
  209. package/dist/templates/vuexy-portal/src/@layouts/styles/_placeholders.scss +53 -0
  210. package/dist/templates/vuexy-portal/src/@layouts/styles/_rtl.scss +7 -0
  211. package/dist/templates/vuexy-portal/src/@layouts/styles/_variables.scss +29 -0
  212. package/dist/templates/vuexy-portal/src/@layouts/styles/index.scss +3 -0
  213. package/dist/templates/vuexy-portal/src/App.vue +26 -0
  214. package/dist/templates/vuexy-portal/src/assets/images/avatars/avatar-1.png +0 -0
  215. package/dist/templates/vuexy-portal/src/assets/images/customizer-icons/border-light.svg +16 -0
  216. package/dist/templates/vuexy-portal/src/assets/images/customizer-icons/collapsed-light.svg +17 -0
  217. package/dist/templates/vuexy-portal/src/assets/images/customizer-icons/compact-light.svg +11 -0
  218. package/dist/templates/vuexy-portal/src/assets/images/customizer-icons/default-light.svg +17 -0
  219. package/dist/templates/vuexy-portal/src/assets/images/customizer-icons/horizontal-light.svg +12 -0
  220. package/dist/templates/vuexy-portal/src/assets/images/customizer-icons/ltr-light.svg +15 -0
  221. package/dist/templates/vuexy-portal/src/assets/images/customizer-icons/rtl-light.svg +15 -0
  222. package/dist/templates/vuexy-portal/src/assets/images/customizer-icons/wide-light.svg +11 -0
  223. package/dist/templates/vuexy-portal/src/assets/images/logo.svg +6 -0
  224. package/dist/templates/vuexy-portal/src/assets/images/misc/3d-safe-box-with-golden-dollar-coins.png +0 -0
  225. package/dist/templates/vuexy-portal/src/assets/images/misc/3d-space-rocket-with-smoke.png +0 -0
  226. package/dist/templates/vuexy-portal/src/assets/images/misc/dollar-coins-flying-pink-piggy-bank.png +0 -0
  227. package/dist/templates/vuexy-portal/src/assets/images/misc/fleet-car.png +0 -0
  228. package/dist/templates/vuexy-portal/src/assets/images/pages/misc-mask-dark.png +0 -0
  229. package/dist/templates/vuexy-portal/src/assets/images/pages/misc-mask-light.png +0 -0
  230. package/dist/templates/vuexy-portal/src/assets/images/svg/Card.svg +8 -0
  231. package/dist/templates/vuexy-portal/src/assets/images/svg/Check.svg +4 -0
  232. package/dist/templates/vuexy-portal/src/assets/images/svg/Diamond.svg +12 -0
  233. package/dist/templates/vuexy-portal/src/assets/images/svg/Suitcase.svg +4 -0
  234. package/dist/templates/vuexy-portal/src/assets/images/svg/Wallet.svg +10 -0
  235. package/dist/templates/vuexy-portal/src/assets/images/svg/address.svg +25 -0
  236. package/dist/templates/vuexy-portal/src/assets/images/svg/auth-v1-bottom-shape.svg +4 -0
  237. package/dist/templates/vuexy-portal/src/assets/images/svg/auth-v1-top-shape.svg +4 -0
  238. package/dist/templates/vuexy-portal/src/assets/images/svg/cart.svg +5 -0
  239. package/dist/templates/vuexy-portal/src/assets/images/svg/checkbox-checked.svg +4 -0
  240. package/dist/templates/vuexy-portal/src/assets/images/svg/checkbox-indeterminate.svg +4 -0
  241. package/dist/templates/vuexy-portal/src/assets/images/svg/checkbox-unchecked.svg +10 -0
  242. package/dist/templates/vuexy-portal/src/assets/images/svg/discord.svg +10 -0
  243. package/dist/templates/vuexy-portal/src/assets/images/svg/gift.svg +8 -0
  244. package/dist/templates/vuexy-portal/src/assets/images/svg/home.svg +5 -0
  245. package/dist/templates/vuexy-portal/src/assets/images/svg/keyboard.svg +4 -0
  246. package/dist/templates/vuexy-portal/src/assets/images/svg/laptop.svg +4 -0
  247. package/dist/templates/vuexy-portal/src/assets/images/svg/lightbulb.svg +8 -0
  248. package/dist/templates/vuexy-portal/src/assets/images/svg/office.svg +4 -0
  249. package/dist/templates/vuexy-portal/src/assets/images/svg/paper-send.svg +4 -0
  250. package/dist/templates/vuexy-portal/src/assets/images/svg/payment.svg +21 -0
  251. package/dist/templates/vuexy-portal/src/assets/images/svg/radio-checked.svg +3 -0
  252. package/dist/templates/vuexy-portal/src/assets/images/svg/radio-unchecked.svg +3 -0
  253. package/dist/templates/vuexy-portal/src/assets/images/svg/rocket.svg +4 -0
  254. package/dist/templates/vuexy-portal/src/assets/images/svg/trending.svg +14 -0
  255. package/dist/templates/vuexy-portal/src/assets/images/svg/user-info.svg +4 -0
  256. package/dist/templates/vuexy-portal/src/assets/images/svg/user.svg +6 -0
  257. package/dist/templates/vuexy-portal/src/assets/images/svg/wizard-account.svg +6 -0
  258. package/dist/templates/vuexy-portal/src/assets/images/svg/wizard-address.svg +18 -0
  259. package/dist/templates/vuexy-portal/src/assets/images/svg/wizard-personal.svg +6 -0
  260. package/dist/templates/vuexy-portal/src/assets/images/svg/wizard-social-link.svg +6 -0
  261. package/dist/templates/vuexy-portal/src/assets/images/svg/wizard-submit.svg +6 -0
  262. package/dist/templates/vuexy-portal/src/assets/styles/styles.scss +1 -0
  263. package/dist/templates/vuexy-portal/src/assets/styles/variables/_template.scss +6 -0
  264. package/dist/templates/vuexy-portal/src/assets/styles/variables/_vuetify.scss +7 -0
  265. package/dist/templates/vuexy-portal/src/components/AppLoadingIndicator.vue +63 -0
  266. package/dist/templates/vuexy-portal/src/components/AppPricing.vue +247 -0
  267. package/dist/templates/vuexy-portal/src/components/AppSearchHeader.vue +77 -0
  268. package/dist/templates/vuexy-portal/src/components/ErrorHeader.vue +40 -0
  269. package/dist/templates/vuexy-portal/src/components/dialogs/AddAuthenticatorAppDialog.vue +101 -0
  270. package/dist/templates/vuexy-portal/src/components/dialogs/AddEditAddressDialog.vue +238 -0
  271. package/dist/templates/vuexy-portal/src/components/dialogs/AddEditPermissionDialog.vue +93 -0
  272. package/dist/templates/vuexy-portal/src/components/dialogs/AddEditRoleDialog.vue +302 -0
  273. package/dist/templates/vuexy-portal/src/components/dialogs/AddPaymentMethodDialog.vue +120 -0
  274. package/dist/templates/vuexy-portal/src/components/dialogs/CardAddEditDialog.vue +153 -0
  275. package/dist/templates/vuexy-portal/src/components/dialogs/ConfirmDialog.vue +151 -0
  276. package/dist/templates/vuexy-portal/src/components/dialogs/CreateAppDialog.vue +459 -0
  277. package/dist/templates/vuexy-portal/src/components/dialogs/EnableOneTimePasswordDialog.vue +85 -0
  278. package/dist/templates/vuexy-portal/src/components/dialogs/PaymentProvidersDialog.vue +123 -0
  279. package/dist/templates/vuexy-portal/src/components/dialogs/PricingPlanDialog.vue +34 -0
  280. package/dist/templates/vuexy-portal/src/components/dialogs/ReferAndEarnDialog.vue +181 -0
  281. package/dist/templates/vuexy-portal/src/components/dialogs/ShareProjectDialog.vue +198 -0
  282. package/dist/templates/vuexy-portal/src/components/dialogs/TwoFactorAuthDialog.vue +120 -0
  283. package/dist/templates/vuexy-portal/src/components/dialogs/UserInfoEditDialog.vue +246 -0
  284. package/dist/templates/vuexy-portal/src/components/dialogs/UserUpgradePlanDialog.vue +101 -0
  285. package/dist/templates/vuexy-portal/src/layouts/blank.vue +42 -0
  286. package/dist/templates/vuexy-portal/src/layouts/components/DefaultLayoutWithHorizontalNav.vue +75 -0
  287. package/dist/templates/vuexy-portal/src/layouts/components/DefaultLayoutWithVerticalNav.vue +79 -0
  288. package/dist/templates/vuexy-portal/src/layouts/components/Footer.vue +17 -0
  289. package/dist/templates/vuexy-portal/src/layouts/components/NavSearchBar.vue +266 -0
  290. package/dist/templates/vuexy-portal/src/layouts/components/NavbarShortcuts.vue +45 -0
  291. package/dist/templates/vuexy-portal/src/layouts/components/NavbarThemeSwitcher.vue +22 -0
  292. package/dist/templates/vuexy-portal/src/layouts/components/UserProfile.vue +114 -0
  293. package/dist/templates/vuexy-portal/src/layouts/default.vue +30 -0
  294. package/dist/templates/vuexy-portal/src/pages/[...error].vue +46 -0
  295. package/dist/templates/vuexy-portal/src/pages/account-settings/[tab].vue +57 -0
  296. package/dist/templates/vuexy-portal/src/pages/index.vue +32 -0
  297. package/dist/templates/vuexy-portal/src/pages/login.vue +178 -0
  298. package/dist/templates/vuexy-portal/src/pages/not-authorized.vue +47 -0
  299. package/dist/templates/vuexy-portal/src/pages/second-page.vue +13 -0
  300. package/dist/templates/vuexy-portal/src/plugins/casl/shims-ability.d.ts +8 -0
  301. package/dist/templates/vuexy-portal/src/plugins/i18n/locales/en_US.json +88 -0
  302. package/dist/templates/vuexy-portal/src/plugins/i18n/locales/zh_CN.json +88 -0
  303. package/dist/templates/vuexy-portal/src/plugins/i18n/vue-i18n.d.ts +17 -0
  304. package/dist/templates/vuexy-portal/src/plugins/iconify/icons.css +21039 -0
  305. package/dist/templates/vuexy-portal/src/plugins/iconify/package.json +3 -0
  306. package/dist/templates/vuexy-portal/src/views/account-settings/AccountSettingsSecurity.vue +179 -0
  307. package/dist/templates/vuexy-portal/typed-router.d.ts +146 -0
  308. package/dist/utils/template.js +1 -0
  309. package/dist/utils/template.js.map +1 -1
  310. package/package.json +1 -1
  311. package/.gitlab-ci.yml +0 -143
  312. package/Makefile +0 -62
  313. package/dist/templates/db-schema/.gitlab-ci.yml +0 -139
  314. package/dist/templates/db-schema/Makefile +0 -885
  315. package/dist/templates/k8s-deployment/.gitlab-ci.yml +0 -128
  316. package/dist/templates/k8s-deployment/Makefile +0 -196
  317. package/dist/templates/k8s-deployment/resources/charts/mysql/charts/mysql-install/script/Makefile +0 -12
  318. package/dist/templates/k8s-deployment/resources/charts/redis/charts/redis-install/script/Makefile +0 -8
  319. package/dist/templates/k8s-deployment/services/charts/hooks/charts/pre-delete-rsc/script/Makefile +0 -49
  320. package/dist/templates/k8s-deployment/services/charts/tests/charts/e2e-test-cypress/Makefile +0 -9
  321. package/dist/templates/k8s-deployment/services/charts/tests/charts/e2e-test-js/script/Makefile +0 -14
  322. package/dist/templates/k8s-deployment/services/charts/tests/charts/e2e-test-js/tests/_t-0100-readiness-liveness.ts +0 -84
  323. package/dist/templates/k8s-deployment/services/charts/tests/charts/e2e-test-js/tests/hub.ts +0 -372
  324. package/dist/templates/k8s-deployment/services/charts/tests/charts/e2e-test-js/tests/individual-contact.ts +0 -158
  325. package/dist/templates/k8s-deployment/services/charts/tests/charts/e2e-test-js/tests/individual-contract.ts +0 -328
  326. package/dist/templates/k8s-deployment/services/charts/tests/charts/e2e-test-js/tests/individual-kyc.ts +0 -304
  327. package/dist/templates/k8s-deployment/services/charts/tests/charts/e2e-test-js/tests/individual-onboard-app.ts +0 -823
  328. package/dist/templates/k8s-deployment/services/charts/tests/charts/e2e-test-js/tests/individual-onboard-web.ts +0 -493
  329. package/dist/templates/k8s-deployment/services/charts/tests/charts/e2e-test-js/tests/individual-profile.ts +0 -277
  330. package/dist/templates/k8s-deployment/services/charts/tests/charts/e2e-test-js/tests/individual-whitelist.ts +0 -133
  331. package/dist/templates/k8s-deployment/services/charts/tests/charts/e2e-test-js/tests/t-0200-start.ts +0 -172
  332. package/dist/templates/mxw-base-api-express/.dockerignore +0 -2
  333. package/dist/templates/mxw-base-api-express/.env +0 -10
  334. package/dist/templates/mxw-base-api-express/.gitlab-ci.yml +0 -174
  335. package/dist/templates/mxw-base-api-express/.nvmrc +0 -1
  336. package/dist/templates/mxw-base-api-express/Makefile +0 -84
  337. package/dist/templates/mxw-base-api-express/src/app-service.test.ts +0 -94
  338. package/dist/templates/mxw-base-api-express/src/app-service.ts +0 -498
  339. package/dist/templates/mxw-base-api-express/src/auth/auth-user.test.ts +0 -215
  340. package/dist/templates/mxw-base-api-express/src/auth/auth-user.ts +0 -86
  341. package/dist/templates/mxw-base-api-express/src/auth/auth.ts +0 -81
  342. package/dist/templates/mxw-base-api-express/src/core-service.ts +0 -72
  343. package/dist/templates/mxw-base-api-express/src/crud.ts +0 -84
  344. package/dist/templates/mxw-base-api-express/src/http-handler.ts +0 -71
  345. package/dist/templates/mxw-base-api-express/src/server.ts +0 -54
  346. package/dist/templates/mxw-base-api-express/src/test.ts +0 -38
  347. package/dist/templates/mxw-base-api-express/src/utils/api-utilities.ts +0 -52
  348. package/dist/templates/mxw-base-api-express/src/utils/file-utilities.ts +0 -55
  349. package/dist/templates/mxw-base-api-express/tsconfig.json +0 -32
  350. package/dist/templates/nestjs-api/.dockerignore +0 -6
  351. package/dist/templates/nestjs-api/.gitlab-ci.yml +0 -174
  352. package/dist/templates/nestjs-api/.nvmrc +0 -1
  353. package/dist/templates/nestjs-api/.prettierrc +0 -4
  354. package/dist/templates/nestjs-api/Makefile +0 -95
  355. package/dist/templates/nestjs-api/nest-cli.json +0 -11
  356. package/dist/templates/nestjs-api/src/app.controller.spec.ts +0 -24
  357. package/dist/templates/nestjs-api/src/app.controller.ts +0 -27
  358. package/dist/templates/nestjs-api/src/app.module.ts +0 -49
  359. package/dist/templates/nestjs-api/src/app.service.ts +0 -27
  360. package/dist/templates/nestjs-api/src/main.ts +0 -26
  361. package/dist/templates/nestjs-api/test/app.e2e-spec.ts +0 -47
  362. package/dist/templates/nestjs-api/tsconfig.build.json +0 -4
  363. package/dist/templates/nestjs-api/tsconfig.json +0 -24
  364. package/dist/templates/nestjs-library/.eslintrc.js +0 -24
  365. package/dist/templates/nestjs-library/.gitlab-ci.yml +0 -138
  366. package/dist/templates/nestjs-library/.prettierrc +0 -6
  367. package/dist/templates/nestjs-library/Makefile +0 -60
  368. package/dist/templates/nestjs-library/index.ts +0 -1
  369. package/dist/templates/nestjs-library/lib/index.ts +0 -2
  370. package/dist/templates/nestjs-library/test/app/controller/hello.controller.ts +0 -7
  371. package/dist/templates/nestjs-library/tsconfig.build.json +0 -7
  372. package/dist/templates/nestjs-library/tsconfig.json +0 -18
  373. package/dist/templates/ts-library/.dockerignore +0 -2
  374. package/dist/templates/ts-library/.eslintrc.js +0 -24
  375. package/dist/templates/ts-library/.gitlab-ci.yml +0 -136
  376. package/dist/templates/ts-library/.prettierrc +0 -6
  377. package/dist/templates/ts-library/Makefile +0 -58
  378. package/dist/templates/ts-library/index.ts +0 -1
  379. package/dist/templates/ts-library/lib/index.ts +0 -1
  380. package/dist/templates/ts-library/lib/samples/index.ts +0 -5
  381. package/dist/templates/ts-library/lib/samples/samples-function.ts +0 -3
  382. package/dist/templates/ts-library/test/sample.e2e-spec.ts +0 -10
  383. package/dist/templates/ts-library/tsconfig.build.json +0 -4
  384. package/dist/utils/help.js +0 -8
  385. package/dist/utils/help.js.map +0 -1
  386. package/tsconfig.json +0 -24
  387. /package/dist/templates/{nestjs-api/.eslintrc.js → turbo-nestjs-vuexy/packages/eslint-config/nest.js} +0 -0
@@ -1,493 +0,0 @@
1
- 'use strict';
2
-
3
- import { describe, it } from 'mocha';
4
- import chai, { expect } from 'chai';
5
- import chaihttp from 'chai-http';
6
-
7
- import HubService, { User, challengeIt, goodRet, badRet, serviceUrl, getActivationToken, isKycPassed } from "./hub";
8
- import { checkFormat, checkNumber, checkString, hexlify, isUndefinedOrNullOrEmpty, notAllowNullOrEmpty } from 'mxw-libs-utils';
9
- import { utils } from 'mxw-sdk-js';
10
- import { stringify } from 'querystring';
11
- import md5 from 'md5';
12
-
13
- chai.use(chaihttp);
14
-
15
- let indent = " ";
16
-
17
- export function webOnboard(user: User, challenge: boolean) {
18
- describe('Suite: Individual Web Onboard: ' + user.code + " (" + user.email + ")", function () {
19
- let activationToken: string;
20
-
21
- challengeIt("Check email address before register: " + user.email, function (params) {
22
- let url = serviceUrl("/auth-web/api");
23
-
24
- return chai.request(url).post("/register/verify/email")
25
- .type("application/json")
26
- .set("no-captcha", "true")
27
- .send(params).then((res) => {
28
- badRet(res);
29
- });
30
- }, {
31
- email: ""
32
- }, challenge);
33
-
34
- it("Check email address before register: " + user.email, function () {
35
- let url = serviceUrl("/auth-web/api");
36
-
37
- return chai.request(url).post("/register/verify/email")
38
- .type("application/json")
39
- .set("no-captcha", "true")
40
- .send({
41
- email: user.email
42
- }).then((res) => {
43
- if (0 < user.id) {
44
- badRet(res, "3201"); // A user with the specified email already exists
45
- }
46
- else {
47
- goodRet(res);
48
- }
49
- });
50
- });
51
-
52
- challengeIt("Register", function (params) {
53
- let url = serviceUrl("/auth-web/api");
54
-
55
- return chai.request(url).post("/register")
56
- .type("application/json")
57
- .set("no-captcha", "true")
58
- .send(params).then((res) => {
59
- badRet(res);
60
- });
61
- }, {
62
- email: "",
63
- pwd: ""
64
- }, challenge);
65
-
66
- it("Register", function () {
67
- let url = serviceUrl("/auth-web/api");
68
-
69
- return chai.request(url).post("/register")
70
- .type("application/json")
71
- .set("no-captcha", "true")
72
- .send({
73
- email: user.email,
74
- pwd: user.password
75
- }).then((res) => {
76
- if (0 < user.id) {
77
- badRet(res, "3201"); // A user with the specified email already exists
78
- }
79
- else {
80
- goodRet(res);
81
- if (!HubService.Instance.silent) { console.log(indent, "Registered with", user.email, ":", user.password) }
82
- }
83
- });
84
- });
85
-
86
- it("Check activation email", function () {
87
- if (0 < user.id) {
88
- this.skip();
89
- }
90
- return getActivationToken(user.username, "/bdss/u/activation/").then((token) => {
91
- activationToken = token;
92
- if (!HubService.Instance.silent) { console.log(indent, "Activation token:", activationToken) }
93
- });
94
- });
95
-
96
- challengeIt("Activation", function (params) {
97
- if (isUndefinedOrNullOrEmpty(activationToken)) {
98
- this.skip();
99
- }
100
- let url = serviceUrl("/auth-web/api");
101
-
102
- return chai.request(url).post("/register/verify/activate")
103
- .type("application/json")
104
- .set("no-captcha", "true")
105
- .send(params)
106
- .then((res) => {
107
- badRet(res);
108
- });
109
- }, {
110
- accessKey: ""
111
- }, challenge);
112
-
113
- it("Activation", function () {
114
- let url = serviceUrl("/auth-web/api");
115
-
116
- return chai.request(url).post("/register/verify/activate")
117
- .type("application/json")
118
- .set("no-captcha", "true")
119
- .send({
120
- accessKey: activationToken
121
- })
122
- .then((res) => {
123
- if (0 < user.id) {
124
- badRet(res, "ParameterMissing");
125
- }
126
- else {
127
- goodRet(res);
128
- expect(res.body).have.property("data").have.property("userId").is.a("number");
129
- expect(res.body).have.property("data").have.property("usrLogin").is.eq(user.email);
130
- expect(res.body).have.property("data").have.property("token").is.a("string").lengthOf.greaterThan(0);
131
-
132
- user.id = res.body.data.userId;
133
- if (!HubService.Instance.silent) { console.log(indent, "Activated userId:", user.id, "username:", user.email, "password:", user.password) }
134
- }
135
- });
136
- });
137
-
138
- if (challenge) {
139
- it("Register - should not allowed re-register", function () {
140
- let url = serviceUrl("/auth-web/api");
141
-
142
- return chai.request(url).post("/register")
143
- .type("application/json")
144
- .set("no-captcha", "true")
145
- .send({
146
- email: user.email,
147
- pwd: user.password
148
- }).then((res) => {
149
- badRet(res);
150
- });
151
- });
152
- }
153
-
154
- challengeIt("Login", function (params) {
155
- let url = serviceUrl("/auth-web/api");
156
-
157
- return chai.request(url).post("/login")
158
- .type("application/json")
159
- .set("no-captcha", "true")
160
- .send(params)
161
- .then((res) => {
162
- badRet(res);
163
- });
164
- }, {
165
- username: "",
166
- pwd: ""
167
- }, challenge);
168
-
169
- if (challenge) {
170
- it("Login - challenge wrong password", function () {
171
- let url = serviceUrl("/auth-web/api");
172
-
173
- return chai.request(url).post("/login")
174
- .type("application/json")
175
- .set("no-captcha", "true")
176
- .send({
177
- username: user.email,
178
- pwd: hexlify(utils.randomBytes(5)).substr(2)
179
- }).then((res) => {
180
- badRet(res);
181
- });
182
- });
183
-
184
- it("Login - challenge wrong useername", function () {
185
- let url = serviceUrl("/auth-web/api");
186
-
187
- return chai.request(url).post("/login")
188
- .type("application/json")
189
- .set("no-captcha", "true")
190
- .send({
191
- username: hexlify(utils.randomBytes(5)).substr(2) + user.email,
192
- pwd: user.password
193
- }).then((res) => {
194
- badRet(res);
195
- });
196
- });
197
- }
198
-
199
- it("Login", function () {
200
- let url = serviceUrl("/auth-web/api");
201
-
202
- return chai.request(url).post("/login")
203
- .type("application/json")
204
- .set("no-captcha", "true")
205
- .send({
206
- username: user.email,
207
- pwd: user.password
208
- })
209
- .then((res) => {
210
- if (isUndefinedOrNullOrEmpty(activationToken)) {
211
- badRet(res, "3211"); // Set Password
212
-
213
- return getActivationToken(user.username, "/bdss/u/first-login/").then((token) => {
214
- return chai.request(url).post("/first-time/login")
215
- .type("application/json")
216
- .set("no-captcha", "true")
217
- .send({
218
- type: 1,
219
- pwd: user.password,
220
- accessKey: token
221
- });
222
- });
223
- }
224
- return res;
225
- }).then((res) => {
226
- goodRet(res);
227
- expect(res.body).have.property("data").have.property("userId").is.eq(user.id);
228
- expect(res.body).have.property("data").have.property("usrLogin").is.eq(user.email);
229
- expect(res.body).have.property("data").have.property("token").is.a("string").lengthOf.greaterThan(0);
230
-
231
- user.jwt = res.body.data.token;
232
-
233
- if (!HubService.Instance.silent) { console.log(indent, "Login with username:", user.email, "password:", user.password) }
234
- if (!HubService.Instance.silent) { console.log(indent, "JWT:", user.jwt) }
235
- });
236
- });
237
- });
238
- }
239
-
240
- export function webReauth(user: User, challenge: boolean) {
241
- describe('Suite: Individual Web Reauth: ' + user.code + " (" + user.email + ")", function () {
242
- let activationToken: string;
243
- let secAnswer: string;
244
-
245
- challenge = false; // TODO
246
-
247
- it("Brute force login", function () {
248
- let promises = Promise.resolve();
249
-
250
- for (let i = 0; 3 > i; i++) {
251
- promises = promises.then(() => {
252
- return chai.request(serviceUrl("/auth-web/api")).post("/login")
253
- .type("application/json")
254
- .set("no-captcha", "true")
255
- .send({
256
- username: user.email,
257
- pwd: utils.sha256(utils.toUtf8Bytes(hexlify(utils.randomBytes(5)).substr(2)))
258
- })
259
- .then((res) => {
260
- badRet(res, "1102", "Incorrect username or password"); // Incorrect username or password
261
- });
262
- });
263
- }
264
-
265
- return promises.then(() => {
266
- return chai.request(serviceUrl("/auth-web/api")).post("/login")
267
- .type("application/json")
268
- .set("no-captcha", "true")
269
- .send({
270
- username: user.email,
271
- pwd: utils.sha256(utils.toUtf8Bytes(hexlify(utils.randomBytes(5)).substr(2)))
272
- })
273
- .then((res) => {
274
- badRet(res, "1105", "Your Account Is Locked"); // Your Account Is Locked
275
- });
276
- });
277
- });
278
-
279
- it("Check Reauth activation email", function () {
280
- return getActivationToken(user.username, "/bdss/u/re-auth/").then((token) => {
281
- activationToken = token;
282
- if (!HubService.Instance.silent) { console.log(indent, "Reauth activation token:", activationToken) }
283
- });
284
- });
285
-
286
- it("Reauth security answer", function () {
287
- let token: {
288
- email: string,
289
- userId: number,
290
- expiry: number,
291
- kyc: number,
292
- twoFa: number,
293
- apiKey: string
294
- } = checkFormat({
295
- email: notAllowNullOrEmpty(checkString),
296
- userId: checkNumber,
297
- expiry: checkNumber,
298
- kyc: checkNumber,
299
- twoFa: checkNumber,
300
- apiKey: notAllowNullOrEmpty(checkString),
301
- }, JSON.parse(utils.toUtf8String(utils.base64.decode(activationToken))));
302
-
303
- expect(token.kyc).is.eq(isKycPassed(user.kyc.status) ? 1 : 0, "KYC status mismatched");
304
-
305
- if (0 == token.kyc) {
306
- this.skip();
307
- }
308
-
309
- secAnswer = md5((6 <= user.username.length) ? user.username.substr(user.username.length - 6) : user.username);
310
-
311
- return chai.request(serviceUrl("/auth-web/api")).post("/verify/scrt/answer")
312
- .type("application/json")
313
- .set("no-captcha", "true")
314
- .send({
315
- accessKey: activationToken,
316
- answer: secAnswer
317
- })
318
- .then((res) => {
319
- goodRet(res);
320
- });
321
- });
322
-
323
- if (challenge) {
324
- it("Reauth configure password - challenge wrong security answer", function () {
325
- let newPwd = utils.sha256(utils.toUtf8Bytes(hexlify(utils.randomBytes(5)).substr(2)));
326
-
327
- return chai.request(serviceUrl("/auth-web/api")).post("/reauth/pwd")
328
- .type("application/json")
329
- .set("no-captcha", "true")
330
- .send({
331
- accessKey: activationToken,
332
- pwd: newPwd,
333
- answer: hexlify(utils.randomBytes(3)).substr(2)
334
- })
335
- .then((res) => {
336
- badRet(res);
337
- });
338
- });
339
- }
340
-
341
- it("Reauth configure password", function () {
342
- let newPwd = utils.sha256(utils.toUtf8Bytes(hexlify(utils.randomBytes(5)).substr(2)));
343
-
344
- return chai.request(serviceUrl("/auth-web/api")).post("/reauth/pwd")
345
- .type("application/json")
346
- .set("no-captcha", "true")
347
- .send({
348
- accessKey: activationToken,
349
- pwd: newPwd,
350
- answer: secAnswer
351
- })
352
- .then((res) => {
353
- goodRet(res);
354
- expect(res.body).have.property("data").property("userId").is.a("number").is.eq(user.id);
355
- expect(res.body).have.property("data").property("usrLogin").is.a("string").is.eq(user.email);
356
- expect(res.body).have.property("data").property("token").is.a("string").lengthOf.greaterThan(0);
357
-
358
- user.password = newPwd;
359
- user.jwt = res.body.data.token;
360
- if (!HubService.Instance.silent) { console.log(indent, "Reauth changed password:", user.password) }
361
- });
362
- });
363
- });
364
- }
365
-
366
- export function changePassword(user: User, challenge: boolean) {
367
- describe('Suite: Individual Web Change Password', function () {
368
- challengeIt("Change password", function (params) {
369
- let url = serviceUrl("/user/api");
370
-
371
- return chai.request(url).put("/chg/pwd")
372
- .type("application/json")
373
- .set("Authorization", "Bearer " + user.jwt)
374
- .send(params)
375
- .then((res) => {
376
- badRet(res);
377
- });
378
- }, {
379
- oldPwd: "",
380
- newPwd: ""
381
- }, challenge);
382
-
383
- if (challenge) {
384
- it("Change password - challenge without JWT", function () {
385
- let url = serviceUrl("/user/api");
386
- let newPwd = utils.sha256(utils.toUtf8Bytes(hexlify(utils.randomBytes(5)).substr(2)));
387
-
388
- return chai.request(url).put("/chg/pwd")
389
- .type("application/json")
390
- .send({
391
- oldPwd: user.password,
392
- newPwd
393
- })
394
- .then((res) => {
395
- badRet(res, "Unauthorised");
396
- });
397
- });
398
-
399
- it("Change password - challenge with non existing password", function () {
400
- let url = serviceUrl("/user/api");
401
-
402
- return chai.request(url).put("/chg/pwd")
403
- .type("application/json")
404
- .set("Authorization", "Bearer " + user.jwt)
405
- .send({
406
- oldPwd: utils.sha256(utils.toUtf8Bytes(user.password + hexlify(utils.randomBytes(2)).substr(2))),
407
- newPwd: utils.sha256(utils.toUtf8Bytes(hexlify(utils.randomBytes(5)).substr(2)))
408
- })
409
- .then((res) => {
410
- badRet(res, "1102"); // Incorrect username or password
411
- });
412
- });
413
-
414
- it("Change password - challenge with empty existing password", function () {
415
- let url = serviceUrl("/user/api");
416
-
417
- return chai.request(url).put("/chg/pwd")
418
- .type("application/json")
419
- .set("Authorization", "Bearer " + user.jwt)
420
- .send({
421
- oldPwd: "",
422
- newPwd: utils.sha256(utils.toUtf8Bytes(hexlify(utils.randomBytes(5)).substr(2)))
423
- })
424
- .then((res) => {
425
- badRet(res, "InvalidFormat");
426
- });
427
- });
428
-
429
- it("Change password - challenge with empty new password", function () {
430
- let url = serviceUrl("/user/api");
431
-
432
- return chai.request(url).put("/chg/pwd")
433
- .type("application/json")
434
- .set("Authorization", "Bearer " + user.jwt)
435
- .send({
436
- oldPwd: user.password,
437
- newPwd: ""
438
- })
439
- .then((res) => {
440
- badRet(res, "InvalidFormat");
441
- });
442
- });
443
-
444
- it("Change password - challenge with new short password", function () {
445
- let url = serviceUrl("/user/api");
446
-
447
- return chai.request(url).put("/chg/pwd")
448
- .type("application/json")
449
- .set("Authorization", "Bearer " + user.jwt)
450
- .send({
451
- oldPwd: user.password,
452
- newPwd: hexlify(utils.randomBytes(1)).substr(2)
453
- })
454
- .then((res) => {
455
- badRet(res, "InvalidFormat");
456
- });
457
- });
458
-
459
- it("Change password - challenge with new long password", function () {
460
- let url = serviceUrl("/user/api");
461
-
462
- return chai.request(url).put("/chg/pwd")
463
- .type("application/json")
464
- .set("Authorization", "Bearer " + user.jwt)
465
- .send({
466
- oldPwd: user.password,
467
- newPwd: hexlify(utils.randomBytes(100)).substr(2)
468
- })
469
- .then((res) => {
470
- badRet(res, "InvalidFormat");
471
- });
472
- });
473
- }
474
-
475
- it("Change password", function () {
476
- let url = serviceUrl("/user/api");
477
- let newPwd = utils.sha256(utils.toUtf8Bytes(hexlify(utils.randomBytes(5)).substr(2)));
478
-
479
- return chai.request(url).put("/chg/pwd")
480
- .type("application/json")
481
- .set("Authorization", "Bearer " + user.jwt)
482
- .send({
483
- oldPwd: user.password,
484
- newPwd
485
- })
486
- .then((res) => {
487
- goodRet(res);
488
- user.password = newPwd;
489
- if (!HubService.Instance.silent) { console.log(indent, "Changed password:", user.password) }
490
- });
491
- });
492
- });
493
- }