@elliemae/pui-cli 7.0.0-alpha.1 → 7.0.0-alpha.10
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/{lib/babel/babel.config.js → dist/cjs/babel.config.cjs} +2 -2
- package/dist/cjs/cli.js +49 -0
- package/dist/cjs/commands/build.js +72 -0
- package/dist/cjs/commands/codemod.js +51 -0
- package/dist/cjs/commands/gendoc.js +52 -0
- package/dist/cjs/commands/lint.js +86 -0
- package/dist/cjs/commands/pack.js +88 -0
- package/dist/cjs/commands/start.js +61 -0
- package/dist/cjs/commands/storybook.js +63 -0
- package/dist/cjs/commands/test.js +86 -0
- package/dist/cjs/commands/tscheck.js +85 -0
- package/dist/cjs/commands/utils.js +137 -0
- package/dist/cjs/commands/version.js +71 -0
- package/dist/cjs/commands/vitest.js +84 -0
- package/{lib/dummy.ts → dist/cjs/dummy.js} +0 -0
- package/dist/cjs/index.cjs +25 -0
- package/dist/cjs/index.js +41 -0
- package/dist/cjs/jsdoc.conf.json +17 -0
- package/dist/cjs/lint-config/commitlint.config.cjs +1 -0
- package/{lib/lint/eslint/common.js → dist/cjs/lint-config/eslint/common.cjs} +5 -5
- package/{lib/lint/eslint/non-react.js → dist/cjs/lint-config/eslint/non-react.cjs} +2 -2
- package/{lib/lint/eslint/react.js → dist/cjs/lint-config/eslint/react.cjs} +2 -2
- package/{lib/lint/eslint/typescript/common.js → dist/cjs/lint-config/eslint/typescript/common.cjs} +1 -1
- package/{lib/lint/eslint/typescript/non-react.js → dist/cjs/lint-config/eslint/typescript/non-react.cjs} +2 -2
- package/{lib/lint/eslint/typescript/react.js → dist/cjs/lint-config/eslint/typescript/react.cjs} +2 -2
- package/dist/cjs/lint-config/lint-staged.config.js +37 -0
- package/{lib/lint/prettier.config.js → dist/cjs/lint-config/prettier.config.cjs} +1 -1
- package/{lib/lint/stylelint.config.js → dist/cjs/lint-config/stylelint.config.cjs} +2 -2
- package/dist/cjs/monorepo/delete-merged-tags.js +57 -0
- package/dist/cjs/monorepo/set-registry-version.js +43 -0
- package/dist/cjs/monorepo/set-workspace-version.js +44 -0
- package/dist/cjs/monorepo/utils.cjs +30 -0
- package/dist/cjs/package.json +4 -0
- package/dist/cjs/pui-config.js +40 -0
- package/{lib/release/release.config.js → dist/cjs/release.config.cjs} +0 -0
- package/{lib/server/util/index.js → dist/cjs/server/app-routes.cjs} +5 -15
- package/dist/cjs/server/csp.js +88 -0
- package/dist/cjs/server/index.js +30 -0
- package/dist/cjs/server/logger.js +50 -0
- package/dist/cjs/server/middlewares.js +68 -0
- package/dist/cjs/server/utils.js +32 -0
- package/{lib/testing/jest.config.js → dist/cjs/testing/jest.config.cjs} +6 -9
- package/{lib/testing/jest.node.config.js → dist/cjs/testing/jest.node.config.cjs} +1 -1
- package/dist/cjs/testing/mocks/axios.js +37 -0
- package/dist/cjs/testing/mocks/cssModule.js +23 -0
- package/dist/cjs/testing/mocks/html.js +23 -0
- package/dist/cjs/testing/mocks/image.js +23 -0
- package/dist/cjs/testing/mocks/matchMedia.js +43 -0
- package/dist/cjs/testing/mocks/pui-app-loader.js +24 -0
- package/dist/cjs/testing/mocks/pui-diagnostics.js +68 -0
- package/dist/cjs/testing/mocks/pui-user-monitoring.js +30 -0
- package/dist/cjs/testing/mocks/retry-axios.js +27 -0
- package/dist/cjs/testing/mocks/svg.js +29 -0
- package/dist/cjs/testing/mocks/webpack-hmr.js +24 -0
- package/{lib/testing/resolver.js → dist/cjs/testing/resolver.cjs} +0 -0
- package/dist/cjs/testing/setup-react-env.js +18 -0
- package/dist/cjs/testing/setup-tests.js +63 -0
- package/dist/cjs/testing/vitest.config.js +39 -0
- package/{lib/testing/vitest.setup.ts → dist/cjs/testing/vitest.setup.js} +0 -0
- package/{lib → dist/cjs}/transpile/.swcrc +0 -0
- package/dist/cjs/transpile/esbuild.js +139 -0
- package/dist/cjs/transpile/react-shim.js +26 -0
- package/{lib/transpile/swcrc.config.js → dist/cjs/transpile/swcrc.config.cjs} +1 -1
- package/{lib → dist/cjs}/typescript/app.tsconfig.json +0 -0
- package/{lib → dist/cjs}/typescript/library.tsconfig.json +0 -0
- package/dist/cjs/update-notifier.js +33 -0
- package/dist/cjs/utils.cjs +23 -0
- package/dist/cjs/webpack/helpers.js +216 -0
- package/dist/cjs/webpack/webpack.base.babel.js +262 -0
- package/dist/cjs/webpack/webpack.dev.babel.js +140 -0
- package/dist/cjs/webpack/webpack.lib.base.babel.js +217 -0
- package/dist/cjs/webpack/webpack.lib.dev.babel.js +67 -0
- package/dist/cjs/webpack/webpack.lib.prod.babel.js +92 -0
- package/dist/cjs/webpack/webpack.prod.babel.js +139 -0
- package/dist/cjs/webpack/webpack.storybook.js +122 -0
- package/dist/esm/babel.config.cjs +101 -0
- package/dist/esm/cli.js +33 -0
- package/dist/esm/commands/build.js +56 -0
- package/dist/esm/commands/codemod.js +29 -0
- package/dist/esm/commands/gendoc.js +29 -0
- package/dist/esm/commands/lint.js +64 -0
- package/dist/esm/commands/pack.js +65 -0
- package/dist/esm/commands/start.js +38 -0
- package/dist/esm/commands/storybook.js +41 -0
- package/dist/esm/commands/test.js +64 -0
- package/dist/esm/commands/tscheck.js +65 -0
- package/dist/esm/commands/utils.js +120 -0
- package/dist/esm/commands/version.js +49 -0
- package/dist/esm/commands/vitest.js +61 -0
- package/dist/esm/dummy.js +0 -0
- package/dist/esm/index.cjs +25 -0
- package/dist/esm/index.js +22 -0
- package/dist/esm/jsdoc.conf.json +17 -0
- package/dist/esm/lint-config/commitlint.config.cjs +1 -0
- package/dist/esm/lint-config/eslint/common.cjs +160 -0
- package/dist/esm/lint-config/eslint/non-react.cjs +14 -0
- package/dist/esm/lint-config/eslint/react.cjs +26 -0
- package/dist/esm/lint-config/eslint/typescript/common.cjs +43 -0
- package/dist/esm/lint-config/eslint/typescript/non-react.cjs +12 -0
- package/dist/esm/lint-config/eslint/typescript/react.cjs +19 -0
- package/dist/esm/lint-config/lint-staged.config.js +15 -0
- package/dist/esm/lint-config/prettier.config.cjs +8 -0
- package/dist/esm/lint-config/stylelint.config.cjs +19 -0
- package/dist/esm/monorepo/delete-merged-tags.js +38 -0
- package/dist/esm/monorepo/set-registry-version.js +21 -0
- package/dist/esm/monorepo/set-workspace-version.js +22 -0
- package/dist/esm/monorepo/utils.cjs +30 -0
- package/dist/esm/package.json +4 -0
- package/dist/esm/pui-config.js +18 -0
- package/dist/esm/release.config.cjs +31 -0
- package/dist/esm/server/app-routes.cjs +42 -0
- package/dist/esm/server/csp.js +66 -0
- package/dist/esm/server/index.js +18 -0
- package/dist/esm/server/logger.js +28 -0
- package/dist/esm/server/middlewares.js +46 -0
- package/dist/esm/server/utils.js +10 -0
- package/dist/esm/testing/jest.config.cjs +102 -0
- package/dist/esm/testing/jest.node.config.cjs +8 -0
- package/{lib → dist/esm}/testing/mocks/axios.js +8 -5
- package/dist/esm/testing/mocks/cssModule.js +4 -0
- package/dist/esm/testing/mocks/html.js +4 -0
- package/dist/esm/testing/mocks/image.js +4 -0
- package/dist/esm/testing/mocks/matchMedia.js +24 -0
- package/dist/esm/testing/mocks/pui-app-loader.js +5 -0
- package/dist/esm/testing/mocks/pui-diagnostics.js +49 -0
- package/dist/esm/testing/mocks/pui-user-monitoring.js +11 -0
- package/dist/esm/testing/mocks/retry-axios.js +8 -0
- package/dist/esm/testing/mocks/svg.js +7 -0
- package/dist/esm/testing/mocks/webpack-hmr.js +5 -0
- package/dist/esm/testing/resolver.cjs +47 -0
- package/dist/esm/testing/setup-react-env.js +3 -0
- package/dist/esm/testing/setup-tests.js +48 -0
- package/dist/esm/testing/vitest.config.js +17 -0
- package/dist/esm/testing/vitest.setup.js +0 -0
- package/dist/esm/transpile/.swcrc +11 -0
- package/dist/esm/transpile/esbuild.js +118 -0
- package/dist/esm/transpile/react-shim.js +4 -0
- package/dist/esm/transpile/swcrc.config.cjs +13 -0
- package/dist/esm/typescript/app.tsconfig.json +23 -0
- package/dist/esm/typescript/library.tsconfig.json +23 -0
- package/dist/esm/update-notifier.js +11 -0
- package/dist/esm/utils.cjs +23 -0
- package/dist/esm/webpack/helpers.js +196 -0
- package/dist/esm/webpack/webpack.base.babel.js +248 -0
- package/dist/esm/webpack/webpack.dev.babel.js +121 -0
- package/dist/esm/webpack/webpack.lib.base.babel.js +208 -0
- package/dist/esm/webpack/webpack.lib.dev.babel.js +45 -0
- package/dist/esm/webpack/webpack.lib.prod.babel.js +70 -0
- package/dist/esm/webpack/webpack.prod.babel.js +122 -0
- package/dist/esm/webpack/webpack.storybook.js +102 -0
- package/dist/types/babel.config.d.cts +59 -0
- package/dist/types/cli.d.ts +2 -0
- package/dist/types/commands/build.d.ts +14 -0
- package/dist/types/commands/codemod.d.ts +6 -0
- package/dist/types/commands/gendoc.d.ts +6 -0
- package/dist/types/commands/lint.d.ts +29 -0
- package/dist/types/commands/pack.d.ts +26 -0
- package/dist/types/commands/start.d.ts +13 -0
- package/dist/types/commands/storybook.d.ts +19 -0
- package/dist/types/commands/test.d.ts +35 -0
- package/dist/types/commands/tscheck.d.ts +14 -0
- package/dist/types/commands/utils.d.ts +14 -0
- package/dist/types/commands/version.d.ts +30 -0
- package/dist/types/commands/vitest.d.ts +35 -0
- package/dist/types/dummy.d.ts +0 -0
- package/dist/types/index.d.cts +10 -0
- package/dist/types/index.d.ts +10 -0
- package/dist/types/lint-config/commitlint.config.d.cts +4 -0
- package/dist/types/lint-config/eslint/common.d.cts +127 -0
- package/dist/types/lint-config/eslint/non-react.d.cts +93 -0
- package/dist/types/lint-config/eslint/react.d.cts +123 -0
- package/dist/types/lint-config/eslint/typescript/common.d.cts +37 -0
- package/dist/types/lint-config/eslint/typescript/non-react.d.cts +87 -0
- package/dist/types/lint-config/eslint/typescript/react.d.cts +118 -0
- package/dist/types/lint-config/lint-staged.config.d.ts +5 -0
- package/dist/types/lint-config/prettier.config.d.cts +8 -0
- package/dist/types/lint-config/stylelint.config.d.cts +11 -0
- package/dist/types/monorepo/delete-merged-tags.d.ts +1 -0
- package/dist/types/monorepo/set-registry-version.d.ts +1 -0
- package/dist/types/monorepo/set-workspace-version.d.ts +1 -0
- package/dist/types/monorepo/utils.d.cts +1 -0
- package/dist/types/pui-config.d.ts +1 -0
- package/dist/types/release.config.d.cts +9 -0
- package/dist/types/server/app-routes.d.cts +1 -0
- package/dist/types/server/csp.d.ts +10 -0
- package/dist/types/server/index.d.ts +1 -0
- package/dist/types/server/logger.d.ts +4 -0
- package/dist/types/server/middlewares.d.ts +2 -0
- package/dist/types/server/utils.d.ts +3 -0
- package/dist/types/testing/jest.config.d.cts +38 -0
- package/dist/types/testing/jest.node.config.d.cts +38 -0
- package/dist/types/testing/mocks/axios.d.ts +17 -0
- package/dist/types/testing/mocks/cssModule.d.ts +2 -0
- package/dist/types/testing/mocks/html.d.ts +2 -0
- package/dist/types/testing/mocks/image.d.ts +2 -0
- package/dist/types/testing/mocks/matchMedia.d.ts +1 -0
- package/dist/types/testing/mocks/pui-app-loader.d.ts +1 -0
- package/dist/types/testing/mocks/pui-diagnostics.d.ts +28 -0
- package/dist/types/testing/mocks/pui-user-monitoring.d.ts +3 -0
- package/dist/types/testing/mocks/retry-axios.d.ts +3 -0
- package/dist/types/testing/mocks/svg.d.ts +3 -0
- package/dist/types/testing/mocks/webpack-hmr.d.ts +1 -0
- package/dist/types/testing/resolver.d.cts +2 -0
- package/dist/types/testing/setup-react-env.d.ts +1 -0
- package/dist/types/testing/setup-tests.d.ts +1 -0
- package/dist/types/testing/vitest.config.d.ts +2 -0
- package/dist/types/testing/vitest.setup.d.ts +0 -0
- package/dist/types/transpile/esbuild.d.ts +13 -0
- package/dist/types/transpile/react-shim.d.ts +2 -0
- package/dist/types/transpile/swcrc.config.d.cts +1 -0
- package/dist/types/update-notifier.d.ts +1 -0
- package/dist/types/utils.d.cts +4 -0
- package/dist/types/webpack/helpers.d.ts +28 -0
- package/dist/types/webpack/webpack.base.babel.d.ts +90 -0
- package/dist/types/webpack/webpack.dev.babel.d.ts +2 -0
- package/dist/types/webpack/webpack.lib.base.babel.d.ts +107 -0
- package/dist/types/webpack/webpack.lib.dev.babel.d.ts +91 -0
- package/dist/types/webpack/webpack.lib.prod.babel.d.ts +91 -0
- package/dist/types/webpack/webpack.prod.babel.d.ts +2 -0
- package/dist/types/webpack/webpack.storybook.d.ts +4 -0
- package/package.json +55 -39
- package/lib/cli-commands/build.js +0 -60
- package/lib/cli-commands/codemod.js +0 -31
- package/lib/cli-commands/gendoc.js +0 -36
- package/lib/cli-commands/lint.js +0 -75
- package/lib/cli-commands/pack.js +0 -67
- package/lib/cli-commands/start.js +0 -49
- package/lib/cli-commands/storybook.js +0 -53
- package/lib/cli-commands/test.js +0 -63
- package/lib/cli-commands/tsc.js +0 -103
- package/lib/cli-commands/utils.js +0 -135
- package/lib/cli-commands/version.js +0 -53
- package/lib/cli-commands/vitest.js +0 -66
- package/lib/cli.js +0 -33
- package/lib/docgen/jsdoc.config.js +0 -17
- package/lib/index.js +0 -25
- package/lib/lint/commitlint.config.js +0 -1
- package/lib/lint/lint-staged.config.js +0 -16
- package/lib/monorepo/delete-merged-tags.js +0 -48
- package/lib/monorepo/set-registry-version.js +0 -22
- package/lib/monorepo/set-workspace-version.js +0 -29
- package/lib/monorepo/utils.js +0 -15
- package/lib/pui-config/index.js +0 -18
- package/lib/scripts/helpers/checkmark.js +0 -15
- package/lib/scripts/helpers/get-npm-config.js +0 -3
- package/lib/scripts/helpers/progress.js +0 -19
- package/lib/scripts/helpers/xmark.js +0 -13
- package/lib/scripts/npmcheckversion.js +0 -8
- package/lib/scripts/update-notifier.js +0 -7
- package/lib/server/csp.js +0 -74
- package/lib/server/index.js +0 -37
- package/lib/server/logger.js +0 -42
- package/lib/server/middlewares/addDevMiddlewares.js +0 -39
- package/lib/server/middlewares/addProdMiddlewares.js +0 -30
- package/lib/server/middlewares/index.js +0 -37
- package/lib/testing/mocks/cssModule.js +0 -1
- package/lib/testing/mocks/html.js +0 -1
- package/lib/testing/mocks/image.js +0 -1
- package/lib/testing/mocks/matchMedia.js +0 -24
- package/lib/testing/mocks/pui-app-loader.js +0 -1
- package/lib/testing/mocks/pui-diagnostics.js +0 -28
- package/lib/testing/mocks/pui-user-monitoring.js +0 -3
- package/lib/testing/mocks/retry-axios.js +0 -3
- package/lib/testing/mocks/svg.js +0 -5
- package/lib/testing/mocks/webpack-hmr.js +0 -1
- package/lib/testing/setup-react-env.js +0 -3
- package/lib/testing/setup-tests.js +0 -58
- package/lib/testing/vitest.config.ts +0 -16
- package/lib/transpile/esbuild.js +0 -116
- package/lib/transpile/react-shim.js +0 -2
- package/lib/typescript/tsc-files/index.js +0 -66
- package/lib/typescript/tsc-files/utils.js +0 -16
- package/lib/typescript/util.js +0 -5
- package/lib/webpack/helpers.js +0 -252
- package/lib/webpack/webpack.base.babel.js +0 -242
- package/lib/webpack/webpack.dev.babel.js +0 -137
- package/lib/webpack/webpack.lib.base.babel.js +0 -205
- package/lib/webpack/webpack.lib.dev.babel.js +0 -49
- package/lib/webpack/webpack.lib.prod.babel.js +0 -77
- package/lib/webpack/webpack.prod.babel.js +0 -142
- package/lib/webpack/webpack.storybook.js +0 -87
|
@@ -0,0 +1,48 @@
|
|
|
1
|
+
import "core-js/stable";
|
|
2
|
+
import "regenerator-runtime/runtime";
|
|
3
|
+
import "@testing-library/jest-dom/extend-expect";
|
|
4
|
+
import jestAxe from "jest-axe";
|
|
5
|
+
import ResizeObserver from "resize-observer-polyfill";
|
|
6
|
+
import { addMatchMedia } from "./mocks/matchMedia.js";
|
|
7
|
+
import { logger } from "./mocks/pui-diagnostics.js";
|
|
8
|
+
const originalError = console.error;
|
|
9
|
+
console.error = (...args) => {
|
|
10
|
+
const ignoreList = [
|
|
11
|
+
`Warning: Can't perform a React state update on an unmounted component`,
|
|
12
|
+
`Warning: Function components cannot be given refs`,
|
|
13
|
+
`Warning: Failed %s type:`,
|
|
14
|
+
`Warning: Invalid DOM property`,
|
|
15
|
+
`Warning: Each child in a list should have a unique`,
|
|
16
|
+
"Warning: Received `%s` for a non-boolean attribute",
|
|
17
|
+
"Warning: <%s /> is using incorrect casing.",
|
|
18
|
+
"Warning: The tag <%s> is unrecognized in this browser",
|
|
19
|
+
"Warning: Invalid arguments supplied to oneOf"
|
|
20
|
+
];
|
|
21
|
+
if (ignoreList.find((ignoreMsg) => !!args.find((arg) => arg?.includes?.(ignoreMsg))))
|
|
22
|
+
return false;
|
|
23
|
+
return originalError(...args);
|
|
24
|
+
};
|
|
25
|
+
if (expect)
|
|
26
|
+
expect.extend(jestAxe.toHaveNoViolations);
|
|
27
|
+
jest.setTimeout(6e4);
|
|
28
|
+
const addElementToBody = (element) => {
|
|
29
|
+
const documentEle = (window || {}).document;
|
|
30
|
+
if (!documentEle)
|
|
31
|
+
return null;
|
|
32
|
+
const bodyEle = documentEle.body;
|
|
33
|
+
const newEle = documentEle.createElement(...element);
|
|
34
|
+
if (!newEle)
|
|
35
|
+
return null;
|
|
36
|
+
bodyEle.appendChild(newEle);
|
|
37
|
+
return newEle;
|
|
38
|
+
};
|
|
39
|
+
const addRootElement = (id) => {
|
|
40
|
+
const rootEle = addElementToBody("div");
|
|
41
|
+
if (rootEle)
|
|
42
|
+
rootEle.id = id;
|
|
43
|
+
};
|
|
44
|
+
addRootElement("root");
|
|
45
|
+
addMatchMedia();
|
|
46
|
+
window.ResizeObserver = ResizeObserver;
|
|
47
|
+
window.emui = {};
|
|
48
|
+
window.emui.logger = logger();
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
import { defineConfig } from "vite";
|
|
2
|
+
import path from "path";
|
|
3
|
+
var vitest_config_default = defineConfig({
|
|
4
|
+
test: {
|
|
5
|
+
globals: true,
|
|
6
|
+
root: process.cwd(),
|
|
7
|
+
exclude: ["node_modules", "dist", ".idea", ".git", ".cache", "e2e"],
|
|
8
|
+
setupFiles: [path.resolve(__dirname, "./vitest.setup.ts")],
|
|
9
|
+
coverage: {
|
|
10
|
+
reportsDirectory: "./reports/coverage"
|
|
11
|
+
},
|
|
12
|
+
environment: "happy-dom"
|
|
13
|
+
}
|
|
14
|
+
});
|
|
15
|
+
export {
|
|
16
|
+
vitest_config_default as default
|
|
17
|
+
};
|
|
File without changes
|
|
@@ -0,0 +1,118 @@
|
|
|
1
|
+
var __defProp = Object.defineProperty;
|
|
2
|
+
var __defProps = Object.defineProperties;
|
|
3
|
+
var __getOwnPropDescs = Object.getOwnPropertyDescriptors;
|
|
4
|
+
var __getOwnPropSymbols = Object.getOwnPropertySymbols;
|
|
5
|
+
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
6
|
+
var __propIsEnum = Object.prototype.propertyIsEnumerable;
|
|
7
|
+
var __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
|
|
8
|
+
var __spreadValues = (a, b) => {
|
|
9
|
+
for (var prop in b || (b = {}))
|
|
10
|
+
if (__hasOwnProp.call(b, prop))
|
|
11
|
+
__defNormalProp(a, prop, b[prop]);
|
|
12
|
+
if (__getOwnPropSymbols)
|
|
13
|
+
for (var prop of __getOwnPropSymbols(b)) {
|
|
14
|
+
if (__propIsEnum.call(b, prop))
|
|
15
|
+
__defNormalProp(a, prop, b[prop]);
|
|
16
|
+
}
|
|
17
|
+
return a;
|
|
18
|
+
};
|
|
19
|
+
var __spreadProps = (a, b) => __defProps(a, __getOwnPropDescs(b));
|
|
20
|
+
import path from "node:path";
|
|
21
|
+
import { fileURLToPath } from "node:url";
|
|
22
|
+
import fg from "fast-glob";
|
|
23
|
+
import { build } from "esbuild";
|
|
24
|
+
import { writeFile, copyFile, readFile, mkdir } from "node:fs/promises";
|
|
25
|
+
import browserslistToEsbuild from "browserslist-to-esbuild";
|
|
26
|
+
const __dirname = path.dirname(fileURLToPath(import.meta.url));
|
|
27
|
+
const TARGETS = {
|
|
28
|
+
browserslist: browserslistToEsbuild(),
|
|
29
|
+
web: "es2020",
|
|
30
|
+
node: "node14"
|
|
31
|
+
};
|
|
32
|
+
const ESBUILD_FORMAT = {
|
|
33
|
+
CJS: "cjs",
|
|
34
|
+
ESM: "esm"
|
|
35
|
+
};
|
|
36
|
+
const NODE_MODULE_TYPES = {
|
|
37
|
+
CJS: "commonjs",
|
|
38
|
+
ESM: "module"
|
|
39
|
+
};
|
|
40
|
+
const getCommonConfig = ({ injectReactShim }) => ({
|
|
41
|
+
bundle: false,
|
|
42
|
+
loader: { ".js": "jsx" },
|
|
43
|
+
mainFields: ["module", "browser", "main"],
|
|
44
|
+
inject: [
|
|
45
|
+
injectReactShim ? path.resolve(__dirname, "./react-shim.js") : ""
|
|
46
|
+
].filter(Boolean)
|
|
47
|
+
});
|
|
48
|
+
const copyFiles = async ({ srcdir, outdir }) => {
|
|
49
|
+
const files = await fg([
|
|
50
|
+
`${srcdir}/**/*.*`,
|
|
51
|
+
`${srcdir}/**/.swcrc`,
|
|
52
|
+
`!${srcdir}/**/*.{js,jsx,ts,tsx,mjs}`
|
|
53
|
+
]);
|
|
54
|
+
await Promise.all(files.map(async (srcFilePath) => {
|
|
55
|
+
const destFilePath = srcFilePath.replace(srcdir, outdir);
|
|
56
|
+
const fileDir = path.dirname(destFilePath);
|
|
57
|
+
await mkdir(fileDir, { recursive: true });
|
|
58
|
+
await copyFile(srcFilePath, destFilePath);
|
|
59
|
+
}));
|
|
60
|
+
};
|
|
61
|
+
const getSideEffects = async () => {
|
|
62
|
+
const data = await readFile(path.join(process.cwd(), "./package.json"));
|
|
63
|
+
const packageJSON = JSON.parse(data);
|
|
64
|
+
return packageJSON?.sideEffects || false;
|
|
65
|
+
};
|
|
66
|
+
const createPackageJson = async ({ outdir, type = NODE_MODULE_TYPES.ESM }) => {
|
|
67
|
+
const filePath = path.join(process.cwd(), outdir, "package.json");
|
|
68
|
+
const packageJSON = JSON.stringify({
|
|
69
|
+
type,
|
|
70
|
+
sideEffects: await getSideEffects()
|
|
71
|
+
}, null, 2);
|
|
72
|
+
await writeFile(filePath, packageJSON);
|
|
73
|
+
};
|
|
74
|
+
const esBuild = async ({
|
|
75
|
+
srcdir,
|
|
76
|
+
outdir = "dist",
|
|
77
|
+
esmOnly = false,
|
|
78
|
+
target = TARGETS.browserslist,
|
|
79
|
+
injectReactShim = true,
|
|
80
|
+
skipNestedPackageJSON = false
|
|
81
|
+
}) => {
|
|
82
|
+
const inputFiles = [
|
|
83
|
+
`${srcdir}/**/*.{js,jsx,ts,tsx}`,
|
|
84
|
+
`!${srcdir}/**/*.d.ts`,
|
|
85
|
+
`!${srcdir}/**/*.test.{js,jsx,ts,tsx}`,
|
|
86
|
+
`!${srcdir}/**/*.stories.{js,jsx,ts,tsx}`,
|
|
87
|
+
`!${srcdir}/**/*.endpoint.{js,jsx,ts,tsx}`
|
|
88
|
+
];
|
|
89
|
+
if (!esmOnly) {
|
|
90
|
+
const cjsOutdir = `${outdir}/cjs`;
|
|
91
|
+
const commonJSEntryPoints = await fg(inputFiles);
|
|
92
|
+
await build(__spreadProps(__spreadValues({
|
|
93
|
+
entryPoints: commonJSEntryPoints
|
|
94
|
+
}, getCommonConfig({ injectReactShim })), {
|
|
95
|
+
outdir: cjsOutdir,
|
|
96
|
+
format: ESBUILD_FORMAT.CJS,
|
|
97
|
+
target
|
|
98
|
+
}));
|
|
99
|
+
await copyFiles({ srcdir, outdir: cjsOutdir });
|
|
100
|
+
await createPackageJson({ outdir: cjsOutdir, type: NODE_MODULE_TYPES.CJS });
|
|
101
|
+
}
|
|
102
|
+
const esmOutdir = esmOnly ? outdir : `${outdir}/esm`;
|
|
103
|
+
const entryPoints = await fg(inputFiles.concat([`!${srcdir}/**/cjs/**/*.{js,jsx,ts,tsx}`]));
|
|
104
|
+
await build(__spreadProps(__spreadValues({
|
|
105
|
+
entryPoints
|
|
106
|
+
}, getCommonConfig({ injectReactShim })), {
|
|
107
|
+
outdir: esmOutdir,
|
|
108
|
+
format: ESBUILD_FORMAT.ESM,
|
|
109
|
+
target
|
|
110
|
+
}));
|
|
111
|
+
await copyFiles({ srcdir, outdir: esmOutdir });
|
|
112
|
+
if (!skipNestedPackageJSON)
|
|
113
|
+
await createPackageJson({ outdir: esmOutdir, type: NODE_MODULE_TYPES.ESM });
|
|
114
|
+
};
|
|
115
|
+
export {
|
|
116
|
+
TARGETS,
|
|
117
|
+
esBuild
|
|
118
|
+
};
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
const fs = require('fs');
|
|
2
|
+
const path = require('path');
|
|
3
|
+
const { merge } = require('lodash');
|
|
4
|
+
|
|
5
|
+
let projectConfig = {};
|
|
6
|
+
const projectPath = path.join(process.cwd(), '.swcrc');
|
|
7
|
+
if (fs.existsSync(projectPath)) {
|
|
8
|
+
projectConfig = JSON.parse(fs.readFileSync(projectPath, 'utf-8'));
|
|
9
|
+
}
|
|
10
|
+
const localConfig = JSON.parse(
|
|
11
|
+
fs.readFileSync(path.join(__dirname, '.swcrc'), 'utf-8'),
|
|
12
|
+
);
|
|
13
|
+
exports.swcrcConfig = merge(localConfig, projectConfig);
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
{
|
|
2
|
+
"compilerOptions": {
|
|
3
|
+
"lib": ["dom", "dom.iterable", "esnext"],
|
|
4
|
+
"module": "ES2020",
|
|
5
|
+
"target": "ES2015",
|
|
6
|
+
"allowJs": true,
|
|
7
|
+
"allowSyntheticDefaultImports": true,
|
|
8
|
+
"esModuleInterop": true,
|
|
9
|
+
"forceConsistentCasingInFileNames": true,
|
|
10
|
+
"isolatedModules": true,
|
|
11
|
+
"jsx": "react-jsx",
|
|
12
|
+
"moduleResolution": "node",
|
|
13
|
+
"noEmit": true,
|
|
14
|
+
"noFallthroughCasesInSwitch": true,
|
|
15
|
+
"resolveJsonModule": true,
|
|
16
|
+
"skipLibCheck": true,
|
|
17
|
+
"strict": true,
|
|
18
|
+
"preserveConstEnums": true,
|
|
19
|
+
"sourceMap": true
|
|
20
|
+
},
|
|
21
|
+
"$schema": "https://json.schemastore.org/tsconfig",
|
|
22
|
+
"display": "pui-cli app"
|
|
23
|
+
}
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
{
|
|
2
|
+
"compilerOptions": {
|
|
3
|
+
"lib": ["dom", "dom.iterable", "esnext"],
|
|
4
|
+
"moduleResolution": "node",
|
|
5
|
+
"target": "ES2020",
|
|
6
|
+
"module": "ES2020",
|
|
7
|
+
"allowJs": true,
|
|
8
|
+
"allowSyntheticDefaultImports": true,
|
|
9
|
+
"strict": true,
|
|
10
|
+
"esModuleInterop": true,
|
|
11
|
+
"skipLibCheck": true,
|
|
12
|
+
"jsx": "react-jsx",
|
|
13
|
+
"noFallthroughCasesInSwitch": true,
|
|
14
|
+
"resolveJsonModule": true,
|
|
15
|
+
"forceConsistentCasingInFileNames": true,
|
|
16
|
+
"preserveConstEnums": true,
|
|
17
|
+
"sourceMap": true,
|
|
18
|
+
"declaration": true,
|
|
19
|
+
"emitDeclarationOnly": true
|
|
20
|
+
},
|
|
21
|
+
"$schema": "https://json.schemastore.org/tsconfig",
|
|
22
|
+
"display": "pui-cli library"
|
|
23
|
+
}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import updateNotifier from "update-notifier";
|
|
2
|
+
import path from "node:path";
|
|
3
|
+
import fs from "node:fs/promises";
|
|
4
|
+
const notifyUpdates = async () => {
|
|
5
|
+
const pkgFile = await fs.readFile(path.join(process.cwd(), "./package.json"));
|
|
6
|
+
const pkg = JSON.parse(pkgFile);
|
|
7
|
+
updateNotifier({ pkg }).notify();
|
|
8
|
+
};
|
|
9
|
+
export {
|
|
10
|
+
notifyUpdates
|
|
11
|
+
};
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
const path = require('path');
|
|
2
|
+
const fs = require('fs');
|
|
3
|
+
|
|
4
|
+
exports.basePath = (process.env.BASE_PATH || '/').replace(/\/?$/, '/');
|
|
5
|
+
|
|
6
|
+
const isApp = () => fs.existsSync(path.join(process.cwd(), 'app'));
|
|
7
|
+
|
|
8
|
+
exports.getAppConfig = () => {
|
|
9
|
+
const appConfigPath = path.join(
|
|
10
|
+
process.cwd(),
|
|
11
|
+
isApp() ? 'app' : 'lib',
|
|
12
|
+
'app.config.json',
|
|
13
|
+
);
|
|
14
|
+
|
|
15
|
+
if (!fs.existsSync(appConfigPath)) return '{}';
|
|
16
|
+
const appConfig = fs.readFileSync(appConfigPath);
|
|
17
|
+
return appConfig || '{}';
|
|
18
|
+
};
|
|
19
|
+
|
|
20
|
+
exports.isApp = isApp;
|
|
21
|
+
|
|
22
|
+
exports.isTypeScriptEnabled = () =>
|
|
23
|
+
fs.existsSync(path.join(process.cwd(), 'tsconfig.json'));
|
|
@@ -0,0 +1,196 @@
|
|
|
1
|
+
var __defProp = Object.defineProperty;
|
|
2
|
+
var __defProps = Object.defineProperties;
|
|
3
|
+
var __getOwnPropDescs = Object.getOwnPropertyDescriptors;
|
|
4
|
+
var __getOwnPropSymbols = Object.getOwnPropertySymbols;
|
|
5
|
+
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
6
|
+
var __propIsEnum = Object.prototype.propertyIsEnumerable;
|
|
7
|
+
var __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
|
|
8
|
+
var __spreadValues = (a, b) => {
|
|
9
|
+
for (var prop in b || (b = {}))
|
|
10
|
+
if (__hasOwnProp.call(b, prop))
|
|
11
|
+
__defNormalProp(a, prop, b[prop]);
|
|
12
|
+
if (__getOwnPropSymbols)
|
|
13
|
+
for (var prop of __getOwnPropSymbols(b)) {
|
|
14
|
+
if (__propIsEnum.call(b, prop))
|
|
15
|
+
__defNormalProp(a, prop, b[prop]);
|
|
16
|
+
}
|
|
17
|
+
return a;
|
|
18
|
+
};
|
|
19
|
+
var __spreadProps = (a, b) => __defProps(a, __getOwnPropDescs(b));
|
|
20
|
+
import path from "node:path";
|
|
21
|
+
import fs from "node:fs";
|
|
22
|
+
import _ from "lodash";
|
|
23
|
+
import CompressionPlugin from "compression-webpack-plugin";
|
|
24
|
+
import zlib from "zlib";
|
|
25
|
+
import { findMonoRepoRoot } from "../monorepo/utils.cjs";
|
|
26
|
+
import { basePath, getAppConfig } from "../utils.cjs";
|
|
27
|
+
let pathSep = path.sep;
|
|
28
|
+
if (pathSep === "\\")
|
|
29
|
+
pathSep = "\\\\";
|
|
30
|
+
const LATEST_VERSION = "latest";
|
|
31
|
+
const getNodeModulesRegEx = (modules) => modules.map((modName) => new RegExp(`node_modules${pathSep}${modName.replace("/", pathSep)}`));
|
|
32
|
+
const excludeNodeModulesExcept = (modules) => {
|
|
33
|
+
const moduleRegExps = getNodeModulesRegEx(modules);
|
|
34
|
+
return function(modulePath) {
|
|
35
|
+
if (/node_modules/.test(modulePath)) {
|
|
36
|
+
for (let i = 0; i < moduleRegExps.length; i += 1)
|
|
37
|
+
if (moduleRegExps[i].test(modulePath))
|
|
38
|
+
return false;
|
|
39
|
+
return true;
|
|
40
|
+
}
|
|
41
|
+
return false;
|
|
42
|
+
};
|
|
43
|
+
};
|
|
44
|
+
const getLibraryName = () => {
|
|
45
|
+
const packageJson = JSON.parse(fs.readFileSync(path.join(process.cwd(), "package.json")));
|
|
46
|
+
const libraryName = packageJson ? packageJson.name : process.env.LIBRARY_NAME || "mylibrary";
|
|
47
|
+
const modifiedLibName = `emui-${libraryName.replace("@elliemae/", "").replace("pui-", "")}`;
|
|
48
|
+
return _.camelCase(modifiedLibName);
|
|
49
|
+
};
|
|
50
|
+
const mapToFolder = (dependencies, folder) => dependencies.reduce((acc, dependency) => __spreadValues({
|
|
51
|
+
[dependency]: path.resolve(`${folder}/${dependency.replace("$", "")}`)
|
|
52
|
+
}, acc), {});
|
|
53
|
+
const getAlias = () => {
|
|
54
|
+
const monorepoRoot = findMonoRepoRoot(process.cwd()) || "";
|
|
55
|
+
return mapToFolder([
|
|
56
|
+
"@babel/runtime",
|
|
57
|
+
"react",
|
|
58
|
+
"react-dom",
|
|
59
|
+
"react-redux",
|
|
60
|
+
"redux",
|
|
61
|
+
"redux-saga",
|
|
62
|
+
"moment",
|
|
63
|
+
"lodash",
|
|
64
|
+
"styled-components",
|
|
65
|
+
"immer",
|
|
66
|
+
"react-dates",
|
|
67
|
+
"react-transition-group",
|
|
68
|
+
"@elliemae/pui-cli",
|
|
69
|
+
"@elliemae/pui-app-sdk$",
|
|
70
|
+
"@elliemae/pui-theme$"
|
|
71
|
+
], path.join(monorepoRoot, "./node_modules"));
|
|
72
|
+
};
|
|
73
|
+
const modulesToTranspile = [
|
|
74
|
+
"@elliemae/pui-*",
|
|
75
|
+
"@elliemae/ds-*",
|
|
76
|
+
"@dnd-kit/*",
|
|
77
|
+
"@elliemae/em-platform-document-viewer"
|
|
78
|
+
];
|
|
79
|
+
const getUserMonitoringFileName = () => {
|
|
80
|
+
const libName = "emuiUserMonitoring";
|
|
81
|
+
const userMonLibPath = path.join(process.cwd(), "node_modules/@elliemae/pui-user-monitoring/dist/public/js");
|
|
82
|
+
if (!fs.existsSync(userMonLibPath))
|
|
83
|
+
return `${libName}.js`;
|
|
84
|
+
const distJSFiles = fs.readdirSync(userMonLibPath);
|
|
85
|
+
return distJSFiles.filter((fName) => fName.match(/emuiUserMonitoring+((?!chunk).)*\.js$/))[0];
|
|
86
|
+
};
|
|
87
|
+
const getAppLoaderFileName = () => {
|
|
88
|
+
const libName = "emuiAppLoader";
|
|
89
|
+
const appLoaderLibPath = path.join(process.cwd(), "node_modules/@elliemae/pui-app-loader/dist/public/js");
|
|
90
|
+
if (!fs.existsSync(appLoaderLibPath))
|
|
91
|
+
return `${libName}.js`;
|
|
92
|
+
const distJSFiles = fs.readdirSync(appLoaderLibPath);
|
|
93
|
+
return distJSFiles.filter((fName) => fName.match(/emuiAppLoader+((?!chunk).)*\.js$/))[0];
|
|
94
|
+
};
|
|
95
|
+
const getDiagnosticsFileName = () => {
|
|
96
|
+
const libName = "emuiDiagnostics";
|
|
97
|
+
const libPath = path.join(process.cwd(), "node_modules/@elliemae/pui-diagnostics/dist/public/js");
|
|
98
|
+
if (!fs.existsSync(libPath))
|
|
99
|
+
return `${libName}.js`;
|
|
100
|
+
const distJSFiles = fs.readdirSync(libPath);
|
|
101
|
+
return distJSFiles.filter((fName) => fName.match(/emuiDiagnostics+((?!chunk).)*\.js$/))[0];
|
|
102
|
+
};
|
|
103
|
+
const getENCWLoaderFileName = () => {
|
|
104
|
+
const libName = "emuiEncwLoader";
|
|
105
|
+
const appLoaderLibPath = path.join(process.cwd(), "node_modules/@elliemae/encw-loader/dist/public/js");
|
|
106
|
+
if (!fs.existsSync(appLoaderLibPath))
|
|
107
|
+
return `${libName}.js`;
|
|
108
|
+
const distJSFiles = fs.readdirSync(appLoaderLibPath);
|
|
109
|
+
return distJSFiles.filter((fName) => fName.match(/emuiEncwLoader+((?!chunk).)*\.js$/))[0];
|
|
110
|
+
};
|
|
111
|
+
const getAppVersion = () => {
|
|
112
|
+
if (!process.env.APP_VERSION)
|
|
113
|
+
return LATEST_VERSION;
|
|
114
|
+
const match = process.env.APP_VERSION.match(/^v?(\d+\.\d+)\..*$/);
|
|
115
|
+
return match && match[1] || LATEST_VERSION;
|
|
116
|
+
};
|
|
117
|
+
const getPaths = (latestVersion = true) => {
|
|
118
|
+
const version = latestVersion ? LATEST_VERSION : getAppVersion();
|
|
119
|
+
const publicPath = `${version}/`;
|
|
120
|
+
const timeStampQuery = process.env.PUI_PIPELINE !== "true" ? `?timeStamp=${Date.now()}` : "";
|
|
121
|
+
return {
|
|
122
|
+
appVersion: version,
|
|
123
|
+
buildPath: path.resolve(process.cwd(), `build/public/`),
|
|
124
|
+
basePath,
|
|
125
|
+
publicPath,
|
|
126
|
+
userMonScriptPath: `latest/js/${getUserMonitoringFileName()}`,
|
|
127
|
+
appLoaderScriptPath: `latest/js/${getAppLoaderFileName()}`,
|
|
128
|
+
diagnosticsScriptPath: `latest/js/${getDiagnosticsFileName()}`,
|
|
129
|
+
globalScriptPath: `latest/js/global.js${timeStampQuery}`,
|
|
130
|
+
encwLoaderScriptPath: `latest/js/${getENCWLoaderFileName()}`
|
|
131
|
+
};
|
|
132
|
+
};
|
|
133
|
+
const isAppLoaderEnabled = () => process.env.APP_LOADER === "true";
|
|
134
|
+
const getMediaPath = () => `assets/[name].[contenthash].[ext]`;
|
|
135
|
+
const isGoogleTagManagerEnabled = () => {
|
|
136
|
+
const appConfig = JSON.parse(getAppConfig());
|
|
137
|
+
return !!appConfig?.googleTagManager;
|
|
138
|
+
};
|
|
139
|
+
const getCompressionPlugins = (isLibrary = false) => {
|
|
140
|
+
const excludeList = [
|
|
141
|
+
/\/adrum-ext/,
|
|
142
|
+
/\/emuiUserMonitoring/,
|
|
143
|
+
/\/emuiDiagnostics/,
|
|
144
|
+
/\/emuiAppLoader/,
|
|
145
|
+
/\/encwLoader/
|
|
146
|
+
];
|
|
147
|
+
const commonConfig = {
|
|
148
|
+
test: /\.(js|css)$/,
|
|
149
|
+
exclude: !isLibrary ? excludeList : [],
|
|
150
|
+
minRatio: Infinity
|
|
151
|
+
};
|
|
152
|
+
return [
|
|
153
|
+
new CompressionPlugin(__spreadValues({
|
|
154
|
+
filename: "[path][base].gz",
|
|
155
|
+
algorithm: "gzip"
|
|
156
|
+
}, commonConfig)),
|
|
157
|
+
new CompressionPlugin(__spreadProps(__spreadValues({
|
|
158
|
+
filename: "[path][base].br",
|
|
159
|
+
algorithm: "brotliCompress"
|
|
160
|
+
}, commonConfig), {
|
|
161
|
+
compressionOptions: {
|
|
162
|
+
params: {
|
|
163
|
+
[zlib.constants.BROTLI_PARAM_QUALITY]: 11
|
|
164
|
+
}
|
|
165
|
+
}
|
|
166
|
+
}))
|
|
167
|
+
];
|
|
168
|
+
};
|
|
169
|
+
const filterByFilePresence = (patterns) => patterns.filter(({ from, noErrorOnMissing }) => !noErrorOnMissing || fs.existsSync(path.resolve(process.cwd(), from)));
|
|
170
|
+
const resolveExtensions = [
|
|
171
|
+
".wasm",
|
|
172
|
+
".mjs",
|
|
173
|
+
".ts",
|
|
174
|
+
".tsx",
|
|
175
|
+
".js",
|
|
176
|
+
".jsx",
|
|
177
|
+
".json"
|
|
178
|
+
];
|
|
179
|
+
const mainFields = ["browser", "module", "main"];
|
|
180
|
+
export {
|
|
181
|
+
LATEST_VERSION,
|
|
182
|
+
excludeNodeModulesExcept,
|
|
183
|
+
filterByFilePresence,
|
|
184
|
+
getAlias,
|
|
185
|
+
getAppVersion,
|
|
186
|
+
getCompressionPlugins,
|
|
187
|
+
getLibraryName,
|
|
188
|
+
getMediaPath,
|
|
189
|
+
getPaths,
|
|
190
|
+
isAppLoaderEnabled,
|
|
191
|
+
isGoogleTagManagerEnabled,
|
|
192
|
+
mainFields,
|
|
193
|
+
mapToFolder,
|
|
194
|
+
modulesToTranspile,
|
|
195
|
+
resolveExtensions
|
|
196
|
+
};
|