@anansi/core 0.10.0 → 0.11.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (64) hide show
  1. package/CHANGELOG.md +14 -0
  2. package/dist/client.js +29 -21
  3. package/dist/client.js.map +1 -1
  4. package/dist/server.js +205 -30
  5. package/dist/server.js.map +1 -1
  6. package/lib/index.d.ts +1 -0
  7. package/lib/index.d.ts.map +1 -1
  8. package/lib/index.js +6 -2
  9. package/lib/index.server.d.ts +1 -0
  10. package/lib/index.server.d.ts.map +1 -1
  11. package/lib/index.server.js +6 -2
  12. package/lib/laySpouts.d.ts.map +1 -1
  13. package/lib/laySpouts.js +11 -2
  14. package/lib/scripts/startDevserver.d.ts.map +1 -1
  15. package/lib/scripts/startDevserver.js +5 -8
  16. package/lib/spouts/DocumentComponent.d.ts +6 -1
  17. package/lib/spouts/DocumentComponent.d.ts.map +1 -1
  18. package/lib/spouts/DocumentComponent.js +32 -9
  19. package/lib/spouts/csp.d.ts +5 -0
  20. package/lib/spouts/csp.d.ts.map +1 -0
  21. package/lib/spouts/csp.js +20 -0
  22. package/lib/spouts/document.d.ts +1 -1
  23. package/lib/spouts/document.d.ts.map +1 -1
  24. package/lib/spouts/document.js +3 -3
  25. package/lib/spouts/document.server.d.ts +3 -0
  26. package/lib/spouts/document.server.d.ts.map +1 -1
  27. package/lib/spouts/document.server.js +5 -2
  28. package/lib/spouts/json.d.ts +5 -0
  29. package/lib/spouts/json.d.ts.map +1 -0
  30. package/lib/spouts/json.js +22 -0
  31. package/lib/spouts/json.server.d.ts +13 -0
  32. package/lib/spouts/json.server.d.ts.map +1 -0
  33. package/lib/spouts/json.server.js +74 -0
  34. package/lib/spouts/restHooks.d.ts +1 -1
  35. package/lib/spouts/restHooks.d.ts.map +1 -1
  36. package/lib/spouts/restHooks.js +5 -9
  37. package/lib/spouts/restHooks.server.d.ts +41 -1
  38. package/lib/spouts/restHooks.server.d.ts.map +1 -1
  39. package/lib/spouts/restHooks.server.js +6 -3
  40. package/lib/spouts/rhHelp.d.ts +40 -0
  41. package/lib/spouts/rhHelp.d.ts.map +1 -0
  42. package/lib/spouts/rhHelp.js +47 -0
  43. package/lib/spouts/router.d.ts +1 -1
  44. package/lib/spouts/router.d.ts.map +1 -1
  45. package/lib/spouts/router.js +3 -3
  46. package/lib/spouts/types.d.ts +1 -0
  47. package/lib/spouts/types.d.ts.map +1 -1
  48. package/lib/spouts/types.js +1 -1
  49. package/package.json +2 -2
  50. package/src/index.server.ts +1 -0
  51. package/src/index.ts +1 -0
  52. package/src/laySpouts.tsx +5 -1
  53. package/src/scripts/startDevserver.ts +4 -6
  54. package/src/spouts/DocumentComponent.tsx +29 -6
  55. package/src/spouts/csp.ts +25 -0
  56. package/src/spouts/document.server.tsx +6 -0
  57. package/src/spouts/document.tsx +5 -3
  58. package/src/spouts/json.server.tsx +77 -0
  59. package/src/spouts/json.tsx +25 -0
  60. package/src/spouts/restHooks.server.tsx +7 -3
  61. package/src/spouts/restHooks.tsx +12 -7
  62. package/src/spouts/rhHelp.tsx +37 -0
  63. package/src/spouts/router.tsx +5 -3
  64. package/src/spouts/types.ts +1 -0
@@ -51,7 +51,10 @@ function DocumentSpout(options) {
51
51
  app: /*#__PURE__*/_react.default.createElement(_DocumentComponent.default, { ...options,
52
52
  title: (_nextProps$title = nextProps.title) != null ? _nextProps$title : options.title,
53
53
  assets: assets,
54
- rootId: options.rootId
54
+ rootId: options.rootId,
55
+ nonce: props.nonce,
56
+ csPolicy: options.csPolicy,
57
+ scripts: nextProps.scripts
55
58
  }, nextProps.app)
56
59
  };
57
60
  };
@@ -65,4 +68,4 @@ function childrenAssets(chunk) {
65
68
  return (_c$assets = c.assets) != null ? _c$assets : [];
66
69
  })) : [];
67
70
  }
