@casual-simulation/aux-records-aws 3.2.3 → 3.2.4-alpha.5857788915

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/index.d.ts CHANGED
@@ -1,9 +1,3 @@
1
- export * from './DynamoDBRecordsStore';
2
- export * from './DynamoDBDataStore';
3
- export * from './DynamoDBFileStore';
4
- export * from './DynamoDBEventStore';
5
- export * from './DynamoDBAuthStore';
6
- export * from './DynamoDBPolicyStore';
7
1
  export * from './TextItAuthMessenger';
8
2
  export * from './SimpleEmailServiceAuthMessenger';
9
3
  export { S3FileRecordsStore } from './S3FileRecordsStore';
package/index.js CHANGED
@@ -1,9 +1,3 @@
1
- export * from './DynamoDBRecordsStore';
2
- export * from './DynamoDBDataStore';
3
- export * from './DynamoDBFileStore';
4
- export * from './DynamoDBEventStore';
5
- export * from './DynamoDBAuthStore';
6
- export * from './DynamoDBPolicyStore';
7
1
  export * from './TextItAuthMessenger';
8
2
  export * from './SimpleEmailServiceAuthMessenger';
9
3
  export { S3FileRecordsStore } from './S3FileRecordsStore';
package/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["index.ts"],"names":[],"mappings":"AAAA,cAAc,wBAAwB,CAAC;AACvC,cAAc,qBAAqB,CAAC;AACpC,cAAc,qBAAqB,CAAC;AACpC,cAAc,sBAAsB,CAAC;AACrC,cAAc,qBAAqB,CAAC;AACpC,cAAc,uBAAuB,CAAC;AACtC,cAAc,uBAAuB,CAAC;AACtC,cAAc,mCAAmC,CAAC;AAClD,OAAO,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["index.ts"],"names":[],"mappings":"AAAA,cAAc,uBAAuB,CAAC;AACtC,cAAc,mCAAmC,CAAC;AAClD,OAAO,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@casual-simulation/aux-records-aws",
3
- "version": "3.2.3",
3
+ "version": "3.2.4-alpha.5857788915",
4
4
  "description": "AWS Store implementations for the CasualOS Records System.",
5
5
  "keywords": [],
6
6
  "author": "Casual Simulation, Inc.",
@@ -37,7 +37,7 @@
37
37
  "access": "public"
38
38
  },
39
39
  "dependencies": {
40
- "@casual-simulation/aux-records": "^3.2.3"
40
+ "@casual-simulation/aux-records": "^3.2.4-alpha.5857788915"
41
41
  },
42
- "gitHead": "49eebdd054045b4d77655b3936fdbef7cefed5d6"
42
+ "gitHead": "b5f195ca2463185090d5537158ae1e8bb4984bc4"
43
43
  }
