backfarm 1.0.3 → 1.0.5
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/{chunk-HZ4GLSOO.js → chunk-2RFTNIPS.js} +11 -7
- package/dist/chunk-2RFTNIPS.js.map +1 -0
- package/dist/{chunk-X3R3RLXY.js → chunk-3IO4NPP3.js} +1 -1
- package/dist/chunk-3IO4NPP3.js.map +1 -0
- package/dist/chunk-ATY3REI3.js +89 -0
- package/dist/chunk-ATY3REI3.js.map +1 -0
- package/dist/{chunk-FMCW72HO.js → chunk-CBTP2HOO.js} +64 -18
- package/dist/chunk-CBTP2HOO.js.map +1 -0
- package/dist/chunk-CPECHQJJ.js +18 -0
- package/dist/chunk-CPECHQJJ.js.map +1 -0
- package/dist/{chunk-BMPUYKJJ.js → chunk-DRLEV7OW.js} +2 -2
- package/dist/chunk-E2NNDV4O.js +40 -0
- package/dist/chunk-E2NNDV4O.js.map +1 -0
- package/dist/{chunk-EB35KLDE.js → chunk-ECIP24BN.js} +9 -3
- package/dist/chunk-ECIP24BN.js.map +1 -0
- package/dist/chunk-ES6AHESH.js +17 -0
- package/dist/chunk-ES6AHESH.js.map +1 -0
- package/dist/chunk-FNFFY5LD.js +44 -0
- package/dist/chunk-FNFFY5LD.js.map +1 -0
- package/dist/chunk-IAQMTSGP.js +19 -0
- package/dist/chunk-IAQMTSGP.js.map +1 -0
- package/dist/chunk-LNFYUCA3.js +32 -0
- package/dist/chunk-LNFYUCA3.js.map +1 -0
- package/dist/chunk-LW246RDT.js +33 -0
- package/dist/chunk-LW246RDT.js.map +1 -0
- package/dist/chunk-M2C6HHRK.js +34 -0
- package/dist/chunk-M2C6HHRK.js.map +1 -0
- package/dist/chunk-MKS3GPZY.js +74 -0
- package/dist/chunk-MKS3GPZY.js.map +1 -0
- package/dist/chunk-O42S6QIG.js +88 -0
- package/dist/chunk-O42S6QIG.js.map +1 -0
- package/dist/chunk-OHDZYSL3.js +60 -0
- package/dist/chunk-OHDZYSL3.js.map +1 -0
- package/dist/chunk-P4FWSZ43.js +47 -0
- package/dist/chunk-P4FWSZ43.js.map +1 -0
- package/dist/{chunk-SSFPGDA3.js → chunk-QBBF6LZZ.js} +4 -4
- package/dist/chunk-QBBF6LZZ.js.map +1 -0
- package/dist/chunk-QS4MDB5H.js +336 -0
- package/dist/chunk-QS4MDB5H.js.map +1 -0
- package/dist/{chunk-MEQAHLW6.js → chunk-QUZPQJRE.js} +2 -2
- package/dist/chunk-RIBTACPE.js +35 -0
- package/dist/chunk-RIBTACPE.js.map +1 -0
- package/dist/{chunk-NMNAPTVV.js → chunk-SOZL76ZM.js} +7 -3
- package/dist/chunk-SOZL76ZM.js.map +1 -0
- package/dist/{chunk-MNSQSU7T.js → chunk-T4KN3FCF.js} +1 -1
- package/dist/chunk-T4KN3FCF.js.map +1 -0
- package/dist/{chunk-AATAYCEY.js → chunk-WLJV5O6C.js} +10 -10
- package/dist/chunk-WLJV5O6C.js.map +1 -0
- package/dist/engine/cloudBucket/r2Storage.js +3 -1
- package/dist/engine/mondoDb/mongoDB.js +2 -1
- package/dist/engine/server/server.d.ts +5 -3
- package/dist/engine/server/server.js +28 -6
- package/dist/engine/sql/mySql.d.ts +2 -2
- package/dist/engine/sql/mySql.js +2 -1
- package/dist/engine/sql/pgSql.js +2 -1
- package/dist/utility/libs/index.d.ts +1772 -0
- package/dist/utility/libs/index.js +101 -0
- package/dist/utility/libs/interface.d.ts +5 -7
- package/dist/utility/libs/run-all.js +46 -0
- package/dist/utility/libs/run-all.js.map +1 -0
- package/dist/{chunk-LFRKRR7G.js → utility/libs/run-bucket.js} +4 -7
- package/dist/utility/libs/run-bucket.js.map +1 -0
- package/dist/utility/libs/run-node-server.js +35 -0
- package/dist/utility/libs/run-node-server.js.map +1 -0
- package/dist/utility/libs/types.d.ts +11 -31
- package/dist/utility/libs/types.js.map +1 -1
- package/dist/utility/utilis/cloud_storage/deleteFile.js +7 -54
- package/dist/utility/utilis/cloud_storage/deleteFile.js.map +1 -1
- package/dist/utility/utilis/cloud_storage/deleteFiles.js +7 -83
- package/dist/utility/utilis/cloud_storage/deleteFiles.js.map +1 -1
- package/dist/utility/utilis/cloud_storage/downloadFile.js +8 -68
- package/dist/utility/utilis/cloud_storage/downloadFile.js.map +1 -1
- package/dist/utility/utilis/cloud_storage/downloadFiles.js +8 -82
- package/dist/utility/utilis/cloud_storage/downloadFiles.js.map +1 -1
- package/dist/utility/utilis/cloud_storage/uploadFile.js +5 -5
- package/dist/utility/utilis/cloud_storage/uploadFiles.d.ts +0 -64
- package/dist/utility/utilis/cloud_storage/uploadFiles.js +8 -42
- package/dist/utility/utilis/cloud_storage/uploadFiles.js.map +1 -1
- package/dist/utility/utilis/general/file-operations.d.ts +8 -132
- package/dist/utility/utilis/general/file-operations.js +7 -3
- package/dist/utility/utilis/general/sqlDb.js.d.ts +0 -141
- package/dist/utility/utilis/general/sqlDb.js.js +1 -1
- package/dist/utility/utilis/general/uuids.d.ts +0 -43
- package/dist/utility/utilis/general/uuids.js +1 -1
- package/dist/utility/utilis/general/web.d.ts +2 -238
- package/dist/utility/utilis/general/web.js +3 -3
- package/dist/utility/utilis/mongoDb/buldWrite.d.ts +0 -44
- package/dist/utility/utilis/mongoDb/buldWrite.js +5 -26
- package/dist/utility/utilis/mongoDb/buldWrite.js.map +1 -1
- package/dist/utility/utilis/mongoDb/deleteDocument.d.ts +0 -45
- package/dist/utility/utilis/mongoDb/deleteDocument.js +5 -28
- package/dist/utility/utilis/mongoDb/deleteDocument.js.map +1 -1
- package/dist/utility/utilis/mongoDb/insertField.d.ts +2 -33
- package/dist/utility/utilis/mongoDb/insertField.js +6 -28
- package/dist/utility/utilis/mongoDb/insertField.js.map +1 -1
- package/dist/utility/utilis/mongoDb/insertFields.d.ts +2 -41
- package/dist/utility/utilis/mongoDb/insertFields.js +6 -30
- package/dist/utility/utilis/mongoDb/insertFields.js.map +1 -1
- package/dist/utility/utilis/mongoDb/updateFiled.d.ts +0 -56
- package/dist/utility/utilis/mongoDb/updateFiled.js +5 -34
- package/dist/utility/utilis/mongoDb/updateFiled.js.map +1 -1
- package/dist/utility/utilis/multer/upload_batch.js +5 -12
- package/dist/utility/utilis/multer/upload_batch.js.map +1 -1
- package/dist/utility/utilis/multer/upload_single.d.ts +41 -0
- package/dist/utility/utilis/multer/upload_single.js +5 -11
- package/dist/utility/utilis/multer/upload_single.js.map +1 -1
- package/dist/utility/utilis/postgres/executeQuery.d.ts +2 -205
- package/dist/utility/utilis/postgres/executeQuery.js +11 -40
- package/dist/utility/utilis/postgres/executeQuery.js.map +1 -1
- package/dist/utility/utilis/postgres/subSqlfiles/executeMySqlQuery.js +3 -2
- package/dist/utility/utilis/postgres/subSqlfiles/executePgQuery.js +3 -2
- package/dist/utility/utilis/server/app.js +30 -10
- package/dist/utility/utilis/server/app.js.map +1 -1
- package/dist/utility/utilis/server/server.d.ts +2 -2
- package/dist/utility/utilis/server/server.js +28 -17
- package/dist/utility/utilis/server/server.js.map +1 -1
- package/package.json +7 -8
- package/dist/chunk-3AP6JARL.js +0 -12
- package/dist/chunk-3AP6JARL.js.map +0 -1
- package/dist/chunk-5A3RVJNT.js +0 -19
- package/dist/chunk-5A3RVJNT.js.map +0 -1
- package/dist/chunk-AATAYCEY.js.map +0 -1
- package/dist/chunk-EB35KLDE.js.map +0 -1
- package/dist/chunk-FMCW72HO.js.map +0 -1
- package/dist/chunk-HZ4GLSOO.js.map +0 -1
- package/dist/chunk-LFRKRR7G.js.map +0 -1
- package/dist/chunk-MNSQSU7T.js.map +0 -1
- package/dist/chunk-NMNAPTVV.js.map +0 -1
- package/dist/chunk-SSFPGDA3.js.map +0 -1
- package/dist/chunk-W2745SOE.js +0 -38
- package/dist/chunk-W2745SOE.js.map +0 -1
- package/dist/chunk-WDQJPBUK.js +0 -53
- package/dist/chunk-WDQJPBUK.js.map +0 -1
- package/dist/chunk-X3R3RLXY.js.map +0 -1
- package/dist/chunk-YWFCWT6R.js +0 -23
- package/dist/chunk-YWFCWT6R.js.map +0 -1
- package/dist/engine/script/run-all.d.ts +0 -3
- package/dist/engine/script/run-all.js +0 -8
- package/dist/engine/script/run-bucket.d.ts +0 -3
- package/dist/engine/script/run-bucket.js +0 -8
- package/dist/engine/script/run-bucket.js.map +0 -1
- package/dist/engine/script/run-node-server.d.ts +0 -3
- package/dist/engine/script/run-node-server.js +0 -8
- package/dist/engine/script/run-node-server.js.map +0 -1
- package/dist/engine/server/app.d.ts +0 -5
- package/dist/engine/server/app.js +0 -8
- package/dist/engine/server/app.js.map +0 -1
- package/dist/utility/script/run-all.js +0 -8
- package/dist/utility/script/run-all.js.map +0 -1
- package/dist/utility/script/run-bucket.js +0 -8
- package/dist/utility/script/run-bucket.js.map +0 -1
- package/dist/utility/script/run-node-server.js +0 -8
- package/dist/utility/script/run-node-server.js.map +0 -1
- package/dist/utility/utilis/cloud_storage/s3Client.d.ts +0 -5
- package/dist/utility/utilis/cloud_storage/s3Client.js +0 -15
- package/dist/utility/utilis/cloud_storage/s3Client.js.map +0 -1
- /package/dist/{chunk-BMPUYKJJ.js.map → chunk-DRLEV7OW.js.map} +0 -0
- /package/dist/{chunk-MEQAHLW6.js.map → chunk-QUZPQJRE.js.map} +0 -0
- /package/dist/{engine/script/run-all.js.map → utility/libs/index.js.map} +0 -0
- /package/dist/utility/{script → libs}/run-all.d.ts +0 -0
- /package/dist/utility/{script → libs}/run-bucket.d.ts +0 -0
- /package/dist/utility/{script → libs}/run-node-server.d.ts +0 -0
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
import {
|
|
2
|
+
getMongoServer
|
|
3
|
+
} from "./chunk-ECIP24BN.js";
|
|
4
|
+
import {
|
|
5
|
+
__name
|
|
6
|
+
} from "./chunk-7QVYU63E.js";
|
|
7
|
+
|
|
8
|
+
// src/utility/utilis/mongoDb/deleteDocument.ts
|
|
9
|
+
var mongoDeleteDocument = /* @__PURE__ */ __name(async (params) => {
|
|
10
|
+
const { dbName, collection, query, deleteMany = false, options } = params;
|
|
11
|
+
try {
|
|
12
|
+
const col = getMongoServer().db(dbName).collection(collection);
|
|
13
|
+
const result = deleteMany ? await col.deleteMany(query, options) : await col.deleteOne(query, options);
|
|
14
|
+
return {
|
|
15
|
+
status: true,
|
|
16
|
+
result,
|
|
17
|
+
deletedCount: result.deletedCount,
|
|
18
|
+
error: null
|
|
19
|
+
};
|
|
20
|
+
} catch (err) {
|
|
21
|
+
const error = err instanceof Error ? err : new Error(String(err));
|
|
22
|
+
return {
|
|
23
|
+
status: false,
|
|
24
|
+
result: null,
|
|
25
|
+
deletedCount: 0,
|
|
26
|
+
error
|
|
27
|
+
};
|
|
28
|
+
}
|
|
29
|
+
}, "mongoDeleteDocument");
|
|
30
|
+
|
|
31
|
+
export {
|
|
32
|
+
mongoDeleteDocument
|
|
33
|
+
};
|
|
34
|
+
//# sourceMappingURL=chunk-M2C6HHRK.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/utility/utilis/mongoDb/deleteDocument.ts"],"sourcesContent":["import { getMongoServer } from \"../../../engine/mondoDb/mongoDB.js\";\r\nimport type {CustomDeleteResult} from \"../../libs/types.js\";\r\nimport type {DeleteDocuments} from \"../../libs/interface.js\";\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\nexport const mongoDeleteDocument = async (\r\n params: DeleteDocuments\r\n): Promise<CustomDeleteResult> => {\r\n\r\n\r\n const { dbName, collection, query, deleteMany = false, options } = params;\r\n\r\n try {\r\n const col = getMongoServer().db(dbName).collection(collection);\r\n\r\n const result = deleteMany\r\n ? await col.deleteMany(query, options)\r\n : await col.deleteOne(query, options);\r\n\r\n return {\r\n status: true,\r\n result,\r\n deletedCount: result.deletedCount,\r\n error: null,\r\n };\r\n } catch (err) {\r\n const error = err instanceof Error ? err : new Error(String(err));\r\n\r\n return {\r\n status: false,\r\n result: null,\r\n deletedCount: 0,\r\n error,\r\n };\r\n }\r\n};\r\n"],"mappings":";;;;;;;;AAUO,IAAM,sBAAsB,8BAC/B,WAC8B;AAG9B,QAAM,EAAE,QAAQ,YAAY,OAAO,aAAa,OAAO,QAAQ,IAAI;AAEnE,MAAI;AACA,UAAM,MAAM,eAAe,EAAE,GAAG,MAAM,EAAE,WAAW,UAAU;AAE7D,UAAM,SAAS,aACT,MAAM,IAAI,WAAW,OAAO,OAAO,IACnC,MAAM,IAAI,UAAU,OAAO,OAAO;AAExC,WAAO;AAAA,MACH,QAAQ;AAAA,MACR;AAAA,MACA,cAAc,OAAO;AAAA,MACrB,OAAO;AAAA,IACX;AAAA,EACJ,SAAS,KAAK;AACV,UAAM,QAAQ,eAAe,QAAQ,MAAM,IAAI,MAAM,OAAO,GAAG,CAAC;AAEhE,WAAO;AAAA,MACH,QAAQ;AAAA,MACR,QAAQ;AAAA,MACR,cAAc;AAAA,MACd;AAAA,IACJ;AAAA,EACJ;AACJ,GA9BmC;","names":[]}
|
|
@@ -0,0 +1,74 @@
|
|
|
1
|
+
import {
|
|
2
|
+
generateUniqueValue
|
|
3
|
+
} from "./chunk-3IO4NPP3.js";
|
|
4
|
+
import {
|
|
5
|
+
getKeyFromUrl
|
|
6
|
+
} from "./chunk-QBBF6LZZ.js";
|
|
7
|
+
import {
|
|
8
|
+
s3Client
|
|
9
|
+
} from "./chunk-IAQMTSGP.js";
|
|
10
|
+
import {
|
|
11
|
+
getFileExtension,
|
|
12
|
+
getInAppBucketDownloadPath
|
|
13
|
+
} from "./chunk-CBTP2HOO.js";
|
|
14
|
+
import {
|
|
15
|
+
ENV
|
|
16
|
+
} from "./chunk-EWQYVPOL.js";
|
|
17
|
+
import {
|
|
18
|
+
__name
|
|
19
|
+
} from "./chunk-7QVYU63E.js";
|
|
20
|
+
|
|
21
|
+
// src/utility/utilis/cloud_storage/downloadFile.ts
|
|
22
|
+
import { GetObjectCommand } from "@aws-sdk/client-s3";
|
|
23
|
+
import { pipeline } from "stream/promises";
|
|
24
|
+
import path from "path";
|
|
25
|
+
import fsPromises from "fs/promises";
|
|
26
|
+
import * as fs from "fs";
|
|
27
|
+
var downloadFile = /* @__PURE__ */ __name(async ({
|
|
28
|
+
url,
|
|
29
|
+
outputPath
|
|
30
|
+
}) => {
|
|
31
|
+
try {
|
|
32
|
+
const key = getKeyFromUrl(url);
|
|
33
|
+
const command = new GetObjectCommand({
|
|
34
|
+
Bucket: ENV.BUCKET_NAME,
|
|
35
|
+
Key: key
|
|
36
|
+
});
|
|
37
|
+
const response = await s3Client.send(command);
|
|
38
|
+
if (!response.Body) {
|
|
39
|
+
console.log(response);
|
|
40
|
+
return {
|
|
41
|
+
status: true,
|
|
42
|
+
url,
|
|
43
|
+
error: new Error(`Empty response body received for key: ${key}`)
|
|
44
|
+
};
|
|
45
|
+
}
|
|
46
|
+
const fileExtension = getFileExtension(url);
|
|
47
|
+
const fileName = generateUniqueValue(16);
|
|
48
|
+
const finalFileName = `${fileName}.${fileExtension}`;
|
|
49
|
+
const targetPath = getInAppBucketDownloadPath({ segments: outputPath || [], fileName: finalFileName });
|
|
50
|
+
const dir = path.dirname(targetPath);
|
|
51
|
+
if (!fs.existsSync(dir)) {
|
|
52
|
+
await fsPromises.mkdir(dir, { recursive: true });
|
|
53
|
+
}
|
|
54
|
+
const stream = response.Body;
|
|
55
|
+
await pipeline(stream, fs.createWriteStream(targetPath));
|
|
56
|
+
return {
|
|
57
|
+
status: true,
|
|
58
|
+
url,
|
|
59
|
+
path: targetPath
|
|
60
|
+
};
|
|
61
|
+
} catch (error) {
|
|
62
|
+
console.error(error);
|
|
63
|
+
return {
|
|
64
|
+
status: false,
|
|
65
|
+
url,
|
|
66
|
+
error: error instanceof Error ? error : new Error(String(error))
|
|
67
|
+
};
|
|
68
|
+
}
|
|
69
|
+
}, "downloadFile");
|
|
70
|
+
|
|
71
|
+
export {
|
|
72
|
+
downloadFile
|
|
73
|
+
};
|
|
74
|
+
//# sourceMappingURL=chunk-MKS3GPZY.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/utility/utilis/cloud_storage/downloadFile.ts"],"sourcesContent":["import {GetObjectCommand} from \"@aws-sdk/client-s3\";\r\nimport {getKeyFromUrl} from \"../general/web.js\";\r\nimport { pipeline } from \"stream/promises\";\r\nimport path from 'node:path'\r\nimport fsPromises from 'fs/promises';\r\nimport * as fs from \"node:fs\";\r\nimport type {DownloadedFile, DownloadFileParams} from \"../../libs/interface.js\";\r\nimport {ENV} from \"../../libs/env.js\";\r\nimport {getFileExtension, getInAppBucketDownloadPath} from \"../general/file-operations.js\";\r\nimport {generateUniqueValue} from \"../general/uuids.js\";\r\nimport {s3Client} from \"../../../engine/cloudBucket/r2Storage.js\";\r\n\r\n\r\n\r\nexport const downloadFile = async ({\r\n url,\r\n outputPath,\r\n }: DownloadFileParams): Promise<DownloadedFile> => {\r\n try {\r\n const key = getKeyFromUrl(url);\r\n\r\n const command = new GetObjectCommand({\r\n Bucket: ENV.BUCKET_NAME,\r\n Key: key,\r\n });\r\n\r\n const response = await s3Client.send(command);\r\n\r\n if (!response.Body) {\r\n console.log(response);\r\n return {\r\n status: true,\r\n url: url,\r\n error: new Error(`Empty response body received for key: ${key}`),\r\n };\r\n }\r\n\r\n const fileExtension = getFileExtension(url);\r\n const fileName = generateUniqueValue(16);\r\n const finalFileName = `${fileName}.${fileExtension}`;\r\n const targetPath = getInAppBucketDownloadPath({ segments: outputPath || [], fileName: finalFileName });\r\n\r\n // Ensure directory structure exists for targetPath\r\n const dir = path.dirname(targetPath);\r\n if (!fs.existsSync(dir)) {\r\n await fsPromises.mkdir(dir, { recursive: true });\r\n }\r\n\r\n // Cast stream to NodeJS.ReadableStream for pipeline overload\r\n const stream = response.Body as NodeJS.ReadableStream;\r\n await pipeline(stream, fs.createWriteStream(targetPath));\r\n\r\n return {\r\n status: true,\r\n url: url,\r\n path: targetPath,\r\n };\r\n\r\n } catch (error) {\r\n console.error(error);\r\n return {\r\n status: false,\r\n url: url,\r\n error: error instanceof Error ? error : new Error(String(error)),\r\n };\r\n }\r\n};\r\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;AAAA,SAAQ,wBAAuB;AAE/B,SAAS,gBAAgB;AACzB,OAAO,UAAU;AACjB,OAAO,gBAAgB;AACvB,YAAY,QAAQ;AASb,IAAM,eAAe,8BAAO;AAAA,EACI;AAAA,EACA;AACJ,MAAmD;AAClF,MAAI;AACA,UAAM,MAAM,cAAc,GAAG;AAE7B,UAAM,UAAU,IAAI,iBAAiB;AAAA,MACjC,QAAQ,IAAI;AAAA,MACZ,KAAK;AAAA,IACT,CAAC;AAED,UAAM,WAAW,MAAM,SAAS,KAAK,OAAO;AAE5C,QAAI,CAAC,SAAS,MAAM;AAChB,cAAQ,IAAI,QAAQ;AACpB,aAAO;AAAA,QACH,QAAQ;AAAA,QACR;AAAA,QACA,OAAO,IAAI,MAAM,yCAAyC,GAAG,EAAE;AAAA,MACnE;AAAA,IACJ;AAEA,UAAM,gBAAgB,iBAAiB,GAAG;AAC1C,UAAM,WAAW,oBAAoB,EAAE;AACvC,UAAM,gBAAgB,GAAG,QAAQ,IAAI,aAAa;AAClD,UAAM,aAAa,2BAA2B,EAAE,UAAU,cAAc,CAAC,GAAG,UAAU,cAAc,CAAC;AAGrG,UAAM,MAAM,KAAK,QAAQ,UAAU;AACnC,QAAI,CAAI,cAAW,GAAG,GAAG;AACrB,YAAM,WAAW,MAAM,KAAK,EAAE,WAAW,KAAK,CAAC;AAAA,IACnD;AAGA,UAAM,SAAS,SAAS;AACxB,UAAM,SAAS,QAAW,qBAAkB,UAAU,CAAC;AAEvD,WAAO;AAAA,MACH,QAAQ;AAAA,MACR;AAAA,MACA,MAAM;AAAA,IACV;AAAA,EAEJ,SAAS,OAAO;AACZ,YAAQ,MAAM,KAAK;AACnB,WAAO;AAAA,MACH,QAAQ;AAAA,MACR;AAAA,MACA,OAAO,iBAAiB,QAAQ,QAAQ,IAAI,MAAM,OAAO,KAAK,CAAC;AAAA,IACnE;AAAA,EACJ;AACJ,GApD4B;","names":[]}
|
|
@@ -0,0 +1,88 @@
|
|
|
1
|
+
import {
|
|
2
|
+
generateUniqueValue
|
|
3
|
+
} from "./chunk-3IO4NPP3.js";
|
|
4
|
+
import {
|
|
5
|
+
getKeyFromUrl
|
|
6
|
+
} from "./chunk-QBBF6LZZ.js";
|
|
7
|
+
import {
|
|
8
|
+
s3Client
|
|
9
|
+
} from "./chunk-IAQMTSGP.js";
|
|
10
|
+
import {
|
|
11
|
+
getFileExtension,
|
|
12
|
+
getInAppBucketDownloadPath
|
|
13
|
+
} from "./chunk-CBTP2HOO.js";
|
|
14
|
+
import {
|
|
15
|
+
ENV
|
|
16
|
+
} from "./chunk-EWQYVPOL.js";
|
|
17
|
+
import {
|
|
18
|
+
__name
|
|
19
|
+
} from "./chunk-7QVYU63E.js";
|
|
20
|
+
|
|
21
|
+
// src/utility/utilis/cloud_storage/downloadFiles.ts
|
|
22
|
+
import { GetObjectCommand } from "@aws-sdk/client-s3";
|
|
23
|
+
import path from "path";
|
|
24
|
+
import fsPromises from "fs/promises";
|
|
25
|
+
import * as fs from "fs";
|
|
26
|
+
import { pipeline } from "stream/promises";
|
|
27
|
+
var downloadFiles = /* @__PURE__ */ __name(async ({
|
|
28
|
+
files,
|
|
29
|
+
globalPath
|
|
30
|
+
}) => {
|
|
31
|
+
const hasIndividualOutputPath = files.some(
|
|
32
|
+
(file) => file.outputPath && file.outputPath.length > 0
|
|
33
|
+
);
|
|
34
|
+
if (globalPath && hasIndividualOutputPath) {
|
|
35
|
+
throw new Error(
|
|
36
|
+
"Conflict: Cannot specify both 'globalPath' and individual 'outputPath' on files."
|
|
37
|
+
);
|
|
38
|
+
}
|
|
39
|
+
const downloadPromises = files.map(async (file) => {
|
|
40
|
+
const { url, outputPath } = file;
|
|
41
|
+
try {
|
|
42
|
+
const key = getKeyFromUrl(url);
|
|
43
|
+
const command = new GetObjectCommand({
|
|
44
|
+
Bucket: ENV.BUCKET_NAME,
|
|
45
|
+
Key: key
|
|
46
|
+
});
|
|
47
|
+
const response = await s3Client.send(command);
|
|
48
|
+
if (!response.Body) {
|
|
49
|
+
return {
|
|
50
|
+
status: false,
|
|
51
|
+
url,
|
|
52
|
+
error: new Error(`Empty response body received for key: ${key}`)
|
|
53
|
+
};
|
|
54
|
+
}
|
|
55
|
+
const fileExtension = getFileExtension(url);
|
|
56
|
+
const fileName = generateUniqueValue(16);
|
|
57
|
+
const finalFileName = `${fileName}.${fileExtension}`;
|
|
58
|
+
const resolvedPathSegments = outputPath || (globalPath ? [globalPath] : []);
|
|
59
|
+
const targetPath = getInAppBucketDownloadPath({
|
|
60
|
+
segments: resolvedPathSegments,
|
|
61
|
+
fileName: finalFileName
|
|
62
|
+
});
|
|
63
|
+
const dir = path.dirname(targetPath);
|
|
64
|
+
if (!fs.existsSync(dir)) {
|
|
65
|
+
await fsPromises.mkdir(dir, { recursive: true });
|
|
66
|
+
}
|
|
67
|
+
const stream = response.Body;
|
|
68
|
+
await pipeline(stream, fs.createWriteStream(targetPath));
|
|
69
|
+
return {
|
|
70
|
+
status: true,
|
|
71
|
+
url,
|
|
72
|
+
path: targetPath
|
|
73
|
+
};
|
|
74
|
+
} catch (error) {
|
|
75
|
+
return {
|
|
76
|
+
status: false,
|
|
77
|
+
url,
|
|
78
|
+
error: error instanceof Error ? error : new Error(String(error))
|
|
79
|
+
};
|
|
80
|
+
}
|
|
81
|
+
});
|
|
82
|
+
return Promise.all(downloadPromises);
|
|
83
|
+
}, "downloadFiles");
|
|
84
|
+
|
|
85
|
+
export {
|
|
86
|
+
downloadFiles
|
|
87
|
+
};
|
|
88
|
+
//# sourceMappingURL=chunk-O42S6QIG.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/utility/utilis/cloud_storage/downloadFiles.ts"],"sourcesContent":["import type {DownloadedFile, DownloadFilesParams} from \"../../libs/interface.js\";\r\nimport {getKeyFromUrl} from \"../general/web.js\";\r\nimport {GetObjectCommand} from \"@aws-sdk/client-s3\";\r\nimport {ENV} from \"../../libs/env.js\";\r\nimport {getInAppBucketDownloadPath, getFileExtension} from \"../general/file-operations.js\";\r\nimport path from \"node:path\";\r\nimport fsPromises from \"fs/promises\";\r\nimport * as fs from \"node:fs\";\r\nimport {pipeline} from \"stream/promises\";\r\nimport {generateUniqueValue} from \"../general/uuids.js\";\r\nimport {s3Client} from \"../../../engine/cloudBucket/r2Storage.js\";\r\n\r\nexport const downloadFiles = async ({\r\n files,\r\n globalPath,\r\n }: DownloadFilesParams): Promise<DownloadedFile[]> => {\r\n // 1. Validate path conflict rule upfront\r\n const hasIndividualOutputPath = files.some(\r\n (file) => file.outputPath && file.outputPath.length > 0\r\n );\r\n\r\n if (globalPath && hasIndividualOutputPath) {\r\n throw new Error(\r\n \"Conflict: Cannot specify both 'globalPath' and individual 'outputPath' on files.\"\r\n );\r\n }\r\n\r\n // 2. Process all files independently in parallel\r\n const downloadPromises = files.map(async (file): Promise<DownloadedFile> => {\r\n const { url, outputPath } = file;\r\n\r\n try {\r\n const key = getKeyFromUrl(url);\r\n\r\n const command = new GetObjectCommand({\r\n Bucket: ENV.BUCKET_NAME,\r\n Key: key,\r\n });\r\n\r\n const response = await s3Client.send(command);\r\n\r\n if (!response.Body) {\r\n return {\r\n status: false,\r\n url: url,\r\n error: new Error(`Empty response body received for key: ${key}`),\r\n };\r\n }\r\n\r\n const fileExtension = getFileExtension(url);\r\n const fileName = generateUniqueValue(16);\r\n const finalFileName = `${fileName}.${fileExtension}`;\r\n\r\n // Resolve target path using either file's outputPath or globalPath\r\n const resolvedPathSegments = outputPath || (globalPath ? [globalPath] : []);\r\n const targetPath = getInAppBucketDownloadPath({\r\n segments: resolvedPathSegments,\r\n fileName: finalFileName,\r\n });\r\n\r\n // Ensure output folder structure exists\r\n const dir = path.dirname(targetPath);\r\n if (!fs.existsSync(dir)) {\r\n await fsPromises.mkdir(dir, { recursive: true });\r\n }\r\n\r\n // Stream response body directly to file\r\n const stream = response.Body as NodeJS.ReadableStream;\r\n await pipeline(stream, fs.createWriteStream(targetPath));\r\n\r\n return {\r\n status: true,\r\n url: url,\r\n path: targetPath,\r\n };\r\n } catch (error) {\r\n return {\r\n status: false,\r\n url: url,\r\n error: error instanceof Error ? error : new Error(String(error)),\r\n };\r\n }\r\n });\r\n\r\n return Promise.all(downloadPromises);\r\n};\r\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;AAEA,SAAQ,wBAAuB;AAG/B,OAAO,UAAU;AACjB,OAAO,gBAAgB;AACvB,YAAY,QAAQ;AACpB,SAAQ,gBAAe;AAIhB,IAAM,gBAAgB,8BAAO;AAAA,EACI;AAAA,EACA;AACJ,MAAsD;AAEtF,QAAM,0BAA0B,MAAM;AAAA,IAClC,CAAC,SAAS,KAAK,cAAc,KAAK,WAAW,SAAS;AAAA,EAC1D;AAEA,MAAI,cAAc,yBAAyB;AACvC,UAAM,IAAI;AAAA,MACN;AAAA,IACJ;AAAA,EACJ;AAGA,QAAM,mBAAmB,MAAM,IAAI,OAAO,SAAkC;AACxE,UAAM,EAAE,KAAK,WAAW,IAAI;AAE5B,QAAI;AACA,YAAM,MAAM,cAAc,GAAG;AAE7B,YAAM,UAAU,IAAI,iBAAiB;AAAA,QACjC,QAAQ,IAAI;AAAA,QACZ,KAAK;AAAA,MACT,CAAC;AAED,YAAM,WAAW,MAAM,SAAS,KAAK,OAAO;AAE5C,UAAI,CAAC,SAAS,MAAM;AAChB,eAAO;AAAA,UACH,QAAQ;AAAA,UACR;AAAA,UACA,OAAO,IAAI,MAAM,yCAAyC,GAAG,EAAE;AAAA,QACnE;AAAA,MACJ;AAEA,YAAM,gBAAgB,iBAAiB,GAAG;AAC1C,YAAM,WAAW,oBAAoB,EAAE;AACvC,YAAM,gBAAgB,GAAG,QAAQ,IAAI,aAAa;AAGlD,YAAM,uBAAuB,eAAe,aAAa,CAAC,UAAU,IAAI,CAAC;AACzE,YAAM,aAAa,2BAA2B;AAAA,QAC1C,UAAU;AAAA,QACV,UAAU;AAAA,MACd,CAAC;AAGD,YAAM,MAAM,KAAK,QAAQ,UAAU;AACnC,UAAI,CAAI,cAAW,GAAG,GAAG;AACrB,cAAM,WAAW,MAAM,KAAK,EAAE,WAAW,KAAK,CAAC;AAAA,MACnD;AAGA,YAAM,SAAS,SAAS;AACxB,YAAM,SAAS,QAAW,qBAAkB,UAAU,CAAC;AAEvD,aAAO;AAAA,QACH,QAAQ;AAAA,QACR;AAAA,QACA,MAAM;AAAA,MACV;AAAA,IACJ,SAAS,OAAO;AACZ,aAAO;AAAA,QACH,QAAQ;AAAA,QACR;AAAA,QACA,OAAO,iBAAiB,QAAQ,QAAQ,IAAI,MAAM,OAAO,KAAK,CAAC;AAAA,MACnE;AAAA,IACJ;AAAA,EACJ,CAAC;AAED,SAAO,QAAQ,IAAI,gBAAgB;AACvC,GAzE6B;","names":[]}
|
|
@@ -0,0 +1,60 @@
|
|
|
1
|
+
import {
|
|
2
|
+
getKeyFromUrl
|
|
3
|
+
} from "./chunk-QBBF6LZZ.js";
|
|
4
|
+
import {
|
|
5
|
+
s3Client
|
|
6
|
+
} from "./chunk-IAQMTSGP.js";
|
|
7
|
+
import {
|
|
8
|
+
url_or_path
|
|
9
|
+
} from "./chunk-CBTP2HOO.js";
|
|
10
|
+
import {
|
|
11
|
+
ENV
|
|
12
|
+
} from "./chunk-EWQYVPOL.js";
|
|
13
|
+
import {
|
|
14
|
+
__name
|
|
15
|
+
} from "./chunk-7QVYU63E.js";
|
|
16
|
+
|
|
17
|
+
// src/utility/utilis/cloud_storage/deleteFile.ts
|
|
18
|
+
import { DeleteObjectCommand } from "@aws-sdk/client-s3";
|
|
19
|
+
import * as fs from "fs";
|
|
20
|
+
var deleteFile = /* @__PURE__ */ __name(async (item_file) => {
|
|
21
|
+
try {
|
|
22
|
+
const fileType = url_or_path(item_file);
|
|
23
|
+
if (fileType === ENV.URL) {
|
|
24
|
+
const key = getKeyFromUrl(item_file);
|
|
25
|
+
const command = new DeleteObjectCommand({
|
|
26
|
+
Bucket: ENV.BUCKET_NAME,
|
|
27
|
+
Key: key
|
|
28
|
+
});
|
|
29
|
+
await s3Client.send(command);
|
|
30
|
+
return {
|
|
31
|
+
status: true,
|
|
32
|
+
url_or_path: item_file
|
|
33
|
+
};
|
|
34
|
+
}
|
|
35
|
+
if (fileType === ENV.PATH) {
|
|
36
|
+
if (fs.existsSync(item_file)) {
|
|
37
|
+
await fs.promises.unlink(item_file);
|
|
38
|
+
}
|
|
39
|
+
return {
|
|
40
|
+
status: true,
|
|
41
|
+
url_or_path: item_file
|
|
42
|
+
};
|
|
43
|
+
}
|
|
44
|
+
return {
|
|
45
|
+
url_or_path: item_file,
|
|
46
|
+
status: false
|
|
47
|
+
};
|
|
48
|
+
} catch (error) {
|
|
49
|
+
return {
|
|
50
|
+
status: false,
|
|
51
|
+
url_or_path: item_file,
|
|
52
|
+
error
|
|
53
|
+
};
|
|
54
|
+
}
|
|
55
|
+
}, "deleteFile");
|
|
56
|
+
|
|
57
|
+
export {
|
|
58
|
+
deleteFile
|
|
59
|
+
};
|
|
60
|
+
//# sourceMappingURL=chunk-OHDZYSL3.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/utility/utilis/cloud_storage/deleteFile.ts"],"sourcesContent":["import {ENV} from \"../../libs/env.js\";\r\nimport {url_or_path} from \"../general/file-operations.js\";\r\nimport {getKeyFromUrl} from \"../general/web.js\";\r\nimport {DeleteObjectCommand} from \"@aws-sdk/client-s3\";\r\nimport * as fs from \"node:fs\";\r\nimport type {DeleteFile} from \"../../libs/interface.js\";\r\nimport {s3Client} from \"../../../engine/cloudBucket/r2Storage.js\";\r\n\r\n\r\n\r\n\r\nexport const deleteFile = async (item_file: string): Promise<DeleteFile> => {\r\n try {\r\n const fileType = url_or_path(item_file);\r\n\r\n if (fileType === ENV.URL) {\r\n // Extract the MinIO object key from the full public URL\r\n const key = getKeyFromUrl(item_file);\r\n\r\n const command = new DeleteObjectCommand({\r\n Bucket: ENV.BUCKET_NAME,\r\n Key: key,\r\n });\r\n\r\n await s3Client.send(command);\r\n return {\r\n status: true,\r\n url_or_path: item_file,\r\n }\r\n }\r\n\r\n if (fileType === ENV.PATH) {\r\n // Check if file exists locally before unlinking\r\n if (fs.existsSync(item_file)) {\r\n await fs.promises.unlink(item_file);\r\n }\r\n return {\r\n status: true,\r\n url_or_path: item_file,\r\n }\r\n }\r\n\r\n return {\r\n url_or_path: item_file,\r\n status: false,\r\n }\r\n } catch (error) {\r\n return {\r\n status: false,\r\n url_or_path: item_file,\r\n error: error,\r\n }\r\n }\r\n};\r\n"],"mappings":";;;;;;;;;;;;;;;;;AAGA,SAAQ,2BAA0B;AAClC,YAAY,QAAQ;AAOb,IAAM,aAAa,8BAAO,cAA2C;AACxE,MAAI;AACA,UAAM,WAAW,YAAY,SAAS;AAEtC,QAAI,aAAa,IAAI,KAAK;AAEtB,YAAM,MAAM,cAAc,SAAS;AAEnC,YAAM,UAAU,IAAI,oBAAoB;AAAA,QACpC,QAAQ,IAAI;AAAA,QACZ,KAAK;AAAA,MACT,CAAC;AAED,YAAM,SAAS,KAAK,OAAO;AAC3B,aAAO;AAAA,QACH,QAAQ;AAAA,QACR,aAAa;AAAA,MACjB;AAAA,IACJ;AAEA,QAAI,aAAa,IAAI,MAAM;AAEvB,UAAO,cAAW,SAAS,GAAG;AAC1B,cAAS,YAAS,OAAO,SAAS;AAAA,MACtC;AACA,aAAO;AAAA,QACH,QAAQ;AAAA,QACR,aAAa;AAAA,MACjB;AAAA,IACJ;AAEA,WAAO;AAAA,MACH,aAAa;AAAA,MACb,QAAQ;AAAA,IACZ;AAAA,EACJ,SAAS,OAAO;AACZ,WAAO;AAAA,MACH,QAAQ;AAAA,MACR,aAAa;AAAA,MACb;AAAA,IACJ;AAAA,EACJ;AACJ,GA1C0B;","names":[]}
|
|
@@ -0,0 +1,47 @@
|
|
|
1
|
+
import {
|
|
2
|
+
executeMySqlQuery
|
|
3
|
+
} from "./chunk-DRLEV7OW.js";
|
|
4
|
+
import {
|
|
5
|
+
executePgSqlQuery
|
|
6
|
+
} from "./chunk-QUZPQJRE.js";
|
|
7
|
+
import {
|
|
8
|
+
isMySQL,
|
|
9
|
+
isPostgreSQL
|
|
10
|
+
} from "./chunk-T4KN3FCF.js";
|
|
11
|
+
import {
|
|
12
|
+
getMySqlPool
|
|
13
|
+
} from "./chunk-2RFTNIPS.js";
|
|
14
|
+
import {
|
|
15
|
+
getPgSqlPool
|
|
16
|
+
} from "./chunk-SOZL76ZM.js";
|
|
17
|
+
import {
|
|
18
|
+
ENV
|
|
19
|
+
} from "./chunk-EWQYVPOL.js";
|
|
20
|
+
import {
|
|
21
|
+
__name
|
|
22
|
+
} from "./chunk-7QVYU63E.js";
|
|
23
|
+
|
|
24
|
+
// src/utility/utilis/postgres/executeQuery.ts
|
|
25
|
+
var executeQuery = /* @__PURE__ */ __name(async (query) => {
|
|
26
|
+
if (isPostgreSQL(ENV.SQL_DB_URL)) {
|
|
27
|
+
return await executePgSqlQuery(query);
|
|
28
|
+
} else if (isMySQL(ENV.SQL_DB_URL)) {
|
|
29
|
+
return await executeMySqlQuery(query);
|
|
30
|
+
} else {
|
|
31
|
+
return new Error(`Unable to execute query. Please check the SQL_DB_URL in .env file and the db.sql file.`);
|
|
32
|
+
}
|
|
33
|
+
}, "executeQuery");
|
|
34
|
+
var getPool = /* @__PURE__ */ __name(async () => {
|
|
35
|
+
if (isPostgreSQL(ENV.SQL_DB_URL)) {
|
|
36
|
+
return getPgSqlPool();
|
|
37
|
+
}
|
|
38
|
+
if (isMySQL(ENV.SQL_DB_URL)) {
|
|
39
|
+
return getMySqlPool();
|
|
40
|
+
}
|
|
41
|
+
}, "getPool");
|
|
42
|
+
|
|
43
|
+
export {
|
|
44
|
+
executeQuery,
|
|
45
|
+
getPool
|
|
46
|
+
};
|
|
47
|
+
//# sourceMappingURL=chunk-P4FWSZ43.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/utility/utilis/postgres/executeQuery.ts"],"sourcesContent":["import type {QueryItems} from \"../../libs/interface.js\";\r\nimport {isMySQL, isPostgreSQL} from \"../general/sqlDb.js.js\";\r\nimport {ENV} from \"../../libs/env.js\";\r\nimport {executePgSqlQuery} from \"./subSqlfiles/executePgQuery.js\";\r\nimport {executeMySqlQuery} from \"./subSqlfiles/executeMySqlQuery.js\";\r\nimport {getMySqlPool} from \"../../../engine/sql/mySql.js\";\r\nimport {getPgSqlPool} from \"../../../engine/sql/pgSql.js\";\r\n\r\n\r\n\r\n\r\n\r\nexport const executeQuery = async (query: QueryItems) => {\r\n\r\n if (isPostgreSQL(ENV.SQL_DB_URL)) {\r\n return await executePgSqlQuery(query)\r\n }\r\n else if (isMySQL(ENV.SQL_DB_URL)) {\r\n return await executeMySqlQuery(query)\r\n }\r\n else {\r\n return new Error(`Unable to execute query. Please check the SQL_DB_URL in .env file and the db.sql file.`);\r\n }\r\n\r\n}\r\n\r\n\r\n\r\n\r\n\r\nexport const getPool = async () => {\r\n if (isPostgreSQL(ENV.SQL_DB_URL)) {\r\n return getPgSqlPool()\r\n }\r\n if (isMySQL(ENV.SQL_DB_URL)) {\r\n return getMySqlPool()\r\n }\r\n}\r\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;AAYO,IAAM,eAAe,8BAAO,UAAsB;AAErD,MAAI,aAAa,IAAI,UAAU,GAAG;AAC9B,WAAO,MAAM,kBAAkB,KAAK;AAAA,EACxC,WACS,QAAQ,IAAI,UAAU,GAAG;AAC9B,WAAO,MAAM,kBAAkB,KAAK;AAAA,EACxC,OACK;AACD,WAAO,IAAI,MAAM,wFAAwF;AAAA,EAC7G;AAEJ,GAZ4B;AAkBrB,IAAM,UAAU,mCAAY;AAC/B,MAAI,aAAa,IAAI,UAAU,GAAG;AAC9B,WAAO,aAAa;AAAA,EACxB;AACA,MAAI,QAAQ,IAAI,UAAU,GAAG;AACzB,WAAO,aAAa;AAAA,EACxB;AACJ,GAPuB;","names":[]}
|
|
@@ -36,7 +36,7 @@ var getKeyFromUrl = /* @__PURE__ */ __name((url) => {
|
|
|
36
36
|
}
|
|
37
37
|
return decodeURIComponent(pathParts.join("/"));
|
|
38
38
|
}, "getKeyFromUrl");
|
|
39
|
-
var
|
|
39
|
+
var responseToClient = /* @__PURE__ */ __name(({
|
|
40
40
|
response,
|
|
41
41
|
...payload
|
|
42
42
|
}) => {
|
|
@@ -63,11 +63,11 @@ var response_to_client = /* @__PURE__ */ __name(({
|
|
|
63
63
|
timestamp
|
|
64
64
|
}
|
|
65
65
|
});
|
|
66
|
-
}, "
|
|
66
|
+
}, "responseToClient");
|
|
67
67
|
|
|
68
68
|
export {
|
|
69
69
|
buildURL,
|
|
70
70
|
getKeyFromUrl,
|
|
71
|
-
|
|
71
|
+
responseToClient
|
|
72
72
|
};
|
|
73
|
-
//# sourceMappingURL=chunk-
|
|
73
|
+
//# sourceMappingURL=chunk-QBBF6LZZ.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/utility/utilis/general/web.ts"],"sourcesContent":["import type {URLOptions} from \"../../libs/interface.js\";\r\nimport {ENV} from \"../../libs/env.js\";\r\nimport type {ResponseInterface} from \"../../libs/types.js\";\r\n\r\n\r\n\r\nexport function buildURL({\r\n end_point,\r\n path = [],\r\n fileName,\r\n }: URLOptions): string {\r\n const resolvedFileName =\r\n fileName instanceof File ? fileName.name : fileName ?? '';\r\n\r\n // Filter out undefined, null, or empty string values safely\r\n const rawSegments: string[] = [\r\n end_point ?? '',\r\n ...path,\r\n resolvedFileName,\r\n ].filter((segment): segment is string => Boolean(segment && segment.trim()));\r\n\r\n if (rawSegments.length === 0) return '';\r\n\r\n // Extract and preserve protocol (http:// or https://) if present\r\n const match = rawSegments[0]?.match(/^(https?:\\/\\/)(.*)/i);\r\n let protocol = '';\r\n\r\n if (match) {\r\n protocol = match[1] ?? '';\r\n rawSegments[0] = match[2] ?? '';\r\n }\r\n\r\n // Clean leading/trailing/duplicate slashes\r\n const cleanedPath = rawSegments\r\n .map((segment) => segment.replace(/^\\/+|\\/+$/g, ''))\r\n .map((segment) => segment.replace(/\\/+/g, '/'))\r\n .filter((segment) => segment.length > 0)\r\n .join('/');\r\n\r\n return `${protocol}${cleanedPath}`;\r\n}\r\n\r\n\r\n\r\n\r\nexport const getKeyFromUrl = (url: string): string => {\r\n\r\n\r\n const parsedUrl = new URL(url);\r\n const pathParts = parsedUrl.pathname.split(\"/\").filter(Boolean);\r\n\r\n if (pathParts[0] === ENV.BUCKET_NAME) {\r\n pathParts.shift();\r\n }\r\n\r\n return decodeURIComponent(pathParts.join(\"/\"));\r\n};\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\nexport const responseToClient = ({\r\n response,\r\n ...payload\r\n }: ResponseInterface) => {\r\n const timestamp = payload.meta?.timestamp || new Date().toISOString();\r\n\r\n if (payload.success) {\r\n return response.status(payload.status).json({\r\n success: true,\r\n status: payload.status,\r\n message: payload.message ?? 'Success',\r\n data: payload.data,\r\n meta: {\r\n ...payload.meta,\r\n timestamp,\r\n },\r\n });\r\n }\r\n\r\n return response.status(payload.status).json({\r\n success: false,\r\n status: payload.status,\r\n message: payload.message ?? 'An error occurred',\r\n error: payload.error,\r\n meta: {\r\n ...payload.meta,\r\n timestamp,\r\n },\r\n });\r\n};\r\n\r\n\r\n\r\n"],"mappings":";;;;;;;;AAMO,SAAS,SAAS;AAAA,EACI;AAAA,EACA,OAAO,CAAC;AAAA,EACR;AACJ,GAAuB;AAC5C,QAAM,mBACF,oBAAoB,OAAO,SAAS,OAAO,YAAY;AAG3D,QAAM,cAAwB;AAAA,IAC1B,aAAa;AAAA,IACb,GAAG;AAAA,IACH;AAAA,EACJ,EAAE,OAAO,CAAC,YAA+B,QAAQ,WAAW,QAAQ,KAAK,CAAC,CAAC;AAE3E,MAAI,YAAY,WAAW,EAAG,QAAO;AAGrC,QAAM,QAAQ,YAAY,CAAC,GAAG,MAAM,qBAAqB;AACzD,MAAI,WAAW;AAEf,MAAI,OAAO;AACP,eAAW,MAAM,CAAC,KAAK;AACvB,gBAAY,CAAC,IAAI,MAAM,CAAC,KAAK;AAAA,EACjC;AAGA,QAAM,cAAc,YACf,IAAI,CAAC,YAAY,QAAQ,QAAQ,cAAc,EAAE,CAAC,EAClD,IAAI,CAAC,YAAY,QAAQ,QAAQ,QAAQ,GAAG,CAAC,EAC7C,OAAO,CAAC,YAAY,QAAQ,SAAS,CAAC,EACtC,KAAK,GAAG;AAEb,SAAO,GAAG,QAAQ,GAAG,WAAW;AACpC;AAlCgB;AAuCT,IAAM,gBAAgB,wBAAC,QAAwB;AAGlD,QAAM,YAAY,IAAI,IAAI,GAAG;AAC7B,QAAM,YAAY,UAAU,SAAS,MAAM,GAAG,EAAE,OAAO,OAAO;AAE9D,MAAI,UAAU,CAAC,MAAM,IAAI,aAAa;AAClC,cAAU,MAAM;AAAA,EACpB;AAEA,SAAO,mBAAmB,UAAU,KAAK,GAAG,CAAC;AACjD,GAX6B;AAoBtB,IAAM,mBAAmB,wBAAC;AAAA,EACS;AAAA,EACA,GAAG;AACP,MAAyB;AAC3D,QAAM,YAAY,QAAQ,MAAM,cAAa,oBAAI,KAAK,GAAE,YAAY;AAEpE,MAAI,QAAQ,SAAS;AACjB,WAAO,SAAS,OAAO,QAAQ,MAAM,EAAE,KAAK;AAAA,MACxC,SAAS;AAAA,MACT,QAAQ,QAAQ;AAAA,MAChB,SAAS,QAAQ,WAAW;AAAA,MAC5B,MAAM,QAAQ;AAAA,MACd,MAAM;AAAA,QACF,GAAG,QAAQ;AAAA,QACX;AAAA,MACJ;AAAA,IACJ,CAAC;AAAA,EACL;AAEA,SAAO,SAAS,OAAO,QAAQ,MAAM,EAAE,KAAK;AAAA,IACxC,SAAS;AAAA,IACT,QAAQ,QAAQ;AAAA,IAChB,SAAS,QAAQ,WAAW;AAAA,IAC5B,OAAO,QAAQ;AAAA,IACf,MAAM;AAAA,MACF,GAAG,QAAQ;AAAA,MACX;AAAA,IACJ;AAAA,EACJ,CAAC;AACL,GA7BgC;","names":[]}
|