68
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJEb2N1bWVudFNwb3V0Iiwib3B0aW9ucyIsIm5leHQiLCJwcm9wcyIsIm5leHRQcm9wcyIsInB1YmxpY1BhdGgiLCJjbGllbnRNYW5pZmVzdCIsIk9iamVjdCIsImtleXMiLCJlbnRyeXBvaW50cyIsImxlbmd0aCIsInVuZGVmaW5lZCIsIkVycm9yIiwiYXNzZXRNYXAiLCJhc3NldHMiLCJtYXAiLCJuYW1lIiwiYXNzZXRMaXN0IiwidmFsdWVzIiwiZm9yRWFjaCIsImVudHJ5cG9pbnQiLCJwdXNoIiwiU2V0IiwibmFtZWRDaHVua0dyb3VwcyIsImZpbHRlciIsIm1hdGNoZWRSb3V0ZXMiLCJzb21lIiwicm91dGUiLCJpbmNsdWRlcyIsImZsYXRNYXAiLCJjaHVuayIsImNoaWxkcmVuQXNzZXRzIiwiYXNzZXQiLCJlbmRzV2l0aCIsImhyZWYiLCJyZWwiLCJhcyIsImFwcCIsInRpdGxlIiwicm9vdElkIiwiY2hpbGRyZW4iLCJwcmVsb2FkIiwiYyJdLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9zcG91dHMvZG9jdW1lbnQuc2VydmVyLnRzeCJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgUmVhY3QgZnJvbSAncmVhY3QnO1xuaW1wb3J0IHR5cGUgeyBSb3V0ZSB9IGZyb20gJ0BhbmFuc2kvcm91dGVyJztcbmltcG9ydCB7IFN0YXRzQ2h1bmtHcm91cCB9IGZyb20gJ3dlYnBhY2snO1xuXG5pbXBvcnQgdHlwZSB7IFNlcnZlclByb3BzLCBSZXNvbHZlUHJvcHMgfSBmcm9tICcuL3R5cGVzJztcbmltcG9ydCBEb2N1bWVudCBmcm9tICcuL0RvY3VtZW50Q29tcG9uZW50JztcblxudHlwZSBOZWVkZWRQcm9wcyA9IHtcbiAgbWF0Y2hlZFJvdXRlczogUm91dGU8YW55PltdO1xuICB0aXRsZT86IHN0cmluZztcbn0gJiBSZXNvbHZlUHJvcHM7XG5cbmV4cG9ydCBkZWZhdWx0IGZ1bmN0aW9uIERvY3VtZW50U3BvdXQob3B0aW9uczoge1xuICBoZWFkPzogUmVhY3QuUmVhY3ROb2RlO1xuICB0aXRsZTogc3RyaW5nO1xuICByb290SWQ/OiBzdHJpbmc7XG4gIGNoYXJTZXQ/OiBzdHJpbmc7XG59KSB7XG4gIHJldHVybiBmdW5jdGlvbiA8VCBleHRlbmRzIE5lZWRlZFByb3BzPihcbiAgICBuZXh0OiAocHJvcHM6IFNlcnZlclByb3BzKSA9PiBQcm9taXNlPFQ+LFxuICApIHtcbiAgICByZXR1cm4gYXN5bmMgKHByb3BzOiBTZXJ2ZXJQcm9wcykgPT4ge1xuICAgICAgY29uc3QgbmV4dFByb3BzID0gYXdhaXQgbmV4dChwcm9wcyk7XG5cbiAgICAgIGNvbnN0IHB1YmxpY1BhdGggPSBwcm9wcy5jbGllbnRNYW5pZmVzdC5wdWJsaWNQYXRoO1xuXG4gICAgICBpZiAoXG4gICAgICAgIE9iamVjdC5rZXlzKHByb3BzLmNsaWVudE1hbmlmZXN0Py5lbnRyeXBvaW50cyA/PyB7fSkubGVuZ3RoIDwgMSB8fFxuICAgICAgICBwdWJsaWNQYXRoID09PSB1bmRlZmluZWRcbiAgICAgIClcbiAgICAgICAgdGhyb3cgbmV3IEVycm9yKCdNYW5pZmVzdCBtaXNzaW5nIGVudHJpZXMgbmVlZGVkJyk7XG5cbiAgICAgIC8vIFRPRE86IGNvbnNpZGVyIHVzaW5nIHRoaXMgcGFja2FnZSBmb3IgYnVpbGQgc3RhdHMgaW4gZnV0dXJlOlxuICAgICAgLy8gaHR0cHM6Ly9naXRodWIuY29tL2ZhY2Vib29rL3JlYWN0L3RyZWUvbWFpbi9wYWNrYWdlcy9yZWFjdC1zZXJ2ZXItZG9tLXdlYnBhY2tcbiAgICAgIGNvbnN0IGFzc2V0TWFwID0gKGFzc2V0czogeyBuYW1lOiBzdHJpbmc7IHNpemU/OiBudW1iZXIgfVtdKSA9PlxuICAgICAgICBhc3NldHMubWFwKCh7IG5hbWUgfSkgPT4gYCR7cHVibGljUGF0aH0ke25hbWV9YCk7XG5cbiAgICAgIGNvbnN0IGFzc2V0TGlzdDogc3RyaW5nW10gPSBbXTtcbiAgICAgIE9iamVjdC52YWx1ZXMocHJvcHMuY2xpZW50TWFuaWZlc3Q/LmVudHJ5cG9pbnRzID8/IHt9KS5mb3JFYWNoKFxuICAgICAgICBlbnRyeXBvaW50ID0+IHtcbiAgICAgICAgICBhc3NldExpc3QucHVzaCguLi5hc3NldE1hcChlbnRyeXBvaW50LmFzc2V0cyA/PyBbXSkpO1xuICAgICAgICB9LFxuICAgICAgKTtcbiAgICAgIG5ldyBTZXQoXG4gICAgICAgIGFzc2V0TWFwKFxuICAgICAgICAgIE9iamVjdC52YWx1ZXMocHJvcHMuY2xpZW50TWFuaWZlc3QubmFtZWRDaHVua0dyb3VwcyA/PyB7fSlcbiAgICAgICAgICAgIC5maWx0ZXIoKHsgbmFtZSB9KSA9PlxuICAgICAgICAgICAgICBuZXh0UHJvcHMubWF0Y2hlZFJvdXRlcy5zb21lKHJvdXRlID0+IG5hbWU/LmluY2x1ZGVzKHJvdXRlLm5hbWUpKSxcbiAgICAgICAgICAgIClcbiAgICAgICAgICAgIC5mbGF0TWFwKGNodW5rID0+IFtcbiAgICAgICAgICAgICAgLi4uKGNodW5rLmFzc2V0cyA/PyBbXSksXG4gICAgICAgICAgICAgIC8vIGFueSBjaHVuayBwcmVsb2Fkc1xuICAgICAgICAgICAgICAuLi5jaGlsZHJlbkFzc2V0cyhjaHVuayksXG4gICAgICAgICAgICBdKSxcbiAgICAgICAgKSxcbiAgICAgICkuZm9yRWFjaChhc3NldCA9PiBhc3NldExpc3QucHVzaChhc3NldCkpO1xuXG4gICAgICAvLyBmaW5kIGFkZGl0aW9uYWwgYXNzZXRzIHRvIHByZWxvYWQgYmFzZWQgb24gbWF0Y2hlZCByb3V0ZVxuICAgICAgY29uc3QgYXNzZXRzOiB7XG4gICAgICAgIGhyZWY6IHN0cmluZztcbiAgICAgICAgYXM/OiBzdHJpbmcgfCB1bmRlZmluZWQ7XG4gICAgICAgIHJlbD86IHN0cmluZyB8IHVuZGVmaW5lZDtcbiAgICAgIH1bXSA9IGFzc2V0TGlzdFxuICAgICAgICAuZmlsdGVyKGFzc2V0ID0+ICFhc3NldC5lbmRzV2l0aCgnLmhvdC11cGRhdGUuanMnKSlcbiAgICAgICAgLm1hcChhc3NldCA9PlxuICAgICAgICAgIGFzc2V0LmVuZHNXaXRoKCcuY3NzJylcbiAgICAgICAgICAgID8geyBocmVmOiBhc3NldCwgcmVsOiAnc3R5bGVzaGVldCcgfVxuICAgICAgICAgICAgOiBhc3NldC5lbmRzV2l0aCgnLmpzJylcbiAgICAgICAgICAgID8geyBocmVmOiBhc3NldCwgYXM6ICdzY3JpcHQnIH1cbiAgICAgICAgICAgIDogeyBocmVmOiBhc3NldCB9LFxuICAgICAgICApO1xuXG4gICAgICByZXR1cm4ge1xuICAgICAgICAuLi5uZXh0UHJvcHMsXG4gICAgICAgIGFwcDogKFxuICAgICAgICAgIDxEb2N1bWVudFxuICAgICAgICAgICAgey4uLm9wdGlvbnN9XG4gICAgICAgICAgICB0aXRsZT17bmV4dFByb3BzLnRpdGxlID8/IG9wdGlvbnMudGl0bGV9XG4gICAgICAgICAgICBhc3NldHM9e2Fzc2V0c31cbiAgICAgICAgICAgIHJvb3RJZD17b3B0aW9ucy5yb290SWR9XG4gICAgICAgICAgPlxuICAgICAgICAgICAge25leHRQcm9wcy5hcHB9XG4gICAgICAgICAgPC9Eb2N1bWVudD5cbiAgICAgICAgKSxcbiAgICAgIH07XG4gICAgfTtcbiAgfTtcbn1cblxuZnVuY3Rpb24gY2hpbGRyZW5Bc3NldHMoY2h1bms6IFN0YXRzQ2h1bmtHcm91cCkge1xuICByZXR1cm4gY2h1bmsuY2hpbGRyZW5cbiAgICA/IE9iamVjdC52YWx1ZXMoY2h1bmsuY2hpbGRyZW4pLmZsYXRNYXAocHJlbG9hZCA9PlxuICAgICAgICBwcmVsb2FkLmZsYXRNYXAoYyA9PiBjLmFzc2V0cyA/PyBbXSksXG4gICAgICApXG4gICAgOiBbXTtcbn1cbiJdLCJtYXBwaW5ncyI6Ijs7Ozs7OztBQUFBOztBQUtBOztBQU9lLFNBQVNBLGFBQVQsQ0FBdUJDLE9BQXZCLEVBS1o7RUFDRCxPQUFPLFVBQ0xDLElBREssRUFFTDtJQUNBLE9BQU8sTUFBT0MsS0FBUCxJQUE4QjtNQUFBOztNQUNuQyxNQUFNQyxTQUFTLEdBQUcsTUFBTUYsSUFBSSxDQUFDQyxLQUFELENBQTVCO01BRUEsTUFBTUUsVUFBVSxHQUFHRixLQUFLLENBQUNHLGNBQU4sQ0FBcUJELFVBQXhDO01BRUEsSUFDRUUsTUFBTSxDQUFDQyxJQUFQLG9EQUFZTCxLQUFLLENBQUNHLGNBQWxCLDJEQUFZLHVCQUFzQkcsV0FBbEMsb0NBQWlELEVBQWpELEVBQXFEQyxNQUFyRCxHQUE4RCxDQUE5RCxJQUNBTCxVQUFVLEtBQUtNLFNBRmpCLEVBSUUsTUFBTSxJQUFJQyxLQUFKLENBQVUsaUNBQVYsQ0FBTixDQVRpQyxDQVduQztNQUNBOztNQUNBLE1BQU1DLFFBQVEsR0FBSUMsTUFBRCxJQUNmQSxNQUFNLENBQUNDLEdBQVAsQ0FBVyxDQUFDO1FBQUVDO01BQUYsQ0FBRCxLQUFlLEdBQUVYLFVBQVcsR0FBRVcsSUFBSyxFQUE5QyxDQURGOztNQUdBLE1BQU1DLFNBQW1CLEdBQUcsRUFBNUI7TUFDQVYsTUFBTSxDQUFDVyxNQUFQLHFEQUFjZixLQUFLLENBQUNHLGNBQXBCLDJEQUFjLHVCQUFzQkcsV0FBcEMscUNBQW1ELEVBQW5ELEVBQXVEVSxPQUF2RCxDQUNFQyxVQUFVLElBQUk7UUFBQTs7UUFDWkgsU0FBUyxDQUFDSSxJQUFWLENBQWUsR0FBR1IsUUFBUSx1QkFBQ08sVUFBVSxDQUFDTixNQUFaLGlDQUFzQixFQUF0QixDQUExQjtNQUNELENBSEg7TUFLQSxJQUFJUSxHQUFKLENBQ0VULFFBQVEsQ0FDTk4sTUFBTSxDQUFDVyxNQUFQLDJCQUFjZixLQUFLLENBQUNHLGNBQU4sQ0FBcUJpQixnQkFBbkMscUNBQXVELEVBQXZELEVBQ0dDLE1BREgsQ0FDVSxDQUFDO1FBQUVSO01BQUYsQ0FBRCxLQUNOWixTQUFTLENBQUNxQixhQUFWLENBQXdCQyxJQUF4QixDQUE2QkMsS0FBSyxJQUFJWCxJQUFKLGFBQUlBLElBQUosdUJBQUlBLElBQUksQ0FBRVksUUFBTixDQUFlRCxLQUFLLENBQUNYLElBQXJCLENBQXRDLENBRkosRUFJR2EsT0FKSCxDQUlXQyxLQUFLO1FBQUE7O1FBQUEsT0FBSSxDQUNoQixxQkFBSUEsS0FBSyxDQUFDaEIsTUFBViw0QkFBb0IsRUFBcEIsQ0FEZ0IsRUFFaEI7UUFDQSxHQUFHaUIsY0FBYyxDQUFDRCxLQUFELENBSEQsQ0FBSjtNQUFBLENBSmhCLENBRE0sQ0FEVixFQVlFWCxPQVpGLENBWVVhLEtBQUssSUFBSWYsU0FBUyxDQUFDSSxJQUFWLENBQWVXLEtBQWYsQ0FabkIsRUF0Qm1DLENBb0NuQzs7TUFDQSxNQUFNbEIsTUFJSCxHQUFHRyxTQUFTLENBQ1pPLE1BREcsQ0FDSVEsS0FBSyxJQUFJLENBQUNBLEtBQUssQ0FBQ0MsUUFBTixDQUFlLGdCQUFmLENBRGQsRUFFSGxCLEdBRkcsQ0FFQ2lCLEtBQUssSUFDUkEsS0FBSyxDQUFDQyxRQUFOLENBQWUsTUFBZixJQUNJO1FBQUVDLElBQUksRUFBRUYsS0FBUjtRQUFlRyxHQUFHLEVBQUU7TUFBcEIsQ0FESixHQUVJSCxLQUFLLENBQUNDLFFBQU4sQ0FBZSxLQUFmLElBQ0E7UUFBRUMsSUFBSSxFQUFFRixLQUFSO1FBQWVJLEVBQUUsRUFBRTtNQUFuQixDQURBLEdBRUE7UUFBRUYsSUFBSSxFQUFFRjtNQUFSLENBUEYsQ0FKTjtNQWNBLE9BQU8sRUFDTCxHQUFHNUIsU0FERTtRQUVMaUMsR0FBRyxlQUNELDZCQUFDLDBCQUFELE9BQ01wQyxPQUROO1VBRUUsS0FBSyxzQkFBRUcsU0FBUyxDQUFDa0MsS0FBWiwrQkFBcUJyQyxPQUFPLENBQUNxQyxLQUZwQztVQUdFLE1BQU0sRUFBRXhCLE1BSFY7VUFJRSxNQUFNLEVBQUViLE9BQU8sQ0FBQ3NDO1FBSmxCLEdBTUduQyxTQUFTLENBQUNpQyxHQU5iO01BSEcsQ0FBUDtJQWFELENBaEVEO0VBaUVELENBcEVEO0FBcUVEOztBQUVELFNBQVNOLGNBQVQsQ0FBd0JELEtBQXhCLEVBQWdEO0VBQzlDLE9BQU9BLEtBQUssQ0FBQ1UsUUFBTixHQUNIakMsTUFBTSxDQUFDVyxNQUFQLENBQWNZLEtBQUssQ0FBQ1UsUUFBcEIsRUFBOEJYLE9BQTlCLENBQXNDWSxPQUFPLElBQzNDQSxPQUFPLENBQUNaLE9BQVIsQ0FBZ0JhLENBQUM7SUFBQTs7SUFBQSxvQkFBSUEsQ0FBQyxDQUFDNUIsTUFBTix3QkFBZ0IsRUFBaEI7RUFBQSxDQUFqQixDQURGLENBREcsR0FJSCxFQUpKO0FBS0QifQ==
71
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJEb2N1bWVudFNwb3V0Iiwib3B0aW9ucyIsIm5leHQiLCJwcm9wcyIsIm5leHRQcm9wcyIsInB1YmxpY1BhdGgiLCJjbGllbnRNYW5pZmVzdCIsIk9iamVjdCIsImtleXMiLCJlbnRyeXBvaW50cyIsImxlbmd0aCIsInVuZGVmaW5lZCIsIkVycm9yIiwiYXNzZXRNYXAiLCJhc3NldHMiLCJtYXAiLCJuYW1lIiwiYXNzZXRMaXN0IiwidmFsdWVzIiwiZm9yRWFjaCIsImVudHJ5cG9pbnQiLCJwdXNoIiwiU2V0IiwibmFtZWRDaHVua0dyb3VwcyIsImZpbHRlciIsIm1hdGNoZWRSb3V0ZXMiLCJzb21lIiwicm91dGUiLCJpbmNsdWRlcyIsImZsYXRNYXAiLCJjaHVuayIsImNoaWxkcmVuQXNzZXRzIiwiYXNzZXQiLCJlbmRzV2l0aCIsImhyZWYiLCJyZWwiLCJhcyIsImFwcCIsInRpdGxlIiwicm9vdElkIiwibm9uY2UiLCJjc1BvbGljeSIsInNjcmlwdHMiLCJjaGlsZHJlbiIsInByZWxvYWQiLCJjIl0sInNvdXJjZXMiOlsiLi4vLi4vc3JjL3Nwb3V0cy9kb2N1bWVudC5zZXJ2ZXIudHN4Il0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBSZWFjdCBmcm9tICdyZWFjdCc7XG5pbXBvcnQgdHlwZSB7IFJvdXRlIH0gZnJvbSAnQGFuYW5zaS9yb3V0ZXInO1xuaW1wb3J0IHsgU3RhdHNDaHVua0dyb3VwIH0gZnJvbSAnd2VicGFjayc7XG5cbmltcG9ydCB0eXBlIHsgU2VydmVyUHJvcHMsIFJlc29sdmVQcm9wcyB9IGZyb20gJy4vdHlwZXMnO1xuaW1wb3J0IHR5cGUgeyBQb2xpY3kgfSBmcm9tICcuL2NzcCc7XG5pbXBvcnQgRG9jdW1lbnQgZnJvbSAnLi9Eb2N1bWVudENvbXBvbmVudCc7XG5cbnR5cGUgTmVlZGVkUHJvcHMgPSB7XG4gIG1hdGNoZWRSb3V0ZXM6IFJvdXRlPGFueT5bXTtcbiAgdGl0bGU/OiBzdHJpbmc7XG4gIHNjcmlwdHM/OiBSZWFjdC5SZWFjdE5vZGVbXTtcbn0gJiBSZXNvbHZlUHJvcHM7XG5cbmV4cG9ydCBkZWZhdWx0IGZ1bmN0aW9uIERvY3VtZW50U3BvdXQob3B0aW9uczoge1xuICBoZWFkPzogUmVhY3QuUmVhY3ROb2RlO1xuICB0aXRsZTogc3RyaW5nO1xuICByb290SWQ/OiBzdHJpbmc7XG4gIGNoYXJTZXQ/OiBzdHJpbmc7XG4gIGNzUG9saWN5PzogUG9saWN5O1xufSkge1xuICByZXR1cm4gZnVuY3Rpb24gPFQgZXh0ZW5kcyBOZWVkZWRQcm9wcz4oXG4gICAgbmV4dDogKHByb3BzOiBTZXJ2ZXJQcm9wcykgPT4gUHJvbWlzZTxUPixcbiAgKSB7XG4gICAgcmV0dXJuIGFzeW5jIChwcm9wczogU2VydmVyUHJvcHMpID0+IHtcbiAgICAgIGNvbnN0IG5leHRQcm9wcyA9IGF3YWl0IG5leHQocHJvcHMpO1xuXG4gICAgICBjb25zdCBwdWJsaWNQYXRoID0gcHJvcHMuY2xpZW50TWFuaWZlc3QucHVibGljUGF0aDtcblxuICAgICAgaWYgKFxuICAgICAgICBPYmplY3Qua2V5cyhwcm9wcy5jbGllbnRNYW5pZmVzdD8uZW50cnlwb2ludHMgPz8ge30pLmxlbmd0aCA8IDEgfHxcbiAgICAgICAgcHVibGljUGF0aCA9PT0gdW5kZWZpbmVkXG4gICAgICApXG4gICAgICAgIHRocm93IG5ldyBFcnJvcignTWFuaWZlc3QgbWlzc2luZyBlbnRyaWVzIG5lZWRlZCcpO1xuXG4gICAgICAvLyBUT0RPOiBjb25zaWRlciB1c2luZyB0aGlzIHBhY2thZ2UgZm9yIGJ1aWxkIHN0YXRzIGluIGZ1dHVyZTpcbiAgICAgIC8vIGh0dHBzOi8vZ2l0aHViLmNvbS9mYWNlYm9vay9yZWFjdC90cmVlL21haW4vcGFja2FnZXMvcmVhY3Qtc2VydmVyLWRvbS13ZWJwYWNrXG4gICAgICBjb25zdCBhc3NldE1hcCA9IChhc3NldHM6IHsgbmFtZTogc3RyaW5nOyBzaXplPzogbnVtYmVyIH1bXSkgPT5cbiAgICAgICAgYXNzZXRzLm1hcCgoeyBuYW1lIH0pID0+IGAke3B1YmxpY1BhdGh9JHtuYW1lfWApO1xuXG4gICAgICBjb25zdCBhc3NldExpc3Q6IHN0cmluZ1tdID0gW107XG4gICAgICBPYmplY3QudmFsdWVzKHByb3BzLmNsaWVudE1hbmlmZXN0Py5lbnRyeXBvaW50cyA/PyB7fSkuZm9yRWFjaChcbiAgICAgICAgZW50cnlwb2ludCA9PiB7XG4gICAgICAgICAgYXNzZXRMaXN0LnB1c2goLi4uYXNzZXRNYXAoZW50cnlwb2ludC5hc3NldHMgPz8gW10pKTtcbiAgICAgICAgfSxcbiAgICAgICk7XG4gICAgICBuZXcgU2V0KFxuICAgICAgICBhc3NldE1hcChcbiAgICAgICAgICBPYmplY3QudmFsdWVzKHByb3BzLmNsaWVudE1hbmlmZXN0Lm5hbWVkQ2h1bmtHcm91cHMgPz8ge30pXG4gICAgICAgICAgICAuZmlsdGVyKCh7IG5hbWUgfSkgPT5cbiAgICAgICAgICAgICAgbmV4dFByb3BzLm1hdGNoZWRSb3V0ZXMuc29tZShyb3V0ZSA9PiBuYW1lPy5pbmNsdWRlcyhyb3V0ZS5uYW1lKSksXG4gICAgICAgICAgICApXG4gICAgICAgICAgICAuZmxhdE1hcChjaHVuayA9PiBbXG4gICAgICAgICAgICAgIC4uLihjaHVuay5hc3NldHMgPz8gW10pLFxuICAgICAgICAgICAgICAvLyBhbnkgY2h1bmsgcHJlbG9hZHNcbiAgICAgICAgICAgICAgLi4uY2hpbGRyZW5Bc3NldHMoY2h1bmspLFxuICAgICAgICAgICAgXSksXG4gICAgICAgICksXG4gICAgICApLmZvckVhY2goYXNzZXQgPT4gYXNzZXRMaXN0LnB1c2goYXNzZXQpKTtcblxuICAgICAgLy8gZmluZCBhZGRpdGlvbmFsIGFzc2V0cyB0byBwcmVsb2FkIGJhc2VkIG9uIG1hdGNoZWQgcm91dGVcbiAgICAgIGNvbnN0IGFzc2V0czoge1xuICAgICAgICBocmVmOiBzdHJpbmc7XG4gICAgICAgIGFzPzogc3RyaW5nIHwgdW5kZWZpbmVkO1xuICAgICAgICByZWw/OiBzdHJpbmcgfCB1bmRlZmluZWQ7XG4gICAgICB9W10gPSBhc3NldExpc3RcbiAgICAgICAgLmZpbHRlcihhc3NldCA9PiAhYXNzZXQuZW5kc1dpdGgoJy5ob3QtdXBkYXRlLmpzJykpXG4gICAgICAgIC5tYXAoYXNzZXQgPT5cbiAgICAgICAgICBhc3NldC5lbmRzV2l0aCgnLmNzcycpXG4gICAgICAgICAgICA/IHsgaHJlZjogYXNzZXQsIHJlbDogJ3N0eWxlc2hlZXQnIH1cbiAgICAgICAgICAgIDogYXNzZXQuZW5kc1dpdGgoJy5qcycpXG4gICAgICAgICAgICA/IHsgaHJlZjogYXNzZXQsIGFzOiAnc2NyaXB0JyB9XG4gICAgICAgICAgICA6IHsgaHJlZjogYXNzZXQgfSxcbiAgICAgICAgKTtcblxuICAgICAgcmV0dXJuIHtcbiAgICAgICAgLi4ubmV4dFByb3BzLFxuICAgICAgICBhcHA6IChcbiAgICAgICAgICA8RG9jdW1lbnRcbiAgICAgICAgICAgIHsuLi5vcHRpb25zfVxuICAgICAgICAgICAgdGl0bGU9e25leHRQcm9wcy50aXRsZSA/PyBvcHRpb25zLnRpdGxlfVxuICAgICAgICAgICAgYXNzZXRzPXthc3NldHN9XG4gICAgICAgICAgICByb290SWQ9e29wdGlvbnMucm9vdElkfVxuICAgICAgICAgICAgbm9uY2U9e3Byb3BzLm5vbmNlfVxuICAgICAgICAgICAgY3NQb2xpY3k9e29wdGlvbnMuY3NQb2xpY3l9XG4gICAgICAgICAgICBzY3JpcHRzPXtuZXh0UHJvcHMuc2NyaXB0c31cbiAgICAgICAgICA+XG4gICAgICAgICAgICB7bmV4dFByb3BzLmFwcH1cbiAgICAgICAgICA8L0RvY3VtZW50PlxuICAgICAgICApLFxuICAgICAgfTtcbiAgICB9O1xuICB9O1xufVxuXG5mdW5jdGlvbiBjaGlsZHJlbkFzc2V0cyhjaHVuazogU3RhdHNDaHVua0dyb3VwKSB7XG4gIHJldHVybiBjaHVuay5jaGlsZHJlblxuICAgID8gT2JqZWN0LnZhbHVlcyhjaHVuay5jaGlsZHJlbikuZmxhdE1hcChwcmVsb2FkID0+XG4gICAgICAgIHByZWxvYWQuZmxhdE1hcChjID0+IGMuYXNzZXRzID8/IFtdKSxcbiAgICAgIClcbiAgICA6IFtdO1xufVxuIl0sIm1hcHBpbmdzIjoiOzs7Ozs7O0FBQUE7O0FBTUE7O0FBUWUsU0FBU0EsYUFBVCxDQUF1QkMsT0FBdkIsRUFNWjtFQUNELE9BQU8sVUFDTEMsSUFESyxFQUVMO0lBQ0EsT0FBTyxNQUFPQyxLQUFQLElBQThCO01BQUE7O01BQ25DLE1BQU1DLFNBQVMsR0FBRyxNQUFNRixJQUFJLENBQUNDLEtBQUQsQ0FBNUI7TUFFQSxNQUFNRSxVQUFVLEdBQUdGLEtBQUssQ0FBQ0csY0FBTixDQUFxQkQsVUFBeEM7TUFFQSxJQUNFRSxNQUFNLENBQUNDLElBQVAsb0RBQVlMLEtBQUssQ0FBQ0csY0FBbEIsMkRBQVksdUJBQXNCRyxXQUFsQyxvQ0FBaUQsRUFBakQsRUFBcURDLE1BQXJELEdBQThELENBQTlELElBQ0FMLFVBQVUsS0FBS00sU0FGakIsRUFJRSxNQUFNLElBQUlDLEtBQUosQ0FBVSxpQ0FBVixDQUFOLENBVGlDLENBV25DO01BQ0E7O01BQ0EsTUFBTUMsUUFBUSxHQUFJQyxNQUFELElBQ2ZBLE1BQU0sQ0FBQ0MsR0FBUCxDQUFXLENBQUM7UUFBRUM7TUFBRixDQUFELEtBQWUsR0FBRVgsVUFBVyxHQUFFVyxJQUFLLEVBQTlDLENBREY7O01BR0EsTUFBTUMsU0FBbUIsR0FBRyxFQUE1QjtNQUNBVixNQUFNLENBQUNXLE1BQVAscURBQWNmLEtBQUssQ0FBQ0csY0FBcEIsMkRBQWMsdUJBQXNCRyxXQUFwQyxxQ0FBbUQsRUFBbkQsRUFBdURVLE9BQXZELENBQ0VDLFVBQVUsSUFBSTtRQUFBOztRQUNaSCxTQUFTLENBQUNJLElBQVYsQ0FBZSxHQUFHUixRQUFRLHVCQUFDTyxVQUFVLENBQUNOLE1BQVosaUNBQXNCLEVBQXRCLENBQTFCO01BQ0QsQ0FISDtNQUtBLElBQUlRLEdBQUosQ0FDRVQsUUFBUSxDQUNOTixNQUFNLENBQUNXLE1BQVAsMkJBQWNmLEtBQUssQ0FBQ0csY0FBTixDQUFxQmlCLGdCQUFuQyxxQ0FBdUQsRUFBdkQsRUFDR0MsTUFESCxDQUNVLENBQUM7UUFBRVI7TUFBRixDQUFELEtBQ05aLFNBQVMsQ0FBQ3FCLGFBQVYsQ0FBd0JDLElBQXhCLENBQTZCQyxLQUFLLElBQUlYLElBQUosYUFBSUEsSUFBSix1QkFBSUEsSUFBSSxDQUFFWSxRQUFOLENBQWVELEtBQUssQ0FBQ1gsSUFBckIsQ0FBdEMsQ0FGSixFQUlHYSxPQUpILENBSVdDLEtBQUs7UUFBQTs7UUFBQSxPQUFJLENBQ2hCLHFCQUFJQSxLQUFLLENBQUNoQixNQUFWLDRCQUFvQixFQUFwQixDQURnQixFQUVoQjtRQUNBLEdBQUdpQixjQUFjLENBQUNELEtBQUQsQ0FIRCxDQUFKO01BQUEsQ0FKaEIsQ0FETSxDQURWLEVBWUVYLE9BWkYsQ0FZVWEsS0FBSyxJQUFJZixTQUFTLENBQUNJLElBQVYsQ0FBZVcsS0FBZixDQVpuQixFQXRCbUMsQ0FvQ25DOztNQUNBLE1BQU1sQixNQUlILEdBQUdHLFNBQVMsQ0FDWk8sTUFERyxDQUNJUSxLQUFLLElBQUksQ0FBQ0EsS0FBSyxDQUFDQyxRQUFOLENBQWUsZ0JBQWYsQ0FEZCxFQUVIbEIsR0FGRyxDQUVDaUIsS0FBSyxJQUNSQSxLQUFLLENBQUNDLFFBQU4sQ0FBZSxNQUFmLElBQ0k7UUFBRUMsSUFBSSxFQUFFRixLQUFSO1FBQWVHLEdBQUcsRUFBRTtNQUFwQixDQURKLEdBRUlILEtBQUssQ0FBQ0MsUUFBTixDQUFlLEtBQWYsSUFDQTtRQUFFQyxJQUFJLEVBQUVGLEtBQVI7UUFBZUksRUFBRSxFQUFFO01BQW5CLENBREEsR0FFQTtRQUFFRixJQUFJLEVBQUVGO01BQVIsQ0FQRixDQUpOO01BY0EsT0FBTyxFQUNMLEdBQUc1QixTQURFO1FBRUxpQyxHQUFHLGVBQ0QsNkJBQUMsMEJBQUQsT0FDTXBDLE9BRE47VUFFRSxLQUFLLHNCQUFFRyxTQUFTLENBQUNrQyxLQUFaLCtCQUFxQnJDLE9BQU8sQ0FBQ3FDLEtBRnBDO1VBR0UsTUFBTSxFQUFFeEIsTUFIVjtVQUlFLE1BQU0sRUFBRWIsT0FBTyxDQUFDc0MsTUFKbEI7VUFLRSxLQUFLLEVBQUVwQyxLQUFLLENBQUNxQyxLQUxmO1VBTUUsUUFBUSxFQUFFdkMsT0FBTyxDQUFDd0MsUUFOcEI7VUFPRSxPQUFPLEVBQUVyQyxTQUFTLENBQUNzQztRQVByQixHQVNHdEMsU0FBUyxDQUFDaUMsR0FUYjtNQUhHLENBQVA7SUFnQkQsQ0FuRUQ7RUFvRUQsQ0F2RUQ7QUF3RUQ7O0FBRUQsU0FBU04sY0FBVCxDQUF3QkQsS0FBeEIsRUFBZ0Q7RUFDOUMsT0FBT0EsS0FBSyxDQUFDYSxRQUFOLEdBQ0hwQyxNQUFNLENBQUNXLE1BQVAsQ0FBY1ksS0FBSyxDQUFDYSxRQUFwQixFQUE4QmQsT0FBOUIsQ0FBc0NlLE9BQU8sSUFDM0NBLE9BQU8sQ0FBQ2YsT0FBUixDQUFnQmdCLENBQUM7SUFBQTs7SUFBQSxvQkFBSUEsQ0FBQyxDQUFDL0IsTUFBTix3QkFBZ0IsRUFBaEI7RUFBQSxDQUFqQixDQURGLENBREcsR0FJSCxFQUpKO0FBS0QifQ==
@@ -0,0 +1,5 @@
1
+ import type { ResolveProps } from './types';
2
+ export default function JSONSpout({ id, }?: {
3
+ id?: string;
4
+ }): <T extends ResolveProps>(next: (initData: Record<string, unknown>) => Promise<T>) => () => Promise<T>;
5
+ //# sourceMappingURL=json.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"json.d.ts","sourceRoot":"","sources":["../../src/spouts/json.tsx"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AAI5C,MAAM,CAAC,OAAO,UAAU,SAAS,CAAC,EAChC,EAAkB,GACnB,GAAE;IAAE,EAAE,CAAC,EAAE,MAAM,CAAA;CAAO,6CAEF,OAAO,MAAM,EAAE,OAAO,CAAC,qCAS3C"}
@@ -0,0 +1,22 @@
1
+ "use strict";
2
+
3
+ exports.__esModule = true;
4
+ exports.default = JSONSpout;
5
+
6
+ function JSONSpout({
7
+ id = 'anansi-json'
8
+ } = {}) {
9
+ return function (next) {
10
+ return async () => {
11
+ const initData = getDatafromDOM(id);
12
+ const nextProps = await next(initData);
13
+ return nextProps;
14
+ };
15
+ };
16
+ }
17
+
18
+ function getDatafromDOM(id) {
19
+ const element = document.querySelector(`#${id}`);
20
+ return element !== null && element !== void 0 && element.innerHTML ? JSON.parse(element === null || element === void 0 ? void 0 : element.innerHTML) : undefined;
21
+ }
22
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJKU09OU3BvdXQiLCJpZCIsIm5leHQiLCJpbml0RGF0YSIsImdldERhdGFmcm9tRE9NIiwibmV4dFByb3BzIiwiZWxlbWVudCIsImRvY3VtZW50IiwicXVlcnlTZWxlY3RvciIsImlubmVySFRNTCIsIkpTT04iLCJwYXJzZSIsInVuZGVmaW5lZCJdLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9zcG91dHMvanNvbi50c3giXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IFJlYWN0IGZyb20gJ3JlYWN0JztcbmltcG9ydCB0eXBlIHsgUm91dGUgfSBmcm9tICdAYW5hbnNpL3JvdXRlcic7XG5cbmltcG9ydCB0eXBlIHsgUmVzb2x2ZVByb3BzIH0gZnJvbSAnLi90eXBlcyc7XG5cbnR5cGUgTmVlZGVkUHJvcHMgPSBSZXNvbHZlUHJvcHM7XG5cbmV4cG9ydCBkZWZhdWx0IGZ1bmN0aW9uIEpTT05TcG91dCh7XG4gIGlkID0gJ2FuYW5zaS1qc29uJyxcbn06IHsgaWQ/OiBzdHJpbmcgfSA9IHt9KSB7XG4gIHJldHVybiBmdW5jdGlvbiA8VCBleHRlbmRzIE5lZWRlZFByb3BzPihcbiAgICBuZXh0OiAoaW5pdERhdGE6IFJlY29yZDxzdHJpbmcsIHVua25vd24+KSA9PiBQcm9taXNlPFQ+LFxuICApIHtcbiAgICByZXR1cm4gYXN5bmMgKCkgPT4ge1xuICAgICAgY29uc3QgaW5pdERhdGEgPSBnZXREYXRhZnJvbURPTShpZCk7XG4gICAgICBjb25zdCBuZXh0UHJvcHMgPSBhd2FpdCBuZXh0KGluaXREYXRhKTtcblxuICAgICAgcmV0dXJuIG5leHRQcm9wcztcbiAgICB9O1xuICB9O1xufVxuZnVuY3Rpb24gZ2V0RGF0YWZyb21ET00oaWQ6IHN0cmluZyk6IFJlY29yZDxzdHJpbmcsIHVua25vd24+IHtcbiAgY29uc3QgZWxlbWVudCA9IGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoYCMke2lkfWApO1xuICByZXR1cm4gZWxlbWVudD8uaW5uZXJIVE1MID8gSlNPTi5wYXJzZShlbGVtZW50Py5pbm5lckhUTUwpIDogdW5kZWZpbmVkO1xufVxuIl0sIm1hcHBpbmdzIjoiOzs7OztBQU9lLFNBQVNBLFNBQVQsQ0FBbUI7RUFDaENDLEVBQUUsR0FBRztBQUQyQixJQUViLEVBRk4sRUFFVTtFQUN2QixPQUFPLFVBQ0xDLElBREssRUFFTDtJQUNBLE9BQU8sWUFBWTtNQUNqQixNQUFNQyxRQUFRLEdBQUdDLGNBQWMsQ0FBQ0gsRUFBRCxDQUEvQjtNQUNBLE1BQU1JLFNBQVMsR0FBRyxNQUFNSCxJQUFJLENBQUNDLFFBQUQsQ0FBNUI7TUFFQSxPQUFPRSxTQUFQO0lBQ0QsQ0FMRDtFQU1ELENBVEQ7QUFVRDs7QUFDRCxTQUFTRCxjQUFULENBQXdCSCxFQUF4QixFQUE2RDtFQUMzRCxNQUFNSyxPQUFPLEdBQUdDLFFBQVEsQ0FBQ0MsYUFBVCxDQUF3QixJQUFHUCxFQUFHLEVBQTlCLENBQWhCO0VBQ0EsT0FBT0ssT0FBTyxTQUFQLElBQUFBLE9BQU8sV0FBUCxJQUFBQSxPQUFPLENBQUVHLFNBQVQsR0FBcUJDLElBQUksQ0FBQ0MsS0FBTCxDQUFXTCxPQUFYLGFBQVdBLE9BQVgsdUJBQVdBLE9BQU8sQ0FBRUcsU0FBcEIsQ0FBckIsR0FBc0RHLFNBQTdEO0FBQ0QifQ==
@@ -0,0 +1,13 @@
1
+ import React from 'react';
2
+ import type { ServerProps, ResolveProps } from './types';
3
+ declare type NeededProps = {
4
+ initData?: Record<string, () => unknown>;
5
+ scripts?: React.ReactNode[];
6
+ } & ResolveProps;
7
+ export default function JSONSpout({ id, }?: {
8
+ id?: string;
9
+ }): <T extends NeededProps>(next: (props: ServerProps) => Promise<T>) => (props: ServerProps) => Promise<T & {
10
+ scripts: React.ReactNode[];
11
+ }>;
12
+ export {};
13
+ //# sourceMappingURL=json.server.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"json.server.d.ts","sourceRoot":"","sources":["../../src/spouts/json.server.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAI1B,OAAO,KAAK,EAAE,WAAW,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AAIzD,aAAK,WAAW,GAAG;IACjB,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,OAAO,CAAC,CAAC;IACzC,OAAO,CAAC,EAAE,KAAK,CAAC,SAAS,EAAE,CAAC;CAC7B,GAAG,YAAY,CAAC;AAEjB,MAAM,CAAC,OAAO,UAAU,SAAS,CAAC,EAChC,EAAkB,GACnB,GAAE;IAAE,EAAE,CAAC,EAAE,MAAM,CAAA;CAAO,yCAEL,WAAW,4BAEJ,WAAW;;GAyDnC"}
@@ -0,0 +1,74 @@
1
+ "use strict";
2
+
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault").default;
4
+
5
+ exports.__esModule = true;
6
+ exports.default = JSONSpout;
7
+
8
+ var _jsx2 = _interopRequireDefault(require("@babel/runtime/helpers/jsx"));
9
+
10
+ var _react = _interopRequireDefault(require("react"));
11
+
12
+ function JSONSpout({
13
+ id = 'anansi-json'
14
+ } = {}) {
15
+ return function (next) {
16
+ return async props => {
17
+ var _nextProps$scripts;
18
+
19
+ const nextProps = await next(props);
20
+ const scripts = (_nextProps$scripts = nextProps.scripts) != null ? _nextProps$scripts : [];
21
+ /*
22
+ Object.entries(nextProps.initData ?? {}).forEach(([key, data]) => {
23
+ try {
24
+ const encoded = JSON.stringify(data);
25
+ scripts.push(
26
+ <script
27
+ key={key}
28
+ id={`${id}-${key}`}
29
+ type="application/json"
30
+ dangerouslySetInnerHTML={{
31
+ __html: encoded,
32
+ }}
33
+ nonce={props.nonce}
34
+ />,
35
+ );
36
+ } catch (e) {
37
+ // TODO: Use unified logging
38
+ console.error(e);
39
+ }
40
+ });*/
41
+
42
+ const Script = () => {
43
+ try {
44
+ var _nextProps$initData;
45
+
46
+ const data = {};
47
+ Object.entries((_nextProps$initData = nextProps.initData) != null ? _nextProps$initData : {}).forEach(([key, getData]) => {
48
+ data[key] = getData();
49
+ });
50
+ const encoded = JSON.stringify(data);
51
+ return /*#__PURE__*/(0, _jsx2.default)("script", {
52
+ id: id,
53
+ type: "application/json",
54
+ dangerouslySetInnerHTML: {
55
+ __html: encoded
56
+ },
57
+ nonce: props.nonce
58
+ }, id);
59
+ } catch (e) {
60
+ // TODO: Use unified logging
61
+ console.error('Error serializing json');
62
+ console.error(e);
63
+ return null;
64
+ }
65
+ };
66
+
67
+ scripts.push( /*#__PURE__*/(0, _jsx2.default)(Script, {}));
68
+ return { ...nextProps,
69
+ scripts
70
+ };
71
+ };
72
+ };
73
+ }
74
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJKU09OU3BvdXQiLCJpZCIsIm5leHQiLCJwcm9wcyIsIm5leHRQcm9wcyIsInNjcmlwdHMiLCJTY3JpcHQiLCJkYXRhIiwiT2JqZWN0IiwiZW50cmllcyIsImluaXREYXRhIiwiZm9yRWFjaCIsImtleSIsImdldERhdGEiLCJlbmNvZGVkIiwiSlNPTiIsInN0cmluZ2lmeSIsIl9faHRtbCIsIm5vbmNlIiwiZSIsImNvbnNvbGUiLCJlcnJvciIsInB1c2giXSwic291cmNlcyI6WyIuLi8uLi9zcmMvc3BvdXRzL2pzb24uc2VydmVyLnRzeCJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgUmVhY3QgZnJvbSAncmVhY3QnO1xuaW1wb3J0IHR5cGUgeyBSb3V0ZSB9IGZyb20gJ0BhbmFuc2kvcm91dGVyJztcbmltcG9ydCB7IFN0YXRzQ2h1bmtHcm91cCB9IGZyb20gJ3dlYnBhY2snO1xuXG5pbXBvcnQgdHlwZSB7IFNlcnZlclByb3BzLCBSZXNvbHZlUHJvcHMgfSBmcm9tICcuL3R5cGVzJztcbmltcG9ydCB0eXBlIHsgUG9saWN5IH0gZnJvbSAnLi9jc3AnO1xuaW1wb3J0IERvY3VtZW50IGZyb20gJy4vRG9jdW1lbnRDb21wb25lbnQnO1xuXG50eXBlIE5lZWRlZFByb3BzID0ge1xuICBpbml0RGF0YT86IFJlY29yZDxzdHJpbmcsICgpID0+IHVua25vd24+O1xuICBzY3JpcHRzPzogUmVhY3QuUmVhY3ROb2RlW107XG59ICYgUmVzb2x2ZVByb3BzO1xuXG5leHBvcnQgZGVmYXVsdCBmdW5jdGlvbiBKU09OU3BvdXQoe1xuICBpZCA9ICdhbmFuc2ktanNvbicsXG59OiB7IGlkPzogc3RyaW5nIH0gPSB7fSkge1xuICByZXR1cm4gZnVuY3Rpb24gPFQgZXh0ZW5kcyBOZWVkZWRQcm9wcz4oXG4gICAgbmV4dDogKHByb3BzOiBTZXJ2ZXJQcm9wcykgPT4gUHJvbWlzZTxUPixcbiAgKSB7XG4gICAgcmV0dXJuIGFzeW5jIChwcm9wczogU2VydmVyUHJvcHMpID0+IHtcbiAgICAgIGNvbnN0IG5leHRQcm9wcyA9IGF3YWl0IG5leHQocHJvcHMpO1xuXG4gICAgICBjb25zdCBzY3JpcHRzOiBSZWFjdC5SZWFjdE5vZGVbXSA9IG5leHRQcm9wcy5zY3JpcHRzID8/IFtdO1xuICAgICAgLypcbiAgICAgIE9iamVjdC5lbnRyaWVzKG5leHRQcm9wcy5pbml0RGF0YSA/PyB7fSkuZm9yRWFjaCgoW2tleSwgZGF0YV0pID0+IHtcbiAgICAgICAgdHJ5IHtcbiAgICAgICAgICBjb25zdCBlbmNvZGVkID0gSlNPTi5zdHJpbmdpZnkoZGF0YSk7XG4gICAgICAgICAgc2NyaXB0cy5wdXNoKFxuICAgICAgICAgICAgPHNjcmlwdFxuICAgICAgICAgICAgICBrZXk9e2tleX1cbiAgICAgICAgICAgICAgaWQ9e2Ake2lkfS0ke2tleX1gfVxuICAgICAgICAgICAgICB0eXBlPVwiYXBwbGljYXRpb24vanNvblwiXG4gICAgICAgICAgICAgIGRhbmdlcm91c2x5U2V0SW5uZXJIVE1MPXt7XG4gICAgICAgICAgICAgICAgX19odG1sOiBlbmNvZGVkLFxuICAgICAgICAgICAgICB9fVxuICAgICAgICAgICAgICBub25jZT17cHJvcHMubm9uY2V9XG4gICAgICAgICAgICAvPixcbiAgICAgICAgICApO1xuICAgICAgICB9IGNhdGNoIChlKSB7XG4gICAgICAgICAgLy8gVE9ETzogVXNlIHVuaWZpZWQgbG9nZ2luZ1xuICAgICAgICAgIGNvbnNvbGUuZXJyb3IoZSk7XG4gICAgICAgIH1cbiAgICAgIH0pOyovXG4gICAgICBjb25zdCBTY3JpcHQgPSAoKSA9PiB7XG4gICAgICAgIHRyeSB7XG4gICAgICAgICAgY29uc3QgZGF0YTogYW55ID0ge307XG4gICAgICAgICAgT2JqZWN0LmVudHJpZXMobmV4dFByb3BzLmluaXREYXRhID8/IHt9KS5mb3JFYWNoKChba2V5LCBnZXREYXRhXSkgPT4ge1xuICAgICAgICAgICAgZGF0YVtrZXldID0gZ2V0RGF0YSgpO1xuICAgICAgICAgIH0pO1xuICAgICAgICAgIGNvbnN0IGVuY29kZWQgPSBKU09OLnN0cmluZ2lmeShkYXRhKTtcbiAgICAgICAgICByZXR1cm4gKFxuICAgICAgICAgICAgPHNjcmlwdFxuICAgICAgICAgICAgICBrZXk9e2lkfVxuICAgICAgICAgICAgICBpZD17aWR9XG4gICAgICAgICAgICAgIHR5cGU9XCJhcHBsaWNhdGlvbi9qc29uXCJcbiAgICAgICAgICAgICAgZGFuZ2Vyb3VzbHlTZXRJbm5lckhUTUw9e3tcbiAgICAgICAgICAgICAgICBfX2h0bWw6IGVuY29kZWQsXG4gICAgICAgICAgICAgIH19XG4gICAgICAgICAgICAgIG5vbmNlPXtwcm9wcy5ub25jZX1cbiAgICAgICAgICAgIC8+XG4gICAgICAgICAgKTtcbiAgICAgICAgfSBjYXRjaCAoZSkge1xuICAgICAgICAgIC8vIFRPRE86IFVzZSB1bmlmaWVkIGxvZ2dpbmdcbiAgICAgICAgICBjb25zb2xlLmVycm9yKCdFcnJvciBzZXJpYWxpemluZyBqc29uJyk7XG4gICAgICAgICAgY29uc29sZS5lcnJvcihlKTtcbiAgICAgICAgICByZXR1cm4gbnVsbDtcbiAgICAgICAgfVxuICAgICAgfTtcbiAgICAgIHNjcmlwdHMucHVzaCg8U2NyaXB0IC8+KTtcblxuICAgICAgcmV0dXJuIHtcbiAgICAgICAgLi4ubmV4dFByb3BzLFxuICAgICAgICBzY3JpcHRzLFxuICAgICAgfTtcbiAgICB9O1xuICB9O1xufVxuIl0sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7QUFBQTs7QUFhZSxTQUFTQSxTQUFULENBQW1CO0VBQ2hDQyxFQUFFLEdBQUc7QUFEMkIsSUFFYixFQUZOLEVBRVU7RUFDdkIsT0FBTyxVQUNMQyxJQURLLEVBRUw7SUFDQSxPQUFPLE1BQU9DLEtBQVAsSUFBOEI7TUFBQTs7TUFDbkMsTUFBTUMsU0FBUyxHQUFHLE1BQU1GLElBQUksQ0FBQ0MsS0FBRCxDQUE1QjtNQUVBLE1BQU1FLE9BQTBCLHlCQUFHRCxTQUFTLENBQUNDLE9BQWIsaUNBQXdCLEVBQXhEO01BQ0E7QUFDTjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7TUFDTSxNQUFNQyxNQUFNLEdBQUcsTUFBTTtRQUNuQixJQUFJO1VBQUE7O1VBQ0YsTUFBTUMsSUFBUyxHQUFHLEVBQWxCO1VBQ0FDLE1BQU0sQ0FBQ0MsT0FBUCx3QkFBZUwsU0FBUyxDQUFDTSxRQUF6QixrQ0FBcUMsRUFBckMsRUFBeUNDLE9BQXpDLENBQWlELENBQUMsQ0FBQ0MsR0FBRCxFQUFNQyxPQUFOLENBQUQsS0FBb0I7WUFDbkVOLElBQUksQ0FBQ0ssR0FBRCxDQUFKLEdBQVlDLE9BQU8sRUFBbkI7VUFDRCxDQUZEO1VBR0EsTUFBTUMsT0FBTyxHQUFHQyxJQUFJLENBQUNDLFNBQUwsQ0FBZVQsSUFBZixDQUFoQjtVQUNBLG9CQUNFO1lBRUUsRUFBRSxFQUFFTixFQUZOO1lBR0UsSUFBSSxFQUFDLGtCQUhQO1lBSUUsdUJBQXVCLEVBQUU7Y0FDdkJnQixNQUFNLEVBQUVIO1lBRGUsQ0FKM0I7WUFPRSxLQUFLLEVBQUVYLEtBQUssQ0FBQ2U7VUFQZixHQUNPakIsRUFEUCxDQURGO1FBV0QsQ0FqQkQsQ0FpQkUsT0FBT2tCLENBQVAsRUFBVTtVQUNWO1VBQ0FDLE9BQU8sQ0FBQ0MsS0FBUixDQUFjLHdCQUFkO1VBQ0FELE9BQU8sQ0FBQ0MsS0FBUixDQUFjRixDQUFkO1VBQ0EsT0FBTyxJQUFQO1FBQ0Q7TUFDRixDQXhCRDs7TUF5QkFkLE9BQU8sQ0FBQ2lCLElBQVIsZUFBYSxtQkFBQyxNQUFELEtBQWI7TUFFQSxPQUFPLEVBQ0wsR0FBR2xCLFNBREU7UUFFTEM7TUFGSyxDQUFQO0lBSUQsQ0F2REQ7RUF3REQsQ0EzREQ7QUE0REQifQ==
@@ -2,7 +2,7 @@ import { Manager } from '@rest-hooks/core';
2
2
  import type { ResolveProps } from './types';
