@common-stack/generate-plugin 7.0.3-alpha.2 → 7.0.4-alpha.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 (333) hide show
  1. package/CHANGELOG.md +8 -0
  2. package/lib/generators/add-backend/files/_dockerignore +9 -0
  3. package/lib/generators/add-backend/files/_gitignore +13 -0
  4. package/lib/generators/add-backend/files/_npmignore +2 -0
  5. package/lib/generators/add-backend/files/_yarnrc +1 -0
  6. package/lib/generators/add-backend/files/package.json +1 -1
  7. package/lib/generators/add-backend/generator.cjs +6 -1
  8. package/lib/generators/add-backend/generator.cjs.map +1 -1
  9. package/lib/generators/add-backend/generator.mjs +6 -1
  10. package/lib/generators/add-backend/generator.mjs.map +1 -1
  11. package/lib/generators/add-frontend/generator.cjs +6 -1
  12. package/lib/generators/add-frontend/generator.cjs.map +1 -1
  13. package/lib/generators/add-frontend/generator.mjs +6 -1
  14. package/lib/generators/add-frontend/generator.mjs.map +1 -1
  15. package/lib/generators/add-frontend/templates/_dockerignore +13 -0
  16. package/lib/generators/add-frontend/templates/_gitignore +4 -0
  17. package/lib/generators/add-frontend/templates/_npmignore +2 -0
  18. package/lib/generators/add-frontend/templates/package.json +2 -2
  19. package/lib/generators/add-fullstack/files/_browserslistrc +3 -0
  20. package/{src/generators/add-fullstack/files/.eslintrc.js → lib/generators/add-fullstack/files/_eslintrc.js} +2 -5
  21. package/lib/generators/add-fullstack/files/_git-crypt/.gitattributes +4 -0
  22. package/lib/generators/add-fullstack/files/_git-crypt/keys/default/0/147885163DF27F4877B0BC14DE8C27DDE38F1E61.gpg +0 -0
  23. package/lib/generators/add-fullstack/files/_git-crypt/keys/default/0/49AB3942E38DB928ACF3905EC2DB4383B4A6E5EA.gpg +1 -0
  24. package/lib/generators/add-fullstack/files/_git-crypt/keys/default/0/49F363DC4362D3C17B2FE0091871B202236FD41B.gpg +0 -0
  25. package/lib/generators/add-fullstack/files/_git-crypt/keys/default/0/54EBB791640A664510494E416177B1BAA1083A88.gpg +0 -0
  26. package/lib/generators/add-fullstack/files/_git-crypt/keys/default/0/70961F6ECD8220394FD8AB555E94AC25CBCBA1A3.gpg +0 -0
  27. package/lib/generators/add-fullstack/files/_git-crypt/keys/default/0/EBA4B7A860BD152BF5F9F727F12B84D048062B79.gpg +0 -0
  28. package/lib/generators/add-fullstack/files/_gitignore +62 -0
  29. package/lib/generators/add-fullstack/files/_husky/pre-commit +4 -0
  30. package/lib/generators/add-fullstack/files/_husky/prepare-commit-msg +4 -0
  31. package/{src/generators/add-fullstack/files/.markdownlint.json → lib/generators/add-fullstack/files/_markdownlint.json} +1 -1
  32. package/lib/generators/add-fullstack/files/_npmrc +2 -0
  33. package/lib/generators/add-fullstack/files/lint-staged.config.js +2 -2
  34. package/lib/generators/add-fullstack/files/package.json +3 -9
  35. package/lib/generators/add-fullstack/generator.cjs +51 -20
  36. package/lib/generators/add-fullstack/generator.cjs.map +1 -1
  37. package/lib/generators/add-fullstack/generator.d.ts +1 -1
  38. package/lib/generators/add-fullstack/generator.mjs +45 -14
  39. package/lib/generators/add-fullstack/generator.mjs.map +1 -1
  40. package/lib/generators/add-fullstack/updates/{ignoreUpdate.cjs → fileBackup.cjs} +1 -1
  41. package/lib/generators/add-fullstack/updates/fileBackup.cjs.map +1 -0
  42. package/lib/generators/add-fullstack/updates/{ignoreUpdate.mjs → fileBackup.mjs} +1 -1
  43. package/lib/generators/add-fullstack/updates/fileBackup.mjs.map +1 -0
  44. package/lib/generators/add-fullstack/updates/gitAttributesSetup.cjs +17 -0
  45. package/lib/generators/add-fullstack/updates/gitAttributesSetup.cjs.map +1 -0
  46. package/lib/generators/add-fullstack/updates/gitAttributesSetup.d.ts +9 -0
  47. package/lib/generators/add-fullstack/updates/gitAttributesSetup.mjs +17 -0
  48. package/lib/generators/add-fullstack/updates/gitAttributesSetup.mjs.map +1 -0
  49. package/lib/generators/add-fullstack/updates/gitCryptSetup.cjs +70 -0
  50. package/lib/generators/add-fullstack/updates/gitCryptSetup.cjs.map +1 -0
  51. package/lib/generators/add-fullstack/updates/gitCryptSetup.d.ts +5 -0
  52. package/lib/generators/add-fullstack/updates/gitCryptSetup.mjs +70 -0
  53. package/lib/generators/add-fullstack/updates/gitCryptSetup.mjs.map +1 -0
  54. package/lib/generators/add-fullstack/updates/gitSetup.cjs +55 -0
  55. package/lib/generators/add-fullstack/updates/gitSetup.cjs.map +1 -0
  56. package/lib/generators/add-fullstack/updates/gitSetup.d.ts +9 -0
  57. package/lib/generators/add-fullstack/updates/gitSetup.mjs +55 -0
  58. package/lib/generators/add-fullstack/updates/gitSetup.mjs.map +1 -0
  59. package/lib/generators/add-fullstack/updates/htmlPluginUpdate.cjs +28 -1
  60. package/lib/generators/add-fullstack/updates/htmlPluginUpdate.cjs.map +1 -1
  61. package/lib/generators/add-fullstack/updates/htmlPluginUpdate.d.ts +1 -0
  62. package/lib/generators/add-fullstack/updates/htmlPluginUpdate.mjs +28 -1
  63. package/lib/generators/add-fullstack/updates/htmlPluginUpdate.mjs.map +1 -1
  64. package/lib/generators/add-fullstack/updates/huskySetup.cjs +71 -0
  65. package/lib/generators/add-fullstack/updates/huskySetup.cjs.map +1 -0
  66. package/lib/generators/add-fullstack/updates/huskySetup.d.ts +2 -0
  67. package/lib/generators/add-fullstack/updates/huskySetup.mjs +71 -0
  68. package/lib/generators/add-fullstack/updates/huskySetup.mjs.map +1 -0
  69. package/lib/generators/add-fullstack/updates/index.d.ts +13 -6
  70. package/lib/generators/add-fullstack/updates/jenkinsUpdate.cjs +44 -0
  71. package/lib/generators/add-fullstack/updates/jenkinsUpdate.cjs.map +1 -0
  72. package/lib/generators/add-fullstack/updates/jenkinsUpdate.mjs +44 -0
  73. package/lib/generators/add-fullstack/updates/jenkinsUpdate.mjs.map +1 -0
  74. package/lib/generators/add-fullstack/updates/{lernaJsonUpdate.cjs → lernaUpdate.cjs} +6 -7
  75. package/lib/generators/add-fullstack/updates/lernaUpdate.cjs.map +1 -0
  76. package/lib/generators/add-fullstack/updates/{lernaJsonUpdate.mjs → lernaUpdate.mjs} +6 -7
  77. package/lib/generators/add-fullstack/updates/lernaUpdate.mjs.map +1 -0
  78. package/lib/generators/add-fullstack/updates/licenseUpdate.cjs +1 -1
  79. package/lib/generators/add-fullstack/updates/licenseUpdate.cjs.map +1 -1
  80. package/lib/generators/add-fullstack/updates/licenseUpdate.mjs +1 -1
  81. package/lib/generators/add-fullstack/updates/licenseUpdate.mjs.map +1 -1
  82. package/lib/generators/add-fullstack/updates/npmAuthSetup.cjs +60 -0
  83. package/lib/generators/add-fullstack/updates/npmAuthSetup.cjs.map +1 -0
  84. package/lib/generators/add-fullstack/updates/npmAuthSetup.d.ts +5 -0
  85. package/lib/generators/add-fullstack/updates/npmAuthSetup.mjs +60 -0
  86. package/lib/generators/add-fullstack/updates/npmAuthSetup.mjs.map +1 -0
  87. package/lib/generators/add-fullstack/updates/nxSetup.cjs +81 -0
  88. package/lib/generators/add-fullstack/updates/nxSetup.cjs.map +1 -0
  89. package/lib/generators/add-fullstack/updates/nxSetup.d.ts +5 -0
  90. package/lib/generators/add-fullstack/updates/nxSetup.mjs +81 -0
  91. package/lib/generators/add-fullstack/updates/nxSetup.mjs.map +1 -0
  92. package/lib/generators/add-fullstack/updates/packageJsonUpdate.cjs +2 -34
  93. package/lib/generators/add-fullstack/updates/packageJsonUpdate.cjs.map +1 -1
  94. package/lib/generators/add-fullstack/updates/packageJsonUpdate.d.ts +0 -1
  95. package/lib/generators/add-fullstack/updates/packageJsonUpdate.mjs +2 -34
  96. package/lib/generators/add-fullstack/updates/packageJsonUpdate.mjs.map +1 -1
  97. package/lib/generators/add-fullstack/updates/repositoryUpdate.cjs +35 -0
  98. package/lib/generators/add-fullstack/updates/repositoryUpdate.cjs.map +1 -0
  99. package/lib/generators/add-fullstack/updates/repositoryUpdate.d.ts +2 -0
  100. package/lib/generators/add-fullstack/updates/repositoryUpdate.mjs +35 -0
  101. package/lib/generators/add-fullstack/updates/repositoryUpdate.mjs.map +1 -0
  102. package/lib/generators/add-moleculer/files/_gitignore +2 -0
  103. package/lib/generators/add-moleculer/files/package.json +5 -5
  104. package/lib/generators/add-moleculer/generator.cjs +30 -18
  105. package/lib/generators/add-moleculer/generator.cjs.map +1 -1
  106. package/lib/generators/add-moleculer/generator.d.ts +0 -1
  107. package/lib/generators/add-moleculer/generator.mjs +30 -18
  108. package/lib/generators/add-moleculer/generator.mjs.map +1 -1
  109. package/lib/generators/add-moleculer/schema.d.ts +6 -0
  110. package/lib/generators/add-package/files/browser/LICENSE +674 -0
  111. package/lib/generators/add-package/files/browser/_npmignore +2 -0
  112. package/lib/generators/add-package/files/browser/jest.config.js +8 -0
  113. package/lib/generators/add-package/files/browser/package.json +49 -0
  114. package/lib/generators/add-package/files/browser/rollup.config.mjs +29 -0
  115. package/lib/generators/add-package/files/browser/src/config/env-config.ts.template +9 -0
  116. package/lib/generators/add-package/files/browser/src/index.ts.template +4 -0
  117. package/lib/generators/add-package/files/browser/src/interfaces/index.ts.template +1 -0
  118. package/lib/generators/add-package/files/browser/src/interfaces/interfaces.ts.template +1 -0
  119. package/lib/generators/add-package/files/browser/src/module.tsx.template +7 -0
  120. package/lib/generators/add-package/files/browser/tsconfig.json +28 -0
  121. package/lib/generators/add-package/files/browser/webpack.config.js +71 -0
  122. package/lib/generators/add-package/files/client/LICENSE +674 -0
  123. package/lib/generators/add-package/files/client/_npmignore +2 -0
  124. package/lib/generators/add-package/files/client/jest.config.js +13 -0
  125. package/lib/generators/add-package/files/client/package.json +30 -0
  126. package/lib/generators/add-package/files/client/rollup.config.mjs +29 -0
  127. package/lib/generators/add-package/files/client/src/components/index.tsx.template +1 -0
  128. package/lib/generators/add-package/files/client/src/config/env-config.ts.template +9 -0
  129. package/lib/generators/add-package/files/client/src/index.ts.template +1 -0
  130. package/lib/generators/add-package/files/client/tsconfig.json +27 -0
  131. package/lib/generators/add-package/files/client/webpack.config.js +72 -0
  132. package/lib/generators/add-package/files/core/LICENSE +39 -0
  133. package/lib/generators/add-package/files/core/_npmignore +3 -0
  134. package/lib/generators/add-package/files/core/jest.config.js +3 -0
  135. package/lib/generators/add-package/files/core/package.json +30 -0
  136. package/lib/generators/add-package/files/core/rollup.config.mjs +65 -0
  137. package/lib/generators/add-package/files/core/src/cdm-locales/en/main.json +2 -0
  138. package/lib/generators/add-package/files/core/src/cdm-locales/es/common.json +2 -0
  139. package/lib/generators/add-package/files/core/src/cdm-locales/es/main.json +1 -0
  140. package/lib/generators/add-package/files/core/src/config/env-config.ts.template +9 -0
  141. package/lib/generators/add-package/files/core/src/constants/index.ts.template +1 -0
  142. package/lib/generators/add-package/files/core/src/constants/types.ts.template +3 -0
  143. package/lib/generators/add-package/files/core/src/index.ts.template +2 -0
  144. package/lib/generators/add-package/files/core/src/types/index.ts.template +1 -0
  145. package/lib/generators/add-package/files/core/src/types/types.ts.template +17 -0
  146. package/lib/generators/add-package/files/core/tsconfig.json +22 -0
  147. package/lib/generators/add-package/files/core/webpack.config.js +53 -0
  148. package/lib/generators/add-package/files/server/LICENSE +674 -0
  149. package/lib/generators/add-package/files/server/_npmignore +2 -0
  150. package/lib/generators/add-package/files/server/jest.config.js +32 -0
  151. package/lib/generators/add-package/files/server/package.json +78 -0
  152. package/lib/generators/add-package/files/server/rollup.config.mjs +30 -0
  153. package/lib/generators/add-package/files/server/src/config/env-config.ts.template +9 -0
  154. package/lib/generators/add-package/files/server/src/constants/constants.ts.template +62 -0
  155. package/lib/generators/add-package/files/server/src/constants/index.ts.template +1 -0
  156. package/lib/generators/add-package/files/server/src/constants/types.ts.template +21 -0
  157. package/lib/generators/add-package/files/server/src/index.ts.template +6 -0
  158. package/lib/generators/add-package/files/server/src/module.ts.template +6 -0
  159. package/lib/generators/add-package/files/server/tsconfig.json +27 -0
  160. package/lib/index.cjs +1 -1
  161. package/lib/index.d.ts +5 -5
  162. package/lib/index.mjs +1 -1
  163. package/lib/utils/copyDotfiles.cjs +86 -0
  164. package/lib/utils/copyDotfiles.cjs.map +1 -0
  165. package/lib/utils/copyDotfiles.d.ts +14 -0
  166. package/lib/utils/copyDotfiles.mjs +86 -0
  167. package/lib/utils/copyDotfiles.mjs.map +1 -0
  168. package/package.json +3 -3
  169. package/src/generators/add-backend/files/Dockerfile +28 -0
  170. package/src/generators/add-backend/files/LICENSE +661 -0
  171. package/src/generators/add-backend/files/README.md +133 -0
  172. package/src/generators/add-backend/files/__tests__/test.ts.template +96 -0
  173. package/src/generators/add-backend/files/_dockerignore +9 -0
  174. package/src/generators/add-backend/files/_gitignore +13 -0
  175. package/src/generators/add-backend/files/_npmignore +2 -0
  176. package/src/generators/add-backend/files/_yarnrc +1 -0
  177. package/src/generators/add-backend/files/babel.config.js +45 -0
  178. package/src/generators/add-backend/files/build.config.js +14 -0
  179. package/src/generators/add-backend/files/build.config.mjs +27 -0
  180. package/src/generators/add-backend/files/config.json +10 -0
  181. package/src/generators/add-backend/files/jest.config.js +27 -0
  182. package/src/generators/add-backend/files/package.json +82 -0
  183. package/src/generators/add-backend/files/src/api/root-schema.graphqls +109 -0
  184. package/src/generators/add-backend/files/src/config/env-config.ts.template +12 -0
  185. package/src/generators/add-backend/files/src/config/index.ts.template +1 -0
  186. package/src/generators/add-backend/files/src/env.ts.template +5 -0
  187. package/src/generators/add-backend/files/src/index.ts.template +56 -0
  188. package/src/generators/add-backend/files/src/modules/index.ts.template +17 -0
  189. package/src/generators/add-backend/files/src/service.ts.template +35 -0
  190. package/src/generators/add-backend/files/tsconfig.base.json +30 -0
  191. package/src/generators/add-backend/files/tsconfig.json +13 -0
  192. package/src/generators/add-backend/files/webpack.config.js +200 -0
  193. package/src/generators/add-backend/files/webpack.config.mjs +216 -0
  194. package/src/generators/add-backend/generator.ts +13 -4
  195. package/src/generators/add-frontend/generator.ts +8 -0
  196. package/src/generators/add-frontend/templates/CHANGELOG.md +72 -0
  197. package/src/generators/add-frontend/templates/Dockerfile +31 -0
  198. package/src/generators/add-frontend/templates/_browserslistrc +3 -0
  199. package/src/generators/add-frontend/templates/_dockerignore +13 -0
  200. package/src/generators/add-frontend/templates/_gitignore +4 -0
  201. package/src/generators/add-frontend/templates/_npmignore +2 -0
  202. package/src/generators/add-frontend/templates/codecept.json +28 -0
  203. package/src/generators/add-frontend/templates/config.json +5 -0
  204. package/src/generators/add-frontend/templates/env.d.ts.template +9 -0
  205. package/src/generators/add-frontend/templates/env.js +5 -0
  206. package/src/generators/add-frontend/templates/favicon.ico +0 -0
  207. package/src/generators/add-frontend/templates/jest.config.js +33 -0
  208. package/src/generators/add-frontend/templates/package.json +102 -0
  209. package/src/generators/add-frontend/templates/public/favicon.ico +0 -0
  210. package/src/generators/add-frontend/templates/server.js +78 -0
  211. package/src/generators/add-frontend/templates/src/config/public-config.ts.template +88 -0
  212. package/src/generators/add-frontend/templates/tools/checkQueryUsage.mjs +192 -0
  213. package/src/generators/add-frontend/templates/tools/mergeConfig.js +35 -0
  214. package/src/generators/add-frontend/templates/tsconfig.base.json +38 -0
  215. package/src/generators/add-frontend/templates/tsconfig.json +32 -0
  216. package/src/generators/add-frontend/templates/tsconfig.node.json +10 -0
  217. package/src/generators/add-frontend/templates/vite.config.ts.template +115 -0
  218. package/src/generators/add-fullstack/files/_browserslistrc +3 -0
  219. package/src/generators/add-fullstack/files/_eslintignore +3 -0
  220. package/src/generators/add-fullstack/files/_eslintrc.js +89 -0
  221. package/src/generators/add-fullstack/files/_git-crypt/.gitattributes +4 -0
  222. package/src/generators/add-fullstack/files/_git-crypt/keys/default/0/147885163DF27F4877B0BC14DE8C27DDE38F1E61.gpg +0 -0
  223. package/src/generators/add-fullstack/files/_git-crypt/keys/default/0/49AB3942E38DB928ACF3905EC2DB4383B4A6E5EA.gpg +1 -0
  224. package/src/generators/add-fullstack/files/_git-crypt/keys/default/0/49F363DC4362D3C17B2FE0091871B202236FD41B.gpg +0 -0
  225. package/src/generators/add-fullstack/files/_git-crypt/keys/default/0/54EBB791640A664510494E416177B1BAA1083A88.gpg +0 -0
  226. package/src/generators/add-fullstack/files/_git-crypt/keys/default/0/70961F6ECD8220394FD8AB555E94AC25CBCBA1A3.gpg +0 -0
  227. package/src/generators/add-fullstack/files/_git-crypt/keys/default/0/EBA4B7A860BD152BF5F9F727F12B84D048062B79.gpg +0 -0
  228. package/src/generators/add-fullstack/files/_gitattributes +5 -0
  229. package/src/generators/add-fullstack/files/_gitignore +62 -0
  230. package/src/generators/add-fullstack/files/_husky/pre-commit +4 -0
  231. package/src/generators/add-fullstack/files/_husky/prepare-commit-msg +4 -0
  232. package/src/generators/add-fullstack/files/_markdownlint.json +6 -0
  233. package/src/generators/add-fullstack/files/_markdownlintignore +5 -0
  234. package/src/generators/add-fullstack/files/_npmrc +2 -0
  235. package/src/generators/add-fullstack/files/_nxignore +8 -0
  236. package/src/generators/add-fullstack/files/lint-staged.config.js +2 -2
  237. package/src/generators/add-fullstack/files/package.json +3 -9
  238. package/src/generators/add-fullstack/generator.spec.ts +2 -0
  239. package/src/generators/add-fullstack/generator.ts +74 -20
  240. package/src/generators/add-fullstack/schema.d.ts +2 -2
  241. package/src/generators/add-fullstack/updates/gitAttributesSetup.ts +60 -0
  242. package/src/generators/add-fullstack/updates/gitCryptSetup.ts +77 -0
  243. package/src/generators/add-fullstack/updates/gitSetup.ts +63 -0
  244. package/src/generators/add-fullstack/updates/htmlPluginUpdate.ts +31 -0
  245. package/src/generators/add-fullstack/updates/huskySetup.ts +84 -0
  246. package/src/generators/add-fullstack/updates/index.ts +13 -6
  247. package/src/generators/add-fullstack/updates/jenkinsUpdate.ts +53 -0
  248. package/src/generators/add-fullstack/updates/{lernaJsonUpdate.ts → lernaUpdate.ts} +6 -7
  249. package/src/generators/add-fullstack/updates/licenseUpdate.ts +3 -3
  250. package/src/generators/add-fullstack/updates/npmAuthSetup.ts +76 -0
  251. package/src/generators/add-fullstack/updates/nxSetup.ts +95 -0
  252. package/src/generators/add-fullstack/updates/packageJsonUpdate.ts +4 -42
  253. package/src/generators/add-fullstack/updates/repositoryUpdate.ts +45 -0
  254. package/src/generators/add-moleculer/files/_dockerignore +6 -0
  255. package/src/generators/add-moleculer/files/_draftignore +4 -0
  256. package/src/generators/add-moleculer/files/_gitignore +2 -0
  257. package/src/generators/add-moleculer/files/package.json +5 -5
  258. package/src/generators/add-moleculer/generator.ts +42 -18
  259. package/src/generators/add-moleculer/schema.ts +6 -0
  260. package/src/generators/add-package/files/browser/LICENSE +674 -0
  261. package/src/generators/add-package/files/browser/_npmignore +2 -0
  262. package/src/generators/add-package/files/browser/jest.config.js +8 -0
  263. package/src/generators/add-package/files/browser/package.json +49 -0
  264. package/src/generators/add-package/files/browser/rollup.config.mjs +29 -0
  265. package/src/generators/add-package/files/browser/src/config/env-config.ts.template +9 -0
  266. package/src/generators/add-package/files/browser/src/index.ts.template +4 -0
  267. package/src/generators/add-package/files/browser/src/interfaces/index.ts.template +1 -0
  268. package/src/generators/add-package/files/browser/src/interfaces/interfaces.ts.template +1 -0
  269. package/src/generators/add-package/files/browser/src/module.tsx.template +7 -0
  270. package/src/generators/add-package/files/browser/tsconfig.json +28 -0
  271. package/src/generators/add-package/files/browser/webpack.config.js +71 -0
  272. package/src/generators/add-package/files/client/LICENSE +674 -0
  273. package/src/generators/add-package/files/client/_npmignore +2 -0
  274. package/src/generators/add-package/files/client/jest.config.js +13 -0
  275. package/src/generators/add-package/files/client/package.json +30 -0
  276. package/src/generators/add-package/files/client/rollup.config.mjs +29 -0
  277. package/src/generators/add-package/files/client/src/components/index.tsx.template +1 -0
  278. package/src/generators/add-package/files/client/src/config/env-config.ts.template +9 -0
  279. package/src/generators/add-package/files/client/src/index.ts.template +1 -0
  280. package/src/generators/add-package/files/client/tsconfig.json +27 -0
  281. package/src/generators/add-package/files/client/webpack.config.js +72 -0
  282. package/src/generators/add-package/files/core/LICENSE +39 -0
  283. package/src/generators/add-package/files/core/_npmignore +3 -0
  284. package/src/generators/add-package/files/core/jest.config.js +3 -0
  285. package/src/generators/add-package/files/core/package.json +30 -0
  286. package/src/generators/add-package/files/core/rollup.config.mjs +65 -0
  287. package/src/generators/add-package/files/core/src/cdm-locales/en/main.json +2 -0
  288. package/src/generators/add-package/files/core/src/cdm-locales/es/common.json +2 -0
  289. package/src/generators/add-package/files/core/src/cdm-locales/es/main.json +1 -0
  290. package/src/generators/add-package/files/core/src/config/env-config.ts.template +9 -0
  291. package/src/generators/add-package/files/core/src/constants/index.ts.template +1 -0
  292. package/src/generators/add-package/files/core/src/constants/types.ts.template +3 -0
  293. package/src/generators/add-package/files/core/src/index.ts.template +2 -0
  294. package/src/generators/add-package/files/core/src/types/index.ts.template +1 -0
  295. package/src/generators/add-package/files/core/src/types/types.ts.template +17 -0
  296. package/src/generators/add-package/files/core/tsconfig.json +22 -0
  297. package/src/generators/add-package/files/core/webpack.config.js +53 -0
  298. package/src/generators/add-package/files/server/LICENSE +674 -0
  299. package/src/generators/add-package/files/server/_npmignore +2 -0
  300. package/src/generators/add-package/files/server/jest.config.js +32 -0
  301. package/src/generators/add-package/files/server/package.json +78 -0
  302. package/src/generators/add-package/files/server/rollup.config.mjs +30 -0
  303. package/src/generators/add-package/files/server/src/config/env-config.ts.template +9 -0
  304. package/src/generators/add-package/files/server/src/constants/constants.ts.template +62 -0
  305. package/src/generators/add-package/files/server/src/constants/index.ts.template +1 -0
  306. package/src/generators/add-package/files/server/src/constants/types.ts.template +21 -0
  307. package/src/generators/add-package/files/server/src/index.ts.template +6 -0
  308. package/src/generators/add-package/files/server/src/module.ts.template +6 -0
  309. package/src/generators/add-package/files/server/tsconfig.json +27 -0
  310. package/src/index.ts +7 -6
  311. package/src/utils/copyDotfiles.ts +96 -0
  312. package/lib/generators/add-fullstack/updates/ignoreUpdate.cjs.map +0 -1
  313. package/lib/generators/add-fullstack/updates/ignoreUpdate.mjs.map +0 -1
  314. package/lib/generators/add-fullstack/updates/jenkinsfileUpdate.cjs +0 -37
  315. package/lib/generators/add-fullstack/updates/jenkinsfileUpdate.cjs.map +0 -1
  316. package/lib/generators/add-fullstack/updates/jenkinsfileUpdate.mjs +0 -37
  317. package/lib/generators/add-fullstack/updates/jenkinsfileUpdate.mjs.map +0 -1
  318. package/lib/generators/add-fullstack/updates/lernaJsonUpdate.cjs.map +0 -1
  319. package/lib/generators/add-fullstack/updates/lernaJsonUpdate.mjs.map +0 -1
  320. package/src/generators/add-fullstack/files/.husky/pre-commit +0 -1
  321. package/src/generators/add-fullstack/files/.travis.yml +0 -18
  322. package/src/generators/add-fullstack/updates/jenkinsfileUpdate.ts +0 -49
  323. /package/{src/generators/add-fullstack/files/.browserslistrc → lib/generators/add-frontend/templates/_browserslistrc} +0 -0
  324. /package/{src/generators/add-fullstack/files/.eslintignore → lib/generators/add-fullstack/files/_eslintignore} +0 -0
  325. /package/{src/generators/add-fullstack/files/.gitattributes → lib/generators/add-fullstack/files/_gitattributes} +0 -0
  326. /package/{src/generators/add-fullstack/files/.markdownlintignore → lib/generators/add-fullstack/files/_markdownlintignore} +0 -0
  327. /package/{src/generators/add-fullstack/.nxignore → lib/generators/add-fullstack/files/_nxignore} +0 -0
  328. /package/lib/generators/add-fullstack/updates/{ignoreUpdate.d.ts → fileBackup.d.ts} +0 -0
  329. /package/lib/generators/add-fullstack/updates/{jenkinsfileUpdate.d.ts → jenkinsUpdate.d.ts} +0 -0
  330. /package/lib/generators/add-fullstack/updates/{lernaJsonUpdate.d.ts → lernaUpdate.d.ts} +0 -0
  331. /package/{src/generators/add-moleculer/files/.dockerignore → lib/generators/add-moleculer/files/_dockerignore} +0 -0
  332. /package/{src/generators/add-moleculer/files/.draftignore → lib/generators/add-moleculer/files/_draftignore} +0 -0
  333. /package/src/generators/add-fullstack/updates/{ignoreUpdate.ts → fileBackup.ts} +0 -0
