@simple-auth-kit/cli 1.4.3 → 1.5.0

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.
Files changed (133) hide show
  1. package/package.json +1 -1
  2. package/registry/combos/express-drizzle/shared/src/{auth-core-error.middleware.ts → middleware/auth-core-error.middleware.ts} +17 -4
  3. package/registry/combos/express-drizzle/shared/src/{auth.middleware.ts → middleware/auth.middleware.ts} +23 -7
  4. package/registry/combos/{express-prisma/shared/src → express-drizzle/shared/src/middleware}/response-envelope.middleware.ts +15 -3
  5. package/registry/combos/express-drizzle/shared/src/{oauth.repository.ts → repositories/oauth.repository.ts} +32 -9
  6. package/registry/combos/express-drizzle/shared/src/repositories/password-reset.repository.ts +59 -0
  7. package/registry/combos/express-drizzle/shared/src/{session.repository.ts → repositories/session.repository.ts} +52 -14
  8. package/registry/combos/express-drizzle/shared/src/{two-factor.repository.ts → repositories/two-factor.repository.ts} +20 -6
  9. package/registry/combos/express-drizzle/shared/src/request-context.ts +1 -1
  10. package/registry/combos/express-drizzle/shared/src/routers/auth.router.ts +395 -0
  11. package/registry/combos/express-drizzle/variants/base/src/create-auth-app.ts +52 -19
  12. package/registry/combos/express-drizzle/variants/base/src/{authz.middleware.ts → middleware/authz.middleware.ts} +15 -7
  13. package/registry/combos/express-drizzle/variants/base/src/{audit-log.repository.ts → repositories/audit-log.repository.ts} +28 -10
  14. package/registry/combos/express-drizzle/variants/base/src/{rbac.repository.ts → repositories/rbac.repository.ts} +239 -48
  15. package/registry/combos/express-drizzle/variants/base/src/routers/admin.router.ts +497 -0
  16. package/registry/combos/express-drizzle/variants/base/src/{auth.service.ts → services/auth.service.ts} +480 -109
  17. package/registry/combos/express-drizzle/variants/workspaces/src/create-auth-app.ts +69 -23
  18. package/registry/combos/express-drizzle/variants/workspaces/src/{authz.middleware.ts → middleware/authz.middleware.ts} +32 -12
  19. package/registry/combos/express-drizzle/variants/workspaces/src/openapi-workspace.ts +147 -28
  20. package/registry/combos/express-drizzle/variants/workspaces/src/{audit-log.repository.ts → repositories/audit-log.repository.ts} +30 -11
  21. package/registry/combos/express-drizzle/variants/workspaces/src/{rbac.repository.ts → repositories/rbac.repository.ts} +319 -70
  22. package/registry/combos/express-drizzle/variants/workspaces/src/{workspace.repository.ts → repositories/workspace.repository.ts} +127 -30
  23. package/registry/combos/express-drizzle/variants/workspaces/src/routers/admin.router.ts +534 -0
  24. package/registry/combos/express-drizzle/variants/workspaces/src/routers/workspace.router.ts +194 -0
  25. package/registry/combos/express-drizzle/variants/workspaces/src/{auth.service.ts → services/auth.service.ts} +544 -122
  26. package/registry/combos/express-prisma/shared/src/{auth-core-error.middleware.ts → middleware/auth-core-error.middleware.ts} +17 -4
  27. package/registry/combos/express-prisma/shared/src/{auth.middleware.ts → middleware/auth.middleware.ts} +19 -6
  28. package/registry/combos/{express-drizzle/shared/src → express-prisma/shared/src/middleware}/response-envelope.middleware.ts +15 -3
  29. package/registry/combos/express-prisma/shared/src/{oauth.repository.ts → repositories/oauth.repository.ts} +27 -9
  30. package/registry/combos/express-prisma/shared/src/repositories/password-reset.repository.ts +55 -0
  31. package/registry/combos/express-prisma/shared/src/{session.repository.ts → repositories/session.repository.ts} +30 -9
  32. package/registry/combos/express-prisma/shared/src/{two-factor.repository.ts → repositories/two-factor.repository.ts} +11 -4
  33. package/registry/combos/express-prisma/shared/src/request-context.ts +1 -1
  34. package/registry/combos/express-prisma/shared/src/routers/auth.router.ts +398 -0
  35. package/registry/combos/express-prisma/variants/base/src/create-auth-app.ts +57 -22
  36. package/registry/combos/express-prisma/variants/base/src/{authz.middleware.ts → middleware/authz.middleware.ts} +15 -7
  37. package/registry/combos/express-prisma/variants/base/src/rbac.defaults.ts +67 -19
  38. package/registry/combos/express-prisma/variants/base/src/{audit-log.repository.ts → repositories/audit-log.repository.ts} +16 -5
  39. package/registry/combos/express-prisma/variants/base/src/{rbac.repository.ts → repositories/rbac.repository.ts} +199 -48
  40. package/registry/combos/express-prisma/variants/base/src/routers/admin.router.ts +508 -0
  41. package/registry/combos/express-prisma/variants/base/src/seed.ts +78 -20
  42. package/registry/combos/express-prisma/variants/base/src/{auth.service.ts → services/auth.service.ts} +454 -105
  43. package/registry/combos/express-prisma/variants/workspaces/src/create-auth-app.ts +81 -26
  44. package/registry/combos/express-prisma/variants/workspaces/src/{authz.middleware.ts → middleware/authz.middleware.ts} +32 -12
  45. package/registry/combos/express-prisma/variants/workspaces/src/openapi-workspace.ts +147 -28
  46. package/registry/combos/express-prisma/variants/workspaces/src/rbac.defaults.ts +73 -21
  47. package/registry/combos/express-prisma/variants/workspaces/src/{audit-log.repository.ts → repositories/audit-log.repository.ts} +16 -5
  48. package/registry/combos/express-prisma/variants/workspaces/src/{rbac.repository.ts → repositories/rbac.repository.ts} +272 -64
  49. package/registry/combos/express-prisma/variants/workspaces/src/{workspace.repository.ts → repositories/workspace.repository.ts} +86 -23
  50. package/registry/combos/express-prisma/variants/workspaces/src/routers/admin.router.ts +545 -0
  51. package/registry/combos/express-prisma/variants/workspaces/src/routers/workspace.router.ts +194 -0
  52. package/registry/combos/express-prisma/variants/workspaces/src/seed.ts +109 -29
  53. package/registry/combos/express-prisma/variants/workspaces/src/{auth.service.ts → services/auth.service.ts} +518 -119
  54. package/registry/combos/nestjs-drizzle/shared/src/{auth.controller.ts → controllers/auth.controller.ts} +6 -6
  55. package/registry/combos/nestjs-drizzle/shared/src/{auth-core-error.filter.ts → filters/auth-core-error.filter.ts} +29 -5
  56. package/registry/combos/nestjs-drizzle/shared/src/{ability.guard.ts → guards/ability.guard.ts} +20 -7
  57. package/registry/combos/nestjs-drizzle/shared/src/{auth.guard.ts → guards/auth.guard.ts} +19 -7
  58. package/registry/combos/{nestjs-prisma/shared/src → nestjs-drizzle/shared/src/interceptors}/response.interceptor.ts +10 -2
  59. package/registry/combos/nestjs-drizzle/shared/src/repositories/oauth.repository.ts +63 -0
  60. package/registry/combos/nestjs-drizzle/shared/src/repositories/password-reset.repository.ts +59 -0
  61. package/registry/combos/nestjs-drizzle/shared/src/{session.repository.ts → repositories/session.repository.ts} +52 -14
  62. package/registry/combos/nestjs-drizzle/shared/src/{two-factor.repository.ts → repositories/two-factor.repository.ts} +21 -7
  63. package/registry/combos/nestjs-drizzle/shared/src/request-context.ts +1 -1
  64. package/registry/combos/nestjs-drizzle/test/prove-cycle.ts +1097 -307
  65. package/registry/combos/nestjs-drizzle/variants/base/src/auth.module.ts +44 -20
  66. package/registry/combos/nestjs-drizzle/variants/base/src/{admin.controller.ts → controllers/admin.controller.ts} +228 -62
  67. package/registry/combos/nestjs-drizzle/variants/base/src/{authz.guard.ts → guards/authz.guard.ts} +12 -5
  68. package/registry/combos/nestjs-drizzle/variants/base/src/{audit-log.repository.ts → repositories/audit-log.repository.ts} +27 -10
  69. package/registry/combos/nestjs-drizzle/variants/base/src/{rbac.repository.ts → repositories/rbac.repository.ts} +249 -51
  70. package/registry/combos/nestjs-drizzle/variants/base/src/{auth.service.ts → services/auth.service.ts} +499 -116
  71. package/registry/combos/nestjs-drizzle/variants/workspaces/src/auth.module.ts +48 -22
  72. package/registry/combos/nestjs-drizzle/variants/workspaces/src/{admin.controller.ts → controllers/admin.controller.ts} +269 -70
  73. package/registry/combos/nestjs-drizzle/variants/workspaces/src/{workspace.controller.ts → controllers/workspace.controller.ts} +93 -26
  74. package/registry/combos/nestjs-drizzle/variants/workspaces/src/{authz.guard.ts → guards/authz.guard.ts} +26 -8
  75. package/registry/combos/nestjs-drizzle/variants/workspaces/src/{audit-log.repository.ts → repositories/audit-log.repository.ts} +29 -11
  76. package/registry/combos/nestjs-drizzle/variants/workspaces/src/{rbac.repository.ts → repositories/rbac.repository.ts} +323 -71
  77. package/registry/combos/nestjs-drizzle/variants/workspaces/src/{workspace.repository.ts → repositories/workspace.repository.ts} +131 -30
  78. package/registry/combos/nestjs-drizzle/variants/workspaces/src/services/auth.service.ts +988 -0
  79. package/registry/combos/nestjs-prisma/shared/src/{auth.controller.ts → controllers/auth.controller.ts} +6 -6
  80. package/registry/combos/nestjs-prisma/shared/src/{auth-core-error.filter.ts → filters/auth-core-error.filter.ts} +29 -5
  81. package/registry/combos/nestjs-prisma/shared/src/{ability.guard.ts → guards/ability.guard.ts} +20 -7
  82. package/registry/combos/nestjs-prisma/shared/src/{auth.guard.ts → guards/auth.guard.ts} +19 -7
  83. package/registry/combos/{nestjs-drizzle/shared/src → nestjs-prisma/shared/src/interceptors}/response.interceptor.ts +10 -2
  84. package/registry/combos/nestjs-prisma/shared/src/{oauth.repository.ts → repositories/oauth.repository.ts} +25 -8
  85. package/registry/combos/nestjs-prisma/shared/src/repositories/password-reset.repository.ts +55 -0
  86. package/registry/combos/nestjs-prisma/shared/src/{session.repository.ts → repositories/session.repository.ts} +30 -9
  87. package/registry/combos/nestjs-prisma/shared/src/{two-factor.repository.ts → repositories/two-factor.repository.ts} +11 -4
  88. package/registry/combos/nestjs-prisma/shared/src/request-context.ts +1 -1
  89. package/registry/combos/nestjs-prisma/test/prove-cycle.ts +1097 -307
  90. package/registry/combos/nestjs-prisma/variants/base/src/auth.module.ts +59 -28
  91. package/registry/combos/nestjs-prisma/variants/base/src/{admin.controller.ts → controllers/admin.controller.ts} +469 -110
  92. package/registry/combos/nestjs-prisma/variants/base/src/{audit-log.gateway.ts → gateways/audit-log.gateway.ts} +22 -6
  93. package/registry/combos/nestjs-prisma/variants/base/src/{authz.guard.ts → guards/authz.guard.ts} +12 -5
  94. package/registry/combos/nestjs-prisma/variants/base/src/rbac.defaults.ts +98 -27
  95. package/registry/combos/nestjs-prisma/variants/base/src/{audit-log.repository.ts → repositories/audit-log.repository.ts} +16 -5
  96. package/registry/combos/nestjs-prisma/variants/base/src/{country.repository.ts → repositories/country.repository.ts} +98 -25
  97. package/registry/combos/nestjs-prisma/variants/base/src/{customer.repository.ts → repositories/customer.repository.ts} +106 -27
  98. package/registry/combos/nestjs-prisma/variants/base/src/{language.repository.ts → repositories/language.repository.ts} +93 -25
  99. package/registry/combos/nestjs-prisma/variants/base/src/{rbac.repository.ts → repositories/rbac.repository.ts} +229 -55
  100. package/registry/combos/nestjs-prisma/variants/base/src/seed.ts +78 -20
  101. package/registry/combos/nestjs-prisma/variants/base/src/services/auth.service.ts +1064 -0
  102. package/registry/combos/nestjs-prisma/variants/workspaces/src/auth.module.ts +55 -27
  103. package/registry/combos/nestjs-prisma/variants/workspaces/src/{admin.controller.ts → controllers/admin.controller.ts} +544 -128
  104. package/registry/combos/nestjs-prisma/variants/workspaces/src/{workspace.controller.ts → controllers/workspace.controller.ts} +93 -26
  105. package/registry/combos/nestjs-prisma/variants/workspaces/src/{authz.guard.ts → guards/authz.guard.ts} +26 -8
  106. package/registry/combos/nestjs-prisma/variants/workspaces/src/rbac.defaults.ts +104 -29
  107. package/registry/combos/nestjs-prisma/variants/workspaces/src/{audit-log.repository.ts → repositories/audit-log.repository.ts} +16 -5
  108. package/registry/combos/nestjs-prisma/variants/workspaces/src/{country.repository.ts → repositories/country.repository.ts} +127 -26
  109. package/registry/combos/nestjs-prisma/variants/workspaces/src/{customer.repository.ts → repositories/customer.repository.ts} +137 -28
  110. package/registry/combos/nestjs-prisma/variants/workspaces/src/repositories/language.repository.ts +243 -0
  111. package/registry/combos/nestjs-prisma/variants/workspaces/src/{rbac.repository.ts → repositories/rbac.repository.ts} +314 -74
  112. package/registry/combos/nestjs-prisma/variants/workspaces/src/{workspace.repository.ts → repositories/workspace.repository.ts} +94 -24
  113. package/registry/combos/nestjs-prisma/variants/workspaces/src/seed.ts +109 -29
  114. package/registry/combos/nestjs-prisma/variants/workspaces/src/services/auth.service.ts +961 -0
  115. package/registry.json +4 -4
  116. package/simple-auth-kit.ts +29 -2
  117. package/registry/combos/express-drizzle/shared/src/auth.router.ts +0 -266
  118. package/registry/combos/express-drizzle/shared/src/password-reset.repository.ts +0 -35
  119. package/registry/combos/express-drizzle/variants/base/src/admin.router.ts +0 -307
  120. package/registry/combos/express-drizzle/variants/workspaces/src/admin.router.ts +0 -323
  121. package/registry/combos/express-drizzle/variants/workspaces/src/workspace.router.ts +0 -123
  122. package/registry/combos/express-prisma/shared/src/auth.router.ts +0 -269
  123. package/registry/combos/express-prisma/shared/src/password-reset.repository.ts +0 -29
  124. package/registry/combos/express-prisma/variants/base/src/admin.router.ts +0 -314
  125. package/registry/combos/express-prisma/variants/workspaces/src/admin.router.ts +0 -330
  126. package/registry/combos/express-prisma/variants/workspaces/src/workspace.router.ts +0 -123
  127. package/registry/combos/nestjs-drizzle/shared/src/oauth.repository.ts +0 -36
  128. package/registry/combos/nestjs-drizzle/shared/src/password-reset.repository.ts +0 -29
  129. package/registry/combos/nestjs-drizzle/variants/workspaces/src/auth.service.ts +0 -553
  130. package/registry/combos/nestjs-prisma/shared/src/password-reset.repository.ts +0 -29
  131. package/registry/combos/nestjs-prisma/variants/base/src/auth.service.ts +0 -618
  132. package/registry/combos/nestjs-prisma/variants/workspaces/src/auth.service.ts +0 -509
  133. package/registry/combos/nestjs-prisma/variants/workspaces/src/language.repository.ts +0 -143