3
3
  export default function restHooksSpout(options?: {
4
4
  getManagers: () => Manager[];
5
- }): <T extends ResolveProps>(next: () => Promise<T>) => () => Promise<T & {
5
+ }): <T extends ResolveProps>(next: (initData: Record<string, unknown>) => Promise<T>) => (initData: Record<string, unknown>) => Promise<T & {
6
6
  app: JSX.Element;
7
7
  }>;
8
8
  //# sourceMappingURL=restHooks.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"restHooks.d.ts","sourceRoot":"","sources":["../../src/spouts/restHooks.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAiB,OAAO,EAAkB,MAAM,kBAAkB,CAAC;AAG1E,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AAI5C,MAAM,CAAC,OAAO,UAAU,cAAc,CACpC,OAAO,GAAE;IACP,WAAW,EAAE,MAAM,OAAO,EAAE,CAAC;CACkB;;GAmBlD"}
1
+ {"version":3,"file":"restHooks.d.ts","sourceRoot":"","sources":["../../src/spouts/restHooks.tsx"],"names":[],"mappings":"AAAA,OAAO,EAEL,OAAO,EAGR,MAAM,kBAAkB,CAAC;AAE1B,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AAI5C,MAAM,CAAC,OAAO,UAAU,cAAc,CACpC,OAAO,GAAE;IACP,WAAW,EAAE,MAAM,OAAO,EAAE,CAAC;CACkB,6CAG9B,OAAO,MAAM,EAAE,OAAO,CAAC,+BAEhB,OAAO,MAAM,EAAE,OAAO,CAAC;;GAelD"}
@@ -11,24 +11,20 @@ var _react = _interopRequireDefault(require("react"));
11
11
 