@@ -0,0 +1,32 @@
1
+ {
2
+ "include": [
3
+ "**/*.ts",
4
+ "**/*.tsx",
5
+ "**/.server/**/*.ts",
6
+ "**/.server/**/*.tsx",
7
+ "**/.client/**/*.ts",
8
+ "**/.client/**/*.tsx"
9
+ ],
10
+ "compilerOptions": {
11
+ "lib": ["DOM", "DOM.Iterable", "ES2022"],
12
+ "types": ["@remix-run/node", "vite/client"],
13
+ "isolatedModules": true,
14
+ "esModuleInterop": true,
15
+ "jsx": "react-jsx",
16
+ "module": "ESNext",
17
+ "moduleResolution": "Bundler",
18
+ "resolveJsonModule": true,
19
+ "target": "ES2022",
20
+ "strict": true,
21
+ "allowJs": true,
22
+ "skipLibCheck": true,
23
+ "forceConsistentCasingInFileNames": true,
24
+ "baseUrl": ".",
25
+ "paths": {
26
+ "~/*": ["./src/*"]
27
+ },
28
+
29
+ // Vite takes care of building everything, not tsc.
30
+ "noEmit": true
31
+ }
32
+ }
@@ -0,0 +1,10 @@
1
+ {
2
+ "compilerOptions": {
3
+ "composite": true,
4
+ "skipLibCheck": true,
5
+ "module": "ESNext",
6
+ "moduleResolution": "bundler",
7
+ "allowSyntheticDefaultImports": true
8
+ },
9
+ "include": ["vite.config.ts"]
10
+ }
@@ -0,0 +1,115 @@
1
+ import { defineConfig } from 'vite';
2
+ import { vitePlugin as remix } from '@remix-run/dev';
3
+ import { dirname, resolve } from 'path';
4
+ import { installGlobals } from '@remix-run/node';
5
+ import { fileURLToPath } from 'url';
6
+ import { defineRoutesConfig } from '@common-stack/rollup-vite-utils/lib/vite-wrappers/json-wrappers.js';
7
+ import tsconfigPaths from 'vite-tsconfig-paths';
8
+ import { i18nInternationalizationPlugin } from '@common-stack/rollup-vite-utils/lib/vite-plugins/i18n-internationalization-plugin.js';
9
+ import { performCopyOperations } from '@common-stack/rollup-vite-utils/lib/preStartup/configLoader/configLoader.js';
10
+ import { loadEnvConfig } from '@common-stack/rollup-vite-utils/lib/preStartup/configLoader/envLoader.js';
11
+ import { cjsInterop } from 'vite-plugin-cjs-interop';
12
+ import { mergeWith } from 'lodash-es';
13
+ import config from './app/cde-webconfig.json' assert { type: 'json' };
14
+
15
+ // This installs globals such as "fetch", "Response", "Request" and "Headers".
16
+ installGlobals();
17
+
18
+ const directoryName = dirname(fileURLToPath(import.meta.url));
19
+
20
+ export default defineConfig(async ({ isSsrBuild }) => {
21
+ console.log('--- IS SSR BUILD:', isSsrBuild);
22
+
23
+ // Load environment variables from dotenv or other config
24
+ const dotEnvResult = loadEnvConfig(directoryName);
25
+
26
+ // Define environment variables for Vite
27
+ const envVariables = {
28
+ __ENV__: JSON.stringify(dotEnvResult?.parsed),
29
+ __SERVER__: true,
30
+ __CLIENT__: false,
31
+ ...Object.fromEntries(
32
+ Object.entries(config.buildConfig).map(([key, value]) => [
33
+ key,
34
+ typeof value === 'string' ? `"${value.replace(/\\/g, '\\\\')}"` : value,
35
+ ])
36
+ ),
37
+ };
38
+
39
+ // Define routes configuration
40
+ const routesConfig = async (defineRoutes) => {
41
+ // In production, perform required file copy operations
42
+ if (process.env.NODE_ENV === 'production') {
43
+ await performCopyOperations(config);
44
+ }
45
+
46
+ // Load metadata for routes
47
+ let metaJson = null;
48
+ try {
49
+ metaJson = await import('./app/sync-meta.json');
50
+ } catch {
51
+ console.warn('No sync-meta.json found, continuing without metadata.');
52
+ }
53
+
54
+ // Return routes definition
55
+ return defineRoutes((routeFn) =>
56
+ defineRoutesConfig(
57
+ routeFn,
58
+ {
59
+ routesFileName: 'routes.json',
60
+ packages: config.modules,
61
+ paths: config.paths,
62
+ iconsRepository: config?.iconsRepository,
63
+ rootPath: resolve(directoryName, '../..'),
64
+ settings: {
65
+ _useFutureCommonPackage: true,
66
+ },
67
+ },
68
+ metaJson
69
+ )
70
+ );
71
+ };
72
+
73
+ // Vite configuration
74
+ const viteConfig = {
75
+ define: envVariables,
76
+ plugins: [
77
+ i18nInternationalizationPlugin({
78
+ folderName: 'cdm-locales',
79
+ packages: [...config.modules, ...config.i18n.packages],
80
+ namespaceResolution: 'basename',
81
+ }),
82
+ cjsInterop({
83
+ dependencies: ['@apollo/client'],
84
+ }),
85
+ remix({
86
+ appDirectory: 'src',
87
+ routes: routesConfig,
88
+ }),
89
+ tsconfigPaths({ ignoreConfigErrors: true }),
90
+ ],
91
+ optimizeDeps: {
92
+ esbuildOptions: {
93
+ target: 'esnext',
94
+ },
95
+ },
96
+ build: {
97
+ target: 'esnext',
98
+ },
99
+ resolve: {
100
+ alias: {
101
+ '@app': resolve(directoryName, 'app'),
102
+ '@src': resolve(directoryName, 'src'),
103
+ },
104
+ },
105
+ };
106
+
107
+ // Deep merge custom Vite config from config.json
108
+ // to merge Arrays properly need to concat.
109
+ const result = mergeWith(config.viteConfig, viteConfig, (objValue, srcValue) => {
110
+ if (Array.isArray(objValue)) {
111
+ return objValue.concat(srcValue);
112
+ }
113
+ });
114
+ return result;
115
+ });
@@ -0,0 +1,3 @@
1
+ defaults
2
+ not IE 11
3
+ not IE_Mob 11
@@ -0,0 +1,3 @@
1
+ node_modules
2
+ dist
3
+ lib
@@ -0,0 +1,89 @@
1
+ const common = {
2
+ env: {
3
+ node: true,
4
+ es6: true,
5
+ 'jest/globals': true,
6
+ },
7
+ plugins: ['prettier', 'jest', 'markdown'],
8
+ extends: ['airbnb-base', 'prettier', 'plugin:jest/all', 'plugin:json/recommended'],
9
+ rules: {
10
+ 'jest/unbound-method': 'off',
11
+ 'prettier/prettier': 'error',
12
+ 'jest/no-disabled-tests': 'warn',
13
+ 'jest/no-focused-tests': 'error',
14
+ 'jest/no-identical-title': 'error',
15
+ 'jest/prefer-to-have-length': 'warn',
16
+ 'jest/valid-expect': 'error',
17
+ 'jest/expect-expect': 'off',
18
+ 'jest/prefer-expect-assertions': 'off',
19
+ 'jest/no-test-return-statement': 'off',
20
+ 'import/prefer-default-export': 'off',
21
+ 'import/extensions': 'off',
22
+ 'no-console': 'off',
23
+ 'no-iterator': 'off',
24
+ 'no-restricted-syntax': 'off',
25
+ 'no-await-in-loop': 'off',
26
+ 'consistent-return': 'off',
27
+ 'no-shadow': 'off',
28
+ 'no-unused-vars': 'off',
29
+ 'jsonc/indent': ['error', 2, {}],
30
+ },
31
+ globals: {
32
+ fetch: true,
33
+ window: true,
34
+ document: true,
35
+ __CDN_URL__: true,
36
+ __DEV__: true,
37
+ __TEST__: true,
38
+ __CLIENT__: true,
39
+ __SERVER__: true,
40
+ __GRAPHQL_ENDPOINT__: true,
41
+ __SSR__: true,
42
+ __PERSIST_GQL__: true,
43
+ __API_URL__: true,
44
+ __WEBSITE_URL__: true,
45
+ __FRONTEND_BUILD_DIR__: true,
46
+ },
47
+ };
48
+
49
+ module.exports = {
50
+ root: true,
51
+ overrides: [
52
+ {
53
+ /*
54
+ eslint-plugin-markdown only finds javascript code block snippet.
55
+ For specific spec, refer to https://github.com/eslint/eslint-plugin-markdown
56
+ */
57
+ files: ['**/*.js', '**/*.md'],
58
+ ...common,
59
+ },
60
+ {
61
+ files: ['**/*.ts'],
62
+ parser: '@typescript-eslint/parser',
63
+ env: common.env,
64
+ plugins: [...common.plugins, '@typescript-eslint'],
65
+ extends: [
66
+ ...common.extends,
67
+ 'plugin:@typescript-eslint/recommended',
68
+ 'plugin:import/errors',
69
+ 'plugin:import/warnings',
70
+ 'plugin:import/typescript',
71
+ ],
72
+ rules: {
73
+ ...common.rules,
74
+ '@typescript-eslint/explicit-function-return-type': 'off',
75
+ },
76
+ settings: {
77
+ 'import/resolver': {
78
+ node: {
79
+ extensions: ['.js', '.jsx', '.ts', '.d.ts', '.tsx', '.graphql', '.gql'],
80
+ },
81
+ typescript: {
82
+ // alwaysTryTypes: true,
83
+ // paths: './tsconfig.json',
84
+ },
85
+ },
86
+ },
87
+ },
88
+ ],
89
+ };
@@ -0,0 +1,4 @@
1
+ # Do not edit this file. To specify the files to encrypt, create your own
2
+ # .gitattributes file in the directory where your files are.
3
+ * !filter !diff
4
+ *.gpg binary
@@ -0,0 +1 @@
1
+ � n�'����s �U�����5�‰��dyO"�fn�p��S���͢U
@@ -0,0 +1,5 @@
1
+ values.secret.json filter=git-crypt diff=git-crypt
2
+ .npmrc filter=git-crypt diff=git-crypt
3
+ values-dev.yaml filter=git-crypt diff=git-crypt
4
+ values-stage.yaml filter=git-crypt diff=git-crypt
5
+ values-prod.yaml filter=git-crypt diff=git-crypt
@@ -0,0 +1,62 @@
1
+ dist
2
+ lib
3
+ .nx
4
+
5
+ # Logs
6
+ logs
7
+ *.log
8
+ npm-debug.log*
9
+
10
+ # remove unwanted
11
+ .expo
12
+ .drawio-chrome
13
+
14
+ # Spinjs cache
15
+ .cache
16
+ .awcache
17
+ .nx
18
+
19
+ # Jest Env
20
+ globalConfig.json
21
+
22
+ # Runtime data
23
+ pids
24
+ *.pid
25
+ *.seed
26
+ *.sqlite3
27
+
28
+ # Directory for instrumented libs generated by jscoverage/JSCover
29
+ lib-cov
30
+
31
+ # Coverage directory used by tools like istanbul
32
+ coverage
33
+
34
+ # Grunt intermediate storage (http://gruntjs.com/creating-plugins#storing-task-files)
35
+ .grunt
36
+
37
+ # node-waf configuration
38
+ .lock-wscript
39
+
40
+ # Compiled binary addons (http://nodejs.org/api/addons.html)
41
+ .build
42
+ build
43
+ build/Release
44
+
45
+ # Dependency directory
46
+ node_modules
47
+
48
+ # Optional npm cache directory
49
+ .npm
50
+
51
+ # Optional REPL history
52
+ .node_repl_history
53
+ .dist
54
+
55
+ # ignore temp created for pushing prod changes to devleop
56
+ lerna-temp.json
57
+ # IDE
58
+ .idea
59
+ *.DS_Store
60
+ .DS_Store
61
+ dump.rdb
62
+ v8-compile-cache-0
@@ -0,0 +1,4 @@
1
+ #!/usr/bin/env sh
2
+ . "$(dirname -- "$0")/_/husky.sh"
3
+
4
+ npx lint-staged
@@ -0,0 +1,4 @@
1
+ #!/usr/bin/env sh
2
+ . "$(dirname -- "$0")/_/husky.sh"
3
+
4
+ npx commitizen --hook || true
@@ -0,0 +1,6 @@
1
+ {
2
+ "default": true,
3
+ "MD013": false,
4
+ "MD042": false,
5
+ "MD033": false
6
+ }
@@ -0,0 +1,5 @@
1
+ node_modules
2
+ dist
3
+ lib
4
+ .git
5
+ CHANGELOG.md
@@ -0,0 +1,2 @@
1
+ email=none@cdmbase.com
2
+ //registry.npmjs.org/:_authToken=
@@ -0,0 +1,8 @@
1
+ **/fixtures/**
2
+ **/test/**
3
+ **/__tests__/**
4
+ **/__mocks__/**
5
+ **/__integration__/**
6
+ **/__fixtures__/**
7
+ **/*.spec.ts
8
+ **/*.test.ts
@@ -1,5 +1,5 @@
1
1
  module.exports = {
2
- '*.{js,jsx,ts,tsx,json,md}': ['prettier --write', 'git add'],
3
- // '*.{ts,tsx}': ['eslint --fix'], // this can be tested
2
+ '*.{js,jsx,ts,tsx}': ['eslint --fix', 'prettier --write'],
3
+ '*.{json,md}': ['prettier --write'],
4
4
  'package.json': ['sort-package-json', 'prettier --write'],
5
5
  };
@@ -98,12 +98,6 @@
98
98
  "zen:watch": "zen watch -x",
99
99
  "zen:watch:debug": "yarn zen:watch -- -v"
100
100
  },
101
- "husky": {
102
- "hooks": {
103
- "pre-commit": "lint-staged",
104
- "commit-msg": "commitlint -E HUSKY_GIT_PARAMS"
105
- }
106
- },
107
101
  "resolutions": {
108
102
  "@apollo/client": "^3.9.0",
109
103
  "@nx/workspace": "20.4.3",
@@ -150,9 +144,9 @@
150
144
  "@babel/preset-typescript": "^7.18.6",
151
145
  "@babel/register": "^7.18.9",
152
146
  "@babel/runtime": "^7.20.1",
153
- "@common-stack/env-list-loader": "6.0.8-alpha.31",
154
- "@common-stack/generate-plugin": "7.0.3-alpha.1",
155
- "@common-stack/rollup-vite-utils": "7.0.3-alpha.1",
147
+ "@common-stack/env-list-loader": "7.0.4-alpha.0",
148
+ "@common-stack/generate-plugin": "7.0.4-alpha.0",
149
+ "@common-stack/rollup-vite-utils": "7.0.4-alpha.0",
156
150
  "@emotion/babel-plugin": "^11.11.0",
157
151
  "@graphql-codegen/add": "^5.0.3",
158
152
  "@graphql-codegen/cli": "^5.0.4",
@@ -1,3 +1,4 @@
1
+ import { beforeEach, describe, expect, it } from '@jest/globals';
1
2
  import { createTreeWithEmptyWorkspace } from '@nx/devkit/testing';
2
3
  import { Tree, readProjectConfiguration } from '@nx/devkit';
3
4
 
@@ -15,6 +16,7 @@ describe('add-fullstack generator', () => {
15
16
  it('should run successfully', async () => {
16
17
  await addFullstackGenerator(tree, options);
17
18
  const config = readProjectConfiguration(tree, 'test');
19
+
18
20
  expect(config).toBeDefined();
19
21
  });
20
22
  });
@@ -1,11 +1,11 @@
1
1
  /* eslint-disable @typescript-eslint/no-explicit-any */
