@anansi/core 0.16.24 → 0.16.26
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +12 -0
- package/lib/scripts/floodSpouts.js +11 -0
- package/lib/scripts/index.server.js +10 -0
- package/lib/scripts/laySpouts.js +55 -0
- package/lib/scripts/scripts/getProxyMiddlewares.js +93 -0
- package/lib/scripts/scripts/getWebpackConfig.js +16 -0
- package/lib/scripts/scripts/index.js +3 -0
- package/lib/scripts/scripts/serve.js +160 -0
- package/lib/scripts/scripts/startDevserver.js +234 -0
- package/lib/scripts/scripts/types.js +2 -0
- package/lib/scripts/spouts/DocumentComponent.js +43 -0
- package/lib/scripts/spouts/antd.server.js +33 -0
- package/lib/scripts/spouts/app.js +6 -0
- package/lib/scripts/spouts/app.server.js +6 -0
- package/lib/scripts/spouts/csp.js +27 -0
- package/lib/scripts/spouts/document.js +7 -0
- package/lib/scripts/spouts/document.server.js +63 -0
- package/lib/scripts/spouts/json.js +34 -0
- package/lib/scripts/spouts/json.server.js +39 -0
- package/lib/scripts/spouts/prefetch.server.js +20 -0
- package/lib/scripts/spouts/restHooks.js +23 -0
- package/lib/scripts/spouts/restHooks.provider.js +2 -0
- package/lib/scripts/spouts/restHooks.server.js +29 -0
- package/lib/scripts/spouts/router.js +34 -0
- package/lib/scripts/spouts/router.server.js +36 -0
- package/lib/scripts/spouts/types.js +2 -0
- package/package.json +13 -23
|
@@ -0,0 +1,234 @@
|
|
|
1
|
+
#!/usr/bin/env node
|
|
2
|
+
Object.hasOwn = Object.hasOwn || /* istanbul ignore next */function hasOwn(it, key) {
|
|
3
|
+
return Object.prototype.hasOwnProperty.call(it, key);
|
|
4
|
+
};
|
|
5
|
+
import diskFs from 'fs';
|
|
6
|
+
import { createFsRequire } from 'fs-require';
|
|
7
|
+
import { createFsFromVolume, Volume } from 'memfs';
|
|
8
|
+
import path from 'path';
|
|
9
|
+
import sourceMapSupport from 'source-map-support';
|
|
10
|
+
import tmp from 'tmp';
|
|
11
|
+
import { ufs } from 'unionfs';
|
|
12
|
+
import { promisify } from 'util';
|
|
13
|
+
import webpack from 'webpack';
|
|
14
|
+
import logging from 'webpack/lib/logging/runtime.js';
|
|
15
|
+
import WebpackDevServer from 'webpack-dev-server';
|
|
16
|
+
import 'cross-fetch/dist/node-polyfill.js';
|
|
17
|
+
import { getWebpackConfig } from './getWebpackConfig.js';
|
|
18
|
+
// run directly from node
|
|
19
|
+
if ('main' in import.meta) {
|
|
20
|
+
const entrypoint = process.argv[2];
|
|
21
|
+
if (!entrypoint) {
|
|
22
|
+
console.log(`Usage: start-anansi <entrypoint-file>`);
|
|
23
|
+
process.exit(-1);
|
|
24
|
+
}
|
|
25
|
+
startDevServer(entrypoint);
|
|
26
|
+
}
|
|
27
|
+
let serverFileContents = Promise.resolve('');
|
|
28
|
+
let serverEntry = '';
|
|
29
|
+
export default async function startDevServer(entrypoint, env = {}) {
|
|
30
|
+
var _webpackConfigs$, _webpackConfigs$$devS;
|
|
31
|
+
const webpackConfig = await getWebpackConfig();
|
|
32
|
+
const log = logging.getLogger('anansi-devserver');
|
|
33
|
+
|
|
34
|
+
// Set up in memory filesystem
|
|
35
|
+
const volume = new Volume();
|
|
36
|
+
const fs = createFsFromVolume(volume);
|
|
37
|
+
ufs.use(diskFs).use(fs);
|
|
38
|
+
const fsRequire = createFsRequire(ufs);
|
|
39
|
+
const readFile = promisify(ufs.readFile);
|
|
40
|
+
let server;
|
|
41
|
+
|
|
42
|
+
// Generate a temporary file so we can hot reload from the root of the application
|
|
43
|
+
function hotEntry(entryPath) {
|
|
44
|
+
// eslint-disable-next-line
|
|
45
|
+
// @ts-ignore for some reason it's not picking up that other options are optional
|
|
46
|
+
const generatedEntrypoint = tmp.fileSync({
|
|
47
|
+
postfix: '.js'
|
|
48
|
+
});
|
|
49
|
+
diskFs.writeSync(generatedEntrypoint.fd, `
|
|
50
|
+
import entry from "${path.resolve(process.cwd(), entryPath)}";
|
|
51
|
+
|
|
52
|
+
if (import.meta.webpackHot) {
|
|
53
|
+
import.meta.webpackHot.accept();
|
|
54
|
+
}
|
|
55
|
+
|
|
56
|
+
export default entry;
|
|
57
|
+
`);
|
|
58
|
+
return generatedEntrypoint;
|
|
59
|
+
}
|
|
60
|
+
const webpackConfigs = [webpackConfig({
|
|
61
|
+
...env,
|
|
62
|
+
entrypath: hotEntry(entrypoint).name,
|
|
63
|
+
name: 'client'
|
|
64
|
+
}, {
|
|
65
|
+
mode: 'development'
|
|
66
|
+
}), webpackConfig({
|
|
67
|
+
...env,
|
|
68
|
+
entrypath: entrypoint.replace('.tsx', '.server.tsx'),
|
|
69
|
+
name: 'server',
|
|
70
|
+
BROWSERSLIST_ENV: 'current node'
|
|
71
|
+
}, {
|
|
72
|
+
mode: 'development',
|
|
73
|
+
target: 'node'
|
|
74
|
+
})];
|
|
75
|
+
|
|
76
|
+
// initialize the webpack compiler
|
|
77
|
+
const compiler = webpack(webpackConfigs);
|
|
78
|
+
sourceMapSupport.install({
|
|
79
|
+
hookRequire: true
|
|
80
|
+
});
|
|
81
|
+
function getServerBundle(serverStats) {
|
|
82
|
+
var _serverJson$outputPat;
|
|
83
|
+
const serverJson = serverStats.toJson({
|
|
84
|
+
assets: true
|
|
85
|
+
});
|
|
86
|
+
return path.join((_serverJson$outputPat = serverJson.outputPath) != null ? _serverJson$outputPat : '', 'server.js');
|
|
87
|
+
}
|
|
88
|
+
function handleErrors(fn) {
|
|
89
|
+
return async function (req, res, next) {
|
|
90
|
+
try {
|
|
91
|
+
return await fn(req, res);
|
|
92
|
+
} catch (x) {
|
|
93
|
+
next(x);
|
|
94
|
+
}
|
|
95
|
+
};
|
|
96
|
+
}
|
|
97
|
+
let initRender = [];
|
|
98
|
+
let render = (...args) => new Promise(resolve => {
|
|
99
|
+
var _initRender;
|
|
100
|
+
(_initRender = initRender) == null ? void 0 : _initRender.push({
|
|
101
|
+
args,
|
|
102
|
+
resolve
|
|
103
|
+
});
|
|
104
|
+
});
|
|
105
|
+
function importRender(stats) {
|
|
106
|
+
var _clientStats$compilat, _clientStats$compilat2, _serverStats$compilat, _serverStats$compilat2;
|
|
107
|
+
const [clientStats, serverStats] = stats;
|
|
108
|
+
if (clientStats != null && (_clientStats$compilat = clientStats.compilation) != null && (_clientStats$compilat2 = _clientStats$compilat.errors) != null && _clientStats$compilat2.length || serverStats != null && (_serverStats$compilat = serverStats.compilation) != null && (_serverStats$compilat2 = _serverStats$compilat.errors) != null && _serverStats$compilat2.length) {
|
|
109
|
+
log.error('Errors for client build: ' + clientStats.compilation.errors);
|
|
110
|
+
log.error('Errors for server build: ' + serverStats.compilation.errors);
|
|
111
|
+
// first time, rather than re-render
|
|
112
|
+
if (Array.isArray(initRender)) {
|
|
113
|
+
process.exit(-1);
|
|
114
|
+
}
|
|
115
|
+
log.error('Above compiler errors blocking reload');
|
|
116
|
+
return;
|
|
117
|
+
} else {
|
|
118
|
+
log.info('Launching SSR');
|
|
119
|
+
}
|
|
120
|
+
|
|
121
|
+
// ASSETS
|
|
122
|
+
const clientManifest = clientStats.toJson();
|
|
123
|
+
serverEntry = getServerBundle(serverStats);
|
|
124
|
+
serverFileContents = readFile(serverEntry).then(buf => buf.toString());
|
|
125
|
+
// reload modules
|
|
126
|
+
Object.keys(fsRequire.cache).forEach(key => {
|
|
127
|
+
delete fsRequire.cache[key];
|
|
128
|
+
});
|
|
129
|
+
render = fsRequire(serverEntry).default.bind(undefined, clientManifest);
|
|
130
|
+
// SERVER SIDE ENTRYPOINT
|
|
131
|
+
if (Array.isArray(initRender)) {
|
|
132
|
+
initRender.forEach(async init => {
|
|
133
|
+
try {
|
|
134
|
+
log.info('Resolving queued requests');
|
|
135
|
+
await render(...init.args);
|
|
136
|
+
init.resolve();
|
|
137
|
+
} catch (e) {
|
|
138
|
+
log.error('Error when attempting to render queued requests');
|
|
139
|
+
log.error(e);
|
|
140
|
+
}
|
|
141
|
+
});
|
|
142
|
+
initRender = undefined;
|
|
143
|
+
}
|
|
144
|
+
}
|
|
145
|
+
const devServer = new WebpackDevServer(
|
|
146
|
+
// write to memory filesystem so we can import
|
|
147
|
+
{
|
|
148
|
+
...webpackConfigs[0].devServer,
|
|
149
|
+
devMiddleware: {
|
|
150
|
+
...((_webpackConfigs$ = webpackConfigs[0]) == null ? void 0 : (_webpackConfigs$$devS = _webpackConfigs$.devServer) == null ? void 0 : _webpackConfigs$$devS.devMiddleware),
|
|
151
|
+
outputFileSystem: {
|
|
152
|
+
...fs,
|
|
153
|
+
join: path.join
|
|
154
|
+
}
|
|
155
|
+
},
|
|
156
|
+
setupMiddlewares: (middlewares, devServer) => {
|
|
157
|
+
var _webpackConfigs$0$dev, _webpackConfigs$0$dev2, _devServer$app, _webpackConfigs$0$dev3;
|
|
158
|
+
if (!devServer) {
|
|
159
|
+
throw new Error('webpack-dev-server is not defined');
|
|
160
|
+
}
|
|
161
|
+
const otherRoutes = [process.env.WEBPACK_PUBLIC_PATH, ...Object.keys((_webpackConfigs$0$dev = (_webpackConfigs$0$dev2 = webpackConfigs[0].devServer) == null ? void 0 : _webpackConfigs$0$dev2.proxy) != null ? _webpackConfigs$0$dev : {})];
|
|
162
|
+
// serve SSR for non-WEBPACK_PUBLIC_PATH
|
|
163
|
+
(_devServer$app = devServer.app) == null ? void 0 : _devServer$app.get(new RegExp(`^(?!${otherRoutes.join('|')})`), handleErrors(async function (req, res) {
|
|
164
|
+
if (req.url.endsWith('favicon.ico')) {
|
|
165
|
+
res.statusCode = 404;
|
|
166
|
+
res.setHeader('Content-type', 'text/html');
|
|
167
|
+
res.send('not found');
|
|
168
|
+
return;
|
|
169
|
+
}
|
|
170
|
+
res.socket.on('error', error => {
|
|
171
|
+
log.error('Fatal:', error);
|
|
172
|
+
if (error.code === 'ECONNRESET') {
|
|
173
|
+
log.error('ECONNRESET is usually due to browser closing the connection');
|
|
174
|
+
}
|
|
175
|
+
});
|
|
176
|
+
await render(req, res);
|
|
177
|
+
}));
|
|
178
|
+
if ((_webpackConfigs$0$dev3 = webpackConfigs[0].devServer) != null && _webpackConfigs$0$dev3.setupMiddlewares) {
|
|
179
|
+
return webpackConfigs[0].devServer.setupMiddlewares(middlewares, devServer);
|
|
180
|
+
}
|
|
181
|
+
return middlewares;
|
|
182
|
+
}
|
|
183
|
+
}, compiler);
|
|
184
|
+
const runServer = async () => {
|
|
185
|
+
await devServer.start();
|
|
186
|
+
devServer.compiler.hooks.done.tap('Anansi Server', multiStats => {
|
|
187
|
+
if (!multiStats) {
|
|
188
|
+
log.error('stats not send');
|
|
189
|
+
process.exit(-1);
|
|
190
|
+
}
|
|
191
|
+
if (!Object.hasOwn(multiStats, 'stats')) return;
|
|
192
|
+
if (multiStats.stats.length > 1) {
|
|
193
|
+
try {
|
|
194
|
+
importRender(multiStats.stats);
|
|
195
|
+
} catch (e) {
|
|
196
|
+
log.error('Failed to load serve entrypoint');
|
|
197
|
+
const finder = new RegExp(`${serverEntry}:([\\d]+):([\\d]+)`, 'g');
|
|
198
|
+
serverFileContents.then(fileText => {
|
|
199
|
+
const textRows = fileText.split('\n');
|
|
200
|
+
log.error('>>> Stack Context [serve entrypoint] <<<');
|
|
201
|
+
for (const match of (_e$stack$matchAll = e.stack.matchAll(finder)) != null ? _e$stack$matchAll : []) {
|
|
202
|
+
var _e$stack$matchAll;
|
|
203
|
+
const row = Number.parseInt(match[1]);
|
|
204
|
+
const col = Number.parseInt(match[2]);
|
|
205
|
+
log.error(path.basename(serverEntry) + ' ' + row + ':' + col);
|
|
206
|
+
log.error(textRows[row - 2]);
|
|
207
|
+
log.error(textRows[row - 1]);
|
|
208
|
+
log.error(Array(col).join(' ') + '^');
|
|
209
|
+
log.error(textRows[row]);
|
|
210
|
+
log.error(textRows[row + 1]);
|
|
211
|
+
log.error(textRows[row + 2]);
|
|
212
|
+
}
|
|
213
|
+
diskFs.writeFileSync(serverEntry, fileText);
|
|
214
|
+
});
|
|
215
|
+
throw e;
|
|
216
|
+
}
|
|
217
|
+
} else {
|
|
218
|
+
log.error('Only compiler one stat');
|
|
219
|
+
}
|
|
220
|
+
});
|
|
221
|
+
};
|
|
222
|
+
const stopServer = async () => {
|
|
223
|
+
log.info('Stopping server...');
|
|
224
|
+
await devServer.stop();
|
|
225
|
+
log.info('Server closed');
|
|
226
|
+
};
|
|
227
|
+
process.on('SIGINT', () => {
|
|
228
|
+
log.warn('Received SIGINT, devserver shutting down');
|
|
229
|
+
stopServer();
|
|
230
|
+
process.exit(-1);
|
|
231
|
+
});
|
|
232
|
+
runServer();
|
|
233
|
+
}
|
|
234
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJPYmplY3QiLCJoYXNPd24iLCJpdCIsImtleSIsInByb3RvdHlwZSIsImhhc093blByb3BlcnR5IiwiY2FsbCIsImRpc2tGcyIsImNyZWF0ZUZzUmVxdWlyZSIsImNyZWF0ZUZzRnJvbVZvbHVtZSIsIlZvbHVtZSIsInBhdGgiLCJzb3VyY2VNYXBTdXBwb3J0IiwidG1wIiwidWZzIiwicHJvbWlzaWZ5Iiwid2VicGFjayIsImxvZ2dpbmciLCJXZWJwYWNrRGV2U2VydmVyIiwiZ2V0V2VicGFja0NvbmZpZyIsImltcG9ydCIsIm1ldGEiLCJlbnRyeXBvaW50IiwicHJvY2VzcyIsImFyZ3YiLCJjb25zb2xlIiwibG9nIiwiZXhpdCIsInN0YXJ0RGV2U2VydmVyIiwic2VydmVyRmlsZUNvbnRlbnRzIiwiUHJvbWlzZSIsInJlc29sdmUiLCJzZXJ2ZXJFbnRyeSIsImVudiIsIl93ZWJwYWNrQ29uZmlncyQiLCJfd2VicGFja0NvbmZpZ3MkJGRldlMiLCJ3ZWJwYWNrQ29uZmlnIiwiZ2V0TG9nZ2VyIiwidm9sdW1lIiwiZnMiLCJ1c2UiLCJmc1JlcXVpcmUiLCJyZWFkRmlsZSIsInNlcnZlciIsImhvdEVudHJ5IiwiZW50cnlQYXRoIiwiZ2VuZXJhdGVkRW50cnlwb2ludCIsImZpbGVTeW5jIiwicG9zdGZpeCIsIndyaXRlU3luYyIsImZkIiwiY3dkIiwid2VicGFja0NvbmZpZ3MiLCJlbnRyeXBhdGgiLCJuYW1lIiwibW9kZSIsInJlcGxhY2UiLCJCUk9XU0VSU0xJU1RfRU5WIiwidGFyZ2V0IiwiY29tcGlsZXIiLCJpbnN0YWxsIiwiaG9va1JlcXVpcmUiLCJnZXRTZXJ2ZXJCdW5kbGUiLCJzZXJ2ZXJTdGF0cyIsIl9zZXJ2ZXJKc29uJG91dHB1dFBhdCIsInNlcnZlckpzb24iLCJ0b0pzb24iLCJhc3NldHMiLCJqb2luIiwib3V0cHV0UGF0aCIsImhhbmRsZUVycm9ycyIsImZuIiwicmVxIiwicmVzIiwibmV4dCIsIngiLCJpbml0UmVuZGVyIiwicmVuZGVyIiwiYXJncyIsIl9pbml0UmVuZGVyIiwicHVzaCIsImltcG9ydFJlbmRlciIsInN0YXRzIiwiX2NsaWVudFN0YXRzJGNvbXBpbGF0IiwiX2NsaWVudFN0YXRzJGNvbXBpbGF0MiIsIl9zZXJ2ZXJTdGF0cyRjb21waWxhdCIsIl9zZXJ2ZXJTdGF0cyRjb21waWxhdDIiLCJjbGllbnRTdGF0cyIsImNvbXBpbGF0aW9uIiwiZXJyb3JzIiwibGVuZ3RoIiwiZXJyb3IiLCJBcnJheSIsImlzQXJyYXkiLCJpbmZvIiwiY2xpZW50TWFuaWZlc3QiLCJ0aGVuIiwiYnVmIiwidG9TdHJpbmciLCJrZXlzIiwiY2FjaGUiLCJmb3JFYWNoIiwiZGVmYXVsdCIsImJpbmQiLCJ1bmRlZmluZWQiLCJpbml0IiwiZSIsImRldlNlcnZlciIsImRldk1pZGRsZXdhcmUiLCJvdXRwdXRGaWxlU3lzdGVtIiwic2V0dXBNaWRkbGV3YXJlcyIsIm1pZGRsZXdhcmVzIiwiX3dlYnBhY2tDb25maWdzJDAkZGV2IiwiX3dlYnBhY2tDb25maWdzJDAkZGV2MiIsIl9kZXZTZXJ2ZXIkYXBwIiwiX3dlYnBhY2tDb25maWdzJDAkZGV2MyIsIkVycm9yIiwib3RoZXJSb3V0ZXMiLCJXRUJQQUNLX1BVQkxJQ19QQVRIIiwicHJveHkiLCJhcHAiLCJnZXQiLCJSZWdFeHAiLCJ1cmwiLCJlbmRzV2l0aCIsInN0YXR1c0NvZGUiLCJzZXRIZWFkZXIiLCJzZW5kIiwic29ja2V0Iiwib24iLCJjb2RlIiwicnVuU2VydmVyIiwic3RhcnQiLCJob29rcyIsImRvbmUiLCJ0YXAiLCJtdWx0aVN0YXRzIiwiZmluZGVyIiwiZmlsZVRleHQiLCJ0ZXh0Um93cyIsInNwbGl0IiwibWF0Y2giLCJfZSRzdGFjayRtYXRjaEFsbCIsInN0YWNrIiwibWF0Y2hBbGwiLCJyb3ciLCJOdW1iZXIiLCJwYXJzZUludCIsImNvbCIsImJhc2VuYW1lIiwid3JpdGVGaWxlU3luYyIsInN0b3BTZXJ2ZXIiLCJzdG9wIiwid2FybiJdLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9zY3JpcHRzL3N0YXJ0RGV2c2VydmVyLnRzIl0sInNvdXJjZXNDb250ZW50IjpbIiMhL3Vzci9iaW4vZW52IG5vZGVcbk9iamVjdC5oYXNPd24gPVxuICBPYmplY3QuaGFzT3duIHx8XG4gIC8qIGlzdGFuYnVsIGlnbm9yZSBuZXh0ICovIGZ1bmN0aW9uIGhhc093bihpdCwga2V5KSB7XG4gICAgcmV0dXJuIE9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbChpdCwga2V5KTtcbiAgfTtcbmltcG9ydCB0eXBlIHsgTmV4dEZ1bmN0aW9uIH0gZnJvbSAnZXhwcmVzcyc7XG5pbXBvcnQgZGlza0ZzIGZyb20gJ2ZzJztcbmltcG9ydCB7IGNyZWF0ZUZzUmVxdWlyZSB9IGZyb20gJ2ZzLXJlcXVpcmUnO1xuaW1wb3J0IHsgU2VydmVyLCBJbmNvbWluZ01lc3NhZ2UsIFNlcnZlclJlc3BvbnNlIH0gZnJvbSAnaHR0cCc7XG5pbXBvcnQgeyBjcmVhdGVGc0Zyb21Wb2x1bWUsIFZvbHVtZSB9IGZyb20gJ21lbWZzJztcbmltcG9ydCBwYXRoIGZyb20gJ3BhdGgnO1xuaW1wb3J0IHNvdXJjZU1hcFN1cHBvcnQgZnJvbSAnc291cmNlLW1hcC1zdXBwb3J0JztcbmltcG9ydCB0bXAgZnJvbSAndG1wJztcbmltcG9ydCB7IHVmcyB9IGZyb20gJ3VuaW9uZnMnO1xuaW1wb3J0IHsgcHJvbWlzaWZ5IH0gZnJvbSAndXRpbCc7XG5pbXBvcnQgd2VicGFjaywgeyBNdWx0aUNvbXBpbGVyIH0gZnJvbSAnd2VicGFjayc7XG5pbXBvcnQgbG9nZ2luZyBmcm9tICd3ZWJwYWNrL2xpYi9sb2dnaW5nL3J1bnRpbWUuanMnO1xuaW1wb3J0IFdlYnBhY2tEZXZTZXJ2ZXIgZnJvbSAnd2VicGFjay1kZXYtc2VydmVyJztcblxuaW1wb3J0ICdjcm9zcy1mZXRjaC9kaXN0L25vZGUtcG9seWZpbGwuanMnO1xuaW1wb3J0IHsgZ2V0V2VicGFja0NvbmZpZyB9IGZyb20gJy4vZ2V0V2VicGFja0NvbmZpZy5qcyc7XG5pbXBvcnQgeyBCb3VuZFJlbmRlciB9IGZyb20gJy4vdHlwZXMuanMnO1xuXG4vLyBydW4gZGlyZWN0bHkgZnJvbSBub2RlXG5pZiAoJ21haW4nIGluIGltcG9ydC5tZXRhKSB7XG4gIGNvbnN0IGVudHJ5cG9pbnQgPSBwcm9jZXNzLmFyZ3ZbMl07XG5cbiAgaWYgKCFlbnRyeXBvaW50KSB7XG4gICAgY29uc29sZS5sb2coYFVzYWdlOiBzdGFydC1hbmFuc2kgPGVudHJ5cG9pbnQtZmlsZT5gKTtcbiAgICBwcm9jZXNzLmV4aXQoLTEpO1xuICB9XG5cbiAgc3RhcnREZXZTZXJ2ZXIoZW50cnlwb2ludCk7XG59XG5cbmxldCBzZXJ2ZXJGaWxlQ29udGVudHM6IFByb21pc2U8c3RyaW5nPiA9IFByb21pc2UucmVzb2x2ZSgnJyk7XG5sZXQgc2VydmVyRW50cnkgPSAnJztcblxuZXhwb3J0IGRlZmF1bHQgYXN5bmMgZnVuY3Rpb24gc3RhcnREZXZTZXJ2ZXIoXG4gIGVudHJ5cG9pbnQ6IHN0cmluZyxcbiAgZW52OiBSZWNvcmQ8c3RyaW5nLCB1bmtub3duPiA9IHt9LFxuKSB7XG4gIGNvbnN0IHdlYnBhY2tDb25maWcgPSBhd2FpdCBnZXRXZWJwYWNrQ29uZmlnKCk7XG5cbiAgY29uc3QgbG9nID0gbG9nZ2luZy5nZXRMb2dnZXIoJ2FuYW5zaS1kZXZzZXJ2ZXInKTtcblxuICAvLyBTZXQgdXAgaW4gbWVtb3J5IGZpbGVzeXN0ZW1cbiAgY29uc3Qgdm9sdW1lID0gbmV3IFZvbHVtZSgpO1xuICBjb25zdCBmcyA9IGNyZWF0ZUZzRnJvbVZvbHVtZSh2b2x1bWUpO1xuICB1ZnMudXNlKGRpc2tGcykudXNlKGZzIGFzIGFueSk7XG5cbiAgY29uc3QgZnNSZXF1aXJlID0gY3JlYXRlRnNSZXF1aXJlKHVmcyk7XG4gIGNvbnN0IHJlYWRGaWxlID0gcHJvbWlzaWZ5KHVmcy5yZWFkRmlsZSk7XG4gIGxldCBzZXJ2ZXI6IFNlcnZlciB8IHVuZGVmaW5lZDtcblxuICAvLyBHZW5lcmF0ZSBhIHRlbXBvcmFyeSBmaWxlIHNvIHdlIGNhbiBob3QgcmVsb2FkIGZyb20gdGhlIHJvb3Qgb2YgdGhlIGFwcGxpY2F0aW9uXG4gIGZ1bmN0aW9uIGhvdEVudHJ5KGVudHJ5UGF0aDogc3RyaW5nKSB7XG4gICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lXG4gICAgLy8gQHRzLWlnbm9yZSBmb3Igc29tZSByZWFzb24gaXQncyBub3QgcGlja2luZyB1cCB0aGF0IG90aGVyIG9wdGlvbnMgYXJlIG9wdGlvbmFsXG4gICAgY29uc3QgZ2VuZXJhdGVkRW50cnlwb2ludCA9IHRtcC5maWxlU3luYyh7IHBvc3RmaXg6ICcuanMnIH0pO1xuICAgIGRpc2tGcy53cml0ZVN5bmMoXG4gICAgICBnZW5lcmF0ZWRFbnRyeXBvaW50LmZkLFxuICAgICAgYFxuICBpbXBvcnQgZW50cnkgZnJvbSBcIiR7cGF0aC5yZXNvbHZlKHByb2Nlc3MuY3dkKCksIGVudHJ5UGF0aCl9XCI7XG5cbiAgaWYgKGltcG9ydC5tZXRhLndlYnBhY2tIb3QpIHtcbiAgICBpbXBvcnQubWV0YS53ZWJwYWNrSG90LmFjY2VwdCgpO1xuICB9XG5cbiAgZXhwb3J0IGRlZmF1bHQgZW50cnk7XG4gICAgYCxcbiAgICApO1xuICAgIHJldHVybiBnZW5lcmF0ZWRFbnRyeXBvaW50O1xuICB9XG5cbiAgY29uc3Qgd2VicGFja0NvbmZpZ3MgPSBbXG4gICAgd2VicGFja0NvbmZpZyhcbiAgICAgIHtcbiAgICAgICAgLi4uZW52LFxuICAgICAgICBlbnRyeXBhdGg6IGhvdEVudHJ5KGVudHJ5cG9pbnQpLm5hbWUsXG4gICAgICAgIG5hbWU6ICdjbGllbnQnLFxuICAgICAgfSxcbiAgICAgIHsgbW9kZTogJ2RldmVsb3BtZW50JyB9LFxuICAgICksXG4gICAgd2VicGFja0NvbmZpZyhcbiAgICAgIHtcbiAgICAgICAgLi4uZW52LFxuICAgICAgICBlbnRyeXBhdGg6IGVudHJ5cG9pbnQucmVwbGFjZSgnLnRzeCcsICcuc2VydmVyLnRzeCcpLFxuICAgICAgICBuYW1lOiAnc2VydmVyJyxcbiAgICAgICAgQlJPV1NFUlNMSVNUX0VOVjogJ2N1cnJlbnQgbm9kZScsXG4gICAgICB9LFxuICAgICAgeyBtb2RlOiAnZGV2ZWxvcG1lbnQnLCB0YXJnZXQ6ICdub2RlJyB9LFxuICAgICksXG4gIF0gYXMgY29uc3Q7XG5cbiAgLy8gaW5pdGlhbGl6ZSB0aGUgd2VicGFjayBjb21waWxlclxuICBjb25zdCBjb21waWxlcjogTXVsdGlDb21waWxlciA9IHdlYnBhY2sod2VicGFja0NvbmZpZ3MpO1xuXG4gIHNvdXJjZU1hcFN1cHBvcnQuaW5zdGFsbCh7IGhvb2tSZXF1aXJlOiB0cnVlIH0pO1xuXG4gIGZ1bmN0aW9uIGdldFNlcnZlckJ1bmRsZShzZXJ2ZXJTdGF0czogd2VicGFjay5TdGF0cykge1xuICAgIGNvbnN0IHNlcnZlckpzb24gPSBzZXJ2ZXJTdGF0cy50b0pzb24oeyBhc3NldHM6IHRydWUgfSk7XG4gICAgcmV0dXJuIHBhdGguam9pbihzZXJ2ZXJKc29uLm91dHB1dFBhdGggPz8gJycsICdzZXJ2ZXIuanMnKTtcbiAgfVxuICBmdW5jdGlvbiBoYW5kbGVFcnJvcnM8XG4gICAgRiBleHRlbmRzIChcbiAgICAgIHJlcTogUmVxdWVzdCB8IEluY29taW5nTWVzc2FnZSxcbiAgICAgIHJlczogUmVzcG9uc2UgfCBTZXJ2ZXJSZXNwb25zZSxcbiAgICApID0+IFByb21pc2U8dm9pZD4sXG4gID4oZm46IEYpIHtcbiAgICByZXR1cm4gYXN5bmMgZnVuY3Rpb24gKFxuICAgICAgcmVxOiBSZXF1ZXN0IHwgSW5jb21pbmdNZXNzYWdlLFxuICAgICAgcmVzOiBSZXNwb25zZSB8IFNlcnZlclJlc3BvbnNlLFxuICAgICAgbmV4dDogTmV4dEZ1bmN0aW9uLFxuICAgICkge1xuICAgICAgdHJ5IHtcbiAgICAgICAgcmV0dXJuIGF3YWl0IGZuKHJlcSwgcmVzKTtcbiAgICAgIH0gY2F0Y2ggKHgpIHtcbiAgICAgICAgbmV4dCh4KTtcbiAgICAgIH1cbiAgICB9O1xuICB9XG5cbiAgbGV0IGluaXRSZW5kZXI6XG4gICAgfCB7IGFyZ3M6IFBhcmFtZXRlcnM8Qm91bmRSZW5kZXI+OyByZXNvbHZlOiAoKSA9PiB2b2lkIH1bXVxuICAgIHwgdW5kZWZpbmVkID0gW107XG4gIGxldCByZW5kZXI6IEJvdW5kUmVuZGVyID0gKC4uLmFyZ3MpID0+XG4gICAgbmV3IFByb21pc2UocmVzb2x2ZSA9PiB7XG4gICAgICBpbml0UmVuZGVyPy5wdXNoKHsgYXJncywgcmVzb2x2ZSB9KTtcbiAgICB9KTtcblxuICBmdW5jdGlvbiBpbXBvcnRSZW5kZXIoc3RhdHM6IHdlYnBhY2suU3RhdHNbXSkge1xuICAgIGNvbnN0IFtjbGllbnRTdGF0cywgc2VydmVyU3RhdHNdID0gc3RhdHM7XG4gICAgaWYgKFxuICAgICAgY2xpZW50U3RhdHM/LmNvbXBpbGF0aW9uPy5lcnJvcnM/Lmxlbmd0aCB8fFxuICAgICAgc2VydmVyU3RhdHM/LmNvbXBpbGF0aW9uPy5lcnJvcnM/Lmxlbmd0aFxuICAgICkge1xuICAgICAgbG9nLmVycm9yKCdFcnJvcnMgZm9yIGNsaWVudCBidWlsZDogJyArIGNsaWVudFN0YXRzLmNvbXBpbGF0aW9uLmVycm9ycyk7XG4gICAgICBsb2cuZXJyb3IoJ0Vycm9ycyBmb3Igc2VydmVyIGJ1aWxkOiAnICsgc2VydmVyU3RhdHMuY29tcGlsYXRpb24uZXJyb3JzKTtcbiAgICAgIC8vIGZpcnN0IHRpbWUsIHJhdGhlciB0aGFuIHJlLXJlbmRlclxuICAgICAgaWYgKEFycmF5LmlzQXJyYXkoaW5pdFJlbmRlcikpIHtcbiAgICAgICAgcHJvY2Vzcy5leGl0KC0xKTtcbiAgICAgIH1cbiAgICAgIGxvZy5lcnJvcignQWJvdmUgY29tcGlsZXIgZXJyb3JzIGJsb2NraW5nIHJlbG9hZCcpO1xuICAgICAgcmV0dXJuO1xuICAgIH0gZWxzZSB7XG4gICAgICBsb2cuaW5mbygnTGF1bmNoaW5nIFNTUicpO1xuICAgIH1cblxuICAgIC8vIEFTU0VUU1xuICAgIGNvbnN0IGNsaWVudE1hbmlmZXN0ID0gY2xpZW50U3RhdHMudG9Kc29uKCk7XG5cbiAgICBzZXJ2ZXJFbnRyeSA9IGdldFNlcnZlckJ1bmRsZShzZXJ2ZXJTdGF0cyk7XG4gICAgc2VydmVyRmlsZUNvbnRlbnRzID0gcmVhZEZpbGUoc2VydmVyRW50cnkpLnRoZW4oYnVmID0+IGJ1Zi50b1N0cmluZygpKTtcbiAgICAvLyByZWxvYWQgbW9kdWxlc1xuICAgIE9iamVjdC5rZXlzKGZzUmVxdWlyZS5jYWNoZSkuZm9yRWFjaChrZXkgPT4ge1xuICAgICAgZGVsZXRlIGZzUmVxdWlyZS5jYWNoZVtrZXldO1xuICAgIH0pO1xuICAgIHJlbmRlciA9IChmc1JlcXVpcmUoc2VydmVyRW50cnkpIGFzIGFueSkuZGVmYXVsdC5iaW5kKFxuICAgICAgdW5kZWZpbmVkLFxuICAgICAgY2xpZW50TWFuaWZlc3QsXG4gICAgKTtcbiAgICAvLyBTRVJWRVIgU0lERSBFTlRSWVBPSU5UXG4gICAgaWYgKEFycmF5LmlzQXJyYXkoaW5pdFJlbmRlcikpIHtcbiAgICAgIGluaXRSZW5kZXIuZm9yRWFjaChhc3luYyBpbml0ID0+IHtcbiAgICAgICAgdHJ5IHtcbiAgICAgICAgICBsb2cuaW5mbygnUmVzb2x2aW5nIHF1ZXVlZCByZXF1ZXN0cycpO1xuICAgICAgICAgIGF3YWl0IHJlbmRlciguLi5pbml0LmFyZ3MpO1xuICAgICAgICAgIGluaXQucmVzb2x2ZSgpO1xuICAgICAgICB9IGNhdGNoIChlKSB7XG4gICAgICAgICAgbG9nLmVycm9yKCdFcnJvciB3aGVuIGF0dGVtcHRpbmcgdG8gcmVuZGVyIHF1ZXVlZCByZXF1ZXN0cycpO1xuICAgICAgICAgIGxvZy5lcnJvcihlKTtcbiAgICAgICAgfVxuICAgICAgfSk7XG4gICAgICBpbml0UmVuZGVyID0gdW5kZWZpbmVkO1xuICAgIH1cbiAgfVxuXG4gIGNvbnN0IGRldlNlcnZlciA9IG5ldyBXZWJwYWNrRGV2U2VydmVyKFxuICAgIC8vIHdyaXRlIHRvIG1lbW9yeSBmaWxlc3lzdGVtIHNvIHdlIGNhbiBpbXBvcnRcbiAgICB7XG4gICAgICAuLi53ZWJwYWNrQ29uZmlnc1swXS5kZXZTZXJ2ZXIsXG4gICAgICBkZXZNaWRkbGV3YXJlOiB7XG4gICAgICAgIC4uLndlYnBhY2tDb25maWdzWzBdPy5kZXZTZXJ2ZXI/LmRldk1pZGRsZXdhcmUsXG4gICAgICAgIG91dHB1dEZpbGVTeXN0ZW06IHtcbiAgICAgICAgICAuLi5mcyxcbiAgICAgICAgICBqb2luOiBwYXRoLmpvaW4gYXMgYW55LFxuICAgICAgICB9IGFzIGFueSxcbiAgICAgIH0sXG4gICAgICBzZXR1cE1pZGRsZXdhcmVzOiAobWlkZGxld2FyZXMsIGRldlNlcnZlcikgPT4ge1xuICAgICAgICBpZiAoIWRldlNlcnZlcikge1xuICAgICAgICAgIHRocm93IG5ldyBFcnJvcignd2VicGFjay1kZXYtc2VydmVyIGlzIG5vdCBkZWZpbmVkJyk7XG4gICAgICAgIH1cblxuICAgICAgICBjb25zdCBvdGhlclJvdXRlcyA9IFtcbiAgICAgICAgICBwcm9jZXNzLmVudi5XRUJQQUNLX1BVQkxJQ19QQVRILFxuICAgICAgICAgIC4uLk9iamVjdC5rZXlzKHdlYnBhY2tDb25maWdzWzBdLmRldlNlcnZlcj8ucHJveHkgPz8ge30pLFxuICAgICAgICBdO1xuICAgICAgICAvLyBzZXJ2ZSBTU1IgZm9yIG5vbi1XRUJQQUNLX1BVQkxJQ19QQVRIXG4gICAgICAgIGRldlNlcnZlci5hcHA/LmdldChcbiAgICAgICAgICBuZXcgUmVnRXhwKGBeKD8hJHtvdGhlclJvdXRlcy5qb2luKCd8Jyl9KWApLFxuICAgICAgICAgIGhhbmRsZUVycm9ycyhhc3luYyBmdW5jdGlvbiAocmVxOiBhbnksIHJlczogYW55KSB7XG4gICAgICAgICAgICBpZiAocmVxLnVybC5lbmRzV2l0aCgnZmF2aWNvbi5pY28nKSkge1xuICAgICAgICAgICAgICByZXMuc3RhdHVzQ29kZSA9IDQwNDtcbiAgICAgICAgICAgICAgcmVzLnNldEhlYWRlcignQ29udGVudC10eXBlJywgJ3RleHQvaHRtbCcpO1xuICAgICAgICAgICAgICByZXMuc2VuZCgnbm90IGZvdW5kJyk7XG4gICAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHJlcy5zb2NrZXQub24oJ2Vycm9yJywgKGVycm9yOiB1bmtub3duKSA9PiB7XG4gICAgICAgICAgICAgIGxvZy5lcnJvcignRmF0YWw6JywgZXJyb3IpO1xuICAgICAgICAgICAgICBpZiAoKGVycm9yIGFzIGFueSkuY29kZSA9PT0gJ0VDT05OUkVTRVQnKSB7XG4gICAgICAgICAgICAgICAgbG9nLmVycm9yKFxuICAgICAgICAgICAgICAgICAgJ0VDT05OUkVTRVQgaXMgdXN1YWxseSBkdWUgdG8gYnJvd3NlciBjbG9zaW5nIHRoZSBjb25uZWN0aW9uJyxcbiAgICAgICAgICAgICAgICApO1xuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9KTtcblxuICAgICAgICAgICAgYXdhaXQgcmVuZGVyKHJlcSwgcmVzKTtcbiAgICAgICAgICB9KSxcbiAgICAgICAgKTtcblxuICAgICAgICBpZiAod2VicGFja0NvbmZpZ3NbMF0uZGV2U2VydmVyPy5zZXR1cE1pZGRsZXdhcmVzKSB7XG4gICAgICAgICAgcmV0dXJuIHdlYnBhY2tDb25maWdzWzBdLmRldlNlcnZlci5zZXR1cE1pZGRsZXdhcmVzKFxuICAgICAgICAgICAgbWlkZGxld2FyZXMsXG4gICAgICAgICAgICBkZXZTZXJ2ZXIsXG4gICAgICAgICAgKTtcbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiBtaWRkbGV3YXJlcztcbiAgICAgIH0sXG4gICAgfSxcbiAgICBjb21waWxlcixcbiAgKTtcbiAgY29uc3QgcnVuU2VydmVyID0gYXN5bmMgKCkgPT4ge1xuICAgIGF3YWl0IGRldlNlcnZlci5zdGFydCgpO1xuICAgIGRldlNlcnZlci5jb21waWxlci5ob29rcy5kb25lLnRhcChcbiAgICAgICdBbmFuc2kgU2VydmVyJyxcbiAgICAgIChtdWx0aVN0YXRzOiB3ZWJwYWNrLk11bHRpU3RhdHMgfCB3ZWJwYWNrLlN0YXRzKSA9PiB7XG4gICAgICAgIGlmICghbXVsdGlTdGF0cykge1xuICAgICAgICAgIGxvZy5lcnJvcignc3RhdHMgbm90IHNlbmQnKTtcbiAgICAgICAgICBwcm9jZXNzLmV4aXQoLTEpO1xuICAgICAgICB9XG5cbiAgICAgICAgaWYgKCFPYmplY3QuaGFzT3duKG11bHRpU3RhdHMsICdzdGF0cycpKSByZXR1cm47XG4gICAgICAgIGlmICgobXVsdGlTdGF0cyBhcyB3ZWJwYWNrLk11bHRpU3RhdHMpLnN0YXRzLmxlbmd0aCA+IDEpIHtcbiAgICAgICAgICB0cnkge1xuICAgICAgICAgICAgaW1wb3J0UmVuZGVyKChtdWx0aVN0YXRzIGFzIHdlYnBhY2suTXVsdGlTdGF0cykuc3RhdHMpO1xuICAgICAgICAgIH0gY2F0Y2ggKGU6IGFueSkge1xuICAgICAgICAgICAgbG9nLmVycm9yKCdGYWlsZWQgdG8gbG9hZCBzZXJ2ZSBlbnRyeXBvaW50Jyk7XG4gICAgICAgICAgICBjb25zdCBmaW5kZXIgPSBuZXcgUmVnRXhwKGAke3NlcnZlckVudHJ5fTooW1xcXFxkXSspOihbXFxcXGRdKylgLCAnZycpO1xuICAgICAgICAgICAgc2VydmVyRmlsZUNvbnRlbnRzLnRoZW4oZmlsZVRleHQgPT4ge1xuICAgICAgICAgICAgICBjb25zdCB0ZXh0Um93cyA9IGZpbGVUZXh0LnNwbGl0KCdcXG4nKTtcbiAgICAgICAgICAgICAgbG9nLmVycm9yKCc+Pj4gU3RhY2sgQ29udGV4dCBbc2VydmUgZW50cnlwb2ludF0gPDw8Jyk7XG4gICAgICAgICAgICAgIGZvciAoY29uc3QgbWF0Y2ggb2YgZS5zdGFjay5tYXRjaEFsbChmaW5kZXIpID8/IFtdKSB7XG4gICAgICAgICAgICAgICAgY29uc3Qgcm93ID0gTnVtYmVyLnBhcnNlSW50KG1hdGNoWzFdKTtcbiAgICAgICAgICAgICAgICBjb25zdCBjb2wgPSBOdW1iZXIucGFyc2VJbnQobWF0Y2hbMl0pO1xuICAgICAgICAgICAgICAgIGxvZy5lcnJvcihwYXRoLmJhc2VuYW1lKHNlcnZlckVudHJ5KSArICcgJyArIHJvdyArICc6JyArIGNvbCk7XG4gICAgICAgICAgICAgICAgbG9nLmVycm9yKHRleHRSb3dzW3JvdyAtIDJdKTtcbiAgICAgICAgICAgICAgICBsb2cuZXJyb3IodGV4dFJvd3Nbcm93IC0gMV0pO1xuICAgICAgICAgICAgICAgIGxvZy5lcnJvcihBcnJheShjb2wpLmpvaW4oJyAnKSArICdeJyk7XG4gICAgICAgICAgICAgICAgbG9nLmVycm9yKHRleHRSb3dzW3Jvd10pO1xuICAgICAgICAgICAgICAgIGxvZy5lcnJvcih0ZXh0Um93c1tyb3cgKyAxXSk7XG4gICAgICAgICAgICAgICAgbG9nLmVycm9yKHRleHRSb3dzW3JvdyArIDJdKTtcbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICBkaXNrRnMud3JpdGVGaWxlU3luYyhzZXJ2ZXJFbnRyeSwgZmlsZVRleHQpO1xuICAgICAgICAgICAgfSk7XG5cbiAgICAgICAgICAgIHRocm93IGU7XG4gICAgICAgICAgfVxuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIGxvZy5lcnJvcignT25seSBjb21waWxlciBvbmUgc3RhdCcpO1xuICAgICAgICB9XG4gICAgICB9LFxuICAgICk7XG4gIH07XG4gIGNvbnN0IHN0b3BTZXJ2ZXIgPSBhc3luYyAoKSA9PiB7XG4gICAgbG9nLmluZm8oJ1N0b3BwaW5nIHNlcnZlci4uLicpO1xuICAgIGF3YWl0IGRldlNlcnZlci5zdG9wKCk7XG4gICAgbG9nLmluZm8oJ1NlcnZlciBjbG9zZWQnKTtcbiAgfTtcblxuICBwcm9jZXNzLm9uKCdTSUdJTlQnLCAoKSA9PiB7XG4gICAgbG9nLndhcm4oJ1JlY2VpdmVkIFNJR0lOVCwgZGV2c2VydmVyIHNodXR0aW5nIGRvd24nKTtcbiAgICBzdG9wU2VydmVyKCk7XG4gICAgcHJvY2Vzcy5leGl0KC0xKTtcbiAgfSk7XG5cbiAgcnVuU2VydmVyKCk7XG59XG4iXSwibWFwcGluZ3MiOiJBQUFBO0FB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
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
export {};
|
|
2
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6W10sInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL3NjcmlwdHMvdHlwZXMudHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgUmVxdWVzdCwgUmVzcG9uc2UgfSBmcm9tICdleHByZXNzJztcbmltcG9ydCB7IFNlcnZlclJlc3BvbnNlLCBJbmNvbWluZ01lc3NhZ2UgfSBmcm9tICdodHRwJztcbmltcG9ydCB7IFN0YXRzQ29tcGlsYXRpb24gfSBmcm9tICd3ZWJwYWNrJztcblxuZXhwb3J0IHR5cGUgUmVuZGVyID0gKFxuICBjbGllbnRNYW5pZmVzdDogU3RhdHNDb21waWxhdGlvbixcbiAgcmVxOiBSZXF1ZXN0IHwgSW5jb21pbmdNZXNzYWdlLFxuICByZXM6IFJlc3BvbnNlIHwgU2VydmVyUmVzcG9uc2UsXG4pID0+IFByb21pc2U8dm9pZD47XG5cbmV4cG9ydCB0eXBlIEJvdW5kUmVuZGVyID0gKFxuICByZXE6IFJlcXVlc3QgfCBJbmNvbWluZ01lc3NhZ2UsXG4gIHJlczogUmVzcG9uc2UgfCBTZXJ2ZXJSZXNwb25zZSxcbikgPT4gUHJvbWlzZTx2b2lkPjtcbiJdLCJtYXBwaW5ncyI6IiJ9
|
|
@@ -0,0 +1,43 @@
|
|
|
1
|
+
import _jsx from "@babel/runtime/helpers/jsx";
|
|
2
|
+
var _process$env$WEBPACK_;
|
|
3
|
+
import React from "react";
|
|
4
|
+
export default function Document({
|
|
5
|
+
assets,
|
|
6
|
+
head,
|
|
7
|
+
children,
|
|
8
|
+
title,
|
|
9
|
+
rootId,
|
|
10
|
+
charSet,
|
|
11
|
+
scripts,
|
|
12
|
+
extraStyle
|
|
13
|
+
}) {
|
|
14
|
+
return /*#__PURE__*/_jsx("html", {}, void 0, /*#__PURE__*/_jsx("head", {}, void 0, /*#__PURE__*/_jsx("meta", {
|
|
15
|
+
charSet: charSet
|
|
16
|
+
}), head, extraStyle, assets.map((asset, i) => /*#__PURE__*/React.createElement("link", {
|
|
17
|
+
key: i,
|
|
18
|
+
rel: "preload",
|
|
19
|
+
...asset
|
|
20
|
+
})), /*#__PURE__*/_jsx("title", {}, void 0, title)), /*#__PURE__*/_jsx("body", {}, void 0, /*#__PURE__*/_jsx("div", {
|
|
21
|
+
id: rootId
|
|
22
|
+
}, void 0, children), scripts, assets.filter(({
|
|
23
|
+
href
|
|
24
|
+
}) => href.endsWith('.js')).map(({
|
|
25
|
+
href
|
|
26
|
+
}, i) => /*#__PURE__*/_jsx("script", {
|
|
27
|
+
src: href,
|
|
28
|
+
async: true
|
|
29
|
+
}, i))));
|
|
30
|
+
}
|
|
31
|
+
Document.defaultProps = {
|
|
32
|
+
head: /*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/_jsx("meta", {
|
|
33
|
+
name: "viewport",
|
|
34
|
+
content: "width=device-width, initial-scale=1"
|
|
35
|
+
}), /*#__PURE__*/_jsx("link", {
|
|
36
|
+
rel: "shortcut icon",
|
|
37
|
+
href: `${(_process$env$WEBPACK_ = process.env.WEBPACK_PUBLIC_PATH) != null ? _process$env$WEBPACK_ : '/'}favicon.ico`
|
|
38
|
+
})),
|
|
39
|
+
charSet: 'utf-8',
|
|
40
|
+
rootId: 'anansi-root',
|
|
41
|
+
scripts: null
|
|
42
|
+
};
|
|
43
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJEb2N1bWVudCIsImFzc2V0cyIsImhlYWQiLCJjaGlsZHJlbiIsInRpdGxlIiwicm9vdElkIiwiY2hhclNldCIsInNjcmlwdHMiLCJleHRyYVN0eWxlIiwiX2pzeCIsIm1hcCIsImFzc2V0IiwiaSIsIlJlYWN0IiwiY3JlYXRlRWxlbWVudCIsImtleSIsInJlbCIsImlkIiwiZmlsdGVyIiwiaHJlZiIsImVuZHNXaXRoIiwic3JjIiwiYXN5bmMiLCJkZWZhdWx0UHJvcHMiLCJGcmFnbWVudCIsIm5hbWUiLCJjb250ZW50IiwiX3Byb2Nlc3MkZW52JFdFQlBBQ0tfIiwicHJvY2VzcyIsImVudiIsIldFQlBBQ0tfUFVCTElDX1BBVEgiXSwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvc3BvdXRzL0RvY3VtZW50Q29tcG9uZW50LnRzeCJdLCJzb3VyY2VzQ29udGVudCI6WyJ0eXBlIFByb3BzID0ge1xuICBjaGlsZHJlbjogUmVhY3QuUmVhY3ROb2RlO1xuICBhc3NldHM6IHsgaHJlZjogc3RyaW5nOyBhcz86IHN0cmluZzsgcmVsPzogc3RyaW5nIH1bXTtcbiAgaGVhZDogUmVhY3QuUmVhY3ROb2RlO1xuICBleHRyYVN0eWxlOiBSZWFjdC5SZWFjdE5vZGU7XG4gIHNjcmlwdHM6IFJlYWN0LlJlYWN0Tm9kZTtcbiAgdGl0bGU6IHN0cmluZztcbiAgcm9vdElkOiBzdHJpbmc7XG4gIGNoYXJTZXQ6IHN0cmluZztcbn07XG5cbmV4cG9ydCBkZWZhdWx0IGZ1bmN0aW9uIERvY3VtZW50KHtcbiAgYXNzZXRzLFxuICBoZWFkLFxuICBjaGlsZHJlbixcbiAgdGl0bGUsXG4gIHJvb3RJZCxcbiAgY2hhclNldCxcbiAgc2NyaXB0cyxcbiAgZXh0cmFTdHlsZSxcbn06IFByb3BzKSB7XG4gIHJldHVybiAoXG4gICAgPGh0bWw+XG4gICAgICA8aGVhZD5cbiAgICAgICAgPG1ldGEgY2hhclNldD17Y2hhclNldH0gLz5cbiAgICAgICAge2hlYWR9XG4gICAgICAgIHtleHRyYVN0eWxlfVxuICAgICAgICB7YXNzZXRzLm1hcCgoYXNzZXQsIGkpID0+IChcbiAgICAgICAgICA8bGluayBrZXk9e2l9IHJlbD1cInByZWxvYWRcIiB7Li4uYXNzZXR9IC8+XG4gICAgICAgICkpfVxuICAgICAgICA8dGl0bGU+e3RpdGxlfTwvdGl0bGU+XG4gICAgICA8L2hlYWQ+XG4gICAgICA8Ym9keT5cbiAgICAgICAgPGRpdiBpZD17cm9vdElkfT57Y2hpbGRyZW59PC9kaXY+XG4gICAgICAgIHtzY3JpcHRzfVxuICAgICAgICB7YXNzZXRzXG4gICAgICAgICAgLmZpbHRlcigoeyBocmVmIH0pID0+IGhyZWYuZW5kc1dpdGgoJy5qcycpKVxuICAgICAgICAgIC5tYXAoKHsgaHJlZiB9LCBpKSA9PiAoXG4gICAgICAgICAgICA8c2NyaXB0IGtleT17aX0gc3JjPXtocmVmfSBhc3luYyAvPlxuICAgICAgICAgICkpfVxuICAgICAgPC9ib2R5PlxuICAgIDwvaHRtbD5cbiAgKTtcbn1cbkRvY3VtZW50LmRlZmF1bHRQcm9wcyA9IHtcbiAgaGVhZDogKFxuICAgIDw+XG4gICAgICA8bWV0YSBuYW1lPVwidmlld3BvcnRcIiBjb250ZW50PVwid2lkdGg9ZGV2aWNlLXdpZHRoLCBpbml0aWFsLXNjYWxlPTFcIiAvPlxuICAgICAgPGxpbmtcbiAgICAgICAgcmVsPVwic2hvcnRjdXQgaWNvblwiXG4gICAgICAgIGhyZWY9e2Ake3Byb2Nlc3MuZW52LldFQlBBQ0tfUFVCTElDX1BBVEggPz8gJy8nfWZhdmljb24uaWNvYH1cbiAgICAgIC8+XG4gICAgPC8+XG4gICksXG4gIGNoYXJTZXQ6ICd1dGYtOCcsXG4gIHJvb3RJZDogJ2FuYW5zaS1yb290JyxcbiAgc2NyaXB0czogbnVsbCxcbn07XG4iXSwibWFwcGluZ3MiOiI7OztBQVdBLGVBQWUsU0FBU0EsUUFBUUEsQ0FBQztFQUMvQkMsTUFBTTtFQUNOQyxJQUFJO0VBQ0pDLFFBQVE7RUFDUkMsS0FBSztFQUNMQyxNQUFNO0VBQ05DLE9BQU87RUFDUEMsT0FBTztFQUNQQztBQUNLLENBQUMsRUFBRTtFQUNSLG9CQUNFQyxJQUFBLGtDQUNFQSxJQUFBLGtDQUNFQSxJQUFBO0lBQU1ILE9BQU8sRUFBRUE7RUFBUSxFQUFHLEVBQ3pCSixJQUFJLEVBQ0pNLFVBQVUsRUFDVlAsTUFBTSxDQUFDUyxHQUFHLENBQUMsQ0FBQ0MsS0FBSyxFQUFFQyxDQUFDLGtCQUNuQkMsS0FBQSxDQUFBQyxhQUFBO0lBQU1DLEdBQUcsRUFBRUgsQ0FBRTtJQUFDSSxHQUFHLEVBQUMsU0FBUztJQUFBLEdBQUtMO0VBQUssRUFDdEMsQ0FBQyxlQUNGRixJQUFBLHNCQUFRTCxLQUFLLENBQVMsQ0FDakIsZUFDUEssSUFBQSxrQ0FDRUEsSUFBQTtJQUFLUSxFQUFFLEVBQUVaO0VBQU8sV0FBRUYsUUFBUSxDQUFPLEVBQ2hDSSxPQUFPLEVBQ1BOLE1BQU0sQ0FDSmlCLE1BQU0sQ0FBQyxDQUFDO0lBQUVDO0VBQUssQ0FBQyxLQUFLQSxJQUFJLENBQUNDLFFBQVEsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUMxQ1YsR0FBRyxDQUFDLENBQUM7SUFBRVM7RUFBSyxDQUFDLEVBQUVQLENBQUMsa0JBQ2ZILElBQUE7SUFBZ0JZLEdBQUcsRUFBRUYsSUFBSztJQUFDRyxLQUFLO0VBQUEsR0FBbkJWLENBQUMsQ0FDZixDQUFDLENBQ0MsQ0FDRjtBQUVYO0FBQ0FaLFFBQVEsQ0FBQ3VCLFlBQVksR0FBRztFQUN0QnJCLElBQUksZUFDRlcsS0FBQSxDQUFBQyxhQUFBLENBQUFELEtBQUEsQ0FBQVcsUUFBQSxxQkFDRWYsSUFBQTtJQUFNZ0IsSUFBSSxFQUFDLFVBQVU7SUFBQ0MsT0FBTyxFQUFDO0VBQXFDLEVBQUcsZUFDdEVqQixJQUFBO0lBQ0VPLEdBQUcsRUFBQyxlQUFlO0lBQ25CRyxJQUFJLEVBQUcsSUFBQVEscUJBQUEsR0FBRUMsT0FBTyxDQUFDQyxHQUFHLENBQUNDLG1CQUFtQixZQUFBSCxxQkFBQSxHQUFJLEdBQUk7RUFBYSxFQUM3RCxDQUVMO0VBQ0RyQixPQUFPLEVBQUUsT0FBTztFQUNoQkQsTUFBTSxFQUFFLGFBQWE7RUFDckJFLE9BQU8sRUFBRTtBQUNYLENBQUMifQ==
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
import _jsx from "@babel/runtime/helpers/jsx";
|
|
2
|
+
import React from 'react';
|
|
3
|
+
export default function antdSpout() {
|
|
4
|
+
return next => async props => {
|
|
5
|
+
var _nextProps$scripts;
|
|
6
|
+
const {
|
|
7
|
+
createCache,
|
|
8
|
+
extractStyle,
|
|
9
|
+
StyleProvider
|
|
10
|
+
} = await import('@ant-design/cssinjs');
|
|
11
|
+
const cache = createCache();
|
|
12
|
+
const nextProps = await next(props);
|
|
13
|
+
const scripts = (_nextProps$scripts = nextProps.scripts) != null ? _nextProps$scripts : [];
|
|
14
|
+
const AntdSheets = () => {
|
|
15
|
+
return /*#__PURE__*/_jsx("script", {
|
|
16
|
+
dangerouslySetInnerHTML: {
|
|
17
|
+
__html: `</script>${extractStyle(cache)}<script>`
|
|
18
|
+
}
|
|
19
|
+
});
|
|
20
|
+
};
|
|
21
|
+
// unfortunately we have to inject this after the entire content has streamed in or it doesn't correctly populate
|
|
22
|
+
// see: https://github.com/ant-design/cssinjs/issues/79
|
|
23
|
+
scripts.push( /*#__PURE__*/_jsx(AntdSheets, {}));
|
|
24
|
+
return {
|
|
25
|
+
...nextProps,
|
|
26
|
+
app: /*#__PURE__*/_jsx(StyleProvider, {
|
|
27
|
+
cache: cache
|
|
28
|
+
}, void 0, nextProps.app),
|
|
29
|
+
scripts
|
|
30
|
+
};
|
|
31
|
+
};
|
|
32
|
+
}
|
|
33
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJSZWFjdCIsImFudGRTcG91dCIsIm5leHQiLCJwcm9wcyIsIl9uZXh0UHJvcHMkc2NyaXB0cyIsImNyZWF0ZUNhY2hlIiwiZXh0cmFjdFN0eWxlIiwiU3R5bGVQcm92aWRlciIsImNhY2hlIiwibmV4dFByb3BzIiwic2NyaXB0cyIsIkFudGRTaGVldHMiLCJfanN4IiwiZGFuZ2Vyb3VzbHlTZXRJbm5lckhUTUwiLCJfX2h0bWwiLCJwdXNoIiwiYXBwIl0sInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL3Nwb3V0cy9hbnRkLnNlcnZlci50c3giXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IFJlYWN0IGZyb20gJ3JlYWN0JztcblxuaW1wb3J0IHR5cGUgeyBTZXJ2ZXJTcG91dCB9IGZyb20gJy4vdHlwZXMuanMnO1xuXG50eXBlIE5lZWRlZE5leHQgPSB7XG4gIGluaXREYXRhPzogUmVjb3JkPHN0cmluZywgKCkgPT4gdW5rbm93bj47XG4gIHNjcmlwdHM/OiBSZWFjdC5SZWFjdE5vZGVbXTtcbiAgZXh0cmFTdHlsZT86IFJlYWN0LlJlYWN0Tm9kZVtdO1xufTtcblxuZXhwb3J0IGRlZmF1bHQgZnVuY3Rpb24gYW50ZFNwb3V0KCk6IFNlcnZlclNwb3V0PFxuICBSZWNvcmQ8c3RyaW5nLCB1bmtub3duPixcbiAgUmVjb3JkPHN0cmluZywgdW5rbm93bj4sXG4gIE5lZWRlZE5leHRcbj4ge1xuICByZXR1cm4gbmV4dCA9PiBhc3luYyBwcm9wcyA9PiB7XG4gICAgY29uc3QgeyBjcmVhdGVDYWNoZSwgZXh0cmFjdFN0eWxlLCBTdHlsZVByb3ZpZGVyIH0gPSBhd2FpdCBpbXBvcnQoXG4gICAgICAnQGFudC1kZXNpZ24vY3NzaW5qcydcbiAgICApO1xuICAgIGNvbnN0IGNhY2hlID0gY3JlYXRlQ2FjaGUoKTtcblxuICAgIGNvbnN0IG5leHRQcm9wcyA9IGF3YWl0IG5leHQocHJvcHMpO1xuXG4gICAgY29uc3Qgc2NyaXB0czogUmVhY3QuUmVhY3ROb2RlW10gPSBuZXh0UHJvcHMuc2NyaXB0cyA/PyBbXTtcblxuICAgIGNvbnN0IEFudGRTaGVldHMgPSAoKTogSlNYLkVsZW1lbnQgPT4ge1xuICAgICAgcmV0dXJuIChcbiAgICAgICAgPHNjcmlwdFxuICAgICAgICAgIGRhbmdlcm91c2x5U2V0SW5uZXJIVE1MPXt7XG4gICAgICAgICAgICBfX2h0bWw6IGA8L3NjcmlwdD4ke2V4dHJhY3RTdHlsZShjYWNoZSl9PHNjcmlwdD5gLFxuICAgICAgICAgIH19XG4gICAgICAgIC8+XG4gICAgICApO1xuICAgIH07XG4gICAgLy8gdW5mb3J0dW5hdGVseSB3ZSBoYXZlIHRvIGluamVjdCB0aGlzIGFmdGVyIHRoZSBlbnRpcmUgY29udGVudCBoYXMgc3RyZWFtZWQgaW4gb3IgaXQgZG9lc24ndCBjb3JyZWN0bHkgcG9wdWxhdGVcbiAgICAvLyBzZWU6IGh0dHBzOi8vZ2l0aHViLmNvbS9hbnQtZGVzaWduL2Nzc2luanMvaXNzdWVzLzc5XG4gICAgc2NyaXB0cy5wdXNoKDxBbnRkU2hlZXRzIC8+KTtcblxuICAgIHJldHVybiB7XG4gICAgICAuLi5uZXh0UHJvcHMsXG4gICAgICBhcHA6IDxTdHlsZVByb3ZpZGVyIGNhY2hlPXtjYWNoZX0+e25leHRQcm9wcy5hcHB9PC9TdHlsZVByb3ZpZGVyPixcbiAgICAgIHNjcmlwdHMsXG4gICAgfTtcbiAgfTtcbn1cbiJdLCJtYXBwaW5ncyI6IjtBQUFBLE9BQU9BLEtBQUssTUFBTSxPQUFPO0FBVXpCLGVBQWUsU0FBU0MsU0FBU0EsQ0FBQSxFQUkvQjtFQUNBLE9BQU9DLElBQUksSUFBSSxNQUFNQyxLQUFLLElBQUk7SUFBQSxJQUFBQyxrQkFBQTtJQUM1QixNQUFNO01BQUVDLFdBQVc7TUFBRUMsWUFBWTtNQUFFQztJQUFjLENBQUMsR0FBRyxNQUFNLE1BQU0sQ0FDL0QscUJBQXFCLENBQ3RCO0lBQ0QsTUFBTUMsS0FBSyxHQUFHSCxXQUFXLEVBQUU7SUFFM0IsTUFBTUksU0FBUyxHQUFHLE1BQU1QLElBQUksQ0FBQ0MsS0FBSyxDQUFDO0lBRW5DLE1BQU1PLE9BQTBCLElBQUFOLGtCQUFBLEdBQUdLLFNBQVMsQ0FBQ0MsT0FBTyxZQUFBTixrQkFBQSxHQUFJLEVBQUU7SUFFMUQsTUFBTU8sVUFBVSxHQUFHQSxDQUFBLEtBQW1CO01BQ3BDLG9CQUNFQyxJQUFBO1FBQ0VDLHVCQUF1QixFQUFFO1VBQ3ZCQyxNQUFNLEVBQUcsWUFBV1IsWUFBWSxDQUFDRSxLQUFLLENBQUU7UUFDMUM7TUFBRSxFQUNGO0lBRU4sQ0FBQztJQUNEO0lBQ0E7SUFDQUUsT0FBTyxDQUFDSyxJQUFJLGVBQUNILElBQUEsQ0FBQ0QsVUFBVSxLQUFHLENBQUM7SUFFNUIsT0FBTztNQUNMLEdBQUdGLFNBQVM7TUFDWk8sR0FBRyxlQUFFSixJQUFBLENBQUNMLGFBQWE7UUFBQ0MsS0FBSyxFQUFFQTtNQUFNLFdBQUVDLFNBQVMsQ0FBQ08sR0FBRyxDQUFpQjtNQUNqRU47SUFDRixDQUFDO0VBQ0gsQ0FBQztBQUNIIn0=
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
const appSpout = app => props => Promise.resolve({
|
|
2
|
+
...props,
|
|
3
|
+
app
|
|
4
|
+
});
|
|
5
|
+
export default appSpout;
|
|
6
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJhcHBTcG91dCIsImFwcCIsInByb3BzIiwiUHJvbWlzZSIsInJlc29sdmUiXSwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvc3BvdXRzL2FwcC50c3giXSwic291cmNlc0NvbnRlbnQiOlsiY29uc3QgYXBwU3BvdXQgPVxuICAoYXBwOiBKU1guRWxlbWVudCkgPT5cbiAgPFAgZXh0ZW5kcyBSZWNvcmQ8c3RyaW5nLCB1bmtub3duPj4ocHJvcHM6IFApID0+XG4gICAgUHJvbWlzZS5yZXNvbHZlKHsgLi4ucHJvcHMsIGFwcCB9KTtcblxuZXhwb3J0IGRlZmF1bHQgYXBwU3BvdXQ7XG4iXSwibWFwcGluZ3MiOiJBQUFBLE1BQU1BLFFBQVEsR0FDWEMsR0FBZ0IsSUFDbUJDLEtBQVEsSUFDMUNDLE9BQU8sQ0FBQ0MsT0FBTyxDQUFDO0VBQUUsR0FBR0YsS0FBSztFQUFFRDtBQUFJLENBQUMsQ0FBQztBQUV0QyxlQUFlRCxRQUFRIn0=
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
const appSpout = app => props => Promise.resolve({
|
|
2
|
+
...props,
|
|
3
|
+
app
|
|
4
|
+
});
|
|
5
|
+
export default appSpout;
|
|
6
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJhcHBTcG91dCIsImFwcCIsInByb3BzIiwiUHJvbWlzZSIsInJlc29sdmUiXSwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvc3BvdXRzL2FwcC5zZXJ2ZXIudHN4Il0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFNlcnZlclByb3BzIH0gZnJvbSAnLi90eXBlcy5qcyc7XG5cbmNvbnN0IGFwcFNwb3V0ID1cbiAgKGFwcDogSlNYLkVsZW1lbnQpID0+XG4gIDxQIGV4dGVuZHMgU2VydmVyUHJvcHM+KHByb3BzOiBQKSA9PlxuICAgIFByb21pc2UucmVzb2x2ZSh7IC4uLnByb3BzLCBhcHAgfSk7XG5cbmV4cG9ydCBkZWZhdWx0IGFwcFNwb3V0O1xuIl0sIm1hcHBpbmdzIjoiQUFFQSxNQUFNQSxRQUFRLEdBQ1hDLEdBQWdCLElBQ09DLEtBQVEsSUFDOUJDLE9BQU8sQ0FBQ0MsT0FBTyxDQUFDO0VBQUUsR0FBR0YsS0FBSztFQUFFRDtBQUFJLENBQUMsQ0FBQztBQUV0QyxlQUFlRCxRQUFRIn0=
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
// TODO: memoize this
|
|
2
|
+
export function buildPolicy(policyObj) {
|
|
3
|
+
return Object.keys(policyObj).map(key => {
|
|
4
|
+
const val = Array.isArray(policyObj[key]) ? [...new Set(policyObj[key]).values()].filter(v => v).join(' ') : policyObj[key];
|
|
5
|
+
|
|
6
|
+
// move strict dynamic to the end of the policy if it exists to be backwards compatible with csp2
|
|
7
|
+
// https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Content-Security-Policy/script-src#strict-dynamic
|
|
8
|
+
if (typeof val === 'string' && val.includes("'strict-dynamic'")) {
|
|
9
|
+
const newVal = `${val.replace(/\s?'strict-dynamic'\s?/gi, ' ').trim()} 'strict-dynamic'`;
|
|
10
|
+
return `${key} ${newVal}`;
|
|
11
|
+
}
|
|
12
|
+
return `${key} ${val}`;
|
|
13
|
+
}).join('; ');
|
|
14
|
+
}
|
|
15
|
+
export function joinNonce(policyObj, nonce) {
|
|
16
|
+
if (!nonce) return policyObj;
|
|
17
|
+
const policy = {
|
|
18
|
+
...policyObj
|
|
19
|
+
};
|
|
20
|
+
if (typeof policy['script-src'] === 'string') {
|
|
21
|
+
policy['script-src'] = [policy['script-src'], `'nonce-${nonce}'`];
|
|
22
|
+
} else {
|
|
23
|
+
policy['script-src'] = [...policy['script-src'], `'nonce-${nonce}'`];
|
|
24
|
+
}
|
|
25
|
+
return policy;
|
|
26
|
+
}
|
|
27
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJidWlsZFBvbGljeSIsInBvbGljeU9iaiIsIk9iamVjdCIsImtleXMiLCJtYXAiLCJrZXkiLCJ2YWwiLCJBcnJheSIsImlzQXJyYXkiLCJTZXQiLCJ2YWx1ZXMiLCJmaWx0ZXIiLCJ2Iiwiam9pbiIsImluY2x1ZGVzIiwibmV3VmFsIiwicmVwbGFjZSIsInRyaW0iLCJqb2luTm9uY2UiLCJub25jZSIsInBvbGljeSJdLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9zcG91dHMvY3NwLnRzIl0sInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCBpbnRlcmZhY2UgUG9saWN5IHtcbiAgW2RpcmVjdGl2ZTogc3RyaW5nXTogc3RyaW5nIHwgc3RyaW5nW107XG59XG5cbi8vIFRPRE86IG1lbW9pemUgdGhpc1xuZXhwb3J0IGZ1bmN0aW9uIGJ1aWxkUG9saWN5KHBvbGljeU9iajogUG9saWN5KSB7XG4gIHJldHVybiBPYmplY3Qua2V5cyhwb2xpY3lPYmopXG4gICAgLm1hcChrZXkgPT4ge1xuICAgICAgY29uc3QgdmFsID0gQXJyYXkuaXNBcnJheShwb2xpY3lPYmpba2V5XSlcbiAgICAgICAgPyBbLi4ubmV3IFNldChwb2xpY3lPYmpba2V5XSkudmFsdWVzKCldLmZpbHRlcih2ID0+IHYpLmpvaW4oJyAnKVxuICAgICAgICA6IHBvbGljeU9ialtrZXldO1xuXG4gICAgICAvLyBtb3ZlIHN0cmljdCBkeW5hbWljIHRvIHRoZSBlbmQgb2YgdGhlIHBvbGljeSBpZiBpdCBleGlzdHMgdG8gYmUgYmFja3dhcmRzIGNvbXBhdGlibGUgd2l0aCBjc3AyXG4gICAgICAvLyBodHRwczovL2RldmVsb3Blci5tb3ppbGxhLm9yZy9lbi1VUy9kb2NzL1dlYi9IVFRQL0hlYWRlcnMvQ29udGVudC1TZWN1cml0eS1Qb2xpY3kvc2NyaXB0LXNyYyNzdHJpY3QtZHluYW1pY1xuICAgICAgaWYgKHR5cGVvZiB2YWwgPT09ICdzdHJpbmcnICYmIHZhbC5pbmNsdWRlcyhcIidzdHJpY3QtZHluYW1pYydcIikpIHtcbiAgICAgICAgY29uc3QgbmV3VmFsID0gYCR7dmFsXG4gICAgICAgICAgLnJlcGxhY2UoL1xccz8nc3RyaWN0LWR5bmFtaWMnXFxzPy9naSwgJyAnKVxuICAgICAgICAgIC50cmltKCl9ICdzdHJpY3QtZHluYW1pYydgO1xuICAgICAgICByZXR1cm4gYCR7a2V5fSAke25ld1ZhbH1gO1xuICAgICAgfVxuXG4gICAgICByZXR1cm4gYCR7a2V5fSAke3ZhbH1gO1xuICAgIH0pXG4gICAgLmpvaW4oJzsgJyk7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBqb2luTm9uY2UocG9saWN5T2JqOiBQb2xpY3ksIG5vbmNlPzogc3RyaW5nIHwgdW5kZWZpbmVkKSB7XG4gIGlmICghbm9uY2UpIHJldHVybiBwb2xpY3lPYmo7XG4gIGNvbnN0IHBvbGljeSA9IHtcbiAgICAuLi5wb2xpY3lPYmosXG4gIH07XG4gIGlmICh0eXBlb2YgcG9saWN5WydzY3JpcHQtc3JjJ10gPT09ICdzdHJpbmcnKSB7XG4gICAgcG9saWN5WydzY3JpcHQtc3JjJ10gPSBbcG9saWN5WydzY3JpcHQtc3JjJ10sIGAnbm9uY2UtJHtub25jZX0nYF07XG4gIH0gZWxzZSB7XG4gICAgcG9saWN5WydzY3JpcHQtc3JjJ10gPSBbLi4ucG9saWN5WydzY3JpcHQtc3JjJ10sIGAnbm9uY2UtJHtub25jZX0nYF07XG4gIH1cbiAgcmV0dXJuIHBvbGljeTtcbn1cbiJdLCJtYXBwaW5ncyI6IkFBSUE7QUFDQSxPQUFPLFNBQVNBLFdBQVdBLENBQUNDLFNBQWlCLEVBQUU7RUFDN0MsT0FBT0MsTUFBTSxDQUFDQyxJQUFJLENBQUNGLFNBQVMsQ0FBQyxDQUMxQkcsR0FBRyxDQUFDQyxHQUFHLElBQUk7SUFDVixNQUFNQyxHQUFHLEdBQUdDLEtBQUssQ0FBQ0MsT0FBTyxDQUFDUCxTQUFTLENBQUNJLEdBQUcsQ0FBQyxDQUFDLEdBQ3JDLENBQUMsR0FBRyxJQUFJSSxHQUFHLENBQUNSLFNBQVMsQ0FBQ0ksR0FBRyxDQUFDLENBQUMsQ0FBQ0ssTUFBTSxFQUFFLENBQUMsQ0FBQ0MsTUFBTSxDQUFDQyxDQUFDLElBQUlBLENBQUMsQ0FBQyxDQUFDQyxJQUFJLENBQUMsR0FBRyxDQUFDLEdBQzlEWixTQUFTLENBQUNJLEdBQUcsQ0FBQzs7SUFFbEI7SUFDQTtJQUNBLElBQUksT0FBT0MsR0FBRyxLQUFLLFFBQVEsSUFBSUEsR0FBRyxDQUFDUSxRQUFRLENBQUMsa0JBQWtCLENBQUMsRUFBRTtNQUMvRCxNQUFNQyxNQUFNLEdBQUksR0FBRVQsR0FBRyxDQUNsQlUsT0FBTyxDQUFDLDBCQUEwQixFQUFFLEdBQUcsQ0FBQyxDQUN4Q0MsSUFBSSxFQUFHLG1CQUFrQjtNQUM1QixPQUFRLEdBQUVaLEdBQUksSUFBR1UsTUFBTyxFQUFDO0lBQzNCO0lBRUEsT0FBUSxHQUFFVixHQUFJLElBQUdDLEdBQUksRUFBQztFQUN4QixDQUFDLENBQUMsQ0FDRE8sSUFBSSxDQUFDLElBQUksQ0FBQztBQUNmO0FBRUEsT0FBTyxTQUFTSyxTQUFTQSxDQUFDakIsU0FBaUIsRUFBRWtCLEtBQTBCLEVBQUU7RUFDdkUsSUFBSSxDQUFDQSxLQUFLLEVBQUUsT0FBT2xCLFNBQVM7RUFDNUIsTUFBTW1CLE1BQU0sR0FBRztJQUNiLEdBQUduQjtFQUNMLENBQUM7RUFDRCxJQUFJLE9BQU9tQixNQUFNLENBQUMsWUFBWSxDQUFDLEtBQUssUUFBUSxFQUFFO0lBQzVDQSxNQUFNLENBQUMsWUFBWSxDQUFDLEdBQUcsQ0FBQ0EsTUFBTSxDQUFDLFlBQVksQ0FBQyxFQUFHLFVBQVNELEtBQU0sR0FBRSxDQUFDO0VBQ25FLENBQUMsTUFBTTtJQUNMQyxNQUFNLENBQUMsWUFBWSxDQUFDLEdBQUcsQ0FBQyxHQUFHQSxNQUFNLENBQUMsWUFBWSxDQUFDLEVBQUcsVUFBU0QsS0FBTSxHQUFFLENBQUM7RUFDdEU7RUFDQSxPQUFPQyxNQUFNO0FBQ2YifQ==
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
export default function documentSpout(options) {
|
|
2
|
+
return next => async props => {
|
|
3
|
+
const nextProps = await next(props);
|
|
4
|
+
return nextProps;
|
|
5
|
+
};
|
|
6
|
+
}
|
|
7
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJkb2N1bWVudFNwb3V0Iiwib3B0aW9ucyIsIm5leHQiLCJwcm9wcyIsIm5leHRQcm9wcyJdLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9zcG91dHMvZG9jdW1lbnQudHN4Il0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBSZWFjdCBmcm9tICdyZWFjdCc7XG5cbmltcG9ydCB0eXBlIHsgQ2xpZW50U3BvdXQgfSBmcm9tICcuL3R5cGVzLmpzJztcblxuZXhwb3J0IGRlZmF1bHQgZnVuY3Rpb24gZG9jdW1lbnRTcG91dChvcHRpb25zOiB7XG4gIGhlYWQ/OiBSZWFjdC5SZWFjdE5vZGU7XG4gIHRpdGxlOiBzdHJpbmc7XG59KTogQ2xpZW50U3BvdXQge1xuICByZXR1cm4gbmV4dCA9PiBhc3luYyBwcm9wcyA9PiB7XG4gICAgY29uc3QgbmV4dFByb3BzID0gYXdhaXQgbmV4dChwcm9wcyk7XG5cbiAgICByZXR1cm4gbmV4dFByb3BzO1xuICB9O1xufVxuIl0sIm1hcHBpbmdzIjoiQUFJQSxlQUFlLFNBQVNBLGFBQWFBLENBQUNDLE9BR3JDLEVBQWU7RUFDZCxPQUFPQyxJQUFJLElBQUksTUFBTUMsS0FBSyxJQUFJO0lBQzVCLE1BQU1DLFNBQVMsR0FBRyxNQUFNRixJQUFJLENBQUNDLEtBQUssQ0FBQztJQUVuQyxPQUFPQyxTQUFTO0VBQ2xCLENBQUM7QUFDSCJ9
|
|
@@ -0,0 +1,63 @@
|
|
|
1
|
+
import React from 'react';
|
|
2
|
+
import { buildPolicy, joinNonce } from './csp.js';
|
|
3
|
+
import Document from './DocumentComponent.js';
|
|
4
|
+
export default function DocumentSpout(options) {
|
|
5
|
+
return next => async props => {
|
|
6
|
+
var _props$clientManifest, _props$clientManifest2, _props$clientManifest3, _props$clientManifest4, _props$clientManifest5, _nextProps$title;
|
|
7
|
+
const nextProps = await next(props);
|
|
8
|
+
const publicPath = props.clientManifest.publicPath;
|
|
9
|
+
if (Object.keys((_props$clientManifest = (_props$clientManifest2 = props.clientManifest) == null ? void 0 : _props$clientManifest2.entrypoints) != null ? _props$clientManifest : {}).length < 1 || publicPath === undefined) throw new Error('Manifest missing entries needed');
|
|
10
|
+
|
|
11
|
+
// TODO: consider using this package for build stats in future:
|
|
12
|
+
// https://github.com/facebook/react/tree/main/packages/react-server-dom-webpack
|
|
13
|
+
const assetMap = assets => assets.map(({
|
|
14
|
+
name
|
|
15
|
+
}) => `${publicPath}${name}`);
|
|
16
|
+
const assetList = [];
|
|
17
|
+
Object.values((_props$clientManifest3 = (_props$clientManifest4 = props.clientManifest) == null ? void 0 : _props$clientManifest4.entrypoints) != null ? _props$clientManifest3 : {}).forEach(entrypoint => {
|
|
18
|
+
var _entrypoint$assets;
|
|
19
|
+
assetList.push(...assetMap((_entrypoint$assets = entrypoint.assets) != null ? _entrypoint$assets : []));
|
|
20
|
+
});
|
|
21
|
+
new Set(assetMap(Object.values((_props$clientManifest5 = props.clientManifest.namedChunkGroups) != null ? _props$clientManifest5 : {}).filter(({
|
|
22
|
+
name
|
|
23
|
+
}) => nextProps.matchedRoutes.some(route => name == null ? void 0 : name.includes(route.name))).flatMap(chunk => {
|
|
24
|
+
var _chunk$assets;
|
|
25
|
+
return [...((_chunk$assets = chunk.assets) != null ? _chunk$assets : []),
|
|
26
|
+
// any chunk preloads
|
|
27
|
+
...childrenAssets(chunk)];
|
|
28
|
+
}))).forEach(asset => assetList.push(asset));
|
|
29
|
+
|
|
30
|
+
// find additional assets to preload based on matched route
|
|
31
|
+
const assets = assetList.filter(asset => !asset.endsWith('.hot-update.js')).map(asset => asset.endsWith('.css') ? {
|
|
32
|
+
href: asset,
|
|
33
|
+
rel: 'stylesheet'
|
|
34
|
+
} : asset.endsWith('.js') ? {
|
|
35
|
+
href: asset,
|
|
36
|
+
as: 'script'
|
|
37
|
+
} : {
|
|
38
|
+
href: asset
|
|
39
|
+
});
|
|
40
|
+
if (options.csPolicy) {
|
|
41
|
+
const httpEquiv = process.env.NODE_ENV === 'production' ? 'Content-Security-Policy' : 'Content-Security-Policy-Report-Only';
|
|
42
|
+
props.res.setHeader(httpEquiv, buildPolicy(joinNonce(options.csPolicy, props.nonce)));
|
|
43
|
+
}
|
|
44
|
+
return {
|
|
45
|
+
...nextProps,
|
|
46
|
+
app: /*#__PURE__*/React.createElement(Document, {
|
|
47
|
+
...options,
|
|
48
|
+
extraStyle: nextProps.extraStyle,
|
|
49
|
+
title: (_nextProps$title = nextProps.title) != null ? _nextProps$title : options.title,
|
|
50
|
+
assets: assets,
|
|
51
|
+
rootId: options.rootId,
|
|
52
|
+
scripts: nextProps.scripts
|
|
53
|
+
}, nextProps.app)
|
|
54
|
+
};
|
|
55
|
+
};
|
|
56
|
+
}
|
|
57
|
+
function childrenAssets(chunk) {
|
|
58
|
+
return chunk.children ? Object.values(chunk.children).flatMap(preload => preload.flatMap(c => {
|
|
59
|
+
var _c$assets;
|
|
60
|
+
return (_c$assets = c.assets) != null ? _c$assets : [];
|
|
61
|
+
})) : [];
|
|
62
|
+
}
|
|
63
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJSZWFjdCIsImJ1aWxkUG9saWN5Iiwiam9pbk5vbmNlIiwiRG9jdW1lbnQiLCJEb2N1bWVudFNwb3V0Iiwib3B0aW9ucyIsIm5leHQiLCJwcm9wcyIsIl9wcm9wcyRjbGllbnRNYW5pZmVzdCIsIl9wcm9wcyRjbGllbnRNYW5pZmVzdDIiLCJfcHJvcHMkY2xpZW50TWFuaWZlc3QzIiwiX3Byb3BzJGNsaWVudE1hbmlmZXN0NCIsIl9wcm9wcyRjbGllbnRNYW5pZmVzdDUiLCJfbmV4dFByb3BzJHRpdGxlIiwibmV4dFByb3BzIiwicHVibGljUGF0aCIsImNsaWVudE1hbmlmZXN0IiwiT2JqZWN0Iiwia2V5cyIsImVudHJ5cG9pbnRzIiwibGVuZ3RoIiwidW5kZWZpbmVkIiwiRXJyb3IiLCJhc3NldE1hcCIsImFzc2V0cyIsIm1hcCIsIm5hbWUiLCJhc3NldExpc3QiLCJ2YWx1ZXMiLCJmb3JFYWNoIiwiZW50cnlwb2ludCIsIl9lbnRyeXBvaW50JGFzc2V0cyIsInB1c2giLCJTZXQiLCJuYW1lZENodW5rR3JvdXBzIiwiZmlsdGVyIiwibWF0Y2hlZFJvdXRlcyIsInNvbWUiLCJyb3V0ZSIsImluY2x1ZGVzIiwiZmxhdE1hcCIsImNodW5rIiwiX2NodW5rJGFzc2V0cyIsImNoaWxkcmVuQXNzZXRzIiwiYXNzZXQiLCJlbmRzV2l0aCIsImhyZWYiLCJyZWwiLCJhcyIsImNzUG9saWN5IiwiaHR0cEVxdWl2IiwicHJvY2VzcyIsImVudiIsIk5PREVfRU5WIiwicmVzIiwic2V0SGVhZGVyIiwibm9uY2UiLCJhcHAiLCJjcmVhdGVFbGVtZW50IiwiZXh0cmFTdHlsZSIsInRpdGxlIiwicm9vdElkIiwic2NyaXB0cyIsImNoaWxkcmVuIiwicHJlbG9hZCIsImMiLCJfYyRhc3NldHMiXSwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvc3BvdXRzL2RvY3VtZW50LnNlcnZlci50c3giXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHR5cGUgeyBSb3V0ZSB9IGZyb20gJ0BhbmFuc2kvcm91dGVyJztcbmltcG9ydCB7IFJlcXVlc3QgfSBmcm9tICdleHByZXNzJztcbmltcG9ydCBSZWFjdCBmcm9tICdyZWFjdCc7XG5pbXBvcnQgeyBTdGF0c0NodW5rR3JvdXAgfSBmcm9tICd3ZWJwYWNrJztcblxuaW1wb3J0IHsgYnVpbGRQb2xpY3ksIGpvaW5Ob25jZSwgUG9saWN5IH0gZnJvbSAnLi9jc3AuanMnO1xuaW1wb3J0IERvY3VtZW50IGZyb20gJy4vRG9jdW1lbnRDb21wb25lbnQuanMnO1xuaW1wb3J0IHR5cGUgeyBTZXJ2ZXJTcG91dCB9IGZyb20gJy4vdHlwZXMuanMnO1xuXG50eXBlIE5lZWRlZE5leHQgPSB7XG4gIG1hdGNoZWRSb3V0ZXM6IFJvdXRlPGFueT5bXTtcbiAgdGl0bGU/OiBzdHJpbmc7XG4gIHNjcmlwdHM/OiBSZWFjdC5SZWFjdE5vZGVbXTtcbiAgZXh0cmFTdHlsZT86IFJlYWN0LlJlYWN0Tm9kZVtdO1xufTtcblxuZXhwb3J0IGRlZmF1bHQgZnVuY3Rpb24gRG9jdW1lbnRTcG91dChvcHRpb25zOiB7XG4gIGhlYWQ/OiBSZWFjdC5SZWFjdE5vZGU7XG4gIHRpdGxlOiBzdHJpbmc7XG4gIHJvb3RJZD86IHN0cmluZztcbiAgY2hhclNldD86IHN0cmluZztcbiAgY3NQb2xpY3k/OiBQb2xpY3k7XG59KTogU2VydmVyU3BvdXQ8UmVjb3JkPHN0cmluZywgdW5rbm93bj4sIFJlY29yZDxzdHJpbmcsIHVua25vd24+LCBOZWVkZWROZXh0PiB7XG4gIHJldHVybiBuZXh0ID0+IGFzeW5jIHByb3BzID0+IHtcbiAgICBjb25zdCBuZXh0UHJvcHMgPSBhd2FpdCBuZXh0KHByb3BzKTtcblxuICAgIGNvbnN0IHB1YmxpY1BhdGggPSBwcm9wcy5jbGllbnRNYW5pZmVzdC5wdWJsaWNQYXRoO1xuXG4gICAgaWYgKFxuICAgICAgT2JqZWN0LmtleXMocHJvcHMuY2xpZW50TWFuaWZlc3Q/LmVudHJ5cG9pbnRzID8/IHt9KS5sZW5ndGggPCAxIHx8XG4gICAgICBwdWJsaWNQYXRoID09PSB1bmRlZmluZWRcbiAgICApXG4gICAgICB0aHJvdyBuZXcgRXJyb3IoJ01hbmlmZXN0IG1pc3NpbmcgZW50cmllcyBuZWVkZWQnKTtcblxuICAgIC8vIFRPRE86IGNvbnNpZGVyIHVzaW5nIHRoaXMgcGFja2FnZSBmb3IgYnVpbGQgc3RhdHMgaW4gZnV0dXJlOlxuICAgIC8vIGh0dHBzOi8vZ2l0aHViLmNvbS9mYWNlYm9vay9yZWFjdC90cmVlL21haW4vcGFja2FnZXMvcmVhY3Qtc2VydmVyLWRvbS13ZWJwYWNrXG4gICAgY29uc3QgYXNzZXRNYXAgPSAoYXNzZXRzOiB7IG5hbWU6IHN0cmluZzsgc2l6ZT86IG51bWJlciB9W10pID0+XG4gICAgICBhc3NldHMubWFwKCh7IG5hbWUgfSkgPT4gYCR7cHVibGljUGF0aH0ke25hbWV9YCk7XG5cbiAgICBjb25zdCBhc3NldExpc3Q6IHN0cmluZ1tdID0gW107XG4gICAgT2JqZWN0LnZhbHVlcyhwcm9wcy5jbGllbnRNYW5pZmVzdD8uZW50cnlwb2ludHMgPz8ge30pLmZvckVhY2goXG4gICAgICBlbnRyeXBvaW50ID0+IHtcbiAgICAgICAgYXNzZXRMaXN0LnB1c2goLi4uYXNzZXRNYXAoZW50cnlwb2ludC5hc3NldHMgPz8gW10pKTtcbiAgICAgIH0sXG4gICAgKTtcbiAgICBuZXcgU2V0KFxuICAgICAgYXNzZXRNYXAoXG4gICAgICAgIE9iamVjdC52YWx1ZXMocHJvcHMuY2xpZW50TWFuaWZlc3QubmFtZWRDaHVua0dyb3VwcyA/PyB7fSlcbiAgICAgICAgICAuZmlsdGVyKCh7IG5hbWUgfSkgPT5cbiAgICAgICAgICAgIG5leHRQcm9wcy5tYXRjaGVkUm91dGVzLnNvbWUocm91dGUgPT4gbmFtZT8uaW5jbHVkZXMocm91dGUubmFtZSkpLFxuICAgICAgICAgIClcbiAgICAgICAgICAuZmxhdE1hcChjaHVuayA9PiBbXG4gICAgICAgICAgICAuLi4oY2h1bmsuYXNzZXRzID8/IFtdKSxcbiAgICAgICAgICAgIC8vIGFueSBjaHVuayBwcmVsb2Fkc1xuICAgICAgICAgICAgLi4uY2hpbGRyZW5Bc3NldHMoY2h1bmspLFxuICAgICAgICAgIF0pLFxuICAgICAgKSxcbiAgICApLmZvckVhY2goYXNzZXQgPT4gYXNzZXRMaXN0LnB1c2goYXNzZXQpKTtcblxuICAgIC8vIGZpbmQgYWRkaXRpb25hbCBhc3NldHMgdG8gcHJlbG9hZCBiYXNlZCBvbiBtYXRjaGVkIHJvdXRlXG4gICAgY29uc3QgYXNzZXRzOiB7XG4gICAgICBocmVmOiBzdHJpbmc7XG4gICAgICBhcz86IHN0cmluZyB8IHVuZGVmaW5lZDtcbiAgICAgIHJlbD86IHN0cmluZyB8IHVuZGVmaW5lZDtcbiAgICB9W10gPSBhc3NldExpc3RcbiAgICAgIC5maWx0ZXIoYXNzZXQgPT4gIWFzc2V0LmVuZHNXaXRoKCcuaG90LXVwZGF0ZS5qcycpKVxuICAgICAgLm1hcChhc3NldCA9PlxuICAgICAgICBhc3NldC5lbmRzV2l0aCgnLmNzcycpXG4gICAgICAgICAgPyB7IGhyZWY6IGFzc2V0LCByZWw6ICdzdHlsZXNoZWV0JyB9XG4gICAgICAgICAgOiBhc3NldC5lbmRzV2l0aCgnLmpzJylcbiAgICAgICAgICA/IHsgaHJlZjogYXNzZXQsIGFzOiAnc2NyaXB0JyB9XG4gICAgICAgICAgOiB7IGhyZWY6IGFzc2V0IH0sXG4gICAgICApO1xuXG4gICAgaWYgKG9wdGlvbnMuY3NQb2xpY3kpIHtcbiAgICAgIGNvbnN0IGh0dHBFcXVpdiA9XG4gICAgICAgIHByb2Nlc3MuZW52Lk5PREVfRU5WID09PSAncHJvZHVjdGlvbidcbiAgICAgICAgICA/ICdDb250ZW50LVNlY3VyaXR5LVBvbGljeSdcbiAgICAgICAgICA6ICdDb250ZW50LVNlY3VyaXR5LVBvbGljeS1SZXBvcnQtT25seSc7XG5cbiAgICAgIHByb3BzLnJlcy5zZXRIZWFkZXIoXG4gICAgICAgIGh0dHBFcXVpdixcbiAgICAgICAgYnVpbGRQb2xpY3koam9pbk5vbmNlKG9wdGlvbnMuY3NQb2xpY3ksIHByb3BzLm5vbmNlKSksXG4gICAgICApO1xuICAgIH1cblxuICAgIHJldHVybiB7XG4gICAgICAuLi5uZXh0UHJvcHMsXG4gICAgICBhcHA6IChcbiAgICAgICAgPERvY3VtZW50XG4gICAgICAgICAgey4uLm9wdGlvbnN9XG4gICAgICAgICAgZXh0cmFTdHlsZT17bmV4dFByb3BzLmV4dHJhU3R5bGV9XG4gICAgICAgICAgdGl0bGU9e25leHRQcm9wcy50aXRsZSA/PyBvcHRpb25zLnRpdGxlfVxuICAgICAgICAgIGFzc2V0cz17YXNzZXRzfVxuICAgICAgICAgIHJvb3RJZD17b3B0aW9ucy5yb290SWR9XG4gICAgICAgICAgc2NyaXB0cz17bmV4dFByb3BzLnNjcmlwdHN9XG4gICAgICAgID5cbiAgICAgICAgICB7bmV4dFByb3BzLmFwcH1cbiAgICAgICAgPC9Eb2N1bWVudD5cbiAgICAgICksXG4gICAgfTtcbiAgfTtcbn1cblxuZnVuY3Rpb24gY2hpbGRyZW5Bc3NldHMoY2h1bms6IFN0YXRzQ2h1bmtHcm91cCkge1xuICByZXR1cm4gY2h1bmsuY2hpbGRyZW5cbiAgICA/IE9iamVjdC52YWx1ZXMoY2h1bmsuY2hpbGRyZW4pLmZsYXRNYXAocHJlbG9hZCA9PlxuICAgICAgICBwcmVsb2FkLmZsYXRNYXAoYyA9PiBjLmFzc2V0cyA/PyBbXSksXG4gICAgICApXG4gICAgOiBbXTtcbn1cbiJdLCJtYXBwaW5ncyI6IkFBRUEsT0FBT0EsS0FBSyxNQUFNLE9BQU87QUFHekIsU0FBU0MsV0FBVyxFQUFFQyxTQUFTLFFBQWdCLFVBQVU7QUFDekQsT0FBT0MsUUFBUSxNQUFNLHdCQUF3QjtBQVU3QyxlQUFlLFNBQVNDLGFBQWFBLENBQUNDLE9BTXJDLEVBQTZFO0VBQzVFLE9BQU9DLElBQUksSUFBSSxNQUFNQyxLQUFLLElBQUk7SUFBQSxJQUFBQyxxQkFBQSxFQUFBQyxzQkFBQSxFQUFBQyxzQkFBQSxFQUFBQyxzQkFBQSxFQUFBQyxzQkFBQSxFQUFBQyxnQkFBQTtJQUM1QixNQUFNQyxTQUFTLEdBQUcsTUFBTVIsSUFB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
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
export default function JSONSpout({
|
|
2
|
+
id = 'anansi-json'
|
|
3
|
+
} = {}) {
|
|
4
|
+
return next => async props => {
|
|
5
|
+
const getInitialData = key => {
|
|
6
|
+
const globalId = `${id}.${key}`;
|
|
7
|
+
return new Promise((resolve, reject) => {
|
|
8
|
+
let el;
|
|
9
|
+
if (el = document.getElementById(globalId)) {
|
|
10
|
+
resolve(getDataFromEl(el, globalId));
|
|
11
|
+
return;
|
|
12
|
+
}
|
|
13
|
+
document.addEventListener('DOMContentLoaded', () => {
|
|
14
|
+
el = document.getElementById(globalId);
|
|
15
|
+
if (el) resolve(getDataFromEl(el, globalId));else reject(new Error(`failed to find DOM with ${key} state`));
|
|
16
|
+
});
|
|
17
|
+
});
|
|
18
|
+
};
|
|
19
|
+
return {
|
|
20
|
+
...(await next({
|
|
21
|
+
...props,
|
|
22
|
+
getInitialData
|
|
23
|
+
})),
|
|
24
|
+
getInitialData
|
|
25
|
+
};
|
|
26
|
+
};
|
|
27
|
+
}
|
|
28
|
+
function getDataFromEl(el, key) {
|
|
29
|
+
if (el.text === undefined) {
|
|
30
|
+
console.error(`#${key} is completely empty. This could be due to CSP issues.`);
|
|
31
|
+
}
|
|
32
|
+
return el != null && el.text ? JSON.parse(el == null ? void 0 : el.text) : undefined;
|
|
33
|
+
}
|
|
34
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJKU09OU3BvdXQiLCJpZCIsIm5leHQiLCJwcm9wcyIsImdldEluaXRpYWxEYXRhIiwia2V5IiwiZ2xvYmFsSWQiLCJQcm9taXNlIiwicmVzb2x2ZSIsInJlamVjdCIsImVsIiwiZG9jdW1lbnQiLCJnZXRFbGVtZW50QnlJZCIsImdldERhdGFGcm9tRWwiLCJhZGRFdmVudExpc3RlbmVyIiwiRXJyb3IiLCJ0ZXh0IiwidW5kZWZpbmVkIiwiY29uc29sZSIsImVycm9yIiwiSlNPTiIsInBhcnNlIl0sInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL3Nwb3V0cy9qc29uLnRzeCJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgdHlwZSB7IENsaWVudFNwb3V0IH0gZnJvbSAnLi90eXBlcy5qcyc7XG5cbmV4cG9ydCBkZWZhdWx0IGZ1bmN0aW9uIEpTT05TcG91dCh7XG4gIGlkID0gJ2FuYW5zaS1qc29uJyxcbn06IHsgaWQ/OiBzdHJpbmcgfSA9IHt9KTogQ2xpZW50U3BvdXQ8XG4gIFJlY29yZDxzdHJpbmcsIHVua25vd24+LFxuICB7IGdldEluaXRpYWxEYXRhOiAoa2V5OiBzdHJpbmcpID0+IFByb21pc2U8YW55PiB9XG4+IHtcbiAgcmV0dXJuIG5leHQgPT4gYXN5bmMgcHJvcHMgPT4ge1xuICAgIGNvbnN0IGdldEluaXRpYWxEYXRhID0gKGtleTogc3RyaW5nKSA9PiB7XG4gICAgICBjb25zdCBnbG9iYWxJZCA9IGAke2lkfS4ke2tleX1gO1xuICAgICAgcmV0dXJuIG5ldyBQcm9taXNlPGFueT4oKHJlc29sdmUsIHJlamVjdCkgPT4ge1xuICAgICAgICBsZXQgZWw6IEhUTUxTY3JpcHRFbGVtZW50IHwgbnVsbDtcbiAgICAgICAgaWYgKChlbCA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKGdsb2JhbElkKSBhcyBhbnkpKSB7XG4gICAgICAgICAgcmVzb2x2ZShnZXREYXRhRnJvbUVsKGVsLCBnbG9iYWxJZCkpO1xuICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgICBkb2N1bWVudC5hZGRFdmVudExpc3RlbmVyKCdET01Db250ZW50TG9hZGVkJywgKCkgPT4ge1xuICAgICAgICAgIGVsID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoZ2xvYmFsSWQpIGFzIGFueTtcbiAgICAgICAgICBpZiAoZWwpIHJlc29sdmUoZ2V0RGF0YUZyb21FbChlbCwgZ2xvYmFsSWQpKTtcbiAgICAgICAgICBlbHNlIHJlamVjdChuZXcgRXJyb3IoYGZhaWxlZCB0byBmaW5kIERPTSB3aXRoICR7a2V5fSBzdGF0ZWApKTtcbiAgICAgICAgfSk7XG4gICAgICB9KTtcbiAgICB9O1xuICAgIHJldHVybiB7IC4uLihhd2FpdCBuZXh0KHsgLi4ucHJvcHMsIGdldEluaXRpYWxEYXRhIH0pKSwgZ2V0SW5pdGlhbERhdGEgfTtcbiAgfTtcbn1cblxuZnVuY3Rpb24gZ2V0RGF0YUZyb21FbChlbDogSFRNTFNjcmlwdEVsZW1lbnQsIGtleTogc3RyaW5nKSB7XG4gIGlmIChlbC50ZXh0ID09PSB1bmRlZmluZWQpIHtcbiAgICBjb25zb2xlLmVycm9yKFxuICAgICAgYCMke2tleX0gaXMgY29tcGxldGVseSBlbXB0eS4gVGhpcyBjb3VsZCBiZSBkdWUgdG8gQ1NQIGlzc3Vlcy5gLFxuICAgICk7XG4gIH1cbiAgcmV0dXJuIGVsPy50ZXh0ID8gSlNPTi5wYXJzZShlbD8udGV4dCkgOiB1bmRlZmluZWQ7XG59XG4iXSwibWFwcGluZ3MiOiJBQUVBLGVBQWUsU0FBU0EsU0FBU0EsQ0FBQztFQUNoQ0MsRUFBRSxHQUFHO0FBQ1UsQ0FBQyxHQUFHLENBQUMsQ0FBQyxFQUdyQjtFQUNBLE9BQU9DLElBQUksSUFBSSxNQUFNQyxLQUFLLElBQUk7SUFDNUIsTUFBTUMsY0FBYyxHQUFJQyxHQUFXLElBQUs7TUFDdEMsTUFBTUMsUUFBUSxHQUFJLEdBQUVMLEVBQUcsSUFBR0ksR0FBSSxFQUFDO01BQy9CLE9BQU8sSUFBSUUsT0FBTyxDQUFNLENBQUNDLE9BQU8sRUFBRUMsTUFBTSxLQUFLO1FBQzNDLElBQUlDLEVBQTRCO1FBQ2hDLElBQUtBLEVBQUUsR0FBR0MsUUFBUSxDQUFDQyxjQUFjLENBQUNOLFFBQVEsQ0FBUSxFQUFHO1VBQ25ERSxPQUFPLENBQUNLLGFBQWEsQ0FBQ0gsRUFBRSxFQUFFSixRQUFRLENBQUMsQ0FBQztVQUNwQztRQUNGO1FBQ0FLLFFBQVEsQ0FBQ0csZ0JBQWdCLENBQUMsa0JBQWtCLEVBQUUsTUFBTTtVQUNsREosRUFBRSxHQUFHQyxRQUFRLENBQUNDLGNBQWMsQ0FBQ04sUUFBUSxDQUFRO1VBQzdDLElBQUlJLEVBQUUsRUFBRUYsT0FBTyxDQUFDSyxhQUFhLENBQUNILEVBQUUsRUFBRUosUUFBUSxDQUFDLENBQUMsQ0FBQyxLQUN4Q0csTUFBTSxDQUFDLElBQUlNLEtBQUssQ0FBRSwyQkFBMEJWLEdBQUksUUFBTyxDQUFDLENBQUM7UUFDaEUsQ0FBQyxDQUFDO01BQ0osQ0FBQyxDQUFDO0lBQ0osQ0FBQztJQUNELE9BQU87TUFBRSxJQUFJLE1BQU1ILElBQUksQ0FBQztRQUFFLEdBQUdDLEtBQUs7UUFBRUM7TUFBZSxDQUFDLENBQUMsQ0FBQztNQUFFQTtJQUFlLENBQUM7RUFDMUUsQ0FBQztBQUNIO0FBRUEsU0FBU1MsYUFBYUEsQ0FBQ0gsRUFBcUIsRUFBRUwsR0FBVyxFQUFFO0VBQ3pELElBQUlLLEVBQUUsQ0FBQ00sSUFBSSxLQUFLQyxTQUFTLEVBQUU7SUFDekJDLE9BQU8sQ0FBQ0MsS0FBSyxDQUNWLElBQUdkLEdBQUksd0RBQXVELENBQ2hFO0VBQ0g7RUFDQSxPQUFPSyxFQUFFLFlBQUZBLEVBQUUsQ0FBRU0sSUFBSSxHQUFHSSxJQUFJLENBQUNDLEtBQUssQ0FBQ1gsRUFBRSxvQkFBRkEsRUFBRSxDQUFFTSxJQUFJLENBQUMsR0FBR0MsU0FBUztBQUNwRCJ9
|
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
import _jsx from "@babel/runtime/helpers/jsx";
|
|
2
|
+
import React, { Suspense } from 'react';
|
|
3
|
+
export default function JSONSpout({
|
|
4
|
+
id = 'anansi-json'
|
|
5
|
+
} = {}) {
|
|
6
|
+
return next => async props => {
|
|
7
|
+
var _nextProps$scripts, _nextProps$initData;
|
|
8
|
+
const nextProps = await next(props);
|
|
9
|
+
const scripts = (_nextProps$scripts = nextProps.scripts) != null ? _nextProps$scripts : [];
|
|
10
|
+
Object.entries((_nextProps$initData = nextProps.initData) != null ? _nextProps$initData : {}).forEach(([key, useData]) => {
|
|
11
|
+
const globalId = `${id}.${key}`;
|
|
12
|
+
const Script = () => {
|
|
13
|
+
const data = useData();
|
|
14
|
+
try {
|
|
15
|
+
const encoded = JSON.stringify(data);
|
|
16
|
+
return /*#__PURE__*/_jsx("script", {
|
|
17
|
+
id: globalId,
|
|
18
|
+
type: "application/json",
|
|
19
|
+
dangerouslySetInnerHTML: {
|
|
20
|
+
__html: encoded
|
|
21
|
+
},
|
|
22
|
+
nonce: props.nonce
|
|
23
|
+
});
|
|
24
|
+
} catch (e) {
|
|
25
|
+
// TODO: Use unified logging
|
|
26
|
+
console.error(`Error serializing json for ${key}`);
|
|
27
|
+
console.error(e);
|
|
28
|
+
return null;
|
|
29
|
+
}
|
|
30
|
+
};
|
|
31
|
+
scripts.push( /*#__PURE__*/_jsx(Suspense, {}, globalId, /*#__PURE__*/_jsx(Script, {})));
|
|
32
|
+
});
|
|
33
|
+
return {
|
|
34
|
+
...nextProps,
|
|
35
|
+
scripts
|
|
36
|
+
};
|
|
37
|
+
};
|
|
38
|
+
}
|
|
39
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJSZWFjdCIsIlN1c3BlbnNlIiwiSlNPTlNwb3V0IiwiaWQiLCJuZXh0IiwicHJvcHMiLCJfbmV4dFByb3BzJHNjcmlwdHMiLCJfbmV4dFByb3BzJGluaXREYXRhIiwibmV4dFByb3BzIiwic2NyaXB0cyIsIk9iamVjdCIsImVudHJpZXMiLCJpbml0RGF0YSIsImZvckVhY2giLCJrZXkiLCJ1c2VEYXRhIiwiZ2xvYmFsSWQiLCJTY3JpcHQiLCJkYXRhIiwiZW5jb2RlZCIsIkpTT04iLCJzdHJpbmdpZnkiLCJfanN4IiwidHlwZSIsImRhbmdlcm91c2x5U2V0SW5uZXJIVE1MIiwiX19odG1sIiwibm9uY2UiLCJlIiwiY29uc29sZSIsImVycm9yIiwicHVzaCJdLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9zcG91dHMvanNvbi5zZXJ2ZXIudHN4Il0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBSZWFjdCwgeyBTdXNwZW5zZSB9IGZyb20gJ3JlYWN0JztcblxuaW1wb3J0IHR5cGUgeyBTZXJ2ZXJTcG91dCB9IGZyb20gJy4vdHlwZXMuanMnO1xuXG50eXBlIE5lZWRlZE5leHQgPSB7XG4gIGluaXREYXRhPzogUmVjb3JkPHN0cmluZywgKCkgPT4gdW5rbm93bj47XG4gIHNjcmlwdHM/OiBSZWFjdC5SZWFjdE5vZGVbXTtcbn07XG5cbmV4cG9ydCBkZWZhdWx0IGZ1bmN0aW9uIEpTT05TcG91dCh7XG4gIGlkID0gJ2FuYW5zaS1qc29uJyxcbn06IHsgaWQ/OiBzdHJpbmcgfSA9IHt9KTogU2VydmVyU3BvdXQ8XG4gIFJlY29yZDxzdHJpbmcsIHVua25vd24+LFxuICBSZWNvcmQ8c3RyaW5nLCB1bmtub3duPixcbiAgTmVlZGVkTmV4dFxuPiB7XG4gIHJldHVybiBuZXh0ID0+IGFzeW5jIHByb3BzID0+IHtcbiAgICBjb25zdCBuZXh0UHJvcHMgPSBhd2FpdCBuZXh0KHByb3BzKTtcblxuICAgIGNvbnN0IHNjcmlwdHM6IFJlYWN0LlJlYWN0Tm9kZVtdID0gbmV4dFByb3BzLnNjcmlwdHMgPz8gW107XG5cbiAgICBPYmplY3QuZW50cmllcyhuZXh0UHJvcHMuaW5pdERhdGEgPz8ge30pLmZvckVhY2goKFtrZXksIHVzZURhdGFdKSA9PiB7XG4gICAgICBjb25zdCBnbG9iYWxJZCA9IGAke2lkfS4ke2tleX1gO1xuICAgICAgY29uc3QgU2NyaXB0ID0gKCkgPT4ge1xuICAgICAgICBjb25zdCBkYXRhOiBhbnkgPSB1c2VEYXRhKCk7XG4gICAgICAgIHRyeSB7XG4gICAgICAgICAgY29uc3QgZW5jb2RlZCA9IEpTT04uc3RyaW5naWZ5KGRhdGEpO1xuICAgICAgICAgIHJldHVybiAoXG4gICAgICAgICAgICA8c2NyaXB0XG4gICAgICAgICAgICAgIGlkPXtnbG9iYWxJZH1cbiAgICAgICAgICAgICAgdHlwZT1cImFwcGxpY2F0aW9uL2pzb25cIlxuICAgICAgICAgICAgICBkYW5nZXJvdXNseVNldElubmVySFRNTD17e1xuICAgICAgICAgICAgICAgIF9faHRtbDogZW5jb2RlZCxcbiAgICAgICAgICAgICAgfX1cbiAgICAgICAgICAgICAgbm9uY2U9e3Byb3BzLm5vbmNlfVxuICAgICAgICAgICAgLz5cbiAgICAgICAgICApO1xuICAgICAgICB9IGNhdGNoIChlKSB7XG4gICAgICAgICAgLy8gVE9ETzogVXNlIHVuaWZpZWQgbG9nZ2luZ1xuICAgICAgICAgIGNvbnNvbGUuZXJyb3IoYEVycm9yIHNlcmlhbGl6aW5nIGpzb24gZm9yICR7a2V5fWApO1xuICAgICAgICAgIGNvbnNvbGUuZXJyb3IoZSk7XG4gICAgICAgICAgcmV0dXJuIG51bGw7XG4gICAgICAgIH1cbiAgICAgIH07XG4gICAgICBzY3JpcHRzLnB1c2goXG4gICAgICAgIDxTdXNwZW5zZSBrZXk9e2dsb2JhbElkfT5cbiAgICAgICAgICA8U2NyaXB0IC8+XG4gICAgICAgIDwvU3VzcGVuc2U+LFxuICAgICAgKTtcbiAgICB9KTtcblxuICAgIHJldHVybiB7XG4gICAgICAuLi5uZXh0UHJvcHMsXG4gICAgICBzY3JpcHRzLFxuICAgIH07XG4gIH07XG59XG4iXSwibWFwcGluZ3MiOiI7QUFBQSxPQUFPQSxLQUFLLElBQUlDLFFBQVEsUUFBUSxPQUFPO0FBU3ZDLGVBQWUsU0FBU0MsU0FBU0EsQ0FBQztFQUNoQ0MsRUFBRSxHQUFHO0FBQ1UsQ0FBQyxHQUFHLENBQUMsQ0FBQyxFQUlyQjtFQUNBLE9BQU9DLElBQUksSUFBSSxNQUFNQyxLQUFLLElBQUk7SUFBQSxJQUFBQyxrQkFBQSxFQUFBQyxtQkFBQTtJQUM1QixNQUFNQyxTQUFTLEdBQUcsTUFBTUosSUFBSSxDQUFDQyxLQUFLLENBQUM7SUFFbkMsTUFBTUksT0FBMEIsSUFBQUgsa0JBQUEsR0FBR0UsU0FBUyxDQUFDQyxPQUFPLFlBQUFILGtCQUFBLEdBQUksRUFBRTtJQUUxREksTUFBTSxDQUFDQyxPQUFPLEVBQUFKLG1CQUFBLEdBQUNDLFNBQVMsQ0FBQ0ksUUFBUSxZQUFBTCxtQkFBQSxHQUFJLENBQUMsQ0FBQyxDQUFDLENBQUNNLE9BQU8sQ0FBQyxDQUFDLENBQUNDLEdBQUcsRUFBRUMsT0FBTyxDQUFDLEtBQUs7TUFDbkUsTUFBTUMsUUFBUSxHQUFJLEdBQUViLEVBQUcsSUFBR1csR0FBSSxFQUFDO01BQy9CLE1BQU1HLE1BQU0sR0FBR0EsQ0FBQSxLQUFNO1FBQ25CLE1BQU1DLElBQVMsR0FBR0gsT0FBTyxFQUFFO1FBQzNCLElBQUk7VUFDRixNQUFNSSxPQUFPLEdBQUdDLElBQUksQ0FBQ0MsU0FBUyxDQUFDSCxJQUFJLENBQUM7VUFDcEMsb0JBQ0VJLElBQUE7WUFDRW5CLEVBQUUsRUFBRWEsUUFBUztZQUNiTyxJQUFJLEVBQUMsa0JBQWtCO1lBQ3ZCQyx1QkFBdUIsRUFBRTtjQUN2QkMsTUFBTSxFQUFFTjtZQUNWLENBQUU7WUFDRk8sS0FBSyxFQUFFckIsS0FBSyxDQUFDcUI7VUFBTSxFQUNuQjtRQUVOLENBQUMsQ0FBQyxPQUFPQyxDQUFDLEVBQUU7VUFDVjtVQUNBQyxPQUFPLENBQUNDLEtBQUssQ0FBRSw4QkFBNkJmLEdBQUksRUFBQyxDQUFDO1VBQ2xEYyxPQUFPLENBQUNDLEtBQUssQ0FBQ0YsQ0FBQyxDQUFDO1VBQ2hCLE9BQU8sSUFBSTtRQUNiO01BQ0YsQ0FBQztNQUNEbEIsT0FBTyxDQUFDcUIsSUFBSSxlQUNWUixJQUFBLENBQUNyQixRQUFRLE1BQU1lLFFBQVEsZUFDckJNLElBQUEsQ0FBQ0wsTUFBTSxLQUFHLENBQ0QsQ0FDWjtJQUNILENBQUMsQ0FBQztJQUVGLE9BQU87TUFDTCxHQUFHVCxTQUFTO01BQ1pDO0lBQ0YsQ0FBQztFQUNILENBQUM7QUFDSCJ9
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
export default function prefetchSpout(field) {
|
|
2
|
+
return function (next) {
|
|
3
|
+
return async props => {
|
|
4
|
+
const nextProps = await next(props);
|
|
5
|
+
try {
|
|
6
|
+
const toFetch = [];
|
|
7
|
+
nextProps.matchedRoutes.forEach(route => {
|
|
8
|
+
if (typeof route.resolveData === 'function') {
|
|
9
|
+
toFetch.push(route.resolveData(nextProps[field], route));
|
|
10
|
+
}
|
|
11
|
+
});
|
|
12
|
+
await Promise.all(toFetch);
|
|
13
|
+
} catch (e) {
|
|
14
|
+
console.error(e);
|
|
15
|
+
}
|
|
16
|
+
return nextProps;
|
|
17
|
+
};
|
|
18
|
+
};
|
|
19
|
+
}
|
|
20
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJwcmVmZXRjaFNwb3V0IiwiZmllbGQiLCJuZXh0IiwicHJvcHMiLCJuZXh0UHJvcHMiLCJ0b0ZldGNoIiwibWF0Y2hlZFJvdXRlcyIsImZvckVhY2giLCJyb3V0ZSIsInJlc29sdmVEYXRhIiwicHVzaCIsIlByb21pc2UiLCJhbGwiLCJlIiwiY29uc29sZSIsImVycm9yIl0sInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL3Nwb3V0cy9wcmVmZXRjaC5zZXJ2ZXIudHN4Il0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFJvdXRlIH0gZnJvbSAnQGFuYW5zaS9yb3V0ZXInO1xuXG5pbXBvcnQgdHlwZSB7IFJlc29sdmVQcm9wcywgU2VydmVyUHJvcHMgfSBmcm9tICcuL3R5cGVzLmpzJztcblxudHlwZSBOZWVkZWRQcm9wczxSb3V0ZVdpdGg+ID0ge1xuICBtYXRjaGVkUm91dGVzOiBSb3V0ZTxSb3V0ZVdpdGg+W107XG59ICYgUmVzb2x2ZVByb3BzO1xuXG5leHBvcnQgZGVmYXVsdCBmdW5jdGlvbiBwcmVmZXRjaFNwb3V0PEYgZXh0ZW5kcyBzdHJpbmc+KGZpZWxkOiBGKSB7XG4gIHJldHVybiBmdW5jdGlvbiA8XG4gICAgUm91dGVXaXRoLFxuICAgIE4gZXh0ZW5kcyBOZWVkZWRQcm9wczxSb3V0ZVdpdGg+LFxuICAgIEkgZXh0ZW5kcyBTZXJ2ZXJQcm9wcyxcbiAgPihcbiAgICBuZXh0OiAocHJvcHM6IEkpID0+IFByb21pc2U8XG4gICAgICB7XG4gICAgICAgIFtLIGluIEZdOiBSb3V0ZVdpdGg7XG4gICAgICB9ICYgTlxuICAgID4sXG4gICkge1xuICAgIHJldHVybiBhc3luYyAocHJvcHM6IEkpID0+IHtcbiAgICAgIGNvbnN0IG5leHRQcm9wcyA9IGF3YWl0IG5leHQocHJvcHMpO1xuXG4gICAgICB0cnkge1xuICAgICAgICBjb25zdCB0b0ZldGNoOiBQcm9taXNlPHVua25vd24+W10gPSBbXTtcbiAgICAgICAgbmV4dFByb3BzLm1hdGNoZWRSb3V0ZXMuZm9yRWFjaChyb3V0ZSA9PiB7XG4gICAgICAgICAgaWYgKHR5cGVvZiByb3V0ZS5yZXNvbHZlRGF0YSA9PT0gJ2Z1bmN0aW9uJykge1xuICAgICAgICAgICAgdG9GZXRjaC5wdXNoKHJvdXRlLnJlc29sdmVEYXRhKG5leHRQcm9wc1tmaWVsZF0sIHJvdXRlKSk7XG4gICAgICAgICAgfVxuICAgICAgICB9KTtcbiAgICAgICAgYXdhaXQgUHJvbWlzZS5hbGwodG9GZXRjaCk7XG4gICAgICB9IGNhdGNoIChlKSB7XG4gICAgICAgIGNvbnNvbGUuZXJyb3IoZSk7XG4gICAgICB9XG4gICAgICByZXR1cm4gbmV4dFByb3BzO1xuICAgIH07XG4gIH07XG59XG4iXSwibWFwcGluZ3MiOiJBQVFBLGVBQWUsU0FBU0EsYUFBYUEsQ0FBbUJDLEtBQVEsRUFBRTtFQUNoRSxPQUFPLFVBS0xDLElBSUMsRUFDRDtJQUNBLE9BQU8sTUFBT0MsS0FBUSxJQUFLO01BQ3pCLE1BQU1DLFNBQVMsR0FBRyxNQUFNRixJQUFJLENBQUNDLEtBQUssQ0FBQztNQUVuQyxJQUFJO1FBQ0YsTUFBTUUsT0FBMkIsR0FBRyxFQUFFO1FBQ3RDRCxTQUFTLENBQUNFLGFBQWEsQ0FBQ0MsT0FBTyxDQUFDQyxLQUFLLElBQUk7VUFDdkMsSUFBSSxPQUFPQSxLQUFLLENBQUNDLFdBQVcsS0FBSyxVQUFVLEVBQUU7WUFDM0NKLE9BQU8sQ0FBQ0ssSUFBSSxDQUFDRixLQUFLLENBQUNDLFdBQVcsQ0FBQ0wsU0FBUyxDQUFDSCxLQUFLLENBQUMsRUFBRU8sS0FBSyxDQUFDLENBQUM7VUFDMUQ7UUFDRixDQUFDLENBQUM7UUFDRixNQUFNRyxPQUFPLENBQUNDLEdBQUcsQ0FBQ1AsT0FBTyxDQUFDO01BQzVCLENBQUMsQ0FBQyxPQUFPUSxDQUFDLEVBQUU7UUFDVkMsT0FBTyxDQUFDQyxLQUFLLENBQUNGLENBQUMsQ0FBQztNQUNsQjtNQUNBLE9BQU9ULFNBQVM7SUFDbEIsQ0FBQztFQUNILENBQUM7QUFDSCJ9
|