@@ -2,30 +2,37 @@ import { PrismaPg } from "@prisma/adapter-pg";
2
2
  import { DynamicModule, Module } from "@nestjs/common";
3
3
  import { APP_FILTER, APP_GUARD, APP_INTERCEPTOR } from "@nestjs/core";
4
4
  import { ThrottlerGuard, ThrottlerModule } from "@nestjs/throttler";
5
- import { AbilityGuard } from "./ability.guard.js";
6
- import { AdminController } from "./admin.controller.js";
7
- import { AuditLogGateway } from "./audit-log.gateway.js";
8
- import { AuditLogRepository } from "./audit-log.repository.js";
9
- import { AuthCoreErrorFilter } from "./auth-core-error.filter.js";
5
+ import { AbilityGuard } from "./guards/ability.guard.js";
6
+ import { AdminController } from "./controllers/admin.controller.js";
7
+ import { AuditLogGateway } from "./gateways/audit-log.gateway.js";
8
+ import { AuditLogRepository } from "./repositories/audit-log.repository.js";
9
+ import { AuthCoreErrorFilter } from "./filters/auth-core-error.filter.js";
10
10
  import { AUTH_CONFIG, AuthConfig, defaultAuthConfig } from "./auth.config.js";
11
- import { AuthController } from "./auth.controller.js";
12
- import { AuthGuard } from "./auth.guard.js";
13
- import { AuthService } from "./auth.service.js";
14
- import { AuthzGuard } from "./authz.guard.js";
15
- import { PrismaClient } from "../generated/prisma/client.js";
16
- import { CountryRepository } from "./country.repository.js";
17
- import { CustomerRepository } from "./customer.repository.js";
11
+ import { AuthController } from "./controllers/auth.controller.js";
12
+ import { AuthGuard } from "./guards/auth.guard.js";
13
+ import { AuthService } from "./services/auth.service.js";
14
+ import { AuthzGuard } from "./guards/authz.guard.js";
15
+ import { PrismaClient } from "./../generated/prisma/client.js";
16
+ import { CountryRepository } from "./repositories/country.repository.js";
17
+ import { CustomerRepository } from "./repositories/customer.repository.js";
18
18
  import { KeyProviderService } from "./key-provider.js";
