@zengenti/contensis-react-base 4.0.1-beta.0 → 4.0.1-beta.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/cjs/{App-Bg1MzW4V.js → App-95IjaQXT.js} +26 -22
- package/cjs/App-95IjaQXT.js.map +1 -0
- package/cjs/{ChangePassword.container-C4Du3Wb1.js → ChangePassword.container-CVwXfQjB.js} +7 -5
- package/cjs/ChangePassword.container-CVwXfQjB.js.map +1 -0
- package/cjs/{ContensisDeliveryApi-MfcvdfDR.js → ContensisDeliveryApi-vsHVQ_Ci.js} +46 -21
- package/cjs/ContensisDeliveryApi-vsHVQ_Ci.js.map +1 -0
- package/cjs/{RouteLoader-DJeM8cym.js → RouteLoader-NjuQ0VMn.js} +11 -7
- package/cjs/RouteLoader-NjuQ0VMn.js.map +1 -0
- package/cjs/{SSRContext-tMufQDHY.js → SSRContext-WPN0QwEg.js} +2 -2
- package/cjs/{SSRContext-tMufQDHY.js.map → SSRContext-WPN0QwEg.js.map} +1 -1
- package/cjs/{VersionInfo-zFPsvS8q.js → VersionInfo-BygZuA9D.js} +3 -3
- package/cjs/{VersionInfo-zFPsvS8q.js.map → VersionInfo-BygZuA9D.js.map} +1 -1
- package/cjs/build.js +219 -0
- package/cjs/build.js.map +1 -0
- package/cjs/client.js +13 -13
- package/cjs/contensis-react-base.js +27 -23
- package/cjs/contensis-react-base.js.map +1 -1
- package/cjs/dev-server-globals.js +21 -0
- package/cjs/dev-server-globals.js.map +1 -0
- package/cjs/{matchGroups-dqONU-vY.js → matchGroups-D8QZEd1p.js} +2 -2
- package/cjs/{matchGroups-dqONU-vY.js.map → matchGroups-D8QZEd1p.js.map} +1 -1
- package/cjs/redux.js +7 -7
- package/cjs/redux.js.map +1 -1
- package/cjs/routing.js +10 -10
- package/cjs/{sagas-BCy9u6zA.js → sagas-BG31QdkC.js} +8 -6
- package/cjs/sagas-BG31QdkC.js.map +1 -0
- package/cjs/search.js +6 -6
- package/cjs/{selectors-BrxJ8-F8.js → selectors-BnaBk5xL.js} +24 -20
- package/cjs/selectors-BnaBk5xL.js.map +1 -0
- package/cjs/{store-B7SJs5Hf.js → store-Ccwrx5Do.js} +14 -8
- package/cjs/store-Ccwrx5Do.js.map +1 -0
- package/cjs/user.js +3 -3
- package/cjs/{util-eOjxDjxF.js → util-LE7KTRCU.js} +5 -2
- package/cjs/util-LE7KTRCU.js.map +1 -0
- package/cjs/util.js +6 -6
- package/cjs/{version-yjHMrfVz.js → version-AE19NqSo.js} +3 -3
- package/cjs/{version-yjHMrfVz.js.map → version-AE19NqSo.js.map} +1 -1
- package/cjs/{version-rFG9Y6_B.js → version-CaRCM9vq.js} +2 -2
- package/cjs/{version-rFG9Y6_B.js.map → version-CaRCM9vq.js.map} +1 -1
- package/esm/{App-Bplaqueq.js → App-DvfrUH4b.js} +27 -23
- package/esm/App-DvfrUH4b.js.map +1 -0
- package/esm/{ChangePassword.container-CUBtn82K.js → ChangePassword.container-BlSy5eHk.js} +8 -6
- package/esm/ChangePassword.container-BlSy5eHk.js.map +1 -0
- package/esm/{ContensisDeliveryApi-LWYXevZ1.js → ContensisDeliveryApi-Czq1gBOi.js} +46 -21
- package/esm/ContensisDeliveryApi-Czq1gBOi.js.map +1 -0
- package/esm/{RouteLoader-CzrlySZf.js → RouteLoader-CAVJs2rj.js} +14 -10
- package/esm/RouteLoader-CAVJs2rj.js.map +1 -0
- package/esm/{SSRContext-Bxtg1KGv.js → SSRContext-DqqZUlqT.js} +2 -2
- package/esm/{SSRContext-Bxtg1KGv.js.map → SSRContext-DqqZUlqT.js.map} +1 -1
- package/esm/{VersionInfo-By2ZCZOh.js → VersionInfo-BinQYaU1.js} +6 -6
- package/esm/{VersionInfo-By2ZCZOh.js.map → VersionInfo-BinQYaU1.js.map} +1 -1
- package/esm/build.js +208 -0
- package/esm/build.js.map +1 -0
- package/esm/client.js +15 -15
- package/esm/contensis-react-base.js +29 -25
- package/esm/contensis-react-base.js.map +1 -1
- package/esm/dev-server-globals.js +15 -0
- package/esm/dev-server-globals.js.map +1 -0
- package/esm/i18n.js +2 -2
- package/esm/{matchGroups-_w8BwzCC.js → matchGroups-C2_rxOIO.js} +3 -3
- package/esm/{matchGroups-_w8BwzCC.js.map → matchGroups-C2_rxOIO.js.map} +1 -1
- package/esm/redux.js +7 -7
- package/esm/routing.js +7 -7
- package/esm/{sagas-Fr9yRduO.js → sagas-BN4gNmmc.js} +10 -8
- package/esm/sagas-BN4gNmmc.js.map +1 -0
- package/esm/search.js +9 -9
- package/esm/{selectors-DcmvOeX2.js → selectors-D4ulaTom.js} +2 -2
- package/esm/{selectors-DcmvOeX2.js.map → selectors-D4ulaTom.js.map} +1 -1
- package/esm/{selectors-8ROQrTd7.js → selectors-Dj45vPZR.js} +21 -13
- package/esm/selectors-Dj45vPZR.js.map +1 -0
- package/esm/{store-B4IrBYHm.js → store-Cxe7mlLh.js} +16 -10
- package/esm/store-Cxe7mlLh.js.map +1 -0
- package/esm/user.js +5 -5
- package/esm/{util-Bl2u6LpY.js → util-DHWbLSvO.js} +6 -3
- package/esm/util-DHWbLSvO.js.map +1 -0
- package/esm/util.js +6 -6
- package/esm/{version-CA9Mdm3A.js → version-Cy-gb20a.js} +4 -4
- package/esm/{version-CA9Mdm3A.js.map → version-Cy-gb20a.js.map} +1 -1
- package/esm/{version-BQAL8sQO.js → version-hQnuV0n7.js} +3 -3
- package/esm/{version-BQAL8sQO.js.map → version-hQnuV0n7.js.map} +1 -1
- package/models/build/cli.d.ts +2 -0
- package/models/build/dev-server-runtime-globals.d.ts +1 -0
- package/models/build/dev-server.d.ts +12 -0
- package/models/i18n/redux/slice.d.ts +170 -60
- package/models/models/config/ServerConfig.d.ts +9 -0
- package/models/routing/redux/actions.d.ts +17 -1
- package/models/routing/redux/selectors.d.ts +4 -4
- package/models/routing/redux/types.d.ts +1 -1
- package/models/search/redux/sagas.d.ts +1 -1
- package/models/server/features/reverse-proxy/index.d.ts +3 -2
- package/models/user/redux/sagas/login.d.ts +1 -1
- package/models/user/util/OidcUserManager.d.ts +2 -18
- package/models/util/ContensisDeliveryApi.d.ts +1 -1
- package/models/util/donotuse_useHistory.d.ts +3 -3
- package/models/util/env.d.ts +1 -0
- package/models/util/navigation.d.ts +1 -1
- package/package.json +56 -39
- package/cjs/App-Bg1MzW4V.js.map +0 -1
- package/cjs/ChangePassword.container-C4Du3Wb1.js.map +0 -1
- package/cjs/ContensisDeliveryApi-MfcvdfDR.js.map +0 -1
- package/cjs/RouteLoader-DJeM8cym.js.map +0 -1
- package/cjs/sagas-BCy9u6zA.js.map +0 -1
- package/cjs/selectors-BrxJ8-F8.js.map +0 -1
- package/cjs/store-B7SJs5Hf.js.map +0 -1
- package/cjs/util-eOjxDjxF.js.map +0 -1
- package/esm/App-Bplaqueq.js.map +0 -1
- package/esm/ChangePassword.container-CUBtn82K.js.map +0 -1
- package/esm/ContensisDeliveryApi-LWYXevZ1.js.map +0 -1
- package/esm/RouteLoader-CzrlySZf.js.map +0 -1
- package/esm/sagas-Fr9yRduO.js.map +0 -1
- package/esm/selectors-8ROQrTd7.js.map +0 -1
- package/esm/store-B4IrBYHm.js.map +0 -1
- package/esm/util-Bl2u6LpY.js.map +0 -1
package/cjs/build.js
ADDED
|
@@ -0,0 +1,219 @@
|
|
|
1
|
+
#!/usr/bin/env node
|
|
2
|
+
'use strict';
|
|
3
|
+
|
|
4
|
+
var cac = require('cac');
|
|
5
|
+
var child_process = require('child_process');
|
|
6
|
+
var path = require('path');
|
|
7
|
+
var fs = require('fs');
|
|
8
|
+
var dotenv = require('dotenv');
|
|
9
|
+
var nodemon = require('nodemon');
|
|
10
|
+
var webpack = require('webpack');
|
|
11
|
+
var WebpackDevServer = require('webpack-dev-server');
|
|
12
|
+
|
|
13
|
+
function _interopDefault (e) { return e && e.__esModule ? e : { default: e }; }
|
|
14
|
+
|
|
15
|
+
var path__default = /*#__PURE__*/_interopDefault(path);
|
|
16
|
+
var fs__default = /*#__PURE__*/_interopDefault(fs);
|
|
17
|
+
var dotenv__default = /*#__PURE__*/_interopDefault(dotenv);
|
|
18
|
+
var nodemon__default = /*#__PURE__*/_interopDefault(nodemon);
|
|
19
|
+
var webpack__default = /*#__PURE__*/_interopDefault(webpack);
|
|
20
|
+
var WebpackDevServer__default = /*#__PURE__*/_interopDefault(WebpackDevServer);
|
|
21
|
+
|
|
22
|
+
const projectRoot = process.cwd();
|
|
23
|
+
const DEVSERVER_RUNTIME_GLOBALS = path__default.default.resolve(__dirname, 'dev-server-globals.js');
|
|
24
|
+
function runDev(args) {
|
|
25
|
+
const configPath = args.config;
|
|
26
|
+
const devHost = args.devHost || 'localhost';
|
|
27
|
+
const devPort = args.devPort || '3000';
|
|
28
|
+
const devListen = args.devListen || '0.0.0.0';
|
|
29
|
+
const openBrowser = args.open !== false;
|
|
30
|
+
|
|
31
|
+
// --inspect-brk takes precedence over --inspect.
|
|
32
|
+
// A bare flag (no port value) resolves to true in cac — treat that as the default port.
|
|
33
|
+
const resolveInspectPort = val => val === true || val === undefined ? '9229' : String(val);
|
|
34
|
+
const inspectNodeArg = args.inspectBrk !== undefined ? `--inspect-brk=${resolveInspectPort(args.inspectBrk)}` : `--inspect=${resolveInspectPort(args.inspect)}`;
|
|
35
|
+
|
|
36
|
+
// Validate --config option
|
|
37
|
+
if (!configPath) {
|
|
38
|
+
console.error('[crb] ❌ Error: --config option is required');
|
|
39
|
+
console.log('Usage: crb dev --config <path-to-webpack-config> [--dev-host <host>] [--dev-port <port>] [--dev-listen <host>] [--inspect[=port]] [--inspect-brk[=port]]');
|
|
40
|
+
process.exit(1);
|
|
41
|
+
}
|
|
42
|
+
console.info('[crb] 🚀 Starting SSR dev server pipeline');
|
|
43
|
+
const resolvedConfigPath = path__default.default.resolve(projectRoot, configPath);
|
|
44
|
+
|
|
45
|
+
// Check config file exists
|
|
46
|
+
if (!fs__default.default.existsSync(resolvedConfigPath)) {
|
|
47
|
+
console.error(`[crb] ❌ Error: Config file not found: ${resolvedConfigPath}`);
|
|
48
|
+
process.exit(1);
|
|
49
|
+
}
|
|
50
|
+
|
|
51
|
+
// Set default host and port
|
|
52
|
+
process.env.DEV_HOST = devHost;
|
|
53
|
+
process.env.DEV_PORT = devPort;
|
|
54
|
+
|
|
55
|
+
// Load .env file
|
|
56
|
+
const envFilePath = path__default.default.resolve(projectRoot, args.envFile || '.env');
|
|
57
|
+
try {
|
|
58
|
+
dotenv__default.default.config({
|
|
59
|
+
path: envFilePath
|
|
60
|
+
});
|
|
61
|
+
} catch (e) {
|
|
62
|
+
const msg = e instanceof Error ? e.message : String(e);
|
|
63
|
+
console.error(`[crb] ❌ Error: Failed to load env file (${envFilePath}): ${msg}`);
|
|
64
|
+
process.exit(1);
|
|
65
|
+
}
|
|
66
|
+
|
|
67
|
+
// Validate required environment variables
|
|
68
|
+
const REQUIRED_ENV = ['ALIAS', 'PROJECT', 'ACCESS_TOKEN'];
|
|
69
|
+
const missingEnv = REQUIRED_ENV.filter(k => !process.env[k] || !process.env[k].trim());
|
|
70
|
+
if (missingEnv.length) {
|
|
71
|
+
console.error(`[crb] ❌ Error: Cannot start dev server. Missing required env vars: ${missingEnv.join(', ')}. ` + `Set them in a .env file at the project root or export them in your shell.`);
|
|
72
|
+
process.exit(1);
|
|
73
|
+
}
|
|
74
|
+
|
|
75
|
+
// Load project webpack config
|
|
76
|
+
let webpackConfig;
|
|
77
|
+
try {
|
|
78
|
+
webpackConfig = require(resolvedConfigPath);
|
|
79
|
+
} catch (e) {
|
|
80
|
+
const msg = e instanceof Error ? e.message : String(e);
|
|
81
|
+
console.error(`[crb] ❌ Error: Failed to load webpack config: ${msg}`);
|
|
82
|
+
process.exit(1);
|
|
83
|
+
}
|
|
84
|
+
|
|
85
|
+
// Validate webpack config is an array (dual-target mode)
|
|
86
|
+
if (!Array.isArray(webpackConfig)) {
|
|
87
|
+
console.error(`[crb] ❌ Error: webpack config must be an array [clientConfig, serverConfig]. ` + `The config appears to be a single object (CSR/ANALYZE mode). ` + `Use the unified webpack.config.js for SSR dev mode.`);
|
|
88
|
+
process.exit(1);
|
|
89
|
+
}
|
|
90
|
+
const [clientConfig, serverConfig] = webpackConfig;
|
|
91
|
+
|
|
92
|
+
// State flags for orchestration
|
|
93
|
+
let clientReady = false;
|
|
94
|
+
let serverReady = false;
|
|
95
|
+
let nodemonStarted = false;
|
|
96
|
+
let browserOpened = false;
|
|
97
|
+
|
|
98
|
+
// Nodemon reference for cleanup
|
|
99
|
+
let nodemonInstance = null;
|
|
100
|
+
|
|
101
|
+
// Dev server options
|
|
102
|
+
const devServerOptions = {
|
|
103
|
+
host: devListen,
|
|
104
|
+
port: parseInt(devPort, 10),
|
|
105
|
+
headers: {
|
|
106
|
+
'Access-Control-Allow-Origin': '*'
|
|
107
|
+
},
|
|
108
|
+
hot: true,
|
|
109
|
+
historyApiFallback: true,
|
|
110
|
+
devMiddleware: {
|
|
111
|
+
index: 'index_csr.html',
|
|
112
|
+
writeToDisk: true
|
|
113
|
+
}
|
|
114
|
+
// TODO: Add proxy config from bundle-info.js (DEVSERVER_PROXIES)
|
|
115
|
+
// to proxy API calls and reverse proxy paths to CMS/IIS
|
|
116
|
+
};
|
|
117
|
+
|
|
118
|
+
// Create dual webpack compilers (single config each → single Compiler, not MultiCompiler)
|
|
119
|
+
const clientCompiler = webpack__default.default(clientConfig);
|
|
120
|
+
const nodeServerCompiler = webpack__default.default(serverConfig);
|
|
121
|
+
|
|
122
|
+
// Start nodemon when both compilers are ready
|
|
123
|
+
function startNodemon() {
|
|
124
|
+
if (nodemonStarted) return;
|
|
125
|
+
nodemonStarted = true;
|
|
126
|
+
console.info('[crb] 🎯 Starting nodemon...');
|
|
127
|
+
nodemonInstance = nodemon__default.default({
|
|
128
|
+
script: 'dist/server-dev.js',
|
|
129
|
+
ext: 'js json',
|
|
130
|
+
watch: ['dist/server-dev.js'],
|
|
131
|
+
nodeArgs: [inspectNodeArg, '-r', DEVSERVER_RUNTIME_GLOBALS]
|
|
132
|
+
}).on('start', () => {
|
|
133
|
+
console.info('[nodemon] started. Now starting local web server at port 3001, with hot-reload enabled.');
|
|
134
|
+
if (openBrowser && !browserOpened) {
|
|
135
|
+
browserOpened = true;
|
|
136
|
+
try {
|
|
137
|
+
const cmd = process.platform === 'win32' ? 'start' : process.platform === 'darwin' ? 'open' : 'xdg-open';
|
|
138
|
+
child_process.execSync(`${cmd} http://${process.env.DEV_HOST}:3001/`, {
|
|
139
|
+
windowsHide: true
|
|
140
|
+
});
|
|
141
|
+
} catch {
|
|
142
|
+
console.info(`Please open http://${process.env.DEV_HOST}:3001/ in your browser`);
|
|
143
|
+
}
|
|
144
|
+
}
|
|
145
|
+
}).on('crash', () => {
|
|
146
|
+
console.error('[nodemon] crashed');
|
|
147
|
+
});
|
|
148
|
+
}
|
|
149
|
+
|
|
150
|
+
// Server afterEmit -> start nodemon when both compilers are ready
|
|
151
|
+
nodeServerCompiler.hooks.afterEmit.tap('serverAfterEmitPlugin', () => {
|
|
152
|
+
if (serverReady) return;
|
|
153
|
+
serverReady = true;
|
|
154
|
+
if (clientReady) {
|
|
155
|
+
startNodemon();
|
|
156
|
+
}
|
|
157
|
+
});
|
|
158
|
+
|
|
159
|
+
// Start server compiler watch immediately
|
|
160
|
+
console.info('[crb] 📦 Starting server compiler...');
|
|
161
|
+
nodeServerCompiler.watch({}, (err, stats) => {
|
|
162
|
+
if (err) {
|
|
163
|
+
return console.error(err);
|
|
164
|
+
}
|
|
165
|
+
const statString = stats.toString();
|
|
166
|
+
process.stdout.write(statString + '\n');
|
|
167
|
+
});
|
|
168
|
+
|
|
169
|
+
// Client afterEmit -> start nodemon if server is already ready
|
|
170
|
+
clientCompiler.hooks.afterEmit.tap('clientAfterEmitPlugin', () => {
|
|
171
|
+
if (clientReady) return;
|
|
172
|
+
clientReady = true;
|
|
173
|
+
if (serverReady) {
|
|
174
|
+
startNodemon();
|
|
175
|
+
}
|
|
176
|
+
});
|
|
177
|
+
|
|
178
|
+
// Start webpack dev server
|
|
179
|
+
const devServer = new WebpackDevServer__default.default(devServerOptions, clientCompiler);
|
|
180
|
+
devServer.startCallback(err => {
|
|
181
|
+
if (err) {
|
|
182
|
+
console.error('[webpack] devServer listening failed');
|
|
183
|
+
return console.error(err);
|
|
184
|
+
}
|
|
185
|
+
console.info(`[webpack] devServer listening on port ${devPort}`);
|
|
186
|
+
});
|
|
187
|
+
|
|
188
|
+
// Cleanup on SIGTERM/SIGINT
|
|
189
|
+
function cleanup() {
|
|
190
|
+
console.info('[crb] 🛑 Shutting down...');
|
|
191
|
+
if (nodemonInstance) {
|
|
192
|
+
nodemonInstance.emit('quit');
|
|
193
|
+
}
|
|
194
|
+
devServer.stopCallback(() => {
|
|
195
|
+
console.info('[webpack] devServer stopped');
|
|
196
|
+
clientCompiler.close(() => {
|
|
197
|
+
console.info('[webpack] client compiler closed');
|
|
198
|
+
nodeServerCompiler.close(() => {
|
|
199
|
+
console.info('[webpack] server compiler closed');
|
|
200
|
+
process.exit(0);
|
|
201
|
+
});
|
|
202
|
+
});
|
|
203
|
+
});
|
|
204
|
+
}
|
|
205
|
+
process.on('SIGTERM', cleanup);
|
|
206
|
+
process.on('SIGINT', cleanup);
|
|
207
|
+
}
|
|
208
|
+
|
|
209
|
+
const cli = cac.cac('crb');
|
|
210
|
+
|
|
211
|
+
// Dev subcommand
|
|
212
|
+
cli.command('dev', 'Start the SSR dev server pipeline').option('--config <path>', 'Path to webpack config file (required)').option('--env-file <path>', 'Path to .env file (default: .env)').option('--dev-host <host>', 'webpack publicPath / HMR host (default: localhost)').option('--dev-port <port>', 'webpack-dev-server listen port (default: 3000)').option('--dev-listen <host>', 'webpack-dev-server listen host (default: 0.0.0.0)').option('--open', 'Open the browser when the SSR server starts. Use --no-open to disable. (default: true)').option('--inspect [port]', 'Enable the V8 inspector on the SSR server. Optionally specify a port (default: 9229)').option('--inspect-brk [port]', 'Enable the V8 inspector and break before the script starts — useful for debugging server startup. Optionally specify a port (default: 9229). Takes precedence over --inspect.').action(runDev);
|
|
213
|
+
cli.help();
|
|
214
|
+
cli.parse();
|
|
215
|
+
if (!cli.matchedCommand) {
|
|
216
|
+
cli.outputHelp();
|
|
217
|
+
process.exit(1);
|
|
218
|
+
}
|
|
219
|
+
//# sourceMappingURL=build.js.map
|
package/cjs/build.js.map
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"build.js","sources":["../src/build/dev-server.ts","../src/build/cli.ts"],"sourcesContent":["import { execSync } from 'child_process';\nimport path from 'path';\nimport fs from 'fs';\nimport dotenv from 'dotenv';\n// @ts-ignore — nodemon has no type definitions\nimport nodemon from 'nodemon';\nimport webpack from 'webpack';\nimport WebpackDevServer from 'webpack-dev-server';\nconst projectRoot = process.cwd();\nconst DEVSERVER_RUNTIME_GLOBALS = path.resolve(__dirname, 'dev-server-globals.js');\n\ninterface DevOptions {\n config?: string;\n envFile?: string;\n devHost?: string;\n devPort?: string;\n devListen?: string;\n open?: boolean;\n inspect?: boolean | string;\n inspectBrk?: boolean | string;\n}\n\nexport function runDev(args: DevOptions): void {\n const configPath = args.config;\n const devHost = args.devHost || 'localhost';\n const devPort = args.devPort || '3000';\n const devListen = args.devListen || '0.0.0.0';\n const openBrowser = args.open !== false;\n\n // --inspect-brk takes precedence over --inspect.\n // A bare flag (no port value) resolves to true in cac — treat that as the default port.\n const resolveInspectPort = (val: boolean | string | undefined) =>\n val === true || val === undefined ? '9229' : String(val);\n const inspectNodeArg =\n args.inspectBrk !== undefined\n ? `--inspect-brk=${resolveInspectPort(args.inspectBrk)}`\n : `--inspect=${resolveInspectPort(args.inspect)}`;\n\n // Validate --config option\n if (!configPath) {\n console.error('[crb] ❌ Error: --config option is required');\n console.log(\n 'Usage: crb dev --config <path-to-webpack-config> [--dev-host <host>] [--dev-port <port>] [--dev-listen <host>] [--inspect[=port]] [--inspect-brk[=port]]'\n );\n process.exit(1);\n }\n\n console.info('[crb] 🚀 Starting SSR dev server pipeline');\n\n const resolvedConfigPath = path.resolve(projectRoot, configPath);\n\n // Check config file exists\n if (!fs.existsSync(resolvedConfigPath)) {\n console.error(\n `[crb] ❌ Error: Config file not found: ${resolvedConfigPath}`\n );\n process.exit(1);\n }\n\n // Set default host and port\n process.env.DEV_HOST = devHost;\n process.env.DEV_PORT = devPort;\n\n // Load .env file\n const envFilePath = path.resolve(projectRoot, args.envFile || '.env');\n try {\n dotenv.config({ path: envFilePath });\n } catch (e: unknown) {\n const msg = e instanceof Error ? e.message : String(e);\n console.error(\n `[crb] ❌ Error: Failed to load env file (${envFilePath}): ${msg}`\n );\n process.exit(1);\n }\n\n // Validate required environment variables\n const REQUIRED_ENV: string[] = ['ALIAS', 'PROJECT', 'ACCESS_TOKEN'];\n const missingEnv = REQUIRED_ENV.filter(\n (k) => !process.env[k] || !process.env[k].trim()\n );\n if (missingEnv.length) {\n console.error(\n `[crb] ❌ Error: Cannot start dev server. Missing required env vars: ${missingEnv.join(', ')}. ` +\n `Set them in a .env file at the project root or export them in your shell.`\n );\n process.exit(1);\n }\n\n // Load project webpack config\n let webpackConfig: unknown;\n try {\n webpackConfig = require(resolvedConfigPath);\n } catch (e: unknown) {\n const msg = e instanceof Error ? e.message : String(e);\n console.error(\n `[crb] ❌ Error: Failed to load webpack config: ${msg}`\n );\n process.exit(1);\n }\n\n // Validate webpack config is an array (dual-target mode)\n if (!Array.isArray(webpackConfig)) {\n console.error(\n `[crb] ❌ Error: webpack config must be an array [clientConfig, serverConfig]. ` +\n `The config appears to be a single object (CSR/ANALYZE mode). ` +\n `Use the unified webpack.config.js for SSR dev mode.`\n );\n process.exit(1);\n }\n\n const [clientConfig, serverConfig] = webpackConfig as [webpack.Configuration, webpack.Configuration];\n\n // State flags for orchestration\n let clientReady = false;\n let serverReady = false;\n let nodemonStarted = false;\n let browserOpened = false;\n\n // Nodemon reference for cleanup\n let nodemonInstance: ReturnType<typeof nodemon> | null = null;\n\n // Dev server options\n const devServerOptions = {\n host: devListen,\n port: parseInt(devPort, 10),\n headers: { 'Access-Control-Allow-Origin': '*' },\n hot: true,\n historyApiFallback: true,\n devMiddleware: {\n index: 'index_csr.html',\n writeToDisk: true,\n },\n // TODO: Add proxy config from bundle-info.js (DEVSERVER_PROXIES)\n // to proxy API calls and reverse proxy paths to CMS/IIS\n };\n\n // Create dual webpack compilers (single config each → single Compiler, not MultiCompiler)\n const clientCompiler = webpack(clientConfig);\n const nodeServerCompiler = webpack(serverConfig);\n\n // Start nodemon when both compilers are ready\n function startNodemon(): void {\n if (nodemonStarted) return;\n nodemonStarted = true;\n\n console.info('[crb] 🎯 Starting nodemon...');\n nodemonInstance = nodemon({\n script: 'dist/server-dev.js',\n ext: 'js json',\n watch: ['dist/server-dev.js'],\n nodeArgs: [\n inspectNodeArg,\n '-r',\n DEVSERVER_RUNTIME_GLOBALS,\n ],\n })\n .on('start', () => {\n console.info(\n '[nodemon] started. Now starting local web server at port 3001, with hot-reload enabled.'\n );\n if (openBrowser && !browserOpened) {\n browserOpened = true;\n try {\n const cmd =\n process.platform === 'win32'\n ? 'start'\n : process.platform === 'darwin'\n ? 'open'\n : 'xdg-open';\n execSync(`${cmd} http://${process.env.DEV_HOST}:3001/`, {\n windowsHide: true,\n });\n } catch {\n console.info(\n `Please open http://${process.env.DEV_HOST}:3001/ in your browser`\n );\n }\n }\n })\n .on('crash', () => {\n console.error('[nodemon] crashed');\n });\n }\n\n // Server afterEmit -> start nodemon when both compilers are ready\n nodeServerCompiler.hooks.afterEmit.tap('serverAfterEmitPlugin', () => {\n if (serverReady) return;\n serverReady = true;\n\n if (clientReady) {\n startNodemon();\n }\n });\n\n // Start server compiler watch immediately\n console.info('[crb] 📦 Starting server compiler...');\n nodeServerCompiler.watch({}, (err, stats) => {\n if (err) {\n return console.error(err);\n }\n const statString = stats!.toString();\n process.stdout.write(statString + '\\n');\n });\n\n // Client afterEmit -> start nodemon if server is already ready\n clientCompiler.hooks.afterEmit.tap('clientAfterEmitPlugin', () => {\n if (clientReady) return;\n clientReady = true;\n\n if (serverReady) {\n startNodemon();\n }\n });\n\n // Start webpack dev server\n const devServer = new WebpackDevServer(devServerOptions, clientCompiler);\n\n devServer.startCallback((err) => {\n if (err) {\n console.error('[webpack] devServer listening failed');\n return console.error(err);\n }\n console.info(`[webpack] devServer listening on port ${devPort}`);\n });\n\n // Cleanup on SIGTERM/SIGINT\n function cleanup(): void {\n console.info('[crb] 🛑 Shutting down...');\n if (nodemonInstance) {\n nodemonInstance.emit('quit');\n }\n devServer.stopCallback(() => {\n console.info('[webpack] devServer stopped');\n clientCompiler.close(() => {\n console.info('[webpack] client compiler closed');\n nodeServerCompiler.close(() => {\n console.info('[webpack] server compiler closed');\n process.exit(0);\n });\n });\n });\n }\n\n process.on('SIGTERM', cleanup);\n process.on('SIGINT', cleanup);\n}\n","#!/usr/bin/env node\n\nimport { cac } from 'cac';\nimport { runDev } from './dev-server';\n\nconst cli = cac('crb');\n\n// Dev subcommand\ncli\n .command('dev', 'Start the SSR dev server pipeline')\n .option('--config <path>', 'Path to webpack config file (required)')\n .option('--env-file <path>', 'Path to .env file (default: .env)')\n .option(\n '--dev-host <host>',\n 'webpack publicPath / HMR host (default: localhost)'\n )\n .option('--dev-port <port>', 'webpack-dev-server listen port (default: 3000)')\n .option(\n '--dev-listen <host>',\n 'webpack-dev-server listen host (default: 0.0.0.0)'\n )\n .option(\n '--open',\n 'Open the browser when the SSR server starts. Use --no-open to disable. (default: true)'\n )\n .option(\n '--inspect [port]',\n 'Enable the V8 inspector on the SSR server. Optionally specify a port (default: 9229)'\n )\n .option(\n '--inspect-brk [port]',\n 'Enable the V8 inspector and break before the script starts — useful for debugging server startup. Optionally specify a port (default: 9229). Takes precedence over --inspect.'\n )\n .action(runDev);\n\ncli.help();\n\ncli.parse();\nif (!cli.matchedCommand) {\n cli.outputHelp();\n process.exit(1);\n}\n"],"names":["projectRoot","process","cwd","DEVSERVER_RUNTIME_GLOBALS","path","resolve","__dirname","runDev","args","configPath","config","devHost","devPort","devListen","openBrowser","open","resolveInspectPort","val","undefined","String","inspectNodeArg","inspectBrk","inspect","console","error","log","exit","info","resolvedConfigPath","fs","existsSync","env","DEV_HOST","DEV_PORT","envFilePath","envFile","dotenv","e","msg","Error","message","REQUIRED_ENV","missingEnv","filter","k","trim","length","join","webpackConfig","require","Array","isArray","clientConfig","serverConfig","clientReady","serverReady","nodemonStarted","browserOpened","nodemonInstance","devServerOptions","host","port","parseInt","headers","hot","historyApiFallback","devMiddleware","index","writeToDisk","clientCompiler","webpack","nodeServerCompiler","startNodemon","nodemon","script","ext","watch","nodeArgs","on","cmd","platform","execSync","windowsHide","hooks","afterEmit","tap","err","stats","statString","toString","stdout","write","devServer","WebpackDevServer","startCallback","cleanup","emit","stopCallback","close","cli","cac","command","option","action","help","parse","matchedCommand","outputHelp"],"mappings":"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"}
|
package/cjs/client.js
CHANGED
|
@@ -11,38 +11,38 @@ var component = require('@loadable/component');
|
|
|
11
11
|
var queryString = require('query-string');
|
|
12
12
|
var reactCookie = require('react-cookie');
|
|
13
13
|
var reactHelmetAsync = require('react-helmet-async');
|
|
14
|
-
var App = require('./App-
|
|
14
|
+
var App = require('./App-95IjaQXT.js');
|
|
15
15
|
var slice = require('./slice-5xJMH24n.js');
|
|
16
|
-
var version = require('./version-
|
|
17
|
-
var version$1 = require('./version-
|
|
18
|
-
var store = require('./store-
|
|
19
|
-
var selectors = require('./selectors-
|
|
20
|
-
var ContensisDeliveryApi = require('./ContensisDeliveryApi-
|
|
21
|
-
var SSRContext = require('./SSRContext-
|
|
16
|
+
var version = require('./version-CaRCM9vq.js');
|
|
17
|
+
var version$1 = require('./version-AE19NqSo.js');
|
|
18
|
+
var store = require('./store-Ccwrx5Do.js');
|
|
19
|
+
var selectors = require('./selectors-BnaBk5xL.js');
|
|
20
|
+
var ContensisDeliveryApi = require('./ContensisDeliveryApi-vsHVQ_Ci.js');
|
|
21
|
+
var SSRContext = require('./SSRContext-WPN0QwEg.js');
|
|
22
22
|
require('history');
|
|
23
23
|
require('@redux-saga/core/effects');
|
|
24
24
|
require('loglevel');
|
|
25
25
|
require('await-to-js');
|
|
26
26
|
require('redux-saga');
|
|
27
27
|
require('contensis-delivery-api');
|
|
28
|
-
require('./VersionInfo-
|
|
28
|
+
require('./VersionInfo-BygZuA9D.js');
|
|
29
29
|
require('./_commonjsHelpers-BJu3ubxk.js');
|
|
30
30
|
require('jsonpath-mapper');
|
|
31
31
|
require('styled-components');
|
|
32
32
|
require('./selectors-DAQR0uZa.js');
|
|
33
|
-
require('./ChangePassword.container-
|
|
34
|
-
require('./matchGroups-
|
|
33
|
+
require('./ChangePassword.container-CVwXfQjB.js');
|
|
34
|
+
require('./matchGroups-D8QZEd1p.js');
|
|
35
35
|
require('./CookieConstants-DfPiWCRZ.js');
|
|
36
36
|
require('./CookieHelper.class-Det3qfdU.js');
|
|
37
37
|
require('./ToJs-BsWqWjdm.js');
|
|
38
|
-
require('./sagas-
|
|
38
|
+
require('./sagas-BG31QdkC.js');
|
|
39
39
|
require('reselect');
|
|
40
|
-
require('./util-
|
|
40
|
+
require('./util-LE7KTRCU.js');
|
|
41
41
|
require('contensis-core-api');
|
|
42
42
|
require('deepmerge');
|
|
43
43
|
require('immer');
|
|
44
44
|
require('deep-equal');
|
|
45
|
-
require('./RouteLoader-
|
|
45
|
+
require('./RouteLoader-NjuQ0VMn.js');
|
|
46
46
|
require('@reduxjs/toolkit');
|
|
47
47
|
require('redux');
|
|
48
48
|
require('redux-thunk');
|
|
@@ -2,13 +2,13 @@
|
|
|
2
2
|
|
|
3
3
|
Object.defineProperty(exports, '__esModule', { value: true });
|
|
4
4
|
|
|
5
|
-
var ContensisDeliveryApi = require('./ContensisDeliveryApi-
|
|
5
|
+
var ContensisDeliveryApi = require('./ContensisDeliveryApi-vsHVQ_Ci.js');
|
|
6
6
|
var contensisDeliveryApi = require('contensis-delivery-api');
|
|
7
7
|
var React = require('react');
|
|
8
8
|
var reactRedux = require('react-redux');
|
|
9
9
|
var slice = require('./slice-5xJMH24n.js');
|
|
10
10
|
var mapJson = require('jsonpath-mapper');
|
|
11
|
-
var sagas = require('./sagas-
|
|
11
|
+
var sagas = require('./sagas-BG31QdkC.js');
|
|
12
12
|
require('reselect');
|
|
13
13
|
require('immer');
|
|
14
14
|
require('deep-equal');
|
|
@@ -20,7 +20,7 @@ require('isomorphic-fetch');
|
|
|
20
20
|
var express = require('express');
|
|
21
21
|
var http = require('http');
|
|
22
22
|
var httpProxy = require('http-proxy');
|
|
23
|
-
var App = require('./App-
|
|
23
|
+
var App = require('./App-95IjaQXT.js');
|
|
24
24
|
var fs = require('fs');
|
|
25
25
|
var path = require('path');
|
|
26
26
|
var appRootPath = require('app-root-path');
|
|
@@ -33,10 +33,10 @@ var lodash = require('lodash');
|
|
|
33
33
|
var lodashClean = require('lodash-clean');
|
|
34
34
|
var CookieHelper_class = require('./CookieHelper.class-Det3qfdU.js');
|
|
35
35
|
var cookiesMiddleware = require('universal-cookie-express');
|
|
36
|
-
var store = require('./store-
|
|
37
|
-
var version = require('./version-
|
|
38
|
-
var selectors = require('./selectors-
|
|
39
|
-
var RouteLoader = require('./RouteLoader-
|
|
36
|
+
var store = require('./store-Ccwrx5Do.js');
|
|
37
|
+
var version = require('./version-AE19NqSo.js');
|
|
38
|
+
var selectors = require('./selectors-BnaBk5xL.js');
|
|
39
|
+
var RouteLoader = require('./RouteLoader-NjuQ0VMn.js');
|
|
40
40
|
var stream = require('stream');
|
|
41
41
|
var server$2 = require('@loadable/server');
|
|
42
42
|
var chalk = require('chalk');
|
|
@@ -44,21 +44,21 @@ var minifyCssString = require('minify-css-string');
|
|
|
44
44
|
var reactCookie = require('react-cookie');
|
|
45
45
|
var reactHelmetAsync = require('react-helmet-async');
|
|
46
46
|
var server$3 = require('react-router-dom/server');
|
|
47
|
-
var SSRContext = require('./SSRContext-
|
|
48
|
-
require('./VersionInfo-
|
|
47
|
+
var SSRContext = require('./SSRContext-WPN0QwEg.js');
|
|
48
|
+
require('./VersionInfo-BygZuA9D.js');
|
|
49
49
|
require('./CookieConstants-DfPiWCRZ.js');
|
|
50
50
|
require('@reduxjs/toolkit');
|
|
51
51
|
require('loglevel');
|
|
52
52
|
require('@redux-saga/core/effects');
|
|
53
|
-
require('./version-
|
|
54
|
-
require('./util-
|
|
53
|
+
require('./version-CaRCM9vq.js');
|
|
54
|
+
require('./util-LE7KTRCU.js');
|
|
55
55
|
require('./selectors-DAQR0uZa.js');
|
|
56
56
|
require('./_commonjsHelpers-BJu3ubxk.js');
|
|
57
57
|
require('history');
|
|
58
58
|
require('await-to-js');
|
|
59
59
|
require('redux-saga');
|
|
60
|
-
require('./ChangePassword.container-
|
|
61
|
-
require('./matchGroups-
|
|
60
|
+
require('./ChangePassword.container-CVwXfQjB.js');
|
|
61
|
+
require('./matchGroups-D8QZEd1p.js');
|
|
62
62
|
require('./ToJs-BsWqWjdm.js');
|
|
63
63
|
require('redux');
|
|
64
64
|
require('redux-thunk');
|
|
@@ -1143,7 +1143,7 @@ const addStandardHeaders = (state, response, packagejson, groups) => {
|
|
|
1143
1143
|
try {
|
|
1144
1144
|
const routingSurrogateKeys = selectors.selectSurrogateKeys(state);
|
|
1145
1145
|
const apiCalls = selectors.selectSsrApiCalls(state);
|
|
1146
|
-
const anyApiError = !!apiCalls.find(
|
|
1146
|
+
const anyApiError = !!apiCalls.find(call => call.statusCode >= 400);
|
|
1147
1147
|
|
|
1148
1148
|
// Check length of surrogate keys and prevent potential header overflow errors in prod
|
|
1149
1149
|
// Check for any error set in the page response
|
|
@@ -1316,7 +1316,10 @@ const webApp = (app, ReactApp, config) => {
|
|
|
1316
1316
|
let isRenderingJsxToString = config.renderToString || false;
|
|
1317
1317
|
const bundleData = getBundleData(config, staticRoutePath);
|
|
1318
1318
|
const attributes = stringifyAttributes(scripts.attributes);
|
|
1319
|
-
scripts.startup =
|
|
1319
|
+
scripts.startup =
|
|
1320
|
+
// We don't need the startup script with SSR in development
|
|
1321
|
+
// as globals are baked into the client-side development bundles
|
|
1322
|
+
process.env.NODE_ENV === 'development' ? undefined : scripts.startup || startupScriptFilename;
|
|
1320
1323
|
let responseHandler = handleResponse;
|
|
1321
1324
|
if (typeof handleResponses === 'function') {
|
|
1322
1325
|
responseHandler = handleResponses;
|
|
@@ -1469,7 +1472,7 @@ const webApp = (app, ReactApp, config) => {
|
|
|
1469
1472
|
|
|
1470
1473
|
// Render the JSX server side and send response as per access method options
|
|
1471
1474
|
if (!accessMethod.DYNAMIC) {
|
|
1472
|
-
store$1.runSaga(App.rootSaga(withSagas)).toPromise().then(() => {
|
|
1475
|
+
store$1.runSaga(App.rootSaga(withSagas)).toPromise().then(async () => {
|
|
1473
1476
|
var _selectCurrentSearch;
|
|
1474
1477
|
const reduxState = store$1.getState();
|
|
1475
1478
|
let clonedState = lodashClean.buildCleaner({
|
|
@@ -1549,6 +1552,13 @@ const webApp = (app, ReactApp, config) => {
|
|
|
1549
1552
|
let title = helmet.title.toString().includes('><') ? helmetAsync.title.toString() : helmet.title.toString();
|
|
1550
1553
|
const metadata = helmetAsync.meta.toString().concat(helmetAsync.base.toString()).concat(helmetAsync.priority.toString()).concat(helmetAsync.link.toString()).concat(helmetAsync.script.toString()).concat(helmetAsync.noscript.toString()).concat(helmet.meta.toString()).concat(helmet.base.toString()).concat(helmet.link.toString()).concat(helmet.script.toString()).concat(helmet.noscript.toString());
|
|
1551
1554
|
try {
|
|
1555
|
+
var _config$styles, _loadableExtractor$mo, _loadableExtractor$mo2;
|
|
1556
|
+
// Getting style tags generated by "CSS Modules" because they will be
|
|
1557
|
+
// available to loadable stats if we have built parts of the app with CSS
|
|
1558
|
+
// plugins that are not within styled-components
|
|
1559
|
+
// Render inline styles for CSS Modules if configured
|
|
1560
|
+
const cssModuleStyles = (_config$styles = config.styles) !== null && _config$styles !== void 0 && _config$styles.inline ? await (loadableExtractor === null || loadableExtractor === void 0 || (_loadableExtractor$mo = loadableExtractor.modern) === null || _loadableExtractor$mo === void 0 ? void 0 : _loadableExtractor$mo.getInlineStyleTags()) : loadableExtractor === null || loadableExtractor === void 0 || (_loadableExtractor$mo2 = loadableExtractor.modern) === null || _loadableExtractor$mo2 === void 0 ? void 0 : _loadableExtractor$mo2.getStyleTags();
|
|
1561
|
+
|
|
1552
1562
|
/**
|
|
1553
1563
|
* Loads all page assets into the provided templateHTML
|
|
1554
1564
|
*
|
|
@@ -1559,7 +1569,6 @@ const webApp = (app, ReactApp, config) => {
|
|
|
1559
1569
|
* if the context has requested a redirect
|
|
1560
1570
|
* */
|
|
1561
1571
|
const getContextHtml = (isFinal = false, styleTags, renderedJsxMarkup) => {
|
|
1562
|
-
var _loadableExtractor$mo;
|
|
1563
1572
|
if (context.url) {
|
|
1564
1573
|
response.redirect(context.statusCode || 302, context.url);
|
|
1565
1574
|
return '';
|
|
@@ -1574,18 +1583,13 @@ const webApp = (app, ReactApp, config) => {
|
|
|
1574
1583
|
// Set response.status from React StaticRouter
|
|
1575
1584
|
if (typeof context.statusCode === 'number') response.status(context.statusCode);
|
|
1576
1585
|
const bundleTags = isFinal ? getBundleTags(loadableExtractor, scripts, staticRoutePath) : '';
|
|
1577
|
-
|
|
1578
|
-
// Getting style tags generated by "CSS Modules" because they will be
|
|
1579
|
-
// available to loadable stats if we have built parts of the app with CSS
|
|
1580
|
-
// plugins that are not within styled-components
|
|
1581
|
-
const styles = loadableExtractor === null || loadableExtractor === void 0 || (_loadableExtractor$mo = loadableExtractor.modern) === null || _loadableExtractor$mo === void 0 ? void 0 : _loadableExtractor$mo.getStyleTags();
|
|
1582
1586
|
const html = replaceHtml({
|
|
1583
1587
|
bundleTags,
|
|
1584
1588
|
html: renderedJsxMarkup,
|
|
1585
1589
|
htmlAttributes,
|
|
1586
1590
|
metadata,
|
|
1587
1591
|
state: serialisedReduxData,
|
|
1588
|
-
styleTags: `${styleTags || ''}${
|
|
1592
|
+
styleTags: `${styleTags || ''}${cssModuleStyles || ''}`,
|
|
1589
1593
|
title,
|
|
1590
1594
|
templateHTML,
|
|
1591
1595
|
templateHTMLFragment,
|