2
2
  /* eslint-disable import/no-cycle */
3
- import { addProjectConfiguration, formatFiles, generateFiles, Tree } from '@nx/devkit';
3
+ import { formatFiles, generateFiles, Tree, updateJson } from '@nx/devkit';
4
4
  import * as path from 'path';
5
5
  import * as fs from 'fs';
6
6
  import { AddFullstackGeneratorSchema } from './schema';
7
7
  import { getValid, isValid } from '../../utils';
8
- import {
8
+ import {
9
9
  updateJenkinsFile,
10
10
  updatePackageJson,
11
11
  backupLernaJson,
@@ -15,13 +15,20 @@ import {
15
15
  backupFiles,
16
16
  restoreFiles,
17
17
  updateRepository,
18
+ renameDotFiles,
19
+ setupGit,
20
+ commitInitialFiles,
21
+ setupGitCrypt,
22
+ setupHusky,
23
+ prepareGitAttributes,
24
+ setupNpmAuth,
25
+ setupNxConfig,
18
26
  } from './updates';
19
- import {
20
- generateBackend,
21
- generateFrontend,
22
- generateMoleculer,
23
- generatePackage,
24
- } from '../../index';
27
+ // import { generateBackend, generateFrontend } from '../../index';
28
+ import { addBackendGenerator as generateBackend } from '../add-backend/generator';
29
+ import { addFrontendGenerator as generateFrontend } from '../add-frontend/generator';
30
+ import { addMoleculerGenerator as generateMoleculer } from '../add-moleculer/generator';
31
+ import { addPackageGenerator as generatePackage } from '../add-package/generator';
25
32
 
26
33
  export async function addFullstackGenerator(tree: Tree, options: AddFullstackGeneratorSchema) {
27
34
  let projectPath = options.path || '';
@@ -37,31 +44,37 @@ export async function addFullstackGenerator(tree: Tree, options: AddFullstackGen
37
44
  // backup existing lerna values
38
45
  const lernaBackup = backupLernaJson(tree, projectRoot);
39
46
 
40
- // backup files codegen.yaml
41
- const filesToBackup = ['codegen.yml', 'values-dev.yaml', 'values-prod.yaml', 'values-stage.yaml'];
47
+ // backup files including codegen.ts (instead of codegen.yml)
48
+ const filesToBackup = ['codegen.ts', 'values-dev.yaml', 'values-prod.yaml', 'values-stage.yaml'];
42
49
  const filesBackup = backupFiles(tree, projectRoot, filesToBackup);
43
50
 
44
51
  generateFiles(tree, path.join(__dirname, 'files'), projectRoot, options);
45
52
 
46
- // Update Jenkinsfile with dynamic values
47
- updateJenkinsFile(tree, projectRoot, projectName);
53
+ // Rename files that begin with underscore to dot files
54
+ renameDotFiles(tree, projectRoot);
48
55
 
49
- // Update package.json with the project name
50
- updatePackageJson(tree, projectRoot, { name: projectName });
56
+ // Handle gitattributes file (Tree-phase)
57
+ prepareGitAttributes(tree, projectRoot);
51
58
 
52
- // Update tools/html-plugin-template
59
+ // First update files in the tree
60
+ updateJenkinsFile(tree, projectRoot, projectName);
61
+ updatePackageJson(tree, projectRoot, { name: projectName });
53
62
  updateHtmlPlugin(tree, projectRoot);
54
63
 
55
64
  if (lernaBackup) {
56
- // When update the existing lerna.json, it shouldn't overwrite version, allowbranch, packages
57
65
  restoreLernaJson(tree, projectRoot, lernaBackup);
58
66
  }
59
67
 
60
- // Restore files backup to ignore update
61
68
  restoreFiles(tree, projectRoot, filesBackup);
69
+ updateLicense(tree, projectRoot);
62
70
 
71
+ // Format all files
63
72
  await formatFiles(tree);
64
73
 
74
+ // Set a flag to perform Git operations after files are written
75
+ const performGitOperations = true;
76
+
77
+ // Process configurations if needed
65
78
  if (isValid(options.config)) {
66
79
  const configPath = path.resolve(projectPath, getValid(options.config));
67
80
  if (fs.existsSync(configPath)) {
@@ -77,8 +90,49 @@ export async function addFullstackGenerator(tree: Tree, options: AddFullstackGen
77
90
  }
78
91
  }
79
92
 
80
- // Update license from package.json
81
- updateLicense(tree, projectRoot);
93
+ // Add this before commitInitialFiles
94
+ await setupNxConfig(tree, projectRoot);
95
+
96
+ // Setup git and commit files
97
+ setupGit(tree, projectRoot);
98
+
99
+ // Step 2: Set up git-crypt
100
+ setupGitCrypt(tree, projectRoot);
101
+
102
+ // Step 3: Set up npm authentication
103
+ setupNpmAuth(tree, projectRoot);
104
+
105
+ // Step 4: Set up husky
106
+ setupHusky(tree, projectRoot);
107
+
108
+ // Step 5: Commit all files (they will be encrypted if they match patterns in .gitattributes)
109
+ commitInitialFiles(projectRoot);
110
+
111
+ console.log('Git setup completed.');
112
+
113
+ // Return function to execute after all files are written to disk
114
+ if (performGitOperations) {
115
+ return () => {
116
+ console.log('All files have been generated. Now setting up Git...');
117
+
118
+ // Step 1: Initialize git repository
119
+ setupGit(tree, projectRoot);
120
+
121
+ // Step 2: Set up git-crypt
122
+ setupGitCrypt(tree, projectRoot);
123
+
124
+ // Step 3: Set up npm authentication
125
+ setupNpmAuth(tree, projectRoot);
126
+
127
+ // Step 4: Set up husky
128
+ setupHusky(tree, projectRoot);
129
+
130
+ // Step 5: Commit all files (they will be encrypted if they match patterns in .gitattributes)
131
+ commitInitialFiles(projectRoot);
132
+
133
+ console.log('Git setup completed.');
134
+ };
135
+ }
82
136
  }
83
137
 
84
138
  const generateServers = async (tree: Tree, options: any) => {
@@ -114,7 +168,7 @@ const generateModules = async (tree: Tree, options: any) => {
114
168
  ns: options.ns,
115
169
  type: packageName,
116
170
  };
117
- await generatePackage(tree, configs, false);
171
+ await generatePackage(tree, configs);
118
172
  }
119
173
  }
120
174
  };
@@ -1,5 +1,5 @@
1
1
  export interface AddFullstackGeneratorSchema {
2
2
  name: string;
3
3
  config?: string;
4
- path?: string; // Optional path property for specifying the base path
5
- }
4
+ path?: string; // Optional path property for specifying the base path
5
+ }
@@ -0,0 +1,60 @@
1
+ import { Tree } from '@nx/devkit';
2
+ import * as path from 'path';
3
+ import * as fs from 'fs';
4
+
5
+ /**
6
+ * Renames _gitattributes to .gitattributes during the Tree modification phase
7
+ */
8
+ export function prepareGitAttributes(tree: Tree, projectRoot: string) {
9
+ const gitattributesSrc = path.join(projectRoot, '_gitattributes');
10
+ const gitattributesDest = path.join(projectRoot, '.gitattributes');
11
+
12
+ if (tree.exists(gitattributesSrc)) {
13
+ // Read content and write to destination
14
+ const content = tree.read(gitattributesSrc).toString();
15
+ tree.write(gitattributesDest, content);
16
+ // Remove the source file
17
+ tree.delete(gitattributesSrc);
18
+ console.log(`Renamed ${gitattributesSrc} to ${gitattributesDest}`);
19
+ return true;
20
+ }
21
+
22
+ return false;
23
+ }
24
+
25
+ /**
26
+ * Updates .gitattributes with additional patterns if needed after files are on disk
27
+ */
28
+ export function updateGitAttributes(projectRoot: string, attributesToAdd: Record<string, string>) {
29
+ try {
30
+ const gitattributesPath = path.join(projectRoot, '.gitattributes');
31
+
32
+ if (!fs.existsSync(gitattributesPath)) {
33
+ console.log('.gitattributes file not found, skipping update');
34
+ return false;
35
+ }
36
+
37
+ let gitattributesContent = fs.readFileSync(gitattributesPath, 'utf8');
38
+ let contentUpdated = false;
39
+
40
+ // Add each attribute if not already present
41
+ Object.entries(attributesToAdd).forEach(([pattern, attribute]) => {
42
+ const attributeLine = `${pattern} ${attribute}`;
43
+ if (!gitattributesContent.includes(attributeLine)) {
44
+ contentUpdated = true;
45
+ gitattributesContent += `\n${attributeLine}`;
46
+ }
47
+ });
48
+
49
+ // Write the file if we made changes
50
+ if (contentUpdated) {
51
+ fs.writeFileSync(gitattributesPath, gitattributesContent, 'utf8');
52
+ console.log('Updated .gitattributes file with additional patterns');
53
+ }
54
+
55
+ return contentUpdated;
56
+ } catch (error) {
57
+ console.error('Error updating .gitattributes:', error);
58
+ return false;
59
+ }
60
+ }