19
- import { LanguageRepository } from "./language.repository.js";
20
- import { OAuthRepository } from "./oauth.repository.js";
21
- import { PasswordResetRepository } from "./password-reset.repository.js";
22
- import { InMemoryPermissionCacheStore, PERMISSION_CACHE_STORE, PermissionCache } from "./permission-cache.js";
23
- import { InMemoryRateLimitStore, RATE_LIMIT_STORE } from "./rate-limit.store.js";
24
- import { RbacRepository } from "./rbac.repository.js";
25
- import { ResponseInterceptor } from "./response.interceptor.js";
19
+ import { LanguageRepository } from "./repositories/language.repository.js";
20
+ import { OAuthRepository } from "./repositories/oauth.repository.js";
21
+ import { PasswordResetRepository } from "./repositories/password-reset.repository.js";
22
+ import {
23
+ InMemoryPermissionCacheStore,
24
+ PERMISSION_CACHE_STORE,
25
+ PermissionCache,
26
+ } from "./permission-cache.js";
27
+ import {
28
+ InMemoryRateLimitStore,
29
+ RATE_LIMIT_STORE,
30
+ } from "./rate-limit.store.js";
31
+ import { RbacRepository } from "./repositories/rbac.repository.js";
32
+ import { ResponseInterceptor } from "./interceptors/response.interceptor.js";
26
33
  import { assertEveryRouteDeclaresATier } from "./route-tiers.js";
