@hammadj/better-auth 1.5.0-beta.9
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/LICENSE.md +20 -0
- package/README.md +33 -0
- package/dist/_virtual/rolldown_runtime.mjs +36 -0
- package/dist/adapters/drizzle-adapter/index.d.mts +1 -0
- package/dist/adapters/drizzle-adapter/index.mjs +3 -0
- package/dist/adapters/index.d.mts +23 -0
- package/dist/adapters/index.mjs +13 -0
- package/dist/adapters/index.mjs.map +1 -0
- package/dist/adapters/kysely-adapter/index.d.mts +1 -0
- package/dist/adapters/kysely-adapter/index.mjs +3 -0
- package/dist/adapters/memory-adapter/index.d.mts +1 -0
- package/dist/adapters/memory-adapter/index.mjs +3 -0
- package/dist/adapters/mongodb-adapter/index.d.mts +1 -0
- package/dist/adapters/mongodb-adapter/index.mjs +3 -0
- package/dist/adapters/prisma-adapter/index.d.mts +1 -0
- package/dist/adapters/prisma-adapter/index.mjs +3 -0
- package/dist/api/index.d.mts +40 -0
- package/dist/api/index.mjs +205 -0
- package/dist/api/index.mjs.map +1 -0
- package/dist/api/middlewares/index.d.mts +1 -0
- package/dist/api/middlewares/index.mjs +3 -0
- package/dist/api/middlewares/origin-check.d.mts +17 -0
- package/dist/api/middlewares/origin-check.mjs +140 -0
- package/dist/api/middlewares/origin-check.mjs.map +1 -0
- package/dist/api/rate-limiter/index.mjs +177 -0
- package/dist/api/rate-limiter/index.mjs.map +1 -0
- package/dist/api/routes/account.d.mts +10 -0
- package/dist/api/routes/account.mjs +493 -0
- package/dist/api/routes/account.mjs.map +1 -0
- package/dist/api/routes/callback.d.mts +5 -0
- package/dist/api/routes/callback.mjs +178 -0
- package/dist/api/routes/callback.mjs.map +1 -0
- package/dist/api/routes/email-verification.d.mts +29 -0
- package/dist/api/routes/email-verification.mjs +301 -0
- package/dist/api/routes/email-verification.mjs.map +1 -0
- package/dist/api/routes/error.d.mts +5 -0
- package/dist/api/routes/error.mjs +386 -0
- package/dist/api/routes/error.mjs.map +1 -0
- package/dist/api/routes/index.d.mts +11 -0
- package/dist/api/routes/index.mjs +13 -0
- package/dist/api/routes/ok.d.mts +5 -0
- package/dist/api/routes/ok.mjs +30 -0
- package/dist/api/routes/ok.mjs.map +1 -0
- package/dist/api/routes/password.d.mts +8 -0
- package/dist/api/routes/password.mjs +198 -0
- package/dist/api/routes/password.mjs.map +1 -0
- package/dist/api/routes/session.d.mts +52 -0
- package/dist/api/routes/session.mjs +478 -0
- package/dist/api/routes/session.mjs.map +1 -0
- package/dist/api/routes/sign-in.d.mts +8 -0
- package/dist/api/routes/sign-in.mjs +262 -0
- package/dist/api/routes/sign-in.mjs.map +1 -0
- package/dist/api/routes/sign-out.d.mts +5 -0
- package/dist/api/routes/sign-out.mjs +33 -0
- package/dist/api/routes/sign-out.mjs.map +1 -0
- package/dist/api/routes/sign-up.d.mts +7 -0
- package/dist/api/routes/sign-up.mjs +227 -0
- package/dist/api/routes/sign-up.mjs.map +1 -0
- package/dist/api/routes/update-user.d.mts +12 -0
- package/dist/api/routes/update-user.mjs +493 -0
- package/dist/api/routes/update-user.mjs.map +1 -0
- package/dist/api/state/oauth.d.mts +5 -0
- package/dist/api/state/oauth.mjs +8 -0
- package/dist/api/state/oauth.mjs.map +1 -0
- package/dist/api/state/should-session-refresh.d.mts +13 -0
- package/dist/api/state/should-session-refresh.mjs +16 -0
- package/dist/api/state/should-session-refresh.mjs.map +1 -0
- package/dist/api/to-auth-endpoints.mjs +197 -0
- package/dist/api/to-auth-endpoints.mjs.map +1 -0
- package/dist/auth/base.mjs +44 -0
- package/dist/auth/base.mjs.map +1 -0
- package/dist/auth/full.d.mts +30 -0
- package/dist/auth/full.mjs +32 -0
- package/dist/auth/full.mjs.map +1 -0
- package/dist/auth/minimal.d.mts +12 -0
- package/dist/auth/minimal.mjs +14 -0
- package/dist/auth/minimal.mjs.map +1 -0
- package/dist/auth/trusted-origins.mjs +31 -0
- package/dist/auth/trusted-origins.mjs.map +1 -0
- package/dist/client/broadcast-channel.d.mts +20 -0
- package/dist/client/broadcast-channel.mjs +46 -0
- package/dist/client/broadcast-channel.mjs.map +1 -0
- package/dist/client/config.mjs +90 -0
- package/dist/client/config.mjs.map +1 -0
- package/dist/client/fetch-plugins.mjs +18 -0
- package/dist/client/fetch-plugins.mjs.map +1 -0
- package/dist/client/focus-manager.d.mts +11 -0
- package/dist/client/focus-manager.mjs +32 -0
- package/dist/client/focus-manager.mjs.map +1 -0
- package/dist/client/index.d.mts +30 -0
- package/dist/client/index.mjs +21 -0
- package/dist/client/index.mjs.map +1 -0
- package/dist/client/lynx/index.d.mts +62 -0
- package/dist/client/lynx/index.mjs +24 -0
- package/dist/client/lynx/index.mjs.map +1 -0
- package/dist/client/lynx/lynx-store.d.mts +47 -0
- package/dist/client/lynx/lynx-store.mjs +47 -0
- package/dist/client/lynx/lynx-store.mjs.map +1 -0
- package/dist/client/online-manager.d.mts +12 -0
- package/dist/client/online-manager.mjs +35 -0
- package/dist/client/online-manager.mjs.map +1 -0
- package/dist/client/parser.mjs +73 -0
- package/dist/client/parser.mjs.map +1 -0
- package/dist/client/path-to-object.d.mts +57 -0
- package/dist/client/plugins/index.d.mts +58 -0
- package/dist/client/plugins/index.mjs +33 -0
- package/dist/client/plugins/infer-plugin.d.mts +9 -0
- package/dist/client/plugins/infer-plugin.mjs +11 -0
- package/dist/client/plugins/infer-plugin.mjs.map +1 -0
- package/dist/client/proxy.mjs +79 -0
- package/dist/client/proxy.mjs.map +1 -0
- package/dist/client/query.d.mts +23 -0
- package/dist/client/query.mjs +98 -0
- package/dist/client/query.mjs.map +1 -0
- package/dist/client/react/index.d.mts +63 -0
- package/dist/client/react/index.mjs +24 -0
- package/dist/client/react/index.mjs.map +1 -0
- package/dist/client/react/react-store.d.mts +47 -0
- package/dist/client/react/react-store.mjs +47 -0
- package/dist/client/react/react-store.mjs.map +1 -0
- package/dist/client/session-atom.mjs +29 -0
- package/dist/client/session-atom.mjs.map +1 -0
- package/dist/client/session-refresh.d.mts +28 -0
- package/dist/client/session-refresh.mjs +140 -0
- package/dist/client/session-refresh.mjs.map +1 -0
- package/dist/client/solid/index.d.mts +57 -0
- package/dist/client/solid/index.mjs +22 -0
- package/dist/client/solid/index.mjs.map +1 -0
- package/dist/client/solid/solid-store.mjs +24 -0
- package/dist/client/solid/solid-store.mjs.map +1 -0
- package/dist/client/svelte/index.d.mts +63 -0
- package/dist/client/svelte/index.mjs +20 -0
- package/dist/client/svelte/index.mjs.map +1 -0
- package/dist/client/types.d.mts +58 -0
- package/dist/client/vanilla.d.mts +62 -0
- package/dist/client/vanilla.mjs +20 -0
- package/dist/client/vanilla.mjs.map +1 -0
- package/dist/client/vue/index.d.mts +86 -0
- package/dist/client/vue/index.mjs +38 -0
- package/dist/client/vue/index.mjs.map +1 -0
- package/dist/client/vue/vue-store.mjs +26 -0
- package/dist/client/vue/vue-store.mjs.map +1 -0
- package/dist/context/create-context.mjs +211 -0
- package/dist/context/create-context.mjs.map +1 -0
- package/dist/context/helpers.mjs +62 -0
- package/dist/context/helpers.mjs.map +1 -0
- package/dist/context/init-minimal.mjs +20 -0
- package/dist/context/init-minimal.mjs.map +1 -0
- package/dist/context/init.mjs +22 -0
- package/dist/context/init.mjs.map +1 -0
- package/dist/cookies/cookie-utils.d.mts +29 -0
- package/dist/cookies/cookie-utils.mjs +105 -0
- package/dist/cookies/cookie-utils.mjs.map +1 -0
- package/dist/cookies/index.d.mts +67 -0
- package/dist/cookies/index.mjs +264 -0
- package/dist/cookies/index.mjs.map +1 -0
- package/dist/cookies/session-store.d.mts +36 -0
- package/dist/cookies/session-store.mjs +200 -0
- package/dist/cookies/session-store.mjs.map +1 -0
- package/dist/crypto/buffer.d.mts +8 -0
- package/dist/crypto/buffer.mjs +18 -0
- package/dist/crypto/buffer.mjs.map +1 -0
- package/dist/crypto/index.d.mts +27 -0
- package/dist/crypto/index.mjs +38 -0
- package/dist/crypto/index.mjs.map +1 -0
- package/dist/crypto/jwt.d.mts +8 -0
- package/dist/crypto/jwt.mjs +95 -0
- package/dist/crypto/jwt.mjs.map +1 -0
- package/dist/crypto/password.d.mts +12 -0
- package/dist/crypto/password.mjs +36 -0
- package/dist/crypto/password.mjs.map +1 -0
- package/dist/crypto/random.d.mts +5 -0
- package/dist/crypto/random.mjs +8 -0
- package/dist/crypto/random.mjs.map +1 -0
- package/dist/db/adapter-base.d.mts +8 -0
- package/dist/db/adapter-base.mjs +28 -0
- package/dist/db/adapter-base.mjs.map +1 -0
- package/dist/db/adapter-kysely.d.mts +8 -0
- package/dist/db/adapter-kysely.mjs +21 -0
- package/dist/db/adapter-kysely.mjs.map +1 -0
- package/dist/db/field-converter.d.mts +8 -0
- package/dist/db/field-converter.mjs +21 -0
- package/dist/db/field-converter.mjs.map +1 -0
- package/dist/db/field.d.mts +55 -0
- package/dist/db/field.mjs +11 -0
- package/dist/db/field.mjs.map +1 -0
- package/dist/db/get-migration.d.mts +23 -0
- package/dist/db/get-migration.mjs +339 -0
- package/dist/db/get-migration.mjs.map +1 -0
- package/dist/db/get-schema.d.mts +11 -0
- package/dist/db/get-schema.mjs +39 -0
- package/dist/db/get-schema.mjs.map +1 -0
- package/dist/db/index.d.mts +9 -0
- package/dist/db/index.mjs +36 -0
- package/dist/db/index.mjs.map +1 -0
- package/dist/db/internal-adapter.d.mts +14 -0
- package/dist/db/internal-adapter.mjs +616 -0
- package/dist/db/internal-adapter.mjs.map +1 -0
- package/dist/db/schema.d.mts +26 -0
- package/dist/db/schema.mjs +118 -0
- package/dist/db/schema.mjs.map +1 -0
- package/dist/db/to-zod.d.mts +36 -0
- package/dist/db/to-zod.mjs +26 -0
- package/dist/db/to-zod.mjs.map +1 -0
- package/dist/db/verification-token-storage.mjs +28 -0
- package/dist/db/verification-token-storage.mjs.map +1 -0
- package/dist/db/with-hooks.d.mts +33 -0
- package/dist/db/with-hooks.mjs +159 -0
- package/dist/db/with-hooks.mjs.map +1 -0
- package/dist/index.d.mts +52 -0
- package/dist/index.mjs +26 -0
- package/dist/integrations/next-js.d.mts +14 -0
- package/dist/integrations/next-js.mjs +78 -0
- package/dist/integrations/next-js.mjs.map +1 -0
- package/dist/integrations/node.d.mts +13 -0
- package/dist/integrations/node.mjs +16 -0
- package/dist/integrations/node.mjs.map +1 -0
- package/dist/integrations/solid-start.d.mts +23 -0
- package/dist/integrations/solid-start.mjs +17 -0
- package/dist/integrations/solid-start.mjs.map +1 -0
- package/dist/integrations/svelte-kit.d.mts +29 -0
- package/dist/integrations/svelte-kit.mjs +57 -0
- package/dist/integrations/svelte-kit.mjs.map +1 -0
- package/dist/integrations/tanstack-start-solid.d.mts +22 -0
- package/dist/integrations/tanstack-start-solid.mjs +61 -0
- package/dist/integrations/tanstack-start-solid.mjs.map +1 -0
- package/dist/integrations/tanstack-start.d.mts +22 -0
- package/dist/integrations/tanstack-start.mjs +61 -0
- package/dist/integrations/tanstack-start.mjs.map +1 -0
- package/dist/oauth2/index.d.mts +5 -0
- package/dist/oauth2/index.mjs +7 -0
- package/dist/oauth2/link-account.d.mts +31 -0
- package/dist/oauth2/link-account.mjs +144 -0
- package/dist/oauth2/link-account.mjs.map +1 -0
- package/dist/oauth2/state.d.mts +26 -0
- package/dist/oauth2/state.mjs +51 -0
- package/dist/oauth2/state.mjs.map +1 -0
- package/dist/oauth2/utils.d.mts +8 -0
- package/dist/oauth2/utils.mjs +31 -0
- package/dist/oauth2/utils.mjs.map +1 -0
- package/dist/plugins/access/access.d.mts +30 -0
- package/dist/plugins/access/access.mjs +46 -0
- package/dist/plugins/access/access.mjs.map +1 -0
- package/dist/plugins/access/index.d.mts +3 -0
- package/dist/plugins/access/index.mjs +3 -0
- package/dist/plugins/access/types.d.mts +17 -0
- package/dist/plugins/additional-fields/client.d.mts +14 -0
- package/dist/plugins/additional-fields/client.mjs +11 -0
- package/dist/plugins/additional-fields/client.mjs.map +1 -0
- package/dist/plugins/admin/access/index.d.mts +2 -0
- package/dist/plugins/admin/access/index.mjs +3 -0
- package/dist/plugins/admin/access/statement.d.mts +118 -0
- package/dist/plugins/admin/access/statement.mjs +53 -0
- package/dist/plugins/admin/access/statement.mjs.map +1 -0
- package/dist/plugins/admin/admin.d.mts +14 -0
- package/dist/plugins/admin/admin.mjs +95 -0
- package/dist/plugins/admin/admin.mjs.map +1 -0
- package/dist/plugins/admin/client.d.mts +14 -0
- package/dist/plugins/admin/client.mjs +36 -0
- package/dist/plugins/admin/client.mjs.map +1 -0
- package/dist/plugins/admin/error-codes.d.mts +5 -0
- package/dist/plugins/admin/error-codes.mjs +30 -0
- package/dist/plugins/admin/error-codes.mjs.map +1 -0
- package/dist/plugins/admin/has-permission.mjs +16 -0
- package/dist/plugins/admin/has-permission.mjs.map +1 -0
- package/dist/plugins/admin/index.d.mts +3 -0
- package/dist/plugins/admin/index.mjs +3 -0
- package/dist/plugins/admin/routes.mjs +855 -0
- package/dist/plugins/admin/routes.mjs.map +1 -0
- package/dist/plugins/admin/schema.d.mts +6 -0
- package/dist/plugins/admin/schema.mjs +34 -0
- package/dist/plugins/admin/schema.mjs.map +1 -0
- package/dist/plugins/admin/types.d.mts +89 -0
- package/dist/plugins/anonymous/client.d.mts +9 -0
- package/dist/plugins/anonymous/client.mjs +22 -0
- package/dist/plugins/anonymous/client.mjs.map +1 -0
- package/dist/plugins/anonymous/error-codes.d.mts +5 -0
- package/dist/plugins/anonymous/error-codes.mjs +16 -0
- package/dist/plugins/anonymous/error-codes.mjs.map +1 -0
- package/dist/plugins/anonymous/index.d.mts +14 -0
- package/dist/plugins/anonymous/index.mjs +163 -0
- package/dist/plugins/anonymous/index.mjs.map +1 -0
- package/dist/plugins/anonymous/schema.d.mts +5 -0
- package/dist/plugins/anonymous/schema.mjs +11 -0
- package/dist/plugins/anonymous/schema.mjs.map +1 -0
- package/dist/plugins/anonymous/types.d.mts +68 -0
- package/dist/plugins/api-key/adapter.mjs +468 -0
- package/dist/plugins/api-key/adapter.mjs.map +1 -0
- package/dist/plugins/api-key/client.d.mts +9 -0
- package/dist/plugins/api-key/client.mjs +19 -0
- package/dist/plugins/api-key/client.mjs.map +1 -0
- package/dist/plugins/api-key/error-codes.d.mts +5 -0
- package/dist/plugins/api-key/error-codes.mjs +34 -0
- package/dist/plugins/api-key/error-codes.mjs.map +1 -0
- package/dist/plugins/api-key/index.d.mts +17 -0
- package/dist/plugins/api-key/index.mjs +134 -0
- package/dist/plugins/api-key/index.mjs.map +1 -0
- package/dist/plugins/api-key/rate-limit.mjs +74 -0
- package/dist/plugins/api-key/rate-limit.mjs.map +1 -0
- package/dist/plugins/api-key/routes/create-api-key.mjs +252 -0
- package/dist/plugins/api-key/routes/create-api-key.mjs.map +1 -0
- package/dist/plugins/api-key/routes/delete-all-expired-api-keys.mjs +24 -0
- package/dist/plugins/api-key/routes/delete-all-expired-api-keys.mjs.map +1 -0
- package/dist/plugins/api-key/routes/delete-api-key.mjs +74 -0
- package/dist/plugins/api-key/routes/delete-api-key.mjs.map +1 -0
- package/dist/plugins/api-key/routes/get-api-key.mjs +158 -0
- package/dist/plugins/api-key/routes/get-api-key.mjs.map +1 -0
- package/dist/plugins/api-key/routes/index.mjs +71 -0
- package/dist/plugins/api-key/routes/index.mjs.map +1 -0
- package/dist/plugins/api-key/routes/list-api-keys.mjs +194 -0
- package/dist/plugins/api-key/routes/list-api-keys.mjs.map +1 -0
- package/dist/plugins/api-key/routes/update-api-key.mjs +248 -0
- package/dist/plugins/api-key/routes/update-api-key.mjs.map +1 -0
- package/dist/plugins/api-key/routes/verify-api-key.mjs +223 -0
- package/dist/plugins/api-key/routes/verify-api-key.mjs.map +1 -0
- package/dist/plugins/api-key/schema.d.mts +11 -0
- package/dist/plugins/api-key/schema.mjs +130 -0
- package/dist/plugins/api-key/schema.mjs.map +1 -0
- package/dist/plugins/api-key/types.d.mts +346 -0
- package/dist/plugins/bearer/index.d.mts +25 -0
- package/dist/plugins/bearer/index.mjs +66 -0
- package/dist/plugins/bearer/index.mjs.map +1 -0
- package/dist/plugins/captcha/constants.d.mts +10 -0
- package/dist/plugins/captcha/constants.mjs +22 -0
- package/dist/plugins/captcha/constants.mjs.map +1 -0
- package/dist/plugins/captcha/error-codes.mjs +16 -0
- package/dist/plugins/captcha/error-codes.mjs.map +1 -0
- package/dist/plugins/captcha/index.d.mts +14 -0
- package/dist/plugins/captcha/index.mjs +60 -0
- package/dist/plugins/captcha/index.mjs.map +1 -0
- package/dist/plugins/captcha/types.d.mts +28 -0
- package/dist/plugins/captcha/utils.mjs +11 -0
- package/dist/plugins/captcha/utils.mjs.map +1 -0
- package/dist/plugins/captcha/verify-handlers/captchafox.mjs +27 -0
- package/dist/plugins/captcha/verify-handlers/captchafox.mjs.map +1 -0
- package/dist/plugins/captcha/verify-handlers/cloudflare-turnstile.mjs +25 -0
- package/dist/plugins/captcha/verify-handlers/cloudflare-turnstile.mjs.map +1 -0
- package/dist/plugins/captcha/verify-handlers/google-recaptcha.mjs +29 -0
- package/dist/plugins/captcha/verify-handlers/google-recaptcha.mjs.map +1 -0
- package/dist/plugins/captcha/verify-handlers/h-captcha.mjs +27 -0
- package/dist/plugins/captcha/verify-handlers/h-captcha.mjs.map +1 -0
- package/dist/plugins/captcha/verify-handlers/index.mjs +6 -0
- package/dist/plugins/custom-session/client.d.mts +10 -0
- package/dist/plugins/custom-session/client.mjs +11 -0
- package/dist/plugins/custom-session/client.mjs.map +1 -0
- package/dist/plugins/custom-session/index.d.mts +26 -0
- package/dist/plugins/custom-session/index.mjs +70 -0
- package/dist/plugins/custom-session/index.mjs.map +1 -0
- package/dist/plugins/device-authorization/client.d.mts +5 -0
- package/dist/plugins/device-authorization/client.mjs +18 -0
- package/dist/plugins/device-authorization/client.mjs.map +1 -0
- package/dist/plugins/device-authorization/error-codes.mjs +21 -0
- package/dist/plugins/device-authorization/error-codes.mjs.map +1 -0
- package/dist/plugins/device-authorization/index.d.mts +28 -0
- package/dist/plugins/device-authorization/index.mjs +50 -0
- package/dist/plugins/device-authorization/index.mjs.map +1 -0
- package/dist/plugins/device-authorization/routes.mjs +510 -0
- package/dist/plugins/device-authorization/routes.mjs.map +1 -0
- package/dist/plugins/device-authorization/schema.mjs +57 -0
- package/dist/plugins/device-authorization/schema.mjs.map +1 -0
- package/dist/plugins/email-otp/client.d.mts +7 -0
- package/dist/plugins/email-otp/client.mjs +18 -0
- package/dist/plugins/email-otp/client.mjs.map +1 -0
- package/dist/plugins/email-otp/error-codes.d.mts +5 -0
- package/dist/plugins/email-otp/error-codes.mjs +12 -0
- package/dist/plugins/email-otp/error-codes.mjs.map +1 -0
- package/dist/plugins/email-otp/index.d.mts +14 -0
- package/dist/plugins/email-otp/index.mjs +108 -0
- package/dist/plugins/email-otp/index.mjs.map +1 -0
- package/dist/plugins/email-otp/otp-token.mjs +29 -0
- package/dist/plugins/email-otp/otp-token.mjs.map +1 -0
- package/dist/plugins/email-otp/routes.mjs +564 -0
- package/dist/plugins/email-otp/routes.mjs.map +1 -0
- package/dist/plugins/email-otp/types.d.mts +74 -0
- package/dist/plugins/email-otp/utils.mjs +17 -0
- package/dist/plugins/email-otp/utils.mjs.map +1 -0
- package/dist/plugins/generic-oauth/client.d.mts +19 -0
- package/dist/plugins/generic-oauth/client.mjs +14 -0
- package/dist/plugins/generic-oauth/client.mjs.map +1 -0
- package/dist/plugins/generic-oauth/error-codes.d.mts +5 -0
- package/dist/plugins/generic-oauth/error-codes.mjs +15 -0
- package/dist/plugins/generic-oauth/error-codes.mjs.map +1 -0
- package/dist/plugins/generic-oauth/index.d.mts +34 -0
- package/dist/plugins/generic-oauth/index.mjs +137 -0
- package/dist/plugins/generic-oauth/index.mjs.map +1 -0
- package/dist/plugins/generic-oauth/providers/auth0.d.mts +37 -0
- package/dist/plugins/generic-oauth/providers/auth0.mjs +62 -0
- package/dist/plugins/generic-oauth/providers/auth0.mjs.map +1 -0
- package/dist/plugins/generic-oauth/providers/gumroad.d.mts +32 -0
- package/dist/plugins/generic-oauth/providers/gumroad.mjs +60 -0
- package/dist/plugins/generic-oauth/providers/gumroad.mjs.map +1 -0
- package/dist/plugins/generic-oauth/providers/hubspot.d.mts +37 -0
- package/dist/plugins/generic-oauth/providers/hubspot.mjs +60 -0
- package/dist/plugins/generic-oauth/providers/hubspot.mjs.map +1 -0
- package/dist/plugins/generic-oauth/providers/index.d.mts +9 -0
- package/dist/plugins/generic-oauth/providers/index.mjs +11 -0
- package/dist/plugins/generic-oauth/providers/keycloak.d.mts +37 -0
- package/dist/plugins/generic-oauth/providers/keycloak.mjs +62 -0
- package/dist/plugins/generic-oauth/providers/keycloak.mjs.map +1 -0
- package/dist/plugins/generic-oauth/providers/line.d.mts +55 -0
- package/dist/plugins/generic-oauth/providers/line.mjs +91 -0
- package/dist/plugins/generic-oauth/providers/line.mjs.map +1 -0
- package/dist/plugins/generic-oauth/providers/microsoft-entra-id.d.mts +37 -0
- package/dist/plugins/generic-oauth/providers/microsoft-entra-id.mjs +66 -0
- package/dist/plugins/generic-oauth/providers/microsoft-entra-id.mjs.map +1 -0
- package/dist/plugins/generic-oauth/providers/okta.d.mts +37 -0
- package/dist/plugins/generic-oauth/providers/okta.mjs +62 -0
- package/dist/plugins/generic-oauth/providers/okta.mjs.map +1 -0
- package/dist/plugins/generic-oauth/providers/patreon.d.mts +30 -0
- package/dist/plugins/generic-oauth/providers/patreon.mjs +59 -0
- package/dist/plugins/generic-oauth/providers/patreon.mjs.map +1 -0
- package/dist/plugins/generic-oauth/providers/slack.d.mts +30 -0
- package/dist/plugins/generic-oauth/providers/slack.mjs +61 -0
- package/dist/plugins/generic-oauth/providers/slack.mjs.map +1 -0
- package/dist/plugins/generic-oauth/routes.mjs +394 -0
- package/dist/plugins/generic-oauth/routes.mjs.map +1 -0
- package/dist/plugins/generic-oauth/types.d.mts +145 -0
- package/dist/plugins/haveibeenpwned/index.d.mts +21 -0
- package/dist/plugins/haveibeenpwned/index.mjs +56 -0
- package/dist/plugins/haveibeenpwned/index.mjs.map +1 -0
- package/dist/plugins/index.d.mts +68 -0
- package/dist/plugins/index.mjs +51 -0
- package/dist/plugins/jwt/adapter.mjs +27 -0
- package/dist/plugins/jwt/adapter.mjs.map +1 -0
- package/dist/plugins/jwt/client.d.mts +18 -0
- package/dist/plugins/jwt/client.mjs +19 -0
- package/dist/plugins/jwt/client.mjs.map +1 -0
- package/dist/plugins/jwt/index.d.mts +17 -0
- package/dist/plugins/jwt/index.mjs +202 -0
- package/dist/plugins/jwt/index.mjs.map +1 -0
- package/dist/plugins/jwt/schema.d.mts +5 -0
- package/dist/plugins/jwt/schema.mjs +23 -0
- package/dist/plugins/jwt/schema.mjs.map +1 -0
- package/dist/plugins/jwt/sign.d.mts +57 -0
- package/dist/plugins/jwt/sign.mjs +66 -0
- package/dist/plugins/jwt/sign.mjs.map +1 -0
- package/dist/plugins/jwt/types.d.mts +194 -0
- package/dist/plugins/jwt/utils.d.mts +42 -0
- package/dist/plugins/jwt/utils.mjs +64 -0
- package/dist/plugins/jwt/utils.mjs.map +1 -0
- package/dist/plugins/jwt/verify.d.mts +12 -0
- package/dist/plugins/jwt/verify.mjs +46 -0
- package/dist/plugins/jwt/verify.mjs.map +1 -0
- package/dist/plugins/last-login-method/client.d.mts +18 -0
- package/dist/plugins/last-login-method/client.mjs +32 -0
- package/dist/plugins/last-login-method/client.mjs.map +1 -0
- package/dist/plugins/last-login-method/index.d.mts +52 -0
- package/dist/plugins/last-login-method/index.mjs +77 -0
- package/dist/plugins/last-login-method/index.mjs.map +1 -0
- package/dist/plugins/magic-link/client.d.mts +5 -0
- package/dist/plugins/magic-link/client.mjs +11 -0
- package/dist/plugins/magic-link/client.mjs.map +1 -0
- package/dist/plugins/magic-link/index.d.mts +61 -0
- package/dist/plugins/magic-link/index.mjs +167 -0
- package/dist/plugins/magic-link/index.mjs.map +1 -0
- package/dist/plugins/magic-link/utils.mjs +12 -0
- package/dist/plugins/magic-link/utils.mjs.map +1 -0
- package/dist/plugins/mcp/authorize.mjs +133 -0
- package/dist/plugins/mcp/authorize.mjs.map +1 -0
- package/dist/plugins/mcp/index.d.mts +46 -0
- package/dist/plugins/mcp/index.mjs +717 -0
- package/dist/plugins/mcp/index.mjs.map +1 -0
- package/dist/plugins/multi-session/client.d.mts +8 -0
- package/dist/plugins/multi-session/client.mjs +20 -0
- package/dist/plugins/multi-session/client.mjs.map +1 -0
- package/dist/plugins/multi-session/error-codes.d.mts +5 -0
- package/dist/plugins/multi-session/error-codes.mjs +8 -0
- package/dist/plugins/multi-session/error-codes.mjs.map +1 -0
- package/dist/plugins/multi-session/index.d.mts +22 -0
- package/dist/plugins/multi-session/index.mjs +172 -0
- package/dist/plugins/multi-session/index.mjs.map +1 -0
- package/dist/plugins/oauth-proxy/index.d.mts +39 -0
- package/dist/plugins/oauth-proxy/index.mjs +305 -0
- package/dist/plugins/oauth-proxy/index.mjs.map +1 -0
- package/dist/plugins/oauth-proxy/utils.mjs +44 -0
- package/dist/plugins/oauth-proxy/utils.mjs.map +1 -0
- package/dist/plugins/oidc-provider/authorize.mjs +194 -0
- package/dist/plugins/oidc-provider/authorize.mjs.map +1 -0
- package/dist/plugins/oidc-provider/client.d.mts +8 -0
- package/dist/plugins/oidc-provider/client.mjs +11 -0
- package/dist/plugins/oidc-provider/client.mjs.map +1 -0
- package/dist/plugins/oidc-provider/error.mjs +17 -0
- package/dist/plugins/oidc-provider/error.mjs.map +1 -0
- package/dist/plugins/oidc-provider/index.d.mts +32 -0
- package/dist/plugins/oidc-provider/index.mjs +1093 -0
- package/dist/plugins/oidc-provider/index.mjs.map +1 -0
- package/dist/plugins/oidc-provider/schema.d.mts +26 -0
- package/dist/plugins/oidc-provider/schema.mjs +132 -0
- package/dist/plugins/oidc-provider/schema.mjs.map +1 -0
- package/dist/plugins/oidc-provider/types.d.mts +517 -0
- package/dist/plugins/oidc-provider/utils/prompt.mjs +19 -0
- package/dist/plugins/oidc-provider/utils/prompt.mjs.map +1 -0
- package/dist/plugins/oidc-provider/utils.mjs +15 -0
- package/dist/plugins/oidc-provider/utils.mjs.map +1 -0
- package/dist/plugins/one-tap/client.d.mts +159 -0
- package/dist/plugins/one-tap/client.mjs +214 -0
- package/dist/plugins/one-tap/client.mjs.map +1 -0
- package/dist/plugins/one-tap/index.d.mts +27 -0
- package/dist/plugins/one-tap/index.mjs +96 -0
- package/dist/plugins/one-tap/index.mjs.map +1 -0
- package/dist/plugins/one-time-token/client.d.mts +7 -0
- package/dist/plugins/one-time-token/client.mjs +11 -0
- package/dist/plugins/one-time-token/client.mjs.map +1 -0
- package/dist/plugins/one-time-token/index.d.mts +53 -0
- package/dist/plugins/one-time-token/index.mjs +82 -0
- package/dist/plugins/one-time-token/index.mjs.map +1 -0
- package/dist/plugins/one-time-token/utils.mjs +12 -0
- package/dist/plugins/one-time-token/utils.mjs.map +1 -0
- package/dist/plugins/open-api/generator.d.mts +115 -0
- package/dist/plugins/open-api/generator.mjs +315 -0
- package/dist/plugins/open-api/generator.mjs.map +1 -0
- package/dist/plugins/open-api/index.d.mts +45 -0
- package/dist/plugins/open-api/index.mjs +67 -0
- package/dist/plugins/open-api/index.mjs.map +1 -0
- package/dist/plugins/open-api/logo.mjs +15 -0
- package/dist/plugins/open-api/logo.mjs.map +1 -0
- package/dist/plugins/organization/access/index.d.mts +2 -0
- package/dist/plugins/organization/access/index.mjs +3 -0
- package/dist/plugins/organization/access/statement.d.mts +249 -0
- package/dist/plugins/organization/access/statement.mjs +81 -0
- package/dist/plugins/organization/access/statement.mjs.map +1 -0
- package/dist/plugins/organization/adapter.d.mts +205 -0
- package/dist/plugins/organization/adapter.mjs +624 -0
- package/dist/plugins/organization/adapter.mjs.map +1 -0
- package/dist/plugins/organization/call.mjs +19 -0
- package/dist/plugins/organization/call.mjs.map +1 -0
- package/dist/plugins/organization/client.d.mts +151 -0
- package/dist/plugins/organization/client.mjs +107 -0
- package/dist/plugins/organization/client.mjs.map +1 -0
- package/dist/plugins/organization/error-codes.d.mts +5 -0
- package/dist/plugins/organization/error-codes.mjs +65 -0
- package/dist/plugins/organization/error-codes.mjs.map +1 -0
- package/dist/plugins/organization/has-permission.mjs +35 -0
- package/dist/plugins/organization/has-permission.mjs.map +1 -0
- package/dist/plugins/organization/index.d.mts +5 -0
- package/dist/plugins/organization/index.mjs +4 -0
- package/dist/plugins/organization/organization.d.mts +252 -0
- package/dist/plugins/organization/organization.mjs +428 -0
- package/dist/plugins/organization/organization.mjs.map +1 -0
- package/dist/plugins/organization/permission.d.mts +26 -0
- package/dist/plugins/organization/permission.mjs +16 -0
- package/dist/plugins/organization/permission.mjs.map +1 -0
- package/dist/plugins/organization/routes/crud-access-control.d.mts +11 -0
- package/dist/plugins/organization/routes/crud-access-control.mjs +656 -0
- package/dist/plugins/organization/routes/crud-access-control.mjs.map +1 -0
- package/dist/plugins/organization/routes/crud-invites.d.mts +16 -0
- package/dist/plugins/organization/routes/crud-invites.mjs +555 -0
- package/dist/plugins/organization/routes/crud-invites.mjs.map +1 -0
- package/dist/plugins/organization/routes/crud-members.d.mts +13 -0
- package/dist/plugins/organization/routes/crud-members.mjs +473 -0
- package/dist/plugins/organization/routes/crud-members.mjs.map +1 -0
- package/dist/plugins/organization/routes/crud-org.d.mts +13 -0
- package/dist/plugins/organization/routes/crud-org.mjs +447 -0
- package/dist/plugins/organization/routes/crud-org.mjs.map +1 -0
- package/dist/plugins/organization/routes/crud-team.d.mts +15 -0
- package/dist/plugins/organization/routes/crud-team.mjs +676 -0
- package/dist/plugins/organization/routes/crud-team.mjs.map +1 -0
- package/dist/plugins/organization/schema.d.mts +376 -0
- package/dist/plugins/organization/schema.mjs +68 -0
- package/dist/plugins/organization/schema.mjs.map +1 -0
- package/dist/plugins/organization/types.d.mts +733 -0
- package/dist/plugins/phone-number/client.d.mts +8 -0
- package/dist/plugins/phone-number/client.mjs +20 -0
- package/dist/plugins/phone-number/client.mjs.map +1 -0
- package/dist/plugins/phone-number/error-codes.d.mts +5 -0
- package/dist/plugins/phone-number/error-codes.mjs +21 -0
- package/dist/plugins/phone-number/error-codes.mjs.map +1 -0
- package/dist/plugins/phone-number/index.d.mts +14 -0
- package/dist/plugins/phone-number/index.mjs +49 -0
- package/dist/plugins/phone-number/index.mjs.map +1 -0
- package/dist/plugins/phone-number/routes.mjs +459 -0
- package/dist/plugins/phone-number/routes.mjs.map +1 -0
- package/dist/plugins/phone-number/schema.d.mts +5 -0
- package/dist/plugins/phone-number/schema.mjs +20 -0
- package/dist/plugins/phone-number/schema.mjs.map +1 -0
- package/dist/plugins/phone-number/types.d.mts +118 -0
- package/dist/plugins/siwe/client.d.mts +5 -0
- package/dist/plugins/siwe/client.mjs +11 -0
- package/dist/plugins/siwe/client.mjs.map +1 -0
- package/dist/plugins/siwe/error-codes.mjs +13 -0
- package/dist/plugins/siwe/error-codes.mjs.map +1 -0
- package/dist/plugins/siwe/index.d.mts +26 -0
- package/dist/plugins/siwe/index.mjs +261 -0
- package/dist/plugins/siwe/index.mjs.map +1 -0
- package/dist/plugins/siwe/schema.d.mts +5 -0
- package/dist/plugins/siwe/schema.mjs +32 -0
- package/dist/plugins/siwe/schema.mjs.map +1 -0
- package/dist/plugins/siwe/types.d.mts +44 -0
- package/dist/plugins/two-factor/backup-codes/index.d.mts +91 -0
- package/dist/plugins/two-factor/backup-codes/index.mjs +277 -0
- package/dist/plugins/two-factor/backup-codes/index.mjs.map +1 -0
- package/dist/plugins/two-factor/client.d.mts +17 -0
- package/dist/plugins/two-factor/client.mjs +37 -0
- package/dist/plugins/two-factor/client.mjs.map +1 -0
- package/dist/plugins/two-factor/constant.mjs +8 -0
- package/dist/plugins/two-factor/constant.mjs.map +1 -0
- package/dist/plugins/two-factor/error-code.d.mts +5 -0
- package/dist/plugins/two-factor/error-code.mjs +18 -0
- package/dist/plugins/two-factor/error-code.mjs.map +1 -0
- package/dist/plugins/two-factor/index.d.mts +19 -0
- package/dist/plugins/two-factor/index.mjs +207 -0
- package/dist/plugins/two-factor/index.mjs.map +1 -0
- package/dist/plugins/two-factor/otp/index.d.mts +96 -0
- package/dist/plugins/two-factor/otp/index.mjs +199 -0
- package/dist/plugins/two-factor/otp/index.mjs.map +1 -0
- package/dist/plugins/two-factor/schema.d.mts +5 -0
- package/dist/plugins/two-factor/schema.mjs +36 -0
- package/dist/plugins/two-factor/schema.mjs.map +1 -0
- package/dist/plugins/two-factor/totp/index.d.mts +81 -0
- package/dist/plugins/two-factor/totp/index.mjs +157 -0
- package/dist/plugins/two-factor/totp/index.mjs.map +1 -0
- package/dist/plugins/two-factor/types.d.mts +65 -0
- package/dist/plugins/two-factor/utils.mjs +12 -0
- package/dist/plugins/two-factor/utils.mjs.map +1 -0
- package/dist/plugins/two-factor/verify-two-factor.mjs +76 -0
- package/dist/plugins/two-factor/verify-two-factor.mjs.map +1 -0
- package/dist/plugins/username/client.d.mts +7 -0
- package/dist/plugins/username/client.mjs +18 -0
- package/dist/plugins/username/client.mjs.map +1 -0
- package/dist/plugins/username/error-codes.d.mts +5 -0
- package/dist/plugins/username/error-codes.mjs +17 -0
- package/dist/plugins/username/error-codes.mjs.map +1 -0
- package/dist/plugins/username/index.d.mts +74 -0
- package/dist/plugins/username/index.mjs +237 -0
- package/dist/plugins/username/index.mjs.map +1 -0
- package/dist/plugins/username/schema.d.mts +9 -0
- package/dist/plugins/username/schema.mjs +26 -0
- package/dist/plugins/username/schema.mjs.map +1 -0
- package/dist/social-providers/index.d.mts +1 -0
- package/dist/social-providers/index.mjs +3 -0
- package/dist/state.d.mts +42 -0
- package/dist/state.mjs +107 -0
- package/dist/state.mjs.map +1 -0
- package/dist/test-utils/headers.d.mts +9 -0
- package/dist/test-utils/headers.mjs +24 -0
- package/dist/test-utils/headers.mjs.map +1 -0
- package/dist/test-utils/index.d.mts +3 -0
- package/dist/test-utils/index.mjs +4 -0
- package/dist/test-utils/test-instance.d.mts +181 -0
- package/dist/test-utils/test-instance.mjs +210 -0
- package/dist/test-utils/test-instance.mjs.map +1 -0
- package/dist/types/adapter.d.mts +24 -0
- package/dist/types/api.d.mts +29 -0
- package/dist/types/auth.d.mts +30 -0
- package/dist/types/helper.d.mts +21 -0
- package/dist/types/index.d.mts +11 -0
- package/dist/types/index.mjs +1 -0
- package/dist/types/models.d.mts +17 -0
- package/dist/types/plugins.d.mts +16 -0
- package/dist/utils/boolean.mjs +8 -0
- package/dist/utils/boolean.mjs.map +1 -0
- package/dist/utils/constants.mjs +6 -0
- package/dist/utils/constants.mjs.map +1 -0
- package/dist/utils/date.mjs +8 -0
- package/dist/utils/date.mjs.map +1 -0
- package/dist/utils/get-request-ip.d.mts +7 -0
- package/dist/utils/get-request-ip.mjs +23 -0
- package/dist/utils/get-request-ip.mjs.map +1 -0
- package/dist/utils/hashing.mjs +21 -0
- package/dist/utils/hashing.mjs.map +1 -0
- package/dist/utils/hide-metadata.d.mts +7 -0
- package/dist/utils/hide-metadata.mjs +6 -0
- package/dist/utils/hide-metadata.mjs.map +1 -0
- package/dist/utils/index.d.mts +3 -0
- package/dist/utils/index.mjs +5 -0
- package/dist/utils/is-api-error.d.mts +7 -0
- package/dist/utils/is-api-error.mjs +11 -0
- package/dist/utils/is-api-error.mjs.map +1 -0
- package/dist/utils/is-atom.mjs +8 -0
- package/dist/utils/is-atom.mjs.map +1 -0
- package/dist/utils/is-promise.mjs +8 -0
- package/dist/utils/is-promise.mjs.map +1 -0
- package/dist/utils/middleware-response.mjs +6 -0
- package/dist/utils/middleware-response.mjs.map +1 -0
- package/dist/utils/password.mjs +26 -0
- package/dist/utils/password.mjs.map +1 -0
- package/dist/utils/plugin-helper.mjs +17 -0
- package/dist/utils/plugin-helper.mjs.map +1 -0
- package/dist/utils/shim.mjs +24 -0
- package/dist/utils/shim.mjs.map +1 -0
- package/dist/utils/time.d.mts +49 -0
- package/dist/utils/time.mjs +100 -0
- package/dist/utils/time.mjs.map +1 -0
- package/dist/utils/url.mjs +92 -0
- package/dist/utils/url.mjs.map +1 -0
- package/dist/utils/wildcard.mjs +108 -0
- package/dist/utils/wildcard.mjs.map +1 -0
- package/package.json +601 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"crud-team.mjs","names":[],"sources":["../../../../src/plugins/organization/routes/crud-team.ts"],"sourcesContent":["import { createAuthEndpoint } from \"@better-auth/core/api\";\nimport { APIError } from \"@better-auth/core/error\";\nimport * as z from \"zod\";\nimport { getSessionFromCtx } from \"../../../api\";\nimport { setSessionCookie } from \"../../../cookies\";\nimport type { InferAdditionalFieldsFromPluginOptions } from \"../../../db\";\nimport { toZodSchema } from \"../../../db\";\nimport type { PrettifyDeep } from \"../../../types/helper\";\nimport { getOrgAdapter } from \"../adapter\";\nimport { orgMiddleware, orgSessionMiddleware } from \"../call\";\nimport { ORGANIZATION_ERROR_CODES } from \"../error-codes\";\nimport { hasPermission } from \"../has-permission\";\nimport { teamSchema } from \"../schema\";\nimport type { OrganizationOptions } from \"../types\";\n\nconst teamBaseSchema = z.object({\n\tname: z.string().meta({\n\t\tdescription: 'The name of the team. Eg: \"my-team\"',\n\t}),\n\torganizationId: z\n\t\t.string()\n\t\t.meta({\n\t\t\tdescription:\n\t\t\t\t'The organization ID which the team will be created in. Defaults to the active organization. Eg: \"organization-id\"',\n\t\t})\n\t\t.optional(),\n});\n\nexport const createTeam = <O extends OrganizationOptions>(options: O) => {\n\tconst additionalFieldsSchema = toZodSchema({\n\t\tfields: options?.schema?.team?.additionalFields ?? {},\n\t\tisClientSide: true,\n\t});\n\treturn createAuthEndpoint(\n\t\t\"/organization/create-team\",\n\t\t{\n\t\t\tmethod: \"POST\",\n\t\t\tbody: z.object({\n\t\t\t\t...teamBaseSchema.shape,\n\t\t\t\t...additionalFieldsSchema.shape,\n\t\t\t}),\n\t\t\tuse: [orgMiddleware],\n\t\t\tmetadata: {\n\t\t\t\t$Infer: {\n\t\t\t\t\tbody: {} as z.infer<typeof teamBaseSchema> &\n\t\t\t\t\t\tInferAdditionalFieldsFromPluginOptions<\"team\", O>,\n\t\t\t\t},\n\t\t\t\topenapi: {\n\t\t\t\t\tdescription: \"Create a new team within an organization\",\n\t\t\t\t\tresponses: {\n\t\t\t\t\t\t\"200\": {\n\t\t\t\t\t\t\tdescription: \"Team created successfully\",\n\t\t\t\t\t\t\tcontent: {\n\t\t\t\t\t\t\t\t\"application/json\": {\n\t\t\t\t\t\t\t\t\tschema: {\n\t\t\t\t\t\t\t\t\t\ttype: \"object\",\n\t\t\t\t\t\t\t\t\t\tproperties: {\n\t\t\t\t\t\t\t\t\t\t\tid: {\n\t\t\t\t\t\t\t\t\t\t\t\ttype: \"string\",\n\t\t\t\t\t\t\t\t\t\t\t\tdescription: \"Unique identifier of the created team\",\n\t\t\t\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t\t\t\tname: {\n\t\t\t\t\t\t\t\t\t\t\t\ttype: \"string\",\n\t\t\t\t\t\t\t\t\t\t\t\tdescription: \"Name of the team\",\n\t\t\t\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t\t\t\torganizationId: {\n\t\t\t\t\t\t\t\t\t\t\t\ttype: \"string\",\n\t\t\t\t\t\t\t\t\t\t\t\tdescription:\n\t\t\t\t\t\t\t\t\t\t\t\t\t\"ID of the organization the team belongs to\",\n\t\t\t\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t\t\t\tcreatedAt: {\n\t\t\t\t\t\t\t\t\t\t\t\ttype: \"string\",\n\t\t\t\t\t\t\t\t\t\t\t\tformat: \"date-time\",\n\t\t\t\t\t\t\t\t\t\t\t\tdescription: \"Timestamp when the team was created\",\n\t\t\t\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t\t\t\tupdatedAt: {\n\t\t\t\t\t\t\t\t\t\t\t\ttype: \"string\",\n\t\t\t\t\t\t\t\t\t\t\t\tformat: \"date-time\",\n\t\t\t\t\t\t\t\t\t\t\t\tdescription: \"Timestamp when the team was last updated\",\n\t\t\t\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t\t\trequired: [\n\t\t\t\t\t\t\t\t\t\t\t\"id\",\n\t\t\t\t\t\t\t\t\t\t\t\"name\",\n\t\t\t\t\t\t\t\t\t\t\t\"organizationId\",\n\t\t\t\t\t\t\t\t\t\t\t\"createdAt\",\n\t\t\t\t\t\t\t\t\t\t\t\"updatedAt\",\n\t\t\t\t\t\t\t\t\t\t],\n\t\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t},\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t},\n\t\t},\n\t\tasync (ctx) => {\n\t\t\tconst session = await getSessionFromCtx(ctx);\n\t\t\tconst organizationId =\n\t\t\t\tctx.body.organizationId || session?.session.activeOrganizationId;\n\t\t\tif (!session && (ctx.request || ctx.headers)) {\n\t\t\t\tthrow APIError.fromStatus(\"UNAUTHORIZED\");\n\t\t\t}\n\n\t\t\tif (!organizationId) {\n\t\t\t\tthrow APIError.from(\n\t\t\t\t\t\"BAD_REQUEST\",\n\t\t\t\t\tORGANIZATION_ERROR_CODES.NO_ACTIVE_ORGANIZATION,\n\t\t\t\t);\n\t\t\t}\n\t\t\tconst adapter = getOrgAdapter<O>(ctx.context, options as O);\n\t\t\tif (session) {\n\t\t\t\tconst member = await adapter.findMemberByOrgId({\n\t\t\t\t\tuserId: session.user.id,\n\t\t\t\t\torganizationId,\n\t\t\t\t});\n\t\t\t\tif (!member) {\n\t\t\t\t\tthrow APIError.from(\n\t\t\t\t\t\t\"FORBIDDEN\",\n\t\t\t\t\t\tORGANIZATION_ERROR_CODES.YOU_ARE_NOT_ALLOWED_TO_INVITE_USERS_TO_THIS_ORGANIZATION,\n\t\t\t\t\t);\n\t\t\t\t}\n\t\t\t\tconst canCreate = await hasPermission(\n\t\t\t\t\t{\n\t\t\t\t\t\trole: member.role,\n\t\t\t\t\t\toptions: ctx.context.orgOptions,\n\t\t\t\t\t\tpermissions: {\n\t\t\t\t\t\t\tteam: [\"create\"],\n\t\t\t\t\t\t},\n\t\t\t\t\t\torganizationId,\n\t\t\t\t\t},\n\t\t\t\t\tctx,\n\t\t\t\t);\n\n\t\t\t\tif (!canCreate) {\n\t\t\t\t\tthrow APIError.from(\n\t\t\t\t\t\t\"FORBIDDEN\",\n\t\t\t\t\t\tORGANIZATION_ERROR_CODES.YOU_ARE_NOT_ALLOWED_TO_CREATE_TEAMS_IN_THIS_ORGANIZATION,\n\t\t\t\t\t);\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tconst existingTeams = await adapter.listTeams(organizationId);\n\t\t\tconst maximum =\n\t\t\t\ttypeof ctx.context.orgOptions.teams?.maximumTeams === \"function\"\n\t\t\t\t\t? await ctx.context.orgOptions.teams?.maximumTeams(\n\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\torganizationId,\n\t\t\t\t\t\t\t\tsession,\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\tctx,\n\t\t\t\t\t\t)\n\t\t\t\t\t: ctx.context.orgOptions.teams?.maximumTeams;\n\n\t\t\tconst maxTeamsReached = maximum ? existingTeams.length >= maximum : false;\n\t\t\tif (maxTeamsReached) {\n\t\t\t\tthrow APIError.from(\n\t\t\t\t\t\"BAD_REQUEST\",\n\t\t\t\t\tORGANIZATION_ERROR_CODES.YOU_HAVE_REACHED_THE_MAXIMUM_NUMBER_OF_TEAMS,\n\t\t\t\t);\n\t\t\t}\n\t\t\tconst { name, organizationId: _, ...additionalFields } = ctx.body;\n\n\t\t\tconst organization = await adapter.findOrganizationById(organizationId);\n\t\t\tif (!organization) {\n\t\t\t\tthrow APIError.from(\n\t\t\t\t\t\"BAD_REQUEST\",\n\t\t\t\t\tORGANIZATION_ERROR_CODES.ORGANIZATION_NOT_FOUND,\n\t\t\t\t);\n\t\t\t}\n\n\t\t\tlet teamData = {\n\t\t\t\tname,\n\t\t\t\torganizationId,\n\t\t\t\tcreatedAt: new Date(),\n\t\t\t\tupdatedAt: new Date(),\n\t\t\t\t...additionalFields,\n\t\t\t};\n\n\t\t\t// Run beforeCreateTeam hook\n\t\t\tif (options?.organizationHooks?.beforeCreateTeam) {\n\t\t\t\tconst response = await options?.organizationHooks.beforeCreateTeam({\n\t\t\t\t\tteam: {\n\t\t\t\t\t\tname,\n\t\t\t\t\t\torganizationId,\n\t\t\t\t\t\t...additionalFields,\n\t\t\t\t\t},\n\t\t\t\t\tuser: session?.user,\n\t\t\t\t\torganization,\n\t\t\t\t});\n\t\t\t\tif (response && typeof response === \"object\" && \"data\" in response) {\n\t\t\t\t\tteamData = {\n\t\t\t\t\t\t...teamData,\n\t\t\t\t\t\t...response.data,\n\t\t\t\t\t};\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tconst createdTeam = await adapter.createTeam(teamData);\n\n\t\t\t// Run afterCreateTeam hook\n\t\t\tif (options?.organizationHooks?.afterCreateTeam) {\n\t\t\t\tawait options?.organizationHooks.afterCreateTeam({\n\t\t\t\t\tteam: createdTeam,\n\t\t\t\t\tuser: session?.user,\n\t\t\t\t\torganization,\n\t\t\t\t});\n\t\t\t}\n\n\t\t\treturn ctx.json(createdTeam);\n\t\t},\n\t);\n};\n\nconst removeTeamBodySchema = z.object({\n\tteamId: z.string().meta({\n\t\tdescription: `The team ID of the team to remove. Eg: \"team-id\"`,\n\t}),\n\torganizationId: z\n\t\t.string()\n\t\t.meta({\n\t\t\tdescription: `The organization ID which the team falls under. If not provided, it will default to the user's active organization. Eg: \"organization-id\"`,\n\t\t})\n\t\t.optional(),\n});\n\nexport const removeTeam = <O extends OrganizationOptions>(options: O) =>\n\tcreateAuthEndpoint(\n\t\t\"/organization/remove-team\",\n\t\t{\n\t\t\tmethod: \"POST\",\n\t\t\tbody: removeTeamBodySchema,\n\t\t\tuse: [orgMiddleware],\n\t\t\tmetadata: {\n\t\t\t\topenapi: {\n\t\t\t\t\tdescription: \"Remove a team from an organization\",\n\t\t\t\t\tresponses: {\n\t\t\t\t\t\t\"200\": {\n\t\t\t\t\t\t\tdescription: \"Team removed successfully\",\n\t\t\t\t\t\t\tcontent: {\n\t\t\t\t\t\t\t\t\"application/json\": {\n\t\t\t\t\t\t\t\t\tschema: {\n\t\t\t\t\t\t\t\t\t\ttype: \"object\",\n\t\t\t\t\t\t\t\t\t\tproperties: {\n\t\t\t\t\t\t\t\t\t\t\tmessage: {\n\t\t\t\t\t\t\t\t\t\t\t\ttype: \"string\",\n\t\t\t\t\t\t\t\t\t\t\t\tdescription:\n\t\t\t\t\t\t\t\t\t\t\t\t\t\"Confirmation message indicating successful removal\",\n\t\t\t\t\t\t\t\t\t\t\t\tenum: [\"Team removed successfully.\"],\n\t\t\t\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t\t\trequired: [\"message\"],\n\t\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t},\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t},\n\t\t},\n\t\tasync (ctx) => {\n\t\t\tconst session = await getSessionFromCtx(ctx);\n\t\t\tconst organizationId =\n\t\t\t\tctx.body.organizationId || session?.session.activeOrganizationId;\n\t\t\tif (!organizationId) {\n\t\t\t\tthrow APIError.from(\n\t\t\t\t\t\"BAD_REQUEST\",\n\t\t\t\t\tORGANIZATION_ERROR_CODES.NO_ACTIVE_ORGANIZATION,\n\t\t\t\t);\n\t\t\t}\n\t\t\tif (!session && (ctx.request || ctx.headers)) {\n\t\t\t\tthrow APIError.fromStatus(\"UNAUTHORIZED\");\n\t\t\t}\n\t\t\tconst adapter = getOrgAdapter<O>(ctx.context, options);\n\t\t\tif (session) {\n\t\t\t\tconst member = await adapter.findMemberByOrgId({\n\t\t\t\t\tuserId: session.user.id,\n\t\t\t\t\torganizationId,\n\t\t\t\t});\n\n\t\t\t\tif (!member || session.session?.activeTeamId === ctx.body.teamId) {\n\t\t\t\t\tthrow APIError.from(\n\t\t\t\t\t\t\"FORBIDDEN\",\n\t\t\t\t\t\tORGANIZATION_ERROR_CODES.YOU_ARE_NOT_ALLOWED_TO_DELETE_THIS_TEAM,\n\t\t\t\t\t);\n\t\t\t\t}\n\n\t\t\t\tconst canRemove = await hasPermission(\n\t\t\t\t\t{\n\t\t\t\t\t\trole: member.role,\n\t\t\t\t\t\toptions: ctx.context.orgOptions,\n\t\t\t\t\t\tpermissions: {\n\t\t\t\t\t\t\tteam: [\"delete\"],\n\t\t\t\t\t\t},\n\t\t\t\t\t\torganizationId,\n\t\t\t\t\t},\n\t\t\t\t\tctx,\n\t\t\t\t);\n\n\t\t\t\tif (!canRemove) {\n\t\t\t\t\tthrow APIError.from(\n\t\t\t\t\t\t\"FORBIDDEN\",\n\t\t\t\t\t\tORGANIZATION_ERROR_CODES.YOU_ARE_NOT_ALLOWED_TO_DELETE_TEAMS_IN_THIS_ORGANIZATION,\n\t\t\t\t\t);\n\t\t\t\t}\n\t\t\t}\n\t\t\tconst team = await adapter.findTeamById({\n\t\t\t\tteamId: ctx.body.teamId,\n\t\t\t\torganizationId,\n\t\t\t});\n\t\t\tif (!team || team.organizationId !== organizationId) {\n\t\t\t\tthrow APIError.from(\n\t\t\t\t\t\"BAD_REQUEST\",\n\t\t\t\t\tORGANIZATION_ERROR_CODES.TEAM_NOT_FOUND,\n\t\t\t\t);\n\t\t\t}\n\n\t\t\tif (!ctx.context.orgOptions.teams?.allowRemovingAllTeams) {\n\t\t\t\tconst teams = await adapter.listTeams(organizationId);\n\t\t\t\tif (teams.length <= 1) {\n\t\t\t\t\tthrow APIError.from(\n\t\t\t\t\t\t\"BAD_REQUEST\",\n\t\t\t\t\t\tORGANIZATION_ERROR_CODES.UNABLE_TO_REMOVE_LAST_TEAM,\n\t\t\t\t\t);\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tconst organization = await adapter.findOrganizationById(organizationId);\n\t\t\tif (!organization) {\n\t\t\t\tthrow APIError.from(\n\t\t\t\t\t\"BAD_REQUEST\",\n\t\t\t\t\tORGANIZATION_ERROR_CODES.ORGANIZATION_NOT_FOUND,\n\t\t\t\t);\n\t\t\t}\n\n\t\t\t// Run beforeDeleteTeam hook\n\t\t\tif (options?.organizationHooks?.beforeDeleteTeam) {\n\t\t\t\tawait options?.organizationHooks.beforeDeleteTeam({\n\t\t\t\t\tteam,\n\t\t\t\t\tuser: session?.user,\n\t\t\t\t\torganization,\n\t\t\t\t});\n\t\t\t}\n\n\t\t\tawait adapter.deleteTeam(team.id);\n\n\t\t\t// Run afterDeleteTeam hook\n\t\t\tif (options?.organizationHooks?.afterDeleteTeam) {\n\t\t\t\tawait options?.organizationHooks.afterDeleteTeam({\n\t\t\t\t\tteam,\n\t\t\t\t\tuser: session?.user,\n\t\t\t\t\torganization,\n\t\t\t\t});\n\t\t\t}\n\n\t\t\treturn ctx.json({ message: \"Team removed successfully.\" });\n\t\t},\n\t);\n\nexport const updateTeam = <O extends OrganizationOptions>(options: O) => {\n\tconst additionalFieldsSchema = toZodSchema({\n\t\tfields: options?.schema?.team?.additionalFields ?? {},\n\t\tisClientSide: true,\n\t});\n\n\ttype Body = {\n\t\tteamId: string;\n\t\tdata: Partial<\n\t\t\tPrettifyDeep<\n\t\t\t\tOmit<z.infer<typeof teamSchema>, \"id\" | \"createdAt\" | \"updatedAt\">\n\t\t\t> &\n\t\t\t\tInferAdditionalFieldsFromPluginOptions<\"team\", O>\n\t\t>;\n\t};\n\n\treturn createAuthEndpoint(\n\t\t\"/organization/update-team\",\n\t\t{\n\t\t\tmethod: \"POST\",\n\t\t\tbody: z.object({\n\t\t\t\tteamId: z.string().meta({\n\t\t\t\t\tdescription: `The ID of the team to be updated. Eg: \"team-id\"`,\n\t\t\t\t}),\n\t\t\t\tdata: z\n\t\t\t\t\t.object({\n\t\t\t\t\t\t...teamSchema.shape,\n\t\t\t\t\t\t...additionalFieldsSchema.shape,\n\t\t\t\t\t})\n\t\t\t\t\t.partial(),\n\t\t\t}),\n\t\t\trequireHeaders: true,\n\t\t\tuse: [orgMiddleware, orgSessionMiddleware],\n\t\t\tmetadata: {\n\t\t\t\t$Infer: { body: {} as Body },\n\t\t\t\topenapi: {\n\t\t\t\t\tdescription: \"Update an existing team in an organization\",\n\t\t\t\t\tresponses: {\n\t\t\t\t\t\t\"200\": {\n\t\t\t\t\t\t\tdescription: \"Team updated successfully\",\n\t\t\t\t\t\t\tcontent: {\n\t\t\t\t\t\t\t\t\"application/json\": {\n\t\t\t\t\t\t\t\t\tschema: {\n\t\t\t\t\t\t\t\t\t\ttype: \"object\",\n\t\t\t\t\t\t\t\t\t\tproperties: {\n\t\t\t\t\t\t\t\t\t\t\tid: {\n\t\t\t\t\t\t\t\t\t\t\t\ttype: \"string\",\n\t\t\t\t\t\t\t\t\t\t\t\tdescription: \"Unique identifier of the updated team\",\n\t\t\t\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t\t\t\tname: {\n\t\t\t\t\t\t\t\t\t\t\t\ttype: \"string\",\n\t\t\t\t\t\t\t\t\t\t\t\tdescription: \"Updated name of the team\",\n\t\t\t\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t\t\t\torganizationId: {\n\t\t\t\t\t\t\t\t\t\t\t\ttype: \"string\",\n\t\t\t\t\t\t\t\t\t\t\t\tdescription:\n\t\t\t\t\t\t\t\t\t\t\t\t\t\"ID of the organization the team belongs to\",\n\t\t\t\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t\t\t\tcreatedAt: {\n\t\t\t\t\t\t\t\t\t\t\t\ttype: \"string\",\n\t\t\t\t\t\t\t\t\t\t\t\tformat: \"date-time\",\n\t\t\t\t\t\t\t\t\t\t\t\tdescription: \"Timestamp when the team was created\",\n\t\t\t\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t\t\t\tupdatedAt: {\n\t\t\t\t\t\t\t\t\t\t\t\ttype: \"string\",\n\t\t\t\t\t\t\t\t\t\t\t\tformat: \"date-time\",\n\t\t\t\t\t\t\t\t\t\t\t\tdescription: \"Timestamp when the team was last updated\",\n\t\t\t\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t\t\trequired: [\n\t\t\t\t\t\t\t\t\t\t\t\"id\",\n\t\t\t\t\t\t\t\t\t\t\t\"name\",\n\t\t\t\t\t\t\t\t\t\t\t\"organizationId\",\n\t\t\t\t\t\t\t\t\t\t\t\"createdAt\",\n\t\t\t\t\t\t\t\t\t\t\t\"updatedAt\",\n\t\t\t\t\t\t\t\t\t\t],\n\t\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t},\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t},\n\t\t},\n\t\tasync (ctx) => {\n\t\t\tconst session = ctx.context.session;\n\t\t\tconst organizationId =\n\t\t\t\tctx.body.data.organizationId || session.session.activeOrganizationId;\n\t\t\tif (!organizationId) {\n\t\t\t\tthrow APIError.from(\n\t\t\t\t\t\"BAD_REQUEST\",\n\t\t\t\t\tORGANIZATION_ERROR_CODES.NO_ACTIVE_ORGANIZATION,\n\t\t\t\t);\n\t\t\t}\n\t\t\tconst adapter = getOrgAdapter<O>(ctx.context, options);\n\t\t\tconst member = await adapter.findMemberByOrgId({\n\t\t\t\tuserId: session.user.id,\n\t\t\t\torganizationId,\n\t\t\t});\n\n\t\t\tif (!member) {\n\t\t\t\tthrow APIError.from(\n\t\t\t\t\t\"FORBIDDEN\",\n\t\t\t\t\tORGANIZATION_ERROR_CODES.YOU_ARE_NOT_ALLOWED_TO_UPDATE_THIS_TEAM,\n\t\t\t\t);\n\t\t\t}\n\n\t\t\tconst canUpdate = await hasPermission(\n\t\t\t\t{\n\t\t\t\t\trole: member.role,\n\t\t\t\t\toptions: ctx.context.orgOptions,\n\t\t\t\t\tpermissions: {\n\t\t\t\t\t\tteam: [\"update\"],\n\t\t\t\t\t},\n\t\t\t\t\torganizationId,\n\t\t\t\t},\n\t\t\t\tctx,\n\t\t\t);\n\n\t\t\tif (!canUpdate) {\n\t\t\t\tthrow APIError.from(\n\t\t\t\t\t\"FORBIDDEN\",\n\t\t\t\t\tORGANIZATION_ERROR_CODES.YOU_ARE_NOT_ALLOWED_TO_UPDATE_THIS_TEAM,\n\t\t\t\t);\n\t\t\t}\n\n\t\t\tconst team = await adapter.findTeamById({\n\t\t\t\tteamId: ctx.body.teamId,\n\t\t\t\torganizationId,\n\t\t\t});\n\n\t\t\tif (!team || team.organizationId !== organizationId) {\n\t\t\t\tthrow APIError.from(\n\t\t\t\t\t\"BAD_REQUEST\",\n\t\t\t\t\tORGANIZATION_ERROR_CODES.TEAM_NOT_FOUND,\n\t\t\t\t);\n\t\t\t}\n\n\t\t\tconst { name, organizationId: __, ...additionalFields } = ctx.body.data;\n\n\t\t\tconst organization = await adapter.findOrganizationById(organizationId);\n\t\t\tif (!organization) {\n\t\t\t\tthrow APIError.from(\n\t\t\t\t\t\"BAD_REQUEST\",\n\t\t\t\t\tORGANIZATION_ERROR_CODES.ORGANIZATION_NOT_FOUND,\n\t\t\t\t);\n\t\t\t}\n\n\t\t\tconst updates = {\n\t\t\t\tname,\n\t\t\t\t...additionalFields,\n\t\t\t};\n\n\t\t\t// Run beforeUpdateTeam hook\n\t\t\tif (options?.organizationHooks?.beforeUpdateTeam) {\n\t\t\t\tconst response = await options?.organizationHooks.beforeUpdateTeam({\n\t\t\t\t\tteam,\n\t\t\t\t\tupdates,\n\t\t\t\t\tuser: session.user,\n\t\t\t\t\torganization,\n\t\t\t\t});\n\t\t\t\tif (response && typeof response === \"object\" && \"data\" in response) {\n\t\t\t\t\t// Allow the hook to modify the updates\n\t\t\t\t\tconst modifiedUpdates = response.data;\n\t\t\t\t\tconst updatedTeam = await adapter.updateTeam(\n\t\t\t\t\t\tteam.id,\n\t\t\t\t\t\tmodifiedUpdates,\n\t\t\t\t\t);\n\n\t\t\t\t\t// Run afterUpdateTeam hook\n\t\t\t\t\tif (options?.organizationHooks?.afterUpdateTeam) {\n\t\t\t\t\t\tawait options?.organizationHooks.afterUpdateTeam({\n\t\t\t\t\t\t\tteam: updatedTeam,\n\t\t\t\t\t\t\tuser: session.user,\n\t\t\t\t\t\t\torganization,\n\t\t\t\t\t\t});\n\t\t\t\t\t}\n\n\t\t\t\t\treturn ctx.json(updatedTeam);\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tconst updatedTeam = await adapter.updateTeam(team.id, updates);\n\n\t\t\t// Run afterUpdateTeam hook\n\t\t\tif (options?.organizationHooks?.afterUpdateTeam) {\n\t\t\t\tawait options?.organizationHooks.afterUpdateTeam({\n\t\t\t\t\tteam: updatedTeam,\n\t\t\t\t\tuser: session.user,\n\t\t\t\t\torganization,\n\t\t\t\t});\n\t\t\t}\n\n\t\t\treturn ctx.json(updatedTeam);\n\t\t},\n\t);\n};\n\nconst listOrganizationTeamsQuerySchema = z.optional(\n\tz.object({\n\t\torganizationId: z\n\t\t\t.string()\n\t\t\t.meta({\n\t\t\t\tdescription: `The organization ID which the teams are under to list. Defaults to the users active organization. Eg: \"organization-id\"`,\n\t\t\t})\n\t\t\t.optional(),\n\t}),\n);\n\nexport const listOrganizationTeams = <O extends OrganizationOptions>(\n\toptions: O,\n) =>\n\tcreateAuthEndpoint(\n\t\t\"/organization/list-teams\",\n\t\t{\n\t\t\tmethod: \"GET\",\n\t\t\tquery: listOrganizationTeamsQuerySchema,\n\t\t\tmetadata: {\n\t\t\t\topenapi: {\n\t\t\t\t\tdescription: \"List all teams in an organization\",\n\t\t\t\t\tresponses: {\n\t\t\t\t\t\t\"200\": {\n\t\t\t\t\t\t\tdescription: \"Teams retrieved successfully\",\n\t\t\t\t\t\t\tcontent: {\n\t\t\t\t\t\t\t\t\"application/json\": {\n\t\t\t\t\t\t\t\t\tschema: {\n\t\t\t\t\t\t\t\t\t\ttype: \"array\",\n\t\t\t\t\t\t\t\t\t\titems: {\n\t\t\t\t\t\t\t\t\t\t\ttype: \"object\",\n\t\t\t\t\t\t\t\t\t\t\tproperties: {\n\t\t\t\t\t\t\t\t\t\t\t\tid: {\n\t\t\t\t\t\t\t\t\t\t\t\t\ttype: \"string\",\n\t\t\t\t\t\t\t\t\t\t\t\t\tdescription: \"Unique identifier of the team\",\n\t\t\t\t\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t\t\t\t\tname: {\n\t\t\t\t\t\t\t\t\t\t\t\t\ttype: \"string\",\n\t\t\t\t\t\t\t\t\t\t\t\t\tdescription: \"Name of the team\",\n\t\t\t\t\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t\t\t\t\torganizationId: {\n\t\t\t\t\t\t\t\t\t\t\t\t\ttype: \"string\",\n\t\t\t\t\t\t\t\t\t\t\t\t\tdescription:\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\"ID of the organization the team belongs to\",\n\t\t\t\t\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t\t\t\t\tcreatedAt: {\n\t\t\t\t\t\t\t\t\t\t\t\t\ttype: \"string\",\n\t\t\t\t\t\t\t\t\t\t\t\t\tformat: \"date-time\",\n\t\t\t\t\t\t\t\t\t\t\t\t\tdescription: \"Timestamp when the team was created\",\n\t\t\t\t\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t\t\t\t\tupdatedAt: {\n\t\t\t\t\t\t\t\t\t\t\t\t\ttype: \"string\",\n\t\t\t\t\t\t\t\t\t\t\t\t\tformat: \"date-time\",\n\t\t\t\t\t\t\t\t\t\t\t\t\tdescription:\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\"Timestamp when the team was last updated\",\n\t\t\t\t\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t\t\t\trequired: [\n\t\t\t\t\t\t\t\t\t\t\t\t\"id\",\n\t\t\t\t\t\t\t\t\t\t\t\t\"name\",\n\t\t\t\t\t\t\t\t\t\t\t\t\"organizationId\",\n\t\t\t\t\t\t\t\t\t\t\t\t\"createdAt\",\n\t\t\t\t\t\t\t\t\t\t\t\t\"updatedAt\",\n\t\t\t\t\t\t\t\t\t\t\t],\n\t\t\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t\t\tdescription:\n\t\t\t\t\t\t\t\t\t\t\t\"Array of team objects within the organization\",\n\t\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t},\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t},\n\t\t\trequireHeaders: true,\n\t\t\tuse: [orgMiddleware, orgSessionMiddleware],\n\t\t},\n\t\tasync (ctx) => {\n\t\t\tconst session = ctx.context.session;\n\t\t\tconst organizationId =\n\t\t\t\tctx.query?.organizationId || session?.session.activeOrganizationId;\n\t\t\tif (!organizationId) {\n\t\t\t\tthrow APIError.from(\n\t\t\t\t\t\"BAD_REQUEST\",\n\t\t\t\t\tORGANIZATION_ERROR_CODES.NO_ACTIVE_ORGANIZATION,\n\t\t\t\t);\n\t\t\t}\n\t\t\tconst adapter = getOrgAdapter<O>(ctx.context, options);\n\t\t\tconst member = await adapter.findMemberByOrgId({\n\t\t\t\tuserId: session.user.id,\n\t\t\t\torganizationId: organizationId || \"\",\n\t\t\t});\n\t\t\tif (!member) {\n\t\t\t\tthrow APIError.from(\n\t\t\t\t\t\"FORBIDDEN\",\n\t\t\t\t\tORGANIZATION_ERROR_CODES.YOU_ARE_NOT_ALLOWED_TO_ACCESS_THIS_ORGANIZATION,\n\t\t\t\t);\n\t\t\t}\n\t\t\tconst teams = await adapter.listTeams(organizationId);\n\t\t\treturn ctx.json(teams);\n\t\t},\n\t);\n\nconst setActiveTeamBodySchema = z.object({\n\tteamId: z\n\t\t.string()\n\t\t.meta({\n\t\t\tdescription:\n\t\t\t\t\"The team id to set as active. It can be null to unset the active team\",\n\t\t})\n\t\t.nullable()\n\t\t.optional(),\n});\n\nexport const setActiveTeam = <O extends OrganizationOptions>(options: O) =>\n\tcreateAuthEndpoint(\n\t\t\"/organization/set-active-team\",\n\t\t{\n\t\t\tmethod: \"POST\",\n\t\t\tbody: setActiveTeamBodySchema,\n\t\t\trequireHeaders: true,\n\t\t\tuse: [orgSessionMiddleware, orgMiddleware],\n\t\t\tmetadata: {\n\t\t\t\topenapi: {\n\t\t\t\t\tdescription: \"Set the active team\",\n\t\t\t\t\tresponses: {\n\t\t\t\t\t\t\"200\": {\n\t\t\t\t\t\t\tdescription: \"Success\",\n\t\t\t\t\t\t\tcontent: {\n\t\t\t\t\t\t\t\t\"application/json\": {\n\t\t\t\t\t\t\t\t\tschema: {\n\t\t\t\t\t\t\t\t\t\ttype: \"object\",\n\t\t\t\t\t\t\t\t\t\tdescription: \"The team\",\n\t\t\t\t\t\t\t\t\t\t$ref: \"#/components/schemas/Team\",\n\t\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t},\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t},\n\t\t},\n\t\tasync (ctx) => {\n\t\t\tconst adapter = getOrgAdapter(ctx.context, ctx.context.orgOptions);\n\t\t\tconst session = ctx.context.session;\n\n\t\t\tif (ctx.body.teamId === null) {\n\t\t\t\tconst sessionTeamId = session.session.activeTeamId;\n\t\t\t\tif (!sessionTeamId) {\n\t\t\t\t\treturn ctx.json(null);\n\t\t\t\t}\n\n\t\t\t\tconst updatedSession = await adapter.setActiveTeam(\n\t\t\t\t\tsession.session.token,\n\t\t\t\t\tnull,\n\t\t\t\t\tctx,\n\t\t\t\t);\n\n\t\t\t\tawait setSessionCookie(ctx, {\n\t\t\t\t\tsession: updatedSession,\n\t\t\t\t\tuser: session.user,\n\t\t\t\t});\n\n\t\t\t\treturn ctx.json(null);\n\t\t\t}\n\n\t\t\tlet teamId: string;\n\n\t\t\tif (!ctx.body.teamId) {\n\t\t\t\tconst sessionTeamId = session.session.activeTeamId;\n\t\t\t\tif (!sessionTeamId) {\n\t\t\t\t\treturn ctx.json(null);\n\t\t\t\t} else {\n\t\t\t\t\tteamId = sessionTeamId;\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\tteamId = ctx.body.teamId;\n\t\t\t}\n\n\t\t\tconst team = await adapter.findTeamById({ teamId });\n\n\t\t\tif (!team) {\n\t\t\t\tthrow APIError.from(\n\t\t\t\t\t\"BAD_REQUEST\",\n\t\t\t\t\tORGANIZATION_ERROR_CODES.TEAM_NOT_FOUND,\n\t\t\t\t);\n\t\t\t}\n\n\t\t\tconst member = await adapter.findTeamMember({\n\t\t\t\tteamId,\n\t\t\t\tuserId: session.user.id,\n\t\t\t});\n\n\t\t\tif (!member) {\n\t\t\t\tthrow APIError.from(\n\t\t\t\t\t\"FORBIDDEN\",\n\t\t\t\t\tORGANIZATION_ERROR_CODES.USER_IS_NOT_A_MEMBER_OF_THE_TEAM,\n\t\t\t\t);\n\t\t\t}\n\n\t\t\tconst updatedSession = await adapter.setActiveTeam(\n\t\t\t\tsession.session.token,\n\t\t\t\tteam.id,\n\t\t\t\tctx,\n\t\t\t);\n\n\t\t\tawait setSessionCookie(ctx, {\n\t\t\t\tsession: updatedSession,\n\t\t\t\tuser: session.user,\n\t\t\t});\n\n\t\t\treturn ctx.json(team);\n\t\t},\n\t);\n\nexport const listUserTeams = <O extends OrganizationOptions>(options: O) =>\n\tcreateAuthEndpoint(\n\t\t\"/organization/list-user-teams\",\n\t\t{\n\t\t\tmethod: \"GET\",\n\t\t\tmetadata: {\n\t\t\t\topenapi: {\n\t\t\t\t\tdescription: \"List all teams that the current user is a part of.\",\n\t\t\t\t\tresponses: {\n\t\t\t\t\t\t\"200\": {\n\t\t\t\t\t\t\tdescription: \"Teams retrieved successfully\",\n\t\t\t\t\t\t\tcontent: {\n\t\t\t\t\t\t\t\t\"application/json\": {\n\t\t\t\t\t\t\t\t\tschema: {\n\t\t\t\t\t\t\t\t\t\ttype: \"array\",\n\t\t\t\t\t\t\t\t\t\titems: {\n\t\t\t\t\t\t\t\t\t\t\ttype: \"object\",\n\t\t\t\t\t\t\t\t\t\t\tdescription: \"The team\",\n\t\t\t\t\t\t\t\t\t\t\t$ref: \"#/components/schemas/Team\",\n\t\t\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t\t\tdescription:\n\t\t\t\t\t\t\t\t\t\t\t\"Array of team objects within the organization\",\n\t\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t},\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t},\n\t\t\trequireHeaders: true,\n\t\t\tuse: [orgMiddleware, orgSessionMiddleware],\n\t\t},\n\t\tasync (ctx) => {\n\t\t\tconst session = ctx.context.session;\n\t\t\tconst adapter = getOrgAdapter(ctx.context, ctx.context.orgOptions);\n\t\t\tconst teams = await adapter.listTeamsByUser({\n\t\t\t\tuserId: session.user.id,\n\t\t\t});\n\n\t\t\treturn ctx.json(teams);\n\t\t},\n\t);\n\nconst listTeamMembersQuerySchema = z.optional(\n\tz.object({\n\t\tteamId: z.string().optional().meta({\n\t\t\tdescription:\n\t\t\t\t\"The team whose members we should return. If this is not provided the members of the current active team get returned.\",\n\t\t}),\n\t}),\n);\n\nexport const listTeamMembers = <O extends OrganizationOptions>(options: O) =>\n\tcreateAuthEndpoint(\n\t\t\"/organization/list-team-members\",\n\t\t{\n\t\t\tmethod: \"GET\",\n\t\t\tquery: listTeamMembersQuerySchema,\n\t\t\tmetadata: {\n\t\t\t\topenapi: {\n\t\t\t\t\tdescription: \"List the members of the given team.\",\n\t\t\t\t\tresponses: {\n\t\t\t\t\t\t\"200\": {\n\t\t\t\t\t\t\tdescription: \"Teams retrieved successfully\",\n\t\t\t\t\t\t\tcontent: {\n\t\t\t\t\t\t\t\t\"application/json\": {\n\t\t\t\t\t\t\t\t\tschema: {\n\t\t\t\t\t\t\t\t\t\ttype: \"array\",\n\t\t\t\t\t\t\t\t\t\titems: {\n\t\t\t\t\t\t\t\t\t\t\ttype: \"object\",\n\t\t\t\t\t\t\t\t\t\t\tdescription: \"The team member\",\n\t\t\t\t\t\t\t\t\t\t\tproperties: {\n\t\t\t\t\t\t\t\t\t\t\t\tid: {\n\t\t\t\t\t\t\t\t\t\t\t\t\ttype: \"string\",\n\t\t\t\t\t\t\t\t\t\t\t\t\tdescription: \"Unique identifier of the team member\",\n\t\t\t\t\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t\t\t\t\tuserId: {\n\t\t\t\t\t\t\t\t\t\t\t\t\ttype: \"string\",\n\t\t\t\t\t\t\t\t\t\t\t\t\tdescription: \"The user ID of the team member\",\n\t\t\t\t\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t\t\t\t\tteamId: {\n\t\t\t\t\t\t\t\t\t\t\t\t\ttype: \"string\",\n\t\t\t\t\t\t\t\t\t\t\t\t\tdescription:\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\"The team ID of the team the team member is in\",\n\t\t\t\t\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t\t\t\t\tcreatedAt: {\n\t\t\t\t\t\t\t\t\t\t\t\t\ttype: \"string\",\n\t\t\t\t\t\t\t\t\t\t\t\t\tformat: \"date-time\",\n\t\t\t\t\t\t\t\t\t\t\t\t\tdescription:\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\"Timestamp when the team member was created\",\n\t\t\t\t\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t\t\t\trequired: [\"id\", \"userId\", \"teamId\", \"createdAt\"],\n\t\t\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t\t\tdescription: \"Array of team member objects within the team\",\n\t\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t},\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t},\n\t\t\trequireHeaders: true,\n\t\t\tuse: [orgMiddleware, orgSessionMiddleware],\n\t\t},\n\t\tasync (ctx) => {\n\t\t\tconst session = ctx.context.session;\n\t\t\tconst adapter = getOrgAdapter(ctx.context, ctx.context.orgOptions);\n\t\t\tconst teamId = ctx.query?.teamId || session?.session.activeTeamId;\n\t\t\tif (!teamId) {\n\t\t\t\tthrow APIError.from(\n\t\t\t\t\t\"BAD_REQUEST\",\n\t\t\t\t\tORGANIZATION_ERROR_CODES.YOU_DO_NOT_HAVE_AN_ACTIVE_TEAM,\n\t\t\t\t);\n\t\t\t}\n\t\t\tconst member = await adapter.findTeamMember({\n\t\t\t\tuserId: session.user.id,\n\t\t\t\tteamId,\n\t\t\t});\n\n\t\t\tif (!member) {\n\t\t\t\tthrow APIError.from(\n\t\t\t\t\t\"BAD_REQUEST\",\n\t\t\t\t\tORGANIZATION_ERROR_CODES.USER_IS_NOT_A_MEMBER_OF_THE_TEAM,\n\t\t\t\t);\n\t\t\t}\n\t\t\tconst members = await adapter.listTeamMembers({\n\t\t\t\tteamId,\n\t\t\t});\n\t\t\treturn ctx.json(members);\n\t\t},\n\t);\n\nconst addTeamMemberBodySchema = z.object({\n\tteamId: z.string().meta({\n\t\tdescription: \"The team the user should be a member of.\",\n\t}),\n\n\tuserId: z.coerce.string().meta({\n\t\tdescription:\n\t\t\t\"The user Id which represents the user to be added as a member.\",\n\t}),\n});\n\nexport const addTeamMember = <O extends OrganizationOptions>(options: O) =>\n\tcreateAuthEndpoint(\n\t\t\"/organization/add-team-member\",\n\t\t{\n\t\t\tmethod: \"POST\",\n\t\t\tbody: addTeamMemberBodySchema,\n\t\t\tmetadata: {\n\t\t\t\topenapi: {\n\t\t\t\t\tdescription: \"The newly created member\",\n\t\t\t\t\tresponses: {\n\t\t\t\t\t\t\"200\": {\n\t\t\t\t\t\t\tdescription: \"Team member created successfully\",\n\t\t\t\t\t\t\tcontent: {\n\t\t\t\t\t\t\t\t\"application/json\": {\n\t\t\t\t\t\t\t\t\tschema: {\n\t\t\t\t\t\t\t\t\t\ttype: \"object\",\n\t\t\t\t\t\t\t\t\t\tdescription: \"The team member\",\n\t\t\t\t\t\t\t\t\t\tproperties: {\n\t\t\t\t\t\t\t\t\t\t\tid: {\n\t\t\t\t\t\t\t\t\t\t\t\ttype: \"string\",\n\t\t\t\t\t\t\t\t\t\t\t\tdescription: \"Unique identifier of the team member\",\n\t\t\t\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t\t\t\tuserId: {\n\t\t\t\t\t\t\t\t\t\t\t\ttype: \"string\",\n\t\t\t\t\t\t\t\t\t\t\t\tdescription: \"The user ID of the team member\",\n\t\t\t\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t\t\t\tteamId: {\n\t\t\t\t\t\t\t\t\t\t\t\ttype: \"string\",\n\t\t\t\t\t\t\t\t\t\t\t\tdescription:\n\t\t\t\t\t\t\t\t\t\t\t\t\t\"The team ID of the team the team member is in\",\n\t\t\t\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t\t\t\tcreatedAt: {\n\t\t\t\t\t\t\t\t\t\t\t\ttype: \"string\",\n\t\t\t\t\t\t\t\t\t\t\t\tformat: \"date-time\",\n\t\t\t\t\t\t\t\t\t\t\t\tdescription:\n\t\t\t\t\t\t\t\t\t\t\t\t\t\"Timestamp when the team member was created\",\n\t\t\t\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t\t\trequired: [\"id\", \"userId\", \"teamId\", \"createdAt\"],\n\t\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t},\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t},\n\t\t\trequireHeaders: true,\n\t\t\tuse: [orgMiddleware, orgSessionMiddleware],\n\t\t},\n\t\tasync (ctx) => {\n\t\t\tconst session = ctx.context.session;\n\t\t\tconst adapter = getOrgAdapter(ctx.context, ctx.context.orgOptions);\n\n\t\t\tif (!session.session.activeOrganizationId) {\n\t\t\t\tthrow APIError.from(\n\t\t\t\t\t\"BAD_REQUEST\",\n\t\t\t\t\tORGANIZATION_ERROR_CODES.NO_ACTIVE_ORGANIZATION,\n\t\t\t\t);\n\t\t\t}\n\n\t\t\tconst currentMember = await adapter.findMemberByOrgId({\n\t\t\t\tuserId: session.user.id,\n\t\t\t\torganizationId: session.session.activeOrganizationId,\n\t\t\t});\n\n\t\t\tif (!currentMember) {\n\t\t\t\tthrow APIError.from(\n\t\t\t\t\t\"BAD_REQUEST\",\n\t\t\t\t\tORGANIZATION_ERROR_CODES.USER_IS_NOT_A_MEMBER_OF_THE_ORGANIZATION,\n\t\t\t\t);\n\t\t\t}\n\n\t\t\tconst canUpdateMember = await hasPermission(\n\t\t\t\t{\n\t\t\t\t\trole: currentMember.role,\n\t\t\t\t\toptions: ctx.context.orgOptions,\n\t\t\t\t\tpermissions: {\n\t\t\t\t\t\tmember: [\"update\"],\n\t\t\t\t\t},\n\t\t\t\t\torganizationId: session.session.activeOrganizationId,\n\t\t\t\t},\n\t\t\t\tctx,\n\t\t\t);\n\n\t\t\tif (!canUpdateMember) {\n\t\t\t\tthrow APIError.from(\n\t\t\t\t\t\"FORBIDDEN\",\n\t\t\t\t\tORGANIZATION_ERROR_CODES.YOU_ARE_NOT_ALLOWED_TO_CREATE_A_NEW_TEAM_MEMBER,\n\t\t\t\t);\n\t\t\t}\n\n\t\t\tconst toBeAddedMember = await adapter.findMemberByOrgId({\n\t\t\t\tuserId: ctx.body.userId,\n\t\t\t\torganizationId: session.session.activeOrganizationId,\n\t\t\t});\n\n\t\t\tif (!toBeAddedMember) {\n\t\t\t\tthrow APIError.from(\n\t\t\t\t\t\"BAD_REQUEST\",\n\t\t\t\t\tORGANIZATION_ERROR_CODES.USER_IS_NOT_A_MEMBER_OF_THE_ORGANIZATION,\n\t\t\t\t);\n\t\t\t}\n\n\t\t\tconst team = await adapter.findTeamById({\n\t\t\t\tteamId: ctx.body.teamId,\n\t\t\t\torganizationId: session.session.activeOrganizationId,\n\t\t\t});\n\n\t\t\tif (!team) {\n\t\t\t\tthrow APIError.from(\n\t\t\t\t\t\"BAD_REQUEST\",\n\t\t\t\t\tORGANIZATION_ERROR_CODES.TEAM_NOT_FOUND,\n\t\t\t\t);\n\t\t\t}\n\n\t\t\tconst organization = await adapter.findOrganizationById(\n\t\t\t\tsession.session.activeOrganizationId,\n\t\t\t);\n\t\t\tif (!organization) {\n\t\t\t\tthrow APIError.from(\n\t\t\t\t\t\"BAD_REQUEST\",\n\t\t\t\t\tORGANIZATION_ERROR_CODES.ORGANIZATION_NOT_FOUND,\n\t\t\t\t);\n\t\t\t}\n\n\t\t\tconst userBeingAdded = await ctx.context.internalAdapter.findUserById(\n\t\t\t\tctx.body.userId,\n\t\t\t);\n\t\t\tif (!userBeingAdded) {\n\t\t\t\tthrow APIError.fromStatus(\"BAD_REQUEST\", {\n\t\t\t\t\tmessage: \"User not found\",\n\t\t\t\t});\n\t\t\t}\n\n\t\t\t// Run beforeAddTeamMember hook\n\t\t\tif (options?.organizationHooks?.beforeAddTeamMember) {\n\t\t\t\tconst response = await options?.organizationHooks.beforeAddTeamMember({\n\t\t\t\t\tteamMember: {\n\t\t\t\t\t\tteamId: ctx.body.teamId,\n\t\t\t\t\t\tuserId: ctx.body.userId,\n\t\t\t\t\t},\n\t\t\t\t\tteam,\n\t\t\t\t\tuser: userBeingAdded,\n\t\t\t\t\torganization,\n\t\t\t\t});\n\t\t\t\tif (response && typeof response === \"object\" && \"data\" in response) {\n\t\t\t\t\t// Allow the hook to modify the data\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tconst teamMember = await adapter.findOrCreateTeamMember({\n\t\t\t\tteamId: ctx.body.teamId,\n\t\t\t\tuserId: ctx.body.userId,\n\t\t\t});\n\n\t\t\t// Run afterAddTeamMember hook\n\t\t\tif (options?.organizationHooks?.afterAddTeamMember) {\n\t\t\t\tawait options?.organizationHooks.afterAddTeamMember({\n\t\t\t\t\tteamMember,\n\t\t\t\t\tteam,\n\t\t\t\t\tuser: userBeingAdded,\n\t\t\t\t\torganization,\n\t\t\t\t});\n\t\t\t}\n\n\t\t\treturn ctx.json(teamMember);\n\t\t},\n\t);\n\nconst removeTeamMemberBodySchema = z.object({\n\tteamId: z.string().meta({\n\t\tdescription: \"The team the user should be removed from.\",\n\t}),\n\n\tuserId: z.coerce.string().meta({\n\t\tdescription: \"The user which should be removed from the team.\",\n\t}),\n});\n\nexport const removeTeamMember = <O extends OrganizationOptions>(options: O) =>\n\tcreateAuthEndpoint(\n\t\t\"/organization/remove-team-member\",\n\t\t{\n\t\t\tmethod: \"POST\",\n\t\t\tbody: removeTeamMemberBodySchema,\n\t\t\tmetadata: {\n\t\t\t\topenapi: {\n\t\t\t\t\tdescription: \"Remove a member from a team\",\n\t\t\t\t\tresponses: {\n\t\t\t\t\t\t\"200\": {\n\t\t\t\t\t\t\tdescription: \"Team member removed successfully\",\n\t\t\t\t\t\t\tcontent: {\n\t\t\t\t\t\t\t\t\"application/json\": {\n\t\t\t\t\t\t\t\t\tschema: {\n\t\t\t\t\t\t\t\t\t\ttype: \"object\",\n\t\t\t\t\t\t\t\t\t\tproperties: {\n\t\t\t\t\t\t\t\t\t\t\tmessage: {\n\t\t\t\t\t\t\t\t\t\t\t\ttype: \"string\",\n\t\t\t\t\t\t\t\t\t\t\t\tdescription:\n\t\t\t\t\t\t\t\t\t\t\t\t\t\"Confirmation message indicating successful removal\",\n\t\t\t\t\t\t\t\t\t\t\t\tenum: [\"Team member removed successfully.\"],\n\t\t\t\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t\t\trequired: [\"message\"],\n\t\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t},\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t},\n\t\t\trequireHeaders: true,\n\t\t\tuse: [orgMiddleware, orgSessionMiddleware],\n\t\t},\n\t\tasync (ctx) => {\n\t\t\tconst session = ctx.context.session;\n\t\t\tconst adapter = getOrgAdapter(ctx.context, ctx.context.orgOptions);\n\n\t\t\tif (!session.session.activeOrganizationId) {\n\t\t\t\tthrow APIError.from(\n\t\t\t\t\t\"BAD_REQUEST\",\n\t\t\t\t\tORGANIZATION_ERROR_CODES.NO_ACTIVE_ORGANIZATION,\n\t\t\t\t);\n\t\t\t}\n\n\t\t\tconst currentMember = await adapter.findMemberByOrgId({\n\t\t\t\tuserId: session.user.id,\n\t\t\t\torganizationId: session.session.activeOrganizationId,\n\t\t\t});\n\n\t\t\tif (!currentMember) {\n\t\t\t\tthrow APIError.from(\n\t\t\t\t\t\"BAD_REQUEST\",\n\t\t\t\t\tORGANIZATION_ERROR_CODES.USER_IS_NOT_A_MEMBER_OF_THE_ORGANIZATION,\n\t\t\t\t);\n\t\t\t}\n\n\t\t\tconst canDeleteMember = await hasPermission(\n\t\t\t\t{\n\t\t\t\t\trole: currentMember.role,\n\t\t\t\t\toptions: ctx.context.orgOptions,\n\t\t\t\t\tpermissions: {\n\t\t\t\t\t\tmember: [\"delete\"],\n\t\t\t\t\t},\n\t\t\t\t\torganizationId: session.session.activeOrganizationId,\n\t\t\t\t},\n\t\t\t\tctx,\n\t\t\t);\n\n\t\t\tif (!canDeleteMember) {\n\t\t\t\tthrow APIError.from(\n\t\t\t\t\t\"FORBIDDEN\",\n\t\t\t\t\tORGANIZATION_ERROR_CODES.YOU_ARE_NOT_ALLOWED_TO_REMOVE_A_TEAM_MEMBER,\n\t\t\t\t);\n\t\t\t}\n\n\t\t\tconst toBeAddedMember = await adapter.findMemberByOrgId({\n\t\t\t\tuserId: ctx.body.userId,\n\t\t\t\torganizationId: session.session.activeOrganizationId,\n\t\t\t});\n\n\t\t\tif (!toBeAddedMember) {\n\t\t\t\tthrow APIError.from(\n\t\t\t\t\t\"BAD_REQUEST\",\n\t\t\t\t\tORGANIZATION_ERROR_CODES.USER_IS_NOT_A_MEMBER_OF_THE_ORGANIZATION,\n\t\t\t\t);\n\t\t\t}\n\n\t\t\tconst team = await adapter.findTeamById({\n\t\t\t\tteamId: ctx.body.teamId,\n\t\t\t\torganizationId: session.session.activeOrganizationId,\n\t\t\t});\n\n\t\t\tif (!team) {\n\t\t\t\tthrow APIError.from(\n\t\t\t\t\t\"BAD_REQUEST\",\n\t\t\t\t\tORGANIZATION_ERROR_CODES.TEAM_NOT_FOUND,\n\t\t\t\t);\n\t\t\t}\n\n\t\t\tconst organization = await adapter.findOrganizationById(\n\t\t\t\tsession.session.activeOrganizationId,\n\t\t\t);\n\t\t\tif (!organization) {\n\t\t\t\tthrow APIError.from(\n\t\t\t\t\t\"BAD_REQUEST\",\n\t\t\t\t\tORGANIZATION_ERROR_CODES.ORGANIZATION_NOT_FOUND,\n\t\t\t\t);\n\t\t\t}\n\n\t\t\tconst userBeingRemoved = await ctx.context.internalAdapter.findUserById(\n\t\t\t\tctx.body.userId,\n\t\t\t);\n\t\t\tif (!userBeingRemoved) {\n\t\t\t\tthrow APIError.fromStatus(\"BAD_REQUEST\", {\n\t\t\t\t\tmessage: \"User not found\",\n\t\t\t\t});\n\t\t\t}\n\n\t\t\tconst teamMember = await adapter.findTeamMember({\n\t\t\t\tteamId: ctx.body.teamId,\n\t\t\t\tuserId: ctx.body.userId,\n\t\t\t});\n\n\t\t\tif (!teamMember) {\n\t\t\t\tthrow APIError.from(\n\t\t\t\t\t\"BAD_REQUEST\",\n\t\t\t\t\tORGANIZATION_ERROR_CODES.USER_IS_NOT_A_MEMBER_OF_THE_TEAM,\n\t\t\t\t);\n\t\t\t}\n\n\t\t\t// Run beforeRemoveTeamMember hook\n\t\t\tif (options?.organizationHooks?.beforeRemoveTeamMember) {\n\t\t\t\tawait options?.organizationHooks.beforeRemoveTeamMember({\n\t\t\t\t\tteamMember,\n\t\t\t\t\tteam,\n\t\t\t\t\tuser: userBeingRemoved,\n\t\t\t\t\torganization,\n\t\t\t\t});\n\t\t\t}\n\n\t\t\tawait adapter.removeTeamMember({\n\t\t\t\tteamId: ctx.body.teamId,\n\t\t\t\tuserId: ctx.body.userId,\n\t\t\t});\n\n\t\t\t// Run afterRemoveTeamMember hook\n\t\t\tif (options?.organizationHooks?.afterRemoveTeamMember) {\n\t\t\t\tawait options?.organizationHooks.afterRemoveTeamMember({\n\t\t\t\t\tteamMember,\n\t\t\t\t\tteam,\n\t\t\t\t\tuser: userBeingRemoved,\n\t\t\t\t\torganization,\n\t\t\t\t});\n\t\t\t}\n\n\t\t\treturn ctx.json({ message: \"Team member removed successfully.\" });\n\t\t},\n\t);\n"],"mappings":"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"}
|
|
@@ -0,0 +1,376 @@
|
|
|
1
|
+
import { FieldAttributeToObject, RemoveFieldsWithReturnedFalse } from "../../db/field.mjs";
|
|
2
|
+
import "../../db/index.mjs";
|
|
3
|
+
import { OrganizationOptions } from "./types.mjs";
|
|
4
|
+
import { BetterAuthPluginDBSchema, DBFieldAttribute } from "@better-auth/core/db";
|
|
5
|
+
import { Prettify } from "better-call";
|
|
6
|
+
import * as z from "zod";
|
|
7
|
+
|
|
8
|
+
//#region src/plugins/organization/schema.d.ts
|
|
9
|
+
type InferSchema<Schema extends BetterAuthPluginDBSchema, TableName extends string, DefaultFields> = {
|
|
10
|
+
modelName: Schema[TableName] extends {
|
|
11
|
+
modelName: infer M;
|
|
12
|
+
} ? M extends string ? M : string : string;
|
|
13
|
+
fields: { [K in keyof DefaultFields]: DefaultFields[K] } & (Schema[TableName] extends {
|
|
14
|
+
additionalFields: infer F;
|
|
15
|
+
} ? F : {});
|
|
16
|
+
};
|
|
17
|
+
interface OrganizationRoleDefaultFields {
|
|
18
|
+
organizationId: {
|
|
19
|
+
type: "string";
|
|
20
|
+
required: true;
|
|
21
|
+
references: {
|
|
22
|
+
model: "organization";
|
|
23
|
+
field: "id";
|
|
24
|
+
};
|
|
25
|
+
};
|
|
26
|
+
role: {
|
|
27
|
+
type: "string";
|
|
28
|
+
required: true;
|
|
29
|
+
};
|
|
30
|
+
permission: {
|
|
31
|
+
type: "string";
|
|
32
|
+
required: true;
|
|
33
|
+
};
|
|
34
|
+
createdAt: {
|
|
35
|
+
type: "date";
|
|
36
|
+
required: true;
|
|
37
|
+
defaultValue: Date;
|
|
38
|
+
};
|
|
39
|
+
updatedAt: {
|
|
40
|
+
type: "date";
|
|
41
|
+
required: false;
|
|
42
|
+
};
|
|
43
|
+
}
|
|
44
|
+
interface TeamDefaultFields {
|
|
45
|
+
name: {
|
|
46
|
+
type: "string";
|
|
47
|
+
required: true;
|
|
48
|
+
};
|
|
49
|
+
organizationId: {
|
|
50
|
+
type: "string";
|
|
51
|
+
required: true;
|
|
52
|
+
references: {
|
|
53
|
+
model: "organization";
|
|
54
|
+
field: "id";
|
|
55
|
+
};
|
|
56
|
+
};
|
|
57
|
+
createdAt: {
|
|
58
|
+
type: "date";
|
|
59
|
+
required: true;
|
|
60
|
+
};
|
|
61
|
+
updatedAt: {
|
|
62
|
+
type: "date";
|
|
63
|
+
required: false;
|
|
64
|
+
};
|
|
65
|
+
}
|
|
66
|
+
interface TeamMemberDefaultFields {
|
|
67
|
+
teamId: {
|
|
68
|
+
type: "string";
|
|
69
|
+
required: true;
|
|
70
|
+
references: {
|
|
71
|
+
model: "team";
|
|
72
|
+
field: "id";
|
|
73
|
+
};
|
|
74
|
+
};
|
|
75
|
+
userId: {
|
|
76
|
+
type: "string";
|
|
77
|
+
required: true;
|
|
78
|
+
references: {
|
|
79
|
+
model: "user";
|
|
80
|
+
field: "id";
|
|
81
|
+
};
|
|
82
|
+
};
|
|
83
|
+
createdAt: {
|
|
84
|
+
type: "date";
|
|
85
|
+
required: false;
|
|
86
|
+
};
|
|
87
|
+
}
|
|
88
|
+
interface OrganizationDefaultFields {
|
|
89
|
+
name: {
|
|
90
|
+
type: "string";
|
|
91
|
+
required: true;
|
|
92
|
+
sortable: true;
|
|
93
|
+
};
|
|
94
|
+
slug: {
|
|
95
|
+
type: "string";
|
|
96
|
+
required: true;
|
|
97
|
+
unique: true;
|
|
98
|
+
sortable: true;
|
|
99
|
+
};
|
|
100
|
+
logo: {
|
|
101
|
+
type: "string";
|
|
102
|
+
required: false;
|
|
103
|
+
};
|
|
104
|
+
createdAt: {
|
|
105
|
+
type: "date";
|
|
106
|
+
required: true;
|
|
107
|
+
};
|
|
108
|
+
updatedAt: {
|
|
109
|
+
type: "date";
|
|
110
|
+
required: false;
|
|
111
|
+
};
|
|
112
|
+
}
|
|
113
|
+
interface MemberDefaultFields {
|
|
114
|
+
organizationId: {
|
|
115
|
+
type: "string";
|
|
116
|
+
required: true;
|
|
117
|
+
references: {
|
|
118
|
+
model: "organization";
|
|
119
|
+
field: "id";
|
|
120
|
+
};
|
|
121
|
+
};
|
|
122
|
+
userId: {
|
|
123
|
+
type: "string";
|
|
124
|
+
required: true;
|
|
125
|
+
references: {
|
|
126
|
+
model: "user";
|
|
127
|
+
field: "id";
|
|
128
|
+
};
|
|
129
|
+
};
|
|
130
|
+
role: {
|
|
131
|
+
type: "string";
|
|
132
|
+
required: true;
|
|
133
|
+
defaultValue: "member";
|
|
134
|
+
};
|
|
135
|
+
createdAt: {
|
|
136
|
+
type: "date";
|
|
137
|
+
required: true;
|
|
138
|
+
};
|
|
139
|
+
}
|
|
140
|
+
interface InvitationDefaultFields {
|
|
141
|
+
organizationId: {
|
|
142
|
+
type: "string";
|
|
143
|
+
required: true;
|
|
144
|
+
references: {
|
|
145
|
+
model: "organization";
|
|
146
|
+
field: "id";
|
|
147
|
+
};
|
|
148
|
+
};
|
|
149
|
+
email: {
|
|
150
|
+
type: "string";
|
|
151
|
+
required: true;
|
|
152
|
+
sortable: true;
|
|
153
|
+
};
|
|
154
|
+
role: {
|
|
155
|
+
type: "string";
|
|
156
|
+
required: true;
|
|
157
|
+
sortable: true;
|
|
158
|
+
};
|
|
159
|
+
status: {
|
|
160
|
+
type: "string";
|
|
161
|
+
required: true;
|
|
162
|
+
sortable: true;
|
|
163
|
+
defaultValue: "pending";
|
|
164
|
+
};
|
|
165
|
+
expiresAt: {
|
|
166
|
+
type: "date";
|
|
167
|
+
required: false;
|
|
168
|
+
};
|
|
169
|
+
createdAt: {
|
|
170
|
+
type: "date";
|
|
171
|
+
required: true;
|
|
172
|
+
defaultValue: Date;
|
|
173
|
+
};
|
|
174
|
+
inviterId: {
|
|
175
|
+
type: "string";
|
|
176
|
+
required: true;
|
|
177
|
+
references: {
|
|
178
|
+
model: "user";
|
|
179
|
+
field: "id";
|
|
180
|
+
};
|
|
181
|
+
};
|
|
182
|
+
}
|
|
183
|
+
interface SessionDefaultFields {
|
|
184
|
+
activeOrganizationId: {
|
|
185
|
+
type: "string";
|
|
186
|
+
required: false;
|
|
187
|
+
};
|
|
188
|
+
}
|
|
189
|
+
type OrganizationSchema<O extends OrganizationOptions> = (O["dynamicAccessControl"] extends {
|
|
190
|
+
enabled: true;
|
|
191
|
+
} ? {
|
|
192
|
+
organizationRole: InferSchema<O["schema"] extends BetterAuthPluginDBSchema ? O["schema"] : {}, "organizationRole", OrganizationRoleDefaultFields>;
|
|
193
|
+
} & {
|
|
194
|
+
session: {
|
|
195
|
+
fields: InferSchema<O["schema"] extends BetterAuthPluginDBSchema ? O["schema"] : {}, "session", SessionDefaultFields>["fields"];
|
|
196
|
+
};
|
|
197
|
+
} : {}) & (O["teams"] extends {
|
|
198
|
+
enabled: true;
|
|
199
|
+
} ? {
|
|
200
|
+
team: InferSchema<O["schema"] extends BetterAuthPluginDBSchema ? O["schema"] : {}, "team", TeamDefaultFields>;
|
|
201
|
+
teamMember: InferSchema<O["schema"] extends BetterAuthPluginDBSchema ? O["schema"] : {}, "teamMember", TeamMemberDefaultFields>;
|
|
202
|
+
} : {}) & {
|
|
203
|
+
organization: InferSchema<O["schema"] extends BetterAuthPluginDBSchema ? O["schema"] : {}, "organization", OrganizationDefaultFields>;
|
|
204
|
+
member: InferSchema<O["schema"] extends BetterAuthPluginDBSchema ? O["schema"] : {}, "member", MemberDefaultFields>;
|
|
205
|
+
invitation: {
|
|
206
|
+
modelName: O["schema"] extends BetterAuthPluginDBSchema ? InferSchema<O["schema"], "invitation", InvitationDefaultFields>["modelName"] : string;
|
|
207
|
+
fields: InferSchema<O["schema"] extends BetterAuthPluginDBSchema ? O["schema"] : {}, "invitation", InvitationDefaultFields>["fields"] & (O extends {
|
|
208
|
+
teams: {
|
|
209
|
+
enabled: true;
|
|
210
|
+
};
|
|
211
|
+
} ? {
|
|
212
|
+
teamId: {
|
|
213
|
+
type: "string";
|
|
214
|
+
required: false;
|
|
215
|
+
sortable: true;
|
|
216
|
+
};
|
|
217
|
+
} : {});
|
|
218
|
+
};
|
|
219
|
+
session: {
|
|
220
|
+
fields: InferSchema<O["schema"] extends BetterAuthPluginDBSchema ? O["schema"] : {}, "session", SessionDefaultFields>["fields"] & (O["teams"] extends {
|
|
221
|
+
enabled: true;
|
|
222
|
+
} ? {
|
|
223
|
+
activeTeamId: {
|
|
224
|
+
type: "string";
|
|
225
|
+
required: false;
|
|
226
|
+
};
|
|
227
|
+
} : {});
|
|
228
|
+
};
|
|
229
|
+
};
|
|
230
|
+
declare const roleSchema: z.ZodString;
|
|
231
|
+
declare const invitationStatus: z.ZodDefault<z.ZodEnum<{
|
|
232
|
+
pending: "pending";
|
|
233
|
+
accepted: "accepted";
|
|
234
|
+
rejected: "rejected";
|
|
235
|
+
canceled: "canceled";
|
|
236
|
+
}>>;
|
|
237
|
+
declare const organizationSchema: z.ZodObject<{
|
|
238
|
+
id: z.ZodDefault<z.ZodString>;
|
|
239
|
+
name: z.ZodString;
|
|
240
|
+
slug: z.ZodString;
|
|
241
|
+
logo: z.ZodOptional<z.ZodOptional<z.ZodNullable<z.ZodString>>>;
|
|
242
|
+
metadata: z.ZodOptional<z.ZodUnion<[z.ZodRecord<z.ZodString, z.ZodUnknown>, z.ZodPipe<z.ZodString, z.ZodTransform<any, string>>]>>;
|
|
243
|
+
createdAt: z.ZodDate;
|
|
244
|
+
}, z.core.$strip>;
|
|
245
|
+
declare const memberSchema: z.ZodObject<{
|
|
246
|
+
id: z.ZodDefault<z.ZodString>;
|
|
247
|
+
organizationId: z.ZodString;
|
|
248
|
+
userId: z.ZodCoercedString<unknown>;
|
|
249
|
+
role: z.ZodString;
|
|
250
|
+
createdAt: z.ZodDefault<z.ZodDate>;
|
|
251
|
+
}, z.core.$strip>;
|
|
252
|
+
declare const invitationSchema: z.ZodObject<{
|
|
253
|
+
id: z.ZodDefault<z.ZodString>;
|
|
254
|
+
organizationId: z.ZodString;
|
|
255
|
+
email: z.ZodString;
|
|
256
|
+
role: z.ZodString;
|
|
257
|
+
status: z.ZodDefault<z.ZodEnum<{
|
|
258
|
+
pending: "pending";
|
|
259
|
+
accepted: "accepted";
|
|
260
|
+
rejected: "rejected";
|
|
261
|
+
canceled: "canceled";
|
|
262
|
+
}>>;
|
|
263
|
+
teamId: z.ZodOptional<z.ZodNullable<z.ZodString>>;
|
|
264
|
+
inviterId: z.ZodString;
|
|
265
|
+
expiresAt: z.ZodDate;
|
|
266
|
+
createdAt: z.ZodDefault<z.ZodDate>;
|
|
267
|
+
}, z.core.$strip>;
|
|
268
|
+
declare const teamSchema: z.ZodObject<{
|
|
269
|
+
id: z.ZodDefault<z.ZodString>;
|
|
270
|
+
name: z.ZodString;
|
|
271
|
+
organizationId: z.ZodString;
|
|
272
|
+
createdAt: z.ZodDate;
|
|
273
|
+
updatedAt: z.ZodOptional<z.ZodDate>;
|
|
274
|
+
}, z.core.$strip>;
|
|
275
|
+
declare const teamMemberSchema: z.ZodObject<{
|
|
276
|
+
id: z.ZodDefault<z.ZodString>;
|
|
277
|
+
teamId: z.ZodString;
|
|
278
|
+
userId: z.ZodString;
|
|
279
|
+
createdAt: z.ZodDefault<z.ZodDate>;
|
|
280
|
+
}, z.core.$strip>;
|
|
281
|
+
declare const organizationRoleSchema: z.ZodObject<{
|
|
282
|
+
id: z.ZodDefault<z.ZodString>;
|
|
283
|
+
organizationId: z.ZodString;
|
|
284
|
+
role: z.ZodString;
|
|
285
|
+
permission: z.ZodRecord<z.ZodString, z.ZodArray<z.ZodString>>;
|
|
286
|
+
createdAt: z.ZodDefault<z.ZodDate>;
|
|
287
|
+
updatedAt: z.ZodOptional<z.ZodDate>;
|
|
288
|
+
}, z.core.$strip>;
|
|
289
|
+
type Organization = z.infer<typeof organizationSchema>;
|
|
290
|
+
type Member = z.infer<typeof memberSchema>;
|
|
291
|
+
type TeamMember = z.infer<typeof teamMemberSchema>;
|
|
292
|
+
type Team = z.infer<typeof teamSchema>;
|
|
293
|
+
type Invitation = z.infer<typeof invitationSchema>;
|
|
294
|
+
type InvitationInput = z.input<typeof invitationSchema>;
|
|
295
|
+
type MemberInput = z.input<typeof memberSchema>;
|
|
296
|
+
type TeamMemberInput = z.input<typeof teamMemberSchema>;
|
|
297
|
+
type OrganizationInput = z.input<typeof organizationSchema>;
|
|
298
|
+
type TeamInput = z.infer<typeof teamSchema>;
|
|
299
|
+
type OrganizationRole = z.infer<typeof organizationRoleSchema>;
|
|
300
|
+
declare const defaultRolesSchema: z.ZodUnion<readonly [z.ZodEnum<{
|
|
301
|
+
admin: "admin";
|
|
302
|
+
member: "member";
|
|
303
|
+
owner: "owner";
|
|
304
|
+
}>, z.ZodArray<z.ZodEnum<{
|
|
305
|
+
admin: "admin";
|
|
306
|
+
member: "member";
|
|
307
|
+
owner: "owner";
|
|
308
|
+
}>>]>;
|
|
309
|
+
type CustomRolesSchema<O> = O extends {
|
|
310
|
+
roles: {
|
|
311
|
+
[key: string]: any;
|
|
312
|
+
};
|
|
313
|
+
} ? z.ZodType<keyof O["roles"] | Array<keyof O["roles"]>> : typeof defaultRolesSchema;
|
|
314
|
+
type InferOrganizationZodRolesFromOption<O extends OrganizationOptions | undefined> = CustomRolesSchema<O>;
|
|
315
|
+
type InferOrganizationRolesFromOption<O extends OrganizationOptions | undefined> = O extends {
|
|
316
|
+
roles: any;
|
|
317
|
+
} ? keyof O["roles"] extends infer K extends string ? K : "admin" | "member" | "owner" : "admin" | "member" | "owner";
|
|
318
|
+
type InvitationStatus = "pending" | "accepted" | "rejected" | "canceled";
|
|
319
|
+
type InferAdditionalFieldsOutput<SchemaName extends string, Options extends OrganizationOptions, isClientSide extends boolean> = Options["schema"] extends { [key in SchemaName]?: {
|
|
320
|
+
additionalFields: infer Field extends Record<string, DBFieldAttribute>;
|
|
321
|
+
} } ? isClientSide extends true ? FieldAttributeToObject<RemoveFieldsWithReturnedFalse<Field>> : FieldAttributeToObject<Field> : {};
|
|
322
|
+
type InferMember<O extends OrganizationOptions, isClientSide extends boolean = true> = Prettify<(O["teams"] extends {
|
|
323
|
+
enabled: true;
|
|
324
|
+
} ? {
|
|
325
|
+
id: string;
|
|
326
|
+
organizationId: string;
|
|
327
|
+
role: InferOrganizationRolesFromOption<O>;
|
|
328
|
+
createdAt: Date;
|
|
329
|
+
userId: string;
|
|
330
|
+
teamId?: string | undefined;
|
|
331
|
+
user: {
|
|
332
|
+
id: string;
|
|
333
|
+
email: string;
|
|
334
|
+
name: string;
|
|
335
|
+
image?: string | undefined;
|
|
336
|
+
};
|
|
337
|
+
} : {
|
|
338
|
+
id: string;
|
|
339
|
+
organizationId: string;
|
|
340
|
+
role: InferOrganizationRolesFromOption<O>;
|
|
341
|
+
createdAt: Date;
|
|
342
|
+
userId: string;
|
|
343
|
+
user: {
|
|
344
|
+
id: string;
|
|
345
|
+
email: string;
|
|
346
|
+
name: string;
|
|
347
|
+
image?: string | undefined;
|
|
348
|
+
};
|
|
349
|
+
}) & InferAdditionalFieldsOutput<"member", O, isClientSide>>;
|
|
350
|
+
type InferOrganization<O extends OrganizationOptions, isClientSide extends boolean = true> = Prettify<Organization & InferAdditionalFieldsOutput<"organization", O, isClientSide>>;
|
|
351
|
+
type InferTeam<O extends OrganizationOptions, isClientSide extends boolean = true> = Prettify<Team & InferAdditionalFieldsOutput<"team", O, isClientSide>>;
|
|
352
|
+
type InferInvitation<O extends OrganizationOptions, isClientSide extends boolean = true> = Prettify<(O["teams"] extends {
|
|
353
|
+
enabled: true;
|
|
354
|
+
} ? {
|
|
355
|
+
id: string;
|
|
356
|
+
organizationId: string;
|
|
357
|
+
email: string;
|
|
358
|
+
role: InferOrganizationRolesFromOption<O>;
|
|
359
|
+
status: InvitationStatus;
|
|
360
|
+
inviterId: string;
|
|
361
|
+
expiresAt: Date;
|
|
362
|
+
createdAt: Date;
|
|
363
|
+
teamId?: string | undefined;
|
|
364
|
+
} : {
|
|
365
|
+
id: string;
|
|
366
|
+
organizationId: string;
|
|
367
|
+
email: string;
|
|
368
|
+
role: InferOrganizationRolesFromOption<O>;
|
|
369
|
+
status: InvitationStatus;
|
|
370
|
+
inviterId: string;
|
|
371
|
+
expiresAt: Date;
|
|
372
|
+
createdAt: Date;
|
|
373
|
+
}) & InferAdditionalFieldsOutput<"invitation", O, isClientSide>>;
|
|
374
|
+
//#endregion
|
|
375
|
+
export { InferInvitation, InferMember, InferOrganization, InferOrganizationRolesFromOption, InferOrganizationZodRolesFromOption, InferTeam, Invitation, InvitationInput, InvitationStatus, Member, MemberInput, Organization, OrganizationInput, OrganizationRole, OrganizationSchema, Team, TeamInput, TeamMember, TeamMemberInput, defaultRolesSchema, invitationSchema, invitationStatus, memberSchema, organizationRoleSchema, organizationSchema, roleSchema, teamMemberSchema, teamSchema };
|
|
376
|
+
//# sourceMappingURL=schema.d.mts.map
|
|
@@ -0,0 +1,68 @@
|
|
|
1
|
+
import { generateId } from "@better-auth/core/utils/id";
|
|
2
|
+
import * as z from "zod";
|
|
3
|
+
|
|
4
|
+
//#region src/plugins/organization/schema.ts
|
|
5
|
+
const roleSchema = z.string();
|
|
6
|
+
const invitationStatus = z.enum([
|
|
7
|
+
"pending",
|
|
8
|
+
"accepted",
|
|
9
|
+
"rejected",
|
|
10
|
+
"canceled"
|
|
11
|
+
]).default("pending");
|
|
12
|
+
const organizationSchema = z.object({
|
|
13
|
+
id: z.string().default(generateId),
|
|
14
|
+
name: z.string(),
|
|
15
|
+
slug: z.string(),
|
|
16
|
+
logo: z.string().nullish().optional(),
|
|
17
|
+
metadata: z.record(z.string(), z.unknown()).or(z.string().transform((v) => JSON.parse(v))).optional(),
|
|
18
|
+
createdAt: z.date()
|
|
19
|
+
});
|
|
20
|
+
const memberSchema = z.object({
|
|
21
|
+
id: z.string().default(generateId),
|
|
22
|
+
organizationId: z.string(),
|
|
23
|
+
userId: z.coerce.string(),
|
|
24
|
+
role: roleSchema,
|
|
25
|
+
createdAt: z.date().default(() => /* @__PURE__ */ new Date())
|
|
26
|
+
});
|
|
27
|
+
const invitationSchema = z.object({
|
|
28
|
+
id: z.string().default(generateId),
|
|
29
|
+
organizationId: z.string(),
|
|
30
|
+
email: z.string(),
|
|
31
|
+
role: roleSchema,
|
|
32
|
+
status: invitationStatus,
|
|
33
|
+
teamId: z.string().nullish(),
|
|
34
|
+
inviterId: z.string(),
|
|
35
|
+
expiresAt: z.date(),
|
|
36
|
+
createdAt: z.date().default(() => /* @__PURE__ */ new Date())
|
|
37
|
+
});
|
|
38
|
+
const teamSchema = z.object({
|
|
39
|
+
id: z.string().default(generateId),
|
|
40
|
+
name: z.string().min(1),
|
|
41
|
+
organizationId: z.string(),
|
|
42
|
+
createdAt: z.date(),
|
|
43
|
+
updatedAt: z.date().optional()
|
|
44
|
+
});
|
|
45
|
+
const teamMemberSchema = z.object({
|
|
46
|
+
id: z.string().default(generateId),
|
|
47
|
+
teamId: z.string(),
|
|
48
|
+
userId: z.string(),
|
|
49
|
+
createdAt: z.date().default(() => /* @__PURE__ */ new Date())
|
|
50
|
+
});
|
|
51
|
+
const organizationRoleSchema = z.object({
|
|
52
|
+
id: z.string().default(generateId),
|
|
53
|
+
organizationId: z.string(),
|
|
54
|
+
role: z.string(),
|
|
55
|
+
permission: z.record(z.string(), z.array(z.string())),
|
|
56
|
+
createdAt: z.date().default(() => /* @__PURE__ */ new Date()),
|
|
57
|
+
updatedAt: z.date().optional()
|
|
58
|
+
});
|
|
59
|
+
const defaultRoles = [
|
|
60
|
+
"admin",
|
|
61
|
+
"member",
|
|
62
|
+
"owner"
|
|
63
|
+
];
|
|
64
|
+
const defaultRolesSchema = z.union([z.enum(defaultRoles), z.array(z.enum(defaultRoles))]);
|
|
65
|
+
|
|
66
|
+
//#endregion
|
|
67
|
+
export { teamSchema };
|
|
68
|
+
//# sourceMappingURL=schema.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"schema.mjs","names":[],"sources":["../../../src/plugins/organization/schema.ts"],"sourcesContent":["import type { BetterAuthPluginDBSchema } from \"@better-auth/core/db\";\nimport { generateId } from \"@better-auth/core/utils/id\";\nimport type { Prettify } from \"better-call\";\nimport * as z from \"zod\";\nimport type {\n\tFieldAttributeToObject,\n\tRemoveFieldsWithReturnedFalse,\n} from \"../../db\";\nimport type { OrganizationOptions } from \"./types\";\n\ntype InferSchema<\n\tSchema extends BetterAuthPluginDBSchema,\n\tTableName extends string,\n\tDefaultFields,\n> = {\n\tmodelName: Schema[TableName] extends { modelName: infer M }\n\t\t? M extends string\n\t\t\t? M\n\t\t\t: string\n\t\t: string;\n\tfields: {\n\t\t[K in keyof DefaultFields]: DefaultFields[K];\n\t} & (Schema[TableName] extends { additionalFields: infer F } ? F : {});\n};\n\ninterface OrganizationRoleDefaultFields {\n\torganizationId: {\n\t\ttype: \"string\";\n\t\trequired: true;\n\t\treferences: {\n\t\t\tmodel: \"organization\";\n\t\t\tfield: \"id\";\n\t\t};\n\t};\n\trole: {\n\t\ttype: \"string\";\n\t\trequired: true;\n\t};\n\tpermission: {\n\t\ttype: \"string\";\n\t\trequired: true;\n\t};\n\tcreatedAt: {\n\t\ttype: \"date\";\n\t\trequired: true;\n\t\tdefaultValue: Date;\n\t};\n\tupdatedAt: {\n\t\ttype: \"date\";\n\t\trequired: false;\n\t};\n}\n\ninterface TeamDefaultFields {\n\tname: {\n\t\ttype: \"string\";\n\t\trequired: true;\n\t};\n\torganizationId: {\n\t\ttype: \"string\";\n\t\trequired: true;\n\t\treferences: {\n\t\t\tmodel: \"organization\";\n\t\t\tfield: \"id\";\n\t\t};\n\t};\n\tcreatedAt: {\n\t\ttype: \"date\";\n\t\trequired: true;\n\t};\n\tupdatedAt: {\n\t\ttype: \"date\";\n\t\trequired: false;\n\t};\n}\n\ninterface TeamMemberDefaultFields {\n\tteamId: {\n\t\ttype: \"string\";\n\t\trequired: true;\n\t\treferences: {\n\t\t\tmodel: \"team\";\n\t\t\tfield: \"id\";\n\t\t};\n\t};\n\tuserId: {\n\t\ttype: \"string\";\n\t\trequired: true;\n\t\treferences: {\n\t\t\tmodel: \"user\";\n\t\t\tfield: \"id\";\n\t\t};\n\t};\n\tcreatedAt: {\n\t\ttype: \"date\";\n\t\trequired: false;\n\t};\n}\n\ninterface OrganizationDefaultFields {\n\tname: {\n\t\ttype: \"string\";\n\t\trequired: true;\n\t\tsortable: true;\n\t};\n\tslug: {\n\t\ttype: \"string\";\n\t\trequired: true;\n\t\tunique: true;\n\t\tsortable: true;\n\t};\n\tlogo: {\n\t\ttype: \"string\";\n\t\trequired: false;\n\t};\n\tcreatedAt: {\n\t\ttype: \"date\";\n\t\trequired: true;\n\t};\n\tupdatedAt: {\n\t\ttype: \"date\";\n\t\trequired: false;\n\t};\n}\n\ninterface MemberDefaultFields {\n\torganizationId: {\n\t\ttype: \"string\";\n\t\trequired: true;\n\t\treferences: {\n\t\t\tmodel: \"organization\";\n\t\t\tfield: \"id\";\n\t\t};\n\t};\n\tuserId: {\n\t\ttype: \"string\";\n\t\trequired: true;\n\t\treferences: {\n\t\t\tmodel: \"user\";\n\t\t\tfield: \"id\";\n\t\t};\n\t};\n\trole: {\n\t\ttype: \"string\";\n\t\trequired: true;\n\t\tdefaultValue: \"member\";\n\t};\n\tcreatedAt: {\n\t\ttype: \"date\";\n\t\trequired: true;\n\t};\n}\n\ninterface InvitationDefaultFields {\n\torganizationId: {\n\t\ttype: \"string\";\n\t\trequired: true;\n\t\treferences: {\n\t\t\tmodel: \"organization\";\n\t\t\tfield: \"id\";\n\t\t};\n\t};\n\temail: {\n\t\ttype: \"string\";\n\t\trequired: true;\n\t\tsortable: true;\n\t};\n\trole: {\n\t\ttype: \"string\";\n\t\trequired: true;\n\t\tsortable: true;\n\t};\n\tstatus: {\n\t\ttype: \"string\";\n\t\trequired: true;\n\t\tsortable: true;\n\t\tdefaultValue: \"pending\";\n\t};\n\texpiresAt: {\n\t\ttype: \"date\";\n\t\trequired: false;\n\t};\n\tcreatedAt: {\n\t\ttype: \"date\";\n\t\trequired: true;\n\t\tdefaultValue: Date;\n\t};\n\tinviterId: {\n\t\ttype: \"string\";\n\t\trequired: true;\n\t\treferences: {\n\t\t\tmodel: \"user\";\n\t\t\tfield: \"id\";\n\t\t};\n\t};\n}\n\ninterface SessionDefaultFields {\n\tactiveOrganizationId: {\n\t\ttype: \"string\";\n\t\trequired: false;\n\t};\n}\n\nexport type OrganizationSchema<O extends OrganizationOptions> =\n\t(O[\"dynamicAccessControl\"] extends { enabled: true }\n\t\t? {\n\t\t\t\torganizationRole: InferSchema<\n\t\t\t\t\tO[\"schema\"] extends BetterAuthPluginDBSchema ? O[\"schema\"] : {},\n\t\t\t\t\t\"organizationRole\",\n\t\t\t\t\tOrganizationRoleDefaultFields\n\t\t\t\t>;\n\t\t\t} & {\n\t\t\t\tsession: {\n\t\t\t\t\tfields: InferSchema<\n\t\t\t\t\t\tO[\"schema\"] extends BetterAuthPluginDBSchema ? O[\"schema\"] : {},\n\t\t\t\t\t\t\"session\",\n\t\t\t\t\t\tSessionDefaultFields\n\t\t\t\t\t>[\"fields\"];\n\t\t\t\t};\n\t\t\t}\n\t\t: {}) &\n\t\t(O[\"teams\"] extends { enabled: true }\n\t\t\t? {\n\t\t\t\t\tteam: InferSchema<\n\t\t\t\t\t\tO[\"schema\"] extends BetterAuthPluginDBSchema ? O[\"schema\"] : {},\n\t\t\t\t\t\t\"team\",\n\t\t\t\t\t\tTeamDefaultFields\n\t\t\t\t\t>;\n\t\t\t\t\tteamMember: InferSchema<\n\t\t\t\t\t\tO[\"schema\"] extends BetterAuthPluginDBSchema ? O[\"schema\"] : {},\n\t\t\t\t\t\t\"teamMember\",\n\t\t\t\t\t\tTeamMemberDefaultFields\n\t\t\t\t\t>;\n\t\t\t\t}\n\t\t\t: {}) & {\n\t\t\torganization: InferSchema<\n\t\t\t\tO[\"schema\"] extends BetterAuthPluginDBSchema ? O[\"schema\"] : {},\n\t\t\t\t\"organization\",\n\t\t\t\tOrganizationDefaultFields\n\t\t\t>;\n\t\t\tmember: InferSchema<\n\t\t\t\tO[\"schema\"] extends BetterAuthPluginDBSchema ? O[\"schema\"] : {},\n\t\t\t\t\"member\",\n\t\t\t\tMemberDefaultFields\n\t\t\t>;\n\t\t\tinvitation: {\n\t\t\t\tmodelName: O[\"schema\"] extends BetterAuthPluginDBSchema\n\t\t\t\t\t? InferSchema<\n\t\t\t\t\t\t\tO[\"schema\"],\n\t\t\t\t\t\t\t\"invitation\",\n\t\t\t\t\t\t\tInvitationDefaultFields\n\t\t\t\t\t\t>[\"modelName\"]\n\t\t\t\t\t: string;\n\t\t\t\tfields: InferSchema<\n\t\t\t\t\tO[\"schema\"] extends BetterAuthPluginDBSchema ? O[\"schema\"] : {},\n\t\t\t\t\t\"invitation\",\n\t\t\t\t\tInvitationDefaultFields\n\t\t\t\t>[\"fields\"] &\n\t\t\t\t\t(O extends { teams: { enabled: true } }\n\t\t\t\t\t\t? {\n\t\t\t\t\t\t\t\tteamId: {\n\t\t\t\t\t\t\t\t\ttype: \"string\";\n\t\t\t\t\t\t\t\t\trequired: false;\n\t\t\t\t\t\t\t\t\tsortable: true;\n\t\t\t\t\t\t\t\t};\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t: {});\n\t\t\t};\n\t\t\tsession: {\n\t\t\t\tfields: InferSchema<\n\t\t\t\t\tO[\"schema\"] extends BetterAuthPluginDBSchema ? O[\"schema\"] : {},\n\t\t\t\t\t\"session\",\n\t\t\t\t\tSessionDefaultFields\n\t\t\t\t>[\"fields\"] &\n\t\t\t\t\t(O[\"teams\"] extends { enabled: true }\n\t\t\t\t\t\t? {\n\t\t\t\t\t\t\t\tactiveTeamId: {\n\t\t\t\t\t\t\t\t\ttype: \"string\";\n\t\t\t\t\t\t\t\t\trequired: false;\n\t\t\t\t\t\t\t\t};\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t: {});\n\t\t\t};\n\t\t};\n\nexport const roleSchema = z.string();\nexport const invitationStatus = z\n\t.enum([\"pending\", \"accepted\", \"rejected\", \"canceled\"])\n\t.default(\"pending\");\n\nexport const organizationSchema = z.object({\n\tid: z.string().default(generateId),\n\tname: z.string(),\n\tslug: z.string(),\n\tlogo: z.string().nullish().optional(),\n\tmetadata: z\n\t\t.record(z.string(), z.unknown())\n\t\t.or(z.string().transform((v) => JSON.parse(v)))\n\t\t.optional(),\n\tcreatedAt: z.date(),\n});\n\nexport const memberSchema = z.object({\n\tid: z.string().default(generateId),\n\torganizationId: z.string(),\n\tuserId: z.coerce.string(),\n\trole: roleSchema,\n\tcreatedAt: z.date().default(() => new Date()),\n});\n\nexport const invitationSchema = z.object({\n\tid: z.string().default(generateId),\n\torganizationId: z.string(),\n\temail: z.string(),\n\trole: roleSchema,\n\tstatus: invitationStatus,\n\tteamId: z.string().nullish(),\n\tinviterId: z.string(),\n\texpiresAt: z.date(),\n\tcreatedAt: z.date().default(() => new Date()),\n});\n\nexport const teamSchema = z.object({\n\tid: z.string().default(generateId),\n\tname: z.string().min(1),\n\torganizationId: z.string(),\n\tcreatedAt: z.date(),\n\tupdatedAt: z.date().optional(),\n});\n\nexport const teamMemberSchema = z.object({\n\tid: z.string().default(generateId),\n\tteamId: z.string(),\n\tuserId: z.string(),\n\tcreatedAt: z.date().default(() => new Date()),\n});\n\nexport const organizationRoleSchema = z.object({\n\tid: z.string().default(generateId),\n\torganizationId: z.string(),\n\trole: z.string(),\n\tpermission: z.record(z.string(), z.array(z.string())),\n\tcreatedAt: z.date().default(() => new Date()),\n\tupdatedAt: z.date().optional(),\n});\n\nexport type Organization = z.infer<typeof organizationSchema>;\nexport type Member = z.infer<typeof memberSchema>;\nexport type TeamMember = z.infer<typeof teamMemberSchema>;\nexport type Team = z.infer<typeof teamSchema>;\nexport type Invitation = z.infer<typeof invitationSchema>;\nexport type InvitationInput = z.input<typeof invitationSchema>;\nexport type MemberInput = z.input<typeof memberSchema>;\nexport type TeamMemberInput = z.input<typeof teamMemberSchema>;\nexport type OrganizationInput = z.input<typeof organizationSchema>;\nexport type TeamInput = z.infer<typeof teamSchema>;\nexport type OrganizationRole = z.infer<typeof organizationRoleSchema>;\n\nconst defaultRoles = [\"admin\", \"member\", \"owner\"] as const;\nexport const defaultRolesSchema = z.union([\n\tz.enum(defaultRoles),\n\tz.array(z.enum(defaultRoles)),\n]);\n\ntype CustomRolesSchema<O> = O extends { roles: { [key: string]: any } }\n\t? z.ZodType<keyof O[\"roles\"] | Array<keyof O[\"roles\"]>>\n\t: typeof defaultRolesSchema;\n\nexport type InferOrganizationZodRolesFromOption<\n\tO extends OrganizationOptions | undefined,\n> = CustomRolesSchema<O>;\n\nexport type InferOrganizationRolesFromOption<\n\tO extends OrganizationOptions | undefined,\n> = O extends { roles: any }\n\t? keyof O[\"roles\"] extends infer K extends string\n\t\t? K\n\t\t: \"admin\" | \"member\" | \"owner\"\n\t: \"admin\" | \"member\" | \"owner\";\n\nexport type InvitationStatus = \"pending\" | \"accepted\" | \"rejected\" | \"canceled\";\n\nimport type { DBFieldAttribute } from \"@better-auth/core/db\";\n\ntype InferAdditionalFieldsOutput<\n\tSchemaName extends string,\n\tOptions extends OrganizationOptions,\n\tisClientSide extends boolean,\n> = Options[\"schema\"] extends {\n\t[key in SchemaName]?: {\n\t\tadditionalFields: infer Field extends Record<string, DBFieldAttribute>;\n\t};\n}\n\t? isClientSide extends true\n\t\t? FieldAttributeToObject<RemoveFieldsWithReturnedFalse<Field>>\n\t\t: FieldAttributeToObject<Field>\n\t: {};\n\nexport type InferMember<\n\tO extends OrganizationOptions,\n\tisClientSide extends boolean = true,\n> = Prettify<\n\t(O[\"teams\"] extends {\n\t\tenabled: true;\n\t}\n\t\t? {\n\t\t\t\tid: string;\n\t\t\t\torganizationId: string;\n\t\t\t\trole: InferOrganizationRolesFromOption<O>;\n\t\t\t\tcreatedAt: Date;\n\t\t\t\tuserId: string;\n\t\t\t\tteamId?: string | undefined;\n\t\t\t\tuser: {\n\t\t\t\t\tid: string;\n\t\t\t\t\temail: string;\n\t\t\t\t\tname: string;\n\t\t\t\t\timage?: string | undefined;\n\t\t\t\t};\n\t\t\t}\n\t\t: {\n\t\t\t\tid: string;\n\t\t\t\torganizationId: string;\n\t\t\t\trole: InferOrganizationRolesFromOption<O>;\n\t\t\t\tcreatedAt: Date;\n\t\t\t\tuserId: string;\n\t\t\t\tuser: {\n\t\t\t\t\tid: string;\n\t\t\t\t\temail: string;\n\t\t\t\t\tname: string;\n\t\t\t\t\timage?: string | undefined;\n\t\t\t\t};\n\t\t\t}) &\n\t\tInferAdditionalFieldsOutput<\"member\", O, isClientSide>\n>;\n\nexport type InferOrganization<\n\tO extends OrganizationOptions,\n\tisClientSide extends boolean = true,\n> = Prettify<\n\tOrganization & InferAdditionalFieldsOutput<\"organization\", O, isClientSide>\n>;\n\nexport type InferTeam<\n\tO extends OrganizationOptions,\n\tisClientSide extends boolean = true,\n> = Prettify<Team & InferAdditionalFieldsOutput<\"team\", O, isClientSide>>;\n\nexport type InferInvitation<\n\tO extends OrganizationOptions,\n\tisClientSide extends boolean = true,\n> = Prettify<\n\t(O[\"teams\"] extends {\n\t\tenabled: true;\n\t}\n\t\t? {\n\t\t\t\tid: string;\n\t\t\t\torganizationId: string;\n\t\t\t\temail: string;\n\t\t\t\trole: InferOrganizationRolesFromOption<O>;\n\t\t\t\tstatus: InvitationStatus;\n\t\t\t\tinviterId: string;\n\t\t\t\texpiresAt: Date;\n\t\t\t\tcreatedAt: Date;\n\t\t\t\tteamId?: string | undefined;\n\t\t\t}\n\t\t: {\n\t\t\t\tid: string;\n\t\t\t\torganizationId: string;\n\t\t\t\temail: string;\n\t\t\t\trole: InferOrganizationRolesFromOption<O>;\n\t\t\t\tstatus: InvitationStatus;\n\t\t\t\tinviterId: string;\n\t\t\t\texpiresAt: Date;\n\t\t\t\tcreatedAt: Date;\n\t\t\t}) &\n\t\tInferAdditionalFieldsOutput<\"invitation\", O, isClientSide>\n>;\n"],"mappings":";;;;AA8RA,MAAa,aAAa,EAAE,QAAQ;AACpC,MAAa,mBAAmB,EAC9B,KAAK;CAAC;CAAW;CAAY;CAAY;CAAW,CAAC,CACrD,QAAQ,UAAU;AAEpB,MAAa,qBAAqB,EAAE,OAAO;CAC1C,IAAI,EAAE,QAAQ,CAAC,QAAQ,WAAW;CAClC,MAAM,EAAE,QAAQ;CAChB,MAAM,EAAE,QAAQ;CAChB,MAAM,EAAE,QAAQ,CAAC,SAAS,CAAC,UAAU;CACrC,UAAU,EACR,OAAO,EAAE,QAAQ,EAAE,EAAE,SAAS,CAAC,CAC/B,GAAG,EAAE,QAAQ,CAAC,WAAW,MAAM,KAAK,MAAM,EAAE,CAAC,CAAC,CAC9C,UAAU;CACZ,WAAW,EAAE,MAAM;CACnB,CAAC;AAEF,MAAa,eAAe,EAAE,OAAO;CACpC,IAAI,EAAE,QAAQ,CAAC,QAAQ,WAAW;CAClC,gBAAgB,EAAE,QAAQ;CAC1B,QAAQ,EAAE,OAAO,QAAQ;CACzB,MAAM;CACN,WAAW,EAAE,MAAM,CAAC,8BAAc,IAAI,MAAM,CAAC;CAC7C,CAAC;AAEF,MAAa,mBAAmB,EAAE,OAAO;CACxC,IAAI,EAAE,QAAQ,CAAC,QAAQ,WAAW;CAClC,gBAAgB,EAAE,QAAQ;CAC1B,OAAO,EAAE,QAAQ;CACjB,MAAM;CACN,QAAQ;CACR,QAAQ,EAAE,QAAQ,CAAC,SAAS;CAC5B,WAAW,EAAE,QAAQ;CACrB,WAAW,EAAE,MAAM;CACnB,WAAW,EAAE,MAAM,CAAC,8BAAc,IAAI,MAAM,CAAC;CAC7C,CAAC;AAEF,MAAa,aAAa,EAAE,OAAO;CAClC,IAAI,EAAE,QAAQ,CAAC,QAAQ,WAAW;CAClC,MAAM,EAAE,QAAQ,CAAC,IAAI,EAAE;CACvB,gBAAgB,EAAE,QAAQ;CAC1B,WAAW,EAAE,MAAM;CACnB,WAAW,EAAE,MAAM,CAAC,UAAU;CAC9B,CAAC;AAEF,MAAa,mBAAmB,EAAE,OAAO;CACxC,IAAI,EAAE,QAAQ,CAAC,QAAQ,WAAW;CAClC,QAAQ,EAAE,QAAQ;CAClB,QAAQ,EAAE,QAAQ;CAClB,WAAW,EAAE,MAAM,CAAC,8BAAc,IAAI,MAAM,CAAC;CAC7C,CAAC;AAEF,MAAa,yBAAyB,EAAE,OAAO;CAC9C,IAAI,EAAE,QAAQ,CAAC,QAAQ,WAAW;CAClC,gBAAgB,EAAE,QAAQ;CAC1B,MAAM,EAAE,QAAQ;CAChB,YAAY,EAAE,OAAO,EAAE,QAAQ,EAAE,EAAE,MAAM,EAAE,QAAQ,CAAC,CAAC;CACrD,WAAW,EAAE,MAAM,CAAC,8BAAc,IAAI,MAAM,CAAC;CAC7C,WAAW,EAAE,MAAM,CAAC,UAAU;CAC9B,CAAC;AAcF,MAAM,eAAe;CAAC;CAAS;CAAU;CAAQ;AACjD,MAAa,qBAAqB,EAAE,MAAM,CACzC,EAAE,KAAK,aAAa,EACpB,EAAE,MAAM,EAAE,KAAK,aAAa,CAAC,CAC7B,CAAC"}
|