12
12
  var _core = require("@rest-hooks/core");
13
13
 
14
- var _ssr = require("@rest-hooks/ssr");
15
-
16
14
  function restHooksSpout(options = {
17
15
  getManagers: () => [new _core.NetworkManager()]
18
16
  }) {
19
17
  return function (next) {
20
- return async () => {
21
- const data = (0, _ssr.getDatafromDOM)();
22
- const nextProps = await next();
18
+ return async initData => {
19
+ const data = initData.resthooks;
20
+ const nextProps = await next(initData);
23
21
  return { ...nextProps,
24
22
  app: /*#__PURE__*/(0, _jsx2.default)(_core.CacheProvider, {
25
23
  initialState: data,
26
24
  managers: options.getManagers()
27
- }, void 0, nextProps.app, /*#__PURE__*/(0, _jsx2.default)(_ssr.ServerDataComponent, {
28
- data: data
29
- }))
25
+ }, void 0, nextProps.app)
30
26
  };
31
27
  };
32
28
  };
33
29
  }
34
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJyZXN0SG9va3NTcG91dCIsIm9wdGlvbnMiLCJnZXRNYW5hZ2VycyIsIk5ldHdvcmtNYW5hZ2VyIiwibmV4dCIsImRhdGEiLCJnZXREYXRhZnJvbURPTSIsIm5leHRQcm9wcyIsImFwcCJdLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9zcG91dHMvcmVzdEhvb2tzLnRzeCJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDYWNoZVByb3ZpZGVyLCBNYW5hZ2VyLCBOZXR3b3JrTWFuYWdlciB9IGZyb20gJ0ByZXN0LWhvb2tzL2NvcmUnO1xuaW1wb3J0IHsgU2VydmVyRGF0YUNvbXBvbmVudCwgZ2V0RGF0YWZyb21ET00gfSBmcm9tICdAcmVzdC1ob29rcy9zc3InO1xuXG5pbXBvcnQgdHlwZSB7IFJlc29sdmVQcm9wcyB9IGZyb20gJy4vdHlwZXMnO1xuXG50eXBlIE5lZWRlZFByb3BzID0gUmVzb2x2ZVByb3BzO1xuXG5leHBvcnQgZGVmYXVsdCBmdW5jdGlvbiByZXN0SG9va3NTcG91dChcbiAgb3B0aW9uczoge1xuICAgIGdldE1hbmFnZXJzOiAoKSA9PiBNYW5hZ2VyW107XG4gIH0gPSB7IGdldE1hbmFnZXJzOiAoKSA9PiBbbmV3IE5ldHdvcmtNYW5hZ2VyKCldIH0sXG4pIHtcbiAgcmV0dXJuIGZ1bmN0aW9uIDxUIGV4dGVuZHMgTmVlZGVkUHJvcHM+KG5leHQ6ICgpID0+IFByb21pc2U8VD4pIHtcbiAgICByZXR1cm4gYXN5bmMgKCkgPT4ge1xuICAgICAgY29uc3QgZGF0YSA9IGdldERhdGFmcm9tRE9NKCk7XG5cbiAgICAgIGNvbnN0IG5leHRQcm9wcyA9IGF3YWl0IG5leHQoKTtcblxuICAgICAgcmV0dXJuIHtcbiAgICAgICAgLi4ubmV4dFByb3BzLFxuICAgICAgICBhcHA6IChcbiAgICAgICAgICA8Q2FjaGVQcm92aWRlciBpbml0aWFsU3RhdGU9e2RhdGF9IG1hbmFnZXJzPXtvcHRpb25zLmdldE1hbmFnZXJzKCl9PlxuICAgICAgICAgICAge25leHRQcm9wcy5hcHB9XG4gICAgICAgICAgICA8U2VydmVyRGF0YUNvbXBvbmVudCBkYXRhPXtkYXRhfSAvPlxuICAgICAgICAgIDwvQ2FjaGVQcm92aWRlcj5cbiAgICAgICAgKSxcbiAgICAgIH07XG4gICAgfTtcbiAgfTtcbn1cbiJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7QUFBQTs7QUFDQTs7QUFNZSxTQUFTQSxjQUFULENBQ2JDLE9BRUMsR0FBRztFQUFFQyxXQUFXLEVBQUUsTUFBTSxDQUFDLElBQUlDLG9CQUFKLEVBQUQ7QUFBckIsQ0FIUyxFQUliO0VBQ0EsT0FBTyxVQUFpQ0MsSUFBakMsRUFBeUQ7SUFDOUQsT0FBTyxZQUFZO01BQ2pCLE1BQU1DLElBQUksR0FBRyxJQUFBQyxtQkFBQSxHQUFiO01BRUEsTUFBTUMsU0FBUyxHQUFHLE1BQU1ILElBQUksRUFBNUI7TUFFQSxPQUFPLEVBQ0wsR0FBR0csU0FERTtRQUVMQyxHQUFHLGVBQ0QsbUJBQUMsbUJBQUQ7VUFBZSxZQUFZLEVBQUVILElBQTdCO1VBQW1DLFFBQVEsRUFBRUosT0FBTyxDQUFDQyxXQUFSO1FBQTdDLFdBQ0dLLFNBQVMsQ0FBQ0MsR0FEYixlQUVFLG1CQUFDLHdCQUFEO1VBQXFCLElBQUksRUFBRUg7UUFBM0IsRUFGRjtNQUhHLENBQVA7SUFTRCxDQWREO0VBZUQsQ0FoQkQ7QUFpQkQifQ==
30
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJyZXN0SG9va3NTcG91dCIsIm9wdGlvbnMiLCJnZXRNYW5hZ2VycyIsIk5ldHdvcmtNYW5hZ2VyIiwibmV4dCIsImluaXREYXRhIiwiZGF0YSIsInJlc3Rob29rcyIsIm5leHRQcm9wcyIsImFwcCJdLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9zcG91dHMvcmVzdEhvb2tzLnRzeCJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICBDYWNoZVByb3ZpZGVyLFxuICBNYW5hZ2VyLFxuICBOZXR3b3JrTWFuYWdlcixcbiAgU3RhdGUsXG59IGZyb20gJ0ByZXN0LWhvb2tzL2NvcmUnO1xuXG5pbXBvcnQgdHlwZSB7IFJlc29sdmVQcm9wcyB9IGZyb20gJy4vdHlwZXMnO1xuXG50eXBlIE5lZWRlZFByb3BzID0gUmVzb2x2ZVByb3BzO1xuXG5leHBvcnQgZGVmYXVsdCBmdW5jdGlvbiByZXN0SG9va3NTcG91dChcbiAgb3B0aW9uczoge1xuICAgIGdldE1hbmFnZXJzOiAoKSA9PiBNYW5hZ2VyW107XG4gIH0gPSB7IGdldE1hbmFnZXJzOiAoKSA9PiBbbmV3IE5ldHdvcmtNYW5hZ2VyKCldIH0sXG4pIHtcbiAgcmV0dXJuIGZ1bmN0aW9uIDxUIGV4dGVuZHMgTmVlZGVkUHJvcHM+KFxuICAgIG5leHQ6IChpbml0RGF0YTogUmVjb3JkPHN0cmluZywgdW5rbm93bj4pID0+IFByb21pc2U8VD4sXG4gICkge1xuICAgIHJldHVybiBhc3luYyAoaW5pdERhdGE6IFJlY29yZDxzdHJpbmcsIHVua25vd24+KSA9PiB7XG4gICAgICBjb25zdCBkYXRhID0gaW5pdERhdGEucmVzdGhvb2tzIGFzIFN0YXRlPHVua25vd24+O1xuXG4gICAgICBjb25zdCBuZXh0UHJvcHMgPSBhd2FpdCBuZXh0KGluaXREYXRhKTtcblxuICAgICAgcmV0dXJuIHtcbiAgICAgICAgLi4ubmV4dFByb3BzLFxuICAgICAgICBhcHA6IChcbiAgICAgICAgICA8Q2FjaGVQcm92aWRlciBpbml0aWFsU3RhdGU9e2RhdGF9IG1hbmFnZXJzPXtvcHRpb25zLmdldE1hbmFnZXJzKCl9PlxuICAgICAgICAgICAge25leHRQcm9wcy5hcHB9XG4gICAgICAgICAgPC9DYWNoZVByb3ZpZGVyPlxuICAgICAgICApLFxuICAgICAgfTtcbiAgICB9O1xuICB9O1xufVxuIl0sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7OztBQUFBOztBQVdlLFNBQVNBLGNBQVQsQ0FDYkMsT0FFQyxHQUFHO0VBQUVDLFdBQVcsRUFBRSxNQUFNLENBQUMsSUFBSUMsb0JBQUosRUFBRDtBQUFyQixDQUhTLEVBSWI7RUFDQSxPQUFPLFVBQ0xDLElBREssRUFFTDtJQUNBLE9BQU8sTUFBT0MsUUFBUCxJQUE2QztNQUNsRCxNQUFNQyxJQUFJLEdBQUdELFFBQVEsQ0FBQ0UsU0FBdEI7TUFFQSxNQUFNQyxTQUFTLEdBQUcsTUFBTUosSUFBSSxDQUFDQyxRQUFELENBQTVCO01BRUEsT0FBTyxFQUNMLEdBQUdHLFNBREU7UUFFTEMsR0FBRyxlQUNELG1CQUFDLG1CQUFEO1VBQWUsWUFBWSxFQUFFSCxJQUE3QjtVQUFtQyxRQUFRLEVBQUVMLE9BQU8sQ0FBQ0MsV0FBUjtRQUE3QyxXQUNHTSxTQUFTLENBQUNDLEdBRGI7TUFIRyxDQUFQO0lBUUQsQ0FiRDtFQWNELENBakJEO0FBa0JEIn0=
@@ -1,9 +1,49 @@
1
1
  import { Manager } from '@rest-hooks/core';