27
- import { SessionRepository } from "./session.repository.js";
28
- import { TwoFactorRepository } from "./two-factor.repository.js";
34
+ import { SessionRepository } from "./repositories/session.repository.js";
35
+ import { TwoFactorRepository } from "./repositories/two-factor.repository.js";
29
36
 
30
37
  // Both what the module registers and what the startup tier check walks — one list, so a
31
38
  // controller can't be added and left out of the check.
@@ -36,10 +43,15 @@ export class AuthModule {
36
43
  static forRoot(config: Partial<AuthConfig> = {}): DynamicModule {
37
44
  // Fail-closed before anything else exists — nothing above this line allocates a database
38
45
  // client or a port, so a failed boot leaves nothing behind.
39
- assertEveryRouteDeclaresATier(AUTH_CONTROLLERS, { authentication: AuthGuard, ability: AbilityGuard });
46
+ assertEveryRouteDeclaresATier(AUTH_CONTROLLERS, {
47
+ authentication: AuthGuard,
48
+ ability: AbilityGuard,
49
+ });
40
50
 
41
51
  const resolved: AuthConfig = { ...defaultAuthConfig, ...config };
42
- const adapter = new PrismaPg({ connectionString: process.env["DATABASE_URL"] });
52
+ const adapter = new PrismaPg({
53
+ connectionString: process.env["DATABASE_URL"],
54
+ });
43
55
 
44
56
  if (!config.permissionCacheStore || !config.rateLimitStore) {
45
57
  console.warn(
@@ -51,24 +63,36 @@ export class AuthModule {
51
63
  }
52
64
  return {
53
65
  module: AuthModule,
54
- imports: resolved.throttle === false ? [] : [ThrottlerModule.forRoot(resolved.throttle)],
66
+ imports:
67
+ resolved.throttle === false
68
+ ? []
69
+ : [ThrottlerModule.forRoot(resolved.throttle)],
55
70
  controllers: AUTH_CONTROLLERS,
56
71
  providers: [
57
72
  { provide: AUTH_CONFIG, useValue: resolved },
58
73
  { provide: PrismaClient, useValue: new PrismaClient({ adapter }) },
59
74
  // Swap for a Redis-backed store by passing `permissionCacheStore` to forRoot.
60
- { provide: PERMISSION_CACHE_STORE, useValue: config.permissionCacheStore ?? new InMemoryPermissionCacheStore() },
75
+ {
76
+ provide: PERMISSION_CACHE_STORE,
77
+ useValue:
78
+ config.permissionCacheStore ?? new InMemoryPermissionCacheStore(),
79
+ },
61
80
  PermissionCache,
62
81
  { provide: APP_FILTER, useClass: AuthCoreErrorFilter },
63
82
  { provide: APP_INTERCEPTOR, useClass: ResponseInterceptor },
64
83
  // Registered from here rather than the consumer's root module so throttling ships with
65
84
  // the combo. Runs before the route-level guards, exactly like every other APP_GUARD.
66
- ...(resolved.throttle === false ? [] : [{ provide: APP_GUARD, useClass: ThrottlerGuard }]),
85
+ ...(resolved.throttle === false
86
+ ? []
87
+ : [{ provide: APP_GUARD, useClass: ThrottlerGuard }]),
67
88
  AuditLogRepository,
68
89
  AuditLogGateway,
69
90
  SessionRepository,
70
91
  KeyProviderService,
71
- { provide: RATE_LIMIT_STORE, useValue: config.rateLimitStore ?? new InMemoryRateLimitStore() },
92
+ {
93
+ provide: RATE_LIMIT_STORE,
94
+ useValue: config.rateLimitStore ?? new InMemoryRateLimitStore(),
95
+ },
72
96
  RbacRepository,
73
97
  TwoFactorRepository,
74
98
  OAuthRepository,
@@ -81,7 +105,14 @@ export class AuthModule {
81
105
  AuthzGuard,
82
106
  AbilityGuard,
83
107
  ],
84
- exports: [AuthService, AuthGuard, AuthzGuard, AbilityGuard, PermissionCache, PrismaClient],
108
+ exports: [
109
+ AuthService,
110
+ AuthGuard,
111
+ AuthzGuard,
112
+ AbilityGuard,
113
+ PermissionCache,
114
+ PrismaClient,
115
+ ],
85
116
  };
86
117
  }
87
118
  }