@lambada/utils 1.7.1 → 2.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.
- package/dist/data/repositoryExtended.d.ts +3 -2
- package/dist/data/repositoryExtended.js +4 -4
- package/dist/data/repositoryExtended.js.map +1 -1
- package/dist/dynamoMarshaller.d.ts +11 -0
- package/dist/dynamoMarshaller.js +11 -0
- package/dist/dynamoMarshaller.js.map +1 -0
- package/dist/repository.d.ts +7 -8
- package/dist/repository.js +12 -9
- package/dist/repository.js.map +1 -1
- package/dist/repository.test.js +27 -10
- package/dist/repository.test.js.map +1 -1
- package/dist/request.d.ts +11 -2
- package/dist/request.js +8 -14
- package/dist/request.js.map +1 -1
- package/dist/secretManager.d.ts +1 -1
- package/dist/secretManager.js +3 -4
- package/dist/secretManager.js.map +1 -1
- package/package.json +14 -9
- package/dist/dynamoMarsharler.d.ts +0 -10
- package/dist/dynamoMarsharler.js +0 -11
- package/dist/dynamoMarsharler.js.map +0 -1
|
@@ -1,5 +1,6 @@
|
|
|
1
|
-
import DynamoDB from "aws-sdk/
|
|
1
|
+
import * as DynamoDB from "@aws-sdk/client-dynamodb";
|
|
2
2
|
import { RepositoryBase } from "../repository";
|
|
3
|
+
import { AttributeMap } from "../dynamoMarshaller";
|
|
3
4
|
export declare class RepositoryExtended extends RepositoryBase {
|
|
4
5
|
constructor(...args: ConstructorParameters<typeof RepositoryBase>);
|
|
5
6
|
/**
|
|
@@ -76,5 +77,5 @@ export declare class RepositoryExtended extends RepositoryBase {
|
|
|
76
77
|
* @returns
|
|
77
78
|
*/
|
|
78
79
|
protected fullScan<T>(params: DynamoDB.ScanInput): Promise<T[]>;
|
|
79
|
-
protected fromItem<T>(item:
|
|
80
|
+
protected fromItem<T>(item: AttributeMap): T;
|
|
80
81
|
}
|
|
@@ -29,7 +29,7 @@ class RepositoryExtended extends repository_1.RepositoryBase {
|
|
|
29
29
|
ScanIndexForward: params.scanForward,
|
|
30
30
|
ExclusiveStartKey: params.lastKey ? JSON.parse(params.lastKey) : undefined,
|
|
31
31
|
};
|
|
32
|
-
const response = await this.getDb().query(command)
|
|
32
|
+
const response = await this.getDb().query(command);
|
|
33
33
|
return {
|
|
34
34
|
data: (response.Items ?? []).map(item => this.marshaller.unmarshallItem(item)),
|
|
35
35
|
lastKey: response.LastEvaluatedKey && JSON.stringify(response.LastEvaluatedKey)
|
|
@@ -73,7 +73,7 @@ class RepositoryExtended extends repository_1.RepositoryBase {
|
|
|
73
73
|
},
|
|
74
74
|
Limit: params.limit
|
|
75
75
|
};
|
|
76
|
-
const response = await this.getDb().query(command)
|
|
76
|
+
const response = await this.getDb().query(command);
|
|
77
77
|
return (response.Items ?? []).map(item => this.fromItem(item));
|
|
78
78
|
}
|
|
79
79
|
/**
|
|
@@ -108,7 +108,7 @@ class RepositoryExtended extends repository_1.RepositoryBase {
|
|
|
108
108
|
command.ExpressionAttributeNames[`#${name}`] = name;
|
|
109
109
|
command.ExpressionAttributeValues[`:${name}`] = this.marshaller.marshallValue(value);
|
|
110
110
|
});
|
|
111
|
-
const response = await this.getDb().updateItem(command)
|
|
111
|
+
const response = await this.getDb().updateItem(command);
|
|
112
112
|
if (!response.Attributes)
|
|
113
113
|
throw new Error('Failed to update item');
|
|
114
114
|
return this.marshaller.unmarshallItem(response.Attributes);
|
|
@@ -126,7 +126,7 @@ class RepositoryExtended extends repository_1.RepositoryBase {
|
|
|
126
126
|
...params,
|
|
127
127
|
ExclusiveStartKey: lastEvaluatedKey,
|
|
128
128
|
};
|
|
129
|
-
const response = await this.getDb().scan(command)
|
|
129
|
+
const response = await this.getDb().scan(command);
|
|
130
130
|
lastEvaluatedKey = response.LastEvaluatedKey;
|
|
131
131
|
items = items.concat((response.Items ?? []).map(item => this.fromItem(item)));
|
|
132
132
|
} while (lastEvaluatedKey);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"repositoryExtended.js","sourceRoot":"","sources":["../../src/data/repositoryExtended.ts"],"names":[],"mappings":";;;AACA,8CAA+C;
|
|
1
|
+
{"version":3,"file":"repositoryExtended.js","sourceRoot":"","sources":["../../src/data/repositoryExtended.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import { AttributeValue } from "@aws-sdk/client-dynamodb";
|
|
2
|
+
export declare type AttributeMap = Record<string, AttributeValue>;
|
|
3
|
+
export interface IMarshaller {
|
|
4
|
+
marshallItem(item: {
|
|
5
|
+
[key: string]: any;
|
|
6
|
+
}): AttributeMap;
|
|
7
|
+
marshallValue(value: any): AttributeValue | undefined;
|
|
8
|
+
unmarshallItem(item: AttributeMap): unknown;
|
|
9
|
+
unmarshallValue(item: AttributeValue): unknown;
|
|
10
|
+
}
|
|
11
|
+
export declare const DefaultMarshaller: IMarshaller;
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.DefaultMarshaller = void 0;
|
|
4
|
+
const Converter = require("@aws-sdk/util-dynamodb");
|
|
5
|
+
exports.DefaultMarshaller = {
|
|
6
|
+
marshallItem: Converter.marshall,
|
|
7
|
+
unmarshallItem: Converter.unmarshall,
|
|
8
|
+
marshallValue: Converter.convertToAttr,
|
|
9
|
+
unmarshallValue: Converter.convertToNative,
|
|
10
|
+
};
|
|
11
|
+
//# sourceMappingURL=dynamoMarshaller.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"dynamoMarshaller.js","sourceRoot":"","sources":["../src/dynamoMarshaller.ts"],"names":[],"mappings":";;;AACA,oDAAmD;AAatC,QAAA,iBAAiB,GAAgB;IAC1C,YAAY,EAAE,SAAS,CAAC,QAAQ;IAChC,cAAc,EAAE,SAAS,CAAC,UAAU;IACpC,aAAa,EAAE,SAAS,CAAC,aAAa;IACtC,eAAe,EAAE,SAAS,CAAC,eAAe;CAC7C,CAAC"}
|
package/dist/repository.d.ts
CHANGED
|
@@ -1,6 +1,5 @@
|
|
|
1
|
-
import * as
|
|
2
|
-
import {
|
|
3
|
-
import { IMarshaller } from "./dynamoMarsharler";
|
|
1
|
+
import * as DynamoDB from "@aws-sdk/client-dynamodb";
|
|
2
|
+
import { IMarshaller } from "./dynamoMarshaller";
|
|
4
3
|
export declare class RepositoryBase {
|
|
5
4
|
protected readonly table: {
|
|
6
5
|
envKeyName: string;
|
|
@@ -10,22 +9,22 @@ export declare class RepositoryBase {
|
|
|
10
9
|
};
|
|
11
10
|
protected marshaller: IMarshaller;
|
|
12
11
|
protected readonly tableName: string;
|
|
13
|
-
protected clientConfig?:
|
|
12
|
+
protected clientConfig?: DynamoDB.DynamoDBClientConfig;
|
|
14
13
|
constructor(table: {
|
|
15
14
|
envKeyName: string;
|
|
16
15
|
name: string;
|
|
17
16
|
primaryKey: string;
|
|
18
17
|
rangeKey?: string;
|
|
19
|
-
}, customMarshaller?: IMarshaller, clientConfig?:
|
|
18
|
+
}, customMarshaller?: IMarshaller, clientConfig?: DynamoDB.DynamoDBClientConfig);
|
|
20
19
|
/**
|
|
21
20
|
* Validates the table data before execution. This is important because if you've got more than one repo in a single service class,
|
|
22
21
|
* and a lambda that only uses one of them, then it would fail because it's expecting config for both tables, even if using one only.
|
|
23
22
|
* That's because the resource access given to each lambda also sets he environment variables needed.
|
|
24
23
|
*/
|
|
25
|
-
protected getDb():
|
|
24
|
+
protected getDb(): DynamoDB.DynamoDB;
|
|
26
25
|
protected scan<T>(args?: {
|
|
27
|
-
filter?:
|
|
28
|
-
filterValues?:
|
|
26
|
+
filter?: string;
|
|
27
|
+
filterValues?: Record<string, DynamoDB.AttributeValue>;
|
|
29
28
|
}): Promise<T[]>;
|
|
30
29
|
protected upsert<T>(item: T): Promise<T>;
|
|
31
30
|
protected query<T>(primaryKey: {
|
package/dist/repository.js
CHANGED
|
@@ -1,17 +1,17 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.RepositoryBase = void 0;
|
|
4
|
-
const
|
|
5
|
-
const
|
|
4
|
+
const DynamoDB = require("@aws-sdk/client-dynamodb");
|
|
5
|
+
const dynamoMarshaller_1 = require("./dynamoMarshaller");
|
|
6
6
|
class RepositoryBase {
|
|
7
7
|
constructor(table, customMarshaller, clientConfig) {
|
|
8
8
|
this.table = table;
|
|
9
|
-
this.tableName = process.env[table.envKeyName] ?? '';
|
|
9
|
+
this.tableName = table.name ?? process.env[table.envKeyName] ?? '';
|
|
10
10
|
if (customMarshaller) {
|
|
11
11
|
this.marshaller = customMarshaller;
|
|
12
12
|
}
|
|
13
13
|
else {
|
|
14
|
-
this.marshaller =
|
|
14
|
+
this.marshaller = dynamoMarshaller_1.DefaultMarshaller;
|
|
15
15
|
}
|
|
16
16
|
this.clientConfig = clientConfig;
|
|
17
17
|
}
|
|
@@ -23,7 +23,10 @@ class RepositoryBase {
|
|
|
23
23
|
getDb() {
|
|
24
24
|
if (!this.tableName || this.tableName.length < 3) //AWS rule
|
|
25
25
|
throw new Error(`Could not find env var: ${this.table.envKeyName}`);
|
|
26
|
-
|
|
26
|
+
if (this.clientConfig?.region) { // WTF https://github.com/aws/aws-sdk-js-v3/issues/3469#issuecomment-1078404172
|
|
27
|
+
process.env['AWS_REGION'] = this.clientConfig.region.toString();
|
|
28
|
+
}
|
|
29
|
+
return new DynamoDB.DynamoDB(this.clientConfig ?? {});
|
|
27
30
|
}
|
|
28
31
|
async scan(args) {
|
|
29
32
|
const db = this.getDb();
|
|
@@ -31,7 +34,7 @@ class RepositoryBase {
|
|
|
31
34
|
TableName: this.tableName,
|
|
32
35
|
FilterExpression: args?.filter,
|
|
33
36
|
ExpressionAttributeValues: args?.filterValues,
|
|
34
|
-
})
|
|
37
|
+
});
|
|
35
38
|
if (!result.Items) {
|
|
36
39
|
return [];
|
|
37
40
|
}
|
|
@@ -45,7 +48,7 @@ class RepositoryBase {
|
|
|
45
48
|
TableName: this.tableName,
|
|
46
49
|
ReturnValues: 'NONE'
|
|
47
50
|
};
|
|
48
|
-
await db.putItem(command)
|
|
51
|
+
await db.putItem(command);
|
|
49
52
|
return item;
|
|
50
53
|
}
|
|
51
54
|
async query(primaryKey, rangeKey, indexName) {
|
|
@@ -73,7 +76,7 @@ class RepositoryBase {
|
|
|
73
76
|
params.ExpressionAttributeNames["#rangeKey"] = rangeKey.name;
|
|
74
77
|
params.ExpressionAttributeValues[":rangeKeyValue"] = this.marshaller.marshallValue(rangeKey.value);
|
|
75
78
|
}
|
|
76
|
-
const result = await db.query(params)
|
|
79
|
+
const result = await db.query(params);
|
|
77
80
|
const items = result.Items;
|
|
78
81
|
if (!items)
|
|
79
82
|
return [];
|
|
@@ -97,7 +100,7 @@ class RepositoryBase {
|
|
|
97
100
|
TableName: this.tableName,
|
|
98
101
|
Key: key,
|
|
99
102
|
ConsistentRead: true,
|
|
100
|
-
})
|
|
103
|
+
});
|
|
101
104
|
if (!item.Item)
|
|
102
105
|
return null;
|
|
103
106
|
return this.marshaller.unmarshallItem(item.Item);
|
package/dist/repository.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"repository.js","sourceRoot":"","sources":["../src/repository.ts"],"names":[],"mappings":";;;AAAA
|
|
1
|
+
{"version":3,"file":"repository.js","sourceRoot":"","sources":["../src/repository.ts"],"names":[],"mappings":"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"}
|
package/dist/repository.test.js
CHANGED
|
@@ -1,16 +1,29 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
const repository_1 = require("./repository");
|
|
4
|
-
const
|
|
4
|
+
const dynamoMarshaller_1 = require("./dynamoMarshaller");
|
|
5
5
|
describe("Repository", () => {
|
|
6
|
+
beforeAll(() => {
|
|
7
|
+
});
|
|
6
8
|
test("Marshaller", async () => {
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
9
|
+
const repo = new TestRepo({
|
|
10
|
+
envKeyName: "TEST_NAME",
|
|
11
|
+
name: 'test',
|
|
12
|
+
primaryKey: 'userId',
|
|
13
|
+
rangeKey: 'id'
|
|
14
|
+
}, undefined, {
|
|
15
|
+
endpoint: `http://localhost:8000`,
|
|
16
|
+
region: 'local',
|
|
17
|
+
credentials: {
|
|
18
|
+
accessKeyId: 'dummy',
|
|
19
|
+
secretAccessKey: 'dummy'
|
|
20
|
+
}
|
|
21
|
+
});
|
|
22
|
+
await repo.save({
|
|
23
|
+
id: 1,
|
|
24
|
+
name: 'test'
|
|
25
|
+
});
|
|
26
|
+
const marshaller = dynamoMarshaller_1.DefaultMarshaller;
|
|
14
27
|
const original = {
|
|
15
28
|
a: 1,
|
|
16
29
|
b: 'b',
|
|
@@ -18,9 +31,7 @@ describe("Repository", () => {
|
|
|
18
31
|
d: ['1', '2', '3']
|
|
19
32
|
};
|
|
20
33
|
const marshalled = marshaller.marshallItem(original);
|
|
21
|
-
console.log('marshalled', marshalled);
|
|
22
34
|
const unmarshalled = marshaller.unmarshallItem(marshalled);
|
|
23
|
-
console.log('unmarshalled', unmarshalled);
|
|
24
35
|
expect(unmarshalled.a).toBe(original.a);
|
|
25
36
|
expect(unmarshalled.b).toBe(original.b);
|
|
26
37
|
expect(unmarshalled.c).toStrictEqual(original.c);
|
|
@@ -28,5 +39,11 @@ describe("Repository", () => {
|
|
|
28
39
|
});
|
|
29
40
|
});
|
|
30
41
|
class TestRepo extends repository_1.RepositoryBase {
|
|
42
|
+
constructor(...args) {
|
|
43
|
+
super(...args);
|
|
44
|
+
}
|
|
45
|
+
save(item) {
|
|
46
|
+
return this.upsert(item);
|
|
47
|
+
}
|
|
31
48
|
}
|
|
32
49
|
//# sourceMappingURL=repository.test.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"repository.test.js","sourceRoot":"","sources":["../src/repository.test.ts"],"names":[],"mappings":";;AAAA,6CAA6C;AAC7C,yDAAmE;AAEnE,QAAQ,CAAC,YAAY,EAAE,GAAG,EAAE;
|
|
1
|
+
{"version":3,"file":"repository.test.js","sourceRoot":"","sources":["../src/repository.test.ts"],"names":[],"mappings":";;AAAA,6CAA6C;AAC7C,yDAAmE;AAEnE,QAAQ,CAAC,YAAY,EAAE,GAAG,EAAE;IAExB,SAAS,CAAC,GAAG,EAAE;IAEf,CAAC,CAAC,CAAA;IAEF,IAAI,CAAC,YAAY,EAAE,KAAK,IAAI,EAAE;QAC1B,MAAM,IAAI,GAAG,IAAI,QAAQ,CAAC;YACtB,UAAU,EAAE,WAAW;YACvB,IAAI,EAAE,MAAM;YACZ,UAAU,EAAE,QAAQ;YACpB,QAAQ,EAAE,IAAI;SACjB,EAAE,SAAS,EAAE;YACV,QAAQ,EAAE,uBAAuB;YACjC,MAAM,EAAE,OAAO;YACf,WAAW,EAAE;gBACT,WAAW,EAAE,OAAO;gBACpB,eAAe,EAAE,OAAO;aAC3B;SACJ,CAAC,CAAA;QAEF,MAAM,IAAI,CAAC,IAAI,CAAC;YACZ,EAAE,EAAE,CAAC;YACL,IAAI,EAAE,MAAM;SACf,CAAC,CAAA;QAEF,MAAM,UAAU,GAAgB,oCAAiB,CAAA;QACjD,MAAM,QAAQ,GAAG;YACb,CAAC,EAAE,CAAC;YACJ,CAAC,EAAE,GAAG;YACN,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC;YACZ,CAAC,EAAE,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC;SACrB,CAAA;QAED,MAAM,UAAU,GAAG,UAAU,CAAC,YAAY,CAAC,QAAQ,CAAC,CAAA;QACpD,MAAM,YAAY,GAAG,UAAU,CAAC,cAAc,CAAC,UAAU,CAA+B,CAAA;QAExF,MAAM,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAA;QACvC,MAAM,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAA;QACvC,MAAM,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,aAAa,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAA;QAChD,MAAM,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,aAAa,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAA;IACpD,CAAC,CAAC,CAAA;AACN,CAAC,CAAC,CAAA;AAEF,MAAM,QAAS,SAAQ,2BAAc;IAEjC,YAAY,GAAG,IAAkD;QAC7D,KAAK,CAAC,GAAG,IAAI,CAAC,CAAA;IAClB,CAAC;IAEM,IAAI,CAAI,IAAO;QAClB,OAAO,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,CAAA;IAC5B,CAAC;CAEJ"}
|
package/dist/request.d.ts
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import * as awslambda from "aws-lambda";
|
|
2
|
-
import {
|
|
2
|
+
import { AttributeType, CognitoIdentityProvider } from '@aws-sdk/client-cognito-identity-provider';
|
|
3
3
|
export declare type Request = awslambda.APIGatewayProxyEvent;
|
|
4
4
|
export declare function tryGetBody<TBody>(request: Request): TBody | undefined;
|
|
5
5
|
export declare function getBody<TBody>(request: Request): TBody;
|
|
@@ -9,12 +9,21 @@ export declare function isUserInGroup(user: {
|
|
|
9
9
|
}, groupName: string): Promise<boolean>;
|
|
10
10
|
declare type AuthenticatedUser = {
|
|
11
11
|
id: string;
|
|
12
|
-
attributes:
|
|
12
|
+
attributes: AttributeType[];
|
|
13
13
|
username: string;
|
|
14
14
|
name?: string;
|
|
15
15
|
email: string;
|
|
16
16
|
enabled?: boolean;
|
|
17
17
|
};
|
|
18
|
+
declare global {
|
|
19
|
+
namespace NodeJS {
|
|
20
|
+
interface Global {
|
|
21
|
+
globalCognitoIdp?: CognitoIdentityProvider;
|
|
22
|
+
globalUserCacheBySub?: Map<string, AuthenticatedUser>;
|
|
23
|
+
globalUserCacheByUsername?: Map<string, AuthenticatedUser>;
|
|
24
|
+
}
|
|
25
|
+
}
|
|
26
|
+
}
|
|
18
27
|
export declare function getUserById(userId: string, poolId: string): Promise<AuthenticatedUser>;
|
|
19
28
|
export declare function getUser(username: string, context: AuthExecutionContext): Promise<AuthenticatedUser>;
|
|
20
29
|
export declare function getContext(request: Request): AuthExecutionContext | undefined;
|
package/dist/request.js
CHANGED
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.getContext = exports.getUser = exports.getUserById = exports.isUserInGroup = exports.getBody = exports.tryGetBody = void 0;
|
|
4
|
-
const AWS = require("aws-sdk");
|
|
5
4
|
const error_1 = require("./error");
|
|
5
|
+
const client_cognito_identity_provider_1 = require("@aws-sdk/client-cognito-identity-provider");
|
|
6
6
|
const crypto = require("crypto");
|
|
7
7
|
function tryGetBody(request) {
|
|
8
8
|
if (!request.body)
|
|
@@ -28,26 +28,20 @@ async function isUserInGroup(user, groupName) {
|
|
|
28
28
|
throw new error_1.LambadaError('[isUserInGroup] username is mandatory');
|
|
29
29
|
if (!user.poolId)
|
|
30
30
|
throw new error_1.LambadaError('[isUserInGroup] poolId is mandatory');
|
|
31
|
-
const cognito = new
|
|
31
|
+
const cognito = new client_cognito_identity_provider_1.CognitoIdentityProvider({ apiVersion: '2016-04-18' });
|
|
32
32
|
const groups = await cognito.adminListGroupsForUser({
|
|
33
33
|
Username: user.username,
|
|
34
34
|
UserPoolId: user.poolId
|
|
35
|
-
})
|
|
35
|
+
});
|
|
36
36
|
return typeof groups.Groups?.find(x => x.GroupName == groupName) !== 'undefined';
|
|
37
37
|
}
|
|
38
38
|
exports.isUserInGroup = isUserInGroup;
|
|
39
39
|
async function _FindUser(userPoolId, userId, username) {
|
|
40
|
-
|
|
41
|
-
global.globalCognitoIdp = global.globalCognitoIdp ?? new AWS.CognitoIdentityServiceProvider({ apiVersion: '2016-04-18' });
|
|
42
|
-
//@ts-ignore
|
|
40
|
+
global.globalCognitoIdp = global.globalCognitoIdp ?? new client_cognito_identity_provider_1.CognitoIdentityProvider({ apiVersion: '2016-04-18' });
|
|
43
41
|
global.globalUserCacheBySub = global.globalUserCacheBySub ?? new Map();
|
|
44
|
-
//@ts-ignore
|
|
45
42
|
global.globalUserCacheByUsername = global.globalUserCacheByUsername ?? new Map();
|
|
46
|
-
//@ts-ignore
|
|
47
43
|
const cognitoIdp = global.globalCognitoIdp;
|
|
48
|
-
//@ts-ignore
|
|
49
44
|
const userCacheBySub = global.globalUserCacheBySub;
|
|
50
|
-
//@ts-ignore
|
|
51
45
|
const userCacheByUsername = global.globalUserCacheByUsername;
|
|
52
46
|
const a = Date.now();
|
|
53
47
|
if (!userPoolId)
|
|
@@ -64,13 +58,13 @@ async function _FindUser(userPoolId, userId, username) {
|
|
|
64
58
|
const cu = await cognitoIdp.adminGetUser({
|
|
65
59
|
UserPoolId: userPoolId,
|
|
66
60
|
Username: username
|
|
67
|
-
})
|
|
61
|
+
});
|
|
68
62
|
if (!cu)
|
|
69
63
|
throw 'User not found';
|
|
70
64
|
if (!cu.UserAttributes)
|
|
71
65
|
throw 'User has no attributes';
|
|
72
66
|
//TODO Pass environment
|
|
73
|
-
var cutomAttributes = cu.UserAttributes.filter(x => x.Name
|
|
67
|
+
var cutomAttributes = cu.UserAttributes.filter(x => x.Name?.startsWith('dev:custom:'));
|
|
74
68
|
userId = cu.UserAttributes.find(x => x.Name == 'sub')?.Value;
|
|
75
69
|
var email = cu.UserAttributes.find(x => x.Name == 'email')?.Value;
|
|
76
70
|
var name = cu.UserAttributes.find(x => x.Name == 'name')?.Value;
|
|
@@ -90,7 +84,7 @@ async function _FindUser(userPoolId, userId, username) {
|
|
|
90
84
|
const cusers = await cognitoIdp.listUsers({
|
|
91
85
|
UserPoolId: userPoolId,
|
|
92
86
|
Filter: `sub = "${userId}"`
|
|
93
|
-
})
|
|
87
|
+
});
|
|
94
88
|
if (cusers && cusers.Users && cusers.Users.length > 0) {
|
|
95
89
|
const cu = cusers.Users[0];
|
|
96
90
|
if (!cu)
|
|
@@ -98,7 +92,7 @@ async function _FindUser(userPoolId, userId, username) {
|
|
|
98
92
|
if (!cu.Attributes)
|
|
99
93
|
throw 'User has no attributes';
|
|
100
94
|
username = cu.Username;
|
|
101
|
-
var cutomAttributes = cu.Attributes.filter(x => x.Name
|
|
95
|
+
var cutomAttributes = cu.Attributes.filter(x => x.Name?.startsWith('dev:custom:'));
|
|
102
96
|
var sub = cu.Attributes.find(x => x.Name == 'sub')?.Value;
|
|
103
97
|
var name = cu.Attributes.find(x => x.Name == 'name')?.Value;
|
|
104
98
|
var email = cu.Attributes.find(x => x.Name == 'email')?.Value;
|
package/dist/request.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"request.js","sourceRoot":"","sources":["../src/request.ts"],"names":[],"mappings":";;;
|
|
1
|
+
{"version":3,"file":"request.js","sourceRoot":"","sources":["../src/request.ts"],"names":[],"mappings":"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"}
|
package/dist/secretManager.d.ts
CHANGED
package/dist/secretManager.js
CHANGED
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
// FROM https://github.com/c-bandy/aws-secrets-manager-cache
|
|
3
3
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
4
4
|
exports.SecretsManagerCache = exports.CachedSecret = void 0;
|
|
5
|
-
const
|
|
5
|
+
const client_secrets_manager_1 = require("@aws-sdk/client-secrets-manager");
|
|
6
6
|
const defaultTTL = (5 * 60 * 1000); // 5 minutes
|
|
7
7
|
class CachedSecret {
|
|
8
8
|
constructor(value, ttl) {
|
|
@@ -21,7 +21,7 @@ class SecretsManagerCache {
|
|
|
21
21
|
this.config = {
|
|
22
22
|
// set defaults
|
|
23
23
|
ttl: defaultTTL,
|
|
24
|
-
secretsManager: new
|
|
24
|
+
secretsManager: new client_secrets_manager_1.SecretsManager(),
|
|
25
25
|
// replace defaults with input options
|
|
26
26
|
...options,
|
|
27
27
|
};
|
|
@@ -35,8 +35,7 @@ class SecretsManagerCache {
|
|
|
35
35
|
const itemHasExpired = this.cache.get(secretName)?.hasExpired();
|
|
36
36
|
if (!itemExistsInCache || itemHasExpired) {
|
|
37
37
|
const getSecretValueResponse = await this.config.secretsManager
|
|
38
|
-
.getSecretValue({ SecretId: secretName })
|
|
39
|
-
.promise();
|
|
38
|
+
.getSecretValue({ SecretId: secretName });
|
|
40
39
|
if (getSecretValueResponse.SecretString) {
|
|
41
40
|
this.cache.set(secretName, new CachedSecret(getSecretValueResponse.SecretString, this.config.ttl));
|
|
42
41
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"secretManager.js","sourceRoot":"","sources":["../src/secretManager.ts"],"names":[],"mappings":";AAAA,4DAA4D;;;AAE5D,
|
|
1
|
+
{"version":3,"file":"secretManager.js","sourceRoot":"","sources":["../src/secretManager.ts"],"names":[],"mappings":";AAAA,4DAA4D;;;AAE5D,4EAAiE;AAEjE,MAAM,UAAU,GAAG,CAAC,CAAC,GAAG,EAAE,GAAG,IAAI,CAAC,CAAC,CAAC,YAAY;AAEhD,MAAa,YAAY;IAKrB,YAAY,KAAa,EAAE,GAAW;QAClC,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;QACnB,IAAI,CAAC,GAAG,GAAG,GAAG,CAAC;QACf,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,GAAG,EAAE,GAAG,GAAG,CAAC;IACtC,CAAC;IAED,UAAU;QACN,OAAO,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,IAAI,CAAC,SAAS,CAAC,CAAC;IACzC,CAAC;CACJ;AAdD,oCAcC;AAcD,MAAa,mBAAmB;IAI5B,YAAY,OAAoC;QAFxC,UAAK,GAAG,IAAI,GAAG,EAAwB,CAAA;QAG3C,IAAI,CAAC,MAAM,GAAG;YACV,eAAe;YACf,GAAG,EAAE,UAAU;YACf,cAAc,EAAE,IAAI,uCAAc,EAAE;YACpC,sCAAsC;YACtC,GAAG,OAAO;SACb,CAAC;IACN,CAAC;IAED;;;OAGG;IACH,KAAK,CAAC,SAAS,CAAC,UAAkB,EAAE,MAAM,GAAG,KAAK;QAC9C,MAAM,iBAAiB,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC;QACrD,MAAM,cAAc,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,UAAU,CAAC,EAAE,UAAU,EAAE,CAAC;QAEhE,IAAI,CAAC,iBAAiB,IAAI,cAAc,EAAE;YACtC,MAAM,sBAAsB,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC,cAAc;iBAC1D,cAAc,CAAC,EAAE,QAAQ,EAAE,UAAU,EAAE,CAAC,CAAC;YAE9C,IAAI,sBAAsB,CAAC,YAAY,EAAE;gBACrC,IAAI,CAAC,KAAK,CAAC,GAAG,CACV,UAAU,EACV,IAAI,YAAY,CACZ,sBAAsB,CAAC,YAAY,EACnC,IAAI,CAAC,MAAM,CAAC,GAAG,CAClB,CACJ,CAAC;aACL;SACJ;QAED,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,UAAU,CAAC,EAAE,KAAK,CAAC;QAEjD,IAAI,MAAM,EAAE;YACR,IAAI;gBACA,OAAO,IAAI,CAAC,KAAK,CAAC,MAAa,CAAC,CAAC;aACpC;YAAC,OAAO,KAAK,EAAE;gBACZ,MAAM,IAAI,KAAK,CAAC,oDAAoD,CAAC,CAAA;aACxE;SACJ;QAED,OAAO,MAAM,CAAC;IAClB,CAAC;IAGM,MAAM,CAAC,GAAG;QACb,OAAO,IAAI,CAAC,QAAQ,CAAA;IACxB,CAAC;;AArDL,kDAsDC;AAJkB,4BAAQ,GAAG,IAAI,mBAAmB,EAAE,CAAA"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@lambada/utils",
|
|
3
|
-
"version": "
|
|
3
|
+
"version": "2.0.0",
|
|
4
4
|
"main": "dist/index.js",
|
|
5
5
|
"module": "dist/index.js",
|
|
6
6
|
"typings": "dist/index.d.ts",
|
|
@@ -18,20 +18,25 @@
|
|
|
18
18
|
},
|
|
19
19
|
"license": "MIT",
|
|
20
20
|
"devDependencies": {
|
|
21
|
+
"@aws-sdk/client-cognito-identity-provider": "3.465.0",
|
|
22
|
+
"@aws-sdk/client-dynamodb": "^3.465.0",
|
|
23
|
+
"@aws-sdk/client-secrets-manager": "3.465.0",
|
|
24
|
+
"@aws-sdk/util-dynamodb": "3.465.0",
|
|
21
25
|
"@types/aws-lambda": "^8.10.72",
|
|
22
|
-
"@types/jest": "^
|
|
26
|
+
"@types/jest": "^29",
|
|
23
27
|
"@types/node": "^14.14.34",
|
|
24
|
-
"
|
|
25
|
-
"jest": "^26",
|
|
28
|
+
"jest": "^29",
|
|
26
29
|
"rimraf": "^3.0.2",
|
|
27
|
-
"ts-jest": "^
|
|
30
|
+
"ts-jest": "^29",
|
|
28
31
|
"typescript": "^4.0.5"
|
|
29
32
|
},
|
|
30
33
|
"peerDependencies": {
|
|
31
|
-
"@aws/
|
|
32
|
-
"@
|
|
33
|
-
"aws-sdk": "
|
|
34
|
+
"@aws-sdk/client-cognito-identity-provider": "3.465.0",
|
|
35
|
+
"@aws-sdk/client-dynamodb": "^3.465.0",
|
|
36
|
+
"@aws-sdk/client-secrets-manager": "3.465.0",
|
|
37
|
+
"@aws-sdk/util-dynamodb": "3.465.0",
|
|
38
|
+
"@types/aws-lambda": "^8.10.72"
|
|
34
39
|
},
|
|
35
40
|
"description": "",
|
|
36
|
-
"gitHead": "
|
|
41
|
+
"gitHead": "be6760fedd42d6953a2a1fa6a053ce343a41328f"
|
|
37
42
|
}
|
|
@@ -1,10 +0,0 @@
|
|
|
1
|
-
import { AttributeValue, AttributeMap } from 'aws-sdk/clients/dynamodb';
|
|
2
|
-
export interface IMarshaller {
|
|
3
|
-
marshallItem(item: {
|
|
4
|
-
[key: string]: any;
|
|
5
|
-
}): AttributeMap;
|
|
6
|
-
marshallValue(value: any): AttributeValue | undefined;
|
|
7
|
-
unmarshallItem(item: AttributeMap): any;
|
|
8
|
-
unmarshallValue(item: AttributeValue): any;
|
|
9
|
-
}
|
|
10
|
-
export declare const DefaultMarshaller: IMarshaller;
|
package/dist/dynamoMarsharler.js
DELETED
|
@@ -1,11 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.DefaultMarshaller = void 0;
|
|
4
|
-
const AWS = require("aws-sdk");
|
|
5
|
-
exports.DefaultMarshaller = {
|
|
6
|
-
marshallItem: AWS.DynamoDB.Converter.marshall,
|
|
7
|
-
unmarshallItem: AWS.DynamoDB.Converter.unmarshall,
|
|
8
|
-
marshallValue: AWS.DynamoDB.Converter.input,
|
|
9
|
-
unmarshallValue: AWS.DynamoDB.Converter.output,
|
|
10
|
-
};
|
|
11
|
-
//# sourceMappingURL=dynamoMarsharler.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"dynamoMarsharler.js","sourceRoot":"","sources":["../src/dynamoMarsharler.ts"],"names":[],"mappings":";;;AAAA,+BAA+B;AAclB,QAAA,iBAAiB,GAAgB;IAC1C,YAAY,EAAE,GAAG,CAAC,QAAQ,CAAC,SAAS,CAAC,QAAQ;IAC7C,cAAc,EAAE,GAAG,CAAC,QAAQ,CAAC,SAAS,CAAC,UAAU;IACjD,aAAa,EAAE,GAAG,CAAC,QAAQ,CAAC,SAAS,CAAC,KAAK;IAC3C,eAAe,EAAE,GAAG,CAAC,QAAQ,CAAC,SAAS,CAAC,MAAM;CACjD,CAAC"}
|