@common-stack/generate-plugin 7.0.4-alpha.0 → 7.0.4-alpha.10

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 (347) hide show
  1. package/CHANGELOG.md +40 -0
  2. package/lib/common/package-releases/package.json +1 -0
  3. package/lib/common/package-releases/package.json.cjs +1 -0
  4. package/lib/common/package-releases/package.json.cjs.map +1 -1
  5. package/lib/common/package-releases/package.json.mjs +1 -0
  6. package/lib/common/package-releases/package.json.mjs.map +1 -1
  7. package/lib/generators/add-backend/files/_dockerignore +9 -0
  8. package/lib/generators/add-backend/files/_gitignore +13 -0
  9. package/lib/generators/add-backend/files/_npmignore +2 -0
  10. package/lib/generators/add-backend/files/_yarnrc +1 -0
  11. package/lib/generators/add-backend/files/package.json +1 -1
  12. package/lib/generators/add-backend/generator.cjs +6 -1
  13. package/lib/generators/add-backend/generator.cjs.map +1 -1
  14. package/lib/generators/add-backend/generator.mjs +6 -1
  15. package/lib/generators/add-backend/generator.mjs.map +1 -1
  16. package/lib/generators/add-frontend/frameworks/antui/src/entry.client.tsx.template +7 -2
  17. package/lib/generators/add-frontend/frameworks/antui/src/root.tsx.template +2 -1
  18. package/lib/generators/add-frontend/generator.cjs +7 -2
  19. package/lib/generators/add-frontend/generator.cjs.map +1 -1
  20. package/lib/generators/add-frontend/generator.mjs +7 -2
  21. package/lib/generators/add-frontend/generator.mjs.map +1 -1
  22. package/lib/generators/add-frontend/templates/_dockerignore +13 -0
  23. package/lib/generators/add-frontend/templates/_gitignore +4 -0
  24. package/lib/generators/add-frontend/templates/_npmignore +2 -0
  25. package/lib/generators/add-frontend/templates/package.json +2 -2
  26. package/lib/generators/add-fullstack/files/_browserslistrc +3 -0
  27. package/{src/generators/add-fullstack/files/.eslintrc.js → lib/generators/add-fullstack/files/_eslintrc.js} +2 -5
  28. package/lib/generators/add-fullstack/files/_git-crypt/.gitattributes +4 -0
  29. package/lib/generators/add-fullstack/files/_git-crypt/keys/default/0/147885163DF27F4877B0BC14DE8C27DDE38F1E61.gpg +0 -0
  30. package/lib/generators/add-fullstack/files/_git-crypt/keys/default/0/49AB3942E38DB928ACF3905EC2DB4383B4A6E5EA.gpg +1 -0
  31. package/lib/generators/add-fullstack/files/_git-crypt/keys/default/0/49F363DC4362D3C17B2FE0091871B202236FD41B.gpg +0 -0
  32. package/lib/generators/add-fullstack/files/_git-crypt/keys/default/0/54EBB791640A664510494E416177B1BAA1083A88.gpg +0 -0
  33. package/lib/generators/add-fullstack/files/_git-crypt/keys/default/0/70961F6ECD8220394FD8AB555E94AC25CBCBA1A3.gpg +0 -0
  34. package/lib/generators/add-fullstack/files/_git-crypt/keys/default/0/EBA4B7A860BD152BF5F9F727F12B84D048062B79.gpg +0 -0
  35. package/lib/generators/add-fullstack/files/_gitignore +65 -0
  36. package/lib/generators/add-fullstack/files/_husky/pre-commit +4 -0
  37. package/lib/generators/add-fullstack/files/_husky/prepare-commit-msg +4 -0
  38. package/{src/generators/add-fullstack/files/.markdownlint.json → lib/generators/add-fullstack/files/_markdownlint.json} +1 -1
  39. package/lib/generators/add-fullstack/files/_npmrc +2 -0
  40. package/lib/generators/add-fullstack/files/lint-staged.config.js +2 -2
  41. package/lib/generators/add-fullstack/files/package.json +4 -10
  42. package/lib/generators/add-fullstack/files/rollup.config.base.mjs +45 -23
  43. package/lib/generators/add-fullstack/generator.cjs +57 -20
  44. package/lib/generators/add-fullstack/generator.cjs.map +1 -1
  45. package/lib/generators/add-fullstack/generator.d.ts +1 -1
  46. package/lib/generators/add-fullstack/generator.mjs +51 -14
  47. package/lib/generators/add-fullstack/generator.mjs.map +1 -1
  48. package/lib/generators/add-fullstack/schema.d.ts +10 -0
  49. package/lib/generators/add-fullstack/updates/{ignoreUpdate.cjs → fileBackup.cjs} +1 -1
  50. package/lib/generators/add-fullstack/updates/fileBackup.cjs.map +1 -0
  51. package/lib/generators/add-fullstack/updates/{ignoreUpdate.mjs → fileBackup.mjs} +1 -1
  52. package/lib/generators/add-fullstack/updates/fileBackup.mjs.map +1 -0
  53. package/lib/generators/add-fullstack/updates/gitAttributesSetup.cjs +17 -0
  54. package/lib/generators/add-fullstack/updates/gitAttributesSetup.cjs.map +1 -0
  55. package/lib/generators/add-fullstack/updates/gitAttributesSetup.d.ts +9 -0
  56. package/lib/generators/add-fullstack/updates/gitAttributesSetup.mjs +17 -0
  57. package/lib/generators/add-fullstack/updates/gitAttributesSetup.mjs.map +1 -0
  58. package/lib/generators/add-fullstack/updates/gitCryptSetup.cjs +70 -0
  59. package/lib/generators/add-fullstack/updates/gitCryptSetup.cjs.map +1 -0
  60. package/lib/generators/add-fullstack/updates/gitCryptSetup.d.ts +5 -0
  61. package/lib/generators/add-fullstack/updates/gitCryptSetup.mjs +70 -0
  62. package/lib/generators/add-fullstack/updates/gitCryptSetup.mjs.map +1 -0
  63. package/lib/generators/add-fullstack/updates/gitSetup.cjs +55 -0
  64. package/lib/generators/add-fullstack/updates/gitSetup.cjs.map +1 -0
  65. package/lib/generators/add-fullstack/updates/gitSetup.d.ts +9 -0
  66. package/lib/generators/add-fullstack/updates/gitSetup.mjs +55 -0
  67. package/lib/generators/add-fullstack/updates/gitSetup.mjs.map +1 -0
  68. package/lib/generators/add-fullstack/updates/htmlPluginUpdate.cjs +28 -1
  69. package/lib/generators/add-fullstack/updates/htmlPluginUpdate.cjs.map +1 -1
  70. package/lib/generators/add-fullstack/updates/htmlPluginUpdate.d.ts +1 -0
  71. package/lib/generators/add-fullstack/updates/htmlPluginUpdate.mjs +28 -1
  72. package/lib/generators/add-fullstack/updates/htmlPluginUpdate.mjs.map +1 -1
  73. package/lib/generators/add-fullstack/updates/huskySetup.cjs +71 -0
  74. package/lib/generators/add-fullstack/updates/huskySetup.cjs.map +1 -0
  75. package/lib/generators/add-fullstack/updates/huskySetup.d.ts +2 -0
  76. package/lib/generators/add-fullstack/updates/huskySetup.mjs +71 -0
  77. package/lib/generators/add-fullstack/updates/huskySetup.mjs.map +1 -0
  78. package/lib/generators/add-fullstack/updates/index.d.ts +13 -6
  79. package/lib/generators/add-fullstack/updates/jenkinsUpdate.cjs +44 -0
  80. package/lib/generators/add-fullstack/updates/jenkinsUpdate.cjs.map +1 -0
  81. package/lib/generators/add-fullstack/updates/jenkinsUpdate.mjs +44 -0
  82. package/lib/generators/add-fullstack/updates/jenkinsUpdate.mjs.map +1 -0
  83. package/lib/generators/add-fullstack/updates/{lernaJsonUpdate.cjs → lernaUpdate.cjs} +6 -7
  84. package/lib/generators/add-fullstack/updates/lernaUpdate.cjs.map +1 -0
  85. package/lib/generators/add-fullstack/updates/{lernaJsonUpdate.mjs → lernaUpdate.mjs} +6 -7
  86. package/lib/generators/add-fullstack/updates/lernaUpdate.mjs.map +1 -0
  87. package/lib/generators/add-fullstack/updates/licenseUpdate.cjs +1 -1
  88. package/lib/generators/add-fullstack/updates/licenseUpdate.cjs.map +1 -1
  89. package/lib/generators/add-fullstack/updates/licenseUpdate.mjs +1 -1
  90. package/lib/generators/add-fullstack/updates/licenseUpdate.mjs.map +1 -1
  91. package/lib/generators/add-fullstack/updates/npmAuthSetup.cjs +60 -0
  92. package/lib/generators/add-fullstack/updates/npmAuthSetup.cjs.map +1 -0
  93. package/lib/generators/add-fullstack/updates/npmAuthSetup.d.ts +5 -0
  94. package/lib/generators/add-fullstack/updates/npmAuthSetup.mjs +60 -0
  95. package/lib/generators/add-fullstack/updates/npmAuthSetup.mjs.map +1 -0
  96. package/lib/generators/add-fullstack/updates/nxSetup.cjs +137 -0
  97. package/lib/generators/add-fullstack/updates/nxSetup.cjs.map +1 -0
  98. package/lib/generators/add-fullstack/updates/nxSetup.d.ts +5 -0
  99. package/lib/generators/add-fullstack/updates/nxSetup.mjs +137 -0
  100. package/lib/generators/add-fullstack/updates/nxSetup.mjs.map +1 -0
  101. package/lib/generators/add-fullstack/updates/packageJsonUpdate.cjs +2 -34
  102. package/lib/generators/add-fullstack/updates/packageJsonUpdate.cjs.map +1 -1
  103. package/lib/generators/add-fullstack/updates/packageJsonUpdate.d.ts +0 -1
  104. package/lib/generators/add-fullstack/updates/packageJsonUpdate.mjs +2 -34
  105. package/lib/generators/add-fullstack/updates/packageJsonUpdate.mjs.map +1 -1
  106. package/lib/generators/add-fullstack/updates/repositoryUpdate.cjs +35 -0
  107. package/lib/generators/add-fullstack/updates/repositoryUpdate.cjs.map +1 -0
  108. package/lib/generators/add-fullstack/updates/repositoryUpdate.d.ts +2 -0
  109. package/lib/generators/add-fullstack/updates/repositoryUpdate.mjs +35 -0
  110. package/lib/generators/add-fullstack/updates/repositoryUpdate.mjs.map +1 -0
  111. package/lib/generators/add-moleculer/files/_gitignore +2 -0
  112. package/lib/generators/add-moleculer/files/package.json +5 -5
  113. package/lib/generators/add-moleculer/generator.cjs +30 -18
  114. package/lib/generators/add-moleculer/generator.cjs.map +1 -1
  115. package/lib/generators/add-moleculer/generator.d.ts +0 -1
  116. package/lib/generators/add-moleculer/generator.mjs +30 -18
  117. package/lib/generators/add-moleculer/generator.mjs.map +1 -1
  118. package/lib/generators/add-moleculer/schema.d.ts +6 -0
  119. package/lib/generators/add-package/files/browser/LICENSE +674 -0
  120. package/lib/generators/add-package/files/browser/_npmignore +2 -0
  121. package/lib/generators/add-package/files/browser/jest.config.js +8 -0
  122. package/lib/generators/add-package/files/browser/package.json +49 -0
  123. package/lib/generators/add-package/files/browser/rollup.config.mjs +29 -0
  124. package/lib/generators/add-package/files/browser/src/config/env-config.ts.template +9 -0
  125. package/lib/generators/add-package/files/browser/src/index.ts.template +4 -0
  126. package/lib/generators/add-package/files/browser/src/interfaces/index.ts.template +1 -0
  127. package/lib/generators/add-package/files/browser/src/interfaces/interfaces.ts.template +1 -0
  128. package/lib/generators/add-package/files/browser/src/module.tsx.template +7 -0
  129. package/lib/generators/add-package/files/browser/tsconfig.json +16 -0
  130. package/lib/generators/add-package/files/client/LICENSE +674 -0
  131. package/lib/generators/add-package/files/client/_npmignore +2 -0
  132. package/lib/generators/add-package/files/client/jest.config.js +13 -0
  133. package/lib/generators/add-package/files/client/package.json +30 -0
  134. package/lib/generators/add-package/files/client/rollup.config.mjs +34 -0
  135. package/lib/generators/add-package/files/client/src/components/index.tsx.template +1 -0
  136. package/lib/generators/add-package/files/client/src/config/env-config.ts.template +9 -0
  137. package/lib/generators/add-package/files/client/src/index.ts.template +1 -0
  138. package/lib/generators/add-package/files/client/tsconfig.json +14 -0
  139. package/lib/generators/add-package/files/core/LICENSE +39 -0
  140. package/lib/generators/add-package/files/core/_npmignore +3 -0
  141. package/lib/generators/add-package/files/core/jest.config.js +3 -0
  142. package/lib/generators/add-package/files/core/package.json +30 -0
  143. package/lib/generators/add-package/files/core/rollup.config.mjs +37 -0
  144. package/lib/generators/add-package/files/core/src/cdm-locales/en/main.json +2 -0
  145. package/lib/generators/add-package/files/core/src/cdm-locales/es/common.json +2 -0
  146. package/lib/generators/add-package/files/core/src/cdm-locales/es/main.json +1 -0
  147. package/lib/generators/add-package/files/core/src/config/env-config.ts.template +9 -0
  148. package/lib/generators/add-package/files/core/src/constants/index.ts.template +1 -0
  149. package/lib/generators/add-package/files/core/src/constants/types.ts.template +3 -0
  150. package/lib/generators/add-package/files/core/src/index.ts.template +2 -0
  151. package/lib/generators/add-package/files/core/src/types/index.ts.template +1 -0
  152. package/lib/generators/add-package/files/core/src/types/types.ts.template +17 -0
  153. package/lib/generators/add-package/files/core/tsconfig.json +13 -0
  154. package/lib/generators/add-package/files/server/LICENSE +674 -0
  155. package/lib/generators/add-package/files/server/_npmignore +2 -0
  156. package/lib/generators/add-package/files/server/jest.config.js +32 -0
  157. package/lib/generators/add-package/files/server/package.json +78 -0
  158. package/lib/generators/add-package/files/server/rollup.config.mjs +37 -0
  159. package/lib/generators/add-package/files/server/src/config/env-config.ts.template +9 -0
  160. package/lib/generators/add-package/files/server/src/constants/constants.ts.template +62 -0
  161. package/lib/generators/add-package/files/server/src/constants/index.ts.template +1 -0
  162. package/lib/generators/add-package/files/server/src/constants/types.ts.template +21 -0
  163. package/lib/generators/add-package/files/server/src/index.ts.template +6 -0
  164. package/lib/generators/add-package/files/server/src/module.ts.template +6 -0
  165. package/lib/generators/add-package/files/server/tsconfig.json +17 -0
  166. package/lib/generators/add-package/generator.cjs +53 -11
  167. package/lib/generators/add-package/generator.cjs.map +1 -1
  168. package/lib/generators/add-package/generator.d.ts +4 -1
  169. package/lib/generators/add-package/generator.mjs +53 -11
  170. package/lib/generators/add-package/generator.mjs.map +1 -1
  171. package/lib/index.cjs +1 -1
  172. package/lib/index.d.ts +5 -5
  173. package/lib/index.mjs +1 -1
  174. package/lib/utils/copyDotfiles.cjs +86 -0
  175. package/lib/utils/copyDotfiles.cjs.map +1 -0
  176. package/lib/utils/copyDotfiles.d.ts +14 -0
  177. package/lib/utils/copyDotfiles.mjs +86 -0
  178. package/lib/utils/copyDotfiles.mjs.map +1 -0
  179. package/package.json +3 -3
  180. package/src/common/package-releases/package.json +1 -0
  181. package/src/generators/add-backend/files/Dockerfile +28 -0
  182. package/src/generators/add-backend/files/LICENSE +661 -0
  183. package/src/generators/add-backend/files/README.md +133 -0
  184. package/src/generators/add-backend/files/__tests__/test.ts.template +96 -0
  185. package/src/generators/add-backend/files/_dockerignore +9 -0
  186. package/src/generators/add-backend/files/_gitignore +13 -0
  187. package/src/generators/add-backend/files/_npmignore +2 -0
  188. package/src/generators/add-backend/files/_yarnrc +1 -0
  189. package/src/generators/add-backend/files/babel.config.js +45 -0
  190. package/src/generators/add-backend/files/build.config.js +14 -0
  191. package/src/generators/add-backend/files/build.config.mjs +27 -0
  192. package/src/generators/add-backend/files/config.json +10 -0
  193. package/src/generators/add-backend/files/jest.config.js +27 -0
  194. package/src/generators/add-backend/files/package.json +82 -0
  195. package/src/generators/add-backend/files/src/api/root-schema.graphqls +109 -0
  196. package/src/generators/add-backend/files/src/config/env-config.ts.template +12 -0
  197. package/src/generators/add-backend/files/src/config/index.ts.template +1 -0
  198. package/src/generators/add-backend/files/src/env.ts.template +5 -0
  199. package/src/generators/add-backend/files/src/index.ts.template +56 -0
  200. package/src/generators/add-backend/files/src/modules/index.ts.template +17 -0
  201. package/src/generators/add-backend/files/src/service.ts.template +35 -0
  202. package/src/generators/add-backend/files/tsconfig.base.json +30 -0
  203. package/src/generators/add-backend/files/tsconfig.json +13 -0
  204. package/src/generators/add-backend/files/webpack.config.js +200 -0
  205. package/src/generators/add-backend/files/webpack.config.mjs +216 -0
  206. package/src/generators/add-backend/generator.ts +13 -4
  207. package/src/generators/add-frontend/frameworks/antui/src/entry.client.tsx.template +7 -2
  208. package/src/generators/add-frontend/frameworks/antui/src/root.tsx.template +2 -1
  209. package/src/generators/add-frontend/generator.ts +9 -1
  210. package/src/generators/add-frontend/templates/CHANGELOG.md +72 -0
  211. package/src/generators/add-frontend/templates/Dockerfile +31 -0
  212. package/src/generators/add-frontend/templates/_browserslistrc +3 -0
  213. package/src/generators/add-frontend/templates/_dockerignore +13 -0
  214. package/src/generators/add-frontend/templates/_gitignore +4 -0
  215. package/src/generators/add-frontend/templates/_npmignore +2 -0
  216. package/src/generators/add-frontend/templates/codecept.json +28 -0
  217. package/src/generators/add-frontend/templates/config.json +5 -0
  218. package/src/generators/add-frontend/templates/env.d.ts.template +9 -0
  219. package/src/generators/add-frontend/templates/env.js +5 -0
  220. package/src/generators/add-frontend/templates/favicon.ico +0 -0
  221. package/src/generators/add-frontend/templates/jest.config.js +33 -0
  222. package/src/generators/add-frontend/templates/package.json +102 -0
  223. package/src/generators/add-frontend/templates/public/favicon.ico +0 -0
  224. package/src/generators/add-frontend/templates/server.js +78 -0
  225. package/src/generators/add-frontend/templates/src/config/public-config.ts.template +88 -0
  226. package/src/generators/add-frontend/templates/tools/checkQueryUsage.mjs +192 -0
  227. package/src/generators/add-frontend/templates/tools/mergeConfig.js +35 -0
  228. package/src/generators/add-frontend/templates/tsconfig.base.json +38 -0
  229. package/src/generators/add-frontend/templates/tsconfig.json +32 -0
  230. package/src/generators/add-frontend/templates/tsconfig.node.json +10 -0
  231. package/src/generators/add-frontend/templates/vite.config.ts.template +115 -0
  232. package/src/generators/add-fullstack/files/_browserslistrc +3 -0
  233. package/src/generators/add-fullstack/files/_eslintignore +3 -0
  234. package/src/generators/add-fullstack/files/_eslintrc.js +89 -0
  235. package/src/generators/add-fullstack/files/_git-crypt/.gitattributes +4 -0
  236. package/src/generators/add-fullstack/files/_git-crypt/keys/default/0/147885163DF27F4877B0BC14DE8C27DDE38F1E61.gpg +0 -0
  237. package/src/generators/add-fullstack/files/_git-crypt/keys/default/0/49AB3942E38DB928ACF3905EC2DB4383B4A6E5EA.gpg +1 -0
  238. package/src/generators/add-fullstack/files/_git-crypt/keys/default/0/49F363DC4362D3C17B2FE0091871B202236FD41B.gpg +0 -0
  239. package/src/generators/add-fullstack/files/_git-crypt/keys/default/0/54EBB791640A664510494E416177B1BAA1083A88.gpg +0 -0
  240. package/src/generators/add-fullstack/files/_git-crypt/keys/default/0/70961F6ECD8220394FD8AB555E94AC25CBCBA1A3.gpg +0 -0
  241. package/src/generators/add-fullstack/files/_git-crypt/keys/default/0/EBA4B7A860BD152BF5F9F727F12B84D048062B79.gpg +0 -0
  242. package/src/generators/add-fullstack/files/_gitattributes +5 -0
  243. package/src/generators/add-fullstack/files/_gitignore +65 -0
  244. package/src/generators/add-fullstack/files/_husky/pre-commit +4 -0
  245. package/src/generators/add-fullstack/files/_husky/prepare-commit-msg +4 -0
  246. package/src/generators/add-fullstack/files/_markdownlint.json +6 -0
  247. package/src/generators/add-fullstack/files/_markdownlintignore +5 -0
  248. package/src/generators/add-fullstack/files/_npmrc +2 -0
  249. package/src/generators/add-fullstack/files/_nxignore +8 -0
  250. package/src/generators/add-fullstack/files/lint-staged.config.js +2 -2
  251. package/src/generators/add-fullstack/files/package.json +4 -10
  252. package/src/generators/add-fullstack/files/rollup.config.base.mjs +45 -23
  253. package/src/generators/add-fullstack/generator.spec.ts +2 -0
  254. package/src/generators/add-fullstack/generator.ts +80 -20
  255. package/src/generators/add-fullstack/schema.d.ts +2 -2
  256. package/src/generators/add-fullstack/schema.ts +10 -0
  257. package/src/generators/add-fullstack/updates/gitAttributesSetup.ts +60 -0
  258. package/src/generators/add-fullstack/updates/gitCryptSetup.ts +77 -0
  259. package/src/generators/add-fullstack/updates/gitSetup.ts +63 -0
  260. package/src/generators/add-fullstack/updates/htmlPluginUpdate.ts +31 -0
  261. package/src/generators/add-fullstack/updates/huskySetup.ts +84 -0
  262. package/src/generators/add-fullstack/updates/index.ts +13 -6
  263. package/src/generators/add-fullstack/updates/jenkinsUpdate.ts +53 -0
  264. package/src/generators/add-fullstack/updates/{lernaJsonUpdate.ts → lernaUpdate.ts} +6 -7
  265. package/src/generators/add-fullstack/updates/licenseUpdate.ts +3 -3
  266. package/src/generators/add-fullstack/updates/npmAuthSetup.ts +76 -0
  267. package/src/generators/add-fullstack/updates/nxSetup.ts +145 -0
  268. package/src/generators/add-fullstack/updates/packageJsonUpdate.ts +4 -42
  269. package/src/generators/add-fullstack/updates/repositoryUpdate.ts +45 -0
  270. package/src/generators/add-moleculer/files/_dockerignore +6 -0
  271. package/src/generators/add-moleculer/files/_draftignore +4 -0
  272. package/src/generators/add-moleculer/files/_gitignore +2 -0
  273. package/src/generators/add-moleculer/files/package.json +5 -5
  274. package/src/generators/add-moleculer/generator.ts +42 -18
  275. package/src/generators/add-moleculer/schema.ts +6 -0
  276. package/src/generators/add-package/files/browser/LICENSE +674 -0
  277. package/src/generators/add-package/files/browser/_npmignore +2 -0
  278. package/src/generators/add-package/files/browser/jest.config.js +8 -0
  279. package/src/generators/add-package/files/browser/package.json +49 -0
  280. package/src/generators/add-package/files/browser/rollup.config.mjs +29 -0
  281. package/src/generators/add-package/files/browser/src/config/env-config.ts.template +9 -0
  282. package/src/generators/add-package/files/browser/src/index.ts.template +4 -0
  283. package/src/generators/add-package/files/browser/src/interfaces/index.ts.template +1 -0
  284. package/src/generators/add-package/files/browser/src/interfaces/interfaces.ts.template +1 -0
  285. package/src/generators/add-package/files/browser/src/module.tsx.template +7 -0
  286. package/src/generators/add-package/files/browser/tsconfig.json +16 -0
  287. package/src/generators/add-package/files/client/LICENSE +674 -0
  288. package/src/generators/add-package/files/client/_npmignore +2 -0
  289. package/src/generators/add-package/files/client/jest.config.js +13 -0
  290. package/src/generators/add-package/files/client/package.json +30 -0
  291. package/src/generators/add-package/files/client/rollup.config.mjs +34 -0
  292. package/src/generators/add-package/files/client/src/components/index.tsx.template +1 -0
  293. package/src/generators/add-package/files/client/src/config/env-config.ts.template +9 -0
  294. package/src/generators/add-package/files/client/src/index.ts.template +1 -0
  295. package/src/generators/add-package/files/client/tsconfig.json +14 -0
  296. package/src/generators/add-package/files/core/LICENSE +39 -0
  297. package/src/generators/add-package/files/core/_npmignore +3 -0
  298. package/src/generators/add-package/files/core/jest.config.js +3 -0
  299. package/src/generators/add-package/files/core/package.json +30 -0
  300. package/src/generators/add-package/files/core/rollup.config.mjs +37 -0
  301. package/src/generators/add-package/files/core/src/cdm-locales/en/main.json +2 -0
  302. package/src/generators/add-package/files/core/src/cdm-locales/es/common.json +2 -0
  303. package/src/generators/add-package/files/core/src/cdm-locales/es/main.json +1 -0
  304. package/src/generators/add-package/files/core/src/config/env-config.ts.template +9 -0
  305. package/src/generators/add-package/files/core/src/constants/index.ts.template +1 -0
  306. package/src/generators/add-package/files/core/src/constants/types.ts.template +3 -0
  307. package/src/generators/add-package/files/core/src/index.ts.template +2 -0
  308. package/src/generators/add-package/files/core/src/types/index.ts.template +1 -0
  309. package/src/generators/add-package/files/core/src/types/types.ts.template +17 -0
  310. package/src/generators/add-package/files/core/tsconfig.json +13 -0
  311. package/src/generators/add-package/files/server/LICENSE +674 -0
  312. package/src/generators/add-package/files/server/_npmignore +2 -0
  313. package/src/generators/add-package/files/server/jest.config.js +32 -0
  314. package/src/generators/add-package/files/server/package.json +78 -0
  315. package/src/generators/add-package/files/server/rollup.config.mjs +37 -0
  316. package/src/generators/add-package/files/server/src/config/env-config.ts.template +9 -0
  317. package/src/generators/add-package/files/server/src/constants/constants.ts.template +62 -0
  318. package/src/generators/add-package/files/server/src/constants/index.ts.template +1 -0
  319. package/src/generators/add-package/files/server/src/constants/types.ts.template +21 -0
  320. package/src/generators/add-package/files/server/src/index.ts.template +6 -0
  321. package/src/generators/add-package/files/server/src/module.ts.template +6 -0
  322. package/src/generators/add-package/files/server/tsconfig.json +17 -0
  323. package/src/generators/add-package/generator.ts +75 -17
  324. package/src/index.ts +7 -6
  325. package/src/utils/copyDotfiles.ts +96 -0
  326. package/lib/generators/add-fullstack/updates/ignoreUpdate.cjs.map +0 -1
  327. package/lib/generators/add-fullstack/updates/ignoreUpdate.mjs.map +0 -1
  328. package/lib/generators/add-fullstack/updates/jenkinsfileUpdate.cjs +0 -37
  329. package/lib/generators/add-fullstack/updates/jenkinsfileUpdate.cjs.map +0 -1
  330. package/lib/generators/add-fullstack/updates/jenkinsfileUpdate.mjs +0 -37
  331. package/lib/generators/add-fullstack/updates/jenkinsfileUpdate.mjs.map +0 -1
  332. package/lib/generators/add-fullstack/updates/lernaJsonUpdate.cjs.map +0 -1
  333. package/lib/generators/add-fullstack/updates/lernaJsonUpdate.mjs.map +0 -1
  334. package/src/generators/add-fullstack/files/.husky/pre-commit +0 -1
  335. package/src/generators/add-fullstack/files/.travis.yml +0 -18
  336. package/src/generators/add-fullstack/updates/jenkinsfileUpdate.ts +0 -49
  337. /package/{src/generators/add-fullstack/files/.browserslistrc → lib/generators/add-frontend/templates/_browserslistrc} +0 -0
  338. /package/{src/generators/add-fullstack/files/.eslintignore → lib/generators/add-fullstack/files/_eslintignore} +0 -0
  339. /package/{src/generators/add-fullstack/files/.gitattributes → lib/generators/add-fullstack/files/_gitattributes} +0 -0
  340. /package/{src/generators/add-fullstack/files/.markdownlintignore → lib/generators/add-fullstack/files/_markdownlintignore} +0 -0
  341. /package/{src/generators/add-fullstack/.nxignore → lib/generators/add-fullstack/files/_nxignore} +0 -0
  342. /package/lib/generators/add-fullstack/updates/{ignoreUpdate.d.ts → fileBackup.d.ts} +0 -0
  343. /package/lib/generators/add-fullstack/updates/{jenkinsfileUpdate.d.ts → jenkinsUpdate.d.ts} +0 -0
  344. /package/lib/generators/add-fullstack/updates/{lernaJsonUpdate.d.ts → lernaUpdate.d.ts} +0 -0
  345. /package/{src/generators/add-moleculer/files/.dockerignore → lib/generators/add-moleculer/files/_dockerignore} +0 -0
  346. /package/{src/generators/add-moleculer/files/.draftignore → lib/generators/add-moleculer/files/_draftignore} +0 -0
  347. /package/src/generators/add-fullstack/updates/{ignoreUpdate.ts → fileBackup.ts} +0 -0
