@lastshotlabs/bunshot 0.0.25 → 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/packages/bunshot-auth/src/lib/breachedPassword.d.ts +19 -0
- package/dist/packages/bunshot-auth/src/lib/breachedPassword.js +61 -0
- 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/packages/bunshot-auth/src/lib/logger.d.ts +3 -0
- package/dist/packages/bunshot-auth/src/lib/logger.js +13 -0
- package/dist/packages/bunshot-auth/src/lib/m2m.d.ts +30 -0
- package/dist/packages/bunshot-auth/src/lib/m2m.js +44 -0
- 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/packages/bunshot-auth/src/lib/scim.d.ts +44 -0
- package/dist/packages/bunshot-auth/src/lib/scim.js +56 -0
- 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/packages/bunshot-auth/src/lib/suspension.d.ts +14 -0
- package/dist/packages/bunshot-auth/src/lib/suspension.js +20 -0
- 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 -7
- 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/packages/bunshot-auth/src/middleware/requireScope.d.ts +10 -0
- package/dist/packages/bunshot-auth/src/middleware/requireScope.js +25 -0
- package/dist/packages/bunshot-auth/src/middleware/requireStepUp.d.ts +18 -0
- package/dist/packages/bunshot-auth/src/middleware/requireStepUp.js +30 -0
- 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 +19 -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/packages/bunshot-auth/src/models/M2MClient.d.ts +18 -0
- package/dist/packages/bunshot-auth/src/models/M2MClient.js +18 -0
- 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/packages/bunshot-core/src/captcha.d.ts +16 -0
- 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/packages/bunshot-core/src/errors.d.ts +13 -0
- package/dist/packages/bunshot-core/src/errors.js +22 -0
- 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 +23 -8
- 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/src/framework/lib/captcha.js +40 -0
- 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 +14 -9
- 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/src/framework/middleware/captcha.d.ts +9 -0
- package/dist/src/framework/middleware/captcha.js +37 -0
- package/dist/{middleware → src/framework/middleware}/errorHandler.d.ts +1 -1
- package/dist/src/framework/middleware/errorHandler.js +16 -0
- 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 -19
- 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 -11
- 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/src/framework/routes/jobs.js +315 -0
- package/dist/src/framework/routes/metrics.d.ts +10 -0
- package/dist/src/framework/routes/metrics.js +57 -0
- package/dist/src/framework/routes/uploads.d.ts +14 -0
- 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/src/lib/authConfig.js +179 -0
- package/dist/{lib → src/lib}/context.d.ts +6 -7
- 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 +40 -10
- package/dist/src/testing.d.ts +34 -0
- package/dist/src/testing.js +93 -0
- package/package.json +62 -25
- package/dist/adapters/memoryAuth.d.ts +0 -46
- package/dist/adapters/memoryAuth.js +0 -634
- 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 -307
- package/dist/adapters/sqliteAuth.d.ts +0 -49
- package/dist/adapters/sqliteAuth.js +0 -707
- package/dist/app.d.ts +0 -456
- package/dist/app.js +0 -548
- 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 -98
- package/dist/index.js +0 -77
- package/dist/lib/HttpError.d.ts +0 -9
- package/dist/lib/HttpError.js +0 -14
- package/dist/lib/appConfig.d.ts +0 -162
- package/dist/lib/appConfig.js +0 -83
- package/dist/lib/auditLog.d.ts +0 -52
- package/dist/lib/auditLog.js +0 -201
- package/dist/lib/authAdapter.d.ts +0 -176
- package/dist/lib/authAdapter.js +0 -7
- package/dist/lib/authRateLimit.d.ts +0 -13
- package/dist/lib/authRateLimit.js +0 -81
- package/dist/lib/clientIp.d.ts +0 -14
- 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 -13
- package/dist/lib/emailVerification.js +0 -86
- package/dist/lib/fingerprint.js +0 -36
- package/dist/lib/idempotency.js +0 -182
- package/dist/lib/jwt.d.ts +0 -2
- package/dist/lib/jwt.js +0 -24
- package/dist/lib/logger.d.ts +0 -1
- package/dist/lib/logger.js +0 -7
- package/dist/lib/metrics.d.ts +0 -14
- package/dist/lib/mfaChallenge.d.ts +0 -42
- package/dist/lib/mfaChallenge.js +0 -293
- 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 -90
- 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 -91
- package/dist/lib/roles.d.ts +0 -7
- package/dist/lib/roles.js +0 -49
- package/dist/lib/session.d.ts +0 -39
- package/dist/lib/session.js +0 -535
- package/dist/lib/tenant.d.ts +0 -15
- package/dist/lib/tenant.js +0 -65
- package/dist/lib/upload.js +0 -87
- package/dist/lib/ws.d.ts +0 -22
- package/dist/lib/ws.js +0 -89
- 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/csrf.js +0 -125
- package/dist/middleware/errorHandler.js +0 -13
- package/dist/middleware/identify.d.ts +0 -3
- package/dist/middleware/identify.js +0 -95
- 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/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 -48
- 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 -11
- package/dist/routes/auth.js +0 -605
- 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/jobs.js +0 -272
- package/dist/routes/metrics.d.ts +0 -7
- package/dist/routes/metrics.js +0 -52
- package/dist/routes/mfa.d.ts +0 -5
- package/dist/routes/mfa.js +0 -620
- package/dist/routes/oauth.d.ts +0 -2
- package/dist/routes/oauth.js +0 -514
- package/dist/routes/uploads.d.ts +0 -2
- package/dist/routes/uploads.js +0 -135
- 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 -27
- package/dist/services/auth.js +0 -159
- package/dist/ws/index.d.ts +0 -10
- package/dist/ws/index.js +0 -38
- 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 -779
- package/docs/sections/auth-flow/overview.md +0 -10
- package/docs/sections/auth-security-examples/full.md +0 -365
- 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 -127
- 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/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 -199
- package/docs/sections/versioning/full.md +0 -85
- package/docs/sections/webhook-auth/full.md +0 -100
- package/docs/sections/websocket/full.md +0 -184
- 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-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/index.d.ts
DELETED
|
@@ -1,98 +0,0 @@
|
|
|
1
|
-
export { createApp } from "./app";
|
|
2
|
-
export { createServer } from "./server";
|
|
3
|
-
export type { CreateAppConfig, ModelSchemasConfig, DbConfig, AppMeta, AuthConfig, AuthRateLimitConfig, AccountDeletionConfig, OAuthConfig, SecurityConfig, CsrfConfig, BotProtectionConfig, PrimaryField, EmailVerificationConfig, PasswordResetConfig, RefreshTokenConfig, MfaConfig, MfaEmailOtpConfig, MfaWebAuthnConfig, JobsConfig, TenancyConfig, TenantConfig, LoggingConfig, MetricsConfig, ValidationConfig, VersioningConfig, SigningConfig } from "./app";
|
|
4
|
-
export type { PasswordPolicyConfig } from "./lib/appConfig";
|
|
5
|
-
export type { CreateServerConfig, WsConfig } from "./server";
|
|
6
|
-
export { appConnection, authConnection, mongoose, connectMongo, connectAuthMongo, connectAppMongo, disconnectMongo } from "./lib/mongo";
|
|
7
|
-
export { connectRedis, disconnectRedis, getRedis } from "./lib/redis";
|
|
8
|
-
export { getAppRoles } from "./lib/appConfig";
|
|
9
|
-
export { HttpError, ValidationError } from "./lib/HttpError";
|
|
10
|
-
export { COOKIE_TOKEN, HEADER_USER_TOKEN, COOKIE_REFRESH_TOKEN, HEADER_REFRESH_TOKEN, COOKIE_CSRF_TOKEN, HEADER_CSRF_TOKEN, HEADER_REQUEST_ID, HEADER_IDEMPOTENCY_KEY, HEADER_SIGNATURE, HEADER_TIMESTAMP } from "./lib/constants";
|
|
11
|
-
export { createRouter } from "./lib/context";
|
|
12
|
-
export { createRoute, withSecurity, registerSchema, registerSchemas, setVersionPrefix, clearVersionPrefix } from "./lib/createRoute";
|
|
13
|
-
export { stripUnreferencedSchemas } from "./lib/stripUnreferencedSchemas";
|
|
14
|
-
export { zodToMongoose } from "./lib/zodToMongoose";
|
|
15
|
-
export type { ZodToMongooseConfig, ZodToMongooseRefConfig } from "./lib/zodToMongoose";
|
|
16
|
-
export { createDtoMapper } from "./lib/createDtoMapper";
|
|
17
|
-
export type { DtoMapperConfig } from "./lib/createDtoMapper";
|
|
18
|
-
export type { AppEnv, AppVariables, ValidationErrorFormatter, DefaultValidationErrorBody, ValidationErrorDetail } from "./lib/context";
|
|
19
|
-
export { defaultValidationErrorFormatter } from "./lib/context";
|
|
20
|
-
export { signToken, verifyToken } from "./lib/jwt";
|
|
21
|
-
export { log } from "./lib/logger";
|
|
22
|
-
export { createResetToken, consumeResetToken, setPasswordResetStore } from "./lib/resetPassword";
|
|
23
|
-
export { createDeletionCancelToken, consumeDeletionCancelToken, setDeletionCancelTokenStore } from "./lib/deletionCancelToken";
|
|
24
|
-
export { timingSafeEqual, sha256 } from "./lib/crypto";
|
|
25
|
-
export { hmacSign, hmacVerify, signCookieValue, verifyCookieValue, signCursor, verifyCursor, createPresignedUrl, verifyPresignedUrl } from "./lib/signing";
|
|
26
|
-
export { idempotent, setIdempotencyStore, clearIdempotencyMemoryStore } from "./lib/idempotency";
|
|
27
|
-
export type { IdempotencyOptions } from "./lib/idempotency";
|
|
28
|
-
export { getClientIp, setTrustProxy } from "./lib/clientIp";
|
|
29
|
-
export { storeOAuthCode, consumeOAuthCode, setOAuthCodeStore } from "./lib/oauthCode";
|
|
30
|
-
export type { OAuthCodePayload } from "./lib/oauthCode";
|
|
31
|
-
export { createSession, getSession, deleteSession, getUserSessions, getActiveSessionCount, evictOldestSession, updateSessionLastActive, setSessionStore, deleteUserSessions, setRefreshToken, getSessionByRefreshToken, rotateRefreshToken, getSessionFingerprint, setSessionFingerprint } from "./lib/session";
|
|
32
|
-
export type { SessionMetadata, SessionInfo, RefreshResult } from "./lib/session";
|
|
33
|
-
export { createVerificationToken, getVerificationToken, deleteVerificationToken } from "./lib/emailVerification";
|
|
34
|
-
export { createMfaChallenge, consumeMfaChallenge, replaceMfaChallengeOtp, setMfaChallengeStore, createWebAuthnRegistrationChallenge, consumeWebAuthnRegistrationChallenge, clearMemoryMfaChallenges } from "./lib/mfaChallenge";
|
|
35
|
-
export type { MfaChallengeData, MfaChallengeOptions, MfaChallengePurpose } from "./lib/mfaChallenge";
|
|
36
|
-
export { bustAuthLimit, trackAttempt, isLimited, clearMemoryRateLimitStore } from "./lib/authRateLimit";
|
|
37
|
-
export type { LimitOpts } from "./lib/authRateLimit";
|
|
38
|
-
export { validate } from "./lib/validate";
|
|
39
|
-
export { bearerAuth } from "./middleware/bearerAuth";
|
|
40
|
-
export { botProtection } from "./middleware/botProtection";
|
|
41
|
-
export type { BotProtectionOptions } from "./middleware/botProtection";
|
|
42
|
-
export { identify } from "./middleware/identify";
|
|
43
|
-
export { rateLimit } from "./middleware/rateLimit";
|
|
44
|
-
export type { RateLimitOptions } from "./middleware/rateLimit";
|
|
45
|
-
export { userAuth } from "./middleware/userAuth";
|
|
46
|
-
export { requireRole } from "./middleware/requireRole";
|
|
47
|
-
export { requireVerifiedEmail } from "./middleware/requireVerifiedEmail";
|
|
48
|
-
export { requireMfaSetup } from "./middleware/requireMfaSetup";
|
|
49
|
-
export { csrfProtection, refreshCsrfToken, clearCsrfToken } from "./middleware/csrf";
|
|
50
|
-
export type { CsrfMiddlewareOptions } from "./middleware/csrf";
|
|
51
|
-
export { cacheResponse, bustCache, bustCachePattern, setCacheStore, getCacheModel } from "./middleware/cacheResponse";
|
|
52
|
-
export { webhookAuth } from "./middleware/webhookAuth";
|
|
53
|
-
export type { WebhookAuthOptions, WebhookTimestampOptions } from "./middleware/webhookAuth";
|
|
54
|
-
export { requireSignedRequest } from "./middleware/requestSigning";
|
|
55
|
-
export type { RequestSigningOptions } from "./middleware/requestSigning";
|
|
56
|
-
export { auditLog } from "./middleware/auditLog";
|
|
57
|
-
export type { AuditLogMiddlewareOptions } from "./middleware/auditLog";
|
|
58
|
-
export { requestId } from "./middleware/requestId";
|
|
59
|
-
export { requestLogger } from "./middleware/requestLogger";
|
|
60
|
-
export type { RequestLogEntry, RequestLoggerOptions, LogLevel } from "./middleware/requestLogger";
|
|
61
|
-
export { metricsCollector } from "./middleware/metrics";
|
|
62
|
-
export type { MetricsMiddlewareOptions } from "./middleware/metrics";
|
|
63
|
-
export { buildFingerprint } from "./lib/fingerprint";
|
|
64
|
-
export { logAuditEntry, getAuditLogs, clearAuditLogMemoryStore } from "./lib/auditLog";
|
|
65
|
-
export { resetMetrics, incrementCounter, observeHistogram, registerGaugeCallback, serializeMetrics, closeMetricsQueues } from "./lib/metrics";
|
|
66
|
-
export type { AuditLogEntry, AuditLogOptions, AuditLogQuery } from "./lib/auditLog";
|
|
67
|
-
export { sqliteAuthAdapter, setSqliteDb, startSqliteCleanup } from "./adapters/sqliteAuth";
|
|
68
|
-
export { memoryAuthAdapter, clearMemoryStore } from "./adapters/memoryAuth";
|
|
69
|
-
export { setUserRoles, addUserRole, removeUserRole, getTenantRoles, setTenantRoles, addTenantRole, removeTenantRole } from "./lib/roles";
|
|
70
|
-
export type { AuthAdapter, OAuthProfile, WebAuthnCredential } from "./lib/authAdapter";
|
|
71
|
-
export type { OAuthProviderConfig } from "./lib/oauth";
|
|
72
|
-
export { websocket, createWsUpgradeHandler } from "./ws/index";
|
|
73
|
-
export type { SocketData } from "./ws/index";
|
|
74
|
-
export { publish, subscribe, unsubscribe, getSubscriptions, handleRoomActions, getRooms, getRoomSubscribers, setPresenceEnabled } from "./lib/ws";
|
|
75
|
-
export { registerSocket, deregisterSocket, handlePong, startHeartbeat, stopHeartbeat, clearHeartbeatState } from "./lib/wsHeartbeat";
|
|
76
|
-
export type { HeartbeatConfig } from "./lib/wsHeartbeat";
|
|
77
|
-
export { trackSocket, untrackSocket, addPresence, removePresence, cleanupPresence, getRoomPresence, getUserPresence, clearPresenceStore } from "./lib/wsPresence";
|
|
78
|
-
export { persistMessage, getMessageHistory, configureRoom, setWsMessageStore, setWsMessageDefaults, clearWsMessageMemoryStore } from "./lib/wsMessages";
|
|
79
|
-
export type { StoredMessage, WsMessageStore, WsMessageDefaults, RoomPersistenceConfig } from "./lib/wsMessages";
|
|
80
|
-
export { createTenant, deleteTenant, getTenant, listTenants } from "./lib/tenant";
|
|
81
|
-
export type { TenantInfo, CreateTenantOptions } from "./lib/tenant";
|
|
82
|
-
export { invalidateTenantCache } from "./middleware/tenant";
|
|
83
|
-
export { createGroup, deleteGroup, getGroup, listGroups, updateGroup, addGroupMember, updateGroupMembership, removeGroupMember, getGroupMembers, getUserGroups, getEffectiveRoles, } from "./lib/groups";
|
|
84
|
-
export type { GroupRecord, GroupMembershipRecord, PaginationOpts, PaginatedResult } from "./lib/groups";
|
|
85
|
-
export type { GroupsConfig, GroupsManagementConfig } from "./routes/groups";
|
|
86
|
-
export { offsetParams, parseOffsetParams, paginatedResponse, cursorParams, parseCursorParams, cursorResponse, maybeSignCursor, } from "./lib/pagination";
|
|
87
|
-
export type { OffsetParamDefaults, ParsedOffsetParams, CursorParamDefaults, ParsedCursorParams, CursorResult, } from "./lib/pagination";
|
|
88
|
-
export { handleUpload } from "./middleware/upload";
|
|
89
|
-
export type { UploadMiddlewareOptions } from "./middleware/upload";
|
|
90
|
-
export { parseUpload, setStorageAdapter, getStorageAdapter, setUploadConfig, getUploadConfig } from "./lib/upload";
|
|
91
|
-
export type { UploadOpts } from "./lib/upload";
|
|
92
|
-
export type { StorageAdapter, UploadResult } from "./lib/storageAdapter";
|
|
93
|
-
export type { UploadConfig, PresignedUrlConfig } from "./app";
|
|
94
|
-
export { memoryStorage, clearMemoryUploadStore } from "./adapters/memoryStorage";
|
|
95
|
-
export { localStorage } from "./adapters/localStorage";
|
|
96
|
-
export type { LocalStorageConfig } from "./adapters/localStorage";
|
|
97
|
-
export { s3Storage } from "./adapters/s3Storage";
|
|
98
|
-
export type { S3StorageConfig } from "./adapters/s3Storage";
|
package/dist/index.js
DELETED
|
@@ -1,77 +0,0 @@
|
|
|
1
|
-
// App factory
|
|
2
|
-
export { createApp } from "./app";
|
|
3
|
-
export { createServer } from "./server";
|
|
4
|
-
// Database
|
|
5
|
-
export { appConnection, authConnection, mongoose, connectMongo, connectAuthMongo, connectAppMongo, disconnectMongo } from "./lib/mongo";
|
|
6
|
-
export { connectRedis, disconnectRedis, getRedis } from "./lib/redis";
|
|
7
|
-
// Lib utilities
|
|
8
|
-
export { getAppRoles } from "./lib/appConfig";
|
|
9
|
-
export { HttpError, ValidationError } from "./lib/HttpError";
|
|
10
|
-
export { COOKIE_TOKEN, HEADER_USER_TOKEN, COOKIE_REFRESH_TOKEN, HEADER_REFRESH_TOKEN, COOKIE_CSRF_TOKEN, HEADER_CSRF_TOKEN, HEADER_REQUEST_ID, HEADER_IDEMPOTENCY_KEY, HEADER_SIGNATURE, HEADER_TIMESTAMP } from "./lib/constants";
|
|
11
|
-
export { createRouter } from "./lib/context";
|
|
12
|
-
export { createRoute, withSecurity, registerSchema, registerSchemas, setVersionPrefix, clearVersionPrefix } from "./lib/createRoute";
|
|
13
|
-
export { stripUnreferencedSchemas } from "./lib/stripUnreferencedSchemas";
|
|
14
|
-
export { zodToMongoose } from "./lib/zodToMongoose";
|
|
15
|
-
export { createDtoMapper } from "./lib/createDtoMapper";
|
|
16
|
-
export { defaultValidationErrorFormatter } from "./lib/context";
|
|
17
|
-
export { signToken, verifyToken } from "./lib/jwt";
|
|
18
|
-
export { log } from "./lib/logger";
|
|
19
|
-
export { createResetToken, consumeResetToken, setPasswordResetStore } from "./lib/resetPassword";
|
|
20
|
-
export { createDeletionCancelToken, consumeDeletionCancelToken, setDeletionCancelTokenStore } from "./lib/deletionCancelToken";
|
|
21
|
-
export { timingSafeEqual, sha256 } from "./lib/crypto";
|
|
22
|
-
export { hmacSign, hmacVerify, signCookieValue, verifyCookieValue, signCursor, verifyCursor, createPresignedUrl, verifyPresignedUrl } from "./lib/signing";
|
|
23
|
-
export { idempotent, setIdempotencyStore, clearIdempotencyMemoryStore } from "./lib/idempotency";
|
|
24
|
-
export { getClientIp, setTrustProxy } from "./lib/clientIp";
|
|
25
|
-
export { storeOAuthCode, consumeOAuthCode, setOAuthCodeStore } from "./lib/oauthCode";
|
|
26
|
-
export { createSession, getSession, deleteSession, getUserSessions, getActiveSessionCount, evictOldestSession, updateSessionLastActive, setSessionStore, deleteUserSessions, setRefreshToken, getSessionByRefreshToken, rotateRefreshToken, getSessionFingerprint, setSessionFingerprint } from "./lib/session";
|
|
27
|
-
export { createVerificationToken, getVerificationToken, deleteVerificationToken } from "./lib/emailVerification";
|
|
28
|
-
export { createMfaChallenge, consumeMfaChallenge, replaceMfaChallengeOtp, setMfaChallengeStore, createWebAuthnRegistrationChallenge, consumeWebAuthnRegistrationChallenge, clearMemoryMfaChallenges } from "./lib/mfaChallenge";
|
|
29
|
-
export { bustAuthLimit, trackAttempt, isLimited, clearMemoryRateLimitStore } from "./lib/authRateLimit";
|
|
30
|
-
export { validate } from "./lib/validate";
|
|
31
|
-
// Middleware
|
|
32
|
-
export { bearerAuth } from "./middleware/bearerAuth";
|
|
33
|
-
export { botProtection } from "./middleware/botProtection";
|
|
34
|
-
export { identify } from "./middleware/identify";
|
|
35
|
-
export { rateLimit } from "./middleware/rateLimit";
|
|
36
|
-
export { userAuth } from "./middleware/userAuth";
|
|
37
|
-
export { requireRole } from "./middleware/requireRole";
|
|
38
|
-
export { requireVerifiedEmail } from "./middleware/requireVerifiedEmail";
|
|
39
|
-
export { requireMfaSetup } from "./middleware/requireMfaSetup";
|
|
40
|
-
export { csrfProtection, refreshCsrfToken, clearCsrfToken } from "./middleware/csrf";
|
|
41
|
-
export { cacheResponse, bustCache, bustCachePattern, setCacheStore, getCacheModel } from "./middleware/cacheResponse";
|
|
42
|
-
export { webhookAuth } from "./middleware/webhookAuth";
|
|
43
|
-
export { requireSignedRequest } from "./middleware/requestSigning";
|
|
44
|
-
export { auditLog } from "./middleware/auditLog";
|
|
45
|
-
export { requestId } from "./middleware/requestId";
|
|
46
|
-
export { requestLogger } from "./middleware/requestLogger";
|
|
47
|
-
export { metricsCollector } from "./middleware/metrics";
|
|
48
|
-
// Lib utilities (bot protection)
|
|
49
|
-
export { buildFingerprint } from "./lib/fingerprint";
|
|
50
|
-
export { logAuditEntry, getAuditLogs, clearAuditLogMemoryStore } from "./lib/auditLog";
|
|
51
|
-
export { resetMetrics, incrementCounter, observeHistogram, registerGaugeCallback, serializeMetrics, closeMetricsQueues } from "./lib/metrics";
|
|
52
|
-
// Models
|
|
53
|
-
export { sqliteAuthAdapter, setSqliteDb, startSqliteCleanup } from "./adapters/sqliteAuth";
|
|
54
|
-
export { memoryAuthAdapter, clearMemoryStore } from "./adapters/memoryAuth";
|
|
55
|
-
export { setUserRoles, addUserRole, removeUserRole, getTenantRoles, setTenantRoles, addTenantRole, removeTenantRole } from "./lib/roles";
|
|
56
|
-
// WebSocket
|
|
57
|
-
export { websocket, createWsUpgradeHandler } from "./ws/index";
|
|
58
|
-
export { publish, subscribe, unsubscribe, getSubscriptions, handleRoomActions, getRooms, getRoomSubscribers, setPresenceEnabled } from "./lib/ws";
|
|
59
|
-
// WebSocket — Heartbeat
|
|
60
|
-
export { registerSocket, deregisterSocket, handlePong, startHeartbeat, stopHeartbeat, clearHeartbeatState } from "./lib/wsHeartbeat";
|
|
61
|
-
// WebSocket — Presence
|
|
62
|
-
export { trackSocket, untrackSocket, addPresence, removePresence, cleanupPresence, getRoomPresence, getUserPresence, clearPresenceStore } from "./lib/wsPresence";
|
|
63
|
-
// WebSocket — Message Persistence
|
|
64
|
-
export { persistMessage, getMessageHistory, configureRoom, setWsMessageStore, setWsMessageDefaults, clearWsMessageMemoryStore } from "./lib/wsMessages";
|
|
65
|
-
// Tenancy
|
|
66
|
-
export { createTenant, deleteTenant, getTenant, listTenants } from "./lib/tenant";
|
|
67
|
-
export { invalidateTenantCache } from "./middleware/tenant";
|
|
68
|
-
// Groups
|
|
69
|
-
export { createGroup, deleteGroup, getGroup, listGroups, updateGroup, addGroupMember, updateGroupMembership, removeGroupMember, getGroupMembers, getUserGroups, getEffectiveRoles, } from "./lib/groups";
|
|
70
|
-
// Pagination helpers
|
|
71
|
-
export { offsetParams, parseOffsetParams, paginatedResponse, cursorParams, parseCursorParams, cursorResponse, maybeSignCursor, } from "./lib/pagination";
|
|
72
|
-
// Upload
|
|
73
|
-
export { handleUpload } from "./middleware/upload";
|
|
74
|
-
export { parseUpload, setStorageAdapter, getStorageAdapter, setUploadConfig, getUploadConfig } from "./lib/upload";
|
|
75
|
-
export { memoryStorage, clearMemoryUploadStore } from "./adapters/memoryStorage";
|
|
76
|
-
export { localStorage } from "./adapters/localStorage";
|
|
77
|
-
export { s3Storage } from "./adapters/s3Storage";
|
package/dist/lib/HttpError.d.ts
DELETED
|
@@ -1,9 +0,0 @@
|
|
|
1
|
-
export declare class HttpError extends Error {
|
|
2
|
-
status: number;
|
|
3
|
-
constructor(status: number, message: string);
|
|
4
|
-
}
|
|
5
|
-
import type { ZodIssue } from "zod";
|
|
6
|
-
export declare class ValidationError extends HttpError {
|
|
7
|
-
readonly issues: ZodIssue[];
|
|
8
|
-
constructor(issues: ZodIssue[]);
|
|
9
|
-
}
|
package/dist/lib/HttpError.js
DELETED
|
@@ -1,14 +0,0 @@
|
|
|
1
|
-
export class HttpError extends Error {
|
|
2
|
-
status;
|
|
3
|
-
constructor(status, message) {
|
|
4
|
-
super(message);
|
|
5
|
-
this.status = status;
|
|
6
|
-
}
|
|
7
|
-
}
|
|
8
|
-
export class ValidationError extends HttpError {
|
|
9
|
-
issues;
|
|
10
|
-
constructor(issues) {
|
|
11
|
-
super(400, "Validation failed");
|
|
12
|
-
this.issues = issues;
|
|
13
|
-
}
|
|
14
|
-
}
|
package/dist/lib/appConfig.d.ts
DELETED
|
@@ -1,162 +0,0 @@
|
|
|
1
|
-
export type PrimaryField = "email" | "username" | "phone";
|
|
2
|
-
export interface EmailVerificationConfig {
|
|
3
|
-
/** Block login until email is verified. Defaults to false (soft gate — emailVerified returned in login response). */
|
|
4
|
-
required?: boolean;
|
|
5
|
-
/** Token time-to-live in seconds. Defaults to 86 400 (24 hours). */
|
|
6
|
-
tokenExpiry?: number;
|
|
7
|
-
/** Called after registration with the identifier and verification token. Use to send the email. */
|
|
8
|
-
onSend: (email: string, token: string) => Promise<void>;
|
|
9
|
-
}
|
|
10
|
-
export interface PasswordResetConfig {
|
|
11
|
-
/** Token time-to-live in seconds. Defaults to 3 600 (1 hour). */
|
|
12
|
-
tokenExpiry?: number;
|
|
13
|
-
/** Called with the user's email and the reset token. Use to send the reset email. */
|
|
14
|
-
onSend: (email: string, token: string) => Promise<void>;
|
|
15
|
-
}
|
|
16
|
-
export interface PasswordPolicyConfig {
|
|
17
|
-
/** Minimum password length. Defaults to 8. */
|
|
18
|
-
minLength?: number;
|
|
19
|
-
/** Require at least one letter (a–z or A–Z). Defaults to true. */
|
|
20
|
-
requireLetter?: boolean;
|
|
21
|
-
/** Require at least one digit (0–9). Defaults to true. */
|
|
22
|
-
requireDigit?: boolean;
|
|
23
|
-
/** Require at least one special character. Defaults to false. */
|
|
24
|
-
requireSpecial?: boolean;
|
|
25
|
-
}
|
|
26
|
-
export declare const setAppName: (name: string) => void;
|
|
27
|
-
export declare const getAppName: () => string;
|
|
28
|
-
export declare const setAppRoles: (roles: string[]) => void;
|
|
29
|
-
export declare const getAppRoles: () => string[];
|
|
30
|
-
export declare const setDefaultRole: (role: string | null) => void;
|
|
31
|
-
export declare const getDefaultRole: () => string | null;
|
|
32
|
-
export declare const setPrimaryField: (field: PrimaryField) => void;
|
|
33
|
-
export declare const getPrimaryField: () => PrimaryField;
|
|
34
|
-
export declare const setEmailVerificationConfig: (config: EmailVerificationConfig | null) => void;
|
|
35
|
-
export declare const getEmailVerificationConfig: () => EmailVerificationConfig | null;
|
|
36
|
-
export declare const getTokenExpiry: () => number;
|
|
37
|
-
export declare const setPasswordResetConfig: (config: PasswordResetConfig | null) => void;
|
|
38
|
-
export declare const getPasswordResetConfig: () => PasswordResetConfig | null;
|
|
39
|
-
export declare const setPasswordPolicy: (config: PasswordPolicyConfig) => void;
|
|
40
|
-
export declare const getPasswordPolicy: () => PasswordPolicyConfig;
|
|
41
|
-
export declare const getResetTokenExpiry: () => number;
|
|
42
|
-
export declare const setMaxSessions: (n: number) => void;
|
|
43
|
-
export declare const getMaxSessions: () => number;
|
|
44
|
-
export declare const setPersistSessionMetadata: (v: boolean) => void;
|
|
45
|
-
export declare const getPersistSessionMetadata: () => boolean;
|
|
46
|
-
export declare const setIncludeInactiveSessions: (v: boolean) => void;
|
|
47
|
-
export declare const getIncludeInactiveSessions: () => boolean;
|
|
48
|
-
export declare const setTrackLastActive: (v: boolean) => void;
|
|
49
|
-
export declare const getTrackLastActive: () => boolean;
|
|
50
|
-
export interface RefreshTokenConfig {
|
|
51
|
-
/** Access token expiry in seconds. Default: 900 (15 min). */
|
|
52
|
-
accessTokenExpiry?: number;
|
|
53
|
-
/** Refresh token expiry in seconds. Default: 2_592_000 (30 days). */
|
|
54
|
-
refreshTokenExpiry?: number;
|
|
55
|
-
/** Grace window in seconds where the old refresh token still works after rotation.
|
|
56
|
-
* Prevents lockout when the client's network drops mid-refresh. Default: 30. */
|
|
57
|
-
rotationGraceSeconds?: number;
|
|
58
|
-
}
|
|
59
|
-
export declare const setRefreshTokenConfig: (config: RefreshTokenConfig | null) => void;
|
|
60
|
-
export declare const getRefreshTokenConfig: () => RefreshTokenConfig | null;
|
|
61
|
-
export declare const getAccessTokenExpiry: () => number;
|
|
62
|
-
export declare const getRefreshTokenExpiry: () => number;
|
|
63
|
-
export declare const getRotationGraceSeconds: () => number;
|
|
64
|
-
export interface MfaEmailOtpConfig {
|
|
65
|
-
/** Called with the user's email and the OTP code. Use to send the email. */
|
|
66
|
-
onSend: (email: string, code: string) => Promise<void>;
|
|
67
|
-
/** OTP code length. Default: 6. */
|
|
68
|
-
codeLength?: number;
|
|
69
|
-
}
|
|
70
|
-
export interface MfaWebAuthnConfig {
|
|
71
|
-
/** Relying Party ID — typically the domain (e.g. "example.com"). Required. */
|
|
72
|
-
rpId: string;
|
|
73
|
-
/** Relying Party name shown in browser prompts. Defaults to app name. */
|
|
74
|
-
rpName?: string;
|
|
75
|
-
/** Expected origin(s) — full origin URL(s) like "https://example.com". Required. */
|
|
76
|
-
origin: string | string[];
|
|
77
|
-
/** Supported attestation conveyance preference. Default: "none". */
|
|
78
|
-
attestationType?: "none" | "direct" | "enterprise";
|
|
79
|
-
/** Authenticator attachment preference. Default: undefined (allows both platform + cross-platform). */
|
|
80
|
-
authenticatorAttachment?: "platform" | "cross-platform";
|
|
81
|
-
/** User verification requirement. Default: "preferred". */
|
|
82
|
-
userVerification?: "required" | "preferred" | "discouraged";
|
|
83
|
-
/** Timeout for ceremonies in milliseconds. Default: 60000 (60s). */
|
|
84
|
-
timeout?: number;
|
|
85
|
-
/** Reject authentication when sign count goes backward (cloned key detection). Default: false (accept + warn). */
|
|
86
|
-
strictSignCount?: boolean;
|
|
87
|
-
}
|
|
88
|
-
export interface MfaConfig {
|
|
89
|
-
/** Issuer name shown in authenticator apps. Defaults to app name. */
|
|
90
|
-
issuer?: string;
|
|
91
|
-
/** TOTP algorithm. Default: "SHA1" (most compatible). */
|
|
92
|
-
algorithm?: "SHA1" | "SHA256" | "SHA512";
|
|
93
|
-
/** TOTP digits. Default: 6. */
|
|
94
|
-
digits?: number;
|
|
95
|
-
/** TOTP period in seconds. Default: 30. */
|
|
96
|
-
period?: number;
|
|
97
|
-
/** Number of recovery codes to generate. Default: 10. */
|
|
98
|
-
recoveryCodes?: number;
|
|
99
|
-
/** MFA challenge window in seconds. Default: 300 (5 min). */
|
|
100
|
-
challengeTtlSeconds?: number;
|
|
101
|
-
/** Email OTP configuration. When set, enables email-based MFA as an option. */
|
|
102
|
-
emailOtp?: MfaEmailOtpConfig;
|
|
103
|
-
/** WebAuthn/FIDO2 configuration. When set, enables security key MFA routes. */
|
|
104
|
-
webauthn?: MfaWebAuthnConfig;
|
|
105
|
-
/** When true, authenticated users must complete MFA setup before accessing non-auth endpoints. Default: false. */
|
|
106
|
-
required?: boolean;
|
|
107
|
-
}
|
|
108
|
-
export declare const setMfaConfig: (config: MfaConfig | null) => void;
|
|
109
|
-
export declare const getMfaConfig: () => MfaConfig | null;
|
|
110
|
-
export declare const getMfaIssuer: () => string;
|
|
111
|
-
export declare const getMfaAlgorithm: () => string;
|
|
112
|
-
export declare const getMfaDigits: () => number;
|
|
113
|
-
export declare const getMfaPeriod: () => number;
|
|
114
|
-
export declare const getMfaRecoveryCodeCount: () => number;
|
|
115
|
-
export declare const getMfaChallengeTtl: () => number;
|
|
116
|
-
export declare const getMfaEmailOtpConfig: () => MfaEmailOtpConfig | null;
|
|
117
|
-
export declare const getMfaEmailOtpCodeLength: () => number;
|
|
118
|
-
export declare const getMfaWebAuthnConfig: () => MfaWebAuthnConfig | null;
|
|
119
|
-
export declare const getMfaRequired: () => boolean;
|
|
120
|
-
export declare const setCsrfEnabled: (v: boolean) => void;
|
|
121
|
-
export declare const getCsrfEnabled: () => boolean;
|
|
122
|
-
export interface SigningConfig {
|
|
123
|
-
/**
|
|
124
|
-
* HMAC secret. Defaults to JWT_SECRET_DEV/JWT_SECRET_PROD env var if omitted.
|
|
125
|
-
* Pass string[] to support key rotation — first element signs, all elements verify.
|
|
126
|
-
*/
|
|
127
|
-
secret?: string | string[];
|
|
128
|
-
/** Sign/verify cookie values set via exported helpers. Default: false. */
|
|
129
|
-
cookies?: boolean;
|
|
130
|
-
/** Sign pagination cursor tokens to prevent client tampering. Default: false. */
|
|
131
|
-
cursors?: boolean;
|
|
132
|
-
/** HMAC-based stateless presigned URLs (no DB lookup). Default: false. */
|
|
133
|
-
presignedUrls?: boolean | {
|
|
134
|
-
defaultExpiry?: number;
|
|
135
|
-
};
|
|
136
|
-
/** Require clients to HMAC-sign requests (method+path+timestamp+body). Default: false. */
|
|
137
|
-
requestSigning?: boolean | {
|
|
138
|
-
tolerance?: number;
|
|
139
|
-
header?: string;
|
|
140
|
-
timestampHeader?: string;
|
|
141
|
-
};
|
|
142
|
-
/** Hash idempotency keys before storage. Default: false. */
|
|
143
|
-
idempotencyKeys?: boolean;
|
|
144
|
-
/** Bind sessions to client IP+UA fingerprint. Default: false. */
|
|
145
|
-
sessionBinding?: boolean | {
|
|
146
|
-
fields?: Array<"ip" | "ua" | "accept-language">;
|
|
147
|
-
/**
|
|
148
|
-
* What to do when fingerprint doesn't match.
|
|
149
|
-
* - "unauthenticate": treat as logged-out (default — graceful but masks attacks)
|
|
150
|
-
* - "reject": return 401 (strict — recommended for security-conscious apps)
|
|
151
|
-
* - "log-only": allow through but log the mismatch (useful during rollout)
|
|
152
|
-
*/
|
|
153
|
-
onMismatch?: "unauthenticate" | "reject" | "log-only";
|
|
154
|
-
};
|
|
155
|
-
}
|
|
156
|
-
export declare const setSigningConfig: (config: SigningConfig | null) => void;
|
|
157
|
-
export declare const getSigningConfig: () => SigningConfig | null;
|
|
158
|
-
/**
|
|
159
|
-
* Returns the active signing secret: signing.secret → JWT_SECRET_PROD/DEV env var.
|
|
160
|
-
* Returns null when neither is configured — callers must handle this gracefully.
|
|
161
|
-
*/
|
|
162
|
-
export declare const getSigningSecret: () => string | string[] | null;
|
package/dist/lib/appConfig.js
DELETED
|
@@ -1,83 +0,0 @@
|
|
|
1
|
-
let appName = "Core API";
|
|
2
|
-
let appRoles = [];
|
|
3
|
-
let defaultRole = null;
|
|
4
|
-
let _primaryField = "email";
|
|
5
|
-
let _emailVerificationConfig = null;
|
|
6
|
-
let _passwordResetConfig = null;
|
|
7
|
-
let _passwordPolicy = {};
|
|
8
|
-
export const setAppName = (name) => { appName = name; };
|
|
9
|
-
export const getAppName = () => appName;
|
|
10
|
-
export const setAppRoles = (roles) => { appRoles = roles; };
|
|
11
|
-
export const getAppRoles = () => appRoles;
|
|
12
|
-
export const setDefaultRole = (role) => { defaultRole = role; };
|
|
13
|
-
export const getDefaultRole = () => defaultRole;
|
|
14
|
-
export const setPrimaryField = (field) => { _primaryField = field; };
|
|
15
|
-
export const getPrimaryField = () => _primaryField;
|
|
16
|
-
export const setEmailVerificationConfig = (config) => { _emailVerificationConfig = config; };
|
|
17
|
-
export const getEmailVerificationConfig = () => _emailVerificationConfig;
|
|
18
|
-
const DEFAULT_TOKEN_EXPIRY = 60 * 60 * 24; // 24 hours
|
|
19
|
-
export const getTokenExpiry = () => _emailVerificationConfig?.tokenExpiry ?? DEFAULT_TOKEN_EXPIRY;
|
|
20
|
-
export const setPasswordResetConfig = (config) => { _passwordResetConfig = config; };
|
|
21
|
-
export const getPasswordResetConfig = () => _passwordResetConfig;
|
|
22
|
-
export const setPasswordPolicy = (config) => { _passwordPolicy = config; };
|
|
23
|
-
export const getPasswordPolicy = () => _passwordPolicy;
|
|
24
|
-
const DEFAULT_RESET_TOKEN_EXPIRY = 60 * 60; // 1 hour
|
|
25
|
-
export const getResetTokenExpiry = () => _passwordResetConfig?.tokenExpiry ?? DEFAULT_RESET_TOKEN_EXPIRY;
|
|
26
|
-
// ---------------------------------------------------------------------------
|
|
27
|
-
// Session policy
|
|
28
|
-
// ---------------------------------------------------------------------------
|
|
29
|
-
let _maxSessions = 6;
|
|
30
|
-
let _persistSessionMetadata = true;
|
|
31
|
-
let _includeInactiveSessions = false;
|
|
32
|
-
let _trackLastActive = false;
|
|
33
|
-
export const setMaxSessions = (n) => { _maxSessions = Number.isFinite(n) && n >= 1 ? Math.floor(n) : 1; };
|
|
34
|
-
export const getMaxSessions = () => _maxSessions;
|
|
35
|
-
export const setPersistSessionMetadata = (v) => { _persistSessionMetadata = v; };
|
|
36
|
-
export const getPersistSessionMetadata = () => _persistSessionMetadata;
|
|
37
|
-
export const setIncludeInactiveSessions = (v) => { _includeInactiveSessions = v; };
|
|
38
|
-
export const getIncludeInactiveSessions = () => _includeInactiveSessions;
|
|
39
|
-
export const setTrackLastActive = (v) => { _trackLastActive = v; };
|
|
40
|
-
export const getTrackLastActive = () => _trackLastActive;
|
|
41
|
-
let _refreshTokenConfig = null;
|
|
42
|
-
export const setRefreshTokenConfig = (config) => { _refreshTokenConfig = config; };
|
|
43
|
-
export const getRefreshTokenConfig = () => _refreshTokenConfig;
|
|
44
|
-
const DEFAULT_ACCESS_TOKEN_EXPIRY = 900; // 15 min
|
|
45
|
-
const DEFAULT_REFRESH_TOKEN_EXPIRY = 2_592_000; // 30 days
|
|
46
|
-
const DEFAULT_ROTATION_GRACE_SECONDS = 30;
|
|
47
|
-
export const getAccessTokenExpiry = () => _refreshTokenConfig?.accessTokenExpiry ?? DEFAULT_ACCESS_TOKEN_EXPIRY;
|
|
48
|
-
export const getRefreshTokenExpiry = () => _refreshTokenConfig?.refreshTokenExpiry ?? DEFAULT_REFRESH_TOKEN_EXPIRY;
|
|
49
|
-
export const getRotationGraceSeconds = () => _refreshTokenConfig?.rotationGraceSeconds ?? DEFAULT_ROTATION_GRACE_SECONDS;
|
|
50
|
-
let _mfaConfig = null;
|
|
51
|
-
export const setMfaConfig = (config) => { _mfaConfig = config; };
|
|
52
|
-
export const getMfaConfig = () => _mfaConfig;
|
|
53
|
-
export const getMfaIssuer = () => _mfaConfig?.issuer ?? getAppName();
|
|
54
|
-
export const getMfaAlgorithm = () => _mfaConfig?.algorithm ?? "SHA1";
|
|
55
|
-
export const getMfaDigits = () => _mfaConfig?.digits ?? 6;
|
|
56
|
-
export const getMfaPeriod = () => _mfaConfig?.period ?? 30;
|
|
57
|
-
export const getMfaRecoveryCodeCount = () => _mfaConfig?.recoveryCodes ?? 10;
|
|
58
|
-
export const getMfaChallengeTtl = () => _mfaConfig?.challengeTtlSeconds ?? 300;
|
|
59
|
-
export const getMfaEmailOtpConfig = () => _mfaConfig?.emailOtp ?? null;
|
|
60
|
-
export const getMfaEmailOtpCodeLength = () => _mfaConfig?.emailOtp?.codeLength ?? 6;
|
|
61
|
-
export const getMfaWebAuthnConfig = () => _mfaConfig?.webauthn ?? null;
|
|
62
|
-
export const getMfaRequired = () => _mfaConfig?.required ?? false;
|
|
63
|
-
// ---------------------------------------------------------------------------
|
|
64
|
-
// CSRF config
|
|
65
|
-
// ---------------------------------------------------------------------------
|
|
66
|
-
let _csrfEnabled = false;
|
|
67
|
-
export const setCsrfEnabled = (v) => { _csrfEnabled = v; };
|
|
68
|
-
export const getCsrfEnabled = () => _csrfEnabled;
|
|
69
|
-
let _signingConfig = null;
|
|
70
|
-
export const setSigningConfig = (config) => { _signingConfig = config; };
|
|
71
|
-
export const getSigningConfig = () => _signingConfig;
|
|
72
|
-
/**
|
|
73
|
-
* Returns the active signing secret: signing.secret → JWT_SECRET_PROD/DEV env var.
|
|
74
|
-
* Returns null when neither is configured — callers must handle this gracefully.
|
|
75
|
-
*/
|
|
76
|
-
export const getSigningSecret = () => {
|
|
77
|
-
if (_signingConfig?.secret)
|
|
78
|
-
return _signingConfig.secret;
|
|
79
|
-
const isProd = process.env.NODE_ENV === "production";
|
|
80
|
-
const envKey = isProd ? "JWT_SECRET_PROD" : "JWT_SECRET_DEV";
|
|
81
|
-
const rawSecret = process.env[envKey];
|
|
82
|
-
return rawSecret ?? null;
|
|
83
|
-
};
|
package/dist/lib/auditLog.d.ts
DELETED
|
@@ -1,52 +0,0 @@
|
|
|
1
|
-
import type { Database } from "bun:sqlite";
|
|
2
|
-
export interface AuditLogEntry {
|
|
3
|
-
id: string;
|
|
4
|
-
userId: string | null;
|
|
5
|
-
sessionId: string | null;
|
|
6
|
-
tenantId: string | null;
|
|
7
|
-
method: string;
|
|
8
|
-
path: string;
|
|
9
|
-
status: number;
|
|
10
|
-
ip: string | null;
|
|
11
|
-
userAgent: string | null;
|
|
12
|
-
action?: string;
|
|
13
|
-
resource?: string;
|
|
14
|
-
resourceId?: string;
|
|
15
|
-
meta?: Record<string, unknown>;
|
|
16
|
-
requestId?: string;
|
|
17
|
-
/** ISO 8601 string across all backends. */
|
|
18
|
-
createdAt: string;
|
|
19
|
-
/** MongoDB TTL only — silently ignored by SQLite and memory stores. */
|
|
20
|
-
expiresAt?: Date;
|
|
21
|
-
}
|
|
22
|
-
export type AuditLogStore = "mongo" | "sqlite" | "memory";
|
|
23
|
-
export interface AuditLogOptions {
|
|
24
|
-
store: AuditLogStore;
|
|
25
|
-
/** Required when `store === "sqlite"`. */
|
|
26
|
-
db?: Database;
|
|
27
|
-
}
|
|
28
|
-
export interface AuditLogQuery {
|
|
29
|
-
userId?: string;
|
|
30
|
-
tenantId?: string;
|
|
31
|
-
after?: Date | string;
|
|
32
|
-
before?: Date | string;
|
|
33
|
-
/** Default 50, max 200. */
|
|
34
|
-
limit?: number;
|
|
35
|
-
/** Default 0. */
|
|
36
|
-
offset?: number;
|
|
37
|
-
}
|
|
38
|
-
export declare function clearAuditLogMemoryStore(): void;
|
|
39
|
-
/**
|
|
40
|
-
* Persist an audit log entry to the configured store.
|
|
41
|
-
* Errors are caught internally — this function never throws, to ensure
|
|
42
|
-
* storage failures never fail the HTTP request.
|
|
43
|
-
*/
|
|
44
|
-
export declare function logAuditEntry(entry: AuditLogEntry, options: AuditLogOptions): Promise<void>;
|
|
45
|
-
/**
|
|
46
|
-
* Query audit log entries from the configured store.
|
|
47
|
-
* Returns `{ items, total }` where `total` is the filtered count before pagination.
|
|
48
|
-
*/
|
|
49
|
-
export declare function getAuditLogs(query: AuditLogQuery, options: AuditLogOptions): Promise<{
|
|
50
|
-
items: AuditLogEntry[];
|
|
51
|
-
total: number;
|
|
52
|
-
}>;
|