@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,28 @@
|
|
|
1
|
+
{
|
|
2
|
+
"output": "./e2e/output",
|
|
3
|
+
"helpers": {
|
|
4
|
+
"Puppeteer": {
|
|
5
|
+
"show": true,
|
|
6
|
+
"url": "http://localhost:3000"
|
|
7
|
+
}
|
|
8
|
+
},
|
|
9
|
+
"include": {
|
|
10
|
+
"I": "./e2e/steps_file.js",
|
|
11
|
+
"loginPage": "./e2e/pages/Login.js",
|
|
12
|
+
"dashboardPage": "./e2e/pages/Dashboard.js",
|
|
13
|
+
"workspaceFormPage": "./e2e/pages/WorkspaceForm.js"
|
|
14
|
+
},
|
|
15
|
+
"mocha": {},
|
|
16
|
+
"bootstrap": false,
|
|
17
|
+
"teardown": null,
|
|
18
|
+
"hooks": [],
|
|
19
|
+
"gherkin": {},
|
|
20
|
+
"plugins": {
|
|
21
|
+
"screenshotOnFail": {
|
|
22
|
+
"enabled": true
|
|
23
|
+
}
|
|
24
|
+
},
|
|
25
|
+
"tests": "./e2e/**/*_test.js",
|
|
26
|
+
"timeout": 10000,
|
|
27
|
+
"name": "frontend-server"
|
|
28
|
+
}
|
|
Binary file
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
const base = require('../../jest.config.base');
|
|
2
|
+
const packageJson = require('./package');
|
|
3
|
+
const merge = require('merge')
|
|
4
|
+
const baseConfig = require('../../jest.config.base');
|
|
5
|
+
const mongodbConfig = require('../../jest.config.mongodb');
|
|
6
|
+
|
|
7
|
+
const mergeData = merge.recursive(
|
|
8
|
+
baseConfig,
|
|
9
|
+
{
|
|
10
|
+
"transform": {
|
|
11
|
+
"\\.(js|jsx)?$": "../../transform.js",
|
|
12
|
+
},
|
|
13
|
+
moduleNameMapper: {
|
|
14
|
+
'^__mocks__/(.*)$': '<rootDir>/../../__mocks__/$1',
|
|
15
|
+
// we'll use commonjs version of lodash for tests 👌
|
|
16
|
+
// because we don't need to use any kind of tree shaking right?!
|
|
17
|
+
'^lodash-es$': '<rootDir>/../../node_modules/lodash/index.js',
|
|
18
|
+
'@adminide-stack\/core': '<rootDir>/../core/src/index.ts',
|
|
19
|
+
},
|
|
20
|
+
roots: [
|
|
21
|
+
// "src",
|
|
22
|
+
"loader"
|
|
23
|
+
],
|
|
24
|
+
},
|
|
25
|
+
mongodbConfig,
|
|
26
|
+
{
|
|
27
|
+
globals: {
|
|
28
|
+
|
|
29
|
+
}
|
|
30
|
+
}
|
|
31
|
+
);
|
|
32
|
+
|
|
33
|
+
module.exports = mergeData;
|
|
@@ -0,0 +1,102 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "sample-stack-frontend-server",
|
|
3
|
+
"version": "5.0.5-alpha.9",
|
|
4
|
+
"private": true,
|
|
5
|
+
"description": "Sample Client server",
|
|
6
|
+
"homepage": "https://github.com/cdmbase/fullstack-pro#readme",
|
|
7
|
+
"bugs": {
|
|
8
|
+
"url": "https://github.com/cdmbase/fullstack-pro/issues"
|
|
9
|
+
},
|
|
10
|
+
"repository": {
|
|
11
|
+
"type": "git",
|
|
12
|
+
"url": "git+https://github.com/cdmbase/fullstack-pro.git"
|
|
13
|
+
},
|
|
14
|
+
"license": "MIT",
|
|
15
|
+
"author": "CDMBase LLC",
|
|
16
|
+
"type": "module",
|
|
17
|
+
"main": "index.js",
|
|
18
|
+
"scripts": {
|
|
19
|
+
"prebuild": "yarn build:clean && yarn genconfig",
|
|
20
|
+
"build": "cross-env SSR=true NODE_OPTIONS='--max_old_space_size=4096' NODE_ENV=production remix vite:build",
|
|
21
|
+
"build:SSR": "cross-env SSR=true NODE_ENV=production remix vite:build",
|
|
22
|
+
"build:clean": "rimraf dist build node_modules/.vite",
|
|
23
|
+
"build:debug": "cross-env DEBUGGING=true NODE_ENV=production remix vite:build",
|
|
24
|
+
"build:debug:verbose": "yarn build:debug -- -v",
|
|
25
|
+
"build:dev": "cross-env ENV_FILE=../../config/development/dev.env yarn build",
|
|
26
|
+
"build:devSSR": "cross-env SSR=true NODE_ENV=development ENV_FILE=../../config/development/dev.env yarn build",
|
|
27
|
+
"build:stats": "cross-env BUNDLE_STATS=true yarn build:debug",
|
|
28
|
+
"copycommon": "cp -r ../../packages/common .",
|
|
29
|
+
"dev:vite:ssr": "cross-env SSR=true NODE_ENV=development ENV_FILE=../../config/development/dev.env node ./server.js",
|
|
30
|
+
"docker:build": "yarn copycommon && yarn build && docker build . -t $npm_package_name:$npm_package_version",
|
|
31
|
+
"docker:build:debug": "yarn build:debug && docker build . -t $npm_package_name:$npm_package_version",
|
|
32
|
+
"docker:run": "docker run --env-file ../../config/staging/docker-staging.env -p 3000:3000 -it $npm_package_name:$npm_package_version",
|
|
33
|
+
"genconfig": "node ./tools/mergeConfig.js",
|
|
34
|
+
"jest": "./node_modules/.bin/jest",
|
|
35
|
+
"preview": "cross-env SSR=true NODE_ENV=development ENV_FILE=../../config/development/dev.env node ./server.js",
|
|
36
|
+
"routes": "npx @remix-run/dev routes --json",
|
|
37
|
+
"prestart": "yarn genconfig",
|
|
38
|
+
"start": "cross-env NODE_ENV=production node ./server.js",
|
|
39
|
+
"start:SSR": "yarn build:SSR && yarn start",
|
|
40
|
+
"start:dev": "cross-env NODE_ENV=production ENV_FILE=../../config/development/dev.env node ./server.js",
|
|
41
|
+
"start:devSSR": "yarn build:devSSR && yarn start:dev",
|
|
42
|
+
"start:staging": "cross-env NODE_ENV=production ENV_FILE=../../config/staging/staging.env node ./server.js",
|
|
43
|
+
"start:test": "cross-env NODE_ENV=test ENV_FILE=../../config/test/test.env node ./server.js",
|
|
44
|
+
"start:vite:ssr": "cross-env SSR=true NODE_ENV=development ENV_FILE=../../config/development/dev.env yarn build && yarn preview",
|
|
45
|
+
"test": "jest",
|
|
46
|
+
"test:debug": "npm test -- --runInBand",
|
|
47
|
+
"test:watch": "npm test -- --watch",
|
|
48
|
+
"prewatch": "yarn genconfig",
|
|
49
|
+
"watch": "cross-env NODE_ENV=development ENV_FILE=../../config/development/dev.env node ./server.js",
|
|
50
|
+
"watch:debug": "cross-env NODE_ENV=development ENV_FILE=../../config/development/dev.env node ./server.js",
|
|
51
|
+
"watch:ssr": "cross-env SSR=true yarn watch",
|
|
52
|
+
"watch:staging": "cross-env ENV_FILE=../../config/staging/staging.env node ./server.js",
|
|
53
|
+
"watch:test": "cross-env ENV_FILE=../../config/test/test.env node ./server.js"
|
|
54
|
+
},
|
|
55
|
+
"resolutions": {
|
|
56
|
+
"common": "link:./common"
|
|
57
|
+
},
|
|
58
|
+
"dependencies": {
|
|
59
|
+
"@common-stack/frontend-stack-react": "7.0.4-alpha.0",
|
|
60
|
+
"@react-icons/all-files": "^4.1.0",
|
|
61
|
+
"classnames": "^2.2.6",
|
|
62
|
+
"compression": "^1.7.4",
|
|
63
|
+
"glob-all": "^3.3.1",
|
|
64
|
+
"immutability-helper": "^3.0.1",
|
|
65
|
+
"is-plain-obj": "^3.0.0",
|
|
66
|
+
"isomorphic-fetch": "^2.2.1",
|
|
67
|
+
"lodash": "^4.17.15",
|
|
68
|
+
"lodash-es": "^4.17.21",
|
|
69
|
+
"moment": "2.29.1",
|
|
70
|
+
"ramda": "^0.30.1",
|
|
71
|
+
"react-ga4": "^2.1.0",
|
|
72
|
+
"react-helmet": "^6.1.0",
|
|
73
|
+
"react-helmet-async": "^1.3.0",
|
|
74
|
+
"react-icons": "~4.3.1",
|
|
75
|
+
"react-icons-converter": "^1.1.4",
|
|
76
|
+
"react-transition-group": "^4.3.0",
|
|
77
|
+
"react-use": "^17.2.4",
|
|
78
|
+
"remix-utils": "^7.6.0",
|
|
79
|
+
"reselect": "^4.0.0",
|
|
80
|
+
"vite-env-only": "^2.2.1"
|
|
81
|
+
},
|
|
82
|
+
"devDependencies": {
|
|
83
|
+
"@cdmbase/vite-plugin-i18next-loader": "^2.0.12",
|
|
84
|
+
"@common-stack/rollup-vite-utils": "7.0.4-alpha.0",
|
|
85
|
+
"@remix-run/dev": "~2.10.1",
|
|
86
|
+
"@remix-run/serve": "~2.10.1",
|
|
87
|
+
"cross-env": "^7.0.3",
|
|
88
|
+
"dotenv-esm": "^16.0.3-4",
|
|
89
|
+
"pm2": "^5.2.2",
|
|
90
|
+
"raf": "3.4.1",
|
|
91
|
+
"rimraf": "^3.0.2",
|
|
92
|
+
"tsx": "^4.7.0",
|
|
93
|
+
"typescript": "^5.4.5",
|
|
94
|
+
"uuid": "^10.0.0",
|
|
95
|
+
"vite": "^5.1.0",
|
|
96
|
+
"vite-plugin-cjs-interop": "^2.1.1",
|
|
97
|
+
"vite-tsconfig-paths": "^4.2.1"
|
|
98
|
+
},
|
|
99
|
+
"peerDependencies": {
|
|
100
|
+
"body-parser": "*"
|
|
101
|
+
}
|
|
102
|
+
}
|
|
Binary file
|
|
@@ -0,0 +1,78 @@
|
|
|
1
|
+
import express from 'express';
|
|
2
|
+
import compression from 'compression';
|
|
3
|
+
import { createRequestHandler } from '@remix-run/express';
|
|
4
|
+
import { installGlobals } from '@remix-run/node';
|
|
5
|
+
import './env.js';
|
|
6
|
+
import {
|
|
7
|
+
performCopyOperations,
|
|
8
|
+
} from '@common-stack/rollup-vite-utils/lib/preStartup/configLoader/configLoader.js';
|
|
9
|
+
import config from './app/cde-webconfig.json' assert { type: 'json' };
|
|
10
|
+
|
|
11
|
+
installGlobals();
|
|
12
|
+
|
|
13
|
+
Object.keys(config.buildConfig).forEach((key) => {
|
|
14
|
+
global[key] = config.buildConfig[key];
|
|
15
|
+
});
|
|
16
|
+
|
|
17
|
+
const startServer = async () => {
|
|
18
|
+
await performCopyOperations(config);
|
|
19
|
+
|
|
20
|
+
const { corsMiddleware } = await import(`./${config.commonPaths.appPath}/${config.commonPaths.frontendStackPath}/backend/middlewares/cors.js`);
|
|
21
|
+
const { containerMiddleware } = await import(`./${config.commonPaths.appPath}/${config.commonPaths.frontendStackPath}/backend/middlewares/container.js`);
|
|
22
|
+
const { loadContext } = await import(`./${config.commonPaths.appPath}/${config.commonPaths.frontendStackPath}/load-context.server.js`);
|
|
23
|
+
|
|
24
|
+
const viteDevServer =
|
|
25
|
+
process.env.NODE_ENV === 'production'
|
|
26
|
+
? undefined
|
|
27
|
+
: await import('vite').then((vite) => {
|
|
28
|
+
return vite.createServer({
|
|
29
|
+
server: { middlewareMode: true },
|
|
30
|
+
});
|
|
31
|
+
});
|
|
32
|
+
|
|
33
|
+
const remixHandler = createRequestHandler({
|
|
34
|
+
getLoadContext: loadContext,
|
|
35
|
+
build: viteDevServer
|
|
36
|
+
? () => viteDevServer.ssrLoadModule('virtual:remix/server-build')
|
|
37
|
+
: await import('./build/server/index.js'),
|
|
38
|
+
});
|
|
39
|
+
|
|
40
|
+
const app = express();
|
|
41
|
+
|
|
42
|
+
app.use(compression());
|
|
43
|
+
app.disable('x-powered-by');
|
|
44
|
+
|
|
45
|
+
if (viteDevServer) {
|
|
46
|
+
app.use(viteDevServer.middlewares);
|
|
47
|
+
} else {
|
|
48
|
+
app.use('/assets', express.static('build/client/assets', { immutable: true, maxAge: '1y' }));
|
|
49
|
+
}
|
|
50
|
+
|
|
51
|
+
app.use(express.static('build/client', { maxAge: '1h' }));
|
|
52
|
+
|
|
53
|
+
app.use(corsMiddleware);
|
|
54
|
+
app.options('*', corsMiddleware);
|
|
55
|
+
|
|
56
|
+
app.use(async (req, res, next) => {
|
|
57
|
+
let isAssetRequest = (url) =>
|
|
58
|
+
/\.[jt]sx?$/.test(url) ||
|
|
59
|
+
/@id\/__x00__virtual:/.test(url) ||
|
|
60
|
+
/@vite\/client/.test(url) ||
|
|
61
|
+
/node_modules\/vite\/dist\/client\/env/.test(url);
|
|
62
|
+
|
|
63
|
+
if (isAssetRequest(req.url)) {
|
|
64
|
+
next();
|
|
65
|
+
} else {
|
|
66
|
+
return await containerMiddleware(req, res, async () => {
|
|
67
|
+
return remixHandler(req, res, next);
|
|
68
|
+
});
|
|
69
|
+
}
|
|
70
|
+
});
|
|
71
|
+
|
|
72
|
+
const port = process.env.PORT || 3000;
|
|
73
|
+
app.listen(port, () => console.log(`Express server listening at http://localhost:${port}`));
|
|
74
|
+
};
|
|
75
|
+
|
|
76
|
+
startServer().catch((err) => {
|
|
77
|
+
console.error('Failed to start server:', err);
|
|
78
|
+
});
|
|
@@ -0,0 +1,88 @@
|
|
|
1
|
+
/* eslint-disable @typescript-eslint/no-unsafe-call */
|
|
2
|
+
/* eslint-disable no-underscore-dangle */
|
|
3
|
+
/* eslint-disable no-restricted-syntax */
|
|
4
|
+
/* eslint-disable @typescript-eslint/no-unsafe-member-access */
|
|
5
|
+
/* eslint-disable @typescript-eslint/triple-slash-reference */
|
|
6
|
+
/* eslint-disable @typescript-eslint/no-unsafe-assignment */
|
|
7
|
+
/// <reference path='../../../../typings/index.d.ts' />
|
|
8
|
+
import { logger } from '@cdm-logger/client';
|
|
9
|
+
import { lowerCase } from 'lodash-es';
|
|
10
|
+
/**
|
|
11
|
+
* This file opens up in public site, so make sure it is
|
|
12
|
+
* not dependent on any other file that compromises the security.
|
|
13
|
+
* hello
|
|
14
|
+
*/
|
|
15
|
+
const publicEnv = [
|
|
16
|
+
'NODE_ENV',
|
|
17
|
+
'APP_URL',
|
|
18
|
+
'GA_ID',
|
|
19
|
+
'GRAPHQL_URL',
|
|
20
|
+
'LOG_LEVEL',
|
|
21
|
+
'AUTH0_CLIENT_ID',
|
|
22
|
+
'AUTH0_DOMAIN',
|
|
23
|
+
'AUTH0_CUSTOM_DOMAIN',
|
|
24
|
+
'CLIENT_URL',
|
|
25
|
+
'APP_NAME',
|
|
26
|
+
'AUTH0_API_AUDIENCE',
|
|
27
|
+
'AUTH0_REALM',
|
|
28
|
+
'PAYPAL_ENVIRONMENT',
|
|
29
|
+
'STRIPE_PUBLISHABLE_KEY',
|
|
30
|
+
'AUTH0_TOKEN_GRANTED_TIME',
|
|
31
|
+
'AUTH0_CUSTOM_CLAIMS_NAMESPACE',
|
|
32
|
+
'INITIAL_ACCOUNT_PAGE',
|
|
33
|
+
'SOCIAL_LOGIN_PROVIDERS',
|
|
34
|
+
'CALLBACK_REDIRECT_URL',
|
|
35
|
+
'POPUP_REDIRECT_URL',
|
|
36
|
+
'LAYOUT_SETTINGS',
|
|
37
|
+
'DEFAULT_EXTENDED_RENEWAL_TIME',
|
|
38
|
+
'DISABLE_EMAIL_VERIFICATION',
|
|
39
|
+
'WEB_APP_URL',
|
|
40
|
+
'LOGOUT_REDIRECT_PATH',
|
|
41
|
+
'LOGIN_REDIRECT_PATH',
|
|
42
|
+
'REDIRECT_ON_LOGIN_VISIT',
|
|
43
|
+
'ENABLE_COOKIE_BASED_AUTH',
|
|
44
|
+
'APP_DOMAIN',
|
|
45
|
+
'AUTH_ID_TOKEN_COOKIE_MAX_AGE'
|
|
46
|
+
];
|
|
47
|
+
|
|
48
|
+
const isBrowser = typeof window !== 'undefined';
|
|
49
|
+
|
|
50
|
+
const base = (isBrowser ? window.__ENV__ || (typeof __ENV__ !== 'undefined' && __ENV__) : process.env) || {};
|
|
51
|
+
const env: any = {};
|
|
52
|
+
for (const v of publicEnv) {
|
|
53
|
+
env[v] = base[v];
|
|
54
|
+
}
|
|
55
|
+
|
|
56
|
+
// add subscription url for temporary
|
|
57
|
+
export default env;
|
|
58
|
+
|
|
59
|
+
if (isBrowser) {
|
|
60
|
+
// process[lowerCase('env')] = env; // to avoid webpack to replace `process` with actual value.
|
|
61
|
+
// process.APP_ENV = env;
|
|
62
|
+
const process: any = {};
|
|
63
|
+
process[lowerCase('env')] = env; // to avoid webpack to replace `process` with actual value.
|
|
64
|
+
process.APP_ENV = env;
|
|
65
|
+
window.process = process;
|
|
66
|
+
// @ts-ignore
|
|
67
|
+
window.__CLIENT__ = true;
|
|
68
|
+
// @ts-ignore
|
|
69
|
+
window.__SERVER__ = false;
|
|
70
|
+
} else {
|
|
71
|
+
// @ts-ignore
|
|
72
|
+
global.__CLIENT__ = false;
|
|
73
|
+
// @ts-ignore
|
|
74
|
+
global.__SERVER__ = true;
|
|
75
|
+
// @ts-ignore
|
|
76
|
+
__CLIENT__ = false;
|
|
77
|
+
// @ts-ignore
|
|
78
|
+
__SERVER__ = true;
|
|
79
|
+
}
|
|
80
|
+
try {
|
|
81
|
+
// global.process = process;
|
|
82
|
+
logger.info('Process Update Success!');
|
|
83
|
+
} catch (e) {
|
|
84
|
+
logger.warn(e);
|
|
85
|
+
logger.info(
|
|
86
|
+
'Encountered above issue while running "global.process = process", will automatically try again in next render',
|
|
87
|
+
);
|
|
88
|
+
}
|
|
@@ -0,0 +1,192 @@
|
|
|
1
|
+
import fs from 'fs';
|
|
2
|
+
import path from 'path';
|
|
3
|
+
import glob from'glob';
|
|
4
|
+
|
|
5
|
+
// Regex to find `use<QueryName>Query` calls, capturing query name and arguments
|
|
6
|
+
const queryPattern = /use([A-Za-z0-9]+Query)\(([^)]*)\)/g;
|
|
7
|
+
const fileExtensions = ['.js', '.ts', '.jsx', '.tsx'];
|
|
8
|
+
const excludeFiles = ['react-hooks', 'generated'];
|
|
9
|
+
const basePath = process.cwd();
|
|
10
|
+
|
|
11
|
+
const findPackageJsonFiles = () => {
|
|
12
|
+
const monorepoRoot = path.join(basePath, '..', '..');
|
|
13
|
+
return new Promise((resolve, reject) => {
|
|
14
|
+
glob(
|
|
15
|
+
`${monorepoRoot}/+(servers|portable-devices|packages|packages-modules)/**/package.json`,
|
|
16
|
+
{ nodir: true, ignore: '**/node_modules/**' },
|
|
17
|
+
(err, files) => {
|
|
18
|
+
if (err) reject(`Unable to scan directory: ${err}`);
|
|
19
|
+
resolve(files);
|
|
20
|
+
},
|
|
21
|
+
);
|
|
22
|
+
});
|
|
23
|
+
};
|
|
24
|
+
|
|
25
|
+
// Function to transform componentPath from `lib` to `src` path and handle package names
|
|
26
|
+
const transformComponentPath = (componentPath, packageName) => {
|
|
27
|
+
return componentPath
|
|
28
|
+
.replace('/lib/', '/src/')
|
|
29
|
+
.replace(packageName + '/', '')
|
|
30
|
+
.replace('.js', '');
|
|
31
|
+
};
|
|
32
|
+
|
|
33
|
+
// Normalize file paths for consistent comparison (remove extensions and resolve absolute paths)
|
|
34
|
+
const normalizePath = (filePath) => {
|
|
35
|
+
const resolvedPath = path.resolve(filePath).replace(/\.[jt]sx?$/, ''); // Remove .js, .ts, .jsx, .tsx extensions
|
|
36
|
+
return resolvedPath;
|
|
37
|
+
};
|
|
38
|
+
|
|
39
|
+
// Function to extract component paths and queries from routes.json
|
|
40
|
+
async function extractComponentPathsAndQueries(routesFile, packageName) {
|
|
41
|
+
let componentQueries = {};
|
|
42
|
+
|
|
43
|
+
try {
|
|
44
|
+
const content = await fs.promises.readFile(routesFile, 'utf-8');
|
|
45
|
+
const routes = JSON.parse(content);
|
|
46
|
+
|
|
47
|
+
// Traverse routes to extract componentPath and queries
|
|
48
|
+
routes.forEach(routeObj => {
|
|
49
|
+
Object.keys(routeObj).forEach(routeKey => {
|
|
50
|
+
const route = routeObj[routeKey];
|
|
51
|
+
if (route.hasComponent && route.componentPath) {
|
|
52
|
+
const transformedPath = normalizePath(transformComponentPath(route.componentPath, packageName));
|
|
53
|
+
const queries = Object.keys(route.queries || {});
|
|
54
|
+
if (queries.length > 0) {
|
|
55
|
+
componentQueries[transformedPath] = queries;
|
|
56
|
+
}
|
|
57
|
+
}
|
|
58
|
+
});
|
|
59
|
+
});
|
|
60
|
+
|
|
61
|
+
console.log('Extracted components and queries from routes.json:', componentQueries);
|
|
62
|
+
} catch (err) {
|
|
63
|
+
console.error(`Error reading routes.json file: ${routesFile}`, err);
|
|
64
|
+
}
|
|
65
|
+
|
|
66
|
+
return componentQueries;
|
|
67
|
+
}
|
|
68
|
+
|
|
69
|
+
// Function to recursively search for useQuery in files and validate if the file is a data component
|
|
70
|
+
async function checkFiles(dir, componentQueries) {
|
|
71
|
+
const files = await fs.promises.readdir(dir, { withFileTypes: true });
|
|
72
|
+
|
|
73
|
+
for (const file of files) {
|
|
74
|
+
const fullPath = path.join(dir, file.name);
|
|
75
|
+
|
|
76
|
+
if (file.isDirectory()) {
|
|
77
|
+
// Recurse into subdirectories
|
|
78
|
+
await checkFiles(fullPath, componentQueries);
|
|
79
|
+
} else if (fileExtensions.includes(path.extname(file.name)) && !excludeFiles.includes(path.parse(file.name).name)) {
|
|
80
|
+
await checkForInvalidQueryUsage(fullPath, componentQueries);
|
|
81
|
+
}
|
|
82
|
+
}
|
|
83
|
+
}
|
|
84
|
+
|
|
85
|
+
// Function to extract query details from a match
|
|
86
|
+
const extractQueryDetails = (queryMatch) => {
|
|
87
|
+
const [fullMatch, queryName, queryArgs] = queryMatch;
|
|
88
|
+
return {
|
|
89
|
+
queryName,
|
|
90
|
+
fullMatch,
|
|
91
|
+
queryArgs: queryArgs.trim(),
|
|
92
|
+
isLazyQuery: queryName.endsWith('LazyQuery'),
|
|
93
|
+
hasCacheOnlyFetchPolicy: queryArgs.includes("fetchPolicy: 'cache-only'"),
|
|
94
|
+
};
|
|
95
|
+
};
|
|
96
|
+
|
|
97
|
+
// Function to check for query usage in a file and validate if it is allowed
|
|
98
|
+
async function checkForInvalidQueryUsage(filePath, componentQueries) {
|
|
99
|
+
try {
|
|
100
|
+
const content = await fs.promises.readFile(filePath, 'utf-8');
|
|
101
|
+
let match;
|
|
102
|
+
const usedQueries = [];
|
|
103
|
+
const queriesMissingCacheOnly = [];
|
|
104
|
+
const queriesWithNoArguments = [];
|
|
105
|
+
const queryNames = [];
|
|
106
|
+
|
|
107
|
+
while ((match = queryPattern.exec(content)) !== null) {
|
|
108
|
+
const queryDetails = extractQueryDetails(match);
|
|
109
|
+
usedQueries.push(queryDetails);
|
|
110
|
+
queryNames.push(queryDetails.queryName);
|
|
111
|
+
|
|
112
|
+
// Ignore LazyQuery for fetchPolicy check
|
|
113
|
+
if (!queryDetails.isLazyQuery && !queryDetails.hasCacheOnlyFetchPolicy) {
|
|
114
|
+
queriesMissingCacheOnly.push(queryDetails.queryName);
|
|
115
|
+
}
|
|
116
|
+
|
|
117
|
+
// Check for queries without arguments
|
|
118
|
+
if (queryDetails.queryArgs === '') {
|
|
119
|
+
queriesWithNoArguments.push(queryDetails.queryName);
|
|
120
|
+
}
|
|
121
|
+
}
|
|
122
|
+
|
|
123
|
+
if (usedQueries.length > 0) {
|
|
124
|
+
const normalizedFilePath = normalizePath(filePath);
|
|
125
|
+
const isDataComponent = componentQueries[normalizedFilePath];
|
|
126
|
+
|
|
127
|
+
const warnings = [];
|
|
128
|
+
|
|
129
|
+
// Warning if a data component has more than 3 queries
|
|
130
|
+
if (isDataComponent && usedQueries.length > 3) {
|
|
131
|
+
warnings.push(`Warning: Data component "${filePath}" has more than 3 queries. Consider splitting into multiple data components with a layout component as the parent.`);
|
|
132
|
+
}
|
|
133
|
+
|
|
134
|
+
// Consolidate missing cache-only fetchPolicy warnings
|
|
135
|
+
if (queriesMissingCacheOnly.length > 0) {
|
|
136
|
+
warnings.push(`Warning: The following queries are missing fetchPolicy: "cache-only":\n - ${queriesMissingCacheOnly.join('\n - ')}`);
|
|
137
|
+
}
|
|
138
|
+
|
|
139
|
+
// Warn for queries without arguments (which could fetch all data)
|
|
140
|
+
if (queriesWithNoArguments.length > 0) {
|
|
141
|
+
warnings.push(`Warning: The following queries have no arguments and could fetch all data. Consider narrowing the search and using pagination:\n - ${queriesWithNoArguments.join('\n - ')}`);
|
|
142
|
+
}
|
|
143
|
+
|
|
144
|
+
// Warning for non-data components with queries
|
|
145
|
+
if (!isDataComponent) {
|
|
146
|
+
warnings.push(`Warning: File "${filePath}" is a non-data component (not listed in routes.json) but is using queries.`);
|
|
147
|
+
}
|
|
148
|
+
|
|
149
|
+
// Display queries first, then display all warnings together
|
|
150
|
+
if (warnings.length > 0) {
|
|
151
|
+
console.log('----------------------------------------------------');
|
|
152
|
+
console.log(`File: ${filePath}`);
|
|
153
|
+
console.log('Queries:');
|
|
154
|
+
usedQueries.forEach(query => console.log(` - ${query.fullMatch}`)); // Display full query details
|
|
155
|
+
console.log('\nWarnings:');
|
|
156
|
+
warnings.forEach(warning => console.log(` - ${warning}`));
|
|
157
|
+
console.log('----------------------------------------------------\n');
|
|
158
|
+
}
|
|
159
|
+
}
|
|
160
|
+
} catch (err) {
|
|
161
|
+
console.error(`Error reading file: ${filePath}`, err);
|
|
162
|
+
}
|
|
163
|
+
}
|
|
164
|
+
|
|
165
|
+
// Check in a single package
|
|
166
|
+
async function checkPackage(packageDir, packageName) {
|
|
167
|
+
const routesFile = path.resolve(path.join(packageDir, './lib/routes.json'));
|
|
168
|
+
const sourceDir = path.resolve(path.join(packageDir, './src'));
|
|
169
|
+
let componentQueries = {};
|
|
170
|
+
|
|
171
|
+
if (fs.existsSync(routesFile)) {
|
|
172
|
+
console.log(`Extracting component paths and queries from ${routesFile}...`);
|
|
173
|
+
componentQueries = await extractComponentPathsAndQueries(routesFile, packageName);
|
|
174
|
+
}
|
|
175
|
+
|
|
176
|
+
console.log(`Searching for query usage in files under ${sourceDir}...`);
|
|
177
|
+
await checkFiles(sourceDir, componentQueries);
|
|
178
|
+
}
|
|
179
|
+
|
|
180
|
+
// Run the script
|
|
181
|
+
(async () => {
|
|
182
|
+
console.log('Checking useQuery usage ...');
|
|
183
|
+
|
|
184
|
+
const packageJsonFiles = await findPackageJsonFiles();
|
|
185
|
+
for (const file of packageJsonFiles) {
|
|
186
|
+
const packageJson = JSON.parse(fs.readFileSync(file, 'utf8'));
|
|
187
|
+
const packageDir = path.dirname(file);
|
|
188
|
+
await checkPackage(packageDir, packageJson.name);
|
|
189
|
+
}
|
|
190
|
+
|
|
191
|
+
console.log('Completed checking useQuery usage.');
|
|
192
|
+
})();
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
import fs from 'fs';
|
|
2
|
+
import path from 'path';
|
|
3
|
+
import { setupConfig } from '@common-stack/rollup-vite-utils/lib/utils/setupConfig.js';
|
|
4
|
+
import { updateFromConfig } from '@common-stack/rollup-vite-utils/lib/rollup/rollupPluginUpdateFromConfig.js';
|
|
5
|
+
const projectConfigPath = path.resolve('./config.json');
|
|
6
|
+
const mergeConfigs = setupConfig(projectConfigPath);
|
|
7
|
+
|
|
8
|
+
// Ensure the 'app' directory exists
|
|
9
|
+
const appDir = path.resolve('app');
|
|
10
|
+
if (!fs.existsSync(appDir)) {
|
|
11
|
+
fs.mkdirSync(appDir);
|
|
12
|
+
console.log(`Created directory: ${appDir}`);
|
|
13
|
+
}
|
|
14
|
+
|
|
15
|
+
// Write the merged configuration to 'app/finalConfig.json'
|
|
16
|
+
const finalConfigPath = path.resolve(appDir, 'cde-webconfig.json');
|
|
17
|
+
fs.writeFileSync(finalConfigPath, JSON.stringify(mergeConfigs, null, 2));
|
|
18
|
+
console.log(`Merged configuration written to ${finalConfigPath}`);
|
|
19
|
+
|
|
20
|
+
// Add 'app' to .gitignore if not already present
|
|
21
|
+
const gitignorePath = path.resolve('.gitignore');
|
|
22
|
+
let gitignoreContent = '';
|
|
23
|
+
if (fs.existsSync(gitignorePath)) {
|
|
24
|
+
gitignoreContent = fs.readFileSync(gitignorePath, 'utf8');
|
|
25
|
+
} else {
|
|
26
|
+
fs.writeFileSync(gitignorePath, '');
|
|
27
|
+
console.log('Created .gitignore file');
|
|
28
|
+
}
|
|
29
|
+
|
|
30
|
+
if (!gitignoreContent.includes('app')) {
|
|
31
|
+
fs.appendFileSync(gitignorePath, '\napp\n');
|
|
32
|
+
console.log('Added "app" to .gitignore');
|
|
33
|
+
}
|
|
34
|
+
|
|
35
|
+
updateFromConfig(finalConfigPath);
|
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
{
|
|
2
|
+
"compilerOptions": {
|
|
3
|
+
"target": "ES2020",
|
|
4
|
+
"module": "ES2022",
|
|
5
|
+
"moduleResolution": "NodeNext",
|
|
6
|
+
"esModuleInterop": true,
|
|
7
|
+
"jsx": "react",
|
|
8
|
+
"skipLibCheck": true,
|
|
9
|
+
"declaration": true,
|
|
10
|
+
"experimentalDecorators": true,
|
|
11
|
+
"emitDecoratorMetadata": true,
|
|
12
|
+
"preserveConstEnums": true,
|
|
13
|
+
"sourceMap": true,
|
|
14
|
+
"noImplicitAny": false,
|
|
15
|
+
"allowSyntheticDefaultImports": true,
|
|
16
|
+
"pretty": true,
|
|
17
|
+
"removeComments": false,
|
|
18
|
+
"lib": [
|
|
19
|
+
"ES2020",
|
|
20
|
+
"dom",
|
|
21
|
+
"esnext.asynciterable"
|
|
22
|
+
],
|
|
23
|
+
"typeRoots": [
|
|
24
|
+
"./typings/*.d.ts",
|
|
25
|
+
"node_modules/@types"
|
|
26
|
+
],
|
|
27
|
+
"types": [
|
|
28
|
+
"@types/node",
|
|
29
|
+
"@types/jest"
|
|
30
|
+
]
|
|
31
|
+
},
|
|
32
|
+
"include": [
|
|
33
|
+
"./typings/*.d.ts"
|
|
34
|
+
],
|
|
35
|
+
"exclude": [
|
|
36
|
+
"node_modules"
|
|
37
|
+
]
|
|
38
|
+
}
|