nuudel-main 1.0.74 → 1.0.76

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.
@@ -1,3 +1,4 @@
1
+ /// <reference types="node" />
1
2
  export declare const encBase64: (data: string, encoding?: BufferEncoding) => string;
2
3
  export declare const decBase64: (data: string, encoding?: string) => string;
3
4
  export declare const checkHash: (hash: string, divider?: number, length?: number) => boolean;
@@ -1,2 +1,2 @@
1
- export declare function push(path: string, encoding: string, mimetype: string, toWidth?: number): Promise<string>;
2
- export declare function remove(filename: string): Promise<void>;
1
+ export declare function push(filename: string, encoding: string, mimetype: string, toWidth?: number): Promise<string>;
2
+ export declare function remove(filename: string): Promise<import("@aws-sdk/client-s3").DeleteObjectCommandOutput>;
@@ -5,22 +5,23 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
5
5
  Object.defineProperty(exports, "__esModule", { value: true });
6
6
  exports.remove = exports.push = void 0;
7
7
  const fs_1 = __importDefault(require("fs"));
8
- const s3_1 = __importDefault(require("aws-sdk/clients/s3"));
8
+ const client_s3_1 = require("@aws-sdk/client-s3");
9
9
  const upload_1 = require("./upload");
10
10
  const imageResize_1 = require("./imageResize");
