@gatwech/auth 1.0.0-beta.18
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/README.md +31 -0
- package/dist/access-BO2g7QVe.mjs +45 -0
- package/dist/access-C6O_osEz.mjs +79 -0
- package/dist/access-DT1f6l5k.mjs +51 -0
- package/dist/adapter-factory-BZ2Qiqpn.mjs +640 -0
- package/dist/adapters/drizzle-adapter/index.d.mts +47 -0
- package/dist/adapters/drizzle-adapter/index.mjs +208 -0
- package/dist/adapters/index.d.mts +132 -0
- package/dist/adapters/index.mjs +18 -0
- package/dist/adapters/kysely-adapter/index.d.mts +47 -0
- package/dist/adapters/kysely-adapter/index.mjs +11 -0
- package/dist/adapters/memory-adapter/index.d.mts +14 -0
- package/dist/adapters/memory-adapter/index.mjs +154 -0
- package/dist/adapters/mongodb-adapter/index.d.mts +35 -0
- package/dist/adapters/mongodb-adapter/index.mjs +315 -0
- package/dist/adapters/prisma-adapter/index.d.mts +34 -0
- package/dist/adapters/prisma-adapter/index.mjs +159 -0
- package/dist/adapters/test.d.mts +81 -0
- package/dist/adapters/test.mjs +793 -0
- package/dist/admin-Bcq53Nwj.mjs +743 -0
- package/dist/admin-DtfO1PLg.d.mts +1689 -0
- package/dist/anonymous-CRt1imBW.mjs +107 -0
- package/dist/api/index.d.mts +6 -0
- package/dist/api/index.mjs +17 -0
- package/dist/api-0pR_I-Nx.mjs +3139 -0
- package/dist/auth-CBUoBX6o.mjs +233 -0
- package/dist/bearer-Djf_awfo.mjs +63 -0
- package/dist/bun-sqlite-dialect-CeNvMaZz.mjs +155 -0
- package/dist/captcha-BqaMxlKC.mjs +178 -0
- package/dist/chunk-BK_LfMhE.mjs +40 -0
- package/dist/client/index.d.mts +186 -0
- package/dist/client/index.mjs +7 -0
- package/dist/client/plugins/index.d.mts +949 -0
- package/dist/client/plugins/index.mjs +539 -0
- package/dist/client/react/index.d.mts +179 -0
- package/dist/client/react/index.mjs +69 -0
- package/dist/client-BOX93C3d.d.mts +1250 -0
- package/dist/client-CNY0tn9g.d.mts +628 -0
- package/dist/client-CygJhqeB.mjs +29 -0
- package/dist/client-WiN43tAS.mjs +17 -0
- package/dist/client-aExCkfwm.mjs +30 -0
- package/dist/cookies/index.d.mts +7 -0
- package/dist/cookies/index.mjs +7 -0
- package/dist/cookies-cJObLwn1.mjs +597 -0
- package/dist/crypto/index.d.mts +44 -0
- package/dist/crypto/index.mjs +4 -0
- package/dist/crypto-Bb42eMrH.mjs +70 -0
- package/dist/custom-session-L3t7ecsd.mjs +67 -0
- package/dist/date-Cx2yCiC4.mjs +115 -0
- package/dist/db/index.d.mts +7 -0
- package/dist/db/index.mjs +15 -0
- package/dist/db-BrstmDhc.mjs +1124 -0
- package/dist/device-authorization-V4s3h4Mj.mjs +557 -0
- package/dist/dialect-CeddeGHf.mjs +72 -0
- package/dist/email-otp-BtDHSw14.mjs +592 -0
- package/dist/esm-C-QicDNz.mjs +4090 -0
- package/dist/generic-oauth-CL5X27ZI.mjs +445 -0
- package/dist/get-request-ip-DSjrEpGo.mjs +27 -0
- package/dist/get-tables-BQP7YW9c.mjs +249 -0
- package/dist/has-permission-BpAr7uCn.mjs +14 -0
- package/dist/haveibeenpwned-cMpJvmzI.mjs +43 -0
- package/dist/helper-tmxW3BHj.d.mts +21 -0
- package/dist/index-34ONrP8l.d.mts +503 -0
- package/dist/index-65G5U5DB-DSdjzreF.d.mts +2543 -0
- package/dist/index-B-XKqFvY.d.mts +30 -0
- package/dist/index-B3n8e37d.d.mts +165 -0
- package/dist/index-BBm8nQ9Q.d.mts +42 -0
- package/dist/index-BHoQlf7a.d.mts +7699 -0
- package/dist/index-BYMI9r_d.d.mts +257 -0
- package/dist/index-BqhKCbPH.d.mts +36 -0
- package/dist/index-Buhn3hkR.d.mts +433 -0
- package/dist/index-C-u1h_WX.d.mts +174 -0
- package/dist/index-C7fQuk-V.d.mts +41 -0
- package/dist/index-CM-CFWwr.d.mts +1919 -0
- package/dist/index-CuFzhoS6.d.mts +359 -0
- package/dist/index-Cxi7TbLE.d.mts +11347 -0
- package/dist/index-DB7t8whN.d.mts +1 -0
- package/dist/index-DKNNV1kb.d.mts +626 -0
- package/dist/index-DR0xXno9.d.mts +113 -0
- package/dist/index-D_k662QG.d.mts +833 -0
- package/dist/index-DaBcikv9.d.mts +118 -0
- package/dist/index-DlaMq1nb.d.mts +955 -0
- package/dist/index-DoXZYQpq.d.mts +290 -0
- package/dist/index-G6V0Z_Mn.d.mts +125 -0
- package/dist/index-z0KSvE5i.d.mts +246 -0
- package/dist/index-zjjNBRY2.d.mts +95 -0
- package/dist/index.d.mts +12 -0
- package/dist/index.mjs +33 -0
- package/dist/integrations/next-js.d.mts +21 -0
- package/dist/integrations/next-js.mjs +62 -0
- package/dist/integrations/node.d.mts +15 -0
- package/dist/integrations/node.mjs +15 -0
- package/dist/integrations/react-start.d.mts +15 -0
- package/dist/integrations/react-start.mjs +46 -0
- package/dist/json-D0TBLy4q.mjs +24 -0
- package/dist/jwt-CmxZAGe2.mjs +94 -0
- package/dist/jwt-lHV4QHpD.mjs +387 -0
- package/dist/kysely-adapter-DpzYO8Yf.mjs +181 -0
- package/dist/magic-link-Bk-ueorR.mjs +176 -0
- package/dist/misc-beA1w3XV.mjs +7 -0
- package/dist/multi-session-DRrLKrg9.mjs +144 -0
- package/dist/node-sqlite-dialect-BcKxBQnm.mjs +155 -0
- package/dist/oauth-proxy-D1sWh9B_.mjs +133 -0
- package/dist/oauth2/index.d.mts +60 -0
- package/dist/oauth2/index.mjs +19 -0
- package/dist/one-tap-DMswkTEc.mjs +113 -0
- package/dist/organization-BArHO_5v.mjs +3857 -0
- package/dist/parser-DcrIEuXE.mjs +73 -0
- package/dist/passkey-CcD4CnhM.mjs +558 -0
- package/dist/password-sVC4nePO.mjs +25 -0
- package/dist/permission-DLYUF3cW.mjs +15 -0
- package/dist/phone-number-rHDIlh-2.mjs +485 -0
- package/dist/plugin-helper-4L-lzsjZ.mjs +16 -0
- package/dist/plugins/access/index.d.mts +3 -0
- package/dist/plugins/access/index.mjs +3 -0
- package/dist/plugins/admin/access/index.d.mts +116 -0
- package/dist/plugins/admin/access/index.mjs +4 -0
- package/dist/plugins/admin/index.d.mts +9 -0
- package/dist/plugins/admin/index.mjs +22 -0
- package/dist/plugins/anonymous/index.d.mts +7 -0
- package/dist/plugins/anonymous/index.mjs +18 -0
- package/dist/plugins/bearer/index.d.mts +2 -0
- package/dist/plugins/bearer/index.mjs +8 -0
- package/dist/plugins/captcha/index.d.mts +2 -0
- package/dist/plugins/captcha/index.mjs +4 -0
- package/dist/plugins/custom-session/index.d.mts +7 -0
- package/dist/plugins/custom-session/index.mjs +19 -0
- package/dist/plugins/device-authorization/index.d.mts +4 -0
- package/dist/plugins/device-authorization/index.mjs +18 -0
- package/dist/plugins/email-otp/index.d.mts +3 -0
- package/dist/plugins/email-otp/index.mjs +19 -0
- package/dist/plugins/generic-oauth/index.d.mts +7 -0
- package/dist/plugins/generic-oauth/index.mjs +18 -0
- package/dist/plugins/haveibeenpwned/index.d.mts +2 -0
- package/dist/plugins/haveibeenpwned/index.mjs +18 -0
- package/dist/plugins/index.d.mts +139 -0
- package/dist/plugins/index.mjs +47 -0
- package/dist/plugins/jwt/index.d.mts +7 -0
- package/dist/plugins/jwt/index.mjs +18 -0
- package/dist/plugins/magic-link/index.d.mts +2 -0
- package/dist/plugins/magic-link/index.mjs +18 -0
- package/dist/plugins/multi-session/index.d.mts +3 -0
- package/dist/plugins/multi-session/index.mjs +18 -0
- package/dist/plugins/oauth-proxy/index.d.mts +2 -0
- package/dist/plugins/oauth-proxy/index.mjs +18 -0
- package/dist/plugins/one-tap/index.d.mts +2 -0
- package/dist/plugins/one-tap/index.mjs +18 -0
- package/dist/plugins/one-time-token/index.d.mts +7 -0
- package/dist/plugins/one-time-token/index.mjs +47 -0
- package/dist/plugins/organization/access/index.d.mts +4 -0
- package/dist/plugins/organization/access/index.mjs +4 -0
- package/dist/plugins/organization/index.d.mts +9 -0
- package/dist/plugins/organization/index.mjs +22 -0
- package/dist/plugins/passkey/index.d.mts +7 -0
- package/dist/plugins/passkey/index.mjs +18 -0
- package/dist/plugins/phone-number/index.d.mts +7 -0
- package/dist/plugins/phone-number/index.mjs +18 -0
- package/dist/plugins/two-factor/index.d.mts +7 -0
- package/dist/plugins/two-factor/index.mjs +20 -0
- package/dist/plugins/username/index.d.mts +4 -0
- package/dist/plugins/username/index.mjs +18 -0
- package/dist/plugins-3jfNste3.mjs +1544 -0
- package/dist/plugins-hFZT3hmK.d.mts +14 -0
- package/dist/promise-8rrEHRXd.mjs +23154 -0
- package/dist/proxy-CL9PZXJA.mjs +441 -0
- package/dist/session-Dgp133Yt.mjs +413 -0
- package/dist/social-providers/index.d.mts +1 -0
- package/dist/social-providers/index.mjs +3 -0
- package/dist/src/adapters/adapter-factory/index.d.ts +10 -0
- package/dist/src/adapters/adapter-factory/types.d.ts +124 -0
- package/dist/src/adapters/create-test-suite.d.ts +97 -0
- package/dist/src/adapters/drizzle-adapter/drizzle-adapter.d.ts +43 -0
- package/dist/src/adapters/drizzle-adapter/index.d.ts +1 -0
- package/dist/src/adapters/drizzle-adapter/test/generate-schema.d.ts +12 -0
- package/dist/src/adapters/index.d.ts +21 -0
- package/dist/src/adapters/kysely-adapter/bun-sqlite-dialect.d.ts +58 -0
- package/dist/src/adapters/kysely-adapter/dialect.d.ts +13 -0
- package/dist/src/adapters/kysely-adapter/index.d.ts +3 -0
- package/dist/src/adapters/kysely-adapter/kysely-adapter.d.ts +32 -0
- package/dist/src/adapters/kysely-adapter/node-sqlite-dialect.d.ts +58 -0
- package/dist/src/adapters/kysely-adapter/types.d.ts +1 -0
- package/dist/src/adapters/memory-adapter/index.d.ts +1 -0
- package/dist/src/adapters/memory-adapter/memory-adapter.d.ts +9 -0
- package/dist/src/adapters/mongodb-adapter/index.d.ts +1 -0
- package/dist/src/adapters/mongodb-adapter/mongodb-adapter.d.ts +31 -0
- package/dist/src/adapters/prisma-adapter/index.d.ts +1 -0
- package/dist/src/adapters/prisma-adapter/prisma-adapter.d.ts +32 -0
- package/dist/src/adapters/prisma-adapter/test/auth.d.ts +3 -0
- package/dist/src/adapters/prisma-adapter/test/generate-auth-config.d.ts +2 -0
- package/dist/src/adapters/prisma-adapter/test/generate-prisma-schema.d.ts +3 -0
- package/dist/src/adapters/prisma-adapter/test/get-prisma-client.d.ts +7 -0
- package/dist/src/adapters/prisma-adapter/test/push-prisma-schema.d.ts +1 -0
- package/dist/src/adapters/test-adapter.d.ts +61 -0
- package/dist/src/adapters/test.d.ts +78 -0
- package/dist/src/adapters/tests/auth-flow.d.ts +22 -0
- package/dist/src/adapters/tests/index.d.ts +5 -0
- package/dist/src/adapters/tests/normal.d.ts +87 -0
- package/dist/src/adapters/tests/number-id.d.ts +17 -0
- package/dist/src/adapters/tests/performance.d.ts +24 -0
- package/dist/src/adapters/tests/transactions.d.ts +20 -0
- package/dist/src/adapters/utils.d.ts +3 -0
- package/dist/src/api/index.d.ts +7150 -0
- package/dist/src/api/middlewares/index.d.ts +2 -0
- package/dist/src/api/middlewares/oauth.d.ts +15 -0
- package/dist/src/api/middlewares/origin-check.d.ts +8 -0
- package/dist/src/api/rate-limiter/index.d.ts +13 -0
- package/dist/src/api/routes/account.d.ts +623 -0
- package/dist/src/api/routes/callback.d.ts +68 -0
- package/dist/src/api/routes/email-verification.d.ts +266 -0
- package/dist/src/api/routes/error.d.ts +51 -0
- package/dist/src/api/routes/index.d.ts +11 -0
- package/dist/src/api/routes/ok.d.ts +61 -0
- package/dist/src/api/routes/reset-password.d.ts +203 -0
- package/dist/src/api/routes/session.d.ts +586 -0
- package/dist/src/api/routes/sign-in.d.ts +298 -0
- package/dist/src/api/routes/sign-out.d.ts +59 -0
- package/dist/src/api/routes/sign-up.d.ts +625 -0
- package/dist/src/api/routes/update-user.d.ts +862 -0
- package/dist/src/api/to-auth-endpoints.d.ts +3 -0
- package/dist/src/auth.d.ts +25 -0
- package/dist/src/client/broadcast-channel.d.ts +12 -0
- package/dist/src/client/config.d.ts +85 -0
- package/dist/src/client/fetch-plugins.d.ts +14 -0
- package/dist/src/client/index.d.ts +15 -0
- package/dist/src/client/parser.d.ts +12 -0
- package/dist/src/client/path-to-object.d.ts +63 -0
- package/dist/src/client/plugins/index.d.ts +21 -0
- package/dist/src/client/plugins/infer-plugin.d.ts +11 -0
- package/dist/src/client/proxy.d.ts +8 -0
- package/dist/src/client/query.d.ts +16 -0
- package/dist/src/client/react/index.d.ts +130 -0
- package/dist/src/client/react/react-store.d.ts +43 -0
- package/dist/src/client/session-atom.d.ts +18 -0
- package/dist/src/client/session-refresh.d.ts +17 -0
- package/dist/src/client/test-plugin.d.ts +147 -0
- package/dist/src/client/types.d.ts +49 -0
- package/dist/src/client/vanilla.d.ts +124 -0
- package/dist/src/cookies/check-cookies.d.ts +4 -0
- package/dist/src/cookies/cookie-utils.d.ts +16 -0
- package/dist/src/cookies/index.d.ts +56 -0
- package/dist/src/cookies/session-store.d.ts +43 -0
- package/dist/src/crypto/buffer.d.ts +4 -0
- package/dist/src/crypto/index.d.ts +14 -0
- package/dist/src/crypto/jwt.d.ts +4 -0
- package/dist/src/crypto/password.d.ts +5 -0
- package/dist/src/crypto/random.d.ts +1 -0
- package/dist/src/db/field.d.ts +97 -0
- package/dist/src/db/get-migration.d.ts +18 -0
- package/dist/src/db/get-schema.d.ts +6 -0
- package/dist/src/db/get-tables.d.ts +3 -0
- package/dist/src/db/index.d.ts +10 -0
- package/dist/src/db/internal-adapter.d.ts +9 -0
- package/dist/src/db/schema.d.ts +76 -0
- package/dist/src/db/to-zod.d.ts +31 -0
- package/dist/src/db/utils.d.ts +6 -0
- package/dist/src/db/with-hooks.d.ts +27 -0
- package/dist/src/index.d.ts +14 -0
- package/dist/src/init.d.ts +2 -0
- package/dist/src/integrations/next-js.d.ts +15 -0
- package/dist/src/integrations/node.d.ts +6 -0
- package/dist/src/integrations/react-start.d.ts +9 -0
- package/dist/src/oauth2/index.d.ts +4 -0
- package/dist/src/oauth2/link-account.d.ts +41 -0
- package/dist/src/oauth2/state.d.ts +21 -0
- package/dist/src/oauth2/utils.d.ts +3 -0
- package/dist/src/plugins/access/access.d.ts +25 -0
- package/dist/src/plugins/access/index.d.ts +2 -0
- package/dist/src/plugins/access/types.d.ts +14 -0
- package/dist/src/plugins/additional-fields/client.d.ts +91 -0
- package/dist/src/plugins/admin/access/index.d.ts +1 -0
- package/dist/src/plugins/admin/access/statement.d.ts +110 -0
- package/dist/src/plugins/admin/admin.d.ts +1570 -0
- package/dist/src/plugins/admin/client.d.ts +62 -0
- package/dist/src/plugins/admin/error-codes.d.ts +21 -0
- package/dist/src/plugins/admin/has-permission.d.ts +21 -0
- package/dist/src/plugins/admin/index.d.ts +2 -0
- package/dist/src/plugins/admin/schema.d.ts +36 -0
- package/dist/src/plugins/admin/types.d.ts +77 -0
- package/dist/src/plugins/anonymous/client.d.ts +8 -0
- package/dist/src/plugins/anonymous/index.d.ts +159 -0
- package/dist/src/plugins/api-key/client.d.ts +11 -0
- package/dist/src/plugins/api-key/index.d.ts +1431 -0
- package/dist/src/plugins/api-key/rate-limit.d.ts +20 -0
- package/dist/src/plugins/api-key/routes/create-api-key.d.ts +244 -0
- package/dist/src/plugins/api-key/routes/delete-all-expired-api-keys.d.ts +45 -0
- package/dist/src/plugins/api-key/routes/delete-api-key.d.ts +112 -0
- package/dist/src/plugins/api-key/routes/get-api-key.d.ts +234 -0
- package/dist/src/plugins/api-key/routes/index.d.ts +1136 -0
- package/dist/src/plugins/api-key/routes/list-api-keys.d.ts +231 -0
- package/dist/src/plugins/api-key/routes/update-api-key.d.ts +235 -0
- package/dist/src/plugins/api-key/routes/verify-api-key.d.ts +80 -0
- package/dist/src/plugins/api-key/schema.d.ts +188 -0
- package/dist/src/plugins/api-key/types.d.ts +285 -0
- package/dist/src/plugins/bearer/index.d.ts +31 -0
- package/dist/src/plugins/captcha/constants.d.ts +9 -0
- package/dist/src/plugins/captcha/error-codes.d.ts +9 -0
- package/dist/src/plugins/captcha/index.d.ts +7 -0
- package/dist/src/plugins/captcha/types.d.ts +23 -0
- package/dist/src/plugins/captcha/utils.d.ts +1 -0
- package/dist/src/plugins/captcha/verify-handlers/captchafox.d.ts +11 -0
- package/dist/src/plugins/captcha/verify-handlers/cloudflare-turnstile.d.ts +10 -0
- package/dist/src/plugins/captcha/verify-handlers/google-recaptcha.d.ts +11 -0
- package/dist/src/plugins/captcha/verify-handlers/h-captcha.d.ts +11 -0
- package/dist/src/plugins/captcha/verify-handlers/index.d.ts +4 -0
- package/dist/src/plugins/custom-session/client.d.ts +12 -0
- package/dist/src/plugins/custom-session/index.d.ts +89 -0
- package/dist/src/plugins/device-authorization/client.d.ts +12 -0
- package/dist/src/plugins/device-authorization/index.d.ts +568 -0
- package/dist/src/plugins/device-authorization/schema.d.ts +56 -0
- package/dist/src/plugins/email-otp/client.d.ts +9 -0
- package/dist/src/plugins/email-otp/index.d.ts +826 -0
- package/dist/src/plugins/email-otp/utils.d.ts +2 -0
- package/dist/src/plugins/generic-oauth/client.d.ts +5 -0
- package/dist/src/plugins/generic-oauth/index.d.ts +428 -0
- package/dist/src/plugins/haveibeenpwned/index.d.ts +25 -0
- package/dist/src/plugins/index.d.ts +28 -0
- package/dist/src/plugins/jwt/adapter.d.ts +8 -0
- package/dist/src/plugins/jwt/client.d.ts +5 -0
- package/dist/src/plugins/jwt/index.d.ts +276 -0
- package/dist/src/plugins/jwt/schema.d.ts +18 -0
- package/dist/src/plugins/jwt/sign.d.ts +8 -0
- package/dist/src/plugins/jwt/types.d.ts +175 -0
- package/dist/src/plugins/jwt/utils.d.ts +46 -0
- package/dist/src/plugins/last-login-method/client.d.ts +34 -0
- package/dist/src/plugins/last-login-method/index.d.ts +103 -0
- package/dist/src/plugins/magic-link/client.d.ts +5 -0
- package/dist/src/plugins/magic-link/index.d.ts +253 -0
- package/dist/src/plugins/magic-link/utils.d.ts +1 -0
- package/dist/src/plugins/multi-session/client.d.ts +9 -0
- package/dist/src/plugins/multi-session/index.d.ts +284 -0
- package/dist/src/plugins/oauth-proxy/index.d.ts +119 -0
- package/dist/src/plugins/one-tap/client.d.ts +81 -0
- package/dist/src/plugins/one-tap/index.d.ts +114 -0
- package/dist/src/plugins/one-time-token/client.d.ts +5 -0
- package/dist/src/plugins/one-time-token/index.d.ts +170 -0
- package/dist/src/plugins/one-time-token/utils.d.ts +1 -0
- package/dist/src/plugins/organization/access/index.d.ts +1 -0
- package/dist/src/plugins/organization/access/statement.d.ts +241 -0
- package/dist/src/plugins/organization/adapter.d.ts +685 -0
- package/dist/src/plugins/organization/call.d.ts +55 -0
- package/dist/src/plugins/organization/client.d.ts +344 -0
- package/dist/src/plugins/organization/error-codes.d.ts +58 -0
- package/dist/src/plugins/organization/has-permission.d.ts +13 -0
- package/dist/src/plugins/organization/index.d.ts +4 -0
- package/dist/src/plugins/organization/organization.d.ts +412 -0
- package/dist/src/plugins/organization/permission.d.ts +27 -0
- package/dist/src/plugins/organization/routes/crud-access-control.d.ts +701 -0
- package/dist/src/plugins/organization/routes/crud-invites.d.ts +1522 -0
- package/dist/src/plugins/organization/routes/crud-members.d.ts +1220 -0
- package/dist/src/plugins/organization/routes/crud-org.d.ts +1399 -0
- package/dist/src/plugins/organization/routes/crud-team.d.ts +1323 -0
- package/dist/src/plugins/organization/schema.d.ts +366 -0
- package/dist/src/plugins/organization/types.d.ts +737 -0
- package/dist/src/plugins/passkey/client.d.ts +190 -0
- package/dist/src/plugins/passkey/error-codes.d.ts +9 -0
- package/dist/src/plugins/passkey/index.d.ts +838 -0
- package/dist/src/plugins/passkey/schema.d.ts +50 -0
- package/dist/src/plugins/passkey/types.d.ts +69 -0
- package/dist/src/plugins/passkey/utils.d.ts +2 -0
- package/dist/src/plugins/phone-number/client.d.ts +9 -0
- package/dist/src/plugins/phone-number/index.d.ts +622 -0
- package/dist/src/plugins/phone-number/phone-number-error.d.ts +10 -0
- package/dist/src/plugins/two-factor/backup-codes/index.d.ts +387 -0
- package/dist/src/plugins/two-factor/client.d.ts +28 -0
- package/dist/src/plugins/two-factor/constant.d.ts +2 -0
- package/dist/src/plugins/two-factor/error-code.d.ts +11 -0
- package/dist/src/plugins/two-factor/index.d.ts +1014 -0
- package/dist/src/plugins/two-factor/otp/index.d.ts +282 -0
- package/dist/src/plugins/two-factor/schema.d.ts +35 -0
- package/dist/src/plugins/two-factor/totp/index.d.ts +298 -0
- package/dist/src/plugins/two-factor/types.d.ts +50 -0
- package/dist/src/plugins/two-factor/utils.d.ts +1 -0
- package/dist/src/plugins/two-factor/verify-two-factor.d.ts +59 -0
- package/dist/src/plugins/username/client.d.ts +5 -0
- package/dist/src/plugins/username/error-codes.d.ts +10 -0
- package/dist/src/plugins/username/index.d.ts +313 -0
- package/dist/src/plugins/username/schema.d.ts +27 -0
- package/dist/src/social-providers/index.d.ts +1 -0
- package/dist/src/test-utils/headers.d.ts +5 -0
- package/dist/src/test-utils/index.d.ts +2 -0
- package/dist/src/test-utils/test-instance.d.ts +17849 -0
- package/dist/src/types/adapter.d.ts +21 -0
- package/dist/src/types/api.d.ts +29 -0
- package/dist/src/types/helper.d.ts +32 -0
- package/dist/src/types/index.d.ts +7 -0
- package/dist/src/types/models.d.ts +13 -0
- package/dist/src/types/plugins.d.ts +14 -0
- package/dist/src/utils/await-object.d.ts +3 -0
- package/dist/src/utils/boolean.d.ts +1 -0
- package/dist/src/utils/clone.d.ts +1 -0
- package/dist/src/utils/constants.d.ts +1 -0
- package/dist/src/utils/date.d.ts +1 -0
- package/dist/src/utils/ensure-utc.d.ts +1 -0
- package/dist/src/utils/get-request-ip.d.ts +2 -0
- package/dist/src/utils/hashing.d.ts +6 -0
- package/dist/src/utils/hide-metadata.d.ts +3 -0
- package/dist/src/utils/id.d.ts +1 -0
- package/dist/src/utils/import-util.d.ts +1 -0
- package/dist/src/utils/index.d.ts +5 -0
- package/dist/src/utils/is-atom.d.ts +2 -0
- package/dist/src/utils/is-promise.d.ts +1 -0
- package/dist/src/utils/json.d.ts +1 -0
- package/dist/src/utils/merger.d.ts +1 -0
- package/dist/src/utils/middleware-response.d.ts +8 -0
- package/dist/src/utils/misc.d.ts +1 -0
- package/dist/src/utils/password.d.ts +6 -0
- package/dist/src/utils/plugin-helper.d.ts +5 -0
- package/dist/src/utils/shim.d.ts +3 -0
- package/dist/src/utils/time.d.ts +4 -0
- package/dist/src/utils/url.d.ts +4 -0
- package/dist/src/utils/wildcard.d.ts +45 -0
- package/dist/test-utils/index.d.mts +17870 -0
- package/dist/test-utils/index.mjs +272 -0
- package/dist/two-factor-ClUXxom2.mjs +914 -0
- package/dist/types/index.d.mts +6 -0
- package/dist/types/index.mjs +3 -0
- package/dist/types-B1OL7hyf.d.mts +4 -0
- package/dist/types-Bjn15Uy6.mjs +1 -0
- package/dist/url-VB2gAbTI.mjs +59 -0
- package/dist/username-DiGklOGl.mjs +278 -0
- package/dist/utils-SOMB4Px5.mjs +132 -0
- package/package.json +447 -0
|
@@ -0,0 +1,208 @@
|
|
|
1
|
+
import "../../utils-SOMB4Px5.mjs";
|
|
2
|
+
import "../../json-D0TBLy4q.mjs";
|
|
3
|
+
import "../../crypto-Bb42eMrH.mjs";
|
|
4
|
+
import "../../jwt-CmxZAGe2.mjs";
|
|
5
|
+
import "../../get-tables-BQP7YW9c.mjs";
|
|
6
|
+
import "../../misc-beA1w3XV.mjs";
|
|
7
|
+
import { t as createAdapterFactory } from "../../adapter-factory-BZ2Qiqpn.mjs";
|
|
8
|
+
import { PayvoAuthError } from "@gatwech/core/error";
|
|
9
|
+
import { and, asc, count, desc, eq, gt, gte, inArray, like, lt, lte, ne, notInArray, or, sql } from "drizzle-orm";
|
|
10
|
+
|
|
11
|
+
//#region src/adapters/drizzle-adapter/drizzle-adapter.ts
|
|
12
|
+
const drizzleAdapter = (db, config) => {
|
|
13
|
+
let lazyOptions = null;
|
|
14
|
+
const createCustomAdapter = (db$1) => ({ getFieldName, debugLog }) => {
|
|
15
|
+
function getSchema(model) {
|
|
16
|
+
const schema = config.schema || db$1._.fullSchema;
|
|
17
|
+
if (!schema) throw new PayvoAuthError("Drizzle adapter failed to initialize. Schema not found. Please provide a schema object in the adapter options object.");
|
|
18
|
+
const schemaModel = schema[model];
|
|
19
|
+
if (!schemaModel) throw new PayvoAuthError(`[# Drizzle Adapter]: The model "${model}" was not found in the schema object. Please pass the schema directly to the adapter options.`);
|
|
20
|
+
return schemaModel;
|
|
21
|
+
}
|
|
22
|
+
const withReturning = async (model, builder, data, where) => {
|
|
23
|
+
if (config.provider !== "mysql") return (await builder.returning())[0];
|
|
24
|
+
await builder.execute();
|
|
25
|
+
const schemaModel = getSchema(model);
|
|
26
|
+
const builderVal = builder.config?.values;
|
|
27
|
+
if (where?.length) {
|
|
28
|
+
const clause = convertWhereClause(where.map((w) => {
|
|
29
|
+
if (data[w.field] !== void 0) return {
|
|
30
|
+
...w,
|
|
31
|
+
value: data[w.field]
|
|
32
|
+
};
|
|
33
|
+
return w;
|
|
34
|
+
}), model);
|
|
35
|
+
return (await db$1.select().from(schemaModel).where(...clause))[0];
|
|
36
|
+
} else if (builderVal && builderVal[0]?.id?.value) {
|
|
37
|
+
let tId = builderVal[0]?.id?.value;
|
|
38
|
+
if (!tId) tId = (await db$1.select({ id: sql`LAST_INSERT_ID()` }).from(schemaModel).orderBy(desc(schemaModel.id)).limit(1))[0].id;
|
|
39
|
+
return (await db$1.select().from(schemaModel).where(eq(schemaModel.id, tId)).limit(1).execute())[0];
|
|
40
|
+
} else if (data.id) return (await db$1.select().from(schemaModel).where(eq(schemaModel.id, data.id)).limit(1).execute())[0];
|
|
41
|
+
else {
|
|
42
|
+
if (!("id" in schemaModel)) throw new PayvoAuthError(`The model "${model}" does not have an "id" field. Please use the "id" field as your primary key.`);
|
|
43
|
+
return (await db$1.select().from(schemaModel).orderBy(desc(schemaModel.id)).limit(1).execute())[0];
|
|
44
|
+
}
|
|
45
|
+
};
|
|
46
|
+
function convertWhereClause(where, model) {
|
|
47
|
+
const schemaModel = getSchema(model);
|
|
48
|
+
if (!where) return [];
|
|
49
|
+
if (where.length === 1) {
|
|
50
|
+
const w = where[0];
|
|
51
|
+
if (!w) return [];
|
|
52
|
+
const field = getFieldName({
|
|
53
|
+
model,
|
|
54
|
+
field: w.field
|
|
55
|
+
});
|
|
56
|
+
if (!schemaModel[field]) throw new PayvoAuthError(`The field "${w.field}" does not exist in the schema for the model "${model}". Please update your schema.`);
|
|
57
|
+
if (w.operator === "in") {
|
|
58
|
+
if (!Array.isArray(w.value)) throw new PayvoAuthError(`The value for the field "${w.field}" must be an array when using the "in" operator.`);
|
|
59
|
+
return [inArray(schemaModel[field], w.value)];
|
|
60
|
+
}
|
|
61
|
+
if (w.operator === "not_in") {
|
|
62
|
+
if (!Array.isArray(w.value)) throw new PayvoAuthError(`The value for the field "${w.field}" must be an array when using the "not_in" operator.`);
|
|
63
|
+
return [notInArray(schemaModel[field], w.value)];
|
|
64
|
+
}
|
|
65
|
+
if (w.operator === "contains") return [like(schemaModel[field], `%${w.value}%`)];
|
|
66
|
+
if (w.operator === "starts_with") return [like(schemaModel[field], `${w.value}%`)];
|
|
67
|
+
if (w.operator === "ends_with") return [like(schemaModel[field], `%${w.value}`)];
|
|
68
|
+
if (w.operator === "lt") return [lt(schemaModel[field], w.value)];
|
|
69
|
+
if (w.operator === "lte") return [lte(schemaModel[field], w.value)];
|
|
70
|
+
if (w.operator === "ne") return [ne(schemaModel[field], w.value)];
|
|
71
|
+
if (w.operator === "gt") return [gt(schemaModel[field], w.value)];
|
|
72
|
+
if (w.operator === "gte") return [gte(schemaModel[field], w.value)];
|
|
73
|
+
return [eq(schemaModel[field], w.value)];
|
|
74
|
+
}
|
|
75
|
+
const andGroup = where.filter((w) => w.connector === "AND" || !w.connector);
|
|
76
|
+
const orGroup = where.filter((w) => w.connector === "OR");
|
|
77
|
+
const andClause = and(...andGroup.map((w) => {
|
|
78
|
+
const field = getFieldName({
|
|
79
|
+
model,
|
|
80
|
+
field: w.field
|
|
81
|
+
});
|
|
82
|
+
if (w.operator === "in") {
|
|
83
|
+
if (!Array.isArray(w.value)) throw new PayvoAuthError(`The value for the field "${w.field}" must be an array when using the "in" operator.`);
|
|
84
|
+
return inArray(schemaModel[field], w.value);
|
|
85
|
+
}
|
|
86
|
+
if (w.operator === "not_in") {
|
|
87
|
+
if (!Array.isArray(w.value)) throw new PayvoAuthError(`The value for the field "${w.field}" must be an array when using the "not_in" operator.`);
|
|
88
|
+
return notInArray(schemaModel[field], w.value);
|
|
89
|
+
}
|
|
90
|
+
if (w.operator === "contains") return like(schemaModel[field], `%${w.value}%`);
|
|
91
|
+
if (w.operator === "starts_with") return like(schemaModel[field], `${w.value}%`);
|
|
92
|
+
if (w.operator === "ends_with") return like(schemaModel[field], `%${w.value}`);
|
|
93
|
+
if (w.operator === "lt") return lt(schemaModel[field], w.value);
|
|
94
|
+
if (w.operator === "lte") return lte(schemaModel[field], w.value);
|
|
95
|
+
if (w.operator === "gt") return gt(schemaModel[field], w.value);
|
|
96
|
+
if (w.operator === "gte") return gte(schemaModel[field], w.value);
|
|
97
|
+
if (w.operator === "ne") return ne(schemaModel[field], w.value);
|
|
98
|
+
return eq(schemaModel[field], w.value);
|
|
99
|
+
}));
|
|
100
|
+
const orClause = or(...orGroup.map((w) => {
|
|
101
|
+
const field = getFieldName({
|
|
102
|
+
model,
|
|
103
|
+
field: w.field
|
|
104
|
+
});
|
|
105
|
+
if (w.operator === "in") {
|
|
106
|
+
if (!Array.isArray(w.value)) throw new PayvoAuthError(`The value for the field "${w.field}" must be an array when using the "in" operator.`);
|
|
107
|
+
return inArray(schemaModel[field], w.value);
|
|
108
|
+
}
|
|
109
|
+
if (w.operator === "not_in") {
|
|
110
|
+
if (!Array.isArray(w.value)) throw new PayvoAuthError(`The value for the field "${w.field}" must be an array when using the "not_in" operator.`);
|
|
111
|
+
return notInArray(schemaModel[field], w.value);
|
|
112
|
+
}
|
|
113
|
+
if (w.operator === "contains") return like(schemaModel[field], `%${w.value}%`);
|
|
114
|
+
if (w.operator === "starts_with") return like(schemaModel[field], `${w.value}%`);
|
|
115
|
+
if (w.operator === "ends_with") return like(schemaModel[field], `%${w.value}`);
|
|
116
|
+
if (w.operator === "lt") return lt(schemaModel[field], w.value);
|
|
117
|
+
if (w.operator === "lte") return lte(schemaModel[field], w.value);
|
|
118
|
+
if (w.operator === "gt") return gt(schemaModel[field], w.value);
|
|
119
|
+
if (w.operator === "gte") return gte(schemaModel[field], w.value);
|
|
120
|
+
if (w.operator === "ne") return ne(schemaModel[field], w.value);
|
|
121
|
+
return eq(schemaModel[field], w.value);
|
|
122
|
+
}));
|
|
123
|
+
const clause = [];
|
|
124
|
+
if (andGroup.length) clause.push(andClause);
|
|
125
|
+
if (orGroup.length) clause.push(orClause);
|
|
126
|
+
return clause;
|
|
127
|
+
}
|
|
128
|
+
function checkMissingFields(schema, model, values) {
|
|
129
|
+
if (!schema) throw new PayvoAuthError("Drizzle adapter failed to initialize. Schema not found. Please provide a schema object in the adapter options object.");
|
|
130
|
+
for (const key in values) if (!schema[key]) throw new PayvoAuthError(`The field "${key}" does not exist in the "${model}" schema. Please update your drizzle schema or re-generate using "npx @gatwech/cli generate".`);
|
|
131
|
+
}
|
|
132
|
+
return {
|
|
133
|
+
async create({ model, data: values }) {
|
|
134
|
+
const schemaModel = getSchema(model);
|
|
135
|
+
checkMissingFields(schemaModel, model, values);
|
|
136
|
+
return await withReturning(model, db$1.insert(schemaModel).values(values), values);
|
|
137
|
+
},
|
|
138
|
+
async findOne({ model, where }) {
|
|
139
|
+
const schemaModel = getSchema(model);
|
|
140
|
+
const clause = convertWhereClause(where, model);
|
|
141
|
+
const res = await db$1.select().from(schemaModel).where(...clause);
|
|
142
|
+
if (!res.length) return null;
|
|
143
|
+
return res[0];
|
|
144
|
+
},
|
|
145
|
+
async findMany({ model, where, sortBy, limit, offset }) {
|
|
146
|
+
const schemaModel = getSchema(model);
|
|
147
|
+
const clause = where ? convertWhereClause(where, model) : [];
|
|
148
|
+
const sortFn = sortBy?.direction === "desc" ? desc : asc;
|
|
149
|
+
const builder = db$1.select().from(schemaModel).limit(limit || 100).offset(offset || 0);
|
|
150
|
+
if (sortBy?.field) builder.orderBy(sortFn(schemaModel[getFieldName({
|
|
151
|
+
model,
|
|
152
|
+
field: sortBy?.field
|
|
153
|
+
})]));
|
|
154
|
+
return await builder.where(...clause);
|
|
155
|
+
},
|
|
156
|
+
async count({ model, where }) {
|
|
157
|
+
const schemaModel = getSchema(model);
|
|
158
|
+
const clause = where ? convertWhereClause(where, model) : [];
|
|
159
|
+
return (await db$1.select({ count: count() }).from(schemaModel).where(...clause))[0].count;
|
|
160
|
+
},
|
|
161
|
+
async update({ model, where, update: values }) {
|
|
162
|
+
const schemaModel = getSchema(model);
|
|
163
|
+
const clause = convertWhereClause(where, model);
|
|
164
|
+
return await withReturning(model, db$1.update(schemaModel).set(values).where(...clause), values, where);
|
|
165
|
+
},
|
|
166
|
+
async updateMany({ model, where, update: values }) {
|
|
167
|
+
const schemaModel = getSchema(model);
|
|
168
|
+
const clause = convertWhereClause(where, model);
|
|
169
|
+
return await db$1.update(schemaModel).set(values).where(...clause);
|
|
170
|
+
},
|
|
171
|
+
async delete({ model, where }) {
|
|
172
|
+
const schemaModel = getSchema(model);
|
|
173
|
+
const clause = convertWhereClause(where, model);
|
|
174
|
+
return await db$1.delete(schemaModel).where(...clause);
|
|
175
|
+
},
|
|
176
|
+
async deleteMany({ model, where }) {
|
|
177
|
+
const schemaModel = getSchema(model);
|
|
178
|
+
const clause = convertWhereClause(where, model);
|
|
179
|
+
return await db$1.delete(schemaModel).where(...clause);
|
|
180
|
+
},
|
|
181
|
+
options: config
|
|
182
|
+
};
|
|
183
|
+
};
|
|
184
|
+
let adapterOptions = null;
|
|
185
|
+
adapterOptions = {
|
|
186
|
+
config: {
|
|
187
|
+
adapterId: "drizzle",
|
|
188
|
+
adapterName: "Drizzle Adapter",
|
|
189
|
+
usePlural: config.usePlural ?? false,
|
|
190
|
+
debugLogs: config.debugLogs ?? false,
|
|
191
|
+
transaction: config.transaction ?? false ? (cb) => db.transaction((tx) => {
|
|
192
|
+
return cb(createAdapterFactory({
|
|
193
|
+
config: adapterOptions.config,
|
|
194
|
+
adapter: createCustomAdapter(tx)
|
|
195
|
+
})(lazyOptions));
|
|
196
|
+
}) : false
|
|
197
|
+
},
|
|
198
|
+
adapter: createCustomAdapter(db)
|
|
199
|
+
};
|
|
200
|
+
const adapter = createAdapterFactory(adapterOptions);
|
|
201
|
+
return (options) => {
|
|
202
|
+
lazyOptions = options;
|
|
203
|
+
return adapter(options);
|
|
204
|
+
};
|
|
205
|
+
};
|
|
206
|
+
|
|
207
|
+
//#endregion
|
|
208
|
+
export { drizzleAdapter };
|
|
@@ -0,0 +1,132 @@
|
|
|
1
|
+
import { u as Prettify } from "../helper-tmxW3BHj.mjs";
|
|
2
|
+
import { A as Where$1 } from "../index-Cxi7TbLE.mjs";
|
|
3
|
+
import "../types-B1OL7hyf.mjs";
|
|
4
|
+
import "../index-65G5U5DB-DSdjzreF.mjs";
|
|
5
|
+
import "../plugins-hFZT3hmK.mjs";
|
|
6
|
+
import { PayvoAuthOptions } from "@gatwech/core";
|
|
7
|
+
import { DBFieldAttribute, PayvoAuthDBSchema } from "@gatwech/core/db";
|
|
8
|
+
import { CustomAdapter, CustomAdapter as CustomAdapter$1, DBAdapter, DBAdapterFactoryConfig, DBAdapterFactoryConfig as DBAdapterFactoryConfig$1, DBAdapterSchemaCreation, DBTransactionAdapter } from "@gatwech/core/db/adapter";
|
|
9
|
+
export * from "@gatwech/core/db/adapter";
|
|
10
|
+
|
|
11
|
+
//#region src/adapters/adapter-factory/types.d.ts
|
|
12
|
+
type AdapterFactoryOptions = {
|
|
13
|
+
config: DBAdapterFactoryConfig$1;
|
|
14
|
+
adapter: AdapterFactoryCustomizeAdapterCreator;
|
|
15
|
+
};
|
|
16
|
+
type AdapterFactoryCustomizeAdapterCreator = (config: {
|
|
17
|
+
options: PayvoAuthOptions;
|
|
18
|
+
/**
|
|
19
|
+
* The schema of the user's Payvo-Auth instance.
|
|
20
|
+
*/
|
|
21
|
+
schema: PayvoAuthDBSchema;
|
|
22
|
+
/**
|
|
23
|
+
* The debug log function.
|
|
24
|
+
*
|
|
25
|
+
* If the config has defined `debugLogs` as `false`, no logs will be shown.
|
|
26
|
+
*/
|
|
27
|
+
debugLog: (...args: any[]) => void;
|
|
28
|
+
/**
|
|
29
|
+
* Get the model name which is expected to be saved in the database based on the user's schema.
|
|
30
|
+
*/
|
|
31
|
+
getModelName: (model: string) => string;
|
|
32
|
+
/**
|
|
33
|
+
* Get the field name which is expected to be saved in the database based on the user's schema.
|
|
34
|
+
*/
|
|
35
|
+
getFieldName: ({
|
|
36
|
+
model,
|
|
37
|
+
field
|
|
38
|
+
}: {
|
|
39
|
+
model: string;
|
|
40
|
+
field: string;
|
|
41
|
+
}) => string;
|
|
42
|
+
/**
|
|
43
|
+
* This function helps us get the default model name from the schema defined by devs.
|
|
44
|
+
* Often times, the user will be using the `modelName` which could had been customized by the users.
|
|
45
|
+
* This function helps us get the actual model name useful to match against the schema. (eg: schema[model])
|
|
46
|
+
*
|
|
47
|
+
* If it's still unclear what this does:
|
|
48
|
+
*
|
|
49
|
+
* 1. User can define a custom modelName.
|
|
50
|
+
* 2. When using a custom modelName, doing something like `schema[model]` will not work.
|
|
51
|
+
* 3. Using this function helps us get the actual model name based on the user's defined custom modelName.
|
|
52
|
+
* 4. Thus allowing us to use `schema[model]`.
|
|
53
|
+
*/
|
|
54
|
+
getDefaultModelName: (model: string) => string;
|
|
55
|
+
/**
|
|
56
|
+
* This function helps us get the default field name from the schema defined by devs.
|
|
57
|
+
* Often times, the user will be using the `fieldName` which could had been customized by the users.
|
|
58
|
+
* This function helps us get the actual field name useful to match against the schema. (eg: schema[model].fields[field])
|
|
59
|
+
*
|
|
60
|
+
* If it's still unclear what this does:
|
|
61
|
+
*
|
|
62
|
+
* 1. User can define a custom fieldName.
|
|
63
|
+
* 2. When using a custom fieldName, doing something like `schema[model].fields[field]` will not work.
|
|
64
|
+
*
|
|
65
|
+
*/
|
|
66
|
+
getDefaultFieldName: ({
|
|
67
|
+
model,
|
|
68
|
+
field
|
|
69
|
+
}: {
|
|
70
|
+
model: string;
|
|
71
|
+
field: string;
|
|
72
|
+
}) => string;
|
|
73
|
+
/**
|
|
74
|
+
* Get the field attributes for a given model and field.
|
|
75
|
+
*
|
|
76
|
+
* Note: any model name or field name is allowed, whether default to schema or not.
|
|
77
|
+
*/
|
|
78
|
+
getFieldAttributes: ({
|
|
79
|
+
model,
|
|
80
|
+
field
|
|
81
|
+
}: {
|
|
82
|
+
model: string;
|
|
83
|
+
field: string;
|
|
84
|
+
}) => DBFieldAttribute;
|
|
85
|
+
transformInput: (data: Record<string, any>, defaultModelName: string, action: "create" | "update", forceAllowId?: boolean | undefined) => Promise<Record<string, any>>;
|
|
86
|
+
transformOutput: (data: Record<string, any>, defaultModelName: string, select?: string[] | undefined) => Promise<Record<string, any>>;
|
|
87
|
+
transformWhereClause: <W extends Where$1[] | undefined>({
|
|
88
|
+
model,
|
|
89
|
+
where
|
|
90
|
+
}: {
|
|
91
|
+
where: W;
|
|
92
|
+
model: string;
|
|
93
|
+
}) => W extends undefined ? undefined : CleanedWhere[];
|
|
94
|
+
}) => CustomAdapter$1;
|
|
95
|
+
/**
|
|
96
|
+
* @deprecated Use `CleanedWhere` from `@gatwech/core/db/adapter` instead.
|
|
97
|
+
*/
|
|
98
|
+
type CleanedWhere = Prettify<Required<Where$1>>;
|
|
99
|
+
type AdapterTestDebugLogs = {
|
|
100
|
+
resetDebugLogs: () => void;
|
|
101
|
+
printDebugLogs: () => void;
|
|
102
|
+
};
|
|
103
|
+
//#endregion
|
|
104
|
+
//#region src/adapters/adapter-factory/index.d.ts
|
|
105
|
+
type AdapterFactory = (options: PayvoAuthOptions) => DBAdapter<PayvoAuthOptions>;
|
|
106
|
+
declare const createAdapterFactory: ({
|
|
107
|
+
adapter: customAdapter,
|
|
108
|
+
config: cfg
|
|
109
|
+
}: AdapterFactoryOptions) => AdapterFactory;
|
|
110
|
+
//#endregion
|
|
111
|
+
//#region src/adapters/index.d.ts
|
|
112
|
+
/**
|
|
113
|
+
* @deprecated Use `createAdapterFactory` instead. This export will be removed in the next major version.
|
|
114
|
+
*/
|
|
115
|
+
declare const createAdapter: ({
|
|
116
|
+
adapter: customAdapter,
|
|
117
|
+
config: cfg
|
|
118
|
+
}: AdapterFactoryOptions) => AdapterFactory;
|
|
119
|
+
/**
|
|
120
|
+
* @deprecated Use `AdapterFactoryOptions` instead. This export will be removed in the next major version.
|
|
121
|
+
*/
|
|
122
|
+
type CreateAdapterOptions = AdapterFactoryOptions;
|
|
123
|
+
/**
|
|
124
|
+
* @deprecated Use `AdapterFactoryConfig` instead. This export will be removed in the next major version.
|
|
125
|
+
*/
|
|
126
|
+
type AdapterConfig = DBAdapterFactoryConfig;
|
|
127
|
+
/**
|
|
128
|
+
* @deprecated Use `AdapterFactoryCustomizeAdapterCreator` instead. This export will be removed in the next major version.
|
|
129
|
+
*/
|
|
130
|
+
type CreateCustomAdapter = AdapterFactoryCustomizeAdapterCreator;
|
|
131
|
+
//#endregion
|
|
132
|
+
export { AdapterConfig, type AdapterFactory, type AdapterFactoryCustomizeAdapterCreator, type AdapterFactoryOptions, type AdapterTestDebugLogs, CreateAdapterOptions, CreateCustomAdapter, type CustomAdapter, type DBAdapterFactoryConfig, createAdapter, createAdapterFactory };
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
import "../utils-SOMB4Px5.mjs";
|
|
2
|
+
import "../json-D0TBLy4q.mjs";
|
|
3
|
+
import "../crypto-Bb42eMrH.mjs";
|
|
4
|
+
import "../jwt-CmxZAGe2.mjs";
|
|
5
|
+
import "../get-tables-BQP7YW9c.mjs";
|
|
6
|
+
import "../misc-beA1w3XV.mjs";
|
|
7
|
+
import { t as createAdapterFactory } from "../adapter-factory-BZ2Qiqpn.mjs";
|
|
8
|
+
|
|
9
|
+
export * from "@gatwech/core/db/adapter"
|
|
10
|
+
|
|
11
|
+
//#region src/adapters/index.ts
|
|
12
|
+
/**
|
|
13
|
+
* @deprecated Use `createAdapterFactory` instead. This export will be removed in the next major version.
|
|
14
|
+
*/
|
|
15
|
+
const createAdapter = createAdapterFactory;
|
|
16
|
+
|
|
17
|
+
//#endregion
|
|
18
|
+
export { createAdapter, createAdapterFactory };
|
|
@@ -0,0 +1,47 @@
|
|
|
1
|
+
import { t as KyselyDatabaseType } from "../../types-B1OL7hyf.mjs";
|
|
2
|
+
import { PayvoAuthOptions } from "@gatwech/core";
|
|
3
|
+
import { Kysely } from "kysely";
|
|
4
|
+
import { DBAdapter, DBAdapterDebugLogOption } from "@gatwech/core/db/adapter";
|
|
5
|
+
|
|
6
|
+
//#region src/adapters/kysely-adapter/dialect.d.ts
|
|
7
|
+
declare function getKyselyDatabaseType(db: PayvoAuthOptions["database"]): KyselyDatabaseType | null;
|
|
8
|
+
declare const createKyselyAdapter: (config: PayvoAuthOptions) => Promise<{
|
|
9
|
+
kysely: Kysely<any>;
|
|
10
|
+
databaseType: "postgres" | "mysql" | "sqlite" | "mssql";
|
|
11
|
+
transaction: boolean | undefined;
|
|
12
|
+
} | {
|
|
13
|
+
kysely: Kysely<any> | null;
|
|
14
|
+
databaseType: KyselyDatabaseType | null;
|
|
15
|
+
transaction: undefined;
|
|
16
|
+
}>;
|
|
17
|
+
//#endregion
|
|
18
|
+
//#region src/adapters/kysely-adapter/kysely-adapter.d.ts
|
|
19
|
+
interface KyselyAdapterConfig {
|
|
20
|
+
/**
|
|
21
|
+
* Database type.
|
|
22
|
+
*/
|
|
23
|
+
type?: KyselyDatabaseType | undefined;
|
|
24
|
+
/**
|
|
25
|
+
* Enable debug logs for the adapter
|
|
26
|
+
*
|
|
27
|
+
* @default false
|
|
28
|
+
*/
|
|
29
|
+
debugLogs?: DBAdapterDebugLogOption | undefined;
|
|
30
|
+
/**
|
|
31
|
+
* Use plural for table names.
|
|
32
|
+
*
|
|
33
|
+
* @default false
|
|
34
|
+
*/
|
|
35
|
+
usePlural?: boolean | undefined;
|
|
36
|
+
/**
|
|
37
|
+
* Whether to execute multiple operations in a transaction.
|
|
38
|
+
*
|
|
39
|
+
* If the database doesn't support transactions,
|
|
40
|
+
* set this to `false` and operations will be executed sequentially.
|
|
41
|
+
* @default false
|
|
42
|
+
*/
|
|
43
|
+
transaction?: boolean | undefined;
|
|
44
|
+
}
|
|
45
|
+
declare const kyselyAdapter: (db: Kysely<any>, config?: KyselyAdapterConfig | undefined) => (options: PayvoAuthOptions) => DBAdapter<PayvoAuthOptions>;
|
|
46
|
+
//#endregion
|
|
47
|
+
export { KyselyDatabaseType, createKyselyAdapter, getKyselyDatabaseType, kyselyAdapter };
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import "../../utils-SOMB4Px5.mjs";
|
|
2
|
+
import "../../json-D0TBLy4q.mjs";
|
|
3
|
+
import "../../crypto-Bb42eMrH.mjs";
|
|
4
|
+
import "../../jwt-CmxZAGe2.mjs";
|
|
5
|
+
import { n as getKyselyDatabaseType, t as createKyselyAdapter } from "../../dialect-CeddeGHf.mjs";
|
|
6
|
+
import "../../get-tables-BQP7YW9c.mjs";
|
|
7
|
+
import "../../misc-beA1w3XV.mjs";
|
|
8
|
+
import "../../adapter-factory-BZ2Qiqpn.mjs";
|
|
9
|
+
import { t as kyselyAdapter } from "../../kysely-adapter-DpzYO8Yf.mjs";
|
|
10
|
+
|
|
11
|
+
export { createKyselyAdapter, getKyselyDatabaseType, kyselyAdapter };
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
import { t as DBAdapter$1 } from "../../index-65G5U5DB-DSdjzreF.mjs";
|
|
2
|
+
import { PayvoAuthOptions } from "@gatwech/core";
|
|
3
|
+
import { DBAdapterDebugLogOption } from "@gatwech/core/db/adapter";
|
|
4
|
+
|
|
5
|
+
//#region src/adapters/memory-adapter/memory-adapter.d.ts
|
|
6
|
+
interface MemoryDB {
|
|
7
|
+
[key: string]: any[];
|
|
8
|
+
}
|
|
9
|
+
interface MemoryAdapterConfig {
|
|
10
|
+
debugLogs?: DBAdapterDebugLogOption | undefined;
|
|
11
|
+
}
|
|
12
|
+
declare const memoryAdapter: (db: MemoryDB, config?: MemoryAdapterConfig | undefined) => (options: PayvoAuthOptions) => DBAdapter$1<PayvoAuthOptions>;
|
|
13
|
+
//#endregion
|
|
14
|
+
export { MemoryAdapterConfig, MemoryDB, memoryAdapter };
|
|
@@ -0,0 +1,154 @@
|
|
|
1
|
+
import "../../utils-SOMB4Px5.mjs";
|
|
2
|
+
import "../../json-D0TBLy4q.mjs";
|
|
3
|
+
import "../../crypto-Bb42eMrH.mjs";
|
|
4
|
+
import "../../jwt-CmxZAGe2.mjs";
|
|
5
|
+
import "../../get-tables-BQP7YW9c.mjs";
|
|
6
|
+
import "../../misc-beA1w3XV.mjs";
|
|
7
|
+
import { t as createAdapterFactory } from "../../adapter-factory-BZ2Qiqpn.mjs";
|
|
8
|
+
import { logger } from "@gatwech/core/env";
|
|
9
|
+
|
|
10
|
+
//#region src/adapters/memory-adapter/memory-adapter.ts
|
|
11
|
+
const memoryAdapter = (db, config) => {
|
|
12
|
+
let lazyOptions = null;
|
|
13
|
+
let adapterCreator = createAdapterFactory({
|
|
14
|
+
config: {
|
|
15
|
+
adapterId: "memory",
|
|
16
|
+
adapterName: "Memory Adapter",
|
|
17
|
+
usePlural: false,
|
|
18
|
+
debugLogs: config?.debugLogs || false,
|
|
19
|
+
customTransformInput(props) {
|
|
20
|
+
if (props.options.advanced?.database?.useNumberId && props.field === "id" && props.action === "create") return db[props.model].length + 1;
|
|
21
|
+
return props.data;
|
|
22
|
+
},
|
|
23
|
+
transaction: async (cb) => {
|
|
24
|
+
let clone = structuredClone(db);
|
|
25
|
+
try {
|
|
26
|
+
return await cb(adapterCreator(lazyOptions));
|
|
27
|
+
} catch (error) {
|
|
28
|
+
Object.keys(db).forEach((key) => {
|
|
29
|
+
db[key] = clone[key];
|
|
30
|
+
});
|
|
31
|
+
throw error;
|
|
32
|
+
}
|
|
33
|
+
}
|
|
34
|
+
},
|
|
35
|
+
adapter: ({ getFieldName, options, debugLog }) => {
|
|
36
|
+
function convertWhereClause(where, model) {
|
|
37
|
+
const table = db[model];
|
|
38
|
+
if (!table) {
|
|
39
|
+
logger.error(`[MemoryAdapter] Model ${model} not found in the DB`, Object.keys(db));
|
|
40
|
+
throw new Error(`Model ${model} not found`);
|
|
41
|
+
}
|
|
42
|
+
const evalClause = (record, clause) => {
|
|
43
|
+
const { field, value, operator } = clause;
|
|
44
|
+
switch (operator) {
|
|
45
|
+
case "in":
|
|
46
|
+
if (!Array.isArray(value)) throw new Error("Value must be an array");
|
|
47
|
+
return value.includes(record[field]);
|
|
48
|
+
case "not_in":
|
|
49
|
+
if (!Array.isArray(value)) throw new Error("Value must be an array");
|
|
50
|
+
return !value.includes(record[field]);
|
|
51
|
+
case "contains": return record[field].includes(value);
|
|
52
|
+
case "starts_with": return record[field].startsWith(value);
|
|
53
|
+
case "ends_with": return record[field].endsWith(value);
|
|
54
|
+
case "ne": return record[field] !== value;
|
|
55
|
+
case "gt": return value != null && Boolean(record[field] > value);
|
|
56
|
+
case "gte": return value != null && Boolean(record[field] >= value);
|
|
57
|
+
case "lt": return value != null && Boolean(record[field] < value);
|
|
58
|
+
case "lte": return value != null && Boolean(record[field] <= value);
|
|
59
|
+
default: return record[field] === value;
|
|
60
|
+
}
|
|
61
|
+
};
|
|
62
|
+
return table.filter((record) => {
|
|
63
|
+
if (!where.length || where.length === 0) return true;
|
|
64
|
+
let result = evalClause(record, where[0]);
|
|
65
|
+
for (const clause of where) {
|
|
66
|
+
const clauseResult = evalClause(record, clause);
|
|
67
|
+
if (clause.connector === "OR") result = result || clauseResult;
|
|
68
|
+
else result = result && clauseResult;
|
|
69
|
+
}
|
|
70
|
+
return result;
|
|
71
|
+
});
|
|
72
|
+
}
|
|
73
|
+
return {
|
|
74
|
+
create: async ({ model, data }) => {
|
|
75
|
+
if (options.advanced?.database?.useNumberId) data.id = db[model].length + 1;
|
|
76
|
+
if (!db[model]) db[model] = [];
|
|
77
|
+
db[model].push(data);
|
|
78
|
+
return data;
|
|
79
|
+
},
|
|
80
|
+
findOne: async ({ model, where }) => {
|
|
81
|
+
return convertWhereClause(where, model)[0] || null;
|
|
82
|
+
},
|
|
83
|
+
findMany: async ({ model, where, sortBy, limit, offset }) => {
|
|
84
|
+
let table = db[model];
|
|
85
|
+
if (where) table = convertWhereClause(where, model);
|
|
86
|
+
if (sortBy) table = table.sort((a, b) => {
|
|
87
|
+
const field = getFieldName({
|
|
88
|
+
model,
|
|
89
|
+
field: sortBy.field
|
|
90
|
+
});
|
|
91
|
+
const aValue = a[field];
|
|
92
|
+
const bValue = b[field];
|
|
93
|
+
let comparison = 0;
|
|
94
|
+
if (aValue == null && bValue == null) comparison = 0;
|
|
95
|
+
else if (aValue == null) comparison = -1;
|
|
96
|
+
else if (bValue == null) comparison = 1;
|
|
97
|
+
else if (typeof aValue === "string" && typeof bValue === "string") comparison = aValue.localeCompare(bValue);
|
|
98
|
+
else if (aValue instanceof Date && bValue instanceof Date) comparison = aValue.getTime() - bValue.getTime();
|
|
99
|
+
else if (typeof aValue === "number" && typeof bValue === "number") comparison = aValue - bValue;
|
|
100
|
+
else if (typeof aValue === "boolean" && typeof bValue === "boolean") comparison = aValue === bValue ? 0 : aValue ? 1 : -1;
|
|
101
|
+
else comparison = String(aValue).localeCompare(String(bValue));
|
|
102
|
+
return sortBy.direction === "asc" ? comparison : -comparison;
|
|
103
|
+
});
|
|
104
|
+
if (offset !== void 0) table = table.slice(offset);
|
|
105
|
+
if (limit !== void 0) table = table.slice(0, limit);
|
|
106
|
+
return table || [];
|
|
107
|
+
},
|
|
108
|
+
count: async ({ model, where }) => {
|
|
109
|
+
if (where) return convertWhereClause(where, model).length;
|
|
110
|
+
return db[model].length;
|
|
111
|
+
},
|
|
112
|
+
update: async ({ model, where, update }) => {
|
|
113
|
+
const res = convertWhereClause(where, model);
|
|
114
|
+
res.forEach((record) => {
|
|
115
|
+
Object.assign(record, update);
|
|
116
|
+
});
|
|
117
|
+
return res[0] || null;
|
|
118
|
+
},
|
|
119
|
+
delete: async ({ model, where }) => {
|
|
120
|
+
const table = db[model];
|
|
121
|
+
const res = convertWhereClause(where, model);
|
|
122
|
+
db[model] = table.filter((record) => !res.includes(record));
|
|
123
|
+
},
|
|
124
|
+
deleteMany: async ({ model, where }) => {
|
|
125
|
+
const table = db[model];
|
|
126
|
+
const res = convertWhereClause(where, model);
|
|
127
|
+
let count = 0;
|
|
128
|
+
db[model] = table.filter((record) => {
|
|
129
|
+
if (res.includes(record)) {
|
|
130
|
+
count++;
|
|
131
|
+
return false;
|
|
132
|
+
}
|
|
133
|
+
return !res.includes(record);
|
|
134
|
+
});
|
|
135
|
+
return count;
|
|
136
|
+
},
|
|
137
|
+
updateMany({ model, where, update }) {
|
|
138
|
+
const res = convertWhereClause(where, model);
|
|
139
|
+
res.forEach((record) => {
|
|
140
|
+
Object.assign(record, update);
|
|
141
|
+
});
|
|
142
|
+
return res[0] || null;
|
|
143
|
+
}
|
|
144
|
+
};
|
|
145
|
+
}
|
|
146
|
+
});
|
|
147
|
+
return (options) => {
|
|
148
|
+
lazyOptions = options;
|
|
149
|
+
return adapterCreator(options);
|
|
150
|
+
};
|
|
151
|
+
};
|
|
152
|
+
|
|
153
|
+
//#endregion
|
|
154
|
+
export { memoryAdapter };
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
import { PayvoAuthOptions } from "@gatwech/core";
|
|
2
|
+
import { DBAdapter, DBAdapterDebugLogOption } from "@gatwech/core/db/adapter";
|
|
3
|
+
import { Db, MongoClient } from "mongodb";
|
|
4
|
+
|
|
5
|
+
//#region src/adapters/mongodb-adapter/mongodb-adapter.d.ts
|
|
6
|
+
interface MongoDBAdapterConfig {
|
|
7
|
+
/**
|
|
8
|
+
* MongoDB client instance
|
|
9
|
+
* If not provided, Database transactions won't be enabled.
|
|
10
|
+
*/
|
|
11
|
+
client?: MongoClient | undefined;
|
|
12
|
+
/**
|
|
13
|
+
* Enable debug logs for the adapter
|
|
14
|
+
*
|
|
15
|
+
* @default false
|
|
16
|
+
*/
|
|
17
|
+
debugLogs?: DBAdapterDebugLogOption | undefined;
|
|
18
|
+
/**
|
|
19
|
+
* Use plural table names
|
|
20
|
+
*
|
|
21
|
+
* @default false
|
|
22
|
+
*/
|
|
23
|
+
usePlural?: boolean | undefined;
|
|
24
|
+
/**
|
|
25
|
+
* Whether to execute multiple operations in a transaction.
|
|
26
|
+
*
|
|
27
|
+
* If the database doesn't support transactions,
|
|
28
|
+
* set this to `false` and operations will be executed sequentially.
|
|
29
|
+
* @default false
|
|
30
|
+
*/
|
|
31
|
+
transaction?: boolean | undefined;
|
|
32
|
+
}
|
|
33
|
+
declare const mongodbAdapter: (db: Db, config?: MongoDBAdapterConfig | undefined) => (options: PayvoAuthOptions) => DBAdapter<PayvoAuthOptions>;
|
|
34
|
+
//#endregion
|
|
35
|
+
export { MongoDBAdapterConfig, mongodbAdapter };
|