@payloadcms/tanstack-start 4.0.0-internal.d1cc1d3 → 4.0.0-internal.d3909a9

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 (194) hide show
  1. package/dist/adapters/handleServerFunctions.d.ts +3 -0
  2. package/dist/adapters/handleServerFunctions.d.ts.map +1 -0
  3. package/dist/adapters/handleServerFunctions.js +17 -0
  4. package/dist/adapters/handleServerFunctions.js.map +1 -0
  5. package/dist/adapters/layout/RootProviders/index.d.ts +9 -0
  6. package/dist/adapters/layout/RootProviders/index.d.ts.map +1 -0
  7. package/dist/adapters/layout/RootProviders/index.js +21 -0
  8. package/dist/adapters/layout/RootProviders/index.js.map +1 -0
  9. package/dist/{layouts/Root/withPayloadRoot.d.ts → adapters/layout/index.d.ts} +32 -4
  10. package/dist/adapters/layout/index.d.ts.map +1 -0
  11. package/dist/adapters/layout/index.js +107 -0
  12. package/dist/adapters/layout/index.js.map +1 -0
  13. package/dist/adapters/layout/lazy.d.ts +7 -0
  14. package/dist/adapters/layout/lazy.d.ts.map +1 -0
  15. package/dist/adapters/layout/lazy.js +17 -0
  16. package/dist/adapters/layout/lazy.js.map +1 -0
  17. package/dist/adapters/layout/outlet.d.ts +4 -0
  18. package/dist/adapters/layout/outlet.d.ts.map +1 -0
  19. package/dist/adapters/layout/outlet.js +9 -0
  20. package/dist/adapters/layout/outlet.js.map +1 -0
  21. package/dist/adapters/layout/server.d.ts +23 -0
  22. package/dist/adapters/layout/server.d.ts.map +1 -0
  23. package/dist/adapters/layout/server.js +65 -0
  24. package/dist/adapters/layout/server.js.map +1 -0
  25. package/dist/{utilities/meta.d.ts → adapters/metadata.d.ts} +10 -1
  26. package/dist/adapters/metadata.d.ts.map +1 -0
  27. package/dist/{utilities/meta.js → adapters/metadata.js} +60 -1
  28. package/dist/adapters/metadata.js.map +1 -0
  29. package/dist/{elements/RouterAdapter/index.d.ts → adapters/router.d.ts} +1 -1
  30. package/dist/adapters/router.d.ts.map +1 -0
  31. package/dist/{elements/RouterAdapter/index.js → adapters/router.js} +26 -4
  32. package/dist/adapters/router.js.map +1 -0
  33. package/dist/{utilities/serverAdapter.server.d.ts → adapters/server.d.ts} +1 -1
  34. package/dist/adapters/server.d.ts.map +1 -0
  35. package/dist/{utilities/serverAdapter.server.js → adapters/server.js} +3 -30
  36. package/dist/adapters/server.js.map +1 -0
  37. package/dist/{routes/adminRoutes.d.ts → adapters/views/index.d.ts} +12 -18
  38. package/dist/adapters/views/index.d.ts.map +1 -0
  39. package/dist/{routes/adminRoutes.js → adapters/views/index.js} +17 -33
  40. package/dist/adapters/views/index.js.map +1 -0
  41. package/dist/adapters/views/lazy.d.ts +4 -0
  42. package/dist/adapters/views/lazy.d.ts.map +1 -0
  43. package/dist/adapters/views/lazy.js +43 -0
  44. package/dist/adapters/views/lazy.js.map +1 -0
  45. package/dist/{utilities/loadAdminPage.d.ts → adapters/views/server.d.ts} +12 -6
  46. package/dist/adapters/views/server.d.ts.map +1 -0
  47. package/dist/{utilities/loadAdminPage.js → adapters/views/server.js} +25 -78
  48. package/dist/adapters/views/server.js.map +1 -0
  49. package/dist/auth/login.js +1 -1
  50. package/dist/auth/login.js.map +1 -1
  51. package/dist/auth/logout.js +1 -1
  52. package/dist/auth/logout.js.map +1 -1
  53. package/dist/auth/refresh.js +1 -1
  54. package/dist/auth/refresh.js.map +1 -1
  55. package/dist/exports/client/layout.d.ts +2 -0
  56. package/dist/exports/client/layout.d.ts.map +1 -0
  57. package/dist/exports/client/layout.js +4 -0
  58. package/dist/exports/client/layout.js.map +1 -0
  59. package/dist/exports/client.d.ts +3 -6
  60. package/dist/exports/client.d.ts.map +1 -1
  61. package/dist/exports/client.js +3 -6
  62. package/dist/exports/client.js.map +1 -1
  63. package/dist/exports/layouts.d.ts +2 -3
  64. package/dist/exports/layouts.d.ts.map +1 -1
  65. package/dist/exports/layouts.js +1 -2
  66. package/dist/exports/layouts.js.map +1 -1
  67. package/dist/exports/rest.d.ts +2 -0
  68. package/dist/exports/rest.d.ts.map +1 -0
  69. package/dist/exports/rest.js +3 -0
  70. package/dist/exports/rest.js.map +1 -0
  71. package/dist/exports/server.d.ts +7 -11
  72. package/dist/exports/server.d.ts.map +1 -1
  73. package/dist/exports/server.js +7 -11
  74. package/dist/exports/server.js.map +1 -1
  75. package/dist/{utilities/graphqlHandler.server.d.ts → routes/graphql/handler.server.d.ts} +1 -3
  76. package/dist/routes/graphql/handler.server.d.ts.map +1 -0
  77. package/dist/{utilities/graphqlHandler.server.js → routes/graphql/handler.server.js} +9 -6
  78. package/dist/routes/graphql/handler.server.js.map +1 -0
  79. package/dist/routes/rest/handler.server.d.ts +11 -0
  80. package/dist/routes/rest/handler.server.d.ts.map +1 -0
  81. package/dist/routes/rest/handler.server.js +14 -0
  82. package/dist/routes/rest/handler.server.js.map +1 -0
  83. package/dist/routes/{apiRoute.d.ts → rest/index.d.ts} +5 -4
  84. package/dist/routes/rest/index.d.ts.map +1 -0
  85. package/dist/routes/{apiRoute.js → rest/index.js} +6 -5
  86. package/dist/routes/rest/index.js.map +1 -0
  87. package/dist/rsc/CollectionCards.js +1 -1
  88. package/dist/rsc/CollectionCards.js.map +1 -1
  89. package/dist/utilities/devConfigReload.server.d.ts +2 -0
  90. package/dist/utilities/devConfigReload.server.d.ts.map +1 -0
  91. package/dist/utilities/devConfigReload.server.js +61 -0
  92. package/dist/utilities/devConfigReload.server.js.map +1 -0
  93. package/dist/utilities/devConfigReloadEvent.d.ts +9 -0
  94. package/dist/utilities/devConfigReloadEvent.d.ts.map +1 -0
  95. package/dist/utilities/devConfigReloadEvent.js +9 -0
  96. package/dist/utilities/devConfigReloadEvent.js.map +1 -0
  97. package/dist/utilities/getRequestI18n.server.d.ts +1 -1
  98. package/dist/utilities/getRequestI18n.server.js +1 -1
  99. package/dist/utilities/getRequestI18n.server.js.map +1 -1
  100. package/dist/utilities/initAdminContext.server.d.ts +9 -0
  101. package/dist/utilities/initAdminContext.server.d.ts.map +1 -0
  102. package/dist/utilities/initAdminContext.server.js +13 -0
  103. package/dist/utilities/initAdminContext.server.js.map +1 -0
  104. package/dist/utilities/serverFunctionClient.d.ts +2 -23
  105. package/dist/utilities/serverFunctionClient.d.ts.map +1 -1
  106. package/dist/utilities/serverFunctionClient.js +12 -101
  107. package/dist/utilities/serverFunctionClient.js.map +1 -1
  108. package/dist/withPayload/config/external.d.ts +19 -17
  109. package/dist/withPayload/config/external.d.ts.map +1 -1
  110. package/dist/withPayload/config/external.js +34 -21
  111. package/dist/withPayload/config/external.js.map +1 -1
  112. package/dist/withPayload/config/optimizeDeps.d.ts.map +1 -1
  113. package/dist/withPayload/config/optimizeDeps.js +44 -7
  114. package/dist/withPayload/config/optimizeDeps.js.map +1 -1
  115. package/dist/withPayload/devConfigReload.d.ts +14 -0
  116. package/dist/withPayload/devConfigReload.d.ts.map +1 -0
  117. package/dist/withPayload/devConfigReload.js +84 -0
  118. package/dist/withPayload/devConfigReload.js.map +1 -0
  119. package/dist/withPayload/importProtection.js +1 -1
  120. package/dist/withPayload/importProtection.js.map +1 -1
  121. package/dist/withPayload/index.d.ts +24 -11
  122. package/dist/withPayload/index.d.ts.map +1 -1
  123. package/dist/withPayload/index.js +50 -19
  124. package/dist/withPayload/index.js.map +1 -1
  125. package/dist/withPayload/workarounds/stripDistStyleImports.js +1 -1
  126. package/dist/withPayload/workarounds/stripDistStyleImports.js.map +1 -1
  127. package/package.json +31 -25
  128. package/dist/elements/RouterAdapter/index.d.ts.map +0 -1
  129. package/dist/elements/RouterAdapter/index.js.map +0 -1
  130. package/dist/layouts/Root/getLayoutData.d.ts +0 -34
  131. package/dist/layouts/Root/getLayoutData.d.ts.map +0 -1
  132. package/dist/layouts/Root/getLayoutData.js +0 -97
  133. package/dist/layouts/Root/getLayoutData.js.map +0 -1
  134. package/dist/layouts/Root/withPayloadRoot.d.ts.map +0 -1
  135. package/dist/layouts/Root/withPayloadRoot.js +0 -91
  136. package/dist/layouts/Root/withPayloadRoot.js.map +0 -1
  137. package/dist/node/cssLoader.d.mts +0 -25
  138. package/dist/node/cssLoader.d.mts.map +0 -1
  139. package/dist/node/cssLoader.js +0 -70
  140. package/dist/node/cssLoader.js.map +0 -1
  141. package/dist/node/cssLoader.mjs +0 -75
  142. package/dist/node/registerCssLoader.d.mts +0 -2
  143. package/dist/node/registerCssLoader.d.mts.map +0 -1
  144. package/dist/node/registerCssLoader.js +0 -10
  145. package/dist/node/registerCssLoader.js.map +0 -1
  146. package/dist/node/registerCssLoader.mjs +0 -10
  147. package/dist/routes/adminRoutes.d.ts.map +0 -1
  148. package/dist/routes/adminRoutes.js.map +0 -1
  149. package/dist/routes/apiRoute.d.ts.map +0 -1
  150. package/dist/routes/apiRoute.js.map +0 -1
  151. package/dist/routes/layoutRoute.d.ts +0 -26
  152. package/dist/routes/layoutRoute.d.ts.map +0 -1
  153. package/dist/routes/layoutRoute.js +0 -58
  154. package/dist/routes/layoutRoute.js.map +0 -1
  155. package/dist/utilities/devReloadStrategy.d.ts +0 -10
  156. package/dist/utilities/devReloadStrategy.d.ts.map +0 -1
  157. package/dist/utilities/devReloadStrategy.js +0 -27
  158. package/dist/utilities/devReloadStrategy.js.map +0 -1
  159. package/dist/utilities/getRequestLocale.d.ts +0 -7
  160. package/dist/utilities/getRequestLocale.d.ts.map +0 -1
  161. package/dist/utilities/getRequestLocale.js +0 -19
  162. package/dist/utilities/getRequestLocale.js.map +0 -1
  163. package/dist/utilities/graphqlHandler.server.d.ts.map +0 -1
  164. package/dist/utilities/graphqlHandler.server.js.map +0 -1
  165. package/dist/utilities/handleAPIRoute.server.d.ts +0 -11
  166. package/dist/utilities/handleAPIRoute.server.d.ts.map +0 -1
  167. package/dist/utilities/handleAPIRoute.server.js +0 -17
  168. package/dist/utilities/handleAPIRoute.server.js.map +0 -1
  169. package/dist/utilities/handleServerFunctions.d.ts +0 -2
  170. package/dist/utilities/handleServerFunctions.d.ts.map +0 -1
  171. package/dist/utilities/handleServerFunctions.js +0 -12
  172. package/dist/utilities/handleServerFunctions.js.map +0 -1
  173. package/dist/utilities/initReq.server.d.ts +0 -19
  174. package/dist/utilities/initReq.server.d.ts.map +0 -1
  175. package/dist/utilities/initReq.server.js +0 -87
  176. package/dist/utilities/initReq.server.js.map +0 -1
  177. package/dist/utilities/loadAdminPage.d.ts.map +0 -1
  178. package/dist/utilities/loadAdminPage.js.map +0 -1
  179. package/dist/utilities/loadLayoutData.d.ts +0 -15
  180. package/dist/utilities/loadLayoutData.d.ts.map +0 -1
  181. package/dist/utilities/loadLayoutData.js +0 -23
  182. package/dist/utilities/loadLayoutData.js.map +0 -1
  183. package/dist/utilities/meta.d.ts.map +0 -1
  184. package/dist/utilities/meta.js.map +0 -1
  185. package/dist/utilities/serializeForRsc.d.ts +0 -26
  186. package/dist/utilities/serializeForRsc.d.ts.map +0 -1
  187. package/dist/utilities/serializeForRsc.js +0 -122
  188. package/dist/utilities/serializeForRsc.js.map +0 -1
  189. package/dist/utilities/serverAdapter.server.d.ts.map +0 -1
  190. package/dist/utilities/serverAdapter.server.js.map +0 -1
  191. package/dist/utilities/toSerializable.d.ts +0 -2
  192. package/dist/utilities/toSerializable.d.ts.map +0 -1
  193. package/dist/utilities/toSerializable.js +0 -111
  194. package/dist/utilities/toSerializable.js.map +0 -1
