payload-auth 1.0.1 → 1.1.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/authjs/index.d.ts +1 -0
- package/dist/authjs/index.d.ts.map +1 -0
- package/dist/authjs/index.js +1 -1
- package/dist/better-auth/adapter/generate-schema/generate-schema-builder.d.ts +1 -0
- package/dist/better-auth/adapter/generate-schema/generate-schema-builder.d.ts.map +1 -0
- package/dist/better-auth/adapter/generate-schema/generate-schema-builder.js +1 -1
- package/dist/better-auth/adapter/generate-schema/get-payload-schema.d.ts +1 -0
- package/dist/better-auth/adapter/generate-schema/get-payload-schema.d.ts.map +1 -0
- package/dist/better-auth/adapter/generate-schema/get-payload-schema.js +1 -1
- package/dist/better-auth/adapter/generate-schema/index.d.ts +1 -0
- package/dist/better-auth/adapter/generate-schema/index.d.ts.map +1 -0
- package/dist/better-auth/adapter/generate-schema/index.js +3 -3
- package/dist/better-auth/adapter/generate-schema/utils.d.ts +1 -0
- package/dist/better-auth/adapter/generate-schema/utils.d.ts.map +1 -0
- package/dist/better-auth/adapter/generate-schema/utils.js +1 -1
- package/dist/better-auth/adapter/index.d.ts +3 -2
- package/dist/better-auth/adapter/index.d.ts.map +1 -0
- package/dist/better-auth/adapter/index.js +115 -69
- package/dist/better-auth/adapter/transform/index.d.ts +19 -6
- package/dist/better-auth/adapter/transform/index.d.ts.map +1 -0
- package/dist/better-auth/adapter/transform/index.js +387 -96
- package/dist/better-auth/adapter/types.d.ts +3 -1
- package/dist/better-auth/adapter/types.d.ts.map +1 -0
- package/dist/better-auth/adapter/types.js +1 -1
- package/dist/better-auth/index.d.ts +1 -0
- package/dist/better-auth/index.d.ts.map +1 -0
- package/dist/better-auth/index.js +1 -1
- package/dist/better-auth/plugin/helpers/check-passkey-plugin.d.ts +3 -0
- package/dist/better-auth/plugin/helpers/check-passkey-plugin.d.ts.map +1 -0
- package/dist/better-auth/plugin/helpers/check-passkey-plugin.js +5 -0
- package/dist/better-auth/plugin/helpers/check-username-plugin.d.ts +3 -0
- package/dist/better-auth/plugin/helpers/check-username-plugin.d.ts.map +1 -0
- package/dist/better-auth/plugin/helpers/check-username-plugin.js +5 -0
- package/dist/better-auth/plugin/helpers/generate-verify-email-url.d.ts +1 -0
- package/dist/better-auth/plugin/helpers/generate-verify-email-url.d.ts.map +1 -0
- package/dist/better-auth/plugin/helpers/generate-verify-email-url.js +8 -8
- package/dist/better-auth/plugin/helpers/get-admin-access.d.ts +8 -0
- package/dist/better-auth/plugin/helpers/get-admin-access.d.ts.map +1 -0
- package/dist/better-auth/plugin/helpers/get-admin-access.js +22 -0
- package/dist/better-auth/plugin/helpers/get-admin-routes.d.ts +14 -0
- package/dist/better-auth/plugin/helpers/get-admin-routes.d.ts.map +1 -0
- package/dist/better-auth/plugin/helpers/get-admin-routes.js +6 -0
- package/dist/better-auth/plugin/helpers/get-all-roles.d.ts +6 -0
- package/dist/better-auth/plugin/helpers/get-all-roles.d.ts.map +1 -0
- package/dist/better-auth/plugin/helpers/get-all-roles.js +20 -0
- package/dist/better-auth/plugin/helpers/get-ip.d.ts +2 -1
- package/dist/better-auth/plugin/helpers/get-ip.d.ts.map +1 -0
- package/dist/better-auth/plugin/helpers/get-ip.js +14 -14
- package/dist/better-auth/plugin/helpers/get-requst-collection.d.ts +3 -0
- package/dist/better-auth/plugin/helpers/get-requst-collection.d.ts.map +1 -0
- package/dist/better-auth/plugin/helpers/get-requst-collection.js +14 -0
- package/dist/better-auth/plugin/helpers/index.d.ts +2 -1
- package/dist/better-auth/plugin/helpers/index.d.ts.map +1 -0
- package/dist/better-auth/plugin/helpers/index.js +2 -2
- package/dist/better-auth/plugin/{lib → helpers}/prepare-session-data.d.ts +3 -2
- package/dist/better-auth/plugin/helpers/prepare-session-data.d.ts.map +1 -0
- package/dist/better-auth/plugin/helpers/prepare-session-data.js +42 -0
- package/dist/better-auth/plugin/helpers/serialize-cookie.d.ts +3 -2
- package/dist/better-auth/plugin/helpers/serialize-cookie.d.ts.map +1 -0
- package/dist/better-auth/plugin/helpers/serialize-cookie.js +34 -34
- package/dist/better-auth/plugin/index.d.ts +8 -7
- package/dist/better-auth/plugin/index.d.ts.map +1 -0
- package/dist/better-auth/plugin/index.js +145 -37
- package/dist/better-auth/plugin/{collections → lib/build-collections}/accounts/hooks/sync-password-to-user.d.ts +2 -1
- package/dist/better-auth/plugin/lib/build-collections/accounts/hooks/sync-password-to-user.d.ts.map +1 -0
- package/dist/better-auth/plugin/lib/build-collections/accounts/hooks/sync-password-to-user.js +47 -0
- package/dist/better-auth/plugin/lib/build-collections/accounts/index.d.ts +7 -0
- package/dist/better-auth/plugin/lib/build-collections/accounts/index.d.ts.map +1 -0
- package/dist/better-auth/plugin/lib/build-collections/accounts/index.js +159 -0
- package/dist/better-auth/plugin/lib/build-collections/admin-invitations/hooks/get-url-after-read.d.ts +6 -0
- package/dist/better-auth/plugin/lib/build-collections/admin-invitations/hooks/get-url-after-read.d.ts.map +1 -0
- package/dist/better-auth/plugin/lib/build-collections/admin-invitations/hooks/get-url-after-read.js +11 -0
- package/dist/better-auth/plugin/lib/build-collections/admin-invitations/hooks/get-url-before-change.d.ts +3 -0
- package/dist/better-auth/plugin/lib/build-collections/admin-invitations/hooks/get-url-before-change.d.ts.map +1 -0
- package/dist/better-auth/plugin/lib/build-collections/admin-invitations/hooks/get-url-before-change.js +8 -0
- package/dist/better-auth/plugin/lib/build-collections/admin-invitations/index.d.ts +7 -0
- package/dist/better-auth/plugin/lib/build-collections/admin-invitations/index.d.ts.map +1 -0
- package/dist/better-auth/plugin/lib/build-collections/admin-invitations/index.js +107 -0
- package/dist/better-auth/plugin/lib/build-collections/api-keys.d.ts +6 -0
- package/dist/better-auth/plugin/lib/build-collections/api-keys.d.ts.map +1 -0
- package/dist/better-auth/plugin/lib/build-collections/api-keys.js +196 -0
- package/dist/better-auth/plugin/lib/build-collections/index.d.ts +12 -0
- package/dist/better-auth/plugin/lib/build-collections/index.d.ts.map +1 -0
- package/dist/better-auth/plugin/lib/build-collections/index.js +96 -0
- package/dist/better-auth/plugin/lib/build-collections/invitations.d.ts +6 -0
- package/dist/better-auth/plugin/lib/build-collections/invitations.d.ts.map +1 -0
- package/dist/better-auth/plugin/lib/build-collections/invitations.js +91 -0
- package/dist/better-auth/plugin/lib/build-collections/jwks.d.ts +6 -0
- package/dist/better-auth/plugin/lib/build-collections/jwks.d.ts.map +1 -0
- package/dist/better-auth/plugin/lib/build-collections/jwks.js +43 -0
- package/dist/better-auth/plugin/lib/build-collections/members.d.ts +6 -0
- package/dist/better-auth/plugin/lib/build-collections/members.d.ts.map +1 -0
- package/dist/better-auth/plugin/lib/build-collections/members.js +71 -0
- package/dist/better-auth/plugin/lib/build-collections/oauth-access-tokens.d.ts +6 -0
- package/dist/better-auth/plugin/lib/build-collections/oauth-access-tokens.d.ts.map +1 -0
- package/dist/better-auth/plugin/lib/build-collections/oauth-access-tokens.js +98 -0
- package/dist/better-auth/plugin/lib/build-collections/oauth-applications.d.ts +6 -0
- package/dist/better-auth/plugin/lib/build-collections/oauth-applications.d.ts.map +1 -0
- package/dist/better-auth/plugin/lib/build-collections/oauth-applications.js +113 -0
- package/dist/better-auth/plugin/lib/build-collections/oauth-consents.d.ts +6 -0
- package/dist/better-auth/plugin/lib/build-collections/oauth-consents.d.ts.map +1 -0
- package/dist/better-auth/plugin/lib/build-collections/oauth-consents.js +67 -0
- package/dist/better-auth/plugin/lib/build-collections/organizations.d.ts +6 -0
- package/dist/better-auth/plugin/lib/build-collections/organizations.d.ts.map +1 -0
- package/dist/better-auth/plugin/lib/build-collections/organizations.js +59 -0
- package/dist/better-auth/plugin/lib/build-collections/passkeys.d.ts +6 -0
- package/dist/better-auth/plugin/lib/build-collections/passkeys.d.ts.map +1 -0
- package/dist/better-auth/plugin/lib/build-collections/passkeys.js +108 -0
- package/dist/better-auth/plugin/lib/build-collections/sessions.d.ts +8 -0
- package/dist/better-auth/plugin/lib/build-collections/sessions.d.ts.map +1 -0
- package/dist/better-auth/plugin/lib/build-collections/sessions.js +123 -0
- package/dist/better-auth/plugin/lib/build-collections/sso-providers.d.ts +6 -0
- package/dist/better-auth/plugin/lib/build-collections/sso-providers.d.ts.map +1 -0
- package/dist/better-auth/plugin/lib/build-collections/sso-providers.js +83 -0
- package/dist/better-auth/plugin/lib/build-collections/teams.d.ts +6 -0
- package/dist/better-auth/plugin/lib/build-collections/teams.d.ts.map +1 -0
- package/dist/better-auth/plugin/lib/build-collections/teams.js +45 -0
- package/dist/better-auth/plugin/lib/build-collections/two-factors.d.ts +6 -0
- package/dist/better-auth/plugin/lib/build-collections/two-factors.d.ts.map +1 -0
- package/dist/better-auth/plugin/lib/build-collections/two-factors.js +56 -0
- package/dist/better-auth/plugin/lib/build-collections/users/better-auth-strategy.d.ts +8 -0
- package/dist/better-auth/plugin/lib/build-collections/users/better-auth-strategy.d.ts.map +1 -0
- package/dist/better-auth/plugin/lib/build-collections/users/better-auth-strategy.js +52 -0
- package/dist/better-auth/plugin/lib/build-collections/users/endpoints/forgot-password.d.ts +3 -0
- package/dist/better-auth/plugin/lib/build-collections/users/endpoints/forgot-password.d.ts.map +1 -0
- package/dist/better-auth/plugin/lib/build-collections/users/endpoints/forgot-password.js +96 -0
- package/dist/better-auth/plugin/lib/build-collections/users/endpoints/generate-invite-url.d.ts +13 -0
- package/dist/better-auth/plugin/lib/build-collections/users/endpoints/generate-invite-url.d.ts.map +1 -0
- package/dist/better-auth/plugin/lib/build-collections/users/endpoints/generate-invite-url.js +67 -0
- package/dist/better-auth/plugin/lib/build-collections/users/endpoints/login.d.ts +4 -0
- package/dist/better-auth/plugin/lib/build-collections/users/endpoints/login.d.ts.map +1 -0
- package/dist/better-auth/plugin/lib/build-collections/users/endpoints/login.js +115 -0
- package/dist/better-auth/plugin/lib/build-collections/users/endpoints/refresh-token.d.ts +3 -0
- package/dist/better-auth/plugin/lib/build-collections/users/endpoints/refresh-token.d.ts.map +1 -0
- package/dist/better-auth/plugin/lib/build-collections/users/endpoints/refresh-token.js +110 -0
- package/dist/better-auth/plugin/lib/build-collections/users/endpoints/reset-password.d.ts +3 -0
- package/dist/better-auth/plugin/lib/build-collections/users/endpoints/reset-password.d.ts.map +1 -0
- package/dist/better-auth/plugin/lib/build-collections/users/endpoints/reset-password.js +62 -0
- package/dist/better-auth/plugin/lib/build-collections/users/endpoints/send-invite-url.d.ts +3 -0
- package/dist/better-auth/plugin/lib/build-collections/users/endpoints/send-invite-url.d.ts.map +1 -0
- package/dist/better-auth/plugin/lib/build-collections/users/endpoints/send-invite-url.js +42 -0
- package/dist/better-auth/plugin/lib/build-collections/users/endpoints/set-admin-role.d.ts +4 -0
- package/dist/better-auth/plugin/lib/build-collections/users/endpoints/set-admin-role.d.ts.map +1 -0
- package/dist/better-auth/plugin/lib/build-collections/users/endpoints/set-admin-role.js +79 -0
- package/dist/better-auth/plugin/lib/build-collections/users/endpoints/signup.d.ts +4 -0
- package/dist/better-auth/plugin/lib/build-collections/users/endpoints/signup.d.ts.map +1 -0
- package/dist/better-auth/plugin/lib/build-collections/users/endpoints/signup.js +153 -0
- package/dist/better-auth/plugin/{collections → lib/build-collections}/users/hooks/after-login.d.ts +2 -1
- package/dist/better-auth/plugin/lib/build-collections/users/hooks/after-login.d.ts.map +1 -0
- package/dist/better-auth/plugin/lib/build-collections/users/hooks/after-login.js +75 -0
- package/dist/better-auth/plugin/{collections → lib/build-collections}/users/hooks/after-logout.d.ts +2 -1
- package/dist/better-auth/plugin/lib/build-collections/users/hooks/after-logout.d.ts.map +1 -0
- package/dist/better-auth/plugin/lib/build-collections/users/hooks/after-logout.js +74 -0
- package/dist/better-auth/plugin/lib/build-collections/users/hooks/before-delete.d.ts +7 -0
- package/dist/better-auth/plugin/lib/build-collections/users/hooks/before-delete.d.ts.map +1 -0
- package/dist/better-auth/plugin/lib/build-collections/users/hooks/before-delete.js +45 -0
- package/dist/better-auth/plugin/{collections → 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 -0
- package/dist/better-auth/plugin/lib/build-collections/users/hooks/before-login.js +18 -0
- package/dist/better-auth/plugin/lib/build-collections/users/hooks/on-verified-change.d.ts +3 -0
- package/dist/better-auth/plugin/lib/build-collections/users/hooks/on-verified-change.d.ts.map +1 -0
- package/dist/better-auth/plugin/lib/build-collections/users/hooks/on-verified-change.js +14 -0
- package/dist/better-auth/plugin/{collections → lib/build-collections}/users/hooks/sync-account.d.ts +2 -1
- package/dist/better-auth/plugin/lib/build-collections/users/hooks/sync-account.d.ts.map +1 -0
- package/dist/better-auth/plugin/lib/build-collections/users/hooks/sync-account.js +82 -0
- package/dist/better-auth/plugin/lib/build-collections/users/index.d.ts +8 -0
- package/dist/better-auth/plugin/lib/build-collections/users/index.d.ts.map +1 -0
- package/dist/better-auth/plugin/lib/build-collections/users/index.js +345 -0
- package/dist/better-auth/plugin/lib/build-collections/utils/get-timestamp-fields.d.ts +8 -0
- package/dist/better-auth/plugin/lib/build-collections/utils/get-timestamp-fields.d.ts.map +1 -0
- package/dist/better-auth/plugin/lib/build-collections/utils/get-timestamp-fields.js +31 -0
- package/dist/better-auth/plugin/lib/{payload-access.d.ts → build-collections/utils/payload-access.d.ts} +2 -1
- package/dist/better-auth/plugin/lib/build-collections/utils/payload-access.d.ts.map +1 -0
- package/dist/better-auth/plugin/lib/build-collections/utils/payload-access.js +64 -0
- package/dist/better-auth/plugin/lib/build-collections/verifications.d.ts +7 -0
- package/dist/better-auth/plugin/lib/build-collections/verifications.d.ts.map +1 -0
- package/dist/better-auth/plugin/lib/build-collections/verifications.js +63 -0
- package/dist/better-auth/plugin/lib/{config.d.ts → constants.d.ts} +14 -0
- package/dist/better-auth/plugin/lib/constants.d.ts.map +1 -0
- package/dist/better-auth/plugin/lib/constants.js +56 -0
- package/dist/better-auth/plugin/lib/get-payload-auth.d.ts +3 -2
- package/dist/better-auth/plugin/lib/get-payload-auth.d.ts.map +1 -0
- package/dist/better-auth/plugin/lib/get-payload-auth.js +2 -2
- package/dist/better-auth/plugin/lib/get-required-collection-slugs.d.ts +5 -4
- package/dist/better-auth/plugin/lib/get-required-collection-slugs.d.ts.map +1 -0
- package/dist/better-auth/plugin/lib/get-required-collection-slugs.js +26 -43
- package/dist/better-auth/plugin/lib/init-better-auth.d.ts +5 -3
- package/dist/better-auth/plugin/lib/init-better-auth.d.ts.map +1 -0
- package/dist/better-auth/plugin/lib/init-better-auth.js +6 -6
- package/dist/better-auth/plugin/lib/sanitize-better-auth-options/admin-plugin.d.ts +3 -0
- package/dist/better-auth/plugin/lib/sanitize-better-auth-options/admin-plugin.d.ts.map +1 -0
- package/dist/better-auth/plugin/lib/sanitize-better-auth-options/admin-plugin.js +8 -0
- package/dist/better-auth/plugin/lib/sanitize-better-auth-options/api-key-plugin.d.ts +2 -0
- package/dist/better-auth/plugin/lib/sanitize-better-auth-options/api-key-plugin.d.ts.map +1 -0
- package/dist/better-auth/plugin/lib/sanitize-better-auth-options/api-key-plugin.js +17 -0
- package/dist/better-auth/plugin/lib/sanitize-better-auth-options/index.d.ts +10 -0
- package/dist/better-auth/plugin/lib/sanitize-better-auth-options/index.d.ts.map +1 -0
- package/dist/better-auth/plugin/lib/sanitize-better-auth-options/index.js +118 -0
- package/dist/better-auth/plugin/lib/sanitize-better-auth-options/oidc-plugin.d.ts +2 -0
- package/dist/better-auth/plugin/lib/sanitize-better-auth-options/oidc-plugin.d.ts.map +1 -0
- package/dist/better-auth/plugin/lib/sanitize-better-auth-options/oidc-plugin.js +58 -0
- package/dist/better-auth/plugin/lib/sanitize-better-auth-options/organizations-plugin.d.ts +2 -0
- package/dist/better-auth/plugin/lib/sanitize-better-auth-options/organizations-plugin.d.ts.map +1 -0
- package/dist/better-auth/plugin/lib/sanitize-better-auth-options/organizations-plugin.js +86 -0
- package/dist/better-auth/plugin/lib/sanitize-better-auth-options/passkey-plugin.d.ts +2 -0
- package/dist/better-auth/plugin/lib/sanitize-better-auth-options/passkey-plugin.d.ts.map +1 -0
- package/dist/better-auth/plugin/lib/sanitize-better-auth-options/passkey-plugin.js +17 -0
- package/dist/better-auth/plugin/lib/sanitize-better-auth-options/sso-plugin.d.ts +2 -0
- package/dist/better-auth/plugin/lib/sanitize-better-auth-options/sso-plugin.d.ts.map +1 -0
- package/dist/better-auth/plugin/lib/sanitize-better-auth-options/sso-plugin.js +17 -0
- package/dist/better-auth/plugin/lib/{ensure-password-set-before-create.d.ts → sanitize-better-auth-options/utils/ensure-password-set-before-create.d.ts} +2 -1
- package/dist/better-auth/plugin/lib/sanitize-better-auth-options/utils/ensure-password-set-before-create.d.ts.map +1 -0
- package/dist/better-auth/plugin/lib/sanitize-better-auth-options/utils/ensure-password-set-before-create.js +23 -0
- package/dist/better-auth/plugin/lib/{password.d.ts → sanitize-better-auth-options/utils/password.d.ts} +1 -0
- package/dist/better-auth/plugin/lib/sanitize-better-auth-options/utils/password.d.ts.map +1 -0
- package/dist/better-auth/plugin/lib/sanitize-better-auth-options/utils/password.js +62 -0
- package/dist/better-auth/plugin/lib/{respect-save-to-jwt-fields-middleware.d.ts → sanitize-better-auth-options/utils/save-to-jwt-middleware.d.ts} +6 -5
- package/dist/better-auth/plugin/lib/sanitize-better-auth-options/utils/save-to-jwt-middleware.d.ts.map +1 -0
- package/dist/better-auth/plugin/lib/sanitize-better-auth-options/utils/save-to-jwt-middleware.js +30 -0
- package/dist/better-auth/plugin/payload/components/admin-buttons/index.d.ts +8 -0
- package/dist/better-auth/plugin/payload/components/admin-buttons/index.d.ts.map +1 -0
- package/dist/better-auth/plugin/payload/components/admin-buttons/index.js +115 -0
- package/dist/better-auth/plugin/payload/components/admin-buttons/index.scss +31 -0
- package/dist/better-auth/plugin/payload/components/admin-invite-button/index.d.ts +11 -0
- package/dist/better-auth/plugin/payload/components/admin-invite-button/index.d.ts.map +1 -0
- package/dist/better-auth/plugin/payload/components/admin-invite-button/index.js +196 -0
- package/dist/better-auth/plugin/payload/components/admin-invite-button/index.scss +131 -0
- package/dist/better-auth/plugin/payload/components/admin-social-provider-buttons/index.d.ts +14 -0
- package/dist/better-auth/plugin/payload/components/admin-social-provider-buttons/index.d.ts.map +1 -0
- package/dist/better-auth/plugin/payload/components/admin-social-provider-buttons/index.js +111 -0
- package/dist/better-auth/plugin/payload/components/admin-social-provider-buttons/index.scss +51 -0
- package/dist/better-auth/plugin/payload/components/form-header/index.d.ts +9 -0
- package/dist/better-auth/plugin/payload/components/form-header/index.d.ts.map +1 -0
- package/dist/better-auth/plugin/payload/components/form-header/index.js +23 -0
- package/dist/better-auth/plugin/payload/components/form-header/index.scss +8 -0
- package/dist/better-auth/plugin/payload/components/icons.d.ts +9 -0
- package/dist/better-auth/plugin/payload/components/icons.d.ts.map +1 -0
- package/dist/better-auth/plugin/payload/components/icons.js +437 -0
- package/dist/better-auth/plugin/payload/components/logo.d.ts +4 -1
- package/dist/better-auth/plugin/payload/components/logo.d.ts.map +1 -0
- package/dist/better-auth/plugin/payload/components/logo.js +22 -34
- package/dist/better-auth/plugin/payload/components/logout-button.d.ts +6 -0
- package/dist/better-auth/plugin/payload/components/logout-button.d.ts.map +1 -0
- package/dist/better-auth/plugin/payload/components/logout-button.js +27 -0
- package/dist/better-auth/plugin/payload/components/rsc-redirect.d.ts +7 -0
- package/dist/better-auth/plugin/payload/components/rsc-redirect.d.ts.map +1 -0
- package/dist/better-auth/plugin/payload/components/rsc-redirect.js +8 -0
- package/dist/better-auth/plugin/payload/components/styles.css +2 -2
- package/dist/better-auth/plugin/payload/components/token-field.d.ts +5 -0
- package/dist/better-auth/plugin/payload/components/token-field.d.ts.map +1 -0
- package/dist/better-auth/plugin/payload/components/token-field.js +30 -0
- package/dist/better-auth/plugin/payload/exports/client.d.ts +7 -3
- package/dist/better-auth/plugin/payload/exports/client.d.ts.map +1 -0
- package/dist/better-auth/plugin/payload/exports/client.js +7 -4
- package/dist/better-auth/plugin/payload/exports/rsc.d.ts +10 -5
- package/dist/better-auth/plugin/payload/exports/rsc.d.ts.map +1 -0
- package/dist/better-auth/plugin/payload/exports/rsc.js +10 -6
- package/dist/better-auth/plugin/payload/utils/generate-admin-invite-url.d.ts +3 -0
- package/dist/better-auth/plugin/payload/utils/generate-admin-invite-url.d.ts.map +1 -0
- package/dist/better-auth/plugin/payload/utils/generate-admin-invite-url.js +8 -0
- package/dist/better-auth/plugin/payload/utils/generate-metadata.d.ts +15 -0
- package/dist/better-auth/plugin/payload/utils/generate-metadata.d.ts.map +1 -0
- package/dist/better-auth/plugin/payload/utils/generate-metadata.js +74 -0
- package/dist/better-auth/plugin/payload/utils/get-safe-redirect.d.ts +2 -0
- package/dist/better-auth/plugin/payload/utils/get-safe-redirect.d.ts.map +1 -0
- package/dist/better-auth/plugin/payload/utils/get-safe-redirect.js +23 -0
- package/dist/better-auth/plugin/payload/views/admin-invite/client.d.ts +12 -0
- package/dist/better-auth/plugin/payload/views/admin-invite/client.d.ts.map +1 -0
- package/dist/better-auth/plugin/payload/views/admin-invite/client.js +92 -0
- package/dist/better-auth/plugin/payload/views/admin-invite/index.d.ts +11 -0
- package/dist/better-auth/plugin/payload/views/admin-invite/index.d.ts.map +1 -0
- package/dist/better-auth/plugin/payload/views/admin-invite/index.js +84 -0
- package/dist/better-auth/plugin/payload/views/admin-invite/index.scss +25 -0
- package/dist/better-auth/plugin/payload/views/create-first-admin/client.d.ts +14 -0
- package/dist/better-auth/plugin/payload/views/create-first-admin/client.d.ts.map +1 -0
- package/dist/better-auth/plugin/payload/views/create-first-admin/client.js +95 -0
- package/dist/better-auth/plugin/payload/views/create-first-admin/index.d.ts +11 -3
- package/dist/better-auth/plugin/payload/views/create-first-admin/index.d.ts.map +1 -0
- package/dist/better-auth/plugin/payload/views/create-first-admin/index.js +124 -92
- package/dist/better-auth/plugin/payload/views/create-first-admin/index.scss +29 -0
- package/dist/better-auth/plugin/payload/views/forgot-password/client.d.ts +8 -0
- package/dist/better-auth/plugin/payload/views/forgot-password/client.d.ts.map +1 -0
- package/dist/better-auth/plugin/payload/views/forgot-password/client.js +119 -0
- package/dist/better-auth/plugin/payload/views/forgot-password/index.d.ts +9 -0
- package/dist/better-auth/plugin/payload/views/forgot-password/index.d.ts.map +1 -0
- package/dist/better-auth/plugin/payload/views/forgot-password/index.js +69 -0
- package/dist/better-auth/plugin/payload/views/forgot-password/index.scss +0 -0
- package/dist/better-auth/plugin/payload/views/inactivity/index.d.ts +5 -0
- package/dist/better-auth/plugin/payload/views/inactivity/index.d.ts.map +1 -0
- package/dist/better-auth/plugin/payload/views/inactivity/index.js +12 -0
- package/dist/better-auth/plugin/payload/views/login/form/fields/login-field.d.ts +9 -0
- package/dist/better-auth/plugin/payload/views/login/form/fields/login-field.d.ts.map +1 -0
- package/dist/better-auth/plugin/payload/views/login/form/fields/login-field.js +54 -0
- package/dist/better-auth/plugin/payload/views/login/form/fields/password/index.d.ts +1 -0
- package/dist/better-auth/plugin/payload/views/login/form/fields/password/index.d.ts.map +1 -0
- package/dist/better-auth/plugin/payload/views/login/form/fields/password/index.js +121 -0
- package/dist/better-auth/plugin/payload/views/login/form/fields/password/index.scss +31 -0
- package/dist/better-auth/plugin/payload/views/login/form/fields/password/types.d.ts +56 -0
- package/dist/better-auth/plugin/payload/views/login/form/fields/password/types.d.ts.map +1 -0
- package/dist/better-auth/plugin/payload/views/login/form/fields/password/types.js +3 -0
- package/dist/better-auth/plugin/payload/views/login/form/index.d.ts +17 -0
- package/dist/better-auth/plugin/payload/views/login/form/index.d.ts.map +1 -0
- package/dist/better-auth/plugin/payload/views/login/form/index.js +137 -0
- package/dist/better-auth/plugin/payload/views/login/form/index.scss +23 -0
- package/dist/better-auth/plugin/payload/views/login/index.d.ts +11 -4
- package/dist/better-auth/plugin/payload/views/login/index.d.ts.map +1 -0
- package/dist/better-auth/plugin/payload/views/login/index.js +81 -61
- package/dist/better-auth/plugin/payload/views/login/index.scss +10 -0
- package/dist/better-auth/plugin/payload/views/logout/client.d.ts +8 -0
- package/dist/better-auth/plugin/payload/views/logout/client.d.ts.map +1 -0
- package/dist/better-auth/plugin/payload/views/logout/client.js +76 -0
- package/dist/better-auth/plugin/payload/views/logout/index.d.ts +8 -0
- package/dist/better-auth/plugin/payload/views/logout/index.d.ts.map +1 -0
- package/dist/better-auth/plugin/payload/views/logout/index.js +14 -0
- package/dist/better-auth/plugin/payload/views/logout/index.scss +0 -0
- package/dist/better-auth/plugin/payload/views/reset-password/client.d.ts +7 -0
- package/dist/better-auth/plugin/payload/views/reset-password/client.d.ts.map +1 -0
- package/dist/better-auth/plugin/payload/views/reset-password/client.js +72 -0
- package/dist/better-auth/plugin/payload/views/reset-password/index.d.ts +5 -0
- package/dist/better-auth/plugin/payload/views/reset-password/index.d.ts.map +1 -0
- package/dist/better-auth/plugin/payload/views/reset-password/index.js +81 -0
- package/dist/better-auth/plugin/payload/views/reset-password/index.scss +9 -0
- package/dist/better-auth/plugin/payload/views/reset-password/metadata.d.ts +3 -0
- package/dist/better-auth/plugin/payload/views/reset-password/metadata.d.ts.map +1 -0
- package/dist/better-auth/plugin/payload/views/reset-password/metadata.js +11 -0
- package/dist/better-auth/plugin/types.d.ts +171 -33
- package/dist/better-auth/plugin/types.d.ts.map +1 -0
- package/dist/better-auth/plugin/types.js +1 -1
- package/dist/better-auth/types.d.ts +1 -0
- package/dist/better-auth/types.d.ts.map +1 -0
- package/dist/better-auth/types.js +1 -1
- package/dist/clerk/admin-ui.d.ts +4 -0
- package/dist/clerk/admin-ui.d.ts.map +1 -0
- package/dist/clerk/admin-ui.js +5 -0
- package/dist/clerk/index.d.ts +7 -1
- package/dist/clerk/index.d.ts.map +1 -0
- package/dist/clerk/index.js +7 -2
- package/dist/clerk/plugin/auth-strategy.d.ts +11 -0
- package/dist/clerk/plugin/auth-strategy.d.ts.map +1 -0
- package/dist/clerk/plugin/auth-strategy.js +45 -0
- package/dist/clerk/plugin/collections/users/access.d.ts +14 -0
- package/dist/clerk/plugin/collections/users/access.d.ts.map +1 -0
- package/dist/clerk/plugin/collections/users/access.js +36 -0
- package/dist/clerk/plugin/collections/users/endpoints/sync-from-clerk.d.ts +14 -0
- package/dist/clerk/plugin/collections/users/endpoints/sync-from-clerk.d.ts.map +1 -0
- package/dist/clerk/plugin/collections/users/endpoints/sync-from-clerk.js +108 -0
- package/dist/clerk/plugin/collections/users/endpoints/webhook/handlers/index.d.ts +4 -0
- package/dist/clerk/plugin/collections/users/endpoints/webhook/handlers/index.d.ts.map +1 -0
- package/dist/clerk/plugin/collections/users/endpoints/webhook/handlers/index.js +5 -0
- package/dist/clerk/plugin/collections/users/endpoints/webhook/handlers/userCreated.d.ts +13 -0
- package/dist/clerk/plugin/collections/users/endpoints/webhook/handlers/userCreated.d.ts.map +1 -0
- package/dist/clerk/plugin/collections/users/endpoints/webhook/handlers/userCreated.js +33 -0
- package/dist/clerk/plugin/collections/users/endpoints/webhook/handlers/userDeleted.d.ts +11 -0
- package/dist/clerk/plugin/collections/users/endpoints/webhook/handlers/userDeleted.d.ts.map +1 -0
- package/dist/clerk/plugin/collections/users/endpoints/webhook/handlers/userDeleted.js +27 -0
- package/dist/clerk/plugin/collections/users/endpoints/webhook/handlers/userUpdated.d.ts +13 -0
- package/dist/clerk/plugin/collections/users/endpoints/webhook/handlers/userUpdated.d.ts.map +1 -0
- package/dist/clerk/plugin/collections/users/endpoints/webhook/handlers/userUpdated.js +35 -0
- package/dist/clerk/plugin/collections/users/endpoints/webhook/index.d.ts +12 -0
- package/dist/clerk/plugin/collections/users/endpoints/webhook/index.d.ts.map +1 -0
- package/dist/clerk/plugin/collections/users/endpoints/webhook/index.js +86 -0
- package/dist/clerk/plugin/collections/users/fields.d.ts +6 -0
- package/dist/clerk/plugin/collections/users/fields.d.ts.map +1 -0
- package/dist/clerk/plugin/collections/users/fields.js +81 -0
- package/dist/clerk/plugin/collections/users/index.d.ts +10 -0
- package/dist/clerk/plugin/collections/users/index.d.ts.map +1 -0
- package/dist/clerk/plugin/collections/users/index.js +95 -0
- package/dist/clerk/plugin/components/after-login-form.d.ts +4 -0
- package/dist/clerk/plugin/components/after-login-form.d.ts.map +1 -0
- package/dist/clerk/plugin/components/after-login-form.js +65 -0
- package/dist/clerk/plugin/components/logout-button.d.ts +2 -0
- package/dist/clerk/plugin/components/logout-button.d.ts.map +1 -0
- package/dist/clerk/plugin/components/logout-button.js +49 -0
- package/dist/clerk/plugin/components/sync-clerk-users-button.d.ts +6 -0
- package/dist/clerk/plugin/components/sync-clerk-users-button.d.ts.map +1 -0
- package/dist/clerk/plugin/components/sync-clerk-users-button.js +75 -0
- package/dist/clerk/plugin.d.ts +6 -0
- package/dist/clerk/plugin.d.ts.map +1 -0
- package/dist/clerk/plugin.js +63 -0
- package/dist/clerk/types.d.ts +63 -0
- package/dist/clerk/types.d.ts.map +1 -0
- package/dist/clerk/types.js +3 -0
- package/dist/clerk/utils/clerk-user.d.ts +21 -0
- package/dist/clerk/utils/clerk-user.d.ts.map +1 -0
- package/dist/clerk/utils/clerk-user.js +45 -0
- package/dist/clerk/utils/index.d.ts +4 -0
- package/dist/clerk/utils/index.d.ts.map +1 -0
- package/dist/clerk/utils/index.js +5 -0
- package/dist/clerk/utils/load-clerk-instance.d.ts +8 -0
- package/dist/clerk/utils/load-clerk-instance.d.ts.map +1 -0
- package/dist/clerk/utils/load-clerk-instance.js +11 -0
- package/dist/clerk/utils/svix.d.ts +9 -0
- package/dist/clerk/utils/svix.d.ts.map +1 -0
- package/dist/clerk/utils/svix.js +40 -0
- package/dist/clerk/utils/user.d.ts +17 -0
- package/dist/clerk/utils/user.d.ts.map +1 -0
- package/dist/clerk/utils/user.js +46 -0
- package/dist/index.d.ts +5 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +5 -5
- package/dist/kinde/index.d.ts +1 -0
- package/dist/kinde/index.d.ts.map +1 -0
- package/dist/kinde/index.js +1 -1
- package/package.json +44 -18
- package/LICENSE.md +0 -17
- package/dist/authjs/index.js.map +0 -1
- package/dist/better-auth/adapter/dev/bin/run.d.ts +0 -1
- package/dist/better-auth/adapter/dev/bin/run.js +0 -64
- package/dist/better-auth/adapter/dev/bin/run.js.map +0 -1
- package/dist/better-auth/adapter/dev/bin/schema.d.ts +0 -22
- package/dist/better-auth/adapter/dev/bin/schema.js +0 -160
- package/dist/better-auth/adapter/dev/bin/schema.js.map +0 -1
- package/dist/better-auth/adapter/dev/collections.d.ts +0 -3
- package/dist/better-auth/adapter/dev/collections.js +0 -212
- package/dist/better-auth/adapter/dev/collections.js.map +0 -1
- package/dist/better-auth/adapter/dev/index.d.ts +0 -3
- package/dist/better-auth/adapter/dev/index.js +0 -168
- package/dist/better-auth/adapter/dev/index.js.map +0 -1
- package/dist/better-auth/adapter/generate-schema/generate-schema-builder.js.map +0 -1
- package/dist/better-auth/adapter/generate-schema/get-payload-schema.js.map +0 -1
- package/dist/better-auth/adapter/generate-schema/index.js.map +0 -1
- package/dist/better-auth/adapter/generate-schema/utils.js.map +0 -1
- package/dist/better-auth/adapter/index.js.map +0 -1
- package/dist/better-auth/adapter/test/adapter.test.d.ts +0 -1
- package/dist/better-auth/adapter/test/adapter.test.js +0 -181
- package/dist/better-auth/adapter/test/adapter.test.js.map +0 -1
- package/dist/better-auth/adapter/test/better-auth-adapter-test.d.ts +0 -7
- package/dist/better-auth/adapter/test/better-auth-adapter-test.js +0 -425
- package/dist/better-auth/adapter/test/better-auth-adapter-test.js.map +0 -1
- package/dist/better-auth/adapter/test/schema.test.d.ts +0 -1
- package/dist/better-auth/adapter/test/schema.test.js +0 -796
- package/dist/better-auth/adapter/test/schema.test.js.map +0 -1
- package/dist/better-auth/adapter/test/test_payload1/schema.d.ts +0 -23
- package/dist/better-auth/adapter/test/test_payload1/schema.js +0 -177
- package/dist/better-auth/adapter/test/test_payload1/schema.js.map +0 -1
- package/dist/better-auth/adapter/test/test_payload2/schema.d.ts +0 -23
- package/dist/better-auth/adapter/test/test_payload2/schema.js +0 -167
- package/dist/better-auth/adapter/test/test_payload2/schema.js.map +0 -1
- package/dist/better-auth/adapter/test/test_payload3/schema.d.ts +0 -23
- package/dist/better-auth/adapter/test/test_payload3/schema.js +0 -198
- package/dist/better-auth/adapter/test/test_payload3/schema.js.map +0 -1
- package/dist/better-auth/adapter/transform/index.js.map +0 -1
- package/dist/better-auth/adapter/types.js.map +0 -1
- package/dist/better-auth/index.js.map +0 -1
- package/dist/better-auth/plugin/collections/accounts/hooks/sync-password-to-user.js +0 -47
- package/dist/better-auth/plugin/collections/accounts/hooks/sync-password-to-user.js.map +0 -1
- package/dist/better-auth/plugin/collections/users/endpoints/refresh-token.d.ts +0 -6
- package/dist/better-auth/plugin/collections/users/endpoints/refresh-token.js +0 -106
- package/dist/better-auth/plugin/collections/users/endpoints/refresh-token.js.map +0 -1
- package/dist/better-auth/plugin/collections/users/hooks/after-login.js +0 -71
- package/dist/better-auth/plugin/collections/users/hooks/after-login.js.map +0 -1
- package/dist/better-auth/plugin/collections/users/hooks/after-logout.js +0 -49
- package/dist/better-auth/plugin/collections/users/hooks/after-logout.js.map +0 -1
- package/dist/better-auth/plugin/collections/users/hooks/before-login.js +0 -18
- package/dist/better-auth/plugin/collections/users/hooks/before-login.js.map +0 -1
- package/dist/better-auth/plugin/collections/users/hooks/clean-up-user-after-delete.d.ts +0 -5
- package/dist/better-auth/plugin/collections/users/hooks/clean-up-user-after-delete.js +0 -33
- package/dist/better-auth/plugin/collections/users/hooks/clean-up-user-after-delete.js.map +0 -1
- package/dist/better-auth/plugin/collections/users/hooks/on-verified-change.d.ts +0 -2
- package/dist/better-auth/plugin/collections/users/hooks/on-verified-change.js +0 -14
- package/dist/better-auth/plugin/collections/users/hooks/on-verified-change.js.map +0 -1
- package/dist/better-auth/plugin/collections/users/hooks/sync-account.js +0 -82
- package/dist/better-auth/plugin/collections/users/hooks/sync-account.js.map +0 -1
- package/dist/better-auth/plugin/helpers/generate-verify-email-url.js.map +0 -1
- package/dist/better-auth/plugin/helpers/get-ip.js.map +0 -1
- package/dist/better-auth/plugin/helpers/index.js.map +0 -1
- package/dist/better-auth/plugin/helpers/serialize-cookie.js.map +0 -1
- package/dist/better-auth/plugin/index.js.map +0 -1
- package/dist/better-auth/plugin/lib/auth-strategy.d.ts +0 -8
- package/dist/better-auth/plugin/lib/auth-strategy.js +0 -48
- package/dist/better-auth/plugin/lib/auth-strategy.js.map +0 -1
- package/dist/better-auth/plugin/lib/build-collection-configs.d.ts +0 -11
- package/dist/better-auth/plugin/lib/build-collection-configs.js +0 -1558
- package/dist/better-auth/plugin/lib/build-collection-configs.js.map +0 -1
- package/dist/better-auth/plugin/lib/config.js +0 -43
- package/dist/better-auth/plugin/lib/config.js.map +0 -1
- package/dist/better-auth/plugin/lib/ensure-password-set-before-create.js +0 -24
- package/dist/better-auth/plugin/lib/ensure-password-set-before-create.js.map +0 -1
- package/dist/better-auth/plugin/lib/get-payload-auth.js.map +0 -1
- package/dist/better-auth/plugin/lib/get-required-collection-slugs.js.map +0 -1
- package/dist/better-auth/plugin/lib/init-better-auth.js.map +0 -1
- package/dist/better-auth/plugin/lib/password.js +0 -63
- package/dist/better-auth/plugin/lib/password.js.map +0 -1
- package/dist/better-auth/plugin/lib/payload-access.js +0 -64
- package/dist/better-auth/plugin/lib/payload-access.js.map +0 -1
- package/dist/better-auth/plugin/lib/prepare-session-data.js +0 -42
- package/dist/better-auth/plugin/lib/prepare-session-data.js.map +0 -1
- package/dist/better-auth/plugin/lib/respect-save-to-jwt-fields-middleware.js +0 -30
- package/dist/better-auth/plugin/lib/respect-save-to-jwt-fields-middleware.js.map +0 -1
- package/dist/better-auth/plugin/lib/sanitize-auth-options.d.ts +0 -5
- package/dist/better-auth/plugin/lib/sanitize-auth-options.js +0 -298
- package/dist/better-auth/plugin/lib/sanitize-auth-options.js.map +0 -1
- package/dist/better-auth/plugin/payload/components/admin-buttons.d.ts +0 -5
- package/dist/better-auth/plugin/payload/components/admin-buttons.js +0 -222
- package/dist/better-auth/plugin/payload/components/admin-buttons.js.map +0 -1
- package/dist/better-auth/plugin/payload/components/login-redirect.d.ts +0 -1
- package/dist/better-auth/plugin/payload/components/login-redirect.js +0 -6
- package/dist/better-auth/plugin/payload/components/login-redirect.js.map +0 -1
- package/dist/better-auth/plugin/payload/components/logo.js.map +0 -1
- package/dist/better-auth/plugin/payload/components/logout.d.ts +0 -1
- package/dist/better-auth/plugin/payload/components/logout.js +0 -61
- package/dist/better-auth/plugin/payload/components/logout.js.map +0 -1
- package/dist/better-auth/plugin/payload/components/sign-in.d.ts +0 -3
- package/dist/better-auth/plugin/payload/components/sign-in.js +0 -384
- package/dist/better-auth/plugin/payload/components/sign-in.js.map +0 -1
- package/dist/better-auth/plugin/payload/components/sign-up.d.ts +0 -6
- package/dist/better-auth/plugin/payload/components/sign-up.js +0 -502
- package/dist/better-auth/plugin/payload/components/sign-up.js.map +0 -1
- package/dist/better-auth/plugin/payload/components/ui/button.d.ts +0 -10
- package/dist/better-auth/plugin/payload/components/ui/button.js +0 -42
- package/dist/better-auth/plugin/payload/components/ui/button.js.map +0 -1
- package/dist/better-auth/plugin/payload/components/ui/card.d.ts +0 -9
- package/dist/better-auth/plugin/payload/components/ui/card.js +0 -55
- package/dist/better-auth/plugin/payload/components/ui/card.js.map +0 -1
- package/dist/better-auth/plugin/payload/components/ui/checkbox.d.ts +0 -4
- package/dist/better-auth/plugin/payload/components/ui/checkbox.js +0 -23
- package/dist/better-auth/plugin/payload/components/ui/checkbox.js.map +0 -1
- package/dist/better-auth/plugin/payload/components/ui/cn.d.ts +0 -2
- package/dist/better-auth/plugin/payload/components/ui/cn.js +0 -7
- package/dist/better-auth/plugin/payload/components/ui/cn.js.map +0 -1
- package/dist/better-auth/plugin/payload/components/ui/input.d.ts +0 -3
- package/dist/better-auth/plugin/payload/components/ui/input.js +0 -14
- package/dist/better-auth/plugin/payload/components/ui/input.js.map +0 -1
- package/dist/better-auth/plugin/payload/components/ui/label.d.ts +0 -4
- package/dist/better-auth/plugin/payload/components/ui/label.js +0 -15
- package/dist/better-auth/plugin/payload/components/ui/label.js.map +0 -1
- package/dist/better-auth/plugin/payload/components/ui/password-input.d.ts +0 -2
- package/dist/better-auth/plugin/payload/components/ui/password-input.js +0 -55
- package/dist/better-auth/plugin/payload/components/ui/password-input.js.map +0 -1
- package/dist/better-auth/plugin/payload/exports/client.js.map +0 -1
- package/dist/better-auth/plugin/payload/exports/rsc.js.map +0 -1
- package/dist/better-auth/plugin/payload/views/create-first-admin/index.js.map +0 -1
- package/dist/better-auth/plugin/payload/views/login/index.js.map +0 -1
- package/dist/better-auth/plugin/types.js.map +0 -1
- package/dist/better-auth/types.js.map +0 -1
- package/dist/clerk/index.js.map +0 -1
- package/dist/index.js.map +0 -1
- package/dist/kinde/index.js.map +0 -1
|
@@ -1,12 +1,12 @@
|
|
|
1
|
-
import { BetterAuthError } from
|
|
2
|
-
import { generateSchema } from
|
|
3
|
-
import { createTransform } from
|
|
4
|
-
export const BETTER_AUTH_CONTEXT_KEY =
|
|
1
|
+
import { BetterAuthError } from "better-auth";
|
|
2
|
+
import { generateSchema } from "./generate-schema";
|
|
3
|
+
import { createTransform } from "./transform";
|
|
4
|
+
export const BETTER_AUTH_CONTEXT_KEY = "payload-db-adapter";
|
|
5
5
|
const PAYLOAD_QUERY_DEPTH = 2;
|
|
6
|
-
const payloadAdapter = (payloadClient, config
|
|
6
|
+
const payloadAdapter = (payloadClient, config)=>{
|
|
7
7
|
function debugLog(message) {
|
|
8
8
|
if (config.enableDebugLogs) {
|
|
9
|
-
console.log(
|
|
9
|
+
console.log("[payload-db-adapter]", ...message);
|
|
10
10
|
}
|
|
11
11
|
}
|
|
12
12
|
function errorLog(message) {
|
|
@@ -21,7 +21,7 @@ const payloadAdapter = (payloadClient, config = {})=>{
|
|
|
21
21
|
}
|
|
22
22
|
});
|
|
23
23
|
async function resolvePayloadClient() {
|
|
24
|
-
const payload = typeof payloadClient ===
|
|
24
|
+
const payload = typeof payloadClient === "function" ? await payloadClient() : await payloadClient;
|
|
25
25
|
if (!payload.config?.custom?.hasBetterAuthPlugin) {
|
|
26
26
|
throw new BetterAuthError(`Payload is not configured with the better-auth plugin. Please add the plugin to your payload config.`);
|
|
27
27
|
}
|
|
@@ -30,14 +30,19 @@ const payloadAdapter = (payloadClient, config = {})=>{
|
|
|
30
30
|
return (options)=>{
|
|
31
31
|
const { transformInput, transformOutput, convertWhereClause, convertSelect, convertSort, getModelName, singleIdQuery, multipleIdsQuery } = createTransform(options, config.enableDebugLogs ?? false);
|
|
32
32
|
return {
|
|
33
|
-
id:
|
|
33
|
+
id: "payload",
|
|
34
34
|
async create (data) {
|
|
35
35
|
const start = Date.now();
|
|
36
36
|
const { model, data: values, select } = data;
|
|
37
37
|
const collectionSlug = getModelName(model);
|
|
38
|
-
const transformed = transformInput(
|
|
38
|
+
const transformed = transformInput({
|
|
39
|
+
data: values,
|
|
40
|
+
model,
|
|
41
|
+
action: "create",
|
|
42
|
+
idType: config.idType
|
|
43
|
+
});
|
|
39
44
|
debugLog([
|
|
40
|
-
|
|
45
|
+
"create",
|
|
41
46
|
{
|
|
42
47
|
collectionSlug,
|
|
43
48
|
transformed,
|
|
@@ -55,13 +60,16 @@ const payloadAdapter = (payloadClient, config = {})=>{
|
|
|
55
60
|
select: convertSelect(model, select),
|
|
56
61
|
context: createAdapterContext({
|
|
57
62
|
model,
|
|
58
|
-
operation:
|
|
63
|
+
operation: "create"
|
|
59
64
|
}),
|
|
60
65
|
depth: PAYLOAD_QUERY_DEPTH
|
|
61
66
|
});
|
|
62
|
-
const transformedResult = transformOutput(
|
|
67
|
+
const transformedResult = transformOutput({
|
|
68
|
+
doc: result,
|
|
69
|
+
model
|
|
70
|
+
});
|
|
63
71
|
debugLog([
|
|
64
|
-
|
|
72
|
+
"create result",
|
|
65
73
|
{
|
|
66
74
|
collectionSlug,
|
|
67
75
|
transformedResult,
|
|
@@ -71,7 +79,7 @@ const payloadAdapter = (payloadClient, config = {})=>{
|
|
|
71
79
|
return transformedResult;
|
|
72
80
|
} catch (error) {
|
|
73
81
|
errorLog([
|
|
74
|
-
|
|
82
|
+
"Error in creating:",
|
|
75
83
|
model,
|
|
76
84
|
error
|
|
77
85
|
]);
|
|
@@ -82,9 +90,13 @@ const payloadAdapter = (payloadClient, config = {})=>{
|
|
|
82
90
|
const start = Date.now();
|
|
83
91
|
const { model, where, select } = data;
|
|
84
92
|
const collectionSlug = getModelName(model);
|
|
85
|
-
const payloadWhere = convertWhereClause(
|
|
93
|
+
const payloadWhere = convertWhereClause({
|
|
94
|
+
idType: config.idType,
|
|
95
|
+
model,
|
|
96
|
+
where
|
|
97
|
+
});
|
|
86
98
|
debugLog([
|
|
87
|
-
|
|
99
|
+
"findOne",
|
|
88
100
|
{
|
|
89
101
|
collectionSlug
|
|
90
102
|
}
|
|
@@ -98,7 +110,7 @@ const payloadAdapter = (payloadClient, config = {})=>{
|
|
|
98
110
|
let result = null;
|
|
99
111
|
if (id) {
|
|
100
112
|
debugLog([
|
|
101
|
-
|
|
113
|
+
"findOneByID",
|
|
102
114
|
{
|
|
103
115
|
collectionSlug,
|
|
104
116
|
id
|
|
@@ -110,14 +122,14 @@ const payloadAdapter = (payloadClient, config = {})=>{
|
|
|
110
122
|
select: convertSelect(model, select),
|
|
111
123
|
context: createAdapterContext({
|
|
112
124
|
model,
|
|
113
|
-
operation:
|
|
125
|
+
operation: "findOneByID"
|
|
114
126
|
}),
|
|
115
127
|
depth: PAYLOAD_QUERY_DEPTH
|
|
116
128
|
});
|
|
117
129
|
result = doc;
|
|
118
130
|
} else {
|
|
119
131
|
debugLog([
|
|
120
|
-
|
|
132
|
+
"findOneByWhere",
|
|
121
133
|
{
|
|
122
134
|
collectionSlug,
|
|
123
135
|
payloadWhere
|
|
@@ -129,16 +141,19 @@ const payloadAdapter = (payloadClient, config = {})=>{
|
|
|
129
141
|
select: convertSelect(model, select),
|
|
130
142
|
context: createAdapterContext({
|
|
131
143
|
model,
|
|
132
|
-
operation:
|
|
144
|
+
operation: "findOneByWhere"
|
|
133
145
|
}),
|
|
134
146
|
depth: PAYLOAD_QUERY_DEPTH,
|
|
135
147
|
limit: 1
|
|
136
148
|
});
|
|
137
149
|
result = docs.docs[0];
|
|
138
150
|
}
|
|
139
|
-
const transformedResult =
|
|
151
|
+
const transformedResult = transformOutput({
|
|
152
|
+
doc: result,
|
|
153
|
+
model
|
|
154
|
+
});
|
|
140
155
|
debugLog([
|
|
141
|
-
|
|
156
|
+
"findOne result",
|
|
142
157
|
{
|
|
143
158
|
collectionSlug,
|
|
144
159
|
transformedResult,
|
|
@@ -148,7 +163,7 @@ const payloadAdapter = (payloadClient, config = {})=>{
|
|
|
148
163
|
return transformedResult;
|
|
149
164
|
} catch (error) {
|
|
150
165
|
errorLog([
|
|
151
|
-
|
|
166
|
+
"Error in findOne: ",
|
|
152
167
|
error
|
|
153
168
|
]);
|
|
154
169
|
return null;
|
|
@@ -158,9 +173,13 @@ const payloadAdapter = (payloadClient, config = {})=>{
|
|
|
158
173
|
const start = Date.now();
|
|
159
174
|
const { model, where, sortBy, limit, offset } = data;
|
|
160
175
|
const collectionSlug = getModelName(model);
|
|
161
|
-
const payloadWhere = convertWhereClause(
|
|
176
|
+
const payloadWhere = convertWhereClause({
|
|
177
|
+
idType: config.idType,
|
|
178
|
+
model,
|
|
179
|
+
where
|
|
180
|
+
});
|
|
162
181
|
debugLog([
|
|
163
|
-
|
|
182
|
+
"findMany",
|
|
164
183
|
{
|
|
165
184
|
collectionSlug,
|
|
166
185
|
sortBy,
|
|
@@ -178,7 +197,7 @@ const payloadAdapter = (payloadClient, config = {})=>{
|
|
|
178
197
|
const singleId = where && singleIdQuery(payloadWhere);
|
|
179
198
|
if (multipleIds && multipleIds.length > 0) {
|
|
180
199
|
debugLog([
|
|
181
|
-
|
|
200
|
+
"findManyByMultipleIDs",
|
|
182
201
|
{
|
|
183
202
|
collectionSlug,
|
|
184
203
|
ids: multipleIds
|
|
@@ -195,7 +214,7 @@ const payloadAdapter = (payloadClient, config = {})=>{
|
|
|
195
214
|
depth: PAYLOAD_QUERY_DEPTH,
|
|
196
215
|
context: createAdapterContext({
|
|
197
216
|
model,
|
|
198
|
-
operation:
|
|
217
|
+
operation: "findManyByMultipleIDs"
|
|
199
218
|
})
|
|
200
219
|
});
|
|
201
220
|
res.docs.push(doc);
|
|
@@ -207,7 +226,7 @@ const payloadAdapter = (payloadClient, config = {})=>{
|
|
|
207
226
|
};
|
|
208
227
|
} else if (singleId) {
|
|
209
228
|
debugLog([
|
|
210
|
-
|
|
229
|
+
"findManyBySingleID",
|
|
211
230
|
{
|
|
212
231
|
collectionSlug,
|
|
213
232
|
id: singleId
|
|
@@ -219,7 +238,7 @@ const payloadAdapter = (payloadClient, config = {})=>{
|
|
|
219
238
|
depth: PAYLOAD_QUERY_DEPTH,
|
|
220
239
|
context: createAdapterContext({
|
|
221
240
|
model,
|
|
222
|
-
operation:
|
|
241
|
+
operation: "findManyBySingleID"
|
|
223
242
|
})
|
|
224
243
|
});
|
|
225
244
|
result = {
|
|
@@ -230,7 +249,7 @@ const payloadAdapter = (payloadClient, config = {})=>{
|
|
|
230
249
|
};
|
|
231
250
|
} else {
|
|
232
251
|
debugLog([
|
|
233
|
-
|
|
252
|
+
"findManyByWhere",
|
|
234
253
|
{
|
|
235
254
|
collectionSlug,
|
|
236
255
|
payloadWhere
|
|
@@ -245,7 +264,7 @@ const payloadAdapter = (payloadClient, config = {})=>{
|
|
|
245
264
|
depth: PAYLOAD_QUERY_DEPTH,
|
|
246
265
|
context: createAdapterContext({
|
|
247
266
|
model,
|
|
248
|
-
operation:
|
|
267
|
+
operation: "findManyByWhere"
|
|
249
268
|
})
|
|
250
269
|
});
|
|
251
270
|
result = {
|
|
@@ -253,9 +272,12 @@ const payloadAdapter = (payloadClient, config = {})=>{
|
|
|
253
272
|
totalDocs: res.totalDocs
|
|
254
273
|
};
|
|
255
274
|
}
|
|
256
|
-
const transformedResult = result?.docs.map((doc)=>transformOutput(
|
|
275
|
+
const transformedResult = result?.docs.map((doc)=>transformOutput({
|
|
276
|
+
doc,
|
|
277
|
+
model
|
|
278
|
+
})) ?? null;
|
|
257
279
|
debugLog([
|
|
258
|
-
|
|
280
|
+
"findMany result",
|
|
259
281
|
{
|
|
260
282
|
collectionSlug,
|
|
261
283
|
transformedResult,
|
|
@@ -265,7 +287,7 @@ const payloadAdapter = (payloadClient, config = {})=>{
|
|
|
265
287
|
return transformedResult;
|
|
266
288
|
} catch (error) {
|
|
267
289
|
errorLog([
|
|
268
|
-
|
|
290
|
+
"Error in findMany: ",
|
|
269
291
|
error
|
|
270
292
|
]);
|
|
271
293
|
return [];
|
|
@@ -275,9 +297,13 @@ const payloadAdapter = (payloadClient, config = {})=>{
|
|
|
275
297
|
const start = Date.now();
|
|
276
298
|
const { model, where, update } = data;
|
|
277
299
|
const collectionSlug = getModelName(model);
|
|
278
|
-
const payloadWhere = convertWhereClause(
|
|
300
|
+
const payloadWhere = convertWhereClause({
|
|
301
|
+
idType: config.idType,
|
|
302
|
+
model,
|
|
303
|
+
where
|
|
304
|
+
});
|
|
279
305
|
debugLog([
|
|
280
|
-
|
|
306
|
+
"update",
|
|
281
307
|
{
|
|
282
308
|
collectionSlug,
|
|
283
309
|
update
|
|
@@ -292,7 +318,7 @@ const payloadAdapter = (payloadClient, config = {})=>{
|
|
|
292
318
|
const id = singleIdQuery(payloadWhere);
|
|
293
319
|
if (id) {
|
|
294
320
|
debugLog([
|
|
295
|
-
|
|
321
|
+
"updateByID",
|
|
296
322
|
{
|
|
297
323
|
collectionSlug,
|
|
298
324
|
id
|
|
@@ -305,13 +331,13 @@ const payloadAdapter = (payloadClient, config = {})=>{
|
|
|
305
331
|
depth: PAYLOAD_QUERY_DEPTH,
|
|
306
332
|
context: createAdapterContext({
|
|
307
333
|
model,
|
|
308
|
-
operation:
|
|
334
|
+
operation: "updateByID"
|
|
309
335
|
})
|
|
310
336
|
});
|
|
311
337
|
result = doc;
|
|
312
338
|
} else {
|
|
313
339
|
debugLog([
|
|
314
|
-
|
|
340
|
+
"updateByWhere",
|
|
315
341
|
{
|
|
316
342
|
collectionSlug,
|
|
317
343
|
payloadWhere
|
|
@@ -324,14 +350,17 @@ const payloadAdapter = (payloadClient, config = {})=>{
|
|
|
324
350
|
depth: PAYLOAD_QUERY_DEPTH,
|
|
325
351
|
context: createAdapterContext({
|
|
326
352
|
model,
|
|
327
|
-
operation:
|
|
353
|
+
operation: "updateByWhere"
|
|
328
354
|
})
|
|
329
355
|
});
|
|
330
356
|
result = doc.docs[0];
|
|
331
357
|
}
|
|
332
|
-
const transformedResult = transformOutput(
|
|
358
|
+
const transformedResult = transformOutput({
|
|
359
|
+
doc: result,
|
|
360
|
+
model
|
|
361
|
+
});
|
|
333
362
|
debugLog([
|
|
334
|
-
|
|
363
|
+
"update result",
|
|
335
364
|
{
|
|
336
365
|
collectionSlug,
|
|
337
366
|
transformedResult,
|
|
@@ -341,7 +370,7 @@ const payloadAdapter = (payloadClient, config = {})=>{
|
|
|
341
370
|
return transformedResult;
|
|
342
371
|
} catch (error) {
|
|
343
372
|
errorLog([
|
|
344
|
-
|
|
373
|
+
"Error in update: ",
|
|
345
374
|
error
|
|
346
375
|
]);
|
|
347
376
|
return null;
|
|
@@ -351,9 +380,13 @@ const payloadAdapter = (payloadClient, config = {})=>{
|
|
|
351
380
|
const start = Date.now();
|
|
352
381
|
const { model, where, update } = data;
|
|
353
382
|
const collectionSlug = getModelName(model);
|
|
354
|
-
const payloadWhere = convertWhereClause(
|
|
383
|
+
const payloadWhere = convertWhereClause({
|
|
384
|
+
idType: config.idType,
|
|
385
|
+
model,
|
|
386
|
+
where
|
|
387
|
+
});
|
|
355
388
|
debugLog([
|
|
356
|
-
|
|
389
|
+
"updateMany",
|
|
357
390
|
{
|
|
358
391
|
collectionSlug,
|
|
359
392
|
payloadWhere,
|
|
@@ -372,11 +405,11 @@ const payloadAdapter = (payloadClient, config = {})=>{
|
|
|
372
405
|
depth: PAYLOAD_QUERY_DEPTH,
|
|
373
406
|
context: createAdapterContext({
|
|
374
407
|
model,
|
|
375
|
-
operation:
|
|
408
|
+
operation: "updateMany"
|
|
376
409
|
})
|
|
377
410
|
});
|
|
378
411
|
debugLog([
|
|
379
|
-
|
|
412
|
+
"updateMany result",
|
|
380
413
|
{
|
|
381
414
|
collectionSlug,
|
|
382
415
|
result: updateResult,
|
|
@@ -386,7 +419,7 @@ const payloadAdapter = (payloadClient, config = {})=>{
|
|
|
386
419
|
return updateResult?.length || 0;
|
|
387
420
|
} catch (error) {
|
|
388
421
|
errorLog([
|
|
389
|
-
|
|
422
|
+
"Error in updateMany: ",
|
|
390
423
|
error
|
|
391
424
|
]);
|
|
392
425
|
return 0;
|
|
@@ -396,9 +429,13 @@ const payloadAdapter = (payloadClient, config = {})=>{
|
|
|
396
429
|
const start = Date.now();
|
|
397
430
|
const { model, where } = data;
|
|
398
431
|
const collectionSlug = getModelName(model);
|
|
399
|
-
const payloadWhere = convertWhereClause(
|
|
432
|
+
const payloadWhere = convertWhereClause({
|
|
433
|
+
idType: config.idType,
|
|
434
|
+
model,
|
|
435
|
+
where
|
|
436
|
+
});
|
|
400
437
|
debugLog([
|
|
401
|
-
|
|
438
|
+
"delete",
|
|
402
439
|
{
|
|
403
440
|
collectionSlug
|
|
404
441
|
}
|
|
@@ -412,7 +449,7 @@ const payloadAdapter = (payloadClient, config = {})=>{
|
|
|
412
449
|
const id = singleIdQuery(payloadWhere);
|
|
413
450
|
if (id) {
|
|
414
451
|
debugLog([
|
|
415
|
-
|
|
452
|
+
"deleteByID",
|
|
416
453
|
{
|
|
417
454
|
collectionSlug,
|
|
418
455
|
id
|
|
@@ -424,7 +461,7 @@ const payloadAdapter = (payloadClient, config = {})=>{
|
|
|
424
461
|
depth: PAYLOAD_QUERY_DEPTH,
|
|
425
462
|
context: createAdapterContext({
|
|
426
463
|
model,
|
|
427
|
-
operation:
|
|
464
|
+
operation: "deleteByID"
|
|
428
465
|
})
|
|
429
466
|
});
|
|
430
467
|
deleteResult = {
|
|
@@ -433,7 +470,7 @@ const payloadAdapter = (payloadClient, config = {})=>{
|
|
|
433
470
|
};
|
|
434
471
|
} else {
|
|
435
472
|
debugLog([
|
|
436
|
-
|
|
473
|
+
"deleteByWhere",
|
|
437
474
|
{
|
|
438
475
|
collectionSlug,
|
|
439
476
|
payloadWhere
|
|
@@ -445,7 +482,7 @@ const payloadAdapter = (payloadClient, config = {})=>{
|
|
|
445
482
|
depth: PAYLOAD_QUERY_DEPTH,
|
|
446
483
|
context: createAdapterContext({
|
|
447
484
|
model,
|
|
448
|
-
operation:
|
|
485
|
+
operation: "deleteByWhere"
|
|
449
486
|
})
|
|
450
487
|
});
|
|
451
488
|
deleteResult = {
|
|
@@ -454,7 +491,7 @@ const payloadAdapter = (payloadClient, config = {})=>{
|
|
|
454
491
|
};
|
|
455
492
|
}
|
|
456
493
|
debugLog([
|
|
457
|
-
|
|
494
|
+
"delete result",
|
|
458
495
|
{
|
|
459
496
|
collectionSlug,
|
|
460
497
|
result: deleteResult,
|
|
@@ -464,7 +501,7 @@ const payloadAdapter = (payloadClient, config = {})=>{
|
|
|
464
501
|
return;
|
|
465
502
|
} catch (error) {
|
|
466
503
|
errorLog([
|
|
467
|
-
|
|
504
|
+
"Error in delete: ",
|
|
468
505
|
error
|
|
469
506
|
]);
|
|
470
507
|
return;
|
|
@@ -474,9 +511,13 @@ const payloadAdapter = (payloadClient, config = {})=>{
|
|
|
474
511
|
const start = Date.now();
|
|
475
512
|
const { model, where } = data;
|
|
476
513
|
const collectionSlug = getModelName(model);
|
|
477
|
-
const payloadWhere = convertWhereClause(
|
|
514
|
+
const payloadWhere = convertWhereClause({
|
|
515
|
+
idType: config.idType,
|
|
516
|
+
model,
|
|
517
|
+
where
|
|
518
|
+
});
|
|
478
519
|
debugLog([
|
|
479
|
-
|
|
520
|
+
"deleteMany",
|
|
480
521
|
{
|
|
481
522
|
collectionSlug,
|
|
482
523
|
payloadWhere
|
|
@@ -493,11 +534,11 @@ const payloadAdapter = (payloadClient, config = {})=>{
|
|
|
493
534
|
depth: PAYLOAD_QUERY_DEPTH,
|
|
494
535
|
context: createAdapterContext({
|
|
495
536
|
model,
|
|
496
|
-
operation:
|
|
537
|
+
operation: "deleteMany"
|
|
497
538
|
})
|
|
498
539
|
});
|
|
499
540
|
debugLog([
|
|
500
|
-
|
|
541
|
+
"deleteMany result",
|
|
501
542
|
{
|
|
502
543
|
collectionSlug,
|
|
503
544
|
result: deleteResult,
|
|
@@ -507,7 +548,7 @@ const payloadAdapter = (payloadClient, config = {})=>{
|
|
|
507
548
|
return deleteResult.docs.length;
|
|
508
549
|
} catch (error) {
|
|
509
550
|
errorLog([
|
|
510
|
-
|
|
551
|
+
"Error in deleteMany: ",
|
|
511
552
|
error
|
|
512
553
|
]);
|
|
513
554
|
return 0;
|
|
@@ -517,9 +558,13 @@ const payloadAdapter = (payloadClient, config = {})=>{
|
|
|
517
558
|
const start = Date.now();
|
|
518
559
|
const { model, where } = data;
|
|
519
560
|
const collectionSlug = getModelName(model);
|
|
520
|
-
const payloadWhere = convertWhereClause(
|
|
561
|
+
const payloadWhere = convertWhereClause({
|
|
562
|
+
idType: config.idType,
|
|
563
|
+
model,
|
|
564
|
+
where
|
|
565
|
+
});
|
|
521
566
|
debugLog([
|
|
522
|
-
|
|
567
|
+
"count",
|
|
523
568
|
{
|
|
524
569
|
collectionSlug,
|
|
525
570
|
payloadWhere
|
|
@@ -536,11 +581,11 @@ const payloadAdapter = (payloadClient, config = {})=>{
|
|
|
536
581
|
depth: PAYLOAD_QUERY_DEPTH,
|
|
537
582
|
context: createAdapterContext({
|
|
538
583
|
model,
|
|
539
|
-
operation:
|
|
584
|
+
operation: "count"
|
|
540
585
|
})
|
|
541
586
|
});
|
|
542
587
|
debugLog([
|
|
543
|
-
|
|
588
|
+
"count result",
|
|
544
589
|
{
|
|
545
590
|
collectionSlug,
|
|
546
591
|
result: {
|
|
@@ -552,7 +597,7 @@ const payloadAdapter = (payloadClient, config = {})=>{
|
|
|
552
597
|
return result.totalDocs;
|
|
553
598
|
} catch (error) {
|
|
554
599
|
errorLog([
|
|
555
|
-
|
|
600
|
+
"Error in count: ",
|
|
556
601
|
error
|
|
557
602
|
]);
|
|
558
603
|
return 0;
|
|
@@ -562,17 +607,18 @@ const payloadAdapter = (payloadClient, config = {})=>{
|
|
|
562
607
|
const schemaCode = await generateSchema(options);
|
|
563
608
|
return {
|
|
564
609
|
code: schemaCode,
|
|
565
|
-
path: file ||
|
|
610
|
+
path: file || "schema.ts",
|
|
566
611
|
append: false,
|
|
567
612
|
overwrite: true
|
|
568
613
|
};
|
|
569
614
|
},
|
|
570
615
|
options: {
|
|
571
|
-
enableDebugLogs: config.enableDebugLogs
|
|
616
|
+
enableDebugLogs: config.enableDebugLogs,
|
|
617
|
+
idType: config.idType
|
|
572
618
|
}
|
|
573
619
|
};
|
|
574
620
|
};
|
|
575
621
|
};
|
|
576
622
|
export { generateSchema, payloadAdapter };
|
|
577
623
|
|
|
578
|
-
//# sourceMappingURL=index.js.map
|
|
624
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9iZXR0ZXItYXV0aC9hZGFwdGVyL2luZGV4LnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEJldHRlckF1dGhFcnJvciB9IGZyb20gXCJiZXR0ZXItYXV0aFwiO1xuaW1wb3J0IHR5cGUgeyBBZGFwdGVyLCBCZXR0ZXJBdXRoT3B0aW9ucywgV2hlcmUgfSBmcm9tIFwiYmV0dGVyLWF1dGhcIjtcbmltcG9ydCB7IGdlbmVyYXRlU2NoZW1hIH0gZnJvbSBcIi4vZ2VuZXJhdGUtc2NoZW1hXCI7XG5pbXBvcnQgeyBjcmVhdGVUcmFuc2Zvcm0gfSBmcm9tIFwiLi90cmFuc2Zvcm1cIjtcbmltcG9ydCB0eXBlIHsgUGF5bG9hZEFkYXB0ZXIgfSBmcm9tIFwiLi90eXBlc1wiO1xuXG5leHBvcnQgY29uc3QgQkVUVEVSX0FVVEhfQ09OVEVYVF9LRVkgPSBcInBheWxvYWQtZGItYWRhcHRlclwiO1xuY29uc3QgUEFZTE9BRF9RVUVSWV9ERVBUSCA9IDI7XG5cbmNvbnN0IHBheWxvYWRBZGFwdGVyOiBQYXlsb2FkQWRhcHRlciA9IChwYXlsb2FkQ2xpZW50LCBjb25maWcpID0+IHtcbiAgZnVuY3Rpb24gZGVidWdMb2cobWVzc2FnZTogYW55W10pIHtcbiAgICBpZiAoY29uZmlnLmVuYWJsZURlYnVnTG9ncykge1xuICAgICAgY29uc29sZS5sb2coXCJbcGF5bG9hZC1kYi1hZGFwdGVyXVwiLCAuLi5tZXNzYWdlKTtcbiAgICB9XG4gIH1cblxuICBmdW5jdGlvbiBlcnJvckxvZyhtZXNzYWdlOiBhbnlbXSkge1xuICAgIGNvbnNvbGUuZXJyb3IoYFtwYXlsb2FkLWRiLWFkYXB0ZXJdYCwgLi4ubWVzc2FnZSk7XG4gIH1cblxuICBmdW5jdGlvbiBjb2xsZWN0aW9uU2x1Z0Vycm9yKG1vZGVsOiBzdHJpbmcpIHtcbiAgICB0aHJvdyBuZXcgQmV0dGVyQXV0aEVycm9yKFxuICAgICAgYENvbGxlY3Rpb24gJHttb2RlbH0gZG9lcyBub3QgZXhpc3QuIFBsZWFzZSBjaGVjayB5b3VyIHBheWxvYWQgY29sbGVjdGlvbiBzbHVncyBtYXRjaCB0aGUgYmV0dGVyIGF1dGggc2NoZW1hYFxuICAgICk7XG4gIH1cblxuICBjb25zdCBjcmVhdGVBZGFwdGVyQ29udGV4dCA9IChkYXRhOiBSZWNvcmQ8c3RyaW5nLCBhbnk+KSA9PiAoe1xuICAgIFtCRVRURVJfQVVUSF9DT05URVhUX0tFWV06IHsgLi4uZGF0YSB9LFxuICB9KTtcblxuICBhc3luYyBmdW5jdGlvbiByZXNvbHZlUGF5bG9hZENsaWVudCgpIHtcbiAgICBjb25zdCBwYXlsb2FkID1cbiAgICAgIHR5cGVvZiBwYXlsb2FkQ2xpZW50ID09PSBcImZ1bmN0aW9uXCJcbiAgICAgICAgPyBhd2FpdCBwYXlsb2FkQ2xpZW50KClcbiAgICAgICAgOiBhd2FpdCBwYXlsb2FkQ2xpZW50O1xuICAgIGlmICghcGF5bG9hZC5jb25maWc/LmN1c3RvbT8uaGFzQmV0dGVyQXV0aFBsdWdpbikge1xuICAgICAgdGhyb3cgbmV3IEJldHRlckF1dGhFcnJvcihcbiAgICAgICAgYFBheWxvYWQgaXMgbm90IGNvbmZpZ3VyZWQgd2l0aCB0aGUgYmV0dGVyLWF1dGggcGx1Z2luLiBQbGVhc2UgYWRkIHRoZSBwbHVnaW4gdG8geW91ciBwYXlsb2FkIGNvbmZpZy5gXG4gICAgICApO1xuICAgIH1cbiAgICByZXR1cm4gcGF5bG9hZDtcbiAgfVxuXG4gIHJldHVybiAob3B0aW9uczogQmV0dGVyQXV0aE9wdGlvbnMpOiBBZGFwdGVyID0+IHtcbiAgICBjb25zdCB7XG4gICAgICB0cmFuc2Zvcm1JbnB1dCxcbiAgICAgIHRyYW5zZm9ybU91dHB1dCxcbiAgICAgIGNvbnZlcnRXaGVyZUNsYXVzZSxcbiAgICAgIGNvbnZlcnRTZWxlY3QsXG4gICAgICBjb252ZXJ0U29ydCxcbiAgICAgIGdldE1vZGVsTmFtZSxcbiAgICAgIHNpbmdsZUlkUXVlcnksXG4gICAgICBtdWx0aXBsZUlkc1F1ZXJ5LFxuICAgIH0gPSBjcmVhdGVUcmFuc2Zvcm0ob3B0aW9ucywgY29uZmlnLmVuYWJsZURlYnVnTG9ncyA/PyBmYWxzZSk7XG5cbiAgICByZXR1cm4ge1xuICAgICAgaWQ6IFwicGF5bG9hZFwiLFxuICAgICAgYXN5bmMgY3JlYXRlPFQgZXh0ZW5kcyBSZWNvcmQ8c3RyaW5nLCBhbnk+LCBSID0gVD4oZGF0YToge1xuICAgICAgICBtb2RlbDogc3RyaW5nO1xuICAgICAgICBkYXRhOiBUO1xuICAgICAgICBzZWxlY3Q/OiBzdHJpbmdbXTtcbiAgICAgIH0pOiBQcm9taXNlPFI+IHtcbiAgICAgICAgY29uc3Qgc3RhcnQgPSBEYXRlLm5vdygpO1xuICAgICAgICBjb25zdCB7IG1vZGVsLCBkYXRhOiB2YWx1ZXMsIHNlbGVjdCB9ID0gZGF0YTtcbiAgICAgICAgY29uc3QgY29sbGVjdGlvblNsdWcgPSBnZXRNb2RlbE5hbWUobW9kZWwpO1xuICAgICAgICBjb25zdCB0cmFuc2Zvcm1lZCA9IHRyYW5zZm9ybUlucHV0KHtcbiAgICAgICAgICBkYXRhOiB2YWx1ZXMsXG4gICAgICAgICAgbW9kZWwsXG4gICAgICAgICAgYWN0aW9uOiBcImNyZWF0ZVwiLFxuICAgICAgICAgIGlkVHlwZTogY29uZmlnLmlkVHlwZSxcbiAgICAgICAgfSk7XG4gICAgICAgIGRlYnVnTG9nKFtcImNyZWF0ZVwiLCB7IGNvbGxlY3Rpb25TbHVnLCB0cmFuc2Zvcm1lZCwgc2VsZWN0IH1dKTtcbiAgICAgICAgdHJ5IHtcbiAgICAgICAgICBjb25zdCBwYXlsb2FkID0gYXdhaXQgcmVzb2x2ZVBheWxvYWRDbGllbnQoKTtcbiAgICAgICAgICBpZiAoIWNvbGxlY3Rpb25TbHVnIHx8ICEoY29sbGVjdGlvblNsdWcgaW4gcGF5bG9hZC5jb2xsZWN0aW9ucykpIHtcbiAgICAgICAgICAgIGNvbGxlY3Rpb25TbHVnRXJyb3IobW9kZWwpO1xuICAgICAgICAgIH1cbiAgICAgICAgICBjb25zdCByZXN1bHQgPSBhd2FpdCBwYXlsb2FkLmNyZWF0ZSh7XG4gICAgICAgICAgICBjb2xsZWN0aW9uOiBjb2xsZWN0aW9uU2x1ZyxcbiAgICAgICAgICAgIGRhdGE6IHRyYW5zZm9ybWVkLFxuICAgICAgICAgICAgc2VsZWN0OiBjb252ZXJ0U2VsZWN0KG1vZGVsLCBzZWxlY3QpLFxuICAgICAgICAgICAgY29udGV4dDogY3JlYXRlQWRhcHRlckNvbnRleHQoeyBtb2RlbCwgb3BlcmF0aW9uOiBcImNyZWF0ZVwiIH0pLFxuICAgICAgICAgICAgZGVwdGg6IFBBWUxPQURfUVVFUllfREVQVEgsXG4gICAgICAgICAgfSk7XG4gICAgICAgICAgY29uc3QgdHJhbnNmb3JtZWRSZXN1bHQgPSB0cmFuc2Zvcm1PdXRwdXQoe1xuICAgICAgICAgICAgZG9jOiByZXN1bHQsXG4gICAgICAgICAgICBtb2RlbCxcbiAgICAgICAgICB9KTtcbiAgICAgICAgICBkZWJ1Z0xvZyhbXG4gICAgICAgICAgICBcImNyZWF0ZSByZXN1bHRcIixcbiAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgY29sbGVjdGlvblNsdWcsXG4gICAgICAgICAgICAgIHRyYW5zZm9ybWVkUmVzdWx0LFxuICAgICAgICAgICAgICBkdXJhdGlvbjogYCR7RGF0ZS5ub3coKSAtIHN0YXJ0fW1zYCxcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgXSk7XG4gICAgICAgICAgcmV0dXJuIHRyYW5zZm9ybWVkUmVzdWx0IGFzIFI7XG4gICAgICAgIH0gY2F0Y2ggKGVycm9yKSB7XG4gICAgICAgICAgZXJyb3JMb2coW1wiRXJyb3IgaW4gY3JlYXRpbmc6XCIsIG1vZGVsLCBlcnJvcl0pO1xuICAgICAgICAgIHJldHVybiBudWxsIGFzIFI7XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBhc3luYyBmaW5kT25lPFQ+KGRhdGE6IHtcbiAgICAgICAgbW9kZWw6IHN0cmluZztcbiAgICAgICAgd2hlcmU6IFdoZXJlW107XG4gICAgICAgIHNlbGVjdD86IHN0cmluZ1tdO1xuICAgICAgfSk6IFByb21pc2U8VCB8IG51bGw+IHtcbiAgICAgICAgY29uc3Qgc3RhcnQgPSBEYXRlLm5vdygpO1xuICAgICAgICBjb25zdCB7IG1vZGVsLCB3aGVyZSwgc2VsZWN0IH0gPSBkYXRhO1xuICAgICAgICBjb25zdCBjb2xsZWN0aW9uU2x1ZyA9IGdldE1vZGVsTmFtZShtb2RlbCk7XG4gICAgICAgIGNvbnN0IHBheWxvYWRXaGVyZSA9IGNvbnZlcnRXaGVyZUNsYXVzZSh7XG4gICAgICAgICAgaWRUeXBlOiBjb25maWcuaWRUeXBlLFxuICAgICAgICAgIG1vZGVsLFxuICAgICAgICAgIHdoZXJlLFxuICAgICAgICB9KTtcbiAgICAgICAgZGVidWdMb2coW1wiZmluZE9uZVwiLCB7IGNvbGxlY3Rpb25TbHVnIH1dKTtcbiAgICAgICAgdHJ5IHtcbiAgICAgICAgICBjb25zdCBwYXlsb2FkID0gYXdhaXQgcmVzb2x2ZVBheWxvYWRDbGllbnQoKTtcbiAgICAgICAgICBpZiAoIWNvbGxlY3Rpb25TbHVnIHx8ICEoY29sbGVjdGlvblNsdWcgaW4gcGF5bG9hZC5jb2xsZWN0aW9ucykpIHtcbiAgICAgICAgICAgIGNvbGxlY3Rpb25TbHVnRXJyb3IobW9kZWwpO1xuICAgICAgICAgIH1cbiAgICAgICAgICBjb25zdCBpZCA9IHNpbmdsZUlkUXVlcnkocGF5bG9hZFdoZXJlKTtcbiAgICAgICAgICBsZXQgcmVzdWx0OiBSZWNvcmQ8c3RyaW5nLCBhbnk+IHwgbnVsbCA9IG51bGw7XG4gICAgICAgICAgaWYgKGlkKSB7XG4gICAgICAgICAgICBkZWJ1Z0xvZyhbXCJmaW5kT25lQnlJRFwiLCB7IGNvbGxlY3Rpb25TbHVnLCBpZCB9XSk7XG4gICAgICAgICAgICBjb25zdCBkb2MgPSBhd2FpdCBwYXlsb2FkLmZpbmRCeUlEKHtcbiAgICAgICAgICAgICAgY29sbGVjdGlvbjogY29sbGVjdGlvblNsdWcsXG4gICAgICAgICAgICAgIGlkLFxuICAgICAgICAgICAgICBzZWxlY3Q6IGNvbnZlcnRTZWxlY3QobW9kZWwsIHNlbGVjdCksXG4gICAgICAgICAgICAgIGNvbnRleHQ6IGNyZWF0ZUFkYXB0ZXJDb250ZXh0KHtcbiAgICAgICAgICAgICAgICBtb2RlbCxcbiAgICAgICAgICAgICAgICBvcGVyYXRpb246IFwiZmluZE9uZUJ5SURcIixcbiAgICAgICAgICAgICAgfSksXG4gICAgICAgICAgICAgIGRlcHRoOiBQQVlMT0FEX1FVRVJZX0RFUFRILFxuICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICByZXN1bHQgPSBkb2M7XG4gICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIGRlYnVnTG9nKFtcImZpbmRPbmVCeVdoZXJlXCIsIHsgY29sbGVjdGlvblNsdWcsIHBheWxvYWRXaGVyZSB9XSk7XG4gICAgICAgICAgICBjb25zdCBkb2NzID0gYXdhaXQgcGF5bG9hZC5maW5kKHtcbiAgICAgICAgICAgICAgY29sbGVjdGlvbjogY29sbGVjdGlvblNsdWcsXG4gICAgICAgICAgICAgIHdoZXJlOiBwYXlsb2FkV2hlcmUsXG4gICAgICAgICAgICAgIHNlbGVjdDogY29udmVydFNlbGVjdChtb2RlbCwgc2VsZWN0KSxcbiAgICAgICAgICAgICAgY29udGV4dDogY3JlYXRlQWRhcHRlckNvbnRleHQoe1xuICAgICAgICAgICAgICAgIG1vZGVsLFxuICAgICAgICAgICAgICAgIG9wZXJhdGlvbjogXCJmaW5kT25lQnlXaGVyZVwiLFxuICAgICAgICAgICAgICB9KSxcbiAgICAgICAgICAgICAgZGVwdGg6IFBBWUxPQURfUVVFUllfREVQVEgsXG4gICAgICAgICAgICAgIGxpbWl0OiAxLFxuICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICByZXN1bHQgPSBkb2NzLmRvY3NbMF07XG4gICAgICAgICAgfVxuICAgICAgICAgIGNvbnN0IHRyYW5zZm9ybWVkUmVzdWx0ID0gdHJhbnNmb3JtT3V0cHV0PHR5cGVvZiByZXN1bHQgfCBudWxsPih7XG4gICAgICAgICAgICBkb2M6IHJlc3VsdCxcbiAgICAgICAgICAgIG1vZGVsLFxuICAgICAgICAgIH0pO1xuICAgICAgICAgIGRlYnVnTG9nKFtcbiAgICAgICAgICAgIFwiZmluZE9uZSByZXN1bHRcIixcbiAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgY29sbGVjdGlvblNsdWcsXG4gICAgICAgICAgICAgIHRyYW5zZm9ybWVkUmVzdWx0LFxuICAgICAgICAgICAgICBkdXJhdGlvbjogYCR7RGF0ZS5ub3coKSAtIHN0YXJ0fW1zYCxcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgXSk7XG4gICAgICAgICAgcmV0dXJuIHRyYW5zZm9ybWVkUmVzdWx0IGFzIFQ7XG4gICAgICAgIH0gY2F0Y2ggKGVycm9yKSB7XG4gICAgICAgICAgZXJyb3JMb2coW1wiRXJyb3IgaW4gZmluZE9uZTogXCIsIGVycm9yXSk7XG4gICAgICAgICAgcmV0dXJuIG51bGw7XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBhc3luYyBmaW5kTWFueTxUPihkYXRhOiB7XG4gICAgICAgIG1vZGVsOiBzdHJpbmc7XG4gICAgICAgIHdoZXJlPzogV2hlcmVbXTtcbiAgICAgICAgbGltaXQ/OiBudW1iZXI7XG4gICAgICAgIHNvcnRCeT86IHtcbiAgICAgICAgICBmaWVsZDogc3RyaW5nO1xuICAgICAgICAgIGRpcmVjdGlvbjogXCJhc2NcIiB8IFwiZGVzY1wiO1xuICAgICAgICB9O1xuICAgICAgICBvZmZzZXQ/OiBudW1iZXI7XG4gICAgICB9KTogUHJvbWlzZTxUW10+IHtcbiAgICAgICAgY29uc3Qgc3RhcnQgPSBEYXRlLm5vdygpO1xuICAgICAgICBjb25zdCB7IG1vZGVsLCB3aGVyZSwgc29ydEJ5LCBsaW1pdCwgb2Zmc2V0IH0gPSBkYXRhO1xuICAgICAgICBjb25zdCBjb2xsZWN0aW9uU2x1ZyA9IGdldE1vZGVsTmFtZShtb2RlbCk7XG4gICAgICAgIGNvbnN0IHBheWxvYWRXaGVyZSA9IGNvbnZlcnRXaGVyZUNsYXVzZSh7XG4gICAgICAgICAgaWRUeXBlOiBjb25maWcuaWRUeXBlLFxuICAgICAgICAgIG1vZGVsLFxuICAgICAgICAgIHdoZXJlLFxuICAgICAgICB9KTtcbiAgICAgICAgZGVidWdMb2coW1wiZmluZE1hbnlcIiwgeyBjb2xsZWN0aW9uU2x1Zywgc29ydEJ5LCBsaW1pdCwgb2Zmc2V0IH1dKTtcbiAgICAgICAgdHJ5IHtcbiAgICAgICAgICBjb25zdCBwYXlsb2FkID0gYXdhaXQgcmVzb2x2ZVBheWxvYWRDbGllbnQoKTtcbiAgICAgICAgICBpZiAoIWNvbGxlY3Rpb25TbHVnIHx8ICEoY29sbGVjdGlvblNsdWcgaW4gcGF5bG9hZC5jb2xsZWN0aW9ucykpIHtcbiAgICAgICAgICAgIGNvbGxlY3Rpb25TbHVnRXJyb3IobW9kZWwpO1xuICAgICAgICAgIH1cbiAgICAgICAgICBsZXQgcmVzdWx0OiB7XG4gICAgICAgICAgICBkb2NzOiBSZWNvcmQ8c3RyaW5nLCBhbnk+W107XG4gICAgICAgICAgICB0b3RhbERvY3M6IG51bWJlcjtcbiAgICAgICAgICB9IHwgbnVsbCA9IG51bGw7XG4gICAgICAgICAgY29uc3QgbXVsdGlwbGVJZHMgPSB3aGVyZSAmJiBtdWx0aXBsZUlkc1F1ZXJ5KHBheWxvYWRXaGVyZSk7XG4gICAgICAgICAgY29uc3Qgc2luZ2xlSWQgPSB3aGVyZSAmJiBzaW5nbGVJZFF1ZXJ5KHBheWxvYWRXaGVyZSk7XG4gICAgICAgICAgaWYgKG11bHRpcGxlSWRzICYmIG11bHRpcGxlSWRzLmxlbmd0aCA+IDApIHtcbiAgICAgICAgICAgIGRlYnVnTG9nKFtcbiAgICAgICAgICAgICAgXCJmaW5kTWFueUJ5TXVsdGlwbGVJRHNcIixcbiAgICAgICAgICAgICAgeyBjb2xsZWN0aW9uU2x1ZywgaWRzOiBtdWx0aXBsZUlkcyB9LFxuICAgICAgICAgICAgXSk7XG4gICAgICAgICAgICBjb25zdCByZXMgPSB7XG4gICAgICAgICAgICAgIGRvY3M6IFtdIGFzIFJlY29yZDxzdHJpbmcsIGFueT5bXSxcbiAgICAgICAgICAgICAgdG90YWxEb2NzOiAwLFxuICAgICAgICAgICAgfTtcbiAgICAgICAgICAgIGZvciAoY29uc3QgaWQgb2YgbXVsdGlwbGVJZHMpIHtcbiAgICAgICAgICAgICAgY29uc3QgZG9jID0gYXdhaXQgcGF5bG9hZC5maW5kQnlJRCh7XG4gICAgICAgICAgICAgICAgY29sbGVjdGlvbjogY29sbGVjdGlvblNsdWcsXG4gICAgICAgICAgICAgICAgaWQsXG4gICAgICAgICAgICAgICAgZGVwdGg6IFBBWUxPQURfUVVFUllfREVQVEgsXG4gICAgICAgICAgICAgICAgY29udGV4dDogY3JlYXRlQWRhcHRlckNvbnRleHQoe1xuICAgICAgICAgICAgICAgICAgbW9kZWwsXG4gICAgICAgICAgICAgICAgICBvcGVyYXRpb246IFwiZmluZE1hbnlCeU11bHRpcGxlSURzXCIsXG4gICAgICAgICAgICAgICAgfSksXG4gICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICByZXMuZG9jcy5wdXNoKGRvYyk7XG4gICAgICAgICAgICAgIHJlcy50b3RhbERvY3MrKztcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHJlc3VsdCA9IHsgZG9jczogcmVzLmRvY3MsIHRvdGFsRG9jczogcmVzLnRvdGFsRG9jcyB9O1xuICAgICAgICAgIH0gZWxzZSBpZiAoc2luZ2xlSWQpIHtcbiAgICAgICAgICAgIGRlYnVnTG9nKFtcImZpbmRNYW55QnlTaW5nbGVJRFwiLCB7IGNvbGxlY3Rpb25TbHVnLCBpZDogc2luZ2xlSWQgfV0pO1xuICAgICAgICAgICAgY29uc3QgZG9jID0gYXdhaXQgcGF5bG9hZC5maW5kQnlJRCh7XG4gICAgICAgICAgICAgIGNvbGxlY3Rpb246IGNvbGxlY3Rpb25TbHVnLFxuICAgICAgICAgICAgICBpZDogc2luZ2xlSWQsXG4gICAgICAgICAgICAgIGRlcHRoOiBQQVlMT0FEX1FVRVJZX0RFUFRILFxuICAgICAgICAgICAgICBjb250ZXh0OiBjcmVhdGVBZGFwdGVyQ29udGV4dCh7XG4gICAgICAgICAgICAgICAgbW9kZWwsXG4gICAgICAgICAgICAgICAgb3BlcmF0aW9uOiBcImZpbmRNYW55QnlTaW5nbGVJRFwiLFxuICAgICAgICAgICAgICB9KSxcbiAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgcmVzdWx0ID0geyBkb2NzOiBkb2MgPyBbZG9jXSA6IFtdLCB0b3RhbERvY3M6IGRvYyA/IDEgOiAwIH07XG4gICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIGRlYnVnTG9nKFtcImZpbmRNYW55QnlXaGVyZVwiLCB7IGNvbGxlY3Rpb25TbHVnLCBwYXlsb2FkV2hlcmUgfV0pO1xuICAgICAgICAgICAgY29uc3QgcmVzID0gYXdhaXQgcGF5bG9hZC5maW5kKHtcbiAgICAgICAgICAgICAgY29sbGVjdGlvbjogY29sbGVjdGlvblNsdWcsXG4gICAgICAgICAgICAgIHdoZXJlOiBwYXlsb2FkV2hlcmUsXG4gICAgICAgICAgICAgIGxpbWl0OiBsaW1pdCxcbiAgICAgICAgICAgICAgcGFnZTogb2Zmc2V0ID8gTWF0aC5mbG9vcihvZmZzZXQgLyAobGltaXQgfHwgMTApKSArIDEgOiAxLFxuICAgICAgICAgICAgICBzb3J0OiBjb252ZXJ0U29ydChtb2RlbCwgc29ydEJ5KSxcbiAgICAgICAgICAgICAgZGVwdGg6IFBBWUxPQURfUVVFUllfREVQVEgsXG4gICAgICAgICAgICAgIGNvbnRleHQ6IGNyZWF0ZUFkYXB0ZXJDb250ZXh0KHtcbiAgICAgICAgICAgICAgICBtb2RlbCxcbiAgICAgICAgICAgICAgICBvcGVyYXRpb246IFwiZmluZE1hbnlCeVdoZXJlXCIsXG4gICAgICAgICAgICAgIH0pLFxuICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICByZXN1bHQgPSB7IGRvY3M6IHJlcy5kb2NzLCB0b3RhbERvY3M6IHJlcy50b3RhbERvY3MgfTtcbiAgICAgICAgICB9XG4gICAgICAgICAgY29uc3QgdHJhbnNmb3JtZWRSZXN1bHQgPVxuICAgICAgICAgICAgcmVzdWx0Py5kb2NzLm1hcCgoZG9jKSA9PlxuICAgICAgICAgICAgICB0cmFuc2Zvcm1PdXRwdXQoe1xuICAgICAgICAgICAgICAgIGRvYyxcbiAgICAgICAgICAgICAgICBtb2RlbCxcbiAgICAgICAgICAgICAgfSlcbiAgICAgICAgICAgICkgPz8gbnVsbDtcbiAgICAgICAgICBkZWJ1Z0xvZyhbXG4gICAgICAgICAgICBcImZpbmRNYW55IHJlc3VsdFwiLFxuICAgICAgICAgICAge1xuICAgICAgICAgICAgICBjb2xsZWN0aW9uU2x1ZyxcbiAgICAgICAgICAgICAgdHJhbnNmb3JtZWRSZXN1bHQsXG4gICAgICAgICAgICAgIGR1cmF0aW9uOiBgJHtEYXRlLm5vdygpIC0gc3RhcnR9bXNgLFxuICAgICAgICAgICAgfSxcbiAgICAgICAgICBdKTtcbiAgICAgICAgICByZXR1cm4gdHJhbnNmb3JtZWRSZXN1bHQgYXMgVFtdO1xuICAgICAgICB9IGNhdGNoIChlcnJvcikge1xuICAgICAgICAgIGVycm9yTG9nKFtcIkVycm9yIGluIGZpbmRNYW55OiBcIiwgZXJyb3JdKTtcbiAgICAgICAgICByZXR1cm4gW10gYXMgVFtdO1xuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgYXN5bmMgdXBkYXRlPFQ+KGRhdGE6IHtcbiAgICAgICAgbW9kZWw6IHN0cmluZztcbiAgICAgICAgd2hlcmU6IFdoZXJlW107XG4gICAgICAgIHVwZGF0ZTogUmVjb3JkPHN0cmluZywgdW5rbm93bj47XG4gICAgICB9KTogUHJvbWlzZTxUIHwgbnVsbD4ge1xuICAgICAgICBjb25zdCBzdGFydCA9IERhdGUubm93KCk7XG4gICAgICAgIGNvbnN0IHsgbW9kZWwsIHdoZXJlLCB1cGRhdGUgfSA9IGRhdGE7XG4gICAgICAgIGNvbnN0IGNvbGxlY3Rpb25TbHVnID0gZ2V0TW9kZWxOYW1lKG1vZGVsKTtcbiAgICAgICAgY29uc3QgcGF5bG9hZFdoZXJlID0gY29udmVydFdoZXJlQ2xhdXNlKHtcbiAgICAgICAgICBpZFR5cGU6IGNvbmZpZy5pZFR5cGUsXG4gICAgICAgICAgbW9kZWwsXG4gICAgICAgICAgd2hlcmUsXG4gICAgICAgIH0pO1xuICAgICAgICBkZWJ1Z0xvZyhbXCJ1cGRhdGVcIiwgeyBjb2xsZWN0aW9uU2x1ZywgdXBkYXRlIH1dKTtcbiAgICAgICAgdHJ5IHtcbiAgICAgICAgICBjb25zdCBwYXlsb2FkID0gYXdhaXQgcmVzb2x2ZVBheWxvYWRDbGllbnQoKTtcbiAgICAgICAgICBpZiAoIWNvbGxlY3Rpb25TbHVnIHx8ICEoY29sbGVjdGlvblNsdWcgaW4gcGF5bG9hZC5jb2xsZWN0aW9ucykpIHtcbiAgICAgICAgICAgIGNvbGxlY3Rpb25TbHVnRXJyb3IobW9kZWwpO1xuICAgICAgICAgIH1cbiAgICAgICAgICBsZXQgcmVzdWx0OiBSZWNvcmQ8c3RyaW5nLCBhbnk+IHwgbnVsbCA9IG51bGw7XG4gICAgICAgICAgY29uc3QgaWQgPSBzaW5nbGVJZFF1ZXJ5KHBheWxvYWRXaGVyZSk7XG4gICAgICAgICAgaWYgKGlkKSB7XG4gICAgICAgICAgICBkZWJ1Z0xvZyhbXCJ1cGRhdGVCeUlEXCIsIHsgY29sbGVjdGlvblNsdWcsIGlkIH1dKTtcbiAgICAgICAgICAgIGNvbnN0IGRvYyA9IGF3YWl0IHBheWxvYWQudXBkYXRlKHtcbiAgICAgICAgICAgICAgY29sbGVjdGlvbjogY29sbGVjdGlvblNsdWcsXG4gICAgICAgICAgICAgIGlkLFxuICAgICAgICAgICAgICBkYXRhOiB1cGRhdGUsXG4gICAgICAgICAgICAgIGRlcHRoOiBQQVlMT0FEX1FVRVJZX0RFUFRILFxuICAgICAgICAgICAgICBjb250ZXh0OiBjcmVhdGVBZGFwdGVyQ29udGV4dCh7IG1vZGVsLCBvcGVyYXRpb246IFwidXBkYXRlQnlJRFwiIH0pLFxuICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICByZXN1bHQgPSBkb2M7XG4gICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIGRlYnVnTG9nKFtcInVwZGF0ZUJ5V2hlcmVcIiwgeyBjb2xsZWN0aW9uU2x1ZywgcGF5bG9hZFdoZXJlIH1dKTtcbiAgICAgICAgICAgIGNvbnN0IGRvYyA9IGF3YWl0IHBheWxvYWQudXBkYXRlKHtcbiAgICAgICAgICAgICAgY29sbGVjdGlvbjogY29sbGVjdGlvblNsdWcsXG4gICAgICAgICAgICAgIHdoZXJlOiBwYXlsb2FkV2hlcmUsXG4gICAgICAgICAgICAgIGRhdGE6IHVwZGF0ZSxcbiAgICAgICAgICAgICAgZGVwdGg6IFBBWUxPQURfUVVFUllfREVQVEgsXG4gICAgICAgICAgICAgIGNvbnRleHQ6IGNyZWF0ZUFkYXB0ZXJDb250ZXh0KHtcbiAgICAgICAgICAgICAgICBtb2RlbCxcbiAgICAgICAgICAgICAgICBvcGVyYXRpb246IFwidXBkYXRlQnlXaGVyZVwiLFxuICAgICAgICAgICAgICB9KSxcbiAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgcmVzdWx0ID0gZG9jLmRvY3NbMF07XG4gICAgICAgICAgfVxuICAgICAgICAgIGNvbnN0IHRyYW5zZm9ybWVkUmVzdWx0ID0gdHJhbnNmb3JtT3V0cHV0PHR5cGVvZiByZXN1bHQgfCBudWxsPih7XG4gICAgICAgICAgICBkb2M6IHJlc3VsdCxcbiAgICAgICAgICAgIG1vZGVsLFxuICAgICAgICAgIH0pO1xuICAgICAgICAgIGRlYnVnTG9nKFtcbiAgICAgICAgICAgIFwidXBkYXRlIHJlc3VsdFwiLFxuICAgICAgICAgICAge1xuICAgICAgICAgICAgICBjb2xsZWN0aW9uU2x1ZyxcbiAgICAgICAgICAgICAgdHJhbnNmb3JtZWRSZXN1bHQsXG4gICAgICAgICAgICAgIGR1cmF0aW9uOiBgJHtEYXRlLm5vdygpIC0gc3RhcnR9bXNgLFxuICAgICAgICAgICAgfSxcbiAgICAgICAgICBdKTtcbiAgICAgICAgICByZXR1cm4gdHJhbnNmb3JtZWRSZXN1bHQgYXMgVDtcbiAgICAgICAgfSBjYXRjaCAoZXJyb3IpIHtcbiAgICAgICAgICBlcnJvckxvZyhbXCJFcnJvciBpbiB1cGRhdGU6IFwiLCBlcnJvcl0pO1xuICAgICAgICAgIHJldHVybiBudWxsO1xuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgYXN5bmMgdXBkYXRlTWFueShkYXRhOiB7XG4gICAgICAgIG1vZGVsOiBzdHJpbmc7XG4gICAgICAgIHdoZXJlOiBXaGVyZVtdO1xuICAgICAgICB1cGRhdGU6IFJlY29yZDxzdHJpbmcsIHVua25vd24+O1xuICAgICAgfSk6IFByb21pc2U8bnVtYmVyPiB7XG4gICAgICAgIGNvbnN0IHN0YXJ0ID0gRGF0ZS5ub3coKTtcbiAgICAgICAgY29uc3QgeyBtb2RlbCwgd2hlcmUsIHVwZGF0ZSB9ID0gZGF0YTtcbiAgICAgICAgY29uc3QgY29sbGVjdGlvblNsdWcgPSBnZXRNb2RlbE5hbWUobW9kZWwpO1xuICAgICAgICBjb25zdCBwYXlsb2FkV2hlcmUgPSBjb252ZXJ0V2hlcmVDbGF1c2Uoe1xuICAgICAgICAgIGlkVHlwZTogY29uZmlnLmlkVHlwZSxcbiAgICAgICAgICBtb2RlbCxcbiAgICAgICAgICB3aGVyZSxcbiAgICAgICAgfSk7XG4gICAgICAgIGRlYnVnTG9nKFtcInVwZGF0ZU1hbnlcIiwgeyBjb2xsZWN0aW9uU2x1ZywgcGF5bG9hZFdoZXJlLCB1cGRhdGUgfV0pO1xuICAgICAgICB0cnkge1xuICAgICAgICAgIGNvbnN0IHBheWxvYWQgPSBhd2FpdCByZXNvbHZlUGF5bG9hZENsaWVudCgpO1xuICAgICAgICAgIGlmICghY29sbGVjdGlvblNsdWcgfHwgIShjb2xsZWN0aW9uU2x1ZyBpbiBwYXlsb2FkLmNvbGxlY3Rpb25zKSkge1xuICAgICAgICAgICAgY29sbGVjdGlvblNsdWdFcnJvcihtb2RlbCk7XG4gICAgICAgICAgfVxuICAgICAgICAgIGNvbnN0IHsgZG9jczogdXBkYXRlUmVzdWx0IH0gPSBhd2FpdCBwYXlsb2FkLnVwZGF0ZSh7XG4gICAgICAgICAgICBjb2xsZWN0aW9uOiBjb2xsZWN0aW9uU2x1ZyxcbiAgICAgICAgICAgIHdoZXJlOiBwYXlsb2FkV2hlcmUsXG4gICAgICAgICAgICBkYXRhOiB1cGRhdGUsXG4gICAgICAgICAgICBkZXB0aDogUEFZTE9BRF9RVUVSWV9ERVBUSCxcbiAgICAgICAgICAgIGNvbnRleHQ6IGNyZWF0ZUFkYXB0ZXJDb250ZXh0KHsgbW9kZWwsIG9wZXJhdGlvbjogXCJ1cGRhdGVNYW55XCIgfSksXG4gICAgICAgICAgfSk7XG4gICAgICAgICAgZGVidWdMb2coW1xuICAgICAgICAgICAgXCJ1cGRhdGVNYW55IHJlc3VsdFwiLFxuICAgICAgICAgICAge1xuICAgICAgICAgICAgICBjb2xsZWN0aW9uU2x1ZyxcbiAgICAgICAgICAgICAgcmVzdWx0OiB1cGRhdGVSZXN1bHQsXG4gICAgICAgICAgICAgIGR1cmF0aW9uOiBgJHtEYXRlLm5vdygpIC0gc3RhcnR9bXNgLFxuICAgICAgICAgICAgfSxcbiAgICAgICAgICBdKTtcbiAgICAgICAgICByZXR1cm4gdXBkYXRlUmVzdWx0Py5sZW5ndGggfHwgMDtcbiAgICAgICAgfSBjYXRjaCAoZXJyb3IpIHtcbiAgICAgICAgICBlcnJvckxvZyhbXCJFcnJvciBpbiB1cGRhdGVNYW55OiBcIiwgZXJyb3JdKTtcbiAgICAgICAgICByZXR1cm4gMDtcbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIGFzeW5jIGRlbGV0ZShkYXRhOiB7IG1vZGVsOiBzdHJpbmc7IHdoZXJlOiBXaGVyZVtdIH0pOiBQcm9taXNlPHZvaWQ+IHtcbiAgICAgICAgY29uc3Qgc3RhcnQgPSBEYXRlLm5vdygpO1xuICAgICAgICBjb25zdCB7IG1vZGVsLCB3aGVyZSB9ID0gZGF0YTtcbiAgICAgICAgY29uc3QgY29sbGVjdGlvblNsdWcgPSBnZXRNb2RlbE5hbWUobW9kZWwpO1xuICAgICAgICBjb25zdCBwYXlsb2FkV2hlcmUgPSBjb252ZXJ0V2hlcmVDbGF1c2Uoe1xuICAgICAgICAgIGlkVHlwZTogY29uZmlnLmlkVHlwZSxcbiAgICAgICAgICBtb2RlbCxcbiAgICAgICAgICB3aGVyZSxcbiAgICAgICAgfSk7XG4gICAgICAgIGRlYnVnTG9nKFtcImRlbGV0ZVwiLCB7IGNvbGxlY3Rpb25TbHVnIH1dKTtcbiAgICAgICAgdHJ5IHtcbiAgICAgICAgICBjb25zdCBwYXlsb2FkID0gYXdhaXQgcmVzb2x2ZVBheWxvYWRDbGllbnQoKTtcbiAgICAgICAgICBpZiAoIWNvbGxlY3Rpb25TbHVnIHx8ICEoY29sbGVjdGlvblNsdWcgaW4gcGF5bG9hZC5jb2xsZWN0aW9ucykpIHtcbiAgICAgICAgICAgIGNvbGxlY3Rpb25TbHVnRXJyb3IobW9kZWwpO1xuICAgICAgICAgIH1cbiAgICAgICAgICBsZXQgZGVsZXRlUmVzdWx0OiB7XG4gICAgICAgICAgICBkb2M6IFJlY29yZDxzdHJpbmcsIGFueT4gfCBudWxsO1xuICAgICAgICAgICAgZXJyb3JzOiBhbnlbXTtcbiAgICAgICAgICB9IHwgbnVsbCA9IG51bGw7XG4gICAgICAgICAgY29uc3QgaWQgPSBzaW5nbGVJZFF1ZXJ5KHBheWxvYWRXaGVyZSk7XG4gICAgICAgICAgaWYgKGlkKSB7XG4gICAgICAgICAgICBkZWJ1Z0xvZyhbXCJkZWxldGVCeUlEXCIsIHsgY29sbGVjdGlvblNsdWcsIGlkIH1dKTtcbiAgICAgICAgICAgIGNvbnN0IGRvYyA9IGF3YWl0IHBheWxvYWQuZGVsZXRlKHtcbiAgICAgICAgICAgICAgY29sbGVjdGlvbjogY29sbGVjdGlvblNsdWcsXG4gICAgICAgICAgICAgIGlkLFxuICAgICAgICAgICAgICBkZXB0aDogUEFZTE9BRF9RVUVSWV9ERVBUSCxcbiAgICAgICAgICAgICAgY29udGV4dDogY3JlYXRlQWRhcHRlckNvbnRleHQoeyBtb2RlbCwgb3BlcmF0aW9uOiBcImRlbGV0ZUJ5SURcIiB9KSxcbiAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgZGVsZXRlUmVzdWx0ID0geyBkb2MsIGVycm9yczogW10gfTtcbiAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgZGVidWdMb2coW1wiZGVsZXRlQnlXaGVyZVwiLCB7IGNvbGxlY3Rpb25TbHVnLCBwYXlsb2FkV2hlcmUgfV0pO1xuICAgICAgICAgICAgY29uc3QgZG9jID0gYXdhaXQgcGF5bG9hZC5kZWxldGUoe1xuICAgICAgICAgICAgICBjb2xsZWN0aW9uOiBjb2xsZWN0aW9uU2x1ZyxcbiAgICAgICAgICAgICAgd2hlcmU6IHBheWxvYWRXaGVyZSxcbiAgICAgICAgICAgICAgZGVwdGg6IFBBWUxPQURfUVVFUllfREVQVEgsXG4gICAgICAgICAgICAgIGNvbnRleHQ6IGNyZWF0ZUFkYXB0ZXJDb250ZXh0KHtcbiAgICAgICAgICAgICAgICBtb2RlbCxcbiAgICAgICAgICAgICAgICBvcGVyYXRpb246IFwiZGVsZXRlQnlXaGVyZVwiLFxuICAgICAgICAgICAgICB9KSxcbiAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgZGVsZXRlUmVzdWx0ID0geyBkb2M6IGRvYy5kb2NzWzBdLCBlcnJvcnM6IFtdIH07XG4gICAgICAgICAgfVxuICAgICAgICAgIGRlYnVnTG9nKFtcbiAgICAgICAgICAgIFwiZGVsZXRlIHJlc3VsdFwiLFxuICAgICAgICAgICAge1xuICAgICAgICAgICAgICBjb2xsZWN0aW9uU2x1ZyxcbiAgICAgICAgICAgICAgcmVzdWx0OiBkZWxldGVSZXN1bHQsXG4gICAgICAgICAgICAgIGR1cmF0aW9uOiBgJHtEYXRlLm5vdygpIC0gc3RhcnR9bXNgLFxuICAgICAgICAgICAgfSxcbiAgICAgICAgICBdKTtcbiAgICAgICAgICByZXR1cm47XG4gICAgICAgIH0gY2F0Y2ggKGVycm9yKSB7XG4gICAgICAgICAgZXJyb3JMb2coW1wiRXJyb3IgaW4gZGVsZXRlOiBcIiwgZXJyb3JdKTtcbiAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBhc3luYyBkZWxldGVNYW55KGRhdGE6IHtcbiAgICAgICAgbW9kZWw6IHN0cmluZztcbiAgICAgICAgd2hlcmU6IFdoZXJlW107XG4gICAgICB9KTogUHJvbWlzZTxudW1iZXI+IHtcbiAgICAgICAgY29uc3Qgc3RhcnQgPSBEYXRlLm5vdygpO1xuICAgICAgICBjb25zdCB7IG1vZGVsLCB3aGVyZSB9ID0gZGF0YTtcbiAgICAgICAgY29uc3QgY29sbGVjdGlvblNsdWcgPSBnZXRNb2RlbE5hbWUobW9kZWwpO1xuICAgICAgICBjb25zdCBwYXlsb2FkV2hlcmUgPSBjb252ZXJ0V2hlcmVDbGF1c2Uoe1xuICAgICAgICAgIGlkVHlwZTogY29uZmlnLmlkVHlwZSxcbiAgICAgICAgICBtb2RlbCxcbiAgICAgICAgICB3aGVyZSxcbiAgICAgICAgfSk7XG4gICAgICAgIGRlYnVnTG9nKFtcImRlbGV0ZU1hbnlcIiwgeyBjb2xsZWN0aW9uU2x1ZywgcGF5bG9hZFdoZXJlIH1dKTtcbiAgICAgICAgdHJ5IHtcbiAgICAgICAgICBjb25zdCBwYXlsb2FkID0gYXdhaXQgcmVzb2x2ZVBheWxvYWRDbGllbnQoKTtcbiAgICAgICAgICBpZiAoIWNvbGxlY3Rpb25TbHVnIHx8ICEoY29sbGVjdGlvblNsdWcgaW4gcGF5bG9hZC5jb2xsZWN0aW9ucykpIHtcbiAgICAgICAgICAgIGNvbGxlY3Rpb25TbHVnRXJyb3IobW9kZWwpO1xuICAgICAgICAgIH1cbiAgICAgICAgICBjb25zdCBkZWxldGVSZXN1bHQgPSBhd2FpdCBwYXlsb2FkLmRlbGV0ZSh7XG4gICAgICAgICAgICBjb2xsZWN0aW9uOiBjb2xsZWN0aW9uU2x1ZyxcbiAgICAgICAgICAgIHdoZXJlOiBwYXlsb2FkV2hlcmUsXG4gICAgICAgICAgICBkZXB0aDogUEFZTE9BRF9RVUVSWV9ERVBUSCxcbiAgICAgICAgICAgIGNvbnRleHQ6IGNyZWF0ZUFkYXB0ZXJDb250ZXh0KHsgbW9kZWwsIG9wZXJhdGlvbjogXCJkZWxldGVNYW55XCIgfSksXG4gICAgICAgICAgfSk7XG4gICAgICAgICAgZGVidWdMb2coW1xuICAgICAgICAgICAgXCJkZWxldGVNYW55IHJlc3VsdFwiLFxuICAgICAgICAgICAge1xuICAgICAgICAgICAgICBjb2xsZWN0aW9uU2x1ZyxcbiAgICAgICAgICAgICAgcmVzdWx0OiBkZWxldGVSZXN1bHQsXG4gICAgICAgICAgICAgIGR1cmF0aW9uOiBgJHtEYXRlLm5vdygpIC0gc3RhcnR9bXNgLFxuICAgICAgICAgICAgfSxcbiAgICAgICAgICBdKTtcbiAgICAgICAgICByZXR1cm4gZGVsZXRlUmVzdWx0LmRvY3MubGVuZ3RoO1xuICAgICAgICB9IGNhdGNoIChlcnJvcikge1xuICAgICAgICAgIGVycm9yTG9nKFtcIkVycm9yIGluIGRlbGV0ZU1hbnk6IFwiLCBlcnJvcl0pO1xuICAgICAgICAgIHJldHVybiAwO1xuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgYXN5bmMgY291bnQoZGF0YTogeyBtb2RlbDogc3RyaW5nOyB3aGVyZT86IFdoZXJlW10gfSk6IFByb21pc2U8bnVtYmVyPiB7XG4gICAgICAgIGNvbnN0IHN0YXJ0ID0gRGF0ZS5ub3coKTtcbiAgICAgICAgY29uc3QgeyBtb2RlbCwgd2hlcmUgfSA9IGRhdGE7XG4gICAgICAgIGNvbnN0IGNvbGxlY3Rpb25TbHVnID0gZ2V0TW9kZWxOYW1lKG1vZGVsKTtcbiAgICAgICAgY29uc3QgcGF5bG9hZFdoZXJlID0gY29udmVydFdoZXJlQ2xhdXNlKHtcbiAgICAgICAgICBpZFR5cGU6IGNvbmZpZy5pZFR5cGUsXG4gICAgICAgICAgbW9kZWwsXG4gICAgICAgICAgd2hlcmUsXG4gICAgICAgIH0pO1xuICAgICAgICBkZWJ1Z0xvZyhbXCJjb3VudFwiLCB7IGNvbGxlY3Rpb25TbHVnLCBwYXlsb2FkV2hlcmUgfV0pO1xuICAgICAgICB0cnkge1xuICAgICAgICAgIGNvbnN0IHBheWxvYWQgPSBhd2FpdCByZXNvbHZlUGF5bG9hZENsaWVudCgpO1xuICAgICAgICAgIGlmICghY29sbGVjdGlvblNsdWcgfHwgIShjb2xsZWN0aW9uU2x1ZyBpbiBwYXlsb2FkLmNvbGxlY3Rpb25zKSkge1xuICAgICAgICAgICAgY29sbGVjdGlvblNsdWdFcnJvcihtb2RlbCk7XG4gICAgICAgICAgfVxuICAgICAgICAgIGNvbnN0IHJlc3VsdCA9IGF3YWl0IHBheWxvYWQuY291bnQoe1xuICAgICAgICAgICAgY29sbGVjdGlvbjogY29sbGVjdGlvblNsdWcsXG4gICAgICAgICAgICB3aGVyZTogcGF5bG9hZFdoZXJlLFxuICAgICAgICAgICAgZGVwdGg6IFBBWUxPQURfUVVFUllfREVQVEgsXG4gICAgICAgICAgICBjb250ZXh0OiBjcmVhdGVBZGFwdGVyQ29udGV4dCh7IG1vZGVsLCBvcGVyYXRpb246IFwiY291bnRcIiB9KSxcbiAgICAgICAgICB9KTtcbiAgICAgICAgICBkZWJ1Z0xvZyhbXG4gICAgICAgICAgICBcImNvdW50IHJlc3VsdFwiLFxuICAgICAgICAgICAge1xuICAgICAgICAgICAgICBjb2xsZWN0aW9uU2x1ZyxcbiAgICAgICAgICAgICAgcmVzdWx0OiB7IHRvdGFsRG9jczogcmVzdWx0LnRvdGFsRG9jcyB9LFxuICAgICAgICAgICAgICBkdXJhdGlvbjogYCR7RGF0ZS5ub3coKSAtIHN0YXJ0fW1zYCxcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgXSk7XG4gICAgICAgICAgcmV0dXJuIHJlc3VsdC50b3RhbERvY3M7XG4gICAgICAgIH0gY2F0Y2ggKGVycm9yKSB7XG4gICAgICAgICAgZXJyb3JMb2coW1wiRXJyb3IgaW4gY291bnQ6IFwiLCBlcnJvcl0pO1xuICAgICAgICAgIHJldHVybiAwO1xuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgY3JlYXRlU2NoZW1hOiBhc3luYyAob3B0aW9ucywgZmlsZSkgPT4ge1xuICAgICAgICBjb25zdCBzY2hlbWFDb2RlID0gYXdhaXQgZ2VuZXJhdGVTY2hlbWEob3B0aW9ucyk7XG4gICAgICAgIHJldHVybiB7XG4gICAgICAgICAgY29kZTogc2NoZW1hQ29kZSxcbiAgICAgICAgICBwYXRoOiBmaWxlIHx8IFwic2NoZW1hLnRzXCIsXG4gICAgICAgICAgYXBwZW5kOiBmYWxzZSxcbiAgICAgICAgICBvdmVyd3JpdGU6IHRydWUsXG4gICAgICAgIH07XG4gICAgICB9LFxuICAgICAgb3B0aW9uczoge1xuICAgICAgICBlbmFibGVEZWJ1Z0xvZ3M6IGNvbmZpZy5lbmFibGVEZWJ1Z0xvZ3MsXG4gICAgICAgIGlkVHlwZTogY29uZmlnLmlkVHlwZSxcbiAgICAgIH0sXG4gICAgfTtcbiAgfTtcbn07XG5cbmV4cG9ydCB7IGdlbmVyYXRlU2NoZW1hLCBwYXlsb2FkQWRhcHRlciB9O1xuIl0sIm5hbWVzIjpbIkJldHRlckF1dGhFcnJvciIsImdlbmVyYXRlU2NoZW1hIiwiY3JlYXRlVHJhbnNmb3JtIiwiQkVUVEVSX0FVVEhfQ09OVEVYVF9LRVkiLCJQQVlMT0FEX1FVRVJZX0RFUFRIIiwicGF5bG9hZEFkYXB0ZXIiLCJwYXlsb2FkQ2xpZW50IiwiY29uZmlnIiwiZGVidWdMb2ciLCJtZXNzYWdlIiwiZW5hYmxlRGVidWdMb2dzIiwiY29uc29sZSIsImxvZyIsImVycm9yTG9nIiwiZXJyb3IiLCJjb2xsZWN0aW9uU2x1Z0Vycm9yIiwibW9kZWwiLCJjcmVhdGVBZGFwdGVyQ29udGV4dCIsImRhdGEiLCJyZXNvbHZlUGF5bG9hZENsaWVudCIsInBheWxvYWQiLCJjdXN0b20iLCJoYXNCZXR0ZXJBdXRoUGx1Z2luIiwib3B0aW9ucyIsInRyYW5zZm9ybUlucHV0IiwidHJhbnNmb3JtT3V0cHV0IiwiY29udmVydFdoZXJlQ2xhdXNlIiwiY29udmVydFNlbGVjdCIsImNvbnZlcnRTb3J0IiwiZ2V0TW9kZWxOYW1lIiwic2luZ2xlSWRRdWVyeSIsIm11bHRpcGxlSWRzUXVlcnkiLCJpZCIsImNyZWF0ZSIsInN0YXJ0IiwiRGF0ZSIsIm5vdyIsInZhbHVlcyIsInNlbGVjdCIsImNvbGxlY3Rpb25TbHVnIiwidHJhbnNmb3JtZWQiLCJhY3Rpb24iLCJpZFR5cGUiLCJjb2xsZWN0aW9ucyIsInJlc3VsdCIsImNvbGxlY3Rpb24iLCJjb250ZXh0Iiwib3BlcmF0aW9uIiwiZGVwdGgiLCJ0cmFuc2Zvcm1lZFJlc3VsdCIsImRvYyIsImR1cmF0aW9uIiwiZmluZE9uZSIsIndoZXJlIiwicGF5bG9hZFdoZXJlIiwiZmluZEJ5SUQiLCJkb2NzIiwiZmluZCIsImxpbWl0IiwiZmluZE1hbnkiLCJzb3J0QnkiLCJvZmZzZXQiLCJtdWx0aXBsZUlkcyIsInNpbmdsZUlkIiwibGVuZ3RoIiwiaWRzIiwicmVzIiwidG90YWxEb2NzIiwicHVzaCIsInBhZ2UiLCJNYXRoIiwiZmxvb3IiLCJzb3J0IiwibWFwIiwidXBkYXRlIiwidXBkYXRlTWFueSIsInVwZGF0ZVJlc3VsdCIsImRlbGV0ZSIsImRlbGV0ZVJlc3VsdCIsImVycm9ycyIsImRlbGV0ZU1hbnkiLCJjb3VudCIsImNyZWF0ZVNjaGVtYSIsImZpbGUiLCJzY2hlbWFDb2RlIiwiY29kZSIsInBhdGgiLCJhcHBlbmQiLCJvdmVyd3JpdGUiXSwibWFwcGluZ3MiOiJBQUFBLFNBQVNBLGVBQWUsUUFBUSxjQUFjO0FBRTlDLFNBQVNDLGNBQWMsUUFBUSxvQkFBb0I7QUFDbkQsU0FBU0MsZUFBZSxRQUFRLGNBQWM7QUFHOUMsT0FBTyxNQUFNQywwQkFBMEIscUJBQXFCO0FBQzVELE1BQU1DLHNCQUFzQjtBQUU1QixNQUFNQyxpQkFBaUMsQ0FBQ0MsZUFBZUM7SUFDckQsU0FBU0MsU0FBU0MsT0FBYztRQUM5QixJQUFJRixPQUFPRyxlQUFlLEVBQUU7WUFDMUJDLFFBQVFDLEdBQUcsQ0FBQywyQkFBMkJIO1FBQ3pDO0lBQ0Y7SUFFQSxTQUFTSSxTQUFTSixPQUFjO1FBQzlCRSxRQUFRRyxLQUFLLENBQUMsQ0FBQyxvQkFBb0IsQ0FBQyxLQUFLTDtJQUMzQztJQUVBLFNBQVNNLG9CQUFvQkMsS0FBYTtRQUN4QyxNQUFNLElBQUloQixnQkFDUixDQUFDLFdBQVcsRUFBRWdCLE1BQU0sd0ZBQXdGLENBQUM7SUFFakg7SUFFQSxNQUFNQyx1QkFBdUIsQ0FBQ0MsT0FBK0IsQ0FBQTtZQUMzRCxDQUFDZix3QkFBd0IsRUFBRTtnQkFBRSxHQUFHZSxJQUFJO1lBQUM7UUFDdkMsQ0FBQTtJQUVBLGVBQWVDO1FBQ2IsTUFBTUMsVUFDSixPQUFPZCxrQkFBa0IsYUFDckIsTUFBTUEsa0JBQ04sTUFBTUE7UUFD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
|
|
@@ -1,16 +1,29 @@
|
|
|
1
|
-
import type { BetterAuthOptions, Where } from
|
|
2
|
-
import type { CollectionSlug, Where as PayloadWhere } from
|
|
1
|
+
import type { BetterAuthOptions, Where } from "better-auth";
|
|
2
|
+
import type { CollectionSlug, Where as PayloadWhere } from "payload";
|
|
3
3
|
export declare const createTransform: (options: BetterAuthOptions, enableDebugLogs: boolean) => {
|
|
4
|
-
|
|
4
|
+
getFieldName: (model: string, field: string) => string;
|
|
5
5
|
getModelName: (model: string) => CollectionSlug;
|
|
6
6
|
singleIdQuery: (where: PayloadWhere) => string | number | null;
|
|
7
7
|
multipleIdsQuery: (where: PayloadWhere) => (string | number)[] | null;
|
|
8
|
-
transformInput: (data
|
|
9
|
-
|
|
10
|
-
|
|
8
|
+
transformInput: ({ data, model, idType, action, }: {
|
|
9
|
+
data: Record<string, any>;
|
|
10
|
+
model: string;
|
|
11
|
+
idType: "number" | "text";
|
|
12
|
+
action: "create" | "update";
|
|
13
|
+
}) => Record<string, any>;
|
|
14
|
+
transformOutput: <T extends Record<string, any> | null>({ doc, model, }: {
|
|
15
|
+
doc: T;
|
|
16
|
+
model: string;
|
|
17
|
+
}) => T;
|
|
18
|
+
convertWhereClause: ({ idType, model, where, }: {
|
|
19
|
+
idType: "number" | "text";
|
|
20
|
+
model: string;
|
|
21
|
+
where?: Where[];
|
|
22
|
+
}) => PayloadWhere;
|
|
11
23
|
convertSelect: (model: string, select?: string[]) => {} | undefined;
|
|
12
24
|
convertSort: (model: string, sortBy?: {
|
|
13
25
|
field: string;
|
|
14
26
|
direction: "asc" | "desc";
|
|
15
27
|
}) => string | undefined;
|
|
16
28
|
};
|
|
29
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/better-auth/adapter/transform/index.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,iBAAiB,EAAE,KAAK,EAAE,MAAM,aAAa,CAAC;AAC5D,OAAO,KAAK,EAAE,cAAc,EAAE,KAAK,IAAI,YAAY,EAAE,MAAM,SAAS,CAAC;AAErE,eAAO,MAAM,eAAe,GAC1B,SAAS,iBAAiB,EAC1B,iBAAiB,OAAO;0BAqBK,MAAM,SAAS,MAAM;0BAXrB,MAAM,KAAG,cAAc;2BAqCtB,YAAY;8BAyCT,YAAY;uDA0R1C;QACD,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;QAC1B,KAAK,EAAE,MAAM,CAAC;QACd,MAAM,EAAE,QAAQ,GAAG,MAAM,CAAC;QAC1B,MAAM,EAAE,QAAQ,GAAG,QAAQ,CAAC;KAC7B;sBA0BwB,CAAC,SAAS,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,GAAG,IAAI,mBAG1D;QACD,GAAG,EAAE,CAAC,CAAC;QACP,KAAK,EAAE,MAAM,CAAC;KACf,KAAG,CAAC;oDAwIF;QACD,MAAM,EAAE,QAAQ,GAAG,MAAM,CAAC;QAC1B,KAAK,EAAE,MAAM,CAAC;QACd,KAAK,CAAC,EAAE,KAAK,EAAE,CAAC;KACjB,KAAG,YAAY;2BAoDc,MAAM,WAAW,MAAM,EAAE;yBAS9C,MAAM,WACJ;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,SAAS,EAAE,KAAK,GAAG,MAAM,CAAA;KAAE;CAoBxD,CAAC"}
|