@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
|
@@ -11,6 +11,9 @@ import { timingSafeEqual } from "./crypto";
|
|
|
11
11
|
*/
|
|
12
12
|
export function hmacSign(data, secret) {
|
|
13
13
|
const key = Array.isArray(secret) ? secret[0] : secret;
|
|
14
|
+
if (!key) {
|
|
15
|
+
throw new Error("hmacSign: secret key must be a non-empty string");
|
|
16
|
+
}
|
|
14
17
|
return createHmac("sha256", key).update(data).digest("hex");
|
|
15
18
|
}
|
|
16
19
|
/**
|
|
@@ -26,14 +29,21 @@ export function hmacSign(data, secret) {
|
|
|
26
29
|
*/
|
|
27
30
|
export function hmacVerify(data, sig, secret) {
|
|
28
31
|
const keys = Array.isArray(secret) ? secret : [secret];
|
|
32
|
+
if (keys.length === 0)
|
|
33
|
+
return false;
|
|
29
34
|
for (const key of keys) {
|
|
35
|
+
if (!key)
|
|
36
|
+
continue;
|
|
30
37
|
const expected = createHmac("sha256", key).update(data).digest("hex");
|
|
31
38
|
try {
|
|
32
39
|
if (timingSafeEqual(expected, sig))
|
|
33
40
|
return true;
|
|
34
41
|
}
|
|
35
42
|
catch {
|
|
36
|
-
// timingSafeEqual
|
|
43
|
+
// timingSafeEqual (src/lib/crypto.ts) handles length mismatches itself:
|
|
44
|
+
// it returns false rather than throwing, so this catch block is never
|
|
45
|
+
// reached under normal conditions. It is kept as a defensive no-op in
|
|
46
|
+
// case the underlying implementation changes in the future.
|
|
37
47
|
}
|
|
38
48
|
}
|
|
39
49
|
return false;
|
|
@@ -106,17 +116,35 @@ export function verifyCursor(cursor, secret) {
|
|
|
106
116
|
// ---------------------------------------------------------------------------
|
|
107
117
|
// Presigned URLs
|
|
108
118
|
//
|
|
109
|
-
// Signing data = method + "\n" + key + "\n" + exp
|
|
119
|
+
// Signing data = method + "\n" + key + "\n" + exp + "\n" + sortedParams
|
|
110
120
|
// Newline delimiter is safe: keys like "uploads/2024/photo.jpg" contain dots
|
|
111
121
|
// but cannot contain newlines; method and exp never contain newlines.
|
|
112
122
|
// Using "." would create ambiguity with keys containing dots.
|
|
123
|
+
//
|
|
124
|
+
// Extra params are included in the HMAC so that an attacker cannot modify,
|
|
125
|
+
// add, or remove query parameters without invalidating the signature.
|
|
126
|
+
// sortedParams is always present (empty string when no extra params) so the
|
|
127
|
+
// "\n" delimiter is consistent — prevents length-extension confusion.
|
|
113
128
|
// ---------------------------------------------------------------------------
|
|
129
|
+
/**
|
|
130
|
+
* Serialize extra params for inclusion in the HMAC signing string.
|
|
131
|
+
* Keys are sorted, then each key and value are percent-encoded (encodeURIComponent)
|
|
132
|
+
* and joined as "key=value&key2=value2". Returns "" when params is empty/undefined.
|
|
133
|
+
*/
|
|
134
|
+
function serializeExtraParams(params) {
|
|
135
|
+
if (!params || Object.keys(params).length === 0)
|
|
136
|
+
return "";
|
|
137
|
+
return Object.keys(params)
|
|
138
|
+
.sort()
|
|
139
|
+
.map((k) => `${encodeURIComponent(k)}=${encodeURIComponent(params[k])}`)
|
|
140
|
+
.join("&");
|
|
141
|
+
}
|
|
114
142
|
/**
|
|
115
143
|
* Create a stateless HMAC-signed URL. The signature covers the HTTP method,
|
|
116
|
-
* storage key,
|
|
144
|
+
* storage key, expiry timestamp, and any extra query params so that:
|
|
117
145
|
* - Expired URLs are rejected (replay prevention)
|
|
118
146
|
* - URLs are method-bound (a GET URL can't be replayed as a PUT)
|
|
119
|
-
* - Tampering with the key or
|
|
147
|
+
* - Tampering with the key, expiry, or any extra param invalidates the signature
|
|
120
148
|
*
|
|
121
149
|
* @param base Base URL string (e.g. "https://api.example.com/uploads/presign")
|
|
122
150
|
* @param key Storage object key
|
|
@@ -126,7 +154,8 @@ export function verifyCursor(cursor, secret) {
|
|
|
126
154
|
export function createPresignedUrl(base, key, opts, secret) {
|
|
127
155
|
const exp = Math.floor(Date.now() / 1000) + opts.expiry;
|
|
128
156
|
const method = opts.method.toUpperCase();
|
|
129
|
-
const
|
|
157
|
+
const sortedParams = serializeExtraParams(opts.extra);
|
|
158
|
+
const data = `${method}\n${key}\n${exp}\n${sortedParams}`;
|
|
130
159
|
const sig = hmacSign(data, secret);
|
|
131
160
|
const url = new URL(base);
|
|
132
161
|
url.searchParams.set("key", key);
|
|
@@ -163,11 +192,7 @@ export function verifyPresignedUrl(url, method, secret) {
|
|
|
163
192
|
return null;
|
|
164
193
|
// Expiry check
|
|
165
194
|
const expNum = parseInt(exp, 10);
|
|
166
|
-
if (
|
|
167
|
-
return null;
|
|
168
|
-
// Signature check
|
|
169
|
-
const data = `${urlMethod}\n${key}\n${exp}`;
|
|
170
|
-
if (!hmacVerify(data, sig, secret))
|
|
195
|
+
if (!isFinite(expNum) || expNum < Math.floor(Date.now() / 1000))
|
|
171
196
|
return null;
|
|
172
197
|
// Collect extra params (all except reserved ones)
|
|
173
198
|
const reserved = new Set(["key", "exp", "sig", "method"]);
|
|
@@ -176,5 +201,10 @@ export function verifyPresignedUrl(url, method, secret) {
|
|
|
176
201
|
if (!reserved.has(k))
|
|
177
202
|
extra[k] = v;
|
|
178
203
|
}
|
|
204
|
+
// Signature check — includes extra params so tampering is detected
|
|
205
|
+
const sortedParams = serializeExtraParams(Object.keys(extra).length > 0 ? extra : undefined);
|
|
206
|
+
const data = `${urlMethod}\n${key}\n${exp}\n${sortedParams}`;
|
|
207
|
+
if (!hmacVerify(data, sig, secret))
|
|
208
|
+
return null;
|
|
179
209
|
return Object.keys(extra).length > 0 ? { key, extra } : { key };
|
|
180
210
|
}
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
import type { BunshotEventBus } from '../packages/bunshot-core/src/index.js';
|
|
2
|
+
import type { CreateServerConfig } from './server';
|
|
3
|
+
export { resetMetrics } from './framework/lib/metrics';
|
|
4
|
+
export interface E2EServerHandle {
|
|
5
|
+
server: ReturnType<typeof Bun.serve>;
|
|
6
|
+
baseUrl: string;
|
|
7
|
+
wsUrl: string;
|
|
8
|
+
url: string;
|
|
9
|
+
bus: BunshotEventBus;
|
|
10
|
+
stop(): void;
|
|
11
|
+
cleanup(): Promise<void>;
|
|
12
|
+
}
|
|
13
|
+
/**
|
|
14
|
+
* Create an E2EServerHandle from a pre-built Hono app.
|
|
15
|
+
* HTTP-only — cannot be used for WS upgrade flows.
|
|
16
|
+
*/
|
|
17
|
+
export declare function wrapAppAsTestServer(app: {
|
|
18
|
+
fetch: (...args: any[]) => any;
|
|
19
|
+
}): E2EServerHandle;
|
|
20
|
+
/**
|
|
21
|
+
* Full test server — calls createServer(). Required for WS E2E, heartbeat,
|
|
22
|
+
* transport, and any Bun.serve()-level behavior.
|
|
23
|
+
*/
|
|
24
|
+
export declare function createTestFullServer(config?: Partial<CreateServerConfig>): Promise<E2EServerHandle>;
|
|
25
|
+
/**
|
|
26
|
+
* Lightweight cookie jar for E2E tests.
|
|
27
|
+
* fetch() doesn't auto-handle Set-Cookie — this helper accumulates
|
|
28
|
+
* Set-Cookie headers and injects Cookie on subsequent requests.
|
|
29
|
+
*/
|
|
30
|
+
export declare function createCookieJar(): {
|
|
31
|
+
absorb: (response: Response) => void;
|
|
32
|
+
header: () => Record<string, string>;
|
|
33
|
+
clear: () => void;
|
|
34
|
+
};
|
|
@@ -0,0 +1,93 @@
|
|
|
1
|
+
import { getContext } from '../packages/bunshot-core/src/index.js';
|
|
2
|
+
import { createServer, getServerContext } from './server';
|
|
3
|
+
export { resetMetrics } from './framework/lib/metrics';
|
|
4
|
+
/**
|
|
5
|
+
* Create an E2EServerHandle from a pre-built Hono app.
|
|
6
|
+
* HTTP-only — cannot be used for WS upgrade flows.
|
|
7
|
+
*/
|
|
8
|
+
export function wrapAppAsTestServer(app) {
|
|
9
|
+
const server = Bun.serve({ port: 0, fetch: app.fetch });
|
|
10
|
+
const baseUrl = `http://localhost:${server.port}`;
|
|
11
|
+
const wsUrl = `ws://localhost:${server.port}`;
|
|
12
|
+
const ctx = getContext(app);
|
|
13
|
+
const bus = ctx.bus;
|
|
14
|
+
return {
|
|
15
|
+
server,
|
|
16
|
+
baseUrl,
|
|
17
|
+
wsUrl,
|
|
18
|
+
url: baseUrl,
|
|
19
|
+
bus,
|
|
20
|
+
stop: () => server.stop(true),
|
|
21
|
+
cleanup: async () => server.stop(true),
|
|
22
|
+
};
|
|
23
|
+
}
|
|
24
|
+
/**
|
|
25
|
+
* Full test server — calls createServer(). Required for WS E2E, heartbeat,
|
|
26
|
+
* transport, and any Bun.serve()-level behavior.
|
|
27
|
+
*/
|
|
28
|
+
export async function createTestFullServer(config) {
|
|
29
|
+
const fullConfig = {
|
|
30
|
+
routesDir: '.',
|
|
31
|
+
app: { name: 'E2E Test App' },
|
|
32
|
+
db: {
|
|
33
|
+
mongo: false,
|
|
34
|
+
redis: false,
|
|
35
|
+
sessions: 'memory',
|
|
36
|
+
cache: 'memory',
|
|
37
|
+
auth: 'memory',
|
|
38
|
+
},
|
|
39
|
+
security: {
|
|
40
|
+
rateLimit: { windowMs: 60_000, max: 1000 },
|
|
41
|
+
},
|
|
42
|
+
logging: { onLog: () => { } },
|
|
43
|
+
port: 0,
|
|
44
|
+
...config,
|
|
45
|
+
};
|
|
46
|
+
const server = await createServer(fullConfig);
|
|
47
|
+
const baseUrl = `http://localhost:${server.port}`;
|
|
48
|
+
const wsUrl = `ws://localhost:${server.port}`;
|
|
49
|
+
const ctx = getServerContext(server);
|
|
50
|
+
const bus = ctx.bus;
|
|
51
|
+
return {
|
|
52
|
+
server,
|
|
53
|
+
baseUrl,
|
|
54
|
+
wsUrl,
|
|
55
|
+
url: baseUrl,
|
|
56
|
+
bus,
|
|
57
|
+
stop: () => server.stop(true),
|
|
58
|
+
cleanup: async () => server.stop(true),
|
|
59
|
+
};
|
|
60
|
+
}
|
|
61
|
+
/**
|
|
62
|
+
* Lightweight cookie jar for E2E tests.
|
|
63
|
+
* fetch() doesn't auto-handle Set-Cookie — this helper accumulates
|
|
64
|
+
* Set-Cookie headers and injects Cookie on subsequent requests.
|
|
65
|
+
*/
|
|
66
|
+
export function createCookieJar() {
|
|
67
|
+
const cookies = new Map();
|
|
68
|
+
function absorb(response) {
|
|
69
|
+
const setCookie = response.headers.get('set-cookie');
|
|
70
|
+
if (!setCookie)
|
|
71
|
+
return;
|
|
72
|
+
const parts = setCookie.split(/,(?=[^ ])/);
|
|
73
|
+
for (const part of parts) {
|
|
74
|
+
const [kv] = part.trim().split(';');
|
|
75
|
+
const eq = kv.indexOf('=');
|
|
76
|
+
if (eq === -1)
|
|
77
|
+
continue;
|
|
78
|
+
const name = kv.slice(0, eq).trim();
|
|
79
|
+
const value = kv.slice(eq + 1).trim();
|
|
80
|
+
cookies.set(name, value);
|
|
81
|
+
}
|
|
82
|
+
}
|
|
83
|
+
function header() {
|
|
84
|
+
if (cookies.size === 0)
|
|
85
|
+
return {};
|
|
86
|
+
const value = [...cookies.entries()].map(([k, v]) => `${k}=${v}`).join('; ');
|
|
87
|
+
return { cookie: value };
|
|
88
|
+
}
|
|
89
|
+
function clear() {
|
|
90
|
+
cookies.clear();
|
|
91
|
+
}
|
|
92
|
+
return { absorb, header, clear };
|
|
93
|
+
}
|
package/package.json
CHANGED
|
@@ -1,6 +1,9 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@lastshotlabs/bunshot",
|
|
3
|
-
"
|
|
3
|
+
"workspaces": [
|
|
4
|
+
"packages/*"
|
|
5
|
+
],
|
|
6
|
+
"version": "0.0.28",
|
|
4
7
|
"description": "Batteries-included Bun + Hono API framework — auth, sessions, rate limiting, WebSocket, queues, and OpenAPI docs out of the box",
|
|
5
8
|
"repository": {
|
|
6
9
|
"type": "git",
|
|
@@ -16,57 +19,86 @@
|
|
|
16
19
|
"websocket",
|
|
17
20
|
"openapi"
|
|
18
21
|
],
|
|
19
|
-
"
|
|
20
|
-
"
|
|
22
|
+
"type": "module",
|
|
23
|
+
"module": "dist/src/index.js",
|
|
24
|
+
"types": "dist/src/index.d.ts",
|
|
21
25
|
"exports": {
|
|
22
26
|
".": {
|
|
23
|
-
"import": "./dist/index.js",
|
|
24
|
-
"types": "./dist/index.d.ts"
|
|
27
|
+
"import": "./dist/src/index.js",
|
|
28
|
+
"types": "./dist/src/index.d.ts"
|
|
25
29
|
},
|
|
26
30
|
"./mongo": {
|
|
27
|
-
"import": "./dist/entrypoints/mongo.js",
|
|
28
|
-
"types": "./dist/entrypoints/mongo.d.ts"
|
|
31
|
+
"import": "./dist/src/entrypoints/mongo.js",
|
|
32
|
+
"types": "./dist/src/entrypoints/mongo.d.ts"
|
|
29
33
|
},
|
|
30
34
|
"./redis": {
|
|
31
|
-
"import": "./dist/entrypoints/redis.js",
|
|
32
|
-
"types": "./dist/entrypoints/redis.d.ts"
|
|
35
|
+
"import": "./dist/src/entrypoints/redis.js",
|
|
36
|
+
"types": "./dist/src/entrypoints/redis.d.ts"
|
|
33
37
|
},
|
|
34
38
|
"./queue": {
|
|
35
|
-
"import": "./dist/entrypoints/queue.js",
|
|
36
|
-
"types": "./dist/entrypoints/queue.d.ts"
|
|
39
|
+
"import": "./dist/src/entrypoints/queue.js",
|
|
40
|
+
"types": "./dist/src/entrypoints/queue.d.ts"
|
|
41
|
+
},
|
|
42
|
+
"./testing": {
|
|
43
|
+
"import": "./dist/src/testing.js",
|
|
44
|
+
"types": "./dist/src/testing.d.ts"
|
|
37
45
|
},
|
|
38
46
|
"./docs/*": "./docs/sections/*"
|
|
39
47
|
},
|
|
40
48
|
"bin": {
|
|
41
|
-
"bunshot": "./dist/cli.js"
|
|
49
|
+
"bunshot": "./dist/cli/index.js"
|
|
42
50
|
},
|
|
43
51
|
"files": [
|
|
44
52
|
"dist",
|
|
45
|
-
"docs/sections"
|
|
53
|
+
"docs/sections",
|
|
54
|
+
".oclif.manifest.json"
|
|
46
55
|
],
|
|
56
|
+
"oclif": {
|
|
57
|
+
"bin": "bunshot",
|
|
58
|
+
"dirname": "bunshot",
|
|
59
|
+
"commands": "./dist/cli/commands",
|
|
60
|
+
"topicSeparator": " "
|
|
61
|
+
},
|
|
47
62
|
"scripts": {
|
|
48
|
-
"
|
|
63
|
+
"typecheck": "bun --filter '*' run typecheck",
|
|
64
|
+
"typecheck:root": "tsc --noEmit",
|
|
65
|
+
"build": "tsc -p tsconfig.build.json && tsc-alias -p tsconfig.build.json && tsup --config tsup.cli.config.ts && oclif manifest",
|
|
49
66
|
"prepublishOnly": "bun run build",
|
|
50
67
|
"release": "npm version patch && npm publish",
|
|
51
68
|
"dev": "bun --watch src/index.ts",
|
|
52
69
|
"start": "bun src/index.ts",
|
|
53
|
-
"
|
|
54
|
-
"
|
|
55
|
-
"test": "bun test tests/unit tests/integration
|
|
56
|
-
"test:
|
|
57
|
-
"test:coverage": "bun test --coverage tests/unit tests/integration",
|
|
70
|
+
"test": "bun test tests/unit tests/integration && bun run test:isolated && bun test --config packages/bunshot-core/bunfig.toml packages/bunshot-core/tests && bun test --config packages/bunshot-permissions/bunfig.toml packages/bunshot-permissions/tests",
|
|
71
|
+
"test:isolated": "bun test tests/isolated/config-lock.test.ts tests/isolated/memoryCache.test.ts tests/isolated/zodToMongoose.test.ts && bun test tests/isolated/optional-deps.test.ts && bun test tests/isolated/jwt-signing-singleton.test.ts && bun test tests/isolated/csrf-signing-singleton.test.ts && bun test tests/isolated/auth0Access.test.ts && bun test tests/isolated/queue.test.ts tests/isolated/jobs-router.test.ts && bun test tests/isolated/queued-deletion.test.ts && bun test tests/isolated/bullmq-adapter-durable.test.ts && bun test tests/isolated/passkey-e2e.test.ts",
|
|
72
|
+
"test:coverage": "bun test --coverage tests/unit tests/integration --config bunfig.ci.toml && bun test --coverage --config packages/bunshot-core/bunfig.toml packages/bunshot-core/tests && bun test --coverage --config packages/bunshot-permissions/bunfig.toml packages/bunshot-permissions/tests",
|
|
73
|
+
"test:coverage:check": "bun run test:coverage && bun scripts/check-coverage.ts",
|
|
58
74
|
"test:docker:up": "docker compose -f docker-compose.test.yml up -d --wait",
|
|
59
75
|
"test:docker:down": "docker compose -f docker-compose.test.yml down",
|
|
60
76
|
"test:docker": "bun test --config bunfig.docker.toml tests/docker/",
|
|
61
|
-
"test:
|
|
62
|
-
"test:
|
|
77
|
+
"test:e2e": "bun run test:docker:up && bun test --config bunfig.e2e.toml tests/e2e/; bun run test:docker:down",
|
|
78
|
+
"test:e2e:ci": "bun test --config bunfig.e2e.toml tests/e2e/",
|
|
79
|
+
"test:e2e:sqlite": "TEST_BACKEND=sqlite bun run test:e2e:ci",
|
|
80
|
+
"test:e2e:mongo": "TEST_BACKEND=mongo bun run test:e2e:ci",
|
|
81
|
+
"test:e2e:postgres": "TEST_BACKEND=postgres bun run test:e2e:ci",
|
|
82
|
+
"test:all": "bun test tests/unit tests/integration && bun run test:docker:up && bun test --config bunfig.docker.toml tests/docker/ && bun test --config bunfig.e2e.toml tests/e2e/; bun run test:docker:down",
|
|
83
|
+
"test:coverage:full": "bun run test:docker:up && bun test --coverage --config bunfig.ci.toml tests/unit tests/integration tests/docker; bun run test:docker:down",
|
|
84
|
+
"format": "prettier --write .",
|
|
85
|
+
"format:check": "prettier --check .",
|
|
86
|
+
"lint:deps": "depcruise packages/ --config .dependency-cruiser.cjs",
|
|
87
|
+
"docs:dev": "cd packages/docs && npx astro dev",
|
|
88
|
+
"docs:build": "cd packages/docs && npx astro build",
|
|
89
|
+
"docs:preview": "cd packages/docs && npx astro preview",
|
|
90
|
+
"docs:api": "bun packages/docs/generate-api.ts"
|
|
63
91
|
},
|
|
64
92
|
"dependencies": {
|
|
65
93
|
"@asteasolutions/zod-to-openapi": "^8.4.1",
|
|
66
94
|
"@hono/zod-openapi": "1.2.2",
|
|
95
|
+
"@lastshotlabs/bunshot-auth": "0.1.0",
|
|
96
|
+
"@lastshotlabs/bunshot-core": "0.1.0",
|
|
97
|
+
"@oclif/core": "^4.10.2",
|
|
67
98
|
"@scalar/hono-api-reference": "0.10.0",
|
|
68
99
|
"arctic": "^3.7.0",
|
|
69
|
-
"jose": "6.2.0"
|
|
100
|
+
"jose": "6.2.0",
|
|
101
|
+
"samlify": "^2.8"
|
|
70
102
|
},
|
|
71
103
|
"peerDependencies": {
|
|
72
104
|
"hono": ">=4.12 <5",
|
|
@@ -107,18 +139,23 @@
|
|
|
107
139
|
}
|
|
108
140
|
},
|
|
109
141
|
"devDependencies": {
|
|
142
|
+
"@simplewebauthn/server": "^13.1.1",
|
|
143
|
+
"@trivago/prettier-plugin-sort-imports": "^6.0.2",
|
|
110
144
|
"@types/bun": "1.3.10",
|
|
111
145
|
"bullmq": "^5.70.4",
|
|
146
|
+
"dependency-cruiser": "^17.3.9",
|
|
112
147
|
"hono": ">=4.12",
|
|
113
148
|
"ioredis": "5.10.0",
|
|
114
149
|
"mongoose": "9.2.4",
|
|
150
|
+
"oclif": "^4.22.96",
|
|
115
151
|
"otpauth": "^9.5.0",
|
|
152
|
+
"prettier": "^3.3.3",
|
|
116
153
|
"tsc-alias": "^1.8.16",
|
|
154
|
+
"tsup": "^8.5.1",
|
|
117
155
|
"typescript": "^5.9.3",
|
|
118
|
-
"zod": ">=4.0"
|
|
119
|
-
"@simplewebauthn/server": "^13.1.1"
|
|
156
|
+
"zod": ">=4.0"
|
|
120
157
|
},
|
|
121
158
|
"publishConfig": {
|
|
122
159
|
"access": "public"
|
|
123
160
|
}
|
|
124
|
-
}
|
|
161
|
+
}
|
|
@@ -1,46 +0,0 @@
|
|
|
1
|
-
import type { AuthAdapter } from "../lib/authAdapter";
|
|
2
|
-
import type { SessionMetadata, SessionInfo } from "../lib/session";
|
|
3
|
-
/** Reset all in-memory state. Useful for test isolation. */
|
|
4
|
-
export declare const clearMemoryStore: () => void;
|
|
5
|
-
export declare const memoryAuthAdapter: AuthAdapter;
|
|
6
|
-
export declare const memoryCreateSession: (userId: string, token: string, sessionId: string, metadata?: SessionMetadata) => void;
|
|
7
|
-
export declare const memoryGetSession: (sessionId: string) => string | null;
|
|
8
|
-
export declare const memoryDeleteSession: (sessionId: string) => void;
|
|
9
|
-
export declare const memoryGetUserSessions: (userId: string) => SessionInfo[];
|
|
10
|
-
export declare const memoryGetActiveSessionCount: (userId: string) => number;
|
|
11
|
-
export declare const memoryEvictOldestSession: (userId: string) => void;
|
|
12
|
-
export declare const memoryUpdateSessionLastActive: (sessionId: string) => void;
|
|
13
|
-
export declare const memoryGetSessionFingerprint: (sessionId: string) => string | null;
|
|
14
|
-
export declare const memorySetSessionFingerprint: (sessionId: string, fingerprint: string) => void;
|
|
15
|
-
export declare const memorySetRefreshToken: (sessionId: string, refreshToken: string) => void;
|
|
16
|
-
import type { RefreshResult } from "../lib/session";
|
|
17
|
-
export declare const memoryGetSessionByRefreshToken: (refreshToken: string) => RefreshResult | null;
|
|
18
|
-
export declare const memoryRotateRefreshToken: (sessionId: string, newRefreshToken: string, newAccessToken: string) => void;
|
|
19
|
-
export declare const memoryStoreOAuthState: (state: string, codeVerifier?: string, linkUserId?: string) => void;
|
|
20
|
-
export declare const memoryConsumeOAuthState: (state: string) => {
|
|
21
|
-
codeVerifier?: string;
|
|
22
|
-
linkUserId?: string;
|
|
23
|
-
} | null;
|
|
24
|
-
export declare const memoryGetCache: (key: string) => string | null;
|
|
25
|
-
export declare const memorySetCache: (key: string, value: string, ttlSeconds?: number) => void;
|
|
26
|
-
export declare const memoryDelCache: (key: string) => void;
|
|
27
|
-
export declare const memoryDelCachePattern: (pattern: string) => void;
|
|
28
|
-
export declare const memoryCreateVerificationToken: (token: string, userId: string, email: string, ttlSeconds: number) => void;
|
|
29
|
-
export declare const memoryGetVerificationToken: (token: string) => {
|
|
30
|
-
userId: string;
|
|
31
|
-
email: string;
|
|
32
|
-
} | null;
|
|
33
|
-
export declare const memoryDeleteVerificationToken: (token: string) => void;
|
|
34
|
-
export declare const memoryCreateResetToken: (token: string, userId: string, email: string, ttlSeconds: number) => void;
|
|
35
|
-
export declare const memoryConsumeResetToken: (hash: string) => {
|
|
36
|
-
userId: string;
|
|
37
|
-
email: string;
|
|
38
|
-
} | null;
|
|
39
|
-
import type { OAuthCodePayload } from "../lib/oauthCode";
|
|
40
|
-
export declare const memoryStoreOAuthCode: (hash: string, payload: OAuthCodePayload, ttlSeconds: number) => void;
|
|
41
|
-
export declare const memoryConsumeOAuthCode: (hash: string) => OAuthCodePayload | null;
|
|
42
|
-
export declare const memoryCreateDeletionCancelToken: (token: string, userId: string, jobId: string, ttlSeconds: number) => void;
|
|
43
|
-
export declare const memoryConsumeDeletionCancelToken: (hash: string) => {
|
|
44
|
-
userId: string;
|
|
45
|
-
jobId: string;
|
|
46
|
-
} | null;
|