@anansi/core 0.12.0 → 0.14.1

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 (67) hide show
  1. package/CHANGELOG.md +37 -0
  2. package/README.md +18 -7
  3. package/dist/client.js +53 -47
  4. package/dist/client.js.map +1 -1
  5. package/dist/server.js +145 -136
  6. package/dist/server.js.map +1 -1
  7. package/lib/floodSpouts.d.ts +1 -1
  8. package/lib/floodSpouts.d.ts.map +1 -1
  9. package/lib/floodSpouts.js +2 -2
  10. package/lib/index.d.ts +3 -0
  11. package/lib/index.d.ts.map +1 -1
  12. package/lib/index.js +6 -2
  13. package/lib/index.server.d.ts +3 -0
  14. package/lib/index.server.d.ts.map +1 -1
  15. package/lib/index.server.js +6 -2
  16. package/lib/spouts/app.d.ts +5 -0
  17. package/lib/spouts/app.d.ts.map +1 -0
  18. package/lib/spouts/app.js +12 -0
  19. package/lib/spouts/app.server.d.ts +6 -0
  20. package/lib/spouts/app.server.d.ts.map +1 -0
  21. package/lib/spouts/app.server.js +12 -0
  22. package/lib/spouts/document.d.ts +2 -8
  23. package/lib/spouts/document.d.ts.map +1 -1
  24. package/lib/spouts/document.js +4 -6
  25. package/lib/spouts/document.server.d.ts +4 -6
  26. package/lib/spouts/document.server.d.ts.map +1 -1
  27. package/lib/spouts/document.server.js +40 -42
  28. package/lib/spouts/json.d.ts +4 -2
  29. package/lib/spouts/json.d.ts.map +1 -1
  30. package/lib/spouts/json.js +7 -6
  31. package/lib/spouts/json.server.d.ts +4 -6
  32. package/lib/spouts/json.server.d.ts.map +1 -1
  33. package/lib/spouts/json.server.js +32 -34
  34. package/lib/spouts/prefetch.server.d.ts +1 -1
  35. package/lib/spouts/prefetch.server.d.ts.map +1 -1
  36. package/lib/spouts/prefetch.server.js +1 -1
  37. package/lib/spouts/restHooks.d.ts +3 -3
  38. package/lib/spouts/restHooks.d.ts.map +1 -1
  39. package/lib/spouts/restHooks.js +9 -11
  40. package/lib/spouts/restHooks.server.d.ts +8 -45
  41. package/lib/spouts/restHooks.server.d.ts.map +1 -1
  42. package/lib/spouts/restHooks.server.js +15 -12
  43. package/lib/spouts/router.d.ts +3 -4
  44. package/lib/spouts/router.d.ts.map +1 -1
  45. package/lib/spouts/router.js +14 -13
  46. package/lib/spouts/router.server.d.ts +3 -4
  47. package/lib/spouts/router.server.d.ts.map +1 -1
  48. package/lib/spouts/router.server.js +17 -15
  49. package/lib/spouts/types.d.ts +2 -0
  50. package/lib/spouts/types.d.ts.map +1 -1
  51. package/lib/spouts/types.js +1 -1
  52. package/package.json +11 -7
  53. package/src/floodSpouts.tsx +2 -2
  54. package/src/index.server.ts +3 -0
  55. package/src/index.ts +3 -0
  56. package/src/spouts/app.server.tsx +8 -0
  57. package/src/spouts/app.tsx +6 -0
  58. package/src/spouts/document.server.tsx +64 -68
  59. package/src/spouts/document.tsx +5 -14
  60. package/src/spouts/json.server.tsx +41 -45
  61. package/src/spouts/json.tsx +8 -16
  62. package/src/spouts/prefetch.server.tsx +8 -4
  63. package/src/spouts/restHooks.server.tsx +27 -22
  64. package/src/spouts/restHooks.tsx +12 -18
  65. package/src/spouts/router.server.tsx +27 -21
  66. package/src/spouts/router.tsx +19 -19
  67. package/src/spouts/types.ts +18 -0
