@payloadcms/tanstack-start 4.0.0-internal.17c142b
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.
- package/LICENSE.md +22 -0
- package/dist/@types/assets.d.js +2 -0
- package/dist/@types/assets.d.js.map +1 -0
- package/dist/auth/login.d.ts +17 -0
- package/dist/auth/login.d.ts.map +1 -0
- package/dist/auth/login.js +50 -0
- package/dist/auth/login.js.map +1 -0
- package/dist/auth/logout.d.ts +9 -0
- package/dist/auth/logout.d.ts.map +1 -0
- package/dist/auth/logout.js +51 -0
- package/dist/auth/logout.js.map +1 -0
- package/dist/auth/refresh.d.ts +8 -0
- package/dist/auth/refresh.d.ts.map +1 -0
- package/dist/auth/refresh.js +53 -0
- package/dist/auth/refresh.js.map +1 -0
- package/dist/elements/DocumentHeaderClient/index.d.ts +16 -0
- package/dist/elements/DocumentHeaderClient/index.d.ts.map +1 -0
- package/dist/elements/DocumentHeaderClient/index.js +116 -0
- package/dist/elements/DocumentHeaderClient/index.js.map +1 -0
- package/dist/elements/RenderComponent/index.d.ts +10 -0
- package/dist/elements/RenderComponent/index.d.ts.map +1 -0
- package/dist/elements/RenderComponent/index.js +12 -0
- package/dist/elements/RenderComponent/index.js.map +1 -0
- package/dist/elements/RouterAdapter/index.d.ts +3 -0
- package/dist/elements/RouterAdapter/index.d.ts.map +1 -0
- package/dist/elements/RouterAdapter/index.js +141 -0
- package/dist/elements/RouterAdapter/index.js.map +1 -0
- package/dist/exports/client.d.ts +8 -0
- package/dist/exports/client.d.ts.map +1 -0
- package/dist/exports/client.js +10 -0
- package/dist/exports/client.js.map +1 -0
- package/dist/exports/layouts.d.ts +6 -0
- package/dist/exports/layouts.d.ts.map +1 -0
- package/dist/exports/layouts.js +5 -0
- package/dist/exports/layouts.js.map +1 -0
- package/dist/exports/rsc.browser.d.ts +12 -0
- package/dist/exports/rsc.browser.d.ts.map +1 -0
- package/dist/exports/rsc.browser.js +12 -0
- package/dist/exports/rsc.browser.js.map +1 -0
- package/dist/exports/rsc.d.ts +5 -0
- package/dist/exports/rsc.d.ts.map +1 -0
- package/dist/exports/rsc.js +6 -0
- package/dist/exports/rsc.js.map +1 -0
- package/dist/exports/server.d.ts +17 -0
- package/dist/exports/server.d.ts.map +1 -0
- package/dist/exports/server.js +18 -0
- package/dist/exports/server.js.map +1 -0
- package/dist/exports/vite.d.ts +3 -0
- package/dist/exports/vite.d.ts.map +1 -0
- package/dist/exports/vite.js +3 -0
- package/dist/exports/vite.js.map +1 -0
- package/dist/index.d.ts +6 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +7 -0
- package/dist/index.js.map +1 -0
- package/dist/layouts/Root/getLayoutData.d.ts +12 -0
- package/dist/layouts/Root/getLayoutData.d.ts.map +1 -0
- package/dist/layouts/Root/getLayoutData.js +91 -0
- package/dist/layouts/Root/getLayoutData.js.map +1 -0
- package/dist/layouts/Root/index.d.ts +32 -0
- package/dist/layouts/Root/index.d.ts.map +1 -0
- package/dist/layouts/Root/index.js +51 -0
- package/dist/layouts/Root/index.js.map +1 -0
- package/dist/layouts/Root/withPayloadRoot.d.ts +65 -0
- package/dist/layouts/Root/withPayloadRoot.d.ts.map +1 -0
- package/dist/layouts/Root/withPayloadRoot.js +92 -0
- package/dist/layouts/Root/withPayloadRoot.js.map +1 -0
- package/dist/node/cssLoader.d.mts +3 -0
- package/dist/node/cssLoader.d.mts.map +1 -0
- package/dist/node/cssLoader.js +70 -0
- package/dist/node/cssLoader.js.map +1 -0
- package/dist/node/cssLoader.mjs +75 -0
- package/dist/node/registerCssLoader.d.mts +2 -0
- package/dist/node/registerCssLoader.d.mts.map +1 -0
- package/dist/node/registerCssLoader.js +10 -0
- package/dist/node/registerCssLoader.js.map +1 -0
- package/dist/node/registerCssLoader.mjs +10 -0
- package/dist/routes/adminRoutes.d.ts +105 -0
- package/dist/routes/adminRoutes.d.ts.map +1 -0
- package/dist/routes/adminRoutes.js +97 -0
- package/dist/routes/adminRoutes.js.map +1 -0
- package/dist/routes/apiRoute.d.ts +33 -0
- package/dist/routes/apiRoute.d.ts.map +1 -0
- package/dist/routes/apiRoute.js +27 -0
- package/dist/routes/apiRoute.js.map +1 -0
- package/dist/routes/layoutRoute.d.ts +23 -0
- package/dist/routes/layoutRoute.d.ts.map +1 -0
- package/dist/routes/layoutRoute.js +51 -0
- package/dist/routes/layoutRoute.js.map +1 -0
- package/dist/rsc/CollectionCards.d.ts +4 -0
- package/dist/rsc/CollectionCards.d.ts.map +1 -0
- package/dist/rsc/CollectionCards.js +12 -0
- package/dist/rsc/CollectionCards.js.map +1 -0
- package/dist/rsc/HierarchyTypeFieldServer.d.ts +9 -0
- package/dist/rsc/HierarchyTypeFieldServer.d.ts.map +1 -0
- package/dist/rsc/HierarchyTypeFieldServer.js +35 -0
- package/dist/rsc/HierarchyTypeFieldServer.js.map +1 -0
- package/dist/rsc/renderOnDemand.d.ts +15 -0
- package/dist/rsc/renderOnDemand.d.ts.map +1 -0
- package/dist/rsc/renderOnDemand.js +25 -0
- package/dist/rsc/renderOnDemand.js.map +1 -0
- package/dist/rsc/renderPayloadRSC.d.ts +6 -0
- package/dist/rsc/renderPayloadRSC.d.ts.map +1 -0
- package/dist/rsc/renderPayloadRSC.js +6 -0
- package/dist/rsc/renderPayloadRSC.js.map +1 -0
- package/dist/utilities/devReloadStrategy.d.ts +10 -0
- package/dist/utilities/devReloadStrategy.d.ts.map +1 -0
- package/dist/utilities/devReloadStrategy.js +27 -0
- package/dist/utilities/devReloadStrategy.js.map +1 -0
- package/dist/utilities/getExistingAuthToken.d.ts +7 -0
- package/dist/utilities/getExistingAuthToken.d.ts.map +1 -0
- package/dist/utilities/getExistingAuthToken.js +18 -0
- package/dist/utilities/getExistingAuthToken.js.map +1 -0
- package/dist/utilities/getPreferences.d.ts +10 -0
- package/dist/utilities/getPreferences.d.ts.map +1 -0
- package/dist/utilities/getPreferences.js +33 -0
- package/dist/utilities/getPreferences.js.map +1 -0
- package/dist/utilities/getRequestI18n.server.d.ts +12 -0
- package/dist/utilities/getRequestI18n.server.d.ts.map +1 -0
- package/dist/utilities/getRequestI18n.server.js +25 -0
- package/dist/utilities/getRequestI18n.server.js.map +1 -0
- package/dist/utilities/getRequestLocale.d.ts +7 -0
- package/dist/utilities/getRequestLocale.d.ts.map +1 -0
- package/dist/utilities/getRequestLocale.js +20 -0
- package/dist/utilities/getRequestLocale.js.map +1 -0
- package/dist/utilities/getRequestTheme.d.ts +10 -0
- package/dist/utilities/getRequestTheme.d.ts.map +1 -0
- package/dist/utilities/getRequestTheme.js +25 -0
- package/dist/utilities/getRequestTheme.js.map +1 -0
- package/dist/utilities/graphqlHandler.server.d.ts +12 -0
- package/dist/utilities/graphqlHandler.server.d.ts.map +1 -0
- package/dist/utilities/graphqlHandler.server.js +129 -0
- package/dist/utilities/graphqlHandler.server.js.map +1 -0
- package/dist/utilities/handleAPIRoute.d.ts +11 -0
- package/dist/utilities/handleAPIRoute.d.ts.map +1 -0
- package/dist/utilities/handleAPIRoute.js +17 -0
- package/dist/utilities/handleAPIRoute.js.map +1 -0
- package/dist/utilities/handleServerFunctions.d.ts +20 -0
- package/dist/utilities/handleServerFunctions.d.ts.map +1 -0
- package/dist/utilities/handleServerFunctions.js +60 -0
- package/dist/utilities/handleServerFunctions.js.map +1 -0
- package/dist/utilities/importMap.server.d.ts +9 -0
- package/dist/utilities/importMap.server.d.ts.map +1 -0
- package/dist/utilities/importMap.server.js +12 -0
- package/dist/utilities/importMap.server.js.map +1 -0
- package/dist/utilities/initReq.server.d.ts +19 -0
- package/dist/utilities/initReq.server.d.ts.map +1 -0
- package/dist/utilities/initReq.server.js +87 -0
- package/dist/utilities/initReq.server.js.map +1 -0
- package/dist/utilities/loadAdminPage.d.ts +54 -0
- package/dist/utilities/loadAdminPage.d.ts.map +1 -0
- package/dist/utilities/loadAdminPage.js +217 -0
- package/dist/utilities/loadAdminPage.js.map +1 -0
- package/dist/utilities/loadLayoutData.d.ts +15 -0
- package/dist/utilities/loadLayoutData.d.ts.map +1 -0
- package/dist/utilities/loadLayoutData.js +23 -0
- package/dist/utilities/loadLayoutData.js.map +1 -0
- package/dist/utilities/meta.d.ts +70 -0
- package/dist/utilities/meta.d.ts.map +1 -0
- package/dist/utilities/meta.js +142 -0
- package/dist/utilities/meta.js.map +1 -0
- package/dist/utilities/serializeForRsc.d.ts +26 -0
- package/dist/utilities/serializeForRsc.d.ts.map +1 -0
- package/dist/utilities/serializeForRsc.js +122 -0
- package/dist/utilities/serializeForRsc.js.map +1 -0
- package/dist/utilities/serverAdapter.server.d.ts +36 -0
- package/dist/utilities/serverAdapter.server.d.ts.map +1 -0
- package/dist/utilities/serverAdapter.server.js +130 -0
- package/dist/utilities/serverAdapter.server.js.map +1 -0
- package/dist/utilities/serverFunctionClient.d.ts +29 -0
- package/dist/utilities/serverFunctionClient.d.ts.map +1 -0
- package/dist/utilities/serverFunctionClient.js +109 -0
- package/dist/utilities/serverFunctionClient.js.map +1 -0
- package/dist/utilities/serverFunctionHandlers.d.ts +18 -0
- package/dist/utilities/serverFunctionHandlers.d.ts.map +1 -0
- package/dist/utilities/serverFunctionHandlers.js +17 -0
- package/dist/utilities/serverFunctionHandlers.js.map +1 -0
- package/dist/utilities/setPayloadAuthCookie.d.ts +9 -0
- package/dist/utilities/setPayloadAuthCookie.d.ts.map +1 -0
- package/dist/utilities/setPayloadAuthCookie.js +31 -0
- package/dist/utilities/setPayloadAuthCookie.js.map +1 -0
- package/dist/utilities/toSerializable.d.ts +2 -0
- package/dist/utilities/toSerializable.d.ts.map +1 -0
- package/dist/utilities/toSerializable.js +111 -0
- package/dist/utilities/toSerializable.js.map +1 -0
- package/dist/vite/constants.d.ts +42 -0
- package/dist/vite/constants.d.ts.map +1 -0
- package/dist/vite/constants.js +177 -0
- package/dist/vite/constants.js.map +1 -0
- package/dist/vite/importProtection.d.ts +14 -0
- package/dist/vite/importProtection.d.ts.map +1 -0
- package/dist/vite/importProtection.js +54 -0
- package/dist/vite/importProtection.js.map +1 -0
- package/dist/vite/plugin.d.ts +38 -0
- package/dist/vite/plugin.d.ts.map +1 -0
- package/dist/vite/plugin.js +179 -0
- package/dist/vite/plugin.js.map +1 -0
- package/dist/vite/plugins/clientModuleResolution.d.ts +14 -0
- package/dist/vite/plugins/clientModuleResolution.d.ts.map +1 -0
- package/dist/vite/plugins/clientModuleResolution.js +98 -0
- package/dist/vite/plugins/clientModuleResolution.js.map +1 -0
- package/dist/vite/plugins/devTransforms.d.ts +19 -0
- package/dist/vite/plugins/devTransforms.d.ts.map +1 -0
- package/dist/vite/plugins/devTransforms.js +67 -0
- package/dist/vite/plugins/devTransforms.js.map +1 -0
- package/dist/vite/plugins/reactDomServerInRsc.d.ts +27 -0
- package/dist/vite/plugins/reactDomServerInRsc.d.ts.map +1 -0
- package/dist/vite/plugins/reactDomServerInRsc.js +90 -0
- package/dist/vite/plugins/reactDomServerInRsc.js.map +1 -0
- package/dist/vite/plugins/stripDistStyleImports.d.ts +21 -0
- package/dist/vite/plugins/stripDistStyleImports.d.ts.map +1 -0
- package/dist/vite/plugins/stripDistStyleImports.js +107 -0
- package/dist/vite/plugins/stripDistStyleImports.js.map +1 -0
- package/dist/vite/plugins/wrapCjsForClient.d.ts +15 -0
- package/dist/vite/plugins/wrapCjsForClient.d.ts.map +1 -0
- package/dist/vite/plugins/wrapCjsForClient.js +106 -0
- package/dist/vite/plugins/wrapCjsForClient.js.map +1 -0
- package/package.json +106 -0
package/LICENSE.md
ADDED
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
MIT License
|
|
2
|
+
|
|
3
|
+
Copyright (c) 2018-2025 Payload CMS, Inc. <info@payloadcms.com>
|
|
4
|
+
|
|
5
|
+
Permission is hereby granted, free of charge, to any person obtaining
|
|
6
|
+
a copy of this software and associated documentation files (the
|
|
7
|
+
'Software'), to deal in the Software without restriction, including
|
|
8
|
+
without limitation the rights to use, copy, modify, merge, publish,
|
|
9
|
+
distribute, sublicense, and/or sell copies of the Software, and to
|
|
10
|
+
permit persons to whom the Software is furnished to do so, subject to
|
|
11
|
+
the following conditions:
|
|
12
|
+
|
|
13
|
+
The above copyright notice and this permission notice shall be
|
|
14
|
+
included in all copies or substantial portions of the Software.
|
|
15
|
+
|
|
16
|
+
THE SOFTWARE IS PROVIDED 'AS IS', WITHOUT WARRANTY OF ANY KIND,
|
|
17
|
+
EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
|
|
18
|
+
MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
|
|
19
|
+
IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY
|
|
20
|
+
CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
|
|
21
|
+
TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
|
|
22
|
+
SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../src/@types/assets.d.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,17 @@
|
|
|
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 {};
|
|
17
|
+
//# sourceMappingURL=login.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
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"}
|
|
@@ -0,0 +1,50 @@
|
|
|
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
|
|
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;
|
|
48
|
+
}
|
|
49
|
+
|
|
50
|
+
//# sourceMappingURL=login.js.map
|
|
@@ -0,0 +1 @@
|
|
|
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"}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import type { MaybePromise, SanitizedConfig } from 'payload';
|
|
2
|
+
export declare function logout({ allSessions, config, }: {
|
|
3
|
+
allSessions?: boolean;
|
|
4
|
+
config: MaybePromise<SanitizedConfig>;
|
|
5
|
+
}): Promise<{
|
|
6
|
+
message: string;
|
|
7
|
+
success: boolean;
|
|
8
|
+
}>;
|
|
9
|
+
//# sourceMappingURL=logout.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
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"}
|
|
@@ -0,0 +1,51 @@
|
|
|
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
|
+
});
|
|
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
|
+
};
|
|
49
|
+
}
|
|
50
|
+
|
|
51
|
+
//# sourceMappingURL=logout.js.map
|
|
@@ -0,0 +1 @@
|
|
|
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"}
|
|
@@ -0,0 +1 @@
|
|
|
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"}
|
|
@@ -0,0 +1,53 @@
|
|
|
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
|
|
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
|
+
};
|
|
51
|
+
}
|
|
52
|
+
|
|
53
|
+
//# sourceMappingURL=refresh.js.map
|
|
@@ -0,0 +1 @@
|
|
|
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 \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"}
|
|
@@ -0,0 +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,sBA+EnC,CAAA"}
|
|
@@ -0,0 +1,141 @@
|
|
|
1
|
+
'use client';
|
|
2
|
+
import { jsx as _jsx } from "react/jsx-runtime";
|
|
3
|
+
import { RouterAdapterContext } from '@payloadcms/ui';
|
|
4
|
+
import { Link as TanStackLink, useLocation, useParams, useRouter } from '@tanstack/react-router';
|
|
5
|
+
import * as qs from 'qs-esm';
|
|
6
|
+
import React, { useCallback, useMemo } from 'react';
|
|
7
|
+
const normalizeNavigationTarget = ({ path, pathname, search })=>{
|
|
8
|
+
if (path.startsWith('http')) {
|
|
9
|
+
const url = new URL(path);
|
|
10
|
+
return `${url.pathname}${url.search}${url.hash}`;
|
|
11
|
+
}
|
|
12
|
+
if (path.startsWith('?')) {
|
|
13
|
+
return `${pathname}${path}`;
|
|
14
|
+
}
|
|
15
|
+
if (path.startsWith('#')) {
|
|
16
|
+
return `${pathname}${search}${path}`;
|
|
17
|
+
}
|
|
18
|
+
return path;
|
|
19
|
+
};
|
|
20
|
+
const TanStackLinkAdapter = ({ children, href, prefetch, ref, replace, scroll, ...rest })=>{
|
|
21
|
+
return /*#__PURE__*/ _jsx(TanStackLink, {
|
|
22
|
+
preload: prefetch === false ? false : 'intent',
|
|
23
|
+
ref: ref,
|
|
24
|
+
replace: replace,
|
|
25
|
+
resetScroll: scroll,
|
|
26
|
+
to: href,
|
|
27
|
+
...rest,
|
|
28
|
+
children: children
|
|
29
|
+
});
|
|
30
|
+
};
|
|
31
|
+
export const TanStackRouterAdapter = ({ children })=>{
|
|
32
|
+
const router = useRouter();
|
|
33
|
+
const location = useLocation();
|
|
34
|
+
const params = useParams({
|
|
35
|
+
strict: false
|
|
36
|
+
});
|
|
37
|
+
const adaptedParams = useMemo(()=>{
|
|
38
|
+
const adapted = {
|
|
39
|
+
...params
|
|
40
|
+
};
|
|
41
|
+
if ('_splat' in params && typeof params._splat === 'string') {
|
|
42
|
+
adapted.segments = params._splat.split('/').filter(Boolean);
|
|
43
|
+
}
|
|
44
|
+
return adapted;
|
|
45
|
+
}, [
|
|
46
|
+
params
|
|
47
|
+
]);
|
|
48
|
+
// Split a target into `to` (pathname) + a parsed `search` object, so the
|
|
49
|
+
// router serializes the query via its `stringifySearch` (qs, bracket-encoded)
|
|
50
|
+
// rather than embedding the raw string in `to`. Navigating with a string `to`
|
|
51
|
+
// leaves the search *unencoded* in `window.location.search`
|
|
52
|
+
// (e.g. `where[or][0]…`), which then never matches Payload's `qs.stringify`
|
|
53
|
+
// output (`where%5Bor%5D…`) — breaking the list-view `syncPropsToURL` guard,
|
|
54
|
+
// which compares the two and would otherwise clobber optimistic query state
|
|
55
|
+
// (e.g. an in-progress filter condition) on every navigation.
|
|
56
|
+
const toNavOptions = useCallback((path)=>{
|
|
57
|
+
const relativePath = normalizeNavigationTarget({
|
|
58
|
+
path,
|
|
59
|
+
pathname: window.location.pathname,
|
|
60
|
+
search: window.location.search
|
|
61
|
+
});
|
|
62
|
+
const queryIndex = relativePath.indexOf('?');
|
|
63
|
+
if (queryIndex === -1) {
|
|
64
|
+
return {
|
|
65
|
+
to: relativePath
|
|
66
|
+
};
|
|
67
|
+
}
|
|
68
|
+
const searchObject = qs.parse(relativePath.slice(queryIndex + 1), {
|
|
69
|
+
depth: 10,
|
|
70
|
+
ignoreQueryPrefix: true
|
|
71
|
+
});
|
|
72
|
+
// Function form replaces the search entirely (no merge with current search).
|
|
73
|
+
return {
|
|
74
|
+
search: ()=>searchObject,
|
|
75
|
+
to: relativePath.slice(0, queryIndex)
|
|
76
|
+
};
|
|
77
|
+
}, []);
|
|
78
|
+
const back = useCallback(()=>router.history.back(), [
|
|
79
|
+
router
|
|
80
|
+
]);
|
|
81
|
+
const push = useCallback((path, options)=>{
|
|
82
|
+
void router.navigate({
|
|
83
|
+
...toNavOptions(path),
|
|
84
|
+
resetScroll: options?.scroll
|
|
85
|
+
});
|
|
86
|
+
}, [
|
|
87
|
+
router,
|
|
88
|
+
toNavOptions
|
|
89
|
+
]);
|
|
90
|
+
const refresh = useCallback(()=>{
|
|
91
|
+
void router.invalidate();
|
|
92
|
+
}, [
|
|
93
|
+
router
|
|
94
|
+
]);
|
|
95
|
+
const replace = useCallback((path, options)=>{
|
|
96
|
+
void router.navigate({
|
|
97
|
+
...toNavOptions(path),
|
|
98
|
+
replace: true,
|
|
99
|
+
resetScroll: options?.scroll
|
|
100
|
+
});
|
|
101
|
+
}, [
|
|
102
|
+
router,
|
|
103
|
+
toNavOptions
|
|
104
|
+
]);
|
|
105
|
+
const adaptedRouter = useMemo(()=>({
|
|
106
|
+
back,
|
|
107
|
+
push,
|
|
108
|
+
refresh,
|
|
109
|
+
replace
|
|
110
|
+
}), [
|
|
111
|
+
back,
|
|
112
|
+
push,
|
|
113
|
+
refresh,
|
|
114
|
+
replace
|
|
115
|
+
]);
|
|
116
|
+
// `location.searchStr` is the serialized query string; `location.search` is
|
|
117
|
+
// the parsed object (a nested structure once the router uses `qs` for search
|
|
118
|
+
// serialization), which `URLSearchParams` cannot consume. Build from the
|
|
119
|
+
// string so Payload's `parseSearchParams` re-parses the bracket notation.
|
|
120
|
+
const searchParams = useMemo(()=>new URLSearchParams(location.searchStr), [
|
|
121
|
+
location.searchStr
|
|
122
|
+
]);
|
|
123
|
+
const value = useMemo(()=>({
|
|
124
|
+
Link: TanStackLinkAdapter,
|
|
125
|
+
params: adaptedParams,
|
|
126
|
+
pathname: location.pathname,
|
|
127
|
+
router: adaptedRouter,
|
|
128
|
+
searchParams
|
|
129
|
+
}), [
|
|
130
|
+
adaptedParams,
|
|
131
|
+
location.pathname,
|
|
132
|
+
adaptedRouter,
|
|
133
|
+
searchParams
|
|
134
|
+
]);
|
|
135
|
+
return /*#__PURE__*/ _jsx(RouterAdapterContext, {
|
|
136
|
+
value: value,
|
|
137
|
+
children: children
|
|
138
|
+
});
|
|
139
|
+
};
|
|
140
|
+
|
|
141
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +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 if ('_splat' in params && typeof params._splat === 'string') {\n adapted.segments = params._splat.split('/').filter(Boolean)\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 const queryIndex = relativePath.indexOf('?')\n if (queryIndex === -1) {\n return { to: relativePath }\n }\n const searchObject = qs.parse(relativePath.slice(queryIndex + 1), {\n depth: 10,\n ignoreQueryPrefix: true,\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 const push = useCallback(\n (path: string, options?: { scroll?: boolean }) => {\n void router.navigate({ ...toNavOptions(path), resetScroll: options?.scroll })\n },\n [router, toNavOptions],\n )\n const refresh = useCallback(() => {\n void router.invalidate()\n }, [router])\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 const adaptedRouter = useMemo(\n () => ({ back, push, refresh, replace }),\n [back, push, refresh, replace],\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","adaptedRouter","searchParams","URLSearchParams","searchStr","value"],"mappings":"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"}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
export { TanStackComponentRenderer } from '../elements/RenderComponent/index.js';
|
|
2
|
+
export { TanStackRouterAdapter } from '../elements/RouterAdapter/index.js';
|
|
3
|
+
export { buildThemeInitScript, PayloadAdminShell, type PayloadAdminShellProps, THEME_INIT_SCRIPT, withPayloadRoot, type WithPayloadRootOptions, } from '../layouts/Root/withPayloadRoot.js';
|
|
4
|
+
export { type AdminLoad, payloadAdminIndexRoute, payloadAdminSplatRoute, } from '../routes/adminRoutes.js';
|
|
5
|
+
export { type LayoutLoad, payloadLayoutRoute } from '../routes/layoutRoute.js';
|
|
6
|
+
export { viteDevReloadStrategy } from '../utilities/devReloadStrategy.js';
|
|
7
|
+
export { createServerFunctionClient, stripUnserializable, } from '../utilities/serverFunctionClient.js';
|
|
8
|
+
//# sourceMappingURL=client.d.ts.map
|