@nathapp/nestjs-oauth-prisma 1.0.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 (61) hide show
  1. package/README.md +249 -0
  2. package/dist/abstract-prisma-public-client.repository.d.ts +20 -0
  3. package/dist/abstract-prisma-public-client.repository.js +54 -0
  4. package/dist/abstract-prisma-public-client.repository.js.map +1 -0
  5. package/dist/index.d.ts +12 -0
  6. package/dist/index.js +29 -0
  7. package/dist/index.js.map +1 -0
  8. package/dist/oauth-prisma.module.d.ts +7 -0
  9. package/dist/oauth-prisma.module.js +75 -0
  10. package/dist/oauth-prisma.module.js.map +1 -0
  11. package/dist/oauth-prisma.types.d.ts +189 -0
  12. package/dist/oauth-prisma.types.js +43 -0
  13. package/dist/oauth-prisma.types.js.map +1 -0
  14. package/dist/prisma-consent-logout-target.resolver.d.ts +12 -0
  15. package/dist/prisma-consent-logout-target.resolver.js +43 -0
  16. package/dist/prisma-consent-logout-target.resolver.js.map +1 -0
  17. package/dist/prisma-oauth-access-token.repository.d.ts +41 -0
  18. package/dist/prisma-oauth-access-token.repository.js +124 -0
  19. package/dist/prisma-oauth-access-token.repository.js.map +1 -0
  20. package/dist/prisma-oauth-authorization-code.repository.d.ts +41 -0
  21. package/dist/prisma-oauth-authorization-code.repository.js +118 -0
  22. package/dist/prisma-oauth-authorization-code.repository.js.map +1 -0
  23. package/dist/prisma-oauth-client.repository.d.ts +50 -0
  24. package/dist/prisma-oauth-client.repository.js +193 -0
  25. package/dist/prisma-oauth-client.repository.js.map +1 -0
  26. package/dist/prisma-oauth-consent.repository.d.ts +36 -0
  27. package/dist/prisma-oauth-consent.repository.js +95 -0
  28. package/dist/prisma-oauth-consent.repository.js.map +1 -0
  29. package/dist/prisma-oauth-device-code.repository.d.ts +36 -0
  30. package/dist/prisma-oauth-device-code.repository.js +124 -0
  31. package/dist/prisma-oauth-device-code.repository.js.map +1 -0
  32. package/dist/prisma-oauth-pushed-request.repository.d.ts +16 -0
  33. package/dist/prisma-oauth-pushed-request.repository.js +104 -0
  34. package/dist/prisma-oauth-pushed-request.repository.js.map +1 -0
  35. package/dist/prisma-oauth-refresh-token.repository.d.ts +28 -0
  36. package/dist/prisma-oauth-refresh-token.repository.js +100 -0
  37. package/dist/prisma-oauth-refresh-token.repository.js.map +1 -0
  38. package/dist/prisma-oauth-scope.repository.d.ts +25 -0
  39. package/dist/prisma-oauth-scope.repository.js +87 -0
  40. package/dist/prisma-oauth-scope.repository.js.map +1 -0
  41. package/dist/prisma-oauth-signing-key.repository.d.ts +24 -0
  42. package/dist/prisma-oauth-signing-key.repository.js +110 -0
  43. package/dist/prisma-oauth-signing-key.repository.js.map +1 -0
  44. package/dist/prisma-signing-key.provider.d.ts +22 -0
  45. package/dist/prisma-signing-key.provider.js +133 -0
  46. package/dist/prisma-signing-key.provider.js.map +1 -0
  47. package/package.json +45 -0
  48. package/prisma/migrations/20260608_oauth_signing_keys_one_active/migration.mysql.sql +8 -0
  49. package/prisma/migrations/20260608_oauth_signing_keys_one_active/migration.sql +3 -0
  50. package/prisma/migrations/20260724_oauth_client_advanced_auth_fields/migration.mysql.sql +10 -0
  51. package/prisma/migrations/20260724_oauth_client_advanced_auth_fields/migration.sql +9 -0
  52. package/prisma/migrations/20260725_oauth_resource_indicator/migration.mysql.sql +10 -0
  53. package/prisma/migrations/20260725_oauth_resource_indicator/migration.sql +15 -0
  54. package/prisma/migrations/20260725_oauth_token_exchange_actor/migration.mysql.sql +2 -0
  55. package/prisma/migrations/20260725_oauth_token_exchange_actor/migration.sql +2 -0
  56. package/prisma/migrations/20261003_oauth_access_token_mtls_binding/migration.mysql.sql +2 -0
  57. package/prisma/migrations/20261003_oauth_access_token_mtls_binding/migration.sql +2 -0
  58. package/prisma/migrations/20261004_oauth_signing_keys_one_active_per_tenant/migration.mysql.sql +13 -0
  59. package/prisma/migrations/20261004_oauth_signing_keys_one_active_per_tenant/migration.sql +14 -0
  60. package/prisma/oauth.prisma +287 -0
  61. package/prisma/sql/long-text-columns.mysql.sql +29 -0
