@lastshotlabs/bunshot 0.0.27 → 0.0.28
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/.oclif.manifest.json +39 -0
- package/README.md +8282 -2147
- package/dist/cli/commands/init.js +690 -0
- package/dist/cli/index.js +6 -0
- package/dist/cli.js +4 -4
- package/dist/packages/bunshot-admin/src/index.d.ts +15 -0
- package/dist/packages/bunshot-admin/src/index.js +11 -0
- package/dist/packages/bunshot-admin/src/lib/resourceTypes.d.ts +8 -0
- package/dist/packages/bunshot-admin/src/lib/resourceTypes.js +33 -0
- package/dist/packages/bunshot-admin/src/lib/typedRoute.d.ts +14 -0
- package/dist/packages/bunshot-admin/src/lib/typedRoute.js +17 -0
- package/dist/packages/bunshot-admin/src/plugin.d.ts +4 -0
- package/dist/packages/bunshot-admin/src/plugin.js +46 -0
- package/dist/packages/bunshot-admin/src/providers/auth0Access.d.ts +6 -0
- package/dist/packages/bunshot-admin/src/providers/auth0Access.js +32 -0
- package/dist/packages/bunshot-admin/src/routes/admin.d.ts +10 -0
- package/dist/packages/bunshot-admin/src/routes/admin.js +923 -0
- package/dist/packages/bunshot-admin/src/routes/mail.d.ts +6 -0
- package/dist/packages/bunshot-admin/src/routes/mail.js +114 -0
- package/dist/packages/bunshot-admin/src/routes/permissions.d.ts +8 -0
- package/dist/packages/bunshot-admin/src/routes/permissions.js +315 -0
- package/dist/packages/bunshot-admin/src/types/config.d.ts +16 -0
- package/dist/packages/bunshot-admin/src/types/config.js +37 -0
- package/dist/packages/bunshot-admin/src/types/env.d.ts +14 -0
- package/dist/packages/bunshot-admin/src/types/provider.d.ts +1 -0
- package/dist/packages/bunshot-admin/src/types/provider.js +4 -0
- package/dist/packages/bunshot-auth/src/adapters/memoryAuth.d.ts +66 -0
- package/dist/packages/bunshot-auth/src/adapters/memoryAuth.js +1063 -0
- package/dist/packages/bunshot-auth/src/adapters/mongoAuth.d.ts +2 -0
- package/dist/packages/bunshot-auth/src/adapters/mongoAuth.js +536 -0
- package/dist/packages/bunshot-auth/src/adapters/sqliteAuth.d.ts +88 -0
- package/dist/packages/bunshot-auth/src/adapters/sqliteAuth.js +1366 -0
- package/dist/packages/bunshot-auth/src/admin/bunshotAccess.d.ts +2 -0
- package/dist/packages/bunshot-auth/src/admin/bunshotAccess.js +23 -0
- package/dist/packages/bunshot-auth/src/admin/bunshotUsers.d.ts +5 -0
- package/dist/packages/bunshot-auth/src/admin/bunshotUsers.js +131 -0
- package/dist/packages/bunshot-auth/src/bootstrap.d.ts +38 -0
- package/dist/packages/bunshot-auth/src/bootstrap.js +384 -0
- package/dist/packages/bunshot-auth/src/config/appConfig.d.ts +3 -0
- package/dist/packages/bunshot-auth/src/config/appConfig.js +4 -0
- package/dist/packages/bunshot-auth/src/config/authConfig.d.ts +478 -0
- package/dist/packages/bunshot-auth/src/config/authConfig.js +46 -0
- package/dist/packages/bunshot-auth/src/config/configLock.d.ts +2 -0
- package/dist/packages/bunshot-auth/src/config/configLock.js +10 -0
- package/dist/packages/bunshot-auth/src/index.d.ts +25 -0
- package/dist/packages/bunshot-auth/src/index.js +23 -0
- package/dist/packages/bunshot-auth/src/infra/mongo.d.ts +15 -0
- package/dist/packages/bunshot-auth/src/infra/mongo.js +44 -0
- package/dist/packages/bunshot-auth/src/infra/queue.d.ts +14 -0
- package/dist/packages/bunshot-auth/src/infra/queue.js +27 -0
- package/dist/packages/bunshot-auth/src/infra/redis.d.ts +5 -0
- package/dist/packages/bunshot-auth/src/infra/redis.js +15 -0
- package/dist/packages/bunshot-auth/src/infra/signing.d.ts +7 -0
- package/dist/packages/bunshot-auth/src/infra/signing.js +8 -0
- package/dist/packages/bunshot-auth/src/lib/accountLockout.d.ts +34 -0
- package/dist/packages/bunshot-auth/src/lib/accountLockout.js +244 -0
- package/dist/packages/bunshot-auth/src/lib/adapterTiers.d.ts +1 -0
- package/dist/packages/bunshot-auth/src/lib/adapterTiers.js +1 -0
- package/dist/packages/bunshot-auth/src/lib/authAdapter.d.ts +1 -0
- package/dist/packages/bunshot-auth/src/lib/authAdapter.js +1 -0
- package/dist/packages/bunshot-auth/src/lib/authContext.d.ts +15 -0
- package/dist/packages/bunshot-auth/src/lib/authContext.js +1 -0
- package/dist/packages/bunshot-auth/src/lib/authEventBus.d.ts +4 -0
- package/dist/packages/bunshot-auth/src/lib/authEventBus.js +15 -0
- package/dist/packages/bunshot-auth/src/lib/authRateLimit.d.ts +28 -0
- package/dist/packages/bunshot-auth/src/lib/authRateLimit.js +205 -0
- package/dist/{lib → packages/bunshot-auth/src/lib}/breachedPassword.d.ts +8 -2
- package/dist/{lib → packages/bunshot-auth/src/lib}/breachedPassword.js +22 -9
- package/dist/packages/bunshot-auth/src/lib/cache.d.ts +12 -0
- package/dist/packages/bunshot-auth/src/lib/cache.js +120 -0
- package/dist/packages/bunshot-auth/src/lib/clientIp.d.ts +4 -0
- package/dist/{lib → packages/bunshot-auth/src/lib}/clientIp.js +14 -7
- package/dist/packages/bunshot-auth/src/lib/cookieOptions.d.ts +27 -0
- package/dist/packages/bunshot-auth/src/lib/cookieOptions.js +33 -0
- package/dist/packages/bunshot-auth/src/lib/credentialStuffing.d.ts +40 -0
- package/dist/packages/bunshot-auth/src/lib/credentialStuffing.js +221 -0
- package/dist/packages/bunshot-auth/src/lib/deletionCancelToken.d.ts +19 -0
- package/dist/packages/bunshot-auth/src/lib/deletionCancelToken.js +148 -0
- package/dist/packages/bunshot-auth/src/lib/emailTemplates.d.ts +23 -0
- package/dist/packages/bunshot-auth/src/lib/emailTemplates.js +265 -0
- package/dist/packages/bunshot-auth/src/lib/emailVerification.d.ts +30 -0
- package/dist/packages/bunshot-auth/src/lib/emailVerification.js +200 -0
- package/dist/packages/bunshot-auth/src/lib/env.d.ts +1 -0
- package/dist/packages/bunshot-auth/src/lib/env.js +3 -0
- package/dist/packages/bunshot-auth/src/lib/fingerprint.js +36 -0
- package/dist/{lib → packages/bunshot-auth/src/lib}/groups.d.ts +15 -16
- package/dist/{lib → packages/bunshot-auth/src/lib}/groups.js +22 -34
- package/dist/packages/bunshot-auth/src/lib/jwks.d.ts +28 -0
- package/dist/packages/bunshot-auth/src/lib/jwks.js +79 -0
- package/dist/packages/bunshot-auth/src/lib/jwt.d.ts +12 -0
- package/dist/packages/bunshot-auth/src/lib/jwt.js +86 -0
- package/dist/{lib → packages/bunshot-auth/src/lib}/logger.js +3 -3
- package/dist/{lib → packages/bunshot-auth/src/lib}/m2m.d.ts +5 -4
- package/dist/{lib → packages/bunshot-auth/src/lib}/m2m.js +6 -10
- package/dist/packages/bunshot-auth/src/lib/magicLink.d.ts +13 -0
- package/dist/packages/bunshot-auth/src/lib/magicLink.js +145 -0
- package/dist/packages/bunshot-auth/src/lib/mfaChallenge.d.ts +60 -0
- package/dist/packages/bunshot-auth/src/lib/mfaChallenge.js +419 -0
- package/dist/packages/bunshot-auth/src/lib/oauth.d.ts +82 -0
- package/dist/packages/bunshot-auth/src/lib/oauth.js +177 -0
- package/dist/packages/bunshot-auth/src/lib/oauthCode.d.ts +19 -0
- package/dist/packages/bunshot-auth/src/lib/oauthCode.js +182 -0
- package/dist/packages/bunshot-auth/src/lib/oauthReauth.d.ts +19 -0
- package/dist/packages/bunshot-auth/src/lib/oauthReauth.js +255 -0
- package/dist/packages/bunshot-auth/src/lib/organization.d.ts +66 -0
- package/dist/packages/bunshot-auth/src/lib/organization.js +225 -0
- package/dist/packages/bunshot-auth/src/lib/passwordHistory.d.ts +12 -0
- package/dist/packages/bunshot-auth/src/lib/passwordHistory.js +31 -0
- package/dist/packages/bunshot-auth/src/lib/resetPassword.d.ts +20 -0
- package/dist/packages/bunshot-auth/src/lib/resetPassword.js +148 -0
- package/dist/packages/bunshot-auth/src/lib/roles.d.ts +9 -0
- package/dist/packages/bunshot-auth/src/lib/roles.js +93 -0
- package/dist/packages/bunshot-auth/src/lib/saml.d.ts +29 -0
- package/dist/packages/bunshot-auth/src/lib/saml.js +73 -0
- package/dist/packages/bunshot-auth/src/lib/samlRequestId.d.ts +13 -0
- package/dist/packages/bunshot-auth/src/lib/samlRequestId.js +129 -0
- package/dist/{lib → packages/bunshot-auth/src/lib}/scim.d.ts +7 -7
- package/dist/{lib → packages/bunshot-auth/src/lib}/scim.js +15 -13
- package/dist/packages/bunshot-auth/src/lib/securityEventWiring.d.ts +22 -0
- package/dist/packages/bunshot-auth/src/lib/securityEventWiring.js +65 -0
- package/dist/packages/bunshot-auth/src/lib/session.d.ts +45 -0
- package/dist/packages/bunshot-auth/src/lib/session.js +1211 -0
- package/dist/packages/bunshot-auth/src/lib/storeInfra.d.ts +26 -0
- package/dist/packages/bunshot-auth/src/lib/storeInfra.js +18 -0
- package/dist/{lib → packages/bunshot-auth/src/lib}/suspension.d.ts +3 -2
- package/dist/{lib → packages/bunshot-auth/src/lib}/suspension.js +2 -5
- package/dist/packages/bunshot-auth/src/lib/validateAdapter.d.ts +16 -0
- package/dist/packages/bunshot-auth/src/lib/validateAdapter.js +161 -0
- package/dist/packages/bunshot-auth/src/middleware/bearerAuth.d.ts +13 -0
- package/dist/packages/bunshot-auth/src/middleware/bearerAuth.js +58 -0
- package/dist/{middleware → packages/bunshot-auth/src/middleware}/csrf.d.ts +5 -4
- package/dist/packages/bunshot-auth/src/middleware/csrf.js +138 -0
- package/dist/packages/bunshot-auth/src/middleware/identify.d.ts +4 -0
- package/dist/packages/bunshot-auth/src/middleware/identify.js +124 -0
- package/dist/{middleware → packages/bunshot-auth/src/middleware}/requireMfaSetup.d.ts +2 -2
- package/dist/{middleware → packages/bunshot-auth/src/middleware}/requireMfaSetup.js +10 -8
- package/dist/{middleware → packages/bunshot-auth/src/middleware}/requireRole.d.ts +2 -2
- package/dist/{middleware → packages/bunshot-auth/src/middleware}/requireRole.js +20 -16
- package/dist/{middleware → packages/bunshot-auth/src/middleware}/requireScope.d.ts +2 -2
- package/dist/{middleware → packages/bunshot-auth/src/middleware}/requireScope.js +6 -6
- package/dist/{middleware → packages/bunshot-auth/src/middleware}/requireStepUp.d.ts +2 -2
- package/dist/{middleware → packages/bunshot-auth/src/middleware}/requireStepUp.js +8 -7
- package/dist/{middleware → packages/bunshot-auth/src/middleware}/requireVerifiedEmail.d.ts +2 -2
- package/dist/{middleware → packages/bunshot-auth/src/middleware}/requireVerifiedEmail.js +7 -6
- package/dist/packages/bunshot-auth/src/middleware/scimAuth.d.ts +8 -0
- package/dist/packages/bunshot-auth/src/middleware/scimAuth.js +29 -0
- package/dist/packages/bunshot-auth/src/middleware/userAuth.d.ts +3 -0
- package/dist/packages/bunshot-auth/src/middleware/userAuth.js +6 -0
- package/dist/{models → packages/bunshot-auth/src/models}/AuthUser.d.ts +12 -8
- package/dist/packages/bunshot-auth/src/models/AuthUser.js +53 -0
- package/dist/packages/bunshot-auth/src/models/Group.d.ts +19 -0
- package/dist/packages/bunshot-auth/src/models/Group.js +22 -0
- package/dist/{models → packages/bunshot-auth/src/models}/GroupMembership.d.ts +6 -8
- package/dist/packages/bunshot-auth/src/models/GroupMembership.js +19 -0
- package/dist/{models → packages/bunshot-auth/src/models}/M2MClient.d.ts +1 -1
- package/dist/{models → packages/bunshot-auth/src/models}/M2MClient.js +5 -5
- package/dist/packages/bunshot-auth/src/models/TenantRole.d.ts +13 -0
- package/dist/packages/bunshot-auth/src/models/TenantRole.js +17 -0
- package/dist/packages/bunshot-auth/src/plugin.d.ts +4 -0
- package/dist/packages/bunshot-auth/src/plugin.js +274 -0
- package/dist/packages/bunshot-auth/src/routes/auth.d.ts +15 -0
- package/dist/packages/bunshot-auth/src/routes/auth.js +1624 -0
- package/dist/packages/bunshot-auth/src/routes/groups.d.ts +4 -0
- package/dist/packages/bunshot-auth/src/routes/groups.js +481 -0
- package/dist/packages/bunshot-auth/src/routes/m2m.d.ts +2 -0
- package/dist/packages/bunshot-auth/src/routes/m2m.js +145 -0
- package/dist/packages/bunshot-auth/src/routes/mfa.d.ts +6 -0
- package/dist/packages/bunshot-auth/src/routes/mfa.js +991 -0
- package/dist/packages/bunshot-auth/src/routes/oauth.d.ts +3 -0
- package/dist/packages/bunshot-auth/src/routes/oauth.js +1727 -0
- package/dist/packages/bunshot-auth/src/routes/oidc.d.ts +2 -0
- package/dist/packages/bunshot-auth/src/routes/oidc.js +84 -0
- package/dist/packages/bunshot-auth/src/routes/organizations.d.ts +3 -0
- package/dist/packages/bunshot-auth/src/routes/organizations.js +741 -0
- package/dist/packages/bunshot-auth/src/routes/passkey.d.ts +2 -0
- package/dist/packages/bunshot-auth/src/routes/passkey.js +199 -0
- package/dist/packages/bunshot-auth/src/routes/saml.d.ts +2 -0
- package/dist/packages/bunshot-auth/src/routes/saml.js +226 -0
- package/dist/packages/bunshot-auth/src/routes/scim.d.ts +3 -0
- package/dist/packages/bunshot-auth/src/routes/scim.js +588 -0
- package/dist/packages/bunshot-auth/src/runtime.d.ts +52 -0
- package/dist/packages/bunshot-auth/src/runtime.js +11 -0
- package/dist/{schemas → packages/bunshot-auth/src/schemas}/auth.d.ts +4 -5
- package/dist/packages/bunshot-auth/src/schemas/auth.js +24 -0
- package/dist/packages/bunshot-auth/src/schemas/error.d.ts +10 -0
- package/dist/packages/bunshot-auth/src/schemas/error.js +10 -0
- package/dist/packages/bunshot-auth/src/schemas/success.d.ts +10 -0
- package/dist/packages/bunshot-auth/src/schemas/success.js +10 -0
- package/dist/packages/bunshot-auth/src/services/auth.d.ts +39 -0
- package/dist/packages/bunshot-auth/src/services/auth.js +378 -0
- package/dist/{services → packages/bunshot-auth/src/services}/mfa.d.ts +41 -17
- package/dist/{services → packages/bunshot-auth/src/services}/mfa.js +259 -183
- package/dist/packages/bunshot-auth/src/testing.d.ts +31 -0
- package/dist/packages/bunshot-auth/src/testing.js +23 -0
- package/dist/packages/bunshot-auth/src/types/adapter.d.ts +1 -0
- package/dist/packages/bunshot-auth/src/types/adapter.js +1 -0
- package/dist/packages/bunshot-auth/src/types/config.d.ts +152 -0
- package/dist/packages/bunshot-auth/src/types/config.js +179 -0
- package/dist/{routes → packages/bunshot-auth/src/types}/groups.d.ts +2 -3
- package/dist/packages/bunshot-auth/src/types/groups.js +1 -0
- package/dist/packages/bunshot-auth/src/types/oauthCode.d.ts +6 -0
- package/dist/packages/bunshot-auth/src/types/oauthCode.js +1 -0
- package/dist/packages/bunshot-auth/src/types/oauthReauth.d.ts +13 -0
- package/dist/packages/bunshot-auth/src/types/oauthReauth.js +1 -0
- package/dist/packages/bunshot-auth/src/types/redis.d.ts +1 -0
- package/dist/packages/bunshot-auth/src/types/redis.js +1 -0
- package/dist/packages/bunshot-auth/src/types/saml.d.ts +10 -0
- package/dist/packages/bunshot-auth/src/types/saml.js +1 -0
- package/dist/packages/bunshot-auth/src/types/session.d.ts +18 -0
- package/dist/packages/bunshot-auth/src/types/session.js +1 -0
- package/dist/packages/bunshot-auth/src/types/store.d.ts +1 -0
- package/dist/packages/bunshot-auth/src/types/store.js +1 -0
- package/dist/packages/bunshot-core/src/adminProvider.d.ts +95 -0
- package/dist/packages/bunshot-core/src/adminProvider.js +1 -0
- package/dist/packages/bunshot-core/src/auditLog.d.ts +34 -0
- package/dist/packages/bunshot-core/src/auditLog.js +1 -0
- package/dist/packages/bunshot-core/src/auth-adapter.d.ts +227 -0
- package/dist/packages/bunshot-core/src/auth-adapter.js +4 -0
- package/dist/packages/bunshot-core/src/authVariables.d.ts +14 -0
- package/dist/packages/bunshot-core/src/authVariables.js +4 -0
- package/dist/packages/bunshot-core/src/cache.d.ts +12 -0
- package/dist/packages/bunshot-core/src/cache.js +21 -0
- package/dist/{lib → packages/bunshot-core/src}/captcha.d.ts +1 -10
- package/dist/packages/bunshot-core/src/captcha.js +1 -0
- package/dist/packages/bunshot-core/src/clearRegistry.d.ts +6 -0
- package/dist/packages/bunshot-core/src/clearRegistry.js +17 -0
- package/dist/packages/bunshot-core/src/clientIp.d.ts +3 -0
- package/dist/packages/bunshot-core/src/clientIp.js +45 -0
- package/dist/packages/bunshot-core/src/configLock.d.ts +4 -0
- package/dist/packages/bunshot-core/src/configLock.js +7 -0
- package/dist/packages/bunshot-core/src/configValidation.d.ts +22 -0
- package/dist/packages/bunshot-core/src/configValidation.js +39 -0
- package/dist/packages/bunshot-core/src/constants.js +10 -0
- package/dist/packages/bunshot-core/src/context/bunshotContext.d.ts +232 -0
- package/dist/packages/bunshot-core/src/context/bunshotContext.js +1 -0
- package/dist/packages/bunshot-core/src/context/contextAccess.d.ts +3 -0
- package/dist/packages/bunshot-core/src/context/contextAccess.js +16 -0
- package/dist/packages/bunshot-core/src/context/contextStore.d.ts +16 -0
- package/dist/packages/bunshot-core/src/context/contextStore.js +31 -0
- package/dist/packages/bunshot-core/src/context/frameworkConfig.d.ts +38 -0
- package/dist/packages/bunshot-core/src/context/frameworkConfig.js +1 -0
- package/dist/packages/bunshot-core/src/context/index.d.ts +4 -0
- package/dist/packages/bunshot-core/src/context/index.js +2 -0
- package/dist/packages/bunshot-core/src/context.d.ts +40 -0
- package/dist/packages/bunshot-core/src/context.js +35 -0
- package/dist/packages/bunshot-core/src/coreContracts.d.ts +47 -0
- package/dist/packages/bunshot-core/src/coreContracts.js +1 -0
- package/dist/packages/bunshot-core/src/coreRegistrar.d.ts +6 -0
- package/dist/packages/bunshot-core/src/coreRegistrar.js +42 -0
- package/dist/{lib → packages/bunshot-core/src}/createRoute.d.ts +4 -30
- package/dist/{lib → packages/bunshot-core/src}/createRoute.js +39 -88
- package/dist/packages/bunshot-core/src/cronRegistry.d.ts +11 -0
- package/dist/packages/bunshot-core/src/cronRegistry.js +1 -0
- package/dist/packages/bunshot-core/src/crypto.d.ts +43 -0
- package/dist/packages/bunshot-core/src/crypto.js +74 -0
- package/dist/packages/bunshot-core/src/csrf.d.ts +8 -0
- package/dist/packages/bunshot-core/src/csrf.js +1 -0
- package/dist/packages/bunshot-core/src/defaults/defaultFingerprint.d.ts +7 -0
- package/dist/packages/bunshot-core/src/defaults/defaultFingerprint.js +19 -0
- package/dist/packages/bunshot-core/src/defaults/memoryCacheAdapter.d.ts +6 -0
- package/dist/packages/bunshot-core/src/defaults/memoryCacheAdapter.js +40 -0
- package/dist/packages/bunshot-core/src/defaults/memoryRateLimit.d.ts +6 -0
- package/dist/packages/bunshot-core/src/defaults/memoryRateLimit.js +24 -0
- package/dist/packages/bunshot-core/src/emailTemplates.d.ts +5 -0
- package/dist/packages/bunshot-core/src/emailTemplates.js +10 -0
- package/dist/{lib/HttpError.d.ts → packages/bunshot-core/src/errors.d.ts} +4 -1
- package/dist/{lib/HttpError.js → packages/bunshot-core/src/errors.js} +7 -1
- package/dist/packages/bunshot-core/src/eventBus.d.ts +270 -0
- package/dist/packages/bunshot-core/src/eventBus.js +143 -0
- package/dist/packages/bunshot-core/src/idempotency.d.ts +18 -0
- package/dist/packages/bunshot-core/src/idempotency.js +1 -0
- package/dist/packages/bunshot-core/src/index.d.ts +60 -0
- package/dist/packages/bunshot-core/src/index.js +34 -0
- package/dist/packages/bunshot-core/src/mail.d.ts +14 -0
- package/dist/packages/bunshot-core/src/mail.js +8 -0
- package/dist/packages/bunshot-core/src/memoryEviction.d.ts +24 -0
- package/dist/packages/bunshot-core/src/memoryEviction.js +52 -0
- package/dist/packages/bunshot-core/src/pagination.d.ts +45 -0
- package/dist/packages/bunshot-core/src/pagination.js +61 -0
- package/dist/packages/bunshot-core/src/permissions.d.ts +64 -0
- package/dist/packages/bunshot-core/src/permissions.js +27 -0
- package/dist/packages/bunshot-core/src/plugin.d.ts +44 -0
- package/dist/packages/bunshot-core/src/plugin.js +1 -0
- package/dist/packages/bunshot-core/src/rateLimit.d.ts +5 -0
- package/dist/packages/bunshot-core/src/rateLimit.js +18 -0
- package/dist/packages/bunshot-core/src/redis.d.ts +21 -0
- package/dist/packages/bunshot-core/src/redis.js +1 -0
- package/dist/packages/bunshot-core/src/routeAuth.d.ts +5 -0
- package/dist/packages/bunshot-core/src/routeAuth.js +11 -0
- package/dist/packages/bunshot-core/src/routeOverrides.d.ts +24 -0
- package/dist/packages/bunshot-core/src/routeOverrides.js +25 -0
- package/dist/packages/bunshot-core/src/routerAdapter.d.ts +6 -0
- package/dist/packages/bunshot-core/src/routerAdapter.js +56 -0
- package/dist/packages/bunshot-core/src/secrets.d.ts +48 -0
- package/dist/packages/bunshot-core/src/secrets.js +8 -0
- package/dist/packages/bunshot-core/src/signing.d.ts +41 -0
- package/dist/packages/bunshot-core/src/signing.js +1 -0
- package/dist/packages/bunshot-core/src/sse.d.ts +36 -0
- package/dist/packages/bunshot-core/src/sse.js +1 -0
- package/dist/packages/bunshot-core/src/storageAdapter.js +1 -0
- package/dist/packages/bunshot-core/src/storeInfra.d.ts +44 -0
- package/dist/packages/bunshot-core/src/storeInfra.js +18 -0
- package/dist/packages/bunshot-core/src/storeType.d.ts +7 -0
- package/dist/packages/bunshot-core/src/storeType.js +1 -0
- package/dist/packages/bunshot-core/src/testing.d.ts +1 -0
- package/dist/packages/bunshot-core/src/testing.js +1 -0
- package/dist/packages/bunshot-core/src/uploadRegistry.d.ts +23 -0
- package/dist/packages/bunshot-core/src/uploadRegistry.js +4 -0
- package/dist/packages/bunshot-core/src/userResolver.d.ts +5 -0
- package/dist/packages/bunshot-core/src/userResolver.js +14 -0
- package/dist/packages/bunshot-core/src/wsMessages.d.ts +42 -0
- package/dist/packages/bunshot-core/src/wsMessages.js +4 -0
- package/dist/packages/bunshot-permissions/src/adapters/memory.d.ts +7 -0
- package/dist/packages/bunshot-permissions/src/adapters/memory.js +73 -0
- package/dist/packages/bunshot-permissions/src/index.d.ts +10 -0
- package/dist/packages/bunshot-permissions/src/index.js +5 -0
- package/dist/packages/bunshot-permissions/src/lib/bootstrap.d.ts +7 -0
- package/dist/packages/bunshot-permissions/src/lib/bootstrap.js +12 -0
- package/dist/packages/bunshot-permissions/src/lib/evaluator.d.ts +10 -0
- package/dist/packages/bunshot-permissions/src/lib/evaluator.js +165 -0
- package/dist/packages/bunshot-permissions/src/lib/registry.d.ts +2 -0
- package/dist/packages/bunshot-permissions/src/lib/registry.js +31 -0
- package/dist/packages/bunshot-permissions/src/lib/validation.d.ts +1 -0
- package/dist/packages/bunshot-permissions/src/lib/validation.js +1 -0
- package/dist/packages/bunshot-permissions/src/types/adapter.d.ts +1 -0
- package/dist/packages/bunshot-permissions/src/types/adapter.js +1 -0
- package/dist/packages/bunshot-permissions/src/types/evaluator.d.ts +1 -0
- package/dist/packages/bunshot-permissions/src/types/evaluator.js +1 -0
- package/dist/packages/bunshot-permissions/src/types/models.d.ts +1 -0
- package/dist/packages/bunshot-permissions/src/types/models.js +1 -0
- package/dist/packages/bunshot-permissions/src/types/registry.d.ts +1 -0
- package/dist/packages/bunshot-permissions/src/types/registry.js +1 -0
- package/dist/packages/bunshot-postgres/src/adapter.d.ts +6 -0
- package/dist/packages/bunshot-postgres/src/adapter.js +794 -0
- package/dist/packages/bunshot-postgres/src/connection.d.ts +15 -0
- package/dist/packages/bunshot-postgres/src/connection.js +16 -0
- package/dist/packages/bunshot-postgres/src/index.d.ts +4 -0
- package/dist/packages/bunshot-postgres/src/index.js +2 -0
- package/dist/packages/bunshot-postgres/src/schema.d.ts +997 -0
- package/dist/packages/bunshot-postgres/src/schema.js +105 -0
- package/dist/src/app.d.ts +230 -0
- package/dist/src/app.js +182 -0
- package/dist/src/cli/commands/init.d.ts +10 -0
- package/dist/src/cli/commands/init.js +709 -0
- package/dist/src/cli/index.d.ts +1 -0
- package/dist/src/cli/index.js +3 -0
- package/dist/src/entrypoints/mongo.d.ts +6 -0
- package/dist/src/entrypoints/mongo.js +4 -0
- package/dist/src/entrypoints/queue.d.ts +2 -0
- package/dist/src/entrypoints/queue.js +1 -0
- package/dist/src/entrypoints/redis.d.ts +1 -0
- package/dist/src/entrypoints/redis.js +1 -0
- package/dist/{adapters → src/framework/adapters}/localStorage.d.ts +1 -1
- package/dist/{adapters → src/framework/adapters}/localStorage.js +10 -10
- package/dist/src/framework/adapters/memoryStorage.d.ts +2 -0
- package/dist/src/framework/adapters/memoryStorage.js +45 -0
- package/dist/{adapters → src/framework/adapters}/s3Storage.d.ts +1 -1
- package/dist/{adapters → src/framework/adapters}/s3Storage.js +12 -12
- package/dist/src/framework/admin/bunshotAccess.d.ts +2 -0
- package/dist/src/framework/admin/bunshotAccess.js +23 -0
- package/dist/src/framework/admin/bunshotUsers.d.ts +2 -0
- package/dist/src/framework/admin/bunshotUsers.js +103 -0
- package/dist/src/framework/admin/index.d.ts +7 -0
- package/dist/src/framework/admin/index.js +21 -0
- package/dist/src/framework/boundaryAdapters/cacheFactories.d.ts +13 -0
- package/dist/src/framework/boundaryAdapters/cacheFactories.js +86 -0
- package/dist/src/framework/boundaryAdapters/index.d.ts +2 -0
- package/dist/src/framework/boundaryAdapters/index.js +1 -0
- package/dist/src/framework/boundaryAdapters.d.ts +17 -0
- package/dist/src/framework/boundaryAdapters.js +62 -0
- package/dist/src/framework/buildContext.d.ts +33 -0
- package/dist/src/framework/buildContext.js +119 -0
- package/dist/src/framework/config/schema.d.ts +447 -0
- package/dist/src/framework/config/schema.js +528 -0
- package/dist/src/framework/createInfrastructure.d.ts +76 -0
- package/dist/src/framework/createInfrastructure.js +221 -0
- package/dist/src/framework/lib/auditLog.d.ts +23 -0
- package/dist/src/framework/lib/auditLog.js +416 -0
- package/dist/src/framework/lib/captcha.d.ts +11 -0
- package/dist/{lib → src/framework/lib}/captcha.js +13 -10
- package/dist/{lib → src/framework/lib}/createDtoMapper.js +4 -4
- package/dist/src/framework/lib/createRoute.d.ts +1 -0
- package/dist/src/framework/lib/createRoute.js +2 -0
- package/dist/{lib → src/framework/lib}/idempotency.d.ts +2 -6
- package/dist/src/framework/lib/idempotency.js +74 -0
- package/dist/src/framework/lib/logger.d.ts +3 -0
- package/dist/src/framework/lib/logger.js +14 -0
- package/dist/src/framework/lib/metrics.d.ts +34 -0
- package/dist/{lib → src/framework/lib}/metrics.js +49 -57
- package/dist/src/framework/lib/pagination.d.ts +42 -0
- package/dist/src/framework/lib/pagination.js +51 -0
- package/dist/src/framework/lib/redisTransport.d.ts +38 -0
- package/dist/src/framework/lib/redisTransport.js +107 -0
- package/dist/src/framework/lib/resolveUserId.d.ts +2 -0
- package/dist/src/framework/lib/resolveUserId.js +5 -0
- package/dist/src/framework/lib/sseCollision.d.ts +6 -0
- package/dist/src/framework/lib/sseCollision.js +26 -0
- package/dist/src/framework/lib/storageAdapter.d.ts +1 -0
- package/dist/src/framework/lib/storageAdapter.js +1 -0
- package/dist/{lib → src/framework/lib}/stripUnreferencedSchemas.js +4 -4
- package/dist/src/framework/lib/tenant.d.ts +21 -0
- package/dist/src/framework/lib/tenant.js +70 -0
- package/dist/{lib → src/framework/lib}/upload.d.ts +11 -10
- package/dist/src/framework/lib/upload.js +132 -0
- package/dist/src/framework/lib/uploadRegistry.d.ts +23 -0
- package/dist/src/framework/lib/uploadRegistry.js +34 -0
- package/dist/{lib → src/framework/lib}/validate.d.ts +1 -1
- package/dist/{lib → src/framework/lib}/validate.js +2 -2
- package/dist/src/framework/lib/ws.d.ts +19 -0
- package/dist/src/framework/lib/ws.js +130 -0
- package/dist/src/framework/lib/wsHeartbeat.d.ts +12 -0
- package/dist/src/framework/lib/wsHeartbeat.js +53 -0
- package/dist/src/framework/lib/wsMessages.d.ts +25 -0
- package/dist/src/framework/lib/wsMessages.js +45 -0
- package/dist/src/framework/lib/wsNamespace.d.ts +17 -0
- package/dist/src/framework/lib/wsNamespace.js +19 -0
- package/dist/src/framework/lib/wsPresence.d.ts +17 -0
- package/dist/src/framework/lib/wsPresence.js +84 -0
- package/dist/src/framework/lib/wsTransport.d.ts +38 -0
- package/dist/src/framework/lib/wsTransport.js +9 -0
- package/dist/{lib → src/framework/lib}/zodToMongoose.d.ts +1 -1
- package/dist/{lib → src/framework/lib}/zodToMongoose.js +11 -11
- package/dist/{middleware → src/framework/middleware}/auditLog.d.ts +4 -3
- package/dist/src/framework/middleware/auditLog.js +42 -0
- package/dist/{middleware → src/framework/middleware}/botProtection.d.ts +2 -2
- package/dist/{middleware → src/framework/middleware}/botProtection.js +8 -9
- package/dist/src/framework/middleware/cacheResponse.d.ts +35 -0
- package/dist/src/framework/middleware/cacheResponse.js +126 -0
- package/dist/{middleware → src/framework/middleware}/captcha.d.ts +2 -3
- package/dist/src/framework/middleware/captcha.js +37 -0
- package/dist/{middleware → src/framework/middleware}/errorHandler.d.ts +1 -1
- package/dist/{middleware → src/framework/middleware}/errorHandler.js +2 -2
- package/dist/src/framework/middleware/index.js +1 -0
- package/dist/{middleware → src/framework/middleware}/logger.d.ts +1 -1
- package/dist/src/framework/middleware/metrics.d.ts +12 -0
- package/dist/src/framework/middleware/metrics.js +26 -0
- package/dist/{middleware → src/framework/middleware}/rateLimit.d.ts +2 -2
- package/dist/src/framework/middleware/rateLimit.js +22 -0
- package/dist/src/framework/middleware/requestId.d.ts +3 -0
- package/dist/{middleware → src/framework/middleware}/requestId.js +2 -2
- package/dist/{middleware → src/framework/middleware}/requestLogger.d.ts +3 -3
- package/dist/{middleware → src/framework/middleware}/requestLogger.js +17 -12
- package/dist/{middleware → src/framework/middleware}/requestSigning.d.ts +2 -2
- package/dist/{middleware → src/framework/middleware}/requestSigning.js +18 -20
- package/dist/src/framework/middleware/tenant.d.ts +14 -0
- package/dist/{middleware → src/framework/middleware}/tenant.js +31 -27
- package/dist/src/framework/middleware/upload.d.ts +5 -0
- package/dist/{middleware → src/framework/middleware}/upload.js +4 -4
- package/dist/{middleware → src/framework/middleware}/webhookAuth.d.ts +3 -3
- package/dist/{middleware → src/framework/middleware}/webhookAuth.js +11 -12
- package/dist/src/framework/models/AuditLog.d.ts +21 -0
- package/dist/src/framework/models/AuditLog.js +31 -0
- package/dist/src/framework/mountMiddleware.d.ts +91 -0
- package/dist/src/framework/mountMiddleware.js +128 -0
- package/dist/src/framework/mountOptionalEndpoints.d.ts +103 -0
- package/dist/src/framework/mountOptionalEndpoints.js +47 -0
- package/dist/src/framework/mountRoutes.d.ts +21 -0
- package/dist/src/framework/mountRoutes.js +144 -0
- package/dist/src/framework/persistence/cronRegistry.d.ts +28 -0
- package/dist/src/framework/persistence/cronRegistry.js +139 -0
- package/dist/src/framework/persistence/idempotency.d.ts +26 -0
- package/dist/src/framework/persistence/idempotency.js +178 -0
- package/dist/src/framework/persistence/index.d.ts +6 -0
- package/dist/src/framework/persistence/index.js +8 -0
- package/dist/src/framework/persistence/storeInfra.d.ts +9 -0
- package/dist/src/framework/persistence/storeInfra.js +1 -0
- package/dist/src/framework/persistence/uploadRegistry.d.ts +35 -0
- package/dist/src/framework/persistence/uploadRegistry.js +235 -0
- package/dist/src/framework/persistence/wsMessages.d.ts +22 -0
- package/dist/src/framework/persistence/wsMessages.js +296 -0
- package/dist/src/framework/preloadSchemas.d.ts +24 -0
- package/dist/src/framework/preloadSchemas.js +42 -0
- package/dist/src/framework/registerBoundaryAdapters.d.ts +23 -0
- package/dist/src/framework/registerBoundaryAdapters.js +46 -0
- package/dist/src/framework/routes/admin.d.ts +9 -0
- package/dist/src/framework/routes/admin.js +361 -0
- package/dist/src/framework/routes/health.d.ts +1 -0
- package/dist/src/framework/routes/health.js +21 -0
- package/dist/src/framework/routes/home.d.ts +1 -0
- package/dist/src/framework/routes/home.js +18 -0
- package/dist/src/framework/routes/jobs.d.ts +3 -0
- package/dist/{routes → src/framework/routes}/jobs.js +128 -103
- package/dist/src/framework/routes/metrics.d.ts +10 -0
- package/dist/src/framework/routes/metrics.js +57 -0
- package/dist/{routes → src/framework/routes}/uploads.d.ts +3 -3
- package/dist/src/framework/routes/uploads.js +262 -0
- package/dist/src/framework/runPluginLifecycle.d.ts +27 -0
- package/dist/src/framework/runPluginLifecycle.js +121 -0
- package/dist/src/framework/secrets/frameworkSecretSchema.d.ts +58 -0
- package/dist/src/framework/secrets/frameworkSecretSchema.js +20 -0
- package/dist/src/framework/secrets/index.d.ts +9 -0
- package/dist/src/framework/secrets/index.js +7 -0
- package/dist/src/framework/secrets/providers/envProvider.d.ts +15 -0
- package/dist/src/framework/secrets/providers/envProvider.js +18 -0
- package/dist/src/framework/secrets/providers/fileProvider.d.ts +8 -0
- package/dist/src/framework/secrets/providers/fileProvider.js +82 -0
- package/dist/src/framework/secrets/providers/ssmProvider.d.ts +20 -0
- package/dist/src/framework/secrets/providers/ssmProvider.js +127 -0
- package/dist/src/framework/secrets/resolveSecretBundle.d.ts +53 -0
- package/dist/src/framework/secrets/resolveSecretBundle.js +84 -0
- package/dist/src/framework/secrets/resolveSecrets.d.ts +18 -0
- package/dist/src/framework/secrets/resolveSecrets.js +34 -0
- package/dist/src/framework/sse/index.d.ts +21 -0
- package/dist/src/framework/sse/index.js +109 -0
- package/dist/src/framework/ws/index.d.ts +11 -0
- package/dist/src/framework/ws/index.js +8 -0
- package/dist/src/index.d.ts +87 -0
- package/dist/src/index.js +58 -0
- package/dist/src/lib/appConfig.d.ts +7 -0
- package/dist/src/lib/appConfig.js +27 -0
- package/dist/src/lib/appMeta.d.ts +7 -0
- package/dist/src/lib/appMeta.js +3 -0
- package/dist/src/lib/authConfig.d.ts +532 -0
- package/dist/{lib/appConfig.js → src/lib/authConfig.js} +75 -17
- package/dist/{lib → src/lib}/context.d.ts +6 -12
- package/dist/{lib → src/lib}/context.js +5 -5
- package/dist/src/lib/logger.d.ts +1 -0
- package/dist/src/lib/logger.js +1 -0
- package/dist/src/lib/mongo.d.ts +58 -0
- package/dist/src/lib/mongo.js +96 -0
- package/dist/src/lib/queue.d.ts +72 -0
- package/dist/src/lib/queue.js +152 -0
- package/dist/src/lib/redis.d.ts +28 -0
- package/dist/src/lib/redis.js +72 -0
- package/dist/{lib → src/lib}/signing.d.ts +2 -2
- package/dist/src/lib/signing.js +210 -0
- package/dist/src/lib/signingConfig.d.ts +40 -0
- package/dist/src/lib/signingConfig.js +28 -0
- package/dist/src/server.d.ts +146 -0
- package/dist/src/server.js +469 -0
- package/dist/src/shared/lib/HttpError.d.ts +1 -0
- package/dist/src/shared/lib/HttpError.js +2 -0
- package/dist/src/shared/lib/constants.d.ts +10 -0
- package/dist/src/shared/lib/crypto.d.ts +43 -0
- package/dist/src/shared/lib/crypto.js +74 -0
- package/dist/src/shared/lib/signing.d.ts +52 -0
- package/dist/{lib → src/shared/lib}/signing.js +35 -8
- package/dist/src/testing.d.ts +34 -0
- package/dist/src/testing.js +93 -0
- package/package.json +60 -24
- package/dist/adapters/memoryAuth.d.ts +0 -52
- package/dist/adapters/memoryAuth.js +0 -749
- package/dist/adapters/memoryStorage.d.ts +0 -3
- package/dist/adapters/memoryStorage.js +0 -44
- package/dist/adapters/mongoAuth.d.ts +0 -2
- package/dist/adapters/mongoAuth.js +0 -403
- package/dist/adapters/sqliteAuth.d.ts +0 -72
- package/dist/adapters/sqliteAuth.js +0 -858
- package/dist/app.d.ts +0 -559
- package/dist/app.js +0 -651
- package/dist/entrypoints/mongo.d.ts +0 -5
- package/dist/entrypoints/mongo.js +0 -4
- package/dist/entrypoints/queue.d.ts +0 -2
- package/dist/entrypoints/queue.js +0 -1
- package/dist/entrypoints/redis.d.ts +0 -1
- package/dist/entrypoints/redis.js +0 -1
- package/dist/index.d.ts +0 -117
- package/dist/index.js +0 -88
- package/dist/lib/appConfig.d.ts +0 -275
- package/dist/lib/auditLog.d.ts +0 -58
- package/dist/lib/auditLog.js +0 -218
- package/dist/lib/authAdapter.d.ts +0 -246
- package/dist/lib/authAdapter.js +0 -7
- package/dist/lib/authRateLimit.d.ts +0 -13
- package/dist/lib/authRateLimit.js +0 -117
- package/dist/lib/clientIp.d.ts +0 -14
- package/dist/lib/credentialStuffing.d.ts +0 -31
- package/dist/lib/credentialStuffing.js +0 -77
- package/dist/lib/crypto.d.ts +0 -11
- package/dist/lib/crypto.js +0 -22
- package/dist/lib/deletionCancelToken.d.ts +0 -12
- package/dist/lib/deletionCancelToken.js +0 -88
- package/dist/lib/emailVerification.d.ts +0 -19
- package/dist/lib/emailVerification.js +0 -129
- package/dist/lib/fingerprint.js +0 -36
- package/dist/lib/idempotency.js +0 -182
- package/dist/lib/jwks.d.ts +0 -25
- package/dist/lib/jwks.js +0 -51
- package/dist/lib/jwt.d.ts +0 -15
- package/dist/lib/jwt.js +0 -111
- package/dist/lib/metrics.d.ts +0 -14
- package/dist/lib/mfaChallenge.d.ts +0 -55
- package/dist/lib/mfaChallenge.js +0 -398
- package/dist/lib/mongo.d.ts +0 -39
- package/dist/lib/mongo.js +0 -124
- package/dist/lib/oauth.d.ts +0 -40
- package/dist/lib/oauth.js +0 -101
- package/dist/lib/oauthCode.d.ts +0 -15
- package/dist/lib/oauthCode.js +0 -95
- package/dist/lib/pagination.d.ts +0 -119
- package/dist/lib/pagination.js +0 -166
- package/dist/lib/queue.d.ts +0 -37
- package/dist/lib/queue.js +0 -117
- package/dist/lib/redis.d.ts +0 -9
- package/dist/lib/redis.js +0 -61
- package/dist/lib/resetPassword.d.ts +0 -12
- package/dist/lib/resetPassword.js +0 -93
- package/dist/lib/roles.d.ts +0 -7
- package/dist/lib/roles.js +0 -49
- package/dist/lib/saml.d.ts +0 -25
- package/dist/lib/saml.js +0 -64
- package/dist/lib/securityEvents.d.ts +0 -28
- package/dist/lib/securityEvents.js +0 -26
- package/dist/lib/session.d.ts +0 -49
- package/dist/lib/session.js +0 -597
- package/dist/lib/tenant.d.ts +0 -15
- package/dist/lib/tenant.js +0 -65
- package/dist/lib/upload.js +0 -112
- package/dist/lib/uploadRegistry.d.ts +0 -18
- package/dist/lib/uploadRegistry.js +0 -83
- package/dist/lib/ws.d.ts +0 -22
- package/dist/lib/ws.js +0 -96
- package/dist/lib/wsHeartbeat.d.ts +0 -12
- package/dist/lib/wsHeartbeat.js +0 -57
- package/dist/lib/wsMessages.d.ts +0 -40
- package/dist/lib/wsMessages.js +0 -330
- package/dist/lib/wsPresence.d.ts +0 -25
- package/dist/lib/wsPresence.js +0 -99
- package/dist/middleware/auditLog.js +0 -39
- package/dist/middleware/bearerAuth.d.ts +0 -2
- package/dist/middleware/bearerAuth.js +0 -11
- package/dist/middleware/cacheResponse.d.ts +0 -15
- package/dist/middleware/cacheResponse.js +0 -178
- package/dist/middleware/captcha.js +0 -36
- package/dist/middleware/csrf.js +0 -129
- package/dist/middleware/identify.d.ts +0 -3
- package/dist/middleware/identify.js +0 -122
- package/dist/middleware/index.js +0 -1
- package/dist/middleware/metrics.d.ts +0 -9
- package/dist/middleware/metrics.js +0 -26
- package/dist/middleware/rateLimit.js +0 -22
- package/dist/middleware/requestId.d.ts +0 -3
- package/dist/middleware/scimAuth.d.ts +0 -8
- package/dist/middleware/scimAuth.js +0 -29
- package/dist/middleware/tenant.d.ts +0 -5
- package/dist/middleware/upload.d.ts +0 -5
- package/dist/middleware/userAuth.d.ts +0 -3
- package/dist/middleware/userAuth.js +0 -6
- package/dist/models/AuditLog.d.ts +0 -30
- package/dist/models/AuditLog.js +0 -39
- package/dist/models/AuthUser.js +0 -55
- package/dist/models/Group.d.ts +0 -21
- package/dist/models/Group.js +0 -28
- package/dist/models/GroupMembership.js +0 -25
- package/dist/models/TenantRole.d.ts +0 -15
- package/dist/models/TenantRole.js +0 -23
- package/dist/routes/auth.d.ts +0 -12
- package/dist/routes/auth.js +0 -744
- package/dist/routes/groups.js +0 -346
- package/dist/routes/health.d.ts +0 -1
- package/dist/routes/health.js +0 -22
- package/dist/routes/home.d.ts +0 -1
- package/dist/routes/home.js +0 -16
- package/dist/routes/jobs.d.ts +0 -2
- package/dist/routes/m2m.d.ts +0 -2
- package/dist/routes/m2m.js +0 -72
- package/dist/routes/metrics.d.ts +0 -8
- package/dist/routes/metrics.js +0 -55
- package/dist/routes/mfa.d.ts +0 -5
- package/dist/routes/mfa.js +0 -628
- package/dist/routes/oauth.d.ts +0 -2
- package/dist/routes/oauth.js +0 -520
- package/dist/routes/oidc.d.ts +0 -2
- package/dist/routes/oidc.js +0 -29
- package/dist/routes/passkey.d.ts +0 -1
- package/dist/routes/passkey.js +0 -157
- package/dist/routes/saml.d.ts +0 -2
- package/dist/routes/saml.js +0 -86
- package/dist/routes/scim.d.ts +0 -2
- package/dist/routes/scim.js +0 -255
- package/dist/routes/uploads.js +0 -227
- package/dist/schemas/auth.js +0 -30
- package/dist/server.d.ts +0 -57
- package/dist/server.js +0 -112
- package/dist/services/auth.d.ts +0 -29
- package/dist/services/auth.js +0 -238
- package/dist/ws/index.d.ts +0 -10
- package/dist/ws/index.js +0 -39
- package/docs/sections/adding-middleware/full.md +0 -35
- package/docs/sections/adding-models/full.md +0 -125
- package/docs/sections/adding-models/overview.md +0 -13
- package/docs/sections/adding-routes/full.md +0 -182
- package/docs/sections/adding-routes/overview.md +0 -23
- package/docs/sections/auth-flow/full.md +0 -790
- package/docs/sections/auth-flow/overview.md +0 -10
- package/docs/sections/auth-security-examples/full.md +0 -388
- package/docs/sections/authentication/full.md +0 -130
- package/docs/sections/authentication/overview.md +0 -5
- package/docs/sections/cli/full.md +0 -42
- package/docs/sections/configuration/full.md +0 -172
- package/docs/sections/configuration/overview.md +0 -18
- package/docs/sections/configuration-example/full.md +0 -117
- package/docs/sections/configuration-example/overview.md +0 -30
- package/docs/sections/documentation/full.md +0 -171
- package/docs/sections/environment-variables/full.md +0 -55
- package/docs/sections/exports/full.md +0 -123
- package/docs/sections/extending-context/full.md +0 -59
- package/docs/sections/header.md +0 -3
- package/docs/sections/installation/full.md +0 -6
- package/docs/sections/jobs/full.md +0 -140
- package/docs/sections/jobs/overview.md +0 -15
- package/docs/sections/logging/full.md +0 -83
- package/docs/sections/metrics/full.md +0 -131
- package/docs/sections/mongodb-connections/full.md +0 -45
- package/docs/sections/mongodb-connections/overview.md +0 -7
- package/docs/sections/multi-tenancy/full.md +0 -66
- package/docs/sections/multi-tenancy/overview.md +0 -15
- package/docs/sections/oauth/full.md +0 -189
- package/docs/sections/oauth/overview.md +0 -16
- package/docs/sections/package-development/full.md +0 -7
- package/docs/sections/pagination/full.md +0 -93
- package/docs/sections/passkey-login/full.md +0 -90
- package/docs/sections/passkey-login/overview.md +0 -1
- package/docs/sections/peer-dependencies/full.md +0 -47
- package/docs/sections/quick-start/full.md +0 -43
- package/docs/sections/response-caching/full.md +0 -117
- package/docs/sections/response-caching/overview.md +0 -13
- package/docs/sections/roles/full.md +0 -225
- package/docs/sections/roles/overview.md +0 -14
- package/docs/sections/running-without-redis/full.md +0 -16
- package/docs/sections/running-without-redis-or-mongodb/full.md +0 -60
- package/docs/sections/signing/full.md +0 -203
- package/docs/sections/stack/full.md +0 -10
- package/docs/sections/uploads/full.md +0 -208
- package/docs/sections/versioning/full.md +0 -85
- package/docs/sections/webhook-auth/full.md +0 -100
- package/docs/sections/websocket/full.md +0 -196
- package/docs/sections/websocket/overview.md +0 -5
- package/docs/sections/websocket-rooms/full.md +0 -102
- package/docs/sections/websocket-rooms/overview.md +0 -5
- /package/dist/{lib/storageAdapter.js → packages/bunshot-admin/src/types/env.js} +0 -0
- /package/dist/{lib → packages/bunshot-auth/src/lib}/fingerprint.d.ts +0 -0
- /package/dist/{lib → packages/bunshot-auth/src/lib}/logger.d.ts +0 -0
- /package/dist/{lib → packages/bunshot-core/src}/constants.d.ts +0 -0
- /package/dist/{lib → packages/bunshot-core/src}/storageAdapter.d.ts +0 -0
- /package/dist/{lib → src/framework/lib}/createDtoMapper.d.ts +0 -0
- /package/dist/{lib → src/framework/lib}/stripUnreferencedSchemas.d.ts +0 -0
- /package/dist/{middleware → src/framework/middleware}/cors.d.ts +0 -0
- /package/dist/{middleware → src/framework/middleware}/cors.js +0 -0
- /package/dist/{middleware → src/framework/middleware}/index.d.ts +0 -0
- /package/dist/{middleware → src/framework/middleware}/logger.js +0 -0
- /package/dist/{lib → src/shared/lib}/constants.js +0 -0
package/dist/app.d.ts
DELETED
|
@@ -1,559 +0,0 @@
|
|
|
1
|
-
import { OpenAPIHono } from "@hono/zod-openapi";
|
|
2
|
-
import type { MiddlewareHandler } from "hono";
|
|
3
|
-
import type { AppEnv, ValidationErrorFormatter } from "./lib/context";
|
|
4
|
-
import type { RequestLogEntry, LogLevel } from "./middleware/requestLogger";
|
|
5
|
-
import type { PrimaryField, EmailVerificationConfig, PasswordResetConfig, PasswordPolicyConfig, RefreshTokenConfig, MfaConfig, MfaEmailOtpConfig, MfaWebAuthnConfig, SigningConfig, JwtConfig, BreachedPasswordConfig, StepUpConfig, M2MConfig, OidcConfig, SamlConfig, ScimConfig } from "./lib/appConfig";
|
|
6
|
-
import type { CaptchaConfig } from "./lib/captcha";
|
|
7
|
-
import type { AuthAdapter } from "./lib/authAdapter";
|
|
8
|
-
import type { OAuthProviderConfig } from "./lib/oauth";
|
|
9
|
-
type StoreType = "redis" | "mongo" | "sqlite" | "memory";
|
|
10
|
-
export type { BreachedPasswordConfig } from "./lib/appConfig";
|
|
11
|
-
export interface DbConfig {
|
|
12
|
-
/**
|
|
13
|
-
* Absolute path to the SQLite database file.
|
|
14
|
-
* Required when any store is "sqlite".
|
|
15
|
-
* Example: import.meta.dir + "/../data.db"
|
|
16
|
-
*/
|
|
17
|
-
sqlite?: string;
|
|
18
|
-
/**
|
|
19
|
-
* MongoDB auto-connect mode.
|
|
20
|
-
* - "single" (default): calls connectMongo() — auth and app share one server (MONGO_* env vars)
|
|
21
|
-
* - "separate": calls connectAuthMongo() + connectAppMongo() — auth on MONGO_AUTH_* server, app on MONGO_* server
|
|
22
|
-
* - false: skip auto-connect (call connectMongo / connectAuthMongo / connectAppMongo yourself)
|
|
23
|
-
*/
|
|
24
|
-
mongo?: "single" | "separate" | false;
|
|
25
|
-
/**
|
|
26
|
-
* Auto-connect Redis before starting. Defaults to true.
|
|
27
|
-
* Set false to skip (e.g. when using sqlite or memory stores only).
|
|
28
|
-
*/
|
|
29
|
-
redis?: boolean;
|
|
30
|
-
/**
|
|
31
|
-
* Where to store JWT sessions. Default: "redis".
|
|
32
|
-
* Sessions are stored on appConnection (not authConnection) so they are isolated per-app
|
|
33
|
-
* in "separate" mongo mode.
|
|
34
|
-
*/
|
|
35
|
-
sessions?: StoreType;
|
|
36
|
-
/**
|
|
37
|
-
* Where to store OAuth state (PKCE code verifier, link user ID). Default: follows `sessions`.
|
|
38
|
-
*/
|
|
39
|
-
oauthState?: StoreType;
|
|
40
|
-
/**
|
|
41
|
-
* Global default store for cacheResponse middleware. Default: "redis".
|
|
42
|
-
* Can be overridden per-route via cacheResponse({ store: "..." }).
|
|
43
|
-
*/
|
|
44
|
-
cache?: StoreType;
|
|
45
|
-
/**
|
|
46
|
-
* Which built-in auth adapter to use for /auth/* routes.
|
|
47
|
-
* - "mongo" (default when mongo is enabled): Mongoose adapter (requires connectMongo)
|
|
48
|
-
* - "sqlite": bun:sqlite adapter (requires sqlite path)
|
|
49
|
-
* - "memory": in-memory Maps (ephemeral, great for tests)
|
|
50
|
-
* When `mongo: false`, defaults to the same store as `sessions`.
|
|
51
|
-
* Ignored when `auth.adapter` is explicitly passed in CreateAppConfig.
|
|
52
|
-
*/
|
|
53
|
-
auth?: "mongo" | "sqlite" | "memory";
|
|
54
|
-
}
|
|
55
|
-
export interface AppMeta {
|
|
56
|
-
/** App name shown in the root endpoint and OpenAPI docs title. Defaults to "Bun Core API" */
|
|
57
|
-
name?: string;
|
|
58
|
-
/** Version shown in OpenAPI docs. Defaults to "1.0.0" */
|
|
59
|
-
version?: string;
|
|
60
|
-
}
|
|
61
|
-
export interface OAuthConfig {
|
|
62
|
-
/** OAuth provider credentials. Configured providers get automatic /auth/{provider} routes. */
|
|
63
|
-
providers?: OAuthProviderConfig;
|
|
64
|
-
/** Where to redirect after a successful OAuth login. Defaults to "/" */
|
|
65
|
-
postRedirect?: string;
|
|
66
|
-
/** Allowlist of redirect URLs. If set, the postRedirect URL is validated against this list.
|
|
67
|
-
* Relative paths (e.g., "/") are always allowed. Only absolute URLs are validated. */
|
|
68
|
-
allowedRedirectUrls?: string[];
|
|
69
|
-
}
|
|
70
|
-
export interface AuthRateLimitConfig {
|
|
71
|
-
/** Max login failures per window before the account is locked. Default: 10 per 15 min. */
|
|
72
|
-
login?: {
|
|
73
|
-
windowMs?: number;
|
|
74
|
-
max?: number;
|
|
75
|
-
};
|
|
76
|
-
/** Max registration attempts per IP per window. Default: 5 per hour. */
|
|
77
|
-
register?: {
|
|
78
|
-
windowMs?: number;
|
|
79
|
-
max?: number;
|
|
80
|
-
};
|
|
81
|
-
/** Max email verification attempts per IP per window. Default: 10 per 15 min. */
|
|
82
|
-
verifyEmail?: {
|
|
83
|
-
windowMs?: number;
|
|
84
|
-
max?: number;
|
|
85
|
-
};
|
|
86
|
-
/** Max resend-verification attempts per user per window. Default: 3 per hour. */
|
|
87
|
-
resendVerification?: {
|
|
88
|
-
windowMs?: number;
|
|
89
|
-
max?: number;
|
|
90
|
-
};
|
|
91
|
-
/** Max forgot-password requests per IP per window. Default: 5 per 15 min. */
|
|
92
|
-
forgotPassword?: {
|
|
93
|
-
windowMs?: number;
|
|
94
|
-
max?: number;
|
|
95
|
-
};
|
|
96
|
-
/** Max reset-password attempts per IP per window. Default: 10 per 15 min. */
|
|
97
|
-
resetPassword?: {
|
|
98
|
-
windowMs?: number;
|
|
99
|
-
max?: number;
|
|
100
|
-
};
|
|
101
|
-
/** Max account deletion attempts per user per window. Default: 3 per hour. */
|
|
102
|
-
deleteAccount?: {
|
|
103
|
-
windowMs?: number;
|
|
104
|
-
max?: number;
|
|
105
|
-
};
|
|
106
|
-
/** Max MFA verification attempts per IP per window. Default: 10 per 15 min. */
|
|
107
|
-
mfaVerify?: {
|
|
108
|
-
windowMs?: number;
|
|
109
|
-
max?: number;
|
|
110
|
-
};
|
|
111
|
-
/** Max MFA email OTP resend attempts per IP per window. Default: 5 per minute. */
|
|
112
|
-
mfaResend?: {
|
|
113
|
-
windowMs?: number;
|
|
114
|
-
max?: number;
|
|
115
|
-
};
|
|
116
|
-
/**
|
|
117
|
-
* Store backend for auth rate limit counters.
|
|
118
|
-
* Defaults to "redis" when Redis is enabled, otherwise "memory".
|
|
119
|
-
* Use "redis" for multi-instance deployments so limits are shared across servers.
|
|
120
|
-
*/
|
|
121
|
-
store?: "memory" | "redis";
|
|
122
|
-
/** Credential stuffing detection. Tracks distinct accounts per IP and IPs per account. */
|
|
123
|
-
credentialStuffing?: {
|
|
124
|
-
maxAccountsPerIp?: {
|
|
125
|
-
count: number;
|
|
126
|
-
windowMs: number;
|
|
127
|
-
};
|
|
128
|
-
maxIpsPerAccount?: {
|
|
129
|
-
count: number;
|
|
130
|
-
windowMs: number;
|
|
131
|
-
};
|
|
132
|
-
onDetected?: (signal: {
|
|
133
|
-
type: "ip" | "account";
|
|
134
|
-
key: string;
|
|
135
|
-
count: number;
|
|
136
|
-
}) => void;
|
|
137
|
-
};
|
|
138
|
-
}
|
|
139
|
-
export interface AuthConfig {
|
|
140
|
-
/** Set false to skip mounting /auth/* routes. Defaults to true */
|
|
141
|
-
enabled?: boolean;
|
|
142
|
-
/**
|
|
143
|
-
* Custom auth adapter for the built-in /auth/* routes.
|
|
144
|
-
* Use this for fully custom backends (e.g. Postgres).
|
|
145
|
-
* For built-in backends prefer `db.auth: "mongo" | "sqlite" | "memory"`.
|
|
146
|
-
* When both are set, this takes precedence.
|
|
147
|
-
*/
|
|
148
|
-
adapter?: AuthAdapter;
|
|
149
|
-
/** Valid roles for this app (e.g. ["admin", "editor", "user"]). Used by requireRole middleware. */
|
|
150
|
-
roles?: string[];
|
|
151
|
-
/** Role automatically assigned to new users on registration. Must be one of roles. */
|
|
152
|
-
defaultRole?: string;
|
|
153
|
-
/** OAuth provider and redirect configuration */
|
|
154
|
-
oauth?: OAuthConfig;
|
|
155
|
-
/**
|
|
156
|
-
* The primary identifier field used for registration and login.
|
|
157
|
-
* Defaults to "email". Use "username" or "phone" for apps that identify users differently.
|
|
158
|
-
* Email verification is only available when primaryField is "email".
|
|
159
|
-
*/
|
|
160
|
-
primaryField?: PrimaryField;
|
|
161
|
-
/**
|
|
162
|
-
* Email verification configuration. Only active when primaryField is "email".
|
|
163
|
-
* Provide an onSend callback to send the verification email via any provider (Resend, SendGrid, etc.).
|
|
164
|
-
*/
|
|
165
|
-
emailVerification?: EmailVerificationConfig;
|
|
166
|
-
/**
|
|
167
|
-
* Password reset configuration. Only active when primaryField is "email".
|
|
168
|
-
* Provide an onSend callback to send the reset email via any provider (Resend, SendGrid, etc.).
|
|
169
|
-
* Mounts POST /auth/forgot-password and POST /auth/reset-password.
|
|
170
|
-
*/
|
|
171
|
-
passwordReset?: PasswordResetConfig;
|
|
172
|
-
/** Password strength policy for registration and reset-password.
|
|
173
|
-
* Login is intentionally lenient (min 1) so users under older policies can still sign in.
|
|
174
|
-
* Defaults: minLength=8, requireLetter=true, requireDigit=true, requireSpecial=false. */
|
|
175
|
-
passwordPolicy?: PasswordPolicyConfig;
|
|
176
|
-
/** Rate limit configuration for built-in auth endpoints. */
|
|
177
|
-
rateLimit?: AuthRateLimitConfig;
|
|
178
|
-
/** Session concurrency and metadata persistence policy. */
|
|
179
|
-
sessionPolicy?: AuthSessionPolicyConfig;
|
|
180
|
-
/** Account deletion configuration. Enables DELETE /auth/me when the adapter supports deleteUser. */
|
|
181
|
-
accountDeletion?: AccountDeletionConfig;
|
|
182
|
-
/**
|
|
183
|
-
* Refresh token configuration. When set, login/register return short-lived access tokens
|
|
184
|
-
* (default 15 min) alongside long-lived refresh tokens (default 30 days). Mounts POST /auth/refresh.
|
|
185
|
-
* When not configured, the existing 7-day JWT behavior is unchanged.
|
|
186
|
-
*/
|
|
187
|
-
refreshTokens?: RefreshTokenConfig;
|
|
188
|
-
/**
|
|
189
|
-
* MFA/TOTP configuration. When set, enables MFA setup/verify/disable routes under /auth/mfa/*.
|
|
190
|
-
* Login returns { mfaRequired: true, mfaToken } when MFA is enabled for the user.
|
|
191
|
-
* OAuth logins skip MFA (the OAuth provider is treated as the second factor).
|
|
192
|
-
*/
|
|
193
|
-
mfa?: MfaConfig;
|
|
194
|
-
/**
|
|
195
|
-
* JWT claims configuration. When set, `iss`, `aud`, and `iat` are included in all tokens.
|
|
196
|
-
* Tokens with a non-matching issuer or audience will fail verification.
|
|
197
|
-
*
|
|
198
|
-
* - **`iss`** (issuer) and **`aud`** (audience) are validated on every token verification when
|
|
199
|
-
* configured. A token issued for a different issuer or intended for a different audience is
|
|
200
|
-
* rejected outright.
|
|
201
|
-
* - **`iat`** (issued-at) is always included in tokens once this config is set. Use it to detect
|
|
202
|
-
* token reuse or implement absolute expiry windows independent of `exp`.
|
|
203
|
-
*
|
|
204
|
-
* Recommended for fintech and multi-service deployments where tokens from one service should
|
|
205
|
-
* never be accepted by another.
|
|
206
|
-
* Use `algorithm: "RS256"` to enable OIDC mode.
|
|
207
|
-
*/
|
|
208
|
-
jwt?: JwtConfig;
|
|
209
|
-
/**
|
|
210
|
-
* When true, suspension status is checked on every authenticated request (via identify middleware).
|
|
211
|
-
* This adds one adapter call per request. Default: false.
|
|
212
|
-
* Suspension is always enforced at login time regardless of this setting.
|
|
213
|
-
*/
|
|
214
|
-
checkSuspensionOnIdentify?: boolean;
|
|
215
|
-
/**
|
|
216
|
-
* Breached password detection using the HaveIBeenPwned k-Anonymity API.
|
|
217
|
-
* Checks passwords at registration and reset. No full hash leaves the server.
|
|
218
|
-
*/
|
|
219
|
-
breachedPasswordCheck?: BreachedPasswordConfig;
|
|
220
|
-
/**
|
|
221
|
-
* Step-up MFA configuration. When set, the requireStepUp() middleware and
|
|
222
|
-
* POST /auth/step-up endpoint are available. Requires auth.mfa to be configured.
|
|
223
|
-
*/
|
|
224
|
-
stepUp?: StepUpConfig;
|
|
225
|
-
/** M2M client credentials configuration. Enables POST /oauth/token with client_credentials grant. */
|
|
226
|
-
m2m?: M2MConfig;
|
|
227
|
-
/**
|
|
228
|
-
* OIDC discovery and RS256 JWT signing configuration.
|
|
229
|
-
* When set, mounts /.well-known/openid-configuration and /.well-known/jwks.json.
|
|
230
|
-
* Auto-generates an RSA-2048 key pair on startup if signingKey is not provided.
|
|
231
|
-
*/
|
|
232
|
-
oidc?: OidcConfig;
|
|
233
|
-
/** SAML 2.0 SSO configuration. Enables /auth/saml/* routes. Requires samlify peer dependency. */
|
|
234
|
-
saml?: SamlConfig;
|
|
235
|
-
/** SCIM 2.0 user provisioning. Enables /scim/v2/* endpoints with its own bearer token. */
|
|
236
|
-
scim?: ScimConfig;
|
|
237
|
-
}
|
|
238
|
-
export interface AccountDeletionConfig {
|
|
239
|
-
/** Called before deletion. Throw to abort (e.g., active subscription check). */
|
|
240
|
-
onBeforeDelete?: (userId: string) => Promise<void>;
|
|
241
|
-
/** Called after auth data is deleted. Runs at execution time — query current state, not a snapshot. */
|
|
242
|
-
onAfterDelete?: (userId: string) => Promise<void>;
|
|
243
|
-
/** When true, deletion is queued as a BullMQ job instead of running synchronously. Requires Redis + BullMQ. */
|
|
244
|
-
queued?: boolean;
|
|
245
|
-
/** Grace period in seconds before queued deletion executes. Default: 0 (immediate). */
|
|
246
|
-
gracePeriod?: number;
|
|
247
|
-
/** Called when deletion is scheduled (queued + gracePeriod > 0). Use to send a confirmation/cancel email. */
|
|
248
|
-
onDeletionScheduled?: (userId: string, email: string, cancelToken: string) => Promise<void>;
|
|
249
|
-
}
|
|
250
|
-
export interface AuthSessionPolicyConfig {
|
|
251
|
-
/** Max simultaneous active sessions per user. Oldest is evicted when exceeded. Default: 6. */
|
|
252
|
-
maxSessions?: number;
|
|
253
|
-
/**
|
|
254
|
-
* Retain session metadata (IP, user-agent, timestamps) after a session expires or is deleted.
|
|
255
|
-
* Enables future novel-device/location detection. Default: true.
|
|
256
|
-
*/
|
|
257
|
-
persistSessionMetadata?: boolean;
|
|
258
|
-
/**
|
|
259
|
-
* Include inactive (expired/deleted) sessions in GET /auth/sessions.
|
|
260
|
-
* Only meaningful when persistSessionMetadata is true. Default: false.
|
|
261
|
-
*/
|
|
262
|
-
includeInactiveSessions?: boolean;
|
|
263
|
-
/**
|
|
264
|
-
* Update lastActiveAt on every authenticated request.
|
|
265
|
-
* Adds one DB write per auth'd request. Default: false.
|
|
266
|
-
*/
|
|
267
|
-
trackLastActive?: boolean;
|
|
268
|
-
}
|
|
269
|
-
export type { PrimaryField, EmailVerificationConfig, PasswordResetConfig, RefreshTokenConfig, MfaConfig, MfaEmailOtpConfig, MfaWebAuthnConfig, SigningConfig, JwtConfig, StepUpConfig, OidcConfig, SamlConfig, ScimConfig };
|
|
270
|
-
export type { CaptchaConfig, CaptchaProvider } from "./lib/captcha";
|
|
271
|
-
export interface BotProtectionConfig {
|
|
272
|
-
/**
|
|
273
|
-
* List of IPv4 CIDRs (e.g. "198.51.100.0/24"), IPv4 addresses, or IPv6 addresses to block outright.
|
|
274
|
-
* Matched requests receive a 403 before any other processing.
|
|
275
|
-
* Example: ["198.51.100.0/24", "203.0.113.42"]
|
|
276
|
-
*/
|
|
277
|
-
blockList?: string[];
|
|
278
|
-
/**
|
|
279
|
-
* Also rate-limit by HTTP fingerprint (User-Agent, Accept-*, Connection, browser header presence)
|
|
280
|
-
* in addition to IP. Bots that rotate IPs but use the same HTTP client share a bucket.
|
|
281
|
-
* Uses the same store as auth rate limiting (Redis or memory).
|
|
282
|
-
* Default: false
|
|
283
|
-
*/
|
|
284
|
-
fingerprintRateLimit?: boolean;
|
|
285
|
-
}
|
|
286
|
-
export interface CsrfConfig {
|
|
287
|
-
/** Enable CSRF protection for cookie-authenticated state-changing requests. */
|
|
288
|
-
enabled: boolean;
|
|
289
|
-
/** Paths exempt from CSRF checks (in addition to built-in OAuth callback exemptions). Uses prefix matching when path ends with "*". */
|
|
290
|
-
exemptPaths?: string[];
|
|
291
|
-
/** Also validate Origin header against CORS origins. Default: true. */
|
|
292
|
-
checkOrigin?: boolean;
|
|
293
|
-
}
|
|
294
|
-
export interface SecurityConfig {
|
|
295
|
-
/** CORS origins. Defaults to "*" */
|
|
296
|
-
cors?: string | string[];
|
|
297
|
-
/** Additional security headers to set via Hono's secureHeaders middleware.
|
|
298
|
-
* Pass a Content-Security-Policy, Permissions-Policy, etc. */
|
|
299
|
-
headers?: {
|
|
300
|
-
contentSecurityPolicy?: string;
|
|
301
|
-
permissionsPolicy?: string;
|
|
302
|
-
};
|
|
303
|
-
/** Global rate limit. Defaults to 100 req / 60s */
|
|
304
|
-
rateLimit?: {
|
|
305
|
-
windowMs: number;
|
|
306
|
-
max: number;
|
|
307
|
-
};
|
|
308
|
-
/**
|
|
309
|
-
* Bearer auth check. Set false to disable entirely.
|
|
310
|
-
* Pass an object with bypass paths (merged with built-in defaults: /docs, /health, /openapi.json, etc.).
|
|
311
|
-
* Defaults to enabled with no extra bypass paths.
|
|
312
|
-
*/
|
|
313
|
-
bearerAuth?: boolean | {
|
|
314
|
-
bypass?: string[];
|
|
315
|
-
};
|
|
316
|
-
/**
|
|
317
|
-
* Bot protection: CIDR blocklist and fingerprint-based rate limiting.
|
|
318
|
-
* Runs before IP rate limiting so blocked IPs are rejected immediately.
|
|
319
|
-
*/
|
|
320
|
-
botProtection?: BotProtectionConfig;
|
|
321
|
-
/**
|
|
322
|
-
* Trusted proxy configuration for IP extraction.
|
|
323
|
-
* - `false` (default): use socket-level IP only, ignore X-Forwarded-For entirely.
|
|
324
|
-
* - A number N: trust N proxy hops — take the Nth-from-right IP in the X-Forwarded-For chain.
|
|
325
|
-
*/
|
|
326
|
-
trustProxy?: false | number;
|
|
327
|
-
/**
|
|
328
|
-
* CSRF protection for cookie-based auth. Opt-in.
|
|
329
|
-
* Uses signed double-submit cookie pattern with HMAC-SHA256.
|
|
330
|
-
* Only validates when the auth cookie is present on state-changing requests.
|
|
331
|
-
*/
|
|
332
|
-
csrf?: CsrfConfig;
|
|
333
|
-
/**
|
|
334
|
-
* Unified HMAC signing for cookies, cursors, presigned URLs, request signing,
|
|
335
|
-
* idempotency key hashing, and session binding. All features are opt-in.
|
|
336
|
-
*/
|
|
337
|
-
signing?: SigningConfig;
|
|
338
|
-
/**
|
|
339
|
-
* Global CAPTCHA configuration. When set, use requireCaptcha() middleware on specific routes,
|
|
340
|
-
* or enable adaptive mode to auto-require CAPTCHA after rate limit thresholds.
|
|
341
|
-
*/
|
|
342
|
-
captcha?: CaptchaConfig;
|
|
343
|
-
}
|
|
344
|
-
export interface ModelSchemasConfig {
|
|
345
|
-
/**
|
|
346
|
-
* One or more absolute directory paths or glob patterns containing shared Zod schemas.
|
|
347
|
-
* All matching .ts files are imported before routes so schemas are registered first.
|
|
348
|
-
* Optional when registration is "explicit" — in that case your registerSchema /
|
|
349
|
-
* registerSchemas calls run at the time each schema file is imported by a route.
|
|
350
|
-
* Examples:
|
|
351
|
-
* import.meta.dir + "/schemas"
|
|
352
|
-
* [import.meta.dir + "/schemas", import.meta.dir + "/models"]
|
|
353
|
-
* import.meta.dir + "/models/**\/*.schema.ts"
|
|
354
|
-
*/
|
|
355
|
-
paths?: string | string[];
|
|
356
|
-
/**
|
|
357
|
-
* How schemas found in the files are registered in `components/schemas`.
|
|
358
|
-
* - "auto" (default): exported Zod schemas are registered automatically. The export
|
|
359
|
-
* name is used as the schema name, with a trailing "Schema" suffix stripped
|
|
360
|
-
* (e.g. `LedgerItemSchema` → `"LedgerItem"`). Schemas already registered via
|
|
361
|
-
* `registerSchema` or `registerSchemas` inside the file are never overwritten.
|
|
362
|
-
* - "explicit": files are imported but registration is entirely up to the user —
|
|
363
|
-
* call `registerSchema` or `registerSchemas` inside each file.
|
|
364
|
-
*/
|
|
365
|
-
registration?: "auto" | "explicit";
|
|
366
|
-
}
|
|
367
|
-
export interface JobsConfig {
|
|
368
|
-
/** Enable the job status endpoint. Default: false. */
|
|
369
|
-
statusEndpoint?: boolean;
|
|
370
|
-
/**
|
|
371
|
-
* Auth protection for job endpoints.
|
|
372
|
-
* - `"userAuth"` — requires authenticated user session (cookie/token).
|
|
373
|
-
* - `"none"` — no auth (not recommended for production).
|
|
374
|
-
* - `MiddlewareHandler[]` — custom middleware stack (e.g., `[userAuth, requireRole("admin")]`).
|
|
375
|
-
*
|
|
376
|
-
* Default: `"none"`. You must explicitly configure auth.
|
|
377
|
-
*/
|
|
378
|
-
auth?: "userAuth" | "none" | import("hono").MiddlewareHandler<AppEnv>[];
|
|
379
|
-
/** Required roles for accessing job endpoints. Only works when auth includes userAuth. */
|
|
380
|
-
roles?: string[];
|
|
381
|
-
/** Whitelist of queue names exposed. Default: [] (nothing exposed). */
|
|
382
|
-
allowedQueues?: string[];
|
|
383
|
-
/** When using userAuth, restrict job visibility to the user who created it. Default: false. */
|
|
384
|
-
scopeToUser?: boolean;
|
|
385
|
-
/**
|
|
386
|
-
* Explicitly acknowledge that jobs endpoint is public in production.
|
|
387
|
-
* Set to true only when auth is "none" and you understand the risk.
|
|
388
|
-
* Without this, createApp throws in production when auth is "none".
|
|
389
|
-
*/
|
|
390
|
-
unsafePublic?: boolean;
|
|
391
|
-
}
|
|
392
|
-
export interface TenantConfig {
|
|
393
|
-
[key: string]: unknown;
|
|
394
|
-
}
|
|
395
|
-
export interface TenancyConfig {
|
|
396
|
-
/** How tenant is identified. */
|
|
397
|
-
resolution: "header" | "subdomain" | "path";
|
|
398
|
-
/** Header name when resolution is "header". Default: "x-tenant-id". */
|
|
399
|
-
headerName?: string;
|
|
400
|
-
/** Path segment index when resolution is "path". Default: 0. */
|
|
401
|
-
pathSegment?: number;
|
|
402
|
-
/** Callback to validate/load tenant. Return null to reject. */
|
|
403
|
-
onResolve?: (tenantId: string) => Promise<TenantConfig | null>;
|
|
404
|
-
/** TTL in ms for caching onResolve results (LRU cache). Default: 60_000. Set 0 to disable. */
|
|
405
|
-
cacheTtlMs?: number;
|
|
406
|
-
/** Max entries in tenant resolution cache. Default: 500. */
|
|
407
|
-
cacheMaxSize?: number;
|
|
408
|
-
/** Paths that skip tenant resolution. Uses startsWith matching. Default: ["/health", "/docs", "/openapi.json"]. */
|
|
409
|
-
exemptPaths?: string[];
|
|
410
|
-
/** HTTP status when onResolve returns null. Default: 403. */
|
|
411
|
-
rejectionStatus?: 403 | 404;
|
|
412
|
-
}
|
|
413
|
-
export interface LoggingConfig {
|
|
414
|
-
/** Enable structured request logging. Default: true. When false, no logger is registered at all. */
|
|
415
|
-
enabled?: boolean;
|
|
416
|
-
/** Custom log handler. Default: `console.log(JSON.stringify(entry))`. */
|
|
417
|
-
onLog?: (entry: RequestLogEntry) => void | Promise<void>;
|
|
418
|
-
/** Minimum log level to emit. Entries below this level are dropped. */
|
|
419
|
-
level?: LogLevel;
|
|
420
|
-
/**
|
|
421
|
-
* Paths to exclude from logging. Strings use **prefix matching**.
|
|
422
|
-
* Default: `["/health", "/docs", "/openapi.json"]`.
|
|
423
|
-
*/
|
|
424
|
-
excludePaths?: (string | RegExp)[];
|
|
425
|
-
/** HTTP methods to exclude from logging (e.g. `["OPTIONS"]`). */
|
|
426
|
-
excludeMethods?: string[];
|
|
427
|
-
}
|
|
428
|
-
export interface MetricsConfig {
|
|
429
|
-
/** Enable the /metrics endpoint. Default: false (must be explicitly enabled). */
|
|
430
|
-
enabled?: boolean;
|
|
431
|
-
/**
|
|
432
|
-
* Auth protection for the /metrics endpoint.
|
|
433
|
-
* - `"userAuth"` — requires authenticated user session.
|
|
434
|
-
* - `"none"` — no auth (default — logs a production warning).
|
|
435
|
-
* - `MiddlewareHandler[]` — custom middleware stack.
|
|
436
|
-
*/
|
|
437
|
-
auth?: "userAuth" | "none" | MiddlewareHandler<AppEnv>[];
|
|
438
|
-
/** Paths to exclude from metrics collection. Strings use prefix matching. */
|
|
439
|
-
excludePaths?: (string | RegExp)[];
|
|
440
|
-
/** Custom path normalizer to prevent high-cardinality labels. */
|
|
441
|
-
normalizePath?: (path: string) => string;
|
|
442
|
-
/** BullMQ queue names to report depth gauges for. */
|
|
443
|
-
queues?: string[];
|
|
444
|
-
/**
|
|
445
|
-
* Explicitly acknowledge that metrics endpoint is public in production.
|
|
446
|
-
* Set to true only when auth is "none" and you understand the risk.
|
|
447
|
-
* Without this, createApp throws in production when auth is "none".
|
|
448
|
-
*/
|
|
449
|
-
unsafePublic?: boolean;
|
|
450
|
-
}
|
|
451
|
-
export interface ValidationConfig {
|
|
452
|
-
/** Custom formatter for Zod validation errors. Receives issues + requestId, returns the JSON body. */
|
|
453
|
-
formatError?: ValidationErrorFormatter;
|
|
454
|
-
}
|
|
455
|
-
export interface VersioningConfig {
|
|
456
|
-
/**
|
|
457
|
-
* Version identifiers in ascending order, e.g. `["v1", "v2"]`.
|
|
458
|
-
* Each version needs a matching subdirectory under `routesDir` (e.g. `routes/v1/`).
|
|
459
|
-
*/
|
|
460
|
-
versions: string[];
|
|
461
|
-
/**
|
|
462
|
-
* Subdirectory name for routes shared across all versions. Shared route schemas
|
|
463
|
-
* receive unprefixed names since they are version-agnostic. Default: `"shared"`.
|
|
464
|
-
* Set `false` to disable shared route discovery.
|
|
465
|
-
*/
|
|
466
|
-
sharedDir?: string | false;
|
|
467
|
-
/**
|
|
468
|
-
* Which version `/docs` and `/openapi.json` redirect to.
|
|
469
|
-
* Defaults to the last version in the array (i.e. the latest).
|
|
470
|
-
*/
|
|
471
|
-
defaultVersion?: string;
|
|
472
|
-
}
|
|
473
|
-
export interface PresignedUrlConfig {
|
|
474
|
-
expirySeconds?: number;
|
|
475
|
-
path?: string;
|
|
476
|
-
}
|
|
477
|
-
export interface UploadConfig {
|
|
478
|
-
storage: import("./lib/storageAdapter").StorageAdapter;
|
|
479
|
-
maxFileSize?: number;
|
|
480
|
-
maxFiles?: number;
|
|
481
|
-
allowedMimeTypes?: string[];
|
|
482
|
-
keyPrefix?: string;
|
|
483
|
-
generateKey?: (file: File, ctx: {
|
|
484
|
-
userId?: string;
|
|
485
|
-
tenantId?: string;
|
|
486
|
-
}) => string;
|
|
487
|
-
tenantScopedKeys?: boolean;
|
|
488
|
-
presignedUrls?: boolean | PresignedUrlConfig;
|
|
489
|
-
/**
|
|
490
|
-
* Authorization callback for upload read/delete operations.
|
|
491
|
-
* Called when registry ownership check fails or key is not in registry.
|
|
492
|
-
*/
|
|
493
|
-
authorization?: {
|
|
494
|
-
authorize?: (input: {
|
|
495
|
-
action: "read" | "delete";
|
|
496
|
-
key: string;
|
|
497
|
-
userId?: string;
|
|
498
|
-
tenantId?: string;
|
|
499
|
-
}) => boolean | Promise<boolean>;
|
|
500
|
-
};
|
|
501
|
-
/**
|
|
502
|
-
* Allow operations on keys not in the upload registry.
|
|
503
|
-
* When false (default), operations on unknown keys return 404.
|
|
504
|
-
* When true, requires an authorize callback — denies if absent.
|
|
505
|
-
*/
|
|
506
|
-
allowExternalKeys?: boolean;
|
|
507
|
-
}
|
|
508
|
-
export interface CreateAppConfig {
|
|
509
|
-
/** Absolute path to the service's routes directory (use import.meta.dir + "/routes") */
|
|
510
|
-
routesDir: string;
|
|
511
|
-
/**
|
|
512
|
-
* Shared Zod schema sources. Files are imported before route discovery so schemas
|
|
513
|
-
* are registered before any route references them.
|
|
514
|
-
* Accepts a directory path, an array of paths/globs, or a full ModelSchemasConfig object.
|
|
515
|
-
* Shorthand string/array defaults to registration: "auto".
|
|
516
|
-
*/
|
|
517
|
-
modelSchemas?: string | string[] | ModelSchemasConfig;
|
|
518
|
-
/** App name and version for the root endpoint and OpenAPI docs */
|
|
519
|
-
app?: AppMeta;
|
|
520
|
-
/** Auth, roles, and OAuth configuration */
|
|
521
|
-
auth?: AuthConfig;
|
|
522
|
-
/** Security: CORS, rate limiting, bearer auth */
|
|
523
|
-
security?: SecurityConfig;
|
|
524
|
-
/** Extra middleware injected after identify, before route matching */
|
|
525
|
-
middleware?: MiddlewareHandler<AppEnv>[];
|
|
526
|
-
/** Database connection and store routing configuration */
|
|
527
|
-
db?: DbConfig;
|
|
528
|
-
/** Job status endpoint configuration. Requires BullMQ + Redis. */
|
|
529
|
-
jobs?: JobsConfig;
|
|
530
|
-
/** Multi-tenancy configuration. When set, tenant middleware resolves tenant on each request. */
|
|
531
|
-
tenancy?: TenancyConfig;
|
|
532
|
-
/**
|
|
533
|
-
* Groups feature configuration. When set, the groups lib is available.
|
|
534
|
-
* Set managementRoutes to mount built-in CRUD routes for groups and memberships.
|
|
535
|
-
*/
|
|
536
|
-
groups?: import("./routes/groups").GroupsConfig;
|
|
537
|
-
/** Structured request logging configuration. Replaces Hono's built-in text logger. */
|
|
538
|
-
logging?: LoggingConfig;
|
|
539
|
-
/** Prometheus-compatible /metrics endpoint. Opt-in. */
|
|
540
|
-
metrics?: MetricsConfig;
|
|
541
|
-
/** Zod validation error formatting configuration. */
|
|
542
|
-
validation?: ValidationConfig;
|
|
543
|
-
/** File upload configuration. When set, registers storage adapter and upload settings. */
|
|
544
|
-
upload?: UploadConfig;
|
|
545
|
-
/**
|
|
546
|
-
* API versioning configuration. When set, routes are discovered per-version from
|
|
547
|
-
* subdirectories of `routesDir` (e.g. `routes/v1/`, `routes/v2/`). Each version
|
|
548
|
-
* gets its own OpenAPI spec at `/{version}/openapi.json` and Scalar docs at
|
|
549
|
-
* `/{version}/docs`. Root `/docs` becomes a version selector.
|
|
550
|
-
*/
|
|
551
|
-
versioning?: VersioningConfig;
|
|
552
|
-
/**
|
|
553
|
-
* Security event streaming (SIEM integration). When set, auth and security events
|
|
554
|
-
* are emitted to the provided onEvent callback. Non-blocking — errors are swallowed.
|
|
555
|
-
* Use include/exclude to filter event types.
|
|
556
|
-
*/
|
|
557
|
-
securityEvents?: import("./lib/securityEvents").SecurityEventConfig;
|
|
558
|
-
}
|
|
559
|
-
export declare const createApp: (config: CreateAppConfig) => Promise<OpenAPIHono<AppEnv>>;
|