@anansi/core 0.16.6 → 0.16.8

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 (92) hide show
  1. package/CHANGELOG.md +23 -0
  2. package/dist/2.chunk.js +20 -0
  3. package/dist/client.js +233 -285
  4. package/dist/package.json +1 -0
  5. package/dist/server.js +358 -496
  6. package/lib/floodSpouts.js +4 -8
  7. package/lib/index.d.ts +8 -8
  8. package/lib/index.d.ts.map +1 -1
  9. package/lib/index.js +7 -18
  10. package/lib/index.server.d.ts +10 -10
  11. package/lib/index.server.d.ts.map +1 -1
  12. package/lib/index.server.js +9 -22
  13. package/lib/laySpouts.d.ts +2 -2
  14. package/lib/laySpouts.d.ts.map +1 -1
  15. package/lib/laySpouts.js +6 -11
  16. package/lib/scripts/getProxyMiddlewares.js +1 -1
  17. package/lib/scripts/getWebpackConfig.d.ts +3 -0
  18. package/lib/scripts/getWebpackConfig.d.ts.map +1 -0
  19. package/lib/scripts/getWebpackConfig.js +22 -0
  20. package/lib/scripts/index.d.ts +2 -2
  21. package/lib/scripts/index.d.ts.map +1 -1
  22. package/lib/scripts/index.js +3 -3
  23. package/lib/scripts/package.json +1 -0
  24. package/lib/scripts/serve.d.ts +1 -1
  25. package/lib/scripts/serve.d.ts.map +1 -1
  26. package/lib/scripts/serve.js +8 -6
  27. package/lib/scripts/startDevserver.d.ts +1 -1
  28. package/lib/scripts/startDevserver.d.ts.map +1 -1
  29. package/lib/scripts/startDevserver.js +4 -6
  30. package/lib/spouts/DocumentComponent.d.ts +1 -1
  31. package/lib/spouts/DocumentComponent.d.ts.map +1 -1
  32. package/lib/spouts/DocumentComponent.js +14 -21
  33. package/lib/spouts/antd.server.d.ts +1 -1
  34. package/lib/spouts/antd.server.d.ts.map +1 -1
  35. package/lib/spouts/antd.server.js +8 -14
  36. package/lib/spouts/app.js +2 -7
  37. package/lib/spouts/app.server.d.ts +1 -1
  38. package/lib/spouts/app.server.d.ts.map +1 -1
  39. package/lib/spouts/app.server.js +2 -7
  40. package/lib/spouts/csp.js +2 -6
  41. package/lib/spouts/document.d.ts +1 -1
  42. package/lib/spouts/document.d.ts.map +1 -1
  43. package/lib/spouts/document.js +2 -6
  44. package/lib/spouts/document.server.d.ts +2 -2
  45. package/lib/spouts/document.server.d.ts.map +1 -1
  46. package/lib/spouts/document.server.js +10 -12
  47. package/lib/spouts/json.d.ts +1 -1
  48. package/lib/spouts/json.d.ts.map +1 -1
  49. package/lib/spouts/json.js +2 -6
  50. package/lib/spouts/json.server.d.ts +1 -1
  51. package/lib/spouts/json.server.d.ts.map +1 -1
  52. package/lib/spouts/json.server.js +6 -12
  53. package/lib/spouts/prefetch.server.d.ts +1 -1
  54. package/lib/spouts/prefetch.server.d.ts.map +1 -1
  55. package/lib/spouts/prefetch.server.js +2 -6
  56. package/lib/spouts/restHooks.d.ts +1 -1
  57. package/lib/spouts/restHooks.d.ts.map +1 -1
  58. package/lib/spouts/restHooks.js +6 -12
  59. package/lib/spouts/restHooks.provider.js +2 -7
  60. package/lib/spouts/restHooks.server.d.ts +1 -1
  61. package/lib/spouts/restHooks.server.d.ts.map +1 -1
  62. package/lib/spouts/restHooks.server.js +7 -13
  63. package/lib/spouts/router.d.ts +1 -1
  64. package/lib/spouts/router.d.ts.map +1 -1
  65. package/lib/spouts/router.js +9 -14
  66. package/lib/spouts/router.server.d.ts +1 -1
  67. package/lib/spouts/router.server.d.ts.map +1 -1
  68. package/lib/spouts/router.server.js +9 -14
  69. package/lib/spouts/types.js +1 -3
  70. package/package.json +14 -11
  71. package/src/index.server.ts +10 -10
  72. package/src/index.ts +8 -8
  73. package/src/laySpouts.tsx +2 -2
  74. package/src/scripts/getWebpackConfig.ts +22 -0
  75. package/src/scripts/index.ts +2 -2
  76. package/src/scripts/package.json +1 -0
  77. package/src/scripts/serve.ts +15 -12
  78. package/src/scripts/startDevserver.ts +5 -8
  79. package/src/spouts/DocumentComponent.tsx +3 -7
  80. package/src/spouts/antd.server.tsx +1 -1
  81. package/src/spouts/app.server.tsx +1 -1
  82. package/src/spouts/document.server.tsx +12 -4
  83. package/src/spouts/document.tsx +1 -2
  84. package/src/spouts/json.server.tsx +1 -1
  85. package/src/spouts/json.tsx +1 -1
  86. package/src/spouts/prefetch.server.tsx +1 -1
  87. package/src/spouts/restHooks.server.tsx +1 -1
  88. package/src/spouts/restHooks.tsx +2 -2
  89. package/src/spouts/router.server.tsx +1 -1
  90. package/src/spouts/router.tsx +1 -1
  91. package/dist/client.js.map +0 -1
  92. package/dist/server.js.map +0 -1
