@anansi/core 0.2.2 → 0.4.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 +43 -0
- package/lib/floodSpouts.js +1 -1
- package/lib/index.js +1 -1
- package/lib/index.server.js +1 -1
- package/lib/laySpouts.d.ts.map +1 -1
- package/lib/laySpouts.js +2 -2
- package/lib/scripts/startDevserver.d.ts.map +1 -1
- package/lib/scripts/startDevserver.js +75 -56
- package/lib/scripts/types.js +1 -1
- package/lib/spouts/DocumentComponent.js +1 -1
- package/lib/spouts/document.js +1 -1
- package/lib/spouts/document.server.js +1 -1
- package/lib/spouts/prefetch.server.js +1 -1
- package/lib/spouts/restHooks.js +1 -1
- package/lib/spouts/restHooks.server.js +1 -1
- package/lib/spouts/router.js +1 -1
- package/lib/spouts/router.server.js +1 -1
- package/lib/spouts/types.js +1 -1
- package/package.json +13 -9
- package/src/laySpouts.tsx +1 -1
- package/src/scripts/startDevserver.ts +82 -53
package/CHANGELOG.md
CHANGED
|
@@ -3,6 +3,49 @@
|
|
|
3
3
|
All notable changes to this project will be documented in this file.
|
|
4
4
|
See [Conventional Commits](https://conventionalcommits.org) for commit guidelines.
|
|
5
5
|
|
|
6
|
+
## [0.4.0](https://github.com/ntucker/anansi/compare/@anansi/core@0.3.1...@anansi/core@0.4.0) (2022-05-17)
|
|
7
|
+
|
|
8
|
+
|
|
9
|
+
### 🚀 Features
|
|
10
|
+
|
|
11
|
+
* SSR uses webpack devserver and responds to code changes ([#1504](https://github.com/ntucker/anansi/issues/1504)) ([25803a5](https://github.com/ntucker/anansi/commit/25803a5b49316c7e73846efbe774d5cbe3eb28a3))
|
|
12
|
+
|
|
13
|
+
|
|
14
|
+
### 📦 Package
|
|
15
|
+
|
|
16
|
+
* Update babel monorepo to v7.17.12 ([#1505](https://github.com/ntucker/anansi/issues/1505)) ([cdf449c](https://github.com/ntucker/anansi/commit/cdf449c234da377c6968847a500ef77d7340c5bb))
|
|
17
|
+
* Update jest monorepo to ^28.1.0 ([#1493](https://github.com/ntucker/anansi/issues/1493)) ([7cc9df4](https://github.com/ntucker/anansi/commit/7cc9df4a439a0743bf243a5ad8393c62c067aa44))
|
|
18
|
+
|
|
19
|
+
|
|
20
|
+
|
|
21
|
+
### [0.3.1](https://github.com/ntucker/anansi/compare/@anansi/core@0.3.0...@anansi/core@0.3.1) (2022-05-04)
|
|
22
|
+
|
|
23
|
+
|
|
24
|
+
### 📦 Package
|
|
25
|
+
|
|
26
|
+
* Update all non-major dependencies ([#1490](https://github.com/ntucker/anansi/issues/1490)) ([c333a59](https://github.com/ntucker/anansi/commit/c333a595dd912e67f64e22b4c4af58e825e75cad))
|
|
27
|
+
|
|
28
|
+
|
|
29
|
+
|
|
30
|
+
## [0.3.0](https://github.com/ntucker/anansi/compare/@anansi/core@0.2.2...@anansi/core@0.3.0) (2022-04-30)
|
|
31
|
+
|
|
32
|
+
|
|
33
|
+
### ⚠ 💥 BREAKING CHANGES
|
|
34
|
+
|
|
35
|
+
* Requires TypeScript 4.3 and Jest 28
|
|
36
|
+
|
|
37
|
+
Co-authored-by: Renovate Bot <bot@renovateapp.com>
|
|
38
|
+
Co-authored-by: Nathaniel Tucker <me@ntucker.me>
|
|
39
|
+
|
|
40
|
+
### 📦 Package
|
|
41
|
+
|
|
42
|
+
* Update babel monorepo to v7.17.10 ([#1487](https://github.com/ntucker/anansi/issues/1487)) ([4cae6b5](https://github.com/ntucker/anansi/commit/4cae6b50855c2307ba1cf4e7293579d51614f978))
|
|
43
|
+
* Update jest monorepo to ^28.0.2 ([#1484](https://github.com/ntucker/anansi/issues/1484)) ([0792dbf](https://github.com/ntucker/anansi/commit/0792dbf9e9fe2c6b22eb5414ec2a7c7aaf1d9e48))
|
|
44
|
+
* Update jest monorepo to ^28.0.3 ([#1486](https://github.com/ntucker/anansi/issues/1486)) ([a5b325a](https://github.com/ntucker/anansi/commit/a5b325af0166351f40c421d4a3a0bef59f6d1218))
|
|
45
|
+
* Update jest monorepo to v28 (major) ([#1479](https://github.com/ntucker/anansi/issues/1479)) ([06338de](https://github.com/ntucker/anansi/commit/06338de8bf871945dac4b6b35155e49fd062bfdb))
|
|
46
|
+
|
|
47
|
+
|
|
48
|
+
|
|
6
49
|
### [0.2.2](https://github.com/ntucker/anansi/compare/@anansi/core@0.2.1...@anansi/core@0.2.2) (2022-04-22)
|
|
7
50
|
|
|
8
51
|
|
package/lib/floodSpouts.js
CHANGED
|
@@ -11,4 +11,4 @@ async function floodSpouts(spouts) {
|
|
|
11
11
|
} = await spouts();
|
|
12
12
|
(0, _client.hydrateRoot)(document, app);
|
|
13
13
|
}
|
|
14
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,
|
|
14
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJmbG9vZFNwb3V0cyIsInNwb3V0cyIsImFwcCIsImh5ZHJhdGVSb290IiwiZG9jdW1lbnQiXSwic291cmNlcyI6WyIuLi9zcmMvZmxvb2RTcG91dHMudHN4Il0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGh5ZHJhdGVSb290IH0gZnJvbSAncmVhY3QtZG9tL2NsaWVudCc7XG5cbmV4cG9ydCBkZWZhdWx0IGFzeW5jIGZ1bmN0aW9uIGZsb29kU3BvdXRzKFxuICBzcG91dHM6ICgpID0+IFByb21pc2U8e1xuICAgIGFwcDogSlNYLkVsZW1lbnQ7XG4gIH0+LFxuKSB7XG4gIGNvbnN0IHsgYXBwIH0gPSBhd2FpdCBzcG91dHMoKTtcblxuICBoeWRyYXRlUm9vdChkb2N1bWVudCwgYXBwKTtcbn1cbiJdLCJtYXBwaW5ncyI6Ijs7Ozs7QUFBQTs7QUFFZSxlQUFlQSxXQUFmLENBQ2JDLE1BRGEsRUFJYjtFQUNBLE1BQU07SUFBRUM7RUFBRixJQUFVLE1BQU1ELE1BQU0sRUFBNUI7RUFFQSxJQUFBRSxtQkFBQSxFQUFZQyxRQUFaLEVBQXNCRixHQUF0QjtBQUNEIn0=
|
package/lib/index.js
CHANGED
|
@@ -20,4 +20,4 @@ exports.restHooksSpout = _restHooks.default;
|
|
|
20
20
|
var _router = _interopRequireDefault(require("./spouts/router"));
|
|
21
21
|
|
|
22
22
|
exports.routerSpout = _router.default;
|
|
23
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,
|
|
23
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6W10sInNvdXJjZXMiOlsiLi4vc3JjL2luZGV4LnRzIl0sInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCB7IGRlZmF1bHQgYXMgZmxvb2RTcG91dHMgfSBmcm9tICcuL2Zsb29kU3BvdXRzJztcbmV4cG9ydCB7IGRlZmF1bHQgYXMgZG9jdW1lbnRTcG91dCB9IGZyb20gJy4vc3BvdXRzL2RvY3VtZW50JztcbmV4cG9ydCB7IGRlZmF1bHQgYXMgcmVzdEhvb2tzU3BvdXQgfSBmcm9tICcuL3Nwb3V0cy9yZXN0SG9va3MnO1xuZXhwb3J0IHsgZGVmYXVsdCBhcyByb3V0ZXJTcG91dCB9IGZyb20gJy4vc3BvdXRzL3JvdXRlcic7XG4iXSwibWFwcGluZ3MiOiI7Ozs7Ozs7QUFBQTs7OztBQUNBOzs7O0FBQ0E7Ozs7QUFDQSJ9
|
package/lib/index.server.js
CHANGED
|
@@ -24,4 +24,4 @@ exports.routerSpout = _router.default;
|
|
|
24
24
|
var _prefetch = _interopRequireDefault(require("./spouts/prefetch.server"));
|
|
25
25
|
|
|
26
26
|
exports.prefetchSpout = _prefetch.default;
|
|
27
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,
|
|
27
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6W10sInNvdXJjZXMiOlsiLi4vc3JjL2luZGV4LnNlcnZlci50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgeyBkZWZhdWx0IGFzIGxheVNwb3V0cyB9IGZyb20gJy4vbGF5U3BvdXRzJztcbmV4cG9ydCB7IGRlZmF1bHQgYXMgZG9jdW1lbnRTcG91dCB9IGZyb20gJy4vc3BvdXRzL2RvY3VtZW50LnNlcnZlcic7XG5leHBvcnQgeyBkZWZhdWx0IGFzIHJlc3RIb29rc1Nwb3V0IH0gZnJvbSAnLi9zcG91dHMvcmVzdEhvb2tzLnNlcnZlcic7XG5leHBvcnQgeyBkZWZhdWx0IGFzIHJvdXRlclNwb3V0IH0gZnJvbSAnLi9zcG91dHMvcm91dGVyLnNlcnZlcic7XG5leHBvcnQgeyBkZWZhdWx0IGFzIHByZWZldGNoU3BvdXQgfSBmcm9tICcuL3Nwb3V0cy9wcmVmZXRjaC5zZXJ2ZXInO1xuIl0sIm1hcHBpbmdzIjoiOzs7Ozs7O0FBQUE7Ozs7QUFDQTs7OztBQUNBOzs7O0FBQ0E7Ozs7QUFDQSJ9
|
package/lib/laySpouts.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"laySpouts.d.ts","sourceRoot":"","sources":["../src/laySpouts.tsx"],"names":[],"mappings":"AAEA,OAAO,EAAE,MAAM,EAAE,MAAM,iBAAiB,CAAC;AACzC,OAAO,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAC;AAE7C,MAAM,CAAC,OAAO,UAAU,SAAS,CAC/B,MAAM,EAAE,CAAC,KAAK,EAAE,WAAW,KAAK,OAAO,CAAC;IACtC,GAAG,EAAE,GAAG,CAAC,OAAO,CAAC;CAClB,CAAC,EACF,EAAE,
|
|
1
|
+
{"version":3,"file":"laySpouts.d.ts","sourceRoot":"","sources":["../src/laySpouts.tsx"],"names":[],"mappings":"AAEA,OAAO,EAAE,MAAM,EAAE,MAAM,iBAAiB,CAAC;AACzC,OAAO,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAC;AAE7C,MAAM,CAAC,OAAO,UAAU,SAAS,CAC/B,MAAM,EAAE,CAAC,KAAK,EAAE,WAAW,KAAK,OAAO,CAAC;IACtC,GAAG,EAAE,GAAG,CAAC,OAAO,CAAC;CAClB,CAAC,EACF,EAAE,SAAe,EAAE,GAAE;IAAE,SAAS,CAAC,EAAE,MAAM,CAAA;CAAO,UAkDjD"}
|
package/lib/laySpouts.js
CHANGED
|
@@ -6,7 +6,7 @@ exports.default = laySpouts;
|
|
|
6
6
|
var _server = require("react-dom/server");
|
|
7
7
|
|
|
8
8
|
function laySpouts(spouts, {
|
|
9
|
-
timeoutMS =
|
|
9
|
+
timeoutMS = 100
|
|
10
10
|
} = {}) {
|
|
11
11
|
const render = async (clientManifest, req, res) => {
|
|
12
12
|
const {
|
|
@@ -68,4 +68,4 @@ function laySpouts(spouts, {
|
|
|
68
68
|
|
|
69
69
|
return render;
|
|
70
70
|
}
|
|
71
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,
|
|
71
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJsYXlTcG91dHMiLCJzcG91dHMiLCJ0aW1lb3V0TVMiLCJyZW5kZXIiLCJjbGllbnRNYW5pZmVzdCIsInJlcSIsInJlcyIsImFwcCIsImRpZEVycm9yIiwicGlwZSIsImFib3J0IiwicmVhY3RSZW5kZXIiLCJvblNoZWxsUmVhZHkiLCJzdGF0dXNDb2RlIiwic2V0SGVhZGVyIiwib25TaGVsbEVycm9yIiwib25FcnJvciIsIngiLCJjb25zb2xlIiwiZXJyb3IiLCJzZXRUaW1lb3V0Il0sInNvdXJjZXMiOlsiLi4vc3JjL2xheVNwb3V0cy50c3giXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgcmVuZGVyVG9QaXBlYWJsZVN0cmVhbSBhcyByZWFjdFJlbmRlciB9IGZyb20gJ3JlYWN0LWRvbS9zZXJ2ZXInO1xuXG5pbXBvcnQgeyBSZW5kZXIgfSBmcm9tICcuL3NjcmlwdHMvdHlwZXMnO1xuaW1wb3J0IHsgU2VydmVyUHJvcHMgfSBmcm9tICcuL3Nwb3V0cy90eXBlcyc7XG5cbmV4cG9ydCBkZWZhdWx0IGZ1bmN0aW9uIGxheVNwb3V0cyhcbiAgc3BvdXRzOiAocHJvcHM6IFNlcnZlclByb3BzKSA9PiBQcm9taXNlPHtcbiAgICBhcHA6IEpTWC5FbGVtZW50O1xuICB9PixcbiAgeyB0aW1lb3V0TVMgPSAxMDAgfTogeyB0aW1lb3V0TVM/OiBudW1iZXIgfSA9IHt9LFxuKSB7XG4gIGNvbnN0IHJlbmRlcjogUmVuZGVyID0gYXN5bmMgKGNsaWVudE1hbmlmZXN0LCByZXEsIHJlcykgPT4ge1xuICAgIGNvbnN0IHsgYXBwIH0gPSBhd2FpdCBzcG91dHMoeyBjbGllbnRNYW5pZmVzdCwgcmVxLCByZXMgfSk7XG4gICAgbGV0IGRpZEVycm9yID0gZmFsc2U7XG4gICAgY29uc3QgeyBwaXBlLCBhYm9ydCB9ID0gcmVhY3RSZW5kZXIoXG4gICAgICBhcHAsXG4gICAgICAvKlxuICAgICAgVGhpcyBpcyBub3QgZG9jdW1lbnRlZCwgc28gaW5jbHVkZWQgdGhlIHR5cGVzIGhlcmUgZm9yIHJlZmVyZW5jZTpcbnR5cGUgT3B0aW9ucyA9IHt8XG4gIGlkZW50aWZpZXJQcmVmaXg/OiBzdHJpbmcsXG4gIG5hbWVzcGFjZVVSST86IHN0cmluZyxcbiAgbm9uY2U/OiBzdHJpbmcsXG4gIGJvb3RzdHJhcFNjcmlwdENvbnRlbnQ/OiBzdHJpbmcsXG4gIGJvb3RzdHJhcFNjcmlwdHM/OiBBcnJheTxzdHJpbmc+LFxuICBib290c3RyYXBNb2R1bGVzPzogQXJyYXk8c3RyaW5nPixcbiAgcHJvZ3Jlc3NpdmVDaHVua1NpemU/OiBudW1iZXIsXG4gIG9uU2hlbGxSZWFkeT86ICgpID0+IHZvaWQsXG4gIG9uU2hlbGxFcnJvcj86ICgpID0+IHZvaWQsXG4gIG9uQWxsUmVhZHk/OiAoKSA9PiB2b2lkLFxuICBvbkVycm9yPzogKGVycm9yOiBtaXhlZCkgPT4gdm9pZCxcbnx9O1xuICAqL1xuICAgICAge1xuICAgICAgICAvL2Jvb3RzdHJhcFNjcmlwdHM6IGFzc2V0cy5maWx0ZXIoYXNzZXQgPT4gYXNzZXQuZW5kc1dpdGgoJy5qcycpKSxcbiAgICAgICAgb25TaGVsbFJlYWR5KCkge1xuICAgICAgICAgIC8vbWFuYWdlcnMuZm9yRWFjaChtYW5hZ2VyID0+IG1hbmFnZXIuY2xlYW51cCgpKTtcbiAgICAgICAgICAvLyBJZiBzb21ldGhpbmcgZXJyb3JlZCBiZWZvcmUgd2Ugc3RhcnRlZCBzdHJlYW1pbmcsIHdlIHNldCB0aGUgZXJyb3IgY29kZSBhcHByb3ByaWF0ZWx5LlxuICAgICAgICAgIHJlcy5zdGF0dXNDb2RlID0gZGlkRXJyb3IgPyA1MDAgOiAyMDA7XG4gICAgICAgICAgcmVzLnNldEhlYWRlcignQ29udGVudC10eXBlJywgJ3RleHQvaHRtbCcpO1xuICAgICAgICAgIHBpcGUocmVzKTtcbiAgICAgICAgfSxcbiAgICAgICAgb25TaGVsbEVycm9yKCkge1xuICAgICAgICAgIGRpZEVycm9yID0gdHJ1ZTtcbiAgICAgICAgICByZXMuc3RhdHVzQ29kZSA9IDUwMDtcbiAgICAgICAgICBwaXBlKHJlcyk7XG4gICAgICAgIH0sXG4gICAgICAgIG9uRXJyb3IoeDogYW55KSB7XG4gICAgICAgICAgZGlkRXJyb3IgPSB0cnVlO1xuICAgICAgICAgIGNvbnNvbGUuZXJyb3IoeCk7XG4gICAgICAgICAgcmVzLnN0YXR1c0NvZGUgPSA1MDA7XG4gICAgICAgICAgcGlwZShyZXMpO1xuICAgICAgICB9LFxuICAgICAgfSxcbiAgICApO1xuICAgIC8vIEFiYW5kb24gYW5kIHN3aXRjaCB0byBjbGllbnQgcmVuZGVyaW5nIGlmIGVub3VnaCB0aW1lIHBhc3Nlcy5cbiAgICAvLyBUcnkgbG93ZXJpbmcgdGhpcyB0byBzZWUgdGhlIGNsaWVudCByZWNvdmVyLlxuICAgIHNldFRpbWVvdXQoYWJvcnQsIHRpbWVvdXRNUyk7XG4gIH07XG4gIHJldHVybiByZW5kZXI7XG59XG4iXSwibWFwcGluZ3MiOiI7Ozs7O0FBQUE7O0FBS2UsU0FBU0EsU0FBVCxDQUNiQyxNQURhLEVBSWI7RUFBRUMsU0FBUyxHQUFHO0FBQWQsSUFBOEMsRUFKakMsRUFLYjtFQUNBLE1BQU1DLE1BQWMsR0FBRyxPQUFPQyxjQUFQLEVBQXVCQyxHQUF2QixFQUE0QkMsR0FBNUIsS0FBb0M7SUFDekQsTUFBTTtNQUFFQztJQUFGLElBQVUsTUFBTU4sTUFBTSxDQUFDO01BQUVHLGNBQUY7TUFBa0JDLEdBQWxCO01BQXVCQztJQUF2QixDQUFELENBQTVCO0lBQ0EsSUFBSUUsUUFBUSxHQUFHLEtBQWY7SUFDQSxNQUFNO01BQUVDLElBQUY7TUFBUUM7SUFBUixJQUFrQixJQUFBQyw4QkFBQSxFQUN0QkosR0FEc0I7SUFFdEI7QUFDTjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7SUFDTTtNQUNFO01BQ0FLLFlBQVksR0FBRztRQUNiO1FBQ0E7UUFDQU4sR0FBRyxDQUFDTyxVQUFKLEdBQWlCTCxRQUFRLEdBQUcsR0FBSCxHQUFTLEdBQWxDO1FBQ0FGLEdBQUcsQ0FBQ1EsU0FBSixDQUFjLGNBQWQsRUFBOEIsV0FBOUI7UUFDQUwsSUFBSSxDQUFDSCxHQUFELENBQUo7TUFDRCxDQVJIOztNQVNFUyxZQUFZLEdBQUc7UUFDYlAsUUFBUSxHQUFHLElBQVg7UUFDQUYsR0FBRyxDQUFDTyxVQUFKLEdBQWlCLEdBQWpCO1FBQ0FKLElBQUksQ0FBQ0gsR0FBRCxDQUFKO01BQ0QsQ0FiSDs7TUFjRVUsT0FBTyxDQUFDQyxDQUFELEVBQVM7UUFDZFQsUUFBUSxHQUFHLElBQVg7UUFDQVUsT0FBTyxDQUFDQyxLQUFSLENBQWNGLENBQWQ7UUFDQVgsR0FBRyxDQUFDTyxVQUFKLEdBQWlCLEdBQWpCO1FBQ0FKLElBQUksQ0FBQ0gsR0FBRCxDQUFKO01BQ0Q7O0lBbkJILENBbEJzQixDQUF4QixDQUh5RCxDQTJDekQ7SUFDQTs7SUFDQWMsVUFBVSxDQUFDVixLQUFELEVBQVFSLFNBQVIsQ0FBVjtFQUNELENBOUNEOztFQStDQSxPQUFPQyxNQUFQO0FBQ0QifQ==
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"startDevserver.d.ts","sourceRoot":"","sources":["../../src/scripts/startDevserver.ts"],"names":[],"mappings":";
|
|
1
|
+
{"version":3,"file":"startDevserver.d.ts","sourceRoot":"","sources":["../../src/scripts/startDevserver.ts"],"names":[],"mappings":";AAmBA,OAAO,sBAAsB,CAAC"}
|
|
@@ -11,8 +11,6 @@ var _path = _interopRequireDefault(require("path"));
|
|
|
11
11
|
|
|
12
12
|
var _webpack = _interopRequireDefault(require("webpack"));
|
|
13
13
|
|
|
14
|
-
var _webpackHotMiddleware = _interopRequireDefault(require("webpack-hot-middleware"));
|
|
15
|
-
|
|
16
14
|
var _memfs = require("memfs");
|
|
17
15
|
|
|
18
16
|
var _express = _interopRequireDefault(require("express"));
|
|
@@ -29,8 +27,16 @@ var _unionfs = require("unionfs");
|
|
|
29
27
|
|
|
30
28
|
var _compression = _interopRequireDefault(require("compression"));
|
|
31
29
|
|
|
30
|
+
var _webpackDevServer = _interopRequireDefault(require("webpack-dev-server"));
|
|
31
|
+
|
|
32
|
+
var _importFresh = _interopRequireDefault(require("import-fresh"));
|
|
33
|
+
|
|
34
|
+
var _chalk = _interopRequireDefault(require("chalk"));
|
|
35
|
+
|
|
32
36
|
require("cross-fetch/polyfill");
|
|
33
37
|
|
|
38
|
+
var _webpackConfigs$, _webpackConfigs$$devS;
|
|
39
|
+
|
|
34
40
|
// eslint-disable-next-line @typescript-eslint/no-var-requires
|
|
35
41
|
const webpackConfig = require(require.resolve( // TODO: use normal resolution algorithm to find webpack file
|
|
36
42
|
_path.default.join(process.cwd(), 'webpack.config')));
|
|
@@ -45,7 +51,8 @@ if (!entrypoint) {
|
|
|
45
51
|
process.exit(-1);
|
|
46
52
|
}
|
|
47
53
|
|
|
48
|
-
|
|
54
|
+
console.log(_chalk.default.greenBright(`Starting SSR at`), _chalk.default.cyanBright(process.env.WEBPACK_PUBLIC_HOST));
|
|
55
|
+
const loader = (0, _ora.default)().start(); // Set up in memory filesystem
|
|
49
56
|
|
|
50
57
|
const volume = new _memfs.Volume();
|
|
51
58
|
const fs = (0, _memfs.createFsFromVolume)(volume);
|
|
@@ -82,17 +89,18 @@ const webpackConfigs = [webpackConfig({
|
|
|
82
89
|
}, {
|
|
83
90
|
mode: 'development'
|
|
84
91
|
}), webpackConfig({
|
|
85
|
-
entrypoint:
|
|
92
|
+
entrypoint: entrypoint.replace('.tsx', '.server.tsx'),
|
|
86
93
|
name: 'server'
|
|
87
94
|
}, {
|
|
88
95
|
mode: 'development',
|
|
89
96
|
target: 'node'
|
|
90
|
-
})]; //
|
|
97
|
+
})]; // only have one output for server so we can avoid cached modules
|
|
98
|
+
|
|
99
|
+
webpackConfigs[1].plugins.push(new _webpack.default.optimize.LimitChunkCountPlugin({
|
|
100
|
+
maxChunks: 1
|
|
101
|
+
})); // initialize the webpack compiler
|
|
91
102
|
|
|
92
103
|
const compiler = (0, _webpack.default)(webpackConfigs);
|
|
93
|
-
compiler.outputFileSystem = { ...fs,
|
|
94
|
-
join: _path.default.join
|
|
95
|
-
};
|
|
96
104
|
|
|
97
105
|
_sourceMapSupport.default.install({
|
|
98
106
|
hookRequire: true
|
|
@@ -115,20 +123,22 @@ function handleErrors(fn) {
|
|
|
115
123
|
next(x);
|
|
116
124
|
}
|
|
117
125
|
};
|
|
118
|
-
}
|
|
126
|
+
}
|
|
119
127
|
|
|
128
|
+
let render; // Start the express server after the first compilation
|
|
120
129
|
|
|
121
130
|
function initializeApp(stats) {
|
|
122
131
|
var _clientStats$compilat, _clientStats$compilat2, _serverStats$compilat, _serverStats$compilat2;
|
|
123
132
|
|
|
124
|
-
loader.info('Launching server');
|
|
125
133
|
const [clientStats, serverStats] = stats;
|
|
126
134
|
|
|
127
135
|
if (clientStats !== null && clientStats !== void 0 && (_clientStats$compilat = clientStats.compilation) !== null && _clientStats$compilat !== void 0 && (_clientStats$compilat2 = _clientStats$compilat.errors) !== null && _clientStats$compilat2 !== void 0 && _clientStats$compilat2.length || serverStats !== null && serverStats !== void 0 && (_serverStats$compilat = serverStats.compilation) !== null && _serverStats$compilat !== void 0 && (_serverStats$compilat2 = _serverStats$compilat.errors) !== null && _serverStats$compilat2 !== void 0 && _serverStats$compilat2.length) {
|
|
128
|
-
|
|
129
|
-
|
|
136
|
+
loader.fail('Errors for client build: ' + clientStats.compilation.errors);
|
|
137
|
+
loader.fail('Errors for server build: ' + serverStats.compilation.errors); // TODO: handle more gracefully
|
|
130
138
|
|
|
131
139
|
process.exit(-1);
|
|
140
|
+
} else {
|
|
141
|
+
loader.info('Launching server');
|
|
132
142
|
}
|
|
133
143
|
|
|
134
144
|
const wrappingApp = (0, _express.default)(); // eslint-disable-next-line
|
|
@@ -136,19 +146,12 @@ function initializeApp(stats) {
|
|
|
136
146
|
|
|
137
147
|
wrappingApp.use((0, _compression.default)()); // ASSETS
|
|
138
148
|
|
|
139
|
-
wrappingApp.use((0, _webpackHotMiddleware.default)(compiler.compilers[0], {
|
|
140
|
-
log: console.log,
|
|
141
|
-
path: '/__webpack_hmr',
|
|
142
|
-
heartbeat: 10 * 1000 //noInfo: true,
|
|
143
|
-
//name: 'client',
|
|
144
|
-
|
|
145
|
-
}));
|
|
146
149
|
const clientManifest = clientStats.toJson();
|
|
147
150
|
|
|
148
151
|
const assetRoute = async (req, res) => {
|
|
149
|
-
var _req$url$
|
|
152
|
+
var _req$url$substring$sp, _req$url, _clientManifest$outpu;
|
|
150
153
|
|
|
151
|
-
const filename = (_req$url$
|
|
154
|
+
const filename = (_req$url$substring$sp = (_req$url = req.url) === null || _req$url === void 0 ? void 0 : _req$url.substring(process.env.WEBPACK_PUBLIC_PATH.length).split('?')[0]) != null ? _req$url$substring$sp : '';
|
|
152
155
|
|
|
153
156
|
const assetPath = _path.default.join((_clientManifest$outpu = clientManifest.outputPath) != null ? _clientManifest$outpu : '', filename);
|
|
154
157
|
|
|
@@ -166,8 +169,7 @@ function initializeApp(stats) {
|
|
|
166
169
|
wrappingApp.get(`${process.env.WEBPACK_PUBLIC_PATH}*`, assetRoute); // SERVER SIDE RENDERING
|
|
167
170
|
// eslint-disable-next-line @typescript-eslint/no-var-requires
|
|
168
171
|
|
|
169
|
-
|
|
170
|
-
|
|
172
|
+
render = require(getServerBundle(serverStats)).default;
|
|
171
173
|
wrappingApp.get('/*', handleErrors(async function (req, res) {
|
|
172
174
|
if (req.url.endsWith('favicon.ico')) {
|
|
173
175
|
res.statusCode = 404;
|
|
@@ -182,7 +184,7 @@ function initializeApp(stats) {
|
|
|
182
184
|
await render(clientManifest, req, res);
|
|
183
185
|
}));
|
|
184
186
|
server = wrappingApp.listen(PORT, () => {
|
|
185
|
-
|
|
187
|
+
loader.succeed(`SSR Running`);
|
|
186
188
|
}).on('error', function (error) {
|
|
187
189
|
if (error.syscall !== 'listen') {
|
|
188
190
|
throw error;
|
|
@@ -207,44 +209,61 @@ function initializeApp(stats) {
|
|
|
207
209
|
throw error;
|
|
208
210
|
}
|
|
209
211
|
});
|
|
210
|
-
}
|
|
211
|
-
|
|
212
|
+
}
|
|
212
213
|
|
|
213
|
-
const
|
|
214
|
-
|
|
215
|
-
|
|
216
|
-
|
|
214
|
+
const devServer = new _webpackDevServer.default( // write to memory filesystem so we can import
|
|
215
|
+
{ ...webpackConfigs[0].devServer,
|
|
216
|
+
|
|
217
|
+
/*client: {
|
|
218
|
+
...webpackConfigs[0].devServer?.client,
|
|
219
|
+
webSocketURL: {
|
|
220
|
+
...webpackConfigs[0].devServer?.client.webSocketURL,
|
|
221
|
+
port: 8080,
|
|
222
|
+
},
|
|
223
|
+
},*/
|
|
224
|
+
devMiddleware: { ...((_webpackConfigs$ = webpackConfigs[0]) === null || _webpackConfigs$ === void 0 ? void 0 : (_webpackConfigs$$devS = _webpackConfigs$.devServer) === null || _webpackConfigs$$devS === void 0 ? void 0 : _webpackConfigs$$devS.devMiddleware),
|
|
225
|
+
outputFileSystem: { ...fs,
|
|
226
|
+
join: _path.default.join
|
|
227
|
+
}
|
|
217
228
|
}
|
|
229
|
+
}, compiler);
|
|
230
|
+
|
|
231
|
+
const runServer = async () => {
|
|
232
|
+
await devServer.start();
|
|
233
|
+
devServer.compiler.hooks.done.tap('Anansi Server', multiStats => {
|
|
234
|
+
if (!multiStats) {
|
|
235
|
+
loader.fail('stats not send');
|
|
236
|
+
process.exit(-1);
|
|
237
|
+
}
|
|
218
238
|
|
|
219
|
-
|
|
220
|
-
console.error('Error in compilation');
|
|
221
|
-
console.error(err);
|
|
222
|
-
process.exit(-1);
|
|
223
|
-
}
|
|
239
|
+
if (!Object.hasOwn(multiStats, 'stats')) return;
|
|
224
240
|
|
|
225
|
-
|
|
226
|
-
|
|
227
|
-
|
|
228
|
-
|
|
241
|
+
if (server && multiStats.stats.length > 1) {
|
|
242
|
+
render = (0, _importFresh.default)(getServerBundle(multiStats.stats[1])).default;
|
|
243
|
+
return;
|
|
244
|
+
}
|
|
229
245
|
|
|
230
|
-
|
|
231
|
-
|
|
232
|
-
|
|
233
|
-
|
|
234
|
-
|
|
235
|
-
|
|
236
|
-
}
|
|
237
|
-
|
|
238
|
-
|
|
246
|
+
if (!server) {
|
|
247
|
+
try {
|
|
248
|
+
initializeApp(multiStats.stats);
|
|
249
|
+
} catch (e) {
|
|
250
|
+
loader.fail('Failed to initialize app');
|
|
251
|
+
console.error(e);
|
|
252
|
+
}
|
|
253
|
+
}
|
|
254
|
+
});
|
|
255
|
+
};
|
|
256
|
+
|
|
257
|
+
const stopServer = async () => {
|
|
258
|
+
loader.info('Stopping server...');
|
|
259
|
+
await devServer.stop();
|
|
260
|
+
loader.info('Server closed');
|
|
261
|
+
};
|
|
239
262
|
|
|
263
|
+
process.on('SIGINT', () => {
|
|
240
264
|
loader.warn('Received SIGINT, devserver shutting down');
|
|
241
|
-
|
|
242
|
-
(_server = server) === null || _server === void 0 ? void 0 : _server.close(() => {
|
|
243
|
-
loader.info('Server closed');
|
|
244
|
-
});
|
|
245
|
-
watcher.close(() => {
|
|
246
|
-
loader.info('webpack build stopped');
|
|
247
|
-
});
|
|
265
|
+
stopServer();
|
|
248
266
|
process.exit(-1);
|
|
249
267
|
});
|
|
250
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9zY3JpcHRzL3N0YXJ0RGV2c2VydmVyLnRzIl0sIm5hbWVzIjpbIndlYnBhY2tDb25maWciLCJyZXF1aXJlIiwicmVzb2x2ZSIsInBhdGgiLCJqb2luIiwicHJvY2VzcyIsImN3ZCIsImVudHJ5cG9pbnQiLCJhcmd2IiwiUE9SVCIsImVudiIsIldFQlBBQ0tfUFVCTElDX0hPU1QiLCJXRUJQQUNLX1BVQkxJQ19QQVRIIiwiY29uc29sZSIsImxvZyIsImV4aXQiLCJsb2FkZXIiLCJzdGFydCIsInZvbHVtZSIsIlZvbHVtZSIsImZzIiwidWZzIiwidXNlIiwiZGlza0ZzIiwicmVhZEZpbGUiLCJzZXJ2ZXIiLCJob3RFbnRyeSIsImVudHJ5UGF0aCIsImdlbmVyYXRlZEVudHJ5cG9pbnQiLCJ0bXAiLCJmaWxlU3luYyIsInBvc3RmaXgiLCJ3cml0ZVN5bmMiLCJmZCIsIndlYnBhY2tDb25maWdzIiwibmFtZSIsIm1vZGUiLCJyZXBsYWNlIiwidGFyZ2V0IiwiY29tcGlsZXIiLCJvdXRwdXRGaWxlU3lzdGVtIiwic291cmNlTWFwU3VwcG9ydCIsImluc3RhbGwiLCJob29rUmVxdWlyZSIsImdldFNlcnZlckJ1bmRsZSIsInNlcnZlclN0YXRzIiwic2VydmVySnNvbiIsInRvSnNvbiIsImFzc2V0cyIsIm91dHB1dFBhdGgiLCJoYW5kbGVFcnJvcnMiLCJmbiIsInJlcSIsInJlcyIsIm5leHQiLCJ4IiwiaW5pdGlhbGl6ZUFwcCIsInN0YXRzIiwiaW5mbyIsImNsaWVudFN0YXRzIiwiY29tcGlsYXRpb24iLCJlcnJvcnMiLCJsZW5ndGgiLCJ3cmFwcGluZ0FwcCIsImNvbXBpbGVycyIsImhlYXJ0YmVhdCIsImNsaWVudE1hbmlmZXN0IiwiYXNzZXRSb3V0ZSIsImZpbGVuYW1lIiwidXJsIiwic3Vic3RyIiwiYXNzZXRQYXRoIiwiZmlsZUNvbnRlbnQiLCJ0b1N0cmluZyIsImNvbnRlbnRUeXBlIiwic2VuZCIsImUiLCJzdGF0dXMiLCJnZXQiLCJyZW5kZXIiLCJkZWZhdWx0IiwiZW5kc1dpdGgiLCJzdGF0dXNDb2RlIiwic2V0SGVhZGVyIiwic29ja2V0Iiwib24iLCJlcnJvciIsImxpc3RlbiIsInN5c2NhbGwiLCJpc1BpcGUiLCJwb3J0T3JQaXBlIiwiTnVtYmVyIiwiaXNOYU4iLCJiaW5kIiwiY29kZSIsIndhdGNoZXIiLCJ3YXRjaCIsImVyciIsIm11bHRpU3RhdHMiLCJzdWNjZWVkIiwid2FybiIsImNsb3NlIl0sIm1hcHBpbmdzIjoiQUFBQTs7Ozs7QUFFQTs7QUFDQTs7QUFDQTs7QUFDQTs7QUFDQTs7QUFDQTs7QUFFQTs7QUFDQTs7QUFDQTs7QUFDQTs7QUFDQTs7QUFDQTs7QUFDQTs7QUFFQTs7QUFHQTtBQUNBLE1BQU1BLGFBQWEsR0FBR0MsT0FBTyxDQUFDQSxPQUFPLENBQUNDLE9BQVIsRUFDNUI7QUFDQUMsY0FBS0MsSUFBTCxDQUFVQyxPQUFPLENBQUNDLEdBQVIsRUFBVixFQUF5QixnQkFBekIsQ0FGNEIsQ0FBRCxDQUE3Qjs7QUFLQSxNQUFNQyxVQUFVLEdBQUdGLE9BQU8sQ0FBQ0csSUFBUixDQUFhLENBQWIsQ0FBbkI7QUFDQSxNQUFNQyxJQUFJLEdBQUdKLE9BQU8sQ0FBQ0ssR0FBUixDQUFZRCxJQUFaLElBQW9CLElBQWpDO0FBQ0FKLE9BQU8sQ0FBQ0ssR0FBUixDQUFZQyxtQkFBWixHQUFtQyxvQkFBbUJGLElBQUssRUFBM0Q7QUFDQUosT0FBTyxDQUFDSyxHQUFSLENBQVlFLG1CQUFaLEdBQWtDLFVBQWxDOztBQUVBLElBQUksQ0FBQ0wsVUFBTCxFQUFpQjtBQUNmTSxFQUFBQSxPQUFPLENBQUNDLEdBQVIsQ0FBYSxVQUFTVCxPQUFPLENBQUNHLElBQVIsQ0FBYSxDQUFiLENBQWdCLG9CQUF0QztBQUNBSCxFQUFBQSxPQUFPLENBQUNVLElBQVIsQ0FBYSxDQUFDLENBQWQ7QUFDRDs7QUFFRCxNQUFNQyxNQUFNLEdBQUcsa0JBQUkscUJBQUosRUFBMkJDLEtBQTNCLEVBQWYsQyxDQUVBOztBQUNBLE1BQU1DLE1BQU0s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QUFhLENBQUMsQ0FBZDtBQUNELENBVkQiLCJzb3VyY2VzQ29udGVudCI6WyIjIS91c3IvYmluL2VudiBub2RlXG5cbmltcG9ydCB7IHByb21pc2lmeSB9IGZyb20gJ3V0aWwnO1xuaW1wb3J0IGRpc2tGcyBmcm9tICdmcyc7XG5pbXBvcnQgcGF0aCBmcm9tICdwYXRoJztcbmltcG9ydCB3ZWJwYWNrLCB7IE11bHRpQ29tcGlsZXIgfSBmcm9tICd3ZWJwYWNrJztcbmltcG9ydCB3ZWJwYWNrSG90TWlkZGxld2FyZSBmcm9tICd3ZWJwYWNrLWhvdC1taWRkbGV3YXJlJztcbmltcG9ydCB7IGNyZWF0ZUZzRnJvbVZvbHVtZSwgVm9sdW1lIH0gZnJvbSAnbWVtZnMnO1xuaW1wb3J0IHsgU2VydmVyLCBJbmNvbWluZ01lc3NhZ2UsIFNlcnZlclJlc3BvbnNlIH0gZnJvbSAnaHR0cCc7XG5pbXBvcnQgZXhwcmVzcywgeyBOZXh0RnVuY3Rpb24gfSBmcm9tICdleHByZXNzJztcbmltcG9ydCBvcmEgZnJvbSAnb3JhJztcbmltcG9ydCB7IHBhdGNoUmVxdWlyZSB9IGZyb20gJ2ZzLW1vbmtleSc7XG5pbXBvcnQgdG1wIGZyb20gJ3RtcCc7XG5pbXBvcnQgc291cmNlTWFwU3VwcG9ydCBmcm9tICdzb3VyY2UtbWFwLXN1cHBvcnQnO1xuaW1wb3J0IHsgdWZzIH0gZnJvbSAndW5pb25mcyc7XG5pbXBvcnQgY29tcHJlc3MgZnJvbSAnY29tcHJlc3Npb24nO1xuXG5pbXBvcnQgJ2Nyb3NzLWZldGNoL3BvbHlmaWxsJztcbmltcG9ydCB7IFJlbmRlciB9IGZyb20gJy4vdHlwZXMnO1xuXG4vLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25vLXZhci1yZXF1aXJlc1xuY29uc3Qgd2VicGFja0NvbmZpZyA9IHJlcXVpcmUocmVxdWlyZS5yZXNvbHZlKFxuICAvLyBUT0RPOiB1c2Ugbm9ybWFsIHJlc29sdXRpb24gYWxnb3JpdGhtIHRvIGZpbmQgd2VicGFjayBmaWxlXG4gIHBhdGguam9pbihwcm9jZXNzLmN3ZCgpLCAnd2VicGFjay5jb25maWcnKSxcbikpO1xuXG5jb25zdCBlbnRyeXBvaW50ID0gcHJvY2Vzcy5hcmd2WzJdO1xuY29uc3QgUE9SVCA9IHByb2Nlc3MuZW52LlBPUlQgfHwgMzAwMDtcbnByb2Nlc3MuZW52LldFQlBBQ0tfUFVCTElDX0hPU1QgPSBgaHR0cDovL2xvY2FsaG9zdDoke1BPUlR9YDtcbnByb2Nlc3MuZW52LldFQlBBQ0tfUFVCTElDX1BBVEggPSAnL2Fzc2V0cy8nO1xuXG5pZiAoIWVudHJ5cG9pbnQpIHtcbiAgY29uc29sZS5sb2coYFVzYWdlOiAke3Byb2Nlc3MuYXJndlswXX0gPGVudHJ5cG9pbnQtZmlsZT5gKTtcbiAgcHJvY2Vzcy5leGl0KC0xKTtcbn1cblxuY29uc3QgbG9hZGVyID0gb3JhKCdCdWlsZGluZyB0aGUgYXNzZXRzJykuc3RhcnQoKTtcblxuLy8gU2V0IHVwIGluIG1lbW9yeSBmaWxlc3lzdGVtXG5jb25zdCB2b2x1bWUgPSBuZXcgVm9sdW1lKCk7XG5jb25zdCBmcyA9IGNyZWF0ZUZzRnJvbVZvbHVtZSh2b2x1bWUpO1xudWZzLnVzZShkaXNrRnMpLnVzZShmcyBhcyBhbnkpO1xuXG5wYXRjaFJlcXVpcmUodWZzKTtcbmNvbnN0IHJlYWRGaWxlID0gcHJvbWlzaWZ5KHVmcy5yZWFkRmlsZSk7XG5sZXQgc2VydmVyOiBTZXJ2ZXIgfCB1bmRlZmluZWQ7XG5cbi8vIEdlbmVyYXRlIGEgdGVtcG9yYXJ5IGZpbGUgc28gd2UgY2FuIGhvdCByZWxvYWQgZnJvbSB0aGUgcm9vdCBvZiB0aGUgYXBwbGljYXRpb25cbmZ1bmN0aW9uIGhvdEVudHJ5KGVudHJ5UGF0aDogc3RyaW5nKSB7XG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZVxuICAvLyBAdHMtaWdub3JlIGZvciBzb21lIHJlYXNvbiBpdCdzIG5vdCBwaWNraW5nIHVwIHRoYXQgb3RoZXIgb3B0aW9ucyBhcmUgb3B0aW9uYWxcbiAgY29uc3QgZ2VuZXJhdGVkRW50cnlwb2ludCA9IHRtcC5maWxlU3luYyh7IHBvc3RmaXg6ICcuanMnIH0pO1xuICBkaXNrRnMud3JpdGVTeW5jKFxuICAgIGdlbmVyYXRlZEVudHJ5cG9pbnQuZmQsXG4gICAgYFxuaW1wb3J0IGVudHJ5IGZyb20gXCIke3BhdGgucmVzb2x2ZShwcm9jZXNzLmN3ZCgpLCBlbnRyeVBhdGgpfVwiO1xuXG5pZiAobW9kdWxlLmhvdCkge1xuICBtb2R1bGUuaG90LmFjY2VwdCgpO1xufVxuXG5leHBvcnQgZGVmYXVsdCBlbnRyeTtcbiAgYCxcbiAgKTtcbiAgcmV0dXJuIGdlbmVyYXRlZEVudHJ5cG9pbnQ7XG59XG5cbmNvbnN0IHdlYnBhY2tDb25maWdzID0gW1xuICB3ZWJwYWNrQ29uZmlnKFxuICAgIHtcbiAgICAgIGVudHJ5cG9pbnQ6IGhvdEVudHJ5KGVudHJ5cG9pbnQpLm5hbWUsXG4gICAgICBuYW1lOiAnY2xpZW50JyxcbiAgICB9LFxuICAgIHsgbW9kZTogJ2RldmVsb3BtZW50JyB9LFxuICApLFxuICB3ZWJwYWNrQ29uZmlnKFxuICAgIHtcbiAgICAgIGVudHJ5cG9pbnQ6IGhvdEVudHJ5KGVudHJ5cG9pbnQucmVwbGFjZSgnLnRzeCcsICcuc2VydmVyLnRzeCcpKS5uYW1lLFxuICAgICAgbmFtZTogJ3NlcnZlcicsXG4gICAgfSxcbiAgICB7IG1vZGU6ICdkZXZlbG9wbWVudCcsIHRhcmdldDogJ25vZGUnIH0sXG4gICksXG5dIGFzIGNvbnN0O1xuLy8gaW5pdGlhbGl6ZSB0aGUgd2VicGFjayBjb21waWxlclxuY29uc3QgY29tcGlsZXI6IE11bHRpQ29tcGlsZXIgPSB3ZWJwYWNrKHdlYnBhY2tDb25maWdzKTtcblxuY29tcGlsZXIub3V0cHV0RmlsZVN5c3RlbSA9IHtcbiAgLi4uZnMsXG4gIGpvaW46IHBhdGguam9pbiBhcyBhbnksXG59IGFzIGFueSBhcyB0eXBlb2YgZnM7XG5cbnNvdXJjZU1hcFN1cHBvcnQuaW5zdGFsbCh7IGhvb2tSZXF1aXJlOiB0cnVlIH0pO1xuXG5mdW5jdGlvbiBnZXRTZXJ2ZXJCdW5kbGUoc2VydmVyU3RhdHM6IHdlYnBhY2suU3RhdHMpIHtcbiAgY29uc3Qgc2VydmVySnNvbiA9IHNlcnZlclN0YXRzLnRvSnNvbih7IGFzc2V0czogdHJ1ZSB9KTtcbiAgcmV0dXJuIHBhdGguam9pbihzZXJ2ZXJKc29uLm91dHB1dFBhdGggPz8gJycsICdtYWluLmpzJyk7XG59XG5mdW5jdGlvbiBoYW5kbGVFcnJvcnM8XG4gIEYgZXh0ZW5kcyAoXG4gICAgcmVxOiBSZXF1ZXN0IHwgSW5jb21pbmdNZXNzYWdlLFxuICAgIHJlczogUmVzcG9uc2UgfCBTZXJ2ZXJSZXNwb25zZSxcbiAgKSA9PiBQcm9taXNlPHZvaWQ+LFxuPihmbjogRikge1xuICByZXR1cm4gYXN5bmMgZnVuY3Rpb24gKFxuICAgIHJlcTogUmVxdWVzdCB8IEluY29taW5nTWVzc2FnZSxcbiAgICByZXM6IFJlc3BvbnNlIHwgU2VydmVyUmVzcG9uc2UsXG4gICAgbmV4dDogTmV4dEZ1bmN0aW9uLFxuICApIHtcbiAgICB0cnkge1xuICAgICAgcmV0dXJuIGF3YWl0IGZuKHJlcSwgcmVzKTtcbiAgICB9IGNhdGNoICh4KSB7XG4gICAgICBuZXh0KHgpO1xuICAgIH1cbiAgfTtcbn1cblxuLy8gU3RhcnQgdGhlIGV4cHJlc3Mgc2VydmVyIGFmdGVyIHRoZSBmaXJzdCBjb21waWxhdGlvblxuZnVuY3Rpb24gaW5pdGlhbGl6ZUFwcChzdGF0czogd2VicGFjay5TdGF0c1tdKSB7XG4gIGxvYWRlci5pbmZvKCdMYXVuY2hpbmcgc2VydmVyJyk7XG4gIGNvbnN0IFtjbGllbnRTdGF0cywgc2VydmVyU3RhdHNdID0gc3RhdHM7XG4gIGlmIChcbiAgICBjbGllbnRTdGF0cz8uY29tcGlsYXRpb24/LmVycm9ycz8ubGVuZ3RoIHx8XG4gICAgc2VydmVyU3RhdHM/LmNvbXBpbGF0aW9uPy5lcnJvcnM/Lmxlbmd0aFxuICApIHtcbiAgICBjb25zb2xlLmxvZygnRXJyb3JzIGZvciBjbGllbnQgYnVpbGQ6ICcsIGNsaWVudFN0YXRzLmNvbXBpbGF0aW9uLmVycm9ycyk7XG4gICAgY29uc29sZS5sb2coJ0Vycm9ycyBmb3Igc2VydmVyIGJ1aWxkOicsIHNlcnZlclN0YXRzLmNvbXBpbGF0aW9uLmVycm9ycyk7XG4gICAgLy8gVE9ETzogaGFuZGxlIG1vcmUgZ3JhY2VmdWxseVxuICAgIHByb2Nlc3MuZXhpdCgtMSk7XG4gIH1cblxuICBjb25zdCB3cmFwcGluZ0FwcCA9IGV4cHJlc3MoKTtcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lXG4gIC8vQHRzLWlnbm9yZVxuICB3cmFwcGluZ0FwcC51c2UoY29tcHJlc3MoKSk7XG5cbiAgLy8gQVNTRVRTXG4gIHdyYXBwaW5nQXBwLnVzZShcbiAgICB3ZWJwYWNrSG90TWlkZGxld2FyZShjb21waWxlci5jb21waWxlcnNbMF0sIHtcbiAgICAgIGxvZzogY29uc29sZS5sb2csXG4gICAgICBwYXRoOiAnL19fd2VicGFja19obXInLFxuICAgICAgaGVhcnRiZWF0OiAxMCAqIDEwMDAsXG4gICAgICAvL25vSW5mbzogdHJ1ZSxcbiAgICAgIC8vbmFtZTogJ2NsaWVudCcsXG4gICAgfSksXG4gICk7XG4gIGNvbnN0IGNsaWVudE1hbmlmZXN0ID0gY2xpZW50U3RhdHMudG9Kc29uKCk7XG4gIGNvbnN0IGFzc2V0Um91dGUgPSBhc3luYyAocmVxOiBSZXF1ZXN0IHwgSW5jb21pbmdNZXNzYWdlLCByZXM6IGFueSkgPT4ge1xuICAgIGNvbnN0IGZpbGVuYW1lID1cbiAgICAgIHJlcS51cmw/LnN1YnN0cigocHJvY2Vzcy5lbnYuV0VCUEFDS19QVUJMSUNfUEFUSCBhcyBzdHJpbmcpLmxlbmd0aCkgPz8gJyc7XG4gICAgY29uc3QgYXNzZXRQYXRoID0gcGF0aC5qb2luKGNsaWVudE1hbmlmZXN0Lm91dHB1dFBhdGggPz8gJycsIGZpbGVuYW1lKTtcblxuICAgIHRyeSB7XG4gICAgICBjb25zdCBmaWxlQ29udGVudCA9IChhd2FpdCByZWFkRmlsZShhc3NldFBhdGgpKS50b1N0cmluZygpO1xuICAgICAgcmVzLmNvbnRlbnRUeXBlKGZpbGVuYW1lKTtcbiAgICAgIHJlcy5zZW5kKGZpbGVDb250ZW50KTtcbiAgICB9IGNhdGNoIChlKSB7XG4gICAgICByZXMuc3RhdHVzKDQwNCk7XG4gICAgICByZXMuc2VuZChlKTtcbiAgICAgIHJldHVybjtcbiAgICB9XG4gIH07XG4gIHdyYXBwaW5nQXBwLmdldChgJHtwcm9jZXNzLmVudi5XRUJQQUNLX1BVQkxJQ19QQVRIfSpgLCBhc3NldFJvdXRlKTtcblxuICAvLyBTRVJWRVIgU0lERSBSRU5ERVJJTkdcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uby12YXItcmVxdWlyZXNcbiAgY29uc3QgcmVuZGVyOiBSZW5kZXIgPSByZXF1aXJlKGdldFNlcnZlckJ1bmRsZShzZXJ2ZXJTdGF0cykpLmRlZmF1bHQ7XG4gIHdyYXBwaW5nQXBwLmdldChcbiAgICAnLyonLFxuICAgIGhhbmRsZUVycm9ycyhhc3luYyBmdW5jdGlvbiAocmVxOiBhbnksIHJlczogYW55KSB7XG4gICAgICBpZiAocmVxLnVybC5lbmRzV2l0aCgnZmF2aWNvbi5pY28nKSkge1xuICAgICAgICByZXMuc3RhdHVzQ29kZSA9IDQwNDtcbiAgICAgICAgcmVzLnNldEhlYWRlcignQ29udGVudC10eXBlJywgJ3RleHQvaHRtbCcpO1xuICAgICAgICByZXMuc2VuZCgnbm90IGZvdW5kJyk7XG4gICAgICAgIHJldHVybjtcbiAgICAgIH1cbiAgICAgIHJlcy5zb2NrZXQub24oJ2Vycm9yJywgKGVycm9yOiB1bmtub3duKSA9PiB7XG4gICAgICAgIGNvbnNvbGUuZXJyb3IoJ0ZhdGFsJywgZXJyb3IpO1xuICAgICAgfSk7XG5cbiAgICAgIGF3YWl0IHJlbmRlcihjbGllbnRNYW5pZmVzdCwgcmVxLCByZXMpO1xuICAgIH0pLFxuICApO1xuXG4gIHNlcnZlciA9IHdyYXBwaW5nQXBwXG4gICAgLmxpc3RlbihQT1JULCAoKSA9PiB7XG4gICAgICBjb25zb2xlLmxvZyhgTGlzdGVuaW5nIGF0ICR7UE9SVH0uLi5gKTtcbiAgICB9KVxuICAgIC5vbignZXJyb3InLCBmdW5jdGlvbiAoZXJyb3I6IGFueSkge1xuICAgICAgaWYgKGVycm9yLnN5c2NhbGwgIT09ICdsaXN0ZW4nKSB7XG4gICAgICAgIHRocm93IGVycm9yO1xuICAgICAgfVxuICAgICAgY29uc3QgaXNQaXBlID0gKHBvcnRPclBpcGU6IHN0cmluZyB8IG51bWJlcikgPT4gTnVtYmVyLmlzTmFOKHBvcnRPclBpcGUpO1xuICAgICAgY29uc3QgYmluZCA9IGlzUGlwZShQT1JUKSA/ICdQaXBlICcgKyBQT1JUIDogJ1BvcnQgJyArIFBPUlQ7XG4gICAgICBzd2l0Y2ggKGVycm9yLmNvZGUpIHtcbiAgICAgICAgY2FzZSAnRUFDQ0VTJzpcbiAgICAgICAgICBjb25zb2xlLmVycm9yKGJpbmQgKyAnIHJlcXVpcmVzIGVsZXZhdGVkIHByaXZpbGVnZXMnKTtcbiAgICAgICAgICBwcm9jZXNzLmV4aXQoMSk7XG4gICAgICAgICAgYnJlYWs7XG4gICAgICAgIGNhc2UgJ0VBRERSSU5VU0UnOlxuICAgICAgICAgIGNvbnNvbGUuZXJyb3IoYmluZCArICcgaXMgYWxyZWFkeSBpbiB1c2UnKTtcbiAgICAgICAgICBwcm9jZXNzLmV4aXQoMSk7XG4gICAgICAgICAgYnJlYWs7XG4gICAgICAgIGRlZmF1bHQ6XG4gICAgICAgICAgdGhyb3cgZXJyb3I7XG4gICAgICB9XG4gICAgfSk7XG59XG5cbi8vIFdhdGNoIHRoZSBmaWxlcyBmb3IgY2hhbmdlc1xuY29uc3Qgd2F0Y2hlciA9IGNvbXBpbGVyLndhdGNoKHt9LCAoZXJyLCBtdWx0aVN0YXRzKSA9PiB7XG4gIGlmICghbXVsdGlTdGF0cykge1xuICAgIGNvbnNvbGUuZXJyb3IoJ3N0YXRzIG5vdCBzZW5kJyk7XG4gICAgcHJvY2Vzcy5leGl0KC0xKTtcbiAgfVxuICBpZiAoZXJyKSB7XG4gICAgY29uc29sZS5lcnJvcignRXJyb3IgaW4gY29tcGlsYXRpb24nKTtcbiAgICBjb25zb2xlLmVycm9yKGVycik7XG4gICAgcHJvY2Vzcy5leGl0KC0xKTtcbiAgfVxuICBpZiAoc2VydmVyKSB7XG4gICAgbG9hZGVyLnN1Y2NlZWQoJ1dlYnBhY2sgYnVuZGxlIHVwZGF0ZWQnKTtcbiAgICByZXR1cm47XG4gIH1cbiAgdHJ5IHtcbiAgICBpbml0aWFsaXplQXBwKG11bHRpU3RhdHMuc3RhdHMpO1xuICB9IGNhdGNoIChlKSB7XG4gICAgY29uc29sZS5lcnJvcignRmFpbGVkIHRvIGluaXRpYWxpemUgYXBwJyk7XG4gICAgY29uc29sZS5lcnJvcihlKTtcbiAgfVxufSk7XG5cbnByb2Nlc3Mub24oJ1NJR0lOVCcsICgpID0+IHtcbiAgbG9hZGVyLndhcm4oJ1JlY2VpdmVkIFNJR0lOVCwgZGV2c2VydmVyIHNodXR0aW5nIGRvd24nKTtcbiAgaWYgKHNlcnZlcikgY29uc29sZS5sb2coJ0Nsb3Npbmcgc2VydmVyJyk7XG4gIHNlcnZlcj8uY2xvc2UoKCkgPT4ge1xuICAgIGxvYWRlci5pbmZvKCdTZXJ2ZXIgY2xvc2VkJyk7XG4gIH0pO1xuICB3YXRjaGVyLmNsb3NlKCgpID0+IHtcbiAgICBsb2FkZXIuaW5mbygnd2VicGFjayBidWlsZCBzdG9wcGVkJyk7XG4gIH0pO1xuICBwcm9jZXNzLmV4aXQoLTEpO1xufSk7XG4iXX0=
|
|
268
|
+
runServer();
|
|
269
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJ3ZWJwYWNrQ29uZmlnIiwicmVxdWlyZSIsInJlc29sdmUiLCJwYXRoIiwiam9pbiIsInByb2Nlc3MiLCJjd2QiLCJlbnRyeXBvaW50IiwiYXJndiIsIlBPUlQiLCJlbnYiLCJXRUJQQUNLX1BVQkxJQ19IT1NUIiwiV0VCUEFDS19QVUJMSUNfUEFUSCIsImNvbnNvbGUiLCJsb2ciLCJleGl0IiwiY2hhbGsiLCJncmVlbkJyaWdodCIsImN5YW5CcmlnaHQiLCJsb2FkZXIiLCJvcmEiLCJzdGFydCIsInZvbHVtZSIsIlZvbHVtZSIsImZzIiwiY3JlYXRlRnNGcm9tVm9sdW1lIiwidWZzIiwidXNlIiwiZGlza0ZzIiwicGF0Y2hSZXF1aXJlIiwicmVhZEZpbGUiLCJwcm9taXNpZnkiLCJzZXJ2ZXIiLCJob3RFbnRyeSIsImVudHJ5UGF0aCIsImdlbmVyYXRlZEVudHJ5cG9pbnQiLCJ0bXAiLCJmaWxlU3luYyIsInBvc3RmaXgiLCJ3cml0ZVN5bmMiLCJmZCIsIndlYnBhY2tDb25maWdzIiwibmFtZSIsIm1vZGUiLCJyZXBsYWNlIiwidGFyZ2V0IiwicGx1Z2lucyIsInB1c2giLCJ3ZWJwYWNrIiwib3B0aW1pemUiLCJMaW1pdENodW5rQ291bnRQbHVnaW4iLCJtYXhDaHVua3MiLCJjb21waWxlciIsInNvdXJjZU1hcFN1cHBvcnQiLCJpbnN0YWxsIiwiaG9va1JlcXVpcmUiLCJnZXRTZXJ2ZXJCdW5kbGUiLCJzZXJ2ZXJTdGF0cyIsInNlcnZlckpzb24iLCJ0b0pzb24iLCJhc3NldHMiLCJvdXRwdXRQYXRoIiwiaGFuZGxlRXJyb3JzIiwiZm4iLCJyZXEiLCJyZXMiLCJuZXh0IiwieCIsInJlbmRlciIsImluaXRpYWxpemVBcHAiLCJzdGF0cyIsImNsaWVudFN0YXRzIiwiY29tcGlsYXRpb24iLCJlcnJvcnMiLCJsZW5ndGgiLCJmYWlsIiwiaW5mbyIsIndyYXBwaW5nQXBwIiwiZXhwcmVzcyIsImNvbXByZXNzIiwiY2xpZW50TWFuaWZlc3QiLCJhc3NldFJvdXRlIiwiZmlsZW5hbWUiLCJ1cmwiLCJzdWJzdHJpbmciLCJzcGxpdCIsImFzc2V0UGF0aCIsImZpbGVDb250ZW50IiwidG9TdHJpbmciLCJjb250ZW50VHlwZSIsInNlbmQiLCJlIiwic3RhdHVzIiwiZ2V0IiwiZGVmYXVsdCIsImVuZHNXaXRoIiwic3RhdHVzQ29kZSIsInNldEhlYWRlciIsInNvY2tldCIsIm9uIiwiZXJyb3IiLCJsaXN0ZW4iLCJzdWNjZWVkIiwic3lzY2FsbCIsImlzUGlwZSIsInBvcnRPclBpcGUiLCJOdW1iZXIiLCJpc05hTiIsImJpbmQiLCJjb2RlIiwiZGV2U2VydmVyIiwiV2VicGFja0RldlNlcnZlciIsImRldk1pZGRsZXdhcmUiLCJvdXRwdXRGaWxlU3lzdGVtIiwicnVuU2VydmVyIiwiaG9va3MiLCJkb25lIiwidGFwIiwibXVsdGlTdGF0cyIsIk9iamVjdCIsImhhc093biIsImltcG9ydEZyZXNoIiwic3RvcFNlcnZlciIsInN0b3AiLCJ3YXJuIl0sInNvdXJjZXMiOlsiLi4vLi4vc3JjL3NjcmlwdHMvc3RhcnREZXZzZXJ2ZXIudHMiXSwic291cmNlc0NvbnRlbnQiOlsiIyEvdXNyL2Jpbi9lbnYgbm9kZVxuXG5pbXBvcnQgeyBwcm9taXNpZnkgfSBmcm9tICd1dGlsJztcbmltcG9ydCBkaXNrRnMgZnJvbSAnZnMnO1xuaW1wb3J0IHBhdGggZnJvbSAncGF0aCc7XG5pbXBvcnQgd2VicGFjaywgeyBNdWx0aUNvbXBpbGVyIH0gZnJvbSAnd2VicGFjayc7XG5pbXBvcnQgeyBjcmVhdGVGc0Zyb21Wb2x1bWUsIFZvbHVtZSB9IGZyb20gJ21lbWZzJztcbmltcG9ydCB7IFNlcnZlciwgSW5jb21pbmdNZXNzYWdlLCBTZXJ2ZXJSZXNwb25zZSB9IGZyb20gJ2h0dHAnO1xuaW1wb3J0IGV4cHJlc3MsIHsgTmV4dEZ1bmN0aW9uIH0gZnJvbSAnZXhwcmVzcyc7XG5pbXBvcnQgb3JhIGZyb20gJ29yYSc7XG5pbXBvcnQgeyBwYXRjaFJlcXVpcmUgfSBmcm9tICdmcy1tb25rZXknO1xuaW1wb3J0IHRtcCBmcm9tICd0bXAnO1xuaW1wb3J0IHNvdXJjZU1hcFN1cHBvcnQgZnJvbSAnc291cmNlLW1hcC1zdXBwb3J0JztcbmltcG9ydCB7IHVmcyB9IGZyb20gJ3VuaW9uZnMnO1xuaW1wb3J0IGNvbXByZXNzIGZyb20gJ2NvbXByZXNzaW9uJztcbmltcG9ydCBXZWJwYWNrRGV2U2VydmVyIGZyb20gJ3dlYnBhY2stZGV2LXNlcnZlcic7XG5pbXBvcnQgaW1wb3J0RnJlc2ggZnJvbSAnaW1wb3J0LWZyZXNoJztcbmltcG9ydCBjaGFsayBmcm9tICdjaGFsayc7XG5cbmltcG9ydCAnY3Jvc3MtZmV0Y2gvcG9seWZpbGwnO1xuaW1wb3J0IHsgUmVuZGVyIH0gZnJvbSAnLi90eXBlcyc7XG5cbi8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tdmFyLXJlcXVpcmVzXG5jb25zdCB3ZWJwYWNrQ29uZmlnID0gcmVxdWlyZShyZXF1aXJlLnJlc29sdmUoXG4gIC8vIFRPRE86IHVzZSBub3JtYWwgcmVzb2x1dGlvbiBhbGdvcml0aG0gdG8gZmluZCB3ZWJwYWNrIGZpbGVcbiAgcGF0aC5qb2luKHByb2Nlc3MuY3dkKCksICd3ZWJwYWNrLmNvbmZpZycpLFxuKSk7XG5cbmNvbnN0IGVudHJ5cG9pbnQgPSBwcm9jZXNzLmFyZ3ZbMl07XG5jb25zdCBQT1JUID0gcHJvY2Vzcy5lbnYuUE9SVCB8fCAzMDAwO1xucHJvY2Vzcy5lbnYuV0VCUEFDS19QVUJMSUNfSE9TVCA9IGBodHRwOi8vbG9jYWxob3N0OiR7UE9SVH1gO1xucHJvY2Vzcy5lbnYuV0VCUEFDS19QVUJMSUNfUEFUSCA9ICcvYXNzZXRzLyc7XG5cbmlmICghZW50cnlwb2ludCkge1xuICBjb25zb2xlLmxvZyhgVXNhZ2U6ICR7cHJvY2Vzcy5hcmd2WzBdfSA8ZW50cnlwb2ludC1maWxlPmApO1xuICBwcm9jZXNzLmV4aXQoLTEpO1xufVxuXG5jb25zb2xlLmxvZyhcbiAgY2hhbGsuZ3JlZW5CcmlnaHQoYFN0YXJ0aW5nIFNTUiBhdGApLFxuICBjaGFsay5jeWFuQnJpZ2h0KHByb2Nlc3MuZW52LldFQlBBQ0tfUFVCTElDX0hPU1QpLFxuKTtcbmNvbnN0IGxvYWRlciA9IG9yYSgpLnN0YXJ0KCk7XG5cbi8vIFNldCB1cCBpbiBtZW1vcnkgZmlsZXN5c3RlbVxuY29uc3Qgdm9sdW1lID0gbmV3IFZvbHVtZSgpO1xuY29uc3QgZnMgPSBjcmVhdGVGc0Zyb21Wb2x1bWUodm9sdW1lKTtcbnVmcy51c2UoZGlza0ZzKS51c2UoZnMgYXMgYW55KTtcblxucGF0Y2hSZXF1aXJlKHVmcyk7XG5jb25zdCByZWFkRmlsZSA9IHByb21pc2lmeSh1ZnMucmVhZEZpbGUpO1xubGV0IHNlcnZlcjogU2VydmVyIHwgdW5kZWZpbmVkO1xuXG4vLyBHZW5lcmF0ZSBhIHRlbXBvcmFyeSBmaWxlIHNvIHdlIGNhbiBob3QgcmVsb2FkIGZyb20gdGhlIHJvb3Qgb2YgdGhlIGFwcGxpY2F0aW9uXG5mdW5jdGlvbiBob3RFbnRyeShlbnRyeVBhdGg6IHN0cmluZykge1xuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmVcbiAgLy8gQHRzLWlnbm9yZSBmb3Igc29tZSByZWFzb24gaXQncyBub3QgcGlja2luZyB1cCB0aGF0IG90aGVyIG9wdGlvbnMgYXJlIG9wdGlvbmFsXG4gIGNvbnN0IGdlbmVyYXRlZEVudHJ5cG9pbnQgPSB0bXAuZmlsZVN5bmMoeyBwb3N0Zml4OiAnLmpzJyB9KTtcbiAgZGlza0ZzLndyaXRlU3luYyhcbiAgICBnZW5lcmF0ZWRFbnRyeXBvaW50LmZkLFxuICAgIGBcbmltcG9ydCBlbnRyeSBmcm9tIFwiJHtwYXRoLnJlc29sdmUocHJvY2Vzcy5jd2QoKSwgZW50cnlQYXRoKX1cIjtcblxuaWYgKG1vZHVsZS5ob3QpIHtcbiAgbW9kdWxlLmhvdC5hY2NlcHQoKTtcbn1cblxuZXhwb3J0IGRlZmF1bHQgZW50cnk7XG4gIGAsXG4gICk7XG4gIHJldHVybiBnZW5lcmF0ZWRFbnRyeXBvaW50O1xufVxuXG5jb25zdCB3ZWJwYWNrQ29uZmlncyA9IFtcbiAgd2VicGFja0NvbmZpZyhcbiAgICB7XG4gICAgICBlbnRyeXBvaW50OiBob3RFbnRyeShlbnRyeXBvaW50KS5uYW1lLFxuICAgICAgbmFtZTogJ2NsaWVudCcsXG4gICAgfSxcbiAgICB7IG1vZGU6ICdkZXZlbG9wbWVudCcgfSxcbiAgKSxcbiAgd2VicGFja0NvbmZpZyhcbiAgICB7XG4gICAgICBlbnRyeXBvaW50OiBlbnRyeXBvaW50LnJlcGxhY2UoJy50c3gnLCAnLnNlcnZlci50c3gnKSxcbiAgICAgIG5hbWU6ICdzZXJ2ZXInLFxuICAgIH0sXG4gICAgeyBtb2RlOiAnZGV2ZWxvcG1lbnQnLCB0YXJnZXQ6ICdub2RlJyB9LFxuICApLFxuXSBhcyBjb25zdDtcbi8vIG9ubHkgaGF2ZSBvbmUgb3V0cHV0IGZvciBzZXJ2ZXIgc28gd2UgY2FuIGF2b2lkIGNhY2hlZCBtb2R1bGVzXG53ZWJwYWNrQ29uZmlnc1sxXS5wbHVnaW5zLnB1c2goXG4gIG5ldyB3ZWJwYWNrLm9wdGltaXplLkxpbWl0Q2h1bmtDb3VudFBsdWdpbih7IG1heENodW5rczogMSB9KSxcbik7XG4vLyBpbml0aWFsaXplIHRoZSB3ZWJwYWNrIGNvbXBpbGVyXG5jb25zdCBjb21waWxlcjogTXVsdGlDb21waWxlciA9IHdlYnBhY2sod2VicGFja0NvbmZpZ3MpO1xuXG5zb3VyY2VNYXBTdXBwb3J0Lmluc3RhbGwoeyBob29rUmVxdWlyZTogdHJ1ZSB9KTtcblxuZnVuY3Rpb24gZ2V0U2VydmVyQnVuZGxlKHNlcnZlclN0YXRzOiB3ZWJwYWNrLlN0YXRzKSB7XG4gIGNvbnN0IHNlcnZlckpzb24gPSBzZXJ2ZXJTdGF0cy50b0pzb24oeyBhc3NldHM6IHRydWUgfSk7XG4gIHJldHVybiBwYXRoLmpvaW4oc2VydmVySnNvbi5vdXRwdXRQYXRoID8/ICcnLCAnbWFpbi5qcycpO1xufVxuZnVuY3Rpb24gaGFuZGxlRXJyb3JzPFxuICBGIGV4dGVuZHMgKFxuICAgIHJlcTogUmVxdWVzdCB8IEluY29taW5nTWVzc2FnZSxcbiAgICByZXM6IFJlc3BvbnNlIHwgU2VydmVyUmVzcG9uc2UsXG4gICkgPT4gUHJvbWlzZTx2b2lkPixcbj4oZm46IEYpIHtcbiAgcmV0dXJuIGFzeW5jIGZ1bmN0aW9uIChcbiAgICByZXE6IFJlcXVlc3QgfCBJbmNvbWluZ01lc3NhZ2UsXG4gICAgcmVzOiBSZXNwb25zZSB8IFNlcnZlclJlc3BvbnNlLFxuICAgIG5leHQ6IE5leHRGdW5jdGlvbixcbiAgKSB7XG4gICAgdHJ5IHtcbiAgICAgIHJldHVybiBhd2FpdCBmbihyZXEsIHJlcyk7XG4gICAgfSBjYXRjaCAoeCkge1xuICAgICAgbmV4dCh4KTtcbiAgICB9XG4gIH07XG59XG5sZXQgcmVuZGVyOiBSZW5kZXI7XG4vLyBTdGFydCB0aGUgZXhwcmVzcyBzZXJ2ZXIgYWZ0ZXIgdGhlIGZpcnN0IGNvbXBpbGF0aW9uXG5mdW5jdGlvbiBpbml0aWFsaXplQXBwKHN0YXRzOiB3ZWJwYWNrLlN0YXRzW10pIHtcbiAgY29uc3QgW2NsaWVudFN0YXRzLCBzZXJ2ZXJTdGF0c10gPSBzdGF0cztcbiAgaWYgKFxuICAgIGNsaWVudFN0YXRzPy5jb21waWxhdGlvbj8uZXJyb3JzPy5sZW5ndGggfHxcbiAgICBzZXJ2ZXJTdGF0cz8uY29tcGlsYXRpb24/LmVycm9ycz8ubGVuZ3RoXG4gICkge1xuICAgIGxvYWRlci5mYWlsKCdFcnJvcnMgZm9yIGNsaWVudCBidWlsZDogJyArIGNsaWVudFN0YXRzLmNvbXBpbGF0aW9uLmVycm9ycyk7XG4gICAgbG9hZGVyLmZhaWwoJ0Vycm9ycyBmb3Igc2VydmVyIGJ1aWxkOiAnICsgc2VydmVyU3RhdHMuY29tcGlsYXRpb24uZXJyb3JzKTtcbiAgICAvLyBUT0RPOiBoYW5kbGUgbW9yZSBncmFjZWZ1bGx5XG4gICAgcHJvY2Vzcy5leGl0KC0xKTtcbiAgfSBlbHNlIHtcbiAgICBsb2FkZXIuaW5mbygnTGF1bmNoaW5nIHNlcnZlcicpO1xuICB9XG5cbiAgY29uc3Qgd3JhcHBpbmdBcHAgPSBleHByZXNzKCk7XG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZVxuICAvL0B0cy1pZ25vcmVcbiAgd3JhcHBpbmdBcHAudXNlKGNvbXByZXNzKCkpO1xuXG4gIC8vIEFTU0VUU1xuICBjb25zdCBjbGllbnRNYW5pZmVzdCA9IGNsaWVudFN0YXRzLnRvSnNvbigpO1xuICBjb25zdCBhc3NldFJvdXRlID0gYXN5bmMgKHJlcTogUmVxdWVzdCB8IEluY29taW5nTWVzc2FnZSwgcmVzOiBhbnkpID0+IHtcbiAgICBjb25zdCBmaWxlbmFtZSA9XG4gICAgICByZXEudXJsXG4gICAgICAgID8uc3Vic3RyaW5nKChwcm9jZXNzLmVudi5XRUJQQUNLX1BVQkxJQ19QQVRIIGFzIHN0cmluZykubGVuZ3RoKVxuICAgICAgICAuc3BsaXQoJz8nKVswXSA/PyAnJztcbiAgICBjb25zdCBhc3NldFBhdGggPSBwYXRoLmpvaW4oY2xpZW50TWFuaWZlc3Qub3V0cHV0UGF0aCA/PyAnJywgZmlsZW5hbWUpO1xuXG4gICAgdHJ5IHtcbiAgICAgIGNvbnN0IGZpbGVDb250ZW50ID0gKGF3YWl0IHJlYWRGaWxlKGFzc2V0UGF0aCkpLnRvU3RyaW5nKCk7XG4gICAgICByZXMuY29udGVudFR5cGUoZmlsZW5hbWUpO1xuICAgICAgcmVzLnNlbmQoZmlsZUNvbnRlbnQpO1xuICAgIH0gY2F0Y2ggKGUpIHtcbiAgICAgIHJlcy5zdGF0dXMoNDA0KTtcbiAgICAgIHJlcy5zZW5kKGUpO1xuICAgICAgcmV0dXJuO1xuICAgIH1cbiAgfTtcbiAgd3JhcHBpbmdBcHAuZ2V0KGAke3Byb2Nlc3MuZW52LldFQlBBQ0tfUFVCTElDX1BBVEh9KmAsIGFzc2V0Um91dGUpO1xuXG4gIC8vIFNFUlZFUiBTSURFIFJFTkRFUklOR1xuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25vLXZhci1yZXF1aXJlc1xuICByZW5kZXIgPSByZXF1aXJlKGdldFNlcnZlckJ1bmRsZShzZXJ2ZXJTdGF0cykpLmRlZmF1bHQ7XG4gIHdyYXBwaW5nQXBwLmdldChcbiAgICAnLyonLFxuICAgIGhhbmRsZUVycm9ycyhhc3luYyBmdW5jdGlvbiAocmVxOiBhbnksIHJlczogYW55KSB7XG4gICAgICBpZiAocmVxLnVybC5lbmRzV2l0aCgnZmF2aWNvbi5pY28nKSkge1xuICAgICAgICByZXMuc3RhdHVzQ29kZSA9IDQwNDtcbiAgICAgICAgcmVzLnNldEhlYWRlcignQ29udGVudC10eXBlJywgJ3RleHQvaHRtbCcpO1xuICAgICAgICByZXMuc2VuZCgnbm90IGZvdW5kJyk7XG4gICAgICAgIHJldHVybjtcbiAgICAgIH1cbiAgICAgIHJlcy5zb2NrZXQub24oJ2Vycm9yJywgKGVycm9yOiB1bmtub3duKSA9PiB7XG4gICAgICAgIGNvbnNvbGUuZXJyb3IoJ0ZhdGFsJywgZXJyb3IpO1xuICAgICAgfSk7XG5cbiAgICAgIGF3YWl0IHJlbmRlcihjbGllbnRNYW5pZmVzdCwgcmVxLCByZXMpO1xuICAgIH0pLFxuICApO1xuXG4gIHNlcnZlciA9IHdyYXBwaW5nQXBwXG4gICAgLmxpc3RlbihQT1JULCAoKSA9PiB7XG4gICAgICBsb2FkZXIuc3VjY2VlZChgU1NSIFJ1bm5pbmdgKTtcbiAgICB9KVxuICAgIC5vbignZXJyb3InLCBmdW5jdGlvbiAoZXJyb3I6IGFueSkge1xuICAgICAgaWYgKGVycm9yLnN5c2NhbGwgIT09ICdsaXN0ZW4nKSB7XG4gICAgICAgIHRocm93IGVycm9yO1xuICAgICAgfVxuICAgICAgY29uc3QgaXNQaXBlID0gKHBvcnRPclBpcGU6IHN0cmluZyB8IG51bWJlcikgPT4gTnVtYmVyLmlzTmFOKHBvcnRPclBpcGUpO1xuICAgICAgY29uc3QgYmluZCA9IGlzUGlwZShQT1JUKSA/ICdQaXBlICcgKyBQT1JUIDogJ1BvcnQgJyArIFBPUlQ7XG4gICAgICBzd2l0Y2ggKGVycm9yLmNvZGUpIHtcbiAgICAgICAgY2FzZSAnRUFDQ0VTJzpcbiAgICAgICAgICBjb25zb2xlLmVycm9yKGJpbmQgKyAnIHJlcXVpcmVzIGVsZXZhdGVkIHByaXZpbGVnZXMnKTtcbiAgICAgICAgICBwcm9jZXNzLmV4aXQoMSk7XG4gICAgICAgICAgYnJlYWs7XG4gICAgICAgIGNhc2UgJ0VBRERSSU5VU0UnOlxuICAgICAgICAgIGNvbnNvbGUuZXJyb3IoYmluZCArICcgaXMgYWxyZWFkeSBpbiB1c2UnKTtcbiAgICAgICAgICBwcm9jZXNzLmV4aXQoMSk7XG4gICAgICAgICAgYnJlYWs7XG4gICAgICAgIGRlZmF1bHQ6XG4gICAgICAgICAgdGhyb3cgZXJyb3I7XG4gICAgICB9XG4gICAgfSk7XG59XG5cbmNvbnN0IGRldlNlcnZlciA9IG5ldyBXZWJwYWNrRGV2U2VydmVyKFxuICAvLyB3cml0ZSB0byBtZW1vcnkgZmlsZXN5c3RlbSBzbyB3ZSBjYW4gaW1wb3J0XG4gIHtcbiAgICAuLi53ZWJwYWNrQ29uZmlnc1swXS5kZXZTZXJ2ZXIsXG4gICAgLypjbGllbnQ6IHtcbiAgICAgIC4uLndlYnBhY2tDb25maWdzWzBdLmRldlNlcnZlcj8uY2xpZW50LFxuICAgICAgd2ViU29ja2V0VVJMOiB7XG4gICAgICAgIC4uLndlYnBhY2tDb25maWdzWzBdLmRldlNlcnZlcj8uY2xpZW50LndlYlNvY2tldFVSTCxcbiAgICAgICAgcG9ydDogODA4MCxcbiAgICAgIH0sXG4gICAgfSwqL1xuICAgIGRldk1pZGRsZXdhcmU6IHtcbiAgICAgIC4uLndlYnBhY2tDb25maWdzWzBdPy5kZXZTZXJ2ZXI/LmRldk1pZGRsZXdhcmUsXG4gICAgICBvdXRwdXRGaWxlU3lzdGVtOiB7XG4gICAgICAgIC4uLmZzLFxuICAgICAgICBqb2luOiBwYXRoLmpvaW4gYXMgYW55LFxuICAgICAgfSBhcyBhbnkgYXMgdHlwZW9mIGZzLFxuICAgIH0sXG4gIH0sXG4gIGNvbXBpbGVyLFxuKTtcbmNvbnN0IHJ1blNlcnZlciA9IGFzeW5jICgpID0+IHtcbiAgYXdhaXQgZGV2U2VydmVyLnN0YXJ0KCk7XG4gIGRldlNlcnZlci5jb21waWxlci5ob29rcy5kb25lLnRhcChcbiAgICAnQW5hbnNpIFNlcnZlcicsXG4gICAgKG11bHRpU3RhdHM6IHdlYnBhY2suTXVsdGlTdGF0cyB8IHdlYnBhY2suU3RhdHMpID0+IHtcbiAgICAgIGlmICghbXVsdGlTdGF0cykge1xuICAgICAgICBsb2FkZXIuZmFpbCgnc3RhdHMgbm90IHNlbmQnKTtcbiAgICAgICAgcHJvY2Vzcy5leGl0KC0xKTtcbiAgICAgIH1cblxuICAgICAgaWYgKCFPYmplY3QuaGFzT3duKG11bHRpU3RhdHMsICdzdGF0cycpKSByZXR1cm47XG4gICAgICBpZiAoc2VydmVyICYmIChtdWx0aVN0YXRzIGFzIHdlYnBhY2suTXVsdGlTdGF0cykuc3RhdHMubGVuZ3RoID4gMSkge1xuICAgICAgICByZW5kZXIgPSAoXG4gICAgICAgICAgaW1wb3J0RnJlc2goXG4gICAgICAgICAgICBnZXRTZXJ2ZXJCdW5kbGUoKG11bHRpU3RhdHMgYXMgd2VicGFjay5NdWx0aVN0YXRzKS5zdGF0c1sxXSksXG4gICAgICAgICAgKSBhcyBhbnlcbiAgICAgICAgKS5kZWZhdWx0O1xuICAgICAgICByZXR1cm47XG4gICAgICB9XG4gICAgICBpZiAoIXNlcnZlcikge1xuICAgICAgICB0cnkge1xuICAgICAgICAgIGluaXRpYWxpemVBcHAoKG11bHRpU3RhdHMgYXMgd2VicGFjay5NdWx0aVN0YXRzKS5zdGF0cyk7XG4gICAgICAgIH0gY2F0Y2ggKGUpIHtcbiAgICAgICAgICBsb2FkZXIuZmFpbCgnRmFpbGVkIHRvIGluaXRpYWxpemUgYXBwJyk7XG4gICAgICAgICAgY29uc29sZS5lcnJvcihlKTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICk7XG59O1xuY29uc3Qgc3RvcFNlcnZlciA9IGFzeW5jICgpID0+IHtcbiAgbG9hZGVyLmluZm8oJ1N0b3BwaW5nIHNlcnZlci4uLicpO1xuICBhd2FpdCBkZXZTZXJ2ZXIuc3RvcCgpO1xuICBsb2FkZXIuaW5mbygnU2VydmVyIGNsb3NlZCcpO1xufTtcblxucHJvY2Vzcy5vbignU0lHSU5UJywgKCkgPT4ge1xuICBsb2FkZXIud2FybignUmVjZWl2ZWQgU0lHSU5ULCBkZXZzZXJ2ZXIgc2h1dHRpbmcgZG93bicpO1xuICBzdG9wU2VydmVyKCk7XG4gIHByb2Nlc3MuZXhpdCgtMSk7XG59KTtcblxucnVuU2VydmVyKCk7XG4iXSwibWFwcGluZ3MiOiJBQUFBOzs7OztBQUVBOztBQUNBOztBQUNBOztBQUNBOztBQUNBOztBQUVBOztBQUNBOztBQUNBOztBQUNBOztBQUNBOztBQUNBOztBQUNBOztBQUNBOztBQUNBOztBQUNBOztBQUVBOzs7O0FBR0E7QUFDQSxNQUFNQSxhQUFhLEdBQUdDLE9BQU8sQ0FBQ0EsT0FBTyxDQUFDQyxPQUFSLEVBQzVCO0FBQ0FDLGFBQUEsQ0FBS0MsSUFBTCxDQUFVQyxPQUFPLENBQUNDLEdBQVIsRUFBVixFQUF5QixnQkFBekIsQ0FGNEIsQ0FBRCxDQUE3Qjs7QUFLQSxNQUFNQyxVQUFVLEdBQUdGLE9BQU8sQ0FBQ0csSUFBUixDQUFhLENBQWIsQ0FBbkI7QUFDQSxNQUFNQyxJQUFJLEdBQUdKLE9BQU8sQ0FBQ0ssR0FBUixDQUFZRCxJQUFaLElBQW9CLElBQWpDO0FBQ0FKLE9BQU8sQ0FBQ0ssR0FBUixDQUFZQyxtQkFBWixHQUFtQyxvQkFBbUJGLElBQUssRUFBM0Q7QUFDQUosT0FBTyxDQUFDSyxHQUFSLENBQVlFLG1CQUFaLEdBQWtDLFVBQWxDOztBQUVBLElBQUksQ0FBQ0wsVUFBTCxFQUFpQjtFQUNmTSxPQUFPLENBQUNDLEdBQVIsQ0FBYSxVQUFTVCxPQUFPLENBQUNHLElBQVIsQ0FBYSxDQUFiLENBQWdCLG9CQUF0QztFQUNBSCxPQUFPLENBQUNVLElBQVIsQ0FBYSxDQUFDLENBQWQ7QUFDRDs7QUFFREYsT0FBTyxDQUFDQyxHQUFSLENBQ0VFLGNBQUEsQ0FBTUMsV0FBTixDQUFtQixpQkFBbkIsQ0FERixFQUVFRCxjQUFBLENBQU1FLFVBQU4sQ0FBaUJiLE9BQU8sQ0FBQ0ssR0FBUixDQUFZQyxtQkFBN0IsQ0FGRjtBQUlB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
|
package/lib/scripts/types.js
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
|
|
3
3
|
exports.__esModule = true;
|
|
4
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,
|
|
4
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6W10sInNvdXJjZXMiOlsiLi4vLi4vc3JjL3NjcmlwdHMvdHlwZXMudHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgU2VydmVyUmVzcG9uc2UsIEluY29taW5nTWVzc2FnZSB9IGZyb20gJ2h0dHAnO1xuaW1wb3J0IHsgU3RhdHNDb21waWxhdGlvbiB9IGZyb20gJ3dlYnBhY2snO1xuaW1wb3J0IHsgUmVxdWVzdCwgUmVzcG9uc2UgfSBmcm9tICdleHByZXNzJztcblxuZXhwb3J0IHR5cGUgUmVuZGVyID0gKFxuICBjbGllbnRNYW5pZmVzdDogU3RhdHNDb21waWxhdGlvbixcbiAgcmVxOiBSZXF1ZXN0IHwgSW5jb21pbmdNZXNzYWdlLFxuICByZXM6IFJlc3BvbnNlIHwgU2VydmVyUmVzcG9uc2UsXG4pID0+IFByb21pc2U8dm9pZD47XG4iXSwibWFwcGluZ3MiOiIifQ==
|
|
@@ -44,4 +44,4 @@ Document.defaultProps = {
|
|
|
44
44
|
href: "/assets/favicon.ico"
|
|
45
45
|
}))
|
|
46
46
|
};
|
|
47
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,
|
|
47
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJEb2N1bWVudCIsImFzc2V0cyIsImhlYWQiLCJjaGlsZHJlbiIsInRpdGxlIiwibWFwIiwiYXNzZXQiLCJpIiwiX19odG1sIiwiSlNPTiIsInN0cmluZ2lmeSIsImZpbHRlciIsImhyZWYiLCJlbmRzV2l0aCIsImRlZmF1bHRQcm9wcyJdLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9zcG91dHMvRG9jdW1lbnRDb21wb25lbnQudHN4Il0sInNvdXJjZXNDb250ZW50IjpbInR5cGUgUHJvcHMgPSB7XG4gIGNoaWxkcmVuOiBSZWFjdC5SZWFjdE5vZGU7XG4gIGFzc2V0czogeyBocmVmOiBzdHJpbmc7IGFzPzogc3RyaW5nOyByZWw/OiBzdHJpbmcgfVtdO1xuICBoZWFkOiBSZWFjdC5SZWFjdE5vZGU7XG4gIHRpdGxlOiBzdHJpbmc7XG59O1xuXG5leHBvcnQgZGVmYXVsdCBmdW5jdGlvbiBEb2N1bWVudCh7IGFzc2V0cywgaGVhZCwgY2hpbGRyZW4sIHRpdGxlIH06IFByb3BzKSB7XG4gIHJldHVybiAoXG4gICAgPGh0bWw+XG4gICAgICA8aGVhZD5cbiAgICAgICAge2hlYWR9XG4gICAgICAgIHthc3NldHMubWFwKChhc3NldCwgaSkgPT4gKFxuICAgICAgICAgIDxsaW5rIGtleT17aX0gcmVsPVwicHJlbG9hZFwiIHsuLi5hc3NldH0gLz5cbiAgICAgICAgKSl9XG4gICAgICAgIDx0aXRsZT57dGl0bGV9PC90aXRsZT5cbiAgICAgIDwvaGVhZD5cbiAgICAgIDxib2R5PlxuICAgICAgICB7Y2hpbGRyZW59XG4gICAgICAgIHsvKiB0aGlzIGVuc3VyZXMgdGhlIGNsaWVudCBjYW4gaHlkcmF0ZSB0aGUgYXNzZXRzIHByb3AgKi99XG4gICAgICAgIDxzY3JpcHRcbiAgICAgICAgICBkYW5nZXJvdXNseVNldElubmVySFRNTD17e1xuICAgICAgICAgICAgX19odG1sOiBgYXNzZXRNYW5pZmVzdCA9ICR7SlNPTi5zdHJpbmdpZnkoYXNzZXRzKX07YCxcbiAgICAgICAgICB9fVxuICAgICAgICAvPlxuICAgICAgICB7YXNzZXRzXG4gICAgICAgICAgLmZpbHRlcigoeyBocmVmIH0pID0+IGhyZWYuZW5kc1dpdGgoJy5qcycpKVxuICAgICAgICAgIC5tYXAoKHsgaHJlZiB9LCBpKSA9PiAoXG4gICAgICAgICAgICA8c2NyaXB0IGtleT17aX0gc3JjPXtocmVmfSBhc3luYyAvPlxuICAgICAgICAgICkpfVxuICAgICAgPC9ib2R5PlxuICAgIDwvaHRtbD5cbiAgKTtcbn1cbkRvY3VtZW50LmRlZmF1bHRQcm9wcyA9IHtcbiAgaGVhZDogKFxuICAgIDw+XG4gICAgICA8bWV0YSBjaGFyU2V0PVwidXRmLThcIiAvPlxuICAgICAgPG1ldGEgbmFtZT1cInZpZXdwb3J0XCIgY29udGVudD1cIndpZHRoPWRldmljZS13aWR0aCwgaW5pdGlhbC1zY2FsZT0xXCIgLz5cbiAgICAgIDxsaW5rIHJlbD1cInNob3J0Y3V0IGljb25cIiBocmVmPVwiL2Fzc2V0cy9mYXZpY29uLmljb1wiIC8+XG4gICAgPC8+XG4gICksXG59O1xuIl0sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7OztBQU9lLFNBQVNBLFFBQVQsQ0FBa0I7RUFBRUMsTUFBRjtFQUFVQyxJQUFWO0VBQWdCQyxRQUFoQjtFQUEwQkM7QUFBMUIsQ0FBbEIsRUFBNEQ7RUFDekUsb0JBQ0Usb0RBQ0UsdUNBQ0dGLElBREgsRUFFR0QsTUFBTSxDQUFDSSxHQUFQLENBQVcsQ0FBQ0MsS0FBRCxFQUFRQyxDQUFSLGtCQUNWO0lBQU0sR0FBRyxFQUFFQSxDQUFYO0lBQWMsR0FBRyxFQUFDLFNBQWxCO0lBQUEsR0FBZ0NEO0VBQWhDLEVBREQsQ0FGSCxlQUtFLHdDQUFRRixLQUFSLENBTEYsQ0FERixlQVFFLHVDQUNHRCxRQURILGVBR0U7SUFDRSx1QkFBdUIsRUFBRTtNQUN2QkssTUFBTSxFQUFHLG1CQUFrQkMsSUFBSSxDQUFDQyxTQUFMLENBQWVULE1BQWYsQ0FBdUI7SUFEM0I7RUFEM0IsRUFIRixFQVFHQSxNQUFNLENBQ0pVLE1BREYsQ0FDUyxDQUFDO0lBQUVDO0VBQUYsQ0FBRCxLQUFjQSxJQUFJLENBQUNDLFFBQUwsQ0FBYyxLQUFkLENBRHZCLEVBRUVSLEdBRkYsQ0FFTSxDQUFDO0lBQUVPO0VBQUYsQ0FBRCxFQUFXTCxDQUFYLGtCQUNIO0lBQWdCLEdBQUcsRUFBRUssSUFBckI7SUFBMkIsS0FBSztFQUFoQyxHQUFhTCxDQUFiLENBSEgsQ0FSSCxDQVJGLENBREY7QUF5QkQ7O0FBQ0RQLFFBQVEsQ0FBQ2MsWUFBVCxHQUF3QjtFQUN0QlosSUFBSSxlQUNGLHlFQUNFO0lBQU0sT0FBTyxFQUFDO0VBQWQsRUFERixlQUVFO0lBQU0sSUFBSSxFQUFDLFVBQVg7SUFBc0IsT0FBTyxFQUFDO0VBQTlCLEVBRkYsZUFHRTtJQUFNLEdBQUcsRUFBQyxlQUFWO0lBQTBCLElBQUksRUFBQztFQUEvQixFQUhGO0FBRm9CLENBQXhCIn0=
|
package/lib/spouts/document.js
CHANGED
|
@@ -24,4 +24,4 @@ function documentSpout(options) {
|
|
|
24
24
|
};
|
|
25
25
|
};
|
|
26
26
|
}
|
|
27
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,
|
|
27
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJkb2N1bWVudFNwb3V0Iiwib3B0aW9ucyIsIm5leHQiLCJuZXh0UHJvcHMiLCJhcHAiLCJ0aXRsZSIsImdsb2JhbFRoaXMiLCJhc3NldE1hbmlmZXN0Il0sInNvdXJjZXMiOlsiLi4vLi4vc3JjL3Nwb3V0cy9kb2N1bWVudC50c3giXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IFJlYWN0IGZyb20gJ3JlYWN0JztcbmltcG9ydCB0eXBlIHsgUm91dGUgfSBmcm9tICdAYW5hbnNpL3JvdXRlcic7XG5cbmltcG9ydCB0eXBlIHsgUmVzb2x2ZVByb3BzIH0gZnJvbSAnLi90eXBlcyc7XG5pbXBvcnQgRG9jdW1lbnQgZnJvbSAnLi9Eb2N1bWVudENvbXBvbmVudCc7XG5cbnR5cGUgTmVlZGVkUHJvcHMgPSB7XG4gIG1hdGNoZWRSb3V0ZXM6IFJvdXRlPGFueT5bXTtcbiAgdGl0bGU/OiBzdHJpbmc7XG59ICYgUmVzb2x2ZVByb3BzO1xuXG5leHBvcnQgZGVmYXVsdCBmdW5jdGlvbiBkb2N1bWVudFNwb3V0KG9wdGlvbnM6IHtcbiAgaGVhZD86IFJlYWN0LlJlYWN0Tm9kZTtcbiAgdGl0bGU6IHN0cmluZztcbn0pIHtcbiAgcmV0dXJuIGZ1bmN0aW9uIDxUIGV4dGVuZHMgTmVlZGVkUHJvcHM+KG5leHQ6ICgpID0+IFByb21pc2U8VD4pIHtcbiAgICByZXR1cm4gYXN5bmMgKCkgPT4ge1xuICAgICAgY29uc3QgbmV4dFByb3BzID0gYXdhaXQgbmV4dCgpO1xuXG4gICAgICByZXR1cm4ge1xuICAgICAgICAuLi5uZXh0UHJvcHMsXG4gICAgICAgIGFwcDogKFxuICAgICAgICAgIDxEb2N1bWVudFxuICAgICAgICAgICAgey4uLm9wdGlvbnN9XG4gICAgICAgICAgICB0aXRsZT17bmV4dFByb3BzLnRpdGxlID8/IG9wdGlvbnMudGl0bGV9XG4gICAgICAgICAgICBhc3NldHM9eyhnbG9iYWxUaGlzIGFzIGFueSkuYXNzZXRNYW5pZmVzdH1cbiAgICAgICAgICA+XG4gICAgICAgICAgICB7bmV4dFByb3BzLmFwcH1cbiAgICAgICAgICA8L0RvY3VtZW50PlxuICAgICAgICApLFxuICAgICAgfTtcbiAgICB9O1xuICB9O1xufVxuIl0sIm1hcHBpbmdzIjoiOzs7Ozs7O0FBQUE7O0FBSUE7O0FBT2UsU0FBU0EsYUFBVCxDQUF1QkMsT0FBdkIsRUFHWjtFQUNELE9BQU8sVUFBaUNDLElBQWpDLEVBQXlEO0lBQzlELE9BQU8sWUFBWTtNQUFBOztNQUNqQixNQUFNQyxTQUFTLEdBQUcsTUFBTUQsSUFBSSxFQUE1QjtNQUVBLE9BQU8sRUFDTCxHQUFHQyxTQURFO1FBRUxDLEdBQUcsZUFDRCw2QkFBQywwQkFBRCxPQUNNSCxPQUROO1VBRUUsS0FBSyxzQkFBRUUsU0FBUyxDQUFDRSxLQUFaLCtCQUFxQkosT0FBTyxDQUFDSSxLQUZwQztVQUdFLE1BQU0sRUFBR0MsVUFBRCxDQUFvQkM7UUFIOUIsR0FLR0osU0FBUyxDQUFDQyxHQUxiO01BSEcsQ0FBUDtJQVlELENBZkQ7RUFnQkQsQ0FqQkQ7QUFrQkQifQ==
|
|
@@ -45,4 +45,4 @@ function DocumentSpout(options) {
|
|
|
45
45
|
};
|
|
46
46
|
};
|
|
47
47
|
}
|
|
48
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,
|
|
48
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJEb2N1bWVudFNwb3V0Iiwib3B0aW9ucyIsIm5leHQiLCJwcm9wcyIsIm5leHRQcm9wcyIsImVudHJ5cG9pbnQiLCJjbGllbnRNYW5pZmVzdCIsImVudHJ5cG9pbnRzIiwibWFpbiIsInB1YmxpY1BhdGgiLCJ1bmRlZmluZWQiLCJFcnJvciIsImFzc2V0TWFwIiwiYXNzZXRzIiwibWFwIiwibmFtZSIsImNoaWxkcmVuIiwicHJlZmV0Y2giLCJmaW5kIiwibWF0Y2hlZFJvdXRlcyIsInNvbWUiLCJyb3V0ZSIsImFzc2V0IiwiZW5kc1dpdGgiLCJocmVmIiwicmVsIiwiYXMiLCJhcHAiLCJ0aXRsZSJdLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9zcG91dHMvZG9jdW1lbnQuc2VydmVyLnRzeCJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgUmVhY3QgZnJvbSAncmVhY3QnO1xuaW1wb3J0IHR5cGUgeyBSb3V0ZSB9IGZyb20gJ0BhbmFuc2kvcm91dGVyJztcblxuaW1wb3J0IHR5cGUgeyBTZXJ2ZXJQcm9wcywgUmVzb2x2ZVByb3BzIH0gZnJvbSAnLi90eXBlcyc7XG5pbXBvcnQgRG9jdW1lbnQgZnJvbSAnLi9Eb2N1bWVudENvbXBvbmVudCc7XG5cbnR5cGUgTmVlZGVkUHJvcHMgPSB7XG4gIG1hdGNoZWRSb3V0ZXM6IFJvdXRlPGFueT5bXTtcbiAgdGl0bGU/OiBzdHJpbmc7XG59ICYgUmVzb2x2ZVByb3BzO1xuXG5leHBvcnQgZGVmYXVsdCBmdW5jdGlvbiBEb2N1bWVudFNwb3V0KG9wdGlvbnM6IHtcbiAgaGVhZD86IFJlYWN0LlJlYWN0Tm9kZTtcbiAgdGl0bGU6IHN0cmluZztcbn0pIHtcbiAgcmV0dXJuIGZ1bmN0aW9uIDxUIGV4dGVuZHMgTmVlZGVkUHJvcHM+KFxuICAgIG5leHQ6IChwcm9wczogU2VydmVyUHJvcHMpID0+IFByb21pc2U8VD4sXG4gICkge1xuICAgIHJldHVybiBhc3luYyAocHJvcHM6IFNlcnZlclByb3BzKSA9PiB7XG4gICAgICBjb25zdCBuZXh0UHJvcHMgPSBhd2FpdCBuZXh0KHByb3BzKTtcblxuICAgICAgY29uc3QgZW50cnlwb2ludCA9IHByb3BzLmNsaWVudE1hbmlmZXN0Py5lbnRyeXBvaW50cz8ubWFpbjtcbiAgICAgIGNvbnN0IHB1YmxpY1BhdGggPSBwcm9wcy5jbGllbnRNYW5pZmVzdC5wdWJsaWNQYXRoO1xuXG4gICAgICBpZiAoZW50cnlwb2ludCA9PT0gdW5kZWZpbmVkIHx8IHB1YmxpY1BhdGggPT09IHVuZGVmaW5lZClcbiAgICAgICAgdGhyb3cgbmV3IEVycm9yKCdNYW5pZmVzdCBtaXNzaW5nIGVudHJpZXMgbmVlZGVkJyk7XG5cbiAgICAgIC8vIFRPRE86IGNvbnNpZGVyIHVzaW5nIHRoaXMgcGFja2FnZSBmb3IgYnVpbGQgc3RhdHMgaW4gZnV0dXJlOlxuICAgICAgLy8gaHR0cHM6Ly9naXRodWIuY29tL2ZhY2Vib29rL3JlYWN0L3RyZWUvbWFpbi9wYWNrYWdlcy9yZWFjdC1zZXJ2ZXItZG9tLXdlYnBhY2tcbiAgICAgIGNvbnN0IGFzc2V0TWFwID0gKGFzc2V0czogeyBuYW1lOiBzdHJpbmc7IHNpemU/OiBudW1iZXIgfVtdKSA9PlxuICAgICAgICBhc3NldHMubWFwKCh7IG5hbWUgfSkgPT4gYCR7cHVibGljUGF0aH0ke25hbWV9YCk7XG4gICAgICAvLyBmaW5kIGFkZGl0aW9uYWwgYXNzZXRzIHRvIHByZWxvYWQgYmFzZWQgb24gbWF0Y2hlZCByb3V0ZVxuICAgICAgY29uc3QgYXNzZXRzID0gYXNzZXRNYXAoW1xuICAgICAgICAuLi4oZW50cnlwb2ludC5hc3NldHMgPz8gW10pLFxuICAgICAgICAuLi4oZW50cnlwb2ludC5jaGlsZHJlbj8ucHJlZmV0Y2g/LmZpbmQ/LigoeyBuYW1lIH0pID0+XG4gICAgICAgICAgbmV4dFByb3BzLm1hdGNoZWRSb3V0ZXMuc29tZShyb3V0ZSA9PiBuYW1lID09PSByb3V0ZS5uYW1lKSxcbiAgICAgICAgKT8uYXNzZXRzID8/IFtdKSxcbiAgICAgIF0pLm1hcChhc3NldCA9PlxuICAgICAgICBhc3NldC5lbmRzV2l0aCgnLmNzcycpXG4gICAgICAgICAgPyB7IGhyZWY6IGFzc2V0LCByZWw6ICdzdHlsZXNoZWV0JyB9XG4gICAgICAgICAgOiBhc3NldC5lbmRzV2l0aCgnLmpzJylcbiAgICAgICAgICA/IHsgaHJlZjogYXNzZXQsIGFzOiAnc2NyaXB0JyB9XG4gICAgICAgICAgOiB7IGhyZWY6IGFzc2V0IH0sXG4gICAgICApO1xuXG4gICAgICByZXR1cm4ge1xuICAgICAgICAuLi5uZXh0UHJvcHMsXG4gICAgICAgIGFwcDogKFxuICAgICAgICAgIDxEb2N1bWVudFxuICAgICAgICAgICAgey4uLm9wdGlvbnN9XG4gICAgICAgICAgICB0aXRsZT17bmV4dFByb3BzLnRpdGxlID8/IG9wdGlvbnMudGl0bGV9XG4gICAgICAgICAgICBhc3NldHM9e2Fzc2V0c31cbiAgICAgICAgICA+XG4gICAgICAgICAgICB7bmV4dFByb3BzLmFwcH1cbiAgICAgICAgICA8L0RvY3VtZW50PlxuICAgICAgICApLFxuICAgICAgfTtcbiAgICB9O1xuICB9O1xufVxuIl0sIm1hcHBpbmdzIjoiOzs7Ozs7O0FBQUE7O0FBSUE7O0FBT2UsU0FBU0EsYUFBVCxDQUF1QkMsT0FBdkIsRUFHWjtFQUNELE9BQU8sVUFDTEMsSUFESyxFQUVMO0lBQ0EsT0FBTyxNQUFPQyxLQUFQLElBQThCO01BQUE7O01BQ25DLE1BQU1DLFNBQVMsR0FBRyxNQUFNRixJQUFJLENBQUNDLEtBQUQsQ0FBNUI7TUFFQSxNQUFNRSxVQUFVLDRCQUFHRixLQUFLLENBQUNHLGNBQVQsb0ZBQUcsc0JBQXNCQyxXQUF6QiwyREFBRyx1QkFBbUNDLElBQXREO01BQ0EsTUFBTUMsVUFBVSxHQUFHTixLQUFLLENBQUNHLGNBQU4sQ0FBcUJHLFVBQXhDO01BRUEsSUFBSUosVUFBVSxLQUFLSyxTQUFmLElBQTRCRCxVQUFVLEtBQUtDLFNBQS9DLEVBQ0UsTUFBTSxJQUFJQyxLQUFKLENBQVUsaUNBQVYsQ0FBTixDQVBpQyxDQVNuQztNQUNBOztNQUNBLE1BQU1DLFFBQVEsR0FBSUMsTUFBRCxJQUNmQSxNQUFNLENBQUNDLEdBQVAsQ0FBVyxDQUFDO1FBQUVDO01BQUYsQ0FBRCxLQUFlLEdBQUVOLFVBQVcsR0FBRU0sSUFBSyxFQUE5QyxDQURGLENBWG1DLENBYW5DOzs7TUFDQSxNQUFNRixNQUFNLEdBQUdELFFBQVEsQ0FBQyxDQUN0QiwwQkFBSVAsVUFBVSxDQUFDUSxNQUFmLGlDQUF5QixFQUF6QixDQURzQixFQUV0QixxREFBSVIsVUFBVSxDQUFDVyxRQUFmLG1GQUFJLHFCQUFxQkMsUUFBekIscUZBQUksdUJBQStCQyxJQUFuQyxxRkFBSSxvREFBc0MsQ0FBQztRQUFFSDtNQUFGLENBQUQsS0FDeENYLFNBQVMsQ0FBQ2UsYUFBVixDQUF3QkMsSUFBeEIsQ0FBNkJDLEtBQUssSUFBSU4sSUFBSSxLQUFLTSxLQUFLLENBQUNOLElBQXJELENBREUsQ0FBSiwyREFBSSx1QkFFREYsTUFGSCxvQ0FFYSxFQUZiLENBRnNCLENBQUQsQ0FBUixDQUtaQyxHQUxZLENBS1JRLEtBQUssSUFDVkEsS0FBSyxDQUFDQyxRQUFOLENBQWUsTUFBZixJQUNJO1FBQUVDLElBQUksRUFBRUYsS0FBUjtRQUFlRyxHQUFHLEVBQUU7TUFBcEIsQ0FESixHQUVJSCxLQUFLLENBQUNDLFFBQU4sQ0FBZSxLQUFmLElBQ0E7UUFBRUMsSUFBSSxFQUFFRixLQUFSO1FBQWVJLEVBQUUsRUFBRTtNQUFuQixDQURBLEdBRUE7UUFBRUYsSUFBSSxFQUFFRjtNQUFSLENBVlMsQ0FBZjtNQWFBLE9BQU8sRUFDTCxHQUFHbEIsU0FERTtRQUVMdUIsR0FBRyxlQUNELDZCQUFDLDBCQUFELE9BQ00xQixPQUROO1VBRUUsS0FBSyxzQkFBRUcsU0FBUyxDQUFDd0IsS0FBWiwrQkFBcUIzQixPQUFPLENBQUMyQixLQUZwQztVQUdFLE1BQU0sRUFBRWY7UUFIVixHQUtHVCxTQUFTLENBQUN1QixHQUxiO01BSEcsQ0FBUDtJQVlELENBdkNEO0VBd0NELENBM0NEO0FBNENEIn0=
|
|
@@ -24,4 +24,4 @@ function prefetchSpout(field) {
|
|
|
24
24
|
};
|
|
25
25
|
};
|
|
26
26
|
}
|
|
27
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,
|
|
27
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJwcmVmZXRjaFNwb3V0IiwiZmllbGQiLCJuZXh0IiwicHJvcHMiLCJuZXh0UHJvcHMiLCJ0b0ZldGNoIiwibWF0Y2hlZFJvdXRlcyIsImZvckVhY2giLCJyb3V0ZSIsInJlc29sdmVEYXRhIiwicHVzaCIsIlByb21pc2UiLCJhbGwiLCJlIiwiY29uc29sZSIsImVycm9yIl0sInNvdXJjZXMiOlsiLi4vLi4vc3JjL3Nwb3V0cy9wcmVmZXRjaC5zZXJ2ZXIudHN4Il0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFJvdXRlIH0gZnJvbSAnQGFuYW5zaS9yb3V0ZXInO1xuXG5pbXBvcnQgdHlwZSB7IFJlc29sdmVQcm9wcywgU2VydmVyUHJvcHMgfSBmcm9tICcuL3R5cGVzJztcblxudHlwZSBOZWVkZWRQcm9wczxSb3V0ZVdpdGg+ID0ge1xuICBtYXRjaGVkUm91dGVzOiBSb3V0ZTxSb3V0ZVdpdGg+W107XG59ICYgUmVzb2x2ZVByb3BzO1xuXG5leHBvcnQgZGVmYXVsdCBmdW5jdGlvbiBwcmVmZXRjaFNwb3V0PEYgZXh0ZW5kcyBzdHJpbmc+KGZpZWxkOiBGKSB7XG4gIHJldHVybiBmdW5jdGlvbiA8Um91dGVXaXRoLCBUIGV4dGVuZHMgTmVlZGVkUHJvcHM8Um91dGVXaXRoPj4oXG4gICAgbmV4dDogKHByb3BzOiBTZXJ2ZXJQcm9wcykgPT4gUHJvbWlzZTxcbiAgICAgIHtcbiAgICAgICAgW0sgaW4gRl06IFJvdXRlV2l0aDtcbiAgICAgIH0gJiBUXG4gICAgPixcbiAgKSB7XG4gICAgcmV0dXJuIGFzeW5jIChwcm9wczogU2VydmVyUHJvcHMpID0+IHtcbiAgICAgIGNvbnN0IG5leHRQcm9wcyA9IGF3YWl0IG5leHQocHJvcHMpO1xuXG4gICAgICB0cnkge1xuICAgICAgICBjb25zdCB0b0ZldGNoOiBQcm9taXNlPHVua25vd24+W10gPSBbXTtcbiAgICAgICAgbmV4dFByb3BzLm1hdGNoZWRSb3V0ZXMuZm9yRWFjaChyb3V0ZSA9PiB7XG4gICAgICAgICAgaWYgKHR5cGVvZiByb3V0ZS5yZXNvbHZlRGF0YSA9PT0gJ2Z1bmN0aW9uJykge1xuICAgICAgICAgICAgdG9GZXRjaC5wdXNoKHJvdXRlLnJlc29sdmVEYXRhKG5leHRQcm9wc1tmaWVsZF0sIHJvdXRlKSk7XG4gICAgICAgICAgfVxuICAgICAgICB9KTtcbiAgICAgICAgYXdhaXQgUHJvbWlzZS5hbGwodG9GZXRjaCk7XG4gICAgICB9IGNhdGNoIChlKSB7XG4gICAgICAgIGNvbnNvbGUuZXJyb3IoZSk7XG4gICAgICB9XG4gICAgICByZXR1cm4gbmV4dFByb3BzO1xuICAgIH07XG4gIH07XG59XG4iXSwibWFwcGluZ3MiOiI7Ozs7O0FBUWUsU0FBU0EsYUFBVCxDQUF5Q0MsS0FBekMsRUFBbUQ7RUFDaEUsT0FBTyxVQUNMQyxJQURLLEVBTUw7SUFDQSxPQUFPLE1BQU9DLEtBQVAsSUFBOEI7TUFDbkMsTUFBTUMsU0FBUyxHQUFHLE1BQU1GLElBQUksQ0FBQ0MsS0FBRCxDQUE1Qjs7TUFFQSxJQUFJO1FBQ0YsTUFBTUUsT0FBMkIsR0FBRyxFQUFwQztRQUNBRCxTQUFTLENBQUNFLGFBQVYsQ0FBd0JDLE9BQXhCLENBQWdDQyxLQUFLLElBQUk7VUFDdkMsSUFBSSxPQUFPQSxLQUFLLENBQUNDLFdBQWIsS0FBNkIsVUFBakMsRUFBNkM7WUFDM0NKLE9BQU8sQ0FBQ0ssSUFBUixDQUFhRixLQUFLLENBQUNDLFdBQU4sQ0FBa0JMLFNBQVMsQ0FBQ0gsS0FBRCxDQUEzQixFQUFvQ08sS0FBcEMsQ0FBYjtVQUNEO1FBQ0YsQ0FKRDtRQUtBLE1BQU1HLE9BQU8sQ0FBQ0MsR0FBUixDQUFZUCxPQUFaLENBQU47TUFDRCxDQVJELENBUUUsT0FBT1EsQ0FBUCxFQUFVO1FBQ1ZDLE9BQU8sQ0FBQ0MsS0FBUixDQUFjRixDQUFkO01BQ0Q7O01BQ0QsT0FBT1QsU0FBUDtJQUNELENBZkQ7RUFnQkQsQ0F2QkQ7QUF3QkQifQ==
|
package/lib/spouts/restHooks.js
CHANGED
|
@@ -31,4 +31,4 @@ function restHooksSpout(options = {
|
|
|
31
31
|
};
|
|
32
32
|
};
|
|
33
33
|
}
|
|
34
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,
|
|
34
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJyZXN0SG9va3NTcG91dCIsIm9wdGlvbnMiLCJnZXRNYW5hZ2VycyIsIk5ldHdvcmtNYW5hZ2VyIiwibmV4dCIsImRhdGEiLCJnZXREYXRhZnJvbURPTSIsIm5leHRQcm9wcyIsImFwcCJdLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9zcG91dHMvcmVzdEhvb2tzLnRzeCJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDYWNoZVByb3ZpZGVyLCBNYW5hZ2VyLCBOZXR3b3JrTWFuYWdlciB9IGZyb20gJ0ByZXN0LWhvb2tzL2NvcmUnO1xuaW1wb3J0IHsgU2VydmVyRGF0YUNvbXBvbmVudCwgZ2V0RGF0YWZyb21ET00gfSBmcm9tICdAcmVzdC1ob29rcy9zc3InO1xuXG5pbXBvcnQgdHlwZSB7IFJlc29sdmVQcm9wcyB9IGZyb20gJy4vdHlwZXMnO1xuXG50eXBlIE5lZWRlZFByb3BzID0gUmVzb2x2ZVByb3BzO1xuXG5leHBvcnQgZGVmYXVsdCBmdW5jdGlvbiByZXN0SG9va3NTcG91dChcbiAgb3B0aW9uczoge1xuICAgIGdldE1hbmFnZXJzOiAoKSA9PiBNYW5hZ2VyW107XG4gIH0gPSB7IGdldE1hbmFnZXJzOiAoKSA9PiBbbmV3IE5ldHdvcmtNYW5hZ2VyKCldIH0sXG4pIHtcbiAgcmV0dXJuIGZ1bmN0aW9uIDxUIGV4dGVuZHMgTmVlZGVkUHJvcHM+KG5leHQ6ICgpID0+IFByb21pc2U8VD4pIHtcbiAgICByZXR1cm4gYXN5bmMgKCkgPT4ge1xuICAgICAgY29uc3QgZGF0YSA9IGdldERhdGFmcm9tRE9NKCk7XG5cbiAgICAgIGNvbnN0IG5leHRQcm9wcyA9IGF3YWl0IG5leHQoKTtcblxuICAgICAgcmV0dXJuIHtcbiAgICAgICAgLi4ubmV4dFByb3BzLFxuICAgICAgICBhcHA6IChcbiAgICAgICAgICA8Q2FjaGVQcm92aWRlciBpbml0aWFsU3RhdGU9e2RhdGF9IG1hbmFnZXJzPXtvcHRpb25zLmdldE1hbmFnZXJzKCl9PlxuICAgICAgICAgICAge25leHRQcm9wcy5hcHB9XG4gICAgICAgICAgICA8U2VydmVyRGF0YUNvbXBvbmVudCBkYXRhPXtkYXRhfSAvPlxuICAgICAgICAgIDwvQ2FjaGVQcm92aWRlcj5cbiAgICAgICAgKSxcbiAgICAgIH07XG4gICAgfTtcbiAgfTtcbn1cbiJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7QUFBQTs7QUFDQTs7QUFNZSxTQUFTQSxjQUFULENBQ2JDLE9BRUMsR0FBRztFQUFFQyxXQUFXLEVBQUUsTUFBTSxDQUFDLElBQUlDLG9CQUFKLEVBQUQ7QUFBckIsQ0FIUyxFQUliO0VBQ0EsT0FBTyxVQUFpQ0MsSUFBakMsRUFBeUQ7SUFDOUQsT0FBTyxZQUFZO01BQ2pCLE1BQU1DLElBQUksR0FBRyxJQUFBQyxtQkFBQSxHQUFiO01BRUEsTUFBTUMsU0FBUyxHQUFHLE1BQU1ILElBQUksRUFBNUI7TUFFQSxPQUFPLEVBQ0wsR0FBR0csU0FERTtRQUVMQyxHQUFHLGVBQ0QsbUJBQUMsbUJBQUQ7VUFBZSxZQUFZLEVBQUVILElBQTdCO1VBQW1DLFFBQVEsRUFBRUosT0FBTyxDQUFDQyxXQUFSO1FBQTdDLFdBQ0dLLFNBQVMsQ0FBQ0MsR0FEYixlQUVFLG1CQUFDLHdCQUFEO1VBQXFCLElBQUksRUFBRUg7UUFBM0IsRUFGRjtNQUhHLENBQVA7SUFTRCxDQWREO0VBZUQsQ0FoQkQ7QUFpQkQifQ==
|
|
@@ -27,4 +27,4 @@ function restHooksSpout(options = {
|
|
|
27
27
|
};
|
|
28
28
|
};
|
|
29
29
|
}
|
|
30
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,
|
|
30
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJyZXN0SG9va3NTcG91dCIsIm9wdGlvbnMiLCJnZXRNYW5hZ2VycyIsIk5ldHdvcmtNYW5hZ2VyIiwibmV4dCIsInByb3BzIiwiU2VydmVyQ2FjaGVQcm92aWRlciIsImNvbnRyb2xsZXIiLCJjcmVhdGVQZXJzaXN0ZWRTdG9yZSIsIm5leHRQcm9wcyIsImFwcCJdLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9zcG91dHMvcmVzdEhvb2tzLnNlcnZlci50c3giXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgTWFuYWdlciwgTmV0d29ya01hbmFnZXIgfSBmcm9tICdAcmVzdC1ob29rcy9jb3JlJztcbmltcG9ydCB7IGNyZWF0ZVBlcnNpc3RlZFN0b3JlIH0gZnJvbSAnQHJlc3QtaG9va3Mvc3NyJztcblxuaW1wb3J0IHR5cGUgeyBSZXNvbHZlUHJvcHMsIFNlcnZlclByb3BzIH0gZnJvbSAnLi90eXBlcyc7XG5cbnR5cGUgTmVlZGVkUHJvcHMgPSBSZXNvbHZlUHJvcHM7XG5cbmV4cG9ydCBkZWZhdWx0IGZ1bmN0aW9uIHJlc3RIb29rc1Nwb3V0KFxuICBvcHRpb25zOiB7XG4gICAgZ2V0TWFuYWdlcnM6ICgpID0+IE1hbmFnZXJbXTtcbiAgfSA9IHsgZ2V0TWFuYWdlcnM6ICgpID0+IFtuZXcgTmV0d29ya01hbmFnZXIoKV0gfSxcbikge1xuICByZXR1cm4gZnVuY3Rpb24gPFQgZXh0ZW5kcyBOZWVkZWRQcm9wcz4oXG4gICAgbmV4dDogKHByb3BzOiBTZXJ2ZXJQcm9wcykgPT4gUHJvbWlzZTxUPixcbiAgKSB7XG4gICAgcmV0dXJuIGFzeW5jIChwcm9wczogU2VydmVyUHJvcHMpID0+IHtcbiAgICAgIGNvbnN0IFtTZXJ2ZXJDYWNoZVByb3ZpZGVyLCBjb250cm9sbGVyXSA9IGNyZWF0ZVBlcnNpc3RlZFN0b3JlKFxuICAgICAgICBvcHRpb25zLmdldE1hbmFnZXJzKCksXG4gICAgICApO1xuXG4gICAgICBjb25zdCBuZXh0UHJvcHMgPSBhd2FpdCBuZXh0KHByb3BzKTtcblxuICAgICAgcmV0dXJuIHtcbiAgICAgICAgLi4ubmV4dFByb3BzLFxuICAgICAgICBjb250cm9sbGVyLFxuICAgICAgICBhcHA6IDxTZXJ2ZXJDYWNoZVByb3ZpZGVyPntuZXh0UHJvcHMuYXBwfTwvU2VydmVyQ2FjaGVQcm92aWRlcj4sXG4gICAgICB9O1xuICAgIH07XG4gIH07XG59XG4iXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7O0FBQUE7O0FBQ0E7O0FBTWUsU0FBU0EsY0FBVCxDQUNiQyxPQUVDLEdBQUc7RUFBRUMsV0FBVyxFQUFFLE1BQU0sQ0FBQyxJQUFJQyxvQkFBSixFQUFEO0FBQXJCLENBSFMsRUFJYjtFQUNBLE9BQU8sVUFDTEMsSUFESyxFQUVMO0lBQ0EsT0FBTyxNQUFPQyxLQUFQLElBQThCO01BQ25DLE1BQU0sQ0FBQ0MsbUJBQUQsRUFBc0JDLFVBQXRCLElBQW9DLElBQUFDLHlCQUFBLEVBQ3hDUCxPQUFPLENBQUNDLFdBQVIsRUFEd0MsQ0FBMUM7TUFJQSxNQUFNTyxTQUFTLEdBQUcsTUFBTUwsSUFBSSxDQUFDQyxLQUFELENBQTVCO01BRUEsT0FBTyxFQUNMLEdBQUdJLFNBREU7UUFFTEYsVUFGSztRQUdMRyxHQUFHLGVBQUUsbUJBQUMsbUJBQUQsY0FBc0JELFNBQVMsQ0FBQ0MsR0FBaEM7TUFIQSxDQUFQO0lBS0QsQ0FaRDtFQWFELENBaEJEO0FBaUJEIn0=
|
package/lib/spouts/router.js
CHANGED
|
@@ -38,4 +38,4 @@ function routerSpout(options) {
|
|
|
38
38
|
};
|
|
39
39
|
};
|
|
40
40
|
}
|
|
41
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,
|
|
41
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJyb3V0ZXJTcG91dCIsIm9wdGlvbnMiLCJjcmVhdGVSb3V0ZUNvbXBvbmVudCIsInJvdXRlciIsIlJvdXRlciIsImNoaWxkcmVuIiwicmVzb2x2ZVdpdGgiLCJ1c2VSZXNvbHZlV2l0aCIsIm5leHQiLCJoaXN0b3J5IiwiY3JlYXRlQnJvd3Nlckhpc3RvcnkiLCJjcmVhdGVSb3V0ZXIiLCJtYXRjaGVkUm91dGVzIiwiZ2V0TWF0Y2hlZFJvdXRlcyIsImxvY2F0aW9uIiwicGF0aG5hbWUiLCJuZXh0UHJvcHMiLCJhcHAiXSwic291cmNlcyI6WyIuLi8uLi9zcmMvc3BvdXRzL3JvdXRlci50c3giXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgUm91dGUsIFJvdXRlUHJvdmlkZXIsIFJvdXRlQ29udHJvbGxlciB9IGZyb20gJ0BhbmFuc2kvcm91dGVyJztcbmltcG9ydCBSZWFjdCBmcm9tICdyZWFjdCc7XG5pbXBvcnQgeyBjcmVhdGVCcm93c2VySGlzdG9yeSB9IGZyb20gJ2hpc3RvcnknO1xuXG5pbXBvcnQgdHlwZSB7IFJlc29sdmVQcm9wcywgQ3JlYXRlUm91dGVyIH0gZnJvbSAnLi90eXBlcyc7XG5cbnR5cGUgTmVlZGVkUHJvcHMgPSBSZXNvbHZlUHJvcHM7XG5cbmV4cG9ydCBkZWZhdWx0IGZ1bmN0aW9uIHJvdXRlclNwb3V0PFJlc29sdmVXaXRoPihvcHRpb25zOiB7XG4gIHJlc29sdmVXaXRoPzogYW55O1xuICB1c2VSZXNvbHZlV2l0aDogKCkgPT4gUmVzb2x2ZVdpdGg7XG4gIGNyZWF0ZVJvdXRlcjogQ3JlYXRlUm91dGVyPFJlc29sdmVXaXRoPjtcbn0pIHtcbiAgY29uc3QgY3JlYXRlUm91dGVDb21wb25lbnQgPSAoXG4gICAgcm91dGVyOiBSb3V0ZUNvbnRyb2xsZXI8Um91dGU8UmVzb2x2ZVdpdGgsIGFueT4+LFxuICApID0+XG4gICAgZnVuY3Rpb24gUm91dGVyKHsgY2hpbGRyZW4gfTogeyBjaGlsZHJlbjogUmVhY3QuUmVhY3ROb2RlIH0pIHtcbiAgICAgIGNvbnN0IHJlc29sdmVXaXRoID0gb3B0aW9ucy51c2VSZXNvbHZlV2l0aCgpO1xuXG4gICAgICByZXR1cm4gKFxuICAgICAgICA8Um91dGVQcm92aWRlciByb3V0ZXI9e3JvdXRlcn0gcmVzb2x2ZVdpdGg9e3Jlc29sdmVXaXRofT5cbiAgICAgICAgICB7Y2hpbGRyZW59XG4gICAgICAgIDwvUm91dGVQcm92aWRlcj5cbiAgICAgICk7XG4gICAgfTtcblxuICByZXR1cm4gZnVuY3Rpb24gPFQgZXh0ZW5kcyBOZWVkZWRQcm9wcz4obmV4dDogKCkgPT4gUHJvbWlzZTxUPikge1xuICAgIHJldHVybiBhc3luYyAoKSA9PiB7XG4gICAgICBjb25zdCBoaXN0b3J5ID0gY3JlYXRlQnJvd3Nlckhpc3RvcnkoKTtcbiAgICAgIGNvbnN0IHJvdXRlciA9IG9wdGlvbnMuY3JlYXRlUm91dGVyKGhpc3RvcnkpO1xuICAgICAgY29uc3QgbWF0Y2hlZFJvdXRlcyA9IHJvdXRlci5nZXRNYXRjaGVkUm91dGVzKGhpc3RvcnkubG9jYXRpb24ucGF0aG5hbWUpO1xuXG4gICAgICBjb25zdCBuZXh0UHJvcHMgPSBhd2FpdCBuZXh0KCk7XG5cbiAgICAgIGNvbnN0IFJvdXRlciA9IGNyZWF0ZVJvdXRlQ29tcG9uZW50KHJvdXRlcik7XG4gICAgICByZXR1cm4ge1xuICAgICAgICAuLi5uZXh0UHJvcHMsXG4gICAgICAgIG1hdGNoZWRSb3V0ZXMsXG4gICAgICAgIGFwcDogPFJvdXRlcj57bmV4dFByb3BzLmFwcH08L1JvdXRlcj4sXG4gICAgICB9O1xuICAgIH07XG4gIH07XG59XG4iXSwibWFwcGluZ3MiOiI7Ozs7Ozs7OztBQUFBOztBQUNBOztBQUNBOztBQU1lLFNBQVNBLFdBQVQsQ0FBa0NDLE9BQWxDLEVBSVo7RUFDRCxNQUFNQyxvQkFBb0IsR0FDeEJDLE1BRDJCLElBRzNCLFNBQVNDLE1BQVQsQ0FBZ0I7SUFBRUM7RUFBRixDQUFoQixFQUE2RDtJQUMzRCxNQUFNQyxXQUFXLEdBQUdMLE9BQU8sQ0FBQ00sY0FBUixFQUFwQjtJQUVBLG9CQUNFLG1CQUFDLHFCQUFEO01BQWUsTUFBTSxFQUFFSixNQUF2QjtNQUErQixXQUFXLEVBQUVHO0lBQTVDLFdBQ0dELFFBREgsQ0FERjtFQUtELENBWEg7O0VBYUEsT0FBTyxVQUFpQ0csSUFBakMsRUFBeUQ7SUFDOUQsT0FBTyxZQUFZO01BQ2pCLE1BQU1DLE9BQU8sR0FBRyxJQUFBQyw2QkFBQSxHQUFoQjtNQUNBLE1BQU1QLE1BQU0sR0FBR0YsT0FBTyxDQUFDVSxZQUFSLENBQXFCRixPQUFyQixDQUFmO01BQ0EsTUFBTUcsYUFBYSxHQUFHVCxNQUFNLENBQUNVLGdCQUFQLENBQXdCSixPQUFPLENBQUNLLFFBQVIsQ0FBaUJDLFFBQXpDLENBQXRCO01BRUEsTUFBTUMsU0FBUyxHQUFHLE1BQU1SLElBQUksRUFBNUI7TUFFQSxNQUFNSixNQUFNLEdBQUdGLG9CQUFvQixDQUFDQyxNQUFELENBQW5DO01BQ0EsT0FBTyxFQUNMLEdBQUdhLFNBREU7UUFFTEosYUFGSztRQUdMSyxHQUFHLGVBQUUsbUJBQUMsTUFBRCxjQUFTRCxTQUFTLENBQUNDLEdBQW5CO01BSEEsQ0FBUDtJQUtELENBYkQ7RUFjRCxDQWZEO0FBZ0JEIn0=
|
|
@@ -40,4 +40,4 @@ function routerSpout(options) {
|
|
|
40
40
|
};
|
|
41
41
|
};
|
|
42
42
|
}
|
|
43
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,
|
|
43
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJyb3V0ZXJTcG91dCIsIm9wdGlvbnMiLCJjcmVhdGVSb3V0ZUNvbXBvbmVudCIsInJvdXRlciIsIlJvdXRlciIsImNoaWxkcmVuIiwicmVzb2x2ZVdpdGgiLCJ1c2VSZXNvbHZlV2l0aCIsIm5leHQiLCJwcm9wcyIsInVybCIsInJlcSIsImNyZWF0ZVJvdXRlciIsImNyZWF0ZU1lbW9yeUhpc3RvcnkiLCJpbml0aWFsRW50cmllcyIsIm1hdGNoZWRSb3V0ZXMiLCJnZXRNYXRjaGVkUm91dGVzIiwibmV4dFByb3BzIiwiYXBwIl0sInNvdXJjZXMiOlsiLi4vLi4vc3JjL3Nwb3V0cy9yb3V0ZXIuc2VydmVyLnRzeCJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBSb3V0ZSwgUm91dGVQcm92aWRlciwgUm91dGVDb250cm9sbGVyIH0gZnJvbSAnQGFuYW5zaS9yb3V0ZXInO1xuaW1wb3J0IFJlYWN0IGZyb20gJ3JlYWN0JztcbmltcG9ydCB7IGNyZWF0ZU1lbW9yeUhpc3RvcnkgfSBmcm9tICdoaXN0b3J5JztcblxuaW1wb3J0IHR5cGUgeyBSZXNvbHZlUHJvcHMsIFNlcnZlclByb3BzLCBDcmVhdGVSb3V0ZXIgfSBmcm9tICcuL3R5cGVzJztcblxudHlwZSBOZWVkZWRQcm9wcyA9IFJlc29sdmVQcm9wcztcblxuZXhwb3J0IGRlZmF1bHQgZnVuY3Rpb24gcm91dGVyU3BvdXQ8UmVzb2x2ZVdpdGg+KG9wdGlvbnM6IHtcbiAgcmVzb2x2ZVdpdGg/OiBhbnk7XG4gIHVzZVJlc29sdmVXaXRoOiAoKSA9PiBSZXNvbHZlV2l0aDtcbiAgY3JlYXRlUm91dGVyOiBDcmVhdGVSb3V0ZXI8UmVzb2x2ZVdpdGg+O1xufSkge1xuICBjb25zdCBjcmVhdGVSb3V0ZUNvbXBvbmVudCA9IChcbiAgICByb3V0ZXI6IFJvdXRlQ29udHJvbGxlcjxSb3V0ZTxSZXNvbHZlV2l0aCwgYW55Pj4sXG4gICkgPT5cbiAgICBmdW5jdGlvbiBSb3V0ZXIoeyBjaGlsZHJlbiB9OiB7IGNoaWxkcmVuOiBSZWFjdC5SZWFjdE5vZGUgfSkge1xuICAgICAgY29uc3QgcmVzb2x2ZVdpdGggPSBvcHRpb25zLnVzZVJlc29sdmVXaXRoKCk7XG5cbiAgICAgIHJldHVybiAoXG4gICAgICAgIDxSb3V0ZVByb3ZpZGVyIHJvdXRlcj17cm91dGVyfSByZXNvbHZlV2l0aD17cmVzb2x2ZVdpdGh9PlxuICAgICAgICAgIHtjaGlsZHJlbn1cbiAgICAgICAgPC9Sb3V0ZVByb3ZpZGVyPlxuICAgICAgKTtcbiAgICB9O1xuXG4gIHJldHVybiBmdW5jdGlvbiA8VCBleHRlbmRzIE5lZWRlZFByb3BzPihcbiAgICBuZXh0OiAocHJvcHM6IFNlcnZlclByb3BzKSA9PiBQcm9taXNlPFQ+LFxuICApIHtcbiAgICByZXR1cm4gYXN5bmMgKHByb3BzOiBTZXJ2ZXJQcm9wcykgPT4ge1xuICAgICAgY29uc3QgdXJsID0gcHJvcHMucmVxLnVybCB8fCAnJztcbiAgICAgIGNvbnN0IHJvdXRlciA9IG9wdGlvbnMuY3JlYXRlUm91dGVyKFxuICAgICAgICBjcmVhdGVNZW1vcnlIaXN0b3J5KHsgaW5pdGlhbEVudHJpZXM6IFt1cmxdIH0pLFxuICAgICAgKTtcbiAgICAgIGNvbnN0IG1hdGNoZWRSb3V0ZXM6IFJvdXRlPFJlc29sdmVXaXRoPltdID0gcm91dGVyLmdldE1hdGNoZWRSb3V0ZXModXJsKTtcblxuICAgICAgY29uc3QgbmV4dFByb3BzID0gYXdhaXQgbmV4dChwcm9wcyk7XG5cbiAgICAgIGNvbnN0IFJvdXRlciA9IGNyZWF0ZVJvdXRlQ29tcG9uZW50KHJvdXRlcik7XG4gICAgICByZXR1cm4ge1xuICAgICAgICAuLi5uZXh0UHJvcHMsXG4gICAgICAgIG1hdGNoZWRSb3V0ZXMsXG4gICAgICAgIGFwcDogPFJvdXRlcj57bmV4dFByb3BzLmFwcH08L1JvdXRlcj4sXG4gICAgICB9O1xuICAgIH07XG4gIH07XG59XG4iXSwibWFwcGluZ3MiOiI7Ozs7Ozs7OztBQUFBOztBQUNBOztBQUNBOztBQU1lLFNBQVNBLFdBQVQsQ0FBa0NDLE9BQWxDLEVBSVo7RUFDRCxNQUFNQyxvQkFBb0IsR0FDeEJDLE1BRDJCLElBRzNCLFNBQVNDLE1BQVQsQ0FBZ0I7SUFBRUM7RUFBRixDQUFoQixFQUE2RDtJQUMzRCxNQUFNQyxXQUFXLEdBQUdMLE9BQU8sQ0FBQ00sY0FBUixFQUFwQjtJQUVBLG9CQUNFLG1CQUFDLHFCQUFEO01BQWUsTUFBTSxFQUFFSixNQUF2QjtNQUErQixXQUFXLEVBQUVHO0lBQTVDLFdBQ0dELFFBREgsQ0FERjtFQUtELENBWEg7O0VBYUEsT0FBTyxVQUNMRyxJQURLLEVBRUw7SUFDQSxPQUFPLE1BQU9DLEtBQVAsSUFBOEI7TUFDbkMsTUFBTUMsR0FBRyxHQUFHRCxLQUFLLENBQUNFLEdBQU4sQ0FBVUQsR0FBVixJQUFpQixFQUE3QjtNQUNBLE1BQU1QLE1BQU0sR0FBR0YsT0FBTyxDQUFDVyxZQUFSLENBQ2IsSUFBQUMsNEJBQUEsRUFBb0I7UUFBRUMsY0FBYyxFQUFFLENBQUNKLEdBQUQ7TUFBbEIsQ0FBcEIsQ0FEYSxDQUFmO01BR0EsTUFBTUssYUFBbUMsR0FBR1osTUFBTSxDQUFDYSxnQkFBUCxDQUF3Qk4sR0FBeEIsQ0FBNUM7TUFFQSxNQUFNTyxTQUFTLEdBQUcsTUFBTVQsSUFBSSxDQUFDQyxLQUFELENBQTVCO01BRUEsTUFBTUwsTUFBTSxHQUFHRixvQkFBb0IsQ0FBQ0MsTUFBRCxDQUFuQztNQUNBLE9BQU8sRUFDTCxHQUFHYyxTQURFO1FBRUxGLGFBRks7UUFHTEcsR0FBRyxlQUFFLG1CQUFDLE1BQUQsY0FBU0QsU0FBUyxDQUFDQyxHQUFuQjtNQUhBLENBQVA7SUFLRCxDQWZEO0VBZ0JELENBbkJEO0FBb0JEIn0=
|
package/lib/spouts/types.js
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
|
|
3
3
|
exports.__esModule = true;
|
|
4
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,
|
|
4
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6W10sInNvdXJjZXMiOlsiLi4vLi4vc3JjL3Nwb3V0cy90eXBlcy50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmNvbWluZ01lc3NhZ2UsIFNlcnZlclJlc3BvbnNlIH0gZnJvbSAnaHR0cCc7XG5pbXBvcnQgeyBSZXF1ZXN0LCBSZXNwb25zZSB9IGZyb20gJ2V4cHJlc3MnO1xuaW1wb3J0IHR5cGUgeyBTdGF0c0NvbXBpbGF0aW9uIH0gZnJvbSAnd2VicGFjayc7XG5pbXBvcnQgeyBIaXN0b3J5IH0gZnJvbSAnaGlzdG9yeSc7XG5pbXBvcnQgeyBSb3V0ZSwgUm91dGVDb250cm9sbGVyIH0gZnJvbSAnQGFuYW5zaS9yb3V0ZXInO1xuXG4vKiBWYXJpYWJsZXMgZnJvbSB0aGUgcmVuZGVyaW5nIGNhbGwgKi9cbmV4cG9ydCB0eXBlIFNlcnZlclByb3BzID0ge1xuICByZXE6IFJlcXVlc3QgfCBJbmNvbWluZ01lc3NhZ2U7XG4gIHJlczogUmVzcG9uc2UgfCBTZXJ2ZXJSZXNwb25zZTtcbiAgY2xpZW50TWFuaWZlc3Q6IFN0YXRzQ29tcGlsYXRpb247XG59O1xuXG4vKiBCYXNlbGluZSBleHBlY3RhdGlvbnMgb2YgcmV0dXJuIHZhbHVlICovXG5leHBvcnQgdHlwZSBSZXNvbHZlUHJvcHMgPSB7XG4gIGFwcDogSlNYLkVsZW1lbnQ7XG59O1xuXG5leHBvcnQgdHlwZSBDcmVhdGVSb3V0ZXI8VD4gPSAoXG4gIGhpc3Rvcnk6IEhpc3RvcnksXG4pID0+IFJvdXRlQ29udHJvbGxlcjxSb3V0ZTxULCBhbnk+PjtcbiJdLCJtYXBwaW5ncyI6IiJ9
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@anansi/core",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.4.0",
|
|
4
4
|
"description": "React 18 Framework",
|
|
5
5
|
"homepage": "https://github.com/ntucker/anansi/tree/master/packages/core#readme",
|
|
6
6
|
"repository": {
|
|
@@ -56,40 +56,43 @@
|
|
|
56
56
|
"browser"
|
|
57
57
|
],
|
|
58
58
|
"devDependencies": {
|
|
59
|
-
"@anansi/babel-preset": "^3.
|
|
59
|
+
"@anansi/babel-preset": "^3.1.2",
|
|
60
60
|
"@anansi/browserslist-config": "1.3.3",
|
|
61
|
-
"@babel/cli": "7.17.
|
|
62
|
-
"@babel/core": "7.17.
|
|
61
|
+
"@babel/cli": "7.17.10",
|
|
62
|
+
"@babel/core": "7.17.12",
|
|
63
63
|
"@types/compression": "^1.7.2",
|
|
64
64
|
"@types/source-map-support": "^0.5.4",
|
|
65
65
|
"@types/tmp": "^0.2.3",
|
|
66
66
|
"@types/webpack-hot-middleware": "^2.25.6",
|
|
67
|
-
"jest": "
|
|
67
|
+
"jest": "28.1.0",
|
|
68
68
|
"rimraf": "^3.0.0"
|
|
69
69
|
},
|
|
70
70
|
"dependencies": {
|
|
71
|
-
"@anansi/router": "^0.
|
|
71
|
+
"@anansi/router": "^0.4.2",
|
|
72
72
|
"@babel/runtime": "^7.10.5",
|
|
73
73
|
"@rest-hooks/ssr": "^0.1.3",
|
|
74
|
+
"chalk": "^4.0.0",
|
|
74
75
|
"compression": "^1.7.4",
|
|
75
76
|
"cross-fetch": "^3.1.5",
|
|
76
77
|
"express": "^4.17.3",
|
|
77
78
|
"fs-monkey": "^1.0.3",
|
|
79
|
+
"import-fresh": "^3.3.0",
|
|
78
80
|
"memfs": "^3.4.1",
|
|
79
81
|
"ora": "^5.0.0",
|
|
80
82
|
"redux": "^4.1.2",
|
|
81
|
-
"rest-hooks": "6.3.
|
|
83
|
+
"rest-hooks": "6.3.3",
|
|
82
84
|
"source-map-support": "^0.5.21",
|
|
83
85
|
"tmp": "^0.2.1",
|
|
84
86
|
"unionfs": "^4.4.0",
|
|
85
|
-
"webpack-
|
|
87
|
+
"webpack-dev-server": "^4.9.0",
|
|
86
88
|
"whatwg-fetch": "^3.6.2"
|
|
87
89
|
},
|
|
88
90
|
"peerDependencies": {
|
|
89
91
|
"@types/react": "^17.0.40 || ^18.0.0-0",
|
|
90
92
|
"@types/react-dom": "^17.0.40 || ^18.0.0-0",
|
|
91
93
|
"react": "^18.0.0-0",
|
|
92
|
-
"react-dom": "^18.0.0-0"
|
|
94
|
+
"react-dom": "^18.0.0-0",
|
|
95
|
+
"webpack": "^5.60.0"
|
|
93
96
|
},
|
|
94
97
|
"peerDependenciesMeta": {
|
|
95
98
|
"@types/react": {
|
|
@@ -107,6 +110,7 @@
|
|
|
107
110
|
],
|
|
108
111
|
"scripts": {
|
|
109
112
|
"pretest": "eslint --ext .ts,.tsx .",
|
|
113
|
+
"dev": "yarn run build:lib -w",
|
|
110
114
|
"test": "jest",
|
|
111
115
|
"test:type": "tsc",
|
|
112
116
|
"build": "yarn run build:lib",
|
package/src/laySpouts.tsx
CHANGED
|
@@ -7,7 +7,7 @@ export default function laySpouts(
|
|
|
7
7
|
spouts: (props: ServerProps) => Promise<{
|
|
8
8
|
app: JSX.Element;
|
|
9
9
|
}>,
|
|
10
|
-
{ timeoutMS =
|
|
10
|
+
{ timeoutMS = 100 }: { timeoutMS?: number } = {},
|
|
11
11
|
) {
|
|
12
12
|
const render: Render = async (clientManifest, req, res) => {
|
|
13
13
|
const { app } = await spouts({ clientManifest, req, res });
|
|
@@ -4,7 +4,6 @@ import { promisify } from 'util';
|
|
|
4
4
|
import diskFs from 'fs';
|
|
5
5
|
import path from 'path';
|
|
6
6
|
import webpack, { MultiCompiler } from 'webpack';
|
|
7
|
-
import webpackHotMiddleware from 'webpack-hot-middleware';
|
|
8
7
|
import { createFsFromVolume, Volume } from 'memfs';
|
|
9
8
|
import { Server, IncomingMessage, ServerResponse } from 'http';
|
|
10
9
|
import express, { NextFunction } from 'express';
|
|
@@ -14,6 +13,9 @@ import tmp from 'tmp';
|
|
|
14
13
|
import sourceMapSupport from 'source-map-support';
|
|
15
14
|
import { ufs } from 'unionfs';
|
|
16
15
|
import compress from 'compression';
|
|
16
|
+
import WebpackDevServer from 'webpack-dev-server';
|
|
17
|
+
import importFresh from 'import-fresh';
|
|
18
|
+
import chalk from 'chalk';
|
|
17
19
|
|
|
18
20
|
import 'cross-fetch/polyfill';
|
|
19
21
|
import { Render } from './types';
|
|
@@ -34,7 +36,11 @@ if (!entrypoint) {
|
|
|
34
36
|
process.exit(-1);
|
|
35
37
|
}
|
|
36
38
|
|
|
37
|
-
|
|
39
|
+
console.log(
|
|
40
|
+
chalk.greenBright(`Starting SSR at`),
|
|
41
|
+
chalk.cyanBright(process.env.WEBPACK_PUBLIC_HOST),
|
|
42
|
+
);
|
|
43
|
+
const loader = ora().start();
|
|
38
44
|
|
|
39
45
|
// Set up in memory filesystem
|
|
40
46
|
const volume = new Volume();
|
|
@@ -75,20 +81,19 @@ const webpackConfigs = [
|
|
|
75
81
|
),
|
|
76
82
|
webpackConfig(
|
|
77
83
|
{
|
|
78
|
-
entrypoint:
|
|
84
|
+
entrypoint: entrypoint.replace('.tsx', '.server.tsx'),
|
|
79
85
|
name: 'server',
|
|
80
86
|
},
|
|
81
87
|
{ mode: 'development', target: 'node' },
|
|
82
88
|
),
|
|
83
89
|
] as const;
|
|
90
|
+
// only have one output for server so we can avoid cached modules
|
|
91
|
+
webpackConfigs[1].plugins.push(
|
|
92
|
+
new webpack.optimize.LimitChunkCountPlugin({ maxChunks: 1 }),
|
|
93
|
+
);
|
|
84
94
|
// initialize the webpack compiler
|
|
85
95
|
const compiler: MultiCompiler = webpack(webpackConfigs);
|
|
86
96
|
|
|
87
|
-
compiler.outputFileSystem = {
|
|
88
|
-
...fs,
|
|
89
|
-
join: path.join as any,
|
|
90
|
-
} as any as typeof fs;
|
|
91
|
-
|
|
92
97
|
sourceMapSupport.install({ hookRequire: true });
|
|
93
98
|
|
|
94
99
|
function getServerBundle(serverStats: webpack.Stats) {
|
|
@@ -113,19 +118,20 @@ function handleErrors<
|
|
|
113
118
|
}
|
|
114
119
|
};
|
|
115
120
|
}
|
|
116
|
-
|
|
121
|
+
let render: Render;
|
|
117
122
|
// Start the express server after the first compilation
|
|
118
123
|
function initializeApp(stats: webpack.Stats[]) {
|
|
119
|
-
loader.info('Launching server');
|
|
120
124
|
const [clientStats, serverStats] = stats;
|
|
121
125
|
if (
|
|
122
126
|
clientStats?.compilation?.errors?.length ||
|
|
123
127
|
serverStats?.compilation?.errors?.length
|
|
124
128
|
) {
|
|
125
|
-
|
|
126
|
-
|
|
129
|
+
loader.fail('Errors for client build: ' + clientStats.compilation.errors);
|
|
130
|
+
loader.fail('Errors for server build: ' + serverStats.compilation.errors);
|
|
127
131
|
// TODO: handle more gracefully
|
|
128
132
|
process.exit(-1);
|
|
133
|
+
} else {
|
|
134
|
+
loader.info('Launching server');
|
|
129
135
|
}
|
|
130
136
|
|
|
131
137
|
const wrappingApp = express();
|
|
@@ -134,19 +140,12 @@ function initializeApp(stats: webpack.Stats[]) {
|
|
|
134
140
|
wrappingApp.use(compress());
|
|
135
141
|
|
|
136
142
|
// ASSETS
|
|
137
|
-
wrappingApp.use(
|
|
138
|
-
webpackHotMiddleware(compiler.compilers[0], {
|
|
139
|
-
log: console.log,
|
|
140
|
-
path: '/__webpack_hmr',
|
|
141
|
-
heartbeat: 10 * 1000,
|
|
142
|
-
//noInfo: true,
|
|
143
|
-
//name: 'client',
|
|
144
|
-
}),
|
|
145
|
-
);
|
|
146
143
|
const clientManifest = clientStats.toJson();
|
|
147
144
|
const assetRoute = async (req: Request | IncomingMessage, res: any) => {
|
|
148
145
|
const filename =
|
|
149
|
-
req.url
|
|
146
|
+
req.url
|
|
147
|
+
?.substring((process.env.WEBPACK_PUBLIC_PATH as string).length)
|
|
148
|
+
.split('?')[0] ?? '';
|
|
150
149
|
const assetPath = path.join(clientManifest.outputPath ?? '', filename);
|
|
151
150
|
|
|
152
151
|
try {
|
|
@@ -163,7 +162,7 @@ function initializeApp(stats: webpack.Stats[]) {
|
|
|
163
162
|
|
|
164
163
|
// SERVER SIDE RENDERING
|
|
165
164
|
// eslint-disable-next-line @typescript-eslint/no-var-requires
|
|
166
|
-
|
|
165
|
+
render = require(getServerBundle(serverStats)).default;
|
|
167
166
|
wrappingApp.get(
|
|
168
167
|
'/*',
|
|
169
168
|
handleErrors(async function (req: any, res: any) {
|
|
@@ -183,7 +182,7 @@ function initializeApp(stats: webpack.Stats[]) {
|
|
|
183
182
|
|
|
184
183
|
server = wrappingApp
|
|
185
184
|
.listen(PORT, () => {
|
|
186
|
-
|
|
185
|
+
loader.succeed(`SSR Running`);
|
|
187
186
|
})
|
|
188
187
|
.on('error', function (error: any) {
|
|
189
188
|
if (error.syscall !== 'listen') {
|
|
@@ -206,37 +205,67 @@ function initializeApp(stats: webpack.Stats[]) {
|
|
|
206
205
|
});
|
|
207
206
|
}
|
|
208
207
|
|
|
209
|
-
|
|
210
|
-
|
|
211
|
-
|
|
212
|
-
|
|
213
|
-
|
|
214
|
-
|
|
215
|
-
|
|
216
|
-
|
|
217
|
-
|
|
218
|
-
|
|
219
|
-
|
|
220
|
-
|
|
221
|
-
|
|
222
|
-
|
|
223
|
-
|
|
224
|
-
|
|
225
|
-
|
|
226
|
-
|
|
227
|
-
|
|
228
|
-
|
|
229
|
-
|
|
230
|
-
|
|
208
|
+
const devServer = new WebpackDevServer(
|
|
209
|
+
// write to memory filesystem so we can import
|
|
210
|
+
{
|
|
211
|
+
...webpackConfigs[0].devServer,
|
|
212
|
+
/*client: {
|
|
213
|
+
...webpackConfigs[0].devServer?.client,
|
|
214
|
+
webSocketURL: {
|
|
215
|
+
...webpackConfigs[0].devServer?.client.webSocketURL,
|
|
216
|
+
port: 8080,
|
|
217
|
+
},
|
|
218
|
+
},*/
|
|
219
|
+
devMiddleware: {
|
|
220
|
+
...webpackConfigs[0]?.devServer?.devMiddleware,
|
|
221
|
+
outputFileSystem: {
|
|
222
|
+
...fs,
|
|
223
|
+
join: path.join as any,
|
|
224
|
+
} as any as typeof fs,
|
|
225
|
+
},
|
|
226
|
+
},
|
|
227
|
+
compiler,
|
|
228
|
+
);
|
|
229
|
+
const runServer = async () => {
|
|
230
|
+
await devServer.start();
|
|
231
|
+
devServer.compiler.hooks.done.tap(
|
|
232
|
+
'Anansi Server',
|
|
233
|
+
(multiStats: webpack.MultiStats | webpack.Stats) => {
|
|
234
|
+
if (!multiStats) {
|
|
235
|
+
loader.fail('stats not send');
|
|
236
|
+
process.exit(-1);
|
|
237
|
+
}
|
|
238
|
+
|
|
239
|
+
if (!Object.hasOwn(multiStats, 'stats')) return;
|
|
240
|
+
if (server && (multiStats as webpack.MultiStats).stats.length > 1) {
|
|
241
|
+
render = (
|
|
242
|
+
importFresh(
|
|
243
|
+
getServerBundle((multiStats as webpack.MultiStats).stats[1]),
|
|
244
|
+
) as any
|
|
245
|
+
).default;
|
|
246
|
+
return;
|
|
247
|
+
}
|
|
248
|
+
if (!server) {
|
|
249
|
+
try {
|
|
250
|
+
initializeApp((multiStats as webpack.MultiStats).stats);
|
|
251
|
+
} catch (e) {
|
|
252
|
+
loader.fail('Failed to initialize app');
|
|
253
|
+
console.error(e);
|
|
254
|
+
}
|
|
255
|
+
}
|
|
256
|
+
},
|
|
257
|
+
);
|
|
258
|
+
};
|
|
259
|
+
const stopServer = async () => {
|
|
260
|
+
loader.info('Stopping server...');
|
|
261
|
+
await devServer.stop();
|
|
262
|
+
loader.info('Server closed');
|
|
263
|
+
};
|
|
231
264
|
|
|
232
265
|
process.on('SIGINT', () => {
|
|
233
266
|
loader.warn('Received SIGINT, devserver shutting down');
|
|
234
|
-
|
|
235
|
-
server?.close(() => {
|
|
236
|
-
loader.info('Server closed');
|
|
237
|
-
});
|
|
238
|
-
watcher.close(() => {
|
|
239
|
-
loader.info('webpack build stopped');
|
|
240
|
-
});
|
|
267
|
+
stopServer();
|
|
241
268
|
process.exit(-1);
|
|
242
269
|
});
|
|
270
|
+
|
|
271
|
+
runServer();
|