package/CHANGELOG.md CHANGED
@@ -3,6 +3,43 @@
3
3
  All notable changes to this project will be documented in this file.
4
4
  See [Conventional Commits](https://conventionalcommits.org) for commit guidelines.
5
5
 
6
+ ### [0.14.1](https://github.com/ntucker/anansi/compare/@anansi/core@0.14.0...@anansi/core@0.14.1) (2022-06-29)
7
+
8
+
9
+ ### 🐛 Bug Fix
10
+
11
+ * Provide rest-hooks package for rest-hooks/ssr ([#1569](https://github.com/ntucker/anansi/issues/1569)) ([1dbb8ae](https://github.com/ntucker/anansi/commit/1dbb8aec39ad3180a96e76827611b05b53d7e02f))
12
+
13
+
14
+ ### 📦 Package
15
+
16
+ * Update babel monorepo to v7.18.6 ([#1566](https://github.com/ntucker/anansi/issues/1566)) ([1634f13](https://github.com/ntucker/anansi/commit/1634f1358de98ba724433ffb462094ad17f88b72))
17
+ * Update jest monorepo to ^28.1.2 ([#1567](https://github.com/ntucker/anansi/issues/1567)) ([2e614b1](https://github.com/ntucker/anansi/commit/2e614b1bc54ade3cf78717e7d26d606f5e917888))
18
+
19
+
20
+
21
+ ## [0.14.0](https://github.com/ntucker/anansi/compare/@anansi/core@0.13.0...@anansi/core@0.14.0) (2022-06-24)
22
+
23
+
24
+ ### 🚀 Features
25
+
26
+ * Add Spout type for easy spout construction ([8f93eb3](https://github.com/ntucker/anansi/commit/8f93eb363f1bfe30d1ac30395df1a3d9fbd9cab3))
27
+
28
+
29
+
30
+ ## [0.13.0](https://github.com/ntucker/anansi/compare/@anansi/core@0.12.0...@anansi/core@0.13.0) (2022-06-23)
31
+
32
+
33
+ ### ⚠ 💥 BREAKING CHANGES
34
+
35
+ * Must use appSpout; Spouts need two generics
36
+
37
+ ### 💅 Enhancement
38
+
39
+ * Spouts produce props in both directions ([#1559](https://github.com/ntucker/anansi/issues/1559)) ([898cdde](https://github.com/ntucker/anansi/commit/898cdde500a204a7a4dc155ac7ee51930172380e))
40
+
41
+
42
+
6
43
  ## [0.12.0](https://github.com/ntucker/anansi/compare/@anansi/core@0.11.2...@anansi/core@0.12.0) (2022-06-15)
7
44
 
8
45
 
package/README.md CHANGED
@@ -1,5 +1,7 @@
1
1
  # @anansi/core
2
+
2
3
  <!--[![CircleCI](https://circleci.com/gh/notwillk/pojo-router.svg?style=shield)](https://circleci.com/gh/notwillk/pojo-router)-->
4
+
3
5
  [![npm downloads](https://img.shields.io/npm/dm/@anansi/core.svg?style=flat-square)](https://www.npmjs.com/package/@anansi/core)
4
6
  [![bundle size](https://img.shields.io/bundlephobia/minzip/@anansi/core?style=flat-square)](https://bundlephobia.com/result?p=@anansi/core)
5
7
  [![npm version](https://img.shields.io/npm/v/@anansi/core.svg?style=flat-square)](https://www.npmjs.com/package/@anansi/core)
@@ -28,24 +30,27 @@ import {
28
30
  restHooksSpout,
29
31
  prefetchSpout,
30
32
  routerSpout,
33
+ JSONSpout,
34
+ appSpout,
31
35
  } from '@anansi/core/server';
32
36
 
33
37
  import app from 'app';
34
38
 
35
39
  import { createRouter } from './routing';
36
40
 
37
- const appSpout = () => Promise.resolve({ app });
38
-
39
41
  const spouts = prefetchSpout('controller')(
40
42
  documentSpout({ title: 'anansi' })(
41
- restHooksSpout()(
42
- routerSpout({ useResolveWith: useController, createRouter })(appSpout),
43
+ JSONSpout()(
44
+ restHooksSpout()(
45
+ routerSpout({ useResolveWith: useController, createRouter })(
46
+ appSpout(app),
47
+ ),
48
+ ),
43
49
  ),
44
50
  ),
45
51
  );
46
52
 
47
53
  export default laySpouts(spouts);
48
-
49
54
  ```
50
55
 
51
56
  </details>
@@ -59,6 +64,8 @@ import {
59
64
  documentSpout,
60
65
  restHooksSpout,
61
66
  routerSpout,
67
+ JSONSpout,
68
+ appSpout,
62
69
  } from '@anansi/core';
63
70
 
64
71
  import app from 'app';
@@ -68,8 +75,12 @@ import { createRouter } from './routing';
68
75
  const appSpout = () => Promise.resolve({ app });
69
76
 
70
77
  const spouts = documentSpout({ title: 'anansi' })(
71
- restHooksSpout()(
72
- routerSpout({ useResolveWith: useController, createRouter })(appSpout),
78
+ JSONSpout()(
79
+ restHooksSpout()(
80
+ routerSpout({ useResolveWith: useController, createRouter })(
81
+ appSpout(app),
82
+ ),
83
+ ),
73
84
  ),
74
85
  );
75
86
 
package/dist/client.js CHANGED
@@ -52,6 +52,7 @@ __webpack_require__.r(__webpack_exports__);
52
52
  // EXPORTS
53
53
  __webpack_require__.d(__webpack_exports__, {
54
54
  "JSONSpout": () => (/* reexport */ JSONSpout),
55
+ "appSpout": () => (/* reexport */ app),
55
56
  "documentSpout": () => (/* reexport */ documentSpout),
56
57
  "floodSpouts": () => (/* reexport */ floodSpouts),
57
58
  "restHooksSpout": () => (/* reexport */ restHooksSpout),
@@ -69,16 +70,14 @@ async function floodSpouts(spouts, {
69
70
 
70
71
  const {
71
72
  app
72
- } = await spouts();
73
+ } = await spouts({});
73
74
  (0,client_namespaceObject.hydrateRoot)((_document$getElementB = document.getElementById(rootId)) != null ? _document$getElementB : document, app);
74
75
  }
75
76
  ;// CONCATENATED MODULE: ./src/spouts/document.tsx
76
77
  function documentSpout(options) {
77
- return function (next) {
78
- return async initData => {
79
- const nextProps = await next(initData);
80
- return nextProps;
81
- };
78
+ return next => async props => {
79
+ const nextProps = await next(props);
80
+ return nextProps;
82
81
  };
83
82
  }
84
83
  ;// CONCATENATED MODULE: external "react"
@@ -93,22 +92,20 @@ var _jsxFileName = "/home/ntucker/src/anansi/packages/core/src/spouts/restHooks.
93
92
  function restHooksSpout(options = {
94
93
  getManagers: () => [new core_namespaceObject.NetworkManager()]
95
94
  }) {
96
- return function (next) {
97
- return async initData => {
98
- const data = initData.resthooks;
99
- const nextProps = await next(initData);
100
- return { ...nextProps,
101
- app: /*#__PURE__*/external_react_default().createElement(core_namespaceObject.CacheProvider, {
102
- initialState: data,
103
- managers: options.getManagers(),
104
- __self: this,
105
- __source: {
106
- fileName: _jsxFileName,
107
- lineNumber: 28,
108
- columnNumber: 11
109
- }
110
- }, nextProps.app)
111
- };
95
+ return next => async props => {
96
+ const data = props.initData.resthooks;
97
+ const nextProps = await next(props);
98
+ return { ...nextProps,
99
+ app: /*#__PURE__*/external_react_default().createElement(core_namespaceObject.CacheProvider, {
100
+ initialState: data,
101
+ managers: options.getManagers(),
102
+ __self: this,
103
+ __source: {
104
+ fileName: _jsxFileName,
105
+ lineNumber: 23,
106
+ columnNumber: 9
107
+ }
108
+ }, nextProps.app)
112
109
  };
113
110
  };
114
111
  }
@@ -133,31 +130,32 @@ function routerSpout(options) {
133
130
  __self: this,
134
131
  __source: {
135
132
  fileName: router_jsxFileName,
136
- lineNumber: 23,
133
+ lineNumber: 27,
137
134
  columnNumber: 9
138
135
  }
139
136
  }, children);
140
137
  };
141
138
 
142
- return function (next) {
143
- return async initData => {
144
- const history = (0,external_history_namespaceObject.createBrowserHistory)();
145
- const router = options.createRouter(history);
146
- const matchedRoutes = router.getMatchedRoutes(history.location.pathname);
147
- const nextProps = await next(initData);
148
- const Router = createRouteComponent(router);
149
- return { ...nextProps,
150
- matchedRoutes,
151
- router,
152
- app: /*#__PURE__*/external_react_default().createElement(Router, {
153
- __self: this,
154
- __source: {
155
- fileName: router_jsxFileName,
156
- lineNumber: 48,
157
- columnNumber: 14
158
- }
159
- }, nextProps.app)
160
- };
139
+ return next => async props => {
140
+ const history = (0,external_history_namespaceObject.createBrowserHistory)();
141
+ const router = options.createRouter(history);
142
+ const matchedRoutes = router.getMatchedRoutes(history.location.pathname);
143
+ const nextProps = await next({ ...props,
144
+ matchedRoutes,
145
+ router
146
+ });
147
+ const Router = createRouteComponent(router);
148
+ return { ...nextProps,
149
+ matchedRoutes,
150
+ router,
151
+ app: /*#__PURE__*/external_react_default().createElement(Router, {
152
+ __self: this,
153
+ __source: {
154
+ fileName: router_jsxFileName,
155
+ lineNumber: 49,
156
+ columnNumber: 12
157
+ }
158
+ }, nextProps.app)
161
159
  };
162
160
  };
163
161
  }
@@ -165,11 +163,12 @@ function routerSpout(options) {
165
163
  function JSONSpout({
166
164
  id = 'anansi-json'
167
165
  } = {}) {
168
- return function (next) {
169
- return async () => {
170
- const initData = getDatafromDOM(id);
171
- const nextProps = await next(initData);
172
- return nextProps;
166
+ return next => async props => {
167
+ const initData = getDatafromDOM(id);
168
+ return { ...(await next({ ...props,
169
+ initData
170
+ })),
171
+ initData
173
172
  };
174
173
  };
175
174
  }
@@ -178,12 +177,19 @@ function getDatafromDOM(id) {
178
177
  const element = document.querySelector(`#${id}`);
179
178
  return element !== null && element !== void 0 && element.text ? JSON.parse(element === null || element === void 0 ? void 0 : element.text) : undefined;
180
179
  }
180
+ ;// CONCATENATED MODULE: ./src/spouts/app.tsx
181
+ const appSpout = app => props => Promise.resolve({ ...props,
182
+ app
183
+ });
184
+
185
+ /* harmony default export */ const app = (appSpout);
181
186
  ;// CONCATENATED MODULE: ./src/index.ts
182
187
 
183
188
 
184
189
 
185
190
 
186
191
 
192
+
187
193
  module.exports = __webpack_exports__;
188
194
  /******/ })()
189
195
  ;
@@ -1 +1 @@
1
- {"version":3,"file":"client.js","mappings":";;AAAA;AACA;AACA;;;;ACFA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;ACPA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;ACPA;;;;;ACAA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;;;;;;ACNA;;ACAA;AAEA;AAIA;AAAA;AACA;;AACA;AAAA;AAAA;AAEA;AACA;;ACDA;AAIA;AAGA;AACA;AAEA;AACA;AACA;AACA;;ACvBA;;;ACAA;;;;ACAA;AAWA;AAGA;AAAA;AAEA;AAGA;AACA;AAEA;AAEA;AAEA;AACA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAHA;AAQA;AACA;AACA;;AClCA;;ACAA;;;ACAA;AACA;AACA;AAOA;AAMA;AAGA;AAAA;AACA;AAEA;AAEA;AACA;AACA;AAHA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAQA;;AAEA;AAGA;AACA;AACA;AACA;AAEA;AAEA;AACA;AAEA;AACA;AACA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAJA;AAMA;AACA;AACA;;AC5CA;AACA;AADA;AAGA;AAGA;AACA;AACA;AAEA;AACA;AACA;AACA;;AACA;AACA;AACA;AACA;;ACxBA;AACA;AACA;AACA","sources":["/home/ntucker/src/anansi/packages/core/webpack/bootstrap","/home/ntucker/src/anansi/packages/core/webpack/runtime/compat get default export","/home/ntucker/src/anansi/packages/core/webpack/runtime/define property getters","/home/ntucker/src/anansi/packages/core/webpack/runtime/hasOwnProperty shorthand","/home/ntucker/src/anansi/packages/core/webpack/runtime/make namespace object","/home/ntucker/src/anansi/packages/core/external commonjs \"react-dom/client\"","/home/ntucker/src/anansi/packages/core/src/floodSpouts.tsx","/home/ntucker/src/anansi/packages/core/src/spouts/document.tsx","/home/ntucker/src/anansi/packages/core/external commonjs \"react\"","/home/ntucker/src/anansi/packages/core/external commonjs \"@rest-hooks/core\"","/home/ntucker/src/anansi/packages/core/src/spouts/restHooks.tsx","/home/ntucker/src/anansi/packages/core/external commonjs \"@anansi/router\"","/home/ntucker/src/anansi/packages/core/external commonjs \"history\"","/home/ntucker/src/anansi/packages/core/src/spouts/router.tsx","/home/ntucker/src/anansi/packages/core/src/spouts/json.tsx","/home/ntucker/src/anansi/packages/core/src/index.ts"],"sourcesContent":["// The require scope\nvar __webpack_require__ = {};\n\n","// getDefaultExport function for compatibility with non-harmony modules\n__webpack_require__.n = (module) => {\n\tvar getter = module && module.__esModule ?\n\t\t() => (module['default']) :\n\t\t() => (module);\n\t__webpack_require__.d(getter, { a: getter });\n\treturn getter;\n};","// define getter functions for harmony exports\n__webpack_require__.d = (exports, definition) => {\n\tfor(var key in definition) {\n\t\tif(__webpack_require__.o(definition, key) && !__webpack_require__.o(exports, key)) {\n\t\t\tObject.defineProperty(exports, key, { enumerable: true, get: definition[key] });\n\t\t}\n\t}\n};","__webpack_require__.o = (obj, prop) => (Object.prototype.hasOwnProperty.call(obj, prop))","// define __esModule on exports\n__webpack_require__.r = (exports) => {\n\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n\t}\n\tObject.defineProperty(exports, '__esModule', { value: true });\n};","const __WEBPACK_NAMESPACE_OBJECT__ = require(\"react-dom/client\");","import { hydrateRoot } from 'react-dom/client';\n\nexport default async function floodSpouts(\n spouts: () => Promise<{\n app: JSX.Element;\n }>,\n { rootId = 'anansi-root' }: { rootId?: string } = {},\n) {\n const { app } = await spouts();\n\n hydrateRoot(document.getElementById(rootId) ?? document, app);\n}\n","import React from 'react';\nimport type { Route } from '@anansi/router';\n\nimport type { ResolveProps } from './types';\n\ntype NeededProps = {\n matchedRoutes: Route<any>[];\n title?: string;\n} & ResolveProps;\n\nexport default function documentSpout(options: {\n head?: React.ReactNode;\n title: string;\n}) {\n return function <T extends NeededProps>(\n next: (initData: Record<string, unknown>) => Promise<T>,\n ) {\n return async (initData: Record<string, unknown>) => {\n const nextProps = await next(initData);\n\n return nextProps;\n };\n };\n}\n","const __WEBPACK_NAMESPACE_OBJECT__ = require(\"react\");","const __WEBPACK_NAMESPACE_OBJECT__ = require(\"@rest-hooks/core\");","import {\n CacheProvider,\n Manager,\n NetworkManager,\n State,\n} from '@rest-hooks/core';\n\nimport type { ResolveProps } from './types';\n\ntype NeededProps = ResolveProps;\n\nexport default function restHooksSpout(\n options: {\n getManagers: () => Manager[];\n } = { getManagers: () => [new NetworkManager()] },\n) {\n return function <T extends NeededProps>(\n next: (initData: Record<string, unknown>) => Promise<T>,\n ) {\n return async (initData: Record<string, unknown>) => {\n const data = initData.resthooks as State<unknown>;\n\n const nextProps = await next(initData);\n\n return {\n ...nextProps,\n app: (\n <CacheProvider initialState={data} managers={options.getManagers()}>\n {nextProps.app}\n </CacheProvider>\n ),\n };\n };\n };\n}\n","const __WEBPACK_NAMESPACE_OBJECT__ = require(\"@anansi/router\");","const __WEBPACK_NAMESPACE_OBJECT__ = require(\"history\");","import { Route, RouteProvider, RouteController } from '@anansi/router';\nimport React from 'react';\nimport { createBrowserHistory } from 'history';\nimport type { Update } from 'history';\n\nimport type { ResolveProps, CreateRouter } from './types';\n\ntype NeededProps = ResolveProps;\n\nexport default function routerSpout<ResolveWith>(options: {\n resolveWith?: any;\n useResolveWith: () => ResolveWith;\n createRouter: CreateRouter<ResolveWith>;\n onChange?: (update: Update, callback: () => void | undefined) => void;\n}) {\n const createRouteComponent = (\n router: RouteController<Route<ResolveWith, any>>,\n ) =>\n function Router({ children }: { children: React.ReactNode }) {\n const resolveWith = options.useResolveWith();\n\n return (\n <RouteProvider\n router={router}\n resolveWith={resolveWith}\n onChange={options.onChange}\n >\n {children}\n </RouteProvider>\n );\n };\n\n return function <T extends NeededProps>(\n next: (initData: Record<string, unknown>) => Promise<T>,\n ) {\n return async (initData: Record<string, unknown>) => {\n const history = createBrowserHistory();\n const router = options.createRouter(history);\n const matchedRoutes = router.getMatchedRoutes(history.location.pathname);\n\n const nextProps = await next(initData);\n\n const Router = createRouteComponent(router);\n return {\n ...nextProps,\n matchedRoutes,\n router,\n app: <Router>{nextProps.app}</Router>,\n };\n };\n };\n}\n","import React from 'react';\nimport type { Route } from '@anansi/router';\n\nimport type { ResolveProps } from './types';\n\ntype NeededProps = ResolveProps;\n\nexport default function JSONSpout({\n id = 'anansi-json',\n}: { id?: string } = {}) {\n return function <T extends NeededProps>(\n next: (initData: Record<string, unknown>) => Promise<T>,\n ) {\n return async () => {\n const initData = getDatafromDOM(id);\n const nextProps = await next(initData);\n\n return nextProps;\n };\n };\n}\nfunction getDatafromDOM(id: string): Record<string, unknown> {\n const element: HTMLScriptElement | null = document.querySelector(`#${id}`);\n return element?.text ? JSON.parse(element?.text) : undefined;\n}\n","export { default as floodSpouts } from './floodSpouts';\nexport { default as documentSpout } from './spouts/document';\nexport { default as restHooksSpout } from './spouts/restHooks';\nexport { default as routerSpout } from './spouts/router';\nexport { default as JSONSpout } from './spouts/json';\n"],"names":[],"sourceRoot":""}
1
+ {"version":3,"file":"client.js","mappings":";;AAAA;AACA;AACA;;;;ACFA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;ACPA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;ACPA;;;;;ACAA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;;;;;;;ACNA;;ACAA;AAEA;AAIA;AAAA;AACA;;AACA;AAAA;AAAA;AAEA;AACA;;ACNA;AAIA;AACA;AAEA;AACA;AACA;;ACdA;;;ACAA;;;;ACAA;AASA;AAGA;AAAA;AAEA;AACA;AAEA;AAEA;AAEA;AACA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAHA;AAQA;AACA;;AC5BA;;ACAA;;;ACAA;AACA;AACA;AAKA;AAYA;AAGA;AAAA;AACA;AAEA;AAEA;AACA;AACA;AAHA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAQA;;AAEA;AACA;AACA;AACA;AAEA;AAAA;AAAA;AAAA;AAEA;AACA;AAEA;AACA;AACA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAJA;AAMA;AACA;;ACjDA;AACA;AADA;AAMA;AACA;AACA;AAAA;AAAA;AAAA;AAAA;AACA;AACA;;AACA;AACA;AACA;AACA;;AChBA;AAGA;AAAA;;AAEA;;ACLA;AACA;AACA;AACA;AACA","sources":["/home/ntucker/src/anansi/packages/core/webpack/bootstrap","/home/ntucker/src/anansi/packages/core/webpack/runtime/compat get default export","/home/ntucker/src/anansi/packages/core/webpack/runtime/define property getters","/home/ntucker/src/anansi/packages/core/webpack/runtime/hasOwnProperty shorthand","/home/ntucker/src/anansi/packages/core/webpack/runtime/make namespace object","/home/ntucker/src/anansi/packages/core/external commonjs \"react-dom/client\"","/home/ntucker/src/anansi/packages/core/src/floodSpouts.tsx","/home/ntucker/src/anansi/packages/core/src/spouts/document.tsx","/home/ntucker/src/anansi/packages/core/external commonjs \"react\"","/home/ntucker/src/anansi/packages/core/external commonjs \"@rest-hooks/core\"","/home/ntucker/src/anansi/packages/core/src/spouts/restHooks.tsx","/home/ntucker/src/anansi/packages/core/external commonjs \"@anansi/router\"","/home/ntucker/src/anansi/packages/core/external commonjs \"history\"","/home/ntucker/src/anansi/packages/core/src/spouts/router.tsx","/home/ntucker/src/anansi/packages/core/src/spouts/json.tsx","/home/ntucker/src/anansi/packages/core/src/spouts/app.tsx","/home/ntucker/src/anansi/packages/core/src/index.ts"],"sourcesContent":["// The require scope\nvar __webpack_require__ = {};\n\n","// getDefaultExport function for compatibility with non-harmony modules\n__webpack_require__.n = (module) => {\n\tvar getter = module && module.__esModule ?\n\t\t() => (module['default']) :\n\t\t() => (module);\n\t__webpack_require__.d(getter, { a: getter });\n\treturn getter;\n};","// define getter functions for harmony exports\n__webpack_require__.d = (exports, definition) => {\n\tfor(var key in definition) {\n\t\tif(__webpack_require__.o(definition, key) && !__webpack_require__.o(exports, key)) {\n\t\t\tObject.defineProperty(exports, key, { enumerable: true, get: definition[key] });\n\t\t}\n\t}\n};","__webpack_require__.o = (obj, prop) => (Object.prototype.hasOwnProperty.call(obj, prop))","// define __esModule on exports\n__webpack_require__.r = (exports) => {\n\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n\t}\n\tObject.defineProperty(exports, '__esModule', { value: true });\n};","const __WEBPACK_NAMESPACE_OBJECT__ = require(\"react-dom/client\");","import { hydrateRoot } from 'react-dom/client';\n\nexport default async function floodSpouts(\n spouts: (props: Record<string, unknown>) => Promise<{\n app: JSX.Element;\n }>,\n { rootId = 'anansi-root' }: { rootId?: string } = {},\n) {\n const { app } = await spouts({});\n\n hydrateRoot(document.getElementById(rootId) ?? document, app);\n}\n","import React from 'react';\nimport type { Route } from '@anansi/router';\n\nimport type { ClientSpout } from './types';\n\nexport default function documentSpout(options: {\n head?: React.ReactNode;\n title: string;\n}): ClientSpout {\n return next => async props => {\n const nextProps = await next(props);\n\n return nextProps;\n };\n}\n","const __WEBPACK_NAMESPACE_OBJECT__ = require(\"react\");","const __WEBPACK_NAMESPACE_OBJECT__ = require(\"@rest-hooks/core\");","import {\n CacheProvider,\n Manager,\n NetworkManager,\n State,\n} from '@rest-hooks/core';\n\nimport type { ClientSpout } from './types';\n\nexport default function restHooksSpout(\n options: {\n getManagers: () => Manager[];\n } = { getManagers: () => [new NetworkManager()] },\n): ClientSpout<{ initData: Record<string, unknown> }> {\n return next => async props => {\n const data = props.initData.resthooks as State<unknown>;\n\n const nextProps = await next(props);\n\n return {\n ...nextProps,\n app: (\n <CacheProvider initialState={data} managers={options.getManagers()}>\n {nextProps.app}\n </CacheProvider>\n ),\n };\n };\n}\n","const __WEBPACK_NAMESPACE_OBJECT__ = require(\"@anansi/router\");","const __WEBPACK_NAMESPACE_OBJECT__ = require(\"history\");","import { Route, RouteProvider, RouteController } from '@anansi/router';\nimport React from 'react';\nimport { createBrowserHistory } from 'history';\nimport type { Update } from 'history';\n\nimport type { CreateRouter, ClientSpout } from './types';\n\nexport default function routerSpout<ResolveWith>(options: {\n resolveWith?: any;\n useResolveWith: () => ResolveWith;\n createRouter: CreateRouter<ResolveWith>;\n onChange?: (update: Update, callback: () => void | undefined) => void;\n}): ClientSpout<\n Record<string, unknown>,\n {\n matchedRoutes: Route<ResolveWith, any>[];\n router: RouteController<Route<ResolveWith, any>>;\n }\n> {\n const createRouteComponent = (\n router: RouteController<Route<ResolveWith, any>>,\n ) =>\n function Router({ children }: { children: React.ReactNode }) {\n const resolveWith = options.useResolveWith();\n\n return (\n <RouteProvider\n router={router}\n resolveWith={resolveWith}\n onChange={options.onChange}\n >\n {children}\n </RouteProvider>\n );\n };\n\n return next => async props => {\n const history = createBrowserHistory();\n const router = options.createRouter(history);\n const matchedRoutes = router.getMatchedRoutes(history.location.pathname);\n\n const nextProps = await next({ ...props, matchedRoutes, router });\n\n const Router = createRouteComponent(router);\n return {\n ...nextProps,\n matchedRoutes,\n router,\n app: <Router>{nextProps.app}</Router>,\n };\n };\n}\n","import type { ClientSpout } from './types';\n\nexport default function JSONSpout({\n id = 'anansi-json',\n}: { id?: string } = {}): ClientSpout<\n Record<string, unknown>,\n { initData: Record<string, unknown> }\n> {\n return next => async props => {\n const initData = getDatafromDOM(id);\n return { ...(await next({ ...props, initData })), initData };\n };\n}\nfunction getDatafromDOM(id: string): Record<string, unknown> {\n const element: HTMLScriptElement | null = document.querySelector(`#${id}`);\n return element?.text ? JSON.parse(element?.text) : undefined;\n}\n","const appSpout =\n (app: JSX.Element) =>\n <P extends Record<string, unknown>>(props: P) =>\n Promise.resolve({ ...props, app });\n\nexport default appSpout;\n","export { default as floodSpouts } from './floodSpouts';\nexport { default as documentSpout } from './spouts/document';\nexport { default as restHooksSpout } from './spouts/restHooks';\nexport { default as routerSpout } from './spouts/router';\nexport { default as JSONSpout } from './spouts/json';\nexport { default as appSpout } from './spouts/app';\nexport type { ServerProps } from './spouts/types';\nexport type { ClientSpout as Spout } from './spouts/types';\n"],"names":[],"sourceRoot":""}