prime-sdk 3.0.9-beta.0 → 3.1.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/README.md +10 -0
- package/dist/external/aws/kms/kms.service.d.ts +2 -2
- package/dist/external/aws/s3/s3.service.d.ts +2 -0
- package/dist/external/aws/s3/s3.service.js +50 -0
- package/dist/external/aws/s3/s3.service.js.map +1 -1
- package/dist/external/aws/ses/ses.service.d.ts +2 -2
- package/dist/external/aws/sns/sns.service.d.ts +2 -2
- package/dist/external/aws/sqs/sqs.service.d.ts +1 -1
- package/dist/external/redis/interfaces/redis.interface.d.ts +0 -1
- package/dist/external/redis/redis.service.d.ts +0 -1
- package/dist/lib/cache/cache.d.ts +2 -3
- package/dist/lib/cache/interfaces/cache.interface.d.ts +1 -2
- package/dist/lib/crypto/crypto.module.d.ts +1 -1
- package/dist/lib/crypto/types/crypto.type.d.ts +0 -1
- package/dist/lib/documents/types/bedrock.type.d.ts +0 -1
- package/dist/lib/email/email.module.d.ts +1 -1
- package/dist/lib/entraID/utils/crypto.utils.d.ts +0 -1
- package/dist/lib/storage/interfaces/storage.interface.d.ts +1 -0
- package/dist/lib/storage/interfaces/storage.interface.js.map +1 -1
- package/dist/lib/storage/storage.d.ts +1 -1
- package/dist/lib/storage/storage.js +3 -0
- package/dist/lib/storage/storage.js.map +1 -1
- package/dist/lib/storage/types/storage.type.d.ts +1 -2
- package/dist/tsconfig.build.tsbuildinfo +1 -1
- package/package.json +1 -1
- package/src/external/aws/s3/s3.service.ts +70 -0
- package/src/lib/storage/interfaces/storage.interface.ts +1 -0
- package/src/lib/storage/storage.ts +4 -0
- package/src/lib/storage/types/storage.type.ts +1 -0
- package/.yarn/install-state.gz +0 -0
- package/.yarnrc.yml +0 -1
package/README.md
CHANGED
|
@@ -145,6 +145,16 @@ export class AppService implements IConsumer {
|
|
|
145
145
|
file: file,
|
|
146
146
|
nameFile: 'teste.txt',
|
|
147
147
|
path: 'prime-sdk',
|
|
148
|
+
contentType: 'text/plain',
|
|
149
|
+
});
|
|
150
|
+
|
|
151
|
+
// upload via presigned PUT url (server-side)
|
|
152
|
+
this.storage.uploadFileViaPresignedUrl({
|
|
153
|
+
bucket: 'sample-bucket',
|
|
154
|
+
file: file,
|
|
155
|
+
nameFile: 'teste-presigned.txt',
|
|
156
|
+
path: 'prime-sdk',
|
|
157
|
+
contentType: 'text/plain',
|
|
148
158
|
});
|
|
149
159
|
}
|
|
150
160
|
}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { DecryptCommandOutput, EncryptCommandOutput, KMSClient } from '@aws-sdk/client-kms';
|
|
2
|
-
import { ICrypto } from
|
|
3
|
-
import { DecryptData, EncryptData } from
|
|
2
|
+
import { ICrypto } from "../../../lib/crypto/interfaces/crypto.interface";
|
|
3
|
+
import { DecryptData, EncryptData } from "../../../lib/crypto/types/crypto.type";
|
|
4
4
|
export declare class KMS implements ICrypto {
|
|
5
5
|
private readonly client;
|
|
6
6
|
constructor(client: KMSClient);
|
|
@@ -5,6 +5,8 @@ export declare class S3 implements IStorage {
|
|
|
5
5
|
private readonly client;
|
|
6
6
|
constructor(client: S3Client);
|
|
7
7
|
uploadFile(file: UploadFile): Promise<PutObjectCommandOutput>;
|
|
8
|
+
uploadFileViaPresignedUrl(file: UploadFile): Promise<void>;
|
|
9
|
+
private resolveFileBody;
|
|
8
10
|
generateSignUrlFile(file: GetFile): Promise<string>;
|
|
9
11
|
getFile(file: GetFile): Promise<GetObjectCommandOutput>;
|
|
10
12
|
listFiles(data: ListFiles): Promise<ListObjectsV2CommandOutput>;
|
|
@@ -16,6 +16,7 @@ exports.S3 = void 0;
|
|
|
16
16
|
const client_s3_1 = require("@aws-sdk/client-s3");
|
|
17
17
|
const common_1 = require("@nestjs/common");
|
|
18
18
|
const s3_request_presigner_1 = require("@aws-sdk/s3-request-presigner");
|
|
19
|
+
const PRESIGNED_PUT_EXPIRES_IN_SECONDS = 3600;
|
|
19
20
|
let S3 = class S3 {
|
|
20
21
|
constructor(client) {
|
|
21
22
|
this.client = client;
|
|
@@ -25,6 +26,7 @@ let S3 = class S3 {
|
|
|
25
26
|
Bucket: file.bucket,
|
|
26
27
|
Key: `${file.path}/${file.nameFile}`,
|
|
27
28
|
Body: file.file,
|
|
29
|
+
...(file.contentType && { ContentType: file.contentType }),
|
|
28
30
|
...(file.metadata && { Metadata: file.metadata }),
|
|
29
31
|
...(file.tagging && {
|
|
30
32
|
Tagging: file.tagging,
|
|
@@ -33,6 +35,54 @@ let S3 = class S3 {
|
|
|
33
35
|
const response = await this.client.send(command);
|
|
34
36
|
return response;
|
|
35
37
|
}
|
|
38
|
+
async uploadFileViaPresignedUrl(file) {
|
|
39
|
+
const key = `${file.path}/${file.nameFile}`;
|
|
40
|
+
const contentType = file.contentType || 'application/octet-stream';
|
|
41
|
+
const body = await this.resolveFileBody(file.file);
|
|
42
|
+
const command = new client_s3_1.PutObjectCommand({
|
|
43
|
+
Bucket: file.bucket,
|
|
44
|
+
Key: key,
|
|
45
|
+
ContentType: contentType,
|
|
46
|
+
...(file.metadata && { Metadata: file.metadata }),
|
|
47
|
+
...(file.tagging && { Tagging: file.tagging }),
|
|
48
|
+
});
|
|
49
|
+
const presignedUrl = await (0, s3_request_presigner_1.getSignedUrl)(this.client, command, {
|
|
50
|
+
expiresIn: PRESIGNED_PUT_EXPIRES_IN_SECONDS,
|
|
51
|
+
});
|
|
52
|
+
const headers = {
|
|
53
|
+
'Content-Type': contentType,
|
|
54
|
+
};
|
|
55
|
+
if (file.metadata) {
|
|
56
|
+
for (const [k, v] of Object.entries(file.metadata)) {
|
|
57
|
+
headers[`x-amz-meta-${k}`] = v;
|
|
58
|
+
}
|
|
59
|
+
}
|
|
60
|
+
if (file.tagging) {
|
|
61
|
+
headers['x-amz-tagging'] = file.tagging;
|
|
62
|
+
}
|
|
63
|
+
const response = await fetch(presignedUrl, {
|
|
64
|
+
method: 'PUT',
|
|
65
|
+
headers,
|
|
66
|
+
body: new Uint8Array(body),
|
|
67
|
+
});
|
|
68
|
+
if (!response.ok) {
|
|
69
|
+
throw new Error(`s3_presigned_upload_failed: ${response.status} ${response.statusText}`);
|
|
70
|
+
}
|
|
71
|
+
}
|
|
72
|
+
async resolveFileBody(file) {
|
|
73
|
+
if (Buffer.isBuffer(file)) {
|
|
74
|
+
return file;
|
|
75
|
+
}
|
|
76
|
+
if (typeof file === 'string') {
|
|
77
|
+
return Buffer.from(file);
|
|
78
|
+
}
|
|
79
|
+
const chunks = [];
|
|
80
|
+
return new Promise((resolve, reject) => {
|
|
81
|
+
file.on('data', (chunk) => chunks.push(Buffer.isBuffer(chunk) ? chunk : Buffer.from(chunk)));
|
|
82
|
+
file.on('end', () => resolve(Buffer.concat(chunks)));
|
|
83
|
+
file.on('error', reject);
|
|
84
|
+
});
|
|
85
|
+
}
|
|
36
86
|
async generateSignUrlFile(file) {
|
|
37
87
|
const params = {
|
|
38
88
|
Bucket: file.bucket,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"s3.service.js","sourceRoot":"","sources":["../../../../src/external/aws/s3/s3.service.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;AAAA,kDAc4B;AAC5B,2CAAoD;AACpD,wEAA6D;
|
|
1
|
+
{"version":3,"file":"s3.service.js","sourceRoot":"","sources":["../../../../src/external/aws/s3/s3.service.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { SendEmailCommandOutput, SendRawEmailCommandOutput, SESClient } from '@aws-sdk/client-ses';
|
|
2
|
-
import { IEmail } from
|
|
3
|
-
import { SendMail, SendRawMail } from
|
|
2
|
+
import { IEmail } from "../../../lib/email/interfaces/email.interface";
|
|
3
|
+
import { SendMail, SendRawMail } from "../../../lib/email/types/email.type";
|
|
4
4
|
export declare class SES implements IEmail {
|
|
5
5
|
private readonly client;
|
|
6
6
|
constructor(client: SESClient);
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { PublishCommandOutput, SNSClient } from '@aws-sdk/client-sns';
|
|
2
|
-
import { IEvent } from
|
|
3
|
-
import { EventData, EventSmsData } from
|
|
2
|
+
import { IEvent } from "../../../lib/events/interfaces/event.interface";
|
|
3
|
+
import { EventData, EventSmsData } from "../../../lib/events/types/event.type";
|
|
4
4
|
import { SNSSetup } from './sns.provider';
|
|
5
5
|
export declare class Sns implements IEvent {
|
|
6
6
|
private readonly client;
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { DeleteMessageCommand, ReceiveMessageCommand, ReceiveMessageResult, SQSClient } from '@aws-sdk/client-sqs';
|
|
2
|
-
import { IQueue } from
|
|
2
|
+
import { IQueue } from "../../../lib/queue/interfaces/queue.interface";
|
|
3
3
|
export declare class Sqs implements IQueue {
|
|
4
4
|
private readonly client;
|
|
5
5
|
private queueUrl;
|
|
@@ -1,7 +1,6 @@
|
|
|
1
|
-
/// <reference types="node" />
|
|
2
1
|
import { ICache } from './interfaces/cache.interface';
|
|
3
|
-
import { IRedisService } from
|
|
4
|
-
import { PubSubRedis } from
|
|
2
|
+
import { IRedisService } from "../../external/redis/interfaces/redis.interface";
|
|
3
|
+
import { PubSubRedis } from "../../external/redis/types/ioredis.types";
|
|
5
4
|
export declare class Cache implements ICache {
|
|
6
5
|
private readonly client;
|
|
7
6
|
constructor(client: IRedisService);
|
|
@@ -1,5 +1,4 @@
|
|
|
1
|
-
|
|
2
|
-
import { PubSubRedis } from 'src/external/redis/types/ioredis.types';
|
|
1
|
+
import { PubSubRedis } from "../../../external/redis/types/ioredis.types";
|
|
3
2
|
export interface ICache {
|
|
4
3
|
set(key: string, value: Date | number | Buffer | string, ttl?: number): Promise<void>;
|
|
5
4
|
get(key: string): Promise<string>;
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { DynamicModule } from '@nestjs/common';
|
|
2
|
-
import { KMSSetup } from
|
|
2
|
+
import { KMSSetup } from "../../external/aws/kms/kms.provider";
|
|
3
3
|
export declare class CryptoModule {
|
|
4
4
|
static forRoot(params: KMSSetup): DynamicModule;
|
|
5
5
|
}
|
|
@@ -2,6 +2,7 @@ import { CopyObjectCommandOutput, DeleteObjectCommandOutput, DeleteObjectsOutput
|
|
|
2
2
|
import { CopyFile, DeleteFile, DeleteFiles, GetFile, ListFiles, UploadFile } from '../types/storage.type';
|
|
3
3
|
export interface IStorage {
|
|
4
4
|
uploadFile(file: UploadFile): Promise<PutObjectCommandOutput>;
|
|
5
|
+
uploadFileViaPresignedUrl(file: UploadFile): Promise<void>;
|
|
5
6
|
generateSignUrlFile(file: GetFile): Promise<string>;
|
|
6
7
|
getFile(file: GetFile): Promise<GetObjectCommandOutput>;
|
|
7
8
|
listFiles(data: ListFiles): Promise<ListObjectsV2CommandOutput>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"storage.interface.js","sourceRoot":"","sources":["../../../../src/lib/storage/interfaces/storage.interface.ts"],"names":[],"mappings":";;;
|
|
1
|
+
{"version":3,"file":"storage.interface.js","sourceRoot":"","sources":["../../../../src/lib/storage/interfaces/storage.interface.ts"],"names":[],"mappings":";;;AA4Ba,QAAA,QAAQ,GAAG,MAAM,CAAC,UAAU,CAAC,CAAC"}
|
|
@@ -1,4 +1,3 @@
|
|
|
1
|
-
/// <reference types="node" />
|
|
2
1
|
import { IStorage } from './interfaces/storage.interface';
|
|
3
2
|
import { CopyObjectCommandOutput, DeleteObjectCommandOutput, DeleteObjectsOutput, GetObjectCommandOutput, ListObjectsV2CommandOutput, PutObjectCommandOutput } from '@aws-sdk/client-s3';
|
|
4
3
|
import { CopyFile, DeleteFile, DeleteFiles, GetFile, ListFiles, UploadFile } from './types/storage.type';
|
|
@@ -6,6 +5,7 @@ export declare class Storage {
|
|
|
6
5
|
private readonly storage;
|
|
7
6
|
constructor(storage: IStorage);
|
|
8
7
|
uploadFile(file: UploadFile): Promise<PutObjectCommandOutput>;
|
|
8
|
+
uploadFileViaPresignedUrl(file: UploadFile): Promise<void>;
|
|
9
9
|
generateSignUrlFile(file: GetFile): Promise<string>;
|
|
10
10
|
getFile(file: GetFile): Promise<GetObjectCommandOutput>;
|
|
11
11
|
listFiles(data: ListFiles): Promise<ListObjectsV2CommandOutput>;
|
|
@@ -22,6 +22,9 @@ let Storage = class Storage {
|
|
|
22
22
|
async uploadFile(file) {
|
|
23
23
|
return this.storage.uploadFile(file);
|
|
24
24
|
}
|
|
25
|
+
async uploadFileViaPresignedUrl(file) {
|
|
26
|
+
return this.storage.uploadFileViaPresignedUrl(file);
|
|
27
|
+
}
|
|
25
28
|
async generateSignUrlFile(file) {
|
|
26
29
|
return this.storage.generateSignUrlFile(file);
|
|
27
30
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"storage.js","sourceRoot":"","sources":["../../../src/lib/storage/storage.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;AAAA,2CAAoD;AACpD,sEAA0D;AAoBnD,IAAM,OAAO,GAAb,MAAM,OAAO;IAClB,YAA+C,OAAiB;QAAjB,YAAO,GAAP,OAAO,CAAU;IAAG,CAAC;IAEpE,KAAK,CAAC,UAAU,CAAC,IAAgB;QAC/B,OAAO,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC;IACvC,CAAC;IAED,KAAK,CAAC,mBAAmB,CAAC,IAAa;QACrC,OAAO,IAAI,CAAC,OAAO,CAAC,mBAAmB,CAAC,IAAI,CAAC,CAAC;IAChD,CAAC;IAED,KAAK,CAAC,OAAO,CAAC,IAAa;QACzB,OAAO,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;IACpC,CAAC;IAED,KAAK,CAAC,SAAS,CAAC,IAAe;QAC7B,OAAO,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC;IACtC,CAAC;IAED,KAAK,CAAC,UAAU,CAAC,IAAgB;QAC/B,OAAO,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC;IACvC,CAAC;IAED,KAAK,CAAC,WAAW,CAAC,IAAiB;QACjC,OAAO,IAAI,CAAC,OAAO,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC;IACxC,CAAC;IAED,KAAK,CAAC,QAAQ,CAAC,IAAc;QAC3B,OAAO,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;IACrC,CAAC;IAED,KAAK,CAAC,aAAa,CAAC,IAAa;QAC/B,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;QAElD,IAAI,CAAC,QAAQ,CAAC,IAAI,EAAE,CAAC;YACnB,MAAM,IAAI,KAAK,CAAC,eAAe,CAAC,CAAC;QACnC,CAAC;QAED,OAAO,IAAI,CAAC,cAAc,CAAC,QAAQ,CAAC,IAAgB,CAAC,CAAC;IACxD,CAAC;IAEO,KAAK,CAAC,cAAc,CAAC,MAAgB;QAC3C,MAAM,MAAM,GAAG,EAAE,CAAC;QAElB,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;YACrC,MAAM,CAAC,EAAE,CAAC,MAAM,EAAE,CAAC,KAAK,EAAE,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC;YACjD,MAAM,CAAC,EAAE,CAAC,KAAK,EAAE,GAAG,EAAE,CAAC,OAAO,CAAC,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;YACvD,MAAM,CAAC,EAAE,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC;QAC7B,CAAC,CAAC,CAAC;IACL,CAAC;CACF,CAAA;
|
|
1
|
+
{"version":3,"file":"storage.js","sourceRoot":"","sources":["../../../src/lib/storage/storage.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;AAAA,2CAAoD;AACpD,sEAA0D;AAoBnD,IAAM,OAAO,GAAb,MAAM,OAAO;IAClB,YAA+C,OAAiB;QAAjB,YAAO,GAAP,OAAO,CAAU;IAAG,CAAC;IAEpE,KAAK,CAAC,UAAU,CAAC,IAAgB;QAC/B,OAAO,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC;IACvC,CAAC;IAED,KAAK,CAAC,yBAAyB,CAAC,IAAgB;QAC9C,OAAO,IAAI,CAAC,OAAO,CAAC,yBAAyB,CAAC,IAAI,CAAC,CAAC;IACtD,CAAC;IAED,KAAK,CAAC,mBAAmB,CAAC,IAAa;QACrC,OAAO,IAAI,CAAC,OAAO,CAAC,mBAAmB,CAAC,IAAI,CAAC,CAAC;IAChD,CAAC;IAED,KAAK,CAAC,OAAO,CAAC,IAAa;QACzB,OAAO,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;IACpC,CAAC;IAED,KAAK,CAAC,SAAS,CAAC,IAAe;QAC7B,OAAO,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC;IACtC,CAAC;IAED,KAAK,CAAC,UAAU,CAAC,IAAgB;QAC/B,OAAO,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC;IACvC,CAAC;IAED,KAAK,CAAC,WAAW,CAAC,IAAiB;QACjC,OAAO,IAAI,CAAC,OAAO,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC;IACxC,CAAC;IAED,KAAK,CAAC,QAAQ,CAAC,IAAc;QAC3B,OAAO,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;IACrC,CAAC;IAED,KAAK,CAAC,aAAa,CAAC,IAAa;QAC/B,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;QAElD,IAAI,CAAC,QAAQ,CAAC,IAAI,EAAE,CAAC;YACnB,MAAM,IAAI,KAAK,CAAC,eAAe,CAAC,CAAC;QACnC,CAAC;QAED,OAAO,IAAI,CAAC,cAAc,CAAC,QAAQ,CAAC,IAAgB,CAAC,CAAC;IACxD,CAAC;IAEO,KAAK,CAAC,cAAc,CAAC,MAAgB;QAC3C,MAAM,MAAM,GAAG,EAAE,CAAC;QAElB,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;YACrC,MAAM,CAAC,EAAE,CAAC,MAAM,EAAE,CAAC,KAAK,EAAE,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC;YACjD,MAAM,CAAC,EAAE,CAAC,KAAK,EAAE,GAAG,EAAE,CAAC,OAAO,CAAC,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;YACvD,MAAM,CAAC,EAAE,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC;QAC7B,CAAC,CAAC,CAAC;IACL,CAAC;CACF,CAAA;AAtDY,0BAAO;kBAAP,OAAO;IADnB,IAAA,mBAAU,GAAE;IAEE,WAAA,IAAA,eAAM,EAAC,4BAAQ,CAAC,CAAA;;GADlB,OAAO,CAsDnB"}
|
|
@@ -1,11 +1,10 @@
|
|
|
1
|
-
/// <reference types="node" />
|
|
2
|
-
/// <reference types="node" />
|
|
3
1
|
import { Readable } from 'stream';
|
|
4
2
|
export type UploadFile = {
|
|
5
3
|
path: string;
|
|
6
4
|
nameFile: string;
|
|
7
5
|
file: string | Readable | Buffer;
|
|
8
6
|
bucket: string;
|
|
7
|
+
contentType?: string;
|
|
9
8
|
metadata?: Record<string, string>;
|
|
10
9
|
tagging?: string;
|
|
11
10
|
};
|