payload-auth 1.4.1 → 1.5.0
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/dist/better-auth/adapter/transform/index.js +3 -3
- package/dist/better-auth/generated-types.d.ts +216 -0
- package/dist/better-auth/generated-types.d.ts.map +1 -0
- package/dist/better-auth/generated-types.js +4 -0
- package/dist/better-auth/plugin/constants.d.ts +145 -3
- package/dist/better-auth/plugin/constants.d.ts.map +1 -1
- package/dist/better-auth/plugin/constants.js +148 -6
- package/dist/better-auth/plugin/helpers/check-plugin-exists.d.ts +13 -0
- package/dist/better-auth/plugin/helpers/check-plugin-exists.d.ts.map +1 -0
- package/dist/better-auth/plugin/helpers/check-plugin-exists.js +14 -0
- package/dist/better-auth/plugin/helpers/get-better-auth-schema.d.ts +22 -0
- package/dist/better-auth/plugin/helpers/get-better-auth-schema.d.ts.map +1 -0
- package/dist/better-auth/plugin/helpers/get-better-auth-schema.js +50 -0
- package/dist/better-auth/plugin/helpers/get-collection-schema-map.d.ts +16 -0
- package/dist/better-auth/plugin/helpers/get-collection-schema-map.d.ts.map +1 -0
- package/dist/better-auth/plugin/helpers/get-collection-schema-map.js +108 -0
- package/dist/better-auth/plugin/helpers/get-collection-slug.d.ts +6 -0
- package/dist/better-auth/plugin/helpers/get-collection-slug.d.ts.map +1 -0
- package/dist/better-auth/plugin/helpers/get-collection-slug.js +20 -0
- package/dist/better-auth/plugin/helpers/get-collection.d.ts +41 -0
- package/dist/better-auth/plugin/helpers/get-collection.d.ts.map +1 -0
- package/dist/better-auth/plugin/helpers/get-collection.js +62 -0
- package/dist/better-auth/plugin/helpers/prepare-session-data.d.ts +8 -16
- package/dist/better-auth/plugin/helpers/prepare-session-data.d.ts.map +1 -1
- package/dist/better-auth/plugin/helpers/prepare-session-data.js +9 -20
- package/dist/better-auth/plugin/index.d.ts +3 -3
- package/dist/better-auth/plugin/index.d.ts.map +1 -1
- package/dist/better-auth/plugin/index.js +31 -40
- package/dist/better-auth/plugin/lib/build-collections/accounts/hooks/sync-password-to-user.d.ts +2 -6
- package/dist/better-auth/plugin/lib/build-collections/accounts/hooks/sync-password-to-user.d.ts.map +1 -1
- package/dist/better-auth/plugin/lib/build-collections/accounts/hooks/sync-password-to-user.js +22 -7
- package/dist/better-auth/plugin/lib/build-collections/accounts/index.d.ts +3 -6
- package/dist/better-auth/plugin/lib/build-collections/accounts/index.d.ts.map +1 -1
- package/dist/better-auth/plugin/lib/build-collections/accounts/index.js +96 -102
- package/dist/better-auth/plugin/lib/build-collections/admin-invitations/index.d.ts +2 -2
- package/dist/better-auth/plugin/lib/build-collections/admin-invitations/index.d.ts.map +1 -1
- package/dist/better-auth/plugin/lib/build-collections/admin-invitations/index.js +6 -5
- package/dist/better-auth/plugin/lib/build-collections/api-keys.d.ts +3 -5
- package/dist/better-auth/plugin/lib/build-collections/api-keys.d.ts.map +1 -1
- package/dist/better-auth/plugin/lib/build-collections/api-keys.js +97 -113
- package/dist/better-auth/plugin/lib/build-collections/index.d.ts +6 -6
- package/dist/better-auth/plugin/lib/build-collections/index.d.ts.map +1 -1
- package/dist/better-auth/plugin/lib/build-collections/index.js +68 -84
- package/dist/better-auth/plugin/lib/build-collections/invitations.d.ts +2 -4
- package/dist/better-auth/plugin/lib/build-collections/invitations.d.ts.map +1 -1
- package/dist/better-auth/plugin/lib/build-collections/invitations.js +75 -70
- package/dist/better-auth/plugin/lib/build-collections/jwks.d.ts +3 -5
- package/dist/better-auth/plugin/lib/build-collections/jwks.d.ts.map +1 -1
- package/dist/better-auth/plugin/lib/build-collections/jwks.js +46 -28
- package/dist/better-auth/plugin/lib/build-collections/members.d.ts +3 -5
- package/dist/better-auth/plugin/lib/build-collections/members.d.ts.map +1 -1
- package/dist/better-auth/plugin/lib/build-collections/members.js +52 -48
- package/dist/better-auth/plugin/lib/build-collections/oauth-access-tokens.d.ts +3 -5
- package/dist/better-auth/plugin/lib/build-collections/oauth-access-tokens.d.ts.map +1 -1
- package/dist/better-auth/plugin/lib/build-collections/oauth-access-tokens.js +74 -64
- package/dist/better-auth/plugin/lib/build-collections/oauth-applications.d.ts +3 -5
- package/dist/better-auth/plugin/lib/build-collections/oauth-applications.d.ts.map +1 -1
- package/dist/better-auth/plugin/lib/build-collections/oauth-applications.js +78 -71
- package/dist/better-auth/plugin/lib/build-collections/oauth-consents.d.ts +3 -5
- package/dist/better-auth/plugin/lib/build-collections/oauth-consents.d.ts.map +1 -1
- package/dist/better-auth/plugin/lib/build-collections/oauth-consents.js +68 -45
- package/dist/better-auth/plugin/lib/build-collections/organizations.d.ts +3 -5
- package/dist/better-auth/plugin/lib/build-collections/organizations.d.ts.map +1 -1
- package/dist/better-auth/plugin/lib/build-collections/organizations.js +52 -39
- package/dist/better-auth/plugin/lib/build-collections/passkeys.d.ts +3 -5
- package/dist/better-auth/plugin/lib/build-collections/passkeys.d.ts.map +1 -1
- package/dist/better-auth/plugin/lib/build-collections/passkeys.js +60 -64
- package/dist/better-auth/plugin/lib/build-collections/sessions.d.ts +3 -7
- package/dist/better-auth/plugin/lib/build-collections/sessions.d.ts.map +1 -1
- package/dist/better-auth/plugin/lib/build-collections/sessions.js +100 -98
- package/dist/better-auth/plugin/lib/build-collections/sso-providers.d.ts +3 -5
- package/dist/better-auth/plugin/lib/build-collections/sso-providers.d.ts.map +1 -1
- package/dist/better-auth/plugin/lib/build-collections/sso-providers.js +56 -56
- package/dist/better-auth/plugin/lib/build-collections/subscriptions.d.ts +4 -0
- package/dist/better-auth/plugin/lib/build-collections/subscriptions.d.ts.map +1 -0
- package/dist/better-auth/plugin/lib/build-collections/subscriptions.js +113 -0
- package/dist/better-auth/plugin/lib/build-collections/teams.d.ts +3 -5
- package/dist/better-auth/plugin/lib/build-collections/teams.d.ts.map +1 -1
- package/dist/better-auth/plugin/lib/build-collections/teams.js +62 -30
- package/dist/better-auth/plugin/lib/build-collections/two-factors.d.ts +3 -5
- package/dist/better-auth/plugin/lib/build-collections/two-factors.d.ts.map +1 -1
- package/dist/better-auth/plugin/lib/build-collections/two-factors.js +50 -37
- package/dist/better-auth/plugin/lib/build-collections/users/better-auth-strategy.js +4 -4
- package/dist/better-auth/plugin/lib/build-collections/users/endpoints/generate-invite-url.js +3 -3
- package/dist/better-auth/plugin/lib/build-collections/users/endpoints/index.d.ts +6 -0
- package/dist/better-auth/plugin/lib/build-collections/users/endpoints/index.d.ts.map +1 -0
- package/dist/better-auth/plugin/lib/build-collections/users/endpoints/index.js +7 -0
- package/dist/better-auth/plugin/lib/build-collections/users/endpoints/set-admin-role.js +4 -4
- package/dist/better-auth/plugin/lib/build-collections/users/endpoints/signup.d.ts +2 -2
- package/dist/better-auth/plugin/lib/build-collections/users/endpoints/signup.d.ts.map +1 -1
- package/dist/better-auth/plugin/lib/build-collections/users/endpoints/signup.js +93 -96
- package/dist/better-auth/plugin/lib/build-collections/users/hooks/after-login.d.ts +1 -6
- package/dist/better-auth/plugin/lib/build-collections/users/hooks/after-login.d.ts.map +1 -1
- package/dist/better-auth/plugin/lib/build-collections/users/hooks/after-login.js +22 -13
- package/dist/better-auth/plugin/lib/build-collections/users/hooks/after-logout.d.ts +1 -5
- package/dist/better-auth/plugin/lib/build-collections/users/hooks/after-logout.d.ts.map +1 -1
- package/dist/better-auth/plugin/lib/build-collections/users/hooks/after-logout.js +16 -8
- package/dist/better-auth/plugin/lib/build-collections/users/hooks/before-delete.d.ts +2 -6
- package/dist/better-auth/plugin/lib/build-collections/users/hooks/before-delete.d.ts.map +1 -1
- package/dist/better-auth/plugin/lib/build-collections/users/hooks/before-delete.js +25 -6
- package/dist/better-auth/plugin/lib/build-collections/users/hooks/before-login.d.ts +2 -1
- package/dist/better-auth/plugin/lib/build-collections/users/hooks/before-login.d.ts.map +1 -1
- package/dist/better-auth/plugin/lib/build-collections/users/hooks/before-login.js +5 -8
- package/dist/better-auth/plugin/lib/build-collections/users/hooks/index.d.ts +7 -0
- package/dist/better-auth/plugin/lib/build-collections/users/hooks/index.d.ts.map +1 -0
- package/dist/better-auth/plugin/lib/build-collections/users/hooks/index.js +8 -0
- package/dist/better-auth/plugin/lib/build-collections/users/hooks/on-verified-change.d.ts +1 -1
- package/dist/better-auth/plugin/lib/build-collections/users/hooks/on-verified-change.d.ts.map +1 -1
- package/dist/better-auth/plugin/lib/build-collections/users/hooks/on-verified-change.js +15 -12
- package/dist/better-auth/plugin/lib/build-collections/users/hooks/sync-account.d.ts +1 -6
- package/dist/better-auth/plugin/lib/build-collections/users/hooks/sync-account.d.ts.map +1 -1
- package/dist/better-auth/plugin/lib/build-collections/users/hooks/sync-account.js +21 -10
- package/dist/better-auth/plugin/lib/build-collections/users/index.d.ts +3 -7
- package/dist/better-auth/plugin/lib/build-collections/users/index.d.ts.map +1 -1
- package/dist/better-auth/plugin/lib/build-collections/users/index.js +153 -210
- package/dist/better-auth/plugin/lib/build-collections/utils/collection-schema.d.ts +16 -0
- package/dist/better-auth/plugin/lib/build-collections/utils/collection-schema.d.ts.map +1 -0
- package/dist/better-auth/plugin/lib/build-collections/utils/collection-schema.js +32 -0
- package/dist/better-auth/plugin/lib/build-collections/utils/get-timestamp-fields.d.ts +1 -1
- package/dist/better-auth/plugin/lib/build-collections/utils/get-timestamp-fields.d.ts.map +1 -1
- package/dist/better-auth/plugin/lib/build-collections/utils/get-timestamp-fields.js +1 -1
- package/dist/better-auth/plugin/lib/build-collections/utils/model-field-transformations.d.ts +17 -0
- package/dist/better-auth/plugin/lib/build-collections/utils/model-field-transformations.d.ts.map +1 -0
- package/dist/better-auth/plugin/lib/build-collections/utils/model-field-transformations.js +21 -0
- package/dist/better-auth/plugin/lib/build-collections/utils/transform-schema-fields-to-payload.d.ts +22 -0
- package/dist/better-auth/plugin/lib/build-collections/utils/transform-schema-fields-to-payload.d.ts.map +1 -0
- package/dist/better-auth/plugin/lib/build-collections/utils/transform-schema-fields-to-payload.js +95 -0
- package/dist/better-auth/plugin/lib/build-collections/verifications.d.ts +3 -6
- package/dist/better-auth/plugin/lib/build-collections/verifications.d.ts.map +1 -1
- package/dist/better-auth/plugin/lib/build-collections/verifications.js +62 -40
- package/dist/better-auth/plugin/lib/sanitize-better-auth-options/admin-plugin.d.ts.map +1 -1
- package/dist/better-auth/plugin/lib/sanitize-better-auth-options/admin-plugin.js +4 -3
- package/dist/better-auth/plugin/lib/sanitize-better-auth-options/api-key-plugin.d.ts +2 -1
- package/dist/better-auth/plugin/lib/sanitize-better-auth-options/api-key-plugin.d.ts.map +1 -1
- package/dist/better-auth/plugin/lib/sanitize-better-auth-options/api-key-plugin.js +8 -15
- package/dist/better-auth/plugin/lib/sanitize-better-auth-options/index.d.ts +5 -3
- package/dist/better-auth/plugin/lib/sanitize-better-auth-options/index.d.ts.map +1 -1
- package/dist/better-auth/plugin/lib/sanitize-better-auth-options/index.js +56 -69
- package/dist/better-auth/plugin/lib/sanitize-better-auth-options/oidc-plugin.d.ts +2 -1
- package/dist/better-auth/plugin/lib/sanitize-better-auth-options/oidc-plugin.d.ts.map +1 -1
- package/dist/better-auth/plugin/lib/sanitize-better-auth-options/oidc-plugin.js +16 -55
- package/dist/better-auth/plugin/lib/sanitize-better-auth-options/organizations-plugin.d.ts +2 -1
- package/dist/better-auth/plugin/lib/sanitize-better-auth-options/organizations-plugin.d.ts.map +1 -1
- package/dist/better-auth/plugin/lib/sanitize-better-auth-options/organizations-plugin.js +21 -83
- package/dist/better-auth/plugin/lib/sanitize-better-auth-options/passkey-plugin.d.ts +2 -1
- package/dist/better-auth/plugin/lib/sanitize-better-auth-options/passkey-plugin.d.ts.map +1 -1
- package/dist/better-auth/plugin/lib/sanitize-better-auth-options/passkey-plugin.js +8 -15
- package/dist/better-auth/plugin/lib/sanitize-better-auth-options/sso-plugin.d.ts +2 -1
- package/dist/better-auth/plugin/lib/sanitize-better-auth-options/sso-plugin.d.ts.map +1 -1
- package/dist/better-auth/plugin/lib/sanitize-better-auth-options/sso-plugin.js +8 -15
- package/dist/better-auth/plugin/lib/sanitize-better-auth-options/two-factor-plugin.d.ts +3 -0
- package/dist/better-auth/plugin/lib/sanitize-better-auth-options/two-factor-plugin.d.ts.map +1 -0
- package/dist/better-auth/plugin/lib/sanitize-better-auth-options/two-factor-plugin.js +10 -0
- package/dist/better-auth/plugin/lib/sanitize-better-auth-options/utils/require-admin-invite-for-sign-up-middleware.d.ts +3 -3
- package/dist/better-auth/plugin/lib/sanitize-better-auth-options/utils/require-admin-invite-for-sign-up-middleware.d.ts.map +1 -1
- package/dist/better-auth/plugin/lib/sanitize-better-auth-options/utils/require-admin-invite-for-sign-up-middleware.js +3 -3
- package/dist/better-auth/plugin/lib/sanitize-better-auth-options/utils/save-to-jwt-middleware.d.ts +5 -4
- package/dist/better-auth/plugin/lib/sanitize-better-auth-options/utils/save-to-jwt-middleware.d.ts.map +1 -1
- package/dist/better-auth/plugin/lib/sanitize-better-auth-options/utils/save-to-jwt-middleware.js +10 -10
- package/dist/better-auth/plugin/lib/set-login-methods.d.ts +1 -1
- package/dist/better-auth/plugin/lib/set-login-methods.d.ts.map +1 -1
- package/dist/better-auth/plugin/lib/set-login-methods.js +5 -6
- package/dist/better-auth/plugin/payload/views/admin-login/client.d.ts.map +1 -1
- package/dist/better-auth/plugin/payload/views/admin-login/client.js +2 -2
- package/dist/better-auth/plugin/payload/views/admin-login/index.d.ts +4 -4
- package/dist/better-auth/plugin/payload/views/admin-login/index.d.ts.map +1 -1
- package/dist/better-auth/plugin/payload/views/admin-login/index.js +7 -8
- package/dist/better-auth/plugin/payload/views/admin-signup/client.d.ts +1 -1
- package/dist/better-auth/plugin/payload/views/admin-signup/client.d.ts.map +1 -1
- package/dist/better-auth/plugin/payload/views/admin-signup/client.js +27 -7
- package/dist/better-auth/plugin/payload/views/admin-signup/index.d.ts +4 -5
- package/dist/better-auth/plugin/payload/views/admin-signup/index.d.ts.map +1 -1
- package/dist/better-auth/plugin/payload/views/admin-signup/index.js +6 -6
- package/dist/better-auth/plugin/payload/views/forgot-password/index.d.ts +1 -5
- package/dist/better-auth/plugin/payload/views/forgot-password/index.d.ts.map +1 -1
- package/dist/better-auth/plugin/payload/views/forgot-password/index.js +1 -1
- package/dist/better-auth/plugin/payload/views/two-factor-verify/index.d.ts +3 -3
- package/dist/better-auth/plugin/payload/views/two-factor-verify/index.d.ts.map +1 -1
- package/dist/better-auth/plugin/payload/views/two-factor-verify/index.js +10 -7
- package/dist/better-auth/plugin/types.d.ts +41 -13
- package/dist/better-auth/plugin/types.d.ts.map +1 -1
- package/dist/better-auth/plugin/types.js +1 -1
- package/dist/better-auth/plugin/utils/set.d.ts +40 -0
- package/dist/better-auth/plugin/utils/set.d.ts.map +1 -0
- package/dist/better-auth/plugin/utils/set.js +84 -0
- package/dist/better-auth/scripts/generate-types.d.ts +2 -0
- package/dist/better-auth/scripts/generate-types.d.ts.map +1 -0
- package/dist/better-auth/scripts/generate-types.js +219 -0
- package/dist/shared/form/validation.d.ts +31 -7
- package/dist/shared/form/validation.d.ts.map +1 -1
- package/dist/shared/form/validation.js +13 -5
- package/package.json +14 -9
- package/dist/better-auth/plugin/helpers/check-passkey-plugin.d.ts +0 -3
- package/dist/better-auth/plugin/helpers/check-passkey-plugin.d.ts.map +0 -1
- package/dist/better-auth/plugin/helpers/check-passkey-plugin.js +0 -6
- package/dist/better-auth/plugin/helpers/check-two-factor-plugin.d.ts +0 -3
- package/dist/better-auth/plugin/helpers/check-two-factor-plugin.d.ts.map +0 -1
- package/dist/better-auth/plugin/helpers/check-two-factor-plugin.js +0 -6
- package/dist/better-auth/plugin/helpers/check-username-plugin.d.ts +0 -3
- package/dist/better-auth/plugin/helpers/check-username-plugin.d.ts.map +0 -1
- package/dist/better-auth/plugin/helpers/check-username-plugin.js +0 -6
- package/dist/better-auth/plugin/lib/get-required-collection-slugs.d.ts +0 -10
- package/dist/better-auth/plugin/lib/get-required-collection-slugs.d.ts.map +0 -1
- package/dist/better-auth/plugin/lib/get-required-collection-slugs.js +0 -35
- package/dist/better-auth/plugin/payload/utils/generate-metadata.d.ts +0 -15
- package/dist/better-auth/plugin/payload/utils/generate-metadata.d.ts.map +0 -1
- package/dist/better-auth/plugin/payload/utils/generate-metadata.js +0 -74
|
@@ -1,18 +1,33 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import { addDataAndFileToRequest, commitTransaction, initTransaction, killTransaction } from "payload";
|
|
1
|
+
import { adminEndpoints, baseSlugs, supportedBAPluginIds } from "../../../../constants";
|
|
3
2
|
import { status as httpStatus } from "http-status";
|
|
3
|
+
import { addDataAndFileToRequest, commitTransaction, initTransaction, killTransaction } from "payload";
|
|
4
|
+
import { z } from "zod";
|
|
4
5
|
import { getRequestCollection } from "../../../../helpers/get-requst-collection";
|
|
5
|
-
import {
|
|
6
|
+
import { createSignupSchema } from "../../../../../../shared/form/validation";
|
|
7
|
+
import { checkPluginExists } from "../../../../helpers/check-plugin-exists";
|
|
8
|
+
const sendJSON = (data, status)=>new Response(JSON.stringify(data), {
|
|
9
|
+
headers: {
|
|
10
|
+
'Content-Type': 'application/json'
|
|
11
|
+
},
|
|
12
|
+
status
|
|
13
|
+
});
|
|
14
|
+
const forwardCookies = (from, to)=>{
|
|
15
|
+
const setCookieHeader = from.headers.get('set-cookie');
|
|
16
|
+
if (!setCookieHeader) return;
|
|
17
|
+
setCookieHeader.split(',').forEach((c)=>to.headers.append('Set-Cookie', c.trim()));
|
|
18
|
+
};
|
|
6
19
|
const routeParamsSchema = z.object({
|
|
7
20
|
token: z.string(),
|
|
8
21
|
redirect: z.string().optional()
|
|
9
22
|
});
|
|
10
|
-
const
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
23
|
+
export const getSignupEndpoint = (pluginOptions)=>{
|
|
24
|
+
const { betterAuthOptions = {}, adminInvitations, users } = pluginOptions;
|
|
25
|
+
const { baseURL = '', basePath = '/api/auth', emailVerification, emailAndPassword } = betterAuthOptions;
|
|
26
|
+
if (!baseURL) {
|
|
27
|
+
throw new Error('betterAuthOptions.baseURL is required for server‑side authentication calls');
|
|
28
|
+
}
|
|
29
|
+
const adminInvitationsSlug = adminInvitations?.slug ?? baseSlugs.adminInvitations;
|
|
30
|
+
const usersSlug = users?.slug ?? baseSlugs.users;
|
|
16
31
|
const endpoint = {
|
|
17
32
|
path: adminEndpoints.signup,
|
|
18
33
|
method: 'post',
|
|
@@ -20,18 +35,18 @@ export const getSignupEndpoint = (pluginOptions, betterAuthOptions)=>{
|
|
|
20
35
|
await addDataAndFileToRequest(req);
|
|
21
36
|
const collection = getRequestCollection(req);
|
|
22
37
|
const { t } = req;
|
|
38
|
+
const shouldCommit = await initTransaction(req);
|
|
23
39
|
try {
|
|
24
|
-
const shouldCommit = await initTransaction(req);
|
|
25
40
|
const { success: routeParamsSuccess, data: routeParamsData, error: routeParamsError } = routeParamsSchema.safeParse(req.query);
|
|
26
41
|
if (!routeParamsSuccess) {
|
|
27
|
-
|
|
42
|
+
await killTransaction(req);
|
|
43
|
+
return sendJSON({
|
|
44
|
+
error: 'INVALID_PARAMS',
|
|
28
45
|
message: routeParamsError.message
|
|
29
|
-
},
|
|
30
|
-
status: httpStatus.BAD_REQUEST
|
|
31
|
-
});
|
|
46
|
+
}, httpStatus.BAD_REQUEST);
|
|
32
47
|
}
|
|
33
|
-
const
|
|
34
|
-
collection:
|
|
48
|
+
const inviteResult = await req.payload.find({
|
|
49
|
+
collection: adminInvitationsSlug,
|
|
35
50
|
where: {
|
|
36
51
|
token: {
|
|
37
52
|
equals: routeParamsData.token
|
|
@@ -40,121 +55,103 @@ export const getSignupEndpoint = (pluginOptions, betterAuthOptions)=>{
|
|
|
40
55
|
limit: 1,
|
|
41
56
|
req
|
|
42
57
|
});
|
|
43
|
-
|
|
44
|
-
|
|
58
|
+
const inviteDoc = inviteResult.docs.at(0);
|
|
59
|
+
if (!inviteDoc) {
|
|
60
|
+
await killTransaction(req);
|
|
61
|
+
return sendJSON({
|
|
62
|
+
error: 'INVALID_TOKEN',
|
|
45
63
|
message: 'Invalid token'
|
|
46
|
-
},
|
|
47
|
-
status: httpStatus.UNAUTHORIZED
|
|
48
|
-
});
|
|
64
|
+
}, httpStatus.UNAUTHORIZED);
|
|
49
65
|
}
|
|
50
|
-
const
|
|
51
|
-
const
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
66
|
+
const hasUsernamePlugin = checkPluginExists(betterAuthOptions, supportedBAPluginIds.username);
|
|
67
|
+
const supportsLoginWithUsername = hasUsernamePlugin && collection.config?.auth?.loginWithUsername;
|
|
68
|
+
const requireUsername = hasUsernamePlugin && typeof collection.config?.auth?.loginWithUsername === 'object' && !!collection.config?.auth?.loginWithUsername?.requireUsername;
|
|
69
|
+
const signupSchema = createSignupSchema({
|
|
70
|
+
t,
|
|
71
|
+
requireUsername,
|
|
72
|
+
requireConfirmPassword: false
|
|
73
|
+
});
|
|
74
|
+
const parsedBody = signupSchema.safeParse(req.data);
|
|
75
|
+
if (!parsedBody.success) {
|
|
76
|
+
await killTransaction(req);
|
|
77
|
+
const messages = parsedBody.error.issues.map((issue)=>issue.message);
|
|
78
|
+
return sendJSON({
|
|
79
|
+
error: {
|
|
80
|
+
message: messages
|
|
81
|
+
}
|
|
82
|
+
}, httpStatus.BAD_REQUEST);
|
|
58
83
|
}
|
|
59
|
-
const { email, password, username } =
|
|
60
|
-
const baseURL = betterAuthOptions.baseURL;
|
|
61
|
-
const basePath = betterAuthOptions.basePath ?? '/api/auth';
|
|
84
|
+
const { name, email, password, username } = parsedBody.data;
|
|
62
85
|
const authApiURL = `${baseURL}${basePath}`;
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
86
|
+
const url = new URL(`${authApiURL}/sign-up/email`);
|
|
87
|
+
url.searchParams.set('callbackURL', routeParamsData.redirect ?? `${baseURL}${req.payload.config.routes.admin}`);
|
|
88
|
+
if (routeParamsData.token) {
|
|
89
|
+
url.searchParams.set('adminInviteToken', routeParamsData.token);
|
|
66
90
|
}
|
|
67
|
-
const
|
|
91
|
+
const apiResponse = await fetch(url.toString(), {
|
|
68
92
|
method: 'POST',
|
|
69
93
|
headers: {
|
|
70
94
|
'Content-Type': 'application/json'
|
|
71
95
|
},
|
|
72
96
|
body: JSON.stringify({
|
|
73
|
-
name
|
|
74
|
-
email
|
|
75
|
-
password
|
|
76
|
-
...username
|
|
77
|
-
username
|
|
78
|
-
}
|
|
79
|
-
callbackURL: routeParamsData.redirect ?? `${baseURL}${req.payload.config.routes.admin}`
|
|
97
|
+
name,
|
|
98
|
+
email,
|
|
99
|
+
password,
|
|
100
|
+
...supportsLoginWithUsername && username && {
|
|
101
|
+
username
|
|
102
|
+
}
|
|
80
103
|
})
|
|
81
104
|
});
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
throw new Error(result.statusText);
|
|
105
|
+
if (!apiResponse.ok) {
|
|
106
|
+
throw new Error(apiResponse.statusText);
|
|
85
107
|
}
|
|
86
|
-
const responseData = await
|
|
108
|
+
const responseData = await apiResponse.json();
|
|
87
109
|
await req.payload.update({
|
|
88
|
-
collection:
|
|
110
|
+
collection: usersSlug,
|
|
89
111
|
id: responseData.user.id,
|
|
90
112
|
data: {
|
|
91
|
-
role:
|
|
113
|
+
role: inviteDoc.role
|
|
92
114
|
},
|
|
93
115
|
overrideAccess: true,
|
|
94
116
|
req
|
|
95
117
|
});
|
|
96
118
|
await req.payload.delete({
|
|
97
|
-
collection:
|
|
119
|
+
collection: adminInvitationsSlug,
|
|
98
120
|
where: {
|
|
99
121
|
token: {
|
|
100
|
-
equals:
|
|
122
|
+
equals: inviteDoc.token
|
|
101
123
|
}
|
|
102
124
|
},
|
|
103
125
|
req
|
|
104
126
|
});
|
|
105
|
-
const requireEmailVerification = (
|
|
106
|
-
const sentEmailVerification =
|
|
107
|
-
let response = null;
|
|
127
|
+
const requireEmailVerification = (emailAndPassword?.requireEmailVerification || collection.config.auth.verify) && !responseData.user.emailVerified;
|
|
128
|
+
const sentEmailVerification = emailVerification?.sendVerificationEmail !== undefined;
|
|
108
129
|
if (requireEmailVerification) {
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
} else {
|
|
118
|
-
response = new Response(JSON.stringify({
|
|
119
|
-
message: t('authentication:verifyYourEmail'),
|
|
120
|
-
sentEmailVerification,
|
|
121
|
-
requireEmailVerification
|
|
122
|
-
}), {
|
|
123
|
-
status: httpStatus.UNAUTHORIZED
|
|
124
|
-
});
|
|
125
|
-
}
|
|
126
|
-
} else {
|
|
127
|
-
response = new Response(JSON.stringify({
|
|
128
|
-
message: t('authentication:passed'),
|
|
129
|
-
...responseData
|
|
130
|
-
}), {
|
|
131
|
-
status: 200
|
|
132
|
-
});
|
|
130
|
+
const res = sendJSON({
|
|
131
|
+
message: t('authentication:verifyYourEmail'),
|
|
132
|
+
sentEmailVerification,
|
|
133
|
+
requireEmailVerification
|
|
134
|
+
}, httpStatus.UNAUTHORIZED);
|
|
135
|
+
forwardCookies(apiResponse, res);
|
|
136
|
+
if (shouldCommit) await commitTransaction(req);
|
|
137
|
+
return res;
|
|
133
138
|
}
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
});
|
|
142
|
-
}
|
|
143
|
-
if (shouldCommit) {
|
|
144
|
-
await commitTransaction(req);
|
|
145
|
-
}
|
|
146
|
-
return response;
|
|
139
|
+
const successRes = sendJSON({
|
|
140
|
+
message: t('authentication:passed'),
|
|
141
|
+
...responseData
|
|
142
|
+
}, httpStatus.OK);
|
|
143
|
+
forwardCookies(apiResponse, successRes);
|
|
144
|
+
if (shouldCommit) await commitTransaction(req);
|
|
145
|
+
return successRes;
|
|
147
146
|
} catch (error) {
|
|
148
147
|
await killTransaction(req);
|
|
149
|
-
return
|
|
148
|
+
return sendJSON({
|
|
150
149
|
message: error.message
|
|
151
|
-
},
|
|
152
|
-
status: httpStatus.INTERNAL_SERVER_ERROR
|
|
153
|
-
});
|
|
150
|
+
}, httpStatus.INTERNAL_SERVER_ERROR);
|
|
154
151
|
}
|
|
155
152
|
}
|
|
156
153
|
};
|
|
157
154
|
return endpoint;
|
|
158
155
|
};
|
|
159
156
|
|
|
160
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3NyYy9iZXR0ZXItYXV0aC9wbHVnaW4vbGliL2J1aWxkLWNvbGxlY3Rpb25zL3VzZXJzL2VuZHBvaW50cy9zaWdudXAudHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgeiB9IGZyb20gJ3pvZCdcbmltcG9ydCB7IGFkZERhdGFBbmRGaWxlVG9SZXF1ZXN0LCBjb21taXRUcmFuc2FjdGlvbiwgaW5pdFRyYW5zYWN0aW9uLCBraWxsVHJhbnNhY3Rpb24sIHR5cGUgRW5kcG9pbnQgfSBmcm9tICdwYXlsb2FkJ1xuaW1wb3J0IHsgc3RhdHVzIGFzIGh0dHBTdGF0dXMgfSBmcm9tICdodHRwLXN0YXR1cydcbmltcG9ydCB7IEJldHRlckF1dGhQbHVnaW5PcHRpb25zLCBTYW5pdGl6ZWRCZXR0ZXJBdXRoT3B0aW9ucyB9IGZyb20gJ0AvYmV0dGVyLWF1dGgvcGx1Z2luL3R5cGVzJ1xuaW1wb3J0IHsgZ2V0UmVxdWVzdENvbGxlY3Rpb24gfSBmcm9tICcuLi8uLi8uLi8uLi9oZWxwZXJzL2dldC1yZXF1c3QtY29sbGVjdGlvbidcbmltcG9ydCB7IGFkbWluRW5kcG9pbnRzLCBiYXNlQ29sbGVjdGlvblNsdWdzIH0gZnJvbSAnQC9iZXR0ZXItYXV0aC9wbHVnaW4vY29uc3RhbnRzJ1xuXG5jb25zdCByb3V0ZVBhcmFtc1NjaGVtYSA9IHoub2JqZWN0KHtcbiAgdG9rZW46IHouc3RyaW5nKCksXG4gIHJlZGlyZWN0OiB6LnN0cmluZygpLm9wdGlvbmFsKClcbn0pXG5cbmNvbnN0IHNpZ251cFNjaGVtYSA9IHoub2JqZWN0KHtcbiAgcGFzc3dvcmQ6IHouc3RyaW5nKCksXG4gIGVtYWlsOiB6LnN0cmluZygpLmVtYWlsKCksXG4gIHVzZXJuYW1lOiB6LnN0cmluZygpLm9wdGlvbmFsKClcbn0pXG5cbmV4cG9ydCBjb25zdCBnZXRTaWdudXBFbmRwb2ludCA9IChwbHVnaW5PcHRpb25zOiBCZXR0ZXJBdXRoUGx1Z2luT3B0aW9ucywgYmV0dGVyQXV0aE9wdGlvbnM6IFNhbml0aXplZEJldHRlckF1dGhPcHRpb25zKTogRW5kcG9pbnQgPT4ge1xuICBjb25zdCBlbmRwb2ludDogRW5kcG9pbnQgPSB7XG4gICAgcGF0aDogYWRtaW5FbmRwb2ludHMuc2lnbnVwLFxuICAgIG1ldGhvZDogJ3Bvc3QnLFxuICAgIGhhbmRsZXI6IGFzeW5jIChyZXEpID0+IHtcbiAgICAgIGF3YWl0IGFkZERhdGFBbmRGaWxlVG9SZXF1ZXN0KHJlcSlcbiAgICAgIGNvbnN0IGNvbGxlY3Rpb24gPSBnZXRSZXF1ZXN0Q29sbGVjdGlvbihyZXEpXG4gICAgICBjb25zdCB7IHQgfSA9IHJlcVxuICAgICAgdHJ5IHtcbiAgICAgICAgY29uc3Qgc2hvdWxkQ29tbWl0ID0gYXdhaXQgaW5pdFRyYW5zYWN0aW9uKHJlcSlcbiAgICAgICAgY29uc3QgeyBzdWNjZXNzOiByb3V0ZVBhcmFtc1N1Y2Nlc3MsIGRhdGE6IHJvdXRlUGFyYW1zRGF0YSwgZXJyb3I6IHJvdXRlUGFyYW1zRXJyb3IgfSA9IHJvdXRlUGFyYW1zU2NoZW1hLnNhZmVQYXJzZShyZXEucXVlcnkpXG4gICAgICAgIGlmICghcm91dGVQYXJhbXNTdWNjZXNzKSB7XG4gICAgICAgICAgcmV0dXJuIFJlc3BvbnNlLmpzb24oeyBtZXNzYWdlOiByb3V0ZVBhcmFtc0Vycm9yLm1lc3NhZ2UgfSwgeyBzdGF0dXM6IGh0dHBTdGF0dXMuQkFEX1JFUVVFU1QgfSlcbiAgICAgICAgfVxuICAgICAgICBjb25zdCBpbnZpdGUgPSBhd2FpdCByZXEucGF5bG9hZC5maW5kKHtcbiAgICAgICAgICBjb2xsZWN0aW9uOiBwbHVnaW5PcHRpb25zLmFkbWluSW52aXRhdGlvbnM/LnNsdWcgPz8gYmFzZUNvbGxlY3Rpb25TbHVncy5hZG1pbkludml0YXRpb25zLFxuICAgICAgICAgIHdoZXJlOiB7XG4gICAgICAgICAgICB0b2tlbjoge1xuICAgICAgICAgICAgICBlcXVhbHM6IHJvdXRlUGFyYW1zRGF0YS50b2tlblxuICAgICAgICAgICAgfVxuICAgICAgICAgIH0sXG4gICAgICAgICAgbGltaXQ6IDEsXG4gICAgICAgICAgcmVxXG4gICAgICAgIH0pXG4gICAgICAgIGlmIChpbnZpdGUuZG9jcy5sZW5ndGggPT09IDApIHtcbiAgICAgICAgICByZXR1cm4gUmVzcG9uc2UuanNvbih7IG1lc3NhZ2U6ICdJbnZhbGlkIHRva2VuJyB9LCB7IHN0YXR1czogaHR0cFN0YXR1cy5VTkFVVEhPUklaRUQgfSlcbiAgICAgICAgfVxuICAgICAgICBjb25zdCBpbnZpdGVSb2xlID0gaW52aXRlLmRvY3NbMF0ucm9sZSBhcyBzdHJpbmdcbiAgICAgICAgY29uc3Qgc2NoZW1hID0gc2lnbnVwU2NoZW1hLnNhZmVQYXJzZShyZXEuZGF0YSlcbiAgICAgICAgaWYgKCFzY2hlbWEuc3VjY2Vzcykge1xuICAgICAgICAgIHJldHVybiBSZXNwb25zZS5qc29uKHsgbWVzc2FnZTogc2NoZW1hLmVycm9yLm1lc3NhZ2UgfSwgeyBzdGF0dXM6IGh0dHBTdGF0dXMuQkFEX1JFUVVFU1QgfSlcbiAgICAgICAgfVxuICAgICAgICBjb25zdCB7IGVtYWlsLCBwYXNzd29yZCwgdXNlcm5hbWUgfSA9IHNjaGVtYS5kYXRhXG4gICAgICAgIGNvbnN0IGJhc2VVUkwgPSBiZXR0ZXJBdXRoT3B0aW9ucy5iYXNlVVJMXG4gICAgICAgIGNvbnN0IGJhc2VQYXRoID0gYmV0dGVyQXV0aE9wdGlvbnMuYmFzZVBhdGggPz8gJy9hcGkvYXV0aCdcbiAgICAgICAgY29uc3QgYXV0aEFwaVVSTCA9IGAke2Jhc2VVUkx9JHtiYXNlUGF0aH1gXG4gICAgICAgIGxldCB1cmwgPSBgJHthdXRoQXBpVVJMfS9zaWduLXVwL2VtYWlsYFxuICAgICAgICBpZiAocm91dGVQYXJhbXNEYXRhPy50b2tlbikge1xuICAgICAgICAgIHVybCArPSBgP2FkbWluSW52aXRlVG9rZW49JHtyb3V0ZVBhcmFtc0RhdGEudG9rZW59YFxuICAgICAgICB9XG4gICAgICAgIGNvbnN0IHJlc3VsdCA9IGF3YWl0IGZldGNoKHVybCwge1xuICAgICAgICAgIG1ldGhvZDogJ1BPU1QnLFxuICAgICAgICAgIGhlYWRlcnM6IHtcbiAgICAgICAgICAgICdDb250ZW50LVR5cGUnOiAnYXBwbGljYXRpb24vanNvbidcbiAgICAgICAgICB9LFxuICAgICAgICAgIGJvZHk6IEpTT04uc3RyaW5naWZ5KHtcbiAgICAgICAgICAgIG5hbWU6ICcnLFxuICAgICAgICAgICAgZW1haWw6IGVtYWlsLFxuICAgICAgICAgICAgcGFzc3dvcmQ6IHBhc3N3b3JkLFxuICAgICAgICAgICAgLi4uKHVzZXJuYW1lID8geyB1c2VybmFtZTogdXNlcm5hbWUgfSA6IHt9KSxcbiAgICAgICAgICAgIGNhbGxiYWNrVVJMOiByb3V0ZVBhcmFtc0RhdGEucmVkaXJlY3QgPz8gYCR7YmFzZVVSTH0ke3JlcS5wYXlsb2FkLmNvbmZpZy5yb3V0ZXMuYWRtaW59YFxuICAgICAgICAgIH0pXG4gICAgICAgIH0pXG4gICAgICAgIGNvbnN0IG9rID0gcmVzdWx0Lm9rXG5cbiAgICAgICAgaWYgKCFvaykge1xuICAgICAgICAgIHRocm93IG5ldyBFcnJvcihyZXN1bHQuc3RhdHVzVGV4dClcbiAgICAgICAgfVxuICAgICAgICBjb25zdCByZXNwb25zZURhdGEgPSBhd2FpdCByZXN1bHQuanNvbigpXG5cbiAgICAgICAgYXdhaXQgcmVxLnBheWxvYWQudXBkYXRlKHtcbiAgICAgICAgICBjb2xsZWN0aW9uOiBwbHVnaW5PcHRpb25zLnVzZXJzPy5zbHVnID8/IGJhc2VDb2xsZWN0aW9uU2x1Z3MudXNlcnMsXG4gICAgICAgICAgaWQ6IHJlc3BvbnNlRGF0YS51c2VyLmlkLFxuICAgICAgICAgIGRhdGE6IHtcbiAgICAgICAgICAgIHJvbGU6IGludml0ZVJvbGVcbiAgICAgICAgICB9LFxuICAgICAgICAgIG92ZXJyaWRlQWNjZXNzOiB0cnVlLFxuICAgICAgICAgIHJlcVxuICAgICAgICB9KVxuICAgICAgICBhd2FpdCByZXEucGF5bG9hZC5kZWxldGUoe1xuICAgICAgICAgIGNvbGxlY3Rpb246IHBsdWdpbk9wdGlvbnMuYWRtaW5JbnZpdGF0aW9ucz8uc2x1ZyA/PyBiYXNlQ29sbGVjdGlvblNsdWdzLmFkbWluSW52aXRhdGlvbnMsXG4gICAgICAgICAgd2hlcmU6IHtcbiAgICAgICAgICAgIHRva2VuOiB7IGVxdWFsczogaW52aXRlLmRvY3NbMF0udG9rZW4gfVxuICAgICAgICAgIH0sXG4gICAgICAgICAgcmVxXG4gICAgICAgIH0pXG5cbiAgICAgICAgY29uc3QgcmVxdWlyZUVtYWlsVmVyaWZpY2F0aW9uID1cbiAgICAgICAgICAoYmV0dGVyQXV0aE9wdGlvbnMuZW1haWxBbmRQYXNzd29yZD8ucmVxdWlyZUVtYWlsVmVyaWZpY2F0aW9uIHx8IGNvbGxlY3Rpb24uY29uZmlnLmF1dGgudmVyaWZ5KSAmJlxuICAgICAgICAgICFyZXNwb25zZURhdGEudXNlci5lbWFpbFZlcmlmaWVkXG5cbiAgICAgICAgY29uc3Qgc2VudEVtYWlsVmVyaWZpY2F0aW9uID0gYmV0dGVyQXV0aE9wdGlvbnMuZW1haWxWZXJpZmljYXRpb24/LnNlbmRWZXJpZmljYXRpb25FbWFpbCAhPT0gdW5kZWZpbmVkXG5cbiAgICAgICAgbGV0IHJlc3BvbnNlOiBSZXNwb25zZSB8IG51bGwgPSBudWxsXG5cbiAgICAgICAgaWYgKHJlcXVpcmVFbWFpbFZlcmlmaWNhdGlvbikge1xuICAgICAgICAgIGlmIChzZW50RW1haWxWZXJpZmljYXRpb24pIHtcbiAgICAgICAgICAgIHJlc3BvbnNlID0gbmV3IFJlc3BvbnNlKFxuICAgICAgICAgICAgICBKU09OLnN0cmluZ2lmeSh7XG4gICAgICAgICAgICAgICAgbWVzc2FnZTogdCgnYXV0aGVudGljYXRpb246dmVyaWZ5WW91ckVtYWlsJyksXG4gICAgICAgICAgICAgICAgc2VudEVtYWlsVmVyaWZpY2F0aW9uLFxuICAgICAgICAgICAgICAgIHJlcXVpcmVFbWFpbFZlcmlmaWNhdGlvblxuICAgICAgICAgICAgICB9KSxcbiAgICAgICAgICAgICAgeyBzdGF0dXM6IGh0dHBTdGF0dXMuVU5BVVRIT1JJWkVEIH1cbiAgICAgICAgICAgIClcbiAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgcmVzcG9uc2UgPSBuZXcgUmVzcG9uc2UoXG4gICAgICAgICAgICAgIEpTT04uc3RyaW5naWZ5KHtcbiAgICAgICAgICAgICAgICBtZXNzYWdlOiB0KCdhdXRoZW50aWNhdGlvbjp2ZXJpZnlZb3VyRW1haWwnKSxcbiAgICAgICAgICAgICAgICBzZW50RW1haWxWZXJpZmljYXRpb24sXG4gICAgICAgICAgICAgICAgcmVxdWlyZUVtYWlsVmVyaWZpY2F0aW9uXG4gICAgICAgICAgICAgIH0pLFxuICAgICAgICAgICAgICB7IHN0YXR1czogaHR0cFN0YXR1cy5VTkFVVEhPUklaRUQgfVxuICAgICAgICAgICAgKVxuICAgICAgICAgIH1cbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICByZXNwb25zZSA9IG5ldyBSZXNwb25zZShcbiAgICAgICAgICAgIEpTT04uc3RyaW5naWZ5KHtcbiAgICAgICAgICAgICAgbWVzc2FnZTogdCgnYXV0aGVudGljYXRpb246cGFzc2VkJyksXG4gICAgICAgICAgICAgIC4uLnJlc3BvbnNlRGF0YVxuICAgICAgICAgICAgfSksXG4gICAgICAgICAgICB7XG4gICAgICAgICAgICAgIHN0YXR1czogMjAwXG4gICAgICAgICAgICB9XG4gICAgICAgICAgKVxuICAgICAgICB9XG5cbiAgICAgICAgLy8gRm9yd2FyZCBhbGwgU2V0LUNvb2tpZSBoZWFkZXJzIGZyb20gdGhlIG9yaWdpbmFsIHJlc3BvbnNlIHRvIG91ciByZXNwb25zZVxuICAgICAgICBjb25zdCBzZXRDb29raWVIZWFkZXIgPSByZXN1bHQuaGVhZGVycy5nZXQoJ3NldC1jb29raWUnKVxuICAgICAgICBpZiAoc2V0Q29va2llSGVhZGVyKSB7XG4gICAgICAgICAgLy8gU2V0LUNvb2tpZSBoZWFkZXJzIGFyZSB0eXBpY2FsbHkgcmV0dXJuZWQgYXMgYSBzaW5nbGUgc3RyaW5nIHdpdGggbXVsdGlwbGUgY29va2llcyBzZXBhcmF0ZWQgYnkgY29tbWFzXG4gICAgICAgICAgY29uc3QgY29va2llcyA9IHNldENvb2tpZUhlYWRlci5zcGxpdCgnLCcpXG4gICAgICAgICAgY29va2llcy5mb3JFYWNoKChjb29raWUpID0+IHtcbiAgICAgICAgICAgIHJlc3BvbnNlLmhlYWRlcnMuYXBwZW5kKCdTZXQtQ29va2llJywgY29va2llLnRyaW0oKSlcbiAgICAgICAgICB9KVxuICAgICAgICB9XG4gICAgICAgIGlmIChzaG91bGRDb21taXQpIHtcbiAgICAgICAgICBhd2FpdCBjb21taXRUcmFuc2FjdGlvbihyZXEpXG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIHJlc3BvbnNlXG4gICAgICB9IGNhdGNoIChlcnJvcjogYW55KSB7XG4gICAgICAgIGF3YWl0IGtpbGxUcmFuc2FjdGlvbihyZXEpXG4gICAgICAgIHJldHVybiBSZXNwb25zZS5qc29uKHsgbWVzc2FnZTogZXJyb3IubWVzc2FnZSB9LCB7IHN0YXR1czogaHR0cFN0YXR1cy5JTlRFUk5BTF9TRVJWRVJfRVJST1IgfSlcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICByZXR1cm4gZW5kcG9pbnRcbn1cbiJdLCJuYW1lcyI6WyJ6IiwiYWRkRGF0YUFuZEZpbGVUb1JlcXVlc3QiLCJjb21taXRUcmFuc2FjdGlvbiIsImluaXRUcmFuc2FjdGlvbiIsImtpbGxUcmFuc2FjdGlvbiIsInN0YXR1cyIsImh0dHBTdGF0dXMiLCJnZXRSZXF1ZXN0Q29sbGVjdGlvbiIsImFkbWluRW5kcG9pbnRzIiwiYmFzZUNvbGxlY3Rpb25TbHVncyIsInJvdXRlUGFyYW1zU2NoZW1hIiwib2JqZWN0IiwidG9rZW4iLCJzdHJpbmciLCJyZWRpcmVjdCIsIm9wdGlvbmFsIiwic2lnbnVwU2NoZW1hIiwicGFzc3dvcmQiLCJlbWFpbCIsInVzZXJuYW1lIiwiZ2V0U2lnbnVwRW5kcG9pbnQiLCJwbHVnaW5PcHRpb25zIiwiYmV0dGVyQXV0aE9wdGlvbnMiLCJlbmRwb2ludCIsInBhdGgiLCJzaWdudXAiLCJtZXRob2QiLCJoYW5kbGVyIiwicmVxIiwiY29sbGVjdGlvbiIsInQiLCJzaG91bGRDb21taXQiLCJzdWNjZXNzIiwicm91dGVQYXJhbXNTdWNjZXNzIiwiZGF0YSIsInJvdXRlUGFyYW1zRGF0YSIsImVycm9yIiwicm91dGVQYXJhbXNFcnJvciIsInNhZmVQYXJzZSIsInF1ZXJ5IiwiUmVzcG9uc2UiLCJqc29uIiwibWVzc2FnZSIsIkJBRF9SRVFVRVNUIiwiaW52aXRlIiwicGF5bG9hZCIsImZpbmQiLCJhZG1pbkludml0YXRpb25zIiwic2x1ZyIsIndoZXJlIiwiZXF1YWxzIiwibGltaXQiLCJkb2NzIiwibGVuZ3RoIiwiVU5BVVRIT1JJWkVEIiwiaW52aXRlUm9sZSIsInJvbGUiLCJzY2hlbWEiLCJiYXNlVVJMIiwiYmFzZVBhdGgiLCJhdXRoQXBpVVJMIiwidXJsIiwicmVzdWx0IiwiZmV0Y2giLCJoZWFkZXJzIiwiYm9keSIsIkpTT04iLCJzdHJpbmdpZnkiLCJuYW1lIiwiY2FsbGJhY2tVUkwiLCJjb25maWciLCJyb3V0ZXMiLCJhZG1pbiIsIm9rIiwiRXJyb3IiLCJzdGF0dXNUZXh0IiwicmVzcG9uc2VEYXRhIiwidXBkYXRlIiwidXNlcnMiLCJpZCIsInVzZXIiLCJvdmVycmlkZUFjY2VzcyIsImRlbGV0ZSIsInJlcXVpcmVFbWFpbFZlcmlmaWNhdGlvbiIsImVtYWlsQW5kUGFzc3dvcmQiLCJhdXRoIiwidmVyaWZ5IiwiZW1haWxWZXJpZmllZCIsInNlbnRFbWFpbFZlcmlmaWNhdGlvbiIsImVtYWlsVmVyaWZpY2F0aW9uIiwic2VuZFZlcmlmaWNhdGlvbkVtYWlsIiwidW5kZWZpbmVkIiwicmVzcG9uc2UiLCJzZXRDb29raWVIZWFkZXIiLCJnZXQiLCJjb29raWVzIiwic3BsaXQiLCJmb3JFYWNoIiwiY29va2llIiwiYXBwZW5kIiwidHJpbSIsIklOVEVSTkFMX1NFUlZFUl9FUlJPUiJd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
|
|
157
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3NyYy9iZXR0ZXItYXV0aC9wbHVnaW4vbGliL2J1aWxkLWNvbGxlY3Rpb25zL3VzZXJzL2VuZHBvaW50cy9zaWdudXAudHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgYWRtaW5FbmRwb2ludHMsIGJhc2VTbHVncywgc3VwcG9ydGVkQkFQbHVnaW5JZHMgfSBmcm9tICdAL2JldHRlci1hdXRoL3BsdWdpbi9jb25zdGFudHMnXG5pbXBvcnQgeyBCZXR0ZXJBdXRoUGx1Z2luT3B0aW9ucyB9IGZyb20gJ0AvYmV0dGVyLWF1dGgvcGx1Z2luL3R5cGVzJ1xuaW1wb3J0IHsgc3RhdHVzIGFzIGh0dHBTdGF0dXMgfSBmcm9tICdodHRwLXN0YXR1cydcbmltcG9ydCB7IGFkZERhdGFBbmRGaWxlVG9SZXF1ZXN0LCBjb21taXRUcmFuc2FjdGlvbiwgaW5pdFRyYW5zYWN0aW9uLCBraWxsVHJhbnNhY3Rpb24sIHR5cGUgRW5kcG9pbnQgfSBmcm9tICdwYXlsb2FkJ1xuaW1wb3J0IHsgeiB9IGZyb20gJ3pvZCdcbmltcG9ydCB7IGdldFJlcXVlc3RDb2xsZWN0aW9uIH0gZnJvbSAnLi4vLi4vLi4vLi4vaGVscGVycy9nZXQtcmVxdXN0LWNvbGxlY3Rpb24nXG5pbXBvcnQgeyBjcmVhdGVTaWdudXBTY2hlbWEgfSBmcm9tICdAL3NoYXJlZC9mb3JtL3ZhbGlkYXRpb24nXG5pbXBvcnQgeyBjaGVja1BsdWdpbkV4aXN0cyB9IGZyb20gJ0AvYmV0dGVyLWF1dGgvcGx1Z2luL2hlbHBlcnMvY2hlY2stcGx1Z2luLWV4aXN0cydcblxuY29uc3Qgc2VuZEpTT04gPSAoZGF0YTogdW5rbm93biwgc3RhdHVzOiBudW1iZXIpOiBSZXNwb25zZSA9PlxuICBuZXcgUmVzcG9uc2UoSlNPTi5zdHJpbmdpZnkoZGF0YSksIHtcbiAgICBoZWFkZXJzOiB7ICdDb250ZW50LVR5cGUnOiAnYXBwbGljYXRpb24vanNvbicgfSxcbiAgICBzdGF0dXNcbiAgfSlcblxuY29uc3QgZm9yd2FyZENvb2tpZXMgPSAoZnJvbTogUmVzcG9uc2UsIHRvOiBSZXNwb25zZSk6IHZvaWQgPT4ge1xuICBjb25zdCBzZXRDb29raWVIZWFkZXIgPSBmcm9tLmhlYWRlcnMuZ2V0KCdzZXQtY29va2llJylcbiAgaWYgKCFzZXRDb29raWVIZWFkZXIpIHJldHVyblxuICBzZXRDb29raWVIZWFkZXIuc3BsaXQoJywnKS5mb3JFYWNoKChjKSA9PiB0by5oZWFkZXJzLmFwcGVuZCgnU2V0LUNvb2tpZScsIGMudHJpbSgpKSlcbn1cblxuY29uc3Qgcm91dGVQYXJhbXNTY2hlbWEgPSB6Lm9iamVjdCh7XG4gIHRva2VuOiB6LnN0cmluZygpLFxuICByZWRpcmVjdDogei5zdHJpbmcoKS5vcHRpb25hbCgpXG59KVxuXG5leHBvcnQgY29uc3QgZ2V0U2lnbnVwRW5kcG9pbnQgPSAocGx1Z2luT3B0aW9uczogQmV0dGVyQXV0aFBsdWdpbk9wdGlvbnMpOiBFbmRwb2ludCA9PiB7XG4gIGNvbnN0IHsgYmV0dGVyQXV0aE9wdGlvbnMgPSB7fSwgYWRtaW5JbnZpdGF0aW9ucywgdXNlcnMgfSA9IHBsdWdpbk9wdGlvbnNcbiAgY29uc3QgeyBiYXNlVVJMID0gJycsIGJhc2VQYXRoID0gJy9hcGkvYXV0aCcsIGVtYWlsVmVyaWZpY2F0aW9uLCBlbWFpbEFuZFBhc3N3b3JkIH0gPSBiZXR0ZXJBdXRoT3B0aW9uc1xuXG4gIGlmICghYmFzZVVSTCkge1xuICAgIHRocm93IG5ldyBFcnJvcignYmV0dGVyQXV0aE9wdGlvbnMuYmFzZVVSTCBpcyByZXF1aXJlZCBmb3Igc2VydmVy4oCRc2lkZSBhdXRoZW50aWNhdGlvbiBjYWxscycpXG4gIH1cblxuICBjb25zdCBhZG1pbkludml0YXRpb25zU2x1ZyA9IGFkbWluSW52aXRhdGlvbnM/LnNsdWcgPz8gYmFzZVNsdWdzLmFkbWluSW52aXRhdGlvbnNcbiAgY29uc3QgdXNlcnNTbHVnID0gdXNlcnM/LnNsdWcgPz8gYmFzZVNsdWdzLnVzZXJzXG5cbiAgY29uc3QgZW5kcG9pbnQ6IEVuZHBvaW50ID0ge1xuICAgIHBhdGg6IGFkbWluRW5kcG9pbnRzLnNpZ251cCxcbiAgICBtZXRob2Q6ICdwb3N0JyxcbiAgICBoYW5kbGVyOiBhc3luYyAocmVxKSA9PiB7XG4gICAgICBhd2FpdCBhZGREYXRhQW5kRmlsZVRvUmVxdWVzdChyZXEpXG4gICAgICBjb25zdCBjb2xsZWN0aW9uID0gZ2V0UmVxdWVzdENvbGxlY3Rpb24ocmVxKVxuICAgICAgY29uc3QgeyB0IH0gPSByZXFcblxuICAgICAgY29uc3Qgc2hvdWxkQ29tbWl0ID0gYXdhaXQgaW5pdFRyYW5zYWN0aW9uKHJlcSlcblxuICAgICAgdHJ5IHtcbiAgICAgICAgY29uc3QgeyBzdWNjZXNzOiByb3V0ZVBhcmFtc1N1Y2Nlc3MsIGRhdGE6IHJvdXRlUGFyYW1zRGF0YSwgZXJyb3I6IHJvdXRlUGFyYW1zRXJyb3IgfSA9IHJvdXRlUGFyYW1zU2NoZW1hLnNhZmVQYXJzZShyZXEucXVlcnkpXG5cbiAgICAgICAgaWYgKCFyb3V0ZVBhcmFtc1N1Y2Nlc3MpIHtcbiAgICAgICAgICBhd2FpdCBraWxsVHJhbnNhY3Rpb24ocmVxKVxuICAgICAgICAgIHJldHVybiBzZW5kSlNPTih7IGVycm9yOiAnSU5WQUxJRF9QQVJBTVMnLCBtZXNzYWdlOiByb3V0ZVBhcmFtc0Vycm9yLm1lc3NhZ2UgfSwgaHR0cFN0YXR1cy5CQURfUkVRVUVTVClcbiAgICAgICAgfVxuXG4gICAgICAgIGNvbnN0IGludml0ZVJlc3VsdCA9IGF3YWl0IHJlcS5wYXlsb2FkLmZpbmQoe1xuICAgICAgICAgIGNvbGxlY3Rpb246IGFkbWluSW52aXRhdGlvbnNTbHVnLFxuICAgICAgICAgIHdoZXJlOiB7IHRva2VuOiB7IGVxdWFsczogcm91dGVQYXJhbXNEYXRhLnRva2VuIH0gfSxcbiAgICAgICAgICBsaW1pdDogMSxcbiAgICAgICAgICByZXFcbiAgICAgICAgfSlcblxuICAgICAgICBjb25zdCBpbnZpdGVEb2MgPSBpbnZpdGVSZXN1bHQuZG9jcy5hdCgwKVxuXG4gICAgICAgIGlmICghaW52aXRlRG9jKSB7XG4gICAgICAgICAgYXdhaXQga2lsbFRyYW5zYWN0aW9uKHJlcSlcbiAgICAgICAgICByZXR1cm4gc2VuZEpTT04oeyBlcnJvcjogJ0lOVkFMSURfVE9LRU4nLCBtZXNzYWdlOiAnSW52YWxpZCB0b2tlbicgfSwgaHR0cFN0YXR1cy5VTkFVVEhPUklaRUQpXG4gICAgICAgIH1cblxuICAgICAgICBjb25zdCBoYXNVc2VybmFtZVBsdWdpbiA9IGNoZWNrUGx1Z2luRXhpc3RzKGJldHRlckF1dGhPcHRpb25zLCBzdXBwb3J0ZWRCQVBsdWdpbklkcy51c2VybmFtZSlcbiAgICAgICAgY29uc3Qgc3VwcG9ydHNMb2dpbldpdGhVc2VybmFtZSA9IGhhc1VzZXJuYW1lUGx1Z2luICYmIGNvbGxlY3Rpb24uY29uZmlnPy5hdXRoPy5sb2dpbldpdGhVc2VybmFtZVxuICAgICAgICBjb25zdCByZXF1aXJlVXNlcm5hbWUgPVxuICAgICAgICAgIGhhc1VzZXJuYW1lUGx1Z2luICYmXG4gICAgICAgICAgdHlwZW9mIGNvbGxlY3Rpb24uY29uZmlnPy5hdXRoPy5sb2dpbldpdGhVc2VybmFtZSA9PT0gJ29iamVjdCcgJiZcbiAgICAgICAgICAhIWNvbGxlY3Rpb24uY29uZmlnPy5hdXRoPy5sb2dpbldpdGhVc2VybmFtZT8ucmVxdWlyZVVzZXJuYW1lXG5cbiAgICAgICAgY29uc3Qgc2lnbnVwU2NoZW1hID0gY3JlYXRlU2lnbnVwU2NoZW1hKHsgdCwgcmVxdWlyZVVzZXJuYW1lLCByZXF1aXJlQ29uZmlybVBhc3N3b3JkOiBmYWxzZSB9KVxuICAgICAgICBjb25zdCBwYXJzZWRCb2R5ID0gc2lnbnVwU2NoZW1hLnNhZmVQYXJzZShyZXEuZGF0YSlcblxuICAgICAgICBpZiAoIXBhcnNlZEJvZHkuc3VjY2Vzcykge1xuICAgICAgICAgIGF3YWl0IGtpbGxUcmFuc2FjdGlvbihyZXEpXG4gICAgICAgICAgY29uc3QgbWVzc2FnZXMgPSBwYXJzZWRCb2R5LmVycm9yLmlzc3Vlcy5tYXAoKGlzc3VlKSA9PiBpc3N1ZS5tZXNzYWdlKVxuICAgICAgICAgIHJldHVybiBzZW5kSlNPTih7IGVycm9yOiB7IG1lc3NhZ2U6IG1lc3NhZ2VzIH0gfSwgaHR0cFN0YXR1cy5CQURfUkVRVUVTVClcbiAgICAgICAgfVxuXG4gICAgICAgIGNvbnN0IHsgbmFtZSwgZW1haWwsIHBhc3N3b3JkLCB1c2VybmFtZSB9ID0gcGFyc2VkQm9keS5kYXRhXG5cbiAgICAgICAgY29uc3QgYXV0aEFwaVVSTCA9IGAke2Jhc2VVUkx9JHtiYXNlUGF0aH1gXG4gICAgICAgIGNvbnN0IHVybCA9IG5ldyBVUkwoYCR7YXV0aEFwaVVSTH0vc2lnbi11cC9lbWFpbGApXG4gICAgICAgIHVybC5zZWFyY2hQYXJhbXMuc2V0KCdjYWxsYmFja1VSTCcsIHJvdXRlUGFyYW1zRGF0YS5yZWRpcmVjdCA/PyBgJHtiYXNlVVJMfSR7cmVxLnBheWxvYWQuY29uZmlnLnJvdXRlcy5hZG1pbn1gKVxuICAgICAgICBpZiAocm91dGVQYXJhbXNEYXRhLnRva2VuKSB7XG4gICAgICAgICAgdXJsLnNlYXJjaFBhcmFtcy5zZXQoJ2FkbWluSW52aXRlVG9rZW4nLCByb3V0ZVBhcmFtc0RhdGEudG9rZW4pXG4gICAgICAgIH1cblxuICAgICAgICBjb25zdCBhcGlSZXNwb25zZSA9IGF3YWl0IGZldGNoKHVybC50b1N0cmluZygpLCB7XG4gICAgICAgICAgbWV0aG9kOiAnUE9TVCcsXG4gICAgICAgICAgaGVhZGVyczogeyAnQ29udGVudC1UeXBlJzogJ2FwcGxpY2F0aW9uL2pzb24nIH0sXG4gICAgICAgICAgYm9keTogSlNPTi5zdHJpbmdpZnkoe1xuICAgICAgICAgICAgbmFtZSxcbiAgICAgICAgICAgIGVtYWlsLFxuICAgICAgICAgICAgcGFzc3dvcmQsXG4gICAgICAgICAgICAuLi4oc3VwcG9ydHNMb2dpbldpdGhVc2VybmFtZSAmJiB1c2VybmFtZSAmJiB7IHVzZXJuYW1lIH0pXG4gICAgICAgICAgfSlcbiAgICAgICAgfSlcblxuICAgICAgICBpZiAoIWFwaVJlc3BvbnNlLm9rKSB7XG4gICAgICAgICAgdGhyb3cgbmV3IEVycm9yKGFwaVJlc3BvbnNlLnN0YXR1c1RleHQpXG4gICAgICAgIH1cblxuICAgICAgICBjb25zdCByZXNwb25zZURhdGEgPSBhd2FpdCBhcGlSZXNwb25zZS5qc29uKClcblxuICAgICAgICBhd2FpdCByZXEucGF5bG9hZC51cGRhdGUoe1xuICAgICAgICAgIGNvbGxlY3Rpb246IHVzZXJzU2x1ZyxcbiAgICAgICAgICBpZDogcmVzcG9uc2VEYXRhLnVzZXIuaWQsXG4gICAgICAgICAgZGF0YTogeyByb2xlOiBpbnZpdGVEb2Mucm9sZSB9LFxuICAgICAgICAgIG92ZXJyaWRlQWNjZXNzOiB0cnVlLFxuICAgICAgICAgIHJlcVxuICAgICAgICB9KVxuXG4gICAgICAgIGF3YWl0IHJlcS5wYXlsb2FkLmRlbGV0ZSh7XG4gICAgICAgICAgY29sbGVjdGlvbjogYWRtaW5JbnZpdGF0aW9uc1NsdWcsXG4gICAgICAgICAgd2hlcmU6IHsgdG9rZW46IHsgZXF1YWxzOiBpbnZpdGVEb2MudG9rZW4gfSB9LFxuICAgICAgICAgIHJlcVxuICAgICAgICB9KVxuXG4gICAgICAgIGNvbnN0IHJlcXVpcmVFbWFpbFZlcmlmaWNhdGlvbiA9XG4gICAgICAgICAgKGVtYWlsQW5kUGFzc3dvcmQ/LnJlcXVpcmVFbWFpbFZlcmlmaWNhdGlvbiB8fCBjb2xsZWN0aW9uLmNvbmZpZy5hdXRoLnZlcmlmeSkgJiYgIXJlc3BvbnNlRGF0YS51c2VyLmVtYWlsVmVyaWZpZWRcblxuICAgICAgICBjb25zdCBzZW50RW1haWxWZXJpZmljYXRpb24gPSBlbWFpbFZlcmlmaWNhdGlvbj8uc2VuZFZlcmlmaWNhdGlvbkVtYWlsICE9PSB1bmRlZmluZWRcblxuICAgICAgICBpZiAocmVxdWlyZUVtYWlsVmVyaWZpY2F0aW9uKSB7XG4gICAgICAgICAgY29uc3QgcmVzID0gc2VuZEpTT04oXG4gICAgICAgICAgICB7XG4gICAgICAgICAgICAgIG1lc3NhZ2U6IHQoJ2F1dGhlbnRpY2F0aW9uOnZlcmlmeVlvdXJFbWFpbCcpLFxuICAgICAgICAgICAgICBzZW50RW1haWxWZXJpZmljYXRpb24sXG4gICAgICAgICAgICAgIHJlcXVpcmVFbWFpbFZlcmlmaWNhdGlvblxuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIGh0dHBTdGF0dXMuVU5BVVRIT1JJWkVEXG4gICAgICAgICAgKVxuICAgICAgICAgIGZvcndhcmRDb29raWVzKGFwaVJlc3BvbnNlLCByZXMpXG4gICAgICAgICAgaWYgKHNob3VsZENvbW1pdCkgYXdhaXQgY29tbWl0VHJhbnNhY3Rpb24ocmVxKVxuICAgICAgICAgIHJldHVybiByZXNcbiAgICAgICAgfVxuXG4gICAgICAgIGNvbnN0IHN1Y2Nlc3NSZXMgPSBzZW5kSlNPTih7IG1lc3NhZ2U6IHQoJ2F1dGhlbnRpY2F0aW9uOnBhc3NlZCcpLCAuLi5yZXNwb25zZURhdGEgfSwgaHR0cFN0YXR1cy5PSylcbiAgICAgICAgZm9yd2FyZENvb2tpZXMoYXBpUmVzcG9uc2UsIHN1Y2Nlc3NSZXMpXG4gICAgICAgIGlmIChzaG91bGRDb21taXQpIGF3YWl0IGNvbW1pdFRyYW5zYWN0aW9uKHJlcSlcbiAgICAgICAgcmV0dXJuIHN1Y2Nlc3NSZXNcbiAgICAgIH0gY2F0Y2ggKGVycm9yOiBhbnkpIHtcbiAgICAgICAgYXdhaXQga2lsbFRyYW5zYWN0aW9uKHJlcSlcbiAgICAgICAgcmV0dXJuIHNlbmRKU09OKHsgbWVzc2FnZTogZXJyb3IubWVzc2FnZSB9LCBodHRwU3RhdHVzLklOVEVSTkFMX1NFUlZFUl9FUlJPUilcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICByZXR1cm4gZW5kcG9pbnRcbn1cbiJdLCJuYW1lcyI6WyJhZG1pbkVuZHBvaW50cyIsImJhc2VTbHVncyIsInN1cHBvcnRlZEJBUGx1Z2luSWRzIiwic3RhdHVzIiwiaHR0cFN0YXR1cyIsImFkZERhdGFBbmRGaWxlVG9SZXF1ZXN0IiwiY29tbWl0VHJhbnNhY3Rpb24iLCJpbml0VHJhbnNhY3Rpb24iLCJraWxsVHJhbnNhY3Rpb24iLCJ6IiwiZ2V0UmVxdWVzdENvbGxlY3Rpb24iLCJjcmVhdGVTaWdudXBTY2hlbWEiLCJjaGVja1BsdWdpbkV4aXN0cyIsInNlbmRKU09OIiwiZGF0YSIsIlJlc3BvbnNlIiwiSlNPTiIsInN0cmluZ2lmeSIsImhlYWRlcnMiLCJmb3J3YXJkQ29va2llcyIsImZyb20iLCJ0byIsInNldENvb2tpZUhlYWRlciIsImdldCIsInNwbGl0IiwiZm9yRWFjaCIsImMiLCJhcHBlbmQiLCJ0cmltIiwicm91dGVQYXJhbXNTY2hlbWEiLCJvYmplY3QiLCJ0b2tlbiIsInN0cmluZyIsInJlZGlyZWN0Iiwib3B0aW9uYWwiLCJnZXRTaWdudXBFbmRwb2ludCIsInBsdWdpbk9wdGlvbnMiLCJiZXR0ZXJBdXRoT3B0aW9ucyIsImFkbWluSW52aXRhdGlvbnMiLCJ1c2VycyIsImJhc2VVUkwiLCJiYXNlUGF0aCIsImVtYWlsVmVyaWZpY2F0aW9uIiwiZW1haWxBbmRQYXNzd29yZCIsIkVycm9yIiwiYWRtaW5JbnZpdGF0aW9uc1NsdWciLCJzbHVnIiwidXNlcnNTbHVnIiwiZW5kcG9pbnQiLCJwYXRoIiwic2lnbnVwIiwibWV0aG9kIiwiaGFuZGxlciIsInJlcSIsImNvbGxlY3Rpb24iLCJ0Iiwic2hvdWxkQ29tbWl0Iiwic3VjY2VzcyIsInJvdXRlUGFyYW1zU3VjY2VzcyIsInJvdXRlUGFyYW1zRGF0YSIsImVycm9yIiwicm91dGVQYXJhbXNFcnJvciIsInNhZmVQYXJzZSIsInF1ZXJ5IiwibWVzc2FnZSIsIkJBRF9SRVFVRVNUIiwiaW52aXRlUmVzdWx0IiwicGF5bG9hZCIsImZpbmQiLCJ3aGVyZSIsImVxdWFscyIsImxpbWl0IiwiaW52aXRlRG9jIiwiZG9jcyIsImF0IiwiVU5BVVRIT1JJWkVEIiwiaGFzVXNlcm5hbWVQbHVnaW4iLCJ1c2VybmFtZSIsInN1cHBvcnRzTG9naW5XaXRoVXNlcm5hbWUiLCJjb25maWciLCJhdXRoIiwibG9naW5XaXRoVXNlcm5hbWUiLCJyZXF1aXJlVXNlcm5hbWUiLCJzaWdudXBTY2hlbWEiLCJyZXF1aXJlQ29uZmlybVBhc3N3b3JkIiwicGFyc2VkQm9keSIsIm1lc3NhZ2VzIiwiaXNzdWVzIiwibWFwIiwiaXNzdWUiLCJuYW1lIiwiZW1haWwiLCJwYXNzd29yZCIsImF1dGhBcGlVUkwiLCJ1cmwiLCJVUkwiLCJzZWFyY2hQYXJhbXMiLCJzZXQiLCJyb3V0ZXMiLCJhZG1pbiIsImFwaVJlc3BvbnNlIiwiZmV0Y2giLCJ0b1N0cmluZyIsImJvZHkiLCJvayIsInN0YXR1c1RleHQiLCJyZXNwb25zZURhdGEiLCJqc29uIiwidXBkYXRlIiwiaWQiLCJ1c2VyIiwicm9sZSIsIm92ZXJyaWRlQWNjZXNzIiwiZGVsZXRlIiwicmVxdWlyZUVtYWlsVmVyaWZpY2F0aW9uIiwidmVyaWZ5IiwiZW1haWxWZXJpZmllZCIsInNlbnRFbWFpbFZlcmlmaWNhdGlvbiIsInNlbmRWZXJpZmljYXRpb25FbWFpbCIsInVuZGVmaW5lZCIsInJlcyIsInN1Y2Nlc3NSZXMiLCJPSyIsIklOVEVSTkFMX1NFUlZFUl9FUlJPUiJdLCJtYXBwaW5ncyI6IkFBQUEsU0FBU0EsY0FBYyxFQUFFQyxTQUFTLEVBQUVDLG9CQUFvQixRQUFRLHdCQUFnQztBQUVoRyxTQUFTQyxVQUFVQyxVQUFVLFFBQVEsY0FBYTtBQUNsRCxTQUFTQyx1QkFBdUIsRUFBRUMsaUJBQWlCLEVBQUVDLGVBQWUsRUFBRUMsZUFBZSxRQUF1QixVQUFTO0FBQ3JILFNBQVNDLENBQUMsUUFBUSxNQUFLO0FBQ3ZCLFNBQVNDLG9CQUFvQixRQUFRLDRDQUEyQztBQUNoRixTQUFTQyxrQkFBa0IsUUFBUSwyQ0FBMEI7QUFDN0QsU0FBU0MsaUJBQWlCLFFBQVEsMENBQWtEO0FBRXBGLE1BQU1DLFdBQVcsQ0FBQ0MsTUFBZVgsU0FDL0IsSUFBSVksU0FBU0MsS0FBS0MsU0FBUyxDQUFDSCxPQUFPO1FBQ2pDSSxTQUFTO1lBQUUsZ0JBQWdCO1FB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
|
|
@@ -1,12 +1,7 @@
|
|
|
1
1
|
import { CollectionAfterLoginHook } from 'payload';
|
|
2
|
-
type AfterLoginOptions = {
|
|
3
|
-
usersCollectionSlug: string;
|
|
4
|
-
sessionsCollectionSlug: string;
|
|
5
|
-
};
|
|
6
2
|
/**
|
|
7
3
|
* This hook is used to sync the admin login token with better-auth session token
|
|
8
4
|
* It also creates a new session in better-auth
|
|
9
5
|
*/
|
|
10
|
-
export declare
|
|
11
|
-
export {};
|
|
6
|
+
export declare function getAfterLoginHook(): CollectionAfterLoginHook;
|
|
12
7
|
//# sourceMappingURL=after-login.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"after-login.d.ts","sourceRoot":"","sources":["../../../../../../../src/better-auth/plugin/lib/build-collections/users/hooks/after-login.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"after-login.d.ts","sourceRoot":"","sources":["../../../../../../../src/better-auth/plugin/lib/build-collections/users/hooks/after-login.ts"],"names":[],"mappings":"AAWA,OAAO,EAAE,wBAAwB,EAAE,MAAM,SAAS,CAAA;AAClD;;;GAGG;AACH,wBAAgB,iBAAiB,IAsEhB,wBAAwB,CACxC"}
|
|
@@ -1,25 +1,37 @@
|
|
|
1
|
+
import { baModelKey } from "../../../../constants";
|
|
2
|
+
import { getMappedCollection, transformCollectionsToCollectionConfigs } from "../../../../helpers/get-collection";
|
|
3
|
+
import { getIp } from "../../../../helpers/get-ip";
|
|
4
|
+
import { prepareSessionData } from "../../../../helpers/prepare-session-data";
|
|
5
|
+
import { getPayloadAuth } from "../../../get-payload-auth";
|
|
1
6
|
import { generateId } from "better-auth";
|
|
2
7
|
import { createAuthMiddleware } from "better-auth/api";
|
|
3
8
|
import { setSessionCookie } from "better-auth/cookies";
|
|
4
9
|
import { parseSetCookie } from "next/dist/compiled/@edge-runtime/cookies";
|
|
5
10
|
import { cookies } from "next/headers";
|
|
6
|
-
import { getPayloadAuth } from "../../../get-payload-auth";
|
|
7
|
-
import { getIp } from "../../../../helpers/get-ip";
|
|
8
|
-
import { prepareSessionData } from "../../../../helpers/prepare-session-data";
|
|
9
11
|
/**
|
|
10
12
|
* This hook is used to sync the admin login token with better-auth session token
|
|
11
13
|
* It also creates a new session in better-auth
|
|
12
|
-
*/ export
|
|
13
|
-
const hook = async ({
|
|
14
|
+
*/ export function getAfterLoginHook() {
|
|
15
|
+
const hook = async ({ req, user })=>{
|
|
14
16
|
const config = req.payload.config;
|
|
15
17
|
const payload = await getPayloadAuth(config);
|
|
18
|
+
const collections = req.payload.collections;
|
|
19
|
+
const collectionMap = transformCollectionsToCollectionConfigs(collections);
|
|
20
|
+
const userCollection = getMappedCollection({
|
|
21
|
+
collectionMap,
|
|
22
|
+
betterAuthModelKey: baModelKey.user
|
|
23
|
+
});
|
|
24
|
+
const sessionCollection = getMappedCollection({
|
|
25
|
+
collectionMap,
|
|
26
|
+
betterAuthModelKey: baModelKey.session
|
|
27
|
+
});
|
|
16
28
|
const cookieStore = await cookies();
|
|
17
29
|
const authContext = await payload.betterAuth.$context;
|
|
18
30
|
const sessionExpiration = payload.betterAuth.options.session?.expiresIn || 60 * 60 * 24 * 7 // 7 days
|
|
19
31
|
;
|
|
20
32
|
// we can't use internal adapter as we can cause a race condition unless we pass req to the payload.create
|
|
21
33
|
const session = await payload.create({
|
|
22
|
-
collection:
|
|
34
|
+
collection: sessionCollection.slug,
|
|
23
35
|
data: {
|
|
24
36
|
ipAddress: getIp(req.headers, payload.betterAuth.options) || '',
|
|
25
37
|
userAgent: req.headers?.get('user-agent') || '',
|
|
@@ -40,11 +52,8 @@ import { prepareSessionData } from "../../../../helpers/prepare-session-data";
|
|
|
40
52
|
session,
|
|
41
53
|
user
|
|
42
54
|
},
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
userCollectionSlug: options.usersCollectionSlug,
|
|
46
|
-
sessionCollectionSlug: options.sessionsCollectionSlug
|
|
47
|
-
}
|
|
55
|
+
usersCollection: userCollection,
|
|
56
|
+
sessionsCollection: sessionCollection
|
|
48
57
|
});
|
|
49
58
|
if (filteredSessionData) {
|
|
50
59
|
await setSessionCookie(ctx, filteredSessionData);
|
|
@@ -73,6 +82,6 @@ import { prepareSessionData } from "../../../../helpers/prepare-session-data";
|
|
|
73
82
|
}
|
|
74
83
|
};
|
|
75
84
|
return hook;
|
|
76
|
-
}
|
|
85
|
+
}
|
|
77
86
|
|
|
78
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
87
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3NyYy9iZXR0ZXItYXV0aC9wbHVnaW4vbGliL2J1aWxkLWNvbGxlY3Rpb25zL3VzZXJzL2hvb2tzL2FmdGVyLWxvZ2luLnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGJhTW9kZWxLZXkgfSBmcm9tICdAL2JldHRlci1hdXRoL3BsdWdpbi9jb25zdGFudHMnXG5pbXBvcnQgeyBnZXRNYXBwZWRDb2xsZWN0aW9uLCB0cmFuc2Zvcm1Db2xsZWN0aW9uc1RvQ29sbGVjdGlvbkNvbmZpZ3MgfSBmcm9tICdAL2JldHRlci1hdXRoL3BsdWdpbi9oZWxwZXJzL2dldC1jb2xsZWN0aW9uJ1xuaW1wb3J0IHsgZ2V0SXAgfSBmcm9tICdAL2JldHRlci1hdXRoL3BsdWdpbi9oZWxwZXJzL2dldC1pcCdcbmltcG9ydCB7IHByZXBhcmVTZXNzaW9uRGF0YSB9IGZyb20gJ0AvYmV0dGVyLWF1dGgvcGx1Z2luL2hlbHBlcnMvcHJlcGFyZS1zZXNzaW9uLWRhdGEnXG5pbXBvcnQgeyBnZXRQYXlsb2FkQXV0aCB9IGZyb20gJ0AvYmV0dGVyLWF1dGgvcGx1Z2luL2xpYi9nZXQtcGF5bG9hZC1hdXRoJ1xuaW1wb3J0IHR5cGUgeyBCZXR0ZXJBdXRoUGx1Z2luT3B0aW9ucyB9IGZyb20gJ0AvYmV0dGVyLWF1dGgvcGx1Z2luL3R5cGVzJ1xuaW1wb3J0IHsgZ2VuZXJhdGVJZCwgU2Vzc2lvbiB9IGZyb20gJ2JldHRlci1hdXRoJ1xuaW1wb3J0IHsgY3JlYXRlQXV0aE1pZGRsZXdhcmUgfSBmcm9tICdiZXR0ZXItYXV0aC9hcGknXG5pbXBvcnQgeyBzZXRTZXNzaW9uQ29va2llIH0gZnJvbSAnYmV0dGVyLWF1dGgvY29va2llcydcbmltcG9ydCB7IHBhcnNlU2V0Q29va2llLCB0eXBlIFJlc3BvbnNlQ29va2llIH0gZnJvbSAnbmV4dC9kaXN0L2NvbXBpbGVkL0BlZGdlLXJ1bnRpbWUvY29va2llcydcbmltcG9ydCB7IGNvb2tpZXMgfSBmcm9tICduZXh0L2hlYWRlcnMnXG5pbXBvcnQgeyBDb2xsZWN0aW9uQWZ0ZXJMb2dpbkhvb2sgfSBmcm9tICdwYXlsb2FkJ1xuLyoqXG4gKiBUaGlzIGhvb2sgaXMgdXNlZCB0byBzeW5jIHRoZSBhZG1pbiBsb2dpbiB0b2tlbiB3aXRoIGJldHRlci1hdXRoIHNlc3Npb24gdG9rZW5cbiAqIEl0IGFsc28gY3JlYXRlcyBhIG5ldyBzZXNzaW9uIGluIGJldHRlci1hdXRoXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBnZXRBZnRlckxvZ2luSG9vaygpIHtcbiAgY29uc3QgaG9vazogQ29sbGVjdGlvbkFmdGVyTG9naW5Ib29rID0gYXN5bmMgKHsgcmVxLCB1c2VyIH0pID0+IHtcbiAgICBjb25zdCBjb25maWcgPSByZXEucGF5bG9hZC5jb25maWdcbiAgICBjb25zdCBwYXlsb2FkID0gYXdhaXQgZ2V0UGF5bG9hZEF1dGgoY29uZmlnKVxuICAgIGNvbnN0IGNvbGxlY3Rpb25zID0gcmVxLnBheWxvYWQuY29sbGVjdGlvbnNcbiAgICBjb25zdCBjb2xsZWN0aW9uTWFwID0gdHJhbnNmb3JtQ29sbGVjdGlvbnNUb0NvbGxlY3Rpb25Db25maWdzKGNvbGxlY3Rpb25zKVxuICAgIGNvbnN0IHVzZXJDb2xsZWN0aW9uID0gZ2V0TWFwcGVkQ29sbGVjdGlvbih7IGNvbGxlY3Rpb25NYXAsIGJldHRlckF1dGhNb2RlbEtleTogYmFNb2RlbEtleS51c2VyIH0pXG4gICAgY29uc3Qgc2Vzc2lvbkNvbGxlY3Rpb24gPSBnZXRNYXBwZWRDb2xsZWN0aW9uKHsgY29sbGVjdGlvbk1hcCwgYmV0dGVyQXV0aE1vZGVsS2V5OiBiYU1vZGVsS2V5LnNlc3Npb24gfSlcbiAgICBjb25zdCBjb29raWVTdG9yZSA9IGF3YWl0IGNvb2tpZXMoKVxuICAgIGNvbnN0IGF1dGhDb250ZXh0ID0gYXdhaXQgcGF5bG9hZC5iZXR0ZXJBdXRoLiRjb250ZXh0XG4gICAgY29uc3Qgc2Vzc2lvbkV4cGlyYXRpb24gPSBwYXlsb2FkLmJldHRlckF1dGgub3B0aW9ucy5zZXNzaW9uPy5leHBpcmVzSW4gfHwgNjAgKiA2MCAqIDI0ICogNyAvLyA3IGRheXNcbiAgICAvLyB3ZSBjYW4ndCB1c2UgaW50ZXJuYWwgYWRhcHRlciBhcyB3ZSBjYW4gY2F1c2UgYSByYWNlIGNvbmRpdGlvbiB1bmxlc3Mgd2UgcGFzcyByZXEgdG8gdGhlIHBheWxvYWQuY3JlYXRlXG4gICAgY29uc3Qgc2Vzc2lvbiA9IChhd2FpdCBwYXlsb2FkLmNyZWF0ZSh7XG4gICAgICBjb2xsZWN0aW9uOiBzZXNzaW9uQ29sbGVjdGlvbi5zbHVnLFxuICAgICAgZGF0YToge1xuICAgICAgICBpcEFkZHJlc3M6IGdldElwKHJlcS5oZWFkZXJzLCBwYXlsb2FkLmJldHRlckF1dGgub3B0aW9ucykgfHwgJycsXG4gICAgICAgIHVzZXJBZ2VudDogcmVxLmhlYWRlcnM/LmdldCgndXNlci1hZ2VudCcpIHx8ICcnLFxuICAgICAgICB1c2VyOiB1c2VyLmlkLFxuICAgICAgICB0b2tlbjogZ2VuZXJhdGVJZCgzMiksXG4gICAgICAgIGV4cGlyZXNBdDogbmV3IERhdGUoRGF0ZS5ub3coKSArIHNlc3Npb25FeHBpcmF0aW9uICogMTAwMClcbiAgICAgIH0sXG4gICAgICByZXFcbiAgICB9KSkgYXMgU2Vzc2lvblxuXG4gICAgY29uc3QgYmV0dGVyQXV0aEhhbmRsZVJlcXVlc3QgPSBjcmVhdGVBdXRoTWlkZGxld2FyZShhc3luYyAoY3R4KTogUHJvbWlzZTxIZWFkZXJzIHwgbnVsbD4gPT4ge1xuICAgICAgY3R4LmNvbnRleHQgPSB7IC4uLmF1dGhDb250ZXh0LCB1c2VyOiB1c2VyIH1cbiAgICAgIGF3YWl0IGN0eC5zZXRTaWduZWRDb29raWUoXG4gICAgICAgIGN0eC5jb250ZXh0LmF1dGhDb29raWVzLnNlc3Npb25Ub2tlbi5uYW1lLFxuICAgICAgICBzZXNzaW9uLnRva2VuLFxuICAgICAgICBjdHguY29udGV4dC5zZWNyZXQsXG4gICAgICAgIGN0eC5jb250ZXh0LmF1dGhDb29raWVzLnNlc3Npb25Ub2tlbi5vcHRpb25zXG4gICAgICApXG4gICAgICBjb25zdCBmaWx0ZXJlZFNlc3Npb25EYXRhID0gYXdhaXQgcHJlcGFyZVNlc3Npb25EYXRhKHtcbiAgICAgICAgc2Vzc2lvbkRhdGE6IHsgc2Vzc2lvbiwgdXNlciB9LFxuICAgICAgICB1c2Vyc0NvbGxlY3Rpb246IHVzZXJDb2xsZWN0aW9uLFxuICAgICAgICBzZXNzaW9uc0NvbGxlY3Rpb246IHNlc3Npb25Db2xsZWN0aW9uXG4gICAgICB9KVxuICAgICAgaWYgKGZpbHRlcmVkU2Vzc2lvbkRhdGEpIHtcbiAgICAgICAgYXdhaXQgc2V0U2Vzc2lvbkNvb2tpZShjdHgsIGZpbHRlcmVkU2Vzc2lvbkRhdGEpXG4gICAgICB9XG4gICAgICBpZiAoJ3Jlc3BvbnNlSGVhZGVycycgaW4gY3R4KSB7XG4gICAgICAgIHJldHVybiBjdHgucmVzcG9uc2VIZWFkZXJzIGFzIEhlYWRlcnNcbiAgICAgIH1cbiAgICAgIHJldHVybiBudWxsXG4gICAgfSlcblxuICAgIC8vIENyZWF0ZSBhIG1vZGlmaWVkIHJlcXVlc3Qgb2JqZWN0IHRoYXQgbWF0Y2hlcyB0aGUgZXhwZWN0ZWQgTWlkZGxld2FyZUlucHV0Q29udGV4dCB0eXBlXG4gICAgY29uc3QgbW9kaWZpZWRSZXEgPSB7XG4gICAgICAuLi5yZXEsXG4gICAgICBib2R5OiB1bmRlZmluZWQgLy8gRXhwbGljaXRseSBzZXQgYm9keSB0byB1bmRlZmluZWQgdG8gc2F0aXNmeSB0eXBlIGNvbnN0cmFpbnRcbiAgICB9XG5cbiAgICBjb25zdCByZXNwb25zZUhlYWRlcnMgPSBhd2FpdCBiZXR0ZXJBdXRoSGFuZGxlUmVxdWVzdChtb2RpZmllZFJlcSlcbiAgICBjb25zdCByZXNwb25zZUNvb2tpZXMgPSByZXNwb25zZUhlYWRlcnNcbiAgICAgID8uZ2V0U2V0Q29va2llKClcbiAgICAgIC5tYXAoKGNvb2tpZSkgPT4gcGFyc2VTZXRDb29raWUoY29va2llKSlcbiAgICAgIC5maWx0ZXIoQm9vbGVhbikgYXMgUmVzcG9uc2VDb29raWVbXVxuXG4gICAgaWYgKHJlc3BvbnNlQ29va2llcykge1xuICAgICAgZm9yIChjb25zdCBjb29raWVEYXRhIG9mIHJlc3BvbnNlQ29va2llcykge1xuICAgICAgICBjb25zdCB7IG5hbWUsIHZhbHVlLCAuLi5vcHRpb25zIH0gPSBjb29raWVEYXRhXG4gICAgICAgIGNvb2tpZVN0b3JlLnNldCh7XG4gICAgICAgICAgLi4ub3B0aW9ucyxcbiAgICAgICAgICBuYW1lLFxuICAgICAgICAgIHZhbHVlOiBkZWNvZGVVUklDb21wb25lbnQodmFsdWUpXG4gICAgICAgIH0pXG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgcmV0dXJuIGhvb2sgYXMgQ29sbGVjdGlvbkFmdGVyTG9naW5Ib29rXG59XG4iXSwibmFtZXMiOlsiYmFNb2RlbEtleSIsImdldE1hcHBlZENvbGxlY3Rpb24iLCJ0cmFuc2Zvcm1Db2xsZWN0aW9uc1RvQ29sbGVjdGlvbkNvbmZpZ3MiLCJnZXRJcCIsInByZXBhcmVTZXNzaW9uRGF0YSIsImdldFBheWxvYWRBdXRoIiwiZ2VuZXJhdGVJZCIsImNyZWF0ZUF1dGhNaWRkbGV3YXJlIiwic2V0U2Vzc2lvbkNvb2tpZSIsInBhcnNlU2V0Q29va2llIiwiY29va2llcyIsImdldEFmdGVyTG9naW5Ib29rIiwiaG9vayIsInJlcSIsInVzZXIiLCJjb25maWciLCJwYXlsb2FkIiwiY29sbGVjdGlvbnMiLCJjb2xsZWN0aW9uTWFwIiwidXNlckNvbGxlY3Rpb24iLCJiZXR0ZXJBdXRoTW9kZWxLZXkiLCJzZXNzaW9uQ29sbGVjdGlvbiIsInNlc3Npb24iLCJjb29raWVTdG9yZSIsImF1dGhDb250ZXh0IiwiYmV0dGVyQXV0aCIsIiRjb250ZXh0Iiwic2Vzc2lvbkV4cGlyYXRpb24iLCJvcHRpb25zIiwiZXhwaXJlc0luIiwiY3JlYXRlIiwiY29sbGVjdGlvbiIsInNsdWciLCJkYXRhIiwiaXBBZGRyZXNzIiwiaGVhZGVycyIsInVzZXJBZ2VudCIsImdldCIsImlkIiwidG9rZW4iLCJleHBpcmVzQXQiLCJEYXRlIiwibm93IiwiYmV0dGVyQXV0aEhhbmRsZVJlcXVlc3QiLCJjdHgiLCJjb250ZXh0Iiwic2V0U2lnbmVkQ29va2llIiwiYXV0aENvb2tpZXMiLCJzZXNzaW9uVG9rZW4iLCJuYW1lIiwic2VjcmV0IiwiZmlsdGVyZWRTZXNzaW9uRGF0YSIsInNlc3Npb25EYXRhIiwidXNlcnNDb2xsZWN0aW9uIiwic2Vzc2lvbnNDb2xsZWN0aW9uIiwicmVzcG9uc2VIZWFkZXJzIiwibW9kaWZpZWRSZXEiLCJib2R5IiwidW5kZWZpbmVkIiwicmVzcG9uc2VDb29raWVzIiwiZ2V0U2V0Q29va2llIiwibWFwIiwiY29va2llIiwiZmlsdGVyIiwiQm9vbGVhbiIsImNvb2tpZURhdGEiLCJ2YWx1ZSIsInNldCIsImRlY29kZVVSSUNvbXBvbmVudCJdLCJtYXBwaW5ncyI6IkFBQUEsU0FBU0EsVUFBVSxRQUFRLHdCQUFnQztBQUMzRCxTQUFTQyxtQkFBbUIsRUFBRUMsdUNBQXVDLFFBQVEscUNBQTZDO0FBQzFILFNBQVNDLEtBQUssUUFBUSw2QkFBcUM7QUFDM0QsU0FBU0Msa0JBQWtCLFFBQVEsMkNBQW1EO0FBQ3RGLFNBQVNDLGNBQWMsUUFBUSw0QkFBMkM7QUFFMUUsU0FBU0MsVUFBVSxRQUFpQixjQUFhO0FBQ2pELFNBQVNDLG9CQUFvQixRQUFRLGtCQUFpQjtBQUN0RCxTQUFTQyxnQkFBZ0IsUUFBUSxzQkFBcUI7QUFDdEQsU0FBU0MsY0FBYyxRQUE2QiwyQ0FBMEM7QUFDOUYsU0FBU0MsT0FBTyxRQUFRLGVBQWM7QUFFdEM7OztDQUdDLEdBQ0QsT0FBTyxTQUFTQztJQUNkLE1BQU1DLE9BQWlDLE9BQU8sRUFBRUMsR0FBRyxFQUFFQyxJQUFJLEVBQUU7UUFDekQsTUFBTUMsU0FBU0YsSUFBSUcsT0FBTyxDQUFDRCxNQUFNO1FBQ2pDLE1BQU1DLFVBQVUsTUFBTVgsZUFBZVU7UUFDckMsTUFBTUUsY0FBY0osSUFBSUcsT0FBTyxDQUFDQyxXQUFXO1FBQzNDLE1BQU1D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
|
|
@@ -1,7 +1,3 @@
|
|
|
1
1
|
import type { CollectionAfterLogoutHook } from 'payload';
|
|
2
|
-
|
|
3
|
-
sessionsCollectionSlug: string;
|
|
4
|
-
};
|
|
5
|
-
export declare const getAfterLogoutHook: (options: AfterLogoutOptions) => CollectionAfterLogoutHook;
|
|
6
|
-
export {};
|
|
2
|
+
export declare function getAfterLogoutHook(): CollectionAfterLogoutHook;
|
|
7
3
|
//# sourceMappingURL=after-logout.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"after-logout.d.ts","sourceRoot":"","sources":["../../../../../../../src/better-auth/plugin/lib/build-collections/users/hooks/after-logout.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"after-logout.d.ts","sourceRoot":"","sources":["../../../../../../../src/better-auth/plugin/lib/build-collections/users/hooks/after-logout.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,yBAAyB,EAAE,MAAM,SAAS,CAAA;AAExD,wBAAgB,kBAAkB,IA2EjB,yBAAyB,CACzC"}
|
|
@@ -1,21 +1,29 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { baModelKey } from "../../../../constants";
|
|
2
|
+
import { getMappedCollection, transformCollectionsToCollectionConfigs } from "../../../../helpers/get-collection";
|
|
2
3
|
import { getPayloadAuth } from "../../../get-payload-auth";
|
|
3
|
-
|
|
4
|
+
import { cookies } from "next/headers";
|
|
5
|
+
export function getAfterLogoutHook() {
|
|
4
6
|
const hook = async ({ req })=>{
|
|
5
7
|
const cookieStore = await cookies();
|
|
6
8
|
const payload = await getPayloadAuth(req.payload.config);
|
|
9
|
+
const collections = req.payload.collections;
|
|
10
|
+
const collectionMap = transformCollectionsToCollectionConfigs(collections);
|
|
7
11
|
const securePrefix = '__Secure-';
|
|
8
12
|
const authContext = await payload.betterAuth.$context;
|
|
9
13
|
const sessionTokenName = authContext.authCookies.sessionToken.name;
|
|
10
14
|
const sessionDataName = authContext.authCookies.sessionData.name;
|
|
11
15
|
const dontRememberTokenName = authContext.authCookies.dontRememberToken.name;
|
|
16
|
+
const sessionsSlug = getMappedCollection({
|
|
17
|
+
collectionMap,
|
|
18
|
+
betterAuthModelKey: baModelKey.session
|
|
19
|
+
}).slug;
|
|
12
20
|
try {
|
|
13
21
|
const sessionCookieValue = cookieStore.get(sessionTokenName)?.value;
|
|
14
22
|
if (sessionCookieValue) {
|
|
15
23
|
const payload = req.payload;
|
|
16
24
|
const [token] = sessionCookieValue.split('.');
|
|
17
25
|
const { docs: sessions } = await payload.find({
|
|
18
|
-
collection:
|
|
26
|
+
collection: sessionsSlug,
|
|
19
27
|
where: {
|
|
20
28
|
token: {
|
|
21
29
|
equals: token
|
|
@@ -28,7 +36,7 @@ export const getAfterLogoutHook = (options)=>{
|
|
|
28
36
|
if (session) {
|
|
29
37
|
try {
|
|
30
38
|
await payload.delete({
|
|
31
|
-
collection:
|
|
39
|
+
collection: sessionsSlug,
|
|
32
40
|
where: {
|
|
33
41
|
id: {
|
|
34
42
|
equals: session.id
|
|
@@ -55,8 +63,8 @@ export const getAfterLogoutHook = (options)=>{
|
|
|
55
63
|
} catch (error) {
|
|
56
64
|
console.error('Error afterLogoutHook:', error);
|
|
57
65
|
}
|
|
58
|
-
//
|
|
59
|
-
//
|
|
66
|
+
//This is a hacky wat to delete the admin session cookie (BETTER AUTH HARDCODED THIS)
|
|
67
|
+
// see https://github.com/better-auth/better-auth/blob/25e82669eed83ba6da063c167e8ae5b7da84ef9f/packages/better-auth/src/plugins/admin/admin.ts#L917C7-L917C23
|
|
60
68
|
cookieStore.delete('admin_session');
|
|
61
69
|
const cleanSessionTokenName = sessionTokenName.replace(securePrefix, '');
|
|
62
70
|
const cleanSessionDataName = sessionDataName.replace(securePrefix, '');
|
|
@@ -69,6 +77,6 @@ export const getAfterLogoutHook = (options)=>{
|
|
|
69
77
|
cookieStore.delete(`__Secure-${cleanDontRememberTokenName}`);
|
|
70
78
|
};
|
|
71
79
|
return hook;
|
|
72
|
-
}
|
|
80
|
+
}
|
|
73
81
|
|
|
74
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
82
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3NyYy9iZXR0ZXItYXV0aC9wbHVnaW4vbGliL2J1aWxkLWNvbGxlY3Rpb25zL3VzZXJzL2hvb2tzL2FmdGVyLWxvZ291dC50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBiYU1vZGVsS2V5IH0gZnJvbSAnQC9iZXR0ZXItYXV0aC9wbHVnaW4vY29uc3RhbnRzJ1xuaW1wb3J0IHsgZ2V0TWFwcGVkQ29sbGVjdGlvbiwgdHJhbnNmb3JtQ29sbGVjdGlvbnNUb0NvbGxlY3Rpb25Db25maWdzIH0gZnJvbSAnQC9iZXR0ZXItYXV0aC9wbHVnaW4vaGVscGVycy9nZXQtY29sbGVjdGlvbidcbmltcG9ydCB7IGdldFBheWxvYWRBdXRoIH0gZnJvbSAnQC9iZXR0ZXItYXV0aC9wbHVnaW4vbGliL2dldC1wYXlsb2FkLWF1dGgnXG5pbXBvcnQgeyBjb29raWVzIH0gZnJvbSAnbmV4dC9oZWFkZXJzJ1xuaW1wb3J0IHR5cGUgeyBDb2xsZWN0aW9uQWZ0ZXJMb2dvdXRIb29rIH0gZnJvbSAncGF5bG9hZCdcblxuZXhwb3J0IGZ1bmN0aW9uIGdldEFmdGVyTG9nb3V0SG9vaygpIHtcbiAgY29uc3QgaG9vazogQ29sbGVjdGlvbkFmdGVyTG9nb3V0SG9vayA9IGFzeW5jICh7IHJlcSB9KSA9PiB7XG4gICAgY29uc3QgY29va2llU3RvcmUgPSBhd2FpdCBjb29raWVzKClcbiAgICBjb25zdCBwYXlsb2FkID0gYXdhaXQgZ2V0UGF5bG9hZEF1dGgocmVxLnBheWxvYWQuY29uZmlnKVxuICAgIGNvbnN0IGNvbGxlY3Rpb25zID0gcmVxLnBheWxvYWQuY29sbGVjdGlvbnNcbiAgICBjb25zdCBjb2xsZWN0aW9uTWFwID0gdHJhbnNmb3JtQ29sbGVjdGlvbnNUb0NvbGxlY3Rpb25Db25maWdzKGNvbGxlY3Rpb25zKVxuICAgIGNvbnN0IHNlY3VyZVByZWZpeCA9ICdfX1NlY3VyZS0nXG4gICAgY29uc3QgYXV0aENvbnRleHQgPSBhd2FpdCBwYXlsb2FkLmJldHRlckF1dGguJGNvbnRleHRcbiAgICBjb25zdCBzZXNzaW9uVG9rZW5OYW1lID0gYXV0aENvbnRleHQuYXV0aENvb2tpZXMuc2Vzc2lvblRva2VuLm5hbWVcbiAgICBjb25zdCBzZXNzaW9uRGF0YU5hbWUgPSBhdXRoQ29udGV4dC5hdXRoQ29va2llcy5zZXNzaW9uRGF0YS5uYW1lXG4gICAgY29uc3QgZG9udFJlbWVtYmVyVG9rZW5OYW1lID0gYXV0aENvbnRleHQuYXV0aENvb2tpZXMuZG9udFJlbWVtYmVyVG9rZW4ubmFtZVxuICAgIGNvbnN0IHNlc3Npb25zU2x1ZyA9IGdldE1hcHBlZENvbGxlY3Rpb24oeyBjb2xsZWN0aW9uTWFwLCBiZXR0ZXJBdXRoTW9kZWxLZXk6IGJhTW9kZWxLZXkuc2Vzc2lvbiB9KS5zbHVnXG5cbiAgICB0cnkge1xuICAgICAgY29uc3Qgc2Vzc2lvbkNvb2tpZVZhbHVlID0gY29va2llU3RvcmUuZ2V0KHNlc3Npb25Ub2tlbk5hbWUpPy52YWx1ZVxuICAgICAgaWYgKHNlc3Npb25Db29raWVWYWx1ZSkge1xuICAgICAgICBjb25zdCBwYXlsb2FkID0gcmVxLnBheWxvYWRcbiAgICAgICAgY29uc3QgW3Rva2VuXSA9IHNlc3Npb25Db29raWVWYWx1ZS5zcGxpdCgnLicpXG4gICAgICAgIGNvbnN0IHsgZG9jczogc2Vzc2lvbnMgfSA9IGF3YWl0IHBheWxvYWQuZmluZCh7XG4gICAgICAgICAgY29sbGVjdGlvbjogc2Vzc2lvbnNTbHVnLFxuICAgICAgICAgIHdoZXJlOiB7XG4gICAgICAgICAgICB0b2tlbjogeyBlcXVhbHM6IHRva2VuIH1cbiAgICAgICAgICB9LFxuICAgICAgICAgIGxpbWl0OiAxLFxuICAgICAgICAgIHJlcVxuICAgICAgICB9KVxuICAgICAgICBjb25zdCBzZXNzaW9uID0gc2Vzc2lvbnMuYXQoMClcbiAgICAgICAgaWYgKHNlc3Npb24pIHtcbiAgICAgICAgICB0cnkge1xuICAgICAgICAgICAgYXdhaXQgcGF5bG9hZC5kZWxldGUoe1xuICAgICAgICAgICAgICBjb2xsZWN0aW9uOiBzZXNzaW9uc1NsdWcsXG4gICAgICAgICAgICAgIHdoZXJlOiB7XG4gICAgICAgICAgICAgICAgaWQ6IHsgZXF1YWxzOiBzZXNzaW9uLmlkIH1cbiAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgcmVxXG4gICAgICAgICAgICB9KVxuICAgICAgICAgIH0gY2F0Y2ggKGVycm9yKSB7XG4gICAgICAgICAgICBjb25zb2xlLmVycm9yKCdFcnJvciBkZWxldGluZyBzZXNzaW9uOicsIGVycm9yKVxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuXG4gICAgICBjb25zdCBiYXNlTXVsdGlTZXNzaW9uTmFtZSA9IHNlc3Npb25Ub2tlbk5hbWUgKyAnX211bHRpJ1xuICAgICAgY29uc3QgbXVsdGlTZXNzaW9uQ29va2llcyA9IGNvb2tpZVN0b3JlLmdldEFsbCgpXG4gICAgICBtdWx0aVNlc3Npb25Db29raWVzLmZvckVhY2goKGNvb2tpZSkgPT4ge1xuICAgICAgICBpZiAoY29va2llLm5hbWUuc3RhcnRzV2l0aChiYXNlTXVsdGlTZXNzaW9uTmFtZSkpIHtcbiAgICAgICAgICBjb29raWVTdG9yZS5kZWxldGUoY29va2llLm5hbWUpXG4gICAgICAgIH1cbiAgICAgICAgY29uc3Qgc2VjdXJlTXVsdGlTZXNzaW9uTmFtZSA9IHNlY3VyZVByZWZpeCArIGJhc2VNdWx0aVNlc3Npb25OYW1lXG4gICAgICAgIGlmIChjb29raWUubmFtZS5zdGFydHNXaXRoKHNlY3VyZU11bHRpU2Vzc2lvbk5hbWUpKSB7XG4gICAgICAgICAgY29va2llU3RvcmUuZGVsZXRlKGNvb2tpZS5uYW1lKVxuICAgICAgICB9XG4gICAgICB9KVxuICAgIH0gY2F0Y2ggKGVycm9yKSB7XG4gICAgICBjb25zb2xlLmVycm9yKCdFcnJvciBhZnRlckxvZ291dEhvb2s6JywgZXJyb3IpXG4gICAgfVxuICAgIFxuICAgIC8vVGhpcyBpcyBhIGhhY2t5IHdhdCB0byBkZWxldGUgdGhlIGFkbWluIHNlc3Npb24gY29va2llIChCRVRURVIgQVVUSCBIQVJEQ09ERUQgVEhJUylcbiAgICAvLyBzZWUgaHR0cHM6Ly9naXRodWIuY29tL2JldHRlci1hdXRoL2JldHRlci1hdXRoL2Jsb2IvMjVlODI2NjllZWQ4M2JhNmRhMDYzYzE2N2U4YWU1YjdkYTg0ZWY5Zi9wYWNrYWdlcy9iZXR0ZXItYXV0aC9zcmMvcGx1Z2lucy9hZG1pbi9hZG1pbi50cyNMOTE3QzctTDkxN0MyM1xuICAgIGNvb2tpZVN0b3JlLmRlbGV0ZSgnYWRtaW5fc2Vzc2lvbicpXG5cbiAgICBjb25zdCBjbGVhblNlc3Npb25Ub2tlbk5hbWUgPSBzZXNzaW9uVG9rZW5OYW1lLnJlcGxhY2Uoc2VjdXJlUHJlZml4LCAnJylcbiAgICBjb25zdCBjbGVhblNlc3Npb25EYXRhTmFtZSA9IHNlc3Npb25EYXRhTmFtZS5yZXBsYWNlKHNlY3VyZVByZWZpeCwgJycpXG4gICAgY29uc3QgY2xlYW5Eb250UmVtZW1iZXJUb2tlbk5hbWUgPSBkb250UmVtZW1iZXJUb2tlbk5hbWUucmVwbGFjZShzZWN1cmVQcmVmaXgsICcnKVxuXG4gICAgY29va2llU3RvcmUuZGVsZXRlKGNsZWFuU2Vzc2lvblRva2VuTmFtZSlcbiAgICBjb29raWVTdG9yZS5kZWxldGUoYF9fU2VjdXJlLSR7Y2xlYW5TZXNzaW9uVG9rZW5OYW1lfWApXG5cbiAgICBjb29raWVTdG9yZS5kZWxldGUoY2xlYW5TZXNzaW9uRGF0YU5hbWUpXG4gICAgY29va2llU3RvcmUuZGVsZXRlKGBfX1NlY3VyZS0ke2NsZWFuU2Vzc2lvbkRhdGFOYW1lfWApXG5cbiAgICBjb29raWVTdG9yZS5kZWxldGUoY2xlYW5Eb250UmVtZW1iZXJUb2tlbk5hbWUpXG4gICAgY29va2llU3RvcmUuZGVsZXRlKGBfX1NlY3VyZS0ke2NsZWFuRG9udFJlbWVtYmVyVG9rZW5OYW1lfWApXG4gIH1cblxuICByZXR1cm4gaG9vayBhcyBDb2xsZWN0aW9uQWZ0ZXJMb2dvdXRIb29rXG59XG4iXSwibmFtZXMiOlsiYmFNb2RlbEtleSIsImdldE1hcHBlZENvbGxlY3Rpb24iLCJ0cmFuc2Zvcm1Db2xsZWN0aW9uc1RvQ29sbGVjdGlvbkNvbmZpZ3MiLCJnZXRQYXlsb2FkQXV0aCIsImNvb2tpZXMiLCJnZXRBZnRlckxvZ291dEhvb2siLCJob29rIiwicmVxIiwiY29va2llU3RvcmUiLCJwYXlsb2FkIiwiY29uZmlnIiwiY29sbGVjdGlvbnMiLCJjb2xsZWN0aW9uTWFwIiwic2VjdXJlUHJlZml4IiwiYXV0aENvbnRleHQiLCJiZXR0ZXJBdXRoIiwiJGNvbnRleHQiLCJzZXNzaW9uVG9rZW5OYW1lIiwiYXV0aENvb2tpZXMiLCJzZXNzaW9uVG9rZW4iLCJuYW1lIiwic2Vzc2lvbkRhdGFOYW1lIiwic2Vzc2lvbkRhdGEiLCJkb250UmVtZW1iZXJUb2tlbk5hbWUiLCJkb250UmVtZW1iZXJUb2tlbiIsInNlc3Npb25zU2x1ZyIsImJldHRlckF1dGhNb2RlbEtleSIsInNlc3Npb24iLCJzbHVnIiwic2Vzc2lvbkNvb2tpZVZhbHVlIiwiZ2V0IiwidmFsdWUiLCJ0b2tlbiIsInNwbGl0IiwiZG9jcyIsInNlc3Npb25zIiwiZmluZCIsImNvbGxlY3Rpb24iLCJ3aGVyZSIsImVxdWFscyIsImxpbWl0IiwiYXQiLCJkZWxldGUiLCJpZCIsImVycm9yIiwiY29uc29sZSIsImJhc2VNdWx0aVNlc3Npb25OYW1lIiwibXVsdGlTZXNzaW9uQ29va2llcyIsImdldEFsbCIsImZvckVhY2giLCJjb29raWUiLCJzdGFydHNXaXRoIiwic2VjdXJlTXVsdGlTZXNzaW9uTmFtZSIsImNsZWFuU2Vzc2lvblRva2VuTmFtZSIsInJlcGxhY2UiLCJjbGVhblNlc3Npb25EYXRhTmFtZSIsImNsZWFuRG9udFJlbWVtYmVyVG9rZW5OYW1lIl0sIm1hcHBpbmdzIjoiQUFBQSxTQUFTQSxVQUFVLFFBQVEsd0JBQWdDO0FBQzNELFNBQVNDLG1CQUFtQixFQUFFQyx1Q0FBdUMsUUFBUSxxQ0FBNkM7QUFDMUgsU0FB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
|
|
@@ -1,7 +1,3 @@
|
|
|
1
|
-
import type
|
|
2
|
-
export declare
|
|
3
|
-
accountsSlug: string;
|
|
4
|
-
sessionsSlug: string;
|
|
5
|
-
verificationsSlug: string;
|
|
6
|
-
}) => CollectionBeforeDeleteHook;
|
|
1
|
+
import { type CollectionBeforeDeleteHook } from 'payload';
|
|
2
|
+
export declare function getBeforeDeleteHook(): CollectionBeforeDeleteHook;
|
|
7
3
|
//# sourceMappingURL=before-delete.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"before-delete.d.ts","sourceRoot":"","sources":["../../../../../../../src/better-auth/plugin/lib/build-collections/users/hooks/before-delete.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"before-delete.d.ts","sourceRoot":"","sources":["../../../../../../../src/better-auth/plugin/lib/build-collections/users/hooks/before-delete.ts"],"names":[],"mappings":"AAEA,OAAO,EAAuD,KAAK,0BAA0B,EAAE,MAAM,SAAS,CAAA;AAE9G,wBAAgB,mBAAmB,IAAI,0BAA0B,CAwDhE"}
|