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

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 (98) hide show
  1. package/dist/auth/login.d.ts +16 -3
  2. package/dist/auth/login.d.ts.map +1 -1
  3. package/dist/auth/login.js +46 -6
  4. package/dist/auth/login.js.map +1 -1
  5. package/dist/auth/logout.d.ts +5 -2
  6. package/dist/auth/logout.d.ts.map +1 -1
  7. package/dist/auth/logout.js +47 -6
  8. package/dist/auth/logout.js.map +1 -1
  9. package/dist/auth/refresh.d.ts +4 -2
  10. package/dist/auth/refresh.d.ts.map +1 -1
  11. package/dist/auth/refresh.js +49 -6
  12. package/dist/auth/refresh.js.map +1 -1
  13. package/dist/elements/DocumentHeaderClient/index.d.ts +16 -0
  14. package/dist/elements/DocumentHeaderClient/index.d.ts.map +1 -0
  15. package/dist/elements/DocumentHeaderClient/index.js +116 -0
  16. package/dist/elements/DocumentHeaderClient/index.js.map +1 -0
  17. package/dist/elements/RenderComponent/index.d.ts +10 -0
  18. package/dist/elements/RenderComponent/index.d.ts.map +1 -0
  19. package/dist/elements/RenderComponent/index.js +12 -0
  20. package/dist/elements/RenderComponent/index.js.map +1 -0
  21. package/dist/elements/RouterAdapter/index.d.ts.map +1 -1
  22. package/dist/elements/RouterAdapter/index.js +9 -8
  23. package/dist/elements/RouterAdapter/index.js.map +1 -1
  24. package/dist/exports/client.d.ts +1 -0
  25. package/dist/exports/client.d.ts.map +1 -1
  26. package/dist/exports/client.js +1 -0
  27. package/dist/exports/client.js.map +1 -1
  28. package/dist/exports/layouts.d.ts +3 -1
  29. package/dist/exports/layouts.d.ts.map +1 -1
  30. package/dist/exports/layouts.js +1 -0
  31. package/dist/exports/layouts.js.map +1 -1
  32. package/dist/exports/rsc.browser.d.ts +1 -4
  33. package/dist/exports/rsc.browser.d.ts.map +1 -1
  34. package/dist/exports/rsc.browser.js +1 -4
  35. package/dist/exports/rsc.browser.js.map +1 -1
  36. package/dist/exports/rsc.d.ts +1 -0
  37. package/dist/exports/rsc.d.ts.map +1 -1
  38. package/dist/exports/rsc.js +1 -0
  39. package/dist/exports/rsc.js.map +1 -1
  40. package/dist/exports/server.d.ts +1 -0
  41. package/dist/exports/server.d.ts.map +1 -1
  42. package/dist/exports/server.js +1 -0
  43. package/dist/exports/server.js.map +1 -1
  44. package/dist/layouts/Root/getLayoutData.d.ts +2 -24
  45. package/dist/layouts/Root/getLayoutData.d.ts.map +1 -1
  46. package/dist/layouts/Root/getLayoutData.js +0 -6
  47. package/dist/layouts/Root/getLayoutData.js.map +1 -1
  48. package/dist/layouts/Root/index.d.ts +32 -0
  49. package/dist/layouts/Root/index.d.ts.map +1 -0
  50. package/dist/layouts/Root/index.js +53 -0
  51. package/dist/layouts/Root/index.js.map +1 -0
  52. package/dist/routes/adminRoutes.d.ts +4 -6
  53. package/dist/routes/adminRoutes.d.ts.map +1 -1
  54. package/dist/routes/adminRoutes.js +41 -35
  55. package/dist/routes/adminRoutes.js.map +1 -1
  56. package/dist/routes/layoutRoute.d.ts.map +1 -1
  57. package/dist/routes/layoutRoute.js +0 -1
  58. package/dist/routes/layoutRoute.js.map +1 -1
  59. package/dist/rsc/renderPayloadRSC.d.ts +6 -0
  60. package/dist/rsc/renderPayloadRSC.d.ts.map +1 -0
  61. package/dist/rsc/renderPayloadRSC.js +6 -0
  62. package/dist/rsc/renderPayloadRSC.js.map +1 -0
  63. package/dist/utilities/getExistingAuthToken.d.ts +7 -0
  64. package/dist/utilities/getExistingAuthToken.d.ts.map +1 -0
  65. package/dist/utilities/getExistingAuthToken.js +18 -0
  66. package/dist/utilities/getExistingAuthToken.js.map +1 -0
  67. package/dist/utilities/getPreferences.d.ts +10 -0
  68. package/dist/utilities/getPreferences.d.ts.map +1 -0
  69. package/dist/utilities/getPreferences.js +33 -0
  70. package/dist/utilities/getPreferences.js.map +1 -0
  71. package/dist/utilities/getRequestLocale.d.ts.map +1 -1
  72. package/dist/utilities/getRequestLocale.js +2 -1
  73. package/dist/utilities/getRequestLocale.js.map +1 -1
  74. package/dist/utilities/handleServerFunctions.d.ts +19 -1
  75. package/dist/utilities/handleServerFunctions.d.ts.map +1 -1
  76. package/dist/utilities/handleServerFunctions.js +56 -8
  77. package/dist/utilities/handleServerFunctions.js.map +1 -1
  78. package/dist/utilities/importMap.server.d.ts +8 -0
  79. package/dist/utilities/importMap.server.d.ts.map +1 -0
  80. package/dist/utilities/importMap.server.js +11 -0
  81. package/dist/utilities/importMap.server.js.map +1 -0
  82. package/dist/utilities/loadAdminPage.d.ts.map +1 -1
  83. package/dist/utilities/loadAdminPage.js +11 -3
  84. package/dist/utilities/loadAdminPage.js.map +1 -1
  85. package/dist/utilities/serverFunctionHandlers.d.ts +18 -0
  86. package/dist/utilities/serverFunctionHandlers.d.ts.map +1 -0
  87. package/dist/utilities/serverFunctionHandlers.js +17 -0
  88. package/dist/utilities/serverFunctionHandlers.js.map +1 -0
  89. package/dist/utilities/setPayloadAuthCookie.d.ts +9 -0
  90. package/dist/utilities/setPayloadAuthCookie.d.ts.map +1 -0
  91. package/dist/utilities/setPayloadAuthCookie.js +31 -0
  92. package/dist/utilities/setPayloadAuthCookie.js.map +1 -0
  93. package/dist/withPayload/importProtection.d.ts.map +1 -1
  94. package/dist/withPayload/importProtection.js +2 -2
  95. package/dist/withPayload/importProtection.js.map +1 -1
  96. package/dist/withPayload/workarounds/stripDistStyleImports.js +1 -1
  97. package/dist/withPayload/workarounds/stripDistStyleImports.js.map +1 -1
  98. package/package.json +5 -5
@@ -1,4 +1,17 @@
1
- import type { AuthCollectionSlug, LoginResult } from 'payload';
2
- import { type LoginArgsWithoutServerAdapter } from 'payload/auth';
3
- export declare function login<TSlug extends AuthCollectionSlug>(args: LoginArgsWithoutServerAdapter<TSlug>): Promise<LoginResult<TSlug>>;
1
+ import type { AuthCollectionSlug, LoginResult, MaybePromise, SanitizedConfig } from 'payload';
2
+ type LoginWithEmail = {
3
+ email: string;
4
+ username?: never;
5
+ };
6
+ type LoginWithUsername = {
7
+ email?: never;
8
+ username: string;
9
+ };
10
+ type LoginArgs = {
11
+ collection: AuthCollectionSlug;
12
+ config: MaybePromise<SanitizedConfig>;
13
+ password: string;
14
+ } & (LoginWithEmail | LoginWithUsername);
15
+ export declare function login<TSlug extends AuthCollectionSlug>({ collection, config, email, password, username, }: LoginArgs): Promise<LoginResult<TSlug>>;
16
+ export {};
4
17
  //# sourceMappingURL=login.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"login.d.ts","sourceRoot":"","sources":["../../src/auth/login.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,kBAAkB,EAAE,WAAW,EAAE,MAAM,SAAS,CAAA;AAE9D,OAAO,EAAkB,KAAK,6BAA6B,EAAoB,MAAM,cAAc,CAAA;AAInG,wBAAsB,KAAK,CAAC,KAAK,SAAS,kBAAkB,EAC1D,IAAI,EAAE,6BAA6B,CAAC,KAAK,CAAC,GACzC,OAAO,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC,CAE7B"}
