@payloadcms/tanstack-start 4.0.0-canary.8

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (216) hide show
  1. package/LICENSE.md +22 -0
  2. package/dist/auth/login.d.ts +17 -0
  3. package/dist/auth/login.d.ts.map +1 -0
  4. package/dist/auth/login.js +50 -0
  5. package/dist/auth/login.js.map +1 -0
  6. package/dist/auth/logout.d.ts +9 -0
  7. package/dist/auth/logout.d.ts.map +1 -0
  8. package/dist/auth/logout.js +51 -0
  9. package/dist/auth/logout.js.map +1 -0
  10. package/dist/auth/refresh.d.ts +8 -0
  11. package/dist/auth/refresh.d.ts.map +1 -0
  12. package/dist/auth/refresh.js +53 -0
  13. package/dist/auth/refresh.js.map +1 -0
  14. package/dist/elements/DocumentHeaderClient/index.d.ts +16 -0
  15. package/dist/elements/DocumentHeaderClient/index.d.ts.map +1 -0
  16. package/dist/elements/DocumentHeaderClient/index.js +116 -0
  17. package/dist/elements/DocumentHeaderClient/index.js.map +1 -0
  18. package/dist/elements/RenderComponent/index.d.ts +10 -0
  19. package/dist/elements/RenderComponent/index.d.ts.map +1 -0
  20. package/dist/elements/RenderComponent/index.js +12 -0
  21. package/dist/elements/RenderComponent/index.js.map +1 -0
  22. package/dist/elements/RouterAdapter/index.d.ts +3 -0
  23. package/dist/elements/RouterAdapter/index.d.ts.map +1 -0
  24. package/dist/elements/RouterAdapter/index.js +141 -0
  25. package/dist/elements/RouterAdapter/index.js.map +1 -0
  26. package/dist/exports/client.d.ts +8 -0
  27. package/dist/exports/client.d.ts.map +1 -0
  28. package/dist/exports/client.js +10 -0
  29. package/dist/exports/client.js.map +1 -0
  30. package/dist/exports/layouts.d.ts +6 -0
  31. package/dist/exports/layouts.d.ts.map +1 -0
  32. package/dist/exports/layouts.js +5 -0
  33. package/dist/exports/layouts.js.map +1 -0
  34. package/dist/exports/rsc.browser.d.ts +12 -0
  35. package/dist/exports/rsc.browser.d.ts.map +1 -0
  36. package/dist/exports/rsc.browser.js +12 -0
  37. package/dist/exports/rsc.browser.js.map +1 -0
  38. package/dist/exports/rsc.d.ts +5 -0
  39. package/dist/exports/rsc.d.ts.map +1 -0
  40. package/dist/exports/rsc.js +6 -0
  41. package/dist/exports/rsc.js.map +1 -0
  42. package/dist/exports/server.d.ts +17 -0
  43. package/dist/exports/server.d.ts.map +1 -0
  44. package/dist/exports/server.js +18 -0
  45. package/dist/exports/server.js.map +1 -0
  46. package/dist/exports/vite.d.ts +3 -0
  47. package/dist/exports/vite.d.ts.map +1 -0
  48. package/dist/exports/vite.js +3 -0
  49. package/dist/exports/vite.js.map +1 -0
  50. package/dist/index.d.ts +6 -0
  51. package/dist/index.d.ts.map +1 -0
  52. package/dist/index.js +7 -0
  53. package/dist/index.js.map +1 -0
  54. package/dist/layouts/Root/getLayoutData.d.ts +12 -0
  55. package/dist/layouts/Root/getLayoutData.d.ts.map +1 -0
  56. package/dist/layouts/Root/getLayoutData.js +91 -0
  57. package/dist/layouts/Root/getLayoutData.js.map +1 -0
  58. package/dist/layouts/Root/index.d.ts +32 -0
  59. package/dist/layouts/Root/index.d.ts.map +1 -0
  60. package/dist/layouts/Root/index.js +51 -0
  61. package/dist/layouts/Root/index.js.map +1 -0
  62. package/dist/layouts/Root/withPayloadRoot.d.ts +65 -0
  63. package/dist/layouts/Root/withPayloadRoot.d.ts.map +1 -0
  64. package/dist/layouts/Root/withPayloadRoot.js +92 -0
  65. package/dist/layouts/Root/withPayloadRoot.js.map +1 -0
  66. package/dist/node/cssLoader.d.mts +3 -0
  67. package/dist/node/cssLoader.d.mts.map +1 -0
  68. package/dist/node/cssLoader.js +70 -0
  69. package/dist/node/cssLoader.js.map +1 -0
  70. package/dist/node/cssLoader.mjs +75 -0
  71. package/dist/node/registerCssLoader.d.mts +2 -0
  72. package/dist/node/registerCssLoader.d.mts.map +1 -0
  73. package/dist/node/registerCssLoader.js +10 -0
  74. package/dist/node/registerCssLoader.js.map +1 -0
  75. package/dist/node/registerCssLoader.mjs +10 -0
  76. package/dist/routes/adminRoutes.d.ts +111 -0
  77. package/dist/routes/adminRoutes.d.ts.map +1 -0
  78. package/dist/routes/adminRoutes.js +108 -0
  79. package/dist/routes/adminRoutes.js.map +1 -0
  80. package/dist/routes/apiRoute.d.ts +29 -0
  81. package/dist/routes/apiRoute.d.ts.map +1 -0
  82. package/dist/routes/apiRoute.js +38 -0
  83. package/dist/routes/apiRoute.js.map +1 -0
  84. package/dist/routes/layoutRoute.d.ts +26 -0
  85. package/dist/routes/layoutRoute.d.ts.map +1 -0
  86. package/dist/routes/layoutRoute.js +57 -0
  87. package/dist/routes/layoutRoute.js.map +1 -0
  88. package/dist/rsc/CollectionCards.d.ts +4 -0
  89. package/dist/rsc/CollectionCards.d.ts.map +1 -0
  90. package/dist/rsc/CollectionCards.js +12 -0
  91. package/dist/rsc/CollectionCards.js.map +1 -0
  92. package/dist/rsc/HierarchyTypeFieldServer.d.ts +9 -0
  93. package/dist/rsc/HierarchyTypeFieldServer.d.ts.map +1 -0
  94. package/dist/rsc/HierarchyTypeFieldServer.js +35 -0
  95. package/dist/rsc/HierarchyTypeFieldServer.js.map +1 -0
  96. package/dist/rsc/renderOnDemand.d.ts +15 -0
  97. package/dist/rsc/renderOnDemand.d.ts.map +1 -0
  98. package/dist/rsc/renderOnDemand.js +25 -0
  99. package/dist/rsc/renderOnDemand.js.map +1 -0
  100. package/dist/rsc/renderPayloadRSC.d.ts +6 -0
  101. package/dist/rsc/renderPayloadRSC.d.ts.map +1 -0
  102. package/dist/rsc/renderPayloadRSC.js +6 -0
  103. package/dist/rsc/renderPayloadRSC.js.map +1 -0
  104. package/dist/utilities/devReloadStrategy.d.ts +10 -0
  105. package/dist/utilities/devReloadStrategy.d.ts.map +1 -0
  106. package/dist/utilities/devReloadStrategy.js +27 -0
  107. package/dist/utilities/devReloadStrategy.js.map +1 -0
  108. package/dist/utilities/getExistingAuthToken.d.ts +7 -0
  109. package/dist/utilities/getExistingAuthToken.d.ts.map +1 -0
  110. package/dist/utilities/getExistingAuthToken.js +18 -0
  111. package/dist/utilities/getExistingAuthToken.js.map +1 -0
  112. package/dist/utilities/getPreferences.d.ts +10 -0
  113. package/dist/utilities/getPreferences.d.ts.map +1 -0
  114. package/dist/utilities/getPreferences.js +33 -0
  115. package/dist/utilities/getPreferences.js.map +1 -0
  116. package/dist/utilities/getRequestI18n.server.d.ts +12 -0
  117. package/dist/utilities/getRequestI18n.server.d.ts.map +1 -0
  118. package/dist/utilities/getRequestI18n.server.js +25 -0
  119. package/dist/utilities/getRequestI18n.server.js.map +1 -0
  120. package/dist/utilities/getRequestLocale.d.ts +7 -0
  121. package/dist/utilities/getRequestLocale.d.ts.map +1 -0
  122. package/dist/utilities/getRequestLocale.js +20 -0
  123. package/dist/utilities/getRequestLocale.js.map +1 -0
  124. package/dist/utilities/getRequestTheme.d.ts +10 -0
  125. package/dist/utilities/getRequestTheme.d.ts.map +1 -0
  126. package/dist/utilities/getRequestTheme.js +25 -0
  127. package/dist/utilities/getRequestTheme.js.map +1 -0
  128. package/dist/utilities/graphqlHandler.server.d.ts +12 -0
  129. package/dist/utilities/graphqlHandler.server.d.ts.map +1 -0
  130. package/dist/utilities/graphqlHandler.server.js +129 -0
  131. package/dist/utilities/graphqlHandler.server.js.map +1 -0
  132. package/dist/utilities/handleAPIRoute.d.ts +11 -0
  133. package/dist/utilities/handleAPIRoute.d.ts.map +1 -0
  134. package/dist/utilities/handleAPIRoute.js +17 -0
  135. package/dist/utilities/handleAPIRoute.js.map +1 -0
  136. package/dist/utilities/handleServerFunctions.d.ts +20 -0
  137. package/dist/utilities/handleServerFunctions.d.ts.map +1 -0
  138. package/dist/utilities/handleServerFunctions.js +60 -0
  139. package/dist/utilities/handleServerFunctions.js.map +1 -0
  140. package/dist/utilities/importMap.server.d.ts +8 -0
  141. package/dist/utilities/importMap.server.d.ts.map +1 -0
  142. package/dist/utilities/importMap.server.js +11 -0
  143. package/dist/utilities/importMap.server.js.map +1 -0
  144. package/dist/utilities/initReq.server.d.ts +19 -0
  145. package/dist/utilities/initReq.server.d.ts.map +1 -0
  146. package/dist/utilities/initReq.server.js +87 -0
  147. package/dist/utilities/initReq.server.js.map +1 -0
  148. package/dist/utilities/loadAdminPage.d.ts +54 -0
  149. package/dist/utilities/loadAdminPage.d.ts.map +1 -0
  150. package/dist/utilities/loadAdminPage.js +230 -0
  151. package/dist/utilities/loadAdminPage.js.map +1 -0
  152. package/dist/utilities/loadLayoutData.d.ts +15 -0
  153. package/dist/utilities/loadLayoutData.d.ts.map +1 -0
  154. package/dist/utilities/loadLayoutData.js +23 -0
  155. package/dist/utilities/loadLayoutData.js.map +1 -0
  156. package/dist/utilities/meta.d.ts +70 -0
  157. package/dist/utilities/meta.d.ts.map +1 -0
  158. package/dist/utilities/meta.js +142 -0
  159. package/dist/utilities/meta.js.map +1 -0
  160. package/dist/utilities/serializeForRsc.d.ts +26 -0
  161. package/dist/utilities/serializeForRsc.d.ts.map +1 -0
  162. package/dist/utilities/serializeForRsc.js +122 -0
  163. package/dist/utilities/serializeForRsc.js.map +1 -0
  164. package/dist/utilities/serverAdapter.server.d.ts +36 -0
  165. package/dist/utilities/serverAdapter.server.d.ts.map +1 -0
  166. package/dist/utilities/serverAdapter.server.js +130 -0
  167. package/dist/utilities/serverAdapter.server.js.map +1 -0
  168. package/dist/utilities/serverFunctionClient.d.ts +29 -0
  169. package/dist/utilities/serverFunctionClient.d.ts.map +1 -0
  170. package/dist/utilities/serverFunctionClient.js +109 -0
  171. package/dist/utilities/serverFunctionClient.js.map +1 -0
  172. package/dist/utilities/serverFunctionHandlers.d.ts +18 -0
  173. package/dist/utilities/serverFunctionHandlers.d.ts.map +1 -0
  174. package/dist/utilities/serverFunctionHandlers.js +17 -0
  175. package/dist/utilities/serverFunctionHandlers.js.map +1 -0
  176. package/dist/utilities/setPayloadAuthCookie.d.ts +9 -0
  177. package/dist/utilities/setPayloadAuthCookie.d.ts.map +1 -0
  178. package/dist/utilities/setPayloadAuthCookie.js +31 -0
  179. package/dist/utilities/setPayloadAuthCookie.js.map +1 -0
  180. package/dist/utilities/toSerializable.d.ts +2 -0
  181. package/dist/utilities/toSerializable.d.ts.map +1 -0
  182. package/dist/utilities/toSerializable.js +111 -0
  183. package/dist/utilities/toSerializable.js.map +1 -0
  184. package/dist/vite/constants.d.ts +42 -0
  185. package/dist/vite/constants.d.ts.map +1 -0
  186. package/dist/vite/constants.js +177 -0
  187. package/dist/vite/constants.js.map +1 -0
  188. package/dist/vite/importProtection.d.ts +14 -0
  189. package/dist/vite/importProtection.d.ts.map +1 -0
  190. package/dist/vite/importProtection.js +54 -0
  191. package/dist/vite/importProtection.js.map +1 -0
  192. package/dist/vite/plugin.d.ts +38 -0
  193. package/dist/vite/plugin.d.ts.map +1 -0
  194. package/dist/vite/plugin.js +177 -0
  195. package/dist/vite/plugin.js.map +1 -0
  196. package/dist/vite/plugins/clientModuleResolution.d.ts +14 -0
  197. package/dist/vite/plugins/clientModuleResolution.d.ts.map +1 -0
  198. package/dist/vite/plugins/clientModuleResolution.js +98 -0
  199. package/dist/vite/plugins/clientModuleResolution.js.map +1 -0
  200. package/dist/vite/plugins/devTransforms.d.ts +19 -0
  201. package/dist/vite/plugins/devTransforms.d.ts.map +1 -0
  202. package/dist/vite/plugins/devTransforms.js +67 -0
  203. package/dist/vite/plugins/devTransforms.js.map +1 -0
  204. package/dist/vite/plugins/reactDomServerInRsc.d.ts +27 -0
  205. package/dist/vite/plugins/reactDomServerInRsc.d.ts.map +1 -0
  206. package/dist/vite/plugins/reactDomServerInRsc.js +90 -0
  207. package/dist/vite/plugins/reactDomServerInRsc.js.map +1 -0
  208. package/dist/vite/plugins/stripDistStyleImports.d.ts +21 -0
  209. package/dist/vite/plugins/stripDistStyleImports.d.ts.map +1 -0
  210. package/dist/vite/plugins/stripDistStyleImports.js +140 -0
  211. package/dist/vite/plugins/stripDistStyleImports.js.map +1 -0
  212. package/dist/vite/plugins/wrapCjsForClient.d.ts +15 -0
  213. package/dist/vite/plugins/wrapCjsForClient.d.ts.map +1 -0
  214. package/dist/vite/plugins/wrapCjsForClient.js +106 -0
  215. package/dist/vite/plugins/wrapCjsForClient.js.map +1 -0
  216. package/package.json +106 -0