11
- const { DOMAIN, OBJECT_STORAGE_KEY_ID, OBJECT_STORAGE_SECRET, NEXT_PUBLIC_IMAGE_UPLOAD_URL, NEXT_PUBLIC_OBJECT_STORAGE_BUCKET, AWS_DEFAULT_REGION = 'us-east-1', } = process.env;
12
- let s3 = new s3_1.default({
13
- endpoint: `https://${NEXT_PUBLIC_IMAGE_UPLOAD_URL || 'nyc3.digitaloceanspaces.com'}`,
11
+ const { DOMAIN, OBJECT_STORAGE_KEY_ID, OBJECT_STORAGE_SECRET, NEXT_PUBLIC_IMAGE_UPLOAD_URL = 'nyc3.digitaloceanspaces.com', NEXT_PUBLIC_OBJECT_STORAGE_BUCKET, AWS_DEFAULT_REGION = 'us-east-1', } = process === null || process === void 0 ? void 0 : process.env;
12
+ let s3 = new client_s3_1.S3({
13
+ endpoint: `https://${NEXT_PUBLIC_IMAGE_UPLOAD_URL}`,
14
14
  region: AWS_DEFAULT_REGION,
15
15
  credentials: {
16
16
  accessKeyId: OBJECT_STORAGE_KEY_ID,
17
17
  secretAccessKey: OBJECT_STORAGE_SECRET,
18
18
  },
19
- s3ForcePathStyle: true,
19
+ forcePathStyle: false,
20
20
  });
21
- async function push(path, encoding, mimetype, toWidth) {
21
+ async function push(filename, encoding, mimetype, toWidth) {
22
22
  return new Promise(async (resolve, reject) => {
23
- let filepath = upload_1.folder + path;
23
+ var _a;
24
+ let filepath = upload_1.folder + filename;
24
25
  if (!fs_1.default.existsSync(filepath)) {
25
26
  reject('File ' + filepath + ' does not exist');
26
27
  }
@@ -31,44 +32,69 @@ async function push(path, encoding, mimetype, toWidth) {
31
32
  catch (ex) {
32
33
  fileContent = fs_1.default.readFileSync(filepath);
33
34
  }
35
+ const path = DOMAIN +
36
+ '/' +
37
+ new Date().getFullYear().toString() +
38
+ '/' +
39
+ (new Date().getMonth() + 1).toString().padStart(2, '0') +
40
+ '/';
34
41
  const params = {
35
42
  Bucket: NEXT_PUBLIC_OBJECT_STORAGE_BUCKET,
36
- Key: DOMAIN +
37
- '/' +
38
- new Date().getFullYear().toString() +
39
- '/' +
40
- (new Date().getMonth() + 1).toString().padStart(2, '0') +
41
- '/' +
42
- path,
43
+ Key: path + filename,
43
44
  Body: fileContent,
44
45
  ContentEncoding: encoding,
45
46
  ContentType: mimetype,
46
- ACL: 'public-read',
47
+ ACL: !(NEXT_PUBLIC_IMAGE_UPLOAD_URL === null || NEXT_PUBLIC_IMAGE_UPLOAD_URL === void 0 ? void 0 : NEXT_PUBLIC_IMAGE_UPLOAD_URL.includes('.nyc3.digitaloceanspaces.com'))
48
+ ? undefined
49
+ : 'public-read',
47
50
  };
48
51
  try {
49
- s3.upload(params, function (err, data) {
50
- if (err || !data) {
51
- return reject('');
52
- }
53
- console.log(`File uploaded successfully. ${data.Location}`);
54
- resolve(data.Location);
55
- });
52
+ const data = await s3.send(new client_s3_1.PutObjectCommand(params));
53
+ if (!data) {
54
+ return reject('');
55
+ }
56
+ let url = replaceSpace(`https://${NEXT_PUBLIC_OBJECT_STORAGE_BUCKET}.${NEXT_PUBLIC_IMAGE_UPLOAD_URL}/${path}${encodeURIComponent(filename)}`);
57
+ console.log(`File uploaded successfully ${(_a = data === null || data === void 0 ? void 0 : data.$metadata) === null || _a === void 0 ? void 0 : _a.requestId}: ${url}`);
58
+ resolve(url);
56
59
  }
57
60
  catch (err) {
58
- console.log(`PutObject =======>`, err);
61
+ console.log(`PutObject ====>`, err);
59
62
  return reject('');
60
63
  }
61
64
  });
62
65
  }
63
66
  exports.push = push;
64
67
  async function remove(filename) {
65
- var params = { Bucket: NEXT_PUBLIC_OBJECT_STORAGE_BUCKET, Key: filename };
66
- s3.deleteObject(params, function (err, data) {
67
- if (err)
68
- console.log(err, err.stack);
69
- else
70
- console.log();
68
+ if (!filename) {
69
+ return;
70
+ }
71
+ let path = filename.split('/');
72
+ let name = path.pop();
73
+ filename =
74
+ path.join('/') + '/' + decodeURIComponent(replaceSpace(name, true));
75
+ const params = new client_s3_1.DeleteObjectCommand({
76
+ Bucket: NEXT_PUBLIC_OBJECT_STORAGE_BUCKET,
77
+ Key: filename,
71
78
  });
79
+ try {
80
+ const data = await s3.send(params);
81
+ console.log('Success. Object deleted.', data);
82
+ return data;
83
+ }
84
+ catch (err) {
85
+ console.log('Error', err);
86
+ }
72
87
  }
73
88
  exports.remove = remove;
74
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXdzLXMzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL2xpYi9jb250cm9sbGVyL2F3cy1zMy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7QUFBQSw0Q0FBb0I7QUFDcEIsNERBQTBEO0FBQzFELHFDQUFrQztBQUNsQywrQ0FBNEM7QUFFNUMsTUFBTSxFQUNKLE1BQU0sRUFDTixxQkFBcUIsRUFDckIscUJBQXFCLEVBQ3JCLDRCQUE0QixFQUM1QixpQ0FBaUMsRUFDakMsa0JBQWtCLEdBQUcsV0FBVyxHQUNqQyxHQUFHLE9BQU8sQ0FBQyxHQUFHLENBQUM7QUFFaEIsSUFBSSxFQUFFLEdBQU8sSUFBSSxZQUFFLENBQUM7SUFDbEIsUUFBUSxFQUFFLFdBQ1IsNEJBQTRCLElBQUksNkJBQ2xDLEVBQUU7SUFDRixNQUFNLEVBQUUsa0JBQWtCO0lBQzFCLFdBQVcsRUFBRTtRQUNYLFdBQVcsRUFBRSxxQkFBcUI7UUFDbEMsZUFBZSxFQUFFLHFCQUFxQjtLQUN2QztJQUNELGdCQUFnQixFQUFFLElBQUk7Q0FDdkIsQ0FBQyxDQUFDO0FBRUksS0FBSyxVQUFVLElBQUksQ0FDeEIsSUFBWSxFQUNaLFFBQWdCLEVBQ2hCLFFBQWdCLEVBQ2hCLE9BQWdCO0lBRWhCLE9BQU8sSUFBSSxPQUFPLENBQVMsS0FBSyxFQUFFLE9BQU8sRUFBRSxNQUFNLEVBQUUsRUFBRTtRQUNuRCxJQUFJLFFBQVEsR0FBVyxlQUFNLEdBQUcsSUFBSSxDQUFDO1FBQ3JDLElBQUksQ0FBQyxZQUFFLENBQUMsVUFBVSxDQUFDLFFBQVEsQ0FBQyxFQUFFO1lBQzVCLE1BQU0sQ0FBQyxPQUFPLEdBQUcsUUFBUSxHQUFHLGlCQUFpQixDQUFDLENBQUM7U0FDaEQ7UUFHRCxJQUFJLFdBQVcsR0FBVyxTQUFTLENBQUM7UUFFcEMsSUFBSTtZQUNGLFdBQVcsR0FBRyxNQUFNLElBQUEseUJBQVcsRUFBQyxRQUFRLEVBQUUsT0FBTyxDQUFDLENBQUM7U0FDcEQ7UUFBQyxPQUFPLEVBQUUsRUFBRTtZQUNYLFdBQVcsR0FBRyxZQUFFLENBQUMsWUFBWSxDQUFDLFFBQVEsQ0FBQyxDQUFDO1NBQ3pDO1FBR0QsTUFBTSxNQUFNLEdBQXFCO1lBQy9CLE1BQU0sRUFBRSxpQ0FBaUM7WUFDekMsR0FBRyxFQUNELE1BQU07Z0JBQ04sR0FBRztnQkFDSCxJQUFJLElBQUksRUFBRSxDQUFDLFdBQVcsRUFBRSxDQUFDLFFBQVEsRUFBRTtnQkFDbkMsR0FBRztnQkFDSCxDQUFDLElBQUksSUFBSSxFQUFFLENBQUMsUUFBUSxFQUFFLEdBQUcsQ0FBQyxDQUFDLENBQUMsUUFBUSxFQUFFLENBQUMsUUFBUSxDQUFDLENBQUMsRUFBRSxHQUFHLENBQUM7Z0JBQ3ZELEdBQUc7Z0JBQ0gsSUFBSTtZQUNOLElBQUksRUFBRSxXQUFXO1lBQ2pCLGVBQWUsRUFBRSxRQUFRO1lBQ3pCLFdBQVcsRUFBRSxRQUFRO1lBQ3JCLEdBQUcsRUFBRSxhQUFhO1NBRW5CLENBQUM7UUFHRixJQUFJO1lBQ0YsRUFBRSxDQUFDLE1BQU0sQ0FBQyxNQUFNLEVBQUUsVUFBVSxHQUFHLEVBQUUsSUFBSTtnQkFDbkMsSUFBSSxHQUFHLElBQUksQ0FBQyxJQUFJLEVBQUU7b0JBQ2hCLE9BQU8sTUFBTSxDQUFDLEVBQUUsQ0FBQyxDQUFDO2lCQUNuQjtnQkFDRCxPQUFPLENBQUMsR0FBRyxDQUFDLCtCQUErQixJQUFJLENBQUMsUUFBUSxFQUFFLENBQUMsQ0FBQztnQkFDNUQsT0FBTyxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsQ0FBQztZQUN6QixDQUFDLENBQUMsQ0FBQztTQUNKO1FBQUMsT0FBTyxHQUFHLEVBQUU7WUFDWixPQUFPLENBQUMsR0FBRyxDQUFDLG9CQUFvQixFQUFFLEdBQUcsQ0FBQyxDQUFDO1lBQ3ZDLE9BQU8sTUFBTSxDQUFDLEVBQUUsQ0FBQyxDQUFDO1NBQ25CO0lBQ0gsQ0FBQyxDQUFDLENBQUM7QUFDTCxDQUFDO0FBckRELG9CQXFEQztBQUVNLEtBQUssVUFBVSxNQUFNLENBQUMsUUFBZ0I7SUFDM0MsSUFBSSxNQUFNLEdBQUcsRUFBRSxNQUFNLEVBQUUsaUNBQWlDLEVBQUUsR0FBRyxFQUFFLFFBQVEsRUFBRSxDQUFDO0lBRTFFLEVBQUUsQ0FBQyxZQUFZLENBQUMsTUFBTSxFQUFFLFVBQVUsR0FBRyxFQUFFLElBQUk7UUFDekMsSUFBSSxHQUFHO1lBQUUsT0FBTyxDQUFDLEdBQUcsQ0FBQyxHQUFHLEVBQUUsR0FBRyxDQUFDLEtBQUssQ0FBQyxDQUFDOztZQUVoQyxPQUFPLENBQUMsR0FBRyxFQUFFLENBQUM7SUFDckIsQ0FBQyxDQUFDLENBQUM7QUFDTCxDQUFDO0FBUkQsd0JBUUMifQ==
89
+ function replaceSpace(name, reverse = false) {
90
+ if (!(NEXT_PUBLIC_IMAGE_UPLOAD_URL === null || NEXT_PUBLIC_IMAGE_UPLOAD_URL === void 0 ? void 0 : NEXT_PUBLIC_IMAGE_UPLOAD_URL.includes('.amazonaws.com'))) {
91
+ return name;
92
+ }
93
+ name = !reverse ? name.replace(/%20/g, '+') : name.replace(/+/g, '%20');
94
+ if (!reverse &&
95
+ (NEXT_PUBLIC_IMAGE_UPLOAD_URL === null || NEXT_PUBLIC_IMAGE_UPLOAD_URL === void 0 ? void 0 : NEXT_PUBLIC_IMAGE_UPLOAD_URL.includes('.nyc3.digitaloceanspaces.com'))) {
96
+ name = name.replace('.nyc3.digitaloceanspaces.com', '.nyc3.cdn.digitaloceanspaces.com');
97
+ }
98
+ return name;
99
+ }
100
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXdzLXMzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL2xpYi9jb250cm9sbGVyL2F3cy1zMy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7QUFDQSw0Q0FBb0I7QUFDcEIsa0RBTTRCO0FBQzVCLHFDQUFrQztBQUNsQywrQ0FBNEM7QUFFNUMsTUFBTSxFQUNKLE1BQU0sRUFDTixxQkFBcUIsRUFDckIscUJBQXFCLEVBQ3JCLDRCQUE0QixHQUFHLDZCQUE2QixFQUM1RCxpQ0FBaUMsRUFDakMsa0JBQWtCLEdBQUcsV0FBVyxHQUNqQyxHQUFHLE9BQU8sYUFBUCxPQUFPLHVCQUFQLE9BQU8sQ0FBRSxHQUFHLENBQUM7QUFFakIsSUFBSSxFQUFFLEdBQU8sSUFBSSxjQUFFLENBQUM7SUFDbEIsUUFBUSxFQUFFLFdBQVcsNEJBQTRCLEVBQUU7SUFDbkQsTUFBTSxFQUFFLGtCQUFrQjtJQUUxQixXQUFXLEVBQUU7UUFDWCxXQUFXLEVBQUUscUJBQXFCO1FBQ2xDLGVBQWUsRUFBRSxxQkFBcUI7S0FDdkM7SUFDRCxjQUFjLEVBQUUsS0FBSztDQUN0QixDQUFDLENBQUM7QUFFSSxLQUFLLFVBQVUsSUFBSSxDQUN4QixRQUFnQixFQUNoQixRQUFnQixFQUNoQixRQUFnQixFQUNoQixPQUFnQjtJQUVoQixPQUFPLElBQUksT0FBTyxDQUFTLEtBQUssRUFBRSxPQUFPLEVBQUUsTUFBTSxFQUFFLEVBQUU7O1FBQ25ELElBQUksUUFBUSxHQUFXLGVBQU0sR0FBRyxRQUFRLENBQUM7UUFDekMsSUFBSSxDQUFDLFlBQUUsQ0FBQyxVQUFVLENBQUMsUUFBUSxDQUFDLEVBQUU7WUFDNUIsTUFBTSxDQUFDLE9BQU8sR0FBRyxRQUFRLEdBQUcsaUJBQWlCLENBQUMsQ0FBQztTQUNoRDtRQUdELElBQUksV0FBVyxHQUFXLFNBQVMsQ0FBQztRQUVwQyxJQUFJO1lBQ0YsV0FBVyxHQUFHLE1BQU0sSUFBQSx5QkFBVyxFQUFDLFFBQVEs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
@@ -1,3 +1,4 @@
1
+ /// <reference types="node" />
1
2
  export declare const encBase64: (data: string, encoding?: BufferEncoding) => string;
2
3
  export declare const decBase64: (data: string, encoding?: string) => string;
3
4
  export declare const checkHash: (hash: string, divider?: number, length?: number) => boolean;
@@ -1,2 +1,2 @@
1
- export declare function push(path: string, encoding: string, mimetype: string, toWidth?: number): Promise<string>;
2
- export declare function remove(filename: string): Promise<void>;
1
+ export declare function push(filename: string, encoding: string, mimetype: string, toWidth?: number): Promise<string>;
2
+ export declare function remove(filename: string): Promise<import("@aws-sdk/client-s3").DeleteObjectCommandOutput>;
@@ -1,20 +1,20 @@
1
1
  import fs from 'fs';
2
- import S3 from 'aws-sdk/clients/s3';
2
+ import { PutObjectCommand, DeleteObjectCommand, S3, } from '@aws-sdk/client-s3';
3
3
  import { folder } from './upload';
4
4
  import { imageResize } from './imageResize';
5
- const { DOMAIN, OBJECT_STORAGE_KEY_ID, OBJECT_STORAGE_SECRET, NEXT_PUBLIC_IMAGE_UPLOAD_URL, NEXT_PUBLIC_OBJECT_STORAGE_BUCKET, AWS_DEFAULT_REGION = 'us-east-1', } = process.env;
5
+ const { DOMAIN, OBJECT_STORAGE_KEY_ID, OBJECT_STORAGE_SECRET, NEXT_PUBLIC_IMAGE_UPLOAD_URL = 'nyc3.digitaloceanspaces.com', NEXT_PUBLIC_OBJECT_STORAGE_BUCKET, AWS_DEFAULT_REGION = 'us-east-1', } = process?.env;
6
6
  let s3 = new S3({
7
- endpoint: `https://${NEXT_PUBLIC_IMAGE_UPLOAD_URL || 'nyc3.digitaloceanspaces.com'}`,
7
+ endpoint: `https://${NEXT_PUBLIC_IMAGE_UPLOAD_URL}`,
8
8
  region: AWS_DEFAULT_REGION,
9
9
  credentials: {
10
10
  accessKeyId: OBJECT_STORAGE_KEY_ID,
11
11
  secretAccessKey: OBJECT_STORAGE_SECRET,
12
12
  },
13
- s3ForcePathStyle: true,
13
+ forcePathStyle: false,
14
14
  });
15
- export async function push(path, encoding, mimetype, toWidth) {
15
+ export async function push(filename, encoding, mimetype, toWidth) {
16
16
  return new Promise(async (resolve, reject) => {
17
- let filepath = folder + path;
17
+ let filepath = folder + filename;
18
18
  if (!fs.existsSync(filepath)) {
19
19
  reject('File ' + filepath + ' does not exist');
20
20
  }
@@ -25,42 +25,67 @@ export async function push(path, encoding, mimetype, toWidth) {
25
25
  catch (ex) {
26
26
  fileContent = fs.readFileSync(filepath);
27
27
  }
28
+ const path = DOMAIN +
29
+ '/' +
30
+ new Date().getFullYear().toString() +
31
+ '/' +
32
+ (new Date().getMonth() + 1).toString().padStart(2, '0') +
33
+ '/';
28
34
  const params = {
29
35
  Bucket: NEXT_PUBLIC_OBJECT_STORAGE_BUCKET,
30
- Key: DOMAIN +
31
- '/' +
32
- new Date().getFullYear().toString() +
33
- '/' +
34
- (new Date().getMonth() + 1).toString().padStart(2, '0') +
35
- '/' +
36
- path,
36
+ Key: path + filename,
37
37
  Body: fileContent,
38
38
  ContentEncoding: encoding,
39
39
  ContentType: mimetype,
40
- ACL: 'public-read',
40
+ ACL: !NEXT_PUBLIC_IMAGE_UPLOAD_URL?.includes('.nyc3.digitaloceanspaces.com')
41
+ ? undefined
42
+ : 'public-read',
41
43
  };
42
44
  try {
43
- s3.upload(params, function (err, data) {
44
- if (err || !data) {
45
- return reject('');
46
- }
47
- console.log(`File uploaded successfully. ${data.Location}`);
48
- resolve(data.Location);
49
- });
45
+ const data = await s3.send(new PutObjectCommand(params));
46
+ if (!data) {
47
+ return reject('');
48
+ }
49
+ let url = replaceSpace(`https://${NEXT_PUBLIC_OBJECT_STORAGE_BUCKET}.${NEXT_PUBLIC_IMAGE_UPLOAD_URL}/${path}${encodeURIComponent(filename)}`);
50
+ console.log(`File uploaded successfully ${data?.$metadata?.requestId}: ${url}`);
51
+ resolve(url);
50
52
  }
51
53
  catch (err) {
52
- console.log(`PutObject =======>`, err);
54
+ console.log(`PutObject ====>`, err);
53
55
  return reject('');
54
56
  }
55
57
  });
56
58
  }
57
59
  export async function remove(filename) {
58
- var params = { Bucket: NEXT_PUBLIC_OBJECT_STORAGE_BUCKET, Key: filename };
59
- s3.deleteObject(params, function (err, data) {
60
- if (err)
61
- console.log(err, err.stack);
62
- else
63
- console.log();
60
+ if (!filename) {
61
+ return;
62
+ }
63
+ let path = filename.split('/');
64
+ let name = path.pop();
65
+ filename =
66
+ path.join('/') + '/' + decodeURIComponent(replaceSpace(name, true));
67
+ const params = new DeleteObjectCommand({
68
+ Bucket: NEXT_PUBLIC_OBJECT_STORAGE_BUCKET,
69
+ Key: filename,
64
70
  });
71
+ try {
72
+ const data = await s3.send(params);
73
+ console.log('Success. Object deleted.', data);
74
+ return data;
75
+ }
76
+ catch (err) {
77
+ console.log('Error', err);
78
+ }
65
79
  }
66
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXdzLXMzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL2xpYi9jb250cm9sbGVyL2F3cy1zMy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsTUFBTSxJQUFJLENBQUM7QUFDcEIsT0FBTyxFQUF3QixNQUFNLG9CQUFvQixDQUFDO0FBQzFELE9BQU8sRUFBRSxNQUFNLEVBQUUsTUFBTSxVQUFVLENBQUM7QUFDbEMsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUU1QyxNQUFNLEVBQ0osTUFBTSxFQUNOLHFCQUFxQixFQUNyQixxQkFBcUIsRUFDckIsNEJBQTRCLEVBQzVCLGlDQUFpQyxFQUNqQyxrQkFBa0IsR0FBRyxXQUFXLEdBQ2pDLEdBQUcsT0FBTyxDQUFDLEdBQUcsQ0FBQztBQUVoQixJQUFJLEVBQUUsR0FBTyxJQUFJLEVBQUUsQ0FBQztJQUNsQixRQUFRLEVBQUUsV0FDUiw0QkFBNEIsSUFBSSw2QkFDbEMsRUFBRTtJQUNGLE1BQU0sRUFBRSxrQkFBa0I7SUFDMUIsV0FBVyxFQUFFO1FBQ1gsV0FBVyxFQUFFLHFCQUFxQjtRQUNsQyxlQUFlLEVBQUUscUJBQXFCO0tBQ3ZDO0lBQ0QsZ0JBQWdCLEVBQUUsSUFBSTtDQUN2QixDQUFDLENBQUM7QUFFSCxNQUFNLENBQUMsS0FBSyxVQUFVLElBQUksQ0FDeEIsSUFBWSxFQUNaLFFBQWdCLEVBQ2hCLFFBQWdCLEVBQ2hCLE9BQWdCO0lBRWhCLE9BQU8sSUFBSSxPQUFPLENBQVMsS0FBSyxFQUFFLE9BQU8sRUFBRSxNQUFNLEVBQUUsRUFBRTtRQUNuRCxJQUFJLFFBQVEsR0FBVyxNQUFNLEdBQUcsSUFBSSxDQUFDO1FBQ3JDLElBQUksQ0FBQyxFQUFFLENBQUMsVUFBVSxDQUFDLFFBQVEsQ0FBQyxFQUFFO1lBQzVCLE1BQU0sQ0FBQyxPQUFPLEdBQUcsUUFBUSxHQUFHLGlCQUFpQixDQUFDLENBQUM7U0FDaEQ7UUFHRCxJQUFJLFdBQVcsR0FBVyxTQUFTLENBQUM7UUFFcEMsSUFBSTtZQUNGLFdBQVcsR0FBRyxNQUFNLFdBQVcsQ0FBQyxRQUFRLEVBQUUsT0FBTyxDQUFDLENBQUM7U0FDcEQ7UUFBQyxPQUFPLEVBQUUsRUFBRTtZQUNYLFdBQVcsR0FBRyxFQUFFLENBQUMsWUFBWSxDQUFDLFFBQVEsQ0FBQyxDQUFDO1NBQ3pDO1FBR0QsTUFBTSxNQUFNLEdBQXFCO1lBQy9CLE1BQU0sRUFBRSxpQ0FBaUM7WUFDekMsR0FBRyxFQUNELE1BQU07Z0JBQ04sR0FBRztnQkFDSCxJQUFJLElBQUksRUFBRSxDQUFDLFdBQVcsRUFBRSxDQUFDLFFBQVEsRUFBRTtnQkFDbkMsR0FBRztnQkFDSCxDQUFDLElBQUksSUFBSSxFQUFFLENBQUMsUUFBUSxFQUFFLEdBQUcsQ0FBQyxDQUFDLENBQUMsUUFBUSxFQUFFLENBQUMsUUFBUSxDQUFDLENBQUMsRUFBRSxHQUFHLENBQUM7Z0JBQ3ZELEdBQUc7Z0JBQ0gsSUFBSTtZQUNOLElBQUksRUFBRSxXQUFXO1lBQ2pCLGVBQWUsRUFBRSxRQUFRO1lBQ3pCLFdBQVcsRUFBRSxRQUFRO1lBQ3JCLEdBQUcsRUFBRSxhQUFhO1NBRW5CLENBQUM7UUFHRixJQUFJO1lBQ0YsRUFBRSxDQUFDLE1BQU0sQ0FBQyxNQUFNLEVBQUUsVUFBVSxHQUFHLEVBQUUsSUFBSTtnQkFDbkMsSUFBSSxHQUFHLElBQUksQ0FBQyxJQUFJLEVBQUU7b0JBQ2hCLE9BQU8sTUFBTSxDQUFDLEVBQUUsQ0FBQyxDQUFDO2lCQUNuQjtnQkFDRCxPQUFPLENBQUMsR0FBRyxDQUFDLCtCQUErQixJQUFJLENBQUMsUUFBUSxFQUFFLENBQUMsQ0FBQztnQkFDNUQsT0FBTyxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsQ0FBQztZQUN6QixDQUFDLENBQUMsQ0FBQztTQUNKO1FBQUMsT0FBTyxHQUFHLEVBQUU7WUFDWixPQUFPLENBQUMsR0FBRyxDQUFDLG9CQUFvQixFQUFFLEdBQUcsQ0FBQyxDQUFDO1lBQ3ZDLE9BQU8sTUFBTSxDQUFDLEVBQUUsQ0FBQyxDQUFDO1NBQ25CO0lBQ0gsQ0FBQyxDQUFDLENBQUM7QUFDTCxDQUFDO0FBRUQsTUFBTSxDQUFDLEtBQUssVUFBVSxNQUFNLENBQUMsUUFBZ0I7SUFDM0MsSUFBSSxNQUFNLEdBQUcsRUFBRSxNQUFNLEVBQUUsaUNBQWlDLEVBQUUsR0FBRyxFQUFFLFFBQVEsRUFBRSxDQUFDO0lBRTFFLEVBQUUsQ0FBQyxZQUFZLENBQUMsTUFBTSxFQUFFLFVBQVUsR0FBRyxFQUFFLElBQUk7UUFDekMsSUFBSSxHQUFHO1lBQUUsT0FBTyxDQUFDLEdBQUcsQ0FBQyxHQUFHLEVBQUUsR0FBRyxDQUFDLEtBQUssQ0FBQyxDQUFDOztZQUVoQyxPQUFPLENBQUMsR0FBRyxFQUFFLENBQUM7SUFDckIsQ0FBQyxDQUFDLENBQUM7QUFDTCxDQUFDIn0=
80
+ function replaceSpace(name, reverse = false) {
81
+ if (!NEXT_PUBLIC_IMAGE_UPLOAD_URL?.includes('.amazonaws.com')) {
82
+ return name;
83
+ }
84
+ name = !reverse ? name.replace(/%20/g, '+') : name.replace(/+/g, '%20');
85
+ if (!reverse &&
86
+ NEXT_PUBLIC_IMAGE_UPLOAD_URL?.includes('.nyc3.digitaloceanspaces.com')) {
87
+ name = name.replace('.nyc3.digitaloceanspaces.com', '.nyc3.cdn.digitaloceanspaces.com');
88
+ }
89
+ return name;
90
+ }
91
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXdzLXMzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL2xpYi9jb250cm9sbGVyL2F3cy1zMy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFDQSxPQUFPLEVBQUUsTUFBTSxJQUFJLENBQUM7QUFDcEIsT0FBTyxFQUNMLGdCQUFnQixFQUVoQixtQkFBbUIsRUFFbkIsRUFBRSxHQUNILE1BQU0sb0JBQW9CLENBQUM7QUFDNUIsT0FBTyxFQUFFLE1BQU0sRUFBRSxNQUFNLFVBQVUsQ0FBQztBQUNsQyxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBRTVDLE1BQU0sRUFDSixNQUFNLEVBQ04scUJBQXFCLEVBQ3JCLHFCQUFxQixFQUNyQiw0QkFBNEIsR0FBRyw2QkFBNkIsRUFDNUQsaUNBQWlDLEVBQ2pDLGtCQUFrQixHQUFHLFdBQVcsR0FDakMsR0FBRyxPQUFPLEVBQUUsR0FBRyxDQUFDO0FBRWpCLElBQUksRUFBRSxHQUFPLElBQUksRUFBRSxDQUFDO0lBQ2xCLFFBQVEsRUFBRSxXQUFXLDRCQUE0QixFQUFFO0lBQ25ELE1BQU0sRUFBRSxrQkFBa0I7SUFFMUIsV0FBVyxFQUFFO1FBQ1gsV0FBVyxFQUFFLHFCQUFxQjtRQUNsQyxlQUFlLEVBQUUscUJBQXFCO0tBQ3ZDO0lBQ0QsY0FBYyxFQUFFLEtBQUs7Q0FDdEIsQ0FBQyxDQUFDO0FBRUgsTUFBTSxDQUFDLEtBQUssVUFBVSxJQUFJLENBQ3hCLFFBQWdCLEVBQ2hCLFFBQWdCLEVBQ2hCLFFBQWdCLEVBQ2hCLE9BQWdCO0lBRWhCLE9BQU8sSUFBSSxPQUFPLENBQVMsS0FBSyxFQUFFLE9BQU8sRUFBRSxNQUFNLEVBQUUsRUFBRTtRQUNuRCxJQUFJLFFBQVEsR0FBVyxNQUFNLEdBQUcsUUFBUSxDQUFDO1FBQ3pDLElBQUksQ0FBQyxFQUFFLENBQUMsVUFBVSxDQUFDLFFBQVEsQ0FBQyxFQUFFO1lBQzVCLE1BQU0sQ0FBQyxPQUFPLEdBQUcsUUFB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
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "nuudel-main",
3
- "version": "1.0.74",
3
+ "version": "1.0.76",
4
4
  "description": "main module for nodejs of nuudel",
5
5
  "main": "build/main/index.js",
6
6
  "typings": "build/main/index.d.ts",
@@ -48,9 +48,9 @@
48
48
  "node": ">=10"
49
49
  },
50
50
  "dependencies": {
51
+ "@aws-sdk/client-s3": "^3.315.0",
51
52
  "@aws-sdk/client-ses": "^3.53.0",
52
53
  "apn": "^2.2.0",
53
- "aws-sdk": "^2.1083.0",
54
54
  "bcryptjs": "^2.4.3",
55
55
  "fastify": "3.23.1",
56
56
  "fastify-plugin": "^3.0.1",