@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.
- package/CHANGELOG.md +40 -0
- package/lib/common/package-releases/package.json +1 -0
- package/lib/common/package-releases/package.json.cjs +1 -0
- package/lib/common/package-releases/package.json.cjs.map +1 -1
- package/lib/common/package-releases/package.json.mjs +1 -0
- package/lib/common/package-releases/package.json.mjs.map +1 -1
- package/lib/generators/add-backend/files/_dockerignore +9 -0
- package/lib/generators/add-backend/files/_gitignore +13 -0
- package/lib/generators/add-backend/files/_npmignore +2 -0
- package/lib/generators/add-backend/files/_yarnrc +1 -0
- package/lib/generators/add-backend/files/package.json +1 -1
- package/lib/generators/add-backend/generator.cjs +6 -1
- package/lib/generators/add-backend/generator.cjs.map +1 -1
- package/lib/generators/add-backend/generator.mjs +6 -1
- package/lib/generators/add-backend/generator.mjs.map +1 -1
- package/lib/generators/add-frontend/frameworks/antui/src/entry.client.tsx.template +7 -2
- package/lib/generators/add-frontend/frameworks/antui/src/root.tsx.template +2 -1
- package/lib/generators/add-frontend/generator.cjs +7 -2
- package/lib/generators/add-frontend/generator.cjs.map +1 -1
- package/lib/generators/add-frontend/generator.mjs +7 -2
- package/lib/generators/add-frontend/generator.mjs.map +1 -1
- package/lib/generators/add-frontend/templates/_dockerignore +13 -0
- package/lib/generators/add-frontend/templates/_gitignore +4 -0
- package/lib/generators/add-frontend/templates/_npmignore +2 -0
- package/lib/generators/add-frontend/templates/package.json +2 -2
- package/lib/generators/add-fullstack/files/_browserslistrc +3 -0
- package/{src/generators/add-fullstack/files/.eslintrc.js → lib/generators/add-fullstack/files/_eslintrc.js} +2 -5
- package/lib/generators/add-fullstack/files/_git-crypt/.gitattributes +4 -0
- package/lib/generators/add-fullstack/files/_git-crypt/keys/default/0/147885163DF27F4877B0BC14DE8C27DDE38F1E61.gpg +0 -0
- package/lib/generators/add-fullstack/files/_git-crypt/keys/default/0/49AB3942E38DB928ACF3905EC2DB4383B4A6E5EA.gpg +1 -0
- package/lib/generators/add-fullstack/files/_git-crypt/keys/default/0/49F363DC4362D3C17B2FE0091871B202236FD41B.gpg +0 -0
- package/lib/generators/add-fullstack/files/_git-crypt/keys/default/0/54EBB791640A664510494E416177B1BAA1083A88.gpg +0 -0
- package/lib/generators/add-fullstack/files/_git-crypt/keys/default/0/70961F6ECD8220394FD8AB555E94AC25CBCBA1A3.gpg +0 -0
- package/lib/generators/add-fullstack/files/_git-crypt/keys/default/0/EBA4B7A860BD152BF5F9F727F12B84D048062B79.gpg +0 -0
- package/lib/generators/add-fullstack/files/_gitignore +65 -0
- package/lib/generators/add-fullstack/files/_husky/pre-commit +4 -0
- package/lib/generators/add-fullstack/files/_husky/prepare-commit-msg +4 -0
- package/{src/generators/add-fullstack/files/.markdownlint.json → lib/generators/add-fullstack/files/_markdownlint.json} +1 -1
- package/lib/generators/add-fullstack/files/_npmrc +2 -0
- package/lib/generators/add-fullstack/files/lint-staged.config.js +2 -2
- package/lib/generators/add-fullstack/files/package.json +4 -10
- package/lib/generators/add-fullstack/files/rollup.config.base.mjs +45 -23
- package/lib/generators/add-fullstack/generator.cjs +57 -20
- package/lib/generators/add-fullstack/generator.cjs.map +1 -1
- package/lib/generators/add-fullstack/generator.d.ts +1 -1
- package/lib/generators/add-fullstack/generator.mjs +51 -14
- package/lib/generators/add-fullstack/generator.mjs.map +1 -1
- package/lib/generators/add-fullstack/schema.d.ts +10 -0
- package/lib/generators/add-fullstack/updates/{ignoreUpdate.cjs → fileBackup.cjs} +1 -1
- package/lib/generators/add-fullstack/updates/fileBackup.cjs.map +1 -0
- package/lib/generators/add-fullstack/updates/{ignoreUpdate.mjs → fileBackup.mjs} +1 -1
- package/lib/generators/add-fullstack/updates/fileBackup.mjs.map +1 -0
- package/lib/generators/add-fullstack/updates/gitAttributesSetup.cjs +17 -0
- package/lib/generators/add-fullstack/updates/gitAttributesSetup.cjs.map +1 -0
- package/lib/generators/add-fullstack/updates/gitAttributesSetup.d.ts +9 -0
- package/lib/generators/add-fullstack/updates/gitAttributesSetup.mjs +17 -0
- package/lib/generators/add-fullstack/updates/gitAttributesSetup.mjs.map +1 -0
- package/lib/generators/add-fullstack/updates/gitCryptSetup.cjs +70 -0
- package/lib/generators/add-fullstack/updates/gitCryptSetup.cjs.map +1 -0
- package/lib/generators/add-fullstack/updates/gitCryptSetup.d.ts +5 -0
- package/lib/generators/add-fullstack/updates/gitCryptSetup.mjs +70 -0
- package/lib/generators/add-fullstack/updates/gitCryptSetup.mjs.map +1 -0
- package/lib/generators/add-fullstack/updates/gitSetup.cjs +55 -0
- package/lib/generators/add-fullstack/updates/gitSetup.cjs.map +1 -0
- package/lib/generators/add-fullstack/updates/gitSetup.d.ts +9 -0
- package/lib/generators/add-fullstack/updates/gitSetup.mjs +55 -0
- package/lib/generators/add-fullstack/updates/gitSetup.mjs.map +1 -0
- package/lib/generators/add-fullstack/updates/htmlPluginUpdate.cjs +28 -1
- package/lib/generators/add-fullstack/updates/htmlPluginUpdate.cjs.map +1 -1
- package/lib/generators/add-fullstack/updates/htmlPluginUpdate.d.ts +1 -0
- package/lib/generators/add-fullstack/updates/htmlPluginUpdate.mjs +28 -1
- package/lib/generators/add-fullstack/updates/htmlPluginUpdate.mjs.map +1 -1
- package/lib/generators/add-fullstack/updates/huskySetup.cjs +71 -0
- package/lib/generators/add-fullstack/updates/huskySetup.cjs.map +1 -0
- package/lib/generators/add-fullstack/updates/huskySetup.d.ts +2 -0
- package/lib/generators/add-fullstack/updates/huskySetup.mjs +71 -0
- package/lib/generators/add-fullstack/updates/huskySetup.mjs.map +1 -0
- package/lib/generators/add-fullstack/updates/index.d.ts +13 -6
- package/lib/generators/add-fullstack/updates/jenkinsUpdate.cjs +44 -0
- package/lib/generators/add-fullstack/updates/jenkinsUpdate.cjs.map +1 -0
- package/lib/generators/add-fullstack/updates/jenkinsUpdate.mjs +44 -0
- package/lib/generators/add-fullstack/updates/jenkinsUpdate.mjs.map +1 -0
- package/lib/generators/add-fullstack/updates/{lernaJsonUpdate.cjs → lernaUpdate.cjs} +6 -7
- package/lib/generators/add-fullstack/updates/lernaUpdate.cjs.map +1 -0
- package/lib/generators/add-fullstack/updates/{lernaJsonUpdate.mjs → lernaUpdate.mjs} +6 -7
- package/lib/generators/add-fullstack/updates/lernaUpdate.mjs.map +1 -0
- package/lib/generators/add-fullstack/updates/licenseUpdate.cjs +1 -1
- package/lib/generators/add-fullstack/updates/licenseUpdate.cjs.map +1 -1
- package/lib/generators/add-fullstack/updates/licenseUpdate.mjs +1 -1
- package/lib/generators/add-fullstack/updates/licenseUpdate.mjs.map +1 -1
- package/lib/generators/add-fullstack/updates/npmAuthSetup.cjs +60 -0
- package/lib/generators/add-fullstack/updates/npmAuthSetup.cjs.map +1 -0
- package/lib/generators/add-fullstack/updates/npmAuthSetup.d.ts +5 -0
- package/lib/generators/add-fullstack/updates/npmAuthSetup.mjs +60 -0
- package/lib/generators/add-fullstack/updates/npmAuthSetup.mjs.map +1 -0
- package/lib/generators/add-fullstack/updates/nxSetup.cjs +137 -0
- package/lib/generators/add-fullstack/updates/nxSetup.cjs.map +1 -0
- package/lib/generators/add-fullstack/updates/nxSetup.d.ts +5 -0
- package/lib/generators/add-fullstack/updates/nxSetup.mjs +137 -0
- package/lib/generators/add-fullstack/updates/nxSetup.mjs.map +1 -0
- package/lib/generators/add-fullstack/updates/packageJsonUpdate.cjs +2 -34
- package/lib/generators/add-fullstack/updates/packageJsonUpdate.cjs.map +1 -1
- package/lib/generators/add-fullstack/updates/packageJsonUpdate.d.ts +0 -1
- package/lib/generators/add-fullstack/updates/packageJsonUpdate.mjs +2 -34
- package/lib/generators/add-fullstack/updates/packageJsonUpdate.mjs.map +1 -1
- package/lib/generators/add-fullstack/updates/repositoryUpdate.cjs +35 -0
- package/lib/generators/add-fullstack/updates/repositoryUpdate.cjs.map +1 -0
- package/lib/generators/add-fullstack/updates/repositoryUpdate.d.ts +2 -0
- package/lib/generators/add-fullstack/updates/repositoryUpdate.mjs +35 -0
- package/lib/generators/add-fullstack/updates/repositoryUpdate.mjs.map +1 -0
- package/lib/generators/add-moleculer/files/_gitignore +2 -0
- package/lib/generators/add-moleculer/files/package.json +5 -5
- package/lib/generators/add-moleculer/generator.cjs +30 -18
- package/lib/generators/add-moleculer/generator.cjs.map +1 -1
- package/lib/generators/add-moleculer/generator.d.ts +0 -1
- package/lib/generators/add-moleculer/generator.mjs +30 -18
- package/lib/generators/add-moleculer/generator.mjs.map +1 -1
- package/lib/generators/add-moleculer/schema.d.ts +6 -0
- package/lib/generators/add-package/files/browser/LICENSE +674 -0
- package/lib/generators/add-package/files/browser/_npmignore +2 -0
- package/lib/generators/add-package/files/browser/jest.config.js +8 -0
- package/lib/generators/add-package/files/browser/package.json +49 -0
- package/lib/generators/add-package/files/browser/rollup.config.mjs +29 -0
- package/lib/generators/add-package/files/browser/src/config/env-config.ts.template +9 -0
- package/lib/generators/add-package/files/browser/src/index.ts.template +4 -0
- package/lib/generators/add-package/files/browser/src/interfaces/index.ts.template +1 -0
- package/lib/generators/add-package/files/browser/src/interfaces/interfaces.ts.template +1 -0
- package/lib/generators/add-package/files/browser/src/module.tsx.template +7 -0
- package/lib/generators/add-package/files/browser/tsconfig.json +16 -0
- package/lib/generators/add-package/files/client/LICENSE +674 -0
- package/lib/generators/add-package/files/client/_npmignore +2 -0
- package/lib/generators/add-package/files/client/jest.config.js +13 -0
- package/lib/generators/add-package/files/client/package.json +30 -0
- package/lib/generators/add-package/files/client/rollup.config.mjs +34 -0
- package/lib/generators/add-package/files/client/src/components/index.tsx.template +1 -0
- package/lib/generators/add-package/files/client/src/config/env-config.ts.template +9 -0
- package/lib/generators/add-package/files/client/src/index.ts.template +1 -0
- package/lib/generators/add-package/files/client/tsconfig.json +14 -0
- package/lib/generators/add-package/files/core/LICENSE +39 -0
- package/lib/generators/add-package/files/core/_npmignore +3 -0
- package/lib/generators/add-package/files/core/jest.config.js +3 -0
- package/lib/generators/add-package/files/core/package.json +30 -0
- package/lib/generators/add-package/files/core/rollup.config.mjs +37 -0
- package/lib/generators/add-package/files/core/src/cdm-locales/en/main.json +2 -0
- package/lib/generators/add-package/files/core/src/cdm-locales/es/common.json +2 -0
- package/lib/generators/add-package/files/core/src/cdm-locales/es/main.json +1 -0
- package/lib/generators/add-package/files/core/src/config/env-config.ts.template +9 -0
- package/lib/generators/add-package/files/core/src/constants/index.ts.template +1 -0
- package/lib/generators/add-package/files/core/src/constants/types.ts.template +3 -0
- package/lib/generators/add-package/files/core/src/index.ts.template +2 -0
- package/lib/generators/add-package/files/core/src/types/index.ts.template +1 -0
- package/lib/generators/add-package/files/core/src/types/types.ts.template +17 -0
- package/lib/generators/add-package/files/core/tsconfig.json +13 -0
- package/lib/generators/add-package/files/server/LICENSE +674 -0
- package/lib/generators/add-package/files/server/_npmignore +2 -0
- package/lib/generators/add-package/files/server/jest.config.js +32 -0
- package/lib/generators/add-package/files/server/package.json +78 -0
- package/lib/generators/add-package/files/server/rollup.config.mjs +37 -0
- package/lib/generators/add-package/files/server/src/config/env-config.ts.template +9 -0
- package/lib/generators/add-package/files/server/src/constants/constants.ts.template +62 -0
- package/lib/generators/add-package/files/server/src/constants/index.ts.template +1 -0
- package/lib/generators/add-package/files/server/src/constants/types.ts.template +21 -0
- package/lib/generators/add-package/files/server/src/index.ts.template +6 -0
- package/lib/generators/add-package/files/server/src/module.ts.template +6 -0
- package/lib/generators/add-package/files/server/tsconfig.json +17 -0
- package/lib/generators/add-package/generator.cjs +53 -11
- package/lib/generators/add-package/generator.cjs.map +1 -1
- package/lib/generators/add-package/generator.d.ts +4 -1
- package/lib/generators/add-package/generator.mjs +53 -11
- package/lib/generators/add-package/generator.mjs.map +1 -1
- package/lib/index.cjs +1 -1
- package/lib/index.d.ts +5 -5
- package/lib/index.mjs +1 -1
- package/lib/utils/copyDotfiles.cjs +86 -0
- package/lib/utils/copyDotfiles.cjs.map +1 -0
- package/lib/utils/copyDotfiles.d.ts +14 -0
- package/lib/utils/copyDotfiles.mjs +86 -0
- package/lib/utils/copyDotfiles.mjs.map +1 -0
- package/package.json +3 -3
- package/src/common/package-releases/package.json +1 -0
- package/src/generators/add-backend/files/Dockerfile +28 -0
- package/src/generators/add-backend/files/LICENSE +661 -0
- package/src/generators/add-backend/files/README.md +133 -0
- package/src/generators/add-backend/files/__tests__/test.ts.template +96 -0
- package/src/generators/add-backend/files/_dockerignore +9 -0
- package/src/generators/add-backend/files/_gitignore +13 -0
- package/src/generators/add-backend/files/_npmignore +2 -0
- package/src/generators/add-backend/files/_yarnrc +1 -0
- package/src/generators/add-backend/files/babel.config.js +45 -0
- package/src/generators/add-backend/files/build.config.js +14 -0
- package/src/generators/add-backend/files/build.config.mjs +27 -0
- package/src/generators/add-backend/files/config.json +10 -0
- package/src/generators/add-backend/files/jest.config.js +27 -0
- package/src/generators/add-backend/files/package.json +82 -0
- package/src/generators/add-backend/files/src/api/root-schema.graphqls +109 -0
- package/src/generators/add-backend/files/src/config/env-config.ts.template +12 -0
- package/src/generators/add-backend/files/src/config/index.ts.template +1 -0
- package/src/generators/add-backend/files/src/env.ts.template +5 -0
- package/src/generators/add-backend/files/src/index.ts.template +56 -0
- package/src/generators/add-backend/files/src/modules/index.ts.template +17 -0
- package/src/generators/add-backend/files/src/service.ts.template +35 -0
- package/src/generators/add-backend/files/tsconfig.base.json +30 -0
- package/src/generators/add-backend/files/tsconfig.json +13 -0
- package/src/generators/add-backend/files/webpack.config.js +200 -0
- package/src/generators/add-backend/files/webpack.config.mjs +216 -0
- package/src/generators/add-backend/generator.ts +13 -4
- package/src/generators/add-frontend/frameworks/antui/src/entry.client.tsx.template +7 -2
- package/src/generators/add-frontend/frameworks/antui/src/root.tsx.template +2 -1
- package/src/generators/add-frontend/generator.ts +9 -1
- package/src/generators/add-frontend/templates/CHANGELOG.md +72 -0
- package/src/generators/add-frontend/templates/Dockerfile +31 -0
- package/src/generators/add-frontend/templates/_browserslistrc +3 -0
- package/src/generators/add-frontend/templates/_dockerignore +13 -0
- package/src/generators/add-frontend/templates/_gitignore +4 -0
- package/src/generators/add-frontend/templates/_npmignore +2 -0
- package/src/generators/add-frontend/templates/codecept.json +28 -0
- package/src/generators/add-frontend/templates/config.json +5 -0
- package/src/generators/add-frontend/templates/env.d.ts.template +9 -0
- package/src/generators/add-frontend/templates/env.js +5 -0
- package/src/generators/add-frontend/templates/favicon.ico +0 -0
- package/src/generators/add-frontend/templates/jest.config.js +33 -0
- package/src/generators/add-frontend/templates/package.json +102 -0
- package/src/generators/add-frontend/templates/public/favicon.ico +0 -0
- package/src/generators/add-frontend/templates/server.js +78 -0
- package/src/generators/add-frontend/templates/src/config/public-config.ts.template +88 -0
- package/src/generators/add-frontend/templates/tools/checkQueryUsage.mjs +192 -0
- package/src/generators/add-frontend/templates/tools/mergeConfig.js +35 -0
- package/src/generators/add-frontend/templates/tsconfig.base.json +38 -0
- package/src/generators/add-frontend/templates/tsconfig.json +32 -0
- package/src/generators/add-frontend/templates/tsconfig.node.json +10 -0
- package/src/generators/add-frontend/templates/vite.config.ts.template +115 -0
- package/src/generators/add-fullstack/files/_browserslistrc +3 -0
- package/src/generators/add-fullstack/files/_eslintignore +3 -0
- package/src/generators/add-fullstack/files/_eslintrc.js +89 -0
- package/src/generators/add-fullstack/files/_git-crypt/.gitattributes +4 -0
- package/src/generators/add-fullstack/files/_git-crypt/keys/default/0/147885163DF27F4877B0BC14DE8C27DDE38F1E61.gpg +0 -0
- package/src/generators/add-fullstack/files/_git-crypt/keys/default/0/49AB3942E38DB928ACF3905EC2DB4383B4A6E5EA.gpg +1 -0
- package/src/generators/add-fullstack/files/_git-crypt/keys/default/0/49F363DC4362D3C17B2FE0091871B202236FD41B.gpg +0 -0
- package/src/generators/add-fullstack/files/_git-crypt/keys/default/0/54EBB791640A664510494E416177B1BAA1083A88.gpg +0 -0
- package/src/generators/add-fullstack/files/_git-crypt/keys/default/0/70961F6ECD8220394FD8AB555E94AC25CBCBA1A3.gpg +0 -0
- package/src/generators/add-fullstack/files/_git-crypt/keys/default/0/EBA4B7A860BD152BF5F9F727F12B84D048062B79.gpg +0 -0
- package/src/generators/add-fullstack/files/_gitattributes +5 -0
- package/src/generators/add-fullstack/files/_gitignore +65 -0
- package/src/generators/add-fullstack/files/_husky/pre-commit +4 -0
- package/src/generators/add-fullstack/files/_husky/prepare-commit-msg +4 -0
- package/src/generators/add-fullstack/files/_markdownlint.json +6 -0
- package/src/generators/add-fullstack/files/_markdownlintignore +5 -0
- package/src/generators/add-fullstack/files/_npmrc +2 -0
- package/src/generators/add-fullstack/files/_nxignore +8 -0
- package/src/generators/add-fullstack/files/lint-staged.config.js +2 -2
- package/src/generators/add-fullstack/files/package.json +4 -10
- package/src/generators/add-fullstack/files/rollup.config.base.mjs +45 -23
- package/src/generators/add-fullstack/generator.spec.ts +2 -0
- package/src/generators/add-fullstack/generator.ts +80 -20
- package/src/generators/add-fullstack/schema.d.ts +2 -2
- package/src/generators/add-fullstack/schema.ts +10 -0
- package/src/generators/add-fullstack/updates/gitAttributesSetup.ts +60 -0
- package/src/generators/add-fullstack/updates/gitCryptSetup.ts +77 -0
- package/src/generators/add-fullstack/updates/gitSetup.ts +63 -0
- package/src/generators/add-fullstack/updates/htmlPluginUpdate.ts +31 -0
- package/src/generators/add-fullstack/updates/huskySetup.ts +84 -0
- package/src/generators/add-fullstack/updates/index.ts +13 -6
- package/src/generators/add-fullstack/updates/jenkinsUpdate.ts +53 -0
- package/src/generators/add-fullstack/updates/{lernaJsonUpdate.ts → lernaUpdate.ts} +6 -7
- package/src/generators/add-fullstack/updates/licenseUpdate.ts +3 -3
- package/src/generators/add-fullstack/updates/npmAuthSetup.ts +76 -0
- package/src/generators/add-fullstack/updates/nxSetup.ts +145 -0
- package/src/generators/add-fullstack/updates/packageJsonUpdate.ts +4 -42
- package/src/generators/add-fullstack/updates/repositoryUpdate.ts +45 -0
- package/src/generators/add-moleculer/files/_dockerignore +6 -0
- package/src/generators/add-moleculer/files/_draftignore +4 -0
- package/src/generators/add-moleculer/files/_gitignore +2 -0
- package/src/generators/add-moleculer/files/package.json +5 -5
- package/src/generators/add-moleculer/generator.ts +42 -18
- package/src/generators/add-moleculer/schema.ts +6 -0
- package/src/generators/add-package/files/browser/LICENSE +674 -0
- package/src/generators/add-package/files/browser/_npmignore +2 -0
- package/src/generators/add-package/files/browser/jest.config.js +8 -0
- package/src/generators/add-package/files/browser/package.json +49 -0
- package/src/generators/add-package/files/browser/rollup.config.mjs +29 -0
- package/src/generators/add-package/files/browser/src/config/env-config.ts.template +9 -0
- package/src/generators/add-package/files/browser/src/index.ts.template +4 -0
- package/src/generators/add-package/files/browser/src/interfaces/index.ts.template +1 -0
- package/src/generators/add-package/files/browser/src/interfaces/interfaces.ts.template +1 -0
- package/src/generators/add-package/files/browser/src/module.tsx.template +7 -0
- package/src/generators/add-package/files/browser/tsconfig.json +16 -0
- package/src/generators/add-package/files/client/LICENSE +674 -0
- package/src/generators/add-package/files/client/_npmignore +2 -0
- package/src/generators/add-package/files/client/jest.config.js +13 -0
- package/src/generators/add-package/files/client/package.json +30 -0
- package/src/generators/add-package/files/client/rollup.config.mjs +34 -0
- package/src/generators/add-package/files/client/src/components/index.tsx.template +1 -0
- package/src/generators/add-package/files/client/src/config/env-config.ts.template +9 -0
- package/src/generators/add-package/files/client/src/index.ts.template +1 -0
- package/src/generators/add-package/files/client/tsconfig.json +14 -0
- package/src/generators/add-package/files/core/LICENSE +39 -0
- package/src/generators/add-package/files/core/_npmignore +3 -0
- package/src/generators/add-package/files/core/jest.config.js +3 -0
- package/src/generators/add-package/files/core/package.json +30 -0
- package/src/generators/add-package/files/core/rollup.config.mjs +37 -0
- package/src/generators/add-package/files/core/src/cdm-locales/en/main.json +2 -0
- package/src/generators/add-package/files/core/src/cdm-locales/es/common.json +2 -0
- package/src/generators/add-package/files/core/src/cdm-locales/es/main.json +1 -0
- package/src/generators/add-package/files/core/src/config/env-config.ts.template +9 -0
- package/src/generators/add-package/files/core/src/constants/index.ts.template +1 -0
- package/src/generators/add-package/files/core/src/constants/types.ts.template +3 -0
- package/src/generators/add-package/files/core/src/index.ts.template +2 -0
- package/src/generators/add-package/files/core/src/types/index.ts.template +1 -0
- package/src/generators/add-package/files/core/src/types/types.ts.template +17 -0
- package/src/generators/add-package/files/core/tsconfig.json +13 -0
- package/src/generators/add-package/files/server/LICENSE +674 -0
- package/src/generators/add-package/files/server/_npmignore +2 -0
- package/src/generators/add-package/files/server/jest.config.js +32 -0
- package/src/generators/add-package/files/server/package.json +78 -0
- package/src/generators/add-package/files/server/rollup.config.mjs +37 -0
- package/src/generators/add-package/files/server/src/config/env-config.ts.template +9 -0
- package/src/generators/add-package/files/server/src/constants/constants.ts.template +62 -0
- package/src/generators/add-package/files/server/src/constants/index.ts.template +1 -0
- package/src/generators/add-package/files/server/src/constants/types.ts.template +21 -0
- package/src/generators/add-package/files/server/src/index.ts.template +6 -0
- package/src/generators/add-package/files/server/src/module.ts.template +6 -0
- package/src/generators/add-package/files/server/tsconfig.json +17 -0
- package/src/generators/add-package/generator.ts +75 -17
- package/src/index.ts +7 -6
- package/src/utils/copyDotfiles.ts +96 -0
- package/lib/generators/add-fullstack/updates/ignoreUpdate.cjs.map +0 -1
- package/lib/generators/add-fullstack/updates/ignoreUpdate.mjs.map +0 -1
- package/lib/generators/add-fullstack/updates/jenkinsfileUpdate.cjs +0 -37
- package/lib/generators/add-fullstack/updates/jenkinsfileUpdate.cjs.map +0 -1
- package/lib/generators/add-fullstack/updates/jenkinsfileUpdate.mjs +0 -37
- package/lib/generators/add-fullstack/updates/jenkinsfileUpdate.mjs.map +0 -1
- package/lib/generators/add-fullstack/updates/lernaJsonUpdate.cjs.map +0 -1
- package/lib/generators/add-fullstack/updates/lernaJsonUpdate.mjs.map +0 -1
- package/src/generators/add-fullstack/files/.husky/pre-commit +0 -1
- package/src/generators/add-fullstack/files/.travis.yml +0 -18
- package/src/generators/add-fullstack/updates/jenkinsfileUpdate.ts +0 -49
- /package/{src/generators/add-fullstack/files/.browserslistrc → lib/generators/add-frontend/templates/_browserslistrc} +0 -0
- /package/{src/generators/add-fullstack/files/.eslintignore → lib/generators/add-fullstack/files/_eslintignore} +0 -0
- /package/{src/generators/add-fullstack/files/.gitattributes → lib/generators/add-fullstack/files/_gitattributes} +0 -0
- /package/{src/generators/add-fullstack/files/.markdownlintignore → lib/generators/add-fullstack/files/_markdownlintignore} +0 -0
- /package/{src/generators/add-fullstack/.nxignore → lib/generators/add-fullstack/files/_nxignore} +0 -0
- /package/lib/generators/add-fullstack/updates/{ignoreUpdate.d.ts → fileBackup.d.ts} +0 -0
- /package/lib/generators/add-fullstack/updates/{jenkinsfileUpdate.d.ts → jenkinsUpdate.d.ts} +0 -0
- /package/lib/generators/add-fullstack/updates/{lernaJsonUpdate.d.ts → lernaUpdate.d.ts} +0 -0
- /package/{src/generators/add-moleculer/files/.dockerignore → lib/generators/add-moleculer/files/_dockerignore} +0 -0
- /package/{src/generators/add-moleculer/files/.draftignore → lib/generators/add-moleculer/files/_draftignore} +0 -0
- /package/src/generators/add-fullstack/updates/{ignoreUpdate.ts → fileBackup.ts} +0 -0
|
@@ -52,7 +52,6 @@
|
|
|
52
52
|
"devpublish:push": "yarn predevpublish && git push origin $PUBLISH_BRANCH && yarn postdevpublish",
|
|
53
53
|
"format": "yarn lint --fix",
|
|
54
54
|
"format:md": "yarn lint:md --fix",
|
|
55
|
-
"pregenerateGraphql": " node --experimental-modules tools/codegenGenerator.mjs",
|
|
56
55
|
"generateGraphql": "graphql-codegen-esm",
|
|
57
56
|
"postgenerateGraphql": "lerna run watch --scope=common",
|
|
58
57
|
"generateGraphql:watch": "yarn generateGraphql -- --watch",
|
|
@@ -77,6 +76,7 @@
|
|
|
77
76
|
"publish:forceManual": "yarn lernapublish --force-publish=*",
|
|
78
77
|
"publish:push": "yarn prelernapublish && git push origin publish && yarn postlernapublish",
|
|
79
78
|
"push-develop": "git push origin develop",
|
|
79
|
+
"regenerateGraphql": " node --experimental-modules tools/codegenGenerator.mjs",
|
|
80
80
|
"setBranchEnv": "cross-env REPOSITORY_BRANCH=${1:-$REPOSITORY_BRANCH} PUBLISH_BRANCH=${2:-$PUBLISH_BRANCH}",
|
|
81
81
|
"sort-packages": "node tools/sortPackageJson.mjs && prettier --write package.json **/**/*/package.json **/*/package.json",
|
|
82
82
|
"start": "cross-env NODE_ENV=development ENV_FILE=../../config/development/dev.env yarn startWeb",
|
|
@@ -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": "
|
|
154
|
-
"@common-stack/generate-plugin": "7.0.
|
|
155
|
-
"@common-stack/rollup-vite-utils": "7.0.
|
|
147
|
+
"@common-stack/env-list-loader": "7.0.4-alpha.0",
|
|
148
|
+
"@common-stack/generate-plugin": "7.0.4-alpha.9",
|
|
149
|
+
"@common-stack/rollup-vite-utils": "7.0.4-alpha.8",
|
|
156
150
|
"@emotion/babel-plugin": "^11.11.0",
|
|
157
151
|
"@graphql-codegen/add": "^5.0.3",
|
|
158
152
|
"@graphql-codegen/cli": "^5.0.4",
|
|
@@ -2,16 +2,22 @@
|
|
|
2
2
|
import graphql from '@rollup/plugin-graphql';
|
|
3
3
|
import image from '@rollup/plugin-image';
|
|
4
4
|
import typescript from '@rollup/plugin-typescript';
|
|
5
|
+
import esbuild from 'rollup-plugin-esbuild'
|
|
5
6
|
import { string } from 'rollup-plugin-string';
|
|
6
7
|
import svg from 'rollup-plugin-svg';
|
|
7
8
|
import { copy } from '@web/rollup-plugin-copy';
|
|
9
|
+
import json from '@rollup/plugin-json';
|
|
8
10
|
import modifyLibFilesPlugin from '@common-stack/rollup-vite-utils/lib/rollup/rollupPluginModifyLibFiles.js';
|
|
9
11
|
import generateJsonFromObject from '@common-stack/rollup-vite-utils/lib/rollup/rollupPluginGenerateJson.js';
|
|
10
12
|
import addJsExtensionToImportsPlugin from '@common-stack/rollup-vite-utils/lib/rollup/rollupPluginAddJsExtension.js';
|
|
11
13
|
import { ignoreCssUrlPlugin } from '@common-stack/rollup-vite-utils/lib/rollup/pluginIgnore.js';
|
|
12
14
|
// Define any additional plugins specific to this bundle
|
|
13
15
|
const additionalPlugins = [
|
|
14
|
-
copy({
|
|
16
|
+
copy({
|
|
17
|
+
patterns: ['**/cdm-locales/**/*', '**/*.gql', '**/**/*.graphql', '**/styles/**/*', '**/templates/**/*', '**/css/**/*'],
|
|
18
|
+
rootDir: './src',
|
|
19
|
+
}),
|
|
20
|
+
json(),
|
|
15
21
|
];
|
|
16
22
|
|
|
17
23
|
function deepMergeConfigs(baseConfig, specificConfig) {
|
|
@@ -35,39 +41,55 @@ const baseConfig = {
|
|
|
35
41
|
include: ['**/*.ejs', '**/*.graphql'],
|
|
36
42
|
}),
|
|
37
43
|
addJsExtensionToImportsPlugin({
|
|
38
|
-
packages: '
|
|
39
|
-
needToAddIndexJs: [],
|
|
44
|
+
packages: ['@react-icons/all-files', '@apollo/client', '@vscode-alt/monaco-editor'],
|
|
45
|
+
needToAddIndexJs: ['@apollo/client'],
|
|
40
46
|
excludeImports: ['@emotion/react/jsx-runtime'],
|
|
41
47
|
}),
|
|
42
|
-
typescript(), //
|
|
48
|
+
typescript(), // Initially include the TypeScript plugin
|
|
43
49
|
ignoreCssUrlPlugin(),
|
|
44
|
-
modifyLibFilesPlugin({
|
|
45
|
-
include: ['**/**/compute.js'], // Adjust to target specific files or patterns
|
|
46
|
-
outputDir: 'lib', // Ensure this matches your actual output directory
|
|
47
|
-
}),
|
|
48
|
-
generateJsonFromObject({}),
|
|
49
|
-
|
|
50
50
|
...additionalPlugins,
|
|
51
51
|
],
|
|
52
52
|
external: (id) => !/^[./]/.test(id),
|
|
53
53
|
globals: { react: 'React' },
|
|
54
54
|
};
|
|
55
55
|
|
|
56
|
-
//
|
|
57
|
-
|
|
58
|
-
|
|
56
|
+
// Updated createRollupConfig function to accept an options object as the second parameter.
|
|
57
|
+
// If useEsbuild is true, the TypeScript plugin is removed completely and replaced with the esbuild plugin.
|
|
58
|
+
function createRollupConfig(specificOverrides, options = {}) {
|
|
59
|
+
const { useEsbuild, isWatchMode, generateRoutesJSON } = options;
|
|
60
|
+
const config = deepMergeConfigs(baseConfig, specificOverrides);
|
|
59
61
|
|
|
60
|
-
//
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
62
|
+
// Conditionally add both modifyLibFilesPlugin and generateJsonFromObject plugins if generateRoutesJSON option is provided.
|
|
63
|
+
if (generateRoutesJSON) {
|
|
64
|
+
// Add modifyLibFilesPlugin with predetermined configuration.
|
|
65
|
+
config.plugins.push(modifyLibFilesPlugin({
|
|
66
|
+
include: ['**/**/compute.js'], // Adjust to target specific files or patterns
|
|
67
|
+
outputDir: 'lib', // Ensure this matches your actual output directory
|
|
68
|
+
}));
|
|
69
|
+
// Allow generateRoutesJSON to be an object with plugin configuration or simply a boolean.
|
|
70
|
+
const jsonConfig = typeof generateRoutesJSON === 'object' ? generateRoutesJSON : {};
|
|
71
|
+
config.plugins.push(generateJsonFromObject(jsonConfig));
|
|
72
|
+
}
|
|
70
73
|
|
|
74
|
+
if (useEsbuild) {
|
|
75
|
+
// Remove the TypeScript plugin completely.
|
|
76
|
+
config.plugins = config.plugins.filter((plugin) => plugin.name !== 'typescript');
|
|
77
|
+
// Add the esbuild plugin only. Note: The "watch" option is removed as it's not supported by esbuild.
|
|
78
|
+
config.plugins.push(esbuild({
|
|
79
|
+
target: 'es2017', // Adjust the target as needed
|
|
80
|
+
}));
|
|
81
|
+
} else {
|
|
82
|
+
// Retain the TypeScript plugin and adjust its options based on watch mode.
|
|
83
|
+
config.plugins = config.plugins.map((plugin) => {
|
|
84
|
+
if (plugin.name === 'typescript') {
|
|
85
|
+
return typescript({
|
|
86
|
+
...plugin.options,
|
|
87
|
+
noEmitOnError: !isWatchMode, // Adjust based on watch mode
|
|
88
|
+
});
|
|
89
|
+
}
|
|
90
|
+
return plugin;
|
|
91
|
+
});
|
|
92
|
+
}
|
|
71
93
|
return config;
|
|
72
94
|
}
|
|
73
95
|
|
|
@@ -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 {
|
|
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,15 +15,24 @@ 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
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
generatePackage,
|
|
24
|
-
} from '../../index';
|
|
27
|
+
import { addBackendGenerator as generateBackend } from '../add-backend/generator';
|
|
28
|
+
import { addFrontendGenerator as generateFrontend } from '../add-frontend/generator';
|
|
29
|
+
import { addMoleculerGenerator as generateMoleculer } from '../add-moleculer/generator';
|
|
30
|
+
import { addPackageGenerator as generatePackage } from '../add-package/generator';
|
|
25
31
|
|
|
26
32
|
export async function addFullstackGenerator(tree: Tree, options: AddFullstackGeneratorSchema) {
|
|
33
|
+
// Immediately set the environment variable to skip NX config
|
|
34
|
+
process.env.SKIP_NX_CONFIG = 'true';
|
|
35
|
+
|
|
27
36
|
let projectPath = options.path || '';
|
|
28
37
|
if (projectPath !== '') {
|
|
29
38
|
const basePath = process.cwd();
|
|
@@ -37,31 +46,37 @@ export async function addFullstackGenerator(tree: Tree, options: AddFullstackGen
|
|
|
37
46
|
// backup existing lerna values
|
|
38
47
|
const lernaBackup = backupLernaJson(tree, projectRoot);
|
|
39
48
|
|
|
40
|
-
// backup files codegen.
|
|
41
|
-
const filesToBackup = ['codegen.
|
|
49
|
+
// backup files including codegen.ts (instead of codegen.yml)
|
|
50
|
+
const filesToBackup = ['codegen.ts', 'values-dev.yaml', 'values-prod.yaml', 'values-stage.yaml'];
|
|
42
51
|
const filesBackup = backupFiles(tree, projectRoot, filesToBackup);
|
|
43
52
|
|
|
44
53
|
generateFiles(tree, path.join(__dirname, 'files'), projectRoot, options);
|
|
45
54
|
|
|
46
|
-
//
|
|
47
|
-
|
|
55
|
+
// Rename files that begin with underscore to dot files
|
|
56
|
+
renameDotFiles(tree, projectRoot);
|
|
48
57
|
|
|
49
|
-
//
|
|
50
|
-
|
|
58
|
+
// Handle gitattributes file (Tree-phase)
|
|
59
|
+
prepareGitAttributes(tree, projectRoot);
|
|
51
60
|
|
|
52
|
-
//
|
|
61
|
+
// First update files in the tree
|
|
62
|
+
updateJenkinsFile(tree, projectRoot, projectName);
|
|
63
|
+
updatePackageJson(tree, projectRoot, { name: projectName });
|
|
53
64
|
updateHtmlPlugin(tree, projectRoot);
|
|
54
65
|
|
|
55
66
|
if (lernaBackup) {
|
|
56
|
-
// When update the existing lerna.json, it shouldn't overwrite version, allowbranch, packages
|
|
57
67
|
restoreLernaJson(tree, projectRoot, lernaBackup);
|
|
58
68
|
}
|
|
59
69
|
|
|
60
|
-
// Restore files backup to ignore update
|
|
61
70
|
restoreFiles(tree, projectRoot, filesBackup);
|
|
71
|
+
updateLicense(tree, projectRoot);
|
|
62
72
|
|
|
73
|
+
// Format all files
|
|
63
74
|
await formatFiles(tree);
|
|
64
75
|
|
|
76
|
+
// Set a flag to perform Git operations after files are written
|
|
77
|
+
const performGitOperations = true;
|
|
78
|
+
|
|
79
|
+
// Process configurations if needed
|
|
65
80
|
if (isValid(options.config)) {
|
|
66
81
|
const configPath = path.resolve(projectPath, getValid(options.config));
|
|
67
82
|
if (fs.existsSync(configPath)) {
|
|
@@ -77,8 +92,53 @@ export async function addFullstackGenerator(tree: Tree, options: AddFullstackGen
|
|
|
77
92
|
}
|
|
78
93
|
}
|
|
79
94
|
|
|
80
|
-
//
|
|
81
|
-
|
|
95
|
+
// Setup Nx config with AWS credentials
|
|
96
|
+
// Allow skipping via environment variable
|
|
97
|
+
if (options.skipNxConfig) {
|
|
98
|
+
process.env.SKIP_NX_CONFIG = 'true';
|
|
99
|
+
}
|
|
100
|
+
await setupNxConfig(tree, projectRoot);
|
|
101
|
+
|
|
102
|
+
// Setup git and commit files
|
|
103
|
+
setupGit(tree, projectRoot);
|
|
104
|
+
|
|
105
|
+
// Step 2: Set up git-crypt
|
|
106
|
+
setupGitCrypt(tree, projectRoot);
|
|
107
|
+
|
|
108
|
+
// Step 3: Set up npm authentication
|
|
109
|
+
setupNpmAuth(tree, projectRoot);
|
|
110
|
+
|
|
111
|
+
// Step 4: Set up husky
|
|
112
|
+
setupHusky(tree, projectRoot);
|
|
113
|
+
|
|
114
|
+
// Step 5: Commit all files (they will be encrypted if they match patterns in .gitattributes)
|
|
115
|
+
commitInitialFiles(projectRoot);
|
|
116
|
+
|
|
117
|
+
console.log('Git setup completed.');
|
|
118
|
+
|
|
119
|
+
// Return function to execute after all files are written to disk
|
|
120
|
+
if (performGitOperations) {
|
|
121
|
+
return () => {
|
|
122
|
+
console.log('All files have been generated. Now setting up Git...');
|
|
123
|
+
|
|
124
|
+
// Step 1: Initialize git repository
|
|
125
|
+
setupGit(tree, projectRoot);
|
|
126
|
+
|
|
127
|
+
// Step 2: Set up git-crypt
|
|
128
|
+
setupGitCrypt(tree, projectRoot);
|
|
129
|
+
|
|
130
|
+
// Step 3: Set up npm authentication
|
|
131
|
+
setupNpmAuth(tree, projectRoot);
|
|
132
|
+
|
|
133
|
+
// Step 4: Set up husky
|
|
134
|
+
setupHusky(tree, projectRoot);
|
|
135
|
+
|
|
136
|
+
// Step 5: Commit all files (they will be encrypted if they match patterns in .gitattributes)
|
|
137
|
+
commitInitialFiles(projectRoot);
|
|
138
|
+
|
|
139
|
+
console.log('Git setup completed.');
|
|
140
|
+
};
|
|
141
|
+
}
|
|
82
142
|
}
|
|
83
143
|
|
|
84
144
|
const generateServers = async (tree: Tree, options: any) => {
|
|
@@ -114,7 +174,7 @@ const generateModules = async (tree: Tree, options: any) => {
|
|
|
114
174
|
ns: options.ns,
|
|
115
175
|
type: packageName,
|
|
116
176
|
};
|
|
117
|
-
await generatePackage(tree, configs
|
|
177
|
+
await generatePackage(tree, configs);
|
|
118
178
|
}
|
|
119
179
|
}
|
|
120
180
|
};
|
|
@@ -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
|
+
}
|
|
@@ -0,0 +1,77 @@
|
|
|
1
|
+
import { Tree } from '@nx/devkit';
|
|
2
|
+
import * as path from 'path';
|
|
3
|
+
import { execSync } from 'child_process';
|
|
4
|
+
import * as fs from 'fs';
|
|
5
|
+
|
|
6
|
+
/**
|
|
7
|
+
* Set up git-crypt for encrypting sensitive files
|
|
8
|
+
*/
|
|
9
|
+
export function setupGitCrypt(tree: Tree, projectRoot: string) {
|
|
10
|
+
try {
|
|
11
|
+
// Navigate to the project directory
|
|
12
|
+
const originalDir = process.cwd();
|
|
13
|
+
process.chdir(projectRoot);
|
|
14
|
+
|
|
15
|
+
console.log('Setting up git-crypt in:', projectRoot);
|
|
16
|
+
|
|
17
|
+
// Check if git-crypt is installed
|
|
18
|
+
try {
|
|
19
|
+
execSync('git-crypt --version', { stdio: 'ignore' });
|
|
20
|
+
} catch (error) {
|
|
21
|
+
console.log('git-crypt not found. Please install git-crypt to encrypt sensitive files.');
|
|
22
|
+
console.log('Continuing without git-crypt setup.');
|
|
23
|
+
process.chdir(originalDir);
|
|
24
|
+
return;
|
|
25
|
+
}
|
|
26
|
+
|
|
27
|
+
// Check if git-crypt is already initialized
|
|
28
|
+
const gitCryptDir = path.join(projectRoot, '.git-crypt');
|
|
29
|
+
const gitCryptConfigExists = fs.existsSync(gitCryptDir);
|
|
30
|
+
|
|
31
|
+
if (gitCryptConfigExists) {
|
|
32
|
+
console.log('git-crypt is already initialized for this repository');
|
|
33
|
+
} else {
|
|
34
|
+
// Initialize git-crypt
|
|
35
|
+
try {
|
|
36
|
+
execSync('git-crypt init', { stdio: 'inherit' });
|
|
37
|
+
console.log('git-crypt initialized');
|
|
38
|
+
} catch (error) {
|
|
39
|
+
console.error('Error initializing git-crypt:', error);
|
|
40
|
+
process.chdir(originalDir);
|
|
41
|
+
return;
|
|
42
|
+
}
|
|
43
|
+
}
|
|
44
|
+
|
|
45
|
+
// Create keys directory if it doesn't exist
|
|
46
|
+
const keysDir = path.join(projectRoot, '.git-crypt', 'keys');
|
|
47
|
+
if (!fs.existsSync(keysDir)) {
|
|
48
|
+
fs.mkdirSync(keysDir, { recursive: true });
|
|
49
|
+
}
|
|
50
|
+
|
|
51
|
+
// Generate and export a key for sharing only if it doesn't exist
|
|
52
|
+
const keyFile = path.join(keysDir, 'default-git-crypt-key');
|
|
53
|
+
if (!fs.existsSync(keyFile)) {
|
|
54
|
+
try {
|
|
55
|
+
execSync(`git-crypt export-key ${keyFile}`, { stdio: 'inherit' });
|
|
56
|
+
console.log(`Generated git-crypt key at: ${keyFile}`);
|
|
57
|
+
console.log('Keep this key secure and share it with team members who need access to encrypted files.');
|
|
58
|
+
} catch (error) {
|
|
59
|
+
console.error('Error exporting git-crypt key:', error);
|
|
60
|
+
}
|
|
61
|
+
} else {
|
|
62
|
+
console.log(`git-crypt key already exists at: ${keyFile}`);
|
|
63
|
+
}
|
|
64
|
+
|
|
65
|
+
console.log('Git-crypt setup completed - sensitive files will be encrypted');
|
|
66
|
+
|
|
67
|
+
// Return to original directory
|
|
68
|
+
process.chdir(originalDir);
|
|
69
|
+
} catch (error) {
|
|
70
|
+
console.error('Error setting up git-crypt:', error);
|
|
71
|
+
// Continue even if there's an error to not block the overall process
|
|
72
|
+
const originalDir = process.cwd();
|
|
73
|
+
if (originalDir !== projectRoot) {
|
|
74
|
+
process.chdir(originalDir);
|
|
75
|
+
}
|
|
76
|
+
}
|
|
77
|
+
}
|
|
@@ -0,0 +1,63 @@
|
|
|
1
|
+
import { Tree } from '@nx/devkit';
|
|
2
|
+
import { execSync } from 'child_process';
|
|
3
|
+
|
|
4
|
+
/**
|
|
5
|
+
* Sets up git repository in the project
|
|
6
|
+
*/
|
|
7
|
+
export function setupGit(tree: Tree, projectRoot: string) {
|
|
8
|
+
try {
|
|
9
|
+
// Navigate to the project directory
|
|
10
|
+
const originalDir = process.cwd();
|
|
11
|
+
process.chdir(projectRoot);
|
|
12
|
+
|
|
13
|
+
console.log('Setting up git in:', projectRoot);
|
|
14
|
+
|
|
15
|
+
// Initialize git repository
|
|
16
|
+
execSync('git init', { stdio: 'inherit' });
|
|
17
|
+
console.log('Git repository initialized');
|
|
18
|
+
|
|
19
|
+
// Return to original directory
|
|
20
|
+
process.chdir(originalDir);
|
|
21
|
+
} catch (error) {
|
|
22
|
+
console.error('Error setting up git:', error);
|
|
23
|
+
// Continue even if there's an error to not block the overall process
|
|
24
|
+
const originalDir = process.cwd();
|
|
25
|
+
if (originalDir !== projectRoot) {
|
|
26
|
+
process.chdir(originalDir);
|
|
27
|
+
}
|
|
28
|
+
}
|
|
29
|
+
}
|
|
30
|
+
|
|
31
|
+
/**
|
|
32
|
+
* Commit all initial files to git
|
|
33
|
+
*/
|
|
34
|
+
export function commitInitialFiles(projectRoot: string) {
|
|
35
|
+
try {
|
|
36
|
+
// Navigate to the project directory
|
|
37
|
+
const originalDir = process.cwd();
|
|
38
|
+
process.chdir(projectRoot);
|
|
39
|
+
|
|
40
|
+
console.log('Staging initial files...');
|
|
41
|
+
|
|
42
|
+
try {
|
|
43
|
+
// Add all files
|
|
44
|
+
execSync('git add .', { stdio: 'inherit' });
|
|
45
|
+
|
|
46
|
+
// Commit with --no-verify to bypass husky hooks
|
|
47
|
+
execSync('git commit -m "Initial commit from @common-stack/generate-plugin" --no-verify', { stdio: 'inherit' });
|
|
48
|
+
console.log('Initial commit created (bypassing pre-commit hooks)');
|
|
49
|
+
} catch (error) {
|
|
50
|
+
console.error('Error committing files:', error);
|
|
51
|
+
}
|
|
52
|
+
|
|
53
|
+
// Return to original directory
|
|
54
|
+
process.chdir(originalDir);
|
|
55
|
+
} catch (error) {
|
|
56
|
+
console.error('Error during git commit process:', error);
|
|
57
|
+
// Continue even if there's an error to not block the overall process
|
|
58
|
+
const originalDir = process.cwd();
|
|
59
|
+
if (originalDir !== projectRoot) {
|
|
60
|
+
process.chdir(originalDir);
|
|
61
|
+
}
|
|
62
|
+
}
|
|
63
|
+
}
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import { Tree } from '@nx/devkit';
|
|
2
2
|
import * as path from 'path';
|
|
3
|
+
import * as fs from 'fs';
|
|
3
4
|
|
|
4
5
|
export function updateHtmlPlugin(tree: Tree, projectRoot: string) {
|
|
5
6
|
const filePath = path.join(projectRoot, 'tools', 'html-plugin-template.ejs');
|
|
@@ -9,3 +10,33 @@ export function updateHtmlPlugin(tree: Tree, projectRoot: string) {
|
|
|
9
10
|
tree.write(filePath, newContents);
|
|
10
11
|
}
|
|
11
12
|
}
|
|
13
|
+
|
|
14
|
+
export function renameDotFiles(tree: Tree, projectRoot: string) {
|
|
15
|
+
// List of files that need to be renamed from _name to .name
|
|
16
|
+
const dotFiles = [
|
|
17
|
+
{ src: '_gitignore', dest: '.gitignore' },
|
|
18
|
+
{ src: '_browserslistrc', dest: '.browserslistrc' },
|
|
19
|
+
{ src: '_eslintignore', dest: '.eslintignore' },
|
|
20
|
+
{ src: '_eslintrc.js', dest: '.eslintrc.js' },
|
|
21
|
+
{ src: '_nxignore', dest: '.nxignore' },
|
|
22
|
+
{ src: '_markdownlint.json', dest: '.markdownlint.json' },
|
|
23
|
+
{ src: '_markdownlintignore', dest: '.markdownlintignore' },
|
|
24
|
+
{ src: '_npmrc', dest: '.npmrc' },
|
|
25
|
+
];
|
|
26
|
+
|
|
27
|
+
// Process each file
|
|
28
|
+
dotFiles.forEach(({ src, dest }) => {
|
|
29
|
+
const srcPath = path.join(projectRoot, src);
|
|
30
|
+
const destPath = path.join(projectRoot, dest);
|
|
31
|
+
|
|
32
|
+
// Check if the source file exists
|
|
33
|
+
if (tree.exists(srcPath)) {
|
|
34
|
+
// Read content and write to destination
|
|
35
|
+
const content = tree.read(srcPath).toString();
|
|
36
|
+
tree.write(destPath, content);
|
|
37
|
+
// Remove the source file
|
|
38
|
+
tree.delete(srcPath);
|
|
39
|
+
console.log(`Renamed ${srcPath} to ${destPath}`);
|
|
40
|
+
}
|
|
41
|
+
});
|
|
42
|
+
}
|
|
@@ -0,0 +1,84 @@
|
|
|
1
|
+
import { Tree } from '@nx/devkit';
|
|
2
|
+
import * as path from 'path';
|
|
3
|
+
import { execSync } from 'child_process';
|
|
4
|
+
import * as fs from 'fs';
|
|
5
|
+
|
|
6
|
+
export function setupHusky(tree: Tree, projectRoot: string) {
|
|
7
|
+
try {
|
|
8
|
+
// Navigate to the project directory
|
|
9
|
+
const originalDir = process.cwd();
|
|
10
|
+
process.chdir(projectRoot);
|
|
11
|
+
|
|
12
|
+
console.log('Setting up husky in:', projectRoot);
|
|
13
|
+
|
|
14
|
+
try {
|
|
15
|
+
// Initialize husky (creates .husky directory and prepares hooks)
|
|
16
|
+
execSync('npx husky init', { stdio: 'inherit' });
|
|
17
|
+
console.log('Husky initialized successfully');
|
|
18
|
+
|
|
19
|
+
// Copy the husky hook files from _husky/ to .husky/
|
|
20
|
+
const sourceDir = path.join(projectRoot, '_husky');
|
|
21
|
+
const targetDir = path.join(projectRoot, '.husky');
|
|
22
|
+
|
|
23
|
+
if (fs.existsSync(sourceDir) && fs.existsSync(targetDir)) {
|
|
24
|
+
// Read all files from _husky directory
|
|
25
|
+
const files = fs.readdirSync(sourceDir);
|
|
26
|
+
|
|
27
|
+
// Copy each file to .husky directory
|
|
28
|
+
files.forEach(file => {
|
|
29
|
+
const sourcePath = path.join(sourceDir, file);
|
|
30
|
+
const targetPath = path.join(targetDir, file);
|
|
31
|
+
|
|
32
|
+
if (fs.statSync(sourcePath).isFile()) {
|
|
33
|
+
// Read content from our hook template
|
|
34
|
+
const content = fs.readFileSync(sourcePath, 'utf8');
|
|
35
|
+
|
|
36
|
+
// Remove any old shebang lines to avoid deprecation warnings
|
|
37
|
+
const cleanContent = content
|
|
38
|
+
.replace(/^#!\/usr\/bin\/env sh\n/, '')
|
|
39
|
+
.replace(/^\. "\$\(dirname -- "\$0"\)\/\_\/husky\.sh"\n/, '')
|
|
40
|
+
.trim();
|
|
41
|
+
|
|
42
|
+
// Write the hook content
|
|
43
|
+
fs.writeFileSync(targetPath, cleanContent, 'utf8');
|
|
44
|
+
|
|
45
|
+
try {
|
|
46
|
+
// Make the hook executable
|
|
47
|
+
fs.chmodSync(targetPath, '755');
|
|
48
|
+
console.log(`Made executable: ${file}`);
|
|
49
|
+
} catch (error) {
|
|
50
|
+
console.log(`Note: Could not set executable permissions for ${file}. This is normal on Windows.`);
|
|
51
|
+
}
|
|
52
|
+
|
|
53
|
+
console.log(`Copied: ${file} to .husky directory`);
|
|
54
|
+
}
|
|
55
|
+
});
|
|
56
|
+
|
|
57
|
+
// Remove the _husky directory after copying
|
|
58
|
+
try {
|
|
59
|
+
fs.rmdirSync(sourceDir, { recursive: true });
|
|
60
|
+
console.log('Removed _husky directory after copying');
|
|
61
|
+
} catch (error) {
|
|
62
|
+
console.log('Could not remove _husky directory, but continuing...');
|
|
63
|
+
}
|
|
64
|
+
} else {
|
|
65
|
+
console.log('Source or target directory not found, skipping hook setup');
|
|
66
|
+
}
|
|
67
|
+
|
|
68
|
+
console.log('Husky setup completed successfully');
|
|
69
|
+
} catch (error) {
|
|
70
|
+
console.error('Error running husky commands:', error);
|
|
71
|
+
console.log('Continuing despite husky setup failure');
|
|
72
|
+
}
|
|
73
|
+
|
|
74
|
+
// Return to original directory
|
|
75
|
+
process.chdir(originalDir);
|
|
76
|
+
} catch (error) {
|
|
77
|
+
console.error('Error setting up husky:', error);
|
|
78
|
+
// Continue even if there's an error to not block the overall process
|
|
79
|
+
const originalDir = process.cwd();
|
|
80
|
+
if (originalDir !== projectRoot) {
|
|
81
|
+
process.chdir(originalDir);
|
|
82
|
+
}
|
|
83
|
+
}
|
|
84
|
+
}
|