1
+ {"version":3,"file":"login.d.ts","sourceRoot":"","sources":["../../src/auth/login.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,kBAAkB,EAAE,WAAW,EAAE,YAAY,EAAE,eAAe,EAAE,MAAM,SAAS,CAAA;AAM7F,KAAK,cAAc,GAAG;IACpB,KAAK,EAAE,MAAM,CAAA;IACb,QAAQ,CAAC,EAAE,KAAK,CAAA;CACjB,CAAA;AAED,KAAK,iBAAiB,GAAG;IACvB,KAAK,CAAC,EAAE,KAAK,CAAA;IACb,QAAQ,EAAE,MAAM,CAAA;CACjB,CAAA;AAED,KAAK,SAAS,GAAG;IACf,UAAU,EAAE,kBAAkB,CAAA;IAC9B,MAAM,EAAE,YAAY,CAAC,eAAe,CAAC,CAAA;IACrC,QAAQ,EAAE,MAAM,CAAA;CACjB,GAAG,CAAC,cAAc,GAAG,iBAAiB,CAAC,CAAA;AAExC,wBAAsB,KAAK,CAAC,KAAK,SAAS,kBAAkB,EAAE,EAC5D,UAAU,EACV,MAAM,EACN,KAAK,EACL,QAAQ,EACR,QAAQ,GACT,EAAE,SAAS,GAAG,OAAO,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC,CA6CzC"}
@@ -1,10 +1,50 @@
1
- import { login as loginFn } from 'payload/auth';
2
- import { tanstackServerAdapter } from '../utilities/serverAdapter.server.js';
3
- export async function login(args) {
4
- return loginFn({
5
- ...args,
6
- serverAdapter: tanstackServerAdapter
1
+ import { getPayload } from 'payload';
2
+ import { setPayloadAuthCookie } from '../utilities/setPayloadAuthCookie.js';
3
+ export async function login({ collection, config, email, password, username }) {
4
+ const payload = await getPayload({
5
+ config
7
6
  });
7
+ const authConfig = payload.collections[collection]?.config.auth;
8
+ if (!authConfig) {
9
+ throw new Error(`No auth config found for collection: ${collection}`);
10
+ }
11
+ const loginWithUsername = authConfig?.loginWithUsername ?? false;
12
+ if (loginWithUsername) {
13
+ if (loginWithUsername.allowEmailLogin) {
14
+ if (!email && !username) {
15
+ throw new Error('Email or username is required.');
16
+ }
17
+ } else {
18
+ if (!username) {
19
+ throw new Error('Username is required.');
20
+ }
21
+ }
22
+ } else {
23
+ if (!email) {
24
+ throw new Error('Email is required.');
25
+ }
26
+ }
27
+ const result = await payload.login({
28
+ collection,
29
+ data: loginWithUsername ? username ? {
30
+ password,
31
+ username
32
+ } : {
33
+ email,
34
+ password
35
+ } : {
36
+ email,
37
+ password
38
+ }
39
+ });
40
+ if (result.token) {
41
+ setPayloadAuthCookie({
42
+ authConfig,
43
+ cookiePrefix: payload.config.cookiePrefix,
44
+ token: result.token
45
+ });
46
+ }
47
+ return result;
8
48
  }
9
49
 
10
50
  //# sourceMappingURL=login.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/auth/login.ts"],"sourcesContent":["import type { AuthCollectionSlug, LoginResult } from 'payload'\n\nimport { type LoginArgs, type LoginArgsWithoutServerAdapter, login as loginFn } from 'payload/auth'\n\nimport { tanstackServerAdapter } from '../utilities/serverAdapter.server.js'\n\nexport async function login<TSlug extends AuthCollectionSlug>(\n args: LoginArgsWithoutServerAdapter<TSlug>,\n): Promise<LoginResult<TSlug>> {\n return loginFn({ ...args, serverAdapter: tanstackServerAdapter } as LoginArgs<TSlug>)\n}\n"],"names":["login","loginFn","tanstackServerAdapter","args","serverAdapter"],"mappings":"AAEA,SAA6DA,SAASC,OAAO,QAAQ,eAAc;AAEnG,SAASC,qBAAqB,QAAQ,uCAAsC;AAE5E,OAAO,eAAeF,MACpBG,IAA0C;IAE1C,OAAOF,QAAQ;QAAE,GAAGE,IAAI;QAAEC,eAAeF;IAAsB;AACjE"}
1
+ {"version":3,"sources":["../../src/auth/login.ts"],"sourcesContent":["import type { AuthCollectionSlug, LoginResult, MaybePromise, SanitizedConfig } from 'payload'\n\nimport { getPayload } from 'payload'\n\nimport { setPayloadAuthCookie } from '../utilities/setPayloadAuthCookie.js'\n\ntype LoginWithEmail = {\n email: string\n username?: never\n}\n\ntype LoginWithUsername = {\n email?: never\n username: string\n}\n\ntype LoginArgs = {\n collection: AuthCollectionSlug\n config: MaybePromise<SanitizedConfig>\n password: string\n} & (LoginWithEmail | LoginWithUsername)\n\nexport async function login<TSlug extends AuthCollectionSlug>({\n collection,\n config,\n email,\n password,\n username,\n}: LoginArgs): Promise<LoginResult<TSlug>> {\n const payload = await getPayload({ config })\n\n const authConfig = payload.collections[collection]?.config.auth\n\n if (!authConfig) {\n throw new Error(`No auth config found for collection: ${collection}`)\n }\n\n const loginWithUsername = authConfig?.loginWithUsername ?? false\n\n if (loginWithUsername) {\n if (loginWithUsername.allowEmailLogin) {\n if (!email && !username) {\n throw new Error('Email or username is required.')\n }\n } else {\n if (!username) {\n throw new Error('Username is required.')\n }\n }\n } else {\n if (!email) {\n throw new Error('Email is required.')\n }\n }\n\n const result = await payload.login({\n collection,\n data: (loginWithUsername\n ? username\n ? { password, username }\n : { email, password }\n : { email, password }) as { email: string; password: string },\n })\n\n if (result.token) {\n setPayloadAuthCookie({\n authConfig,\n cookiePrefix: payload.config.cookiePrefix,\n token: result.token,\n })\n }\n\n return result as LoginResult<TSlug>\n}\n"],"names":["getPayload","setPayloadAuthCookie","login","collection","config","email","password","username","payload","authConfig","collections","auth","Error","loginWithUsername","allowEmailLogin","result","data","token","cookiePrefix"],"mappings":"AAEA,SAASA,UAAU,QAAQ,UAAS;AAEpC,SAASC,oBAAoB,QAAQ,uCAAsC;AAkB3E,OAAO,eAAeC,MAAwC,EAC5DC,UAAU,EACVC,MAAM,EACNC,KAAK,EACLC,QAAQ,EACRC,QAAQ,EACE;IACV,MAAMC,UAAU,MAAMR,WAAW;QAAEI;IAAO;IAE1C,MAAMK,aAAaD,QAAQE,WAAW,CAACP,WAAW,EAAEC,OAAOO;IAE3D,IAAI,CAACF,YAAY;QACf,MAAM,IAAIG,MAAM,CAAC,qCAAqC,EAAET,YAAY;IACtE;IAEA,MAAMU,oBAAoBJ,YAAYI,qBAAqB;IAE3D,IAAIA,mBAAmB;QACrB,IAAIA,kBAAkBC,eAAe,EAAE;YACrC,IAAI,CAACT,SAAS,CAACE,UAAU;gBACvB,MAAM,IAAIK,MAAM;YAClB;QACF,OAAO;YACL,IAAI,CAACL,UAAU;gBACb,MAAM,IAAIK,MAAM;YAClB;QACF;IACF,OAAO;QACL,IAAI,CAACP,OAAO;YACV,MAAM,IAAIO,MAAM;QAClB;IACF;IAEA,MAAMG,SAAS,MAAMP,QAAQN,KAAK,CAAC;QACjCC;QACAa,MAAOH,oBACHN,WACE;YAAED;YAAUC;QAAS,IACrB;YAAEF;YAAOC;QAAS,IACpB;YAAED;YAAOC;QAAS;IACxB;IAEA,IAAIS,OAAOE,KAAK,EAAE;QAChBhB,qBAAqB;YACnBQ;YACAS,cAAcV,QAAQJ,MAAM,CAACc,YAAY;YACzCD,OAAOF,OAAOE,KAAK;QACrB;IACF;IAEA,OAAOF;AACT"}
@@ -1,5 +1,8 @@
1
- import type { LogoutArgs } from 'payload/auth';
2
- export declare function logout(args: Omit<LogoutArgs, 'serverAdapter'>): Promise<{
1
+ import type { MaybePromise, SanitizedConfig } from 'payload';
2
+ export declare function logout({ allSessions, config, }: {
3
+ allSessions?: boolean;
4
+ config: MaybePromise<SanitizedConfig>;
5
+ }): Promise<{
3
6
  message: string;
4
7
  success: boolean;
5
8
  }>;
@@ -1 +1 @@
1
- {"version":3,"file":"logout.d.ts","sourceRoot":"","sources":["../../src/auth/logout.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,cAAc,CAAA;AAM9C,wBAAsB,MAAM,CAC1B,IAAI,EAAE,IAAI,CAAC,UAAU,EAAE,eAAe,CAAC,GACtC,OAAO,CAAC;IAAE,OAAO,EAAE,MAAM,CAAC;IAAC,OAAO,EAAE,OAAO,CAAA;CAAE,CAAC,CAEhD"}
1
+ {"version":3,"file":"logout.d.ts","sourceRoot":"","sources":["../../src/auth/logout.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,eAAe,EAAE,MAAM,SAAS,CAAA;AAO5D,wBAAsB,MAAM,CAAC,EAC3B,WAAmB,EACnB,MAAM,GACP,EAAE;IACD,WAAW,CAAC,EAAE,OAAO,CAAA;IACrB,MAAM,EAAE,YAAY,CAAC,eAAe,CAAC,CAAA;CACtC;;;GAqCA"}
@@ -1,10 +1,51 @@
1
- import { logout as logoutFn } from 'payload/auth';
2
- import { tanstackServerAdapter } from '../utilities/serverAdapter.server.js';
3
- export async function logout(args) {
4
- return logoutFn({
5
- ...args,
6
- serverAdapter: tanstackServerAdapter
1
+ import { getRequest, setResponseHeader } from '@tanstack/react-start/server';
2
+ import { createLocalReq, getPayload, logoutOperation } from 'payload';
3
+ import { getExistingAuthToken } from '../utilities/getExistingAuthToken.js';
4
+ export async function logout({ allSessions = false, config }) {
5
+ const payload = await getPayload({
6
+ config
7
7
  });
8
+ const request = getRequest();
9
+ const headers = new Headers(request.headers);
10
+ const authResult = await payload.auth({
11
+ headers
12
+ });
13
+ if (!authResult.user) {
14
+ return {
15
+ message: 'User already logged out',
16
+ success: true
17
+ };
18
+ }
19
+ const { user } = authResult;
20
+ const req = await createLocalReq({
21
+ user
22
+ }, payload);
23
+ const collection = payload.collections[user.collection];
24
+ if (!collection) {
25
+ return {
26
+ message: 'Collection not found',
27
+ success: false
28
+ };
29
+ }
30
+ const logoutResult = await logoutOperation({
31
+ allSessions,
32
+ collection,
33
+ req
34
+ });
35
+ if (!logoutResult) {
36
+ return {
37
+ message: 'Logout failed',
38
+ success: false
39
+ };
40
+ }
41
+ const existingCookie = getExistingAuthToken(payload.config.cookiePrefix);
42
+ if (existingCookie) {
43
+ setResponseHeader('Set-Cookie', `${encodeURIComponent(existingCookie.name)}=; Path=/; Expires=Thu, 01 Jan 1970 00:00:00 GMT; HttpOnly`);
44
+ }
45
+ return {
46
+ message: 'User logged out successfully',
47
+ success: true
48
+ };
8
49
  }
9
50
 
10
51
  //# sourceMappingURL=logout.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/auth/logout.ts"],"sourcesContent":["import type { LogoutArgs } from 'payload/auth'\n\nimport { logout as logoutFn } from 'payload/auth'\n\nimport { tanstackServerAdapter } from '../utilities/serverAdapter.server.js'\n\nexport async function logout(\n args: Omit<LogoutArgs, 'serverAdapter'>,\n): Promise<{ message: string; success: boolean }> {\n return logoutFn({ ...args, serverAdapter: tanstackServerAdapter })\n}\n"],"names":["logout","logoutFn","tanstackServerAdapter","args","serverAdapter"],"mappings":"AAEA,SAASA,UAAUC,QAAQ,QAAQ,eAAc;AAEjD,SAASC,qBAAqB,QAAQ,uCAAsC;AAE5E,OAAO,eAAeF,OACpBG,IAAuC;IAEvC,OAAOF,SAAS;QAAE,GAAGE,IAAI;QAAEC,eAAeF;IAAsB;AAClE"}
1
+ {"version":3,"sources":["../../src/auth/logout.ts"],"sourcesContent":["import type { MaybePromise, SanitizedConfig } from 'payload'\n\nimport { getRequest, setResponseHeader } from '@tanstack/react-start/server'\nimport { createLocalReq, getPayload, logoutOperation } from 'payload'\n\nimport { getExistingAuthToken } from '../utilities/getExistingAuthToken.js'\n\nexport async function logout({\n allSessions = false,\n config,\n}: {\n allSessions?: boolean\n config: MaybePromise<SanitizedConfig>\n}) {\n const payload = await getPayload({ config })\n const request = getRequest()\n const headers = new Headers(request.headers)\n const authResult = await payload.auth({ headers })\n\n if (!authResult.user) {\n return { message: 'User already logged out', success: true }\n }\n\n const { user } = authResult\n const req = await createLocalReq({ user }, payload)\n const collection = payload.collections[user.collection]\n\n if (!collection) {\n return { message: 'Collection not found', success: false }\n }\n\n const logoutResult = await logoutOperation({\n allSessions,\n collection,\n req,\n })\n\n if (!logoutResult) {\n return { message: 'Logout failed', success: false }\n }\n\n const existingCookie = getExistingAuthToken(payload.config.cookiePrefix)\n if (existingCookie) {\n setResponseHeader(\n 'Set-Cookie',\n `${encodeURIComponent(existingCookie.name)}=; Path=/; Expires=Thu, 01 Jan 1970 00:00:00 GMT; HttpOnly`,\n )\n }\n\n return { message: 'User logged out successfully', success: true }\n}\n"],"names":["getRequest","setResponseHeader","createLocalReq","getPayload","logoutOperation","getExistingAuthToken","logout","allSessions","config","payload","request","headers","Headers","authResult","auth","user","message","success","req","collection","collections","logoutResult","existingCookie","cookiePrefix","encodeURIComponent","name"],"mappings":"AAEA,SAASA,UAAU,EAAEC,iBAAiB,QAAQ,+BAA8B;AAC5E,SAASC,cAAc,EAAEC,UAAU,EAAEC,eAAe,QAAQ,UAAS;AAErE,SAASC,oBAAoB,QAAQ,uCAAsC;AAE3E,OAAO,eAAeC,OAAO,EAC3BC,cAAc,KAAK,EACnBC,MAAM,EAIP;IACC,MAAMC,UAAU,MAAMN,WAAW;QAAEK;IAAO;IAC1C,MAAME,UAAUV;IAChB,MAAMW,UAAU,IAAIC,QAAQF,QAAQC,OAAO;IAC3C,MAAME,aAAa,MAAMJ,QAAQK,IAAI,CAAC;QAAEH;IAAQ;IAEhD,IAAI,CAACE,WAAWE,IAAI,EAAE;QACpB,OAAO;YAAEC,SAAS;YAA2BC,SAAS;QAAK;IAC7D;IAEA,MAAM,EAAEF,IAAI,EAAE,GAAGF;IACjB,MAAMK,MAAM,MAAMhB,eAAe;QAAEa;IAAK,GAAGN;IAC3C,MAAMU,aAAaV,QAAQW,WAAW,CAACL,KAAKI,UAAU,CAAC;IAEvD,IAAI,CAACA,YAAY;QACf,OAAO;YAAEH,SAAS;YAAwBC,SAAS;QAAM;IAC3D;IAEA,MAAMI,eAAe,MAAMjB,gBAAgB;QACzCG;QACAY;QACAD;IACF;IAEA,IAAI,CAACG,cAAc;QACjB,OAAO;YAAEL,SAAS;YAAiBC,SAAS;QAAM;IACpD;IAEA,MAAMK,iBAAiBjB,qBAAqBI,QAAQD,MAAM,CAACe,YAAY;IACvE,IAAID,gBAAgB;QAClBrB,kBACE,cACA,GAAGuB,mBAAmBF,eAAeG,IAAI,EAAE,0DAA0D,CAAC;IAE1G;IAEA,OAAO;QAAET,SAAS;QAAgCC,SAAS;IAAK;AAClE"}
@@ -1,5 +1,7 @@
1
- import type { RefreshArgs } from 'payload/auth';
2
- export declare function refresh(args: Omit<RefreshArgs, 'serverAdapter'>): Promise<{
1
+ import type { MaybePromise, SanitizedConfig } from 'payload';
2
+ export declare function refresh({ config }: {
3
+ config: MaybePromise<SanitizedConfig>;
4
+ }): Promise<{
3
5
  message: string;
4
6
  success: boolean;
5
7
  }>;
@@ -1 +1 @@
1
- {"version":3,"file":"refresh.d.ts","sourceRoot":"","sources":["../../src/auth/refresh.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,cAAc,CAAA;AAM/C,wBAAsB,OAAO,CAC3B,IAAI,EAAE,IAAI,CAAC,WAAW,EAAE,eAAe,CAAC,GACvC,OAAO,CAAC;IAAE,OAAO,EAAE,MAAM,CAAC;IAAC,OAAO,EAAE,OAAO,CAAA;CAAE,CAAC,CAEhD"}
1
+ {"version":3,"file":"refresh.d.ts","sourceRoot":"","sources":["../../src/auth/refresh.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAkB,YAAY,EAAE,eAAe,EAAE,MAAM,SAAS,CAAA;AAQ5E,wBAAsB,OAAO,CAAC,EAAE,MAAM,EAAE,EAAE;IAAE,MAAM,EAAE,YAAY,CAAC,eAAe,CAAC,CAAA;CAAE;;;GAwClF"}
@@ -1,10 +1,53 @@
1
- import { refresh as refreshFn } from 'payload/auth';
2
- import { tanstackServerAdapter } from '../utilities/serverAdapter.server.js';
3
- export async function refresh(args) {
4
- return refreshFn({
5
- ...args,
6
- serverAdapter: tanstackServerAdapter
1
+ import { getRequest } from '@tanstack/react-start/server';
2
+ import { createLocalReq, getPayload, refreshOperation } from 'payload';
3
+ import { getExistingAuthToken } from '../utilities/getExistingAuthToken.js';
4
+ import { setPayloadAuthCookie } from '../utilities/setPayloadAuthCookie.js';
5
+ export async function refresh({ config }) {
6
+ const payload = await getPayload({
7
+ config
7
8
  });
9
+ const request = getRequest();
10
+ const headers = new Headers(request.headers);
11
+ const result = await payload.auth({
12
+ headers
13
+ });
14
+ if (!result.user) {
15
+ throw new Error('Cannot refresh token: user not authenticated');
16
+ }
17
+ const existingCookie = getExistingAuthToken(payload.config.cookiePrefix);
18
+ if (!existingCookie) {
19
+ return {
20
+ message: 'No valid token found to refresh',
21
+ success: false
22
+ };
23
+ }
24
+ const collection = result.user.collection;
25
+ const collectionConfig = payload.collections[collection];
26
+ if (!collectionConfig?.config.auth) {
27
+ throw new Error(`No auth config found for collection: ${collection}`);
28
+ }
29
+ const req = await createLocalReq({
30
+ user: result.user
31
+ }, payload);
32
+ const refreshResult = await refreshOperation({
33
+ collection: collectionConfig,
34
+ req
35
+ });
36
+ if (!refreshResult) {
37
+ return {
38
+ message: 'Token refresh failed',
39
+ success: false
40
+ };
41
+ }
42
+ setPayloadAuthCookie({
43
+ authConfig: collectionConfig.config.auth,
44
+ cookiePrefix: payload.config.cookiePrefix,
45
+ token: refreshResult.refreshedToken
46
+ });
47
+ return {
48
+ message: 'Token refreshed successfully',
49
+ success: true
50
+ };
8
51
  }
9
52
 
10
53
  //# sourceMappingURL=refresh.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/auth/refresh.ts"],"sourcesContent":["import type { RefreshArgs } from 'payload/auth'\n\nimport { refresh as refreshFn } from 'payload/auth'\n\nimport { tanstackServerAdapter } from '../utilities/serverAdapter.server.js'\n\nexport async function refresh(\n args: Omit<RefreshArgs, 'serverAdapter'>,\n): Promise<{ message: string; success: boolean }> {\n return refreshFn({ ...args, serverAdapter: tanstackServerAdapter })\n}\n"],"names":["refresh","refreshFn","tanstackServerAdapter","args","serverAdapter"],"mappings":"AAEA,SAASA,WAAWC,SAAS,QAAQ,eAAc;AAEnD,SAASC,qBAAqB,QAAQ,uCAAsC;AAE5E,OAAO,eAAeF,QACpBG,IAAwC;IAExC,OAAOF,UAAU;QAAE,GAAGE,IAAI;QAAEC,eAAeF;IAAsB;AACnE"}
1
+ {"version":3,"sources":["../../src/auth/refresh.ts"],"sourcesContent":["import type { CollectionSlug, MaybePromise, SanitizedConfig } from 'payload'\n\nimport { getRequest } from '@tanstack/react-start/server'\nimport { createLocalReq, getPayload, refreshOperation } from 'payload'\n\nimport { getExistingAuthToken } from '../utilities/getExistingAuthToken.js'\nimport { setPayloadAuthCookie } from '../utilities/setPayloadAuthCookie.js'\n\nexport async function refresh({ config }: { config: MaybePromise<SanitizedConfig> }) {\n const payload = await getPayload({ config })\n const request = getRequest()\n const headers = new Headers(request.headers)\n const result = await payload.auth({ headers })\n\n if (!result.user) {\n throw new Error('Cannot refresh token: user not authenticated')\n }\n\n const existingCookie = getExistingAuthToken(payload.config.cookiePrefix)\n if (!existingCookie) {\n return { message: 'No valid token found to refresh', success: false }\n }\n\n const collection: CollectionSlug | undefined = result.user.collection\n const collectionConfig = payload.collections[collection]\n\n if (!collectionConfig?.config.auth) {\n throw new Error(`No auth config found for collection: ${collection}`)\n }\n\n const req = await createLocalReq({ user: result.user }, payload)\n\n const refreshResult = await refreshOperation({\n collection: collectionConfig,\n req,\n })\n\n if (!refreshResult) {\n return { message: 'Token refresh failed', success: false }\n }\n\n setPayloadAuthCookie({\n authConfig: collectionConfig.config.auth,\n cookiePrefix: payload.config.cookiePrefix,\n token: refreshResult.refreshedToken,\n })\n\n return { message: 'Token refreshed successfully', success: true }\n}\n"],"names":["getRequest","createLocalReq","getPayload","refreshOperation","getExistingAuthToken","setPayloadAuthCookie","refresh","config","payload","request","headers","Headers","result","auth","user","Error","existingCookie","cookiePrefix","message","success","collection","collectionConfig","collections","req","refreshResult","authConfig","token","refreshedToken"],"mappings":"AAEA,SAASA,UAAU,QAAQ,+BAA8B;AACzD,SAASC,cAAc,EAAEC,UAAU,EAAEC,gBAAgB,QAAQ,UAAS;AAEtE,SAASC,oBAAoB,QAAQ,uCAAsC;AAC3E,SAASC,oBAAoB,QAAQ,uCAAsC;AAE3E,OAAO,eAAeC,QAAQ,EAAEC,MAAM,EAA6C;IACjF,MAAMC,UAAU,MAAMN,WAAW;QAAEK;IAAO;IAC1C,MAAME,UAAUT;IAChB,MAAMU,UAAU,IAAIC,QAAQF,QAAQC,OAAO;IAC3C,MAAME,SAAS,MAAMJ,QAAQK,IAAI,CAAC;QAAEH;IAAQ;IAE5C,IAAI,CAACE,OAAOE,IAAI,EAAE;QAChB,MAAM,IAAIC,MAAM;IAClB;IAEA,MAAMC,iBAAiBZ,qBAAqBI,QAAQD,MAAM,CAACU,YAAY;IACvE,IAAI,CAACD,gBAAgB;QACnB,OAAO;YAAEE,SAAS;YAAmCC,SAAS;QAAM;IACtE;IAEA,MAAMC,aAAyCR,OAAOE,IAAI,CAACM,UAAU;IACrE,MAAMC,mBAAmBb,QAAQc,WAAW,CAACF,WAAW;IAExD,IAAI,CAACC,kBAAkBd,OAAOM,MAAM;QAClC,MAAM,IAAIE,MAAM,CAAC,qCAAqC,EAAEK,YAAY;IACtE;IAEA,MAAMG,MAAM,MAAMtB,eAAe;QAAEa,MAAMF,OAAOE,IAAI;IAAC,GAAGN;IAExD,MAAMgB,gBAAgB,MAAMrB,iBAAiB;QAC3CiB,YAAYC;QACZE;IACF;IAEA,IAAI,CAACC,eAAe;QAClB,OAAO;YAAEN,SAAS;YAAwBC,SAAS;QAAM;IAC3D;IAEAd,qBAAqB;QACnBoB,YAAYJ,iBAAiBd,MAAM,CAACM,IAAI;QACxCI,cAAcT,QAAQD,MAAM,CAACU,YAAY;QACzCS,OAAOF,cAAcG,cAAc;IACrC;IAEA,OAAO;QAAET,SAAS;QAAgCC,SAAS;IAAK;AAClE"}
@@ -0,0 +1,16 @@
1
+ import type { ImportMap } from 'payload';
2
+ import '@payloadcms/ui/elements/DocumentHeader/index.scss';
3
+ import '@payloadcms/ui/elements/DocumentHeader/Tabs/index.scss';
4
+ import '@payloadcms/ui/elements/DocumentHeader/Tabs/Tab/index.scss';
5
+ import React from 'react';
6
+ /**
7
+ * Client-only DocumentHeader for non-RSC adapters.
8
+ * Uses hooks to obtain config, permissions, and i18n instead of requiring `req`.
9
+ */
10
+ export declare function DocumentHeaderClient({ collectionSlug, globalSlug, hideTabs, importMap, }: {
11
+ collectionSlug?: string;
12
+ globalSlug?: string;
13
+ hideTabs?: boolean;
14
+ importMap: ImportMap;
15
+ }): React.JSX.Element;
16
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/elements/DocumentHeaderClient/index.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAqB,SAAS,EAAE,MAAM,SAAS,CAAA;AAG3D,OAAO,mDAAmD,CAAA;AAC1D,OAAO,wDAAwD,CAAA;AAC/D,OAAO,4DAA4D,CAAA;AAKnE,OAAO,KAAmB,MAAM,OAAO,CAAA;AAKvC;;;GAGG;AACH,wBAAgB,oBAAoB,CAAC,EACnC,cAAc,EACd,UAAU,EACV,QAAQ,EACR,SAAS,GACV,EAAE;IACD,cAAc,CAAC,EAAE,MAAM,CAAA;IACvB,UAAU,CAAC,EAAE,MAAM,CAAA;IACnB,QAAQ,CAAC,EAAE,OAAO,CAAA;IAClB,SAAS,EAAE,SAAS,CAAA;CACrB,qBAsGA"}
@@ -0,0 +1,116 @@
1
+ 'use client';
2
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
3
+ import { Gutter, RenderTitle, useAuth, useConfig, useTranslation } from '@payloadcms/ui';
4
+ import '@payloadcms/ui/elements/DocumentHeader/index.scss';
5
+ import '@payloadcms/ui/elements/DocumentHeader/Tabs/index.scss';
6
+ import '@payloadcms/ui/elements/DocumentHeader/Tabs/Tab/index.scss';
7
+ import { ShouldRenderTabs } from '@payloadcms/ui/elements/DocumentHeader/Tabs/ShouldRenderTabs';
8
+ import { DocumentTabLink } from '@payloadcms/ui/elements/DocumentHeader/Tabs/Tab/TabLink';
9
+ import { getTabs } from '@payloadcms/ui/elements/DocumentHeader/Tabs/tabs';
10
+ import { RenderClientComponent } from '@payloadcms/ui/elements/RenderServerComponent/clientOnly';
11
+ import React, { Fragment } from 'react';
12
+ const baseClass = 'doc-header';
13
+ const tabBaseClass = 'doc-tab';
14
+ /**
15
+ * Client-only DocumentHeader for non-RSC adapters.
16
+ * Uses hooks to obtain config, permissions, and i18n instead of requiring `req`.
17
+ */ export function DocumentHeaderClient({ collectionSlug, globalSlug, hideTabs, importMap }) {
18
+ const { config, getEntityConfig } = useConfig();
19
+ const { permissions } = useAuth();
20
+ const { t } = useTranslation();
21
+ const collectionConfig = collectionSlug ? getEntityConfig({
22
+ collectionSlug
23
+ }) : null;
24
+ const globalConfig = globalSlug ? getEntityConfig({
25
+ globalSlug
26
+ }) : null;
27
+ const tabs = getTabs({
28
+ collectionConfig: collectionConfig,
29
+ globalConfig: globalConfig
30
+ });
31
+ return /*#__PURE__*/ _jsx(Gutter, {
32
+ className: baseClass,
33
+ children: /*#__PURE__*/ _jsxs("div", {
34
+ className: `${baseClass}__header`,
35
+ children: [
36
+ /*#__PURE__*/ _jsx(RenderTitle, {
37
+ className: `${baseClass}__title`
38
+ }),
39
+ !hideTabs && /*#__PURE__*/ _jsx(ShouldRenderTabs, {
40
+ children: /*#__PURE__*/ _jsx("div", {
41
+ className: "doc-tabs",
42
+ children: /*#__PURE__*/ _jsx("div", {
43
+ className: "doc-tabs__tabs-container",
44
+ children: /*#__PURE__*/ _jsx("ul", {
45
+ className: "doc-tabs__tabs",
46
+ children: tabs?.map(({ tab: tabConfig, viewPath }, index)=>{
47
+ if (tabConfig?.condition) {
48
+ const meetsCondition = tabConfig.condition({
49
+ collectionConfig: collectionConfig,
50
+ config: config,
51
+ globalConfig: globalConfig,
52
+ permissions: permissions ?? {},
53
+ req: undefined
54
+ });
55
+ if (!meetsCondition) {
56
+ return null;
57
+ }
58
+ }
59
+ if (tabConfig?.Component) {
60
+ return /*#__PURE__*/ _jsx(RenderClientComponent, {
61
+ clientProps: {
62
+ path: viewPath
63
+ },
64
+ Component: tabConfig.Component,
65
+ importMap: importMap
66
+ }, `tab-${index}`);
67
+ }
68
+ const label = typeof tabConfig.label === 'function' ? tabConfig.label({
69
+ t: t
70
+ }) : tabConfig.label ?? '';
71
+ let href;
72
+ if (typeof tabConfig.href === 'function') {
73
+ href = tabConfig.href({
74
+ apiURL: undefined,
75
+ collection: collectionConfig,
76
+ global: globalConfig,
77
+ routes: config.routes
78
+ });
79
+ } else {
80
+ href = tabConfig.href ?? '';
81
+ }
82
+ const { Pill, Pill_Component } = tabConfig;
83
+ return /*#__PURE__*/ _jsx(DocumentTabLink, {
84
+ adminRoute: config.routes.admin,
85
+ ariaLabel: label,
86
+ baseClass: tabBaseClass,
87
+ href: href,
88
+ newTab: tabConfig.newTab,
89
+ children: /*#__PURE__*/ _jsxs("span", {
90
+ className: `${tabBaseClass}__label`,
91
+ children: [
92
+ label,
93
+ Pill || Pill_Component ? /*#__PURE__*/ _jsxs(Fragment, {
94
+ children: [
95
+ " ",
96
+ RenderClientComponent({
97
+ Component: Pill,
98
+ Fallback: Pill_Component,
99
+ importMap
100
+ })
101
+ ]
102
+ }) : null
103
+ ]
104
+ })
105
+ }, `tab-${index}`);
106
+ })
107
+ })
108
+ })
109
+ })
110
+ })
111
+ ]
112
+ })
113
+ });
114
+ }
115
+
116
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../src/elements/DocumentHeaderClient/index.tsx"],"sourcesContent":["'use client'\n\nimport type { DocumentTabConfig, ImportMap } from 'payload'\n\nimport { Gutter, RenderTitle, useAuth, useConfig, useTranslation } from '@payloadcms/ui'\nimport '@payloadcms/ui/elements/DocumentHeader/index.scss'\nimport '@payloadcms/ui/elements/DocumentHeader/Tabs/index.scss'\nimport '@payloadcms/ui/elements/DocumentHeader/Tabs/Tab/index.scss'\nimport { ShouldRenderTabs } from '@payloadcms/ui/elements/DocumentHeader/Tabs/ShouldRenderTabs'\nimport { DocumentTabLink } from '@payloadcms/ui/elements/DocumentHeader/Tabs/Tab/TabLink'\nimport { getTabs } from '@payloadcms/ui/elements/DocumentHeader/Tabs/tabs'\nimport { RenderClientComponent } from '@payloadcms/ui/elements/RenderServerComponent/clientOnly'\nimport React, { Fragment } from 'react'\n\nconst baseClass = 'doc-header'\nconst tabBaseClass = 'doc-tab'\n\n/**\n * Client-only DocumentHeader for non-RSC adapters.\n * Uses hooks to obtain config, permissions, and i18n instead of requiring `req`.\n */\nexport function DocumentHeaderClient({\n collectionSlug,\n globalSlug,\n hideTabs,\n importMap,\n}: {\n collectionSlug?: string\n globalSlug?: string\n hideTabs?: boolean\n importMap: ImportMap\n}) {\n const { config, getEntityConfig } = useConfig()\n const { permissions } = useAuth()\n const { t } = useTranslation()\n\n const collectionConfig = collectionSlug ? getEntityConfig({ collectionSlug }) : null\n const globalConfig = globalSlug ? getEntityConfig({ globalSlug }) : null\n\n const tabs = getTabs({\n collectionConfig: collectionConfig as any,\n globalConfig: globalConfig as any,\n })\n\n return (\n <Gutter className={baseClass}>\n <div className={`${baseClass}__header`}>\n <RenderTitle className={`${baseClass}__title`} />\n {!hideTabs && (\n <ShouldRenderTabs>\n <div className=\"doc-tabs\">\n <div className=\"doc-tabs__tabs-container\">\n <ul className=\"doc-tabs__tabs\">\n {tabs?.map(({ tab: tabConfig, viewPath }, index) => {\n if (tabConfig?.condition) {\n const meetsCondition = tabConfig.condition({\n collectionConfig: collectionConfig as any,\n config: config as any,\n globalConfig: globalConfig as any,\n permissions: permissions ?? ({} as any),\n req: undefined as any,\n })\n if (!meetsCondition) {\n return null\n }\n }\n\n if (tabConfig?.Component) {\n return (\n <RenderClientComponent\n clientProps={{ path: viewPath }}\n Component={tabConfig.Component}\n importMap={importMap}\n key={`tab-${index}`}\n />\n )\n }\n\n const label =\n typeof tabConfig.label === 'function'\n ? tabConfig.label({ t: t as any })\n : ((tabConfig.label as string) ?? '')\n\n let href: string\n if (typeof tabConfig.href === 'function') {\n href = tabConfig.href({\n apiURL: undefined as any,\n collection: collectionConfig as any,\n global: globalConfig as any,\n routes: config.routes as any,\n })\n } else {\n href = (tabConfig.href as string) ?? ''\n }\n\n const { Pill, Pill_Component } = tabConfig as {\n Pill?: DocumentTabConfig['Pill']\n Pill_Component?: React.FC\n }\n\n return (\n <DocumentTabLink\n adminRoute={config.routes.admin}\n ariaLabel={label}\n baseClass={tabBaseClass}\n href={href}\n key={`tab-${index}`}\n newTab={tabConfig.newTab}\n >\n <span className={`${tabBaseClass}__label`}>\n {label}\n {Pill || Pill_Component ? (\n <Fragment>\n &nbsp;\n {RenderClientComponent({\n Component: Pill,\n Fallback: Pill_Component,\n importMap,\n })}\n </Fragment>\n ) : null}\n </span>\n </DocumentTabLink>\n )\n })}\n </ul>\n </div>\n </div>\n </ShouldRenderTabs>\n )}\n </div>\n </Gutter>\n )\n}\n"],"names":["Gutter","RenderTitle","useAuth","useConfig","useTranslation","ShouldRenderTabs","DocumentTabLink","getTabs","RenderClientComponent","React","Fragment","baseClass","tabBaseClass","DocumentHeaderClient","collectionSlug","globalSlug","hideTabs","importMap","config","getEntityConfig","permissions","t","collectionConfig","globalConfig","tabs","className","div","ul","map","tab","tabConfig","viewPath","index","condition","meetsCondition","req","undefined","Component","clientProps","path","label","href","apiURL","collection","global","routes","Pill","Pill_Component","adminRoute","admin","ariaLabel","newTab","span","Fallback"],"mappings":"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"}
@@ -0,0 +1,10 @@
1
+ import type { ComponentRenderer } from 'payload';
2
+ /**
3
+ * TanStack Start component renderer.
4
+ *
5
+ * Uses the RSC-aware renderer that passes `serverProps` to server components
6
+ * (detected via `$$typeof` / `isReactServerComponentOrFunction`) and
7
+ * `clientProps` only to client components.
8
+ */
9
+ export declare const TanStackComponentRenderer: ComponentRenderer;
10
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/elements/RenderComponent/index.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,SAAS,CAAA;AAIhD;;;;;;GAMG;AACH,eAAO,MAAM,yBAAyB,EAAE,iBAEvC,CAAA"}
@@ -0,0 +1,12 @@
1
+ import { RenderRSCComponent } from '../../rsc/renderPayloadRSC.js';
2
+ /**
3
+ * TanStack Start component renderer.
4
+ *
5
+ * Uses the RSC-aware renderer that passes `serverProps` to server components
6
+ * (detected via `$$typeof` / `isReactServerComponentOrFunction`) and
7
+ * `clientProps` only to client components.
8
+ */ export const TanStackComponentRenderer = (args)=>{
9
+ return RenderRSCComponent(args);
10
+ };
11
+
12
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../src/elements/RenderComponent/index.tsx"],"sourcesContent":["import type { ComponentRenderer } from 'payload'\n\nimport { RenderRSCComponent } from '../../rsc/renderPayloadRSC.js'\n\n/**\n * TanStack Start component renderer.\n *\n * Uses the RSC-aware renderer that passes `serverProps` to server components\n * (detected via `$$typeof` / `isReactServerComponentOrFunction`) and\n * `clientProps` only to client components.\n */\nexport const TanStackComponentRenderer: ComponentRenderer = (args) => {\n return RenderRSCComponent(args)\n}\n"],"names":["RenderRSCComponent","TanStackComponentRenderer","args"],"mappings":"AAEA,SAASA,kBAAkB,QAAQ,gCAA+B;AAElE;;;;;;CAMC,GACD,OAAO,MAAMC,4BAA+C,CAACC;IAC3D,OAAOF,mBAAmBE;AAC5B,EAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/elements/RouterAdapter/index.tsx"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAoB,sBAAsB,EAAE,MAAM,SAAS,CAAA;AAuDvE,eAAO,MAAM,qBAAqB,EAAE,sBAyGnC,CAAA"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/elements/RouterAdapter/index.tsx"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAoB,sBAAsB,EAAE,MAAM,SAAS,CAAA;AAuDvE,eAAO,MAAM,qBAAqB,EAAE,sBA4GnC,CAAA"}
@@ -78,12 +78,15 @@ export const TanStackRouterAdapter = ({ children })=>{
78
78
  const back = useCallback(()=>router.history.back(), [
79
79
  router
80
80
  ]);
81
- const push = useCallback((path, options)=>{
82
- void router.navigate({
81
+ // Return the `navigate` promise (resolves once the navigation and its blocking
82
+ // loader settle) so `startRouteTransition` keeps the route-transition progress
83
+ // bar visible for the full navigation — TanStack's router drives its own
84
+ // internal React transition, so without awaiting this the shared optimistic
85
+ // `isTransitioning` flag would flip back before the new view loads.
86
+ const push = useCallback((path, options)=>router.navigate({
83
87
  ...toNavOptions(path),
84
88
  resetScroll: options?.scroll
85
- });
86
- }, [
89
+ }), [
87
90
  router,
88
91
  toNavOptions
89
92
  ]);
@@ -92,13 +95,11 @@ export const TanStackRouterAdapter = ({ children })=>{
92
95
  }, [
93
96
  router
94
97
  ]);
95
- const replace = useCallback((path, options)=>{
96
- void router.navigate({
98
+ const replace = useCallback((path, options)=>router.navigate({
97
99
  ...toNavOptions(path),
98
100
  replace: true,
99
101
  resetScroll: options?.scroll
100
- });
101
- }, [
102
+ }), [
102
103
  router,
103
104
  toNavOptions
104
105
  ]);
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/elements/RouterAdapter/index.tsx"],"sourcesContent":["'use client'\n\nimport type { RouterAdapterContextValue } from '@payloadcms/ui'\nimport type { LinkAdapterProps, RouterAdapterComponent } from 'payload'\n\nimport { RouterAdapterContext } from '@payloadcms/ui'\nimport { Link as TanStackLink, useLocation, useParams, useRouter } from '@tanstack/react-router'\nimport * as qs from 'qs-esm'\nimport React, { useCallback, useMemo } from 'react'\n\nconst normalizeNavigationTarget = ({\n path,\n pathname,\n search,\n}: {\n path: string\n pathname: string\n search: string\n}) => {\n if (path.startsWith('http')) {\n const url = new URL(path)\n return `${url.pathname}${url.search}${url.hash}`\n }\n\n if (path.startsWith('?')) {\n return `${pathname}${path}`\n }\n\n if (path.startsWith('#')) {\n return `${pathname}${search}${path}`\n }\n\n return path\n}\n\nconst TanStackLinkAdapter: React.FC<LinkAdapterProps> = ({\n children,\n href,\n prefetch,\n ref,\n replace,\n scroll,\n ...rest\n}) => {\n return (\n <TanStackLink\n preload={prefetch === false ? false : 'intent'}\n ref={ref}\n replace={replace}\n resetScroll={scroll}\n to={href}\n {...rest}\n >\n {children}\n </TanStackLink>\n )\n}\n\nexport const TanStackRouterAdapter: RouterAdapterComponent = ({ children }) => {\n const router = useRouter()\n const location = useLocation()\n const params = useParams({ strict: false })\n\n const adaptedParams = useMemo(() => {\n const adapted: Record<string, string | string[]> = { ...params }\n\n if ('_splat' in params && typeof params._splat === 'string') {\n adapted.segments = params._splat.split('/').filter(Boolean)\n }\n\n return adapted\n }, [params])\n\n // Split a target into `to` (pathname) + a parsed `search` object, so the\n // router serializes the query via its `stringifySearch` (qs, bracket-encoded)\n // rather than embedding the raw string in `to`. Navigating with a string `to`\n // leaves the search *unencoded* in `window.location.search`\n // (e.g. `where[or][0]…`), which then never matches Payload's `qs.stringify`\n // output (`where%5Bor%5D…`) — breaking the list-view `syncPropsToURL` guard,\n // which compares the two and would otherwise clobber optimistic query state\n // (e.g. an in-progress filter condition) on every navigation.\n const toNavOptions = useCallback((path: string) => {\n const relativePath = normalizeNavigationTarget({\n path,\n pathname: window.location.pathname,\n search: window.location.search,\n })\n\n const queryIndex = relativePath.indexOf('?')\n\n if (queryIndex === -1) {\n return { to: relativePath }\n }\n\n const searchObject = qs.parse(relativePath.slice(queryIndex + 1), {\n depth: 10,\n ignoreQueryPrefix: true,\n })\n\n // Function form replaces the search entirely (no merge with current search).\n return { search: () => searchObject, to: relativePath.slice(0, queryIndex) }\n }, [])\n\n const back = useCallback(() => router.history.back(), [router])\n\n const push = useCallback(\n (path: string, options?: { scroll?: boolean }) => {\n void router.navigate({ ...toNavOptions(path), resetScroll: options?.scroll })\n },\n [router, toNavOptions],\n )\n\n const refresh = useCallback(() => {\n void router.invalidate()\n }, [router])\n\n const replace = useCallback(\n (path: string, options?: { scroll?: boolean }) => {\n void router.navigate({ ...toNavOptions(path), replace: true, resetScroll: options?.scroll })\n },\n [router, toNavOptions],\n )\n\n // Mirror Next.js' router behavior to allow syncing client state to the URL without triggering a second server load.\n // TanStack's browser history monkeypatches `window.history.replaceState` and notifies `router.load` on every call.\n // Use `_ignoreSubscribers` to suppresses that notification — the same flag TanStack uses internally when flushing history.\n const replaceState = useCallback(\n (url: string) => {\n const { history } = router\n history._ignoreSubscribers = true\n\n try {\n window.history.replaceState(null, '', url)\n } finally {\n history._ignoreSubscribers = false\n }\n },\n [router],\n )\n\n const adaptedRouter = useMemo(\n () => ({ back, push, refresh, replace, replaceState }),\n [back, push, refresh, replace, replaceState],\n )\n\n // `location.searchStr` is the serialized query string; `location.search` is\n // the parsed object (a nested structure once the router uses `qs` for search\n // serialization), which `URLSearchParams` cannot consume. Build from the\n // string so Payload's `parseSearchParams` re-parses the bracket notation.\n const searchParams = useMemo(() => new URLSearchParams(location.searchStr), [location.searchStr])\n\n const value: RouterAdapterContextValue = useMemo(\n () => ({\n Link: TanStackLinkAdapter,\n params: adaptedParams,\n pathname: location.pathname,\n router: adaptedRouter,\n searchParams,\n }),\n [adaptedParams, location.pathname, adaptedRouter, searchParams],\n )\n\n return <RouterAdapterContext value={value}>{children}</RouterAdapterContext>\n}\n"],"names":["RouterAdapterContext","Link","TanStackLink","useLocation","useParams","useRouter","qs","React","useCallback","useMemo","normalizeNavigationTarget","path","pathname","search","startsWith","url","URL","hash","TanStackLinkAdapter","children","href","prefetch","ref","replace","scroll","rest","preload","resetScroll","to","TanStackRouterAdapter","router","location","params","strict","adaptedParams","adapted","_splat","segments","split","filter","Boolean","toNavOptions","relativePath","window","queryIndex","indexOf","searchObject","parse","slice","depth","ignoreQueryPrefix","back","history","push","options","navigate","refresh","invalidate","replaceState","_ignoreSubscribers","adaptedRouter","searchParams","URLSearchParams","searchStr","value"],"mappings":"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"}
1
+ {"version":3,"sources":["../../../src/elements/RouterAdapter/index.tsx"],"sourcesContent":["'use client'\n\nimport type { RouterAdapterContextValue } from '@payloadcms/ui'\nimport type { LinkAdapterProps, RouterAdapterComponent } from 'payload'\n\nimport { RouterAdapterContext } from '@payloadcms/ui'\nimport { Link as TanStackLink, useLocation, useParams, useRouter } from '@tanstack/react-router'\nimport * as qs from 'qs-esm'\nimport React, { useCallback, useMemo } from 'react'\n\nconst normalizeNavigationTarget = ({\n path,\n pathname,\n search,\n}: {\n path: string\n pathname: string\n search: string\n}) => {\n if (path.startsWith('http')) {\n const url = new URL(path)\n return `${url.pathname}${url.search}${url.hash}`\n }\n\n if (path.startsWith('?')) {\n return `${pathname}${path}`\n }\n\n if (path.startsWith('#')) {\n return `${pathname}${search}${path}`\n }\n\n return path\n}\n\nconst TanStackLinkAdapter: React.FC<LinkAdapterProps> = ({\n children,\n href,\n prefetch,\n ref,\n replace,\n scroll,\n ...rest\n}) => {\n return (\n <TanStackLink\n preload={prefetch === false ? false : 'intent'}\n ref={ref}\n replace={replace}\n resetScroll={scroll}\n to={href}\n {...rest}\n >\n {children}\n </TanStackLink>\n )\n}\n\nexport const TanStackRouterAdapter: RouterAdapterComponent = ({ children }) => {\n const router = useRouter()\n const location = useLocation()\n const params = useParams({ strict: false })\n\n const adaptedParams = useMemo(() => {\n const adapted: Record<string, string | string[]> = { ...params }\n\n if ('_splat' in params && typeof params._splat === 'string') {\n adapted.segments = params._splat.split('/').filter(Boolean)\n }\n\n return adapted\n }, [params])\n\n // Split a target into `to` (pathname) + a parsed `search` object, so the\n // router serializes the query via its `stringifySearch` (qs, bracket-encoded)\n // rather than embedding the raw string in `to`. Navigating with a string `to`\n // leaves the search *unencoded* in `window.location.search`\n // (e.g. `where[or][0]…`), which then never matches Payload's `qs.stringify`\n // output (`where%5Bor%5D…`) — breaking the list-view `syncPropsToURL` guard,\n // which compares the two and would otherwise clobber optimistic query state\n // (e.g. an in-progress filter condition) on every navigation.\n const toNavOptions = useCallback((path: string) => {\n const relativePath = normalizeNavigationTarget({\n path,\n pathname: window.location.pathname,\n search: window.location.search,\n })\n\n const queryIndex = relativePath.indexOf('?')\n\n if (queryIndex === -1) {\n return { to: relativePath }\n }\n\n const searchObject = qs.parse(relativePath.slice(queryIndex + 1), {\n depth: 10,\n ignoreQueryPrefix: true,\n })\n\n // Function form replaces the search entirely (no merge with current search).\n return { search: () => searchObject, to: relativePath.slice(0, queryIndex) }\n }, [])\n\n const back = useCallback(() => router.history.back(), [router])\n\n // Return the `navigate` promise (resolves once the navigation and its blocking\n // loader settle) so `startRouteTransition` keeps the route-transition progress\n // bar visible for the full navigation — TanStack's router drives its own\n // internal React transition, so without awaiting this the shared optimistic\n // `isTransitioning` flag would flip back before the new view loads.\n const push = useCallback(\n (path: string, options?: { scroll?: boolean }) =>\n router.navigate({ ...toNavOptions(path), resetScroll: options?.scroll }),\n [router, toNavOptions],\n )\n\n const refresh = useCallback(() => {\n void router.invalidate()\n }, [router])\n\n const replace = useCallback(\n (path: string, options?: { scroll?: boolean }) =>\n router.navigate({ ...toNavOptions(path), replace: true, resetScroll: options?.scroll }),\n [router, toNavOptions],\n )\n\n // Mirror Next.js' router behavior to allow syncing client state to the URL without triggering a second server load.\n // TanStack's browser history monkeypatches `window.history.replaceState` and notifies `router.load` on every call.\n // Use `_ignoreSubscribers` to suppresses that notification — the same flag TanStack uses internally when flushing history.\n const replaceState = useCallback(\n (url: string) => {\n const { history } = router\n history._ignoreSubscribers = true\n\n try {\n window.history.replaceState(null, '', url)\n } finally {\n history._ignoreSubscribers = false\n }\n },\n [router],\n )\n\n const adaptedRouter = useMemo(\n () => ({ back, push, refresh, replace, replaceState }),\n [back, push, refresh, replace, replaceState],\n )\n\n // `location.searchStr` is the serialized query string; `location.search` is\n // the parsed object (a nested structure once the router uses `qs` for search\n // serialization), which `URLSearchParams` cannot consume. Build from the\n // string so Payload's `parseSearchParams` re-parses the bracket notation.\n const searchParams = useMemo(() => new URLSearchParams(location.searchStr), [location.searchStr])\n\n const value: RouterAdapterContextValue = useMemo(\n () => ({\n Link: TanStackLinkAdapter,\n params: adaptedParams,\n pathname: location.pathname,\n router: adaptedRouter,\n searchParams,\n }),\n [adaptedParams, location.pathname, adaptedRouter, searchParams],\n )\n\n return <RouterAdapterContext value={value}>{children}</RouterAdapterContext>\n}\n"],"names":["RouterAdapterContext","Link","TanStackLink","useLocation","useParams","useRouter","qs","React","useCallback","useMemo","normalizeNavigationTarget","path","pathname","search","startsWith","url","URL","hash","TanStackLinkAdapter","children","href","prefetch","ref","replace","scroll","rest","preload","resetScroll","to","TanStackRouterAdapter","router","location","params","strict","adaptedParams","adapted","_splat","segments","split","filter","Boolean","toNavOptions","relativePath","window","queryIndex","indexOf","searchObject","parse","slice","depth","ignoreQueryPrefix","back","history","push","options","navigate","refresh","invalidate","replaceState","_ignoreSubscribers","adaptedRouter","searchParams","URLSearchParams","searchStr","value"],"mappings":"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"}
@@ -1,3 +1,4 @@
1
+ export { TanStackComponentRenderer } from '../elements/RenderComponent/index.js';
1
2
  export { TanStackRouterAdapter } from '../elements/RouterAdapter/index.js';
2
3
  export { PayloadAdminShell, type PayloadAdminShellProps, withPayloadRoot, type WithPayloadRootOptions, } from '../layouts/Root/withPayloadRoot.js';
3
4
  export { type AdminLoad, payloadAdminIndexRoute, payloadAdminSplatRoute, } from '../routes/adminRoutes.js';
@@ -1 +1 @@
1
- {"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../../src/exports/client.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,qBAAqB,EAAE,MAAM,oCAAoC,CAAA;AAC1E,OAAO,EACL,iBAAiB,EACjB,KAAK,sBAAsB,EAC3B,eAAe,EACf,KAAK,sBAAsB,GAC5B,MAAM,oCAAoC,CAAA;AAC3C,OAAO,EACL,KAAK,SAAS,EACd,sBAAsB,EACtB,sBAAsB,GACvB,MAAM,0BAA0B,CAAA;AACjC,OAAO,EAAE,KAAK,UAAU,EAAE,kBAAkB,EAAE,MAAM,0BAA0B,CAAA;AAC9E,OAAO,EAAE,qBAAqB,EAAE,MAAM,mCAAmC,CAAA;AACzE,OAAO,EACL,0BAA0B,EAC1B,mBAAmB,GACpB,MAAM,sCAAsC,CAAA"}
1
+ {"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../../src/exports/client.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,yBAAyB,EAAE,MAAM,sCAAsC,CAAA;AAChF,OAAO,EAAE,qBAAqB,EAAE,MAAM,oCAAoC,CAAA;AAC1E,OAAO,EACL,iBAAiB,EACjB,KAAK,sBAAsB,EAC3B,eAAe,EACf,KAAK,sBAAsB,GAC5B,MAAM,oCAAoC,CAAA;AAC3C,OAAO,EACL,KAAK,SAAS,EACd,sBAAsB,EACtB,sBAAsB,GACvB,MAAM,0BAA0B,CAAA;AACjC,OAAO,EAAE,KAAK,UAAU,EAAE,kBAAkB,EAAE,MAAM,0BAA0B,CAAA;AAC9E,OAAO,EAAE,qBAAqB,EAAE,MAAM,mCAAmC,CAAA;AACzE,OAAO,EACL,0BAA0B,EAC1B,mBAAmB,GACpB,MAAM,sCAAsC,CAAA"}
@@ -1,4 +1,5 @@
1
1
  'use client';
2
+ export { TanStackComponentRenderer } from '../elements/RenderComponent/index.js';
2
3
  export { TanStackRouterAdapter } from '../elements/RouterAdapter/index.js';
3
4
  export { PayloadAdminShell, withPayloadRoot } from '../layouts/Root/withPayloadRoot.js';
4
5
  export { payloadAdminIndexRoute, payloadAdminSplatRoute } from '../routes/adminRoutes.js';
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/exports/client.ts"],"sourcesContent":["'use client'\n\nexport { TanStackRouterAdapter } from '../elements/RouterAdapter/index.js'\nexport {\n PayloadAdminShell,\n type PayloadAdminShellProps,\n withPayloadRoot,\n type WithPayloadRootOptions,\n} from '../layouts/Root/withPayloadRoot.js'\nexport {\n type AdminLoad,\n payloadAdminIndexRoute,\n payloadAdminSplatRoute,\n} from '../routes/adminRoutes.js'\nexport { type LayoutLoad, payloadLayoutRoute } from '../routes/layoutRoute.js'\nexport { viteDevReloadStrategy } from '../utilities/devReloadStrategy.js'\nexport {\n createServerFunctionClient,\n stripUnserializable,\n} from '../utilities/serverFunctionClient.js'\n"],"names":["TanStackRouterAdapter","PayloadAdminShell","withPayloadRoot","payloadAdminIndexRoute","payloadAdminSplatRoute","payloadLayoutRoute","viteDevReloadStrategy","createServerFunctionClient","stripUnserializable"],"mappings":"AAAA;AAEA,SAASA,qBAAqB,QAAQ,qCAAoC;AAC1E,SACEC,iBAAiB,EAEjBC,eAAe,QAEV,qCAAoC;AAC3C,SAEEC,sBAAsB,EACtBC,sBAAsB,QACjB,2BAA0B;AACjC,SAA0BC,kBAAkB,QAAQ,2BAA0B;AAC9E,SAASC,qBAAqB,QAAQ,oCAAmC;AACzE,SACEC,0BAA0B,EAC1BC,mBAAmB,QACd,uCAAsC"}
1
+ {"version":3,"sources":["../../src/exports/client.ts"],"sourcesContent":["'use client'\n\nexport { TanStackComponentRenderer } from '../elements/RenderComponent/index.js'\nexport { TanStackRouterAdapter } from '../elements/RouterAdapter/index.js'\nexport {\n PayloadAdminShell,\n type PayloadAdminShellProps,\n withPayloadRoot,\n type WithPayloadRootOptions,\n} from '../layouts/Root/withPayloadRoot.js'\nexport {\n type AdminLoad,\n payloadAdminIndexRoute,\n payloadAdminSplatRoute,\n} from '../routes/adminRoutes.js'\nexport { type LayoutLoad, payloadLayoutRoute } from '../routes/layoutRoute.js'\nexport { viteDevReloadStrategy } from '../utilities/devReloadStrategy.js'\nexport {\n createServerFunctionClient,\n stripUnserializable,\n} from '../utilities/serverFunctionClient.js'\n"],"names":["TanStackComponentRenderer","TanStackRouterAdapter","PayloadAdminShell","withPayloadRoot","payloadAdminIndexRoute","payloadAdminSplatRoute","payloadLayoutRoute","viteDevReloadStrategy","createServerFunctionClient","stripUnserializable"],"mappings":"AAAA;AAEA,SAASA,yBAAyB,QAAQ,uCAAsC;AAChF,SAASC,qBAAqB,QAAQ,qCAAoC;AAC1E,SACEC,iBAAiB,EAEjBC,eAAe,QAEV,qCAAoC;AAC3C,SAEEC,sBAAsB,EACtBC,sBAAsB,QACjB,2BAA0B;AACjC,SAA0BC,kBAAkB,QAAQ,2BAA0B;AAC9E,SAASC,qBAAqB,QAAQ,oCAAmC;AACzE,SACEC,0BAA0B,EAC1BC,mBAAmB,QACd,uCAAsC"}
@@ -1,4 +1,6 @@
1
1
  export { getLayoutData } from '../layouts/Root/getLayoutData.js';
2
- export type { GetLayoutDataArgs, RootLayoutData } from '../layouts/Root/getLayoutData.js';
2
+ export type { GetLayoutDataArgs } from '../layouts/Root/getLayoutData.js';
3
+ export { RootLayout } from '../layouts/Root/index.js';
4
+ export type { RootLayoutData, RootLayoutProps } from '../layouts/Root/index.js';
3
5
  export { loadLayoutData } from '../utilities/loadLayoutData.js';
4
6
  //# sourceMappingURL=layouts.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"layouts.d.ts","sourceRoot":"","sources":["../../src/exports/layouts.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,kCAAkC,CAAA;AAChE,YAAY,EAAE,iBAAiB,EAAE,cAAc,EAAE,MAAM,kCAAkC,CAAA;AACzF,OAAO,EAAE,cAAc,EAAE,MAAM,gCAAgC,CAAA"}
1
+ {"version":3,"file":"layouts.d.ts","sourceRoot":"","sources":["../../src/exports/layouts.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,kCAAkC,CAAA;AAChE,YAAY,EAAE,iBAAiB,EAAE,MAAM,kCAAkC,CAAA;AACzE,OAAO,EAAE,UAAU,EAAE,MAAM,0BAA0B,CAAA;AACrD,YAAY,EAAE,cAAc,EAAE,eAAe,EAAE,MAAM,0BAA0B,CAAA;AAC/E,OAAO,EAAE,cAAc,EAAE,MAAM,gCAAgC,CAAA"}