@pi-r/aws-v3 0.2.10 → 0.2.11
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/client/index.js +4 -3
- package/package.json +2 -2
- package/types/index.d.ts +41 -0
- package/upload/index.js +2 -1
package/client/index.js
CHANGED
|
@@ -54,9 +54,10 @@ function sanitizeCredentials(credential) {
|
|
|
54
54
|
}
|
|
55
55
|
const isNoSuchBucket = (err) => err instanceof Error && err.name === 'NoSuchBucket';
|
|
56
56
|
function createStorageClient(credential, service = 'aws-v3', sdk = '@aws-sdk/client-s3') {
|
|
57
|
+
var _a;
|
|
57
58
|
try {
|
|
58
59
|
sanitizeCredentials(credential);
|
|
59
|
-
const expiration = credential.credentials
|
|
60
|
+
const expiration = (_a = credential.credentials) === null || _a === void 0 ? void 0 : _a.expiration;
|
|
60
61
|
if (expiration && !(expiration instanceof Date)) {
|
|
61
62
|
delete credential.expiration;
|
|
62
63
|
}
|
|
@@ -187,7 +188,7 @@ async function deleteObjectsV2(credential, Bucket, recursive = true, service = '
|
|
|
187
188
|
const [client, AWS] = createStorageClient.call(this, credential, service, sdk);
|
|
188
189
|
return client.send(new AWS.ListObjectsCommand({ Bucket }))
|
|
189
190
|
.then(({ Contents }) => {
|
|
190
|
-
if (Contents
|
|
191
|
+
if (Contents === null || Contents === void 0 ? void 0 : Contents.length) {
|
|
191
192
|
let Objects = Contents.map(data => ({ Key: data.Key }));
|
|
192
193
|
if (!recursive) {
|
|
193
194
|
Objects = Objects.filter(value => value.Key.indexOf('/') === -1);
|
|
@@ -222,7 +223,7 @@ async function executeBatchQuery(credential, batch, sessionKey) {
|
|
|
222
223
|
const cacheValue = { value: this.valueOfKey(credential, 'cache'), sessionKey };
|
|
223
224
|
let client;
|
|
224
225
|
const createClient = () => client || (client = createDatabaseClient.call(this, length === 1 ? credential : { ...credential }));
|
|
225
|
-
const closeClient = () => client
|
|
226
|
+
const closeClient = () => client === null || client === void 0 ? void 0 : client[0].destroy();
|
|
226
227
|
for (let i = 0; i < length; ++i) {
|
|
227
228
|
const item = batch[i];
|
|
228
229
|
const { service, table, id = '', query, partitionKey, key = partitionKey, limit = 0, update, ignoreCache } = item;
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@pi-r/aws-v3",
|
|
3
|
-
"version": "0.2.
|
|
3
|
+
"version": "0.2.11",
|
|
4
4
|
"description": "AWS V3 cloud functions for E-mc.",
|
|
5
5
|
"main": "client/index.js",
|
|
6
6
|
"publishConfig": {
|
|
@@ -23,7 +23,7 @@
|
|
|
23
23
|
"@e-mc/cloud": "^0.5.6",
|
|
24
24
|
"@e-mc/module": "^0.5.6",
|
|
25
25
|
"@e-mc/types": "^0.5.6",
|
|
26
|
-
"@pi-r/aws": "^0.2.
|
|
26
|
+
"@pi-r/aws": "^0.2.11",
|
|
27
27
|
"@aws-sdk/client-dynamodb": "^3.540.0",
|
|
28
28
|
"@aws-sdk/client-s3": "^3.540.0",
|
|
29
29
|
"@aws-sdk/lib-dynamodb": "^3.540.0"
|
package/types/index.d.ts
ADDED
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
import type { CloudDatabase, CloudStorage } from '@e-mc/types/lib/cloud';
|
|
2
|
+
|
|
3
|
+
import type { AwsAuthInputConfig } from '@aws-sdk/middleware-signing';
|
|
4
|
+
import type { DynamoDBClientConfig, QueryCommandInput, ScanCommandInput } from '@aws-sdk/client-dynamodb';
|
|
5
|
+
import type { BatchGetCommandInput, TranslateConfig, UpdateCommandInput } from '@aws-sdk/lib-dynamodb';
|
|
6
|
+
import type { NativeAttributeValue } from "@aws-sdk/util-dynamodb";
|
|
7
|
+
import type { S3ClientConfig } from '@aws-sdk/client-s3';
|
|
8
|
+
|
|
9
|
+
export interface AWSBaseCredential extends AwsAuthInputConfig {
|
|
10
|
+
provider?: {
|
|
11
|
+
http?: unknown;
|
|
12
|
+
ini?: unknown;
|
|
13
|
+
cognitoIdentity?: unknown;
|
|
14
|
+
cognitoIdentityPool?: unknown;
|
|
15
|
+
temporaryCredentials?: unknown;
|
|
16
|
+
webToken?: unknown;
|
|
17
|
+
containerMetadata?: unknown;
|
|
18
|
+
instanceMetadata?: unknown;
|
|
19
|
+
process?: unknown;
|
|
20
|
+
tokenFile?: unknown;
|
|
21
|
+
sso?: unknown;
|
|
22
|
+
env?: unknown;
|
|
23
|
+
nodeProviderChain?: unknown;
|
|
24
|
+
};
|
|
25
|
+
}
|
|
26
|
+
|
|
27
|
+
export type AWSStorage = CloudStorage<AWSStorageCredential, "aws-v3">;
|
|
28
|
+
|
|
29
|
+
export interface AWSStorageCredential extends S3ClientConfig, AWSBaseCredential {}
|
|
30
|
+
|
|
31
|
+
export interface AWSDatabaseQuery extends CloudDatabase<QueryCommandInput | ObjectMap<NativeAttributeValue>[], PlainObject, UpdateCommandInput, BatchGetCommandInput | ScanCommandInput> {
|
|
32
|
+
source: "cloud";
|
|
33
|
+
service: "aws-v3";
|
|
34
|
+
key?: string | AttributeKey;
|
|
35
|
+
}
|
|
36
|
+
|
|
37
|
+
export interface AWSDatabaseCredential extends Omit<DynamoDBClientConfig, "credentials">, AWSBaseCredential {
|
|
38
|
+
translateConfig?: TranslateConfig;
|
|
39
|
+
}
|
|
40
|
+
|
|
41
|
+
export type AttributeKey = Record<string, NativeAttributeValue>;
|
package/upload/index.js
CHANGED
|
@@ -14,6 +14,7 @@ function upload(credential, service = 'aws-v3', sdk = '@aws-sdk/client-s3') {
|
|
|
14
14
|
const [client, AWS] = client_1.createStorageClient.call(this, credential, service, sdk);
|
|
15
15
|
return async (data, callback) => {
|
|
16
16
|
var _a;
|
|
17
|
+
var _b;
|
|
17
18
|
const { bucket: Bucket, localUri } = data;
|
|
18
19
|
const { pathname = '', fileGroup, contentType, metadata, endpoint, active, publicRead, acl, admin = {}, overwrite, options } = data.upload;
|
|
19
20
|
let filename = data.upload.filename || path.basename(localUri), bucketKey;
|
|
@@ -30,7 +31,7 @@ function upload(credential, service = 'aws-v3', sdk = '@aws-sdk/client-s3') {
|
|
|
30
31
|
};
|
|
31
32
|
if (!BUCKET_SESSION.has(service + Bucket)) {
|
|
32
33
|
const bucketAcl = admin.publicRead ? 'public-read' : admin.acl;
|
|
33
|
-
const response = BUCKET_RESPONSE[
|
|
34
|
+
const response = BUCKET_RESPONSE[_b = bucketKey = (0, aws_1.getBucketKey)(credential, Bucket, bucketAcl, service, sdk)] || (BUCKET_RESPONSE[_b] = client_1.createBucketV2.call(this, credential, Bucket, bucketAcl, (_a = admin.configBucket) === null || _a === void 0 ? void 0 : _a.create, service, sdk));
|
|
34
35
|
if (!await response) {
|
|
35
36
|
errorResponse(null);
|
|
36
37
|
return;
|