package/dist/client.js CHANGED
@@ -1,15 +1,183 @@
1
1
  /******/ (() => { // webpackBootstrap
2
+ /******/ "use strict";
2
3
  /******/ var __webpack_modules__ = ({
3
4
 
4
- /***/ "./src/floodSpouts.tsx":
5
- /***/ ((__unused_webpack_module, exports, __webpack_require__) => {
5
+ /***/ 2:
6
+ /***/ ((module) => {
6
7
 
7
- "use strict";
8
+ module.exports = require("@rest-hooks/react");
8
9
 
10
+ /***/ })
11
+
12
+ /******/ });
13
+ /************************************************************************/
14
+ /******/ // The module cache
15
+ /******/ var __webpack_module_cache__ = {};
16
+ /******/
17
+ /******/ // The require function
18
+ /******/ function __webpack_require__(moduleId) {
19
+ /******/ // Check if module is in cache
20
+ /******/ var cachedModule = __webpack_module_cache__[moduleId];
21
+ /******/ if (cachedModule !== undefined) {
22
+ /******/ return cachedModule.exports;
23
+ /******/ }
24
+ /******/ // Create a new module (and put it into the cache)
25
+ /******/ var module = __webpack_module_cache__[moduleId] = {
26
+ /******/ // no module.id needed
27
+ /******/ // no module.loaded needed
28
+ /******/ exports: {}
29
+ /******/ };
30
+ /******/
31
+ /******/ // Execute the module function
32
+ /******/ __webpack_modules__[moduleId](module, module.exports, __webpack_require__);
33
+ /******/
34
+ /******/ // Return the exports of the module
35
+ /******/ return module.exports;
36
+ /******/ }
37
+ /******/
38
+ /******/ // expose the modules object (__webpack_modules__)
39
+ /******/ __webpack_require__.m = __webpack_modules__;
40
+ /******/
41
+ /************************************************************************/
42
+ /******/ /* webpack/runtime/compat get default export */
43
+ /******/ (() => {
44
+ /******/ // getDefaultExport function for compatibility with non-harmony modules
45
+ /******/ __webpack_require__.n = (module) => {
46
+ /******/ var getter = module && module.__esModule ?
47
+ /******/ () => (module['default']) :
48
+ /******/ () => (module);
49
+ /******/ __webpack_require__.d(getter, { a: getter });
50
+ /******/ return getter;
51
+ /******/ };
52
+ /******/ })();
53
+ /******/
54
+ /******/ /* webpack/runtime/define property getters */
55
+ /******/ (() => {
56
+ /******/ // define getter functions for harmony exports
57
+ /******/ __webpack_require__.d = (exports, definition) => {
58
+ /******/ for(var key in definition) {
59
+ /******/ if(__webpack_require__.o(definition, key) && !__webpack_require__.o(exports, key)) {
60
+ /******/ Object.defineProperty(exports, key, { enumerable: true, get: definition[key] });
61
+ /******/ }
62
+ /******/ }
63
+ /******/ };
64
+ /******/ })();
65
+ /******/
66
+ /******/ /* webpack/runtime/ensure chunk */
67
+ /******/ (() => {
68
+ /******/ __webpack_require__.f = {};
69
+ /******/ // This file contains only the entry chunk.
70
+ /******/ // The chunk loading function for additional chunks
71
+ /******/ __webpack_require__.e = (chunkId) => {
72
+ /******/ return Promise.all(Object.keys(__webpack_require__.f).reduce((promises, key) => {
73
+ /******/ __webpack_require__.f[key](chunkId, promises);
74
+ /******/ return promises;
75
+ /******/ }, []));
76
+ /******/ };
77
+ /******/ })();
78
+ /******/
79
+ /******/ /* webpack/runtime/get javascript chunk filename */
80
+ /******/ (() => {
81
+ /******/ // This function allow to reference async chunks
82
+ /******/ __webpack_require__.u = (chunkId) => {
83
+ /******/ // return url for filenames based on template
84
+ /******/ return "" + chunkId + ".chunk.js";
85
+ /******/ };
86
+ /******/ })();
87
+ /******/
88
+ /******/ /* webpack/runtime/get mini-css chunk filename */
89
+ /******/ (() => {
90
+ /******/ // This function allow to reference async chunks
91
+ /******/ __webpack_require__.miniCssF = (chunkId) => {
92
+ /******/ // return url for filenames based on template
93
+ /******/ return undefined;
94
+ /******/ };
95
+ /******/ })();
96
+ /******/
97
+ /******/ /* webpack/runtime/hasOwnProperty shorthand */
98
+ /******/ (() => {
99
+ /******/ __webpack_require__.o = (obj, prop) => (Object.prototype.hasOwnProperty.call(obj, prop))
100
+ /******/ })();
101
+ /******/
102
+ /******/ /* webpack/runtime/make namespace object */
103
+ /******/ (() => {
104
+ /******/ // define __esModule on exports
105
+ /******/ __webpack_require__.r = (exports) => {
106
+ /******/ if(typeof Symbol !== 'undefined' && Symbol.toStringTag) {
107
+ /******/ Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
108
+ /******/ }
109
+ /******/ Object.defineProperty(exports, '__esModule', { value: true });
110
+ /******/ };
111
+ /******/ })();
112
+ /******/
113
+ /******/ /* webpack/runtime/publicPath */
114
+ /******/ (() => {
115
+ /******/ __webpack_require__.p = "/";
116
+ /******/ })();
117
+ /******/
118
+ /******/ /* webpack/runtime/require chunk loading */
119
+ /******/ (() => {
120
+ /******/ // no baseURI
121
+ /******/
122
+ /******/ // object to store loaded chunks
123
+ /******/ // "1" means "loaded", otherwise not loaded yet
124
+ /******/ var installedChunks = {
125
+ /******/ 0: 1
126
+ /******/ };
127
+ /******/
128
+ /******/ // no on chunks loaded
129
+ /******/
130
+ /******/ var installChunk = (chunk) => {
131
+ /******/ var moreModules = chunk.modules, chunkIds = chunk.ids, runtime = chunk.runtime;
132
+ /******/ for(var moduleId in moreModules) {
133
+ /******/ if(__webpack_require__.o(moreModules, moduleId)) {
134
+ /******/ __webpack_require__.m[moduleId] = moreModules[moduleId];
135
+ /******/ }
136
+ /******/ }
137
+ /******/ if(runtime) runtime(__webpack_require__);
138
+ /******/ for(var i = 0; i < chunkIds.length; i++)
139
+ /******/ installedChunks[chunkIds[i]] = 1;
140
+ /******/
141
+ /******/ };
142
+ /******/
143
+ /******/ // require() chunk loading for javascript
144
+ /******/ __webpack_require__.f.require = (chunkId, promises) => {
145
+ /******/ // "1" is the signal for "already loaded"
146
+ /******/ if(!installedChunks[chunkId]) {
147
+ /******/ if(true) { // all chunks have JS
148
+ /******/ installChunk(require("./" + __webpack_require__.u(chunkId)));
149
+ /******/ } else installedChunks[chunkId] = 1;
150
+ /******/ }
151
+ /******/ };
152
+ /******/
153
+ /******/ // no external install chunk
154
+ /******/
155
+ /******/ // no HMR
156
+ /******/
157
+ /******/ // no HMR manifest
158
+ /******/ })();
159
+ /******/
160
+ /************************************************************************/
161
+ var __webpack_exports__ = {};
162
+ // This entry need to be wrapped in an IIFE because it need to be isolated against other modules in the chunk.
163
+ (() => {
164
+ // ESM COMPAT FLAG
165
+ __webpack_require__.r(__webpack_exports__);
166
+
167
+ // EXPORTS
168
+ __webpack_require__.d(__webpack_exports__, {
169
+ "JSONSpout": () => (/* reexport */ JSONSpout),
170
+ "appSpout": () => (/* reexport */ app),
171
+ "documentSpout": () => (/* reexport */ documentSpout),
172
+ "floodSpouts": () => (/* reexport */ floodSpouts),
173
+ "restHooksSpout": () => (/* reexport */ restHooksSpout),
174
+ "routerSpout": () => (/* reexport */ routerSpout)
175
+ });
176
+
177
+ ;// CONCATENATED MODULE: external "react-dom/client"
178
+ const client_namespaceObject = require("react-dom/client");
179
+ ;// CONCATENATED MODULE: ./src/floodSpouts.tsx
9
180
 
10
- exports.__esModule = true;
11
- exports["default"] = floodSpouts;
12
- var _client = __webpack_require__("react-dom/client");
13
181
  async function floodSpouts(spouts, {
14
182
  rootId = 'anansi-root'
15
183
  } = {}) {
@@ -17,128 +185,35 @@ async function floodSpouts(spouts, {
17
185
  const {
18
186
  app
19
187
  } = await spouts({});
20
- (0, _client.hydrateRoot)((_document$getElementB = document.getElementById(rootId)) != null ? _document$getElementB : document, app);
188
+ (0,client_namespaceObject.hydrateRoot)((_document$getElementB = document.getElementById(rootId)) != null ? _document$getElementB : document, app);
21
189
  }
22
-
23
- /***/ }),
24
-
25
- /***/ "./src/spouts/app.tsx":
26
- /***/ ((__unused_webpack_module, exports) => {
27
-
28
- "use strict";
29
-
30
-
31
- exports.__esModule = true;
32
- exports["default"] = void 0;
33
- const appSpout = app => props => Promise.resolve({
34
- ...props,
35
- app
36
- });
37
- var _default = appSpout;
38
- exports["default"] = _default;
39
-
40
- /***/ }),
41
-
42
- /***/ "./src/spouts/document.tsx":
43
- /***/ ((__unused_webpack_module, exports) => {
44
-
45
- "use strict";
46
-
47
-
48
- exports.__esModule = true;
49
- exports["default"] = documentSpout;
190
+ ;// CONCATENATED MODULE: ./src/spouts/document.tsx
50
191
  function documentSpout(options) {
51
192
  return next => async props => {
52
193
  const nextProps = await next(props);
53
194
  return nextProps;
54
195
  };
55
196
  }
56
-
57
- /***/ }),
58
-
59
- /***/ "./src/spouts/json.tsx":
60
- /***/ ((__unused_webpack_module, exports) => {
61
-
62
- "use strict";
63
-
64
-
65
- exports.__esModule = true;
66
- exports["default"] = JSONSpout;
67
- function JSONSpout({
68
- id = 'anansi-json'
69
- } = {}) {
70
- return next => async props => {
71
- const getInitialData = key => {
72
- const globalId = `${id}.${key}`;
73
- return new Promise((resolve, reject) => {
74
- let el;
75
- if (el = document.getElementById(globalId)) {
76
- resolve(getDataFromEl(el, globalId));
77
- return;
78
- }
79
- document.addEventListener('DOMContentLoaded', () => {
80
- el = document.getElementById(globalId);
81
- if (el) resolve(getDataFromEl(el, globalId));else reject(new Error(`failed to find DOM with ${key} state`));
82
- });
83
- });
84
- };
85
- return {
86
- ...(await next({
87
- ...props,
88
- getInitialData
89
- })),
90
- getInitialData
91
- };
92
- };
93
- }
94
- function getDataFromEl(el, key) {
95
- if (el.text === undefined) {
96
- console.error(`#${key} is completely empty. This could be due to CSP issues.`);
97
- }
98
- return el != null && el.text ? JSON.parse(el == null ? void 0 : el.text) : undefined;
99
- }
100
-
101
- /***/ }),
102
-
103
- /***/ "./src/spouts/restHooks.provider.tsx":
104
- /***/ ((__unused_webpack_module, exports, __webpack_require__) => {
105
-
106
- "use strict";
107
-
108
-
109
- exports.__esModule = true;
110
- exports.CacheProvider = void 0;
111
- var _react = __webpack_require__("@rest-hooks/react");
112
- exports.CacheProvider = _react.CacheProvider;
113
-
114
- /***/ }),
115
-
116
- /***/ "./src/spouts/restHooks.tsx":
117
- /***/ ((__unused_webpack_module, exports, __webpack_require__) => {
118
-
119
- "use strict";
120
-
121
-
122
- var _interopRequireDefault = (__webpack_require__("../../node_modules/@babel/runtime/helpers/interopRequireDefault.js")["default"]);
123
- exports.__esModule = true;
124
- exports["default"] = restHooksSpout;
125
- var _interopRequireWildcard2 = _interopRequireDefault(__webpack_require__("../../node_modules/@babel/runtime/helpers/interopRequireWildcard.js"));
126
- var _react = _interopRequireDefault(__webpack_require__("react"));
197
+ ;// CONCATENATED MODULE: external "react"
198
+ const external_react_namespaceObject = require("react");
199
+ var external_react_default = /*#__PURE__*/__webpack_require__.n(external_react_namespaceObject);
200
+ ;// CONCATENATED MODULE: ./src/spouts/restHooks.tsx
127
201
  var _jsxFileName = "/home/ntucker/src/anansi/packages/core/src/spouts/restHooks.tsx";
202
+
128
203
  function restHooksSpout(options = {}) {
129
204
  return next => async props => {
130
205
  const nextProps = await next(props);
131
206
  const [data, {
132
207
  CacheProvider
133
- }] = await Promise.all([props.getInitialData('resthooks'), Promise.resolve().then(() => (0, _interopRequireWildcard2.default)(__webpack_require__("./src/spouts/restHooks.provider.tsx")))]);
134
- if ( true && !data) {
208
+ }] = await Promise.all([props.getInitialData('resthooks'), __webpack_require__.e(/* import() */ 2).then(__webpack_require__.bind(__webpack_require__, 5))]);
209
+ if (process.env.NODE_ENV !== 'production' && !data) {
135
210
  console.error('Rest Hooks init data not found');
136
211
  } else if (!data) {
137
212
  console.info('Rest Hooks init missing');
138
213
  }
139
214
  return {
140
215
  ...nextProps,
141
- app: /*#__PURE__*/_react.default.createElement(CacheProvider, {
216
+ app: /*#__PURE__*/external_react_default().createElement(CacheProvider, {
142
217
  initialState: data,
143
218
  managers: options == null ? void 0 : options.getManagers == null ? void 0 : options.getManagers(),
144
219
  __self: this,
@@ -151,41 +226,34 @@ function restHooksSpout(options = {}) {
151
226
  };
152
227
  };
153
228
  }
229
+ ;// CONCATENATED MODULE: external "@anansi/router"
230
+ const router_namespaceObject = require("@anansi/router");
231
+ ;// CONCATENATED MODULE: external "history"
232
+ const external_history_namespaceObject = require("history");
233
+ ;// CONCATENATED MODULE: ./src/spouts/router.tsx
234
+ var router_jsxFileName = "/home/ntucker/src/anansi/packages/core/src/spouts/router.tsx";
154
235
 
155
- /***/ }),
156
-
157
- /***/ "./src/spouts/router.tsx":
158
- /***/ ((__unused_webpack_module, exports, __webpack_require__) => {
159
-
160
- "use strict";
161
236
 
162
237
 
163
- var _interopRequireDefault = (__webpack_require__("../../node_modules/@babel/runtime/helpers/interopRequireDefault.js")["default"]);
164
- exports.__esModule = true;
165
- exports["default"] = routerSpout;
166
- var _router = __webpack_require__("@anansi/router");
167
- var _history = __webpack_require__("history");
168
- var _react = _interopRequireDefault(__webpack_require__("react"));
169
- var _jsxFileName = "/home/ntucker/src/anansi/packages/core/src/spouts/router.tsx";
170
238
  function routerSpout(options) {
171
239
  const createRouteComponent = router => function Router({
172
240
  children
173
241
  }) {
174
242
  const resolveWith = options.useResolveWith();
175
- return /*#__PURE__*/_react.default.createElement(_router.RouteProvider, {
243
+ return /*#__PURE__*/external_react_default().createElement(router_namespaceObject.RouteProvider, {
176
244
  router: router,
177
245
  resolveWith: resolveWith,
178
246
  onChange: options.onChange,
179
247
  __self: this,
180
248
  __source: {
181
- fileName: _jsxFileName,
249
+ fileName: router_jsxFileName,
182
250
  lineNumber: 28,
183
251
  columnNumber: 9
184
252
  }
185
253
  }, children);
186
254
  };
187
255
  return next => async props => {
188
- const history = (0, _history.createBrowserHistory)();
256
+ const history = (0,external_history_namespaceObject.createBrowserHistory)();
189
257
  const router = options.createRouter(history);
190
258
  const matchedRoutes = router.getMatchedRoutes(history.location.pathname);
191
259
  const nextProps = await next({
@@ -198,10 +266,10 @@ function routerSpout(options) {
198
266
  ...nextProps,
199
267
  matchedRoutes,
200
268
  router,
201
- app: /*#__PURE__*/_react.default.createElement(Router, {
269
+ app: /*#__PURE__*/external_react_default().createElement(Router, {
202
270
  __self: this,
203
271
  __source: {
204
- fileName: _jsxFileName,
272
+ fileName: router_jsxFileName,
205
273
  lineNumber: 50,
206
274
  columnNumber: 12
207
275
  }
@@ -209,176 +277,56 @@ function routerSpout(options) {
209
277
  };
210
278
  };
211
279
  }
212
-
213
- /***/ }),
214
-
215
- /***/ "@anansi/router":
216
- /***/ ((module) => {
217
-
218
- "use strict";
219
- module.exports = require("@anansi/router");
220
-
221
- /***/ }),
222
-
223
- /***/ "@rest-hooks/react":
224
- /***/ ((module) => {
225
-
226
- "use strict";
227
- module.exports = require("@rest-hooks/react");
228
-
229
- /***/ }),
230
-
231
- /***/ "history":
232
- /***/ ((module) => {
233
-
234
- "use strict";
235
- module.exports = require("history");
236
-
237
- /***/ }),
238
-
239
- /***/ "react":
240
- /***/ ((module) => {
241
-
242
- "use strict";
243
- module.exports = require("react");
244
-
245
- /***/ }),
246
-
247
- /***/ "react-dom/client":
248
- /***/ ((module) => {
249
-
250
- "use strict";
251
- module.exports = require("react-dom/client");
252
-
253
- /***/ }),
254
-
255
- /***/ "../../node_modules/@babel/runtime/helpers/interopRequireDefault.js":
256
- /***/ ((module) => {
257
-
258
- function _interopRequireDefault(obj) {
259
- return obj && obj.__esModule ? obj : {
260
- "default": obj
261
- };
262
- }
263
- module.exports = _interopRequireDefault, module.exports.__esModule = true, module.exports["default"] = module.exports;
264
-
265
- /***/ }),
266
-
267
- /***/ "../../node_modules/@babel/runtime/helpers/interopRequireWildcard.js":
268
- /***/ ((module, __unused_webpack_exports, __webpack_require__) => {
269
-
270
- var _typeof = (__webpack_require__("../../node_modules/@babel/runtime/helpers/typeof.js")["default"]);
271
- function _getRequireWildcardCache(nodeInterop) {
272
- if (typeof WeakMap !== "function") return null;
273
- var cacheBabelInterop = new WeakMap();
274
- var cacheNodeInterop = new WeakMap();
275
- return (_getRequireWildcardCache = function _getRequireWildcardCache(nodeInterop) {
276
- return nodeInterop ? cacheNodeInterop : cacheBabelInterop;
277
- })(nodeInterop);
278
- }
279
- function _interopRequireWildcard(obj, nodeInterop) {
280
- if (!nodeInterop && obj && obj.__esModule) {
281
- return obj;
282
- }
283
- if (obj === null || _typeof(obj) !== "object" && typeof obj !== "function") {
280
+ ;// CONCATENATED MODULE: ./src/spouts/json.tsx
281
+ function JSONSpout({
282
+ id = 'anansi-json'
283
+ } = {}) {
284
+ return next => async props => {
285
+ const getInitialData = key => {
286
+ const globalId = `${id}.${key}`;
287
+ return new Promise((resolve, reject) => {
288
+ let el;
289
+ if (el = document.getElementById(globalId)) {
290
+ resolve(getDataFromEl(el, globalId));
291
+ return;
292
+ }
293
+ document.addEventListener('DOMContentLoaded', () => {
294
+ el = document.getElementById(globalId);
295
+ if (el) resolve(getDataFromEl(el, globalId));else reject(new Error(`failed to find DOM with ${key} state`));
296
+ });
297
+ });
298
+ };
284
299
  return {
285
- "default": obj
300
+ ...(await next({
301
+ ...props,
302
+ getInitialData
303
+ })),
304
+ getInitialData
286
305
  };
306
+ };
307
+ }
308
+ function getDataFromEl(el, key) {
309
+ if (el.text === undefined) {
310
+ console.error(`#${key} is completely empty. This could be due to CSP issues.`);
287
311
  }
288
- var cache = _getRequireWildcardCache(nodeInterop);
289
- if (cache && cache.has(obj)) {
290
- return cache.get(obj);
291
- }
292
- var newObj = {};
293
- var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor;
294
- for (var key in obj) {
295
- if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) {
296
- var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null;
297
- if (desc && (desc.get || desc.set)) {
298
- Object.defineProperty(newObj, key, desc);
299
- } else {
300
- newObj[key] = obj[key];
301
- }
302
- }
303
- }
304
- newObj["default"] = obj;
305
- if (cache) {
306
- cache.set(obj, newObj);
307
- }
308
- return newObj;
312
+ return el != null && el.text ? JSON.parse(el == null ? void 0 : el.text) : undefined;
309
313
  }
310
- module.exports = _interopRequireWildcard, module.exports.__esModule = true, module.exports["default"] = module.exports;
311
-
312
- /***/ }),
313
-
314
- /***/ "../../node_modules/@babel/runtime/helpers/typeof.js":
315
- /***/ ((module) => {
314
+ ;// CONCATENATED MODULE: ./src/spouts/app.tsx
315
+ const appSpout = app => props => Promise.resolve({
316
+ ...props,
317
+ app
318
+ });
319
+ /* harmony default export */ const app = (appSpout);
320
+ ;// CONCATENATED MODULE: ./src/index.ts
316
321
 
317
- function _typeof(obj) {
318
- "@babel/helpers - typeof";
319
322
 
320
- return (module.exports = _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (obj) {
321
- return typeof obj;
322
- } : function (obj) {
323
- return obj && "function" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj;
324
- }, module.exports.__esModule = true, module.exports["default"] = module.exports), _typeof(obj);
325
- }
326
- module.exports = _typeof, module.exports.__esModule = true, module.exports["default"] = module.exports;
327
323
 
328
- /***/ })
329
324
 
330
- /******/ });
331
- /************************************************************************/
332
- /******/ // The module cache
333
- /******/ var __webpack_module_cache__ = {};
334
- /******/
335
- /******/ // The require function
336
- /******/ function __webpack_require__(moduleId) {
337
- /******/ // Check if module is in cache
338
- /******/ var cachedModule = __webpack_module_cache__[moduleId];
339
- /******/ if (cachedModule !== undefined) {
340
- /******/ return cachedModule.exports;
341
- /******/ }
342
- /******/ // Create a new module (and put it into the cache)
343
- /******/ var module = __webpack_module_cache__[moduleId] = {
344
- /******/ // no module.id needed
345
- /******/ // no module.loaded needed
346
- /******/ exports: {}
347
- /******/ };
348
- /******/
349
- /******/ // Execute the module function
350
- /******/ __webpack_modules__[moduleId](module, module.exports, __webpack_require__);
351
- /******/
352
- /******/ // Return the exports of the module
353
- /******/ return module.exports;
354
- /******/ }
355
- /******/
356
- /************************************************************************/
357
- var __webpack_exports__ = {};
358
- // This entry need to be wrapped in an IIFE because it need to be in strict mode.
359
- (() => {
360
- "use strict";
361
- var exports = __webpack_exports__;
362
325
 
363
326
 
364
- var _interopRequireDefault = (__webpack_require__("../../node_modules/@babel/runtime/helpers/interopRequireDefault.js")["default"]);
365
- exports.__esModule = true;
366
- exports.routerSpout = exports.restHooksSpout = exports.floodSpouts = exports.documentSpout = exports.appSpout = exports.JSONSpout = void 0;
367
- var _floodSpouts = _interopRequireDefault(__webpack_require__("./src/floodSpouts.tsx"));
368
- exports.floodSpouts = _floodSpouts.default;
369
- var _document = _interopRequireDefault(__webpack_require__("./src/spouts/document.tsx"));
370
- exports.documentSpout = _document.default;
371
- var _restHooks = _interopRequireDefault(__webpack_require__("./src/spouts/restHooks.tsx"));
372
- exports.restHooksSpout = _restHooks.default;
373
- var _router = _interopRequireDefault(__webpack_require__("./src/spouts/router.tsx"));
374
- exports.routerSpout = _router.default;
375
- var _json = _interopRequireDefault(__webpack_require__("./src/spouts/json.tsx"));
376
- exports.JSONSpout = _json.default;
377
- var _app = _interopRequireDefault(__webpack_require__("./src/spouts/app.tsx"));
378
- exports.appSpout = _app.default;
379
327
  })();
380
328
 
381
329
  module.exports = __webpack_exports__;
382
330
  /******/ })()
383
331
  ;
384
- //# sourceMappingURL=client.js.map
332
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,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O01BQUUsSUFBSSxNQUFNNUMsSUFBSSxDQUFDO1FBQUUsR0FBR0MsS0FBSztRQUFFTztNQUFlLENBQUMsQ0FBQyxDQUFDO01BQUVBO0lBQWUsQ0FBQztFQUMxRSxDQUFDO0FBQ0g7QUFFQSxTQUFTeUMsYUFBYUEsQ0FBQ0QsRUFBcUIsRUFBRUosR0FBVyxFQUFFO0VBQ3pELElBQUlJLEVBQUUsQ0FBQ0ksSUFBSSxLQUFLQyxTQUFTLEVBQUU7SUFDekJ6QyxPQUFPLENBQUNDLEtBQUssQ0FDVixJQUFHK0IsR0FBSSx3REFBdUQsQ0FDaEU7RUFDSDtFQUNBLE9BQU9JLEVBQUUsWUFBRkEsRUFBRSxDQUFFSSxJQUFJLEdBQUdFLElBQUksQ0FBQ0MsS0FBSyxDQUFDUCxFQUFFLG9CQUFGQSxFQUFFLENBQUVJLElBQUksQ0FBQyxHQUFHQyxTQUFTO0FBQ3BEOztBQ25DQSxNQUFNRyxRQUFRLEdBQ1g3RCxHQUFnQixJQUNtQk0sS0FBUSxJQUMxQ0ssT0FBTyxDQUFDd0MsT0FBTyxDQUFDO0VBQUUsR0FBRzdDLEtBQUs7RUFBRU47QUFBSSxDQUFDLENBQUM7QUFFdEMsMENBQWU2RCxRQUFROztBQ0xtQztBQUNNO0FBQ0U7QUFDTjtBQUNKIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vQGFuYW5zaS9jb3JlL2V4dGVybmFsIGNvbW1vbmpzIFwiQHJlc3QtaG9va3MvcmVhY3RcIiIsIndlYnBhY2s6Ly9AYW5hbnNpL2NvcmUvd2VicGFjay9ib290c3RyYXAiLCJ3ZWJwYWNrOi8vQGFuYW5zaS9jb3JlL3dlYnBhY2svcnVudGltZS9jb21wYXQgZ2V0IGRlZmF1bHQgZXhwb3J0Iiwid2VicGFjazovL0BhbmFuc2kvY29yZS93ZWJwYWNrL3J1bnRpbWUvZGVmaW5lIHByb3BlcnR5IGdldHRlcnMiLCJ3ZWJwYWNrOi8vQGFuYW5zaS9jb3JlL3dlYnBhY2svcnVudGltZS9lbnN1cmUgY2h1bmsiLCJ3ZWJwYWNrOi8vQGFuYW5zaS9jb3JlL3dlYnBhY2svcnVudGltZS9nZXQgamF2YXNjcmlwdCBjaHVuayBmaWxlbmFtZSIsIndlYnBhY2s6Ly9AYW5hbnNpL2NvcmUvd2VicGFjay9ydW50aW1lL2dldCBtaW5pLWNzcyBjaHVuayBmaWxlbmFtZSIsIndlYnBhY2s6Ly9AYW5hbnNpL2NvcmUvd2VicGFjay9ydW50aW1lL2hhc093blByb3BlcnR5IHNob3J0aGFuZCIsIndlYnBhY2s6Ly9AYW5hbnNpL2NvcmUvd2VicGFjay9ydW50aW1lL21ha2UgbmFtZXNwYWNlIG9iamVjdCIsIndlYnBhY2s6Ly9AYW5hbnNpL2NvcmUvd2VicGFjay9ydW50aW1lL3B1YmxpY1BhdGgiLCJ3ZWJwYWNrOi8vQGFuYW5zaS9jb3JlL3dlYnBhY2svcnVudGltZS9yZXF1aXJlIGNodW5rIGxvYWRpbmciLCJ3ZWJwYWNrOi8vQGFuYW5zaS9jb3JlL2V4dGVybmFsIGNvbW1vbmpzIFwicmVhY3QtZG9tL2NsaWVudFwiIiwid2VicGFjazovL0BhbmFuc2kvY29yZS8uL3NyYy9mbG9vZFNwb3V0cy50c3giLCJ3ZWJwYWNrOi8vQGFuYW5zaS9jb3JlLy4vc3JjL3Nwb3V0cy9kb2N1bWVudC50c3giLCJ3ZWJwYWNrOi8vQGFuYW5zaS9jb3JlL2V4dGVybmFsIGNvbW1vbmpzIFwicmVhY3RcIiIsIndlYnBhY2s6Ly9AYW5hbnNpL2NvcmUvLi9zcmMvc3BvdXRzL3Jlc3RIb29rcy50c3giLCJ3ZWJwYWNrOi8vQGFuYW5zaS9jb3JlL2V4dGVybmFsIGNvbW1vbmpzIFwiQGFuYW5zaS9yb3V0ZXJcIiIsIndlYnBhY2s6Ly9AYW5hbnNpL2NvcmUvZXh0ZXJuYWwgY29tbW9uanMgXCJoaXN0b3J5XCIiLCJ3ZWJwYWNrOi8vQGFuYW5zaS9jb3JlLy4vc3JjL3Nwb3V0cy9yb3V0ZXIudHN4Iiwid2VicGFjazovL0BhbmFuc2kvY29yZS8uL3NyYy9zcG91dHMvanNvbi50c3giLCJ3ZWJwYWNrOi8vQGFuYW5zaS9jb3JlLy4vc3JjL3Nwb3V0cy9hcHAudHN4Iiwid2VicGFjazovL0BhbmFuc2kvY29yZS8uL3NyYy9pbmRleC50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJtb2R1bGUuZXhwb3J0cyA9IHJlcXVpcmUoXCJAcmVzdC1ob29rcy9yZWFjdFwiKTsiLCIvLyBUaGUgbW9kdWxlIGNhY2hlXG52YXIgX193ZWJwYWNrX21vZHVsZV9jYWNoZV9fID0ge307XG5cbi8vIFRoZSByZXF1aXJlIGZ1bmN0aW9uXG5mdW5jdGlvbiBfX3dlYnBhY2tfcmVxdWlyZV9fKG1vZHVsZUlkKSB7XG5cdC8vIENoZWNrIGlmIG1vZHVsZSBpcyBpbiBjYWNoZVxuXHR2YXIgY2FjaGVkTW9kdWxlID0gX193ZWJwYWNrX21vZHVsZV9jYWNoZV9fW21vZHVsZUlkXTtcblx0aWYgKGNhY2hlZE1vZHVsZSAhPT0gdW5kZWZpbmVkKSB7XG5cdFx0cmV0dXJuIGNhY2hlZE1vZHVsZS5leHBvcnRzO1xuXHR9XG5cdC8vIENyZWF0ZSBhIG5ldyBtb2R1bGUgKGFuZCBwdXQgaXQgaW50byB0aGUgY2FjaGUpXG5cdHZhciBtb2R1bGUgPSBfX3dlYnBhY2tfbW9kdWxlX2NhY2hlX19bbW9kdWxlSWRdID0ge1xuXHRcdC8vIG5vIG1vZHVsZS5pZCBuZWVkZWRcblx0XHQvLyBubyBtb2R1bGUubG9hZGVkIG5lZWRlZFxuXHRcdGV4cG9ydHM6IHt9XG5cdH07XG5cblx0Ly8gRXhlY3V0ZSB0aGUgbW9kdWxlIGZ1bmN0aW9uXG5cdF9fd2VicGFja19tb2R1bGVzX19bbW9kdWxlSWRdKG1vZHVsZSwgbW9kdWxlLmV4cG9ydHMsIF9fd2VicGFja19yZXF1aXJlX18pO1xuXG5cdC8vIFJldHVybiB0aGUgZXhwb3J0cyBvZiB0aGUgbW9kdWxlXG5cdHJldHVybiBtb2R1bGUuZXhwb3J0cztcbn1cblxuLy8gZXhwb3NlIHRoZSBtb2R1bGVzIG9iamVjdCAoX193ZWJwYWNrX21vZHVsZXNfXylcbl9fd2VicGFja19yZXF1aXJlX18ubSA9IF9fd2VicGFja19tb2R1bGVzX187XG5cbiIsIi8vIGdldERlZmF1bHRFeHBvcnQgZnVuY3Rpb24gZm9yIGNvbXBhdGliaWxpdHkgd2l0aCBub24taGFybW9ueSBtb2R1bGVzXG5fX3dlYnBhY2tfcmVxdWlyZV9fLm4gPSAobW9kdWxlKSA9PiB7XG5cdHZhciBnZXR0ZXIgPSBtb2R1bGUgJiYgbW9kdWxlLl9fZXNNb2R1bGUgP1xuXHRcdCgpID0+IChtb2R1bGVbJ2RlZmF1bHQnXSkgOlxuXHRcdCgpID0+IChtb2R1bGUpO1xuXHRfX3dlYnBhY2tfcmVxdWlyZV9fLmQoZ2V0dGVyLCB7IGE6IGdldHRlciB9KTtcblx0cmV0dXJuIGdldHRlcjtcbn07IiwiLy8gZGVmaW5lIGdldHRlciBmdW5jdGlvbnMgZm9yIGhhcm1vbnkgZXhwb3J0c1xuX193ZWJwYWNrX3JlcXVpcmVfXy5kID0gKGV4cG9ydHMsIGRlZmluaXRpb24pID0+IHtcblx0Zm9yKHZhciBrZXkgaW4gZGVmaW5pdGlvbikge1xuXHRcdGlmKF9fd2VicGFja19yZXF1aXJlX18ubyhkZWZpbml0aW9uLCBrZXkpICYmICFfX3dlYnBhY2tfcmVxdWlyZV9fLm8oZXhwb3J0cywga2V5KSkge1xuXHRcdFx0T2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMsIGtleSwgeyBlbnVtZXJhYmxlOiB0cnVlLCBnZXQ6IGRlZmluaXRpb25ba2V5XSB9KTtcblx0XHR9XG5cdH1cbn07IiwiX193ZWJwYWNrX3JlcXVpcmVfXy5mID0ge307XG4vLyBUaGlzIGZpbGUgY29udGFpbnMgb25seSB0aGUgZW50cnkgY2h1bmsuXG4vLyBUaGUgY2h1bmsgbG9hZGluZyBmdW5jdGlvbiBmb3IgYWRkaXRpb25hbCBjaHVua3Ncbl9fd2VicGFja19yZXF1aXJlX18uZSA9IChjaHVua0lkKSA9PiB7XG5cdHJldHVybiBQcm9taXNlLmFsbChPYmplY3Qua2V5cyhfX3dlYnBhY2tfcmVxdWlyZV9fLmYpLnJlZHVjZSgocHJvbWlzZXMsIGtleSkgPT4ge1xuXHRcdF9fd2VicGFja19yZXF1aXJlX18uZltrZXldKGNodW5rSWQsIHByb21pc2VzKTtcblx0XHRyZXR1cm4gcHJvbWlzZXM7XG5cdH0sIFtdKSk7XG59OyIsIi8vIFRoaXMgZnVuY3Rpb24gYWxsb3cgdG8gcmVmZXJlbmNlIGFzeW5jIGNodW5rc1xuX193ZWJwYWNrX3JlcXVpcmVfXy51ID0gKGNodW5rSWQpID0+IHtcblx0Ly8gcmV0dXJuIHVybCBmb3IgZmlsZW5hbWVzIGJhc2VkIG9uIHRlbXBsYXRlXG5cdHJldHVybiBcIlwiICsgY2h1bmtJZCArIFwiLmNodW5rLmpzXCI7XG59OyIsIi8vIFRoaXMgZnVuY3Rpb24gYWxsb3cgdG8gcmVmZXJlbmNlIGFzeW5jIGNodW5rc1xuX193ZWJwYWNrX3JlcXVpcmVfXy5taW5pQ3NzRiA9IChjaHVua0lkKSA9PiB7XG5cdC8vIHJldHVybiB1cmwgZm9yIGZpbGVuYW1lcyBiYXNlZCBvbiB0ZW1wbGF0ZVxuXHRyZXR1cm4gdW5kZWZpbmVkO1xufTsiLCJfX3dlYnBhY2tfcmVxdWlyZV9fLm8gPSAob2JqLCBwcm9wKSA9PiAoT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKG9iaiwgcHJvcCkpIiwiLy8gZGVmaW5lIF9fZXNNb2R1bGUgb24gZXhwb3J0c1xuX193ZWJwYWNrX3JlcXVpcmVfXy5yID0gKGV4cG9ydHMpID0+IHtcblx0aWYodHlwZW9mIFN5bWJvbCAhPT0gJ3VuZGVmaW5lZCcgJiYgU3ltYm9sLnRvU3RyaW5nVGFnKSB7XG5cdFx0T2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMsIFN5bWJvbC50b1N0cmluZ1RhZywgeyB2YWx1ZTogJ01vZHVsZScgfSk7XG5cdH1cblx0T2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMsICdfX2VzTW9kdWxlJywgeyB2YWx1ZTogdHJ1ZSB9KTtcbn07IiwiX193ZWJwYWNrX3JlcXVpcmVfXy5wID0gXCIvXCI7IiwiLy8gbm8gYmFzZVVSSVxuXG4vLyBvYmplY3QgdG8gc3RvcmUgbG9hZGVkIGNodW5rc1xuLy8gXCIxXCIgbWVhbnMgXCJsb2FkZWRcIiwgb3RoZXJ3aXNlIG5vdCBsb2FkZWQgeWV0XG52YXIgaW5zdGFsbGVkQ2h1bmtzID0ge1xuXHQwOiAxXG59O1xuXG4vLyBubyBvbiBjaHVua3MgbG9hZGVkXG5cbnZhciBpbnN0YWxsQ2h1bmsgPSAoY2h1bmspID0+IHtcblx0dmFyIG1vcmVNb2R1bGVzID0gY2h1bmsubW9kdWxlcywgY2h1bmtJZHMgPSBjaHVuay5pZHMsIHJ1bnRpbWUgPSBjaHVuay5ydW50aW1lO1xuXHRmb3IodmFyIG1vZHVsZUlkIGluIG1vcmVNb2R1bGVzKSB7XG5cdFx0aWYoX193ZWJwYWNrX3JlcXVpcmVfXy5vKG1vcmVNb2R1bGVzLCBtb2R1bGVJZCkpIHtcblx0XHRcdF9fd2VicGFja19yZXF1aXJlX18ubVttb2R1bGVJZF0gPSBtb3JlTW9kdWxlc1ttb2R1bGVJZF07XG5cdFx0fVxuXHR9XG5cdGlmKHJ1bnRpbWUpIHJ1bnRpbWUoX193ZWJwYWNrX3JlcXVpcmVfXyk7XG5cdGZvcih2YXIgaSA9IDA7IGkgPCBjaHVua0lkcy5sZW5ndGg7IGkrKylcblx0XHRpbnN0YWxsZWRDaHVua3NbY2h1bmtJZHNbaV1dID0gMTtcblxufTtcblxuLy8gcmVxdWlyZSgpIGNodW5rIGxvYWRpbmcgZm9yIGphdmFzY3JpcHRcbl9fd2VicGFja19yZXF1aXJlX18uZi5yZXF1aXJlID0gKGNodW5rSWQsIHByb21pc2VzKSA9PiB7XG5cdC8vIFwiMVwiIGlzIHRoZSBzaWduYWwgZm9yIFwiYWxyZWFkeSBsb2FkZWRcIlxuXHRpZighaW5zdGFsbGVkQ2h1bmtzW2NodW5rSWRdKSB7XG5cdFx0aWYodHJ1ZSkgeyAvLyBhbGwgY2h1bmtzIGhhdmUgSlNcblx0XHRcdGluc3RhbGxDaHVuayhyZXF1aXJlKFwiLi9cIiArIF9fd2VicGFja19yZXF1aXJlX18udShjaHVua0lkKSkpO1xuXHRcdH0gZWxzZSBpbnN0YWxsZWRDaHVua3NbY2h1bmtJZF0gPSAxO1xuXHR9XG59O1xuXG4vLyBubyBleHRlcm5hbCBpbnN0YWxsIGNodW5rXG5cbi8vIG5vIEhNUlxuXG4vLyBubyBITVIgbWFuaWZlc3QiLCJjb25zdCBfX1dFQlBBQ0tfTkFNRVNQQUNFX09CSkVDVF9fID0gcmVxdWlyZShcInJlYWN0LWRvbS9jbGllbnRcIik7IiwiaW1wb3J0IHsgaHlkcmF0ZVJvb3QgfSBmcm9tICdyZWFjdC1kb20vY2xpZW50JztcblxuZXhwb3J0IGRlZmF1bHQgYXN5bmMgZnVuY3Rpb24gZmxvb2RTcG91dHMoXG4gIHNwb3V0czogKHByb3BzOiBSZWNvcmQ8c3RyaW5nLCB1bmtub3duPikgPT4gUHJvbWlzZTx7XG4gICAgYXBwOiBKU1guRWxlbWVudDtcbiAgfT4sXG4gIHsgcm9vdElkID0gJ2FuYW5zaS1yb290JyB9OiB7IHJvb3RJZD86IHN0cmluZyB9ID0ge30sXG4pIHtcbiAgY29uc3QgeyBhcHAgfSA9IGF3YWl0IHNwb3V0cyh7fSk7XG5cbiAgaHlkcmF0ZVJvb3QoZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQocm9vdElkKSA/PyBkb2N1bWVudCwgYXBwKTtcbn1cbiIsImltcG9ydCBSZWFjdCBmcm9tICdyZWFjdCc7XG5cbmltcG9ydCB0eXBlIHsgQ2xpZW50U3BvdXQgfSBmcm9tICcuL3R5cGVzLmpzJztcblxuZXhwb3J0IGRlZmF1bHQgZnVuY3Rpb24gZG9jdW1lbnRTcG91dChvcHRpb25zOiB7XG4gIGhlYWQ/OiBSZWFjdC5SZWFjdE5vZGU7XG4gIHRpdGxlOiBzdHJpbmc7XG59KTogQ2xpZW50U3BvdXQge1xuICByZXR1cm4gbmV4dCA9PiBhc3luYyBwcm9wcyA9PiB7XG4gICAgY29uc3QgbmV4dFByb3BzID0gYXdhaXQgbmV4dChwcm9wcyk7XG5cbiAgICByZXR1cm4gbmV4dFByb3BzO1xuICB9O1xufVxuIiwiY29uc3QgX19XRUJQQUNLX05BTUVTUEFDRV9PQkpFQ1RfXyA9IHJlcXVpcmUoXCJyZWFjdFwiKTsiLCJpbXBvcnQgeyB0eXBlIE1hbmFnZXIgfSBmcm9tICdAcmVzdC1ob29rcy9yZWFjdCc7XG5cbmltcG9ydCB0eXBlIHsgQ2xpZW50U3BvdXQgfSBmcm9tICcuL3R5cGVzLmpzJztcblxuZXhwb3J0IGRlZmF1bHQgZnVuY3Rpb24gcmVzdEhvb2tzU3BvdXQoXG4gIG9wdGlvbnM6IHtcbiAgICBnZXRNYW5hZ2Vycz86ICgpID0+IE1hbmFnZXJbXTtcbiAgfSA9IHt9LFxuKTogQ2xpZW50U3BvdXQ8eyBnZXRJbml0aWFsRGF0YTogKGtleTogc3RyaW5nKSA9PiBQcm9taXNlPGFueT4gfT4ge1xuICByZXR1cm4gbmV4dCA9PiBhc3luYyBwcm9wcyA9PiB7XG4gICAgY29uc3QgbmV4dFByb3BzID0gYXdhaXQgbmV4dChwcm9wcyk7XG4gICAgY29uc3QgW2RhdGEsIHsgQ2FjaGVQcm92aWRlciB9XSA9IGF3YWl0IFByb21pc2UuYWxsKFtcbiAgICAgIHByb3BzLmdldEluaXRpYWxEYXRhKCdyZXN0aG9va3MnKSxcbiAgICAgIGltcG9ydCgnLi9yZXN0SG9va3MucHJvdmlkZXIuanMnKSxcbiAgICBdKTtcblxuICAgIGlmIChwcm9jZXNzLmVudi5OT0RFX0VOViAhPT0gJ3Byb2R1Y3Rpb24nICYmICFkYXRhKSB7XG4gICAgICBjb25zb2xlLmVycm9yKCdSZXN0IEhvb2tzIGluaXQgZGF0YSBub3QgZm91bmQnKTtcbiAgICB9IGVsc2UgaWYgKCFkYXRhKSB7XG4gICAgICBjb25zb2xlLmluZm8oJ1Jlc3QgSG9va3MgaW5pdCBtaXNzaW5nJyk7XG4gICAgfVxuXG4gICAgcmV0dXJuIHtcbiAgICAgIC4uLm5leHRQcm9wcyxcbiAgICAgIGFwcDogKFxuICAgICAgICA8Q2FjaGVQcm92aWRlciBpbml0aWFsU3RhdGU9e2RhdGF9IG1hbmFnZXJzPXtvcHRpb25zPy5nZXRNYW5hZ2Vycz8uKCl9PlxuICAgICAgICAgIHtuZXh0UHJvcHMuYXBwfVxuICAgICAgICA8L0NhY2hlUHJvdmlkZXI+XG4gICAgICApLFxuICAgIH07XG4gIH07XG59XG4iLCJjb25zdCBfX1dFQlBBQ0tfTkFNRVNQQUNFX09CSkVDVF9fID0gcmVxdWlyZShcIkBhbmFuc2kvcm91dGVyXCIpOyIsImNvbnN0IF9fV0VCUEFDS19OQU1FU1BBQ0VfT0JKRUNUX18gPSByZXF1aXJlKFwiaGlzdG9yeVwiKTsiLCJpbXBvcnQgeyBSb3V0ZSwgUm91dGVQcm92aWRlciwgUm91dGVDb250cm9sbGVyIH0gZnJvbSAnQGFuYW5zaS9yb3V0ZXInO1xuaW1wb3J0IHsgY3JlYXRlQnJvd3Nlckhpc3RvcnkgfSBmcm9tICdoaXN0b3J5JztcbmltcG9ydCB0eXBlIHsgVXBkYXRlIH0gZnJvbSAnaGlzdG9yeSc7XG5pbXBvcnQgUmVhY3QgZnJvbSAncmVhY3QnO1xuXG5pbXBvcnQgdHlwZSB7IENyZWF0ZVJvdXRlciwgQ2xpZW50U3BvdXQgfSBmcm9tICcuL3R5cGVzLmpzJztcblxuZXhwb3J0IGRlZmF1bHQgZnVuY3Rpb24gcm91dGVyU3BvdXQ8UmVzb2x2ZVdpdGg+KG9wdGlvbnM6IHtcbiAgcmVzb2x2ZVdpdGg/OiBhbnk7XG4gIHVzZVJlc29sdmVXaXRoOiAoKSA9PiBSZXNvbHZlV2l0aDtcbiAgY3JlYXRlUm91dGVyOiBDcmVhdGVSb3V0ZXI8UmVzb2x2ZVdpdGg+O1xuICBvbkNoYW5nZT86ICh1cGRhdGU6IFVwZGF0ZSwgY2FsbGJhY2s6ICgpID0+IHZvaWQgfCB1bmRlZmluZWQpID0+IHZvaWQ7XG59KTogQ2xpZW50U3BvdXQ8XG4gIFJlY29yZDxzdHJpbmcsIHVua25vd24+LFxuICB7XG4gICAgbWF0Y2hlZFJvdXRlczogUm91dGU8UmVzb2x2ZVdpdGgsIGFueT5bXTtcbiAgfSAmIHtcbiAgICByb3V0ZXI6IFJvdXRlQ29udHJvbGxlcjxSb3V0ZTxSZXNvbHZlV2l0aCwgYW55Pj47XG4gIH1cbj4ge1xuICBjb25zdCBjcmVhdGVSb3V0ZUNvbXBvbmVudCA9IChcbiAgICByb3V0ZXI6IFJvdXRlQ29udHJvbGxlcjxSb3V0ZTxSZXNvbHZlV2l0aCwgYW55Pj4sXG4gICkgPT5cbiAgICBmdW5jdGlvbiBSb3V0ZXIoeyBjaGlsZHJlbiB9OiB7IGNoaWxkcmVuOiBSZWFjdC5SZWFjdE5vZGUgfSkge1xuICAgICAgY29uc3QgcmVzb2x2ZVdpdGggPSBvcHRpb25zLnVzZVJlc29sdmVXaXRoKCk7XG5cbiAgICAgIHJldHVybiAoXG4gICAgICAgIDxSb3V0ZVByb3ZpZGVyXG4gICAgICAgICAgcm91dGVyPXtyb3V0ZXJ9XG4gICAgICAgICAgcmVzb2x2ZVdpdGg9e3Jlc29sdmVXaXRofVxuICAgICAgICAgIG9uQ2hhbmdlPXtvcHRpb25zLm9uQ2hhbmdlfVxuICAgICAgICA+XG4gICAgICAgICAge2NoaWxkcmVufVxuICAgICAgICA8L1JvdXRlUHJvdmlkZXI+XG4gICAgICApO1xuICAgIH07XG5cbiAgcmV0dXJuIG5leHQgPT4gYXN5bmMgcHJvcHMgPT4ge1xuICAgIGNvbnN0IGhpc3RvcnkgPSBjcmVhdGVCcm93c2VySGlzdG9yeSgpO1xuICAgIGNvbnN0IHJvdXRlciA9IG9wdGlvbnMuY3JlYXRlUm91dGVyKGhpc3RvcnkpO1xuICAgIGNvbnN0IG1hdGNoZWRSb3V0ZXMgPSByb3V0ZXIuZ2V0TWF0Y2hlZFJvdXRlcyhoaXN0b3J5LmxvY2F0aW9uLnBhdGhuYW1lKTtcblxuICAgIGNvbnN0IG5leHRQcm9wcyA9IGF3YWl0IG5leHQoeyAuLi5wcm9wcywgbWF0Y2hlZFJvdXRlcywgcm91dGVyIH0pO1xuXG4gICAgY29uc3QgUm91dGVyID0gY3JlYXRlUm91dGVDb21wb25lbnQocm91dGVyKTtcbiAgICByZXR1cm4ge1xuICAgICAgLi4ubmV4dFByb3BzLFxuICAgICAgbWF0Y2hlZFJvdXRlcyxcbiAgICAgIHJvdXRlcixcbiAgICAgIGFwcDogPFJvdXRlcj57bmV4dFByb3BzLmFwcH08L1JvdXRlcj4sXG4gICAgfTtcbiAgfTtcbn1cbiIsImltcG9ydCB0eXBlIHsgQ2xpZW50U3BvdXQgfSBmcm9tICcuL3R5cGVzLmpzJztcblxuZXhwb3J0IGRlZmF1bHQgZnVuY3Rpb24gSlNPTlNwb3V0KHtcbiAgaWQgPSAnYW5hbnNpLWpzb24nLFxufTogeyBpZD86IHN0cmluZyB9ID0ge30pOiBDbGllbnRTcG91dDxcbiAgUmVjb3JkPHN0cmluZywgdW5rbm93bj4sXG4gIHsgZ2V0SW5pdGlhbERhdGE6IChrZXk6IHN0cmluZykgPT4gUHJvbWlzZTxhbnk+IH1cbj4ge1xuICByZXR1cm4gbmV4dCA9PiBhc3luYyBwcm9wcyA9PiB7XG4gICAgY29uc3QgZ2V0SW5pdGlhbERhdGEgPSAoa2V5OiBzdHJpbmcpID0+IHtcbiAgICAgIGNvbnN0IGdsb2JhbElkID0gYCR7aWR9LiR7a2V5fWA7XG4gICAgICByZXR1cm4gbmV3IFByb21pc2U8YW55PigocmVzb2x2ZSwgcmVqZWN0KSA9PiB7XG4gICAgICAgIGxldCBlbDogSFRNTFNjcmlwdEVsZW1lbnQgfCBudWxsO1xuICAgICAgICBpZiAoKGVsID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoZ2xvYmFsSWQpIGFzIGFueSkpIHtcbiAgICAgICAgICByZXNvbHZlKGdldERhdGFGcm9tRWwoZWwsIGdsb2JhbElkKSk7XG4gICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICAgIGRvY3VtZW50LmFkZEV2ZW50TGlzdGVuZXIoJ0RPTUNvbnRlbnRMb2FkZWQnLCAoKSA9PiB7XG4gICAgICAgICAgZWwgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZChnbG9iYWxJZCkgYXMgYW55O1xuICAgICAgICAgIGlmIChlbCkgcmVzb2x2ZShnZXREYXRhRnJvbUVsKGVsLCBnbG9iYWxJZCkpO1xuICAgICAgICAgIGVsc2UgcmVqZWN0KG5ldyBFcnJvcihgZmFpbGVkIHRvIGZpbmQgRE9NIHdpdGggJHtrZXl9IHN0YXRlYCkpO1xuICAgICAgICB9KTtcbiAgICAgIH0pO1xuICAgIH07XG4gICAgcmV0dXJuIHsgLi4uKGF3YWl0IG5leHQoeyAuLi5wcm9wcywgZ2V0SW5pdGlhbERhdGEgfSkpLCBnZXRJbml0aWFsRGF0YSB9O1xuICB9O1xufVxuXG5mdW5jdGlvbiBnZXREYXRhRnJvbUVsKGVsOiBIVE1MU2NyaXB0RWxlbWVudCwga2V5OiBzdHJpbmcpIHtcbiAgaWYgKGVsLnRleHQgPT09IHVuZGVmaW5lZCkge1xuICAgIGNvbnNvbGUuZXJyb3IoXG4gICAgICBgIyR7a2V5fSBpcyBjb21wbGV0ZWx5IGVtcHR5LiBUaGlzIGNvdWxkIGJlIGR1ZSB0byBDU1AgaXNzdWVzLmAsXG4gICAgKTtcbiAgfVxuICByZXR1cm4gZWw/LnRleHQgPyBKU09OLnBhcnNlKGVsPy50ZXh0KSA6IHVuZGVmaW5lZDtcbn1cbiIsImNvbnN0IGFwcFNwb3V0ID1cbiAgKGFwcDogSlNYLkVsZW1lbnQpID0+XG4gIDxQIGV4dGVuZHMgUmVjb3JkPHN0cmluZywgdW5rbm93bj4+KHByb3BzOiBQKSA9PlxuICAgIFByb21pc2UucmVzb2x2ZSh7IC4uLnByb3BzLCBhcHAgfSk7XG5cbmV4cG9ydCBkZWZhdWx0IGFwcFNwb3V0O1xuIiwiZXhwb3J0IHsgZGVmYXVsdCBhcyBmbG9vZFNwb3V0cyB9IGZyb20gJy4vZmxvb2RTcG91dHMuanMnO1xuZXhwb3J0IHsgZGVmYXVsdCBhcyBkb2N1bWVudFNwb3V0IH0gZnJvbSAnLi9zcG91dHMvZG9jdW1lbnQuanMnO1xuZXhwb3J0IHsgZGVmYXVsdCBhcyByZXN0SG9va3NTcG91dCB9IGZyb20gJy4vc3BvdXRzL3Jlc3RIb29rcy5qcyc7XG5leHBvcnQgeyBkZWZhdWx0IGFzIHJvdXRlclNwb3V0IH0gZnJvbSAnLi9zcG91dHMvcm91dGVyLmpzJztcbmV4cG9ydCB7IGRlZmF1bHQgYXMgSlNPTlNwb3V0IH0gZnJvbSAnLi9zcG91dHMvanNvbi5qcyc7XG5leHBvcnQgeyBkZWZhdWx0IGFzIGFwcFNwb3V0IH0gZnJvbSAnLi9zcG91dHMvYXBwLmpzJztcbmV4cG9ydCB0eXBlIHsgU2VydmVyUHJvcHMgfSBmcm9tICcuL3Nwb3V0cy90eXBlcy5qcyc7XG5leHBvcnQgdHlwZSB7IENsaWVudFNwb3V0IGFzIFNwb3V0IH0gZnJvbSAnLi9zcG91dHMvdHlwZXMuanMnO1xuIl0sIm5hbWVzIjpbImh5ZHJhdGVSb290IiwiZmxvb2RTcG91dHMiLCJzcG91dHMiLCJyb290SWQiLCJfZG9jdW1lbnQkZ2V0RWxlbWVudEIiLCJhcHAiLCJkb2N1bWVudCIsImdldEVsZW1lbnRCeUlkIiwiZG9jdW1lbnRTcG91dCIsIm9wdGlvbnMiLCJuZXh0IiwicHJvcHMiLCJuZXh0UHJvcHMiLCJyZXN0SG9va3NTcG91dCIsImRhdGEiLCJDYWNoZVByb3ZpZGVyIiwiUHJvbWlzZSIsImFsbCIsImdldEluaXRpYWxEYXRhIiwicHJvY2VzcyIsImVudiIsIk5PREVfRU5WIiwiY29uc29sZSIsImVycm9yIiwiaW5mbyIsIlJlYWN0IiwiY3JlYXRlRWxlbWVudCIsImluaXRpYWxTdGF0ZSIsIm1hbmFnZXJzIiwiZ2V0TWFuYWdlcnMiLCJfX3NlbGYiLCJfX3NvdXJjZSIsImZpbGVOYW1lIiwiX2pzeEZpbGVOYW1lIiwibGluZU51bWJlciIsImNvbHVtbk51bWJlciIsIlJvdXRlUHJvdmlkZXIiLCJjcmVhdGVCcm93c2VySGlzdG9yeSIsInJvdXRlclNwb3V0IiwiY3JlYXRlUm91dGVDb21wb25lbnQiLCJyb3V0ZXIiLCJSb3V0ZXIiLCJjaGlsZHJlbiIsInJlc29sdmVXaXRoIiwidXNlUmVzb2x2ZVdpdGgiLCJvbkNoYW5nZSIsImhpc3RvcnkiLCJjcmVhdGVSb3V0ZXIiLCJtYXRjaGVkUm91dGVzIiwiZ2V0TWF0Y2hlZFJvdXRlcyIsImxvY2F0aW9uIiwicGF0aG5hbWUiLCJKU09OU3BvdXQiLCJpZCIsImtleSIsImdsb2JhbElkIiwicmVzb2x2ZSIsInJlamVjdCIsImVsIiwiZ2V0RGF0YUZyb21FbCIsImFkZEV2ZW50TGlzdGVuZXIiLCJFcnJvciIsInRleHQiLCJ1bmRlZmluZWQiLCJKU09OIiwicGFyc2UiLCJhcHBTcG91dCIsImRlZmF1bHQiXSwic291cmNlUm9vdCI6IiJ9
@@ -0,0 +1 @@
1
+ {"type":"commonjs"}