@@ -1,6 +1,13 @@
1
- export * from './jenkinsfileUpdate';
2
- export * from './packageJsonUpdate';
3
- export * from './lernaJsonUpdate';
4
- export * from './htmlPluginUpdate';
5
- export * from './licenseUpdate';
6
- export * from './ignoreUpdate';
1
+ export { updateJenkinsFile } from './jenkinsUpdate';
2
+ export { updatePackageJson } from './packageJsonUpdate';
3
+ export { backupLernaJson, restoreLernaJson } from './lernaUpdate';
4
+ export { updateLicense } from './licenseUpdate';
5
+ export { backupFiles, restoreFiles } from './fileBackup';
6
+ export { updateRepository } from './repositoryUpdate';
7
+ export { updateHtmlPlugin, renameDotFiles } from './htmlPluginUpdate';
8
+ export { setupGit, commitInitialFiles } from './gitSetup';
9
+ export { setupGitCrypt } from './gitCryptSetup';
10
+ export { setupHusky } from './huskySetup';
11
+ export { prepareGitAttributes, updateGitAttributes } from './gitAttributesSetup';
12
+ export { setupNpmAuth } from './npmAuthSetup';
13
+ export * from './nxSetup';
@@ -0,0 +1,53 @@
1
+ import { Tree } from '@nx/devkit';
2
+ import * as path from 'path';
3
+
4
+ export function updateJenkinsFile(tree: Tree, projectRoot: string, name: string) {
5
+ const filePath = path.join(projectRoot, 'Jenkinsfile');
6
+ const paramsToUpdate = {
7
+ BASE_NAMESPACE: name,
8
+ CONNECTION_ID: name,
9
+ WORKSPACE_ID: name,
10
+ UNIQUE_NAME: name,
11
+ };
12
+
13
+ if (tree.exists(filePath)) {
14
+ const jenkinsFileContent = tree.read(filePath).toString();
15
+ let labelExists = false;
16
+
17
+ const updatedContent = jenkinsFileContent.split('\n').map(line => {
18
+ // Check if the label is already defined and skip modifying it
19
+ if (line.includes('label') && line.includes('kubernetes')) {
20
+ labelExists = true;
21
+ }
22
+
23
+ // Update only the specified parameters
24
+ for (const param in paramsToUpdate) {
25
+ if (line.includes(`string(name: '${param}'`)) {
26
+ return line.replace(/defaultValue: '.*'/, `defaultValue: '${paramsToUpdate[param]}'`);
27
+ }
28
+ }
29
+ return line;
30
+ }).join('\n');
31
+
32
+ let finalContent = updatedContent;
33
+
34
+ // Add missing parameters if they don't exist
35
+ Object.keys(paramsToUpdate).forEach(param => {
36
+ if (!finalContent.includes(`string(name: '${param}'`)) {
37
+ finalContent = finalContent.concat(
38
+ `string(name: '${param}', defaultValue: '${paramsToUpdate[param]}', description: '${param.replace(/_/g, ' ').toLowerCase()}')\n`
39
+ );
40
+ }
41
+ });
42
+
43
+ // Only write back to the file if we have made changes
44
+ if (!labelExists || Object.keys(paramsToUpdate).some(param => !finalContent.includes(`string(name: '${param}'`))) {
45
+ tree.write(filePath, finalContent);
46
+ console.log(`Updated Jenkinsfile with parameters for: ${name}`);
47
+ } else {
48
+ console.log('No changes needed in Jenkinsfile');
49
+ }
50
+ } else {
51
+ console.log('Jenkinsfile not found, skipping update');
52
+ }
53
+ }
@@ -19,15 +19,14 @@ export function backupLernaJson(tree: Tree, projectRoot: string) {
19
19
  backup[param] = paramValue;
20
20
  exists = true;
21
21
  }
