@anansi/core 0.7.4 → 0.10.0
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 +60 -0
- package/dist/client.js +3 -2
- package/dist/client.js.map +1 -1
- package/dist/server.js +27 -23
- package/dist/server.js.map +1 -1
- package/lib/floodSpouts.d.ts +6 -0
- package/lib/floodSpouts.d.ts.map +1 -0
- package/lib/index.d.ts +5 -0
- package/lib/index.d.ts.map +1 -0
- package/lib/index.server.d.ts +6 -0
- package/lib/index.server.d.ts.map +1 -0
- package/lib/laySpouts.d.ts +8 -0
- package/lib/laySpouts.d.ts.map +1 -0
- package/lib/scripts/getProxyMiddlewares.d.ts +3 -0
- package/lib/scripts/getProxyMiddlewares.d.ts.map +1 -0
- package/lib/scripts/getProxyMiddlewares.js +106 -0
- package/lib/scripts/index.d.ts +3 -0
- package/lib/scripts/index.d.ts.map +1 -0
- package/lib/scripts/index.js +15 -0
- package/lib/scripts/serve.d.ts +7 -0
- package/lib/scripts/serve.d.ts.map +1 -0
- package/lib/scripts/serve.js +188 -0
- package/lib/scripts/startDevserver.d.ts +4 -0
- package/lib/scripts/startDevserver.d.ts.map +1 -0
- package/lib/scripts/startDevserver.js +171 -167
- package/lib/scripts/types.d.ts +7 -0
- package/lib/scripts/types.d.ts.map +1 -0
- package/lib/spouts/DocumentComponent.d.ts +23 -0
- package/lib/spouts/DocumentComponent.d.ts.map +1 -0
- package/lib/spouts/DocumentComponent.js +10 -6
- package/lib/spouts/document.d.ts +13 -0
- package/lib/spouts/document.d.ts.map +1 -0
- package/lib/spouts/document.server.d.ts +17 -0
- package/lib/spouts/document.server.d.ts.map +1 -0
- package/lib/spouts/document.server.js +1 -1
- package/lib/spouts/prefetch.server.d.ts +8 -0
- package/lib/spouts/prefetch.server.d.ts.map +1 -0
- package/lib/spouts/restHooks.d.ts +8 -0
- package/lib/spouts/restHooks.d.ts.map +1 -0
- package/lib/spouts/restHooks.server.d.ts +9 -0
- package/lib/spouts/restHooks.server.d.ts.map +1 -0
- package/lib/spouts/router.d.ts +14 -0
- package/lib/spouts/router.d.ts.map +1 -0
- package/lib/spouts/router.js +3 -2
- package/lib/spouts/router.server.d.ts +12 -0
- package/lib/spouts/router.server.d.ts.map +1 -0
- package/lib/spouts/types.d.ts +16 -0
- package/lib/spouts/types.d.ts.map +1 -0
- package/package.json +15 -8
- package/src/scripts/getProxyMiddlewares.ts +129 -0
- package/src/scripts/index.ts +2 -0
- package/src/scripts/serve.ts +211 -0
- package/src/scripts/startDevserver.ts +204 -198
- package/src/spouts/DocumentComponent.tsx +8 -2
- package/src/spouts/document.server.tsx +2 -1
- package/src/spouts/router.tsx +7 -1
|
@@ -0,0 +1,188 @@
|
|
|
1
|
+
#!/usr/bin/env node
|
|
2
|
+
"use strict";
|
|
3
|
+
|
|
4
|
+
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault").default;
|
|
5
|
+
|
|
6
|
+
exports.__esModule = true;
|
|
7
|
+
exports.default = serve;
|
|
8
|
+
|
|
9
|
+
var _util = require("util");
|
|
10
|
+
|
|
11
|
+
var _fs = _interopRequireDefault(require("fs"));
|
|
12
|
+
|
|
13
|
+
var _path = _interopRequireDefault(require("path"));
|
|
14
|
+
|
|
15
|
+
var _express = _interopRequireDefault(require("express"));
|
|
16
|
+
|
|
17
|
+
var _ora = _interopRequireDefault(require("ora"));
|
|
18
|
+
|
|
19
|
+
var _compression = _interopRequireDefault(require("compression"));
|
|
20
|
+
|
|
21
|
+
require("cross-fetch/polyfill");
|
|
22
|
+
|
|
23
|
+
var _getProxyMiddlewares = _interopRequireDefault(require("./getProxyMiddlewares"));
|
|
24
|
+
|
|
25
|
+
// run directly from node
|
|
26
|
+
if (require.main === module) {
|
|
27
|
+
const entrypoint = process.argv[2];
|
|
28
|
+
|
|
29
|
+
if (!entrypoint) {
|
|
30
|
+
console.log(`Usage: ${process.argv[0]} <server-entrypoint>`);
|
|
31
|
+
process.exit(-1);
|
|
32
|
+
}
|
|
33
|
+
|
|
34
|
+
serve(entrypoint);
|
|
35
|
+
}
|
|
36
|
+
|
|
37
|
+
function serve(entrypoint, options = {}) {
|
|
38
|
+
const PORT = process.env.PORT || 8080;
|
|
39
|
+
const loader = (0, _ora.default)('Initializing').start();
|
|
40
|
+
|
|
41
|
+
const webpackConfig = require(require.resolve( // TODO: use normal resolution algorithm to find webpack file
|
|
42
|
+
_path.default.join(process.cwd(), 'webpack.config')));
|
|
43
|
+
|
|
44
|
+
const manifestPath = getManifestPathFromWebpackconfig(webpackConfig({}, {
|
|
45
|
+
mode: 'production'
|
|
46
|
+
}));
|
|
47
|
+
const readFile = (0, _util.promisify)(_fs.default.readFile);
|
|
48
|
+
let server;
|
|
49
|
+
|
|
50
|
+
function handleErrors(fn) {
|
|
51
|
+
return async function (req, res, next) {
|
|
52
|
+
try {
|
|
53
|
+
return await fn(req, res);
|
|
54
|
+
} catch (x) {
|
|
55
|
+
next(x);
|
|
56
|
+
}
|
|
57
|
+
};
|
|
58
|
+
} // Start the express server after the first compilation
|
|
59
|
+
|
|
60
|
+
|
|
61
|
+
function initializeApp(clientManifest) {
|
|
62
|
+
loader.info('Launching server');
|
|
63
|
+
|
|
64
|
+
if (!clientManifest) {
|
|
65
|
+
loader.fail('Manifest not found'); // TODO: handle more gracefully
|
|
66
|
+
|
|
67
|
+
process.exit(-1);
|
|
68
|
+
}
|
|
69
|
+
|
|
70
|
+
const wrappingApp = (0, _express.default)(); // eslint-disable-next-line
|
|
71
|
+
//@ts-ignore
|
|
72
|
+
|
|
73
|
+
wrappingApp.use((0, _compression.default)()); // ASSETS
|
|
74
|
+
|
|
75
|
+
if (options.serveAssets) {
|
|
76
|
+
wrappingApp.use(async (req, res, next) => {
|
|
77
|
+
var _req$url$substr, _req$url, _clientManifest$outpu;
|
|
78
|
+
|
|
79
|
+
const filename = (_req$url$substr = (_req$url = req.url) === null || _req$url === void 0 ? void 0 : _req$url.substr(process.env.WEBPACK_PUBLIC_PATH.length)) != null ? _req$url$substr : '';
|
|
80
|
+
|
|
81
|
+
const assetPath = _path.default.join((_clientManifest$outpu = clientManifest.outputPath) != null ? _clientManifest$outpu : '', filename);
|
|
82
|
+
|
|
83
|
+
if (_fs.default.existsSync(assetPath) && !_fs.default.lstatSync(assetPath).isDirectory()) {
|
|
84
|
+
try {
|
|
85
|
+
const fileContent = (await readFile(assetPath)).toString();
|
|
86
|
+
res.contentType(filename);
|
|
87
|
+
res.send(fileContent);
|
|
88
|
+
} catch (e) {
|
|
89
|
+
return next();
|
|
90
|
+
}
|
|
91
|
+
} else {
|
|
92
|
+
next();
|
|
93
|
+
}
|
|
94
|
+
});
|
|
95
|
+
} // PROXIES
|
|
96
|
+
|
|
97
|
+
|
|
98
|
+
if (options.serveProxy) {
|
|
99
|
+
var _devConfig$devServer;
|
|
100
|
+
|
|
101
|
+
const devConfig = webpackConfig({}, {
|
|
102
|
+
mode: 'development'
|
|
103
|
+
});
|
|
104
|
+
|
|
105
|
+
if ((_devConfig$devServer = devConfig.devServer) !== null && _devConfig$devServer !== void 0 && _devConfig$devServer.proxy) {
|
|
106
|
+
var _devConfig$devServer2;
|
|
107
|
+
|
|
108
|
+
const middlewares = (0, _getProxyMiddlewares.default)((_devConfig$devServer2 = devConfig.devServer) === null || _devConfig$devServer2 === void 0 ? void 0 : _devConfig$devServer2.proxy);
|
|
109
|
+
|
|
110
|
+
if (middlewares) {
|
|
111
|
+
wrappingApp.use(...middlewares.map(({
|
|
112
|
+
middleware
|
|
113
|
+
}) => middleware));
|
|
114
|
+
}
|
|
115
|
+
}
|
|
116
|
+
} // SERVER SIDE RENDERING
|
|
117
|
+
// eslint-disable-next-line @typescript-eslint/no-var-requires
|
|
118
|
+
|
|
119
|
+
|
|
120
|
+
const render = require(_path.default.join(process.cwd(), entrypoint)).default;
|
|
121
|
+
|
|
122
|
+
wrappingApp.get('/*', handleErrors(async function (req, res) {
|
|
123
|
+
if (req.url.endsWith('favicon.ico')) {
|
|
124
|
+
res.statusCode = 404;
|
|
125
|
+
res.setHeader('Content-type', 'text/html');
|
|
126
|
+
res.send('not found');
|
|
127
|
+
return;
|
|
128
|
+
}
|
|
129
|
+
|
|
130
|
+
res.socket.on('error', error => {
|
|
131
|
+
console.error('Fatal', error);
|
|
132
|
+
});
|
|
133
|
+
await render(clientManifest, req, res);
|
|
134
|
+
}));
|
|
135
|
+
server = wrappingApp.listen(PORT, () => {
|
|
136
|
+
loader.info(`Listening at ${PORT}...`);
|
|
137
|
+
}).on('error', function (error) {
|
|
138
|
+
if (error.syscall !== 'listen') {
|
|
139
|
+
throw error;
|
|
140
|
+
}
|
|
141
|
+
|
|
142
|
+
const isPipe = portOrPipe => Number.isNaN(portOrPipe);
|
|
143
|
+
|
|
144
|
+
const bind = isPipe(PORT) ? 'Pipe ' + PORT : 'Port ' + PORT;
|
|
145
|
+
|
|
146
|
+
switch (error.code) {
|
|
147
|
+
case 'EACCES':
|
|
148
|
+
loader.fail(bind + ' requires elevated privileges');
|
|
149
|
+
process.exit(1);
|
|
150
|
+
// eslint-disable-next-line no-fallthrough
|
|
151
|
+
|
|
152
|
+
case 'EADDRINUSE':
|
|
153
|
+
loader.fail(bind + ' is already in use');
|
|
154
|
+
process.exit(1);
|
|
155
|
+
// eslint-disable-next-line no-fallthrough
|
|
156
|
+
|
|
157
|
+
default:
|
|
158
|
+
throw error;
|
|
159
|
+
}
|
|
160
|
+
});
|
|
161
|
+
} // eslint-disable-next-line @typescript-eslint/no-var-requires
|
|
162
|
+
|
|
163
|
+
|
|
164
|
+
initializeApp(require(manifestPath));
|
|
165
|
+
process.on('SIGINT', () => {
|
|
166
|
+
var _server;
|
|
167
|
+
|
|
168
|
+
loader.warn('Received SIGINT, devserver shutting down');
|
|
169
|
+
if (server) console.log('Closing server');
|
|
170
|
+
(_server = server) === null || _server === void 0 ? void 0 : _server.close(() => {
|
|
171
|
+
loader.info('Server closed');
|
|
172
|
+
});
|
|
173
|
+
process.exit(-1);
|
|
174
|
+
});
|
|
175
|
+
}
|
|
176
|
+
|
|
177
|
+
function getManifestPathFromWebpackconfig(webpackConfig) {
|
|
178
|
+
var _opts$filename, _webpackConfig$plugin, _webpackConfig$plugin2, _webpackConfig$plugin3, _webpackConfig$output, _webpackConfig$output2;
|
|
179
|
+
|
|
180
|
+
const manifestFilename = (_opts$filename = webpackConfig === null || webpackConfig === void 0 ? void 0 : (_webpackConfig$plugin = webpackConfig.plugins) === null || _webpackConfig$plugin === void 0 ? void 0 : (_webpackConfig$plugin2 = _webpackConfig$plugin.find(plugin => {
|
|
181
|
+
return plugin.constructor.name === 'StatsWriterPlugin';
|
|
182
|
+
})) === null || _webpackConfig$plugin2 === void 0 ? void 0 : (_webpackConfig$plugin3 = _webpackConfig$plugin2.opts) === null || _webpackConfig$plugin3 === void 0 ? void 0 : _webpackConfig$plugin3.filename) != null ? _opts$filename : 'manifest.json';
|
|
183
|
+
|
|
184
|
+
const manifestPath = _path.default.join((_webpackConfig$output = webpackConfig === null || webpackConfig === void 0 ? void 0 : (_webpackConfig$output2 = webpackConfig.output) === null || _webpackConfig$output2 === void 0 ? void 0 : _webpackConfig$output2.path) != null ? _webpackConfig$output : '', manifestFilename);
|
|
185
|
+
|
|
186
|
+
return manifestPath;
|
|
187
|
+
}
|
|
188
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJyZXF1aXJlIiwibWFpbiIsIm1vZHVsZSIsImVudHJ5cG9pbnQiLCJwcm9jZXNzIiwiYXJndiIsImNvbnNvbGUiLCJsb2ciLCJleGl0Iiwic2VydmUiLCJvcHRpb25zIiwiUE9SVCIsImVudiIsImxvYWRlciIsIm9yYSIsInN0YXJ0Iiwid2VicGFja0NvbmZpZyIsInJlc29sdmUiLCJwYXRoIiwiam9pbiIsImN3ZCIsIm1hbmlmZXN0UGF0aCIsImdldE1hbmlmZXN0UGF0aEZyb21XZWJwYWNrY29uZmlnIiwibW9kZSIsInJlYWRGaWxlIiwicHJvbWlzaWZ5IiwiZGlza0ZzIiwic2VydmVyIiwiaGFuZGxlRXJyb3JzIiwiZm4iLCJyZXEiLCJyZXMiLCJuZXh0IiwieCIsImluaXRpYWxpemVBcHAiLCJjbGllbnRNYW5pZmVzdCIsImluZm8iLCJmYWlsIiwid3JhcHBpbmdBcHAiLCJleHByZXNzIiwidXNlIiwiY29tcHJlc3MiLCJzZXJ2ZUFzc2V0cyIsImZpbGVuYW1lIiwidXJsIiwic3Vic3RyIiwiV0VCUEFDS19QVUJMSUNfUEFUSCIsImxlbmd0aCIsImFzc2V0UGF0aCIsIm91dHB1dFBhdGgiLCJleGlzdHNTeW5jIiwibHN0YXRTeW5jIiwiaXNEaXJlY3RvcnkiLCJmaWxlQ29udGVudCIsInRvU3RyaW5nIiwiY29udGVudFR5cGUiLCJzZW5kIiwiZSIsInNlcnZlUHJveHkiLCJkZXZDb25maWciLCJkZXZTZXJ2ZXIiLCJwcm94eSIsIm1pZGRsZXdhcmVzIiwiZ2V0UHJveHlNaWRkbGV3YXJlcyIsIm1hcCIsIm1pZGRsZXdhcmUiLCJyZW5kZXIiLCJkZWZhdWx0IiwiZ2V0IiwiZW5kc1dpdGgiLCJzdGF0dXNDb2RlIiwic2V0SGVhZGVyIiwic29ja2V0Iiwib24iLCJlcnJvciIsImxpc3RlbiIsInN5c2NhbGwiLCJpc1BpcGUiLCJwb3J0T3JQaXBlIiwiTnVtYmVyIiwiaXNOYU4iLCJiaW5kIiwiY29kZSIsIndhcm4iLCJjbG9zZSIsIm1hbmlmZXN0RmlsZW5hbWUiLCJwbHVnaW5zIiwiZmluZCIsInBsdWdpbiIsImNvbnN0cnVjdG9yIiwibmFtZSIsIm9wdHMiLCJvdXRwdXQiXSwic291cmNlcyI6WyIuLi8uLi9zcmMvc2NyaXB0cy9zZXJ2ZS50cyJdLCJzb3VyY2VzQ29udGVudCI6WyIjIS91c3IvYmluL2VudiBub2RlXG5cbmltcG9ydCB7IHByb21pc2lmeSB9IGZyb20gJ3V0aWwnO1xuaW1wb3J0IGRpc2tGcyBmcm9tICdmcyc7XG5pbXBvcnQgcGF0aCBmcm9tICdwYXRoJztcbmltcG9ydCB3ZWJwYWNrLCB7IHdlYiB9IGZyb20gJ3dlYnBhY2snO1xuaW1wb3J0IHsgU2VydmVyLCBJbmNvbWluZ01lc3NhZ2UsIFNlcnZlclJlc3BvbnNlIH0gZnJvbSAnaHR0cCc7XG5pbXBvcnQgZXhwcmVzcywgeyBOZXh0RnVuY3Rpb24gfSBmcm9tICdleHByZXNzJztcbmltcG9ydCBvcmEgZnJvbSAnb3JhJztcbmltcG9ydCBjb21wcmVzcyBmcm9tICdjb21wcmVzc2lvbic7XG5cbmltcG9ydCAnY3Jvc3MtZmV0Y2gvcG9seWZpbGwnO1xuaW1wb3J0IHsgUmVuZGVyIH0gZnJvbSAnLi90eXBlcyc7XG5pbXBvcnQgZ2V0UHJveHlNaWRkbGV3YXJlcyBmcm9tICcuL2dldFByb3h5TWlkZGxld2FyZXMnO1xuXG4vLyBydW4gZGlyZWN0bHkgZnJvbSBub2RlXG5pZiAocmVxdWlyZS5tYWluID09PSBtb2R1bGUpIHtcbiAgY29uc3QgZW50cnlwb2ludCA9IHByb2Nlc3MuYXJndlsyXTtcblxuICBpZiAoIWVudHJ5cG9pbnQpIHtcbiAgICBjb25zb2xlLmxvZyhgVXNhZ2U6ICR7cHJvY2Vzcy5hcmd2WzBdfSA8c2VydmVyLWVudHJ5cG9pbnQ+YCk7XG4gICAgcHJvY2Vzcy5leGl0KC0xKTtcbiAgfVxuICBzZXJ2ZShlbnRyeXBvaW50KTtcbn1cblxuZXhwb3J0IGRlZmF1bHQgZnVuY3Rpb24gc2VydmUoXG4gIGVudHJ5cG9pbnQ6IHN0cmluZyxcbiAgb3B0aW9uczogeyBzZXJ2ZUFzc2V0cz86IGJvb2xlYW47IHNlcnZlUHJveHk/OiBib29sZWFuIH0gPSB7fSxcbikge1xuICBjb25zdCBQT1JUID0gcHJvY2Vzcy5lbnYuUE9SVCB8fCA4MDgwO1xuXG4gIGNvbnN0IGxvYWRlciA9IG9yYSgnSW5pdGlhbGl6aW5nJykuc3RhcnQoKTtcblxuICBjb25zdCB3ZWJwYWNrQ29uZmlnOiAoXG4gICAgZW52OiBhbnksXG4gICAgYXJndjogYW55LFxuICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tdmFyLXJlcXVpcmVzXG4gICkgPT4gd2VicGFjay5Db25maWd1cmF0aW9uID0gcmVxdWlyZShyZXF1aXJlLnJlc29sdmUoXG4gICAgLy8gVE9ETzogdXNlIG5vcm1hbCByZXNvbHV0aW9uIGFsZ29yaXRobSB0byBmaW5kIHdlYnBhY2sgZmlsZVxuICAgIHBhdGguam9pbihwcm9jZXNzLmN3ZCgpLCAnd2VicGFjay5jb25maWcnKSxcbiAgKSk7XG5cbiAgY29uc3QgbWFuaWZlc3RQYXRoID0gZ2V0TWFuaWZlc3RQYXRoRnJvbVdlYnBhY2tjb25maWcoXG4gICAgd2VicGFja0NvbmZpZyh7fSwgeyBtb2RlOiAncHJvZHVjdGlvbicgfSksXG4gICk7XG5cbiAgY29uc3QgcmVhZEZpbGUgPSBwcm9taXNpZnkoZGlza0ZzLnJlYWRGaWxlKTtcbiAgbGV0IHNlcnZlcjogU2VydmVyIHwgdW5kZWZpbmVkO1xuXG4gIGZ1bmN0aW9uIGhhbmRsZUVycm9yczxcbiAgICBGIGV4dGVuZHMgKFxuICAgICAgcmVxOiBSZXF1ZXN0IHwgSW5jb21pbmdNZXNzYWdlLFxuICAgICAgcmVzOiBSZXNwb25zZSB8IFNlcnZlclJlc3BvbnNlLFxuICAgICkgPT4gUHJvbWlzZTx2b2lkPixcbiAgPihmbjogRikge1xuICAgIHJldHVybiBhc3luYyBmdW5jdGlvbiAoXG4gICAgICByZXE6IFJlcXVlc3QgfCBJbmNvbWluZ01lc3NhZ2UsXG4gICAgICByZXM6IFJlc3BvbnNlIHwgU2VydmVyUmVzcG9uc2UsXG4gICAgICBuZXh0OiBOZXh0RnVuY3Rpb24sXG4gICAgKSB7XG4gICAgICB0cnkge1xuICAgICAgICByZXR1cm4gYXdhaXQgZm4ocmVxLCByZXMpO1xuICAgICAgfSBjYXRjaCAoeCkge1xuICAgICAgICBuZXh0KHgpO1xuICAgICAgfVxuICAgIH07XG4gIH1cblxuICAvLyBTdGFydCB0aGUgZXhwcmVzcyBzZXJ2ZXIgYWZ0ZXIgdGhlIGZpcnN0IGNvbXBpbGF0aW9uXG4gIGZ1bmN0aW9uIGluaXRpYWxpemVBcHAoY2xpZW50TWFuaWZlc3Q6IHdlYnBhY2suU3RhdHNDb21waWxhdGlvbikge1xuICAgIGxvYWRlci5pbmZvKCdMYXVuY2hpbmcgc2VydmVyJyk7XG4gICAgaWYgKCFjbGllbnRNYW5pZmVzdCkge1xuICAgICAgbG9hZGVyLmZhaWwoJ01hbmlmZXN0IG5vdCBmb3VuZCcpO1xuICAgICAgLy8gVE9ETzogaGFuZGxlIG1vcmUgZ3JhY2VmdWxseVxuICAgICAgcHJvY2Vzcy5leGl0KC0xKTtcbiAgICB9XG5cbiAgICBjb25zdCB3cmFwcGluZ0FwcCA9IGV4cHJlc3MoKTtcbiAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmVcbiAgICAvL0B0cy1pZ25vcmVcbiAgICB3cmFwcGluZ0FwcC51c2UoY29tcHJlc3MoKSk7XG5cbiAgICAvLyBBU1NFVFNcbiAgICBpZiAob3B0aW9ucy5zZXJ2ZUFzc2V0cykge1xuICAgICAgd3JhcHBpbmdBcHAudXNlKFxuICAgICAgICBhc3luYyAoXG4gICAgICAgICAgcmVxOiBSZXF1ZXN0IHwgSW5jb21pbmdNZXNzYWdlLFxuICAgICAgICAgIHJlczogYW55LFxuICAgICAgICAgIG5leHQ6IE5leHRGdW5jdGlvbixcbiAgICAgICAgKSA9PiB7XG4gICAgICAgICAgY29uc3QgZmlsZW5hbWUgPVxuICAgICAgICAgICAgcmVxLnVybD8uc3Vic3RyKFxuICAgICAgICAgICAgICAocHJvY2Vzcy5lbnYuV0VCUEFDS19QVUJMSUNfUEFUSCBhcyBzdHJpbmcpLmxlbmd0aCxcbiAgICAgICAgICAgICkgPz8gJyc7XG4gICAgICAgICAgY29uc3QgYXNzZXRQYXRoID0gcGF0aC5qb2luKFxuICAgICAgICAgICAgY2xpZW50TWFuaWZlc3Qub3V0cHV0UGF0aCA/PyAnJyxcbiAgICAgICAgICAgIGZpbGVuYW1lLFxuICAgICAgICAgICk7XG5cbiAgICAgICAgICBpZiAoXG4gICAgICAgICAgICBkaXNrRnMuZXhpc3RzU3luYyhhc3NldFBhdGgpICYmXG4gICAgICAgICAgICAhZGlza0ZzLmxzdGF0U3luYyhhc3NldFBhdGgpLmlzRGlyZWN0b3J5KClcbiAgICAgICAgICApIHtcbiAgICAgICAgICAgIHRyeSB7XG4gICAgICAgICAgICAgIGNvbnN0IGZpbGVDb250ZW50ID0gKGF3YWl0IHJlYWRGaWxlKGFzc2V0UGF0aCkpLnRvU3RyaW5nKCk7XG4gICAgICAgICAgICAgIHJlcy5jb250ZW50VHlwZShmaWxlbmFtZSk7XG4gICAgICAgICAgICAgIHJlcy5zZW5kKGZpbGVDb250ZW50KTtcbiAgICAgICAgICAgIH0gY2F0Y2ggKGUpIHtcbiAgICAgICAgICAgICAgcmV0dXJuIG5leHQoKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgbmV4dCgpO1xuICAgICAgICAgIH1cbiAgICAgICAgfSxcbiAgICAgICk7XG4gICAgfVxuXG4gICAgLy8gUFJPWElFU1xuICAgIGlmIChvcHRpb25zLnNlcnZlUHJveHkpIHtcbiAgICAgIGNvbnN0IGRldkNvbmZpZzogd2VicGFjay5Db25maWd1cmF0aW9uID0gd2VicGFja0NvbmZpZyhcbiAgICAgICAge30sXG4gICAgICAgIHsgbW9kZTogJ2RldmVsb3BtZW50JyB9LFxuICAgICAgKTtcbiAgICAgIGlmIChkZXZDb25maWcuZGV2U2VydmVyPy5wcm94eSkge1xuICAgICAgICBjb25zdCBtaWRkbGV3YXJlcyA9IGdldFByb3h5TWlkZGxld2FyZXMoZGV2Q29uZmlnLmRldlNlcnZlcj8ucHJveHkpO1xuICAgICAgICBpZiAobWlkZGxld2FyZXMpIHtcbiAgICAgICAgICB3cmFwcGluZ0FwcC51c2UoLi4ubWlkZGxld2FyZXMubWFwKCh7IG1pZGRsZXdhcmUgfSkgPT4gbWlkZGxld2FyZSkpO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuXG4gICAgLy8gU0VSVkVSIFNJREUgUkVOREVSSU5HXG4gICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uby12YXItcmVxdWlyZXNcbiAgICBjb25zdCByZW5kZXI6IFJlbmRlciA9IHJlcXVpcmUocGF0aC5qb2luKFxuICAgICAgcHJvY2Vzcy5jd2QoKSxcbiAgICAgIGVudHJ5cG9pbnQsXG4gICAgKSkuZGVmYXVsdDtcblxuICAgIHdyYXBwaW5nQXBwLmdldChcbiAgICAgICcvKicsXG4gICAgICBoYW5kbGVFcnJvcnMoYXN5bmMgZnVuY3Rpb24gKHJlcTogYW55LCByZXM6IGFueSkge1xuICAgICAgICBpZiAocmVxLnVybC5lbmRzV2l0aCgnZmF2aWNvbi5pY28nKSkge1xuICAgICAgICAgIHJlcy5zdGF0dXNDb2RlID0gNDA0O1xuICAgICAgICAgIHJlcy5zZXRIZWFkZXIoJ0NvbnRlbnQtdHlwZScsICd0ZXh0L2h0bWwnKTtcbiAgICAgICAgICByZXMuc2VuZCgnbm90IGZvdW5kJyk7XG4gICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICAgIHJlcy5zb2NrZXQub24oJ2Vycm9yJywgKGVycm9yOiB1bmtub3duKSA9PiB7XG4gICAgICAgICAgY29uc29sZS5lcnJvcignRmF0YWwnLCBlcnJvcik7XG4gICAgICAgIH0pO1xuXG4gICAgICAgIGF3YWl0IHJlbmRlcihjbGllbnRNYW5pZmVzdCwgcmVxLCByZXMpO1xuICAgICAgfSksXG4gICAgKTtcblxuICAgIHNlcnZlciA9IHdyYXBwaW5nQXBwXG4gICAgICAubGlzdGVuKFBPUlQsICgpID0+IHtcbiAgICAgICAgbG9hZGVyLmluZm8oYExpc3RlbmluZyBhdCAke1BPUlR9Li4uYCk7XG4gICAgICB9KVxuICAgICAgLm9uKCdlcnJvcicsIGZ1bmN0aW9uIChlcnJvcjogYW55KSB7XG4gICAgICAgIGlmIChlcnJvci5zeXNjYWxsICE9PSAnbGlzdGVuJykge1xuICAgICAgICAgIHRocm93IGVycm9yO1xuICAgICAgICB9XG4gICAgICAgIGNvbnN0IGlzUGlwZSA9IChwb3J0T3JQaXBlOiBzdHJpbmcgfCBudW1iZXIpID0+XG4gICAgICAgICAgTnVtYmVyLmlzTmFOKHBvcnRPclBpcGUpO1xuICAgICAgICBjb25zdCBiaW5kID0gaXNQaXBlKFBPUlQpID8gJ1BpcGUgJyArIFBPUlQgOiAnUG9ydCAnICsgUE9SVDtcbiAgICAgICAgc3dpdGNoIChlcnJvci5jb2RlKSB7XG4gICAgICAgICAgY2FzZSAnRUFDQ0VTJzpcbiAgICAgICAgICAgIGxvYWRlci5mYWlsKGJpbmQgKyAnIHJlcXVpcmVzIGVsZXZhdGVkIHByaXZpbGVnZXMnKTtcbiAgICAgICAgICAgIHByb2Nlc3MuZXhpdCgxKTtcbiAgICAgICAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgbm8tZmFsbHRocm91Z2hcbiAgICAgICAgICBjYXNlICdFQUREUklOVVNFJzpcbiAgICAgICAgICAgIGxvYWRlci5mYWlsKGJpbmQgKyAnIGlzIGFscmVhZHkgaW4gdXNlJyk7XG4gICAgICAgICAgICBwcm9jZXNzLmV4aXQoMSk7XG4gICAgICAgICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIG5vLWZhbGx0aHJvdWdoXG4gICAgICAgICAgZGVmYXVsdDpcbiAgICAgICAgICAgIHRocm93IGVycm9yO1xuICAgICAgICB9XG4gICAgICB9KTtcbiAgfVxuXG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tdmFyLXJlcXVpcmVzXG4gIGluaXRpYWxpemVBcHAocmVxdWlyZShtYW5pZmVzdFBhdGgpKTtcblxuICBwcm9jZXNzLm9uKCdTSUdJTlQnLCAoKSA9PiB7XG4gICAgbG9hZGVyLndhcm4oJ1JlY2VpdmVkIFNJR0lOVCwgZGV2c2VydmVyIHNodXR0aW5nIGRvd24nKTtcbiAgICBpZiAoc2VydmVyKSBjb25zb2xlLmxvZygnQ2xvc2luZyBzZXJ2ZXInKTtcbiAgICBzZXJ2ZXI/LmNsb3NlKCgpID0+IHtcbiAgICAgIGxvYWRlci5pbmZvKCdTZXJ2ZXIgY2xvc2VkJyk7XG4gICAgfSk7XG4gICAgcHJvY2Vzcy5leGl0KC0xKTtcbiAgfSk7XG59XG5cbmZ1bmN0aW9uIGdldE1hbmlmZXN0UGF0aEZyb21XZWJwYWNrY29uZmlnKFxuICB3ZWJwYWNrQ29uZmlnOiB3ZWJwYWNrLkNvbmZpZ3VyYXRpb24sXG4pIHtcbiAgY29uc3QgbWFuaWZlc3RGaWxlbmFtZTogc3RyaW5nID1cbiAgICAoXG4gICAgICB3ZWJwYWNrQ29uZmlnPy5wbHVnaW5zPy5maW5kKHBsdWdpbiA9PiB7XG4gICAgICAgIHJldHVybiBwbHVnaW4uY29uc3RydWN0b3IubmFtZSA9PT0gJ1N0YXRzV3JpdGVyUGx1Z2luJztcbiAgICAgIH0pIGFzIGFueVxuICAgICk/Lm9wdHM/LmZpbGVuYW1lID8/ICdtYW5pZmVzdC5qc29uJztcblxuICBjb25zdCBtYW5pZmVzdFBhdGggPSBwYXRoLmpvaW4oXG4gICAgd2VicGFja0NvbmZpZz8ub3V0cHV0Py5wYXRoID8/ICcnLFxuICAgIG1hbmlmZXN0RmlsZW5hbWUsXG4gICk7XG4gIHJldHVybiBtYW5pZmVzdFBhdGg7XG59XG4iXSwibWFwcGluZ3MiOiJBQUFBOzs7Ozs7OztBQUVBOztBQUNBOztBQUNBOztBQUdBOztBQUNBOztBQUNBOztBQUVBOztBQUVBOztBQUVBO0FBQ0EsSUFBSUEsT0FBTyxDQUFDQyxJQUFSLEtBQWlCQyxNQUFyQixFQUE2QjtFQUMzQixNQUFNQyxVQUFVLEdBQUdDLE9BQU8sQ0FBQ0MsSUFBUixDQUFhLENBQWIsQ0FBbkI7O0VBRUEsSUFBSSxDQUFDRixVQUFMLEVBQWlCO0lBQ2ZH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
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"startDevserver.d.ts","sourceRoot":"","sources":["../../src/scripts/startDevserver.ts"],"names":[],"mappings":";AAgBA,OAAO,sBAAsB,CAAC;AAe9B,MAAM,CAAC,OAAO,UAAU,cAAc,CACpC,UAAU,EAAE,MAAM,EAClB,GAAG,GAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAM,QAmNlC"}
|