2
2
  import type { ResolveProps, ServerProps } from './types';
3
+ declare type NeededProps = {
4
+ initData?: Record<string, () => unknown>;
5
+ } & ResolveProps;
3
6
  export default function restHooksSpout(options?: {
4
7
  getManagers: () => Manager[];
5
- }): <T extends ResolveProps>(next: (props: ServerProps) => Promise<T>) => (props: ServerProps) => Promise<T & {
8
+ }): <T extends NeededProps>(next: (props: ServerProps) => Promise<T>) => (props: ServerProps) => Promise<T & {
6
9
  controller: import("@rest-hooks/core").Controller;
10
+ initData: {
11
+ resthooks: () => Readonly<{
12
+ entities: {
13
+ readonly [entityKey: string]: {
14
+ readonly [pk: string]: unknown;
15
+ } | undefined;
16
+ };
17
+ indexes: import("@rest-hooks/normalizr").NormalizedIndex;
18
+ results: {
19
+ readonly [key: string]: unknown;
20
+ };
21
+ meta: {
22
+ readonly [key: string]: {
23
+ readonly date: number;
24
+ readonly error?: import("@rest-hooks/endpoint").ErrorTypes | undefined;
25
+ readonly expiresAt: number;
26
+ readonly prevExpiresAt?: number | undefined;
27
+ readonly invalidated?: boolean | undefined;
28
+ readonly errorPolicy?: "soft" | undefined;
29
+ };
30
+ };
31
+ entityMeta: {
32
+ readonly [entityKey: string]: {
33
+ readonly [pk: string]: {
34
+ readonly date: number;
35
+ readonly expiresAt: number;
36
+ readonly fetchedAt: number;
37
+ };
38
+ };
39
+ };
40
+ optimistic: (import("@rest-hooks/core").OptimisticAction<import("@rest-hooks/core").EndpointInterface<import("@rest-hooks/core").FetchFunction<any, any, any>, import("@rest-hooks/core").Schema | undefined, true | undefined> & {
41
+ update?: import("@rest-hooks/core").EndpointUpdateFunction<import("@rest-hooks/core").EndpointInterface<import("@rest-hooks/core").FetchFunction<any, any, any>, import("@rest-hooks/core").Schema | undefined, true | undefined>, Record<string, any>> | undefined;
42
+ }> | import("@rest-hooks/core").ReceiveAction<string | number | object | null, any>)[];
43
+ lastReset: number | Date;
44
+ }>;
45
+ };
7
46
  app: JSX.Element;
8
47
  }>;
48
+ export {};
9
49
  //# sourceMappingURL=restHooks.server.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"restHooks.server.d.ts","sourceRoot":"","sources":["../../src/spouts/restHooks.server.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAkB,MAAM,kBAAkB,CAAC;AAG3D,OAAO,KAAK,EAAE,YAAY,EAAE,WAAW,EAAE,MAAM,SAAS,CAAC;AAIzD,MAAM,CAAC,OAAO,UAAU,cAAc,CACpC,OAAO,GAAE;IACP,WAAW,EAAE,MAAM,OAAO,EAAE,CAAC;CACkB,0CAGjC,WAAW,4BAEJ,WAAW;;;GAcnC"}