@@ -0,0 +1,193 @@
1
+ "use strict";
2
+ var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
3
+ var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
4
+ if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
5
+ else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
6
+ return c > 3 && r && Object.defineProperty(target, key, r), r;
7
+ };
8
+ var __metadata = (this && this.__metadata) || function (k, v) {
9
+ if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
10
+ };
11
+ var __param = (this && this.__param) || function (paramIndex, decorator) {
12
+ return function (target, key) { decorator(target, key, paramIndex); }
13
+ };
14
+ Object.defineProperty(exports, "__esModule", { value: true });
15
+ exports.PrismaOAuthClientRepository = void 0;
16
+ const common_1 = require("@nestjs/common");
17
+ const nestjs_prisma_1 = require("@nathapp/nestjs-prisma");
18
+ const nestjs_data_1 = require("@nathapp/nestjs-data");
19
+ const oauth_prisma_types_1 = require("./oauth-prisma.types");
20
+ let PrismaOAuthClientRepository = class PrismaOAuthClientRepository extends nestjs_prisma_1.AbstractPrismaRepository {
21
+ constructor(tx) { super(tx); }
22
+ modelDelegate(client) {
23
+ return (0, oauth_prisma_types_1.getOAuthPrismaDelegate)(client, 'oAuthClient');
24
+ }
25
+ get oauthModel() {
26
+ return this.modelDelegate(this.tx.getClient());
27
+ }
28
+ toDomain(e) {
29
+ var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k, _l, _m, _o, _p, _q, _r, _s, _t, _u, _v;
30
+ return {
31
+ id: e.id,
32
+ tenantId: (_a = e.tenantId) !== null && _a !== void 0 ? _a : undefined,
33
+ clientId: e.clientId,
34
+ clientSecretHash: (_b = e.clientSecretHash) !== null && _b !== void 0 ? _b : undefined,
35
+ name: e.name,
36
+ description: (_c = e.description) !== null && _c !== void 0 ? _c : undefined,
37
+ clientType: e.clientType,
38
+ redirectUris: ((_d = e.redirectUris) !== null && _d !== void 0 ? _d : []),
39
+ postLogoutRedirectUris: ((_e = e.postLogoutRedirectUris) !== null && _e !== void 0 ? _e : []),
40
+ grantTypes: ((_f = e.grantTypes) !== null && _f !== void 0 ? _f : []),
41
+ responseTypes: ((_g = e.responseTypes) !== null && _g !== void 0 ? _g : []),
42
+ accessTokenTtl: e.accessTokenTtl,
43
+ refreshTokenTtl: e.refreshTokenTtl,
44
+ authCodeTtl: e.authCodeTtl,
45
+ pkceRequired: e.pkceRequired,
46
+ requireConsent: e.requireConsent,
47
+ dpopBoundAccessTokens: e.dpopBoundAccessTokens,
48
+ backchannelLogoutUri: (_h = e.backchannelLogoutUri) !== null && _h !== void 0 ? _h : undefined,
49
+ backchannelLogoutSessionRequired: (_j = e.backchannelLogoutSessionRequired) !== null && _j !== void 0 ? _j : false,
50
+ frontchannelLogoutUri: (_k = e.frontchannelLogoutUri) !== null && _k !== void 0 ? _k : undefined,
51
+ frontchannelLogoutSessionRequired: (_l = e.frontchannelLogoutSessionRequired) !== null && _l !== void 0 ? _l : false,
52
+ tokenEndpointAuthMethod: (_m = e.tokenEndpointAuthMethod) !== null && _m !== void 0 ? _m : undefined,
53
+ jwks: (0, oauth_prisma_types_1.asJsonObject)(e.jwks),
54
+ jwksUri: (_o = e.jwksUri) !== null && _o !== void 0 ? _o : undefined,
55
+ tlsClientAuthSubjectDn: (_p = e.tlsClientAuthSubjectDn) !== null && _p !== void 0 ? _p : undefined,
56
+ tlsClientAuthSanDns: (_q = e.tlsClientAuthSanDns) !== null && _q !== void 0 ? _q : undefined,
57
+ tlsClientAuthSelfSignedThumbprint: (_r = e.tlsClientAuthSelfSignedThumbprint) !== null && _r !== void 0 ? _r : undefined,
58
+ clientSecretHashPrevious: (_s = e.clientSecretHashPrevious) !== null && _s !== void 0 ? _s : undefined,
59
+ previousSecretExpiresAt: (_t = e.previousSecretExpiresAt) !== null && _t !== void 0 ? _t : undefined,
60
+ allowedResources: ((_u = e.allowedResources) !== null && _u !== void 0 ? _u : []),
61
+ requireResource: (_v = e.requireResource) !== null && _v !== void 0 ? _v : false,
62
+ status: e.status,
63
+ createdAt: e.createdAt,
64
+ updatedAt: e.updatedAt,
65
+ };
66
+ }
67
+ toPersistenceCreate(d) {
68
+ var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k, _l, _m, _o, _p, _q, _r, _s, _t, _u;
69
+ return {
70
+ id: d.id,
71
+ tenantId: (_a = d.tenantId) !== null && _a !== void 0 ? _a : null,
72
+ clientId: d.clientId,
73
+ clientSecretHash: (_b = d.clientSecretHash) !== null && _b !== void 0 ? _b : null,
74
+ name: d.name,
75
+ description: (_c = d.description) !== null && _c !== void 0 ? _c : null,
76
+ clientType: d.clientType,
77
+ redirectUris: d.redirectUris,
78
+ postLogoutRedirectUris: (_d = d.postLogoutRedirectUris) !== null && _d !== void 0 ? _d : [],
79
+ grantTypes: d.grantTypes,
80
+ responseTypes: d.responseTypes,
81
+ accessTokenTtl: d.accessTokenTtl,
82
+ refreshTokenTtl: d.refreshTokenTtl,
83
+ authCodeTtl: d.authCodeTtl,
84
+ pkceRequired: d.pkceRequired,
85
+ requireConsent: d.requireConsent,
86
+ dpopBoundAccessTokens: (_e = d.dpopBoundAccessTokens) !== null && _e !== void 0 ? _e : false,
87
+ backchannelLogoutUri: (_f = d.backchannelLogoutUri) !== null && _f !== void 0 ? _f : null,
88
+ backchannelLogoutSessionRequired: (_g = d.backchannelLogoutSessionRequired) !== null && _g !== void 0 ? _g : null,
89
+ frontchannelLogoutUri: (_h = d.frontchannelLogoutUri) !== null && _h !== void 0 ? _h : null,
90
+ frontchannelLogoutSessionRequired: (_j = d.frontchannelLogoutSessionRequired) !== null && _j !== void 0 ? _j : null,
91
+ tokenEndpointAuthMethod: (_k = d.tokenEndpointAuthMethod) !== null && _k !== void 0 ? _k : null,
92
+ jwks: (_l = d.jwks) !== null && _l !== void 0 ? _l : null,
93
+ jwksUri: (_m = d.jwksUri) !== null && _m !== void 0 ? _m : null,
94
+ tlsClientAuthSubjectDn: (_o = d.tlsClientAuthSubjectDn) !== null && _o !== void 0 ? _o : null,
95
+ tlsClientAuthSanDns: (_p = d.tlsClientAuthSanDns) !== null && _p !== void 0 ? _p : null,
96
+ tlsClientAuthSelfSignedThumbprint: (_q = d.tlsClientAuthSelfSignedThumbprint) !== null && _q !== void 0 ? _q : null,
97
+ clientSecretHashPrevious: (_r = d.clientSecretHashPrevious) !== null && _r !== void 0 ? _r : null,
98
+ previousSecretExpiresAt: (_s = d.previousSecretExpiresAt) !== null && _s !== void 0 ? _s : null,
99
+ allowedResources: (_t = d.allowedResources) !== null && _t !== void 0 ? _t : [],
100
+ requireResource: (_u = d.requireResource) !== null && _u !== void 0 ? _u : false,
101
+ status: d.status,
102
+ };
103
+ }
104
+ toPersistenceUpdate(p) {
105
+ const out = {};
106
+ if (p.name !== undefined)
107
+ out.name = p.name;
108
+ if (p.description !== undefined)
109
+ out.description = p.description;
110
+ if (p.redirectUris !== undefined)
111
+ out.redirectUris = p.redirectUris;
112
+ if (p.postLogoutRedirectUris !== undefined)
113
+ out.postLogoutRedirectUris = p.postLogoutRedirectUris;
114
+ if (p.grantTypes !== undefined)
115
+ out.grantTypes = p.grantTypes;
116
+ if (p.responseTypes !== undefined)
117
+ out.responseTypes = p.responseTypes;
118
+ if (p.accessTokenTtl !== undefined)
119
+ out.accessTokenTtl = p.accessTokenTtl;
120
+ if (p.refreshTokenTtl !== undefined)
121
+ out.refreshTokenTtl = p.refreshTokenTtl;
122
+ if (p.authCodeTtl !== undefined)
123
+ out.authCodeTtl = p.authCodeTtl;
124
+ if (p.pkceRequired !== undefined)
125
+ out.pkceRequired = p.pkceRequired;
126
+ if (p.requireConsent !== undefined)
127
+ out.requireConsent = p.requireConsent;
128
+ if (p.dpopBoundAccessTokens !== undefined)
129
+ out.dpopBoundAccessTokens = p.dpopBoundAccessTokens;
130
+ if (p.backchannelLogoutUri !== undefined)
131
+ out.backchannelLogoutUri = p.backchannelLogoutUri;
132
+ if (p.backchannelLogoutSessionRequired !== undefined)
133
+ out.backchannelLogoutSessionRequired = p.backchannelLogoutSessionRequired;
134
+ if (p.frontchannelLogoutUri !== undefined)
135
+ out.frontchannelLogoutUri = p.frontchannelLogoutUri;
136
+ if (p.frontchannelLogoutSessionRequired !== undefined)
137
+ out.frontchannelLogoutSessionRequired = p.frontchannelLogoutSessionRequired;
138
+ if (p.status !== undefined)
139
+ out.status = p.status;
140
+ if (p.clientSecretHash !== undefined)
141
+ out.clientSecretHash = p.clientSecretHash;
142
+ if (p.tokenEndpointAuthMethod !== undefined)
143
+ out.tokenEndpointAuthMethod = p.tokenEndpointAuthMethod;
144
+ if (p.jwks !== undefined)
145
+ out.jwks = p.jwks;
146
+ if (p.jwksUri !== undefined)
147
+ out.jwksUri = p.jwksUri;
148
+ if (p.tlsClientAuthSubjectDn !== undefined)
149
+ out.tlsClientAuthSubjectDn = p.tlsClientAuthSubjectDn;
150
+ if (p.tlsClientAuthSanDns !== undefined)
151
+ out.tlsClientAuthSanDns = p.tlsClientAuthSanDns;
152
+ if (p.tlsClientAuthSelfSignedThumbprint !== undefined)
153
+ out.tlsClientAuthSelfSignedThumbprint = p.tlsClientAuthSelfSignedThumbprint;
154
+ if (p.clientSecretHashPrevious !== undefined)
155
+ out.clientSecretHashPrevious = p.clientSecretHashPrevious;
156
+ if (p.previousSecretExpiresAt !== undefined)
157
+ out.previousSecretExpiresAt = p.previousSecretExpiresAt;
158
+ if (p.allowedResources !== undefined)
159
+ out.allowedResources = p.allowedResources;
160
+ if (p.requireResource !== undefined)
161
+ out.requireResource = p.requireResource;
162
+ return out;
163
+ }
164
+ async update(idOrClientId, patch) {
165
+ let existing = await this.oauthModel.findUnique({ where: { id: idOrClientId } });
166
+ if (!existing) {
167
+ existing = await this.oauthModel.findUnique({ where: { clientId: idOrClientId } });
168
+ }
169
+ const id = existing ? existing.id : idOrClientId;
170
+ const data = this.toPersistenceUpdate(patch);
171
+ const updated = await this.oauthModel.update({ where: { id }, data });
172
+ return this.toDomain(updated);
173
+ }
174
+ async findByClientId(clientId) {
175
+ const e = await this.oauthModel.findUnique({ where: { clientId } });
176
+ return e ? this.toDomain(e) : null;
177
+ }
178
+ async findByClientIds(clientIds) {
179
+ return (await this.oauthModel.findMany({ where: { clientId: { in: clientIds } } })).map((r) => this.toDomain(r));
180
+ }
181
+ async findPage(query) {
182
+ const where = query.tenantId ? { tenantId: query.tenantId } : {};
183
+ const result = await (0, nestjs_prisma_1.Paginate)(this.oauthModel, query, { where, orderBy: { createdAt: 'desc' } });
184
+ return result.remap((row) => this.toDomain(row));
185
+ }
186
+ };
187
+ exports.PrismaOAuthClientRepository = PrismaOAuthClientRepository;
188
+ exports.PrismaOAuthClientRepository = PrismaOAuthClientRepository = __decorate([
189
+ (0, common_1.Injectable)(),
190
+ __param(0, (0, common_1.Inject)(nestjs_data_1.TRANSACTION_MANAGER)),
191
+ __metadata("design:paramtypes", [Object])
192
+ ], PrismaOAuthClientRepository);
193
+ //# sourceMappingURL=prisma-oauth-client.repository.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"prisma-oauth-client.repository.js","sourceRoot":"","sources":["../lib/prisma-oauth-client.repository.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,36 @@
1
+ import { AbstractPrismaPublicClientRepository } from './abstract-prisma-public-client.repository';
2
+ import { ITransactionManager } from '@nathapp/nestjs-data';
3
+ import type { PrismaClientLike } from '@nathapp/nestjs-prisma';
4
+ import { type IOAuthConsentRepository, type IOAuthConsent } from '@nathapp/nestjs-oauth';
5
+ import { type OAuthConsentRow, type OAuthPrismaDelegate } from './oauth-prisma.types';
6
+ export declare class PrismaOAuthConsentRepository extends AbstractPrismaPublicClientRepository<IOAuthConsent, OAuthConsentRow> implements IOAuthConsentRepository {
7
+ constructor(tx: ITransactionManager);
8
+ protected readonly prismaModelName = "oAuthConsent";
9
+ protected modelDelegate(client: PrismaClientLike): OAuthPrismaDelegate<OAuthConsentRow>;
10
+ protected get relationIncludes(): Record<string, unknown>;
11
+ protected toDomain(e: OAuthConsentRow): IOAuthConsent;
12
+ protected toPersistenceCreate(d: IOAuthConsent): {
13
+ id: string;
14
+ tenantId: string | null;
15
+ client: {
16
+ connect: {
17
+ clientId: string;
18
+ };
19
+ };
20
+ userId: string;
21
+ grantedAt: Date;
22
+ scopes: {
23
+ create: {
24
+ scope: {
25
+ connect: {
26
+ code: string;
27
+ };
28
+ };
29
+ }[];
30
+ };
31
+ };
32
+ protected toPersistenceUpdate(p: Partial<IOAuthConsent>): Record<string, unknown>;
33
+ findActive(userId: string, clientId: string): Promise<IOAuthConsent | null>;
34
+ findActiveClientPublicIds(userId: string, tenantId?: string | null): Promise<string[]>;
35
+ revoke(userId: string, clientId: string, revokedAt: Date): Promise<void>;
36
+ }
@@ -0,0 +1,95 @@
1
+ "use strict";
2
+ var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
3
+ var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
4
+ if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
5
+ else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
6
+ return c > 3 && r && Object.defineProperty(target, key, r), r;
7
+ };
8
+ var __metadata = (this && this.__metadata) || function (k, v) {
9
+ if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
10
+ };
11
+ var __param = (this && this.__param) || function (paramIndex, decorator) {
12
+ return function (target, key) { decorator(target, key, paramIndex); }
13
+ };
14
+ Object.defineProperty(exports, "__esModule", { value: true });
15
+ exports.PrismaOAuthConsentRepository = void 0;
16
+ const common_1 = require("@nestjs/common");
17
+ const abstract_prisma_public_client_repository_1 = require("./abstract-prisma-public-client.repository");
18
+ const nestjs_data_1 = require("@nathapp/nestjs-data");
19
+ const oauth_prisma_types_1 = require("./oauth-prisma.types");
20
+ let PrismaOAuthConsentRepository = class PrismaOAuthConsentRepository extends abstract_prisma_public_client_repository_1.AbstractPrismaPublicClientRepository {
21
+ constructor(tx) {
22
+ super(tx);
23
+ this.prismaModelName = 'oAuthConsent';
24
+ }
25
+ modelDelegate(client) {
26
+ return (0, oauth_prisma_types_1.getOAuthPrismaDelegate)(client, this.prismaModelName);
27
+ }
28
+ get relationIncludes() {
29
+ return { client: { select: { clientId: true } }, scopes: { include: { scope: true } } };
30
+ }
31
+ toDomain(e) {
32
+ var _a, _b, _c;
33
+ return {
34
+ id: e.id,
35
+ tenantId: (_a = e.tenantId) !== null && _a !== void 0 ? _a : undefined,
36
+ clientId: e.client.clientId,
37
+ userId: e.userId,
38
+ scopes: ((_b = e.scopes) !== null && _b !== void 0 ? _b : []).map((scope) => scope.scope.code),
39
+ grantedAt: e.grantedAt,
40
+ revokedAt: (_c = e.revokedAt) !== null && _c !== void 0 ? _c : undefined,
41
+ };
42
+ }
43
+ toPersistenceCreate(d) {
44
+ var _a;
45
+ return {
46
+ id: d.id,
47
+ tenantId: (_a = d.tenantId) !== null && _a !== void 0 ? _a : null,
48
+ client: { connect: { clientId: d.clientId } },
49
+ userId: d.userId,
50
+ grantedAt: d.grantedAt,
51
+ scopes: {
52
+ create: d.scopes.map((code) => ({ scope: { connect: { code } } })),
53
+ },
54
+ };
55
+ }
56
+ toPersistenceUpdate(p) {
57
+ const out = {};
58
+ if (p.revokedAt !== undefined)
59
+ out.revokedAt = p.revokedAt;
60
+ return out;
61
+ }
62
+ async findActive(userId, clientId) {
63
+ const e = await this.oauthModel.findFirst({
64
+ where: { userId, client: { clientId }, revokedAt: null },
65
+ include: { client: { select: { clientId: true } }, scopes: { include: { scope: true } } },
66
+ });
67
+ return e ? this.toDomain(e) : null;
68
+ }
69
+ async findActiveClientPublicIds(userId, tenantId) {
70
+ const where = { userId, revokedAt: null };
71
+ if (tenantId != null)
72
+ where.tenantId = tenantId;
73
+ const rows = await this.oauthModel.findMany({
74
+ where,
75
+ select: { client: { select: { clientId: true } } },
76
+ });
77
+ const seen = new Set();
78
+ for (const row of rows)
79
+ seen.add(row.client.clientId);
80
+ return Array.from(seen);
81
+ }
82
+ async revoke(userId, clientId, revokedAt) {
83
+ await this.oauthModel.updateMany({
84
+ where: { userId, client: { clientId }, revokedAt: null },
85
+ data: { revokedAt },
86
+ });
87
+ }
88
+ };
89
+ exports.PrismaOAuthConsentRepository = PrismaOAuthConsentRepository;
90
+ exports.PrismaOAuthConsentRepository = PrismaOAuthConsentRepository = __decorate([
91
+ (0, common_1.Injectable)(),
92
+ __param(0, (0, common_1.Inject)(nestjs_data_1.TRANSACTION_MANAGER)),
93
+ __metadata("design:paramtypes", [Object])
94
+ ], PrismaOAuthConsentRepository);
95
+ //# sourceMappingURL=prisma-oauth-consent.repository.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"prisma-oauth-consent.repository.js","sourceRoot":"","sources":["../lib/prisma-oauth-consent.repository.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,36 @@
1
+ import { AbstractPrismaPublicClientRepository } from './abstract-prisma-public-client.repository';
2
+ import type { PrismaClientLike } from '@nathapp/nestjs-prisma';
3
+ import { ITransactionManager } from '@nathapp/nestjs-data';
4
+ import { type IOAuthDeviceCodeRepository, type IOAuthDeviceCode } from '@nathapp/nestjs-oauth';
5
+ import { type OAuthDeviceCodeRow, type OAuthPrismaDelegate } from './oauth-prisma.types';
6
+ export declare class PrismaOAuthDeviceCodeRepository extends AbstractPrismaPublicClientRepository<IOAuthDeviceCode, OAuthDeviceCodeRow> implements IOAuthDeviceCodeRepository {
7
+ constructor(tx: ITransactionManager);
8
+ protected readonly prismaModelName = "oAuthDeviceCode";
9
+ protected modelDelegate(client: PrismaClientLike): OAuthPrismaDelegate<OAuthDeviceCodeRow>;
10
+ protected toDomain(e: OAuthDeviceCodeRow): IOAuthDeviceCode;
11
+ protected toPersistenceCreate(d: IOAuthDeviceCode): {
12
+ id: string;
13
+ tenantId: string | null;
14
+ deviceCodeHash: string;
15
+ userCodeHash: string;
16
+ client: {
17
+ connect: {
18
+ clientId: string;
19
+ };
20
+ };
21
+ scope: string | null;
22
+ status: import("@nathapp/nestjs-oauth").DeviceCodeStatus;
23
+ userId: string | null;
24
+ authTime: Date | null;
25
+ interval: number;
26
+ expiresAt: Date;
27
+ };
28
+ protected toPersistenceUpdate(p: Partial<IOAuthDeviceCode>): Record<string, unknown>;
29
+ findByDeviceCode(deviceCodeHash: string): Promise<IOAuthDeviceCode | null>;
30
+ findByUserCode(userCodeHash: string): Promise<IOAuthDeviceCode | null>;
31
+ markApproved(id: string, userId: string, authTime: Date, approvedAt: Date): Promise<void>;
32
+ markDenied(id: string): Promise<void>;
33
+ touchPolledAt(id: string, at: Date): Promise<void>;
34
+ consume(id: string, at: Date): Promise<boolean>;
35
+ deleteExpired(now: Date): Promise<number>;
36
+ }
@@ -0,0 +1,124 @@
1
+ "use strict";
2
+ var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
3
+ var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
4
+ if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
5
+ else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
6
+ return c > 3 && r && Object.defineProperty(target, key, r), r;
7
+ };
8
+ var __metadata = (this && this.__metadata) || function (k, v) {
9
+ if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
10
+ };
11
+ var __param = (this && this.__param) || function (paramIndex, decorator) {
12
+ return function (target, key) { decorator(target, key, paramIndex); }
13
+ };
14
+ Object.defineProperty(exports, "__esModule", { value: true });
15
+ exports.PrismaOAuthDeviceCodeRepository = void 0;
16
+ const common_1 = require("@nestjs/common");
17
+ const abstract_prisma_public_client_repository_1 = require("./abstract-prisma-public-client.repository");
18
+ const nestjs_data_1 = require("@nathapp/nestjs-data");
19
+ const oauth_prisma_types_1 = require("./oauth-prisma.types");
20
+ let PrismaOAuthDeviceCodeRepository = class PrismaOAuthDeviceCodeRepository extends abstract_prisma_public_client_repository_1.AbstractPrismaPublicClientRepository {
21
+ constructor(tx) {
22
+ super(tx);
23
+ this.prismaModelName = 'oAuthDeviceCode';
24
+ }
25
+ modelDelegate(client) {
26
+ return (0, oauth_prisma_types_1.getOAuthPrismaDelegate)(client, this.prismaModelName);
27
+ }
28
+ toDomain(e) {
29
+ var _a, _b, _c, _d, _e, _f, _g;
30
+ return {
31
+ id: e.id,
32
+ tenantId: (_a = e.tenantId) !== null && _a !== void 0 ? _a : undefined,
33
+ deviceCodeHash: e.deviceCodeHash,
34
+ userCodeHash: e.userCodeHash,
35
+ clientId: e.client.clientId,
36
+ scopes: e.scope ? e.scope.split(' ').filter(Boolean) : [],
37
+ status: e.status,
38
+ userId: (_b = e.userId) !== null && _b !== void 0 ? _b : undefined,
39
+ authTime: (_c = e.authTime) !== null && _c !== void 0 ? _c : undefined,
40
+ interval: (_d = e.interval) !== null && _d !== void 0 ? _d : 5,
41
+ lastPolledAt: (_e = e.lastPolledAt) !== null && _e !== void 0 ? _e : undefined,
42
+ approvedAt: (_f = e.approvedAt) !== null && _f !== void 0 ? _f : undefined,
43
+ consumedAt: (_g = e.consumedAt) !== null && _g !== void 0 ? _g : undefined,
44
+ expiresAt: e.expiresAt,
45
+ createdAt: e.createdAt,
46
+ };
47
+ }
48
+ toPersistenceCreate(d) {
49
+ var _a, _b, _c;
50
+ return {
51
+ id: d.id,
52
+ tenantId: (_a = d.tenantId) !== null && _a !== void 0 ? _a : null,
53
+ deviceCodeHash: d.deviceCodeHash,
54
+ userCodeHash: d.userCodeHash,
55
+ client: { connect: { clientId: d.clientId } },
56
+ scope: d.scopes.length > 0 ? d.scopes.join(' ') : null,
57
+ status: d.status,
58
+ userId: (_b = d.userId) !== null && _b !== void 0 ? _b : null,
59
+ authTime: (_c = d.authTime) !== null && _c !== void 0 ? _c : null,
60
+ interval: d.interval,
61
+ expiresAt: d.expiresAt,
62
+ };
63
+ }
64
+ toPersistenceUpdate(p) {
65
+ const out = {};
66
+ if (p.status !== undefined)
67
+ out.status = p.status;
68
+ if (p.userId !== undefined)
69
+ out.userId = p.userId;
70
+ if (p.authTime !== undefined)
71
+ out.authTime = p.authTime;
72
+ if (p.approvedAt !== undefined)
73
+ out.approvedAt = p.approvedAt;
74
+ if (p.lastPolledAt !== undefined)
75
+ out.lastPolledAt = p.lastPolledAt;
76
+ if (p.consumedAt !== undefined)
77
+ out.consumedAt = p.consumedAt;
78
+ return out;
79
+ }
80
+ async findByDeviceCode(deviceCodeHash) {
81
+ const e = await this.oauthModel.findUnique({ where: { deviceCodeHash }, include: { client: { select: { clientId: true } } } });
82
+ return e ? this.toDomain(e) : null;
83
+ }
84
+ async findByUserCode(userCodeHash) {
85
+ const e = await this.oauthModel.findUnique({ where: { userCodeHash }, include: { client: { select: { clientId: true } } } });
86
+ return e ? this.toDomain(e) : null;
87
+ }
88
+ async markApproved(id, userId, authTime, approvedAt) {
89
+ await this.oauthModel.update({
90
+ where: { id },
91
+ data: { status: 'approved', userId, authTime, approvedAt },
92
+ });
93
+ }
94
+ async markDenied(id) {
95
+ await this.oauthModel.update({
96
+ where: { id },
97
+ data: { status: 'denied' },
98
+ });
99
+ }
100
+ async touchPolledAt(id, at) {
101
+ await this.oauthModel.update({
102
+ where: { id },
103
+ data: { lastPolledAt: at },
104
+ });
105
+ }
106
+ async consume(id, at) {
107
+ const res = await this.oauthModel.updateMany({
108
+ where: { id, status: 'approved', consumedAt: null },
109
+ data: { consumedAt: at },
110
+ });
111
+ return res.count === 1;
112
+ }
113
+ async deleteExpired(now) {
114
+ const res = await this.oauthModel.deleteMany({ where: { expiresAt: { lt: now } } });
115
+ return res.count;
116
+ }
117
+ };
118
+ exports.PrismaOAuthDeviceCodeRepository = PrismaOAuthDeviceCodeRepository;
119
+ exports.PrismaOAuthDeviceCodeRepository = PrismaOAuthDeviceCodeRepository = __decorate([
120
+ (0, common_1.Injectable)(),
121
+ __param(0, (0, common_1.Inject)(nestjs_data_1.TRANSACTION_MANAGER)),
122
+ __metadata("design:paramtypes", [Object])
123
+ ], PrismaOAuthDeviceCodeRepository);
124
+ //# sourceMappingURL=prisma-oauth-device-code.repository.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"prisma-oauth-device-code.repository.js","sourceRoot":"","sources":["../lib/prisma-oauth-device-code.repository.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,16 @@
1
+ import { AbstractPrismaPublicClientRepository } from './abstract-prisma-public-client.repository';
2
+ import type { PrismaClientLike } from '@nathapp/nestjs-prisma';
3
+ import { ITransactionManager } from '@nathapp/nestjs-data';
4
+ import { type IOAuthPushedRequestRepository, type IOAuthPushedRequest } from '@nathapp/nestjs-oauth';
5
+ import { type OAuthPrismaDelegate, type OAuthPushedRequestRow } from './oauth-prisma.types';
6
+ export declare class PrismaOAuthPushedRequestRepository extends AbstractPrismaPublicClientRepository<IOAuthPushedRequest, OAuthPushedRequestRow> implements IOAuthPushedRequestRepository {
7
+ constructor(tx: ITransactionManager);
8
+ protected readonly prismaModelName = "oAuthPushedRequest";
9
+ protected modelDelegate(client: PrismaClientLike): OAuthPrismaDelegate<OAuthPushedRequestRow>;
10
+ protected toDomain(e: OAuthPushedRequestRow): IOAuthPushedRequest;
11
+ findByRequestUri(requestUriHash: string): Promise<IOAuthPushedRequest | null>;
12
+ consume(id: string, at: Date): Promise<boolean>;
13
+ deleteExpired(now: Date): Promise<number>;
14
+ protected toPersistenceCreate(d: IOAuthPushedRequest): Record<string, unknown>;
15
+ protected toPersistenceUpdate(p: Partial<IOAuthPushedRequest>): Record<string, unknown>;
16
+ }
@@ -0,0 +1,104 @@
1
+ "use strict";
2
+ var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
3
+ var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
4
+ if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
5
+ else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
6
+ return c > 3 && r && Object.defineProperty(target, key, r), r;
7
+ };
8
+ var __metadata = (this && this.__metadata) || function (k, v) {
9
+ if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
10
+ };
11
+ var __param = (this && this.__param) || function (paramIndex, decorator) {
12
+ return function (target, key) { decorator(target, key, paramIndex); }
13
+ };
14
+ Object.defineProperty(exports, "__esModule", { value: true });
15
+ exports.PrismaOAuthPushedRequestRepository = void 0;
16
+ const common_1 = require("@nestjs/common");
17
+ const abstract_prisma_public_client_repository_1 = require("./abstract-prisma-public-client.repository");
18
+ const nestjs_data_1 = require("@nathapp/nestjs-data");
19
+ const oauth_prisma_types_1 = require("./oauth-prisma.types");
20
+ let PrismaOAuthPushedRequestRepository = class PrismaOAuthPushedRequestRepository extends abstract_prisma_public_client_repository_1.AbstractPrismaPublicClientRepository {
21
+ constructor(tx) {
22
+ super(tx);
23
+ this.prismaModelName = 'oAuthPushedRequest';
24
+ }
25
+ modelDelegate(client) {
26
+ return (0, oauth_prisma_types_1.getOAuthPrismaDelegate)(client, this.prismaModelName);
27
+ }
28
+ toDomain(e) {
29
+ var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k;
30
+ const domain = {
31
+ id: e.id,
32
+ tenantId: (_a = e.tenantId) !== null && _a !== void 0 ? _a : undefined,
33
+ requestUriHash: e.requestUriHash,
34
+ clientId: e.client.clientId,
35
+ responseType: e.responseType,
36
+ redirectUri: e.redirectUri,
37
+ scope: (_b = e.scope) !== null && _b !== void 0 ? _b : undefined,
38
+ state: (_c = e.state) !== null && _c !== void 0 ? _c : undefined,
39
+ codeChallenge: (_d = e.codeChallenge) !== null && _d !== void 0 ? _d : undefined,
40
+ codeChallengeMethod: (_e = e.codeChallengeMethod) !== null && _e !== void 0 ? _e : undefined,
41
+ nonce: (_f = e.nonce) !== null && _f !== void 0 ? _f : undefined,
42
+ prompt: (_g = e.prompt) !== null && _g !== void 0 ? _g : undefined,
43
+ maxAge: (_h = e.maxAge) !== null && _h !== void 0 ? _h : undefined,
44
+ consumedAt: (_j = e.consumedAt) !== null && _j !== void 0 ? _j : undefined,
45
+ expiresAt: e.expiresAt,
46
+ resource: (_k = e.resource) !== null && _k !== void 0 ? _k : undefined,
47
+ createdAt: e.createdAt,
48
+ };
49
+ return domain;
50
+ }
51
+ async findByRequestUri(requestUriHash) {
52
+ const e = await this.oauthModel.findUnique({ where: { requestUriHash }, include: { client: { select: { clientId: true } } } });
53
+ return e ? this.toDomain(e) : null;
54
+ }
55
+ async consume(id, at) {
56
+ const res = await this.oauthModel.updateMany({
57
+ where: { id, consumedAt: null },
58
+ data: { consumedAt: at },
59
+ });
60
+ return res.count === 1;
61
+ }
62
+ async deleteExpired(now) {
63
+ const res = await this.oauthModel.deleteMany({ where: { expiresAt: { lt: now } } });
64
+ return res.count;
65
+ }
66
+ toPersistenceCreate(d) {
67
+ var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k;
68
+ return {
69
+ id: d.id,
70
+ tenantId: (_a = d.tenantId) !== null && _a !== void 0 ? _a : null,
71
+ requestUriHash: d.requestUriHash,
72
+ client: { connect: { clientId: d.clientId } },
73
+ responseType: d.responseType,
74
+ redirectUri: d.redirectUri,
75
+ scope: (_b = d.scope) !== null && _b !== void 0 ? _b : null,
76
+ state: (_c = d.state) !== null && _c !== void 0 ? _c : null,
77
+ codeChallenge: (_d = d.codeChallenge) !== null && _d !== void 0 ? _d : null,
78
+ codeChallengeMethod: (_e = d.codeChallengeMethod) !== null && _e !== void 0 ? _e : null,
79
+ nonce: (_f = d.nonce) !== null && _f !== void 0 ? _f : null,
80
+ prompt: (_g = d.prompt) !== null && _g !== void 0 ? _g : null,
81
+ maxAge: (_h = d.maxAge) !== null && _h !== void 0 ? _h : null,
82
+ consumedAt: (_j = d.consumedAt) !== null && _j !== void 0 ? _j : null,
83
+ resource: (_k = d.resource) !== null && _k !== void 0 ? _k : null,
84
+ expiresAt: d.expiresAt,
85
+ };
86
+ }
87
+ toPersistenceUpdate(p) {
88
+ const out = {};
89
+ if (p.scope !== undefined)
90
+ out.scope = p.scope;
91
+ if (p.state !== undefined)
92
+ out.state = p.state;
93
+ if (p.consumedAt !== undefined)
94
+ out.consumedAt = p.consumedAt;
95
+ return out;
96
+ }
97
+ };
98
+ exports.PrismaOAuthPushedRequestRepository = PrismaOAuthPushedRequestRepository;
99
+ exports.PrismaOAuthPushedRequestRepository = PrismaOAuthPushedRequestRepository = __decorate([
100
+ (0, common_1.Injectable)(),
101
+ __param(0, (0, common_1.Inject)(nestjs_data_1.TRANSACTION_MANAGER)),
102
+ __metadata("design:paramtypes", [Object])
103
+ ], PrismaOAuthPushedRequestRepository);
104
+ //# sourceMappingURL=prisma-oauth-pushed-request.repository.js.map