@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.
- package/CHANGELOG.md +8 -0
- 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/generator.cjs +6 -1
- package/lib/generators/add-frontend/generator.cjs.map +1 -1
- package/lib/generators/add-frontend/generator.mjs +6 -1
- 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 +62 -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 +3 -9
- package/lib/generators/add-fullstack/generator.cjs +51 -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 +45 -14
- package/lib/generators/add-fullstack/generator.mjs.map +1 -1
- 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 +81 -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 +81 -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 +28 -0
- package/lib/generators/add-package/files/browser/webpack.config.js +71 -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 +29 -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 +27 -0
- package/lib/generators/add-package/files/client/webpack.config.js +72 -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 +65 -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 +22 -0
- package/lib/generators/add-package/files/core/webpack.config.js +53 -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 +30 -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 +27 -0
- 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/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/generator.ts +8 -0
- 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 +62 -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 +3 -9
- package/src/generators/add-fullstack/generator.spec.ts +2 -0
- package/src/generators/add-fullstack/generator.ts +74 -20
- package/src/generators/add-fullstack/schema.d.ts +2 -2
- 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 +95 -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 +28 -0
- package/src/generators/add-package/files/browser/webpack.config.js +71 -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 +29 -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 +27 -0
- package/src/generators/add-package/files/client/webpack.config.js +72 -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 +65 -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 +22 -0
- package/src/generators/add-package/files/core/webpack.config.js +53 -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 +30 -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 +27 -0
- 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
|
@@ -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
|
+
}
|
|
@@ -1,6 +1,13 @@
|
|
|
1
|
-
export
|
|
2
|
-
export
|
|
3
|
-
export
|
|
4
|
-
export
|
|
5
|
-
export
|
|
6
|
-
export
|
|
1
|
+
export { updateJenkinsFile } from './jenkinsUpdate';
|
|
2
|
+
export { updatePackageJson } from './packageJsonUpdate';
|
|
3
|
+
export { backupLernaJson, restoreLernaJson } from './lernaUpdate';
|
|
4
|
+
export { updateLicense } from './licenseUpdate';
|
|
5
|
+
export { backupFiles, restoreFiles } from './fileBackup';
|
|
6
|
+
export { updateRepository } from './repositoryUpdate';
|
|
7
|
+
export { updateHtmlPlugin, renameDotFiles } from './htmlPluginUpdate';
|
|
8
|
+
export { setupGit, commitInitialFiles } from './gitSetup';
|
|
9
|
+
export { setupGitCrypt } from './gitCryptSetup';
|
|
10
|
+
export { setupHusky } from './huskySetup';
|
|
11
|
+
export { prepareGitAttributes, updateGitAttributes } from './gitAttributesSetup';
|
|
12
|
+
export { setupNpmAuth } from './npmAuthSetup';
|
|
13
|
+
export * from './nxSetup';
|
|
@@ -0,0 +1,53 @@
|
|
|
1
|
+
import { Tree } from '@nx/devkit';
|
|
2
|
+
import * as path from 'path';
|
|
3
|
+
|
|
4
|
+
export function updateJenkinsFile(tree: Tree, projectRoot: string, name: string) {
|
|
5
|
+
const filePath = path.join(projectRoot, 'Jenkinsfile');
|
|
6
|
+
const paramsToUpdate = {
|
|
7
|
+
BASE_NAMESPACE: name,
|
|
8
|
+
CONNECTION_ID: name,
|
|
9
|
+
WORKSPACE_ID: name,
|
|
10
|
+
UNIQUE_NAME: name,
|
|
11
|
+
};
|
|
12
|
+
|
|
13
|
+
if (tree.exists(filePath)) {
|
|
14
|
+
const jenkinsFileContent = tree.read(filePath).toString();
|
|
15
|
+
let labelExists = false;
|
|
16
|
+
|
|
17
|
+
const updatedContent = jenkinsFileContent.split('\n').map(line => {
|
|
18
|
+
// Check if the label is already defined and skip modifying it
|
|
19
|
+
if (line.includes('label') && line.includes('kubernetes')) {
|
|
20
|
+
labelExists = true;
|
|
21
|
+
}
|
|
22
|
+
|
|
23
|
+
// Update only the specified parameters
|
|
24
|
+
for (const param in paramsToUpdate) {
|
|
25
|
+
if (line.includes(`string(name: '${param}'`)) {
|
|
26
|
+
return line.replace(/defaultValue: '.*'/, `defaultValue: '${paramsToUpdate[param]}'`);
|
|
27
|
+
}
|
|
28
|
+
}
|
|
29
|
+
return line;
|
|
30
|
+
}).join('\n');
|
|
31
|
+
|
|
32
|
+
let finalContent = updatedContent;
|
|
33
|
+
|
|
34
|
+
// Add missing parameters if they don't exist
|
|
35
|
+
Object.keys(paramsToUpdate).forEach(param => {
|
|
36
|
+
if (!finalContent.includes(`string(name: '${param}'`)) {
|
|
37
|
+
finalContent = finalContent.concat(
|
|
38
|
+
`string(name: '${param}', defaultValue: '${paramsToUpdate[param]}', description: '${param.replace(/_/g, ' ').toLowerCase()}')\n`
|
|
39
|
+
);
|
|
40
|
+
}
|
|
41
|
+
});
|
|
42
|
+
|
|
43
|
+
// Only write back to the file if we have made changes
|
|
44
|
+
if (!labelExists || Object.keys(paramsToUpdate).some(param => !finalContent.includes(`string(name: '${param}'`))) {
|
|
45
|
+
tree.write(filePath, finalContent);
|
|
46
|
+
console.log(`Updated Jenkinsfile with parameters for: ${name}`);
|
|
47
|
+
} else {
|
|
48
|
+
console.log('No changes needed in Jenkinsfile');
|
|
49
|
+
}
|
|
50
|
+
} else {
|
|
51
|
+
console.log('Jenkinsfile not found, skipping update');
|
|
52
|
+
}
|
|
53
|
+
}
|
|
@@ -19,15 +19,14 @@ export function backupLernaJson(tree: Tree, projectRoot: string) {
|
|
|
19
19
|
backup[param] = paramValue;
|
|
20
20
|
exists = true;
|
|
21
21
|
}
|
|
22
|
-
} else {
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
exists = true;
|
|
26
|
-
}
|
|
22
|
+
} else if (lernaJson[param]) {
|
|
23
|
+
backup[param] = lernaJson[param];
|
|
24
|
+
exists = true;
|
|
27
25
|
}
|
|
28
26
|
}
|
|
29
27
|
|
|
30
28
|
if (exists) {
|
|
29
|
+
console.log('Backed up important values from lerna.json');
|
|
31
30
|
return backup;
|
|
32
31
|
}
|
|
33
32
|
}
|
|
@@ -39,7 +38,7 @@ export function restoreLernaJson(tree: Tree, projectRoot: string, backup: any) {
|
|
|
39
38
|
const lernaJsonPath = path.join(projectRoot, 'lerna.json');
|
|
40
39
|
if (backup && fs.existsSync(lernaJsonPath)) {
|
|
41
40
|
updateJson(tree, lernaJsonPath, (lernaJson: any) => {
|
|
42
|
-
Object.keys(backup).forEach(param => {
|
|
41
|
+
Object.keys(backup).forEach((param) => {
|
|
43
42
|
if (param.includes(':')) {
|
|
44
43
|
lernaJson = set(lernaJson, param.split(':'), backup[param]);
|
|
45
44
|
} else {
|
|
@@ -50,4 +49,4 @@ export function restoreLernaJson(tree: Tree, projectRoot: string, backup: any) {
|
|
|
50
49
|
});
|
|
51
50
|
console.log('Restored old values in lerna.json');
|
|
52
51
|
}
|
|
53
|
-
}
|
|
52
|
+
}
|
|
@@ -5,11 +5,11 @@ export function updateLicense(tree: Tree, projectRoot: string) {
|
|
|
5
5
|
const files = ['LICENSE-GNU', 'LICENSE-IST', 'LICENSE-MIT'];
|
|
6
6
|
const packageJsonPath = path.join(projectRoot, 'package.json');
|
|
7
7
|
const packageJson = readJson(tree, packageJsonPath);
|
|
8
|
-
|
|
8
|
+
|
|
9
9
|
if (packageJson.license) {
|
|
10
10
|
const fileName = `LICENSE-${packageJson.license.toUpperCase()}`;
|
|
11
|
-
|
|
12
|
-
files.forEach(file => {
|
|
11
|
+
|
|
12
|
+
files.forEach((file) => {
|
|
13
13
|
const filePath = path.join(projectRoot, file);
|
|
14
14
|
if (file === fileName) {
|
|
15
15
|
if (tree.exists(filePath)) {
|
|
@@ -0,0 +1,76 @@
|
|
|
1
|
+
import { Tree } from '@nx/devkit';
|
|
2
|
+
import * as path from 'path';
|
|
3
|
+
import * as fs from 'fs';
|
|
4
|
+
import * as readline from 'readline';
|
|
5
|
+
|
|
6
|
+
/**
|
|
7
|
+
* Prompts the user for npm auth token and updates the .npmrc file
|
|
8
|
+
*/
|
|
9
|
+
export async function setupNpmAuth(tree: Tree, projectRoot: string): Promise<void> {
|
|
10
|
+
try {
|
|
11
|
+
const npmrcPath = path.join(projectRoot, '.npmrc');
|
|
12
|
+
|
|
13
|
+
// Check if .npmrc exists after rename from _npmrc
|
|
14
|
+
if (!fs.existsSync(npmrcPath)) {
|
|
15
|
+
console.log('.npmrc file not found. It may not have been properly renamed from _npmrc.');
|
|
16
|
+
return;
|
|
17
|
+
}
|
|
18
|
+
|
|
19
|
+
// Create readline interface for user input
|
|
20
|
+
const rl = readline.createInterface({
|
|
21
|
+
input: process.stdin,
|
|
22
|
+
output: process.stdout
|
|
23
|
+
});
|
|
24
|
+
|
|
25
|
+
console.log('\nNPM Authentication Setup');
|
|
26
|
+
console.log('========================');
|
|
27
|
+
console.log('This project requires an npm authentication token.');
|
|
28
|
+
console.log('You can generate a token from https://www.npmjs.com/settings/[username]/tokens');
|
|
29
|
+
console.log('Press Enter to skip if you do not have a token yet.');
|
|
30
|
+
|
|
31
|
+
// Prompt for the auth token and wait for the user to complete their input
|
|
32
|
+
const token = await new Promise<string>((resolve) => {
|
|
33
|
+
rl.question('Enter your npm auth token: ', (answer) => {
|
|
34
|
+
console.log(''); // Add a line break after input
|
|
35
|
+
resolve(answer.trim());
|
|
36
|
+
});
|
|
37
|
+
});
|
|
38
|
+
|
|
39
|
+
// Explicitly close the readline interface
|
|
40
|
+
rl.close();
|
|
41
|
+
|
|
42
|
+
// Wait for the close event to ensure we don't proceed before input is complete
|
|
43
|
+
await new Promise(resolve => rl.on('close', resolve));
|
|
44
|
+
|
|
45
|
+
if (!token) {
|
|
46
|
+
console.log('No token provided, keeping existing .npmrc configuration');
|
|
47
|
+
return;
|
|
48
|
+
}
|
|
49
|
+
|
|
50
|
+
// Read current .npmrc content
|
|
51
|
+
let npmrcContent = fs.readFileSync(npmrcPath, 'utf8');
|
|
52
|
+
|
|
53
|
+
// Check if token is already set
|
|
54
|
+
if (npmrcContent.includes('//registry.npmjs.org/:_authToken=')) {
|
|
55
|
+
// Replace existing token
|
|
56
|
+
npmrcContent = npmrcContent.replace(
|
|
57
|
+
/\/\/registry\.npmjs\.org\/:_authToken=.*/,
|
|
58
|
+
`//registry.npmjs.org/:_authToken=${token}`
|
|
59
|
+
);
|
|
60
|
+
} else {
|
|
61
|
+
// Add token if it doesn't exist
|
|
62
|
+
npmrcContent += `\n//registry.npmjs.org/:_authToken=${token}\n`;
|
|
63
|
+
}
|
|
64
|
+
|
|
65
|
+
// Write updated content
|
|
66
|
+
fs.writeFileSync(npmrcPath, npmrcContent);
|
|
67
|
+
console.log('Updated .npmrc with authentication token');
|
|
68
|
+
|
|
69
|
+
// Inform about git-crypt encryption
|
|
70
|
+
console.log('Note: The .npmrc file is configured to be encrypted by git-crypt');
|
|
71
|
+
console.log(' The token will be encrypted when committed to the repository');
|
|
72
|
+
|
|
73
|
+
} catch (error) {
|
|
74
|
+
console.error('Error setting up npm authentication:', error);
|
|
75
|
+
}
|
|
76
|
+
}
|
|
@@ -0,0 +1,95 @@
|
|
|
1
|
+
import { Tree, updateJson } from '@nx/devkit';
|
|
2
|
+
import * as path from 'path';
|
|
3
|
+
import * as readline from 'readline';
|
|
4
|
+
|
|
5
|
+
/**
|
|
6
|
+
* Prompts the user for AWS credentials and updates nx.json
|
|
7
|
+
*/
|
|
8
|
+
export async function setupNxConfig(tree: Tree, projectRoot: string) {
|
|
9
|
+
try {
|
|
10
|
+
// Create readline interface for user input
|
|
11
|
+
const rl = readline.createInterface({
|
|
12
|
+
input: process.stdin,
|
|
13
|
+
output: process.stdout
|
|
14
|
+
});
|
|
15
|
+
|
|
16
|
+
console.log('\nAWS Configuration for Nx Cache');
|
|
17
|
+
console.log('=============================');
|
|
18
|
+
console.log('This project uses AWS S3 for remote caching with Nx.');
|
|
19
|
+
console.log('Please provide your AWS credentials or press Enter to skip for now.');
|
|
20
|
+
|
|
21
|
+
// Prompt for the AWS access key ID
|
|
22
|
+
const awsAccessKeyId = await new Promise<string>((resolve) => {
|
|
23
|
+
rl.question('AWS Access Key ID: ', (answer) => {
|
|
24
|
+
resolve(answer.trim());
|
|
25
|
+
});
|
|
26
|
+
});
|
|
27
|
+
|
|
28
|
+
// Prompt for the AWS secret access key if access key ID was provided
|
|
29
|
+
let awsSecretAccessKey = '';
|
|
30
|
+
if (awsAccessKeyId) {
|
|
31
|
+
awsSecretAccessKey = await new Promise<string>((resolve) => {
|
|
32
|
+
rl.question('AWS Secret Access Key: ', (answer) => {
|
|
33
|
+
resolve(answer.trim());
|
|
34
|
+
});
|
|
35
|
+
});
|
|
36
|
+
}
|
|
37
|
+
|
|
38
|
+
// Prompt for the AWS region
|
|
39
|
+
const awsRegion = await new Promise<string>((resolve) => {
|
|
40
|
+
rl.question('AWS Region (default: us-east-1): ', (answer) => {
|
|
41
|
+
resolve(answer.trim() || 'us-east-1');
|
|
42
|
+
});
|
|
43
|
+
});
|
|
44
|
+
|
|
45
|
+
// Prompt for the S3 bucket name
|
|
46
|
+
const awsBucket = await new Promise<string>((resolve) => {
|
|
47
|
+
rl.question('AWS S3 Bucket Name: ', (answer) => {
|
|
48
|
+
resolve(answer.trim());
|
|
49
|
+
});
|
|
50
|
+
});
|
|
51
|
+
|
|
52
|
+
rl.close();
|
|
53
|
+
|
|
54
|
+
// Wait for the close event to ensure we don't proceed before input is complete
|
|
55
|
+
await new Promise(resolve => rl.on('close', resolve));
|
|
56
|
+
|
|
57
|
+
// Update nx.json if it exists and AWS credentials were provided
|
|
58
|
+
if (awsAccessKeyId && awsSecretAccessKey && awsBucket) {
|
|
59
|
+
const nxJsonPath = path.join(projectRoot, 'nx.json');
|
|
60
|
+
if (tree.exists(nxJsonPath)) {
|
|
61
|
+
updateJson(tree, nxJsonPath, (json) => {
|
|
62
|
+
// Preserve the existing configuration, just update the AWS credentials
|
|
63
|
+
if (!json.tasksRunnerOptions) {
|
|
64
|
+
json.tasksRunnerOptions = {};
|
|
65
|
+
}
|
|
66
|
+
|
|
67
|
+
if (!json.tasksRunnerOptions.default) {
|
|
68
|
+
json.tasksRunnerOptions.default = {
|
|
69
|
+
runner: '@nx-aws-plugin/nx-aws-cache',
|
|
70
|
+
options: {
|
|
71
|
+
runtimeCacheInputs: ['node --version']
|
|
72
|
+
}
|
|
73
|
+
};
|
|
74
|
+
}
|
|
75
|
+
|
|
76
|
+
// Update only the AWS credentials
|
|
77
|
+
json.tasksRunnerOptions.default.options = {
|
|
78
|
+
...json.tasksRunnerOptions.default.options,
|
|
79
|
+
awsAccessKeyId,
|
|
80
|
+
awsSecretAccessKey,
|
|
81
|
+
awsRegion,
|
|
82
|
+
awsBucket
|
|
83
|
+
};
|
|
84
|
+
|
|
85
|
+
console.log('Updated nx.json with AWS configuration');
|
|
86
|
+
return json;
|
|
87
|
+
});
|
|
88
|
+
}
|
|
89
|
+
} else {
|
|
90
|
+
console.log('Skipped AWS configuration for nx.json');
|
|
91
|
+
}
|
|
92
|
+
} catch (error) {
|
|
93
|
+
console.error('Error setting up Nx configuration:', error);
|
|
94
|
+
}
|
|
95
|
+
}
|
|
@@ -1,52 +1,14 @@
|
|
|
1
1
|
import { Tree, updateJson } from '@nx/devkit';
|
|
2
2
|
import * as path from 'path';
|
|
3
|
-
import { convertHttpsToSsh } from '../../../utils';
|
|
4
3
|
|
|
5
4
|
export function updatePackageJson(tree: Tree, projectRoot: string, json: any) {
|
|
6
5
|
const packageJsonPath = path.join(projectRoot, 'package.json');
|
|
7
|
-
|
|
6
|
+
|
|
8
7
|
updateJson(tree, packageJsonPath, (packageJson: any) => {
|
|
9
|
-
Object.entries(json).reduce((acc, [key, value]) => {
|
|
10
|
-
acc[key] = value;
|
|
11
|
-
return acc;
|
|
8
|
+
Object.entries(json).reduce((acc, [key, value]) => {
|
|
9
|
+
acc[key] = value;
|
|
10
|
+
return acc;
|
|
12
11
|
}, packageJson);
|
|
13
12
|
return packageJson;
|
|
14
13
|
});
|
|
15
14
|
}
|
|
16
|
-
|
|
17
|
-
export function updateRepository(tree: Tree, projectRoot: string, repository: string) {
|
|
18
|
-
if (repository.startsWith('http://')) {
|
|
19
|
-
repository = repository.replace('http://', 'https://');
|
|
20
|
-
}
|
|
21
|
-
|
|
22
|
-
// update in package.json
|
|
23
|
-
updatePackageJson(tree, projectRoot, {
|
|
24
|
-
"homepage": `${repository}#readme`,
|
|
25
|
-
"bugs": {
|
|
26
|
-
"url": `${repository}/issues`
|
|
27
|
-
},
|
|
28
|
-
"repository": {
|
|
29
|
-
"type": "git",
|
|
30
|
-
"url": `git+${repository}.git`
|
|
31
|
-
},
|
|
32
|
-
});
|
|
33
|
-
|
|
34
|
-
// update in Jenkinsfile
|
|
35
|
-
const filePath = path.join(projectRoot, 'Jenkinsfile');
|
|
36
|
-
|
|
37
|
-
if (tree.exists(filePath)) {
|
|
38
|
-
const jenkinsFileContent = tree.read(filePath).toString();
|
|
39
|
-
let paramExists = false;
|
|
40
|
-
const updatedContent = jenkinsFileContent.split('\n').map(line => {
|
|
41
|
-
if (line.includes(`string(name: 'REPOSITORY_SSH_URL'`)) {
|
|
42
|
-
paramExists = true;
|
|
43
|
-
return line.replace(/defaultValue: '.*'/, `defaultValue: '${convertHttpsToSsh(repository)}'`);
|
|
44
|
-
}
|
|
45
|
-
return line;
|
|
46
|
-
}).join('\n');
|
|
47
|
-
|
|
48
|
-
if (paramExists) {
|
|
49
|
-
tree.write(filePath, updatedContent);
|
|
50
|
-
}
|
|
51
|
-
}
|
|
52
|
-
}
|
|
@@ -0,0 +1,45 @@
|
|
|
1
|
+
/* eslint-disable no-param-reassign */
|
|
2
|
+
import { Tree } from '@nx/devkit';
|
|
3
|
+
import * as path from 'path';
|
|
4
|
+
import { updatePackageJson } from './packageJsonUpdate';
|
|
5
|
+
import { convertHttpsToSsh } from '../../../utils';
|
|
6
|
+
|
|
7
|
+
export function updateRepository(tree: Tree, projectRoot: string, repository: string) {
|
|
8
|
+
if (repository.startsWith('http://')) {
|
|
9
|
+
repository = repository.replace('http://', 'https://');
|
|
10
|
+
}
|
|
11
|
+
|
|
12
|
+
// update in package.json
|
|
13
|
+
updatePackageJson(tree, projectRoot, {
|
|
14
|
+
homepage: `${repository}#readme`,
|
|
15
|
+
bugs: {
|
|
16
|
+
url: `${repository}/issues`,
|
|
17
|
+
},
|
|
18
|
+
repository: {
|
|
19
|
+
type: 'git',
|
|
20
|
+
url: `git+${repository}.git`,
|
|
21
|
+
},
|
|
22
|
+
});
|
|
23
|
+
|
|
24
|
+
// update in Jenkinsfile
|
|
25
|
+
const filePath = path.join(projectRoot, 'Jenkinsfile');
|
|
26
|
+
|
|
27
|
+
if (tree.exists(filePath)) {
|
|
28
|
+
const jenkinsFileContent = tree.read(filePath).toString();
|
|
29
|
+
let paramExists = false;
|
|
30
|
+
const updatedContent = jenkinsFileContent
|
|
31
|
+
.split('\n')
|
|
32
|
+
.map((line) => {
|
|
33
|
+
if (line.includes(`string(name: 'REPOSITORY_SSH_URL'`)) {
|
|
34
|
+
paramExists = true;
|
|
35
|
+
return line.replace(/defaultValue: '.*'/, `defaultValue: '${convertHttpsToSsh(repository)}'`);
|
|
36
|
+
}
|
|
37
|
+
return line;
|
|
38
|
+
})
|
|
39
|
+
.join('\n');
|
|
40
|
+
|
|
41
|
+
if (paramExists) {
|
|
42
|
+
tree.write(filePath, updatedContent);
|
|
43
|
+
}
|
|
44
|
+
}
|
|
45
|
+
}
|