22
- } else {
23
- if (lernaJson[param]) {
24
- backup[param] = lernaJson[param];
25
- exists = true;
26
- }
22
+ } else if (lernaJson[param]) {
23
+ backup[param] = lernaJson[param];
24
+ exists = true;
27
25
  }
28
26
  }
29
27
 
30
28
  if (exists) {
29
+ console.log('Backed up important values from lerna.json');
31
30
  return backup;
32
31
  }
33
32
  }
@@ -39,7 +38,7 @@ export function restoreLernaJson(tree: Tree, projectRoot: string, backup: any) {
39
38
  const lernaJsonPath = path.join(projectRoot, 'lerna.json');
40
39
  if (backup && fs.existsSync(lernaJsonPath)) {
41
40
  updateJson(tree, lernaJsonPath, (lernaJson: any) => {
42
- Object.keys(backup).forEach(param => {
41
+ Object.keys(backup).forEach((param) => {
43
42
  if (param.includes(':')) {
44
43
  lernaJson = set(lernaJson, param.split(':'), backup[param]);
45
44
  } else {
@@ -50,4 +49,4 @@ export function restoreLernaJson(tree: Tree, projectRoot: string, backup: any) {
50
49
  });
51
50
  console.log('Restored old values in lerna.json');
52
51
  }
53
- }
52
+ }
@@ -5,11 +5,11 @@ export function updateLicense(tree: Tree, projectRoot: string) {
5
5
  const files = ['LICENSE-GNU', 'LICENSE-IST', 'LICENSE-MIT'];
6
6
  const packageJsonPath = path.join(projectRoot, 'package.json');
7
7
  const packageJson = readJson(tree, packageJsonPath);
8
-
8
+
9
9
  if (packageJson.license) {
10
10
  const fileName = `LICENSE-${packageJson.license.toUpperCase()}`;
11
-
12
- files.forEach(file => {
11
+
12
+ files.forEach((file) => {
13
13
  const filePath = path.join(projectRoot, file);
14
14
  if (file === fileName) {
15
15
  if (tree.exists(filePath)) {
@@ -0,0 +1,76 @@
1
+ import { Tree } from '@nx/devkit';
2
+ import * as path from 'path';
3
+ import * as fs from 'fs';
4
+ import * as readline from 'readline';
5
+
6
+ /**
7
+ * Prompts the user for npm auth token and updates the .npmrc file
8
+ */
9
+ export async function setupNpmAuth(tree: Tree, projectRoot: string): Promise<void> {
10
+ try {
11
+ const npmrcPath = path.join(projectRoot, '.npmrc');
12
+
13
+ // Check if .npmrc exists after rename from _npmrc
14
+ if (!fs.existsSync(npmrcPath)) {
15
+ console.log('.npmrc file not found. It may not have been properly renamed from _npmrc.');
16
+ return;
17
+ }
18
+
19
+ // Create readline interface for user input
20
+ const rl = readline.createInterface({
21
+ input: process.stdin,
22
+ output: process.stdout
23
+ });
24
+
25
+ console.log('\nNPM Authentication Setup');
26
+ console.log('========================');
27
+ console.log('This project requires an npm authentication token.');
28
+ console.log('You can generate a token from https://www.npmjs.com/settings/[username]/tokens');
29
+ console.log('Press Enter to skip if you do not have a token yet.');
30
+
31
+ // Prompt for the auth token and wait for the user to complete their input
32
+ const token = await new Promise<string>((resolve) => {
33
+ rl.question('Enter your npm auth token: ', (answer) => {
34
+ console.log(''); // Add a line break after input
35
+ resolve(answer.trim());
36
+ });
37
+ });
38
+
39
+ // Explicitly close the readline interface
40
+ rl.close();
41
+
42
+ // Wait for the close event to ensure we don't proceed before input is complete
43
+ await new Promise(resolve => rl.on('close', resolve));
44
+
45
+ if (!token) {
46
+ console.log('No token provided, keeping existing .npmrc configuration');
47
+ return;
48
+ }
49
+
50
+ // Read current .npmrc content
51
+ let npmrcContent = fs.readFileSync(npmrcPath, 'utf8');
52
+
53
+ // Check if token is already set
54
+ if (npmrcContent.includes('//registry.npmjs.org/:_authToken=')) {
55
+ // Replace existing token
56
+ npmrcContent = npmrcContent.replace(
57
+ /\/\/registry\.npmjs\.org\/:_authToken=.*/,
58
+ `//registry.npmjs.org/:_authToken=${token}`
59
+ );
60
+ } else {
61
+ // Add token if it doesn't exist
62
+ npmrcContent += `\n//registry.npmjs.org/:_authToken=${token}\n`;
63
+ }
64
+
65
+ // Write updated content
66
+ fs.writeFileSync(npmrcPath, npmrcContent);
67
+ console.log('Updated .npmrc with authentication token');
68
+
69
+ // Inform about git-crypt encryption
70
+ console.log('Note: The .npmrc file is configured to be encrypted by git-crypt');
71
+ console.log(' The token will be encrypted when committed to the repository');
72
+
73
+ } catch (error) {
74
+ console.error('Error setting up npm authentication:', error);
75
+ }
76
+ }
@@ -0,0 +1,145 @@
1
+ import { Tree, updateJson } from '@nx/devkit';
2
+ import * as path from 'path';
3
+ import * as readline from 'readline';
4
+
5
+ /**
6
+ * Sets up Nx configuration with optional AWS credentials
7
+ */
8
+ export async function setupNxConfig(tree: Tree, projectRoot: string) {
9
+ console.log('\nAWS Configuration for Nx Cache');
10
+ console.log('=============================');
11
+ console.log('This project uses AWS S3 for remote caching with Nx.');
12
+ console.log('Please provide your AWS credentials or press Enter to skip for now.');
13
+
14
+ // Basic configuration without AWS credentials
15
+ const basicConfig = {
16
+ tasksRunnerOptions: {
17
+ default: {
18
+ runner: 'nx/tasks-runners/default',
19
+ options: {
20
+ cacheableOperations: ['build', 'test', 'lint'],
21
+ accessibleHosts: ['https://registry.npmjs.org'],
22
+ useDaemonProcess: false,
23
+ parallel: 3,
24
+ },
25
+ },
26
+ },
27
+ };
28
+
29
+ const nxJsonPath = path.join(projectRoot, 'nx.json');
30
+
31
+ // Safe prompt function with timeout that returns a string
32
+ const askWithTimeout = (rl: readline.Interface, question: string, timeoutMs = 10000): Promise<string> => {
33
+ return new Promise<string>((resolve) => {
34
+ let resolved = false;
35
+
36
+ const timeout = setTimeout(() => {
37
+ if (!resolved) {
38
+ resolved = true;
39
+ console.log(`\nTimeout waiting for input. Skipping.`);
40
+ resolve('');
41
+ }
42
+ }, timeoutMs);
43
+
44
+ rl.question(question, (answer: string) => {
45
+ if (!resolved) {
46
+ resolved = true;
47
+ clearTimeout(timeout);
48
+ resolve(answer);
49
+ }
50
+ });
51
+ });
52
+ };
53
+
54
+ let rl: readline.Interface | undefined;
55
+ try {
56
+ rl = readline.createInterface({
57
+ input: process.stdin,
58
+ output: process.stdout,
59
+ });
60
+
61
+ // Ask for AWS credentials with timeouts
62
+ const accessKeyId = await askWithTimeout(rl, 'AWS Access Key ID (press Enter to skip): ');
63
+
64
+ // If user skips, create basic config
65
+ if (!accessKeyId || accessKeyId === '') {
66
+ console.log('Skipping AWS configuration. Creating basic nx.json.');
67
+ // Check if nx.json exists and update or create
68
+ if (tree.exists(nxJsonPath)) {
69
+ updateJson(tree, nxJsonPath, (json) => {
70
+ if (!json.tasksRunnerOptions) {
71
+ json.tasksRunnerOptions = basicConfig.tasksRunnerOptions;
72
+ }
73
+ return json;
74
+ });
75
+ } else {
76
+ tree.write(nxJsonPath, JSON.stringify(basicConfig, null, 2));
77
+ }
78
+ } else {
79
+ // Get remaining AWS info
80
+ const secretAccessKey = await askWithTimeout(rl, 'AWS Secret Access Key: ');
81
+ const region = (await askWithTimeout(rl, 'AWS Region (default: us-east-1): ')) || 'us-east-1';
82
+ const bucketName = await askWithTimeout(rl, 'AWS S3 Bucket Name: ');
83
+
84
+ // Only add AWS config if all fields are provided
85
+ if (secretAccessKey && bucketName) {
86
+ // Use type assertion to avoid TypeScript errors
87
+ const awsConfig = { ...basicConfig };
88
+ // Use "as any" to bypass type checking
89
+ (awsConfig.tasksRunnerOptions.default.options as any) = {
90
+ ...awsConfig.tasksRunnerOptions.default.options,
91
+ cacheDirectory: '.nx/cache',
92
+ remoteCache: {
93
+ s3: {
94
+ accessKeyId,
95
+ secretAccessKey,
96
+ region,
97
+ bucketName,
98
+ },
99
+ },
100
+ };
101
+
102
+ // Update or create nx.json with AWS config
103
+ if (tree.exists(nxJsonPath)) {
104
+ updateJson(tree, nxJsonPath, () => awsConfig);
105
+ console.log('Updated nx.json with AWS configuration.');
106
+ } else {
107
+ tree.write(nxJsonPath, JSON.stringify(awsConfig, null, 2));
108
+ console.log('Created nx.json with AWS configuration.');
109
+ }
110
+ } else {
111
+ console.log('Incomplete AWS information. Creating basic nx.json.');
112
+ // Create basic config without AWS
113
+ if (tree.exists(nxJsonPath)) {
114
+ updateJson(tree, nxJsonPath, (json) => {
115
+ if (!json.tasksRunnerOptions) {
116
+ json.tasksRunnerOptions = basicConfig.tasksRunnerOptions;
117
+ }
118
+ return json;
119
+ });
120
+ } else {
121
+ tree.write(nxJsonPath, JSON.stringify(basicConfig, null, 2));
122
+ }
123
+ }
124
+ }
125
+ } catch (error) {
126
+ console.error('Error setting up Nx configuration:', error);
127
+ // Fallback to basic config
128
+ if (tree.exists(nxJsonPath)) {
129
+ updateJson(tree, nxJsonPath, (json) => {
130
+ if (!json.tasksRunnerOptions) {
131
+ json.tasksRunnerOptions = basicConfig.tasksRunnerOptions;
132
+ }
133
+ return json;
134
+ });
135
+ } else {
136
+ tree.write(nxJsonPath, JSON.stringify(basicConfig, null, 2));
137
+ }
138
+ } finally {
139
+ // Ensure readline interface is closed
140
+ if (rl) {
141
+ rl.close();
142
+ }
143
+ console.log('Nx configuration setup complete.');
144
+ }
145
+ }
@@ -1,52 +1,14 @@
1
1
  import { Tree, updateJson } from '@nx/devkit';
2
2
  import * as path from 'path';
3
- import { convertHttpsToSsh } from '../../../utils';
4
3
 
5
4
  export function updatePackageJson(tree: Tree, projectRoot: string, json: any) {
6
5
  const packageJsonPath = path.join(projectRoot, 'package.json');
7
-
6
+
8
7
  updateJson(tree, packageJsonPath, (packageJson: any) => {
9
- Object.entries(json).reduce((acc, [key, value]) => {
10
- acc[key] = value;
11
- return acc;
8
+ Object.entries(json).reduce((acc, [key, value]) => {
9
+ acc[key] = value;
10
+ return acc;
12
11
  }, packageJson);
13
12
  return packageJson;
14
13
  });
15
14
  }
16
-
17
- export function updateRepository(tree: Tree, projectRoot: string, repository: string) {
18
- if (repository.startsWith('http://')) {
19
- repository = repository.replace('http://', 'https://');
20
- }
21
-
22
- // update in package.json
23
- updatePackageJson(tree, projectRoot, {
24
- "homepage": `${repository}#readme`,
25
- "bugs": {
26
- "url": `${repository}/issues`
27
- },
28
- "repository": {
29
- "type": "git",
30
- "url": `git+${repository}.git`
31
- },
32
- });
33
-
34
- // update in Jenkinsfile
35
- const filePath = path.join(projectRoot, 'Jenkinsfile');
36
-
37
- if (tree.exists(filePath)) {
38
- const jenkinsFileContent = tree.read(filePath).toString();
39
- let paramExists = false;
40
- const updatedContent = jenkinsFileContent.split('\n').map(line => {
41
- if (line.includes(`string(name: 'REPOSITORY_SSH_URL'`)) {
42
- paramExists = true;
43
- return line.replace(/defaultValue: '.*'/, `defaultValue: '${convertHttpsToSsh(repository)}'`);
44
- }
45
- return line;
46
- }).join('\n');
47
-
48
- if (paramExists) {
49
- tree.write(filePath, updatedContent);
50
- }
51
- }
52
- }
@@ -0,0 +1,45 @@
1
+ /* eslint-disable no-param-reassign */
2
+ import { Tree } from '@nx/devkit';
3
+ import * as path from 'path';
4
+ import { updatePackageJson } from './packageJsonUpdate';
5
+ import { convertHttpsToSsh } from '../../../utils';
6
+
7
+ export function updateRepository(tree: Tree, projectRoot: string, repository: string) {
8
+ if (repository.startsWith('http://')) {
9
+ repository = repository.replace('http://', 'https://');
10
+ }
11
+
12
+ // update in package.json
13
+ updatePackageJson(tree, projectRoot, {
14
+ homepage: `${repository}#readme`,
15
+ bugs: {
16
+ url: `${repository}/issues`,
17
+ },
18
+ repository: {
19
+ type: 'git',
20
+ url: `git+${repository}.git`,
21
+ },
22
+ });
23
+
24
+ // update in Jenkinsfile
25
+ const filePath = path.join(projectRoot, 'Jenkinsfile');
26
+
27
+ if (tree.exists(filePath)) {
28
+ const jenkinsFileContent = tree.read(filePath).toString();
29
+ let paramExists = false;
30
+ const updatedContent = jenkinsFileContent
31
+ .split('\n')
32
+ .map((line) => {
33
+ if (line.includes(`string(name: 'REPOSITORY_SSH_URL'`)) {
34
+ paramExists = true;
35
+ return line.replace(/defaultValue: '.*'/, `defaultValue: '${convertHttpsToSsh(repository)}'`);
36
+ }
37
+ return line;
38
+ })
39
+ .join('\n');
40
+
41
+ if (paramExists) {
42
+ tree.write(filePath, updatedContent);
43
+ }
44
+ }
45
+ }
@@ -0,0 +1,6 @@
1
+ *
2
+ !dist/
3
+ !*.js
4
+ !*.json
5
+ !.npmrc
6
+ !common/
@@ -0,0 +1,4 @@
1
+ *.swp
2
+ *.tmp
3
+ *.temp
4
+ .git*
@@ -0,0 +1,2 @@
1
+ src/modules/module.ts
2
+ common/
@@ -29,11 +29,11 @@
29
29
  "common": "link:./common"
30
30
  },
31
31
  "dependencies": {
32
- "@common-stack/client-core": "6.0.8-alpha.31",
33
- "@common-stack/core": "6.0.8-alpha.31",
34
- "@common-stack/server-core": "6.0.8-alpha.31",
35
- "@common-stack/server-stack": "6.0.8-alpha.66",
36
- "@common-stack/store-mongo": "6.0.8-alpha.66",
32
+ "@common-stack/client-core": "7.0.4-alpha.6",
33
+ "@common-stack/core": "7.0.4-alpha.6",
34
+ "@common-stack/server-core": "7.0.4-alpha.9",
35
+ "@common-stack/server-stack": "7.0.4-alpha.9",
36
+ "@common-stack/store-mongo": "7.0.4-alpha.6",
37
37
  "@container-stack/mailing-api": "5.2.1-alpha.1",
38
38
  "helmet": "^3.21.2",
39
39
  "react": "18.2.0",
@@ -1,29 +1,53 @@
1
- import { addProjectConfiguration, updateJson, formatFiles, generateFiles, Tree } from '@nx/devkit';
1
+ /* eslint-disable import/no-extraneous-dependencies */
2
+ // eslint-disable-next-line jsonc/indent
3
+ import { generateFiles, names, offsetFromRoot, Tree, stripIndents } from '@nx/devkit';
2
4
  import * as path from 'path';
5
+ import { libraryGenerator } from '@nx/js';
3
6
  import { AddMoleculerGeneratorSchema } from './schema';
4
- import { isValid, getValid } from '../../utils';
5
-
6
- const DEFAULT_SERVER_NAME = 'moleculer-server';
7
+ import { copyNpmrc, renameDotFiles } from '../../utils/copyDotfiles';
7
8
 
8
9
  export async function addMoleculerGenerator(tree: Tree, options: AddMoleculerGeneratorSchema) {
9
- const projectName = isValid(options.name) ? `${getValid(options.name)}-server` : DEFAULT_SERVER_NAME;
10
- const configs: any = {...options, name: projectName};
11
-
12
- return await generateMoleculer(tree, configs);
13
- }
10
+ const libsDir = options.directory || 'servers';
11
+ const fullLibsDir = path.join(options.projectRoot || '', libsDir);
14
12
 
15
- export const generateMoleculer = async (tree: Tree, options: any) => {
16
- let projectName = getValid(options.name) ?? DEFAULT_SERVER_NAME;
17
- const projectRoot = isValid(options.directory) ? `${getValid(options.directory)}/${projectName}` : projectName;
18
- projectName = isValid(options.ns) ? `${getValid(options.ns)}-${projectName}` : projectName;
13
+ const name = options.name || 'moleculer-server';
14
+ const normalizedName = names(name).fileName;
15
+ const fullName = path.join(fullLibsDir, normalizedName);
19
16
 
20
- generateFiles(tree, path.join(__dirname, 'files'), projectRoot, options);
21
- updateJson(tree, `${projectRoot}/package.json`, (packageJson) => {
22
- packageJson['name'] = projectName;
23
- return packageJson;
17
+ // Run the Nx library generator to create the basic structure
18
+ await libraryGenerator(tree, {
19
+ name: normalizedName,
20
+ directory: fullLibsDir,
21
+ unitTestRunner: 'jest',
22
+ tags: `scope:moleculer,type:app`,
24
23
  });
25
24
 
26
- await formatFiles(tree);
25
+ // Generate the custom files
26
+ const templateOptions = {
27
+ ...options,
28
+ ...names(name),
29
+ dot: '.',
30
+ offsetFromRoot: offsetFromRoot(fullName),
31
+ template: '',
32
+ };
33
+
34
+ generateFiles(tree, path.join(__dirname, 'files'), fullName, templateOptions);
35
+
36
+ // Rename underscore files to dotfiles
37
+ renameDotFiles(tree, fullName);
38
+
39
+ // Copy .npmrc from the project root
40
+ const projectRoot = options.projectRoot || '';
41
+ copyNpmrc(tree, projectRoot, fullName);
42
+
43
+ console.log(stripIndents`
44
+ Thank you for using the @common-stack moleculer-server generator!
45
+
46
+ Next steps:
47
+
48
+ - Run \`yarn\` to install dependencies
49
+ - Start application with \`yarn start\`
50
+ `);
27
51
  }
28
52
 
29
53
  export default addMoleculerGenerator;
@@ -0,0 +1,6 @@
1
+ export interface AddMoleculerGeneratorSchema {
2
+ name?: string;
3
+ directory?: string;
4
+ ns?: string;
5
+ projectRoot?: string;
6
+ }