@@ -1,34 +0,0 @@
1
- import { AddressType, AuthLoginRequest, AuthSession, AuthStore, AuthUser, ListSessionsDataResult, SaveNewUserResult } from '@casual-simulation/aux-records/AuthStore';
2
- import { RegexRule } from '@casual-simulation/aux-records/Utils';
3
- import dynamodb from 'aws-sdk/clients/dynamodb';
4
- export declare class DynamoDBAuthStore implements AuthStore {
5
- private _dynamo;
6
- private _usersTableName;
7
- private _userAddressesTableName;
8
- private _loginRequestsTableName;
9
- private _sessionsTableName;
10
- private _sessionsTableExpireTimeIndexName;
11
- private _emailRulesTableName;
12
- private _smsRulesTableName;
13
- private _stripeCustomerIdIndexName;
14
- constructor(dynamo: dynamodb.DocumentClient, usersTableName: string, userAddressesTableName: string, loginRequestsTableName: string, sessionsTableName: string, sessionsTableExpireTimeIndexName: string, emailRulesTableName: string, smsRulesTableName: string, stripeCustomerIdIndexName: string);
15
- setRevokeAllSessionsTimeForUser(userId: string, allSessionRevokeTimeMs: number): Promise<void>;
16
- saveUser(user: AuthUser): Promise<void>;
17
- saveNewUser(user: AuthUser): Promise<SaveNewUserResult>;
18
- setCurrentLoginRequest(userId: string, requestId: string): Promise<void>;
19
- findUser(userId: string): Promise<AuthUser>;
20
- findUserByStripeCustomerId(customerId: string): Promise<AuthUser>;
21
- findUserByAddress(address: string, addressType: AddressType): Promise<AuthUser>;
22
- findLoginRequest(userId: string, requestId: string): Promise<AuthLoginRequest>;
23
- saveLoginRequest(request: AuthLoginRequest): Promise<AuthLoginRequest>;
24
- markLoginRequestComplete(userId: string, requestId: string, completedTimeMs: number): Promise<void>;
25
- incrementLoginRequestAttemptCount(userId: string, requestId: string): Promise<void>;
26
- findSession(userId: string, sessionId: string): Promise<AuthSession>;
27
- saveSession(session: AuthSession): Promise<void>;
28
- replaceSession(session: AuthSession, newSession: AuthSession, revokeTimeMs: number): Promise<void>;
29
- listSessions(userId: string, expireTimeMs: number | null): Promise<ListSessionsDataResult>;
30
- listEmailRules(): Promise<RegexRule[]>;
31
- listSmsRules(): Promise<RegexRule[]>;
32
- }
33
- export declare function cleanupObject<T extends Object>(obj: T): Partial<T>;
34
- //# sourceMappingURL=DynamoDBAuthStore.d.ts.map
@@ -1,506 +0,0 @@
1
- var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
2
- function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
3
- return new (P || (P = Promise))(function (resolve, reject) {
4
- function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
5
- function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
6
- function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
7
- step((generator = generator.apply(thisArg, _arguments || [])).next());
8
- });
9
- };
10
- import { omitBy } from 'lodash';
11
- export class DynamoDBAuthStore {
12
- constructor(dynamo, usersTableName, userAddressesTableName, loginRequestsTableName, sessionsTableName, sessionsTableExpireTimeIndexName, emailRulesTableName, smsRulesTableName, stripeCustomerIdIndexName) {
13
- this._dynamo = dynamo;
14
- this._usersTableName = usersTableName;
15
- this._userAddressesTableName = userAddressesTableName;
16
- this._loginRequestsTableName = loginRequestsTableName;
17
- this._sessionsTableName = sessionsTableName;
18
- this._sessionsTableExpireTimeIndexName =
19
- sessionsTableExpireTimeIndexName;
20
- this._emailRulesTableName = emailRulesTableName;
21
- this._smsRulesTableName = smsRulesTableName;
22
- this._stripeCustomerIdIndexName = stripeCustomerIdIndexName;
23
- }
24
- setRevokeAllSessionsTimeForUser(userId, allSessionRevokeTimeMs) {
25
- return __awaiter(this, void 0, void 0, function* () {
26
- yield this._dynamo
27
- .update({
28
- TableName: this._usersTableName,
29
- Key: {
30
- id: userId,
31
- },
32
- UpdateExpression: 'SET allSessionRevokeTimeMs = :allSessionRevokeTimeMs',
33
- ExpressionAttributeValues: {
34
- ':allSessionRevokeTimeMs': allSessionRevokeTimeMs,
35
- },
36
- })
37
- .promise();
38
- });
39
- }
40
- saveUser(user) {
41
- return __awaiter(this, void 0, void 0, function* () {
42
- let items = [
43
- {
44
- Put: {
45
- TableName: this._usersTableName,
46
- Item: cleanupObject({
47
- id: user.id,
48
- name: user.name,
49
- email: user.email,
50
- phoneNumber: user.phoneNumber,
51
- avatarUrl: user.avatarUrl,
52
- avatarPortraitUrl: user.avatarPortraitUrl,
53
- allSessionRevokeTimeMs: user.allSessionRevokeTimeMs,
54
- currentLoginRequestId: user.currentLoginRequestId,
55
- stripeCustomerId: user.stripeCustomerId,
56
- subscriptionStatus: user.subscriptionStatus,
57
- subscriptionId: user.subscriptionId,
58
- openAiKey: user.openAiKey,
59
- banTimeMs: user.banTimeMs,
60
- banReason: user.banReason,
61
- }),
62
- },
63
- },
64
- ];
65
- if (user.email) {
66
- // Save the email to the addresses table
67
- // This will overwrite the user ID that is associated with the email.
68
- // This is OK because findUserByAddress() checks to ensure that the email stored in the user record matches the one that was used to look up
69
- // the user.
70
- items.push({
71
- Put: {
72
- TableName: this._userAddressesTableName,
73
- Item: {
74
- address: user.email,
75
- addressType: 'email',
76
- userId: user.id,
77
- },
78
- },
79
- });
80
- }
81
- if (user.phoneNumber) {
82
- // Save the phone number to the addresses table.
83
- // This will overwrite the user ID that is associated with the phone number.
84
- // This is OK because findUserByAddress() checks to ensure that the phone number stored in the user record matches the one that was used to look up
85
- // the user.
86
- items.push({
87
- Put: {
88
- TableName: this._userAddressesTableName,
89
- Item: {
90
- address: user.phoneNumber,
91
- addressType: 'phone',
92
- userId: user.id,
93
- },
94
- },
95
- });
96
- }
97
- yield this._dynamo
98
- .transactWrite({
99
- TransactItems: items,
100
- })
101
- .promise();
102
- });
103
- }
104
- saveNewUser(user) {
105
- let items = [
106
- {
107
- Put: {
108
- TableName: this._usersTableName,
109
- Item: cleanupObject({
110
- id: user.id,
111
- name: user.name,
112
- email: user.email,
113
- phoneNumber: user.phoneNumber,
114
- avatarUrl: user.avatarUrl,
115
- avatarPortraitUrl: user.avatarPortraitUrl,
116
- allSessionRevokeTimeMs: user.allSessionRevokeTimeMs,
117
- currentLoginRequestId: user.currentLoginRequestId,
118
- stripeCustomerId: user.stripeCustomerId,
119
- subscriptionStatus: user.subscriptionStatus,
120
- subscriptionId: user.subscriptionId,
121
- openAiKey: user.openAiKey,
122
- banTimeMs: user.banTimeMs,
123
- banReason: user.banReason,
124
- }),
125
- ConditionExpression: 'attribute_not_exists(id)',
126
- },
127
- },
128
- ];
129
- if (user.email) {
130
- // Save the email to the addresses table
131
- items.push({
132
- Put: {
133
- TableName: this._userAddressesTableName,
134
- Item: {
135
- address: user.email,
136
- addressType: 'email',
137
- userId: user.id,
138
- },
139
- ConditionExpression: 'attribute_not_exists(address)',
140
- },
141
- });
142
- }
143
- if (user.phoneNumber) {
144
- // Save the phone number to the addresses table
145
- items.push({
146
- Put: {
147
- TableName: this._userAddressesTableName,
148
- Item: {
149
- address: user.phoneNumber,
150
- addressType: 'phone',
151
- userId: user.id,
152
- },
153
- ConditionExpression: 'attribute_not_exists(address)',
154
- },
155
- });
156
- }
157
- return this._dynamo
158
- .transactWrite({
159
- TransactItems: items,
160
- })
161
- .promise()
162
- .then((result) => {
163
- return {
164
- success: true,
165
- };
166
- }, (err) => {
167
- if (err.name === 'ConditionalCheckFailedException') {
168
- return {
169
- success: false,
170
- errorCode: 'user_already_exists',
171
- errorMessage: 'The user already exists.',
172
- };
173
- }
174
- else {
175
- console.error('[DynamoDBAuthStore] Unable to save new user.', err);
176
- return {
177
- success: false,
178
- errorCode: 'server_error',
179
- errorMessage: 'A server error occurred.',
180
- };
181
- }
182
- });
183
- }
184
- setCurrentLoginRequest(userId, requestId) {
185
- return __awaiter(this, void 0, void 0, function* () {
186
- yield this._dynamo
187
- .update({
188
- TableName: this._usersTableName,
189
- Key: {
190
- id: userId,
191
- },
192
- UpdateExpression: 'SET currentLoginRequestId = :currentLoginRequestId',
193
- ExpressionAttributeValues: {
194
- ':currentLoginRequestId': requestId,
195
- },
196
- })
197
- .promise();
198
- });
199
- }
200
- findUser(userId) {
201
- return __awaiter(this, void 0, void 0, function* () {
202
- const userResult = yield this._dynamo
203
- .get({
204
- TableName: this._usersTableName,
205
- Key: {
206
- id: userId,
207
- },
208
- })
209
- .promise();
210
- const user = userResult.Item;
211
- if (user) {
212
- return {
213
- id: user.id,
214
- email: user.email,
215
- phoneNumber: user.phoneNumber,
216
- avatarPortraitUrl: user.avatarPortraitUrl,
217
- avatarUrl: user.avatarUrl,
218
- name: user.name,
219
- allSessionRevokeTimeMs: user.allSessionRevokeTimeMs,
220
- currentLoginRequestId: user.currentLoginRequestId,
221
- stripeCustomerId: user.stripeCustomerId,
222
- subscriptionStatus: user.subscriptionStatus,
223
- subscriptionId: user.subscriptionId,
224
- openAiKey: user.openAiKey,
225
- banTimeMs: user.banTimeMs,
226
- banReason: user.banReason,
227
- };
228
- }
229
- else {
230
- return null;
231
- }
232
- });
233
- }
234
- findUserByStripeCustomerId(customerId) {
235
- return __awaiter(this, void 0, void 0, function* () {
236
- const userResult = yield this._dynamo
237
- .query({
238
- TableName: this._usersTableName,
239
- IndexName: this._stripeCustomerIdIndexName,
240
- KeyConditionExpression: 'stripeCustomerId = :stripeCustomerId',
241
- ExpressionAttributeValues: {
242
- ':stripeCustomerId': customerId,
243
- },
244
- Limit: 1,
245
- })
246
- .promise();
247
- if (!userResult.Items || userResult.Items.length <= 0) {
248
- return null;
249
- }
250
- const user = userResult.Items[0];
251
- if (user) {
252
- return yield this.findUser(user.id);
253
- }
254
- else {
255
- return null;
256
- }
257
- });
258
- }
259
- findUserByAddress(address, addressType) {
260
- return __awaiter(this, void 0, void 0, function* () {
261
- const addressQuery = yield this._dynamo
262
- .get({
263
- TableName: this._userAddressesTableName,
264
- Key: {
265
- address: address,
266
- addressType: addressType,
267
- },
268
- })
269
- .promise();
270
- if (addressQuery.Item) {
271
- const userId = addressQuery.Item.userId;
272
- const user = yield this.findUser(userId);
273
- if (user) {
274
- if (addressType === 'email' && user.email === address) {
275
- return user;
276
- }
277
- else if (addressType === 'phone' &&
278
- user.phoneNumber === address) {
279
- return user;
280
- }
281
- }
282
- return null;
283
- }
284
- else {
285
- return null;
286
- }
287
- });
288
- }
289
- findLoginRequest(userId, requestId) {
290
- return __awaiter(this, void 0, void 0, function* () {
291
- const result = yield this._dynamo
292
- .get({
293
- TableName: this._loginRequestsTableName,
294
- Key: {
295
- userId: userId,
296
- requestId: requestId,
297
- },
298
- })
299
- .promise();
300
- if (result.Item) {
301
- return {
302
- userId: result.Item.userId,
303
- requestId: result.Item.requestId,
304
- secretHash: result.Item.secretHash,
305
- expireTimeMs: result.Item.expireTimeMs,
306
- completedTimeMs: result.Item.completedTimeMs,
307
- requestTimeMs: result.Item.requestTimeMs,
308
- address: result.Item.address,
309
- addressType: result.Item.addressType,
310
- ipAddress: result.Item.ipAddress,
311
- attemptCount: result.Item.attemptCount,
312
- };
313
- }
314
- return null;
315
- });
316
- }
317
- saveLoginRequest(request) {
318
- return __awaiter(this, void 0, void 0, function* () {
319
- const data = {
320
- userId: request.userId,
321
- requestId: request.requestId,
322
- secretHash: request.secretHash,
323
- expireTimeMs: request.expireTimeMs,
324
- completedTimeMs: request.completedTimeMs,
325
- requestTimeMs: request.requestTimeMs,
326
- address: request.address,
327
- addressType: request.addressType,
328
- ipAddress: request.ipAddress,
329
- attemptCount: request.attemptCount,
330
- };
331
- yield this._dynamo
332
- .put({
333
- TableName: this._loginRequestsTableName,
334
- Item: cleanupObject(data),
335
- })
336
- .promise();
337
- return data;
338
- });
339
- }
340
- markLoginRequestComplete(userId, requestId, completedTimeMs) {
341
- return __awaiter(this, void 0, void 0, function* () {
342
- yield this._dynamo
343
- .update({
344
- TableName: this._loginRequestsTableName,
345
- Key: {
346
- userId: userId,
347
- requestId: requestId,
348
- },
349
- UpdateExpression: 'SET completedTimeMs = :completedTimeMs',
350
- ExpressionAttributeValues: {
351
- ':completedTimeMs': completedTimeMs,
352
- },
353
- })
354
- .promise();
355
- });
356
- }
357
- incrementLoginRequestAttemptCount(userId, requestId) {
358
- return __awaiter(this, void 0, void 0, function* () {
359
- yield this._dynamo
360
- .update({
361
- TableName: this._loginRequestsTableName,
362
- Key: {
363
- userId: userId,
364
- requestId: requestId,
365
- },
366
- UpdateExpression: 'SET attemptCount = attemptCount + 1',
367
- })
368
- .promise();
369
- });
370
- }
371
- findSession(userId, sessionId) {
372
- return __awaiter(this, void 0, void 0, function* () {
373
- const result = yield this._dynamo
374
- .get({
375
- TableName: this._sessionsTableName,
376
- Key: {
377
- userId: userId,
378
- sessionId: sessionId,
379
- },
380
- })
381
- .promise();
382
- if (result.Item) {
383
- return {
384
- userId: result.Item.userId,
385
- sessionId: result.Item.sessionId,
386
- secretHash: result.Item.secretHash,
387
- expireTimeMs: result.Item.expireTimeMs,
388
- grantedTimeMs: result.Item.grantedTimeMs,
389
- revokeTimeMs: result.Item.revokeTimeMs,
390
- ipAddress: result.Item.ipAddress,
391
- requestId: result.Item.requestId,
392
- previousSessionId: result.Item.previousSessionId,
393
- nextSessionId: result.Item.nextSessionId,
394
- };
395
- }
396
- return null;
397
- });
398
- }
399
- saveSession(session) {
400
- return __awaiter(this, void 0, void 0, function* () {
401
- const data = {
402
- userId: session.userId,
403
- sessionId: session.sessionId,
404
- secretHash: session.secretHash,
405
- expireTimeMs: session.expireTimeMs,
406
- grantedTimeMs: session.grantedTimeMs,
407
- revokeTimeMs: session.revokeTimeMs,
408
- ipAddress: session.ipAddress,
409
- requestId: session.requestId,
410
- previousSessionId: session.previousSessionId,
411
- nextSessionId: session.nextSessionId,
412
- };
413
- yield this._dynamo
414
- .put({
415
- TableName: this._sessionsTableName,
416
- Item: cleanupObject(data),
417
- })
418
- .promise();
419
- });
420
- }
421
- replaceSession(session, newSession, revokeTimeMs) {
422
- return __awaiter(this, void 0, void 0, function* () {
423
- yield this.saveSession(Object.assign(Object.assign({}, session), { revokeTimeMs: revokeTimeMs, nextSessionId: newSession.sessionId }));
424
- yield this.saveSession(Object.assign(Object.assign({}, newSession), { previousSessionId: session.sessionId }));
425
- });
426
- }
427
- listSessions(userId, expireTimeMs) {
428
- return __awaiter(this, void 0, void 0, function* () {
429
- const query = typeof expireTimeMs === 'number'
430
- ? 'userId = :userId AND expireTimeMs < :expireTimeMs'
431
- : 'userId = :userId';
432
- const values = typeof expireTimeMs === 'number'
433
- ? {
434
- ':userId': userId,
435
- ':expireTimeMs': expireTimeMs,
436
- }
437
- : {
438
- ':userId': userId,
439
- };
440
- const result = yield this._dynamo
441
- .query({
442
- TableName: this._sessionsTableName,
443
- IndexName: this._sessionsTableExpireTimeIndexName,
444
- KeyConditionExpression: query,
445
- ExpressionAttributeValues: values,
446
- ScanIndexForward: false,
447
- Limit: 10,
448
- })
449
- .promise();
450
- return {
451
- success: true,
452
- sessions: result.Items.map((i) => {
453
- let session = {
454
- userId: i.userId,
455
- sessionId: i.sessionId,
456
- secretHash: i.secretHash,
457
- expireTimeMs: i.expireTimeMs,
458
- grantedTimeMs: i.grantedTimeMs,
459
- revokeTimeMs: i.revokeTimeMs,
460
- ipAddress: i.ipAddress,
461
- requestId: i.requestId,
462
- previousSessionId: i.previousSessionId,
463
- nextSessionId: i.nextSessionId,
464
- };
465
- return session;
466
- }),
467
- };
468
- });
469
- }
470
- listEmailRules() {
471
- return __awaiter(this, void 0, void 0, function* () {
472
- const result = yield this._dynamo
473
- .scan({
474
- TableName: this._emailRulesTableName,
475
- })
476
- .promise();
477
- if (!result.Items) {
478
- return [];
479
- }
480
- return result.Items.map((i) => ({
481
- type: i.type,
482
- pattern: i.pattern,
483
- }));
484
- });
485
- }
486
- listSmsRules() {
487
- return __awaiter(this, void 0, void 0, function* () {
488
- const result = yield this._dynamo
489
- .scan({
490
- TableName: this._smsRulesTableName,
491
- })
492
- .promise();
493
- if (!result.Items) {
494
- return [];
495
- }
496
- return result.Items.map((i) => ({
497
- type: i.type,
498
- pattern: i.pattern,
499
- }));
500
- });
501
- }
502
- }
503
- export function cleanupObject(obj) {
504
- return omitBy(obj, (o) => typeof o === 'undefined' || o === null);
505
- }
506
- //# sourceMappingURL=DynamoDBAuthStore.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"DynamoDBAuthStore.js","sourceRoot":"","sources":["DynamoDBAuthStore.ts"],"names":[],"mappings":"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"}
@@ -1,17 +0,0 @@
1
- import { DataRecordsStore } from '@casual-simulation/aux-records';
2
- import { SetDataResult, GetDataStoreResult, EraseDataStoreResult, ListDataStoreResult, UserPolicy } from '@casual-simulation/aux-records/DataRecordsStore';
3
- import dynamodb from 'aws-sdk/clients/dynamodb';
4
- export declare const LIST_DATA_PAGE_SIZE = 25;
5
- /**
6
- * Defines a DataRecordsStore that can store data items in DynamoDB.
7
- */
8
- export declare class DynamoDBDataStore implements DataRecordsStore {
9
- private _dynamo;
10
- private _tableName;
11
- constructor(dynamo: dynamodb.DocumentClient, tableName: string);
12
- setData(recordName: string, address: string, data: any, publisherId: string, subjectId: string, updatePolicy: UserPolicy, deletePolicy: UserPolicy, markers: string[]): Promise<SetDataResult>;
13
- getData(recordName: string, address: string): Promise<GetDataStoreResult>;
14
- eraseData(recordName: string, address: string): Promise<EraseDataStoreResult>;
15
- listData(recordName: string, address: string): Promise<ListDataStoreResult>;
16
- }
17
- //# sourceMappingURL=DynamoDBDataStore.d.ts.map