@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.
Files changed (56) hide show
  1. package/CHANGELOG.md +60 -0
  2. package/dist/client.js +3 -2
  3. package/dist/client.js.map +1 -1
  4. package/dist/server.js +27 -23
  5. package/dist/server.js.map +1 -1
  6. package/lib/floodSpouts.d.ts +6 -0
  7. package/lib/floodSpouts.d.ts.map +1 -0
  8. package/lib/index.d.ts +5 -0
  9. package/lib/index.d.ts.map +1 -0
  10. package/lib/index.server.d.ts +6 -0
  11. package/lib/index.server.d.ts.map +1 -0
  12. package/lib/laySpouts.d.ts +8 -0
  13. package/lib/laySpouts.d.ts.map +1 -0
  14. package/lib/scripts/getProxyMiddlewares.d.ts +3 -0
  15. package/lib/scripts/getProxyMiddlewares.d.ts.map +1 -0
  16. package/lib/scripts/getProxyMiddlewares.js +106 -0
  17. package/lib/scripts/index.d.ts +3 -0
  18. package/lib/scripts/index.d.ts.map +1 -0
  19. package/lib/scripts/index.js +15 -0
  20. package/lib/scripts/serve.d.ts +7 -0
  21. package/lib/scripts/serve.d.ts.map +1 -0
  22. package/lib/scripts/serve.js +188 -0
  23. package/lib/scripts/startDevserver.d.ts +4 -0
  24. package/lib/scripts/startDevserver.d.ts.map +1 -0
  25. package/lib/scripts/startDevserver.js +171 -167
  26. package/lib/scripts/types.d.ts +7 -0
  27. package/lib/scripts/types.d.ts.map +1 -0
  28. package/lib/spouts/DocumentComponent.d.ts +23 -0
  29. package/lib/spouts/DocumentComponent.d.ts.map +1 -0
  30. package/lib/spouts/DocumentComponent.js +10 -6
  31. package/lib/spouts/document.d.ts +13 -0
  32. package/lib/spouts/document.d.ts.map +1 -0
  33. package/lib/spouts/document.server.d.ts +17 -0
  34. package/lib/spouts/document.server.d.ts.map +1 -0
  35. package/lib/spouts/document.server.js +1 -1
  36. package/lib/spouts/prefetch.server.d.ts +8 -0
  37. package/lib/spouts/prefetch.server.d.ts.map +1 -0
  38. package/lib/spouts/restHooks.d.ts +8 -0
  39. package/lib/spouts/restHooks.d.ts.map +1 -0
  40. package/lib/spouts/restHooks.server.d.ts +9 -0
  41. package/lib/spouts/restHooks.server.d.ts.map +1 -0
  42. package/lib/spouts/router.d.ts +14 -0
  43. package/lib/spouts/router.d.ts.map +1 -0
  44. package/lib/spouts/router.js +3 -2
  45. package/lib/spouts/router.server.d.ts +12 -0
  46. package/lib/spouts/router.server.d.ts.map +1 -0
  47. package/lib/spouts/types.d.ts +16 -0
  48. package/lib/spouts/types.d.ts.map +1 -0
  49. package/package.json +15 -8
  50. package/src/scripts/getProxyMiddlewares.ts +129 -0
  51. package/src/scripts/index.ts +2 -0
  52. package/src/scripts/serve.ts +211 -0
  53. package/src/scripts/startDevserver.ts +204 -198
  54. package/src/spouts/DocumentComponent.tsx +8 -2
  55. package/src/spouts/document.server.tsx +2 -1
  56. 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,4 @@
1
+ #!/usr/bin/env node
2
+ import 'cross-fetch/polyfill';
3
+ export default function startDevServer(entrypoint: string, env?: Record<string, unknown>): void;
4
+ //# sourceMappingURL=startDevserver.d.ts.map
@@ -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"}