oneportal-scripts 3.7.5

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.
@@ -0,0 +1,67 @@
1
+ const fs = require("node:fs");
2
+ const evalSourceMapMiddleware = require("react-dev-utils/evalSourceMapMiddleware");
3
+ const noopServiceWorkerMiddleware = require("react-dev-utils/noopServiceWorkerMiddleware");
4
+ const ignoredFiles = require("react-dev-utils/ignoredFiles");
5
+ const redirectServedPath = require("react-dev-utils/redirectServedPathMiddleware");
6
+ const paths = require("./paths");
7
+ const getHttpsConfig = require("./getHttpsConfig");
8
+ const config = require(paths.extension);
9
+
10
+ const host = process.env.HOST || "0.0.0.0";
11
+ const sockHost = config.sockHost || "localhost";
12
+ const sockPath = config.sockPath || "/ws";
13
+ const sockPort = config.port || 13009;
14
+
15
+ module.exports = function webpackDevServerConfig(proxyConfig, allowedHost) {
16
+ return {
17
+ hot: true,
18
+ allowedHosts:
19
+ !proxyConfig || "true" === process.env.DANGEROUSLY_DISABLE_HOST_CHECK
20
+ ? "all"
21
+ : [allowedHost],
22
+ headers: {
23
+ "Access-Control-Allow-Origin": "*",
24
+ "Access-Control-Allow-Methods": "*",
25
+ "Access-Control-Allow-Headers": "*",
26
+ },
27
+ compress: true,
28
+ static: {
29
+ directory: paths.appPublic,
30
+ publicPath: [paths.publicUrlOrPath],
31
+ watch: {
32
+ ignored: ignoredFiles(paths.appSrc),
33
+ },
34
+ },
35
+ client: {
36
+ webSocketURL: {
37
+ hostname: sockHost,
38
+ pathname: sockPath,
39
+ port: sockPort,
40
+ },
41
+ overlay: {
42
+ errors: true,
43
+ warnings: false,
44
+ },
45
+ },
46
+ devMiddleware: {
47
+ publicPath: paths.publicUrlOrPath.slice(0, -1),
48
+ },
49
+ https: getHttpsConfig(),
50
+ host,
51
+ historyApiFallback: {
52
+ disableDotRule: true,
53
+ index: paths.publicUrlOrPath,
54
+ },
55
+ proxy: proxyConfig,
56
+ onBeforeSetupMiddleware(devServer) {
57
+ devServer.app.use(evalSourceMapMiddleware(devServer));
58
+ if (fs.existsSync(paths.proxySetup)) {
59
+ require(paths.proxySetup)(devServer.app);
60
+ }
61
+ },
62
+ onAfterSetupMiddleware(devServer) {
63
+ devServer.app.use(redirectServedPath(paths.publicUrlOrPath));
64
+ devServer.app.use(noopServiceWorkerMiddleware(paths.publicUrlOrPath));
65
+ },
66
+ };
67
+ };
package/package.json ADDED
@@ -0,0 +1,83 @@
1
+ {
2
+ "name": "oneportal-scripts",
3
+ "version": "3.7.5",
4
+ "description": "Build scripts and configuration for OnePortal micro-frontend projects with Module Federation support.",
5
+ "engines": {
6
+ "node": ">=14.0.0"
7
+ },
8
+ "main": "index.js",
9
+ "scripts": {
10
+ "prepublishOnly": "node prepublish.js",
11
+ "build": "node prepublish.js && node ./scripts/build.js",
12
+ "start": "node ./scripts/start.js",
13
+ "refreshVSToken": "vsts-npm-auth -config .npmrc",
14
+ "test": "echo \"Error: no test specified\" && exit 1"
15
+ },
16
+ "files": [
17
+ "bin",
18
+ "config",
19
+ "scripts"
20
+ ],
21
+ "bin": {
22
+ "oneportal-scripts": "bin/oneportal-scripts.js"
23
+ },
24
+ "author": "ShareNet Technology Solutions",
25
+ "license": "MIT",
26
+ "dependencies": {
27
+ "@babel/core": "^7.16.0",
28
+ "@babel/preset-react": "^7.16.0",
29
+ "@babel/preset-typescript": "^7.16.0",
30
+ "@efox/emp-tune-dts-plugin": "^1.3.5",
31
+ "@fluentui/react": "^8.115.1",
32
+ "@fluentui/react-charting": "^5.21.27",
33
+ "axios": "^1.6.7",
34
+ "babel-loader": "^8.2.3",
35
+ "bfj": "^7.1.0",
36
+ "bundle-loader": "^0.5.6",
37
+ "chalk": "^5.3.0",
38
+ "clean-webpack-plugin": "^4.0.0",
39
+ "copy-webpack-plugin": "^10.2.0",
40
+ "css-loader": "^6.5.1",
41
+ "css-modules-typescript-loader": "^4.0.1",
42
+ "dotenv": "^16.4.1",
43
+ "dotenv-expand": "^10.0.0",
44
+ "file-loader": "^6.2.0",
45
+ "fs-extra": "^11.2.0",
46
+ "html-webpack-plugin": "^5.5.0",
47
+ "react": "^18.3.1",
48
+ "react-dev-utils": "^12.0.1",
49
+ "react-dom": "^18.3.1",
50
+ "react-router-dom": "^6.0.2",
51
+ "sass": "^1.70.0",
52
+ "sass-loader": "^12.3.0",
53
+ "semver": "^7.3.5",
54
+ "source-map-loader": "^3.0.0",
55
+ "style-loader": "^3.3.1",
56
+ "tar": "^6.2.0",
57
+ "tar-webpack-plugin": "^0.1.1",
58
+ "terser-webpack-plugin": "^5.3.10",
59
+ "ts-loader": "^9.2.6",
60
+ "typescript": "^4.4.4",
61
+ "webpack": "^5.93.0",
62
+ "webpack-bundle-analyzer": "^4.10.2",
63
+ "webpack-dev-server": "^4.6.0",
64
+ "webpack-livereload-plugin": "^3.0.2",
65
+ "workbox-webpack-plugin": "^7.1.0"
66
+ },
67
+ "browserslist": {
68
+ "production": [
69
+ ">0.2%",
70
+ "not dead",
71
+ "not op_mini all"
72
+ ],
73
+ "development": [
74
+ "last 1 chrome version",
75
+ "last 1 firefox version",
76
+ "last 1 safari version"
77
+ ]
78
+ },
79
+ "devDependencies": {
80
+ "webpack-cli": "^5.1.4"
81
+ },
82
+ "keywords": []
83
+ }
@@ -0,0 +1,92 @@
1
+ const path = require("node:path");
2
+ const webpack = require("webpack");
3
+ const chalk = require("react-dev-utils/chalk");
4
+ const configFactory = require("../config/webpack.config");
5
+ const config = configFactory("production");
6
+ const bfj = require("bfj");
7
+ const paths = require("../config/paths");
8
+ const formatWebpackMessages = require("react-dev-utils/formatWebpackMessages");
9
+
10
+ const writeStatsJson = false;
11
+
12
+ function build() {
13
+ console.log("Creating an optimized production build....");
14
+
15
+ const compiler = webpack(config);
16
+
17
+ return new Promise((resolve, reject) => {
18
+ compiler.run((err, stats) => {
19
+ let messages;
20
+
21
+ if (err) {
22
+ if (!err.message) {
23
+ return reject(err);
24
+ }
25
+
26
+ let errMsg = err.message;
27
+
28
+ if (Object.prototype.hasOwnProperty.call(err, "postcssNode")) {
29
+ errMsg +=
30
+ "\nCompileError: Begins at CSS selector " +
31
+ err.postcssNode.selector;
32
+ }
33
+
34
+ messages = formatWebpackMessages({
35
+ errors: [errMsg],
36
+ warnings: [],
37
+ });
38
+ } else {
39
+ const statsJson = stats.toJson({
40
+ all: false,
41
+ warnings: true,
42
+ errors: true,
43
+ });
44
+
45
+ messages =
46
+ typeof statsJson === "string" ? formatWebpackMessages(statsJson) : {};
47
+ }
48
+
49
+ if (messages.errors?.length) {
50
+ if (messages.errors.length > 1) {
51
+ messages.errors.length = 1;
52
+ }
53
+ return reject(new Error(messages.errors.join("\n\n")));
54
+ }
55
+
56
+ if (
57
+ process.env.CI &&
58
+ typeof process.env.CI === "string" &&
59
+ process.env.CI.toLowerCase() !== "false" &&
60
+ messages.warnings?.length
61
+ ) {
62
+ const filteredWarnings = messages.warnings.filter(
63
+ (warning) => !/Failed to parse source map/.test(warning),
64
+ );
65
+
66
+ if (filteredWarnings.length) {
67
+ console.log(
68
+ chalk.yellow(
69
+ "\nTreating warnings as errors because process.env.CI = true.\nMost CI servers set it automatically.\n",
70
+ ),
71
+ );
72
+ return reject(new Error(filteredWarnings.join("\n\n")));
73
+ }
74
+ }
75
+
76
+ const result = {
77
+ stats,
78
+ warnings: messages ? messages.warnings : "",
79
+ };
80
+
81
+ if (writeStatsJson) {
82
+ bfj
83
+ .write(paths.appBuild + "/bundle-stats.json", stats.toJson())
84
+ .then(() => resolve(result))
85
+ .catch((error) => reject(new Error(error)));
86
+ } else {
87
+ resolve(result);
88
+ }
89
+ });
90
+ });
91
+ }
92
+ build();
@@ -0,0 +1,144 @@
1
+ const fs = require("node:fs");
2
+ const chalk = require("react-dev-utils/chalk");
3
+ const webpack = require("webpack");
4
+ const WebpackDevServer = require("webpack-dev-server");
5
+ const clearConsole = require("react-dev-utils/clearConsole");
6
+ const checkRequiredFiles = require("react-dev-utils/checkRequiredFiles");
7
+ const {
8
+ choosePort,
9
+ createCompiler,
10
+ prepareProxy,
11
+ prepareUrls,
12
+ } = require("react-dev-utils/WebpackDevServerUtils");
13
+ const openBrowser = require("react-dev-utils/openBrowser");
14
+ const semver = require("semver");
15
+ const paths = require("../config/paths");
16
+ const configFactory = require("../config/webpack.config");
17
+ const createDevServerConfig = require("../config/webpackDevServer.config");
18
+ const getClientEnvironment = require("../config/env");
19
+
20
+ const react = require(require.resolve("react", {
21
+ paths: [paths.appPath],
22
+ }));
23
+ const config = require(paths.extension);
24
+ const env = getClientEnvironment(paths.publicUrlOrPath.slice(0, -1));
25
+ const useYarn = fs.existsSync(paths.yarnLockFile);
26
+ const isInteractive = process.stdout.isTTY;
27
+
28
+ // Check required files and exit if missing
29
+ if (!checkRequiredFiles([paths.appHtml, paths.appIndexJs])) {
30
+ process.exit(1);
31
+ }
32
+
33
+ const DEFAULT_PORT = Number.parseInt(process.env.PORT, 10) || config.port;
34
+ const HOST = process.env.HOST || "0.0.0.0";
35
+
36
+ // Check browsers if HOST is set
37
+ if (process.env.HOST) {
38
+ console.log(
39
+ chalk.cyan(
40
+ "Attempting to bind to HOST environment variable: " +
41
+ chalk.yellow(chalk.bold(process.env.HOST)),
42
+ ),
43
+ );
44
+ console.log(
45
+ "If this was unintentional, check that you haven't mistakenly set it in your shell.",
46
+ );
47
+ console.log(
48
+ "Learn more here: " + chalk.yellow("https://cra.link/advanced-config"),
49
+ );
50
+ console.log();
51
+ }
52
+
53
+ const checkBrowsers = require("react-dev-utils/browsersHelper").checkBrowsers;
54
+
55
+ if (config.publicPath) {
56
+ checkBrowsers(paths.appPath, isInteractive)
57
+ .then(() => choosePort(HOST, DEFAULT_PORT))
58
+ .then((port) => {
59
+ if (port !== null) {
60
+ const webpackConfig = configFactory("development");
61
+ const protocol = process.env.HTTPS === "true" ? "https" : "http";
62
+ const appName = require(paths.appPackageJson).name;
63
+ const useTypeScript = fs.existsSync(paths.appTsConfig);
64
+
65
+ const urls = prepareUrls(
66
+ protocol,
67
+ HOST,
68
+ port,
69
+ paths.publicUrlOrPath.slice(0, -1),
70
+ );
71
+
72
+ const compiler = createCompiler({
73
+ appName,
74
+ config: webpackConfig,
75
+ urls,
76
+ useYarn,
77
+ useTypeScript,
78
+ webpack,
79
+ });
80
+
81
+ const proxy = require(paths.appPackageJson).proxy;
82
+ const proxyConfig = prepareProxy(
83
+ proxy,
84
+ paths.appPublic,
85
+ paths.publicUrlOrPath,
86
+ );
87
+
88
+ const devServerConfig = {
89
+ ...createDevServerConfig(proxyConfig, urls.lanUrlForConfig),
90
+ host: HOST,
91
+ port,
92
+ };
93
+
94
+ const devServer = new WebpackDevServer(devServerConfig, compiler);
95
+
96
+ devServer.startCallback(() => {
97
+ if (isInteractive) {
98
+ clearConsole();
99
+ }
100
+
101
+ if (env.raw.FAST_REFRESH && semver.lt(react.version, "16.10.0")) {
102
+ console.log(
103
+ chalk.yellow(
104
+ "Fast Refresh requires React 16.10 or higher. You are using React " +
105
+ react.version +
106
+ ".",
107
+ ),
108
+ );
109
+ }
110
+
111
+ console.log(chalk.cyan("Starting the development server...\n"));
112
+ openBrowser(urls.localUrlForBrowser);
113
+ });
114
+
115
+ ["SIGINT", "SIGTERM"].forEach((signal) => {
116
+ process.on(signal, () => {
117
+ devServer.close();
118
+ process.exit();
119
+ });
120
+ });
121
+
122
+ if (process.env.CI !== "true") {
123
+ process.stdin.on("end", () => {
124
+ devServer.close();
125
+ process.exit();
126
+ });
127
+ }
128
+ }
129
+ })
130
+ .catch((err) => {
131
+ if (err && err.message) {
132
+ console.error(err.message);
133
+ console.error("Build failed but continuing the process...");
134
+ }
135
+ });
136
+ } else {
137
+ console.log(
138
+ "Missing : " +
139
+ chalk.red('"publicPath": "/"') +
140
+ " in " +
141
+ chalk.yellow("extension") +
142
+ " file ",
143
+ );
144
+ }