@elliemae/pui-cli 9.0.0-next.6 → 9.0.0-next.61
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/app.tsconfig.json +8 -3
- package/dist/cjs/babel.config.cjs +1 -12
- package/dist/cjs/build/vite.config.js +45 -0
- package/dist/cjs/cli.js +5 -3
- package/dist/cjs/commands/build.js +4 -6
- package/dist/cjs/commands/buildcdn.js +74 -0
- package/dist/cjs/commands/codemod.js +1 -1
- package/dist/cjs/commands/gendoc.js +2 -2
- package/dist/cjs/commands/lint.js +27 -10
- package/dist/cjs/commands/pack.js +3 -4
- package/dist/cjs/commands/start.js +3 -3
- package/dist/cjs/commands/storybook.js +1 -1
- package/dist/cjs/commands/test.js +46 -24
- package/dist/cjs/commands/tscheck.js +11 -4
- package/dist/cjs/commands/utils.js +45 -18
- package/dist/cjs/commands/version.js +1 -1
- package/dist/cjs/commands/vitest.js +6 -12
- package/dist/cjs/index.cjs +0 -14
- package/dist/cjs/index.js +13 -13
- package/dist/cjs/lint-config/commitlint.config.js +26 -0
- package/dist/cjs/lint-config/eslint.config.js +259 -0
- package/dist/cjs/lint-config/lint-staged.config.js +2 -2
- package/dist/cjs/lint-config/prettier.config.js +31 -0
- package/dist/cjs/lint-config/stylelint.config.js +45 -0
- package/dist/cjs/monorepo/delete-merged-tags.js +2 -3
- package/dist/cjs/monorepo/set-registry-version.js +3 -3
- package/dist/cjs/monorepo/set-workspace-version.js +3 -3
- package/dist/cjs/monorepo/utils.cjs +2 -2
- package/dist/cjs/monorepo/utils.js +2 -2
- package/dist/cjs/pui-config.js +5 -6
- package/dist/cjs/release.config.js +46 -0
- package/dist/cjs/server/appRoutes.js +5 -8
- package/dist/cjs/server/cert.js +45 -0
- package/dist/cjs/server/certs/cert.crt +25 -0
- package/dist/cjs/server/certs/cert.csr +18 -0
- package/dist/cjs/server/certs/cert.ext +7 -0
- package/dist/cjs/server/certs/cert.key +30 -0
- package/dist/cjs/server/certs/cert.pfx +0 -0
- package/dist/cjs/server/certs/rootCA.crt +24 -0
- package/dist/cjs/server/certs/rootCA.key +30 -0
- package/dist/cjs/server/certs/rootCA.srl +1 -0
- package/dist/cjs/server/csp.js +45 -33
- package/dist/cjs/server/index.js +14 -4
- package/dist/cjs/server/logger.js +7 -4
- package/dist/cjs/server/middlewares.js +7 -7
- package/dist/cjs/server/utils.js +12 -5
- package/dist/cjs/server/wsServer.js +128 -0
- package/dist/cjs/testing/ExtendedJSDomEnv.cjs +27 -0
- package/dist/cjs/testing/extended/axe-core/getMessageAndPass.js +36 -0
- package/dist/cjs/testing/extended/axe-core/index.js +24 -0
- package/dist/cjs/testing/extended/axe-core/reporter.js +50 -0
- package/dist/cjs/testing/extended/axe-core/shouldIgnoreNodeViolation.js +31 -0
- package/dist/cjs/testing/extended/axe-core/toHaveNoViolations.js +42 -0
- package/dist/cjs/testing/jest.config.cjs +7 -4
- package/dist/cjs/testing/jest.polyfills.cjs +30 -0
- package/dist/cjs/testing/mocks/iframe.js +24 -0
- package/dist/cjs/testing/mocks/svg.js +0 -11
- package/dist/cjs/testing/resolver.cjs +0 -1
- package/dist/cjs/testing/setup-react-env.js +1 -1
- package/dist/cjs/testing/setup-tests.js +30 -12
- package/dist/cjs/testing/vitest.config.js +10 -14
- package/dist/cjs/transpile/.swcrc +2 -1
- package/dist/cjs/transpile/esbuild.js +48 -15
- package/dist/cjs/transpile/react-shim.js +1 -1
- package/dist/cjs/update-notifier.js +3 -3
- package/dist/cjs/utils.cjs +1 -1
- package/dist/cjs/utils.js +7 -6
- package/dist/cjs/webpack/csp-plugin.js +79 -0
- package/dist/cjs/webpack/csp.js +158 -0
- package/dist/cjs/webpack/helpers.js +43 -37
- package/dist/cjs/webpack/interceptor-middleware.js +125 -0
- package/dist/cjs/webpack/webpack.base.babel.js +21 -35
- package/dist/cjs/webpack/webpack.dev.babel.js +35 -13
- package/dist/cjs/webpack/webpack.lib.base.babel.js +22 -15
- package/dist/cjs/webpack/webpack.lib.dev.babel.js +14 -18
- package/dist/cjs/webpack/webpack.lib.prod.babel.js +15 -12
- package/dist/cjs/webpack/webpack.prod.babel.js +17 -10
- package/dist/cjs/webpack/webpack.storybook.js +16 -18
- package/dist/esm/babel.config.cjs +1 -12
- package/dist/esm/build/vite.config.js +25 -0
- package/dist/esm/cli.js +3 -1
- package/dist/esm/commands/build.js +2 -4
- package/dist/esm/commands/buildcdn.js +43 -0
- package/dist/esm/commands/lint.js +26 -8
- package/dist/esm/commands/pack.js +1 -2
- package/dist/esm/commands/start.js +1 -1
- package/dist/esm/commands/test.js +45 -23
- package/dist/esm/commands/tscheck.js +8 -1
- package/dist/esm/commands/utils.js +41 -14
- package/dist/esm/commands/vitest.js +5 -11
- package/dist/esm/index.cjs +0 -14
- package/dist/esm/index.js +10 -10
- package/dist/esm/lint-config/commitlint.config.js +6 -0
- package/dist/esm/lint-config/eslint.config.js +228 -0
- package/dist/esm/lint-config/{prettier.config.cjs → prettier.config.js} +5 -2
- package/dist/esm/lint-config/stylelint.config.js +25 -0
- package/dist/esm/monorepo/delete-merged-tags.js +2 -3
- package/dist/esm/monorepo/set-registry-version.js +1 -1
- package/dist/esm/monorepo/set-workspace-version.js +1 -1
- package/dist/esm/monorepo/utils.cjs +2 -2
- package/dist/esm/monorepo/utils.js +1 -1
- package/dist/esm/pui-config.js +2 -3
- package/dist/esm/release.config.js +26 -0
- package/dist/esm/server/appRoutes.js +3 -6
- package/dist/esm/server/cert.js +14 -0
- package/dist/esm/server/certs/cert.crt +25 -0
- package/dist/esm/server/certs/cert.csr +18 -0
- package/dist/esm/server/certs/cert.ext +7 -0
- package/dist/esm/server/certs/cert.key +30 -0
- package/dist/esm/server/certs/cert.pfx +0 -0
- package/dist/esm/server/certs/rootCA.crt +24 -0
- package/dist/esm/server/certs/rootCA.key +30 -0
- package/dist/esm/server/certs/rootCA.srl +1 -0
- package/dist/esm/server/csp.js +42 -30
- package/dist/esm/server/index.js +14 -4
- package/dist/esm/server/logger.js +5 -2
- package/dist/esm/server/middlewares.js +2 -2
- package/dist/esm/server/utils.js +11 -4
- package/dist/esm/server/wsServer.js +98 -0
- package/dist/esm/testing/ExtendedJSDomEnv.cjs +27 -0
- package/dist/esm/testing/extended/axe-core/getMessageAndPass.js +16 -0
- package/dist/esm/testing/extended/axe-core/index.js +4 -0
- package/dist/esm/testing/extended/axe-core/reporter.js +30 -0
- package/dist/esm/testing/extended/axe-core/shouldIgnoreNodeViolation.js +11 -0
- package/dist/esm/testing/extended/axe-core/toHaveNoViolations.js +22 -0
- package/dist/esm/testing/jest.config.cjs +7 -4
- package/dist/esm/testing/jest.polyfills.cjs +30 -0
- package/dist/esm/testing/mocks/iframe.js +4 -0
- package/dist/esm/testing/mocks/svg.js +0 -1
- package/dist/esm/testing/resolver.cjs +0 -1
- package/dist/esm/testing/setup-tests.js +29 -11
- package/dist/esm/testing/vitest.config.js +9 -12
- package/dist/esm/transpile/.swcrc +2 -1
- package/dist/esm/transpile/esbuild.js +45 -12
- package/dist/esm/update-notifier.js +1 -1
- package/dist/esm/utils.cjs +1 -1
- package/dist/esm/utils.js +5 -4
- package/dist/esm/webpack/csp-plugin.js +49 -0
- package/dist/esm/webpack/csp.js +128 -0
- package/dist/esm/webpack/helpers.js +39 -33
- package/dist/esm/webpack/interceptor-middleware.js +105 -0
- package/dist/esm/webpack/webpack.base.babel.js +13 -27
- package/dist/esm/webpack/webpack.dev.babel.js +28 -6
- package/dist/esm/webpack/webpack.lib.base.babel.js +14 -7
- package/dist/esm/webpack/webpack.lib.dev.babel.js +9 -13
- package/dist/esm/webpack/webpack.lib.prod.babel.js +15 -8
- package/dist/esm/webpack/webpack.prod.babel.js +13 -6
- package/dist/esm/webpack/webpack.storybook.js +13 -15
- package/dist/types/docusaurus.config.d.ts +3 -0
- package/dist/types/docusaurus.config.d.ts.map +1 -0
- package/dist/types/eslint.config.d.ts +3 -0
- package/dist/types/eslint.config.d.ts.map +1 -0
- package/dist/types/{babel.config.d.cts → lib/babel.config.d.cts} +8 -7
- package/dist/types/lib/babel.config.d.cts.map +1 -0
- package/dist/types/lib/build/vite.config.d.ts +3 -0
- package/dist/types/lib/build/vite.config.d.ts.map +1 -0
- package/dist/types/lib/cli.d.ts +3 -0
- package/dist/types/lib/cli.d.ts.map +1 -0
- package/dist/types/{commands → lib/commands}/build.d.ts +3 -2
- package/dist/types/lib/commands/build.d.ts.map +1 -0
- package/dist/types/lib/commands/buildcdn.d.ts +3 -0
- package/dist/types/lib/commands/buildcdn.d.ts.map +1 -0
- package/dist/types/{commands → lib/commands}/codemod.d.ts +3 -2
- package/dist/types/lib/commands/codemod.d.ts.map +1 -0
- package/dist/types/{commands → lib/commands}/gendoc.d.ts +1 -0
- package/dist/types/lib/commands/gendoc.d.ts.map +1 -0
- package/dist/types/{commands → lib/commands}/lint.d.ts +4 -2
- package/dist/types/lib/commands/lint.d.ts.map +1 -0
- package/dist/types/{commands → lib/commands}/pack.d.ts +3 -2
- package/dist/types/lib/commands/pack.d.ts.map +1 -0
- package/dist/types/{commands → lib/commands}/start.d.ts +3 -2
- package/dist/types/lib/commands/start.d.ts.map +1 -0
- package/dist/types/{commands → lib/commands}/storybook.d.ts +3 -2
- package/dist/types/lib/commands/storybook.d.ts.map +1 -0
- package/dist/types/{commands → lib/commands}/test.d.ts +5 -2
- package/dist/types/lib/commands/test.d.ts.map +1 -0
- package/dist/types/{commands → lib/commands}/tscheck.d.ts +3 -2
- package/dist/types/lib/commands/tscheck.d.ts.map +1 -0
- package/dist/types/lib/commands/utils.d.ts +40 -0
- package/dist/types/lib/commands/utils.d.ts.map +1 -0
- package/dist/types/{commands → lib/commands}/version.d.ts +3 -2
- package/dist/types/lib/commands/version.d.ts.map +1 -0
- package/dist/types/{commands → lib/commands}/vitest.d.ts +3 -2
- package/dist/types/lib/commands/vitest.d.ts.map +1 -0
- package/dist/types/lib/index.d.cts +5 -0
- package/dist/types/lib/index.d.cts.map +1 -0
- package/dist/types/{index.d.ts → lib/index.d.ts} +9 -7
- package/dist/types/lib/index.d.ts.map +1 -0
- package/dist/types/lib/lint-config/commitlint.config.d.ts +5 -0
- package/dist/types/lib/lint-config/commitlint.config.d.ts.map +1 -0
- package/dist/types/lib/lint-config/eslint.config.d.ts +3 -0
- package/dist/types/lib/lint-config/eslint.config.d.ts.map +1 -0
- package/dist/types/{lint-config → lib/lint-config}/lint-staged.config.d.ts +1 -0
- package/dist/types/lib/lint-config/lint-staged.config.d.ts.map +1 -0
- package/dist/types/lib/lint-config/prettier.config.d.ts +3 -0
- package/dist/types/lib/lint-config/prettier.config.d.ts.map +1 -0
- package/dist/types/lib/lint-config/stylelint.config.d.ts +14 -0
- package/dist/types/lib/lint-config/stylelint.config.d.ts.map +1 -0
- package/dist/types/{monorepo → lib/monorepo}/delete-merged-tags.d.ts +1 -0
- package/dist/types/lib/monorepo/delete-merged-tags.d.ts.map +1 -0
- package/dist/types/{monorepo → lib/monorepo}/set-registry-version.d.ts +1 -0
- package/dist/types/lib/monorepo/set-registry-version.d.ts.map +1 -0
- package/dist/types/{monorepo → lib/monorepo}/set-workspace-version.d.ts +1 -0
- package/dist/types/lib/monorepo/set-workspace-version.d.ts.map +1 -0
- package/dist/types/{monorepo → lib/monorepo}/utils.d.cts +1 -0
- package/dist/types/lib/monorepo/utils.d.cts.map +1 -0
- package/dist/types/{monorepo → lib/monorepo}/utils.d.ts +1 -0
- package/dist/types/lib/monorepo/utils.d.ts.map +1 -0
- package/dist/types/lib/pui-config.d.ts +2 -0
- package/dist/types/lib/pui-config.d.ts.map +1 -0
- package/dist/types/lib/release.config.d.ts +11 -0
- package/dist/types/lib/release.config.d.ts.map +1 -0
- package/dist/types/{server → lib/server}/appRoutes.d.ts +1 -0
- package/dist/types/lib/server/appRoutes.d.ts.map +1 -0
- package/dist/types/lib/server/cert.d.ts +5 -0
- package/dist/types/lib/server/cert.d.ts.map +1 -0
- package/dist/types/{server → lib/server}/csp.d.ts +3 -3
- package/dist/types/lib/server/csp.d.ts.map +1 -0
- package/dist/types/lib/server/index.d.ts +2 -0
- package/dist/types/lib/server/index.d.ts.map +1 -0
- package/dist/types/{server → lib/server}/logger.d.ts +1 -0
- package/dist/types/lib/server/logger.d.ts.map +1 -0
- package/dist/types/{server → lib/server}/middlewares.d.ts +1 -0
- package/dist/types/lib/server/middlewares.d.ts.map +1 -0
- package/dist/types/{server → lib/server}/utils.d.ts +2 -0
- package/dist/types/lib/server/utils.d.ts.map +1 -0
- package/dist/types/lib/server/wsServer.d.ts +14 -0
- package/dist/types/lib/server/wsServer.d.ts.map +1 -0
- package/dist/types/lib/testing/ExtendedJSDomEnv.d.cts +6 -0
- package/dist/types/lib/testing/ExtendedJSDomEnv.d.cts.map +1 -0
- package/dist/types/lib/testing/extended/axe-core/getMessageAndPass.d.ts +9 -0
- package/dist/types/lib/testing/extended/axe-core/getMessageAndPass.d.ts.map +1 -0
- package/dist/types/lib/testing/extended/axe-core/index.d.ts +2 -0
- package/dist/types/lib/testing/extended/axe-core/index.d.ts.map +1 -0
- package/dist/types/lib/testing/extended/axe-core/reporter.d.ts +3 -0
- package/dist/types/lib/testing/extended/axe-core/reporter.d.ts.map +1 -0
- package/dist/types/lib/testing/extended/axe-core/shouldIgnoreNodeViolation.d.ts +3 -0
- package/dist/types/lib/testing/extended/axe-core/shouldIgnoreNodeViolation.d.ts.map +1 -0
- package/dist/types/lib/testing/extended/axe-core/toHaveNoViolations.d.ts +13 -0
- package/dist/types/lib/testing/extended/axe-core/toHaveNoViolations.d.ts.map +1 -0
- package/dist/types/lib/testing/jest.config.d.cts +47 -0
- package/dist/types/lib/testing/jest.config.d.cts.map +1 -0
- package/dist/types/{testing → lib/testing}/jest.node.config.d.cts +7 -1
- package/dist/types/lib/testing/jest.node.config.d.cts.map +1 -0
- package/dist/types/lib/testing/jest.polyfills.d.cts +2 -0
- package/dist/types/lib/testing/jest.polyfills.d.cts.map +1 -0
- package/dist/types/lib/testing/mocks/axios.d.ts +18 -0
- package/dist/types/lib/testing/mocks/axios.d.ts.map +1 -0
- package/dist/types/{testing → lib/testing}/mocks/cssModule.d.ts +1 -0
- package/dist/types/lib/testing/mocks/cssModule.d.ts.map +1 -0
- package/dist/types/{testing → lib/testing}/mocks/html.d.ts +1 -0
- package/dist/types/lib/testing/mocks/html.d.ts.map +1 -0
- package/dist/types/lib/testing/mocks/iframe.d.ts +3 -0
- package/dist/types/lib/testing/mocks/iframe.d.ts.map +1 -0
- package/dist/types/{testing → lib/testing}/mocks/image.d.ts +1 -0
- package/dist/types/lib/testing/mocks/image.d.ts.map +1 -0
- package/dist/types/lib/testing/mocks/matchMedia.d.ts +2 -0
- package/dist/types/lib/testing/mocks/matchMedia.d.ts.map +1 -0
- package/dist/types/lib/testing/mocks/pui-app-loader.d.ts +2 -0
- package/dist/types/lib/testing/mocks/pui-app-loader.d.ts.map +1 -0
- package/dist/types/{testing → lib/testing}/mocks/pui-diagnostics.d.ts +14 -13
- package/dist/types/lib/testing/mocks/pui-diagnostics.d.ts.map +1 -0
- package/dist/types/{testing → lib/testing}/mocks/pui-user-monitoring.d.ts +1 -0
- package/dist/types/lib/testing/mocks/pui-user-monitoring.d.ts.map +1 -0
- package/dist/types/{testing → lib/testing}/mocks/retry-axios.d.ts +1 -0
- package/dist/types/lib/testing/mocks/retry-axios.d.ts.map +1 -0
- package/dist/types/{testing → lib/testing}/mocks/svg.d.ts +1 -0
- package/dist/types/lib/testing/mocks/svg.d.ts.map +1 -0
- package/dist/types/{testing → lib/testing}/mocks/webpack-hmr.d.ts +1 -0
- package/dist/types/lib/testing/mocks/webpack-hmr.d.ts.map +1 -0
- package/dist/types/{testing → lib/testing}/resolver.d.cts +1 -0
- package/dist/types/lib/testing/resolver.d.cts.map +1 -0
- package/dist/types/lib/testing/setup-react-env.d.ts +2 -0
- package/dist/types/lib/testing/setup-react-env.d.ts.map +1 -0
- package/dist/types/lib/testing/setup-tests.d.ts +2 -0
- package/dist/types/lib/testing/setup-tests.d.ts.map +1 -0
- package/dist/types/lib/testing/vitest.config.d.ts +2 -0
- package/dist/types/lib/testing/vitest.config.d.ts.map +1 -0
- package/dist/types/{transpile → lib/transpile}/esbuild.d.ts +4 -3
- package/dist/types/lib/transpile/esbuild.d.ts.map +1 -0
- package/dist/types/{transpile → lib/transpile}/react-shim.d.ts +1 -0
- package/dist/types/lib/transpile/react-shim.d.ts.map +1 -0
- package/dist/types/lib/transpile/swcrc.config.d.cts +2 -0
- package/dist/types/lib/transpile/swcrc.config.d.cts.map +1 -0
- package/dist/types/lib/typedoc.d.cts +4 -0
- package/dist/types/lib/typedoc.d.cts.map +1 -0
- package/dist/types/{update-notifier.d.ts → lib/update-notifier.d.ts} +1 -0
- package/dist/types/lib/update-notifier.d.ts.map +1 -0
- package/dist/types/{utils.d.cts → lib/utils.d.cts} +2 -1
- package/dist/types/lib/utils.d.cts.map +1 -0
- package/dist/types/lib/utils.d.ts +5 -0
- package/dist/types/lib/utils.d.ts.map +1 -0
- package/dist/types/lib/webpack/csp-plugin.d.ts +33 -0
- package/dist/types/lib/webpack/csp-plugin.d.ts.map +1 -0
- package/dist/types/lib/webpack/csp.d.ts +66 -0
- package/dist/types/lib/webpack/csp.d.ts.map +1 -0
- package/dist/types/{webpack → lib/webpack}/helpers.d.ts +5 -2
- package/dist/types/lib/webpack/helpers.d.ts.map +1 -0
- package/dist/types/lib/webpack/interceptor-middleware.d.ts +11 -0
- package/dist/types/lib/webpack/interceptor-middleware.d.ts.map +1 -0
- package/dist/types/{webpack → lib/webpack}/webpack.base.babel.d.ts +1 -0
- package/dist/types/lib/webpack/webpack.base.babel.d.ts.map +1 -0
- package/dist/types/{webpack → lib/webpack}/webpack.dev.babel.d.ts +1 -0
- package/dist/types/lib/webpack/webpack.dev.babel.d.ts.map +1 -0
- package/dist/types/{webpack → lib/webpack}/webpack.lib.base.babel.d.ts +1 -0
- package/dist/types/lib/webpack/webpack.lib.base.babel.d.ts.map +1 -0
- package/dist/types/{webpack → lib/webpack}/webpack.lib.dev.babel.d.ts +1 -0
- package/dist/types/lib/webpack/webpack.lib.dev.babel.d.ts.map +1 -0
- package/dist/types/{webpack → lib/webpack}/webpack.lib.prod.babel.d.ts +1 -0
- package/dist/types/lib/webpack/webpack.lib.prod.babel.d.ts.map +1 -0
- package/dist/types/{webpack → lib/webpack}/webpack.prod.babel.d.ts +1 -0
- package/dist/types/lib/webpack/webpack.prod.babel.d.ts.map +1 -0
- package/dist/types/{webpack → lib/webpack}/webpack.storybook.d.ts +1 -1
- package/dist/types/lib/webpack/webpack.storybook.d.ts.map +1 -0
- package/dist/types/tsconfig.tsbuildinfo +1 -0
- package/library.tsconfig.json +13 -5
- package/nx.json +97 -0
- package/package.json +228 -210
- package/dist/cjs/dummy.js +0 -1
- package/dist/cjs/lint-config/commitlint.config.cjs +0 -1
- package/dist/cjs/lint-config/eslint/common.cjs +0 -163
- package/dist/cjs/lint-config/eslint/non-react.cjs +0 -14
- package/dist/cjs/lint-config/eslint/react.cjs +0 -26
- package/dist/cjs/lint-config/eslint/typescript/common.cjs +0 -49
- package/dist/cjs/lint-config/eslint/typescript/non-react.cjs +0 -12
- package/dist/cjs/lint-config/eslint/typescript/react.cjs +0 -19
- package/dist/cjs/lint-config/prettier.config.cjs +0 -8
- package/dist/cjs/lint-config/stylelint.config.cjs +0 -19
- package/dist/cjs/release.config.cjs +0 -24
- package/dist/cjs/testing/setup-test-env.js +0 -8
- package/dist/esm/dummy.js +0 -0
- package/dist/esm/lint-config/commitlint.config.cjs +0 -1
- package/dist/esm/lint-config/eslint/common.cjs +0 -163
- package/dist/esm/lint-config/eslint/non-react.cjs +0 -14
- package/dist/esm/lint-config/eslint/react.cjs +0 -26
- package/dist/esm/lint-config/eslint/typescript/common.cjs +0 -49
- package/dist/esm/lint-config/eslint/typescript/non-react.cjs +0 -12
- package/dist/esm/lint-config/eslint/typescript/react.cjs +0 -19
- package/dist/esm/lint-config/stylelint.config.cjs +0 -19
- package/dist/esm/release.config.cjs +0 -24
- package/dist/esm/testing/setup-test-env.js +0 -7
- package/dist/types/cli.d.ts +0 -2
- package/dist/types/commands/utils.d.ts +0 -17
- package/dist/types/dummy.d.ts +0 -0
- package/dist/types/index.d.cts +0 -9
- package/dist/types/lint-config/commitlint.config.d.cts +0 -4
- package/dist/types/lint-config/eslint/common.d.cts +0 -130
- package/dist/types/lint-config/eslint/non-react.d.cts +0 -96
- package/dist/types/lint-config/eslint/react.d.cts +0 -126
- package/dist/types/lint-config/eslint/typescript/common.d.cts +0 -40
- package/dist/types/lint-config/eslint/typescript/non-react.d.cts +0 -90
- package/dist/types/lint-config/eslint/typescript/react.d.cts +0 -121
- package/dist/types/lint-config/prettier.config.d.cts +0 -8
- package/dist/types/lint-config/stylelint.config.d.cts +0 -10
- package/dist/types/pui-config.d.ts +0 -1
- package/dist/types/release.config.d.cts +0 -7
- package/dist/types/server/index.d.ts +0 -1
- package/dist/types/testing/jest.config.d.cts +0 -41
- package/dist/types/testing/mocks/axios.d.ts +0 -17
- package/dist/types/testing/mocks/matchMedia.d.ts +0 -1
- package/dist/types/testing/mocks/pui-app-loader.d.ts +0 -1
- package/dist/types/testing/setup-react-env.d.ts +0 -1
- package/dist/types/testing/setup-test-env.d.ts +0 -1
- package/dist/types/testing/setup-tests.d.ts +0 -1
- package/dist/types/testing/vitest.config.d.ts +0 -1
- package/dist/types/transpile/swcrc.config.d.cts +0 -1
- package/dist/types/typedoc.d.cts +0 -3
- package/dist/types/utils.d.ts +0 -4
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
import path from "node:path";
|
|
2
2
|
import fs from "node:fs";
|
|
3
|
+
import zlib from "zlib";
|
|
3
4
|
import _ from "lodash";
|
|
4
5
|
import CompressionPlugin from "compression-webpack-plugin";
|
|
5
|
-
import zlib from "zlib";
|
|
6
6
|
import { findMonoRepoRoot } from "../monorepo/utils.js";
|
|
7
7
|
import { basePath, getAppConfig } from "../utils.js";
|
|
8
8
|
let pathSep = path.sep;
|
|
@@ -15,10 +15,9 @@ const getNodeModulesRegEx = (modules) => modules.map(
|
|
|
15
15
|
const excludeNodeModulesExcept = (modules) => {
|
|
16
16
|
const moduleRegExps = getNodeModulesRegEx(modules);
|
|
17
17
|
return function(modulePath) {
|
|
18
|
-
if (
|
|
19
|
-
for (
|
|
20
|
-
if (
|
|
21
|
-
return false;
|
|
18
|
+
if (modulePath.includes("node_modules")) {
|
|
19
|
+
for (const moduleRegExp of moduleRegExps)
|
|
20
|
+
if (moduleRegExp.test(modulePath)) return false;
|
|
22
21
|
return true;
|
|
23
22
|
}
|
|
24
23
|
return false;
|
|
@@ -32,7 +31,7 @@ const getLibraryName = () => {
|
|
|
32
31
|
const modifiedLibName = `emui-${libraryName.replace("@elliemae/", "").replace("pui-", "")}`;
|
|
33
32
|
return _.camelCase(modifiedLibName);
|
|
34
33
|
};
|
|
35
|
-
const getLibraryVariableName = () => (process.env.LIBRARY_VARIABLE_NAME
|
|
34
|
+
const getLibraryVariableName = () => (process.env.LIBRARY_VARIABLE_NAME ?? getLibraryName()).split(".");
|
|
36
35
|
const mapToFolder = (dependencies, folder) => dependencies.reduce(
|
|
37
36
|
(acc, dependency) => ({
|
|
38
37
|
[dependency]: path.resolve(`${folder}/${dependency.replace("$", "")}`),
|
|
@@ -41,7 +40,7 @@ const mapToFolder = (dependencies, folder) => dependencies.reduce(
|
|
|
41
40
|
{}
|
|
42
41
|
);
|
|
43
42
|
const getAlias = () => {
|
|
44
|
-
const monorepoRoot = findMonoRepoRoot(process.cwd())
|
|
43
|
+
const monorepoRoot = findMonoRepoRoot(process.cwd()) ?? "";
|
|
45
44
|
return mapToFolder(
|
|
46
45
|
[
|
|
47
46
|
"@babel/runtime",
|
|
@@ -55,6 +54,8 @@ const getAlias = () => {
|
|
|
55
54
|
"styled-components",
|
|
56
55
|
"immer",
|
|
57
56
|
"react-dates",
|
|
57
|
+
"react-select",
|
|
58
|
+
"react-spring",
|
|
58
59
|
"react-transition-group",
|
|
59
60
|
"@elliemae/pui-cli",
|
|
60
61
|
"@elliemae/pui-app-sdk$",
|
|
@@ -63,6 +64,15 @@ const getAlias = () => {
|
|
|
63
64
|
path.join(monorepoRoot, "./node_modules")
|
|
64
65
|
);
|
|
65
66
|
};
|
|
67
|
+
const getLibraryAlias = (name, alias) => {
|
|
68
|
+
const monorepoRoot = findMonoRepoRoot(process.cwd()) ?? "";
|
|
69
|
+
const aliasPath = path.resolve(
|
|
70
|
+
`${path.join(monorepoRoot, "./node_modules")}/${alias}`
|
|
71
|
+
);
|
|
72
|
+
return {
|
|
73
|
+
[name]: aliasPath
|
|
74
|
+
};
|
|
75
|
+
};
|
|
66
76
|
const modulesToTranspile = [
|
|
67
77
|
"@elliemae/pui-*",
|
|
68
78
|
"@elliemae/ds-*",
|
|
@@ -75,12 +85,11 @@ const getUserMonitoringFileName = () => {
|
|
|
75
85
|
process.cwd(),
|
|
76
86
|
"node_modules/@elliemae/pui-user-monitoring/dist/public/js"
|
|
77
87
|
);
|
|
78
|
-
if (!fs.existsSync(userMonLibPath))
|
|
79
|
-
return `${libName}.js`;
|
|
88
|
+
if (!fs.existsSync(userMonLibPath)) return `${libName}.js`;
|
|
80
89
|
const distJSFiles = fs.readdirSync(userMonLibPath);
|
|
81
|
-
return distJSFiles.
|
|
82
|
-
(fName) =>
|
|
83
|
-
)
|
|
90
|
+
return distJSFiles.find(
|
|
91
|
+
(fName) => /emuiUserMonitoring+((?!chunk).)*\.js$/.exec(fName)
|
|
92
|
+
);
|
|
84
93
|
};
|
|
85
94
|
const getAppLoaderFileName = () => {
|
|
86
95
|
const libName = "emuiAppLoader";
|
|
@@ -88,12 +97,11 @@ const getAppLoaderFileName = () => {
|
|
|
88
97
|
process.cwd(),
|
|
89
98
|
"node_modules/@elliemae/pui-app-loader/dist/public/js"
|
|
90
99
|
);
|
|
91
|
-
if (!fs.existsSync(appLoaderLibPath))
|
|
92
|
-
return `${libName}.js`;
|
|
100
|
+
if (!fs.existsSync(appLoaderLibPath)) return `${libName}.js`;
|
|
93
101
|
const distJSFiles = fs.readdirSync(appLoaderLibPath);
|
|
94
|
-
return distJSFiles.
|
|
95
|
-
(fName) =>
|
|
96
|
-
)
|
|
102
|
+
return distJSFiles.find(
|
|
103
|
+
(fName) => /emuiAppLoader+((?!chunk).)*\.js$/.exec(fName)
|
|
104
|
+
);
|
|
97
105
|
};
|
|
98
106
|
const getDiagnosticsFileName = () => {
|
|
99
107
|
const libName = "emuiDiagnostics";
|
|
@@ -101,12 +109,11 @@ const getDiagnosticsFileName = () => {
|
|
|
101
109
|
process.cwd(),
|
|
102
110
|
"node_modules/@elliemae/pui-diagnostics/dist/public/js"
|
|
103
111
|
);
|
|
104
|
-
if (!fs.existsSync(libPath))
|
|
105
|
-
return `${libName}.js`;
|
|
112
|
+
if (!fs.existsSync(libPath)) return `${libName}.js`;
|
|
106
113
|
const distJSFiles = fs.readdirSync(libPath);
|
|
107
|
-
return distJSFiles.
|
|
108
|
-
(fName) =>
|
|
109
|
-
)
|
|
114
|
+
return distJSFiles.find(
|
|
115
|
+
(fName) => /emuiDiagnostics+((?!chunk).)*\.js$/.exec(fName)
|
|
116
|
+
);
|
|
110
117
|
};
|
|
111
118
|
const getENCWLoaderFileName = () => {
|
|
112
119
|
const libName = "emuiEncwLoader";
|
|
@@ -114,18 +121,16 @@ const getENCWLoaderFileName = () => {
|
|
|
114
121
|
process.cwd(),
|
|
115
122
|
"node_modules/@elliemae/encw-loader/dist/public/js"
|
|
116
123
|
);
|
|
117
|
-
if (!fs.existsSync(appLoaderLibPath))
|
|
118
|
-
return `${libName}.js`;
|
|
124
|
+
if (!fs.existsSync(appLoaderLibPath)) return `${libName}.js`;
|
|
119
125
|
const distJSFiles = fs.readdirSync(appLoaderLibPath);
|
|
120
|
-
return distJSFiles.
|
|
121
|
-
(fName) =>
|
|
122
|
-
)
|
|
126
|
+
return distJSFiles.find(
|
|
127
|
+
(fName) => /emuiEncwLoader+((?!chunk).)*\.js$/.exec(fName)
|
|
128
|
+
);
|
|
123
129
|
};
|
|
124
130
|
const getAppVersion = () => {
|
|
125
|
-
if (!process.env.APP_VERSION)
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
return match && match[1] || LATEST_VERSION;
|
|
131
|
+
if (!process.env.APP_VERSION) return LATEST_VERSION;
|
|
132
|
+
const match = /^v?(\d+\.\d+)\..*$/.exec(process.env.APP_VERSION);
|
|
133
|
+
return match?.[1] ?? LATEST_VERSION;
|
|
129
134
|
};
|
|
130
135
|
const getPaths = (latestVersion = true) => {
|
|
131
136
|
const version = latestVersion ? LATEST_VERSION : getAppVersion();
|
|
@@ -160,9 +165,9 @@ const getCompressionPlugins = (isLibrary = false) => {
|
|
|
160
165
|
];
|
|
161
166
|
const commonConfig = {
|
|
162
167
|
test: /\.(js|css)$/,
|
|
163
|
-
exclude: !isLibrary ? excludeList : [],
|
|
164
168
|
// we are compressing all files since in aws cloudfront edge lambda, we don't want to whitelist files that are not compressed due to below limits
|
|
165
|
-
minRatio: Infinity
|
|
169
|
+
minRatio: Infinity,
|
|
170
|
+
...!isLibrary ? { exclude: excludeList } : {}
|
|
166
171
|
};
|
|
167
172
|
return [
|
|
168
173
|
new CompressionPlugin({
|
|
@@ -202,6 +207,7 @@ export {
|
|
|
202
207
|
getAlias,
|
|
203
208
|
getAppVersion,
|
|
204
209
|
getCompressionPlugins,
|
|
210
|
+
getLibraryAlias,
|
|
205
211
|
getLibraryName,
|
|
206
212
|
getLibraryVariableName,
|
|
207
213
|
getMediaPath,
|
|
@@ -0,0 +1,105 @@
|
|
|
1
|
+
const VALID_PARAMS = ["isInterceptable", "intercept", "afterSend"];
|
|
2
|
+
const validateParams = (methods) => {
|
|
3
|
+
Object.keys(methods).forEach((k) => {
|
|
4
|
+
if (!VALID_PARAMS.includes(k)) {
|
|
5
|
+
throw new Error(`${k} isn't a valid param (${VALID_PARAMS.join(", ")})`);
|
|
6
|
+
}
|
|
7
|
+
});
|
|
8
|
+
if (!("isInterceptable" in methods)) {
|
|
9
|
+
throw new Error("isInterceptable is a required param (function)");
|
|
10
|
+
}
|
|
11
|
+
};
|
|
12
|
+
const interceptorMiddleware = (fn) => (req, res, next) => {
|
|
13
|
+
const methods = fn(req, res);
|
|
14
|
+
validateParams(methods);
|
|
15
|
+
const originalEnd = res.end;
|
|
16
|
+
const originalWrite = res.write;
|
|
17
|
+
const chunks = [];
|
|
18
|
+
let isIntercepting;
|
|
19
|
+
let isFirstWrite = true;
|
|
20
|
+
function intercept(rawChunk, encoding) {
|
|
21
|
+
if (isFirstWrite) {
|
|
22
|
+
isFirstWrite = false;
|
|
23
|
+
isIntercepting = methods.isInterceptable();
|
|
24
|
+
}
|
|
25
|
+
if (isIntercepting) {
|
|
26
|
+
if (rawChunk) {
|
|
27
|
+
let tempChunk = rawChunk;
|
|
28
|
+
if (rawChunk !== null && !Buffer.isBuffer(tempChunk)) {
|
|
29
|
+
if (!encoding) {
|
|
30
|
+
tempChunk = Buffer.from(rawChunk);
|
|
31
|
+
} else {
|
|
32
|
+
tempChunk = Buffer.from(
|
|
33
|
+
rawChunk,
|
|
34
|
+
encoding
|
|
35
|
+
);
|
|
36
|
+
}
|
|
37
|
+
}
|
|
38
|
+
chunks.push(tempChunk);
|
|
39
|
+
}
|
|
40
|
+
}
|
|
41
|
+
return isIntercepting;
|
|
42
|
+
}
|
|
43
|
+
const newResWrite = (...args) => {
|
|
44
|
+
if (!intercept(args[0], args[1])) {
|
|
45
|
+
return originalWrite.apply(res, args);
|
|
46
|
+
}
|
|
47
|
+
return true;
|
|
48
|
+
};
|
|
49
|
+
res.write = newResWrite;
|
|
50
|
+
const afterSend = (oldBody, newBody) => {
|
|
51
|
+
if (typeof methods.afterSend === "function") {
|
|
52
|
+
process.nextTick(() => {
|
|
53
|
+
methods.afterSend?.(oldBody, newBody);
|
|
54
|
+
});
|
|
55
|
+
}
|
|
56
|
+
};
|
|
57
|
+
const newResEnd = (...args) => {
|
|
58
|
+
if (intercept(args[0], args[1])) {
|
|
59
|
+
isIntercepting = false;
|
|
60
|
+
const oldBody = Buffer.concat(chunks).toString("utf-8");
|
|
61
|
+
if (methods.intercept) {
|
|
62
|
+
if (typeof methods.intercept !== "function") {
|
|
63
|
+
throw new Error(
|
|
64
|
+
"`send` must be a function with the body to be sent as the only param"
|
|
65
|
+
);
|
|
66
|
+
}
|
|
67
|
+
res.removeHeader("Content-Length");
|
|
68
|
+
methods.intercept(oldBody, (newBody) => {
|
|
69
|
+
args[0] = newBody;
|
|
70
|
+
originalEnd.apply(res, args);
|
|
71
|
+
afterSend(oldBody, newBody);
|
|
72
|
+
});
|
|
73
|
+
} else {
|
|
74
|
+
afterSend(oldBody, oldBody);
|
|
75
|
+
originalEnd.apply(res, args);
|
|
76
|
+
}
|
|
77
|
+
} else {
|
|
78
|
+
originalEnd.apply(res, args);
|
|
79
|
+
}
|
|
80
|
+
};
|
|
81
|
+
res.end = newResEnd;
|
|
82
|
+
next();
|
|
83
|
+
};
|
|
84
|
+
const addCSPNonceMiddleware = (middlewares) => {
|
|
85
|
+
const index = middlewares.findIndex(
|
|
86
|
+
(middleware) => middleware.name === "webpack-dev-middleware"
|
|
87
|
+
);
|
|
88
|
+
middlewares.splice(index, 0, {
|
|
89
|
+
name: "csp-nonce-middleware",
|
|
90
|
+
middleware: interceptorMiddleware((_req, res) => ({
|
|
91
|
+
// Only HTML responses will be intercepted
|
|
92
|
+
isInterceptable() {
|
|
93
|
+
return (res.get("Content-Type") ?? "").includes("text/html");
|
|
94
|
+
},
|
|
95
|
+
// Appends a paragraph at the end of the response body
|
|
96
|
+
intercept(body, send) {
|
|
97
|
+
send(body.replace(/__CSP_NONCE__/g, res.locals.cspNonce));
|
|
98
|
+
}
|
|
99
|
+
}))
|
|
100
|
+
});
|
|
101
|
+
};
|
|
102
|
+
export {
|
|
103
|
+
addCSPNonceMiddleware,
|
|
104
|
+
interceptorMiddleware
|
|
105
|
+
};
|
|
@@ -102,14 +102,16 @@ const plugins = [
|
|
|
102
102
|
noErrorOnMissing: true,
|
|
103
103
|
globOptions: {
|
|
104
104
|
ignore: ["readme.md"]
|
|
105
|
-
}
|
|
105
|
+
},
|
|
106
|
+
info: { minimized: true }
|
|
106
107
|
},
|
|
107
108
|
{
|
|
108
109
|
from: "webroot",
|
|
109
110
|
noErrorOnMissing: true,
|
|
110
111
|
globOptions: {
|
|
111
112
|
ignore: ["readme.md"]
|
|
112
|
-
}
|
|
113
|
+
},
|
|
114
|
+
info: { minimized: true }
|
|
113
115
|
}
|
|
114
116
|
])
|
|
115
117
|
}),
|
|
@@ -118,7 +120,7 @@ const plugins = [
|
|
|
118
120
|
fileName: "./latest/manifest.json",
|
|
119
121
|
publicPath: "",
|
|
120
122
|
map: (file) => {
|
|
121
|
-
file.name = file.name.replace(/^latest
|
|
123
|
+
file.name = file.name.replace(/^latest(\/|\\)/, "");
|
|
122
124
|
return file;
|
|
123
125
|
}
|
|
124
126
|
}),
|
|
@@ -257,36 +259,20 @@ const baseConfig = (options) => ({
|
|
|
257
259
|
mainFields: ["browser", "module", "main"],
|
|
258
260
|
alias: {
|
|
259
261
|
...getAlias(),
|
|
260
|
-
...
|
|
262
|
+
...options.resolve?.alias ?? {}
|
|
261
263
|
}
|
|
262
264
|
},
|
|
265
|
+
externalsPresets: {
|
|
266
|
+
web: true
|
|
267
|
+
},
|
|
263
268
|
externals: {
|
|
264
269
|
"@elliemae/pui-user-monitoring": "emuiUserMonitoring",
|
|
265
270
|
"@elliemae/pui-app-loader": "emuiAppLoader",
|
|
266
|
-
"@elliemae/pui-diagnostics": "emuiDiagnostics"
|
|
267
|
-
react: "emuiAppReactDependencies.react",
|
|
268
|
-
"react-dom": "emuiAppReactDependencies.reactDOM",
|
|
269
|
-
"@reduxjs/toolkit": "emuiAppReactDependencies.rtk",
|
|
270
|
-
axios: "emuiAppReactDependencies.axios.default",
|
|
271
|
-
dompurify: "emuiAppReactDependencies.dompurify",
|
|
272
|
-
history: "emuiAppReactDependencies.history",
|
|
273
|
-
immer: "emuiAppReactDependencies.immer",
|
|
274
|
-
invariant: "emuiAppReactDependencies.invariant",
|
|
275
|
-
"pubsub-js": "emuiAppReactDependencies.pubsubjs",
|
|
276
|
-
"react-aria-live": "emuiAppReactDependencies.reactAriaLive",
|
|
277
|
-
"react-helmet": "emuiAppReactDependencies.reactHelmet",
|
|
278
|
-
"react-hook-form": "emuiAppReactDependencies.reactHookForm",
|
|
279
|
-
"react-redux": "emuiAppReactDependencies.reactRedux",
|
|
280
|
-
"react-router-dom": "emuiAppReactDependencies.reactRouterDOM",
|
|
281
|
-
reduxInjectors: "emuiAppReactDependencies.reduxInjectors",
|
|
282
|
-
reselect: "emuiAppReactDependencies.reselect",
|
|
283
|
-
// "styled-components": "emuiAppReactDependencies.styledComponents",
|
|
284
|
-
"styled-system": "emuiAppReactDependencies.styledSystem"
|
|
285
|
-
// "@xstyled/styled-components": "emuiAppReactDependencies.xstyled",
|
|
271
|
+
"@elliemae/pui-diagnostics": "emuiDiagnostics"
|
|
286
272
|
},
|
|
287
|
-
devtool: options.devtool
|
|
288
|
-
performance: options.performance
|
|
289
|
-
devServer: options.devServer
|
|
273
|
+
devtool: options.devtool ?? "eval-source-map",
|
|
274
|
+
performance: options.performance ?? {},
|
|
275
|
+
devServer: options.devServer ?? {}
|
|
290
276
|
});
|
|
291
277
|
export {
|
|
292
278
|
baseConfig
|
|
@@ -6,6 +6,7 @@ import CircularDependencyPlugin from "circular-dependency-plugin";
|
|
|
6
6
|
import MiniCssExtractPlugin from "mini-css-extract-plugin";
|
|
7
7
|
import ReactRefreshWebpackPlugin from "@pmmmwh/react-refresh-webpack-plugin";
|
|
8
8
|
import expressStaticGzip from "express-static-gzip";
|
|
9
|
+
import { addCSPNonceMiddleware } from "./interceptor-middleware.js";
|
|
9
10
|
import { setupDefaultMiddlewares } from "../server/middlewares.js";
|
|
10
11
|
import { loadRoutes } from "../server/appRoutes.js";
|
|
11
12
|
import {
|
|
@@ -14,6 +15,10 @@ import {
|
|
|
14
15
|
isGoogleTagManagerEnabled
|
|
15
16
|
} from "./helpers.js";
|
|
16
17
|
import { baseConfig } from "./webpack.base.babel.js";
|
|
18
|
+
import { wsPort } from "../server/utils.js";
|
|
19
|
+
import { createWSServer } from "../server/wsServer.js";
|
|
20
|
+
import { getCertOptions } from "../server/cert.js";
|
|
21
|
+
import { isHttps } from "../utils.js";
|
|
17
22
|
const __filename = fileURLToPath(import.meta.url);
|
|
18
23
|
const {
|
|
19
24
|
appVersion,
|
|
@@ -25,6 +30,10 @@ const {
|
|
|
25
30
|
diagnosticsScriptPath,
|
|
26
31
|
encwLoaderScriptPath
|
|
27
32
|
} = getPaths();
|
|
33
|
+
const serverOptions = {
|
|
34
|
+
type: "https",
|
|
35
|
+
options: getCertOptions()
|
|
36
|
+
};
|
|
28
37
|
const devConfig = {
|
|
29
38
|
mode: "development",
|
|
30
39
|
cache: {
|
|
@@ -68,7 +77,7 @@ const devConfig = {
|
|
|
68
77
|
// Add development plugins
|
|
69
78
|
plugins: [
|
|
70
79
|
new HtmlWebpackPlugin({
|
|
71
|
-
inject: !isAppLoaderEnabled(),
|
|
80
|
+
inject: !isAppLoaderEnabled() && process.env.CSP !== "true",
|
|
72
81
|
// Inject all files that are generated by webpack, e.g. bundle.js
|
|
73
82
|
template: !isAppLoaderEnabled() ? "app/index.html" : "app/index-app-loader.html",
|
|
74
83
|
emui: {
|
|
@@ -79,9 +88,14 @@ const devConfig = {
|
|
|
79
88
|
appLoaderScriptPath,
|
|
80
89
|
diagnosticsScriptPath,
|
|
81
90
|
encwLoaderScriptPath,
|
|
82
|
-
googleTagManager: isGoogleTagManagerEnabled()
|
|
83
|
-
|
|
91
|
+
googleTagManager: isGoogleTagManagerEnabled(),
|
|
92
|
+
csp: process.env.CSP === "true"
|
|
93
|
+
},
|
|
94
|
+
scriptLoading: "defer"
|
|
84
95
|
}),
|
|
96
|
+
// new CspPlugin(HtmlWebpackPlugin, {
|
|
97
|
+
// enableUnsafeEval: true,
|
|
98
|
+
// }),
|
|
85
99
|
new CircularDependencyPlugin({
|
|
86
100
|
exclude: /a\.(js|ts|jsx|tsx)|node_modules/,
|
|
87
101
|
// exclude node_modules
|
|
@@ -113,12 +127,13 @@ const devConfig = {
|
|
|
113
127
|
},
|
|
114
128
|
hot: true,
|
|
115
129
|
open: [basePath],
|
|
116
|
-
port: process.env.PORT
|
|
130
|
+
port: process.env.PORT ?? "auto",
|
|
131
|
+
server: isHttps() ? serverOptions : {},
|
|
117
132
|
setupMiddlewares: (middlewares, devServer) => {
|
|
133
|
+
addCSPNonceMiddleware(middlewares);
|
|
118
134
|
if (devServer.app) {
|
|
119
135
|
setupDefaultMiddlewares(devServer.app);
|
|
120
|
-
loadRoutes(devServer.app).
|
|
121
|
-
}).catch((err) => {
|
|
136
|
+
loadRoutes(devServer.app).catch((err) => {
|
|
122
137
|
console.error(err);
|
|
123
138
|
});
|
|
124
139
|
const cdnRouter = expressStaticGzip("cdn", {});
|
|
@@ -130,6 +145,13 @@ const devConfig = {
|
|
|
130
145
|
}
|
|
131
146
|
next();
|
|
132
147
|
});
|
|
148
|
+
createWSServer({
|
|
149
|
+
port: wsPort
|
|
150
|
+
}).then(({ wsServer }) => {
|
|
151
|
+
if (devServer.app) devServer.app.locals.wsServer = wsServer;
|
|
152
|
+
}).catch((err) => {
|
|
153
|
+
console.error(err);
|
|
154
|
+
});
|
|
133
155
|
}
|
|
134
156
|
return middlewares;
|
|
135
157
|
}
|
|
@@ -39,13 +39,11 @@ const plugins = [
|
|
|
39
39
|
new webpack.DefinePlugin({
|
|
40
40
|
APP_CONFIG: getAppConfig()
|
|
41
41
|
}),
|
|
42
|
-
/* eslint-disable indent */
|
|
43
42
|
...copyPluginPatterns.length > 0 ? [
|
|
44
43
|
new CopyWebpackPlugin({
|
|
45
44
|
patterns: copyPluginPatterns
|
|
46
45
|
})
|
|
47
46
|
] : [],
|
|
48
|
-
/* eslint-enable indent */
|
|
49
47
|
new webpack.optimize.LimitChunkCountPlugin({
|
|
50
48
|
maxChunks: 1
|
|
51
49
|
}),
|
|
@@ -57,14 +55,22 @@ const baseConfig = (options) => ({
|
|
|
57
55
|
output: {
|
|
58
56
|
clean: true,
|
|
59
57
|
path: path.resolve(process.cwd(), "dist/umd"),
|
|
58
|
+
filename: "[name].js",
|
|
59
|
+
chunkFilename: "[name].[chunkhash].chunk.js",
|
|
60
|
+
assetModuleFilename: "assets/[name].[hash][ext][query]",
|
|
60
61
|
publicPath: "auto",
|
|
61
62
|
library: {
|
|
62
63
|
name: getLibraryVariableName(),
|
|
63
|
-
type: "
|
|
64
|
+
type: "var"
|
|
65
|
+
// type: 'module',
|
|
64
66
|
},
|
|
67
|
+
// module: true,
|
|
65
68
|
...options.output
|
|
66
69
|
},
|
|
67
70
|
// Merge with env dependent settings
|
|
71
|
+
// experiments: {
|
|
72
|
+
// outputModule: true,
|
|
73
|
+
// },
|
|
68
74
|
optimization: options.optimization,
|
|
69
75
|
module: {
|
|
70
76
|
rules: [
|
|
@@ -112,6 +118,7 @@ const baseConfig = (options) => ({
|
|
|
112
118
|
loader: "postcss-loader",
|
|
113
119
|
options: {
|
|
114
120
|
postcssOptions: {
|
|
121
|
+
// eslint-disable-next-line @typescript-eslint/no-unsafe-call
|
|
115
122
|
plugins: [PostcssPresetEnv({ autoprefixer: { grid: true } })]
|
|
116
123
|
},
|
|
117
124
|
sourceMap: true
|
|
@@ -177,7 +184,7 @@ const baseConfig = (options) => ({
|
|
|
177
184
|
mainFields: ["browser", "module", "main"],
|
|
178
185
|
alias: {
|
|
179
186
|
...getAlias(),
|
|
180
|
-
...
|
|
187
|
+
...options.resolve?.alias ?? {}
|
|
181
188
|
},
|
|
182
189
|
plugins: [new ResolveTypeScriptPlugin({})]
|
|
183
190
|
},
|
|
@@ -186,9 +193,9 @@ const baseConfig = (options) => ({
|
|
|
186
193
|
"@elliemae/pui-app-loader": "emuiAppLoader",
|
|
187
194
|
"@elliemae/pui-diagnostics": "emuiDiagnostics"
|
|
188
195
|
},
|
|
189
|
-
devtool: options.devtool
|
|
190
|
-
performance: options.performance
|
|
191
|
-
devServer: options.devServer
|
|
196
|
+
devtool: options.devtool ?? "eval-source-map",
|
|
197
|
+
performance: options.performance ?? {},
|
|
198
|
+
devServer: options.devServer ?? {}
|
|
192
199
|
});
|
|
193
200
|
export {
|
|
194
201
|
baseConfig
|
|
@@ -5,26 +5,25 @@ import fg from "fast-glob";
|
|
|
5
5
|
import CircularDependencyPlugin from "circular-dependency-plugin";
|
|
6
6
|
import MiniCssExtractPlugin from "mini-css-extract-plugin";
|
|
7
7
|
import HtmlWebpackPlugin from "html-webpack-plugin";
|
|
8
|
-
import { getPaths } from "./helpers.js";
|
|
8
|
+
import { getPaths, getLibraryVariableName } from "./helpers.js";
|
|
9
9
|
import { baseConfig } from "./webpack.lib.base.babel.js";
|
|
10
10
|
const { basePath } = getPaths();
|
|
11
11
|
const getHtmlWebpackPlugins = () => {
|
|
12
|
-
const htmlTemplateFiles = fg.sync([
|
|
12
|
+
const htmlTemplateFiles = fg.sync([
|
|
13
|
+
path.join(process.cwd(), "lib", "*.html").replace(/\\/g, "/")
|
|
14
|
+
]);
|
|
13
15
|
return htmlTemplateFiles.map(
|
|
14
16
|
(htmlTemplateFile) => new HtmlWebpackPlugin({
|
|
15
17
|
template: htmlTemplateFile,
|
|
16
18
|
filename: path.basename(htmlTemplateFile),
|
|
17
|
-
inject:
|
|
19
|
+
inject: "head",
|
|
20
|
+
scriptLoading: "defer",
|
|
21
|
+
library: getLibraryVariableName()
|
|
18
22
|
})
|
|
19
23
|
);
|
|
20
24
|
};
|
|
21
25
|
var webpack_lib_dev_babel_default = baseConfig({
|
|
22
26
|
mode: "development",
|
|
23
|
-
// output: {
|
|
24
|
-
// filename: `js/${libraryName}.js`,
|
|
25
|
-
// chunkFilename: `js/${libraryName}.chunk.js`,
|
|
26
|
-
// assetModuleFilename: '[name][ext][query]',
|
|
27
|
-
// },
|
|
28
27
|
optimization: {
|
|
29
28
|
splitChunks: {
|
|
30
29
|
chunks: "all"
|
|
@@ -41,10 +40,7 @@ var webpack_lib_dev_babel_default = baseConfig({
|
|
|
41
40
|
failOnError: false
|
|
42
41
|
// show a warning when there is a circular dependency
|
|
43
42
|
}),
|
|
44
|
-
new MiniCssExtractPlugin({
|
|
45
|
-
// filename: `css/${libraryName}.css`,
|
|
46
|
-
// chunkFilename: `css/${libraryName}.chunk.css`,
|
|
47
|
-
}),
|
|
43
|
+
new MiniCssExtractPlugin({}),
|
|
48
44
|
new webpack.ProgressPlugin()
|
|
49
45
|
],
|
|
50
46
|
devtool: "eval-source-map",
|
|
@@ -62,7 +58,7 @@ var webpack_lib_dev_babel_default = baseConfig({
|
|
|
62
58
|
historyApiFallback: true,
|
|
63
59
|
hot: true,
|
|
64
60
|
open: [basePath],
|
|
65
|
-
port: process.env.PORT
|
|
61
|
+
port: process.env.PORT ?? "auto",
|
|
66
62
|
headers: {
|
|
67
63
|
"Access-Control-Allow-Origin": "*",
|
|
68
64
|
"Access-Control-Allow-Methods": "GET, POST, PUT, DELETE, PATCH, OPTIONS"
|
|
@@ -5,15 +5,23 @@ import HtmlWebpackPlugin from "html-webpack-plugin";
|
|
|
5
5
|
import { BundleAnalyzerPlugin } from "webpack-bundle-analyzer";
|
|
6
6
|
import { EsbuildPlugin } from "esbuild-loader";
|
|
7
7
|
import browserslistToEsbuild from "browserslist-to-esbuild";
|
|
8
|
-
import {
|
|
8
|
+
import {
|
|
9
|
+
getCompressionPlugins,
|
|
10
|
+
getLibraryName,
|
|
11
|
+
getLibraryVariableName
|
|
12
|
+
} from "./helpers.js";
|
|
9
13
|
import { baseConfig } from "./webpack.lib.base.babel.js";
|
|
10
14
|
const getHtmlWebpackPlugins = () => {
|
|
11
|
-
const htmlTemplateFiles = fg.sync([
|
|
15
|
+
const htmlTemplateFiles = fg.sync([
|
|
16
|
+
path.join(process.cwd(), "lib", "*.html").replace(/\\/g, "/")
|
|
17
|
+
]);
|
|
12
18
|
return htmlTemplateFiles.map(
|
|
13
19
|
(htmlTemplateFile) => new HtmlWebpackPlugin({
|
|
14
20
|
template: htmlTemplateFile,
|
|
15
21
|
filename: path.basename(htmlTemplateFile),
|
|
16
|
-
inject:
|
|
22
|
+
inject: "head",
|
|
23
|
+
scriptLoading: "defer",
|
|
24
|
+
library: getLibraryVariableName(),
|
|
17
25
|
minify: {
|
|
18
26
|
removeComments: true,
|
|
19
27
|
collapseWhitespace: true,
|
|
@@ -37,7 +45,9 @@ const prodConfig = {
|
|
|
37
45
|
minimizer: [
|
|
38
46
|
new EsbuildPlugin({
|
|
39
47
|
target: browserslistToEsbuild(),
|
|
40
|
-
css: true
|
|
48
|
+
css: true,
|
|
49
|
+
pure: ["console.log", "console.warn"],
|
|
50
|
+
drop: ["debugger"]
|
|
41
51
|
})
|
|
42
52
|
],
|
|
43
53
|
nodeEnv: "production",
|
|
@@ -49,10 +59,7 @@ const prodConfig = {
|
|
|
49
59
|
},
|
|
50
60
|
plugins: [
|
|
51
61
|
...getHtmlWebpackPlugins(),
|
|
52
|
-
new MiniCssExtractPlugin({
|
|
53
|
-
// filename: `css/${libraryName}.[contenthash].css`,
|
|
54
|
-
// chunkFilename: `css/${libraryName}.[contenthash].chunk.css`,
|
|
55
|
-
}),
|
|
62
|
+
new MiniCssExtractPlugin({}),
|
|
56
63
|
...getCompressionPlugins(true),
|
|
57
64
|
new BundleAnalyzerPlugin({
|
|
58
65
|
analyzerMode: "static",
|
|
@@ -29,10 +29,13 @@ const getProdConfig = ({ latestVersion = true } = {}) => {
|
|
|
29
29
|
},
|
|
30
30
|
optimization: {
|
|
31
31
|
moduleIds: "deterministic",
|
|
32
|
+
// realContentHash: false,
|
|
32
33
|
minimizer: [
|
|
33
34
|
new EsbuildPlugin({
|
|
34
35
|
target: browserslistToEsbuild(),
|
|
35
|
-
css: true
|
|
36
|
+
css: true,
|
|
37
|
+
pure: ["console.log", "console.warn"],
|
|
38
|
+
drop: ["debugger"]
|
|
36
39
|
})
|
|
37
40
|
],
|
|
38
41
|
runtimeChunk: true,
|
|
@@ -46,7 +49,8 @@ const getProdConfig = ({ latestVersion = true } = {}) => {
|
|
|
46
49
|
},
|
|
47
50
|
vendors: {
|
|
48
51
|
name: "vendors",
|
|
49
|
-
test: /[\\/]node_modules[\\/]
|
|
52
|
+
test: /[\\/]node_modules[\\/]/,
|
|
53
|
+
enforce: true
|
|
50
54
|
}
|
|
51
55
|
}
|
|
52
56
|
}
|
|
@@ -83,7 +87,7 @@ const {
|
|
|
83
87
|
basePath
|
|
84
88
|
} = getPaths();
|
|
85
89
|
const htmlWebpackPlugin = new HtmlWebpackPlugin({
|
|
86
|
-
inject: !isAppLoaderEnabled(),
|
|
90
|
+
inject: !isAppLoaderEnabled() && process.env.CSP !== "true",
|
|
87
91
|
template: !isAppLoaderEnabled() ? "app/index.html" : "app/index-app-loader.html",
|
|
88
92
|
minify: {
|
|
89
93
|
removeComments: true,
|
|
@@ -105,12 +109,15 @@ const htmlWebpackPlugin = new HtmlWebpackPlugin({
|
|
|
105
109
|
appLoaderScriptPath,
|
|
106
110
|
diagnosticsScriptPath,
|
|
107
111
|
encwLoaderScriptPath,
|
|
108
|
-
googleTagManager: isGoogleTagManagerEnabled()
|
|
109
|
-
|
|
112
|
+
googleTagManager: isGoogleTagManagerEnabled(),
|
|
113
|
+
csp: process.env.CSP === "true"
|
|
114
|
+
},
|
|
115
|
+
scriptLoading: "defer"
|
|
110
116
|
});
|
|
111
117
|
const config = baseConfig(getProdConfig());
|
|
112
|
-
if (config.plugins)
|
|
118
|
+
if (config.plugins) {
|
|
113
119
|
config.plugins.push(htmlWebpackPlugin);
|
|
120
|
+
}
|
|
114
121
|
var webpack_prod_babel_default = config;
|
|
115
122
|
export {
|
|
116
123
|
webpack_prod_babel_default as default
|