@@ -0,0 +1,9 @@
1
+ import type { Option, SelectFieldServerProps } from 'payload';
2
+ import React from 'react';
3
+ type HierarchyTypeFieldServerProps = {
4
+ collectionOptions: Option[];
5
+ parentFieldName: string;
6
+ } & SelectFieldServerProps;
7
+ export declare const HierarchyTypeFieldServer: React.FC<HierarchyTypeFieldServerProps>;
8
+ export {};
9
+ //# sourceMappingURL=HierarchyTypeFieldServer.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"HierarchyTypeFieldServer.d.ts","sourceRoot":"","sources":["../../src/rsc/HierarchyTypeFieldServer.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,EAAE,sBAAsB,EAAE,MAAM,SAAS,CAAA;AAI7D,OAAO,KAAK,MAAM,OAAO,CAAA;AAEzB,KAAK,6BAA6B,GAAG;IACnC,iBAAiB,EAAE,MAAM,EAAE,CAAA;IAC3B,eAAe,EAAE,MAAM,CAAA;CACxB,GAAG,sBAAsB,CAAA;AAE1B,eAAO,MAAM,wBAAwB,EAAE,KAAK,CAAC,EAAE,CAAC,6BAA6B,CAuC5E,CAAA"}
@@ -0,0 +1,35 @@
1
+ import { jsx as _jsx } from "react/jsx-runtime";
2
+ import { getTranslation } from '@payloadcms/translations';
3
+ import { HierarchyTypeField } from '@payloadcms/ui';
4
+ import React from 'react';
5
+ export const HierarchyTypeFieldServer = ({ clientField, collectionOptions, i18n, parentFieldName, path, permissions, readOnly })=>{
6
+ // TODO(tanstack-start): in some RSC entry paths the `serverProps` declared
7
+ // on `admin.components.Field` (in `resolveHierarchyCollections.ts`) are not
8
+ // propagated to this component, leaving `collectionOptions` undefined. The
9
+ // Next.js adapter renders this identical component with the same config and
10
+ // always receives the prop, so the bug is in the tanstack-start renderer
11
+ // (likely `AdminView.tsx#renderComponentWithServerProps` / import-map
12
+ // resolution). Until that is fixed, default to an empty options list so the
13
+ // entire admin view doesn't crash with `Cannot read properties of undefined
14
+ // (reading 'map')`.
15
+ const safeCollectionOptions = collectionOptions ?? [];
16
+ const translatedOptions = safeCollectionOptions.map((option)=>{
17
+ if (typeof option === 'object' && 'label' in option) {
18
+ return {
19
+ ...option,
20
+ label: getTranslation(option.label, i18n)
21
+ };
22
+ }
23
+ return option;
24
+ });
25
+ return /*#__PURE__*/ _jsx(HierarchyTypeField, {
26
+ field: clientField,
27
+ options: translatedOptions,
28
+ parentFieldName: parentFieldName,
29
+ path: path,
30
+ permissions: permissions,
31
+ readOnly: readOnly
32
+ });
33
+ };
34
+
35
+ //# sourceMappingURL=HierarchyTypeFieldServer.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../src/rsc/HierarchyTypeFieldServer.tsx"],"sourcesContent":["import type { Option, SelectFieldServerProps } from 'payload'\n\nimport { getTranslation } from '@payloadcms/translations'\nimport { HierarchyTypeField } from '@payloadcms/ui'\nimport React from 'react'\n\ntype HierarchyTypeFieldServerProps = {\n collectionOptions: Option[]\n parentFieldName: string\n} & SelectFieldServerProps\n\nexport const HierarchyTypeFieldServer: React.FC<HierarchyTypeFieldServerProps> = ({\n clientField,\n collectionOptions,\n i18n,\n parentFieldName,\n path,\n permissions,\n readOnly,\n}) => {\n // TODO(tanstack-start): in some RSC entry paths the `serverProps` declared\n // on `admin.components.Field` (in `resolveHierarchyCollections.ts`) are not\n // propagated to this component, leaving `collectionOptions` undefined. The\n // Next.js adapter renders this identical component with the same config and\n // always receives the prop, so the bug is in the tanstack-start renderer\n // (likely `AdminView.tsx#renderComponentWithServerProps` / import-map\n // resolution). Until that is fixed, default to an empty options list so the\n // entire admin view doesn't crash with `Cannot read properties of undefined\n // (reading 'map')`.\n const safeCollectionOptions: Option[] = collectionOptions ?? []\n const translatedOptions: Option[] = safeCollectionOptions.map((option) => {\n if (typeof option === 'object' && 'label' in option) {\n return {\n ...option,\n label: getTranslation(option.label, i18n),\n }\n }\n return option\n })\n\n return (\n <HierarchyTypeField\n field={clientField}\n options={translatedOptions}\n parentFieldName={parentFieldName}\n path={path}\n permissions={permissions}\n readOnly={readOnly}\n />\n )\n}\n"],"names":["getTranslation","HierarchyTypeField","React","HierarchyTypeFieldServer","clientField","collectionOptions","i18n","parentFieldName","path","permissions","readOnly","safeCollectionOptions","translatedOptions","map","option","label","field","options"],"mappings":";AAEA,SAASA,cAAc,QAAQ,2BAA0B;AACzD,SAASC,kBAAkB,QAAQ,iBAAgB;AACnD,OAAOC,WAAW,QAAO;AAOzB,OAAO,MAAMC,2BAAoE,CAAC,EAChFC,WAAW,EACXC,iBAAiB,EACjBC,IAAI,EACJC,eAAe,EACfC,IAAI,EACJC,WAAW,EACXC,QAAQ,EACT;IACC,2EAA2E;IAC3E,4EAA4E;IAC5E,2EAA2E;IAC3E,4EAA4E;IAC5E,yEAAyE;IACzE,sEAAsE;IACtE,4EAA4E;IAC5E,4EAA4E;IAC5E,oBAAoB;IACpB,MAAMC,wBAAkCN,qBAAqB,EAAE;IAC/D,MAAMO,oBAA8BD,sBAAsBE,GAAG,CAAC,CAACC;QAC7D,IAAI,OAAOA,WAAW,YAAY,WAAWA,QAAQ;YACnD,OAAO;gBACL,GAAGA,MAAM;gBACTC,OAAOf,eAAec,OAAOC,KAAK,EAAET;YACtC;QACF;QACA,OAAOQ;IACT;IAEA,qBACE,KAACb;QACCe,OAAOZ;QACPa,SAASL;QACTL,iBAAiBA;QACjBC,MAAMA;QACNC,aAAaA;QACbC,UAAUA;;AAGhB,EAAC"}
@@ -0,0 +1,15 @@
1
+ import type { ImportMap, PayloadComponent } from 'payload';
2
+ import React from 'react';
3
+ /**
4
+ * Renders a Payload server component on-demand using TanStack Start's RSC runtime.
5
+ * Use this in `createServerFn` handlers when you need to render a server component
6
+ * outside of the initial page data fetch (e.g. for drawers, dynamic widgets).
7
+ *
8
+ * Returns `null` if the component is not found or is not a server component.
9
+ */
10
+ export declare function renderPayloadComponentOnServer({ componentPath, importMap, props, }: {
11
+ componentPath: PayloadComponent;
12
+ importMap: ImportMap;
13
+ props: Record<string, unknown>;
14
+ }): Promise<null | React.ReactNode>;
15
+ //# sourceMappingURL=renderOnDemand.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"renderOnDemand.d.ts","sourceRoot":"","sources":["../../src/rsc/renderOnDemand.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,gBAAgB,EAAE,MAAM,SAAS,CAAA;AAG1D,OAAO,KAAK,MAAM,OAAO,CAAA;AAEzB;;;;;;GAMG;AACH,wBAAsB,8BAA8B,CAAC,EACnD,aAAa,EACb,SAAS,EACT,KAAK,GACN,EAAE;IACD,aAAa,EAAE,gBAAgB,CAAA;IAC/B,SAAS,EAAE,SAAS,CAAA;IACpB,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;CAC/B,GAAG,OAAO,CAAC,IAAI,GAAG,KAAK,CAAC,SAAS,CAAC,CAkBlC"}
@@ -0,0 +1,25 @@
1
+ import { getFromImportMap, isReactServerComponentOrFunction } from 'payload/shared';
2
+ import React from 'react';
3
+ /**
4
+ * Renders a Payload server component on-demand using TanStack Start's RSC runtime.
5
+ * Use this in `createServerFn` handlers when you need to render a server component
6
+ * outside of the initial page data fetch (e.g. for drawers, dynamic widgets).
7
+ *
8
+ * Returns `null` if the component is not found or is not a server component.
9
+ */ export async function renderPayloadComponentOnServer({ componentPath, importMap, props }) {
10
+ const Component = getFromImportMap({
11
+ importMap,
12
+ PayloadComponent: componentPath,
13
+ schemaPath: ''
14
+ });
15
+ if (!Component) {
16
+ return null;
17
+ }
18
+ if (!isReactServerComponentOrFunction(Component)) {
19
+ return null;
20
+ }
21
+ const { renderServerComponent } = await import('@tanstack/react-start/rsc');
22
+ return renderServerComponent(React.createElement(Component, props));
23
+ }
24
+
25
+ //# sourceMappingURL=renderOnDemand.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../src/rsc/renderOnDemand.ts"],"sourcesContent":["import type { ImportMap, PayloadComponent } from 'payload'\n\nimport { getFromImportMap, isReactServerComponentOrFunction } from 'payload/shared'\nimport React from 'react'\n\n/**\n * Renders a Payload server component on-demand using TanStack Start's RSC runtime.\n * Use this in `createServerFn` handlers when you need to render a server component\n * outside of the initial page data fetch (e.g. for drawers, dynamic widgets).\n *\n * Returns `null` if the component is not found or is not a server component.\n */\nexport async function renderPayloadComponentOnServer({\n componentPath,\n importMap,\n props,\n}: {\n componentPath: PayloadComponent\n importMap: ImportMap\n props: Record<string, unknown>\n}): Promise<null | React.ReactNode> {\n const Component = getFromImportMap<React.ComponentType>({\n importMap,\n PayloadComponent: componentPath,\n schemaPath: '',\n })\n\n if (!Component) {\n return null\n }\n\n if (!isReactServerComponentOrFunction(Component)) {\n return null\n }\n\n const { renderServerComponent } = await import('@tanstack/react-start/rsc')\n\n return renderServerComponent(React.createElement(Component, props))\n}\n"],"names":["getFromImportMap","isReactServerComponentOrFunction","React","renderPayloadComponentOnServer","componentPath","importMap","props","Component","PayloadComponent","schemaPath","renderServerComponent","createElement"],"mappings":"AAEA,SAASA,gBAAgB,EAAEC,gCAAgC,QAAQ,iBAAgB;AACnF,OAAOC,WAAW,QAAO;AAEzB;;;;;;CAMC,GACD,OAAO,eAAeC,+BAA+B,EACnDC,aAAa,EACbC,SAAS,EACTC,KAAK,EAKN;IACC,MAAMC,YAAYP,iBAAsC;QACtDK;QACAG,kBAAkBJ;QAClBK,YAAY;IACd;IAEA,IAAI,CAACF,WAAW;QACd,OAAO;IACT;IAEA,IAAI,CAACN,iCAAiCM,YAAY;QAChD,OAAO;IACT;IAEA,MAAM,EAAEG,qBAAqB,EAAE,GAAG,MAAM,MAAM,CAAC;IAE/C,OAAOA,sBAAsBR,MAAMS,aAAa,CAACJ,WAAWD;AAC9D"}
@@ -0,0 +1,6 @@
1
+ /**
2
+ * @deprecated Import `RenderServerComponent` from `@payloadcms/ui/elements/RenderServerComponent` directly.
3
+ * This re-export will be removed in a future major version.
4
+ */
5
+ export { RenderServerComponent as RenderRSCComponent } from '@payloadcms/ui/elements/RenderServerComponent';
6
+ //# sourceMappingURL=renderPayloadRSC.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"renderPayloadRSC.d.ts","sourceRoot":"","sources":["../../src/rsc/renderPayloadRSC.tsx"],"names":[],"mappings":"AAAA;;;GAGG;AACH,OAAO,EAAE,qBAAqB,IAAI,kBAAkB,EAAE,MAAM,+CAA+C,CAAA"}
@@ -0,0 +1,6 @@
1
+ /**
2
+ * @deprecated Import `RenderServerComponent` from `@payloadcms/ui/elements/RenderServerComponent` directly.
3
+ * This re-export will be removed in a future major version.
4
+ */ export { RenderServerComponent as RenderRSCComponent } from '@payloadcms/ui/elements/RenderServerComponent';
5
+
6
+ //# sourceMappingURL=renderPayloadRSC.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../src/rsc/renderPayloadRSC.tsx"],"sourcesContent":["/**\n * @deprecated Import `RenderServerComponent` from `@payloadcms/ui/elements/RenderServerComponent` directly.\n * This re-export will be removed in a future major version.\n */\nexport { RenderServerComponent as RenderRSCComponent } from '@payloadcms/ui/elements/RenderServerComponent'\n"],"names":["RenderServerComponent","RenderRSCComponent"],"mappings":"AAAA;;;CAGC,GACD,SAASA,yBAAyBC,kBAAkB,QAAQ,gDAA+C"}
@@ -0,0 +1,10 @@
1
+ import type { DevReloadStrategy } from 'payload';
2
+ /**
3
+ * Dev reload strategy for Vite (used by TanStack Start).
4
+ *
5
+ * Connects to Vite's HMR WebSocket and triggers a callback on full reloads.
6
+ * In development, Vite sends HMR updates over a WebSocket connection at
7
+ * the configured HMR path (defaults to root).
8
+ */
9
+ export declare const viteDevReloadStrategy: DevReloadStrategy;
10
+ //# sourceMappingURL=devReloadStrategy.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"devReloadStrategy.d.ts","sourceRoot":"","sources":["../../src/utilities/devReloadStrategy.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,SAAS,CAAA;AAEhD;;;;;;GAMG;AACH,eAAO,MAAM,qBAAqB,EAAE,iBAuBnC,CAAA"}
@@ -0,0 +1,27 @@
1
+ /**
2
+ * Dev reload strategy for Vite (used by TanStack Start).
3
+ *
4
+ * Connects to Vite's HMR WebSocket and triggers a callback on full reloads.
5
+ * In development, Vite sends HMR updates over a WebSocket connection at
6
+ * the configured HMR path (defaults to root).
7
+ */ export const viteDevReloadStrategy = {
8
+ connect: (onReload)=>{
9
+ if (typeof window === 'undefined') {
10
+ return ()=>{};
11
+ }
12
+ // Vite injects import.meta.hot in development builds
13
+ const hot = import.meta.hot;
14
+ if (!hot) {
15
+ return ()=>{};
16
+ }
17
+ const handleUpdate = ()=>{
18
+ onReload();
19
+ };
20
+ hot.on('vite:beforeFullReload', handleUpdate);
21
+ return ()=>{
22
+ hot.off('vite:beforeFullReload', handleUpdate);
23
+ };
24
+ }
25
+ };
26
+
27
+ //# sourceMappingURL=devReloadStrategy.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../src/utilities/devReloadStrategy.ts"],"sourcesContent":["import type { DevReloadStrategy } from 'payload'\n\n/**\n * Dev reload strategy for Vite (used by TanStack Start).\n *\n * Connects to Vite's HMR WebSocket and triggers a callback on full reloads.\n * In development, Vite sends HMR updates over a WebSocket connection at\n * the configured HMR path (defaults to root).\n */\nexport const viteDevReloadStrategy: DevReloadStrategy = {\n connect: (onReload) => {\n if (typeof window === 'undefined') {\n return () => {}\n }\n\n // Vite injects import.meta.hot in development builds\n const hot = (import.meta as unknown as { hot?: ViteHotContext }).hot\n\n if (!hot) {\n return () => {}\n }\n\n const handleUpdate = () => {\n onReload()\n }\n\n hot.on('vite:beforeFullReload', handleUpdate)\n\n return () => {\n hot.off('vite:beforeFullReload', handleUpdate)\n }\n },\n}\n\ntype ViteHotContext = {\n off: (event: string, cb: () => void) => void\n on: (event: string, cb: () => void) => void\n}\n"],"names":["viteDevReloadStrategy","connect","onReload","window","hot","handleUpdate","on","off"],"mappings":"AAEA;;;;;;CAMC,GACD,OAAO,MAAMA,wBAA2C;IACtDC,SAAS,CAACC;QACR,IAAI,OAAOC,WAAW,aAAa;YACjC,OAAO,KAAO;QAChB;QAEA,qDAAqD;QACrD,MAAMC,MAAM,AAAC,YAAoDA,GAAG;QAEpE,IAAI,CAACA,KAAK;YACR,OAAO,KAAO;QAChB;QAEA,MAAMC,eAAe;YACnBH;QACF;QAEAE,IAAIE,EAAE,CAAC,yBAAyBD;QAEhC,OAAO;YACLD,IAAIG,GAAG,CAAC,yBAAyBF;QACnC;IACF;AACF,EAAC"}
@@ -0,0 +1,7 @@
1
+ type Cookie = {
2
+ name: string;
3
+ value: string;
4
+ };
5
+ export declare function getExistingAuthToken(cookiePrefix: string): Cookie | undefined;
6
+ export {};
7
+ //# sourceMappingURL=getExistingAuthToken.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"getExistingAuthToken.d.ts","sourceRoot":"","sources":["../../src/utilities/getExistingAuthToken.ts"],"names":[],"mappings":"AAGA,KAAK,MAAM,GAAG;IACZ,IAAI,EAAE,MAAM,CAAA;IACZ,KAAK,EAAE,MAAM,CAAA;CACd,CAAA;AAED,wBAAgB,oBAAoB,CAAC,YAAY,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS,CAY7E"}
@@ -0,0 +1,18 @@
1
+ import { getRequest } from '@tanstack/react-start/server';
2
+ import { parseCookies } from 'payload';
3
+ export function getExistingAuthToken(cookiePrefix) {
4
+ const request = getRequest();
5
+ const headers = new Headers(request.headers);
6
+ const cookies = parseCookies(headers);
7
+ for (const [name, value] of cookies.entries()){
8
+ if (name.startsWith(cookiePrefix)) {
9
+ return {
10
+ name,
11
+ value
12
+ };
13
+ }
14
+ }
15
+ return undefined;
16
+ }
17
+
18
+ //# sourceMappingURL=getExistingAuthToken.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../src/utilities/getExistingAuthToken.ts"],"sourcesContent":["import { getRequest } from '@tanstack/react-start/server'\nimport { parseCookies } from 'payload'\n\ntype Cookie = {\n name: string\n value: string\n}\n\nexport function getExistingAuthToken(cookiePrefix: string): Cookie | undefined {\n const request = getRequest()\n const headers = new Headers(request.headers)\n const cookies = parseCookies(headers)\n\n for (const [name, value] of cookies.entries()) {\n if (name.startsWith(cookiePrefix)) {\n return { name, value }\n }\n }\n\n return undefined\n}\n"],"names":["getRequest","parseCookies","getExistingAuthToken","cookiePrefix","request","headers","Headers","cookies","name","value","entries","startsWith","undefined"],"mappings":"AAAA,SAASA,UAAU,QAAQ,+BAA8B;AACzD,SAASC,YAAY,QAAQ,UAAS;AAOtC,OAAO,SAASC,qBAAqBC,YAAoB;IACvD,MAAMC,UAAUJ;IAChB,MAAMK,UAAU,IAAIC,QAAQF,QAAQC,OAAO;IAC3C,MAAME,UAAUN,aAAaI;IAE7B,KAAK,MAAM,CAACG,MAAMC,MAAM,IAAIF,QAAQG,OAAO,GAAI;QAC7C,IAAIF,KAAKG,UAAU,CAACR,eAAe;YACjC,OAAO;gBAAEK;gBAAMC;YAAM;QACvB;IACF;IAEA,OAAOG;AACT"}
@@ -0,0 +1,10 @@
1
+ import type { DefaultDocumentIDType, Payload } from 'payload';
2
+ /**
3
+ * Fetches a user's preference by key. Unlike the Next.js version, this does not
4
+ * use `React.cache()` since TanStack Start has no RSC request-level memoization.
5
+ */
6
+ export declare function getPreferences<T>(key: string, payload: Payload, userID: DefaultDocumentIDType, userSlug: string): Promise<{
7
+ id: DefaultDocumentIDType;
8
+ value: T;
9
+ }>;
10
+ //# sourceMappingURL=getPreferences.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"getPreferences.d.ts","sourceRoot":"","sources":["../../src/utilities/getPreferences.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,qBAAqB,EAAE,OAAO,EAAE,MAAM,SAAS,CAAA;AAE7D;;;GAGG;AACH,wBAAsB,cAAc,CAAC,CAAC,EACpC,GAAG,EAAE,MAAM,EACX,OAAO,EAAE,OAAO,EAChB,MAAM,EAAE,qBAAqB,EAC7B,QAAQ,EAAE,MAAM,GACf,OAAO,CAAC;IAAE,EAAE,EAAE,qBAAqB,CAAC;IAAC,KAAK,EAAE,CAAC,CAAA;CAAE,CAAC,CA8BlD"}
@@ -0,0 +1,33 @@
1
+ /**
2
+ * Fetches a user's preference by key. Unlike the Next.js version, this does not
3
+ * use `React.cache()` since TanStack Start has no RSC request-level memoization.
4
+ */ export async function getPreferences(key, payload, userID, userSlug) {
5
+ const result = await payload.find({
6
+ collection: 'payload-preferences',
7
+ depth: 0,
8
+ limit: 1,
9
+ pagination: false,
10
+ where: {
11
+ and: [
12
+ {
13
+ key: {
14
+ equals: key
15
+ }
16
+ },
17
+ {
18
+ 'user.relationTo': {
19
+ equals: userSlug
20
+ }
21
+ },
22
+ {
23
+ 'user.value': {
24
+ equals: userID
25
+ }
26
+ }
27
+ ]
28
+ }
29
+ }).then((res)=>res.docs?.[0]);
30
+ return result;
31
+ }
32
+
33
+ //# sourceMappingURL=getPreferences.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../src/utilities/getPreferences.ts"],"sourcesContent":["import type { DefaultDocumentIDType, Payload } from 'payload'\n\n/**\n * Fetches a user's preference by key. Unlike the Next.js version, this does not\n * use `React.cache()` since TanStack Start has no RSC request-level memoization.\n */\nexport async function getPreferences<T>(\n key: string,\n payload: Payload,\n userID: DefaultDocumentIDType,\n userSlug: string,\n): Promise<{ id: DefaultDocumentIDType; value: T }> {\n const result = (await payload\n .find({\n collection: 'payload-preferences',\n depth: 0,\n limit: 1,\n pagination: false,\n where: {\n and: [\n {\n key: {\n equals: key,\n },\n },\n {\n 'user.relationTo': {\n equals: userSlug,\n },\n },\n {\n 'user.value': {\n equals: userID,\n },\n },\n ],\n },\n })\n .then((res) => res.docs?.[0])) as { id: DefaultDocumentIDType; value: T }\n\n return result\n}\n"],"names":["getPreferences","key","payload","userID","userSlug","result","find","collection","depth","limit","pagination","where","and","equals","then","res","docs"],"mappings":"AAEA;;;CAGC,GACD,OAAO,eAAeA,eACpBC,GAAW,EACXC,OAAgB,EAChBC,MAA6B,EAC7BC,QAAgB;IAEhB,MAAMC,SAAU,MAAMH,QACnBI,IAAI,CAAC;QACJC,YAAY;QACZC,OAAO;QACPC,OAAO;QACPC,YAAY;QACZC,OAAO;YACLC,KAAK;gBACH;oBACEX,KAAK;wBACHY,QAAQZ;oBACV;gBACF;gBACA;oBACE,mBAAmB;wBACjBY,QAAQT;oBACV;gBACF;gBACA;oBACE,cAAc;wBACZS,QAAQV;oBACV;gBACF;aACD;QACH;IACF,GACCW,IAAI,CAAC,CAACC,MAAQA,IAAIC,IAAI,EAAE,CAAC,EAAE;IAE9B,OAAOX;AACT"}
@@ -0,0 +1,12 @@
1
+ import type { I18nClient } from '@payloadcms/translations';
2
+ import type { SanitizedConfig } from 'payload';
3
+ /**
4
+ * Resolves the client `I18n` for the current TanStack Start request without a
5
+ * full `initReq` (no `getPayload`/auth/access). Mirrors the Next.js adapter's
6
+ * `getNextRequestI18n` and feeds the shared `generatePageMetadata`, which only
7
+ * needs `config` + `i18n` to translate admin-page titles.
8
+ */
9
+ export declare function getRequestI18n({ config }: {
10
+ config: SanitizedConfig;
11
+ }): Promise<I18nClient>;
12
+ //# sourceMappingURL=getRequestI18n.server.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"getRequestI18n.server.d.ts","sourceRoot":"","sources":["../../src/utilities/getRequestI18n.server.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,0BAA0B,CAAA;AAC1D,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,SAAS,CAAA;AAM9C;;;;;GAKG;AACH,wBAAsB,cAAc,CAAC,EAAE,MAAM,EAAE,EAAE;IAAE,MAAM,EAAE,eAAe,CAAA;CAAE,GAAG,OAAO,CAAC,UAAU,CAAC,CAYjG"}
@@ -0,0 +1,25 @@
1
+ import { initI18n } from '@payloadcms/translations';
2
+ import { getRequest } from '@tanstack/react-start/server';
3
+ import { getRequestLanguage, parseCookies } from 'payload';
4
+ /**
5
+ * Resolves the client `I18n` for the current TanStack Start request without a
6
+ * full `initReq` (no `getPayload`/auth/access). Mirrors the Next.js adapter's
7
+ * `getNextRequestI18n` and feeds the shared `generatePageMetadata`, which only
8
+ * needs `config` + `i18n` to translate admin-page titles.
9
+ */ export async function getRequestI18n({ config }) {
10
+ const webRequest = getRequest();
11
+ const headers = new Headers(webRequest.headers);
12
+ const cookies = parseCookies(headers);
13
+ const languageCode = getRequestLanguage({
14
+ config,
15
+ cookies,
16
+ headers
17
+ });
18
+ return initI18n({
19
+ config: config.i18n,
20
+ context: 'client',
21
+ language: languageCode
22
+ });
23
+ }
24
+
25
+ //# sourceMappingURL=getRequestI18n.server.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../src/utilities/getRequestI18n.server.ts"],"sourcesContent":["import type { I18nClient } from '@payloadcms/translations'\nimport type { SanitizedConfig } from 'payload'\n\nimport { initI18n } from '@payloadcms/translations'\nimport { getRequest } from '@tanstack/react-start/server'\nimport { getRequestLanguage, parseCookies } from 'payload'\n\n/**\n * Resolves the client `I18n` for the current TanStack Start request without a\n * full `initReq` (no `getPayload`/auth/access). Mirrors the Next.js adapter's\n * `getNextRequestI18n` and feeds the shared `generatePageMetadata`, which only\n * needs `config` + `i18n` to translate admin-page titles.\n */\nexport async function getRequestI18n({ config }: { config: SanitizedConfig }): Promise<I18nClient> {\n const webRequest = getRequest()\n const headers = new Headers(webRequest.headers)\n const cookies = parseCookies(headers)\n\n const languageCode = getRequestLanguage({ config, cookies, headers })\n\n return initI18n({\n config: config.i18n,\n context: 'client',\n language: languageCode,\n })\n}\n"],"names":["initI18n","getRequest","getRequestLanguage","parseCookies","getRequestI18n","config","webRequest","headers","Headers","cookies","languageCode","i18n","context","language"],"mappings":"AAGA,SAASA,QAAQ,QAAQ,2BAA0B;AACnD,SAASC,UAAU,QAAQ,+BAA8B;AACzD,SAASC,kBAAkB,EAAEC,YAAY,QAAQ,UAAS;AAE1D;;;;;CAKC,GACD,OAAO,eAAeC,eAAe,EAAEC,MAAM,EAA+B;IAC1E,MAAMC,aAAaL;IACnB,MAAMM,UAAU,IAAIC,QAAQF,WAAWC,OAAO;IAC9C,MAAME,UAAUN,aAAaI;IAE7B,MAAMG,eAAeR,mBAAmB;QAAEG;QAAQI;QAASF;IAAQ;IAEnE,OAAOP,SAAS;QACdK,QAAQA,OAAOM,IAAI;QACnBC,SAAS;QACTC,UAAUH;IACZ;AACF"}
@@ -0,0 +1,7 @@
1
+ import type { Locale, PayloadRequest } from 'payload';
2
+ type GetRequestLocaleArgs = {
3
+ req: PayloadRequest;
4
+ };
5
+ export declare function getRequestLocale({ req }: GetRequestLocaleArgs): Promise<Locale | undefined>;
6
+ export {};
7
+ //# sourceMappingURL=getRequestLocale.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"getRequestLocale.d.ts","sourceRoot":"","sources":["../../src/utilities/getRequestLocale.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,EAAE,cAAc,EAAE,MAAM,SAAS,CAAA;AAOrD,KAAK,oBAAoB,GAAG;IAC1B,GAAG,EAAE,cAAc,CAAA;CACpB,CAAA;AAED,wBAAsB,gBAAgB,CAAC,EAAE,GAAG,EAAE,EAAE,oBAAoB,GAAG,OAAO,CAAC,MAAM,GAAG,SAAS,CAAC,CAkCjG"}
@@ -0,0 +1,20 @@
1
+ import { upsertPreferences } from '@payloadcms/ui/rsc';
2
+ import { findLocaleFromCode } from '@payloadcms/ui/shared';
3
+ import { getPreferences } from './getPreferences.js';
4
+ export async function getRequestLocale({ req }) {
5
+ if (req.payload.config.localization) {
6
+ const localeFromParams = req.query.locale;
7
+ if (req.user && localeFromParams) {
8
+ await upsertPreferences({
9
+ key: 'locale',
10
+ req,
11
+ value: localeFromParams
12
+ });
13
+ }
14
+ const userLocale = req.user && findLocaleFromCode(req.payload.config.localization, localeFromParams || (await getPreferences('locale', req.payload, req.user.id, req.user.collection))?.value);
15
+ return userLocale ?? findLocaleFromCode(req.payload.config.localization, req.payload.config.localization.defaultLocale || 'en') ?? undefined;
16
+ }
17
+ return undefined;
18
+ }
19
+
20
+ //# sourceMappingURL=getRequestLocale.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../src/utilities/getRequestLocale.ts"],"sourcesContent":["import type { Locale, PayloadRequest } from 'payload'\n\nimport { upsertPreferences } from '@payloadcms/ui/rsc'\nimport { findLocaleFromCode } from '@payloadcms/ui/shared'\n\nimport { getPreferences } from './getPreferences.js'\n\ntype GetRequestLocaleArgs = {\n req: PayloadRequest\n}\n\nexport async function getRequestLocale({ req }: GetRequestLocaleArgs): Promise<Locale | undefined> {\n if (req.payload.config.localization) {\n const localeFromParams = req.query.locale as string | undefined\n\n if (req.user && localeFromParams) {\n await upsertPreferences<Locale['code']>({ key: 'locale', req, value: localeFromParams })\n }\n\n const userLocale =\n req.user &&\n findLocaleFromCode(\n req.payload.config.localization,\n localeFromParams ||\n (\n await getPreferences<Locale['code']>(\n 'locale',\n req.payload,\n req.user.id,\n req.user.collection,\n )\n )?.value,\n )\n\n return (\n userLocale ??\n findLocaleFromCode(\n req.payload.config.localization,\n req.payload.config.localization.defaultLocale || 'en',\n ) ??\n undefined\n )\n }\n\n return undefined\n}\n"],"names":["upsertPreferences","findLocaleFromCode","getPreferences","getRequestLocale","req","payload","config","localization","localeFromParams","query","locale","user","key","value","userLocale","id","collection","defaultLocale","undefined"],"mappings":"AAEA,SAASA,iBAAiB,QAAQ,qBAAoB;AACtD,SAASC,kBAAkB,QAAQ,wBAAuB;AAE1D,SAASC,cAAc,QAAQ,sBAAqB;AAMpD,OAAO,eAAeC,iBAAiB,EAAEC,GAAG,EAAwB;IAClE,IAAIA,IAAIC,OAAO,CAACC,MAAM,CAACC,YAAY,EAAE;QACnC,MAAMC,mBAAmBJ,IAAIK,KAAK,CAACC,MAAM;QAEzC,IAAIN,IAAIO,IAAI,IAAIH,kBAAkB;YAChC,MAAMR,kBAAkC;gBAAEY,KAAK;gBAAUR;gBAAKS,OAAOL;YAAiB;QACxF;QAEA,MAAMM,aACJV,IAAIO,IAAI,IACRV,mBACEG,IAAIC,OAAO,CAACC,MAAM,CAACC,YAAY,EAC/BC,oBAEI,CAAA,MAAMN,eACJ,UACAE,IAAIC,OAAO,EACXD,IAAIO,IAAI,CAACI,EAAE,EACXX,IAAIO,IAAI,CAACK,UAAU,CACrB,GACCH;QAGT,OACEC,cACAb,mBACEG,IAAIC,OAAO,CAACC,MAAM,CAACC,YAAY,EAC/BH,IAAIC,OAAO,CAACC,MAAM,CAACC,YAAY,CAACU,aAAa,IAAI,SAEnDC;IAEJ;IAEA,OAAOA;AACT"}
@@ -0,0 +1,10 @@
1
+ import type { Theme } from '@payloadcms/ui';
2
+ import type { SanitizedConfig } from 'payload';
3
+ type GetRequestThemeArgs = {
4
+ config: SanitizedConfig;
5
+ cookies: Map<string, string>;
6
+ headers: Headers;
7
+ };
8
+ export declare function getRequestTheme({ config, cookies, headers }: GetRequestThemeArgs): Theme;
9
+ export {};
10
+ //# sourceMappingURL=getRequestTheme.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"getRequestTheme.d.ts","sourceRoot":"","sources":["../../src/utilities/getRequestTheme.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,gBAAgB,CAAA;AAC3C,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,SAAS,CAAA;AAE9C,KAAK,mBAAmB,GAAG;IACzB,MAAM,EAAE,eAAe,CAAA;IACvB,OAAO,EAAE,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;IAC5B,OAAO,EAAE,OAAO,CAAA;CACjB,CAAA;AAUD,wBAAgB,eAAe,CAAC,EAAE,MAAM,EAAE,OAAO,EAAE,OAAO,EAAE,EAAE,mBAAmB,GAAG,KAAK,CAkBxF"}
@@ -0,0 +1,25 @@
1
+ // Defined locally rather than imported from `@payloadcms/ui` (a `'use client'`
2
+ // barrel) because its value exports resolve to non-serializable client
3
+ // references in this adapter's RSC server context. `Theme` is a type-only
4
+ // import and is safely erased at runtime.
5
+ const defaultTheme = 'light';
6
+ const acceptedThemes = [
7
+ 'dark',
8
+ 'light'
9
+ ];
10
+ export function getRequestTheme({ config, cookies, headers }) {
11
+ if (config.admin.theme !== 'all' && acceptedThemes.includes(config.admin.theme)) {
12
+ return config.admin.theme;
13
+ }
14
+ const themeCookie = cookies.get(`${config.cookiePrefix || 'payload'}-theme`);
15
+ if (themeCookie && acceptedThemes.includes(themeCookie)) {
16
+ return themeCookie;
17
+ }
18
+ const themeFromHeader = headers.get('Sec-CH-Prefers-Color-Scheme');
19
+ if (themeFromHeader && acceptedThemes.includes(themeFromHeader)) {
20
+ return themeFromHeader;
21
+ }
22
+ return defaultTheme;
23
+ }
24
+
25
+ //# sourceMappingURL=getRequestTheme.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../src/utilities/getRequestTheme.ts"],"sourcesContent":["import type { Theme } from '@payloadcms/ui'\nimport type { SanitizedConfig } from 'payload'\n\ntype GetRequestThemeArgs = {\n config: SanitizedConfig\n cookies: Map<string, string>\n headers: Headers\n}\n\n// Defined locally rather than imported from `@payloadcms/ui` (a `'use client'`\n// barrel) because its value exports resolve to non-serializable client\n// references in this adapter's RSC server context. `Theme` is a type-only\n// import and is safely erased at runtime.\nconst defaultTheme: Theme = 'light'\n\nconst acceptedThemes: Theme[] = ['dark', 'light']\n\nexport function getRequestTheme({ config, cookies, headers }: GetRequestThemeArgs): Theme {\n if (config.admin.theme !== 'all' && acceptedThemes.includes(config.admin.theme)) {\n return config.admin.theme\n }\n\n const themeCookie = cookies.get(`${config.cookiePrefix || 'payload'}-theme`)\n\n if (themeCookie && acceptedThemes.includes(themeCookie as Theme)) {\n return themeCookie as Theme\n }\n\n const themeFromHeader = headers.get('Sec-CH-Prefers-Color-Scheme') as Theme\n\n if (themeFromHeader && acceptedThemes.includes(themeFromHeader)) {\n return themeFromHeader\n }\n\n return defaultTheme\n}\n"],"names":["defaultTheme","acceptedThemes","getRequestTheme","config","cookies","headers","admin","theme","includes","themeCookie","get","cookiePrefix","themeFromHeader"],"mappings":"AASA,+EAA+E;AAC/E,uEAAuE;AACvE,0EAA0E;AAC1E,0CAA0C;AAC1C,MAAMA,eAAsB;AAE5B,MAAMC,iBAA0B;IAAC;IAAQ;CAAQ;AAEjD,OAAO,SAASC,gBAAgB,EAAEC,MAAM,EAAEC,OAAO,EAAEC,OAAO,EAAuB;IAC/E,IAAIF,OAAOG,KAAK,CAACC,KAAK,KAAK,SAASN,eAAeO,QAAQ,CAACL,OAAOG,KAAK,CAACC,KAAK,GAAG;QAC/E,OAAOJ,OAAOG,KAAK,CAACC,KAAK;IAC3B;IAEA,MAAME,cAAcL,QAAQM,GAAG,CAAC,GAAGP,OAAOQ,YAAY,IAAI,UAAU,MAAM,CAAC;IAE3E,IAAIF,eAAeR,eAAeO,QAAQ,CAACC,cAAuB;QAChE,OAAOA;IACT;IAEA,MAAMG,kBAAkBP,QAAQK,GAAG,CAAC;IAEpC,IAAIE,mBAAmBX,eAAeO,QAAQ,CAACI,kBAAkB;QAC/D,OAAOA;IACT;IAEA,OAAOZ;AACT"}
@@ -0,0 +1,12 @@
1
+ import type { SanitizedConfig } from 'payload';
2
+ /**
3
+ * Handles GraphQL HTTP requests for TanStack Start apps.
4
+ * Mirrors the behaviour of `@payloadcms/next`'s GraphQL route handler.
5
+ *
6
+ * Requires `@payloadcms/graphql` and `graphql-http` to be installed in the consuming app.
7
+ */
8
+ export declare const handleGraphQL: ({ config, request, }: {
9
+ config: Promise<SanitizedConfig> | SanitizedConfig;
10
+ request: Request;
11
+ }) => Promise<Response>;
12
+ //# sourceMappingURL=graphqlHandler.server.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"graphqlHandler.server.d.ts","sourceRoot":"","sources":["../../src/utilities/graphqlHandler.server.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAA2B,eAAe,EAAE,MAAM,SAAS,CAAA;AAyFvE;;;;;GAKG;AACH,eAAO,MAAM,aAAa,GAAU,sBAGjC;IACD,MAAM,EAAE,OAAO,CAAC,eAAe,CAAC,GAAG,eAAe,CAAA;IAClD,OAAO,EAAE,OAAO,CAAA;CACjB,KAAG,OAAO,CAAC,QAAQ,CA2DnB,CAAA"}
@@ -0,0 +1,129 @@
1
+ import { addDataAndFileToRequest, addLocalesToRequestFromData, createPayloadRequest, headersWithCors, logError, mergeHeaders } from 'payload';
2
+ const handleError = async ({ err, payload, req })=>{
3
+ const status = err.originalError?.status || 500;
4
+ let errorMessage = err.message;
5
+ logError({
6
+ err,
7
+ payload
8
+ });
9
+ if (!payload.config.debug && status === 500) {
10
+ errorMessage = 'Something went wrong.';
11
+ }
12
+ let response = {
13
+ extensions: {
14
+ name: err?.originalError?.name || undefined,
15
+ data: err && err.originalError && err.originalError.data || undefined,
16
+ stack: payload.config.debug ? err.stack : undefined,
17
+ statusCode: status
18
+ },
19
+ locations: err.locations,
20
+ message: errorMessage,
21
+ path: err.path
22
+ };
23
+ await payload.config.hooks.afterError?.reduce(async (promise, hook)=>{
24
+ await promise;
25
+ const result = await hook({
26
+ context: req.context,
27
+ error: err,
28
+ graphqlResult: response,
29
+ req
30
+ });
31
+ if (result) {
32
+ response = result.graphqlResult || response;
33
+ }
34
+ }, Promise.resolve());
35
+ return response;
36
+ };
37
+ let cached = {
38
+ graphql: null,
39
+ promise: null
40
+ };
41
+ const getGraphql = async (config)=>{
42
+ if (process.env.NODE_ENV === 'development') {
43
+ cached = {
44
+ graphql: null,
45
+ promise: null
46
+ };
47
+ }
48
+ if (cached.graphql) {
49
+ return cached.graphql;
50
+ }
51
+ if (!cached.promise) {
52
+ const resolvedConfig = await config;
53
+ const graphqlPackage = '@payloadcms/graphql';
54
+ const { configToSchema } = await import(/* @vite-ignore */ graphqlPackage);
55
+ cached.promise = new Promise((resolve)=>{
56
+ const schema = configToSchema(resolvedConfig);
57
+ resolve(cached.graphql || schema);
58
+ });
59
+ }
60
+ try {
61
+ cached.graphql = await cached.promise;
62
+ } catch (e) {
63
+ cached.promise = null;
64
+ throw e;
65
+ }
66
+ return cached.graphql;
67
+ };
68
+ /**
69
+ * Handles GraphQL HTTP requests for TanStack Start apps.
70
+ * Mirrors the behaviour of `@payloadcms/next`'s GraphQL route handler.
71
+ *
72
+ * Requires `@payloadcms/graphql` and `graphql-http` to be installed in the consuming app.
73
+ */ export const handleGraphQL = async ({ config, request })=>{
74
+ const originalRequest = request.clone();
75
+ const req = await createPayloadRequest({
76
+ canSetHeaders: true,
77
+ config,
78
+ request
79
+ });
80
+ await addDataAndFileToRequest(req);
81
+ addLocalesToRequestFromData(req);
82
+ const { schema, validationRules } = await getGraphql(config);
83
+ const { payload } = req;
84
+ const graphqlHttpHandlerPath = 'graphql-http/lib/use/fetch';
85
+ const { createHandler } = await import(/* @vite-ignore */ graphqlHttpHandlerPath);
86
+ const headers = {};
87
+ const apiResponse = await createHandler({
88
+ context: {
89
+ headers,
90
+ req
91
+ },
92
+ onOperation: async (_request, args, result)=>{
93
+ const response = typeof payload.extensions === 'function' ? await payload.extensions({
94
+ args,
95
+ req: _request,
96
+ result
97
+ }) : result;
98
+ if (response.errors) {
99
+ const errors = await Promise.all(response.errors.map((error)=>{
100
+ return handleError({
101
+ err: error,
102
+ payload,
103
+ req
104
+ });
105
+ }));
106
+ return {
107
+ ...response,
108
+ errors
109
+ };
110
+ }
111
+ return response;
112
+ },
113
+ schema,
114
+ validationRules: (_, args, defaultRules)=>defaultRules.concat(validationRules(args))
115
+ })(originalRequest);
116
+ const resHeaders = headersWithCors({
117
+ headers: new Headers(apiResponse.headers),
118
+ req
119
+ });
120
+ for (const key of Object.keys(headers)){
121
+ resHeaders.append(key, headers[key]);
122
+ }
123
+ return new Response(apiResponse.body, {
124
+ headers: req.responseHeaders ? mergeHeaders(req.responseHeaders, resHeaders) : resHeaders,
125
+ status: apiResponse.status
126
+ });
127
+ };
128
+
129
+ //# sourceMappingURL=graphqlHandler.server.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../src/utilities/graphqlHandler.server.ts"],"sourcesContent":["import type { Payload, PayloadRequest, SanitizedConfig } from 'payload'\n\nimport {\n addDataAndFileToRequest,\n addLocalesToRequestFromData,\n createPayloadRequest,\n headersWithCors,\n logError,\n mergeHeaders,\n} from 'payload'\n\nconst handleError = async ({\n err,\n payload,\n req,\n}: {\n err: any\n payload: Payload\n req: PayloadRequest\n}): Promise<any> => {\n const status = err.originalError?.status || 500\n let errorMessage = err.message\n logError({ err, payload })\n\n if (!payload.config.debug && status === 500) {\n errorMessage = 'Something went wrong.'\n }\n\n let response: any = {\n extensions: {\n name: err?.originalError?.name || undefined,\n data: (err && err.originalError && err.originalError.data) || undefined,\n stack: payload.config.debug ? err.stack : undefined,\n statusCode: status,\n },\n locations: err.locations,\n message: errorMessage,\n path: err.path,\n }\n\n await payload.config.hooks.afterError?.reduce(async (promise, hook) => {\n await promise\n\n const result = await hook({\n context: req.context,\n error: err,\n graphqlResult: response,\n req,\n })\n\n if (result) {\n response = result.graphqlResult || response\n }\n }, Promise.resolve())\n\n return response\n}\n\nlet cached: { graphql: any; promise: null | Promise<any> } = { graphql: null, promise: null }\n\nconst getGraphql = async (config: Promise<SanitizedConfig> | SanitizedConfig) => {\n if (process.env.NODE_ENV === 'development') {\n cached = { graphql: null, promise: null }\n }\n\n if (cached.graphql) {\n return cached.graphql\n }\n\n if (!cached.promise) {\n const resolvedConfig = await config\n const graphqlPackage = '@payloadcms/graphql'\n const { configToSchema } = await import(/* @vite-ignore */ graphqlPackage)\n cached.promise = new Promise((resolve) => {\n const schema = configToSchema(resolvedConfig)\n resolve(cached.graphql || schema)\n })\n }\n\n try {\n cached.graphql = await cached.promise\n } catch (e) {\n cached.promise = null\n throw e\n }\n\n return cached.graphql\n}\n\n/**\n * Handles GraphQL HTTP requests for TanStack Start apps.\n * Mirrors the behaviour of `@payloadcms/next`'s GraphQL route handler.\n *\n * Requires `@payloadcms/graphql` and `graphql-http` to be installed in the consuming app.\n */\nexport const handleGraphQL = async ({\n config,\n request,\n}: {\n config: Promise<SanitizedConfig> | SanitizedConfig\n request: Request\n}): Promise<Response> => {\n const originalRequest = request.clone()\n\n const req = await createPayloadRequest({\n canSetHeaders: true,\n config,\n request,\n })\n\n await addDataAndFileToRequest(req)\n addLocalesToRequestFromData(req)\n\n const { schema, validationRules } = await getGraphql(config)\n\n const { payload } = req\n\n const graphqlHttpHandlerPath = 'graphql-http/lib/use/fetch'\n const { createHandler } = await import(/* @vite-ignore */ graphqlHttpHandlerPath)\n\n const headers: Record<string, string> = {}\n const apiResponse = await createHandler({\n context: { headers, req },\n onOperation: async (_request: any, args: any, result: any) => {\n const response =\n typeof payload.extensions === 'function'\n ? await payload.extensions({\n args,\n req: _request,\n result,\n })\n : result\n if (response.errors) {\n const errors = await Promise.all(\n response.errors.map((error: any) => {\n return handleError({ err: error, payload, req })\n }),\n )\n return { ...response, errors }\n }\n return response\n },\n schema,\n validationRules: (_: any, args: any, defaultRules: any) =>\n defaultRules.concat(validationRules(args)),\n })(originalRequest)\n\n const resHeaders = headersWithCors({\n headers: new Headers(apiResponse.headers),\n req,\n })\n\n for (const key of Object.keys(headers)) {\n resHeaders.append(key, headers[key]!)\n }\n\n return new Response(apiResponse.body, {\n headers: req.responseHeaders ? mergeHeaders(req.responseHeaders, resHeaders) : resHeaders,\n status: apiResponse.status,\n })\n}\n"],"names":["addDataAndFileToRequest","addLocalesToRequestFromData","createPayloadRequest","headersWithCors","logError","mergeHeaders","handleError","err","payload","req","status","originalError","errorMessage","message","config","debug","response","extensions","name","undefined","data","stack","statusCode","locations","path","hooks","afterError","reduce","promise","hook","result","context","error","graphqlResult","Promise","resolve","cached","graphql","getGraphql","process","env","NODE_ENV","resolvedConfig","graphqlPackage","configToSchema","schema","e","handleGraphQL","request","originalRequest","clone","canSetHeaders","validationRules","graphqlHttpHandlerPath","createHandler","headers","apiResponse","onOperation","_request","args","errors","all","map","_","defaultRules","concat","resHeaders","Headers","key","Object","keys","append","Response","body","responseHeaders"],"mappings":"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"}
@@ -0,0 +1,11 @@
1
+ import type { SanitizedConfig } from 'payload';
2
+ /**
3
+ * Routes a TanStack Start API request (`/api/*`) to Payload's REST/GraphQL
4
+ * endpoint handler. The framework adapter wires this into the `/api/$` route's
5
+ * server handlers, supplying the app's resolved `config`.
6
+ */
7
+ export declare function handleAPIRoute({ config, request, }: {
8
+ config: SanitizedConfig;
9
+ request: Request;
10
+ }): Promise<Response>;
11
+ //# sourceMappingURL=handleAPIRoute.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"handleAPIRoute.d.ts","sourceRoot":"","sources":["../../src/utilities/handleAPIRoute.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,SAAS,CAAA;AAI9C;;;;GAIG;AACH,wBAAsB,cAAc,CAAC,EACnC,MAAM,EACN,OAAO,GACR,EAAE;IACD,MAAM,EAAE,eAAe,CAAA;IACvB,OAAO,EAAE,OAAO,CAAA;CACjB,GAAG,OAAO,CAAC,QAAQ,CAAC,CAapB"}
@@ -0,0 +1,17 @@
1
+ import { handleEndpoints } from 'payload';
2
+ /**
3
+ * Routes a TanStack Start API request (`/api/*`) to Payload's REST/GraphQL
4
+ * endpoint handler. The framework adapter wires this into the `/api/$` route's
5
+ * server handlers, supplying the app's resolved `config`.
6
+ */ export async function handleAPIRoute({ config, request }) {
7
+ const url = new URL(request.url);
8
+ const slugParts = url.pathname.replace(/^\/api\/?/, '').split('/').filter(Boolean);
9
+ const path = slugParts.length ? `/api/${slugParts.join('/')}` : '/api';
10
+ return handleEndpoints({
11
+ config,
12
+ path,
13
+ request
14
+ });
15
+ }
16
+
17
+ //# sourceMappingURL=handleAPIRoute.js.map