1
+ {"version":3,"file":"restHooks.server.d.ts","sourceRoot":"","sources":["../../src/spouts/restHooks.server.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAkB,MAAM,kBAAkB,CAAC;AAG3D,OAAO,KAAK,EAAE,YAAY,EAAE,WAAW,EAAE,MAAM,SAAS,CAAC;AAEzD,aAAK,WAAW,GAAG;IAAE,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,OAAO,CAAC,CAAA;CAAE,GAAG,YAAY,CAAC;AAE/E,MAAM,CAAC,OAAO,UAAU,cAAc,CACpC,OAAO,GAAE;IACP,WAAW,EAAE,MAAM,OAAO,EAAE,CAAC;CACkB,yCAGjC,WAAW,4BAEJ,WAAW;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAkBnC"}
@@ -11,20 +11,23 @@ var _react = _interopRequireDefault(require("react"));
11
11
 
12
12
  var _core = require("@rest-hooks/core");
13
13
 
14
- var _ssr = require("@rest-hooks/ssr");
14
+ var _rhHelp = require("./rhHelp");
15
15
 
16
16
  function restHooksSpout(options = {
17
17
  getManagers: () => [new _core.NetworkManager()]
18
18
  }) {
19
19
  return function (next) {
20
20
  return async props => {
21
- const [ServerCacheProvider, controller] = (0, _ssr.createPersistedStore)(options.getManagers());
21
+ const [ServerCacheProvider, controller, store] = (0, _rhHelp.createPersistedStore)(options.getManagers());
22
22
  const nextProps = await next(props);
23
23
  return { ...nextProps,
24
24
  controller,
25
+ initData: { ...nextProps.initData,
26
+ resthooks: () => store.getState()
27
+ },
25
28
  app: /*#__PURE__*/(0, _jsx2.default)(ServerCacheProvider, {}, void 0, nextProps.app)
26
29
  };
27
30
  };
28
31
  };
29
32
  }
30
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJyZXN0SG9va3NTcG91dCIsIm9wdGlvbnMiLCJnZXRNYW5hZ2VycyIsIk5ldHdvcmtNYW5hZ2VyIiwibmV4dCIsInByb3BzIiwiU2VydmVyQ2FjaGVQcm92aWRlciIsImNvbnRyb2xsZXIiLCJjcmVhdGVQZXJzaXN0ZWRTdG9yZSIsIm5leHRQcm9wcyIsImFwcCJdLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9zcG91dHMvcmVzdEhvb2tzLnNlcnZlci50c3giXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgTWFuYWdlciwgTmV0d29ya01hbmFnZXIgfSBmcm9tICdAcmVzdC1ob29rcy9jb3JlJztcbmltcG9ydCB7IGNyZWF0ZVBlcnNpc3RlZFN0b3JlIH0gZnJvbSAnQHJlc3QtaG9va3Mvc3NyJztcblxuaW1wb3J0IHR5cGUgeyBSZXNvbHZlUHJvcHMsIFNlcnZlclByb3BzIH0gZnJvbSAnLi90eXBlcyc7XG5cbnR5cGUgTmVlZGVkUHJvcHMgPSBSZXNvbHZlUHJvcHM7XG5cbmV4cG9ydCBkZWZhdWx0IGZ1bmN0aW9uIHJlc3RIb29rc1Nwb3V0KFxuICBvcHRpb25zOiB7XG4gICAgZ2V0TWFuYWdlcnM6ICgpID0+IE1hbmFnZXJbXTtcbiAgfSA9IHsgZ2V0TWFuYWdlcnM6ICgpID0+IFtuZXcgTmV0d29ya01hbmFnZXIoKV0gfSxcbikge1xuICByZXR1cm4gZnVuY3Rpb24gPFQgZXh0ZW5kcyBOZWVkZWRQcm9wcz4oXG4gICAgbmV4dDogKHByb3BzOiBTZXJ2ZXJQcm9wcykgPT4gUHJvbWlzZTxUPixcbiAgKSB7XG4gICAgcmV0dXJuIGFzeW5jIChwcm9wczogU2VydmVyUHJvcHMpID0+IHtcbiAgICAgIGNvbnN0IFtTZXJ2ZXJDYWNoZVByb3ZpZGVyLCBjb250cm9sbGVyXSA9IGNyZWF0ZVBlcnNpc3RlZFN0b3JlKFxuICAgICAgICBvcHRpb25zLmdldE1hbmFnZXJzKCksXG4gICAgICApO1xuXG4gICAgICBjb25zdCBuZXh0UHJvcHMgPSBhd2FpdCBuZXh0KHByb3BzKTtcblxuICAgICAgcmV0dXJuIHtcbiAgICAgICAgLi4ubmV4dFByb3BzLFxuICAgICAgICBjb250cm9sbGVyLFxuICAgICAgICBhcHA6IDxTZXJ2ZXJDYWNoZVByb3ZpZGVyPntuZXh0UHJvcHMuYXBwfTwvU2VydmVyQ2FjaGVQcm92aWRlcj4sXG4gICAgICB9O1xuICAgIH07XG4gIH07XG59XG4iXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7O0FBQUE7O0FBQ0E7O0FBTWUsU0FBU0EsY0FBVCxDQUNiQyxPQUVDLEdBQUc7RUFBRUMsV0FBVyxFQUFFLE1BQU0sQ0FBQyxJQUFJQyxvQkFBSixFQUFEO0FBQXJCLENBSFMsRUFJYjtFQUNBLE9BQU8sVUFDTEMsSUFESyxFQUVMO0lBQ0EsT0FBTyxNQUFPQyxLQUFQLElBQThCO01BQ25DLE1BQU0sQ0FBQ0MsbUJBQUQsRUFBc0JDLFVBQXRCLElBQW9DLElBQUFDLHlCQUFBLEVBQ3hDUCxPQUFPLENBQUNDLFdBQVIsRUFEd0MsQ0FBMUM7TUFJQSxNQUFNTyxTQUFTLEdBQUcsTUFBTUwsSUFBSSxDQUFDQyxLQUFELENBQTVCO01BRUEsT0FBTyxFQUNMLEdBQUdJLFNBREU7UUFFTEYsVUFGSztRQUdMRyxHQUFHLGVBQUUsbUJBQUMsbUJBQUQsY0FBc0JELFNBQVMsQ0FBQ0MsR0FBaEM7TUFIQSxDQUFQO0lBS0QsQ0FaRDtFQWFELENBaEJEO0FBaUJEIn0=
33
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJyZXN0SG9va3NTcG91dCIsIm9wdGlvbnMiLCJnZXRNYW5hZ2VycyIsIk5ldHdvcmtNYW5hZ2VyIiwibmV4dCIsInByb3BzIiwiU2VydmVyQ2FjaGVQcm92aWRlciIsImNvbnRyb2xsZXIiLCJzdG9yZSIsImNyZWF0ZVBlcnNpc3RlZFN0b3JlIiwibmV4dFByb3BzIiwiaW5pdERhdGEiLCJyZXN0aG9va3MiLCJnZXRTdGF0ZSIsImFwcCJdLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9zcG91dHMvcmVzdEhvb2tzLnNlcnZlci50c3giXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgTWFuYWdlciwgTmV0d29ya01hbmFnZXIgfSBmcm9tICdAcmVzdC1ob29rcy9jb3JlJztcblxuaW1wb3J0IHsgY3JlYXRlUGVyc2lzdGVkU3RvcmUgfSBmcm9tICcuL3JoSGVscCc7XG5pbXBvcnQgdHlwZSB7IFJlc29sdmVQcm9wcywgU2VydmVyUHJvcHMgfSBmcm9tICcuL3R5cGVzJztcblxudHlwZSBOZWVkZWRQcm9wcyA9IHsgaW5pdERhdGE/OiBSZWNvcmQ8c3RyaW5nLCAoKSA9PiB1bmtub3duPiB9ICYgUmVzb2x2ZVByb3BzO1xuXG5leHBvcnQgZGVmYXVsdCBmdW5jdGlvbiByZXN0SG9va3NTcG91dChcbiAgb3B0aW9uczoge1xuICAgIGdldE1hbmFnZXJzOiAoKSA9PiBNYW5hZ2VyW107XG4gIH0gPSB7IGdldE1hbmFnZXJzOiAoKSA9PiBbbmV3IE5ldHdvcmtNYW5hZ2VyKCldIH0sXG4pIHtcbiAgcmV0dXJuIGZ1bmN0aW9uIDxUIGV4dGVuZHMgTmVlZGVkUHJvcHM+KFxuICAgIG5leHQ6IChwcm9wczogU2VydmVyUHJvcHMpID0+IFByb21pc2U8VD4sXG4gICkge1xuICAgIHJldHVybiBhc3luYyAocHJvcHM6IFNlcnZlclByb3BzKSA9PiB7XG4gICAgICBjb25zdCBbU2VydmVyQ2FjaGVQcm92aWRlciwgY29udHJvbGxlciwgc3RvcmVdID0gY3JlYXRlUGVyc2lzdGVkU3RvcmUoXG4gICAgICAgIG9wdGlvbnMuZ2V0TWFuYWdlcnMoKSxcbiAgICAgICk7XG5cbiAgICAgIGNvbnN0IG5leHRQcm9wcyA9IGF3YWl0IG5leHQocHJvcHMpO1xuXG4gICAgICByZXR1cm4ge1xuICAgICAgICAuLi5uZXh0UHJvcHMsXG4gICAgICAgIGNvbnRyb2xsZXIsXG4gICAgICAgIGluaXREYXRhOiB7XG4gICAgICAgICAgLi4ubmV4dFByb3BzLmluaXREYXRhLFxuICAgICAgICAgIHJlc3Rob29rczogKCkgPT4gc3RvcmUuZ2V0U3RhdGUoKSxcbiAgICAgICAgfSxcbiAgICAgICAgYXBwOiA8U2VydmVyQ2FjaGVQcm92aWRlcj57bmV4dFByb3BzLmFwcH08L1NlcnZlckNhY2hlUHJvdmlkZXI+LFxuICAgICAgfTtcbiAgICB9O1xuICB9O1xufVxuIl0sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7OztBQUFBOztBQUVBOztBQUtlLFNBQVNBLGNBQVQsQ0FDYkMsT0FFQyxHQUFHO0VBQUVDLFdBQVcsRUFBRSxNQUFNLENBQUMsSUFBSUMsb0JBQUosRUFBRDtBQUFyQixDQUhTLEVBSWI7RUFDQSxPQUFPLFVBQ0xDLElBREssRUFFTDtJQUNBLE9BQU8sTUFBT0MsS0FBUCxJQUE4QjtNQUNuQyxNQUFNLENBQUNDLG1CQUFELEVBQXNCQyxVQUF0QixFQUFrQ0MsS0FBbEMsSUFBMkMsSUFBQUMsNEJBQUEsRUFDL0NSLE9BQU8sQ0FBQ0MsV0FBUixFQUQrQyxDQUFqRDtNQUlBLE1BQU1RLFNBQVMsR0FBRyxNQUFNTixJQUFJLENBQUNDLEtBQUQsQ0FBNUI7TUFFQSxPQUFPLEVBQ0wsR0FBR0ssU0FERTtRQUVMSCxVQUZLO1FBR0xJLFFBQVEsRUFBRSxFQUNSLEdBQUdELFNBQVMsQ0FBQ0MsUUFETDtVQUVSQyxTQUFTLEVBQUUsTUFBTUosS0FBSyxDQUFDSyxRQUFOO1FBRlQsQ0FITDtRQU9MQyxHQUFHLGVBQUUsbUJBQUMsbUJBQUQsY0FBc0JKLFNBQVMsQ0FBQ0ksR0FBaEM7TUFQQSxDQUFQO0lBU0QsQ0FoQkQ7RUFpQkQsQ0FwQkQ7QUFxQkQifQ==
@@ -0,0 +1,40 @@
1
+ import { Controller, Manager } from '@rest-hooks/core';
2
+ export declare function createPersistedStore(managers?: Manager[]): readonly [({ children }: {
3
+ children: React.ReactNode;
4
+ }) => JSX.Element, Controller, import("redux").Store<Readonly<{
5
+ entities: {
6
+ readonly [entityKey: string]: {
7
+ readonly [pk: string]: unknown;
8
+ } | undefined;
9
+ };
10
+ indexes: import("@rest-hooks/normalizr").NormalizedIndex;
11
+ results: {
12
+ readonly [key: string]: unknown;
13
+ };
14
+ meta: {
15
+ readonly [key: string]: {
16
+ readonly date: number;
17
+ readonly error?: import("@rest-hooks/endpoint").ErrorTypes | undefined;
18
+ readonly expiresAt: number;
19
+ readonly prevExpiresAt?: number | undefined;
20
+ readonly invalidated?: boolean | undefined;
21
+ readonly errorPolicy?: "soft" | undefined;
22
+ };
23
+ };
24
+ entityMeta: {
25
+ readonly [entityKey: string]: {
26
+ readonly [pk: string]: {
27
+ readonly date: number;
28
+ readonly expiresAt: number;
29
+ readonly fetchedAt: number;
30
+ };
31
+ };
32
+ };
33
+ optimistic: (import("@rest-hooks/core").OptimisticAction<import("rest-hooks").EndpointInterface<import("rest-hooks").FetchFunction<any, any, any>, import("rest-hooks").Schema | undefined, true | undefined> & {
34
+ update?: import("@rest-hooks/core").EndpointUpdateFunction<import("rest-hooks").EndpointInterface<import("rest-hooks").FetchFunction<any, any, any>, import("rest-hooks").Schema | undefined, true | undefined>, Record<string, any>> | undefined;
35
+ }> | import("rest-hooks").ReceiveAction<string | number | object | null, any>)[];
36
+ lastReset: number | Date;
37
+ }>, import("rest-hooks").ActionTypes> & {
38
+ dispatch: unknown;
39
+ }];
40
+ //# sourceMappingURL=rhHelp.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"rhHelp.d.ts","sourceRoot":"","sources":["../../src/spouts/rhHelp.tsx"],"names":[],"mappings":"AACA,OAAO,EACL,UAAU,EAGV,OAAO,EAGR,MAAM,kBAAkB,CAAC;AAI1B,wBAAgB,oBAAoB,CAAC,QAAQ,CAAC,EAAE,OAAO,EAAE;cAYA,MAAM,SAAS;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAYvE"}
@@ -0,0 +1,47 @@
1
+ "use strict";
2
+
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault").default;
4
+
5
+ exports.__esModule = true;
6
+ exports.createPersistedStore = createPersistedStore;
7
+
8
+ var _jsx2 = _interopRequireDefault(require("@babel/runtime/helpers/jsx"));
9
+
10
+ var _react = _interopRequireDefault(require("react"));
11
+
12
+ var _restHooks = require("rest-hooks");
13
+
14
+ var _core = require("@rest-hooks/core");
15
+
16
+ var _redux = require("redux");
17
+
18
+ // TODO: Rework this and upstream to rest hooks
19
+ function createPersistedStore(managers) {
20
+ var _managers;
21
+
22
+ const controller = new _core.Controller();
23
+ managers = (_managers = managers) != null ? _managers : [new _core.NetworkManager()];
24
+ const reducer = (0, _core.createReducer)(controller);
25
+ const enhancer = (0, _redux.applyMiddleware)(...(0, _core.applyManager)(managers, controller), _restHooks.PromiseifyMiddleware);
26
+ const store = (0, _redux.createStore)(reducer, _core.initialState, enhancer);
27
+ managers.forEach(manager => {
28
+ var _manager$init;
29
+
30
+ return (_manager$init = manager.init) === null || _manager$init === void 0 ? void 0 : _manager$init.call(manager, store.getState());
31
+ });
32
+
33
+ const selector = state => state;
34
+
35
+ function ServerCacheProvider({
36
+ children
37
+ }) {
38
+ return /*#__PURE__*/(0, _jsx2.default)(_restHooks.ExternalCacheProvider, {
39
+ store: store,
40
+ selector: selector,
41
+ controller: controller
42
+ }, void 0, children);
43
+ }
44
+
45
+ return [ServerCacheProvider, controller, store];
46
+ }
47
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJjcmVhdGVQZXJzaXN0ZWRTdG9yZSIsIm1hbmFnZXJzIiwiY29udHJvbGxlciIsIkNvbnRyb2xsZXIiLCJOZXR3b3JrTWFuYWdlciIsInJlZHVjZXIiLCJjcmVhdGVSZWR1Y2VyIiwiZW5oYW5jZXIiLCJhcHBseU1pZGRsZXdhcmUiLCJhcHBseU1hbmFnZXIiLCJQcm9taXNlaWZ5TWlkZGxld2FyZSIsInN0b3JlIiwiY3JlYXRlU3RvcmUiLCJpbml0aWFsU3RhdGUiLCJmb3JFYWNoIiwibWFuYWdlciIsImluaXQiLCJnZXRTdGF0ZSIsInNlbGVjdG9yIiwic3RhdGUiLCJTZXJ2ZXJDYWNoZVByb3ZpZGVyIiwiY2hpbGRyZW4iXSwic291cmNlcyI6WyIuLi8uLi9zcmMvc3BvdXRzL3JoSGVscC50c3giXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRXh0ZXJuYWxDYWNoZVByb3ZpZGVyLCBQcm9taXNlaWZ5TWlkZGxld2FyZSB9IGZyb20gJ3Jlc3QtaG9va3MnO1xuaW1wb3J0IHtcbiAgQ29udHJvbGxlcixcbiAgY3JlYXRlUmVkdWNlcixcbiAgaW5pdGlhbFN0YXRlLFxuICBNYW5hZ2VyLFxuICBhcHBseU1hbmFnZXIsXG4gIE5ldHdvcmtNYW5hZ2VyLFxufSBmcm9tICdAcmVzdC1ob29rcy9jb3JlJztcbmltcG9ydCB7IGNyZWF0ZVN0b3JlLCBhcHBseU1pZGRsZXdhcmUgfSBmcm9tICdyZWR1eCc7XG5cbi8vIFRPRE86IFJld29yayB0aGlzIGFuZCB1cHN0cmVhbSB0byByZXN0IGhvb2tzXG5leHBvcnQgZnVuY3Rpb24gY3JlYXRlUGVyc2lzdGVkU3RvcmUobWFuYWdlcnM/OiBNYW5hZ2VyW10pIHtcbiAgY29uc3QgY29udHJvbGxlciA9IG5ldyBDb250cm9sbGVyKCk7XG4gIG1hbmFnZXJzID0gbWFuYWdlcnMgPz8gW25ldyBOZXR3b3JrTWFuYWdlcigpXTtcbiAgY29uc3QgcmVkdWNlciA9IGNyZWF0ZVJlZHVjZXIoY29udHJvbGxlcik7XG4gIGNvbnN0IGVuaGFuY2VyID0gYXBwbHlNaWRkbGV3YXJlKFxuICAgIC4uLmFwcGx5TWFuYWdlcihtYW5hZ2VycywgY29udHJvbGxlciksXG4gICAgUHJvbWlzZWlmeU1pZGRsZXdhcmUgYXMgYW55LFxuICApO1xuICBjb25zdCBzdG9yZSA9IGNyZWF0ZVN0b3JlKHJlZHVjZXIsIGluaXRpYWxTdGF0ZSBhcyBhbnksIGVuaGFuY2VyKTtcbiAgbWFuYWdlcnMuZm9yRWFjaChtYW5hZ2VyID0+IG1hbmFnZXIuaW5pdD8uKHN0b3JlLmdldFN0YXRlKCkpKTtcblxuICBjb25zdCBzZWxlY3RvciA9IChzdGF0ZTogYW55KSA9PiBzdGF0ZTtcbiAgZnVuY3Rpb24gU2VydmVyQ2FjaGVQcm92aWRlcih7IGNoaWxkcmVuIH06IHsgY2hpbGRyZW46IFJlYWN0LlJlYWN0Tm9kZSB9KSB7XG4gICAgcmV0dXJuIChcbiAgICAgIDxFeHRlcm5hbENhY2hlUHJvdmlkZXJcbiAgICAgICAgc3RvcmU9e3N0b3JlfVxuICAgICAgICBzZWxlY3Rvcj17c2VsZWN0b3J9XG4gICAgICAgIGNvbnRyb2xsZXI9e2NvbnRyb2xsZXJ9XG4gICAgICA+XG4gICAgICAgIHtjaGlsZHJlbn1cbiAgICAgIDwvRXh0ZXJuYWxDYWNoZVByb3ZpZGVyPlxuICAgICk7XG4gIH1cbiAgcmV0dXJuIFtTZXJ2ZXJDYWNoZVByb3ZpZGVyLCBjb250cm9sbGVyLCBzdG9yZV0gYXMgY29uc3Q7XG59XG4iXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7O0FBQUE7O0FBQ0E7O0FBUUE7O0FBRUE7QUFDTyxTQUFTQSxvQkFBVCxDQUE4QkMsUUFBOUIsRUFBb0Q7RUFBQTs7RUFDekQsTUFBTUMsVUFBVSxHQUFHLElBQUlDLGdCQUFKLEVBQW5CO0VBQ0FGLFFBQVEsZ0JBQUdBLFFBQUgsd0JBQWUsQ0FBQyxJQUFJRyxvQkFBSixFQUFELENBQXZCO0VBQ0EsTUFBTUMsT0FBTyxHQUFHLElBQUFDLG1CQUFBLEVBQWNKLFVBQWQsQ0FBaEI7RUFDQSxNQUFNSyxRQUFRLEdBQUcsSUFBQUMsc0JBQUEsRUFDZixHQUFHLElBQUFDLGtCQUFBLEVBQWFSLFFBQWIsRUFBdUJDLFVBQXZCLENBRFksRUFFZlEsK0JBRmUsQ0FBakI7RUFJQSxNQUFNQyxLQUFLLEdBQUcsSUFBQUMsa0JBQUEsRUFBWVAsT0FBWixFQUFxQlEsa0JBQXJCLEVBQTBDTixRQUExQyxDQUFkO0VBQ0FOLFFBQVEsQ0FBQ2EsT0FBVCxDQUFpQkMsT0FBTztJQUFBOztJQUFBLHdCQUFJQSxPQUFPLENBQUNDLElBQVosa0RBQUksbUJBQUFELE9BQU8sRUFBUUosS0FBSyxDQUFDTSxRQUFOLEVBQVIsQ0FBWDtFQUFBLENBQXhCOztFQUVBLE1BQU1DLFFBQVEsR0FBSUMsS0FBRCxJQUFnQkEsS0FBakM7O0VBQ0EsU0FBU0MsbUJBQVQsQ0FBNkI7SUFBRUM7RUFBRixDQUE3QixFQUEwRTtJQUN4RSxvQkFDRSxtQkFBQyxnQ0FBRDtNQUNFLEtBQUssRUFBRVYsS0FEVDtNQUVFLFFBQVEsRUFBRU8sUUFGWjtNQUdFLFVBQVUsRUFBRWhCO0lBSGQsV0FLR21CLFFBTEgsQ0FERjtFQVNEOztFQUNELE9BQU8sQ0FBQ0QsbUJBQUQsRUFBc0JsQixVQUF0QixFQUFrQ1MsS0FBbEMsQ0FBUDtBQUNEIn0=
@@ -6,7 +6,7 @@ export default function routerSpout<ResolveWith>(options: {
6
6
  useResolveWith: () => ResolveWith;
7
7
  createRouter: CreateRouter<ResolveWith>;
8
8
  onChange?: (update: Update, callback: () => void | undefined) => void;
9
- }): <T extends ResolveProps>(next: () => Promise<T>) => () => Promise<T & {
9
+ }): <T extends ResolveProps>(next: (initData: Record<string, unknown>) => Promise<T>) => (initData: Record<string, unknown>) => Promise<T & {
10
10
  matchedRoutes: (Route<ResolveWith, any> & object)[];
11
11
  router: RouteController<Route<ResolveWith, any>>;
12
12
  app: JSX.Element;
@@ -1 +1 @@
1
- {"version":3,"file":"router.d.ts","sourceRoot":"","sources":["../../src/spouts/router.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAiB,eAAe,EAAE,MAAM,gBAAgB,CAAC;AAGvE,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,SAAS,CAAC;AAEtC,OAAO,KAAK,EAAE,YAAY,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AAI1D,MAAM,CAAC,OAAO,UAAU,WAAW,CAAC,WAAW,EAAE,OAAO,EAAE;IACxD,WAAW,CAAC,EAAE,GAAG,CAAC;IAClB,cAAc,EAAE,MAAM,WAAW,CAAC;IAClC,YAAY,EAAE,YAAY,CAAC,WAAW,CAAC,CAAC;IACxC,QAAQ,CAAC,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,IAAI,GAAG,SAAS,KAAK,IAAI,CAAC;CACvE;;;;GAmCA"}
1
+ {"version":3,"file":"router.d.ts","sourceRoot":"","sources":["../../src/spouts/router.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAiB,eAAe,EAAE,MAAM,gBAAgB,CAAC;AAGvE,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,SAAS,CAAC;AAEtC,OAAO,KAAK,EAAE,YAAY,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AAI1D,MAAM,CAAC,OAAO,UAAU,WAAW,CAAC,WAAW,EAAE,OAAO,EAAE;IACxD,WAAW,CAAC,EAAE,GAAG,CAAC;IAClB,cAAc,EAAE,MAAM,WAAW,CAAC;IAClC,YAAY,EAAE,YAAY,CAAC,WAAW,CAAC,CAAC;IACxC,QAAQ,CAAC,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,IAAI,GAAG,SAAS,KAAK,IAAI,CAAC;CACvE,6CAmBoB,OAAO,MAAM,EAAE,OAAO,CAAC,+BAEhB,OAAO,MAAM,EAAE,OAAO,CAAC;;;;GAgBlD"}
@@ -26,11 +26,11 @@ function routerSpout(options) {
26
26
  };
27
27
 
28
28
  return function (next) {
29
- return async () => {
29
+ return async initData => {
30
30
  const history = (0, _history.createBrowserHistory)();
31
31
  const router = options.createRouter(history);
32
32
  const matchedRoutes = router.getMatchedRoutes(history.location.pathname);
33
- const nextProps = await next();
33
+ const nextProps = await next(initData);
34
34
  const Router = createRouteComponent(router);
35
35
  return { ...nextProps,
36
36
  matchedRoutes,
@@ -40,4 +40,4 @@ function routerSpout(options) {
40
40
  };
41
41
  };
42
42
  }
43
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJyb3V0ZXJTcG91dCIsIm9wdGlvbnMiLCJjcmVhdGVSb3V0ZUNvbXBvbmVudCIsInJvdXRlciIsIlJvdXRlciIsImNoaWxkcmVuIiwicmVzb2x2ZVdpdGgiLCJ1c2VSZXNvbHZlV2l0aCIsIm9uQ2hhbmdlIiwibmV4dCIsImhpc3RvcnkiLCJjcmVhdGVCcm93c2VySGlzdG9yeSIsImNyZWF0ZVJvdXRlciIsIm1hdGNoZWRSb3V0ZXMiLCJnZXRNYXRjaGVkUm91dGVzIiwibG9jYXRpb24iLCJwYXRobmFtZSIsIm5leHRQcm9wcyIsImFwcCJdLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9zcG91dHMvcm91dGVyLnRzeCJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBSb3V0ZSwgUm91dGVQcm92aWRlciwgUm91dGVDb250cm9sbGVyIH0gZnJvbSAnQGFuYW5zaS9yb3V0ZXInO1xuaW1wb3J0IFJlYWN0IGZyb20gJ3JlYWN0JztcbmltcG9ydCB7IGNyZWF0ZUJyb3dzZXJIaXN0b3J5IH0gZnJvbSAnaGlzdG9yeSc7XG5pbXBvcnQgdHlwZSB7IFVwZGF0ZSB9IGZyb20gJ2hpc3RvcnknO1xuXG5pbXBvcnQgdHlwZSB7IFJlc29sdmVQcm9wcywgQ3JlYXRlUm91dGVyIH0gZnJvbSAnLi90eXBlcyc7XG5cbnR5cGUgTmVlZGVkUHJvcHMgPSBSZXNvbHZlUHJvcHM7XG5cbmV4cG9ydCBkZWZhdWx0IGZ1bmN0aW9uIHJvdXRlclNwb3V0PFJlc29sdmVXaXRoPihvcHRpb25zOiB7XG4gIHJlc29sdmVXaXRoPzogYW55O1xuICB1c2VSZXNvbHZlV2l0aDogKCkgPT4gUmVzb2x2ZVdpdGg7XG4gIGNyZWF0ZVJvdXRlcjogQ3JlYXRlUm91dGVyPFJlc29sdmVXaXRoPjtcbiAgb25DaGFuZ2U/OiAodXBkYXRlOiBVcGRhdGUsIGNhbGxiYWNrOiAoKSA9PiB2b2lkIHwgdW5kZWZpbmVkKSA9PiB2b2lkO1xufSkge1xuICBjb25zdCBjcmVhdGVSb3V0ZUNvbXBvbmVudCA9IChcbiAgICByb3V0ZXI6IFJvdXRlQ29udHJvbGxlcjxSb3V0ZTxSZXNvbHZlV2l0aCwgYW55Pj4sXG4gICkgPT5cbiAgICBmdW5jdGlvbiBSb3V0ZXIoeyBjaGlsZHJlbiB9OiB7IGNoaWxkcmVuOiBSZWFjdC5SZWFjdE5vZGUgfSkge1xuICAgICAgY29uc3QgcmVzb2x2ZVdpdGggPSBvcHRpb25zLnVzZVJlc29sdmVXaXRoKCk7XG5cbiAgICAgIHJldHVybiAoXG4gICAgICAgIDxSb3V0ZVByb3ZpZGVyXG4gICAgICAgICAgcm91dGVyPXtyb3V0ZXJ9XG4gICAgICAgICAgcmVzb2x2ZVdpdGg9e3Jlc29sdmVXaXRofVxuICAgICAgICAgIG9uQ2hhbmdlPXtvcHRpb25zLm9uQ2hhbmdlfVxuICAgICAgICA+XG4gICAgICAgICAge2NoaWxkcmVufVxuICAgICAgICA8L1JvdXRlUHJvdmlkZXI+XG4gICAgICApO1xuICAgIH07XG5cbiAgcmV0dXJuIGZ1bmN0aW9uIDxUIGV4dGVuZHMgTmVlZGVkUHJvcHM+KG5leHQ6ICgpID0+IFByb21pc2U8VD4pIHtcbiAgICByZXR1cm4gYXN5bmMgKCkgPT4ge1xuICAgICAgY29uc3QgaGlzdG9yeSA9IGNyZWF0ZUJyb3dzZXJIaXN0b3J5KCk7XG4gICAgICBjb25zdCByb3V0ZXIgPSBvcHRpb25zLmNyZWF0ZVJvdXRlcihoaXN0b3J5KTtcbiAgICAgIGNvbnN0IG1hdGNoZWRSb3V0ZXMgPSByb3V0ZXIuZ2V0TWF0Y2hlZFJvdXRlcyhoaXN0b3J5LmxvY2F0aW9uLnBhdGhuYW1lKTtcblxuICAgICAgY29uc3QgbmV4dFByb3BzID0gYXdhaXQgbmV4dCgpO1xuXG4gICAgICBjb25zdCBSb3V0ZXIgPSBjcmVhdGVSb3V0ZUNvbXBvbmVudChyb3V0ZXIpO1xuICAgICAgcmV0dXJuIHtcbiAgICAgICAgLi4ubmV4dFByb3BzLFxuICAgICAgICBtYXRjaGVkUm91dGVzLFxuICAgICAgICByb3V0ZXIsXG4gICAgICAgIGFwcDogPFJvdXRlcj57bmV4dFByb3BzLmFwcH08L1JvdXRlcj4sXG4gICAgICB9O1xuICAgIH07XG4gIH07XG59XG4iXSwibWFwcGluZ3MiOiI7Ozs7Ozs7OztBQUFBOztBQUNBOztBQUNBOztBQU9lLFNBQVNBLFdBQVQsQ0FBa0NDLE9BQWxDLEVBS1o7RUFDRCxNQUFNQyxvQkFBb0IsR0FDeEJDLE1BRDJCLElBRzNCLFNBQVNDLE1BQVQsQ0FBZ0I7SUFBRUM7RUFBRixDQUFoQixFQUE2RDtJQUMzRCxNQUFNQyxXQUFXLEdBQUdMLE9BQU8sQ0FBQ00sY0FBUixFQUFwQjtJQUVBLG9CQUNFLG1CQUFDLHFCQUFEO01BQ0UsTUFBTSxFQUFFSixNQURWO01BRUUsV0FBVyxFQUFFRyxXQUZmO01BR0UsUUFBUSxFQUFFTCxPQUFPLENBQUNPO0lBSHBCLFdBS0dILFFBTEgsQ0FERjtFQVNELENBZkg7O0VBaUJBLE9BQU8sVUFBaUNJLElBQWpDLEVBQXlEO0lBQzlELE9BQU8sWUFBWTtNQUNqQixNQUFNQyxPQUFPLEdBQUcsSUFBQUMsNkJBQUEsR0FBaEI7TUFDQSxNQUFNUixNQUFNLEdBQUdGLE9BQU8sQ0FBQ1csWUFBUixDQUFxQkYsT0FBckIsQ0FBZjtNQUNBLE1BQU1HLGFBQWEsR0FBR1YsTUFBTSxDQUFDVyxnQkFBUCxDQUF3QkosT0FBTyxDQUFDSyxRQUFSLENBQWlCQyxRQUF6QyxDQUF0QjtNQUVBLE1BQU1DLFNBQVMsR0FBRyxNQUFNUixJQUFJLEVBQTVCO01BRUEsTUFBTUwsTUFBTSxHQUFHRixvQkFBb0IsQ0FBQ0MsTUFBRCxDQUFuQztNQUNBLE9BQU8sRUFDTCxHQUFHYyxTQURFO1FBRUxKLGFBRks7UUFHTFYsTUFISztRQUlMZSxHQUFHLGVBQUUsbUJBQUMsTUFBRCxjQUFTRCxTQUFTLENBQUNDLEdBQW5CO01BSkEsQ0FBUDtJQU1ELENBZEQ7RUFlRCxDQWhCRDtBQWlCRCJ9
43
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJyb3V0ZXJTcG91dCIsIm9wdGlvbnMiLCJjcmVhdGVSb3V0ZUNvbXBvbmVudCIsInJvdXRlciIsIlJvdXRlciIsImNoaWxkcmVuIiwicmVzb2x2ZVdpdGgiLCJ1c2VSZXNvbHZlV2l0aCIsIm9uQ2hhbmdlIiwibmV4dCIsImluaXREYXRhIiwiaGlzdG9yeSIsImNyZWF0ZUJyb3dzZXJIaXN0b3J5IiwiY3JlYXRlUm91dGVyIiwibWF0Y2hlZFJvdXRlcyIsImdldE1hdGNoZWRSb3V0ZXMiLCJsb2NhdGlvbiIsInBhdGhuYW1lIiwibmV4dFByb3BzIiwiYXBwIl0sInNvdXJjZXMiOlsiLi4vLi4vc3JjL3Nwb3V0cy9yb3V0ZXIudHN4Il0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFJvdXRlLCBSb3V0ZVByb3ZpZGVyLCBSb3V0ZUNvbnRyb2xsZXIgfSBmcm9tICdAYW5hbnNpL3JvdXRlcic7XG5pbXBvcnQgUmVhY3QgZnJvbSAncmVhY3QnO1xuaW1wb3J0IHsgY3JlYXRlQnJvd3Nlckhpc3RvcnkgfSBmcm9tICdoaXN0b3J5JztcbmltcG9ydCB0eXBlIHsgVXBkYXRlIH0gZnJvbSAnaGlzdG9yeSc7XG5cbmltcG9ydCB0eXBlIHsgUmVzb2x2ZVByb3BzLCBDcmVhdGVSb3V0ZXIgfSBmcm9tICcuL3R5cGVzJztcblxudHlwZSBOZWVkZWRQcm9wcyA9IFJlc29sdmVQcm9wcztcblxuZXhwb3J0IGRlZmF1bHQgZnVuY3Rpb24gcm91dGVyU3BvdXQ8UmVzb2x2ZVdpdGg+KG9wdGlvbnM6IHtcbiAgcmVzb2x2ZVdpdGg/OiBhbnk7XG4gIHVzZVJlc29sdmVXaXRoOiAoKSA9PiBSZXNvbHZlV2l0aDtcbiAgY3JlYXRlUm91dGVyOiBDcmVhdGVSb3V0ZXI8UmVzb2x2ZVdpdGg+O1xuICBvbkNoYW5nZT86ICh1cGRhdGU6IFVwZGF0ZSwgY2FsbGJhY2s6ICgpID0+IHZvaWQgfCB1bmRlZmluZWQpID0+IHZvaWQ7XG59KSB7XG4gIGNvbnN0IGNyZWF0ZVJvdXRlQ29tcG9uZW50ID0gKFxuICAgIHJvdXRlcjogUm91dGVDb250cm9sbGVyPFJvdXRlPFJlc29sdmVXaXRoLCBhbnk+PixcbiAgKSA9PlxuICAgIGZ1bmN0aW9uIFJvdXRlcih7IGNoaWxkcmVuIH06IHsgY2hpbGRyZW46IFJlYWN0LlJlYWN0Tm9kZSB9KSB7XG4gICAgICBjb25zdCByZXNvbHZlV2l0aCA9IG9wdGlvbnMudXNlUmVzb2x2ZVdpdGgoKTtcblxuICAgICAgcmV0dXJuIChcbiAgICAgICAgPFJvdXRlUHJvdmlkZXJcbiAgICAgICAgICByb3V0ZXI9e3JvdXRlcn1cbiAgICAgICAgICByZXNvbHZlV2l0aD17cmVzb2x2ZVdpdGh9XG4gICAgICAgICAgb25DaGFuZ2U9e29wdGlvbnMub25DaGFuZ2V9XG4gICAgICAgID5cbiAgICAgICAgICB7Y2hpbGRyZW59XG4gICAgICAgIDwvUm91dGVQcm92aWRlcj5cbiAgICAgICk7XG4gICAgfTtcblxuICByZXR1cm4gZnVuY3Rpb24gPFQgZXh0ZW5kcyBOZWVkZWRQcm9wcz4oXG4gICAgbmV4dDogKGluaXREYXRhOiBSZWNvcmQ8c3RyaW5nLCB1bmtub3duPikgPT4gUHJvbWlzZTxUPixcbiAgKSB7XG4gICAgcmV0dXJuIGFzeW5jIChpbml0RGF0YTogUmVjb3JkPHN0cmluZywgdW5rbm93bj4pID0+IHtcbiAgICAgIGNvbnN0IGhpc3RvcnkgPSBjcmVhdGVCcm93c2VySGlzdG9yeSgpO1xuICAgICAgY29uc3Qgcm91dGVyID0gb3B0aW9ucy5jcmVhdGVSb3V0ZXIoaGlzdG9yeSk7XG4gICAgICBjb25zdCBtYXRjaGVkUm91dGVzID0gcm91dGVyLmdldE1hdGNoZWRSb3V0ZXMoaGlzdG9yeS5sb2NhdGlvbi5wYXRobmFtZSk7XG5cbiAgICAgIGNvbnN0IG5leHRQcm9wcyA9IGF3YWl0IG5leHQoaW5pdERhdGEpO1xuXG4gICAgICBjb25zdCBSb3V0ZXIgPSBjcmVhdGVSb3V0ZUNvbXBvbmVudChyb3V0ZXIpO1xuICAgICAgcmV0dXJuIHtcbiAgICAgICAgLi4ubmV4dFByb3BzLFxuICAgICAgICBtYXRjaGVkUm91dGVzLFxuICAgICAgICByb3V0ZXIsXG4gICAgICAgIGFwcDogPFJvdXRlcj57bmV4dFByb3BzLmFwcH08L1JvdXRlcj4sXG4gICAgICB9O1xuICAgIH07XG4gIH07XG59XG4iXSwibWFwcGluZ3MiOiI7Ozs7Ozs7OztBQUFBOztBQUNBOztBQUNBOztBQU9lLFNBQVNBLFdBQVQsQ0FBa0NDLE9BQWxDLEVBS1o7RUFDRCxNQUFNQyxvQkFBb0IsR0FDeEJDLE1BRDJCLElBRzNCLFNBQVNDLE1BQVQsQ0FBZ0I7SUFBRUM7RUFBRixDQUFoQixFQUE2RDtJQUMzRCxNQUFNQyxXQUFXLEdBQUdMLE9BQU8sQ0FBQ00sY0FBUixFQUFwQjtJQUVBLG9CQUNFLG1CQUFDLHFCQUFEO01BQ0UsTUFBTSxFQUFFSixNQURWO01BRUUsV0FBVyxFQUFFRyxXQUZmO01BR0UsUUFBUSxFQUFFTCxPQUFPLENBQUNPO0lBSHBCLFdBS0dILFFBTEgsQ0FERjtFQVNELENBZkg7O0VBaUJBLE9BQU8sVUFDTEksSUFESyxFQUVMO0lBQ0EsT0FBTyxNQUFPQyxRQUFQLElBQTZDO01BQ2xELE1BQU1DLE9BQU8sR0FBRyxJQUFBQyw2QkFBQSxHQUFoQjtNQUNBLE1BQU1ULE1BQU0sR0FBR0YsT0FBTyxDQUFDWSxZQUFSLENBQXFCRixPQUFyQixDQUFmO01BQ0EsTUFBTUcsYUFBYSxHQUFHWCxNQUFNLENBQUNZLGdCQUFQLENBQXdCSixPQUFPLENBQUNLLFFBQVIsQ0FBaUJDLFFBQXpDLENBQXRCO01BRUEsTUFBTUMsU0FBUyxHQUFHLE1BQU1ULElBQUksQ0FBQ0MsUUFBRCxDQUE1QjtNQUVBLE1BQU1OLE1BQU0sR0FBR0Ysb0JBQW9CLENBQUNDLE1BQUQsQ0FBbkM7TUFDQSxPQUFPLEVBQ0wsR0FBR2UsU0FERTtRQUVMSixhQUZLO1FBR0xYLE1BSEs7UUFJTGdCLEdBQUcsZUFBRSxtQkFBQyxNQUFELGNBQVNELFNBQVMsQ0FBQ0MsR0FBbkI7TUFKQSxDQUFQO0lBTUQsQ0FkRDtFQWVELENBbEJEO0FBbUJEIn0=
@@ -8,6 +8,7 @@ export declare type ServerProps = {
8
8
  req: Request | IncomingMessage;
9
9
  res: Response | ServerResponse;
10
10
  clientManifest: StatsCompilation;
11
+ nonce: string;
11
12
  };
12
13
  export declare type ResolveProps = {
13
14
  app: JSX.Element;
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/spouts/types.ts"],"names":[],"mappings":";AAAA,OAAO,EAAE,eAAe,EAAE,cAAc,EAAE,MAAM,MAAM,CAAC;AACvD,OAAO,EAAE,OAAO,EAAE,QAAQ,EAAE,MAAM,SAAS,CAAC;AAC5C,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,SAAS,CAAC;AAChD,OAAO,EAAE,OAAO,EAAE,MAAM,SAAS,CAAC;AAClC,OAAO,EAAE,KAAK,EAAE,eAAe,EAAE,MAAM,gBAAgB,CAAC;AAGxD,oBAAY,WAAW,GAAG;IACxB,GAAG,EAAE,OAAO,GAAG,eAAe,CAAC;IAC/B,GAAG,EAAE,QAAQ,GAAG,cAAc,CAAC;IAC/B,cAAc,EAAE,gBAAgB,CAAC;CAClC,CAAC;AAGF,oBAAY,YAAY,GAAG;IACzB,GAAG,EAAE,GAAG,CAAC,OAAO,CAAC;CAClB,CAAC;AAEF,oBAAY,YAAY,CAAC,CAAC,IAAI,CAC5B,OAAO,EAAE,OAAO,KACb,eAAe,CAAC,KAAK,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/spouts/types.ts"],"names":[],"mappings":";AAAA,OAAO,EAAE,eAAe,EAAE,cAAc,EAAE,MAAM,MAAM,CAAC;AACvD,OAAO,EAAE,OAAO,EAAE,QAAQ,EAAE,MAAM,SAAS,CAAC;AAC5C,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,SAAS,CAAC;AAChD,OAAO,EAAE,OAAO,EAAE,MAAM,SAAS,CAAC;AAClC,OAAO,EAAE,KAAK,EAAE,eAAe,EAAE,MAAM,gBAAgB,CAAC;AAGxD,oBAAY,WAAW,GAAG;IACxB,GAAG,EAAE,OAAO,GAAG,eAAe,CAAC;IAC/B,GAAG,EAAE,QAAQ,GAAG,cAAc,CAAC;IAC/B,cAAc,EAAE,gBAAgB,CAAC;IACjC,KAAK,EAAE,MAAM,CAAC;CACf,CAAC;AAGF,oBAAY,YAAY,GAAG;IACzB,GAAG,EAAE,GAAG,CAAC,OAAO,CAAC;CAClB,CAAC;AAEF,oBAAY,YAAY,CAAC,CAAC,IAAI,CAC5B,OAAO,EAAE,OAAO,KACb,eAAe,CAAC,KAAK,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC"}
@@ -1,4 +1,4 @@
1
1
  "use strict";
2
2
 
3
3
  exports.__esModule = true;
4
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6W10sInNvdXJjZXMiOlsiLi4vLi4vc3JjL3Nwb3V0cy90eXBlcy50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmNvbWluZ01lc3NhZ2UsIFNlcnZlclJlc3BvbnNlIH0gZnJvbSAnaHR0cCc7XG5pbXBvcnQgeyBSZXF1ZXN0LCBSZXNwb25zZSB9IGZyb20gJ2V4cHJlc3MnO1xuaW1wb3J0IHR5cGUgeyBTdGF0c0NvbXBpbGF0aW9uIH0gZnJvbSAnd2VicGFjayc7XG5pbXBvcnQgeyBIaXN0b3J5IH0gZnJvbSAnaGlzdG9yeSc7XG5pbXBvcnQgeyBSb3V0ZSwgUm91dGVDb250cm9sbGVyIH0gZnJvbSAnQGFuYW5zaS9yb3V0ZXInO1xuXG4vKiBWYXJpYWJsZXMgZnJvbSB0aGUgcmVuZGVyaW5nIGNhbGwgKi9cbmV4cG9ydCB0eXBlIFNlcnZlclByb3BzID0ge1xuICByZXE6IFJlcXVlc3QgfCBJbmNvbWluZ01lc3NhZ2U7XG4gIHJlczogUmVzcG9uc2UgfCBTZXJ2ZXJSZXNwb25zZTtcbiAgY2xpZW50TWFuaWZlc3Q6IFN0YXRzQ29tcGlsYXRpb247XG59O1xuXG4vKiBCYXNlbGluZSBleHBlY3RhdGlvbnMgb2YgcmV0dXJuIHZhbHVlICovXG5leHBvcnQgdHlwZSBSZXNvbHZlUHJvcHMgPSB7XG4gIGFwcDogSlNYLkVsZW1lbnQ7XG59O1xuXG5leHBvcnQgdHlwZSBDcmVhdGVSb3V0ZXI8VD4gPSAoXG4gIGhpc3Rvcnk6IEhpc3RvcnksXG4pID0+IFJvdXRlQ29udHJvbGxlcjxSb3V0ZTxULCBhbnk+PjtcbiJdLCJtYXBwaW5ncyI6IiJ9
4
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6W10sInNvdXJjZXMiOlsiLi4vLi4vc3JjL3Nwb3V0cy90eXBlcy50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmNvbWluZ01lc3NhZ2UsIFNlcnZlclJlc3BvbnNlIH0gZnJvbSAnaHR0cCc7XG5pbXBvcnQgeyBSZXF1ZXN0LCBSZXNwb25zZSB9IGZyb20gJ2V4cHJlc3MnO1xuaW1wb3J0IHR5cGUgeyBTdGF0c0NvbXBpbGF0aW9uIH0gZnJvbSAnd2VicGFjayc7XG5pbXBvcnQgeyBIaXN0b3J5IH0gZnJvbSAnaGlzdG9yeSc7XG5pbXBvcnQgeyBSb3V0ZSwgUm91dGVDb250cm9sbGVyIH0gZnJvbSAnQGFuYW5zaS9yb3V0ZXInO1xuXG4vKiBWYXJpYWJsZXMgZnJvbSB0aGUgcmVuZGVyaW5nIGNhbGwgKi9cbmV4cG9ydCB0eXBlIFNlcnZlclByb3BzID0ge1xuICByZXE6IFJlcXVlc3QgfCBJbmNvbWluZ01lc3NhZ2U7XG4gIHJlczogUmVzcG9uc2UgfCBTZXJ2ZXJSZXNwb25zZTtcbiAgY2xpZW50TWFuaWZlc3Q6IFN0YXRzQ29tcGlsYXRpb247XG4gIG5vbmNlOiBzdHJpbmc7XG59O1xuXG4vKiBCYXNlbGluZSBleHBlY3RhdGlvbnMgb2YgcmV0dXJuIHZhbHVlICovXG5leHBvcnQgdHlwZSBSZXNvbHZlUHJvcHMgPSB7XG4gIGFwcDogSlNYLkVsZW1lbnQ7XG59O1xuXG5leHBvcnQgdHlwZSBDcmVhdGVSb3V0ZXI8VD4gPSAoXG4gIGhpc3Rvcnk6IEhpc3RvcnksXG4pID0+IFJvdXRlQ29udHJvbGxlcjxSb3V0ZTxULCBhbnk+PjtcbiJdLCJtYXBwaW5ncyI6IiJ9
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@anansi/core",
3
- "version": "0.10.0",
3
+ "version": "0.11.0",
4
4
  "description": "React 18 Framework",
5
5
  "homepage": "https://github.com/ntucker/anansi/tree/master/packages/core#readme",
6
6
  "repository": {
@@ -80,7 +80,7 @@
80
80
  "webpack-cli": "^4.9.2"
81
81
  },
82
82
  "dependencies": {
83
- "@anansi/router": "^0.6.0",
83
+ "@anansi/router": "^0.6.1",
84
84
  "@babel/runtime": "^7.10.5",
85
85
  "@rest-hooks/ssr": "^0.2.0",
86
86
  "chalk": "^4.0.0",
@@ -3,3 +3,4 @@ export { default as documentSpout } from './spouts/document.server';
3
3
  export { default as restHooksSpout } from './spouts/restHooks.server';
4
4
  export { default as routerSpout } from './spouts/router.server';
5
5
  export { default as prefetchSpout } from './spouts/prefetch.server';
6
+ export { default as JSONSpout } from './spouts/json.server';
package/src/index.ts CHANGED
@@ -2,3 +2,4 @@ export { default as floodSpouts } from './floodSpouts';
2
2
  export { default as documentSpout } from './spouts/document';
3
3
  export { default as restHooksSpout } from './spouts/restHooks';
4
4
  export { default as routerSpout } from './spouts/router';
5
+ export { default as JSONSpout } from './spouts/json';
package/src/laySpouts.tsx CHANGED
@@ -1,4 +1,5 @@
1
1
  import { renderToPipeableStream as reactRender } from 'react-dom/server';
2
+ import crypto from 'crypto';
2
3
 
3
4
  import { Render } from './scripts/types';
4
5
  import { ServerProps } from './spouts/types';
@@ -10,7 +11,9 @@ export default function laySpouts(
10
11
  { timeoutMS = 200 }: { timeoutMS?: number } = {},
11
12
  ) {
12
13
  const render: Render = async (clientManifest, req, res) => {
13
- const { app } = await spouts({ clientManifest, req, res });
14
+ const nonce = crypto.randomBytes(16).toString('base64');
15
+
16
+ const { app } = await spouts({ clientManifest, req, res, nonce });
14
17
  let didError = false;
15
18
  const { pipe, abort } = reactRender(
16
19
  app,
@@ -31,6 +34,7 @@ type Options = {|
31
34
  |};
32
35
  */
33
36
  {
37
+ nonce,
34
38
  //bootstrapScripts: assets.filter(asset => asset.endsWith('.js')),
35
39
  onShellReady() {
36
40
  //managers.forEach(manager => manager.cleanup());
@@ -89,10 +89,7 @@ export default function startDevServer(
89
89
  { mode: 'development', target: 'node' },
90
90
  ),
91
91
  ] as const;
92
- // only have one output for server so we can avoid cached modules
93
- webpackConfigs[1].plugins.push(
94
- new webpack.optimize.LimitChunkCountPlugin({ maxChunks: 1 }),
95
- );
92
+
96
93
  // initialize the webpack compiler
97
94
  const compiler: MultiCompiler = webpack(webpackConfigs);
98
95
 
@@ -148,8 +145,9 @@ export default function startDevServer(
148
145
 
149
146
  const serverEntry = getServerBundle(serverStats);
150
147
  // reload modules
151
- // TODO: should we just reset entire cache each time? then we could avoid needing one output
152
- delete fsRequire.cache[fsRequire.resolve(serverEntry)];
148
+ Object.keys(fsRequire.cache).forEach(key => {
149
+ delete fsRequire.cache[key];
150
+ });
153
151
  // eslint-disable-next-line @typescript-eslint/no-var-requires
154
152
  render = (fsRequire(serverEntry) as any).default.bind(
155
153
  undefined,