@anarchitects/auth-nest 0.5.1 → 0.6.1
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/README.md +102 -61
- package/package.json +25 -5
- package/src/application/application.module.js +61 -36
- package/src/application/application.module.js.map +1 -1
- package/src/application/index.d.ts +0 -2
- package/src/application/index.js +0 -2
- package/src/application/index.js.map +1 -1
- package/src/application/ports/auth-account.repository.d.ts +18 -0
- package/src/application/ports/auth-account.repository.js +12 -0
- package/src/application/ports/auth-account.repository.js.map +1 -0
- package/src/{infrastructure-persistence/repositories → application/ports}/auth-user.repository.d.ts +1 -2
- package/src/application/ports/auth-user.repository.js.map +1 -0
- package/src/application/resource-authorization.types.d.ts +1 -16
- package/src/application/services/auth-engine.port.d.ts +22 -17
- package/src/application/services/auth-engine.port.js.map +1 -1
- package/src/application/services/auth-orchestration.service.d.ts +15 -10
- package/src/application/services/auth-orchestration.service.js +78 -61
- package/src/application/services/auth-orchestration.service.js.map +1 -1
- package/src/application/services/auth.service.d.ts +10 -7
- package/src/application/services/auth.service.js.map +1 -1
- package/src/application/services/better-auth-database.port.d.ts +3 -0
- package/src/application/services/better-auth-database.port.js +12 -0
- package/src/application/services/better-auth-database.port.js.map +1 -0
- package/src/application/services/policies.service.d.ts +1 -1
- package/src/application/services/policies.service.js +1 -1
- package/src/application/services/policies.service.js.map +1 -1
- package/src/application/services/resource-authorization.d.ts +1 -1
- package/src/auth.module.js +29 -3
- package/src/auth.module.js.map +1 -1
- package/src/config/auth.config.d.ts +62 -48
- package/src/config/auth.config.js +82 -76
- package/src/config/auth.config.js.map +1 -1
- package/src/config/index.d.ts +1 -0
- package/src/config/index.js +1 -0
- package/src/config/index.js.map +1 -1
- package/src/config/module-options.d.ts +69 -49
- package/src/config/module-options.js +79 -50
- package/src/config/module-options.js.map +1 -1
- package/src/config/resource-authorization.types.d.ts +16 -0
- package/src/config/resource-authorization.types.js +3 -0
- package/src/config/resource-authorization.types.js.map +1 -0
- package/src/infrastructure-engine/better-auth/better-auth-auth-engine.adapter.d.ts +32 -10
- package/src/infrastructure-engine/better-auth/better-auth-auth-engine.adapter.js +190 -90
- package/src/infrastructure-engine/better-auth/better-auth-auth-engine.adapter.js.map +1 -1
- package/src/infrastructure-engine/better-auth/better-auth-options.d.ts +21 -0
- package/src/infrastructure-engine/better-auth/better-auth-options.js +94 -0
- package/src/infrastructure-engine/better-auth/better-auth-options.js.map +1 -0
- package/src/infrastructure-engine/better-auth/better-auth-typeorm-adapter-persistence.adapter.d.ts +14 -0
- package/src/infrastructure-engine/better-auth/better-auth-typeorm-adapter-persistence.adapter.js +62 -0
- package/src/infrastructure-engine/better-auth/better-auth-typeorm-adapter-persistence.adapter.js.map +1 -0
- package/src/infrastructure-engine/better-auth/better-auth.module-loader.d.ts +6 -0
- package/src/infrastructure-engine/better-auth/better-auth.module-loader.js +9 -1
- package/src/infrastructure-engine/better-auth/better-auth.module-loader.js.map +1 -1
- package/src/infrastructure-engine/better-auth/plugins/jwt/better-auth-jwt-plugin.service.d.ts +21 -0
- package/src/infrastructure-engine/{legacy-jwt-auth-engine.adapter.js → better-auth/plugins/jwt/better-auth-jwt-plugin.service.js} +31 -63
- package/src/infrastructure-engine/better-auth/plugins/jwt/better-auth-jwt-plugin.service.js.map +1 -0
- package/src/infrastructure-engine/better-auth/plugins/jwt/better-auth-jwt-typeorm-support.module.d.ts +2 -0
- package/src/infrastructure-engine/better-auth/plugins/jwt/better-auth-jwt-typeorm-support.module.js +26 -0
- package/src/infrastructure-engine/better-auth/plugins/jwt/better-auth-jwt-typeorm-support.module.js.map +1 -0
- package/src/{infrastructure-persistence/entities → infrastructure-engine/better-auth/plugins/jwt}/invalidated-token.entity.js +1 -1
- package/src/infrastructure-engine/better-auth/plugins/jwt/invalidated-token.entity.js.map +1 -0
- package/src/infrastructure-engine/better-auth/plugins/jwt/jwt-auth-plugin.controller.d.ts +10 -0
- package/src/infrastructure-engine/better-auth/plugins/jwt/jwt-auth-plugin.controller.js +65 -0
- package/src/infrastructure-engine/better-auth/plugins/jwt/jwt-auth-plugin.controller.js.map +1 -0
- package/src/infrastructure-engine/better-auth/plugins/jwt/jwt-token-invalidation.repository.d.ts +4 -0
- package/src/infrastructure-engine/better-auth/plugins/jwt/jwt-token-invalidation.repository.js +12 -0
- package/src/infrastructure-engine/better-auth/plugins/jwt/jwt-token-invalidation.repository.js.map +1 -0
- package/src/infrastructure-engine/better-auth/plugins/jwt/typeorm-jwt-token-invalidation.repository.d.ts +9 -0
- package/src/infrastructure-engine/better-auth/plugins/jwt/typeorm-jwt-token-invalidation.repository.js +33 -0
- package/src/infrastructure-engine/better-auth/plugins/jwt/typeorm-jwt-token-invalidation.repository.js.map +1 -0
- package/src/infrastructure-engine/better-auth/plugins/passkeys/better-auth-passkeys-typeorm-support.module.d.ts +2 -0
- package/src/infrastructure-engine/better-auth/plugins/passkeys/better-auth-passkeys-typeorm-support.module.js +17 -0
- package/src/infrastructure-engine/better-auth/plugins/passkeys/better-auth-passkeys-typeorm-support.module.js.map +1 -0
- package/src/infrastructure-engine/better-auth/plugins/passkeys/migrations/1760200001000-create-better-auth-passkeys-table.d.ts +6 -0
- package/src/infrastructure-engine/better-auth/plugins/passkeys/migrations/1760200001000-create-better-auth-passkeys-table.js +83 -0
- package/src/infrastructure-engine/better-auth/plugins/passkeys/migrations/1760200001000-create-better-auth-passkeys-table.js.map +1 -0
- package/src/infrastructure-engine/better-auth/plugins/passkeys/passkey.entity.d.ts +14 -0
- package/src/infrastructure-engine/better-auth/plugins/passkeys/passkey.entity.js +71 -0
- package/src/infrastructure-engine/better-auth/plugins/passkeys/passkey.entity.js.map +1 -0
- package/src/infrastructure-persistence/entities/account.entity.d.ts +16 -0
- package/src/infrastructure-persistence/entities/account.entity.js +81 -0
- package/src/infrastructure-persistence/entities/account.entity.js.map +1 -0
- package/src/infrastructure-persistence/entities/session.entity.d.ts +11 -0
- package/src/infrastructure-persistence/entities/session.entity.js +58 -0
- package/src/infrastructure-persistence/entities/session.entity.js.map +1 -0
- package/src/infrastructure-persistence/entities/user.entity.d.ts +3 -4
- package/src/infrastructure-persistence/entities/user.entity.js +5 -9
- package/src/infrastructure-persistence/entities/user.entity.js.map +1 -1
- package/src/infrastructure-persistence/entities/verification.entity.d.ts +9 -0
- package/src/infrastructure-persistence/entities/verification.entity.js +50 -0
- package/src/infrastructure-persistence/entities/verification.entity.js.map +1 -0
- package/src/infrastructure-persistence/index.d.ts +1 -2
- package/src/infrastructure-persistence/index.js +1 -2
- package/src/infrastructure-persistence/index.js.map +1 -1
- package/src/infrastructure-persistence/migrations/1720200000000-create-auth-schema.js +189 -93
- package/src/infrastructure-persistence/migrations/1720200000000-create-auth-schema.js.map +1 -1
- package/src/infrastructure-persistence/persistence.module-definition.d.ts +1 -1
- package/src/infrastructure-persistence/persistence.module-definition.js +2 -2
- package/src/infrastructure-persistence/persistence.module-definition.js.map +1 -1
- package/src/infrastructure-persistence/persistence.module.js +34 -26
- package/src/infrastructure-persistence/persistence.module.js.map +1 -1
- package/src/infrastructure-persistence/repositories/typeorm-auth-account.repository.d.ts +14 -0
- package/src/infrastructure-persistence/repositories/typeorm-auth-account.repository.js +64 -0
- package/src/infrastructure-persistence/repositories/typeorm-auth-account.repository.js.map +1 -0
- package/src/infrastructure-persistence/repositories/typeorm-auth-user.repository.d.ts +6 -7
- package/src/infrastructure-persistence/repositories/typeorm-auth-user.repository.js +27 -17
- package/src/infrastructure-persistence/repositories/typeorm-auth-user.repository.js.map +1 -1
- package/src/presentation/controllers/auth.controller.d.ts +12 -7
- package/src/presentation/controllers/auth.controller.js +46 -26
- package/src/presentation/controllers/auth.controller.js.map +1 -1
- package/src/presentation/presentation.module.js +32 -3
- package/src/presentation/presentation.module.js.map +1 -1
- package/src/application/services/jwt-auth.service.d.ts +0 -11
- package/src/application/services/jwt-auth.service.js +0 -27
- package/src/application/services/jwt-auth.service.js.map +0 -1
- package/src/application/strategies/jwt-strategy.d.ts +0 -17
- package/src/application/strategies/jwt-strategy.js +0 -27
- package/src/application/strategies/jwt-strategy.js.map +0 -1
- package/src/infrastructure-engine/better-auth/better-auth-spike.harness.d.ts +0 -17
- package/src/infrastructure-engine/better-auth/better-auth-spike.harness.js +0 -32
- package/src/infrastructure-engine/better-auth/better-auth-spike.harness.js.map +0 -1
- package/src/infrastructure-engine/legacy-jwt-auth-engine.adapter.d.ts +0 -22
- package/src/infrastructure-engine/legacy-jwt-auth-engine.adapter.js.map +0 -1
- package/src/infrastructure-persistence/entities/invalidated-token.entity.js.map +0 -1
- package/src/infrastructure-persistence/repositories/auth-user.repository.js.map +0 -1
- /package/src/{infrastructure-persistence/repositories → application/ports}/auth-user.repository.js +0 -0
- /package/src/{infrastructure-persistence/entities → infrastructure-engine/better-auth/plugins/jwt}/invalidated-token.entity.d.ts +0 -0
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"better-auth-auth-engine.adapter.js","sourceRoot":"","sources":["../../../../../../../libs/auth/nest/src/infrastructure-engine/better-auth/better-auth-auth-engine.adapter.ts"],"names":[],"mappings":";;;;AAAA,
|
|
1
|
+
{"version":3,"file":"better-auth-auth-engine.adapter.js","sourceRoot":"","sources":["../../../../../../../libs/auth/nest/src/infrastructure-engine/better-auth/better-auth-auth-engine.adapter.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
import type { BetterAuthOptions } from 'better-auth';
|
|
2
|
+
import type { ResolvedAuthApplicationModuleOptions } from '../../config';
|
|
3
|
+
import type { BetterAuthRuntimeModules } from './better-auth.module-loader';
|
|
4
|
+
export type BetterAuthLifecycleOptions = {
|
|
5
|
+
hashPassword: (password: string) => Promise<string>;
|
|
6
|
+
verifyPassword: (input: {
|
|
7
|
+
hash: string;
|
|
8
|
+
password: string;
|
|
9
|
+
}) => Promise<boolean>;
|
|
10
|
+
sendVerificationEmail: (input: {
|
|
11
|
+
email: string;
|
|
12
|
+
url: string;
|
|
13
|
+
token: string;
|
|
14
|
+
}) => Promise<void>;
|
|
15
|
+
sendResetPassword: (input: {
|
|
16
|
+
email: string;
|
|
17
|
+
url: string;
|
|
18
|
+
token: string;
|
|
19
|
+
}) => Promise<void>;
|
|
20
|
+
};
|
|
21
|
+
export declare function createBetterAuthOptions(options: ResolvedAuthApplicationModuleOptions, database: BetterAuthOptions['database'], runtimeModules: BetterAuthRuntimeModules, lifecycle: BetterAuthLifecycleOptions): BetterAuthOptions;
|
|
@@ -0,0 +1,94 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.createBetterAuthOptions = createBetterAuthOptions;
|
|
4
|
+
function createBetterAuthOptions(options, database, runtimeModules, lifecycle) {
|
|
5
|
+
return {
|
|
6
|
+
secret: options.betterAuth.secret,
|
|
7
|
+
baseURL: options.betterAuth.baseUrl,
|
|
8
|
+
trustedOrigins: collectTrustedOrigins(options),
|
|
9
|
+
database,
|
|
10
|
+
advanced: {
|
|
11
|
+
database: {
|
|
12
|
+
generateId: 'uuid',
|
|
13
|
+
},
|
|
14
|
+
},
|
|
15
|
+
user: {
|
|
16
|
+
modelName: 'users',
|
|
17
|
+
},
|
|
18
|
+
session: {
|
|
19
|
+
modelName: 'sessions',
|
|
20
|
+
},
|
|
21
|
+
account: {
|
|
22
|
+
modelName: 'accounts',
|
|
23
|
+
},
|
|
24
|
+
verification: {
|
|
25
|
+
modelName: 'verifications',
|
|
26
|
+
},
|
|
27
|
+
emailVerification: {
|
|
28
|
+
sendOnSignUp: true,
|
|
29
|
+
autoSignInAfterVerification: false,
|
|
30
|
+
sendVerificationEmail: async ({ user, url, token }) => {
|
|
31
|
+
await lifecycle.sendVerificationEmail({
|
|
32
|
+
email: user.email,
|
|
33
|
+
url,
|
|
34
|
+
token,
|
|
35
|
+
});
|
|
36
|
+
},
|
|
37
|
+
},
|
|
38
|
+
emailAndPassword: {
|
|
39
|
+
enabled: true,
|
|
40
|
+
autoSignIn: false,
|
|
41
|
+
sendResetPassword: async ({ user, url, token }) => {
|
|
42
|
+
await lifecycle.sendResetPassword({
|
|
43
|
+
email: user.email,
|
|
44
|
+
url,
|
|
45
|
+
token,
|
|
46
|
+
});
|
|
47
|
+
},
|
|
48
|
+
password: {
|
|
49
|
+
hash: lifecycle.hashPassword,
|
|
50
|
+
verify: lifecycle.verifyPassword,
|
|
51
|
+
},
|
|
52
|
+
},
|
|
53
|
+
socialProviders: options.plugins.social.enabled
|
|
54
|
+
? {
|
|
55
|
+
github: {
|
|
56
|
+
clientId: options.plugins.social.github.clientId,
|
|
57
|
+
clientSecret: options.plugins.social.github.clientSecret,
|
|
58
|
+
},
|
|
59
|
+
}
|
|
60
|
+
: {},
|
|
61
|
+
plugins: options.plugins.passkeys.enabled
|
|
62
|
+
? [
|
|
63
|
+
runtimeModules.betterAuthPasskey.passkey({
|
|
64
|
+
rpID: options.plugins.passkeys.rpID,
|
|
65
|
+
rpName: options.plugins.passkeys.rpName,
|
|
66
|
+
origin: options.plugins.passkeys.origin,
|
|
67
|
+
schema: {
|
|
68
|
+
passkey: {
|
|
69
|
+
modelName: 'passkeys',
|
|
70
|
+
},
|
|
71
|
+
},
|
|
72
|
+
}),
|
|
73
|
+
]
|
|
74
|
+
: [],
|
|
75
|
+
};
|
|
76
|
+
}
|
|
77
|
+
function collectTrustedOrigins(options) {
|
|
78
|
+
const origins = [
|
|
79
|
+
options.betterAuth.baseUrl,
|
|
80
|
+
options.betterAuth.callbackUrls.verifyEmail,
|
|
81
|
+
options.betterAuth.callbackUrls.resetPassword,
|
|
82
|
+
]
|
|
83
|
+
.map((value) => {
|
|
84
|
+
try {
|
|
85
|
+
return new URL(value).origin;
|
|
86
|
+
}
|
|
87
|
+
catch {
|
|
88
|
+
return null;
|
|
89
|
+
}
|
|
90
|
+
})
|
|
91
|
+
.filter((value) => Boolean(value));
|
|
92
|
+
return [...new Set(origins)];
|
|
93
|
+
}
|
|
94
|
+
//# sourceMappingURL=better-auth-options.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"better-auth-options.js","sourceRoot":"","sources":["../../../../../../../libs/auth/nest/src/infrastructure-engine/better-auth/better-auth-options.ts"],"names":[],"mappings":"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"}
|
package/src/infrastructure-engine/better-auth/better-auth-typeorm-adapter-persistence.adapter.d.ts
ADDED
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
import type { DataSource, EntityTarget, ObjectLiteral } from 'typeorm';
|
|
2
|
+
import { BetterAuthDatabasePort } from '../../application/services/better-auth-database.port';
|
|
3
|
+
import type { ResolvedAuthApplicationModuleOptions } from '../../config';
|
|
4
|
+
type BetterAuthTypeormModelMap = Record<string, EntityTarget<ObjectLiteral>>;
|
|
5
|
+
export declare class BetterAuthTypeormDatabaseAdapter implements BetterAuthDatabasePort {
|
|
6
|
+
private readonly options;
|
|
7
|
+
private readonly dataSource?;
|
|
8
|
+
private resolvedDatabasePromise;
|
|
9
|
+
constructor(options: ResolvedAuthApplicationModuleOptions, dataSource?: DataSource | undefined);
|
|
10
|
+
resolveDatabase(): Promise<unknown>;
|
|
11
|
+
private createDatabaseAdapter;
|
|
12
|
+
}
|
|
13
|
+
export declare function createBetterAuthTypeormModels(options: Pick<ResolvedAuthApplicationModuleOptions, 'plugins'>): BetterAuthTypeormModelMap;
|
|
14
|
+
export {};
|
package/src/infrastructure-engine/better-auth/better-auth-typeorm-adapter-persistence.adapter.js
ADDED
|
@@ -0,0 +1,62 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.BetterAuthTypeormDatabaseAdapter = void 0;
|
|
4
|
+
exports.createBetterAuthTypeormModels = createBetterAuthTypeormModels;
|
|
5
|
+
const tslib_1 = require("tslib");
|
|
6
|
+
const common_1 = require("@nestjs/common");
|
|
7
|
+
const typeorm_1 = require("@nestjs/typeorm");
|
|
8
|
+
const application_module_definition_1 = require("../../application/application.module-definition");
|
|
9
|
+
const account_entity_1 = require("../../infrastructure-persistence/entities/account.entity");
|
|
10
|
+
const session_entity_1 = require("../../infrastructure-persistence/entities/session.entity");
|
|
11
|
+
const user_entity_1 = require("../../infrastructure-persistence/entities/user.entity");
|
|
12
|
+
const verification_entity_1 = require("../../infrastructure-persistence/entities/verification.entity");
|
|
13
|
+
const better_auth_module_loader_1 = require("./better-auth.module-loader");
|
|
14
|
+
const passkey_entity_1 = require("./plugins/passkeys/passkey.entity");
|
|
15
|
+
const ADAPTER_ID = 'anarchitects-typeorm';
|
|
16
|
+
const ADAPTER_NAME = 'Anarchitects TypeORM Adapter';
|
|
17
|
+
let BetterAuthTypeormDatabaseAdapter = class BetterAuthTypeormDatabaseAdapter {
|
|
18
|
+
constructor(options, dataSource) {
|
|
19
|
+
this.options = options;
|
|
20
|
+
this.dataSource = dataSource;
|
|
21
|
+
this.resolvedDatabasePromise = null;
|
|
22
|
+
}
|
|
23
|
+
resolveDatabase() {
|
|
24
|
+
if (!this.resolvedDatabasePromise) {
|
|
25
|
+
this.resolvedDatabasePromise = this.createDatabaseAdapter();
|
|
26
|
+
}
|
|
27
|
+
return this.resolvedDatabasePromise;
|
|
28
|
+
}
|
|
29
|
+
async createDatabaseAdapter() {
|
|
30
|
+
if (!this.dataSource) {
|
|
31
|
+
throw new Error('Better Auth TypeORM adapter persistence requires an active TypeORM DataSource.');
|
|
32
|
+
}
|
|
33
|
+
const adapterModule = await (0, better_auth_module_loader_1.loadBetterAuthTypeormAdapterModule)();
|
|
34
|
+
return adapterModule.createBetterAuthTypeormAdapter({
|
|
35
|
+
dataSource: this.dataSource,
|
|
36
|
+
models: createBetterAuthTypeormModels(this.options),
|
|
37
|
+
adapterId: ADAPTER_ID,
|
|
38
|
+
adapterName: ADAPTER_NAME,
|
|
39
|
+
});
|
|
40
|
+
}
|
|
41
|
+
};
|
|
42
|
+
exports.BetterAuthTypeormDatabaseAdapter = BetterAuthTypeormDatabaseAdapter;
|
|
43
|
+
exports.BetterAuthTypeormDatabaseAdapter = BetterAuthTypeormDatabaseAdapter = tslib_1.__decorate([
|
|
44
|
+
(0, common_1.Injectable)(),
|
|
45
|
+
tslib_1.__param(0, (0, common_1.Inject)(application_module_definition_1.AUTH_APPLICATION_MODULE_OPTIONS)),
|
|
46
|
+
tslib_1.__param(1, (0, common_1.Optional)()),
|
|
47
|
+
tslib_1.__param(1, (0, common_1.Inject)((0, typeorm_1.getDataSourceToken)())),
|
|
48
|
+
tslib_1.__metadata("design:paramtypes", [Object, Function])
|
|
49
|
+
], BetterAuthTypeormDatabaseAdapter);
|
|
50
|
+
function createBetterAuthTypeormModels(options) {
|
|
51
|
+
const models = {
|
|
52
|
+
users: user_entity_1.UserEntity,
|
|
53
|
+
accounts: account_entity_1.AccountEntity,
|
|
54
|
+
sessions: session_entity_1.SessionEntity,
|
|
55
|
+
verifications: verification_entity_1.VerificationEntity,
|
|
56
|
+
};
|
|
57
|
+
if (options.plugins.passkeys.enabled) {
|
|
58
|
+
models['passkeys'] = passkey_entity_1.PasskeyEntity;
|
|
59
|
+
}
|
|
60
|
+
return models;
|
|
61
|
+
}
|
|
62
|
+
//# sourceMappingURL=better-auth-typeorm-adapter-persistence.adapter.js.map
|
package/src/infrastructure-engine/better-auth/better-auth-typeorm-adapter-persistence.adapter.js.map
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"better-auth-typeorm-adapter-persistence.adapter.js","sourceRoot":"","sources":["../../../../../../../libs/auth/nest/src/infrastructure-engine/better-auth/better-auth-typeorm-adapter-persistence.adapter.ts"],"names":[],"mappings":";;;AA6DA,sEAeC;;AA5ED,2CAA8D;AAC9D,6CAAqD;AAGrD,mGAAkG;AAGlG,6FAAyF;AACzF,6FAAyF;AACzF,uFAAmF;AACnF,uGAAmG;AACnG,2EAAiF;AACjF,sEAAkE;AAElE,MAAM,UAAU,GAAG,sBAAsB,CAAC;AAC1C,MAAM,YAAY,GAAG,8BAA8B,CAAC;AAK7C,IAAM,gCAAgC,GAAtC,MAAM,gCAAgC;IAK3C,YAEE,OAA8D,EAG9D,UAAwC;QAHvB,YAAO,GAAP,OAAO,CAAsC;QAG7C,eAAU,GAAV,UAAU,CAAa;QAPlC,4BAAuB,GAA4B,IAAI,CAAC;IAQ7D,CAAC;IAEJ,eAAe;QACb,IAAI,CAAC,IAAI,CAAC,uBAAuB,EAAE,CAAC;YAClC,IAAI,CAAC,uBAAuB,GAAG,IAAI,CAAC,qBAAqB,EAAE,CAAC;QAC9D,CAAC;QAED,OAAO,IAAI,CAAC,uBAAuB,CAAC;IACtC,CAAC;IAEO,KAAK,CAAC,qBAAqB;QAGjC,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,CAAC;YACrB,MAAM,IAAI,KAAK,CACb,gFAAgF,CACjF,CAAC;QACJ,CAAC;QAED,MAAM,aAAa,GAAG,MAAM,IAAA,8DAAkC,GAAE,CAAC;QAEjE,OAAO,aAAa,CAAC,8BAA8B,CAAC;YAClD,UAAU,EAAE,IAAI,CAAC,UAAU;YAC3B,MAAM,EAAE,6BAA6B,CAAC,IAAI,CAAC,OAAO,CAAC;YACnD,SAAS,EAAE,UAAU;YACrB,WAAW,EAAE,YAAY;SAC1B,CAAC,CAAC;IACL,CAAC;CACF,CAAA;AAvCY,4EAAgC;2CAAhC,gCAAgC;IAD5C,IAAA,mBAAU,GAAE;IAOR,mBAAA,IAAA,eAAM,EAAC,+DAA+B,CAAC,CAAA;IAEvC,mBAAA,IAAA,iBAAQ,GAAE,CAAA;IACV,mBAAA,IAAA,eAAM,EAAC,IAAA,4BAAkB,GAAE,CAAC,CAAA;;GATpB,gCAAgC,CAuC5C;AAED,SAAgB,6BAA6B,CAC3C,OAA8D;IAE9D,MAAM,MAAM,GAA8B;QACxC,KAAK,EAAE,wBAAU;QACjB,QAAQ,EAAE,8BAAa;QACvB,QAAQ,EAAE,8BAAa;QACvB,aAAa,EAAE,wCAAkB;KAClC,CAAC;IAEF,IAAI,OAAO,CAAC,OAAO,CAAC,QAAQ,CAAC,OAAO,EAAE,CAAC;QACrC,MAAM,CAAC,UAAU,CAAC,GAAG,8BAAa,CAAC;IACrC,CAAC;IAED,OAAO,MAAM,CAAC;AAChB,CAAC"}
|
|
@@ -1,7 +1,13 @@
|
|
|
1
1
|
export type BetterAuthModule = typeof import('better-auth');
|
|
2
|
+
export type BetterAuthAdaptersModule = typeof import('better-auth/adapters');
|
|
2
3
|
export type BetterAuthPasskeyModule = typeof import('@better-auth/passkey');
|
|
4
|
+
export type BetterAuthMigrationModule = typeof import('better-auth/db/migration');
|
|
5
|
+
export type BetterAuthTypeormAdapterModule = typeof import('@anarchitects/better-auth-typeorm-adapter');
|
|
3
6
|
export type BetterAuthRuntimeModules = {
|
|
4
7
|
betterAuth: BetterAuthModule;
|
|
8
|
+
betterAuthAdapters: BetterAuthAdaptersModule;
|
|
5
9
|
betterAuthPasskey: BetterAuthPasskeyModule;
|
|
10
|
+
betterAuthMigration: BetterAuthMigrationModule;
|
|
6
11
|
};
|
|
7
12
|
export declare function loadBetterAuthRuntimeModules(): Promise<BetterAuthRuntimeModules>;
|
|
13
|
+
export declare function loadBetterAuthTypeormAdapterModule(): Promise<BetterAuthTypeormAdapterModule>;
|
|
@@ -1,15 +1,23 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.loadBetterAuthRuntimeModules = loadBetterAuthRuntimeModules;
|
|
4
|
+
exports.loadBetterAuthTypeormAdapterModule = loadBetterAuthTypeormAdapterModule;
|
|
4
5
|
const dynamic_import_1 = require("./dynamic-import");
|
|
5
6
|
async function loadBetterAuthRuntimeModules() {
|
|
6
|
-
const [betterAuth, betterAuthPasskey] = await Promise.all([
|
|
7
|
+
const [betterAuth, betterAuthAdapters, betterAuthPasskey, betterAuthMigration,] = await Promise.all([
|
|
7
8
|
(0, dynamic_import_1.importEsmModule)('better-auth'),
|
|
9
|
+
(0, dynamic_import_1.importEsmModule)('better-auth/adapters'),
|
|
8
10
|
(0, dynamic_import_1.importEsmModule)('@better-auth/passkey'),
|
|
11
|
+
(0, dynamic_import_1.importEsmModule)('better-auth/db/migration'),
|
|
9
12
|
]);
|
|
10
13
|
return {
|
|
11
14
|
betterAuth,
|
|
15
|
+
betterAuthAdapters,
|
|
12
16
|
betterAuthPasskey,
|
|
17
|
+
betterAuthMigration,
|
|
13
18
|
};
|
|
14
19
|
}
|
|
20
|
+
function loadBetterAuthTypeormAdapterModule() {
|
|
21
|
+
return (0, dynamic_import_1.importEsmModule)('@anarchitects/better-auth-typeorm-adapter');
|
|
22
|
+
}
|
|
15
23
|
//# sourceMappingURL=better-auth.module-loader.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"better-auth.module-loader.js","sourceRoot":"","sources":["../../../../../../../libs/auth/nest/src/infrastructure-engine/better-auth/better-auth.module-loader.ts"],"names":[],"mappings":";;
|
|
1
|
+
{"version":3,"file":"better-auth.module-loader.js","sourceRoot":"","sources":["../../../../../../../libs/auth/nest/src/infrastructure-engine/better-auth/better-auth.module-loader.ts"],"names":[],"mappings":";;AAiBA,oEAmBC;AAED,gFAIC;AA1CD,qDAAmD;AAiB5C,KAAK,UAAU,4BAA4B;IAChD,MAAM,CACJ,UAAU,EACV,kBAAkB,EAClB,iBAAiB,EACjB,mBAAmB,EACpB,GAAG,MAAM,OAAO,CAAC,GAAG,CAAC;QACpB,IAAA,gCAAe,EAAmB,aAAa,CAAC;QAChD,IAAA,gCAAe,EAA2B,sBAAsB,CAAC;QACjE,IAAA,gCAAe,EAA0B,sBAAsB,CAAC;QAChE,IAAA,gCAAe,EAA4B,0BAA0B,CAAC;KACvE,CAAC,CAAC;IAEH,OAAO;QACL,UAAU;QACV,kBAAkB;QAClB,iBAAiB;QACjB,mBAAmB;KACpB,CAAC;AACJ,CAAC;AAED,SAAgB,kCAAkC;IAChD,OAAO,IAAA,gCAAe,EACpB,2CAA2C,CAC5C,CAAC;AACJ,CAAC"}
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
import { JwtService } from '@nestjs/jwt';
|
|
2
|
+
import { JwtLogoutRequestDTO, LoginResponseDTO, RefreshTokenRequestDTO, RefreshTokenResponseDTO } from '@anarchitects/auth-ts/dtos/jwt';
|
|
3
|
+
import { LoginRequestDTO } from '@anarchitects/auth-ts/dtos';
|
|
4
|
+
import { AuthAccountRepository } from '../../../../application/ports/auth-account.repository';
|
|
5
|
+
import { AuthUserRepository } from '../../../../application/ports/auth-user.repository';
|
|
6
|
+
import { HashService } from '../../../../application/services/hash.service';
|
|
7
|
+
import { JwtTokenInvalidationRepository } from './jwt-token-invalidation.repository';
|
|
8
|
+
export declare class BetterAuthJwtPluginService {
|
|
9
|
+
private readonly hashService;
|
|
10
|
+
private readonly authAccountRepository;
|
|
11
|
+
private readonly authUserRepository;
|
|
12
|
+
private readonly jwtTokenInvalidationRepository;
|
|
13
|
+
private readonly jwtService;
|
|
14
|
+
constructor(hashService: HashService, authAccountRepository: AuthAccountRepository, authUserRepository: AuthUserRepository, jwtTokenInvalidationRepository: JwtTokenInvalidationRepository, jwtService: JwtService);
|
|
15
|
+
login(dto: LoginRequestDTO): Promise<LoginResponseDTO>;
|
|
16
|
+
logout(dto: JwtLogoutRequestDTO): Promise<{
|
|
17
|
+
success: boolean;
|
|
18
|
+
}>;
|
|
19
|
+
refreshTokens(dto: RefreshTokenRequestDTO): Promise<RefreshTokenResponseDTO>;
|
|
20
|
+
private generateTokens;
|
|
21
|
+
}
|
|
@@ -1,26 +1,34 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.
|
|
3
|
+
exports.BetterAuthJwtPluginService = void 0;
|
|
4
4
|
const tslib_1 = require("tslib");
|
|
5
5
|
const common_1 = require("@nestjs/common");
|
|
6
6
|
const jwt_1 = require("@nestjs/jwt");
|
|
7
|
-
const
|
|
8
|
-
const auth_user_repository_1 = require("
|
|
9
|
-
|
|
10
|
-
|
|
7
|
+
const auth_account_repository_1 = require("../../../../application/ports/auth-account.repository");
|
|
8
|
+
const auth_user_repository_1 = require("../../../../application/ports/auth-user.repository");
|
|
9
|
+
const hash_service_1 = require("../../../../application/services/hash.service");
|
|
10
|
+
const jwt_token_invalidation_repository_1 = require("./jwt-token-invalidation.repository");
|
|
11
|
+
let BetterAuthJwtPluginService = class BetterAuthJwtPluginService {
|
|
12
|
+
constructor(hashService, authAccountRepository, authUserRepository, jwtTokenInvalidationRepository, jwtService) {
|
|
11
13
|
this.hashService = hashService;
|
|
14
|
+
this.authAccountRepository = authAccountRepository;
|
|
12
15
|
this.authUserRepository = authUserRepository;
|
|
16
|
+
this.jwtTokenInvalidationRepository = jwtTokenInvalidationRepository;
|
|
13
17
|
this.jwtService = jwtService;
|
|
14
18
|
}
|
|
15
19
|
async login(dto) {
|
|
16
20
|
const { credential, password } = dto;
|
|
17
21
|
const user = await this.authUserRepository.findOne({
|
|
18
|
-
where: [{ email: credential }, {
|
|
22
|
+
where: [{ email: credential }, { name: credential }],
|
|
19
23
|
});
|
|
20
24
|
if (!user) {
|
|
21
25
|
throw new common_1.BadRequestException('Invalid credentials');
|
|
22
26
|
}
|
|
23
|
-
const
|
|
27
|
+
const credentialAccount = await this.authAccountRepository.findCredentialAccountByUserId(user.id);
|
|
28
|
+
if (!credentialAccount?.password) {
|
|
29
|
+
throw new common_1.BadRequestException('Invalid credentials');
|
|
30
|
+
}
|
|
31
|
+
const isPasswordValid = await this.hashService.compare(password, credentialAccount.password);
|
|
24
32
|
if (!isPasswordValid) {
|
|
25
33
|
throw new common_1.BadRequestException('Invalid credentials');
|
|
26
34
|
}
|
|
@@ -28,9 +36,6 @@ let LegacyJwtAuthEngineAdapter = class LegacyJwtAuthEngineAdapter {
|
|
|
28
36
|
}
|
|
29
37
|
async logout(dto) {
|
|
30
38
|
const { accessToken, refreshToken } = dto;
|
|
31
|
-
if (!refreshToken) {
|
|
32
|
-
throw new common_1.BadRequestException('Refresh token is required');
|
|
33
|
-
}
|
|
34
39
|
const payload = await this.jwtService.verifyAsync(refreshToken).catch(() => {
|
|
35
40
|
throw new common_1.BadRequestException('Invalid refresh token');
|
|
36
41
|
});
|
|
@@ -40,77 +45,35 @@ let LegacyJwtAuthEngineAdapter = class LegacyJwtAuthEngineAdapter {
|
|
|
40
45
|
const user = await this.authUserRepository.findOne({
|
|
41
46
|
where: { id: payload.sub },
|
|
42
47
|
});
|
|
43
|
-
if (!user
|
|
48
|
+
if (!user) {
|
|
44
49
|
throw new common_1.BadRequestException('Invalid refresh token');
|
|
45
50
|
}
|
|
46
51
|
const tokenHashes = await Promise.all([accessToken, refreshToken]
|
|
47
52
|
.filter((token) => Boolean(token))
|
|
48
53
|
.map((token) => this.hashService.hash(token)));
|
|
49
|
-
await this.
|
|
54
|
+
await this.jwtTokenInvalidationRepository.invalidateTokens(tokenHashes, user.id);
|
|
50
55
|
return { success: true };
|
|
51
56
|
}
|
|
52
|
-
async refreshTokens(
|
|
57
|
+
async refreshTokens(dto) {
|
|
53
58
|
const { refreshToken } = dto;
|
|
54
59
|
const payload = await this.jwtService.verifyAsync(refreshToken).catch(() => {
|
|
55
60
|
throw new common_1.BadRequestException('Invalid refresh token');
|
|
56
61
|
});
|
|
57
|
-
if (!payload?.sub
|
|
62
|
+
if (!payload?.sub) {
|
|
58
63
|
throw new common_1.BadRequestException('Invalid refresh token');
|
|
59
64
|
}
|
|
60
65
|
const user = await this.authUserRepository.findOne({
|
|
61
|
-
where: { id:
|
|
66
|
+
where: { id: payload.sub },
|
|
62
67
|
});
|
|
63
68
|
if (!user) {
|
|
64
69
|
throw new common_1.BadRequestException('User not found');
|
|
65
70
|
}
|
|
66
|
-
const isTokenInvalidated = await this.
|
|
71
|
+
const isTokenInvalidated = await this.jwtTokenInvalidationRepository.isTokenInvalidated(await this.hashService.hash(refreshToken));
|
|
67
72
|
if (isTokenInvalidated) {
|
|
68
73
|
throw new common_1.BadRequestException('Refresh token has been invalidated');
|
|
69
74
|
}
|
|
70
75
|
return this.generateTokens(user);
|
|
71
76
|
}
|
|
72
|
-
async describeCapabilities() {
|
|
73
|
-
return {
|
|
74
|
-
engine: 'legacy-jwt',
|
|
75
|
-
flows: [
|
|
76
|
-
{
|
|
77
|
-
flow: 'password-sign-in',
|
|
78
|
-
status: 'supported',
|
|
79
|
-
notes: 'Existing JwtAuthService email-or-username login path.',
|
|
80
|
-
},
|
|
81
|
-
{
|
|
82
|
-
flow: 'passkey-sign-in',
|
|
83
|
-
status: 'unsupported',
|
|
84
|
-
notes: 'Legacy JWT engine does not implement WebAuthn.',
|
|
85
|
-
},
|
|
86
|
-
{
|
|
87
|
-
flow: 'social-sign-in',
|
|
88
|
-
status: 'unsupported',
|
|
89
|
-
notes: 'Legacy JWT engine does not implement social provider sign-in.',
|
|
90
|
-
},
|
|
91
|
-
{
|
|
92
|
-
flow: 'sign-out-or-refresh',
|
|
93
|
-
status: 'supported',
|
|
94
|
-
notes: 'Existing refresh-token flow remains available on the legacy engine.',
|
|
95
|
-
},
|
|
96
|
-
],
|
|
97
|
-
};
|
|
98
|
-
}
|
|
99
|
-
passwordSignIn(dto) {
|
|
100
|
-
return this.login(dto);
|
|
101
|
-
}
|
|
102
|
-
passkeySignIn(_input) {
|
|
103
|
-
return Promise.reject(new Error('Passkey sign-in is unavailable on the legacy JWT engine.'));
|
|
104
|
-
}
|
|
105
|
-
socialSignIn(_input) {
|
|
106
|
-
return Promise.reject(new Error('Social sign-in is unavailable on the legacy JWT engine.'));
|
|
107
|
-
}
|
|
108
|
-
signOutOrRefresh(input) {
|
|
109
|
-
if (input.mode === 'refresh') {
|
|
110
|
-
return this.refreshTokens(input.userId, input.dto);
|
|
111
|
-
}
|
|
112
|
-
return Promise.reject(new Error('Legacy JWT proof path only supports refresh for the spike.'));
|
|
113
|
-
}
|
|
114
77
|
async generateTokens(user) {
|
|
115
78
|
const payload = {
|
|
116
79
|
sub: user.id,
|
|
@@ -118,14 +81,19 @@ let LegacyJwtAuthEngineAdapter = class LegacyJwtAuthEngineAdapter {
|
|
|
118
81
|
};
|
|
119
82
|
const accessToken = await this.jwtService.signAsync(payload);
|
|
120
83
|
const refreshToken = await this.jwtService.signAsync(payload);
|
|
121
|
-
return {
|
|
84
|
+
return {
|
|
85
|
+
accessToken,
|
|
86
|
+
refreshToken,
|
|
87
|
+
};
|
|
122
88
|
}
|
|
123
89
|
};
|
|
124
|
-
exports.
|
|
125
|
-
exports.
|
|
90
|
+
exports.BetterAuthJwtPluginService = BetterAuthJwtPluginService;
|
|
91
|
+
exports.BetterAuthJwtPluginService = BetterAuthJwtPluginService = tslib_1.__decorate([
|
|
126
92
|
(0, common_1.Injectable)(),
|
|
127
93
|
tslib_1.__metadata("design:paramtypes", [hash_service_1.HashService,
|
|
94
|
+
auth_account_repository_1.AuthAccountRepository,
|
|
128
95
|
auth_user_repository_1.AuthUserRepository,
|
|
96
|
+
jwt_token_invalidation_repository_1.JwtTokenInvalidationRepository,
|
|
129
97
|
jwt_1.JwtService])
|
|
130
|
-
],
|
|
131
|
-
//# sourceMappingURL=
|
|
98
|
+
], BetterAuthJwtPluginService);
|
|
99
|
+
//# sourceMappingURL=better-auth-jwt-plugin.service.js.map
|
package/src/infrastructure-engine/better-auth/plugins/jwt/better-auth-jwt-plugin.service.js.map
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"better-auth-jwt-plugin.service.js","sourceRoot":"","sources":["../../../../../../../../../libs/auth/nest/src/infrastructure-engine/better-auth/plugins/jwt/better-auth-jwt-plugin.service.ts"],"names":[],"mappings":"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"}
|
package/src/infrastructure-engine/better-auth/plugins/jwt/better-auth-jwt-typeorm-support.module.js
ADDED
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.BetterAuthJwtTypeormSupportModule = void 0;
|
|
4
|
+
const tslib_1 = require("tslib");
|
|
5
|
+
const common_1 = require("@nestjs/common");
|
|
6
|
+
const typeorm_1 = require("@nestjs/typeorm");
|
|
7
|
+
const jwt_token_invalidation_repository_1 = require("./jwt-token-invalidation.repository");
|
|
8
|
+
const invalidated_token_entity_1 = require("./invalidated-token.entity");
|
|
9
|
+
const typeorm_jwt_token_invalidation_repository_1 = require("./typeorm-jwt-token-invalidation.repository");
|
|
10
|
+
let BetterAuthJwtTypeormSupportModule = class BetterAuthJwtTypeormSupportModule {
|
|
11
|
+
};
|
|
12
|
+
exports.BetterAuthJwtTypeormSupportModule = BetterAuthJwtTypeormSupportModule;
|
|
13
|
+
exports.BetterAuthJwtTypeormSupportModule = BetterAuthJwtTypeormSupportModule = tslib_1.__decorate([
|
|
14
|
+
(0, common_1.Module)({
|
|
15
|
+
imports: [typeorm_1.TypeOrmModule.forFeature([invalidated_token_entity_1.InvalidatedTokenEntity])],
|
|
16
|
+
providers: [
|
|
17
|
+
typeorm_jwt_token_invalidation_repository_1.TypeormJwtTokenInvalidationRepository,
|
|
18
|
+
{
|
|
19
|
+
provide: jwt_token_invalidation_repository_1.JwtTokenInvalidationRepository,
|
|
20
|
+
useExisting: typeorm_jwt_token_invalidation_repository_1.TypeormJwtTokenInvalidationRepository,
|
|
21
|
+
},
|
|
22
|
+
],
|
|
23
|
+
exports: [jwt_token_invalidation_repository_1.JwtTokenInvalidationRepository],
|
|
24
|
+
})
|
|
25
|
+
], BetterAuthJwtTypeormSupportModule);
|
|
26
|
+
//# sourceMappingURL=better-auth-jwt-typeorm-support.module.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"better-auth-jwt-typeorm-support.module.js","sourceRoot":"","sources":["../../../../../../../../../libs/auth/nest/src/infrastructure-engine/better-auth/plugins/jwt/better-auth-jwt-typeorm-support.module.ts"],"names":[],"mappings":";;;;AAAA,2CAAwC;AACxC,6CAAgD;AAChD,2FAAqF;AACrF,yEAAoE;AACpE,2GAAoG;AAa7F,IAAM,iCAAiC,GAAvC,MAAM,iCAAiC;CAAG,CAAA;AAApC,8EAAiC;4CAAjC,iCAAiC;IAX7C,IAAA,eAAM,EAAC;QACN,OAAO,EAAE,CAAC,uBAAa,CAAC,UAAU,CAAC,CAAC,iDAAsB,CAAC,CAAC,CAAC;QAC7D,SAAS,EAAE;YACT,iFAAqC;YACrC;gBACE,OAAO,EAAE,kEAA8B;gBACvC,WAAW,EAAE,iFAAqC;aACnD;SACF;QACD,OAAO,EAAE,CAAC,kEAA8B,CAAC;KAC1C,CAAC;GACW,iCAAiC,CAAG"}
|
|
@@ -3,7 +3,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
3
3
|
exports.InvalidatedTokenEntity = void 0;
|
|
4
4
|
const tslib_1 = require("tslib");
|
|
5
5
|
const typeorm_1 = require("typeorm");
|
|
6
|
-
const schema_1 = require("
|
|
6
|
+
const schema_1 = require("../../../../infrastructure-persistence/schema");
|
|
7
7
|
let InvalidatedTokenEntity = class InvalidatedTokenEntity {
|
|
8
8
|
constructor(partial = {}) {
|
|
9
9
|
Object.assign(this, partial);
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"invalidated-token.entity.js","sourceRoot":"","sources":["../../../../../../../../../libs/auth/nest/src/infrastructure-engine/better-auth/plugins/jwt/invalidated-token.entity.ts"],"names":[],"mappings":";;;;AAAA,qCAA+D;AAC/D,0EAA4E;AAQrE,IAAM,sBAAsB,GAA5B,MAAM,sBAAsB;IAiBjC,YAAY,UAA2C,EAAE;QACvD,MAAM,CAAC,MAAM,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;IAC/B,CAAC;CACF,CAAA;AApBY,wDAAsB;AAEjC;IADC,IAAA,uBAAa,EAAC,EAAE,IAAI,EAAE,SAAS,EAAE,MAAM,EAAE,GAAG,EAAE,CAAC;;uDAC/B;AAGjB;IADC,IAAA,gBAAM,EAAC,EAAE,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;;sDAClB;AAGvB;IADC,IAAA,gBAAM,EAAC,EAAE,IAAI,EAAE,aAAa,EAAE,IAAI,EAAE,YAAY,EAAE,CAAC;sCACxC,IAAI;yDAAC;AAOjB;IALC,IAAA,gBAAM,EAAC;QACN,IAAI,EAAE,aAAa;QACnB,IAAI,EAAE,gBAAgB;QACtB,OAAO,EAAE,GAAG,EAAE,CAAC,mBAAmB;KACnC,CAAC;sCACc,IAAI;6DAAC;iCAfV,sBAAsB;IANlC,IAAA,gBAAM,EAAC;QACN,MAAM,EAAE,oBAAW;QACnB,IAAI,EAAE,oBAAoB;QAC1B,WAAW,EAAE,KAAK;KACnB,CAAC;IACD,IAAA,eAAK,EAAC,mCAAmC,EAAE,CAAC,WAAW,CAAC,CAAC;;GAC7C,sBAAsB,CAoBlC"}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import { JwtLogoutRequestDTO, LoginResponseDTO, RefreshTokenRequestDTO, RefreshTokenResponseDTO } from '@anarchitects/auth-ts/dtos/jwt';
|
|
2
|
+
import { LoginRequestDTO, SuccessResponseDTO } from '@anarchitects/auth-ts/dtos';
|
|
3
|
+
import { BetterAuthJwtPluginService } from './better-auth-jwt-plugin.service';
|
|
4
|
+
export declare class JwtAuthPluginController {
|
|
5
|
+
private readonly jwtPluginService;
|
|
6
|
+
constructor(jwtPluginService: BetterAuthJwtPluginService);
|
|
7
|
+
login(dto: LoginRequestDTO): Promise<LoginResponseDTO>;
|
|
8
|
+
logout(dto: JwtLogoutRequestDTO): Promise<SuccessResponseDTO>;
|
|
9
|
+
refresh(dto: RefreshTokenRequestDTO): Promise<RefreshTokenResponseDTO>;
|
|
10
|
+
}
|
|
@@ -0,0 +1,65 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.JwtAuthPluginController = void 0;
|
|
4
|
+
const tslib_1 = require("tslib");
|
|
5
|
+
const jwt_1 = require("@anarchitects/auth-ts/dtos/jwt");
|
|
6
|
+
const dtos_1 = require("@anarchitects/auth-ts/dtos");
|
|
7
|
+
const common_1 = require("@nestjs/common");
|
|
8
|
+
const platform_fastify_1 = require("@nestjs/platform-fastify");
|
|
9
|
+
const better_auth_jwt_plugin_service_1 = require("./better-auth-jwt-plugin.service");
|
|
10
|
+
let JwtAuthPluginController = class JwtAuthPluginController {
|
|
11
|
+
constructor(jwtPluginService) {
|
|
12
|
+
this.jwtPluginService = jwtPluginService;
|
|
13
|
+
}
|
|
14
|
+
login(dto) {
|
|
15
|
+
return this.jwtPluginService.login(dto);
|
|
16
|
+
}
|
|
17
|
+
logout(dto) {
|
|
18
|
+
return this.jwtPluginService.logout(dto);
|
|
19
|
+
}
|
|
20
|
+
refresh(dto) {
|
|
21
|
+
return this.jwtPluginService.refreshTokens(dto);
|
|
22
|
+
}
|
|
23
|
+
};
|
|
24
|
+
exports.JwtAuthPluginController = JwtAuthPluginController;
|
|
25
|
+
tslib_1.__decorate([
|
|
26
|
+
(0, common_1.HttpCode)(200),
|
|
27
|
+
(0, common_1.Post)('/login'),
|
|
28
|
+
(0, platform_fastify_1.RouteSchema)({
|
|
29
|
+
body: dtos_1.LoginRequestSchema,
|
|
30
|
+
response: { 200: jwt_1.LoginResponseSchema },
|
|
31
|
+
}),
|
|
32
|
+
tslib_1.__param(0, (0, common_1.Body)()),
|
|
33
|
+
tslib_1.__metadata("design:type", Function),
|
|
34
|
+
tslib_1.__metadata("design:paramtypes", [Object]),
|
|
35
|
+
tslib_1.__metadata("design:returntype", Promise)
|
|
36
|
+
], JwtAuthPluginController.prototype, "login", null);
|
|
37
|
+
tslib_1.__decorate([
|
|
38
|
+
(0, common_1.HttpCode)(200),
|
|
39
|
+
(0, common_1.Post)('/logout'),
|
|
40
|
+
(0, platform_fastify_1.RouteSchema)({
|
|
41
|
+
body: jwt_1.JwtLogoutRequestSchema,
|
|
42
|
+
response: { 200: dtos_1.SuccessResponseSchema },
|
|
43
|
+
}),
|
|
44
|
+
tslib_1.__param(0, (0, common_1.Body)()),
|
|
45
|
+
tslib_1.__metadata("design:type", Function),
|
|
46
|
+
tslib_1.__metadata("design:paramtypes", [Object]),
|
|
47
|
+
tslib_1.__metadata("design:returntype", Promise)
|
|
48
|
+
], JwtAuthPluginController.prototype, "logout", null);
|
|
49
|
+
tslib_1.__decorate([
|
|
50
|
+
(0, common_1.HttpCode)(200),
|
|
51
|
+
(0, common_1.Post)('/refresh'),
|
|
52
|
+
(0, platform_fastify_1.RouteSchema)({
|
|
53
|
+
body: jwt_1.RefreshTokenRequestSchema,
|
|
54
|
+
response: { 200: jwt_1.RefreshTokenResponseSchema },
|
|
55
|
+
}),
|
|
56
|
+
tslib_1.__param(0, (0, common_1.Body)()),
|
|
57
|
+
tslib_1.__metadata("design:type", Function),
|
|
58
|
+
tslib_1.__metadata("design:paramtypes", [Object]),
|
|
59
|
+
tslib_1.__metadata("design:returntype", Promise)
|
|
60
|
+
], JwtAuthPluginController.prototype, "refresh", null);
|
|
61
|
+
exports.JwtAuthPluginController = JwtAuthPluginController = tslib_1.__decorate([
|
|
62
|
+
(0, common_1.Controller)('auth/jwt'),
|
|
63
|
+
tslib_1.__metadata("design:paramtypes", [better_auth_jwt_plugin_service_1.BetterAuthJwtPluginService])
|
|
64
|
+
], JwtAuthPluginController);
|
|
65
|
+
//# sourceMappingURL=jwt-auth-plugin.controller.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"jwt-auth-plugin.controller.js","sourceRoot":"","sources":["../../../../../../../../../libs/auth/nest/src/infrastructure-engine/better-auth/plugins/jwt/jwt-auth-plugin.controller.ts"],"names":[],"mappings":";;;;AAAA,wDASwC;AACxC,qDAKoC;AACpC,2CAAkE;AAClE,+DAAuD;AACvD,qFAA8E;AAGvE,IAAM,uBAAuB,GAA7B,MAAM,uBAAuB;IAClC,YACmB,gBAA4C;QAA5C,qBAAgB,GAAhB,gBAAgB,CAA4B;IAC5D,CAAC;IAQJ,KAAK,CAAS,GAAoB;QAChC,OAAO,IAAI,CAAC,gBAAgB,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;IAC1C,CAAC;IAQD,MAAM,CAAS,GAAwB;QACrC,OAAO,IAAI,CAAC,gBAAgB,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;IAC3C,CAAC;IAQD,OAAO,CACG,GAA2B;QAEnC,OAAO,IAAI,CAAC,gBAAgB,CAAC,aAAa,CAAC,GAAG,CAAC,CAAC;IAClD,CAAC;CACF,CAAA;AApCY,0DAAuB;AAWlC;IANC,IAAA,iBAAQ,EAAC,GAAG,CAAC;IACb,IAAA,aAAI,EAAC,QAAQ,CAAC;IACd,IAAA,8BAAW,EAAC;QACX,IAAI,EAAE,yBAAkB;QACxB,QAAQ,EAAE,EAAE,GAAG,EAAE,yBAAmB,EAAE;KACvC,CAAC;IACK,mBAAA,IAAA,aAAI,GAAE,CAAA;;;;oDAEZ;AAQD;IANC,IAAA,iBAAQ,EAAC,GAAG,CAAC;IACb,IAAA,aAAI,EAAC,SAAS,CAAC;IACf,IAAA,8BAAW,EAAC;QACX,IAAI,EAAE,4BAAsB;QAC5B,QAAQ,EAAE,EAAE,GAAG,EAAE,4BAAqB,EAAE;KACzC,CAAC;IACM,mBAAA,IAAA,aAAI,GAAE,CAAA;;;;qDAEb;AAQD;IANC,IAAA,iBAAQ,EAAC,GAAG,CAAC;IACb,IAAA,aAAI,EAAC,UAAU,CAAC;IAChB,IAAA,8BAAW,EAAC;QACX,IAAI,EAAE,+BAAyB;QAC/B,QAAQ,EAAE,EAAE,GAAG,EAAE,gCAA0B,EAAE;KAC9C,CAAC;IAEC,mBAAA,IAAA,aAAI,GAAE,CAAA;;;;sDAGR;kCAnCU,uBAAuB;IADnC,IAAA,mBAAU,EAAC,UAAU,CAAC;6CAGgB,2DAA0B;GAFpD,uBAAuB,CAoCnC"}
|