@anansi/core 0.16.8 → 0.16.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/CHANGELOG.md +27 -0
- package/dist/server.js +3 -3
- package/lib/scripts/getProxyMiddlewares.js +5 -10
- package/lib/scripts/getWebpackConfig.d.ts +1 -1
- package/lib/scripts/getWebpackConfig.d.ts.map +1 -1
- package/lib/scripts/getWebpackConfig.js +5 -11
- package/lib/scripts/index.js +3 -10
- package/lib/scripts/serve.d.ts +2 -2
- package/lib/scripts/serve.d.ts.map +1 -1
- package/lib/scripts/serve.js +40 -38
- package/lib/scripts/startDevserver.d.ts +2 -2
- package/lib/scripts/startDevserver.d.ts.map +1 -1
- package/lib/scripts/startDevserver.js +63 -54
- package/lib/scripts/types.js +1 -3
- package/package.json +7 -7
- package/src/scripts/getWebpackConfig.ts +7 -9
- package/src/scripts/serve.ts +21 -16
- package/src/scripts/startDevserver.ts +28 -7
- package/src/scripts/webpack-logging.d.ts +4 -0
- package/lib/scripts/package.json +0 -1
- package/src/scripts/package.json +0 -1
package/lib/scripts/serve.js
CHANGED
|
@@ -1,23 +1,18 @@
|
|
|
1
1
|
#!/usr/bin/env node
|
|
2
|
-
"use strict";
|
|
3
|
-
|
|
4
|
-
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault").default;
|
|
5
|
-
exports.__esModule = true;
|
|
6
|
-
exports.default = serve;
|
|
7
|
-
var _compression = _interopRequireDefault(require("compression"));
|
|
8
|
-
var _express = _interopRequireDefault(require("express"));
|
|
9
|
-
var _fs = _interopRequireDefault(require("fs"));
|
|
10
|
-
var _ora = _interopRequireDefault(require("ora"));
|
|
11
|
-
var _path = _interopRequireDefault(require("path"));
|
|
12
|
-
var _util = require("util");
|
|
13
|
-
require("cross-fetch/dist/node-polyfill");
|
|
14
|
-
var _getProxyMiddlewares = _interopRequireDefault(require("./getProxyMiddlewares.js"));
|
|
15
|
-
var _getWebpackConfig = require("./getWebpackConfig.js");
|
|
16
2
|
Object.hasOwn = Object.hasOwn || /* istanbul ignore next */function hasOwn(it, key) {
|
|
17
3
|
return Object.prototype.hasOwnProperty.call(it, key);
|
|
18
4
|
};
|
|
5
|
+
import compress from 'compression';
|
|
6
|
+
import express from 'express';
|
|
7
|
+
import diskFs from 'fs';
|
|
8
|
+
import ora from 'ora';
|
|
9
|
+
import path from 'path';
|
|
10
|
+
import { promisify } from 'util';
|
|
11
|
+
import 'cross-fetch/dist/node-polyfill.js';
|
|
12
|
+
import getProxyMiddlewares from './getProxyMiddlewares.js';
|
|
13
|
+
import { getWebpackConfig } from './getWebpackConfig.js';
|
|
19
14
|
// run directly from node
|
|
20
|
-
if (
|
|
15
|
+
if ('main' in import.meta) {
|
|
21
16
|
const entrypoint = process.argv[2];
|
|
22
17
|
if (!entrypoint) {
|
|
23
18
|
console.log(`Usage: ${process.argv[0]} <server-entrypoint>`);
|
|
@@ -25,14 +20,14 @@ if (require.main === module) {
|
|
|
25
20
|
}
|
|
26
21
|
serve(entrypoint);
|
|
27
22
|
}
|
|
28
|
-
function serve(entrypoint, options = {}) {
|
|
23
|
+
export default async function serve(entrypoint, options = {}) {
|
|
29
24
|
const PORT = process.env.PORT || 8080;
|
|
30
|
-
const loader = (
|
|
31
|
-
const webpackConfig =
|
|
25
|
+
const loader = ora('Initializing').start();
|
|
26
|
+
const webpackConfig = await getWebpackConfig();
|
|
32
27
|
const manifestPath = getManifestPathFromWebpackconfig(webpackConfig({}, {
|
|
33
28
|
mode: 'production'
|
|
34
29
|
}));
|
|
35
|
-
const readFile =
|
|
30
|
+
const readFile = promisify(diskFs.readFile);
|
|
36
31
|
let server;
|
|
37
32
|
function handleErrors(fn) {
|
|
38
33
|
return async function (req, res, next) {
|
|
@@ -45,29 +40,27 @@ function serve(entrypoint, options = {}) {
|
|
|
45
40
|
}
|
|
46
41
|
|
|
47
42
|
// Start the express server after the first compilation
|
|
48
|
-
function initializeApp(clientManifest) {
|
|
43
|
+
async function initializeApp(clientManifest) {
|
|
49
44
|
loader.info('Launching server');
|
|
50
45
|
if (!clientManifest) {
|
|
51
46
|
loader.fail('Manifest not found');
|
|
52
47
|
// TODO: handle more gracefully
|
|
53
48
|
process.exit(-1);
|
|
54
49
|
}
|
|
55
|
-
const wrappingApp = (
|
|
50
|
+
const wrappingApp = express();
|
|
56
51
|
// eslint-disable-next-line
|
|
57
52
|
//@ts-ignore
|
|
58
|
-
wrappingApp.use((
|
|
53
|
+
wrappingApp.use(compress());
|
|
59
54
|
|
|
60
55
|
// ASSETS
|
|
61
56
|
if (options.serveAssets) {
|
|
62
57
|
wrappingApp.use(async (req, res, next) => {
|
|
63
|
-
var _req$url$
|
|
64
|
-
const filename = (_req$url$
|
|
65
|
-
const assetPath =
|
|
66
|
-
if (
|
|
58
|
+
var _req$url$substring, _req$url, _clientManifest$outpu;
|
|
59
|
+
const filename = (_req$url$substring = (_req$url = req.url) == null ? void 0 : _req$url.substring(process.env.WEBPACK_PUBLIC_PATH.length)) != null ? _req$url$substring : '';
|
|
60
|
+
const assetPath = path.join((_clientManifest$outpu = clientManifest.outputPath) != null ? _clientManifest$outpu : '', filename);
|
|
61
|
+
if (diskFs.existsSync(assetPath) && !diskFs.lstatSync(assetPath).isDirectory()) {
|
|
67
62
|
try {
|
|
68
|
-
|
|
69
|
-
res.contentType(filename);
|
|
70
|
-
res.send(fileContent);
|
|
63
|
+
res.sendFile(assetPath);
|
|
71
64
|
} catch (e) {
|
|
72
65
|
return next();
|
|
73
66
|
}
|
|
@@ -85,7 +78,7 @@ function serve(entrypoint, options = {}) {
|
|
|
85
78
|
});
|
|
86
79
|
if ((_devConfig$devServer = devConfig.devServer) != null && _devConfig$devServer.proxy) {
|
|
87
80
|
var _devConfig$devServer2;
|
|
88
|
-
const middlewares = (
|
|
81
|
+
const middlewares = getProxyMiddlewares((_devConfig$devServer2 = devConfig.devServer) == null ? void 0 : _devConfig$devServer2.proxy);
|
|
89
82
|
if (middlewares) {
|
|
90
83
|
wrappingApp.use(...middlewares.map(({
|
|
91
84
|
middleware
|
|
@@ -95,10 +88,12 @@ function serve(entrypoint, options = {}) {
|
|
|
95
88
|
}
|
|
96
89
|
|
|
97
90
|
// SERVER SIDE RENDERING
|
|
98
|
-
|
|
99
|
-
|
|
91
|
+
let render = (await import(path.join(process.cwd(), entrypoint))).default;
|
|
92
|
+
if ('default' in render) {
|
|
93
|
+
render = render.default;
|
|
94
|
+
}
|
|
100
95
|
if (typeof render !== 'function') {
|
|
101
|
-
throw new Error(`default export of ${
|
|
96
|
+
throw new Error(`default export of ${path.join(process.cwd(), entrypoint)} is not a function`);
|
|
102
97
|
}
|
|
103
98
|
wrappingApp.get('/*', handleErrors(async function (req, res) {
|
|
104
99
|
if (req.url.endsWith('favicon.ico')) {
|
|
@@ -134,9 +129,16 @@ function serve(entrypoint, options = {}) {
|
|
|
134
129
|
}
|
|
135
130
|
});
|
|
136
131
|
}
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
|
|
132
|
+
let manifest = await import(manifestPath, {
|
|
133
|
+
assert: {
|
|
134
|
+
type: 'json'
|
|
135
|
+
}
|
|
136
|
+
});
|
|
137
|
+
// handle inconsistent import conditions
|
|
138
|
+
if ('default' in manifest) {
|
|
139
|
+
manifest = manifest.default;
|
|
140
|
+
}
|
|
141
|
+
await initializeApp(manifest);
|
|
140
142
|
process.on('SIGINT', () => {
|
|
141
143
|
var _server;
|
|
142
144
|
loader.warn('Received SIGINT, devserver shutting down');
|
|
@@ -152,7 +154,7 @@ function getManifestPathFromWebpackconfig(webpackConfig) {
|
|
|
152
154
|
const manifestFilename = (_opts$filename = webpackConfig == null ? void 0 : (_webpackConfig$plugin = webpackConfig.plugins) == null ? void 0 : (_webpackConfig$plugin2 = _webpackConfig$plugin.find(plugin => {
|
|
153
155
|
return plugin.constructor.name === 'StatsWriterPlugin';
|
|
154
156
|
})) == null ? void 0 : (_webpackConfig$plugin3 = _webpackConfig$plugin2.opts) == null ? void 0 : _webpackConfig$plugin3.filename) != null ? _opts$filename : 'manifest.json';
|
|
155
|
-
const manifestPath =
|
|
157
|
+
const manifestPath = path.join((_webpackConfig$output = webpackConfig == null ? void 0 : (_webpackConfig$output2 = webpackConfig.output) == null ? void 0 : _webpackConfig$output2.path) != null ? _webpackConfig$output : '', manifestFilename);
|
|
156
158
|
return manifestPath;
|
|
157
159
|
}
|
|
158
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfaW50ZXJvcFJlcXVpcmVEZWZhdWx0IiwicmVxdWlyZSIsImRlZmF1bHQiLCJleHBvcnRzIiwiX19lc01vZHVsZSIsInNlcnZlIiwiX2NvbXByZXNzaW9uIiwiX2V4cHJlc3MiLCJfZnMiLCJfb3JhIiwiX3BhdGgiLCJfdXRpbCIsIl9nZXRQcm94eU1pZGRsZXdhcmVzIiwiX2dldFdlYnBhY2tDb25maWciLCJPYmplY3QiLCJoYXNPd24iLCJpdCIsImtleSIsInByb3RvdHlwZSIsImhhc093blByb3BlcnR5IiwiY2FsbCIsIm1haW4iLCJtb2R1bGUiLCJlbnRyeXBvaW50IiwicHJvY2VzcyIsImFyZ3YiLCJjb25zb2xlIiwibG9nIiwiZXhpdCIsIm9wdGlvbnMiLCJQT1JUIiwiZW52IiwibG9hZGVyIiwib3JhIiwic3RhcnQiLCJ3ZWJwYWNrQ29uZmlnIiwiZ2V0V2VicGFja0NvbmZpZyIsIm1hbmlmZXN0UGF0aCIsImdldE1hbmlmZXN0UGF0aEZyb21XZWJwYWNrY29uZmlnIiwibW9kZSIsInJlYWRGaWxlIiwicHJvbWlzaWZ5IiwiZGlza0ZzIiwic2VydmVyIiwiaGFuZGxlRXJyb3JzIiwiZm4iLCJyZXEiLCJyZXMiLCJuZXh0IiwieCIsImluaXRpYWxpemVBcHAiLCJjbGllbnRNYW5pZmVzdCIsImluZm8iLCJmYWlsIiwid3JhcHBpbmdBcHAiLCJleHByZXNzIiwidXNlIiwiY29tcHJlc3MiLCJzZXJ2ZUFzc2V0cyIsIl9yZXEkdXJsJHN1YnN0ciIsIl9yZXEkdXJsIiwiX2NsaWVudE1hbmlmZXN0JG91dHB1IiwiZmlsZW5hbWUiLCJ1cmwiLCJzdWJzdHIiLCJXRUJQQUNLX1BVQkxJQ19QQVRIIiwibGVuZ3RoIiwiYXNzZXRQYXRoIiwicGF0aCIsImpvaW4iLCJvdXRwdXRQYXRoIiwiZXhpc3RzU3luYyIsImxzdGF0U3luYyIsImlzRGlyZWN0b3J5IiwiZmlsZUNvbnRlbnQiLCJ0b1N0cmluZyIsImNvbnRlbnRUeXBlIiwic2VuZCIsImUiLCJzZXJ2ZVByb3h5IiwiX2RldkNvbmZpZyRkZXZTZXJ2ZXIiLCJkZXZDb25maWciLCJkZXZTZXJ2ZXIiLCJwcm94eSIsIl9kZXZDb25maWckZGV2U2VydmVyMiIsIm1pZGRsZXdhcmVzIiwiZ2V0UHJveHlNaWRkbGV3YXJlcyIsIm1hcCIsIm1pZGRsZXdhcmUiLCJyZW5kZXIiLCJjd2QiLCJFcnJvciIsImdldCIsImVuZHNXaXRoIiwic3RhdHVzQ29kZSIsInNldEhlYWRlciIsInNvY2tldCIsIm9uIiwiZXJyb3IiLCJsaXN0ZW4iLCJzeXNjYWxsIiwiaXNQaXBlIiwicG9ydE9yUGlwZSIsIk51bWJlciIsImlzTmFOIiwiYmluZCIsImNvZGUiLCJfc2VydmVyIiwid2FybiIsImNsb3NlIiwiX29wdHMkZmlsZW5hbWUiLCJfd2VicGFja0NvbmZpZyRwbHVnaW4iLCJfd2VicGFja0NvbmZpZyRwbHVnaW4yIiwiX3dlYnBhY2tDb25maWckcGx1Z2luMyIsIl93ZWJwYWNrQ29uZmlnJG91dHB1dCIsIl93ZWJwYWNrQ29uZmlnJG91dHB1dDIiLCJtYW5pZmVzdEZpbGVuYW1lIiwicGx1Z2lucyIsImZpbmQiLCJwbHVnaW4iLCJjb25zdHJ1Y3RvciIsIm5hbWUiLCJvcHRzIiwib3V0cHV0Il0sInNvdXJjZXMiOlsiLi4vLi4vc3JjL3NjcmlwdHMvc2VydmUudHMiXSwic291cmNlc0NvbnRlbnQiOlsiIyEvdXNyL2Jpbi9lbnYgbm9kZVxuT2JqZWN0Lmhhc093biA9XG4gIE9iamVjdC5oYXNPd24gfHxcbiAgLyogaXN0YW5idWwgaWdub3JlIG5leHQgKi8gZnVuY3Rpb24gaGFzT3duKGl0LCBrZXkpIHtcbiAgICByZXR1cm4gT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKGl0LCBrZXkpO1xuICB9O1xuaW1wb3J0IGNvbXByZXNzIGZyb20gJ2NvbXByZXNzaW9uJztcbmltcG9ydCBleHByZXNzLCB7IE5leHRGdW5jdGlvbiB9IGZyb20gJ2V4cHJlc3MnO1xuaW1wb3J0IGRpc2tGcyBmcm9tICdmcyc7XG5pbXBvcnQgeyBTZXJ2ZXIsIEluY29taW5nTWVzc2FnZSwgU2VydmVyUmVzcG9uc2UgfSBmcm9tICdodHRwJztcbmltcG9ydCBvcmEgZnJvbSAnb3JhJztcbmltcG9ydCBwYXRoIGZyb20gJ3BhdGgnO1xuaW1wb3J0IHsgcHJvbWlzaWZ5IH0gZnJvbSAndXRpbCc7XG5pbXBvcnQgd2VicGFjayBmcm9tICd3ZWJwYWNrJztcblxuaW1wb3J0ICdjcm9zcy1mZXRjaC9kaXN0L25vZGUtcG9seWZpbGwnO1xuaW1wb3J0IGdldFByb3h5TWlkZGxld2FyZXMgZnJvbSAnLi9nZXRQcm94eU1pZGRsZXdhcmVzLmpzJztcbmltcG9ydCB7IGdldFdlYnBhY2tDb25maWcgfSBmcm9tICcuL2dldFdlYnBhY2tDb25maWcuanMnO1xuaW1wb3J0IHsgUmVuZGVyIH0gZnJvbSAnLi90eXBlcy5qcyc7XG5cbi8vIHJ1biBkaXJlY3RseSBmcm9tIG5vZGVcbmlmIChyZXF1aXJlLm1haW4gPT09IG1vZHVsZSkge1xuICBjb25zdCBlbnRyeXBvaW50ID0gcHJvY2Vzcy5hcmd2WzJdO1xuXG4gIGlmICghZW50cnlwb2ludCkge1xuICAgIGNvbnNvbGUubG9nKGBVc2FnZTogJHtwcm9jZXNzLmFyZ3ZbMF19IDxzZXJ2ZXItZW50cnlwb2ludD5gKTtcbiAgICBwcm9jZXNzLmV4aXQoLTEpO1xuICB9XG4gIHNlcnZlKGVudHJ5cG9pbnQpO1xufVxuXG5leHBvcnQgZGVmYXVsdCBmdW5jdGlvbiBzZXJ2ZShcbiAgZW50cnlwb2ludDogc3RyaW5nLFxuICBvcHRpb25zOiB7IHNlcnZlQXNzZXRzPzogYm9vbGVhbjsgc2VydmVQcm94eT86IGJvb2xlYW4gfSA9IHt9LFxuKSB7XG4gIGNvbnN0IFBPUlQgPSBwcm9jZXNzLmVudi5QT1JUIHx8IDgwODA7XG5cbiAgY29uc3QgbG9hZGVyID0gb3JhKCdJbml0aWFsaXppbmcnKS5zdGFydCgpO1xuXG4gIGNvbnN0IHdlYnBhY2tDb25maWcgPSBnZXRXZWJwYWNrQ29uZmlnKCk7XG5cbiAgY29uc3QgbWFuaWZlc3RQYXRoID0gZ2V0TWFuaWZlc3RQYXRoRnJvbVdlYnBhY2tjb25maWcoXG4gICAgd2VicGFja0NvbmZpZyh7fSwgeyBtb2RlOiAncHJvZHVjdGlvbicgfSksXG4gICk7XG5cbiAgY29uc3QgcmVhZEZpbGUgPSBwcm9taXNpZnkoZGlza0ZzLnJlYWRGaWxlKTtcbiAgbGV0IHNlcnZlcjogU2VydmVyIHwgdW5kZWZpbmVkO1xuXG4gIGZ1bmN0aW9uIGhhbmRsZUVycm9yczxcbiAgICBGIGV4dGVuZHMgKFxuICAgICAgcmVxOiBSZXF1ZXN0IHwgSW5jb21pbmdNZXNzYWdlLFxuICAgICAgcmVzOiBSZXNwb25zZSB8IFNlcnZlclJlc3BvbnNlLFxuICAgICkgPT4gUHJvbWlzZTx2b2lkPixcbiAgPihmbjogRikge1xuICAgIHJldHVybiBhc3luYyBmdW5jdGlvbiAoXG4gICAgICByZXE6IFJlcXVlc3QgfCBJbmNvbWluZ01lc3NhZ2UsXG4gICAgICByZXM6IFJlc3BvbnNlIHwgU2VydmVyUmVzcG9uc2UsXG4gICAgICBuZXh0OiBOZXh0RnVuY3Rpb24sXG4gICAgKSB7XG4gICAgICB0cnkge1xuICAgICAgICByZXR1cm4gYXdhaXQgZm4ocmVxLCByZXMpO1xuICAgICAgfSBjYXRjaCAoeCkge1xuICAgICAgICBuZXh0KHgpO1xuICAgICAgfVxuICAgIH07XG4gIH1cblxuICAvLyBTdGFydCB0aGUgZXhwcmVzcyBzZXJ2ZXIgYWZ0ZXIgdGhlIGZpcnN0IGNvbXBpbGF0aW9uXG4gIGZ1bmN0aW9uIGluaXRpYWxpemVBcHAoY2xpZW50TWFuaWZlc3Q6IHdlYnBhY2suU3RhdHNDb21waWxhdGlvbikge1xuICAgIGxvYWRlci5pbmZvKCdMYXVuY2hpbmcgc2VydmVyJyk7XG4gICAgaWYgKCFjbGllbnRNYW5pZmVzdCkge1xuICAgICAgbG9hZGVyLmZhaWwoJ01hbmlmZXN0IG5vdCBmb3VuZCcpO1xuICAgICAgLy8gVE9ETzogaGFuZGxlIG1vcmUgZ3JhY2VmdWxseVxuICAgICAgcHJvY2Vzcy5leGl0KC0xKTtcbiAgICB9XG5cbiAgICBjb25zdCB3cmFwcGluZ0FwcCA9IGV4cHJlc3MoKTtcbiAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmVcbiAgICAvL0B0cy1pZ25vcmVcbiAgICB3cmFwcGluZ0FwcC51c2UoY29tcHJlc3MoKSk7XG5cbiAgICAvLyBBU1NFVFNcbiAgICBpZiAob3B0aW9ucy5zZXJ2ZUFzc2V0cykge1xuICAgICAgd3JhcHBpbmdBcHAudXNlKFxuICAgICAgICBhc3luYyAoXG4gICAgICAgICAgcmVxOiBSZXF1ZXN0IHwgSW5jb21pbmdNZXNzYWdlLFxuICAgICAgICAgIHJlczogYW55LFxuICAgICAgICAgIG5leHQ6IE5leHRGdW5jdGlvbixcbiAgICAgICAgKSA9PiB7XG4gICAgICAgICAgY29uc3QgZmlsZW5hbWUgPVxuICAgICAgICAgICAgcmVxLnVybD8uc3Vic3RyKFxuICAgICAgICAgICAgICAocHJvY2Vzcy5lbnYuV0VCUEFDS19QVUJMSUNfUEFUSCBhcyBzdHJpbmcpLmxlbmd0aCxcbiAgICAgICAgICAgICkgPz8gJyc7XG4gICAgICAgICAgY29uc3QgYXNzZXRQYXRoID0gcGF0aC5qb2luKFxuICAgICAgICAgICAgY2xpZW50TWFuaWZlc3Qub3V0cHV0UGF0aCA/PyAnJyxcbiAgICAgICAgICAgIGZpbGVuYW1lLFxuICAgICAgICAgICk7XG5cbiAgICAgICAgICBpZiAoXG4gICAgICAgICAgICBkaXNrRnMuZXhpc3RzU3luYyhhc3NldFBhdGgpICYmXG4gICAgICAgICAgICAhZGlza0ZzLmxzdGF0U3luYyhhc3NldFBhdGgpLmlzRGlyZWN0b3J5KClcbiAgICAgICAgICApIHtcbiAgICAgICAgICAgIHRyeSB7XG4gICAgICAgICAgICAgIGNvbnN0IGZpbGVDb250ZW50ID0gKGF3YWl0IHJlYWRGaWxlKGFzc2V0UGF0aCkpLnRvU3RyaW5nKCk7XG4gICAgICAgICAgICAgIHJlcy5jb250ZW50VHlwZShmaWxlbmFtZSk7XG4gICAgICAgICAgICAgIHJlcy5zZW5kKGZpbGVDb250ZW50KTtcbiAgICAgICAgICAgIH0gY2F0Y2ggKGUpIHtcbiAgICAgICAgICAgICAgcmV0dXJuIG5leHQoKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgbmV4dCgpO1xuICAgICAgICAgIH1cbiAgICAgICAgfSxcbiAgICAgICk7XG4gICAgfVxuXG4gICAgLy8gUFJPWElFU1xuICAgIGlmIChvcHRpb25zLnNlcnZlUHJveHkpIHtcbiAgICAgIGNvbnN0IGRldkNvbmZpZzogd2VicGFjay5Db25maWd1cmF0aW9uID0gd2VicGFja0NvbmZpZyhcbiAgICAgICAge30sXG4gICAgICAgIHsgbW9kZTogJ2RldmVsb3BtZW50JyB9LFxuICAgICAgKTtcbiAgICAgIGlmIChkZXZDb25maWcuZGV2U2VydmVyPy5wcm94eSkge1xuICAgICAgICBjb25zdCBtaWRkbGV3YXJlcyA9IGdldFByb3h5TWlkZGxld2FyZXMoZGV2Q29uZmlnLmRldlNlcnZlcj8ucHJveHkpO1xuICAgICAgICBpZiAobWlkZGxld2FyZXMpIHtcbiAgICAgICAgICB3cmFwcGluZ0FwcC51c2UoLi4ubWlkZGxld2FyZXMubWFwKCh7IG1pZGRsZXdhcmUgfSkgPT4gbWlkZGxld2FyZSkpO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuXG4gICAgLy8gU0VSVkVSIFNJREUgUkVOREVSSU5HXG4gICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uby12YXItcmVxdWlyZXNcbiAgICBjb25zdCByZW5kZXI6IFJlbmRlciA9IHJlcXVpcmUocGF0aC5qb2luKFxuICAgICAgcHJvY2Vzcy5jd2QoKSxcbiAgICAgIGVudHJ5cG9pbnQsXG4gICAgKSkuZGVmYXVsdDtcblxuICAgIGlmICh0eXBlb2YgcmVuZGVyICE9PSAnZnVuY3Rpb24nKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoXG4gICAgICAgIGBkZWZhdWx0IGV4cG9ydCBvZiAke3BhdGguam9pbihcbiAgICAgICAgICBwcm9jZXNzLmN3ZCgpLFxuICAgICAgICAgIGVudHJ5cG9pbnQsXG4gICAgICAgICl9IGlzIG5vdCBhIGZ1bmN0aW9uYCxcbiAgICAgICk7XG4gICAgfVxuXG4gICAgd3JhcHBpbmdBcHAuZ2V0KFxuICAgICAgJy8qJyxcbiAgICAgIGhhbmRsZUVycm9ycyhhc3luYyBmdW5jdGlvbiAocmVxOiBhbnksIHJlczogYW55KSB7XG4gICAgICAgIGlmIChyZXEudXJsLmVuZHNXaXRoKCdmYXZpY29uLmljbycpKSB7XG4gICAgICAgICAgcmVzLnN0YXR1c0NvZGUgPSA0MDQ7XG4gICAgICAgICAgcmVzLnNldEhlYWRlcignQ29udGVudC10eXBlJywgJ3RleHQvaHRtbCcpO1xuICAgICAgICAgIHJlcy5zZW5kKCdub3QgZm91bmQnKTtcbiAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgcmVzLnNvY2tldC5vbignZXJyb3InLCAoZXJyb3I6IHVua25vd24pID0+IHtcbiAgICAgICAgICBjb25zb2xlLmVycm9yKCdGYXRhbCcsIGVycm9yKTtcbiAgICAgICAgfSk7XG5cbiAgICAgICAgYXdhaXQgcmVuZGVyKGNsaWVudE1hbmlmZXN0LCByZXEsIHJlcyk7XG4gICAgICB9KSxcbiAgICApO1xuXG4gICAgc2VydmVyID0gd3JhcHBpbmdBcHBcbiAgICAgIC5saXN0ZW4oUE9SVCwgKCkgPT4ge1xuICAgICAgICBsb2FkZXIuaW5mbyhgTGlzdGVuaW5nIGF0ICR7UE9SVH0uLi5gKTtcbiAgICAgIH0pXG4gICAgICAub24oJ2Vycm9yJywgZnVuY3Rpb24gKGVycm9yOiBhbnkpIHtcbiAgICAgICAgaWYgKGVycm9yLnN5c2NhbGwgIT09ICdsaXN0ZW4nKSB7XG4gICAgICAgICAgdGhyb3cgZXJyb3I7XG4gICAgICAgIH1cbiAgICAgICAgY29uc3QgaXNQaXBlID0gKHBvcnRPclBpcGU6IHN0cmluZyB8IG51bWJlcikgPT5cbiAgICAgICAgICBOdW1iZXIuaXNOYU4ocG9ydE9yUGlwZSk7XG4gICAgICAgIGNvbnN0IGJpbmQgPSBpc1BpcGUoUE9SVCkgPyAnUGlwZSAnICsgUE9SVCA6ICdQb3J0ICcgKyBQT1JUO1xuICAgICAgICBzd2l0Y2ggKGVycm9yLmNvZGUpIHtcbiAgICAgICAgICBjYXNlICdFQUNDRVMnOlxuICAgICAgICAgICAgbG9hZGVyLmZhaWwoYmluZCArICcgcmVxdWlyZXMgZWxldmF0ZWQgcHJpdmlsZWdlcycpO1xuICAgICAgICAgICAgcHJvY2Vzcy5leGl0KDEpO1xuICAgICAgICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBuby1mYWxsdGhyb3VnaFxuICAgICAgICAgIGNhc2UgJ0VBRERSSU5VU0UnOlxuICAgICAgICAgICAgbG9hZGVyLmZhaWwoYmluZCArICcgaXMgYWxyZWFkeSBpbiB1c2UnKTtcbiAgICAgICAgICAgIHByb2Nlc3MuZXhpdCgxKTtcbiAgICAgICAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgbm8tZmFsbHRocm91Z2hcbiAgICAgICAgICBkZWZhdWx0OlxuICAgICAgICAgICAgdGhyb3cgZXJyb3I7XG4gICAgICAgIH1cbiAgICAgIH0pO1xuICB9XG5cbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uby12YXItcmVxdWlyZXNcbiAgaW5pdGlhbGl6ZUFwcChyZXF1aXJlKG1hbmlmZXN0UGF0aCkpO1xuXG4gIHByb2Nlc3Mub24oJ1NJR0lOVCcsICgpID0+IHtcbiAgICBsb2FkZXIud2FybignUmVjZWl2ZWQgU0lHSU5ULCBkZXZzZXJ2ZXIgc2h1dHRpbmcgZG93bicpO1xuICAgIGlmIChzZXJ2ZXIpIGNvbnNvbGUubG9nKCdDbG9zaW5nIHNlcnZlcicpO1xuICAgIHNlcnZlcj8uY2xvc2UoKCkgPT4ge1xuICAgICAgbG9hZGVyLmluZm8oJ1NlcnZlciBjbG9zZWQnKTtcbiAgICB9KTtcbiAgICBwcm9jZXNzLmV4aXQoLTEpO1xuICB9KTtcbn1cblxuZnVuY3Rpb24gZ2V0TWFuaWZlc3RQYXRoRnJvbVdlYnBhY2tjb25maWcoXG4gIHdlYnBhY2tDb25maWc6IHdlYnBhY2suQ29uZmlndXJhdGlvbixcbikge1xuICBjb25zdCBtYW5pZmVzdEZpbGVuYW1lOiBzdHJpbmcgPVxuICAgIChcbiAgICAgIHdlYnBhY2tDb25maWc/LnBsdWdpbnM/LmZpbmQocGx1Z2luID0+IHtcbiAgICAgICAgcmV0dXJuIHBsdWdpbi5jb25zdHJ1Y3Rvci5uYW1lID09PSAnU3RhdHNXcml0ZXJQbHVnaW4nO1xuICAgICAgfSkgYXMgYW55XG4gICAgKT8ub3B0cz8uZmlsZW5hbWUgPz8gJ21hbmlmZXN0Lmpzb24nO1xuXG4gIGNvbnN0IG1hbmlmZXN0UGF0aCA9IHBhdGguam9pbihcbiAgICB3ZWJwYWNrQ29uZmlnPy5vdXRwdXQ/LnBhdGggPz8gJycsXG4gICAgbWFuaWZlc3RGaWxlbmFtZSxcbiAgKTtcbiAgcmV0dXJuIG1hbmlmZXN0UGF0aDtcbn1cbiJdLCJtYXBwaW5ncyI6IkFBQUE7QUFBbUI7O0FBQUEsSUFBQUEsc0JBQUEsR0FBQUMsT0FBQSxpREFBQUMsT0FBQTtBQUFBQyxPQUFBLENBQUFDLFVBQUE7QUFBQUQsT0FBQSxDQUFBRCxPQUFBLEdBQUFHLEtBQUE7QUFNbkIsSUFBQUMsWUFBQSxHQUFBTixzQkFBQSxDQUFBQyxPQUFBO0FBQ0EsSUFBQU0sUUFBQSxHQUFBUCxzQkFBQSxDQUFBQyxPQUFBO0FBQ0EsSUFBQU8sR0FBQSxHQUFBUixzQkFBQSxDQUFBQyxPQUFBO0FBRUEsSUFBQVEsSUFBQSxHQUFBVCxzQkFBQSxDQUFBQyxPQUFBO0FBQ0EsSUFBQVMsS0FBQSxHQUFBVixzQkFBQSxDQUFBQyxPQUFBO0FBQ0EsSUFBQVUsS0FBQSxHQUFBVixPQUFBO0FBR0FBLE9BQUE7QUFDQSxJQUFBVyxvQkFBQSxHQUFBWixzQkFBQSxDQUFBQyxPQUFBO0FBQ0EsSUFBQVksaUJBQUEsR0FBQVosT0FBQTtBQWhCQWEsTUFBTSxDQUFDQyxNQUFNLEdBQ1hELE1BQU0sQ0FBQ0MsTUFB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
|
|
160
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJPYmplY3QiLCJoYXNPd24iLCJpdCIsImtleSIsInByb3RvdHlwZSIsImhhc093blByb3BlcnR5IiwiY2FsbCIsImNvbXByZXNzIiwiZXhwcmVzcyIsImRpc2tGcyIsIm9yYSIsInBhdGgiLCJwcm9taXNpZnkiLCJnZXRQcm94eU1pZGRsZXdhcmVzIiwiZ2V0V2VicGFja0NvbmZpZyIsImltcG9ydCIsIm1ldGEiLCJlbnRyeXBvaW50IiwicHJvY2VzcyIsImFyZ3YiLCJjb25zb2xlIiwibG9nIiwiZXhpdCIsInNlcnZlIiwib3B0aW9ucyIsIlBPUlQiLCJlbnYiLCJsb2FkZXIiLCJzdGFydCIsIndlYnBhY2tDb25maWciLCJtYW5pZmVzdFBhdGgiLCJnZXRNYW5pZmVzdFBhdGhGcm9tV2VicGFja2NvbmZpZyIsIm1vZGUiLCJyZWFkRmlsZSIsInNlcnZlciIsImhhbmRsZUVycm9ycyIsImZuIiwicmVxIiwicmVzIiwibmV4dCIsIngiLCJpbml0aWFsaXplQXBwIiwiY2xpZW50TWFuaWZlc3QiLCJpbmZvIiwiZmFpbCIsIndyYXBwaW5nQXBwIiwidXNlIiwic2VydmVBc3NldHMiLCJfcmVxJHVybCRzdWJzdHJpbmciLCJfcmVxJHVybCIsIl9jbGllbnRNYW5pZmVzdCRvdXRwdSIsImZpbGVuYW1lIiwidXJsIiwic3Vic3RyaW5nIiwiV0VCUEFDS19QVUJMSUNfUEFUSCIsImxlbmd0aCIsImFzc2V0UGF0aCIsImpvaW4iLCJvdXRwdXRQYXRoIiwiZXhpc3RzU3luYyIsImxzdGF0U3luYyIsImlzRGlyZWN0b3J5Iiwic2VuZEZpbGUiLCJlIiwic2VydmVQcm94eSIsIl9kZXZDb25maWckZGV2U2VydmVyIiwiZGV2Q29uZmlnIiwiZGV2U2VydmVyIiwicHJveHkiLCJfZGV2Q29uZmlnJGRldlNlcnZlcjIiLCJtaWRkbGV3YXJlcyIsIm1hcCIsIm1pZGRsZXdhcmUiLCJyZW5kZXIiLCJjd2QiLCJkZWZhdWx0IiwiRXJyb3IiLCJnZXQiLCJlbmRzV2l0aCIsInN0YXR1c0NvZGUiLCJzZXRIZWFkZXIiLCJzZW5kIiwic29ja2V0Iiwib24iLCJlcnJvciIsImxpc3RlbiIsInN5c2NhbGwiLCJpc1BpcGUiLCJwb3J0T3JQaXBlIiwiTnVtYmVyIiwiaXNOYU4iLCJiaW5kIiwiY29kZSIsIm1hbmlmZXN0IiwiYXNzZXJ0IiwidHlwZSIsIl9zZXJ2ZXIiLCJ3YXJuIiwiY2xvc2UiLCJfb3B0cyRmaWxlbmFtZSIsIl93ZWJwYWNrQ29uZmlnJHBsdWdpbiIsIl93ZWJwYWNrQ29uZmlnJHBsdWdpbjIiLCJfd2VicGFja0NvbmZpZyRwbHVnaW4zIiwiX3dlYnBhY2tDb25maWckb3V0cHV0IiwiX3dlYnBhY2tDb25maWckb3V0cHV0MiIsIm1hbmlmZXN0RmlsZW5hbWUiLCJwbHVnaW5zIiwiZmluZCIsInBsdWdpbiIsImNvbnN0cnVjdG9yIiwibmFtZSIsIm9wdHMiLCJvdXRwdXQiXSwic291cmNlcyI6WyIuLi8uLi9zcmMvc2NyaXB0cy9zZXJ2ZS50cyJdLCJzb3VyY2VzQ29udGVudCI6WyIjIS91c3IvYmluL2VudiBub2RlXG5PYmplY3QuaGFzT3duID1cbiAgT2JqZWN0Lmhhc093biB8fFxuICAvKiBpc3RhbmJ1bCBpZ25vcmUgbmV4dCAqLyBmdW5jdGlvbiBoYXNPd24oaXQsIGtleSkge1xuICAgIHJldHVybiBPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwoaXQsIGtleSk7XG4gIH07XG5pbXBvcnQgY29tcHJlc3MgZnJvbSAnY29tcHJlc3Npb24nO1xuaW1wb3J0IGV4cHJlc3MsIHsgTmV4dEZ1bmN0aW9uIH0gZnJvbSAnZXhwcmVzcyc7XG5pbXBvcnQgZGlza0ZzIGZyb20gJ2ZzJztcbmltcG9ydCB7IFNlcnZlciwgSW5jb21pbmdNZXNzYWdlLCBTZXJ2ZXJSZXNwb25zZSB9IGZyb20gJ2h0dHAnO1xuaW1wb3J0IG9yYSBmcm9tICdvcmEnO1xuaW1wb3J0IHBhdGggZnJvbSAncGF0aCc7XG5pbXBvcnQgeyBwcm9taXNpZnkgfSBmcm9tICd1dGlsJztcbmltcG9ydCB3ZWJwYWNrIGZyb20gJ3dlYnBhY2snO1xuXG5pbXBvcnQgJ2Nyb3NzLWZldGNoL2Rpc3Qvbm9kZS1wb2x5ZmlsbC5qcyc7XG5pbXBvcnQgZ2V0UHJveHlNaWRkbGV3YXJlcyBmcm9tICcuL2dldFByb3h5TWlkZGxld2FyZXMuanMnO1xuaW1wb3J0IHsgZ2V0V2VicGFja0NvbmZpZyB9IGZyb20gJy4vZ2V0V2VicGFja0NvbmZpZy5qcyc7XG5pbXBvcnQgeyBSZW5kZXIgfSBmcm9tICcuL3R5cGVzLmpzJztcblxuLy8gcnVuIGRpcmVjdGx5IGZyb20gbm9kZVxuaWYgKCdtYWluJyBpbiBpbXBvcnQubWV0YSkge1xuICBjb25zdCBlbnRyeXBvaW50ID0gcHJvY2Vzcy5hcmd2WzJdO1xuXG4gIGlmICghZW50cnlwb2ludCkge1xuICAgIGNvbnNvbGUubG9nKGBVc2FnZTogJHtwcm9jZXNzLmFyZ3ZbMF19IDxzZXJ2ZXItZW50cnlwb2ludD5gKTtcbiAgICBwcm9jZXNzLmV4aXQoLTEpO1xuICB9XG4gIHNlcnZlKGVudHJ5cG9pbnQpO1xufVxuXG5leHBvcnQgZGVmYXVsdCBhc3luYyBmdW5jdGlvbiBzZXJ2ZShcbiAgZW50cnlwb2ludDogc3RyaW5nLFxuICBvcHRpb25zOiB7IHNlcnZlQXNzZXRzPzogYm9vbGVhbjsgc2VydmVQcm94eT86IGJvb2xlYW4gfSA9IHt9LFxuKSB7XG4gIGNvbnN0IFBPUlQgPSBwcm9jZXNzLmVudi5QT1JUIHx8IDgwODA7XG5cbiAgY29uc3QgbG9hZGVyID0gb3JhKCdJbml0aWFsaXppbmcnKS5zdGFydCgpO1xuXG4gIGNvbnN0IHdlYnBhY2tDb25maWcgPSBhd2FpdCBnZXRXZWJwYWNrQ29uZmlnKCk7XG5cbiAgY29uc3QgbWFuaWZlc3RQYXRoID0gZ2V0TWFuaWZlc3RQYXRoRnJvbVdlYnBhY2tjb25maWcoXG4gICAgd2VicGFja0NvbmZpZyh7fSwgeyBtb2RlOiAncHJvZHVjdGlvbicgfSksXG4gICk7XG5cbiAgY29uc3QgcmVhZEZpbGUgPSBwcm9taXNpZnkoZGlza0ZzLnJlYWRGaWxlKTtcbiAgbGV0IHNlcnZlcjogU2VydmVyIHwgdW5kZWZpbmVkO1xuXG4gIGZ1bmN0aW9uIGhhbmRsZUVycm9yczxcbiAgICBGIGV4dGVuZHMgKFxuICAgICAgcmVxOiBSZXF1ZXN0IHwgSW5jb21pbmdNZXNzYWdlLFxuICAgICAgcmVzOiBSZXNwb25zZSB8IFNlcnZlclJlc3BvbnNlLFxuICAgICkgPT4gUHJvbWlzZTx2b2lkPixcbiAgPihmbjogRikge1xuICAgIHJldHVybiBhc3luYyBmdW5jdGlvbiAoXG4gICAgICByZXE6IFJlcXVlc3QgfCBJbmNvbWluZ01lc3NhZ2UsXG4gICAgICByZXM6IFJlc3BvbnNlIHwgU2VydmVyUmVzcG9uc2UsXG4gICAgICBuZXh0OiBOZXh0RnVuY3Rpb24sXG4gICAgKSB7XG4gICAgICB0cnkge1xuICAgICAgICByZXR1cm4gYXdhaXQgZm4ocmVxLCByZXMpO1xuICAgICAgfSBjYXRjaCAoeCkge1xuICAgICAgICBuZXh0KHgpO1xuICAgICAgfVxuICAgIH07XG4gIH1cblxuICAvLyBTdGFydCB0aGUgZXhwcmVzcyBzZXJ2ZXIgYWZ0ZXIgdGhlIGZpcnN0IGNvbXBpbGF0aW9uXG4gIGFzeW5jIGZ1bmN0aW9uIGluaXRpYWxpemVBcHAoY2xpZW50TWFuaWZlc3Q6IHdlYnBhY2suU3RhdHNDb21waWxhdGlvbikge1xuICAgIGxvYWRlci5pbmZvKCdMYXVuY2hpbmcgc2VydmVyJyk7XG4gICAgaWYgKCFjbGllbnRNYW5pZmVzdCkge1xuICAgICAgbG9hZGVyLmZhaWwoJ01hbmlmZXN0IG5vdCBmb3VuZCcpO1xuICAgICAgLy8gVE9ETzogaGFuZGxlIG1vcmUgZ3JhY2VmdWxseVxuICAgICAgcHJvY2Vzcy5leGl0KC0xKTtcbiAgICB9XG5cbiAgICBjb25zdCB3cmFwcGluZ0FwcCA9IGV4cHJlc3MoKTtcbiAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmVcbiAgICAvL0B0cy1pZ25vcmVcbiAgICB3cmFwcGluZ0FwcC51c2UoY29tcHJlc3MoKSk7XG5cbiAgICAvLyBBU1NFVFNcbiAgICBpZiAob3B0aW9ucy5zZXJ2ZUFzc2V0cykge1xuICAgICAgd3JhcHBpbmdBcHAudXNlKFxuICAgICAgICBhc3luYyAoXG4gICAgICAgICAgcmVxOiBSZXF1ZXN0IHwgSW5jb21pbmdNZXNzYWdlLFxuICAgICAgICAgIHJlczogYW55LFxuICAgICAgICAgIG5leHQ6IE5leHRGdW5jdGlvbixcbiAgICAgICAgKSA9PiB7XG4gICAgICAgICAgY29uc3QgZmlsZW5hbWUgPVxuICAgICAgICAgICAgcmVxLnVybD8uc3Vic3RyaW5nKFxuICAgICAgICAgICAgICAocHJvY2Vzcy5lbnYuV0VCUEFDS19QVUJMSUNfUEFUSCBhcyBzdHJpbmcpLmxlbmd0aCxcbiAgICAgICAgICAgICkgPz8gJyc7XG4gICAgICAgICAgY29uc3QgYXNzZXRQYXRoID0gcGF0aC5qb2luKFxuICAgICAgICAgICAgY2xpZW50TWFuaWZlc3Qub3V0cHV0UGF0aCA/PyAnJyxcbiAgICAgICAgICAgIGZpbGVuYW1lLFxuICAgICAgICAgICk7XG5cbiAgICAgICAgICBpZiAoXG4gICAgICAgICAgICBkaXNrRnMuZXhpc3RzU3luYyhhc3NldFBhdGgpICYmXG4gICAgICAgICAgICAhZGlza0ZzLmxzdGF0U3luYyhhc3NldFBhdGgpLmlzRGlyZWN0b3J5KClcbiAgICAgICAgICApIHtcbiAgICAgICAgICAgIHRyeSB7XG4gICAgICAgICAgICAgIHJlcy5zZW5kRmlsZShhc3NldFBhdGgpO1xuICAgICAgICAgICAgfSBjYXRjaCAoZSkge1xuICAgICAgICAgICAgICByZXR1cm4gbmV4dCgpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICBuZXh0KCk7XG4gICAgICAgICAgfVxuICAgICAgICB9LFxuICAgICAgKTtcbiAgICB9XG5cbiAgICAvLyBQUk9YSUVTXG4gICAgaWYgKG9wdGlvbnMuc2VydmVQcm94eSkge1xuICAgICAgY29uc3QgZGV2Q29uZmlnOiB3ZWJwYWNrLkNvbmZpZ3VyYXRpb24gPSB3ZWJwYWNrQ29uZmlnKFxuICAgICAgICB7fSxcbiAgICAgICAgeyBtb2RlOiAnZGV2ZWxvcG1lbnQnIH0sXG4gICAgICApO1xuICAgICAgaWYgKGRldkNvbmZpZy5kZXZTZXJ2ZXI/LnByb3h5KSB7XG4gICAgICAgIGNvbnN0IG1pZGRsZXdhcmVzID0gZ2V0UHJveHlNaWRkbGV3YXJlcyhkZXZDb25maWcuZGV2U2VydmVyPy5wcm94eSk7XG4gICAgICAgIGlmIChtaWRkbGV3YXJlcykge1xuICAgICAgICAgIHdyYXBwaW5nQXBwLnVzZSguLi5taWRkbGV3YXJlcy5tYXAoKHsgbWlkZGxld2FyZSB9KSA9PiBtaWRkbGV3YXJlKSk7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG5cbiAgICAvLyBTRVJWRVIgU0lERSBSRU5ERVJJTkdcbiAgICBsZXQgcmVuZGVyOiBSZW5kZXIgPSAoYXdhaXQgaW1wb3J0KHBhdGguam9pbihwcm9jZXNzLmN3ZCgpLCBlbnRyeXBvaW50KSkpXG4gICAgICAuZGVmYXVsdDtcblxuICAgIGlmICgnZGVmYXVsdCcgaW4gcmVuZGVyKSB7XG4gICAgICByZW5kZXIgPSByZW5kZXIuZGVmYXVsdCBhcyBhbnk7XG4gICAgfVxuXG4gICAgaWYgKHR5cGVvZiByZW5kZXIgIT09ICdmdW5jdGlvbicpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcihcbiAgICAgICAgYGRlZmF1bHQgZXhwb3J0IG9mICR7cGF0aC5qb2luKFxuICAgICAgICAgIHByb2Nlc3MuY3dkKCksXG4gICAgICAgICAgZW50cnlwb2ludCxcbiAgICAgICAgKX0gaXMgbm90IGEgZnVuY3Rpb25gLFxuICAgICAgKTtcbiAgICB9XG5cbiAgICB3cmFwcGluZ0FwcC5nZXQoXG4gICAgICAnLyonLFxuICAgICAgaGFuZGxlRXJyb3JzKGFzeW5jIGZ1bmN0aW9uIChyZXE6IGFueSwgcmVzOiBhbnkpIHtcbiAgICAgICAgaWYgKHJlcS51cmwuZW5kc1dpdGgoJ2Zhdmljb24uaWNvJykpIHtcbiAgICAgICAgICByZXMuc3RhdHVzQ29kZSA9IDQwNDtcbiAgICAgICAgICByZXMuc2V0SGVhZGVyKCdDb250ZW50LXR5cGUnLCAndGV4dC9odG1sJyk7XG4gICAgICAgICAgcmVzLnNlbmQoJ25vdCBmb3VuZCcpO1xuICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgICByZXMuc29ja2V0Lm9uKCdlcnJvcicsIChlcnJvcjogdW5rbm93bikgPT4ge1xuICAgICAgICAgIGNvbnNvbGUuZXJyb3IoJ0ZhdGFsJywgZXJyb3IpO1xuICAgICAgICB9KTtcblxuICAgICAgICBhd2FpdCByZW5kZXIoY2xpZW50TWFuaWZlc3QsIHJlcSwgcmVzKTtcbiAgICAgIH0pLFxuICAgICk7XG5cbiAgICBzZXJ2ZXIgPSB3cmFwcGluZ0FwcFxuICAgICAgLmxpc3RlbihQT1JULCAoKSA9PiB7XG4gICAgICAgIGxvYWRlci5pbmZvKGBMaXN0ZW5pbmcgYXQgJHtQT1JUfS4uLmApO1xuICAgICAgfSlcbiAgICAgIC5vbignZXJyb3InLCBmdW5jdGlvbiAoZXJyb3I6IGFueSkge1xuICAgICAgICBpZiAoZXJyb3Iuc3lzY2FsbCAhPT0gJ2xpc3RlbicpIHtcbiAgICAgICAgICB0aHJvdyBlcnJvcjtcbiAgICAgICAgfVxuICAgICAgICBjb25zdCBpc1BpcGUgPSAocG9ydE9yUGlwZTogc3RyaW5nIHwgbnVtYmVyKSA9PlxuICAgICAgICAgIE51bWJlci5pc05hTihwb3J0T3JQaXBlKTtcbiAgICAgICAgY29uc3QgYmluZCA9IGlzUGlwZShQT1JUKSA/ICdQaXBlICcgKyBQT1JUIDogJ1BvcnQgJyArIFBPUlQ7XG4gICAgICAgIHN3aXRjaCAoZXJyb3IuY29kZSkge1xuICAgICAgICAgIGNhc2UgJ0VBQ0NFUyc6XG4gICAgICAgICAgICBsb2FkZXIuZmFpbChiaW5kICsgJyByZXF1aXJlcyBlbGV2YXRlZCBwcml2aWxlZ2VzJyk7XG4gICAgICAgICAgICBwcm9jZXNzLmV4aXQoMSk7XG4gICAgICAgICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIG5vLWZhbGx0aHJvdWdoXG4gICAgICAgICAgY2FzZSAnRUFERFJJTlVTRSc6XG4gICAgICAgICAgICBsb2FkZXIuZmFpbChiaW5kICsgJyBpcyBhbHJlYWR5IGluIHVzZScpO1xuICAgICAgICAgICAgcHJvY2Vzcy5leGl0KDEpO1xuICAgICAgICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBuby1mYWxsdGhyb3VnaFxuICAgICAgICAgIGRlZmF1bHQ6XG4gICAgICAgICAgICB0aHJvdyBlcnJvcjtcbiAgICAgICAgfVxuICAgICAgfSk7XG4gIH1cblxuICBsZXQgbWFuaWZlc3QgPSBhd2FpdCBpbXBvcnQobWFuaWZlc3RQYXRoLCB7XG4gICAgYXNzZXJ0OiB7IHR5cGU6ICdqc29uJyB9LFxuICB9KTtcbiAgLy8gaGFuZGxlIGluY29uc2lzdGVudCBpbXBvcnQgY29uZGl0aW9uc1xuICBpZiAoJ2RlZmF1bHQnIGluIG1hbmlmZXN0KSB7XG4gICAgbWFuaWZlc3QgPSBtYW5pZmVzdC5kZWZhdWx0O1xuICB9XG4gIGF3YWl0IGluaXRpYWxpemVBcHAobWFuaWZlc3QpO1xuXG4gIHByb2Nlc3Mub24oJ1NJR0lOVCcsICgpID0+IHtcbiAgICBsb2FkZXIud2FybignUmVjZWl2ZWQgU0lHSU5ULCBkZXZzZXJ2ZXIgc2h1dHRpbmcgZG93bicpO1xuICAgIGlmIChzZXJ2ZXIpIGNvbnNvbGUubG9nKCdDbG9zaW5nIHNlcnZlcicpO1xuICAgIHNlcnZlcj8uY2xvc2UoKCkgPT4ge1xuICAgICAgbG9hZGVyLmluZm8oJ1NlcnZlciBjbG9zZWQnKTtcbiAgICB9KTtcbiAgICBwcm9jZXNzLmV4aXQoLTEpO1xuICB9KTtcbn1cblxuZnVuY3Rpb24gZ2V0TWFuaWZlc3RQYXRoRnJvbVdlYnBhY2tjb25maWcoXG4gIHdlYnBhY2tDb25maWc6IHdlYnBhY2suQ29uZmlndXJhdGlvbixcbikge1xuICBjb25zdCBtYW5pZmVzdEZpbGVuYW1lOiBzdHJpbmcgPVxuICAgIChcbiAgICAgIHdlYnBhY2tDb25maWc/LnBsdWdpbnM/LmZpbmQocGx1Z2luID0+IHtcbiAgICAgICAgcmV0dXJuIHBsdWdpbi5jb25zdHJ1Y3Rvci5uYW1lID09PSAnU3RhdHNXcml0ZXJQbHVnaW4nO1xuICAgICAgfSkgYXMgYW55XG4gICAgKT8ub3B0cz8uZmlsZW5hbWUgPz8gJ21hbmlmZXN0Lmpzb24nO1xuXG4gIGNvbnN0IG1hbmlmZXN0UGF0aCA9IHBhdGguam9pbihcbiAgICB3ZWJwYWNrQ29uZmlnPy5vdXRwdXQ/LnBhdGggPz8gJycsXG4gICAgbWFuaWZlc3RGaWxlbmFtZSxcbiAgKTtcbiAgcmV0dXJuIG1hbmlmZXN0UGF0aDtcbn1cbiJdLCJtYXBwaW5ncyI6IkFBQUE7QUFDQUEsTUFBTSxDQUFDQyxNQUFNLEdBQ1hELE1BQU0sQ0FBQ0MsTUFBTSxJQUNiLDBCQUEyQixTQUFTQSxNQUFNQSxDQUFDQyxFQUFFLEVBQUVDLEdBQUcsRUFBRTtFQUNsRCxPQUFPSCxNQUFNLENBQUNJLFNBQVMsQ0FBQ0MsY0FBYyxDQUFDQyxJQUFJLENBQUNKLEVBQUUsRUFBRUMsR0FBRyxDQUFDO0FBQ3RELENBQUM7QUFDSCxPQUFPSSxRQUFRLE1BQU0sYUFBYTtBQUNsQyxPQUFPQyxPQUFPLE1BQXdCLFNBQVM7QUFDL0MsT0FBT0MsTUFBTSxNQUFNLElBQUk7QUFFdkIsT0FBT0MsR0FBRyxNQUFNLEtBQUs7QUFDckIsT0FBT0MsSUFBSSxNQUFNLE1BQU07QUFDdkIsU0FBU0MsU0FBUyxRQUFRLE1BQU07QUFHaEMsT0FBTyxtQ0FBbUM7QUFDMUMsT0FBT0MsbUJBQW1CLE1BQU0sMEJBQTBCO0FBQzFELFNBQVNDLGdCQUFnQixRQUFRLHVCQUF1QjtBQUd4RDtBQUNBLElBQUksTUFBTSxJQUFJQyxNQUFNLENBQUNDLElBQUksRUFBRTtFQUN6QixNQUFNQyxVQUFVLEdBQUdDLE9BQU8sQ0FBQ0MsSUFBSSxDQUFDLENBQUMsQ0FBQztFQUVsQyxJQUFJLENBQUNGLFVBQVUsRUFBRTtJQUNmRyxP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
|
|
@@ -1,4 +1,4 @@
|
|
|
1
1
|
#!/usr/bin/env node
|
|
2
|
-
import 'cross-fetch/dist/node-polyfill';
|
|
3
|
-
export default function startDevServer(entrypoint: string, env?: Record<string, unknown>): void
|
|
2
|
+
import 'cross-fetch/dist/node-polyfill.js';
|
|
3
|
+
export default function startDevServer(entrypoint: string, env?: Record<string, unknown>): Promise<void>;
|
|
4
4
|
//# sourceMappingURL=startDevserver.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"startDevserver.d.ts","sourceRoot":"","sources":["../../src/scripts/startDevserver.ts"],"names":[],"mappings":";AAoBA,OAAO,
|
|
1
|
+
{"version":3,"file":"startDevserver.d.ts","sourceRoot":"","sources":["../../src/scripts/startDevserver.ts"],"names":[],"mappings":";AAoBA,OAAO,mCAAmC,CAAC;AAmB3C,wBAA8B,cAAc,CAC1C,UAAU,EAAE,MAAM,EAClB,GAAG,GAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAM,iBAmPlC"}
|
|
@@ -1,27 +1,22 @@
|
|
|
1
1
|
#!/usr/bin/env node
|
|
2
|
-
"use strict";
|
|
3
|
-
|
|
4
|
-
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault").default;
|
|
5
|
-
exports.__esModule = true;
|
|
6
|
-
exports.default = startDevServer;
|
|
7
|
-
var _fs = _interopRequireDefault(require("fs"));
|
|
8
|
-
var _fsRequire = require("fs-require");
|
|
9
|
-
var _memfs = require("memfs");
|
|
10
|
-
var _path = _interopRequireDefault(require("path"));
|
|
11
|
-
var _sourceMapSupport = _interopRequireDefault(require("source-map-support"));
|
|
12
|
-
var _tmp = _interopRequireDefault(require("tmp"));
|
|
13
|
-
var _unionfs = require("unionfs");
|
|
14
|
-
var _util = require("util");
|
|
15
|
-
var _webpack = _interopRequireDefault(require("webpack"));
|
|
16
|
-
var _runtime = _interopRequireDefault(require("webpack/lib/logging/runtime"));
|
|
17
|
-
var _webpackDevServer = _interopRequireDefault(require("webpack-dev-server"));
|
|
18
|
-
require("cross-fetch/dist/node-polyfill");
|
|
19
|
-
var _getWebpackConfig = require("./getWebpackConfig.js");
|
|
20
2
|
Object.hasOwn = Object.hasOwn || /* istanbul ignore next */function hasOwn(it, key) {
|
|
21
3
|
return Object.prototype.hasOwnProperty.call(it, key);
|
|
22
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';
|
|
23
18
|
// run directly from node
|
|
24
|
-
if (
|
|
19
|
+
if ('main' in import.meta) {
|
|
25
20
|
const entrypoint = process.argv[2];
|
|
26
21
|
if (!entrypoint) {
|
|
27
22
|
console.log(`Usage: start-anansi <entrypoint-file>`);
|
|
@@ -29,28 +24,30 @@ if (require.main === module) {
|
|
|
29
24
|
}
|
|
30
25
|
startDevServer(entrypoint);
|
|
31
26
|
}
|
|
32
|
-
|
|
27
|
+
let serverFileContents = Promise.resolve('');
|
|
28
|
+
let serverEntry = '';
|
|
29
|
+
export default async function startDevServer(entrypoint, env = {}) {
|
|
33
30
|
var _webpackConfigs$, _webpackConfigs$$devS;
|
|
34
|
-
const webpackConfig =
|
|
35
|
-
const log =
|
|
31
|
+
const webpackConfig = await getWebpackConfig();
|
|
32
|
+
const log = logging.getLogger('anansi-devserver');
|
|
36
33
|
|
|
37
34
|
// Set up in memory filesystem
|
|
38
|
-
const volume = new
|
|
39
|
-
const fs =
|
|
40
|
-
|
|
41
|
-
const fsRequire =
|
|
42
|
-
const readFile =
|
|
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);
|
|
43
40
|
let server;
|
|
44
41
|
|
|
45
42
|
// Generate a temporary file so we can hot reload from the root of the application
|
|
46
43
|
function hotEntry(entryPath) {
|
|
47
44
|
// eslint-disable-next-line
|
|
48
45
|
// @ts-ignore for some reason it's not picking up that other options are optional
|
|
49
|
-
const generatedEntrypoint =
|
|
46
|
+
const generatedEntrypoint = tmp.fileSync({
|
|
50
47
|
postfix: '.js'
|
|
51
48
|
});
|
|
52
|
-
|
|
53
|
-
import entry from "${
|
|
49
|
+
diskFs.writeSync(generatedEntrypoint.fd, `
|
|
50
|
+
import entry from "${path.resolve(process.cwd(), entryPath)}";
|
|
54
51
|
|
|
55
52
|
if (module.hot) {
|
|
56
53
|
module.hot.accept();
|
|
@@ -60,25 +57,23 @@ function startDevServer(entrypoint, env = {}) {
|
|
|
60
57
|
`);
|
|
61
58
|
return generatedEntrypoint;
|
|
62
59
|
}
|
|
63
|
-
const webpackConfigs = [webpackConfig({
|
|
64
|
-
...env,
|
|
60
|
+
const webpackConfigs = [webpackConfig(Object.assign({}, env, {
|
|
65
61
|
entrypath: hotEntry(entrypoint).name,
|
|
66
62
|
name: 'client'
|
|
67
|
-
}, {
|
|
63
|
+
}), {
|
|
68
64
|
mode: 'development'
|
|
69
|
-
}), webpackConfig({
|
|
70
|
-
...env,
|
|
65
|
+
}), webpackConfig(Object.assign({}, env, {
|
|
71
66
|
entrypath: entrypoint.replace('.tsx', '.server.tsx'),
|
|
72
67
|
name: 'server',
|
|
73
68
|
BROWSERSLIST_ENV: 'current node'
|
|
74
|
-
}, {
|
|
69
|
+
}), {
|
|
75
70
|
mode: 'development',
|
|
76
71
|
target: 'node'
|
|
77
72
|
})];
|
|
78
73
|
|
|
79
74
|
// initialize the webpack compiler
|
|
80
|
-
const compiler = (
|
|
81
|
-
|
|
75
|
+
const compiler = webpack(webpackConfigs);
|
|
76
|
+
sourceMapSupport.install({
|
|
82
77
|
hookRequire: true
|
|
83
78
|
});
|
|
84
79
|
function getServerBundle(serverStats) {
|
|
@@ -86,7 +81,7 @@ function startDevServer(entrypoint, env = {}) {
|
|
|
86
81
|
const serverJson = serverStats.toJson({
|
|
87
82
|
assets: true
|
|
88
83
|
});
|
|
89
|
-
return
|
|
84
|
+
return path.join((_serverJson$outputPat = serverJson.outputPath) != null ? _serverJson$outputPat : '', 'server.js');
|
|
90
85
|
}
|
|
91
86
|
function handleErrors(fn) {
|
|
92
87
|
return async function (req, res, next) {
|
|
@@ -123,12 +118,12 @@ function startDevServer(entrypoint, env = {}) {
|
|
|
123
118
|
|
|
124
119
|
// ASSETS
|
|
125
120
|
const clientManifest = clientStats.toJson();
|
|
126
|
-
|
|
121
|
+
serverEntry = getServerBundle(serverStats);
|
|
122
|
+
serverFileContents = readFile(serverEntry).then(buf => buf.toString());
|
|
127
123
|
// reload modules
|
|
128
124
|
Object.keys(fsRequire.cache).forEach(key => {
|
|
129
125
|
delete fsRequire.cache[key];
|
|
130
126
|
});
|
|
131
|
-
// eslint-disable-next-line @typescript-eslint/no-var-requires
|
|
132
127
|
render = fsRequire(serverEntry).default.bind(undefined, clientManifest);
|
|
133
128
|
// SERVER SIDE ENTRYPOINT
|
|
134
129
|
if (Array.isArray(initRender)) {
|
|
@@ -145,17 +140,13 @@ function startDevServer(entrypoint, env = {}) {
|
|
|
145
140
|
initRender = undefined;
|
|
146
141
|
}
|
|
147
142
|
}
|
|
148
|
-
const devServer = new
|
|
149
|
-
|
|
150
|
-
|
|
151
|
-
|
|
152
|
-
|
|
153
|
-
|
|
154
|
-
|
|
155
|
-
...fs,
|
|
156
|
-
join: _path.default.join
|
|
157
|
-
}
|
|
158
|
-
},
|
|
143
|
+
const devServer = new WebpackDevServer( // write to memory filesystem so we can import
|
|
144
|
+
Object.assign({}, webpackConfigs[0].devServer, {
|
|
145
|
+
devMiddleware: Object.assign({}, (_webpackConfigs$ = webpackConfigs[0]) == null ? void 0 : (_webpackConfigs$$devS = _webpackConfigs$.devServer) == null ? void 0 : _webpackConfigs$$devS.devMiddleware, {
|
|
146
|
+
outputFileSystem: Object.assign({}, fs, {
|
|
147
|
+
join: path.join
|
|
148
|
+
})
|
|
149
|
+
}),
|
|
159
150
|
setupMiddlewares: (middlewares, devServer) => {
|
|
160
151
|
var _webpackConfigs$0$dev, _webpackConfigs$0$dev2, _devServer$app, _webpackConfigs$0$dev3;
|
|
161
152
|
if (!devServer) {
|
|
@@ -180,7 +171,7 @@ function startDevServer(entrypoint, env = {}) {
|
|
|
180
171
|
}
|
|
181
172
|
return middlewares;
|
|
182
173
|
}
|
|
183
|
-
}, compiler);
|
|
174
|
+
}), compiler);
|
|
184
175
|
const runServer = async () => {
|
|
185
176
|
await devServer.start();
|
|
186
177
|
devServer.compiler.hooks.done.tap('Anansi Server', multiStats => {
|
|
@@ -194,6 +185,24 @@ function startDevServer(entrypoint, env = {}) {
|
|
|
194
185
|
importRender(multiStats.stats);
|
|
195
186
|
} catch (e) {
|
|
196
187
|
log.error('Failed to load serve entrypoint');
|
|
188
|
+
const finder = new RegExp(`${serverEntry}:([\\d]+):([\\d]+)`, 'g');
|
|
189
|
+
serverFileContents.then(fileText => {
|
|
190
|
+
const textRows = fileText.split('\n');
|
|
191
|
+
log.error('>>> Stack Context [serve entrypoint] <<<');
|
|
192
|
+
for (const match of (_e$stack$matchAll = e.stack.matchAll(finder)) != null ? _e$stack$matchAll : []) {
|
|
193
|
+
var _e$stack$matchAll;
|
|
194
|
+
const row = Number.parseInt(match[1]);
|
|
195
|
+
const col = Number.parseInt(match[2]);
|
|
196
|
+
log.error(path.basename(serverEntry) + ' ' + row + ':' + col);
|
|
197
|
+
log.error(textRows[row - 2]);
|
|
198
|
+
log.error(textRows[row - 1]);
|
|
199
|
+
log.error(Array(col).join(' ') + '^');
|
|
200
|
+
log.error(textRows[row]);
|
|
201
|
+
log.error(textRows[row + 1]);
|
|
202
|
+
log.error(textRows[row + 2]);
|
|
203
|
+
}
|
|
204
|
+
diskFs.writeFileSync(serverEntry, fileText);
|
|
205
|
+
});
|
|
197
206
|
throw e;
|
|
198
207
|
}
|
|
199
208
|
} else {
|
|
@@ -213,4 +222,4 @@ function startDevServer(entrypoint, env = {}) {
|
|
|
213
222
|
});
|
|
214
223
|
runServer();
|
|
215
224
|
}
|
|
216
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfaW50ZXJvcFJlcXVpcmVEZWZhdWx0IiwicmVxdWlyZSIsImRlZmF1bHQiLCJleHBvcnRzIiwiX19lc01vZHVsZSIsInN0YXJ0RGV2U2VydmVyIiwiX2ZzIiwiX2ZzUmVxdWlyZSIsIl9tZW1mcyIsIl9wYXRoIiwiX3NvdXJjZU1hcFN1cHBvcnQiLCJfdG1wIiwiX3VuaW9uZnMiLCJfdXRpbCIsIl93ZWJwYWNrIiwiX3J1bnRpbWUiLCJfd2VicGFja0RldlNlcnZlciIsIl9nZXRXZWJwYWNrQ29uZmlnIiwiT2JqZWN0IiwiaGFzT3duIiwiaXQiLCJrZXkiLCJwcm90b3R5cGUiLCJoYXNPd25Qcm9wZXJ0eSIsImNhbGwiLCJtYWluIiwibW9kdWxlIiwiZW50cnlwb2ludCIsInByb2Nlc3MiLCJhcmd2IiwiY29uc29sZSIsImxvZyIsImV4aXQiLCJlbnYiLCJfd2VicGFja0NvbmZpZ3MkIiwiX3dlYnBhY2tDb25maWdzJCRkZXZTIiwid2VicGFja0NvbmZpZyIsImdldFdlYnBhY2tDb25maWciLCJsb2dnaW5nIiwiZ2V0TG9nZ2VyIiwidm9sdW1lIiwiVm9sdW1lIiwiZnMiLCJjcmVhdGVGc0Zyb21Wb2x1bWUiLCJ1ZnMiLCJ1c2UiLCJkaXNrRnMiLCJmc1JlcXVpcmUiLCJjcmVhdGVGc1JlcXVpcmUiLCJyZWFkRmlsZSIsInByb21pc2lmeSIsInNlcnZlciIsImhvdEVudHJ5IiwiZW50cnlQYXRoIiwiZ2VuZXJhdGVkRW50cnlwb2ludCIsInRtcCIsImZpbGVTeW5jIiwicG9zdGZpeCIsIndyaXRlU3luYyIsImZkIiwicGF0aCIsInJlc29sdmUiLCJjd2QiLCJ3ZWJwYWNrQ29uZmlncyIsImVudHJ5cGF0aCIsIm5hbWUiLCJtb2RlIiwicmVwbGFjZSIsIkJST1dTRVJTTElTVF9FTlYiLCJ0YXJnZXQiLCJjb21waWxlciIsIndlYnBhY2siLCJzb3VyY2VNYXBTdXBwb3J0IiwiaW5zdGFsbCIsImhvb2tSZXF1aXJlIiwiZ2V0U2VydmVyQnVuZGxlIiwic2VydmVyU3RhdHMiLCJfc2VydmVySnNvbiRvdXRwdXRQYXQiLCJzZXJ2ZXJKc29uIiwidG9Kc29uIiwiYXNzZXRzIiwiam9pbiIsIm91dHB1dFBhdGgiLCJoYW5kbGVFcnJvcnMiLCJmbiIsInJlcSIsInJlcyIsIm5leHQiLCJ4IiwiaW5pdFJlbmRlciIsInJlbmRlciIsImFyZ3MiLCJQcm9taXNlIiwiX2luaXRSZW5kZXIiLCJwdXNoIiwiaW1wb3J0UmVuZGVyIiwic3RhdHMiLCJfY2xpZW50U3RhdHMkY29tcGlsYXQiLCJfY2xpZW50U3RhdHMkY29tcGlsYXQyIiwiX3NlcnZlclN0YXRzJGNvbXBpbGF0IiwiX3NlcnZlclN0YXRzJGNvbXBpbGF0MiIsImNsaWVudFN0YXRzIiwiY29tcGlsYXRpb24iLCJlcnJvcnMiLCJsZW5ndGgiLCJlcnJvciIsIkFycmF5IiwiaXNBcnJheSIsImluZm8iLCJjbGllbnRNYW5pZmVzdCIsInNlcnZlckVudHJ5Iiwia2V5cyIsImNhY2hlIiwiZm9yRWFjaCIsImJpbmQiLCJ1bmRlZmluZWQiLCJpbml0IiwiZSIsImRldlNlcnZlciIsIldlYnBhY2tEZXZTZXJ2ZXIiLCJkZXZNaWRkbGV3YXJlIiwib3V0cHV0RmlsZVN5c3RlbSIsInNldHVwTWlkZGxld2FyZXMiLCJtaWRkbGV3YXJlcyIsIl93ZWJwYWNrQ29uZmlncyQwJGRldiIsIl93ZWJwYWNrQ29uZmlncyQwJGRldjIiLCJfZGV2U2VydmVyJGFwcCIsIl93ZWJwYWNrQ29uZmlncyQwJGRldjMiLCJFcnJvciIsIm90aGVyUm91dGVzIiwiV0VCUEFDS19QVUJMSUNfUEFUSCIsInByb3h5IiwiYXBwIiwiZ2V0IiwiUmVnRXhwIiwidXJsIiwiZW5kc1dpdGgiLCJzdGF0dXNDb2RlIiwic2V0SGVhZGVyIiwic2VuZCIsInNvY2tldCIsIm9uIiwicnVuU2VydmVyIiwic3RhcnQiLCJob29rcyIsImRvbmUiLCJ0YXAiLCJtdWx0aVN0YXRzIiwic3RvcFNlcnZlciIsInN0b3AiLCJ3YXJuIl0sInNvdXJjZXMiOlsiLi4vLi4vc3JjL3NjcmlwdHMvc3RhcnREZXZzZXJ2ZXIudHMiXSwic291cmNlc0NvbnRlbnQiOlsiIyEvdXNyL2Jpbi9lbnYgbm9kZVxuT2JqZWN0Lmhhc093biA9XG4gIE9iamVjdC5oYXNPd24gfHxcbiAgLyogaXN0YW5idWwgaWdub3JlIG5leHQgKi8gZnVuY3Rpb24gaGFzT3duKGl0LCBrZXkpIHtcbiAgICByZXR1cm4gT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKGl0LCBrZXkpO1xuICB9O1xuaW1wb3J0IHR5cGUgeyBOZXh0RnVuY3Rpb24gfSBmcm9tICdleHByZXNzJztcbmltcG9ydCBkaXNrRnMgZnJvbSAnZnMnO1xuaW1wb3J0IHsgY3JlYXRlRnNSZXF1aXJlIH0gZnJvbSAnZnMtcmVxdWlyZSc7XG5pbXBvcnQgeyBTZXJ2ZXIsIEluY29taW5nTWVzc2FnZSwgU2VydmVyUmVzcG9uc2UgfSBmcm9tICdodHRwJztcbmltcG9ydCB7IGNyZWF0ZUZzRnJvbVZvbHVtZSwgVm9sdW1lIH0gZnJvbSAnbWVtZnMnO1xuaW1wb3J0IHBhdGggZnJvbSAncGF0aCc7XG5pbXBvcnQgc291cmNlTWFwU3VwcG9ydCBmcm9tICdzb3VyY2UtbWFwLXN1cHBvcnQnO1xuaW1wb3J0IHRtcCBmcm9tICd0bXAnO1xuaW1wb3J0IHsgdWZzIH0gZnJvbSAndW5pb25mcyc7XG5pbXBvcnQgeyBwcm9taXNpZnkgfSBmcm9tICd1dGlsJztcbmltcG9ydCB3ZWJwYWNrLCB7IE11bHRpQ29tcGlsZXIgfSBmcm9tICd3ZWJwYWNrJztcbmltcG9ydCBsb2dnaW5nIGZyb20gJ3dlYnBhY2svbGliL2xvZ2dpbmcvcnVudGltZSc7XG5pbXBvcnQgV2VicGFja0RldlNlcnZlciBmcm9tICd3ZWJwYWNrLWRldi1zZXJ2ZXInO1xuXG5pbXBvcnQgJ2Nyb3NzLWZldGNoL2Rpc3Qvbm9kZS1wb2x5ZmlsbCc7XG5pbXBvcnQgeyBnZXRXZWJwYWNrQ29uZmlnIH0gZnJvbSAnLi9nZXRXZWJwYWNrQ29uZmlnLmpzJztcbmltcG9ydCB7IEJvdW5kUmVuZGVyIH0gZnJvbSAnLi90eXBlcy5qcyc7XG5cbi8vIHJ1biBkaXJlY3RseSBmcm9tIG5vZGVcbmlmIChyZXF1aXJlLm1haW4gPT09IG1vZHVsZSkge1xuICBjb25zdCBlbnRyeXBvaW50ID0gcHJvY2Vzcy5hcmd2WzJdO1xuXG4gIGlmICghZW50cnlwb2ludCkge1xuICAgIGNvbnNvbGUubG9nKGBVc2FnZTogc3RhcnQtYW5hbnNpIDxlbnRyeXBvaW50LWZpbGU+YCk7XG4gICAgcHJvY2Vzcy5leGl0KC0xKTtcbiAgfVxuXG4gIHN0YXJ0RGV2U2VydmVyKGVudHJ5cG9pbnQpO1xufVxuXG5leHBvcnQgZGVmYXVsdCBmdW5jdGlvbiBzdGFydERldlNlcnZlcihcbiAgZW50cnlwb2ludDogc3RyaW5nLFxuICBlbnY6IFJlY29yZDxzdHJpbmcsIHVua25vd24+ID0ge30sXG4pIHtcbiAgY29uc3Qgd2VicGFja0NvbmZpZyA9IGdldFdlYnBhY2tDb25maWcoKTtcblxuICBjb25zdCBsb2cgPSBsb2dnaW5nLmdldExvZ2dlcignYW5hbnNpLWRldnNlcnZlcicpO1xuXG4gIC8vIFNldCB1cCBpbiBtZW1vcnkgZmlsZXN5c3RlbVxuICBjb25zdCB2b2x1bWUgPSBuZXcgVm9sdW1lKCk7XG4gIGNvbnN0IGZzID0gY3JlYXRlRnNGcm9tVm9sdW1lKHZvbHVtZSk7XG4gIHVmcy51c2UoZGlza0ZzKS51c2UoZnMgYXMgYW55KTtcblxuICBjb25zdCBmc1JlcXVpcmUgPSBjcmVhdGVGc1JlcXVpcmUodWZzKTtcbiAgY29uc3QgcmVhZEZpbGUgPSBwcm9taXNpZnkodWZzLnJlYWRGaWxlKTtcbiAgbGV0IHNlcnZlcjogU2VydmVyIHwgdW5kZWZpbmVkO1xuXG4gIC8vIEdlbmVyYXRlIGEgdGVtcG9yYXJ5IGZpbGUgc28gd2UgY2FuIGhvdCByZWxvYWQgZnJvbSB0aGUgcm9vdCBvZiB0aGUgYXBwbGljYXRpb25cbiAgZnVuY3Rpb24gaG90RW50cnkoZW50cnlQYXRoOiBzdHJpbmcpIHtcbiAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmVcbiAgICAvLyBAdHMtaWdub3JlIGZvciBzb21lIHJlYXNvbiBpdCdzIG5vdCBwaWNraW5nIHVwIHRoYXQgb3RoZXIgb3B0aW9ucyBhcmUgb3B0aW9uYWxcbiAgICBjb25zdCBnZW5lcmF0ZWRFbnRyeXBvaW50ID0gdG1wLmZpbGVTeW5jKHsgcG9zdGZpeDogJy5qcycgfSk7XG4gICAgZGlza0ZzLndyaXRlU3luYyhcbiAgICAgIGdlbmVyYXRlZEVudHJ5cG9pbnQuZmQsXG4gICAgICBgXG4gIGltcG9ydCBlbnRyeSBmcm9tIFwiJHtwYXRoLnJlc29sdmUocHJvY2Vzcy5jd2QoKSwgZW50cnlQYXRoKX1cIjtcblxuICBpZiAobW9kdWxlLmhvdCkge1xuICAgIG1vZHVsZS5ob3QuYWNjZXB0KCk7XG4gIH1cblxuICBleHBvcnQgZGVmYXVsdCBlbnRyeTtcbiAgICBgLFxuICAgICk7XG4gICAgcmV0dXJuIGdlbmVyYXRlZEVudHJ5cG9pbnQ7XG4gIH1cblxuICBjb25zdCB3ZWJwYWNrQ29uZmlncyA9IFtcbiAgICB3ZWJwYWNrQ29uZmlnKFxuICAgICAge1xuICAgICAgICAuLi5lbnYsXG4gICAgICAgIGVudHJ5cGF0aDogaG90RW50cnkoZW50cnlwb2ludCkubmFtZSxcbiAgICAgICAgbmFtZTogJ2NsaWVudCcsXG4gICAgICB9LFxuICAgICAgeyBtb2RlOiAnZGV2ZWxvcG1lbnQnIH0sXG4gICAgKSxcbiAgICB3ZWJwYWNrQ29uZmlnKFxuICAgICAge1xuICAgICAgICAuLi5lbnYsXG4gICAgICAgIGVudHJ5cGF0aDogZW50cnlwb2ludC5yZXBsYWNlKCcudHN4JywgJy5zZXJ2ZXIudHN4JyksXG4gICAgICAgIG5hbWU6ICdzZXJ2ZXInLFxuICAgICAgICBCUk9XU0VSU0xJU1RfRU5WOiAnY3VycmVudCBub2RlJyxcbiAgICAgIH0sXG4gICAgICB7IG1vZGU6ICdkZXZlbG9wbWVudCcsIHRhcmdldDogJ25vZGUnIH0sXG4gICAgKSxcbiAgXSBhcyBjb25zdDtcblxuICAvLyBpbml0aWFsaXplIHRoZSB3ZWJwYWNrIGNvbXBpbGVyXG4gIGNvbnN0IGNvbXBpbGVyOiBNdWx0aUNvbXBpbGVyID0gd2VicGFjayh3ZWJwYWNrQ29uZmlncyk7XG5cbiAgc291cmNlTWFwU3VwcG9ydC5pbnN0YWxsKHsgaG9va1JlcXVpcmU6IHRydWUgfSk7XG5cbiAgZnVuY3Rpb24gZ2V0U2VydmVyQnVuZGxlKHNlcnZlclN0YXRzOiB3ZWJwYWNrLlN0YXRzKSB7XG4gICAgY29uc3Qgc2VydmVySnNvbiA9IHNlcnZlclN0YXRzLnRvSnNvbih7IGFzc2V0czogdHJ1ZSB9KTtcbiAgICByZXR1cm4gcGF0aC5qb2luKHNlcnZlckpzb24ub3V0cHV0UGF0aCA/PyAnJywgJ3NlcnZlci5qcycpO1xuICB9XG4gIGZ1bmN0aW9uIGhhbmRsZUVycm9yczxcbiAgICBGIGV4dGVuZHMgKFxuICAgICAgcmVxOiBSZXF1ZXN0IHwgSW5jb21pbmdNZXNzYWdlLFxuICAgICAgcmVzOiBSZXNwb25zZSB8IFNlcnZlclJlc3BvbnNlLFxuICAgICkgPT4gUHJvbWlzZTx2b2lkPixcbiAgPihmbjogRikge1xuICAgIHJldHVybiBhc3luYyBmdW5jdGlvbiAoXG4gICAgICByZXE6IFJlcXVlc3QgfCBJbmNvbWluZ01lc3NhZ2UsXG4gICAgICByZXM6IFJlc3BvbnNlIHwgU2VydmVyUmVzcG9uc2UsXG4gICAgICBuZXh0OiBOZXh0RnVuY3Rpb24sXG4gICAgKSB7XG4gICAgICB0cnkge1xuICAgICAgICByZXR1cm4gYXdhaXQgZm4ocmVxLCByZXMpO1xuICAgICAgfSBjYXRjaCAoeCkge1xuICAgICAgICBuZXh0KHgpO1xuICAgICAgfVxuICAgIH07XG4gIH1cblxuICBsZXQgaW5pdFJlbmRlcjpcbiAgICB8IHsgYXJnczogUGFyYW1ldGVyczxCb3VuZFJlbmRlcj47IHJlc29sdmU6ICgpID0+IHZvaWQgfVtdXG4gICAgfCB1bmRlZmluZWQgPSBbXTtcbiAgbGV0IHJlbmRlcjogQm91bmRSZW5kZXIgPSAoLi4uYXJncykgPT5cbiAgICBuZXcgUHJvbWlzZShyZXNvbHZlID0+IHtcbiAgICAgIGluaXRSZW5kZXI/LnB1c2goeyBhcmdzLCByZXNvbHZlIH0pO1xuICAgIH0pO1xuXG4gIGZ1bmN0aW9uIGltcG9ydFJlbmRlcihzdGF0czogd2VicGFjay5TdGF0c1tdKSB7XG4gICAgY29uc3QgW2NsaWVudFN0YXRzLCBzZXJ2ZXJTdGF0c10gPSBzdGF0cztcbiAgICBpZiAoXG4gICAgICBjbGllbnRTdGF0cz8uY29tcGlsYXRpb24/LmVycm9ycz8ubGVuZ3RoIHx8XG4gICAgICBzZXJ2ZXJTdGF0cz8uY29tcGlsYXRpb24/LmVycm9ycz8ubGVuZ3RoXG4gICAgKSB7XG4gICAgICBsb2cuZXJyb3IoJ0Vycm9ycyBmb3IgY2xpZW50IGJ1aWxkOiAnICsgY2xpZW50U3RhdHMuY29tcGlsYXRpb24uZXJyb3JzKTtcbiAgICAgIGxvZy5lcnJvcignRXJyb3JzIGZvciBzZXJ2ZXIgYnVpbGQ6ICcgKyBzZXJ2ZXJTdGF0cy5jb21waWxhdGlvbi5lcnJvcnMpO1xuICAgICAgLy8gZmlyc3QgdGltZSwgcmF0aGVyIHRoYW4gcmUtcmVuZGVyXG4gICAgICBpZiAoQXJyYXkuaXNBcnJheShpbml0UmVuZGVyKSkge1xuICAgICAgICBwcm9jZXNzLmV4aXQoLTEpO1xuICAgICAgfVxuICAgICAgbG9nLmVycm9yKCdBYm92ZSBjb21waWxlciBlcnJvcnMgYmxvY2tpbmcgcmVsb2FkJyk7XG4gICAgICByZXR1cm47XG4gICAgfSBlbHNlIHtcbiAgICAgIGxvZy5pbmZvKCdMYXVuY2hpbmcgU1NSJyk7XG4gICAgfVxuXG4gICAgLy8gQVNTRVRTXG4gICAgY29uc3QgY2xpZW50TWFuaWZlc3QgPSBjbGllbnRTdGF0cy50b0pzb24oKTtcblxuICAgIGNvbnN0IHNlcnZlckVudHJ5ID0gZ2V0U2VydmVyQnVuZGxlKHNlcnZlclN0YXRzKTtcbiAgICAvLyByZWxvYWQgbW9kdWxlc1xuICAgIE9iamVjdC5rZXlzKGZzUmVxdWlyZS5jYWNoZSkuZm9yRWFjaChrZXkgPT4ge1xuICAgICAgZGVsZXRlIGZzUmVxdWlyZS5jYWNoZVtrZXldO1xuICAgIH0pO1xuICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tdmFyLXJlcXVpcmVzXG4gICAgcmVuZGVyID0gKGZzUmVxdWlyZShzZXJ2ZXJFbnRyeSkgYXMgYW55KS5kZWZhdWx0LmJpbmQoXG4gICAgICB1bmRlZmluZWQsXG4gICAgICBjbGllbnRNYW5pZmVzdCxcbiAgICApO1xuICAgIC8vIFNFUlZFUiBTSURFIEVOVFJZUE9JTlRcbiAgICBpZiAoQXJyYXkuaXNBcnJheShpbml0UmVuZGVyKSkge1xuICAgICAgaW5pdFJlbmRlci5mb3JFYWNoKGFzeW5jIGluaXQgPT4ge1xuICAgICAgICB0cnkge1xuICAgICAgICAgIGxvZy5pbmZvKCdSZXNvbHZpbmcgcXVldWVkIHJlcXVlc3RzJyk7XG4gICAgICAgICAgYXdhaXQgcmVuZGVyKC4uLmluaXQuYXJncyk7XG4gICAgICAgICAgaW5pdC5yZXNvbHZlKCk7XG4gICAgICAgIH0gY2F0Y2ggKGUpIHtcbiAgICAgICAgICBsb2cuZXJyb3IoJ0Vycm9yIHdoZW4gYXR0ZW1wdGluZyB0byByZW5kZXIgcXVldWVkIHJlcXVlc3RzJyk7XG4gICAgICAgICAgbG9nLmVycm9yKGUpO1xuICAgICAgICB9XG4gICAgICB9KTtcbiAgICAgIGluaXRSZW5kZXIgPSB1bmRlZmluZWQ7XG4gICAgfVxuICB9XG5cbiAgY29uc3QgZGV2U2VydmVyID0gbmV3IFdlYnBhY2tEZXZTZXJ2ZXIoXG4gICAgLy8gd3JpdGUgdG8gbWVtb3J5IGZpbGVzeXN0ZW0gc28gd2UgY2FuIGltcG9ydFxuICAgIHtcbiAgICAgIC4uLndlYnBhY2tDb25maWdzWzBdLmRldlNlcnZlcixcbiAgICAgIGRldk1pZGRsZXdhcmU6IHtcbiAgICAgICAgLi4ud2VicGFja0NvbmZpZ3NbMF0/LmRldlNlcnZlcj8uZGV2TWlkZGxld2FyZSxcbiAgICAgICAgb3V0cHV0RmlsZVN5c3RlbToge1xuICAgICAgICAgIC4uLmZzLFxuICAgICAgICAgIGpvaW46IHBhdGguam9pbiBhcyBhbnksXG4gICAgICAgIH0gYXMgYW55LFxuICAgICAgfSxcbiAgICAgIHNldHVwTWlkZGxld2FyZXM6IChtaWRkbGV3YXJlcywgZGV2U2VydmVyKSA9PiB7XG4gICAgICAgIGlmICghZGV2U2VydmVyKSB7XG4gICAgICAgICAgdGhyb3cgbmV3IEVycm9yKCd3ZWJwYWNrLWRldi1zZXJ2ZXIgaXMgbm90IGRlZmluZWQnKTtcbiAgICAgICAgfVxuXG4gICAgICAgIGNvbnN0IG90aGVyUm91dGVzID0gW1xuICAgICAgICAgIHByb2Nlc3MuZW52LldFQlBBQ0tfUFVCTElDX1BBVEgsXG4gICAgICAgICAgLi4uT2JqZWN0LmtleXMod2VicGFja0NvbmZpZ3NbMF0uZGV2U2VydmVyPy5wcm94eSA/PyB7fSksXG4gICAgICAgIF07XG4gICAgICAgIC8vIHNlcnZlIFNTUiBmb3Igbm9uLVdFQlBBQ0tfUFVCTElDX1BBVEhcbiAgICAgICAgZGV2U2VydmVyLmFwcD8uZ2V0KFxuICAgICAgICAgIG5ldyBSZWdFeHAoYF4oPyEke290aGVyUm91dGVzLmpvaW4oJ3wnKX0pYCksXG4gICAgICAgICAgaGFuZGxlRXJyb3JzKGFzeW5jIGZ1bmN0aW9uIChyZXE6IGFueSwgcmVzOiBhbnkpIHtcbiAgICAgICAgICAgIGlmIChyZXEudXJsLmVuZHNXaXRoKCdmYXZpY29uLmljbycpKSB7XG4gICAgICAgICAgICAgIHJlcy5zdGF0dXNDb2RlID0gNDA0O1xuICAgICAgICAgICAgICByZXMuc2V0SGVhZGVyKCdDb250ZW50LXR5cGUnLCAndGV4dC9odG1sJyk7XG4gICAgICAgICAgICAgIHJlcy5zZW5kKCdub3QgZm91bmQnKTtcbiAgICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgcmVzLnNvY2tldC5vbignZXJyb3InLCAoZXJyb3I6IHVua25vd24pID0+IHtcbiAgICAgICAgICAgICAgY29uc29sZS5lcnJvcignRmF0YWwnLCBlcnJvcik7XG4gICAgICAgICAgICB9KTtcblxuICAgICAgICAgICAgYXdhaXQgcmVuZGVyKHJlcSwgcmVzKTtcbiAgICAgICAgICB9KSxcbiAgICAgICAgKTtcblxuICAgICAgICBpZiAod2VicGFja0NvbmZpZ3NbMF0uZGV2U2VydmVyPy5zZXR1cE1pZGRsZXdhcmVzKSB7XG4gICAgICAgICAgcmV0dXJuIHdlYnBhY2tDb25maWdzWzBdLmRldlNlcnZlci5zZXR1cE1pZGRsZXdhcmVzKFxuICAgICAgICAgICAgbWlkZGxld2FyZXMsXG4gICAgICAgICAgICBkZXZTZXJ2ZXIsXG4gICAgICAgICAgKTtcbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiBtaWRkbGV3YXJlcztcbiAgICAgIH0sXG4gICAgfSxcbiAgICBjb21waWxlcixcbiAgKTtcbiAgY29uc3QgcnVuU2VydmVyID0gYXN5bmMgKCkgPT4ge1xuICAgIGF3YWl0IGRldlNlcnZlci5zdGFydCgpO1xuICAgIGRldlNlcnZlci5jb21waWxlci5ob29rcy5kb25lLnRhcChcbiAgICAgICdBbmFuc2kgU2VydmVyJyxcbiAgICAgIChtdWx0aVN0YXRzOiB3ZWJwYWNrLk11bHRpU3RhdHMgfCB3ZWJwYWNrLlN0YXRzKSA9PiB7XG4gICAgICAgIGlmICghbXVsdGlTdGF0cykge1xuICAgICAgICAgIGxvZy5lcnJvcignc3RhdHMgbm90IHNlbmQnKTtcbiAgICAgICAgICBwcm9jZXNzLmV4aXQoLTEpO1xuICAgICAgICB9XG5cbiAgICAgICAgaWYgKCFPYmplY3QuaGFzT3duKG11bHRpU3RhdHMsICdzdGF0cycpKSByZXR1cm47XG4gICAgICAgIGlmICgobXVsdGlTdGF0cyBhcyB3ZWJwYWNrLk11bHRpU3RhdHMpLnN0YXRzLmxlbmd0aCA+IDEpIHtcbiAgICAgICAgICB0cnkge1xuICAgICAgICAgICAgaW1wb3J0UmVuZGVyKChtdWx0aVN0YXRzIGFzIHdlYnBhY2suTXVsdGlTdGF0cykuc3RhdHMpO1xuICAgICAgICAgIH0gY2F0Y2ggKGU6IGFueSkge1xuICAgICAgICAgICAgbG9nLmVycm9yKCdGYWlsZWQgdG8gbG9hZCBzZXJ2ZSBlbnRyeXBvaW50Jyk7XG4gICAgICAgICAgICB0aHJvdyBlO1xuICAgICAgICAgIH1cbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICBsb2cuZXJyb3IoJ09ubHkgY29tcGlsZXIgb25lIHN0YXQnKTtcbiAgICAgICAgfVxuICAgICAgfSxcbiAgICApO1xuICB9O1xuICBjb25zdCBzdG9wU2VydmVyID0gYXN5bmMgKCkgPT4ge1xuICAgIGxvZy5pbmZvKCdTdG9wcGluZyBzZXJ2ZXIuLi4nKTtcbiAgICBhd2FpdCBkZXZTZXJ2ZXIuc3RvcCgpO1xuICAgIGxvZy5pbmZvKCdTZXJ2ZXIgY2xvc2VkJyk7XG4gIH07XG5cbiAgcHJvY2Vzcy5vbignU0lHSU5UJywgKCkgPT4ge1xuICAgIGxvZy53YXJuKCdSZWNlaXZlZCBTSUdJTlQsIGRldnNlcnZlciBzaHV0dGluZyBkb3duJyk7XG4gICAgc3RvcFNlcnZlcigpO1xuICAgIHByb2Nlc3MuZXhpdCgtMSk7XG4gIH0pO1xuXG4gIHJ1blNlcnZlcigpO1xufVxuIl0sIm1hcHBpbmdzIjoiQUFBQTtBQUFtQjs7QUFBQSxJQUFBQSxzQkFBQSxHQUFBQyxPQUFBLGlEQUFBQyxPQUFBO0FBQUFDLE9BQUEsQ0FBQUMsVUFBQTtBQUFBRCxPQUFBLENBQUFELE9BQUEsR0FBQUcsY0FBQTtBQU9uQixJQUFBQyxHQUFBLEdBQUFOLHNCQUFBLENBQUFDLE9BQUE7QUFDQSxJQUFBTSxVQUFBLEdBQUFOLE9BQUE7QUFFQSxJQUFBTyxNQUFBLEdBQUFQLE9BQUE7QUFDQSxJQUFBUSxLQUFBLEdBQUFULHNCQUFBLENBQUFDLE9BQUE7QUFDQSxJQUFBUyxpQkFBQSxHQUFBVixzQkFBQSxDQUFBQyxPQUFBO0FBQ0EsSUFBQVUsSUFBQSxHQUFBWCxzQkFBQSxDQUFBQyxPQUFBO0FBQ0EsSUFBQVcsUUFBQSxHQUFBWCxPQUFB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
|
|
225
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJPYmplY3QiLCJoYXNPd24iLCJpdCIsImtleSIsInByb3RvdHlwZSIsImhhc093blByb3BlcnR5IiwiY2FsbCIsImRpc2tGcyIsImNyZWF0ZUZzUmVxdWlyZSIsImNyZWF0ZUZzRnJvbVZvbHVtZSIsIlZvbHVtZSIsInBhdGgiLCJzb3VyY2VNYXBTdXBwb3J0IiwidG1wIiwidWZzIiwicHJvbWlzaWZ5Iiwid2VicGFjayIsImxvZ2dpbmciLCJXZWJwYWNrRGV2U2VydmVyIiwiZ2V0V2VicGFja0NvbmZpZyIsImltcG9ydCIsIm1ldGEiLCJlbnRyeXBvaW50IiwicHJvY2VzcyIsImFyZ3YiLCJjb25zb2xlIiwibG9nIiwiZXhpdCIsInN0YXJ0RGV2U2VydmVyIiwic2VydmVyRmlsZUNvbnRlbnRzIiwiUHJvbWlzZSIsInJlc29sdmUiLCJzZXJ2ZXJFbnRyeSIsImVudiIsIl93ZWJwYWNrQ29uZmlncyQiLCJfd2VicGFja0NvbmZpZ3MkJGRldlMiLCJ3ZWJwYWNrQ29uZmlnIiwiZ2V0TG9nZ2VyIiwidm9sdW1lIiwiZnMiLCJ1c2UiLCJmc1JlcXVpcmUiLCJyZWFkRmlsZSIsInNlcnZlciIsImhvdEVudHJ5IiwiZW50cnlQYXRoIiwiZ2VuZXJhdGVkRW50cnlwb2ludCIsImZpbGVTeW5jIiwicG9zdGZpeCIsIndyaXRlU3luYyIsImZkIiwiY3dkIiwid2VicGFja0NvbmZpZ3MiLCJhc3NpZ24iLCJlbnRyeXBhdGgiLCJuYW1lIiwibW9kZSIsInJlcGxhY2UiLCJCUk9XU0VSU0xJU1RfRU5WIiwidGFyZ2V0IiwiY29tcGlsZXIiLCJpbnN0YWxsIiwiaG9va1JlcXVpcmUiLCJnZXRTZXJ2ZXJCdW5kbGUiLCJzZXJ2ZXJTdGF0cyIsIl9zZXJ2ZXJKc29uJG91dHB1dFBhdCIsInNlcnZlckpzb24iLCJ0b0pzb24iLCJhc3NldHMiLCJqb2luIiwib3V0cHV0UGF0aCIsImhhbmRsZUVycm9ycyIsImZuIiwicmVxIiwicmVzIiwibmV4dCIsIngiLCJpbml0UmVuZGVyIiwicmVuZGVyIiwiYXJncyIsIl9pbml0UmVuZGVyIiwicHVzaCIsImltcG9ydFJlbmRlciIsInN0YXRzIiwiX2NsaWVudFN0YXRzJGNvbXBpbGF0IiwiX2NsaWVudFN0YXRzJGNvbXBpbGF0MiIsIl9zZXJ2ZXJTdGF0cyRjb21waWxhdCIsIl9zZXJ2ZXJTdGF0cyRjb21waWxhdDIiLCJjbGllbnRTdGF0cyIsImNvbXBpbGF0aW9uIiwiZXJyb3JzIiwibGVuZ3RoIiwiZXJyb3IiLCJBcnJheSIsImlzQXJyYXkiLCJpbmZvIiwiY2xpZW50TWFuaWZlc3QiLCJ0aGVuIiwiYnVmIiwidG9TdHJpbmciLCJrZXlzIiwiY2FjaGUiLCJmb3JFYWNoIiwiZGVmYXVsdCIsImJpbmQiLCJ1bmRlZmluZWQiLCJpbml0IiwiZSIsImRldlNlcnZlciIsImRldk1pZGRsZXdhcmUiLCJvdXRwdXRGaWxlU3lzdGVtIiwic2V0dXBNaWRkbGV3YXJlcyIsIm1pZGRsZXdhcmVzIiwiX3dlYnBhY2tDb25maWdzJDAkZGV2IiwiX3dlYnBhY2tDb25maWdzJDAkZGV2MiIsIl9kZXZTZXJ2ZXIkYXBwIiwiX3dlYnBhY2tDb25maWdzJDAkZGV2MyIsIkVycm9yIiwib3RoZXJSb3V0ZXMiLCJXRUJQQUNLX1BVQkxJQ19QQVRIIiwicHJveHkiLCJhcHAiLCJnZXQiLCJSZWdFeHAiLCJ1cmwiLCJlbmRzV2l0aCIsInN0YXR1c0NvZGUiLCJzZXRIZWFkZXIiLCJzZW5kIiwic29ja2V0Iiwib24iLCJydW5TZXJ2ZXIiLCJzdGFydCIsImhvb2tzIiwiZG9uZSIsInRhcCIsIm11bHRpU3RhdHMiLCJmaW5kZXIiLCJmaWxlVGV4dCIsInRleHRSb3dzIiwic3BsaXQiLCJtYXRjaCIsIl9lJHN0YWNrJG1hdGNoQWxsIiwic3RhY2siLCJtYXRjaEFsbCIsInJvdyIsIk51bWJlciIsInBhcnNlSW50IiwiY29sIiwiYmFzZW5hbWUiLCJ3cml0ZUZpbGVTeW5jIiwic3RvcFNlcnZlciIsInN0b3AiLCJ3YXJuIl0sInNvdXJjZXMiOlsiLi4vLi4vc3JjL3NjcmlwdHMvc3RhcnREZXZzZXJ2ZXIudHMiXSwic291cmNlc0NvbnRlbnQiOlsiIyEvdXNyL2Jpbi9lbnYgbm9kZVxuT2JqZWN0Lmhhc093biA9XG4gIE9iamVjdC5oYXNPd24gfHxcbiAgLyogaXN0YW5idWwgaWdub3JlIG5leHQgKi8gZnVuY3Rpb24gaGFzT3duKGl0LCBrZXkpIHtcbiAgICByZXR1cm4gT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKGl0LCBrZXkpO1xuICB9O1xuaW1wb3J0IHR5cGUgeyBOZXh0RnVuY3Rpb24gfSBmcm9tICdleHByZXNzJztcbmltcG9ydCBkaXNrRnMgZnJvbSAnZnMnO1xuaW1wb3J0IHsgY3JlYXRlRnNSZXF1aXJlIH0gZnJvbSAnZnMtcmVxdWlyZSc7XG5pbXBvcnQgeyBTZXJ2ZXIsIEluY29taW5nTWVzc2FnZSwgU2VydmVyUmVzcG9uc2UgfSBmcm9tICdodHRwJztcbmltcG9ydCB7IGNyZWF0ZUZzRnJvbVZvbHVtZSwgVm9sdW1lIH0gZnJvbSAnbWVtZnMnO1xuaW1wb3J0IHBhdGggZnJvbSAncGF0aCc7XG5pbXBvcnQgc291cmNlTWFwU3VwcG9ydCBmcm9tICdzb3VyY2UtbWFwLXN1cHBvcnQnO1xuaW1wb3J0IHRtcCBmcm9tICd0bXAnO1xuaW1wb3J0IHsgdWZzIH0gZnJvbSAndW5pb25mcyc7XG5pbXBvcnQgeyBwcm9taXNpZnkgfSBmcm9tICd1dGlsJztcbmltcG9ydCB3ZWJwYWNrLCB7IE11bHRpQ29tcGlsZXIgfSBmcm9tICd3ZWJwYWNrJztcbmltcG9ydCBsb2dnaW5nIGZyb20gJ3dlYnBhY2svbGliL2xvZ2dpbmcvcnVudGltZS5qcyc7XG5pbXBvcnQgV2VicGFja0RldlNlcnZlciBmcm9tICd3ZWJwYWNrLWRldi1zZXJ2ZXInO1xuXG5pbXBvcnQgJ2Nyb3NzLWZldGNoL2Rpc3Qvbm9kZS1wb2x5ZmlsbC5qcyc7XG5pbXBvcnQgeyBnZXRXZWJwYWNrQ29uZmlnIH0gZnJvbSAnLi9nZXRXZWJwYWNrQ29uZmlnLmpzJztcbmltcG9ydCB7IEJvdW5kUmVuZGVyIH0gZnJvbSAnLi90eXBlcy5qcyc7XG5cbi8vIHJ1biBkaXJlY3RseSBmcm9tIG5vZGVcbmlmICgnbWFpbicgaW4gaW1wb3J0Lm1ldGEpIHtcbiAgY29uc3QgZW50cnlwb2ludCA9IHByb2Nlc3MuYXJndlsyXTtcblxuICBpZiAoIWVudHJ5cG9pbnQpIHtcbiAgICBjb25zb2xlLmxvZyhgVXNhZ2U6IHN0YXJ0LWFuYW5zaSA8ZW50cnlwb2ludC1maWxlPmApO1xuICAgIHByb2Nlc3MuZXhpdCgtMSk7XG4gIH1cblxuICBzdGFydERldlNlcnZlcihlbnRyeXBvaW50KTtcbn1cblxubGV0IHNlcnZlckZpbGVDb250ZW50czogUHJvbWlzZTxzdHJpbmc+ID0gUHJvbWlzZS5yZXNvbHZlKCcnKTtcbmxldCBzZXJ2ZXJFbnRyeSA9ICcnO1xuXG5leHBvcnQgZGVmYXVsdCBhc3luYyBmdW5jdGlvbiBzdGFydERldlNlcnZlcihcbiAgZW50cnlwb2ludDogc3RyaW5nLFxuICBlbnY6IFJlY29yZDxzdHJpbmcsIHVua25vd24+ID0ge30sXG4pIHtcbiAgY29uc3Qgd2VicGFja0NvbmZpZyA9IGF3YWl0IGdldFdlYnBhY2tDb25maWcoKTtcblxuICBjb25zdCBsb2cgPSBsb2dnaW5nLmdldExvZ2dlcignYW5hbnNpLWRldnNlcnZlcicpO1xuXG4gIC8vIFNldCB1cCBpbiBtZW1vcnkgZmlsZXN5c3RlbVxuICBjb25zdCB2b2x1bWUgPSBuZXcgVm9sdW1lKCk7XG4gIGNvbnN0IGZzID0gY3JlYXRlRnNGcm9tVm9sdW1lKHZvbHVtZSk7XG4gIHVmcy51c2UoZGlza0ZzKS51c2UoZnMgYXMgYW55KTtcblxuICBjb25zdCBmc1JlcXVpcmUgPSBjcmVhdGVGc1JlcXVpcmUodWZzKTtcbiAgY29uc3QgcmVhZEZpbGUgPSBwcm9taXNpZnkodWZzLnJlYWRGaWxlKTtcbiAgbGV0IHNlcnZlcjogU2VydmVyIHwgdW5kZWZpbmVkO1xuXG4gIC8vIEdlbmVyYXRlIGEgdGVtcG9yYXJ5IGZpbGUgc28gd2UgY2FuIGhvdCByZWxvYWQgZnJvbSB0aGUgcm9vdCBvZiB0aGUgYXBwbGljYXRpb25cbiAgZnVuY3Rpb24gaG90RW50cnkoZW50cnlQYXRoOiBzdHJpbmcpIHtcbiAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmVcbiAgICAvLyBAdHMtaWdub3JlIGZvciBzb21lIHJlYXNvbiBpdCdzIG5vdCBwaWNraW5nIHVwIHRoYXQgb3RoZXIgb3B0aW9ucyBhcmUgb3B0aW9uYWxcbiAgICBjb25zdCBnZW5lcmF0ZWRFbnRyeXBvaW50ID0gdG1wLmZpbGVTeW5jKHsgcG9zdGZpeDogJy5qcycgfSk7XG4gICAgZGlza0ZzLndyaXRlU3luYyhcbiAgICAgIGdlbmVyYXRlZEVudHJ5cG9pbnQuZmQsXG4gICAgICBgXG4gIGltcG9ydCBlbnRyeSBmcm9tIFwiJHtwYXRoLnJlc29sdmUocHJvY2Vzcy5jd2QoKSwgZW50cnlQYXRoKX1cIjtcblxuICBpZiAobW9kdWxlLmhvdCkge1xuICAgIG1vZHVsZS5ob3QuYWNjZXB0KCk7XG4gIH1cblxuICBleHBvcnQgZGVmYXVsdCBlbnRyeTtcbiAgICBgLFxuICAgICk7XG4gICAgcmV0dXJuIGdlbmVyYXRlZEVudHJ5cG9pbnQ7XG4gIH1cblxuICBjb25zdCB3ZWJwYWNrQ29uZmlncyA9IFtcbiAgICB3ZWJwYWNrQ29uZmlnKFxuICAgICAge1xuICAgICAgICAuLi5lbnYsXG4gICAgICAgIGVudHJ5cGF0aDogaG90RW50cnkoZW50cnlwb2ludCkubmFtZSxcbiAgICAgICAgbmFtZTogJ2NsaWVudCcsXG4gICAgICB9LFxuICAgICAgeyBtb2RlOiAnZGV2ZWxvcG1lbnQnIH0sXG4gICAgKSxcbiAgICB3ZWJwYWNrQ29uZmlnKFxuICAgICAge1xuICAgICAgICAuLi5lbnYsXG4gICAgICAgIGVudHJ5cGF0aDogZW50cnlwb2ludC5yZXBsYWNlKCcudHN4JywgJy5zZXJ2ZXIudHN4JyksXG4gICAgICAgIG5hbWU6ICdzZXJ2ZXInLFxuICAgICAgICBCUk9XU0VSU0xJU1RfRU5WOiAnY3VycmVudCBub2RlJyxcbiAgICAgIH0sXG4gICAgICB7IG1vZGU6ICdkZXZlbG9wbWVudCcsIHRhcmdldDogJ25vZGUnIH0sXG4gICAgKSxcbiAgXSBhcyBjb25zdDtcblxuICAvLyBpbml0aWFsaXplIHRoZSB3ZWJwYWNrIGNvbXBpbGVyXG4gIGNvbnN0IGNvbXBpbGVyOiBNdWx0aUNvbXBpbGVyID0gd2VicGFjayh3ZWJwYWNrQ29uZmlncyk7XG5cbiAgc291cmNlTWFwU3VwcG9ydC5pbnN0YWxsKHsgaG9va1JlcXVpcmU6IHRydWUgfSk7XG5cbiAgZnVuY3Rpb24gZ2V0U2VydmVyQnVuZGxlKHNlcnZlclN0YXRzOiB3ZWJwYWNrLlN0YXRzKSB7XG4gICAgY29uc3Qgc2VydmVySnNvbiA9IHNlcnZlclN0YXRzLnRvSnNvbih7IGFzc2V0czogdHJ1ZSB9KTtcbiAgICByZXR1cm4gcGF0aC5qb2luKHNlcnZlckpzb24ub3V0cHV0UGF0aCA/PyAnJywgJ3NlcnZlci5qcycpO1xuICB9XG4gIGZ1bmN0aW9uIGhhbmRsZUVycm9yczxcbiAgICBGIGV4dGVuZHMgKFxuICAgICAgcmVxOiBSZXF1ZXN0IHwgSW5jb21pbmdNZXNzYWdlLFxuICAgICAgcmVzOiBSZXNwb25zZSB8IFNlcnZlclJlc3BvbnNlLFxuICAgICkgPT4gUHJvbWlzZTx2b2lkPixcbiAgPihmbjogRikge1xuICAgIHJldHVybiBhc3luYyBmdW5jdGlvbiAoXG4gICAgICByZXE6IFJlcXVlc3QgfCBJbmNvbWluZ01lc3NhZ2UsXG4gICAgICByZXM6IFJlc3BvbnNlIHwgU2VydmVyUmVzcG9uc2UsXG4gICAgICBuZXh0OiBOZXh0RnVuY3Rpb24sXG4gICAgKSB7XG4gICAgICB0cnkge1xuICAgICAgICByZXR1cm4gYXdhaXQgZm4ocmVxLCByZXMpO1xuICAgICAgfSBjYXRjaCAoeCkge1xuICAgICAgICBuZXh0KHgpO1xuICAgICAgfVxuICAgIH07XG4gIH1cblxuICBsZXQgaW5pdFJlbmRlcjpcbiAgICB8IHsgYXJnczogUGFyYW1ldGVyczxCb3VuZFJlbmRlcj47IHJlc29sdmU6ICgpID0+IHZvaWQgfVtdXG4gICAgfCB1bmRlZmluZWQgPSBbXTtcbiAgbGV0IHJlbmRlcjogQm91bmRSZW5kZXIgPSAoLi4uYXJncykgPT5cbiAgICBuZXcgUHJvbWlzZShyZXNvbHZlID0+IHtcbiAgICAgIGluaXRSZW5kZXI/LnB1c2goeyBhcmdzLCByZXNvbHZlIH0pO1xuICAgIH0pO1xuXG4gIGZ1bmN0aW9uIGltcG9ydFJlbmRlcihzdGF0czogd2VicGFjay5TdGF0c1tdKSB7XG4gICAgY29uc3QgW2NsaWVudFN0YXRzLCBzZXJ2ZXJTdGF0c10gPSBzdGF0cztcbiAgICBpZiAoXG4gICAgICBjbGllbnRTdGF0cz8uY29tcGlsYXRpb24/LmVycm9ycz8ubGVuZ3RoIHx8XG4gICAgICBzZXJ2ZXJTdGF0cz8uY29tcGlsYXRpb24/LmVycm9ycz8ubGVuZ3RoXG4gICAgKSB7XG4gICAgICBsb2cuZXJyb3IoJ0Vycm9ycyBmb3IgY2xpZW50IGJ1aWxkOiAnICsgY2xpZW50U3RhdHMuY29tcGlsYXRpb24uZXJyb3JzKTtcbiAgICAgIGxvZy5lcnJvcignRXJyb3JzIGZvciBzZXJ2ZXIgYnVpbGQ6ICcgKyBzZXJ2ZXJTdGF0cy5jb21waWxhdGlvbi5lcnJvcnMpO1xuICAgICAgLy8gZmlyc3QgdGltZSwgcmF0aGVyIHRoYW4gcmUtcmVuZGVyXG4gICAgICBpZiAoQXJyYXkuaXNBcnJheShpbml0UmVuZGVyKSkge1xuICAgICAgICBwcm9jZXNzLmV4aXQoLTEpO1xuICAgICAgfVxuICAgICAgbG9nLmVycm9yKCdBYm92ZSBjb21waWxlciBlcnJvcnMgYmxvY2tpbmcgcmVsb2FkJyk7XG4gICAgICByZXR1cm47XG4gICAgfSBlbHNlIHtcbiAgICAgIGxvZy5pbmZvKCdMYXVuY2hpbmcgU1NSJyk7XG4gICAgfVxuXG4gICAgLy8gQVNTRVRTXG4gICAgY29uc3QgY2xpZW50TWFuaWZlc3QgPSBjbGllbnRTdGF0cy50b0pzb24oKTtcblxuICAgIHNlcnZlckVudHJ5ID0gZ2V0U2VydmVyQnVuZGxlKHNlcnZlclN0YXRzKTtcbiAgICBzZXJ2ZXJGaWxlQ29udGVudHMgPSByZWFkRmlsZShzZXJ2ZXJFbnRyeSkudGhlbihidWYgPT4gYnVmLnRvU3RyaW5nKCkpO1xuICAgIC8vIHJlbG9hZCBtb2R1bGVzXG4gICAgT2JqZWN0LmtleXMoZnNSZXF1aXJlLmNhY2hlKS5mb3JFYWNoKGtleSA9PiB7XG4gICAgICBkZWxldGUgZnNSZXF1aXJlLmNhY2hlW2tleV07XG4gICAgfSk7XG4gICAgcmVuZGVyID0gKGZzUmVxdWlyZShzZXJ2ZXJFbnRyeSkgYXMgYW55KS5kZWZhdWx0LmJpbmQoXG4gICAgICB1bmRlZmluZWQsXG4gICAgICBjbGllbnRNYW5pZmVzdCxcbiAgICApO1xuICAgIC8vIFNFUlZFUiBTSURFIEVOVFJZUE9JTlRcbiAgICBpZiAoQXJyYXkuaXNBcnJheShpbml0UmVuZGVyKSkge1xuICAgICAgaW5pdFJlbmRlci5mb3JFYWNoKGFzeW5jIGluaXQgPT4ge1xuICAgICAgICB0cnkge1xuICAgICAgICAgIGxvZy5pbmZvKCdSZXNvbHZpbmcgcXVldWVkIHJlcXVlc3RzJyk7XG4gICAgICAgICAgYXdhaXQgcmVuZGVyKC4uLmluaXQuYXJncyk7XG4gICAgICAgICAgaW5pdC5yZXNvbHZlKCk7XG4gICAgICAgIH0gY2F0Y2ggKGUpIHtcbiAgICAgICAgICBsb2cuZXJyb3IoJ0Vycm9yIHdoZW4gYXR0ZW1wdGluZyB0byByZW5kZXIgcXVldWVkIHJlcXVlc3RzJyk7XG4gICAgICAgICAgbG9nLmVycm9yKGUpO1xuICAgICAgICB9XG4gICAgICB9KTtcbiAgICAgIGluaXRSZW5kZXIgPSB1bmRlZmluZWQ7XG4gICAgfVxuICB9XG5cbiAgY29uc3QgZGV2U2VydmVyID0gbmV3IFdlYnBhY2tEZXZTZXJ2ZXIoXG4gICAgLy8gd3JpdGUgdG8gbWVtb3J5IGZpbGVzeXN0ZW0gc28gd2UgY2FuIGltcG9ydFxuICAgIHtcbiAgICAgIC4uLndlYnBhY2tDb25maWdzWzBdLmRldlNlcnZlcixcbiAgICAgIGRldk1pZGRsZXdhcmU6IHtcbiAgICAgICAgLi4ud2VicGFja0NvbmZpZ3NbMF0/LmRldlNlcnZlcj8uZGV2TWlkZGxld2FyZSxcbiAgICAgICAgb3V0cHV0RmlsZVN5c3RlbToge1xuICAgICAgICAgIC4uLmZzLFxuICAgICAgICAgIGpvaW46IHBhdGguam9pbiBhcyBhbnksXG4gICAgICAgIH0gYXMgYW55LFxuICAgICAgfSxcbiAgICAgIHNldHVwTWlkZGxld2FyZXM6IChtaWRkbGV3YXJlcywgZGV2U2VydmVyKSA9PiB7XG4gICAgICAgIGlmICghZGV2U2VydmVyKSB7XG4gICAgICAgICAgdGhyb3cgbmV3IEVycm9yKCd3ZWJwYWNrLWRldi1zZXJ2ZXIgaXMgbm90IGRlZmluZWQnKTtcbiAgICAgICAgfVxuXG4gICAgICAgIGNvbnN0IG90aGVyUm91dGVzID0gW1xuICAgICAgICAgIHByb2Nlc3MuZW52LldFQlBBQ0tfUFVCTElDX1BBVEgsXG4gICAgICAgICAgLi4uT2JqZWN0LmtleXMod2VicGFja0NvbmZpZ3NbMF0uZGV2U2VydmVyPy5wcm94eSA/PyB7fSksXG4gICAgICAgIF07XG4gICAgICAgIC8vIHNlcnZlIFNTUiBmb3Igbm9uLVdFQlBBQ0tfUFVCTElDX1BBVEhcbiAgICAgICAgZGV2U2VydmVyLmFwcD8uZ2V0KFxuICAgICAgICAgIG5ldyBSZWdFeHAoYF4oPyEke290aGVyUm91dGVzLmpvaW4oJ3wnKX0pYCksXG4gICAgICAgICAgaGFuZGxlRXJyb3JzKGFzeW5jIGZ1bmN0aW9uIChyZXE6IGFueSwgcmVzOiBhbnkpIHtcbiAgICAgICAgICAgIGlmIChyZXEudXJsLmVuZHNXaXRoKCdmYXZpY29uLmljbycpKSB7XG4gICAgICAgICAgICAgIHJlcy5zdGF0dXNDb2RlID0gNDA0O1xuICAgICAgICAgICAgICByZXMuc2V0SGVhZGVyKCdDb250ZW50LXR5cGUnLCAndGV4dC9odG1sJyk7XG4gICAgICAgICAgICAgIHJlcy5zZW5kKCdub3QgZm91bmQnKTtcbiAgICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgcmVzLnNvY2tldC5vbignZXJyb3InLCAoZXJyb3I6IHVua25vd24pID0+IHtcbiAgICAgICAgICAgICAgY29uc29sZS5lcnJvcignRmF0YWwnLCBlcnJvcik7XG4gICAgICAgICAgICB9KTtcblxuICAgICAgICAgICAgYXdhaXQgcmVuZGVyKHJlcSwgcmVzKTtcbiAgICAgICAgICB9KSxcbiAgICAgICAgKTtcblxuICAgICAgICBpZiAod2VicGFja0NvbmZpZ3NbMF0uZGV2U2VydmVyPy5zZXR1cE1pZGRsZXdhcmVzKSB7XG4gICAgICAgICAgcmV0dXJuIHdlYnBhY2tDb25maWdzWzBdLmRldlNlcnZlci5zZXR1cE1pZGRsZXdhcmVzKFxuICAgICAgICAgICAgbWlkZGxld2FyZXMsXG4gICAgICAgICAgICBkZXZTZXJ2ZXIsXG4gICAgICAgICAgKTtcbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiBtaWRkbGV3YXJlcztcbiAgICAgIH0sXG4gICAgfSxcbiAgICBjb21waWxlcixcbiAgKTtcbiAgY29uc3QgcnVuU2VydmVyID0gYXN5bmMgKCkgPT4ge1xuICAgIGF3YWl0IGRldlNlcnZlci5zdGFydCgpO1xuICAgIGRldlNlcnZlci5jb21waWxlci5ob29rcy5kb25lLnRhcChcbiAgICAgICdBbmFuc2kgU2VydmVyJyxcbiAgICAgIChtdWx0aVN0YXRzOiB3ZWJwYWNrLk11bHRpU3RhdHMgfCB3ZWJwYWNrLlN0YXRzKSA9PiB7XG4gICAgICAgIGlmICghbXVsdGlTdGF0cykge1xuICAgICAgICAgIGxvZy5lcnJvcignc3RhdHMgbm90IHNlbmQnKTtcbiAgICAgICAgICBwcm9jZXNzLmV4aXQoLTEpO1xuICAgICAgICB9XG5cbiAgICAgICAgaWYgKCFPYmplY3QuaGFzT3duKG11bHRpU3RhdHMsICdzdGF0cycpKSByZXR1cm47XG4gICAgICAgIGlmICgobXVsdGlTdGF0cyBhcyB3ZWJwYWNrLk11bHRpU3RhdHMpLnN0YXRzLmxlbmd0aCA+IDEpIHtcbiAgICAgICAgICB0cnkge1xuICAgICAgICAgICAgaW1wb3J0UmVuZGVyKChtdWx0aVN0YXRzIGFzIHdlYnBhY2suTXVsdGlTdGF0cykuc3RhdHMpO1xuICAgICAgICAgIH0gY2F0Y2ggKGU6IGFueSkge1xuICAgICAgICAgICAgbG9nLmVycm9yKCdGYWlsZWQgdG8gbG9hZCBzZXJ2ZSBlbnRyeXBvaW50Jyk7XG4gICAgICAgICAgICBjb25zdCBmaW5kZXIgPSBuZXcgUmVnRXhwKGAke3NlcnZlckVudHJ5fTooW1xcXFxkXSspOihbXFxcXGRdKylgLCAnZycpO1xuICAgICAgICAgICAgc2VydmVyRmlsZUNvbnRlbnRzLnRoZW4oZmlsZVRleHQgPT4ge1xuICAgICAgICAgICAgICBjb25zdCB0ZXh0Um93cyA9IGZpbGVUZXh0LnNwbGl0KCdcXG4nKTtcbiAgICAgICAgICAgICAgbG9nLmVycm9yKCc+Pj4gU3RhY2sgQ29udGV4dCBbc2VydmUgZW50cnlwb2ludF0gPDw8Jyk7XG4gICAgICAgICAgICAgIGZvciAoY29uc3QgbWF0Y2ggb2YgZS5zdGFjay5tYXRjaEFsbChmaW5kZXIpID8/IFtdKSB7XG4gICAgICAgICAgICAgICAgY29uc3Qgcm93ID0gTnVtYmVyLnBhcnNlSW50KG1hdGNoWzFdKTtcbiAgICAgICAgICAgICAgICBjb25zdCBjb2wgPSBOdW1iZXIucGFyc2VJbnQobWF0Y2hbMl0pO1xuICAgICAgICAgICAgICAgIGxvZy5lcnJvcihwYXRoLmJhc2VuYW1lKHNlcnZlckVudHJ5KSArICcgJyArIHJvdyArICc6JyArIGNvbCk7XG4gICAgICAgICAgICAgICAgbG9nLmVycm9yKHRleHRSb3dzW3JvdyAtIDJdKTtcbiAgICAgICAgICAgICAgICBsb2cuZXJyb3IodGV4dFJvd3Nbcm93IC0gMV0pO1xuICAgICAgICAgICAgICAgIGxvZy5lcnJvcihBcnJheShjb2wpLmpvaW4oJyAnKSArICdeJyk7XG4gICAgICAgICAgICAgICAgbG9nLmVycm9yKHRleHRSb3dzW3Jvd10pO1xuICAgICAgICAgICAgICAgIGxvZy5lcnJvcih0ZXh0Um93c1tyb3cgKyAxXSk7XG4gICAgICAgICAgICAgICAgbG9nLmVycm9yKHRleHRSb3dzW3JvdyArIDJdKTtcbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICBkaXNrRnMud3JpdGVGaWxlU3luYyhzZXJ2ZXJFbnRyeSwgZmlsZVRleHQpO1xuICAgICAgICAgICAgfSk7XG5cbiAgICAgICAgICAgIHRocm93IGU7XG4gICAgICAgICAgfVxuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIGxvZy5lcnJvcignT25seSBjb21waWxlciBvbmUgc3RhdCcpO1xuICAgICAgICB9XG4gICAgICB9LFxuICAgICk7XG4gIH07XG4gIGNvbnN0IHN0b3BTZXJ2ZXIgPSBhc3luYyAoKSA9PiB7XG4gICAgbG9nLmluZm8oJ1N0b3BwaW5nIHNlcnZlci4uLicpO1xuICAgIGF3YWl0IGRldlNlcnZlci5zdG9wKCk7XG4gICAgbG9nLmluZm8oJ1NlcnZlciBjbG9zZWQnKTtcbiAgfTtcblxuICBwcm9jZXNzLm9uKCdTSUdJTlQnLCAoKSA9PiB7XG4gICAgbG9nLndhcm4oJ1JlY2VpdmVkIFNJR0lOVCwgZGV2c2VydmVyIHNodXR0aW5nIGRvd24nKTtcbiAgICBzdG9wU2VydmVyKCk7XG4gICAgcHJvY2Vzcy5leGl0KC0xKTtcbiAgfSk7XG5cbiAgcnVuU2VydmVyKCk7XG59XG4iXSwibWFwcGluZ3MiOiJBQUFBO0FBQ0FBLE1BQU0sQ0FBQ0MsTUFBTSxHQUNYRCxNQUFNLENBQUNDLE1BQU0sSUFDYiwwQkFBMkIsU0FBU0EsTUFBTUEsQ0FBQ0MsRUFBRSxFQUFFQyxHQUFHLEVBQUU7RUFDbEQsT0FBT0gsTUFBTSxDQUFDSSxTQUFTLENBQUNDLGNBQWMsQ0FBQ0MsSUFBSSxDQUFDSixFQUFFLEVBQUVDLEdBQUcsQ0FBQztBQUN0RCxDQUFDO0FBRUgsT0FBT0ksTUFBTSxNQUFNLElBQUk7QUFDdkIsU0FBU0MsZUFBZSxRQUFR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
|
package/lib/scripts/types.js
CHANGED
|
@@ -1,4 +1,2 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
exports.__esModule = true;
|
|
1
|
+
export {};
|
|
4
2
|
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6W10sInNvdXJjZXMiOlsiLi4vLi4vc3JjL3NjcmlwdHMvdHlwZXMudHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgUmVxdWVzdCwgUmVzcG9uc2UgfSBmcm9tICdleHByZXNzJztcbmltcG9ydCB7IFNlcnZlclJlc3BvbnNlLCBJbmNvbWluZ01lc3NhZ2UgfSBmcm9tICdodHRwJztcbmltcG9ydCB7IFN0YXRzQ29tcGlsYXRpb24gfSBmcm9tICd3ZWJwYWNrJztcblxuZXhwb3J0IHR5cGUgUmVuZGVyID0gKFxuICBjbGllbnRNYW5pZmVzdDogU3RhdHNDb21waWxhdGlvbixcbiAgcmVxOiBSZXF1ZXN0IHwgSW5jb21pbmdNZXNzYWdlLFxuICByZXM6IFJlc3BvbnNlIHwgU2VydmVyUmVzcG9uc2UsXG4pID0+IFByb21pc2U8dm9pZD47XG5cbmV4cG9ydCB0eXBlIEJvdW5kUmVuZGVyID0gKFxuICByZXE6IFJlcXVlc3QgfCBJbmNvbWluZ01lc3NhZ2UsXG4gIHJlczogUmVzcG9uc2UgfCBTZXJ2ZXJSZXNwb25zZSxcbikgPT4gUHJvbWlzZTx2b2lkPjtcbiJdLCJtYXBwaW5ncyI6IiJ9
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@anansi/core",
|
|
3
|
-
"version": "0.16.
|
|
3
|
+
"version": "0.16.10",
|
|
4
4
|
"description": "React 18 Framework",
|
|
5
5
|
"homepage": "https://github.com/ntucker/anansi/tree/master/packages/core#readme",
|
|
6
6
|
"repository": {
|
|
@@ -48,7 +48,7 @@
|
|
|
48
48
|
"./server": {
|
|
49
49
|
"types": "./lib/index.server.d.ts",
|
|
50
50
|
"require": "./dist/server.js",
|
|
51
|
-
"default": "./
|
|
51
|
+
"default": "./lib/index.server.js"
|
|
52
52
|
},
|
|
53
53
|
"./scripts": {
|
|
54
54
|
"types": "./lib/scripts/index.d.ts",
|
|
@@ -66,9 +66,9 @@
|
|
|
66
66
|
"browser"
|
|
67
67
|
],
|
|
68
68
|
"devDependencies": {
|
|
69
|
-
"@anansi/babel-preset": "3.4.
|
|
69
|
+
"@anansi/babel-preset": "3.4.3",
|
|
70
70
|
"@anansi/browserslist-config": "1.4.1",
|
|
71
|
-
"@anansi/webpack-config": "14.
|
|
71
|
+
"@anansi/webpack-config": "14.3.1",
|
|
72
72
|
"@babel/cli": "7.21.0",
|
|
73
73
|
"@babel/core": "7.21.0",
|
|
74
74
|
"@types/compression": "1.7.2",
|
|
@@ -81,7 +81,7 @@
|
|
|
81
81
|
"webpack-cli": "5.0.1"
|
|
82
82
|
},
|
|
83
83
|
"dependencies": {
|
|
84
|
-
"@anansi/router": "^0.7.
|
|
84
|
+
"@anansi/router": "^0.7.19",
|
|
85
85
|
"@babel/runtime": "^7.17.0",
|
|
86
86
|
"@rest-hooks/ssr": "^0.7.9",
|
|
87
87
|
"chalk": "^4.1.2",
|
|
@@ -92,7 +92,7 @@
|
|
|
92
92
|
"history": "^5.3.0",
|
|
93
93
|
"http-proxy-middleware": "^2.0.6",
|
|
94
94
|
"memfs": "^3.4.13",
|
|
95
|
-
"ora": "^
|
|
95
|
+
"ora": "^6.1.2",
|
|
96
96
|
"redux": "^4.2.1",
|
|
97
97
|
"source-map-support": "^0.5.21",
|
|
98
98
|
"tmp": "^0.2.1",
|
|
@@ -137,7 +137,7 @@
|
|
|
137
137
|
"test:type": "tsc",
|
|
138
138
|
"build": "yarn run build:lib && yarn build:scripts && yarn run build:bundle",
|
|
139
139
|
"build:lib": "NODE_ENV=production BROWSERSLIST_ENV='2020' babel --root-mode upward src --out-dir lib --source-maps inline --extensions '.ts,.tsx,.cts,.js' --ignore '**/__tests__/**' --ignore '**/*.d.ts'",
|
|
140
|
-
"build:scripts": "NODE_ENV=production BROWSERSLIST_ENV='
|
|
140
|
+
"build:scripts": "NODE_ENV=production BROWSERSLIST_ENV='2018' babel --root-mode upward src/scripts --out-dir lib/scripts --source-maps inline --extensions '.ts,.tsx,.cts,.js' --ignore '**/__tests__/**' --ignore '**/*.d.ts'",
|
|
141
141
|
"build:bundle": "BROWSERSLIST_ENV=node12 webpack --mode=none --target=node && echo '{\"type\":\"commonjs\"}' > dist/package.json",
|
|
142
142
|
"build:clean": "rimraf lib dist ts3.4 legacy *.tsbuildinfo",
|
|
143
143
|
"prepack": "yarn build"
|