@@ -1 +0,0 @@
1
- {"version":3,"file":"serverAdapter.server.d.ts","sourceRoot":"","sources":["../../src/utilities/serverAdapter.server.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAA8B,aAAa,EAAE,MAAM,SAAS,CAAA;AAsDxE;;;GAGG;AACH,eAAO,MAAM,qBAAqB,EAAE,aA8CnC,CAAA;AAED;;;;GAIG;AACH,MAAM,MAAM,aAAa,GAAG;IAC1B,IAAI,CAAC,EAAE,UAAU,GAAG,UAAU,CAAA;IAC9B,GAAG,CAAC,EAAE,MAAM,CAAA;CACb,CAAA;AAED;;;;;;;;;;;;;;;;;;GAkBG;AACH,eAAO,MAAM,6BAA6B,QAAS,aAAa,KAAG,aAgBjE,CAAA"}
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../../src/utilities/serverAdapter.server.ts"],"sourcesContent":["import type { CookieOptions, CookieStore, ServerAdapter } from 'payload'\n\nimport { notFound, redirect } from '@tanstack/react-router'\nimport { getRequest, setResponseHeader } from '@tanstack/react-start/server'\nimport { parseCookies } from 'payload'\n\nfunction buildCookieStore(headers: Headers): CookieStore {\n const cookies = parseCookies(headers)\n\n return {\n get: (name: string) => {\n const value = cookies.get(name)\n return value !== undefined ? { name, value } : undefined\n },\n getAll: () => {\n return Array.from(cookies.entries()).map(([name, value]) => ({ name, value }))\n },\n }\n}\n\nfunction serializeCookie(name: string, value: string, options?: CookieOptions): string {\n let cookie = `${encodeURIComponent(name)}=${encodeURIComponent(value)}`\n\n if (options?.path) {\n cookie += `; Path=${options.path}`\n }\n\n if (options?.domain) {\n cookie += `; Domain=${options.domain}`\n }\n\n if (options?.maxAge !== undefined) {\n cookie += `; Max-Age=${options.maxAge}`\n }\n\n if (options?.expires) {\n cookie += `; Expires=${options.expires.toUTCString()}`\n }\n\n if (options?.httpOnly) {\n cookie += '; HttpOnly'\n }\n\n if (options?.secure) {\n cookie += '; Secure'\n }\n\n if (options?.sameSite) {\n cookie += `; SameSite=${options.sameSite.charAt(0).toUpperCase() + options.sameSite.slice(1)}`\n }\n\n return cookie\n}\n\n/**\n * Server-side adapter for TanStack Start.\n * Uses `@tanstack/react-start/server` utilities for request/response handling.\n */\nexport const tanstackServerAdapter: ServerAdapter = {\n getCookies: () => {\n const request = getRequest()\n const headers = new Headers(request.headers)\n return buildCookieStore(headers)\n },\n\n getHeaders: () => {\n const request = getRequest()\n return new Headers(request.headers)\n },\n\n notFound: () => {\n // TanStack Router requires throwing the notFound() result directly\n // eslint-disable-next-line @typescript-eslint/only-throw-error\n throw notFound()\n },\n\n redirect: (path: string) => {\n // TanStack Router requires throwing the redirect() result directly\n // eslint-disable-next-line @typescript-eslint/only-throw-error\n throw redirect({ to: path })\n },\n\n permanentRedirect: (path: string) => {\n // TanStack Router does not have a separate permanent redirect primitive;\n // fall back to a regular redirect so existing behavior is preserved.\n // eslint-disable-next-line @typescript-eslint/only-throw-error\n throw redirect({ to: path })\n },\n\n forbidden: () => {\n // TanStack Router does not have a dedicated forbidden() helper; surface\n // a generic error so the request boundary still terminates the request.\n throw new Error('Forbidden')\n },\n\n unauthorized: () => {\n // TanStack Router does not have a dedicated unauthorized() helper; surface\n // a generic error so the request boundary still terminates the request.\n throw new Error('Unauthorized')\n },\n\n setCookie: (name: string, value: string, options?: CookieOptions) => {\n setResponseHeader('Set-Cookie', serializeCookie(name, value, options))\n },\n}\n\n/**\n * Navigation requested during an admin page render, recorded by\n * `createPageRenderServerAdapter`. The admin-page server function reads this\n * after `renderServerComponent` resolves.\n */\nexport type PageNavIntent = {\n type?: 'notFound' | 'redirect'\n url?: string\n}\n\n/**\n * Builds the `ServerAdapter` for the admin page render (`renderRoot`). Like\n * `tanstackServerAdapter` for cookies/headers, but navigation **records the\n * intent on `nav` and throws** the framework-agnostic string error-contract\n * (`Error('not-found')` / `Error('redirect:<url>')`) instead of TanStack's\n * native `notFound`/`redirect`.\n *\n * `renderRoot` navigates via `req.server.*` in two places:\n * - during orchestration (e.g. the unauthenticated login redirect) — the throw\n * propagates out of `renderRoot` and is caught by the loader's try/catch;\n * - deep inside streamed view components (e.g. `DocumentView` access checks,\n * `LoginView` already-authenticated) — here the throw happens during\n * `renderServerComponent` and is swallowed into the RSC stream, so it never\n * rejects the render promise.\n *\n * Recording the intent on `nav` lets the loader honor the second case by\n * inspecting `nav` after the render resolves, then re-throwing native TanStack\n * nav at the loader boundary.\n */\nexport const createPageRenderServerAdapter = (nav: PageNavIntent): ServerAdapter => ({\n ...tanstackServerAdapter,\n notFound: () => {\n nav.type = 'notFound'\n throw new Error('not-found')\n },\n permanentRedirect: (path: string) => {\n nav.type = 'redirect'\n nav.url = path\n throw new Error(`redirect:${path}`)\n },\n redirect: (path: string) => {\n nav.type = 'redirect'\n nav.url = path\n throw new Error(`redirect:${path}`)\n },\n})\n"],"names":["notFound","redirect","getRequest","setResponseHeader","parseCookies","buildCookieStore","headers","cookies","get","name","value","undefined","getAll","Array","from","entries","map","serializeCookie","options","cookie","encodeURIComponent","path","domain","maxAge","expires","toUTCString","httpOnly","secure","sameSite","charAt","toUpperCase","slice","tanstackServerAdapter","getCookies","request","Headers","getHeaders","to","permanentRedirect","forbidden","Error","unauthorized","setCookie","createPageRenderServerAdapter","nav","type","url"],"mappings":"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"}
@@ -1,2 +0,0 @@
1
- export declare function toSerializable<T>(value: T): T;
2
- //# sourceMappingURL=toSerializable.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"toSerializable.d.ts","sourceRoot":"","sources":["../../src/utilities/toSerializable.ts"],"names":[],"mappings":"AA6HA,wBAAgB,cAAc,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC,GAAG,CAAC,CAE7C"}
@@ -1,111 +0,0 @@
1
- /**
2
- * Recursively strip values that seroval cannot serialize (React elements,
3
- * functions, Symbols) while preserving Maps, Sets, Dates, typed arrays, etc.
4
- *
5
- * TanStack Start uses seroval to transfer server function return values to
6
- * the client. Payload's `getClientConfig` / `getLayoutData` may include
7
- * callback functions or RegExp instances that seroval chokes on. Running
8
- * the data through this function before returning from a `createServerFn`
9
- * handler keeps the transfer safe.
10
- *
11
- * For server functions whose payloads contain React elements (e.g. the
12
- * shared `form-state` / `render-list` / `render-document` handlers), use
13
- * `serializeForRsc` instead — it converts elements into RSC handles rather
14
- * than stripping them.
15
- *
16
- * Uses a WeakMap cache so that shared object references (e.g. the same array
17
- * referenced by both `doc.hasMany` and `formState.hasMany.value`) are
18
- * returned correctly instead of being dropped as "already seen".
19
- *
20
- * A separate `ancestors` WeakSet tracks objects currently being recursed into.
21
- * If an object is encountered while it is still on the recursion stack, the
22
- * reference is circular and is replaced with `undefined` to keep the output
23
- * JSON-safe. Once recursion completes the object is removed from `ancestors`,
24
- * so sibling/cousin references to the same (fully-processed) object still
25
- * resolve to the cached clone.
26
- */ function stripUnserializable(value, cache = new WeakMap(), ancestors = new WeakSet()) {
27
- if (value === null || value === undefined) {
28
- return value;
29
- }
30
- const t = typeof value;
31
- if (t === 'function' || t === 'symbol') {
32
- return undefined;
33
- }
34
- if (t !== 'object') {
35
- return value;
36
- }
37
- const obj = value;
38
- if (typeof obj.$$typeof === 'symbol') {
39
- return undefined;
40
- }
41
- if (ancestors.has(obj)) {
42
- return undefined;
43
- }
44
- if (cache.has(obj)) {
45
- return cache.get(obj);
46
- }
47
- if (obj instanceof Date) {
48
- return obj;
49
- }
50
- // RegExp: seroval's SSR bootstrap emits regex literals with broken escape
51
- // sequences (e.g. `/!\\[.../` instead of `/!\[.../`), crashing the client
52
- // script that populates `window.$_TSR` and preventing hydration. Rich-text
53
- // feature transformer regexes aren't needed on the client (they drive
54
- // server-side markdown import/export), so strip them here.
55
- if (obj instanceof RegExp) {
56
- return undefined;
57
- }
58
- ancestors.add(obj);
59
- if (obj instanceof Map) {
60
- const cleaned = new Map();
61
- cache.set(obj, cleaned);
62
- for (const [k, v] of obj){
63
- const cv = stripUnserializable(v, cache, ancestors);
64
- if (cv !== undefined) {
65
- cleaned.set(k, cv);
66
- }
67
- }
68
- ancestors.delete(obj);
69
- return cleaned;
70
- }
71
- if (obj instanceof Set) {
72
- const cleaned = new Set();
73
- cache.set(obj, cleaned);
74
- for (const v of obj){
75
- const cv = stripUnserializable(v, cache, ancestors);
76
- if (cv !== undefined) {
77
- cleaned.add(cv);
78
- }
79
- }
80
- ancestors.delete(obj);
81
- return cleaned;
82
- }
83
- if (Array.isArray(obj)) {
84
- const arr = [];
85
- cache.set(obj, arr);
86
- for (const item of obj){
87
- arr.push(stripUnserializable(item, cache, ancestors));
88
- }
89
- ancestors.delete(obj);
90
- return arr;
91
- }
92
- if (ArrayBuffer.isView(obj)) {
93
- ancestors.delete(obj);
94
- return obj;
95
- }
96
- const result = {};
97
- cache.set(obj, result);
98
- for (const key of Object.keys(obj)){
99
- const v = stripUnserializable(obj[key], cache, ancestors);
100
- if (v !== undefined) {
101
- result[key] = v;
102
- }
103
- }
104
- ancestors.delete(obj);
105
- return result;
106
- }
107
- export function toSerializable(value) {
108
- return stripUnserializable(value);
109
- }
110
-
111
- //# sourceMappingURL=toSerializable.js.map
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../../src/utilities/toSerializable.ts"],"sourcesContent":["/**\n * Recursively strip values that seroval cannot serialize (React elements,\n * functions, Symbols) while preserving Maps, Sets, Dates, typed arrays, etc.\n *\n * TanStack Start uses seroval to transfer server function return values to\n * the client. Payload's `getClientConfig` / `getLayoutData` may include\n * callback functions or RegExp instances that seroval chokes on. Running\n * the data through this function before returning from a `createServerFn`\n * handler keeps the transfer safe.\n *\n * For server functions whose payloads contain React elements (e.g. the\n * shared `form-state` / `render-list` / `render-document` handlers), use\n * `serializeForRsc` instead — it converts elements into RSC handles rather\n * than stripping them.\n *\n * Uses a WeakMap cache so that shared object references (e.g. the same array\n * referenced by both `doc.hasMany` and `formState.hasMany.value`) are\n * returned correctly instead of being dropped as \"already seen\".\n *\n * A separate `ancestors` WeakSet tracks objects currently being recursed into.\n * If an object is encountered while it is still on the recursion stack, the\n * reference is circular and is replaced with `undefined` to keep the output\n * JSON-safe. Once recursion completes the object is removed from `ancestors`,\n * so sibling/cousin references to the same (fully-processed) object still\n * resolve to the cached clone.\n */\nfunction stripUnserializable(\n value: unknown,\n cache = new WeakMap<object, unknown>(),\n ancestors = new WeakSet<object>(),\n): unknown {\n if (value === null || value === undefined) {\n return value\n }\n\n const t = typeof value\n if (t === 'function' || t === 'symbol') {\n return undefined\n }\n if (t !== 'object') {\n return value\n }\n\n const obj = value as Record<string, unknown>\n\n if (typeof obj.$$typeof === 'symbol') {\n return undefined\n }\n\n if (ancestors.has(obj)) {\n return undefined\n }\n\n if (cache.has(obj)) {\n return cache.get(obj)\n }\n\n if (obj instanceof Date) {\n return obj\n }\n\n // RegExp: seroval's SSR bootstrap emits regex literals with broken escape\n // sequences (e.g. `/!\\\\[.../` instead of `/!\\[.../`), crashing the client\n // script that populates `window.$_TSR` and preventing hydration. Rich-text\n // feature transformer regexes aren't needed on the client (they drive\n // server-side markdown import/export), so strip them here.\n if (obj instanceof RegExp) {\n return undefined\n }\n\n ancestors.add(obj)\n\n if (obj instanceof Map) {\n const cleaned = new Map()\n cache.set(obj, cleaned)\n for (const [k, v] of obj) {\n const cv = stripUnserializable(v, cache, ancestors)\n if (cv !== undefined) {\n cleaned.set(k, cv)\n }\n }\n ancestors.delete(obj)\n return cleaned\n }\n\n if (obj instanceof Set) {\n const cleaned = new Set()\n cache.set(obj, cleaned)\n for (const v of obj) {\n const cv = stripUnserializable(v, cache, ancestors)\n if (cv !== undefined) {\n cleaned.add(cv)\n }\n }\n ancestors.delete(obj)\n return cleaned\n }\n\n if (Array.isArray(obj)) {\n const arr: unknown[] = []\n cache.set(obj, arr)\n for (const item of obj) {\n arr.push(stripUnserializable(item, cache, ancestors))\n }\n ancestors.delete(obj)\n return arr\n }\n\n if (ArrayBuffer.isView(obj)) {\n ancestors.delete(obj)\n return obj\n }\n\n const result: Record<string, unknown> = {}\n cache.set(obj, result)\n for (const key of Object.keys(obj)) {\n const v = stripUnserializable(obj[key], cache, ancestors)\n if (v !== undefined) {\n result[key] = v\n }\n }\n ancestors.delete(obj)\n return result\n}\n\nexport function toSerializable<T>(value: T): T {\n return stripUnserializable(value) as T\n}\n"],"names":["stripUnserializable","value","cache","WeakMap","ancestors","WeakSet","undefined","t","obj","$$typeof","has","get","Date","RegExp","add","Map","cleaned","set","k","v","cv","delete","Set","Array","isArray","arr","item","push","ArrayBuffer","isView","result","key","Object","keys","toSerializable"],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;CAyBC,GACD,SAASA,oBACPC,KAAc,EACdC,QAAQ,IAAIC,SAA0B,EACtCC,YAAY,IAAIC,SAAiB;IAEjC,IAAIJ,UAAU,QAAQA,UAAUK,WAAW;QACzC,OAAOL;IACT;IAEA,MAAMM,IAAI,OAAON;IACjB,IAAIM,MAAM,cAAcA,MAAM,UAAU;QACtC,OAAOD;IACT;IACA,IAAIC,MAAM,UAAU;QAClB,OAAON;IACT;IAEA,MAAMO,MAAMP;IAEZ,IAAI,OAAOO,IAAIC,QAAQ,KAAK,UAAU;QACpC,OAAOH;IACT;IAEA,IAAIF,UAAUM,GAAG,CAACF,MAAM;QACtB,OAAOF;IACT;IAEA,IAAIJ,MAAMQ,GAAG,CAACF,MAAM;QAClB,OAAON,MAAMS,GAAG,CAACH;IACnB;IAEA,IAAIA,eAAeI,MAAM;QACvB,OAAOJ;IACT;IAEA,0EAA0E;IAC1E,0EAA0E;IAC1E,2EAA2E;IAC3E,sEAAsE;IACtE,2DAA2D;IAC3D,IAAIA,eAAeK,QAAQ;QACzB,OAAOP;IACT;IAEAF,UAAUU,GAAG,CAACN;IAEd,IAAIA,eAAeO,KAAK;QACtB,MAAMC,UAAU,IAAID;QACpBb,MAAMe,GAAG,CAACT,KAAKQ;QACf,KAAK,MAAM,CAACE,GAAGC,EAAE,IAAIX,IAAK;YACxB,MAAMY,KAAKpB,oBAAoBmB,GAAGjB,OAAOE;YACzC,IAAIgB,OAAOd,WAAW;gBACpBU,QAAQC,GAAG,CAACC,GAAGE;YACjB;QACF;QACAhB,UAAUiB,MAAM,CAACb;QACjB,OAAOQ;IACT;IAEA,IAAIR,eAAec,KAAK;QACtB,MAAMN,UAAU,IAAIM;QACpBpB,MAAMe,GAAG,CAACT,KAAKQ;QACf,KAAK,MAAMG,KAAKX,IAAK;YACnB,MAAMY,KAAKpB,oBAAoBmB,GAAGjB,OAAOE;YACzC,IAAIgB,OAAOd,WAAW;gBACpBU,QAAQF,GAAG,CAACM;YACd;QACF;QACAhB,UAAUiB,MAAM,CAACb;QACjB,OAAOQ;IACT;IAEA,IAAIO,MAAMC,OAAO,CAAChB,MAAM;QACtB,MAAMiB,MAAiB,EAAE;QACzBvB,MAAMe,GAAG,CAACT,KAAKiB;QACf,KAAK,MAAMC,QAAQlB,IAAK;YACtBiB,IAAIE,IAAI,CAAC3B,oBAAoB0B,MAAMxB,OAAOE;QAC5C;QACAA,UAAUiB,MAAM,CAACb;QACjB,OAAOiB;IACT;IAEA,IAAIG,YAAYC,MAAM,CAACrB,MAAM;QAC3BJ,UAAUiB,MAAM,CAACb;QACjB,OAAOA;IACT;IAEA,MAAMsB,SAAkC,CAAC;IACzC5B,MAAMe,GAAG,CAACT,KAAKsB;IACf,KAAK,MAAMC,OAAOC,OAAOC,IAAI,CAACzB,KAAM;QAClC,MAAMW,IAAInB,oBAAoBQ,GAAG,CAACuB,IAAI,EAAE7B,OAAOE;QAC/C,IAAIe,MAAMb,WAAW;YACnBwB,MAAM,CAACC,IAAI,GAAGZ;QAChB;IACF;IACAf,UAAUiB,MAAM,CAACb;IACjB,OAAOsB;AACT;AAEA,OAAO,SAASI,eAAkBjC,KAAQ;IACxC,OAAOD,oBAAoBC;AAC7B"}