@hatkom/aws-auth 1.4.4 → 1.4.5

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/CHANGELOG.md CHANGED
@@ -1,3 +1,10 @@
1
+ ## [1.4.5](https://github.com/Hatkom-io/aws-auth/compare/v1.4.4...v1.4.5) (2026-03-24)
2
+
3
+
4
+ ### Bug Fixes
5
+
6
+ * tsconfig compiled wrong build ([39e3ced](https://github.com/Hatkom-io/aws-auth/commit/39e3ced05748674598b2502c3703fc318332265b))
7
+
1
8
  ## [1.4.4](https://github.com/Hatkom-io/aws-auth/compare/v1.4.3...v1.4.4) (2026-03-24)
2
9
 
3
10
 
package/dist/auth.d.ts ADDED
@@ -0,0 +1,34 @@
1
+ import { CognitoUserSession } from 'amazon-cognito-identity-js';
2
+ type AuthenticateUserArgs = {
3
+ email: string;
4
+ password: string;
5
+ };
6
+ type ForgotPasswordSubmitArgs = {
7
+ username: string;
8
+ verificationCode: string;
9
+ password: string;
10
+ };
11
+ type VerifyUserEmailArgs = {
12
+ username: string;
13
+ code: string;
14
+ };
15
+ type CompleteNewPasswordChallengeArgs = {
16
+ username: string;
17
+ newPassword: string;
18
+ };
19
+ declare class AWSAuthClient {
20
+ private userPool;
21
+ private syncStoragePromise;
22
+ constructor(UserPoolId: string, ClientId: string);
23
+ signOut: () => Promise<void>;
24
+ completeNewPasswordChallenge: ({ username, newPassword, }: CompleteNewPasswordChallengeArgs) => Promise<unknown>;
25
+ resendVerificationCode: (username: string) => Promise<unknown>;
26
+ verifyUserEmail: ({ username, code }: VerifyUserEmailArgs) => Promise<unknown>;
27
+ forgotPassword: (username: string) => Promise<unknown>;
28
+ forgotPasswordSubmit: ({ username, verificationCode, password, }: ForgotPasswordSubmitArgs) => Promise<unknown>;
29
+ authenticateUser: ({ email, password }: AuthenticateUserArgs) => Promise<CognitoUserSession | "new-password-required">;
30
+ getCurrentSessionToken: () => Promise<string | null>;
31
+ private isValid;
32
+ private cognitoUser;
33
+ }
34
+ export { AWSAuthClient, CognitoUserSession };
package/dist/auth.js ADDED
@@ -0,0 +1,158 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.CognitoUserSession = exports.AWSAuthClient = void 0;
4
+ const amazon_cognito_identity_js_1 = require("amazon-cognito-identity-js");
5
+ Object.defineProperty(exports, "CognitoUserSession", { enumerable: true, get: function () { return amazon_cognito_identity_js_1.CognitoUserSession; } });
6
+ const needsToSyncStorage = (userPool) => !!('storage' in userPool &&
7
+ typeof userPool.storage === 'function' &&
8
+ 'sync' in userPool.storage &&
9
+ typeof userPool.storage.sync === 'function');
10
+ class AWSAuthClient {
11
+ userPool;
12
+ syncStoragePromise;
13
+ constructor(UserPoolId, ClientId) {
14
+ this.userPool = new amazon_cognito_identity_js_1.CognitoUserPool({
15
+ UserPoolId,
16
+ ClientId,
17
+ });
18
+ this.syncStoragePromise = new Promise((resolve) => {
19
+ if (needsToSyncStorage(this.userPool)) {
20
+ this.userPool.storage.sync(resolve);
21
+ return;
22
+ }
23
+ resolve();
24
+ });
25
+ }
26
+ signOut = async () => {
27
+ await this.syncStoragePromise;
28
+ const user = this.userPool.getCurrentUser();
29
+ if (!user) {
30
+ return;
31
+ }
32
+ try {
33
+ await new Promise((resolve) => {
34
+ user.signOut(resolve);
35
+ });
36
+ }
37
+ catch (error) {
38
+ console.error('SignOut error', { extra: JSON.stringify(error) });
39
+ }
40
+ };
41
+ completeNewPasswordChallenge = ({ username, newPassword, }) => {
42
+ return new Promise((resolve, reject) => {
43
+ this.cognitoUser(username).completeNewPasswordChallenge(newPassword, [], {
44
+ onSuccess: resolve,
45
+ onFailure: reject,
46
+ });
47
+ });
48
+ };
49
+ resendVerificationCode = async (username) => {
50
+ await this.syncStoragePromise;
51
+ return new Promise((resolve, reject) => {
52
+ this.cognitoUser(username).resendConfirmationCode((err, result) => {
53
+ if (err) {
54
+ reject(err);
55
+ return;
56
+ }
57
+ resolve(result);
58
+ });
59
+ });
60
+ };
61
+ verifyUserEmail = async ({ username, code }) => {
62
+ await this.syncStoragePromise;
63
+ return new Promise((resolve, reject) => {
64
+ this.cognitoUser(username).confirmRegistration(code, true, (error) => {
65
+ if (error) {
66
+ reject(error);
67
+ return;
68
+ }
69
+ resolve(true);
70
+ });
71
+ });
72
+ };
73
+ forgotPassword = async (username) => {
74
+ await this.syncStoragePromise;
75
+ return new Promise((resolve, reject) => {
76
+ this.cognitoUser(username).forgotPassword({
77
+ onSuccess: resolve,
78
+ onFailure: reject,
79
+ });
80
+ });
81
+ };
82
+ forgotPasswordSubmit = async ({ username, verificationCode, password, }) => {
83
+ await this.syncStoragePromise;
84
+ return new Promise((resolve, reject) => {
85
+ this.cognitoUser(username).confirmPassword(verificationCode, password, {
86
+ onSuccess: resolve,
87
+ onFailure: reject,
88
+ });
89
+ });
90
+ };
91
+ authenticateUser = async ({ email, password }) => {
92
+ await this.syncStoragePromise;
93
+ const authenticationDetails = new amazon_cognito_identity_js_1.AuthenticationDetails({
94
+ Username: email,
95
+ Password: password,
96
+ });
97
+ return new Promise((resolve, reject) => {
98
+ this.cognitoUser(email).authenticateUser(authenticationDetails, {
99
+ onSuccess: resolve,
100
+ onFailure: reject,
101
+ newPasswordRequired: () => {
102
+ resolve('new-password-required');
103
+ },
104
+ });
105
+ });
106
+ };
107
+ getCurrentSessionToken = async () => {
108
+ await this.syncStoragePromise;
109
+ const currentUser = this.userPool.getCurrentUser();
110
+ if (!currentUser) {
111
+ return null;
112
+ }
113
+ const session = await new Promise((resolve, reject) => {
114
+ currentUser.getSession((err, s) => {
115
+ if (err || !s) {
116
+ reject(err);
117
+ }
118
+ else {
119
+ resolve(s);
120
+ }
121
+ });
122
+ });
123
+ const valid = this.isValid(session.getAccessToken().getExpiration());
124
+ if (valid) {
125
+ return session.getAccessToken().getJwtToken();
126
+ }
127
+ const updatedSession = await new Promise((resolve, reject) => {
128
+ currentUser.refreshSession(session.getRefreshToken(), (error, value) => {
129
+ if (error) {
130
+ reject(error);
131
+ }
132
+ else {
133
+ resolve(value);
134
+ }
135
+ });
136
+ });
137
+ return updatedSession.getAccessToken().getJwtToken();
138
+ };
139
+ isValid = (tokenExpiration) => {
140
+ const now = Math.floor(new Date().getTime() / 1000);
141
+ const adjusted = now + 15;
142
+ return adjusted < tokenExpiration;
143
+ };
144
+ cognitoUser = (() => {
145
+ let user;
146
+ return (username) => {
147
+ if (!user || user.getUsername() !== username) {
148
+ user = new amazon_cognito_identity_js_1.CognitoUser({
149
+ Username: username,
150
+ Pool: this.userPool,
151
+ });
152
+ }
153
+ return user;
154
+ };
155
+ })();
156
+ }
157
+ exports.AWSAuthClient = AWSAuthClient;
158
+ //# sourceMappingURL=auth.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"auth.js","sourceRoot":"","sources":["../src/auth.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1 @@
1
+ export { AWSAuthClient, CognitoUserSession } from './auth';
package/dist/index.js ADDED
@@ -0,0 +1,7 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.CognitoUserSession = exports.AWSAuthClient = void 0;
4
+ var auth_1 = require("./auth");
5
+ Object.defineProperty(exports, "AWSAuthClient", { enumerable: true, get: function () { return auth_1.AWSAuthClient; } });
6
+ Object.defineProperty(exports, "CognitoUserSession", { enumerable: true, get: function () { return auth_1.CognitoUserSession; } });
7
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;AAAA,+BAA0D;AAAjD,qGAAA,aAAa,OAAA;AAAE,0GAAA,kBAAkB,OAAA"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@hatkom/aws-auth",
3
- "version": "1.4.4",
3
+ "version": "1.4.5",
4
4
  "main": "dist/index.js",
5
5
  "scripts": {
6
6
  "build": "rm -rf ./dist && tsc",