backfarm 1.0.4 → 1.0.6

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.
Files changed (176) hide show
  1. package/dist/chunk-22GJTNKR.js +47 -0
  2. package/dist/chunk-22GJTNKR.js.map +1 -0
  3. package/dist/{chunk-XBJ3SJ26.js → chunk-2QNCQ5L5.js} +3 -3
  4. package/dist/chunk-2QNCQ5L5.js.map +1 -0
  5. package/dist/chunk-3DJ6GERS.js +17 -0
  6. package/dist/chunk-3DJ6GERS.js.map +1 -0
  7. package/dist/chunk-452DWS46.js +88 -0
  8. package/dist/chunk-452DWS46.js.map +1 -0
  9. package/dist/{chunk-UWIMSKL5.js → chunk-4L35JPDH.js} +2 -2
  10. package/dist/chunk-4L35JPDH.js.map +1 -0
  11. package/dist/{chunk-VFF4YFA3.js → chunk-5AJKFCEE.js} +3 -3
  12. package/dist/chunk-5AJKFCEE.js.map +1 -0
  13. package/dist/chunk-6BNQOIVA.js +34 -0
  14. package/dist/chunk-6BNQOIVA.js.map +1 -0
  15. package/dist/{chunk-P5XJG7OG.js → chunk-A7GR4LD2.js} +1 -1
  16. package/dist/chunk-A7GR4LD2.js.map +1 -0
  17. package/dist/chunk-EEQ2SXDE.js +32 -0
  18. package/dist/chunk-EEQ2SXDE.js.map +1 -0
  19. package/dist/chunk-EUWCMMGI.js +35 -0
  20. package/dist/chunk-EUWCMMGI.js.map +1 -0
  21. package/dist/chunk-HC4IDQP6.js +89 -0
  22. package/dist/chunk-HC4IDQP6.js.map +1 -0
  23. package/dist/{chunk-QVTKG7FD.js → chunk-HV3IQJH3.js} +3 -3
  24. package/dist/chunk-HV3IQJH3.js.map +1 -0
  25. package/dist/{chunk-X3R3RLXY.js → chunk-IZEPCXYK.js} +1 -1
  26. package/dist/chunk-IZEPCXYK.js.map +1 -0
  27. package/dist/{chunk-YTBSGKGF.js → chunk-J3P6W53K.js} +2 -2
  28. package/dist/chunk-J3P6W53K.js.map +1 -0
  29. package/dist/{chunk-EWQYVPOL.js → chunk-LE2SDA4O.js} +1 -1
  30. package/dist/chunk-LE2SDA4O.js.map +1 -0
  31. package/dist/chunk-M7PVDT2D.js +60 -0
  32. package/dist/chunk-M7PVDT2D.js.map +1 -0
  33. package/dist/chunk-O2ZDXQ2Z.js +44 -0
  34. package/dist/chunk-O2ZDXQ2Z.js.map +1 -0
  35. package/dist/{chunk-MNSQSU7T.js → chunk-O5ILFRFV.js} +2 -2
  36. package/dist/chunk-O5ILFRFV.js.map +1 -0
  37. package/dist/chunk-O76OK6Y7.js +40 -0
  38. package/dist/chunk-O76OK6Y7.js.map +1 -0
  39. package/dist/{chunk-W3W3X2OE.js → chunk-QW2GGDEG.js} +54 -19
  40. package/dist/chunk-QW2GGDEG.js.map +1 -0
  41. package/dist/chunk-RZ7XHAUV.js +74 -0
  42. package/dist/chunk-RZ7XHAUV.js.map +1 -0
  43. package/dist/{chunk-TP3K7DMH.js → chunk-U7BCM2WN.js} +2 -2
  44. package/dist/chunk-U7BCM2WN.js.map +1 -0
  45. package/dist/chunk-UPP2FW3G.js +336 -0
  46. package/dist/chunk-UPP2FW3G.js.map +1 -0
  47. package/dist/chunk-YA3MW2CJ.js +33 -0
  48. package/dist/chunk-YA3MW2CJ.js.map +1 -0
  49. package/dist/{chunk-SSFPGDA3.js → chunk-ZC33GE2U.js} +5 -5
  50. package/dist/chunk-ZC33GE2U.js.map +1 -0
  51. package/dist/{chunk-D7A4TEXY.js → chunk-ZC6ZFZ2J.js} +2 -2
  52. package/dist/chunk-ZC6ZFZ2J.js.map +1 -0
  53. package/dist/{chunk-ZMDJ45KH.js → chunk-ZGOMCU4T.js} +7 -7
  54. package/dist/chunk-ZGOMCU4T.js.map +1 -0
  55. package/dist/chunk-ZTTB4NMA.js +18 -0
  56. package/dist/chunk-ZTTB4NMA.js.map +1 -0
  57. package/dist/engine/cloudBucket/r2Storage.js +3 -3
  58. package/dist/engine/mondoDb/mongoDB.js +3 -3
  59. package/dist/engine/multer/multer_configs.js +2 -2
  60. package/dist/engine/server/server.d.ts +5 -3
  61. package/dist/engine/server/server.js +30 -9
  62. package/dist/engine/sql/mySql.d.ts +2 -2
  63. package/dist/engine/sql/mySql.js +3 -3
  64. package/dist/engine/sql/pgSql.js +3 -3
  65. package/dist/utility/libs/env.js +1 -1
  66. package/dist/utility/libs/index.d.ts +1772 -0
  67. package/dist/utility/libs/index.js +101 -0
  68. package/dist/utility/libs/interface.d.ts +5 -7
  69. package/dist/utility/libs/run-all.js +46 -0
  70. package/dist/utility/libs/run-all.js.map +1 -0
  71. package/dist/{chunk-LFRKRR7G.js → utility/libs/run-bucket.js} +4 -7
  72. package/dist/utility/libs/run-bucket.js.map +1 -0
  73. package/dist/utility/libs/run-node-server.js +35 -0
  74. package/dist/utility/libs/run-node-server.js.map +1 -0
  75. package/dist/utility/libs/types.d.ts +11 -31
  76. package/dist/utility/libs/types.js +1 -1
  77. package/dist/utility/libs/types.js.map +1 -1
  78. package/dist/utility/utilis/cloud_storage/deleteFile.js +7 -54
  79. package/dist/utility/utilis/cloud_storage/deleteFile.js.map +1 -1
  80. package/dist/utility/utilis/cloud_storage/deleteFiles.js +7 -83
  81. package/dist/utility/utilis/cloud_storage/deleteFiles.js.map +1 -1
  82. package/dist/utility/utilis/cloud_storage/downloadFile.js +8 -68
  83. package/dist/utility/utilis/cloud_storage/downloadFile.js.map +1 -1
  84. package/dist/utility/utilis/cloud_storage/downloadFiles.js +8 -82
  85. package/dist/utility/utilis/cloud_storage/downloadFiles.js.map +1 -1
  86. package/dist/utility/utilis/cloud_storage/uploadFile.js +6 -6
  87. package/dist/utility/utilis/cloud_storage/uploadFiles.d.ts +0 -64
  88. package/dist/utility/utilis/cloud_storage/uploadFiles.js +9 -43
  89. package/dist/utility/utilis/cloud_storage/uploadFiles.js.map +1 -1
  90. package/dist/utility/utilis/general/error_handler.js +1 -1
  91. package/dist/utility/utilis/general/file-operations.d.ts +7 -132
  92. package/dist/utility/utilis/general/file-operations.js +6 -4
  93. package/dist/utility/utilis/general/sqlDb.js.d.ts +0 -141
  94. package/dist/utility/utilis/general/sqlDb.js.js +2 -2
  95. package/dist/utility/utilis/general/uuids.d.ts +0 -43
  96. package/dist/utility/utilis/general/uuids.js +1 -1
  97. package/dist/utility/utilis/general/web.d.ts +2 -238
  98. package/dist/utility/utilis/general/web.js +4 -4
  99. package/dist/utility/utilis/mongoDb/buldWrite.d.ts +0 -44
  100. package/dist/utility/utilis/mongoDb/buldWrite.js +6 -28
  101. package/dist/utility/utilis/mongoDb/buldWrite.js.map +1 -1
  102. package/dist/utility/utilis/mongoDb/deleteDocument.d.ts +0 -45
  103. package/dist/utility/utilis/mongoDb/deleteDocument.js +6 -30
  104. package/dist/utility/utilis/mongoDb/deleteDocument.js.map +1 -1
  105. package/dist/utility/utilis/mongoDb/insertField.d.ts +2 -33
  106. package/dist/utility/utilis/mongoDb/insertField.js +7 -30
  107. package/dist/utility/utilis/mongoDb/insertField.js.map +1 -1
  108. package/dist/utility/utilis/mongoDb/insertFields.d.ts +2 -41
  109. package/dist/utility/utilis/mongoDb/insertFields.js +7 -32
  110. package/dist/utility/utilis/mongoDb/insertFields.js.map +1 -1
  111. package/dist/utility/utilis/mongoDb/updateFiled.d.ts +0 -56
  112. package/dist/utility/utilis/mongoDb/updateFiled.js +6 -36
  113. package/dist/utility/utilis/mongoDb/updateFiled.js.map +1 -1
  114. package/dist/utility/utilis/multer/upload_batch.js +5 -12
  115. package/dist/utility/utilis/multer/upload_batch.js.map +1 -1
  116. package/dist/utility/utilis/multer/upload_single.d.ts +41 -0
  117. package/dist/utility/utilis/multer/upload_single.js +5 -11
  118. package/dist/utility/utilis/multer/upload_single.js.map +1 -1
  119. package/dist/utility/utilis/postgres/executeQuery.d.ts +2 -205
  120. package/dist/utility/utilis/postgres/executeQuery.js +11 -41
  121. package/dist/utility/utilis/postgres/executeQuery.js.map +1 -1
  122. package/dist/utility/utilis/postgres/subSqlfiles/executeMySqlQuery.js +4 -4
  123. package/dist/utility/utilis/postgres/subSqlfiles/executePgQuery.js +4 -4
  124. package/dist/utility/utilis/server/app.js +30 -12
  125. package/dist/utility/utilis/server/app.js.map +1 -1
  126. package/dist/utility/utilis/server/server.d.ts +2 -2
  127. package/dist/utility/utilis/server/server.js +30 -20
  128. package/dist/utility/utilis/server/server.js.map +1 -1
  129. package/package.json +55 -56
  130. package/dist/chunk-5A3RVJNT.js +0 -19
  131. package/dist/chunk-5A3RVJNT.js.map +0 -1
  132. package/dist/chunk-D7A4TEXY.js.map +0 -1
  133. package/dist/chunk-EWQYVPOL.js.map +0 -1
  134. package/dist/chunk-ICFMWIIJ.js +0 -53
  135. package/dist/chunk-ICFMWIIJ.js.map +0 -1
  136. package/dist/chunk-LFRKRR7G.js.map +0 -1
  137. package/dist/chunk-MNSQSU7T.js.map +0 -1
  138. package/dist/chunk-NIOLLLJJ.js +0 -44
  139. package/dist/chunk-NIOLLLJJ.js.map +0 -1
  140. package/dist/chunk-P5XJG7OG.js.map +0 -1
  141. package/dist/chunk-QVTKG7FD.js.map +0 -1
  142. package/dist/chunk-SSFPGDA3.js.map +0 -1
  143. package/dist/chunk-TP3K7DMH.js.map +0 -1
  144. package/dist/chunk-UWIMSKL5.js.map +0 -1
  145. package/dist/chunk-VFF4YFA3.js.map +0 -1
  146. package/dist/chunk-W3W3X2OE.js.map +0 -1
  147. package/dist/chunk-X3R3RLXY.js.map +0 -1
  148. package/dist/chunk-XBJ3SJ26.js.map +0 -1
  149. package/dist/chunk-YTBSGKGF.js.map +0 -1
  150. package/dist/chunk-YWFCWT6R.js +0 -23
  151. package/dist/chunk-YWFCWT6R.js.map +0 -1
  152. package/dist/chunk-ZMDJ45KH.js.map +0 -1
  153. package/dist/engine/script/run-all.d.ts +0 -3
  154. package/dist/engine/script/run-all.js +0 -8
  155. package/dist/engine/script/run-bucket.d.ts +0 -3
  156. package/dist/engine/script/run-bucket.js +0 -8
  157. package/dist/engine/script/run-bucket.js.map +0 -1
  158. package/dist/engine/script/run-node-server.d.ts +0 -3
  159. package/dist/engine/script/run-node-server.js +0 -8
  160. package/dist/engine/script/run-node-server.js.map +0 -1
  161. package/dist/engine/server/app.d.ts +0 -5
  162. package/dist/engine/server/app.js +0 -10
  163. package/dist/engine/server/app.js.map +0 -1
  164. package/dist/utility/script/run-all.js +0 -8
  165. package/dist/utility/script/run-all.js.map +0 -1
  166. package/dist/utility/script/run-bucket.js +0 -8
  167. package/dist/utility/script/run-bucket.js.map +0 -1
  168. package/dist/utility/script/run-node-server.js +0 -8
  169. package/dist/utility/script/run-node-server.js.map +0 -1
  170. package/dist/utility/utilis/cloud_storage/s3Client.d.ts +0 -5
  171. package/dist/utility/utilis/cloud_storage/s3Client.js +0 -17
  172. package/dist/utility/utilis/cloud_storage/s3Client.js.map +0 -1
  173. /package/dist/{engine/script/run-all.js.map → utility/libs/index.js.map} +0 -0
  174. /package/dist/utility/{script → libs}/run-all.d.ts +0 -0
  175. /package/dist/utility/{script → libs}/run-bucket.d.ts +0 -0
  176. /package/dist/utility/{script → libs}/run-node-server.d.ts +0 -0
@@ -0,0 +1,47 @@
1
+ import {
2
+ executeMySqlQuery
3
+ } from "./chunk-U7BCM2WN.js";
4
+ import {
5
+ executePgSqlQuery
6
+ } from "./chunk-ZC6ZFZ2J.js";
7
+ import {
8
+ isMySQL,
9
+ isPostgreSQL
10
+ } from "./chunk-O5ILFRFV.js";
11
+ import {
12
+ getMySqlPool
13
+ } from "./chunk-HV3IQJH3.js";
14
+ import {
15
+ getPgSqlPool
16
+ } from "./chunk-5AJKFCEE.js";
17
+ import {
18
+ ENV
19
+ } from "./chunk-LE2SDA4O.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-22GJTNKR.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/utility/utilis/postgres/executeQuery.ts"],"sourcesContent":["import type {QueryItems} from \"../../libs/interface.js\";\nimport {isMySQL, isPostgreSQL} from \"../general/sqlDb.js.js\";\nimport {ENV} from \"../../libs/env.js\";\nimport {executePgSqlQuery} from \"./subSqlfiles/executePgQuery.js\";\nimport {executeMySqlQuery} from \"./subSqlfiles/executeMySqlQuery.js\";\nimport {getMySqlPool} from \"../../../engine/sql/mySql.js\";\nimport {getPgSqlPool} from \"../../../engine/sql/pgSql.js\";\n\n\n\n\n\nexport const executeQuery = async (query: QueryItems) => {\n\n if (isPostgreSQL(ENV.SQL_DB_URL)) {\n return await executePgSqlQuery(query)\n }\n else if (isMySQL(ENV.SQL_DB_URL)) {\n return await executeMySqlQuery(query)\n }\n else {\n return new Error(`Unable to execute query. Please check the SQL_DB_URL in .env file and the db.sql file.`);\n }\n\n}\n\n\n\n\n\nexport const getPool = async () => {\n if (isPostgreSQL(ENV.SQL_DB_URL)) {\n return getPgSqlPool()\n }\n if (isMySQL(ENV.SQL_DB_URL)) {\n return getMySqlPool()\n }\n}\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":[]}
@@ -1,9 +1,9 @@
1
1
  import {
2
2
  fileExistsAsync
3
- } from "./chunk-W3W3X2OE.js";
3
+ } from "./chunk-QW2GGDEG.js";
4
4
  import {
5
5
  ENV
6
- } from "./chunk-EWQYVPOL.js";
6
+ } from "./chunk-LE2SDA4O.js";
7
7
  import {
8
8
  __name
9
9
  } from "./chunk-7QVYU63E.js";
@@ -52,4 +52,4 @@ export {
52
52
  connectToMongo,
53
53
  getMongoServer
54
54
  };
55
- //# sourceMappingURL=chunk-XBJ3SJ26.js.map
55
+ //# sourceMappingURL=chunk-2QNCQ5L5.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/engine/mondoDb/mongoDB.ts"],"sourcesContent":["import { ENV } from \"../../utility/libs/env.js\";\nimport { MongoClient, type MongoClientOptions } from 'mongodb';\nimport path from \"node:path\"\nimport {pathToFileURL} from \"node:url\";\nimport {fileExistsAsync} from \"../../utility/utilis/general/file-operations.js\";\n\n\nconst uri = ENV.MONGO_SERVER_URL;\nlet client: MongoClient | null = null;\n\n\nasync function connectToMongo(): Promise<MongoClient|undefined> {\n if (!uri) return;\n try {\n if (!client) {\n\n let options: MongoClientOptions;\n\n try {\n const mongoConfigFileTs = path.join(process.cwd(), \"src/config/mongo.config.ts\");\n const mongoConfigFileJs = path.join(process.cwd(), \"src/config/mongo.config.js\");\n\n const { MONGO_CLIENT_OPTIONS } = await import(\n pathToFileURL(\n (await fileExistsAsync(mongoConfigFileJs)) ? mongoConfigFileJs : mongoConfigFileTs\n ).href\n );\n options = MONGO_CLIENT_OPTIONS || {};\n }\n catch (error) {\n options = {}\n }\n\n\n client = new MongoClient(uri, options);\n await client.connect();\n console.log(\"✅ Connected to MongoDB Cluster\");\n\n }\n return client;\n } catch (error) {\n console.error(\"❌ MongoDB Connection Error:\", error);\n throw error;\n }\n}\n\n\n\nfunction getMongoServer(): MongoClient {\n if (!client) {\n throw new Error(\"Call connectToMongo first!\");\n }\n return client;\n}\n\n\n\nexport { connectToMongo, getMongoServer };\n"],"mappings":";;;;;;;;;;;AACA,SAAS,mBAA4C;AACrD,OAAO,UAAU;AACjB,SAAQ,qBAAoB;AAI5B,IAAM,MAAM,IAAI;AAChB,IAAI,SAA6B;AAGjC,eAAe,iBAAiD;AAC9D,MAAI,CAAC,IAAK;AACV,MAAI;AACF,QAAI,CAAC,QAAQ;AAEX,UAAI;AAEJ,UAAI;AACF,cAAM,oBAAoB,KAAK,KAAK,QAAQ,IAAI,GAAG,4BAA4B;AAC/E,cAAM,oBAAoB,KAAK,KAAK,QAAQ,IAAI,GAAG,4BAA4B;AAE/E,cAAM,EAAE,qBAAqB,IAAI,MAAM,OACnC;AAAA,UACK,MAAM,gBAAgB,iBAAiB,IAAK,oBAAoB;AAAA,QACrE,EAAE;AAEN,kBAAU,wBAAwB,CAAC;AAAA,MACrC,SACO,OAAO;AACZ,kBAAU,CAAC;AAAA,MACb;AAGA,eAAS,IAAI,YAAY,KAAK,OAAO;AACrC,YAAM,OAAO,QAAQ;AACrB,cAAQ,IAAI,qCAAgC;AAAA,IAE9C;AACA,WAAO;AAAA,EACT,SAAS,OAAO;AACd,YAAQ,MAAM,oCAA+B,KAAK;AAClD,UAAM;AAAA,EACR;AACF;AAjCe;AAqCf,SAAS,iBAA8B;AACrC,MAAI,CAAC,QAAQ;AACX,UAAM,IAAI,MAAM,4BAA4B;AAAA,EAC9C;AACA,SAAO;AACT;AALS;","names":[]}
@@ -0,0 +1,17 @@
1
+ import {
2
+ multerInstance
3
+ } from "./chunk-4L35JPDH.js";
4
+ import {
5
+ ENV
6
+ } from "./chunk-LE2SDA4O.js";
7
+ import {
8
+ __name
9
+ } from "./chunk-7QVYU63E.js";
10
+
11
+ // src/utility/utilis/multer/upload_single.ts
12
+ var upload_single = /* @__PURE__ */ __name((fieldName = ENV.FILE) => multerInstance.single(fieldName), "upload_single");
13
+
14
+ export {
15
+ upload_single
16
+ };
17
+ //# sourceMappingURL=chunk-3DJ6GERS.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/utility/utilis/multer/upload_single.ts"],"sourcesContent":["import {multerInstance} from \"../../../engine/multer/multer_configs.js\";\nimport {ENV} from \"../../libs/env.js\";\n\n\n/**\n * Creates Multer middleware for handling a single file upload.\n *\n * The middleware expects one uploaded file from the specified\n * `multipart/form-data` field and makes the uploaded file available through\n * `req.file`.\n *\n * If no field name is provided, `ENV.FILE` is used as the default field name.\n *\n * @param fieldName - Name of the multipart/form-data field containing the\n * uploaded file.\n *\n * @returns Multer middleware configured to process a single uploaded file.\n *\n * @example\n * // Use the default field name.\n * router.post(\n * '/upload',\n * upload_single(),\n * uploadSingleFileApi\n * );\n *\n * @example\n * // Accept a single file from the \"file\" field.\n * router.post(\n * '/upload',\n * upload_single('file'),\n * uploadSingleFileApi\n * );\n *\n * @example\n * // Use a custom field name.\n * router.post(\n * '/profile-picture',\n * upload_single('profilePicture'),\n * uploadSingleFileApi\n * );\n *\n * // The uploaded file will be available as:\n * // req.file\n */\nexport const upload_single = (fieldName: string = ENV.FILE) =>\n multerInstance.single(fieldName);\n"],"mappings":";;;;;;;;;;;AA6CO,IAAM,gBAAgB,wBAAC,YAAoB,IAAI,SAClD,eAAe,OAAO,SAAS,GADN;","names":[]}
@@ -0,0 +1,88 @@
1
+ import {
2
+ generateUniqueValue
3
+ } from "./chunk-IZEPCXYK.js";
4
+ import {
5
+ getKeyFromUrl
6
+ } from "./chunk-ZC33GE2U.js";
7
+ import {
8
+ s3Client
9
+ } from "./chunk-J3P6W53K.js";
10
+ import {
11
+ getFileExtension,
12
+ getInAppBucketDownloadPath
13
+ } from "./chunk-QW2GGDEG.js";
14
+ import {
15
+ ENV
16
+ } from "./chunk-LE2SDA4O.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-452DWS46.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\";\nimport {getKeyFromUrl} from \"../general/web.js\";\nimport {GetObjectCommand} from \"@aws-sdk/client-s3\";\nimport {ENV} from \"../../libs/env.js\";\nimport {getInAppBucketDownloadPath, getFileExtension} from \"../general/file-operations.js\";\nimport path from \"node:path\";\nimport fsPromises from \"fs/promises\";\nimport * as fs from \"node:fs\";\nimport {pipeline} from \"stream/promises\";\nimport {generateUniqueValue} from \"../general/uuids.js\";\nimport {s3Client} from \"../../../engine/cloudBucket/r2Storage.js\";\n\nexport const downloadFiles = async ({\n files,\n globalPath,\n }: DownloadFilesParams): Promise<DownloadedFile[]> => {\n // 1. Validate path conflict rule upfront\n const hasIndividualOutputPath = files.some(\n (file) => file.outputPath && file.outputPath.length > 0\n );\n\n if (globalPath && hasIndividualOutputPath) {\n throw new Error(\n \"Conflict: Cannot specify both 'globalPath' and individual 'outputPath' on files.\"\n );\n }\n\n // 2. Process all files independently in parallel\n const downloadPromises = files.map(async (file): Promise<DownloadedFile> => {\n const { url, outputPath } = file;\n\n try {\n const key = getKeyFromUrl(url);\n\n const command = new GetObjectCommand({\n Bucket: ENV.BUCKET_NAME,\n Key: key,\n });\n\n const response = await s3Client.send(command);\n\n if (!response.Body) {\n return {\n status: false,\n url: url,\n error: new Error(`Empty response body received for key: ${key}`),\n };\n }\n\n const fileExtension = getFileExtension(url);\n const fileName = generateUniqueValue(16);\n const finalFileName = `${fileName}.${fileExtension}`;\n\n // Resolve target path using either file's outputPath or globalPath\n const resolvedPathSegments = outputPath || (globalPath ? [globalPath] : []);\n const targetPath = getInAppBucketDownloadPath({\n segments: resolvedPathSegments,\n fileName: finalFileName,\n });\n\n // Ensure output folder structure exists\n const dir = path.dirname(targetPath);\n if (!fs.existsSync(dir)) {\n await fsPromises.mkdir(dir, { recursive: true });\n }\n\n // Stream response body directly to file\n const stream = response.Body as NodeJS.ReadableStream;\n await pipeline(stream, fs.createWriteStream(targetPath));\n\n return {\n status: true,\n url: url,\n path: targetPath,\n };\n } catch (error) {\n return {\n status: false,\n url: url,\n error: error instanceof Error ? error : new Error(String(error)),\n };\n }\n });\n\n return Promise.all(downloadPromises);\n};\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":[]}
@@ -1,6 +1,6 @@
1
1
  import {
2
2
  ENV
3
- } from "./chunk-EWQYVPOL.js";
3
+ } from "./chunk-LE2SDA4O.js";
4
4
  import {
5
5
  __name
6
6
  } from "./chunk-7QVYU63E.js";
@@ -32,4 +32,4 @@ export {
32
32
  MAX_BATCH_FILES,
33
33
  multerInstance
34
34
  };
35
- //# sourceMappingURL=chunk-UWIMSKL5.js.map
35
+ //# sourceMappingURL=chunk-4L35JPDH.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/engine/multer/multer_configs.ts"],"sourcesContent":["import {type FileFilterCallback } from 'multer';\nimport type {Request} from 'express';\nimport {ENV} from \"../../utility/libs/env.js\";\nimport multer from \"multer\";\n// 1. Production Limits (Fallback to defaults if env variables aren't set)\n\nconst MAX_FILE_SIZE = ENV.MAX_FILE_SIZE_IN_MB\n ? parseInt(ENV.MAX_FILE_SIZE_IN_MB, 10) * 1024 * 1024 // ✅ 10 MB = 10,485,760 Bytes\n : 50 * 1024 * 1024; // 50 MB\n\n\n\n\nexport const MAX_BATCH_FILES = ENV.MAX_BATCH_FILES\n ? parseInt(ENV.MAX_BATCH_FILES, 10)\n : 10; // Max 10 files per request\n\n\n\n// 2. Optional: Production File Type Filter (Prevent malicious executable uploads)\nconst fileFilter = (\n req: Request,\n file: Express.Multer.File,\n cb: FileFilterCallback\n) => {\n // Exclude executable and script extensions\n const forbiddenExtensions = /\\.(exe|sh|bat|cmd|dll|dmg|so|jar|php|py|js)$/i;\n\n if (file.originalname.match(forbiddenExtensions)) {\n return cb(new Error(`File type not allowed: ${file.originalname}`));\n }\n\n cb(null, true);\n};\n\n\n\n\n// 3. Main Multer Instance\nexport const multerInstance = multer({\n storage: multer.memoryStorage(),\n limits: {\n fileSize: MAX_FILE_SIZE,\n files: MAX_BATCH_FILES,\n fieldSize: parseInt(ENV.MAX_BATCH_FILES, 2) * 1024 * 1024, // 2MB max for standard form fields\n },\n fileFilter: fileFilter,\n});\n\n\n\n\n// 4. Pre-configured Helper Middlewares for Export\n\n\n\n\n\n\n"],"mappings":";;;;;;;;AAAA,OAAuC;AAGvC,OAAO,YAAY;AAGnB,IAAM,gBAAgB,IAAI,sBACpB,SAAS,IAAI,qBAAqB,EAAE,IAAI,OAAO,OAC/C,KAAK,OAAO;AAKX,IAAM,kBAAkB,IAAI,kBAC7B,SAAS,IAAI,iBAAiB,EAAE,IAChC;AAKN,IAAM,aAAa,wBACf,KACA,MACA,OACC;AAED,QAAM,sBAAsB;AAE5B,MAAI,KAAK,aAAa,MAAM,mBAAmB,GAAG;AAC9C,WAAO,GAAG,IAAI,MAAM,0BAA0B,KAAK,YAAY,EAAE,CAAC;AAAA,EACtE;AAEA,KAAG,MAAM,IAAI;AACjB,GAbmB;AAmBZ,IAAM,iBAAiB,OAAO;AAAA,EACjC,SAAS,OAAO,cAAc;AAAA,EAC9B,QAAQ;AAAA,IACJ,UAAU;AAAA,IACV,OAAO;AAAA,IACP,WAAW,SAAS,IAAI,iBAAiB,CAAC,IAAI,OAAO;AAAA;AAAA,EACzD;AAAA,EACA;AACJ,CAAC;","names":[]}
@@ -1,9 +1,9 @@
1
1
  import {
2
2
  fileExistsAsync
3
- } from "./chunk-W3W3X2OE.js";
3
+ } from "./chunk-QW2GGDEG.js";
4
4
  import {
5
5
  ENV
6
- } from "./chunk-EWQYVPOL.js";
6
+ } from "./chunk-LE2SDA4O.js";
7
7
  import {
8
8
  __name
9
9
  } from "./chunk-7QVYU63E.js";
@@ -92,4 +92,4 @@ export {
92
92
  runPgSqlScript,
93
93
  closePgPool
94
94
  };
95
- //# sourceMappingURL=chunk-VFF4YFA3.js.map
95
+ //# sourceMappingURL=chunk-5AJKFCEE.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/engine/sql/pgSql.ts"],"sourcesContent":["// pgSql.ts\nimport pg from 'pg';\nimport dotenv from 'dotenv';\nimport {ENV} from \"../../utility/libs/env.js\";\nimport fs from 'fs/promises';\nimport path from \"node:path\";\nimport {pathToFileURL} from \"node:url\";\nimport {fileExistsAsync} from \"../../utility/utilis/general/file-operations.js\";\n\ndotenv.config();\n\nconst { Pool } = pg;\n\nlet pool: pg.Pool | null = null;\n\nexport async function getPgSqlPool(): Promise<pg.Pool> {\n if (!pool) {\n\n let options: pg.PoolConfig;\n\n try {\n const mySqlConfigFileTs = path.join(process.cwd(), \"src/config/pgSql.config.ts\");\n const mySqlConfigFileJs = path.join(process.cwd(), \"src/config/pgSql.config.js\");\n const {PGSQL_POOL_OPTIONS} = await import(pathToFileURL(await fileExistsAsync(mySqlConfigFileJs) ? mySqlConfigFileJs : mySqlConfigFileTs).href);\n options = PGSQL_POOL_OPTIONS || {};\n options.connectionString = ENV.SQL_DB_URL\n }\n catch (error) {\n options = {};\n }\n\n pool = new Pool(options);\n\n // Test connection on startup\n pool.connect()\n .then(client => {\n console.log('✅ PostgreSQL Database connected successfully');\n client.release();\n })\n .catch(err => {\n console.error('❌ Failed to connect to PostgreSQL:', err.message);\n process.exit(1);\n });\n\n pool.on('connect', () => {\n console.log('🔌 New PostgreSQL connection established');\n });\n\n pool.on('error', (err: Error) => {\n console.error('❌ Unexpected PostgreSQL error:', err.message);\n });\n }\n\n return pool;\n}\n\nexport const runPgSqlScript = async () => {\n try {\n const fileQuery = await fs.readFile('db.sql', 'utf8');\n\n // Split queries for multiple statements\n const queries = fileQuery\n .split(';')\n .map(q => q.trim())\n .filter(q => q.length > 0);\n\n const client = await (await getPgSqlPool()).connect();\n\n try {\n // Run all queries in a transaction\n await client.query('BEGIN');\n\n for (const query of queries) {\n await client.query(query);\n }\n\n await client.query('COMMIT');\n console.log(\"✅ Database schema created successfully\");\n } catch (err) {\n await client.query('ROLLBACK');\n throw err;\n } finally {\n client.release();\n }\n } catch (err) {\n console.error('❌ Failed to execute SQL script:', err);\n throw err;\n }\n};\n\n// Graceful shutdown\nexport const closePgPool = async () => {\n if (pool) {\n console.log('🔄 Closing PostgreSQL pool...');\n await pool.end();\n pool = null;\n console.log('✅ PostgreSQL pool closed');\n }\n};\n\n// Handle process termination\nprocess.on('SIGINT', async () => {\n await closePgPool();\n process.exit(0);\n});\n\nprocess.on('SIGTERM', async () => {\n await closePgPool();\n process.exit(0);\n});\n"],"mappings":";;;;;;;;;;;AACA,OAAO,QAAQ;AACf,OAAO,YAAY;AAEnB,OAAO,QAAQ;AACf,OAAO,UAAU;AACjB,SAAQ,qBAAoB;AAG5B,OAAO,OAAO;AAEd,IAAM,EAAE,KAAK,IAAI;AAEjB,IAAI,OAAuB;AAE3B,eAAsB,eAAiC;AACnD,MAAI,CAAC,MAAM;AAEP,QAAI;AAEJ,QAAI;AACA,YAAM,oBAAoB,KAAK,KAAK,QAAQ,IAAI,GAAG,4BAA4B;AAC/E,YAAM,oBAAoB,KAAK,KAAK,QAAQ,IAAI,GAAG,4BAA4B;AAC/E,YAAM,EAAC,mBAAkB,IAAI,MAAM,OAAO,cAAc,MAAM,gBAAgB,iBAAiB,IAAI,oBAAoB,iBAAiB,EAAE;AAC1I,gBAAU,sBAAsB,CAAC;AACjC,cAAQ,mBAAmB,IAAI;AAAA,IACnC,SACO,OAAO;AACV,gBAAU,CAAC;AAAA,IACf;AAEA,WAAO,IAAI,KAAK,OAAO;AAGvB,SAAK,QAAQ,EACR,KAAK,YAAU;AACZ,cAAQ,IAAI,mDAA8C;AAC1D,aAAO,QAAQ;AAAA,IACnB,CAAC,EACA,MAAM,SAAO;AACV,cAAQ,MAAM,2CAAsC,IAAI,OAAO;AAC/D,cAAQ,KAAK,CAAC;AAAA,IAClB,CAAC;AAEL,SAAK,GAAG,WAAW,MAAM;AACrB,cAAQ,IAAI,iDAA0C;AAAA,IAC1D,CAAC;AAED,SAAK,GAAG,SAAS,CAAC,QAAe;AAC7B,cAAQ,MAAM,uCAAkC,IAAI,OAAO;AAAA,IAC/D,CAAC;AAAA,EACL;AAEA,SAAO;AACX;AAvCsB;AAyCf,IAAM,iBAAiB,mCAAY;AACtC,MAAI;AACA,UAAM,YAAY,MAAM,GAAG,SAAS,UAAU,MAAM;AAGpD,UAAM,UAAU,UACX,MAAM,GAAG,EACT,IAAI,OAAK,EAAE,KAAK,CAAC,EACjB,OAAO,OAAK,EAAE,SAAS,CAAC;AAE7B,UAAM,SAAS,OAAO,MAAM,aAAa,GAAG,QAAQ;AAEpD,QAAI;AAEA,YAAM,OAAO,MAAM,OAAO;AAE1B,iBAAW,SAAS,SAAS;AACzB,cAAM,OAAO,MAAM,KAAK;AAAA,MAC5B;AAEA,YAAM,OAAO,MAAM,QAAQ;AAC3B,cAAQ,IAAI,6CAAwC;AAAA,IACxD,SAAS,KAAK;AACV,YAAM,OAAO,MAAM,UAAU;AAC7B,YAAM;AAAA,IACV,UAAE;AACE,aAAO,QAAQ;AAAA,IACnB;AAAA,EACJ,SAAS,KAAK;AACV,YAAQ,MAAM,wCAAmC,GAAG;AACpD,UAAM;AAAA,EACV;AACJ,GAhC8B;AAmCvB,IAAM,cAAc,mCAAY;AACnC,MAAI,MAAM;AACN,YAAQ,IAAI,sCAA+B;AAC3C,UAAM,KAAK,IAAI;AACf,WAAO;AACP,YAAQ,IAAI,+BAA0B;AAAA,EAC1C;AACJ,GAP2B;AAU3B,QAAQ,GAAG,UAAU,YAAY;AAC7B,QAAM,YAAY;AAClB,UAAQ,KAAK,CAAC;AAClB,CAAC;AAED,QAAQ,GAAG,WAAW,YAAY;AAC9B,QAAM,YAAY;AAClB,UAAQ,KAAK,CAAC;AAClB,CAAC;","names":[]}
@@ -0,0 +1,34 @@
1
+ import {
2
+ getMongoServer
3
+ } from "./chunk-2QNCQ5L5.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-6BNQOIVA.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/utility/utilis/mongoDb/deleteDocument.ts"],"sourcesContent":["import { getMongoServer } from \"../../../engine/mondoDb/mongoDB.js\";\nimport type {CustomDeleteResult} from \"../../libs/types.js\";\nimport type {DeleteDocuments} from \"../../libs/interface.js\";\n\n\n\n\n\n\n\nexport const mongoDeleteDocument = async (\n params: DeleteDocuments\n): Promise<CustomDeleteResult> => {\n\n\n const { dbName, collection, query, deleteMany = false, options } = params;\n\n try {\n const col = getMongoServer().db(dbName).collection(collection);\n\n const result = deleteMany\n ? await col.deleteMany(query, options)\n : await col.deleteOne(query, options);\n\n return {\n status: true,\n result,\n deletedCount: result.deletedCount,\n error: null,\n };\n } catch (err) {\n const error = err instanceof Error ? err : new Error(String(err));\n\n return {\n status: false,\n result: null,\n deletedCount: 0,\n error,\n };\n }\n};\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":[]}
@@ -68,4 +68,4 @@ __name(handleError, "handleError");
68
68
  export {
69
69
  handleError
70
70
  };
71
- //# sourceMappingURL=chunk-P5XJG7OG.js.map
71
+ //# sourceMappingURL=chunk-A7GR4LD2.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/utility/utilis/general/error_handler.ts"],"sourcesContent":["import type {CustomErrorTemplate} from \"../../libs/interface.js\";\n\nfunction normalizeError(err: unknown): CustomErrorTemplate {\n const timestamp = new Date().toISOString();\n\n if (err instanceof Error) {\n return {\n timestamp,\n type: err.name || 'Error',\n message: err.message || 'An unknown error occurred.',\n ...(err.stack !== undefined && { stack: err.stack }),\n rawError: err,\n };\n }\n\n if (typeof err === 'string') {\n return {\n timestamp,\n type: 'StringError',\n message: err,\n rawError: err,\n };\n }\n\n if (typeof err === 'object' && err !== null) {\n return {\n timestamp,\n type: 'ObjectError',\n message: JSON.stringify(err),\n rawError: err,\n };\n }\n\n return {\n timestamp,\n type: 'UnknownError',\n message: String(err),\n rawError: err,\n };\n}\n\n/**\n * Normalizes and logs an error with optional contextual information.\n *\n * Formats the error for both terminal and browser environments, displaying\n * its type, message, timestamp, context, stack trace, and raw error object.\n * The normalized error is returned after being logged.\n *\n * @param err - The unknown error value to normalize and handle.\n * @param context - Optional context describing where the error occurred.\n * @returns The normalized error as a `CustomErrorTemplate`.\n *\n * @example\n * const error = handleError(error, 'File Upload');\n * // Logs the normalized error and returns a CustomErrorTemplate.\n *\n * @example\n * try {\n * await upload_file(file);\n * } catch (error) {\n * handleError(error, 'MinIO Upload');\n * }\n */\nexport function handleError(\n err: unknown,\n context?: string\n): CustomErrorTemplate {\n const normalized = normalizeError(err);\n const contextLabel = context ? ` [${context.toUpperCase()}]` : '';\n\n // Terminal/Browser styling rules\n const titleStyle = 'color: #ff4d4f; font-weight: bold; font-size: 12px;';\n const labelStyle = 'color: #999; font-weight: normal;';\n\n console.groupCollapsed(\n `%c🚨 ERROR${contextLabel}: ${normalized.type} — ${normalized.message}`,\n titleStyle\n );\n\n console.log(`%cTimestamp:%c ${normalized.timestamp}`, labelStyle, 'color: inherit;');\n\n if (context) {\n console.log(`%cContext:%c ${context}`, labelStyle, 'color: inherit;');\n }\n\n console.log(`%cMessage:%c ${normalized.message}`, labelStyle, 'color: #ff7875;');\n\n if (normalized.stack) {\n console.group('Stack Trace');\n console.log(normalized.stack);\n console.groupEnd();\n }\n\n console.group('Raw Error Object');\n console.dir(normalized.rawError);\n console.groupEnd();\n\n console.groupEnd();\n\n return normalized;\n}\n"],"mappings":";;;;;AAEA,SAAS,eAAe,KAAmC;AACvD,QAAM,aAAY,oBAAI,KAAK,GAAE,YAAY;AAEzC,MAAI,eAAe,OAAO;AACtB,WAAO;AAAA,MACH;AAAA,MACA,MAAM,IAAI,QAAQ;AAAA,MAClB,SAAS,IAAI,WAAW;AAAA,MACxB,GAAI,IAAI,UAAU,UAAa,EAAE,OAAO,IAAI,MAAM;AAAA,MAClD,UAAU;AAAA,IACd;AAAA,EACJ;AAEA,MAAI,OAAO,QAAQ,UAAU;AACzB,WAAO;AAAA,MACH;AAAA,MACA,MAAM;AAAA,MACN,SAAS;AAAA,MACT,UAAU;AAAA,IACd;AAAA,EACJ;AAEA,MAAI,OAAO,QAAQ,YAAY,QAAQ,MAAM;AACzC,WAAO;AAAA,MACH;AAAA,MACA,MAAM;AAAA,MACN,SAAS,KAAK,UAAU,GAAG;AAAA,MAC3B,UAAU;AAAA,IACd;AAAA,EACJ;AAEA,SAAO;AAAA,IACH;AAAA,IACA,MAAM;AAAA,IACN,SAAS,OAAO,GAAG;AAAA,IACnB,UAAU;AAAA,EACd;AACJ;AArCS;AA6DF,SAAS,YACZ,KACA,SACmB;AACnB,QAAM,aAAa,eAAe,GAAG;AACrC,QAAM,eAAe,UAAU,KAAK,QAAQ,YAAY,CAAC,MAAM;AAG/D,QAAM,aAAa;AACnB,QAAM,aAAa;AAEnB,UAAQ;AAAA,IACJ,oBAAa,YAAY,KAAK,WAAW,IAAI,WAAM,WAAW,OAAO;AAAA,IACrE;AAAA,EACJ;AAEA,UAAQ,IAAI,kBAAkB,WAAW,SAAS,IAAI,YAAY,iBAAiB;AAEnF,MAAI,SAAS;AACT,YAAQ,IAAI,gBAAgB,OAAO,IAAI,YAAY,iBAAiB;AAAA,EACxE;AAEA,UAAQ,IAAI,gBAAgB,WAAW,OAAO,IAAI,YAAY,iBAAiB;AAE/E,MAAI,WAAW,OAAO;AAClB,YAAQ,MAAM,aAAa;AAC3B,YAAQ,IAAI,WAAW,KAAK;AAC5B,YAAQ,SAAS;AAAA,EACrB;AAEA,UAAQ,MAAM,kBAAkB;AAChC,UAAQ,IAAI,WAAW,QAAQ;AAC/B,UAAQ,SAAS;AAEjB,UAAQ,SAAS;AAEjB,SAAO;AACX;AArCgB;","names":[]}
@@ -0,0 +1,32 @@
1
+ import {
2
+ getMongoServer
3
+ } from "./chunk-2QNCQ5L5.js";
4
+ import {
5
+ __name
6
+ } from "./chunk-7QVYU63E.js";
7
+
8
+ // src/utility/utilis/mongoDb/buldWrite.ts
9
+ var mongoBulkWrite = /* @__PURE__ */ __name(async (params) => {
10
+ const { dbName, collectionName, writable, options } = params;
11
+ try {
12
+ const col = getMongoServer().db(dbName).collection(collectionName);
13
+ const result = await col.bulkWrite(writable, options);
14
+ return {
15
+ status: true,
16
+ result,
17
+ error: null
18
+ };
19
+ } catch (err) {
20
+ const error = err instanceof Error ? err : new Error(String(err));
21
+ return {
22
+ status: false,
23
+ result: null,
24
+ error
25
+ };
26
+ }
27
+ }, "mongoBulkWrite");
28
+
29
+ export {
30
+ mongoBulkWrite
31
+ };
32
+ //# sourceMappingURL=chunk-EEQ2SXDE.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/utility/utilis/mongoDb/buldWrite.ts"],"sourcesContent":["import {getMongoServer} from \"../../../engine/mondoDb/mongoDB.js\";\nimport type {CustomBulkWriteResult} from \"../../libs/types.js\";\nimport type {BulkWriteInterface} from \"../../libs/interface.js\";\n\n\n\n\n\n\n\n\nexport const mongoBulkWrite = async (\n params: BulkWriteInterface\n): Promise<CustomBulkWriteResult> => {\n const { dbName, collectionName, writable, options } = params;\n\n try {\n const col = getMongoServer().db(dbName).collection(collectionName);\n\n // Added 'await' to ensure operations complete\n const result = await col.bulkWrite(writable, options);\n\n return {\n status: true,\n result,\n error: null,\n };\n } catch (err) {\n const error = err instanceof Error ? err : new Error(String(err));\n return {\n status: false,\n result: null,\n error,\n };\n }\n};\n"],"mappings":";;;;;;;;AAWO,IAAM,iBAAiB,8BAC1B,WACiC;AACjC,QAAM,EAAE,QAAQ,gBAAgB,UAAU,QAAQ,IAAI;AAEtD,MAAI;AACA,UAAM,MAAM,eAAe,EAAE,GAAG,MAAM,EAAE,WAAW,cAAc;AAGjE,UAAM,SAAS,MAAM,IAAI,UAAU,UAAU,OAAO;AAEpD,WAAO;AAAA,MACH,QAAQ;AAAA,MACR;AAAA,MACA,OAAO;AAAA,IACX;AAAA,EACJ,SAAS,KAAK;AACV,UAAM,QAAQ,eAAe,QAAQ,MAAM,IAAI,MAAM,OAAO,GAAG,CAAC;AAChE,WAAO;AAAA,MACH,QAAQ;AAAA,MACR,QAAQ;AAAA,MACR;AAAA,IACJ;AAAA,EACJ;AACJ,GAxB8B;","names":[]}
@@ -0,0 +1,35 @@
1
+ import {
2
+ getMongoServer
3
+ } from "./chunk-2QNCQ5L5.js";
4
+ import {
5
+ __name
6
+ } from "./chunk-7QVYU63E.js";
7
+
8
+ // src/utility/utilis/mongoDb/insertFields.ts
9
+ var mongoInsertFields = /* @__PURE__ */ __name(async (params) => {
10
+ const { dbName, collectionName, fields, options } = params;
11
+ try {
12
+ const db = getMongoServer().db(dbName);
13
+ const collection = db.collection(collectionName);
14
+ const result = await collection.insertMany(fields, options);
15
+ return {
16
+ status: true,
17
+ result,
18
+ insertedCount: result.insertedCount,
19
+ error: null
20
+ };
21
+ } catch (err) {
22
+ const error = err instanceof Error ? err : new Error(String(err));
23
+ return {
24
+ status: false,
25
+ result: null,
26
+ insertedCount: 0,
27
+ error
28
+ };
29
+ }
30
+ }, "mongoInsertFields");
31
+
32
+ export {
33
+ mongoInsertFields
34
+ };
35
+ //# sourceMappingURL=chunk-EUWCMMGI.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/utility/utilis/mongoDb/insertFields.ts"],"sourcesContent":["import type {InsertManyInterface} from \"../../libs/interface.js\";\nimport type {CustomInsertManyResult} from \"../../libs/types.js\";\nimport {getMongoServer} from \"../../../engine/mondoDb/mongoDB.js\";\nimport type {Document} from \"mongodb\";\n\n\n\n\n\n\n\nexport const mongoInsertFields = async <T>(\n params: InsertManyInterface<T>\n): Promise<CustomInsertManyResult<T>> => {\n const { dbName, collectionName, fields, options } = params;\n\n try {\n const db = getMongoServer().db(dbName);\n const collection = db.collection<T & Document>(collectionName);\n\n const result = await collection.insertMany(fields, options);\n\n return {\n status: true,\n result,\n insertedCount: result.insertedCount,\n error: null,\n };\n }\n catch (err) {\n const error = err instanceof Error ? err : new Error(String(err));\n return {\n status: false,\n result: null,\n insertedCount: 0,\n error,\n };\n }\n};\n"],"mappings":";;;;;;;;AAWO,IAAM,oBAAoB,8BAC7B,WACqC;AACrC,QAAM,EAAE,QAAQ,gBAAgB,QAAQ,QAAQ,IAAI;AAEpD,MAAI;AACA,UAAM,KAAK,eAAe,EAAE,GAAG,MAAM;AACrC,UAAM,aAAa,GAAG,WAAyB,cAAc;AAE7D,UAAM,SAAS,MAAM,WAAW,WAAW,QAAQ,OAAO;AAE1D,WAAO;AAAA,MACH,QAAQ;AAAA,MACR;AAAA,MACA,eAAe,OAAO;AAAA,MACtB,OAAO;AAAA,IACX;AAAA,EACJ,SACO,KAAK;AACR,UAAM,QAAQ,eAAe,QAAQ,MAAM,IAAI,MAAM,OAAO,GAAG,CAAC;AAChE,WAAO;AAAA,MACH,QAAQ;AAAA,MACR,QAAQ;AAAA,MACR,eAAe;AAAA,MACf;AAAA,IACJ;AAAA,EACJ;AACJ,GA3BiC;","names":[]}
@@ -0,0 +1,89 @@
1
+ import {
2
+ getKeyFromUrl
3
+ } from "./chunk-ZC33GE2U.js";
4
+ import {
5
+ s3Client
6
+ } from "./chunk-J3P6W53K.js";
7
+ import {
8
+ url_or_path
9
+ } from "./chunk-QW2GGDEG.js";
10
+ import {
11
+ ENV
12
+ } from "./chunk-LE2SDA4O.js";
13
+ import {
14
+ __name
15
+ } from "./chunk-7QVYU63E.js";
16
+
17
+ // src/utility/utilis/cloud_storage/deleteFiles.ts
18
+ import { DeleteObjectCommand } from "@aws-sdk/client-s3";
19
+ import * as fs from "fs";
20
+ var deleteFiles = /* @__PURE__ */ __name(async (item_files) => {
21
+ if (!item_files || item_files.length === 0) {
22
+ return { items: [] };
23
+ }
24
+ const uniqueFiles = [...new Set(item_files)];
25
+ const BATCH_SIZE = 50;
26
+ const results = [];
27
+ const deleteSingleFile = /* @__PURE__ */ __name(async (item_file) => {
28
+ try {
29
+ const fileType = url_or_path(item_file);
30
+ if (fileType === ENV.URL) {
31
+ const key = getKeyFromUrl(item_file);
32
+ const command = new DeleteObjectCommand({
33
+ Bucket: ENV.BUCKET_NAME,
34
+ Key: key
35
+ });
36
+ await s3Client.send(command);
37
+ return {
38
+ url_or_path: item_file,
39
+ status: true
40
+ };
41
+ }
42
+ if (fileType === ENV.PATH) {
43
+ try {
44
+ await fs.promises.access(item_file);
45
+ await fs.promises.unlink(item_file);
46
+ } catch (accessError) {
47
+ }
48
+ return {
49
+ url_or_path: item_file,
50
+ status: true
51
+ };
52
+ }
53
+ return {
54
+ url_or_path: item_file,
55
+ status: false
56
+ };
57
+ } catch (error) {
58
+ return {
59
+ url_or_path: item_file,
60
+ status: false,
61
+ error
62
+ };
63
+ }
64
+ }, "deleteSingleFile");
65
+ for (let i = 0; i < uniqueFiles.length; i += BATCH_SIZE) {
66
+ const batch = uniqueFiles.slice(i, i + BATCH_SIZE);
67
+ const batchResults = await Promise.allSettled(
68
+ batch.map((file) => deleteSingleFile(file))
69
+ );
70
+ batchResults.forEach((result, index) => {
71
+ if (result.status === "fulfilled") {
72
+ results.push(result.value);
73
+ } else {
74
+ results.push({
75
+ url_or_path: batch[index] || "unknown",
76
+ // Provide fallback
77
+ status: false,
78
+ error: result.reason
79
+ });
80
+ }
81
+ });
82
+ }
83
+ return { items: results };
84
+ }, "deleteFiles");
85
+
86
+ export {
87
+ deleteFiles
88
+ };
89
+ //# sourceMappingURL=chunk-HC4IDQP6.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/utility/utilis/cloud_storage/deleteFiles.ts"],"sourcesContent":["import {ENV} from \"../../libs/env.js\";\nimport {url_or_path} from \"../general/file-operations.js\";\nimport {getKeyFromUrl} from \"../general/web.js\";\nimport {DeleteObjectCommand} from \"@aws-sdk/client-s3\";\nimport * as fs from \"node:fs\";\nimport type {DeleteFiles} from \"../../libs/interface.js\";\nimport {s3Client} from \"../../../engine/cloudBucket/r2Storage.js\";\n\n\n\nexport const deleteFiles = async (item_files: string[]): Promise<DeleteFiles> => {\n // Early return for empty array\n if (!item_files || item_files.length === 0) {\n return { items: [] };\n }\n\n // Optional: Deduplicate files to avoid redundant operations\n const uniqueFiles = [...new Set(item_files)];\n\n // Optional: Limit concurrency to avoid overwhelming the system\n const BATCH_SIZE = 50; // Adjust based on your needs\n const results: DeleteFiles['items'] = [];\n\n const deleteSingleFile = async (item_file: string): Promise<DeleteFiles['items'][0]> => {\n try {\n const fileType = url_or_path(item_file);\n\n if (fileType === ENV.URL) {\n const key = getKeyFromUrl(item_file);\n const command = new DeleteObjectCommand({\n Bucket: ENV.BUCKET_NAME,\n Key: key,\n });\n await s3Client.send(command);\n return {\n url_or_path: item_file,\n status: true,\n };\n }\n\n if (fileType === ENV.PATH) {\n try {\n await fs.promises.access(item_file);\n await fs.promises.unlink(item_file);\n } catch (accessError) {\n // File doesn't exist - consider this a success (idempotent)\n }\n return {\n url_or_path: item_file,\n status: true,\n };\n }\n\n return {\n url_or_path: item_file,\n status: false,\n };\n } catch (error) {\n return {\n url_or_path: item_file,\n status: false,\n error: error,\n };\n }\n };\n\n // Process in batches to control memory/connection usage\n for (let i = 0; i < uniqueFiles.length; i += BATCH_SIZE) {\n const batch = uniqueFiles.slice(i, i + BATCH_SIZE);\n const batchResults = await Promise.allSettled(\n batch.map(file => deleteSingleFile(file))\n );\n\n batchResults.forEach((result, index) => {\n if (result.status === 'fulfilled') {\n results.push(result.value);\n } else {\n // result.reason should never happen with allSettled, but handle it anyway\n results.push({\n url_or_path: batch[index] || 'unknown', // Provide fallback\n status: false,\n error: result.reason,\n });\n }\n });\n }\n\n return { items: results };\n};\n"],"mappings":";;;;;;;;;;;;;;;;;AAGA,SAAQ,2BAA0B;AAClC,YAAY,QAAQ;AAMb,IAAM,cAAc,8BAAO,eAA+C;AAE7E,MAAI,CAAC,cAAc,WAAW,WAAW,GAAG;AACxC,WAAO,EAAE,OAAO,CAAC,EAAE;AAAA,EACvB;AAGA,QAAM,cAAc,CAAC,GAAG,IAAI,IAAI,UAAU,CAAC;AAG3C,QAAM,aAAa;AACnB,QAAM,UAAgC,CAAC;AAEvC,QAAM,mBAAmB,8BAAO,cAAwD;AACpF,QAAI;AACA,YAAM,WAAW,YAAY,SAAS;AAEtC,UAAI,aAAa,IAAI,KAAK;AACtB,cAAM,MAAM,cAAc,SAAS;AACnC,cAAM,UAAU,IAAI,oBAAoB;AAAA,UACpC,QAAQ,IAAI;AAAA,UACZ,KAAK;AAAA,QACT,CAAC;AACD,cAAM,SAAS,KAAK,OAAO;AAC3B,eAAO;AAAA,UACH,aAAa;AAAA,UACb,QAAQ;AAAA,QACZ;AAAA,MACJ;AAEA,UAAI,aAAa,IAAI,MAAM;AACvB,YAAI;AACA,gBAAS,YAAS,OAAO,SAAS;AAClC,gBAAS,YAAS,OAAO,SAAS;AAAA,QACtC,SAAS,aAAa;AAAA,QAEtB;AACA,eAAO;AAAA,UACH,aAAa;AAAA,UACb,QAAQ;AAAA,QACZ;AAAA,MACJ;AAEA,aAAO;AAAA,QACH,aAAa;AAAA,QACb,QAAQ;AAAA,MACZ;AAAA,IACJ,SAAS,OAAO;AACZ,aAAO;AAAA,QACH,aAAa;AAAA,QACb,QAAQ;AAAA,QACR;AAAA,MACJ;AAAA,IACJ;AAAA,EACJ,GAzCyB;AA4CzB,WAAS,IAAI,GAAG,IAAI,YAAY,QAAQ,KAAK,YAAY;AACrD,UAAM,QAAQ,YAAY,MAAM,GAAG,IAAI,UAAU;AACjD,UAAM,eAAe,MAAM,QAAQ;AAAA,MAC/B,MAAM,IAAI,UAAQ,iBAAiB,IAAI,CAAC;AAAA,IAC5C;AAEA,iBAAa,QAAQ,CAAC,QAAQ,UAAU;AACpC,UAAI,OAAO,WAAW,aAAa;AAC/B,gBAAQ,KAAK,OAAO,KAAK;AAAA,MAC7B,OAAO;AAEH,gBAAQ,KAAK;AAAA,UACT,aAAa,MAAM,KAAK,KAAK;AAAA;AAAA,UAC7B,QAAQ;AAAA,UACR,OAAO,OAAO;AAAA,QAClB,CAAC;AAAA,MACL;AAAA,IACJ,CAAC;AAAA,EACL;AAEA,SAAO,EAAE,OAAO,QAAQ;AAC5B,GA9E2B;","names":[]}
@@ -1,9 +1,9 @@
1
1
  import {
2
2
  fileExistsAsync
3
- } from "./chunk-W3W3X2OE.js";
3
+ } from "./chunk-QW2GGDEG.js";
4
4
  import {
5
5
  ENV
6
- } from "./chunk-EWQYVPOL.js";
6
+ } from "./chunk-LE2SDA4O.js";
7
7
  import {
8
8
  __name
9
9
  } from "./chunk-7QVYU63E.js";
@@ -92,4 +92,4 @@ export {
92
92
  runMySqlScript,
93
93
  closePool
94
94
  };
95
- //# sourceMappingURL=chunk-QVTKG7FD.js.map
95
+ //# sourceMappingURL=chunk-HV3IQJH3.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/engine/sql/mySql.ts"],"sourcesContent":["// mySql.ts\nimport mysql from 'mysql2/promise';\nimport dotenv from 'dotenv';\nimport fs from 'fs/promises';\nimport path from \"node:path\"\nimport {pathToFileURL} from \"node:url\";\nimport {ENV} from \"../../utility/libs/env.js\";\nimport {fileExistsAsync} from \"../../utility/utilis/general/file-operations.js\";\n\n\ndotenv.config();\nlet pool: mysql.Pool | null = null;\n\n\n\n\n\nexport async function getMySqlPool(): Promise<mysql.Pool> {\n if (!pool) {\n\n let options: mysql.PoolOptions;\n\n try {\n const mySqlConfigFileTs = path.join(process.cwd(), \"src/config/mySql.config.ts\");\n const mySqlConfigFileJs = path.join(process.cwd(), \"src/config/mySql.config.js\");\n const {MYSQL_POOL_OPTIONS} = await import(pathToFileURL(await fileExistsAsync(mySqlConfigFileJs) ? mySqlConfigFileJs : mySqlConfigFileTs).href);\n options = MYSQL_POOL_OPTIONS || {};\n if (!options.uri) options.uri = ENV.SQL_DB_URL\n }\n catch (error) {\n options = {};\n }\n\n pool = mysql.createPool(options);\n\n // Test connection on startup\n pool.getConnection()\n .then(conn => {\n console.log('✅ MySQL Database connected successfully');\n conn.release();\n })\n .catch(err => {\n console.error('❌ Failed to connect to MySQL:', err.message);\n process.exit(1);\n });\n\n // Connection event\n pool.on('connection', () => {\n console.log('🔌 New MySQL connection established');\n });\n\n // Acquire event (when connection is acquired from pool)\n pool.on('acquire', () => {\n console.log('📥 MySQL connection acquired');\n });\n\n // Enqueue event (when connection is queued)\n pool.on('enqueue', () => {\n console.log('⏳ MySQL connection queued');\n });\n\n // Release event (when connection is released back to pool)\n pool.on('release', () => {\n console.log('📤 MySQL connection released');\n });\n }\n\n return pool;\n}\n\n\n\n\nexport const runMySqlScript = async () => {\n try {\n const fileQuery = await fs.readFile('db.sql', 'utf8');\n\n // Split queries for multiple statements\n const queries = fileQuery\n .split(';')\n .map(q => q.trim())\n .filter(q => q.length > 0);\n\n\n const mySqlPool = await getMySqlPool();\n\n const connection = await mySqlPool.getConnection();\n\n try {\n for (const query of queries) {\n await mySqlPool.query(query);\n }\n console.log(\"✅ Database schema created successfully\");\n } finally {\n connection.release();\n }\n } catch (err) {\n console.error('❌ Failed to execute SQL script:', err);\n throw err;\n }\n};\n\n\n\n\n\n\n// Graceful shutdown\nexport const closePool = async () => {\n if (pool) {\n console.log('Closing database pool...');\n await pool.end();\n console.log('Database pool closed');\n }\n};\n\n\n\n\n// Handle process termination\nprocess.on('SIGINT', async () => {\n await closePool();\n process.exit(0);\n});\n\n\n\n\nprocess.on('SIGTERM', async () => {\n await closePool();\n process.exit(0);\n});\n"],"mappings":";;;;;;;;;;;AACA,OAAO,WAAW;AAClB,OAAO,YAAY;AACnB,OAAO,QAAQ;AACf,OAAO,UAAU;AACjB,SAAQ,qBAAoB;AAK5B,OAAO,OAAO;AACd,IAAI,OAA0B;AAM9B,eAAsB,eAAoC;AACtD,MAAI,CAAC,MAAM;AAEP,QAAI;AAEJ,QAAI;AACA,YAAM,oBAAoB,KAAK,KAAK,QAAQ,IAAI,GAAG,4BAA4B;AAC/E,YAAM,oBAAoB,KAAK,KAAK,QAAQ,IAAI,GAAG,4BAA4B;AAC/E,YAAM,EAAC,mBAAkB,IAAI,MAAM,OAAO,cAAc,MAAM,gBAAgB,iBAAiB,IAAI,oBAAoB,iBAAiB,EAAE;AAC1I,gBAAU,sBAAsB,CAAC;AACjC,UAAI,CAAC,QAAQ,IAAK,SAAQ,MAAM,IAAI;AAAA,IACxC,SACO,OAAO;AACV,gBAAU,CAAC;AAAA,IACf;AAEA,WAAO,MAAM,WAAW,OAAO;AAG/B,SAAK,cAAc,EACd,KAAK,UAAQ;AACV,cAAQ,IAAI,8CAAyC;AACrD,WAAK,QAAQ;AAAA,IACjB,CAAC,EACA,MAAM,SAAO;AACV,cAAQ,MAAM,sCAAiC,IAAI,OAAO;AAC1D,cAAQ,KAAK,CAAC;AAAA,IAClB,CAAC;AAGL,SAAK,GAAG,cAAc,MAAM;AACxB,cAAQ,IAAI,4CAAqC;AAAA,IACrD,CAAC;AAGD,SAAK,GAAG,WAAW,MAAM;AACrB,cAAQ,IAAI,qCAA8B;AAAA,IAC9C,CAAC;AAGD,SAAK,GAAG,WAAW,MAAM;AACrB,cAAQ,IAAI,gCAA2B;AAAA,IAC3C,CAAC;AAGD,SAAK,GAAG,WAAW,MAAM;AACrB,cAAQ,IAAI,qCAA8B;AAAA,IAC9C,CAAC;AAAA,EACL;AAEA,SAAO;AACX;AAnDsB;AAwDf,IAAM,iBAAiB,mCAAY;AACtC,MAAI;AACA,UAAM,YAAY,MAAM,GAAG,SAAS,UAAU,MAAM;AAGpD,UAAM,UAAU,UACX,MAAM,GAAG,EACT,IAAI,OAAK,EAAE,KAAK,CAAC,EACjB,OAAO,OAAK,EAAE,SAAS,CAAC;AAG7B,UAAM,YAAY,MAAM,aAAa;AAErC,UAAM,aAAa,MAAM,UAAU,cAAc;AAEjD,QAAI;AACA,iBAAW,SAAS,SAAS;AACzB,cAAM,UAAU,MAAM,KAAK;AAAA,MAC/B;AACA,cAAQ,IAAI,6CAAwC;AAAA,IACxD,UAAE;AACE,iBAAW,QAAQ;AAAA,IACvB;AAAA,EACJ,SAAS,KAAK;AACV,YAAQ,MAAM,wCAAmC,GAAG;AACpD,UAAM;AAAA,EACV;AACJ,GA3B8B;AAmCvB,IAAM,YAAY,mCAAY;AACjC,MAAI,MAAM;AACN,YAAQ,IAAI,0BAA0B;AACtC,UAAM,KAAK,IAAI;AACf,YAAQ,IAAI,sBAAsB;AAAA,EACtC;AACJ,GANyB;AAYzB,QAAQ,GAAG,UAAU,YAAY;AAC7B,QAAM,UAAU;AAChB,UAAQ,KAAK,CAAC;AAClB,CAAC;AAKD,QAAQ,GAAG,WAAW,YAAY;AAC9B,QAAM,UAAU;AAChB,UAAQ,KAAK,CAAC;AAClB,CAAC;","names":[]}
@@ -59,4 +59,4 @@ __name(generateUniqueValue, "generateUniqueValue");
59
59
  export {
60
60
  generateUniqueValue
61
61
  };
62
- //# sourceMappingURL=chunk-X3R3RLXY.js.map
62
+ //# sourceMappingURL=chunk-IZEPCXYK.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/utility/utilis/general/uuids.ts"],"sourcesContent":["import crypto from 'crypto';\nimport { getRandomValues } from 'node:crypto';\nimport type {GenerateIdOptions} from \"../../libs/interface.js\";\n\n\n\n\nexport function generateUniqueValue(length: number, options?: GenerateIdOptions): string;\nexport function generateUniqueValue(length: number, options: GenerateIdOptions & { count: number }): string[];\nexport function generateUniqueValue(\n length: number,\n options?: GenerateIdOptions & { count?: number }\n): string | string[] {\n if (length <= 0) {\n throw new Error('Length must be greater than 0');\n }\n\n const count = options?.count ?? 1;\n if (count <= 0) {\n throw new Error('Count must be greater than 0');\n }\n\n const generateSingleId = (): string => {\n let id = '';\n\n if (options?.useHex) {\n // 1 byte = 2 hex chars. We use Math.ceil and slice to ensure exact requested length.\n id = crypto.randomBytes(Math.ceil(length / 2)).toString('hex').slice(0, length);\n } else {\n // Allowed characters: A-Z, a-z, 0-9, and _ (63 total characters)\n const alphabet = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789_';\n const alphabetLength = alphabet.length; // 63\n\n // 63 is less than 64 (2^6), so 6 bits can represent 0-62.\n // Using a bitmask (63) avoids modulo bias for uniform randomness.\n const mask = (2 << (31 - Math.clz32((alphabetLength - 1) | 1))) - 1;\n const step = Math.ceil((1.6 * mask * length) / alphabetLength);\n\n const getBaseId = (): string => {\n let baseId = '';\n while (true) {\n const bytes = new Uint8Array(step);\n getRandomValues(bytes);\n\n for (const byteValue of bytes) {\n const byte = byteValue & mask;\n if (byte < alphabetLength) {\n baseId += alphabet[byte];\n if (baseId.length === length) {\n return baseId;\n }\n }\n }\n }\n };\n id = getBaseId();\n }\n\n // Apply formatting (Timestamp first, then Prefix)\n if (options?.includeTimestamp) {\n const timestamp = Date.now().toString(16);\n id = `${timestamp}-${id}`;\n }\n\n if (options?.prefix) {\n id = `${options.prefix}-${id}`;\n }\n\n return id;\n };\n\n // Return an array if count is explicitly requested, otherwise return a single string\n if (options?.count !== undefined) {\n return Array.from({ length: count }, () => generateSingleId());\n }\n\n return generateSingleId();\n}\n"],"mappings":";;;;;AAAA,OAAO,YAAY;AACnB,SAAS,uBAAuB;AAQzB,SAAS,oBACZ,QACA,SACiB;AACnB,MAAI,UAAU,GAAG;AACf,UAAM,IAAI,MAAM,+BAA+B;AAAA,EACjD;AAEA,QAAM,QAAQ,SAAS,SAAS;AAChC,MAAI,SAAS,GAAG;AACd,UAAM,IAAI,MAAM,8BAA8B;AAAA,EAChD;AAEA,QAAM,mBAAmB,6BAAc;AACrC,QAAI,KAAK;AAET,QAAI,SAAS,QAAQ;AAEnB,WAAK,OAAO,YAAY,KAAK,KAAK,SAAS,CAAC,CAAC,EAAE,SAAS,KAAK,EAAE,MAAM,GAAG,MAAM;AAAA,IAChF,OAAO;AAEL,YAAM,WAAW;AACjB,YAAM,iBAAiB,SAAS;AAIhC,YAAM,QAAQ,KAAM,KAAK,KAAK,MAAO,iBAAiB,IAAK,CAAC,KAAM;AAClE,YAAM,OAAO,KAAK,KAAM,MAAM,OAAO,SAAU,cAAc;AAE7D,YAAM,YAAY,6BAAc;AAC9B,YAAI,SAAS;AACb,eAAO,MAAM;AACX,gBAAM,QAAQ,IAAI,WAAW,IAAI;AACjC,0BAAgB,KAAK;AAErB,qBAAW,aAAa,OAAO;AAC7B,kBAAM,OAAO,YAAY;AACzB,gBAAI,OAAO,gBAAgB;AACzB,wBAAU,SAAS,IAAI;AACvB,kBAAI,OAAO,WAAW,QAAQ;AAC5B,uBAAO;AAAA,cACT;AAAA,YACF;AAAA,UACF;AAAA,QACF;AAAA,MACF,GAhBkB;AAiBlB,WAAK,UAAU;AAAA,IACjB;AAGA,QAAI,SAAS,kBAAkB;AAC7B,YAAM,YAAY,KAAK,IAAI,EAAE,SAAS,EAAE;AACxC,WAAK,GAAG,SAAS,IAAI,EAAE;AAAA,IACzB;AAEA,QAAI,SAAS,QAAQ;AACnB,WAAK,GAAG,QAAQ,MAAM,IAAI,EAAE;AAAA,IAC9B;AAEA,WAAO;AAAA,EACT,GA/CyB;AAkDzB,MAAI,SAAS,UAAU,QAAW;AAChC,WAAO,MAAM,KAAK,EAAE,QAAQ,MAAM,GAAG,MAAM,iBAAiB,CAAC;AAAA,EAC/D;AAEA,SAAO,iBAAiB;AAC1B;AApEgB;","names":[]}
@@ -1,6 +1,6 @@
1
1
  import {
2
2
  fileExistsAsync
3
- } from "./chunk-W3W3X2OE.js";
3
+ } from "./chunk-QW2GGDEG.js";
4
4
 
5
5
  // src/engine/cloudBucket/r2Storage.ts
6
6
  import { S3Client } from "@aws-sdk/client-s3";
@@ -16,4 +16,4 @@ var s3Client = new S3Client(S3_BUCKET_CONFIG);
16
16
  export {
17
17
  s3Client
18
18
  };
19
- //# sourceMappingURL=chunk-YTBSGKGF.js.map
19
+ //# sourceMappingURL=chunk-J3P6W53K.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/engine/cloudBucket/r2Storage.ts"],"sourcesContent":["import { S3Client } from '@aws-sdk/client-s3';\nimport path from \"node:path\";\nimport {pathToFileURL} from \"node:url\";\nimport {fileExistsAsync} from \"../../utility/utilis/general/file-operations.js\";\n\n\n\n\n\nconst s3ConfigFileTs = path.join(process.cwd(), \"src/config/s3bucket.config.ts\");\nconst s3ConfigFileJs = path.join(process.cwd(), \"src/config/s3bucket.config.js\");\n\nconst { S3_BUCKET_CONFIG } = await import(\n pathToFileURL(\n (await fileExistsAsync(s3ConfigFileJs)) ? s3ConfigFileJs : s3ConfigFileTs\n ).href\n );\n\n\nexport const s3Client: S3Client = new S3Client(S3_BUCKET_CONFIG);\n"],"mappings":";;;;;AAAA,SAAS,gBAAgB;AACzB,OAAO,UAAU;AACjB,SAAQ,qBAAoB;AAO5B,IAAM,iBAAiB,KAAK,KAAK,QAAQ,IAAI,GAAG,+BAA+B;AAC/E,IAAM,iBAAiB,KAAK,KAAK,QAAQ,IAAI,GAAG,+BAA+B;AAE/E,IAAM,EAAE,iBAAiB,IAAI,MAAM,OAC/B;AAAA,EACK,MAAM,gBAAgB,cAAc,IAAK,iBAAiB;AAC/D,EAAE;AAIC,IAAM,WAAqB,IAAI,SAAS,gBAAgB;","names":[]}
@@ -27,4 +27,4 @@ var ENV = {
27
27
  export {
28
28
  ENV
29
29
  };
30
- //# sourceMappingURL=chunk-EWQYVPOL.js.map
30
+ //# sourceMappingURL=chunk-LE2SDA4O.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/utility/libs/env.ts"],"sourcesContent":["import { configDotenv } from 'dotenv';\nconfigDotenv();\n\n\nexport const ENV = {\n\n FILE: \"file\",\n FILES: \"files\",\n\n SERVER_PORT: process.env.SERVER_PORT as string,\n\n CURRENT_ENVIRONMENT: process.env.CURRENT_ENVIRONMENT as string,\n ENV_TYPE_LOCAL: process.env.ENV_TYPE_LOCAL as string,\n ENV_TYPE_PRODUCTION: process.env.ENV_TYPE_PRODUCTION as string,\n\n SQL_DB_URL: process.env.SQL_DB_URL as string,\n MONGO_SERVER_URL: process.env.MONGO_DB_URL as string,\n\n IN_APP_BUCKET: process.env.IN_APP_BUCKET as string,\n BUCKET_NAME: process.env.BUCKET_NAME as string,\n BUCKET_END_POINT: process.env.BUCKET_END_POINT as string,\n BUCKET_ACCESS_KEY_ID: process.env.BACKEND_ACCESS_KEY as string,\n BUCKET_SECRET_KEY_ID: process.env.BACKEND_SECRET_KEY as string,\n\n URL: \"url\",\n PATH: 'path',\n\n MY_SQL: 'mysql',\n POSTGRES_SQL: 'postgresql',\n\n MAX_BATCH_FILES: process.env.MAX_BATCH_FILES as string,\n MAX_FILE_SIZE_IN_MB: process.env.MAX_FILE_SIZE_IN_MB as string,\n MAX_FIELD_SIZE_IN_MB: process.env.MAX_FIELD_SIZE_IN_MB as string,\n\n\n}\n"],"mappings":";AAAA,SAAS,oBAAoB;AAC7B,aAAa;AAGN,IAAM,MAAM;AAAA,EAEf,MAAM;AAAA,EACN,OAAO;AAAA,EAEP,aAAa,QAAQ,IAAI;AAAA,EAEzB,qBAAqB,QAAQ,IAAI;AAAA,EACjC,gBAAgB,QAAQ,IAAI;AAAA,EAC5B,qBAAqB,QAAQ,IAAI;AAAA,EAEjC,YAAY,QAAQ,IAAI;AAAA,EACxB,kBAAkB,QAAQ,IAAI;AAAA,EAE9B,eAAe,QAAQ,IAAI;AAAA,EAC3B,aAAa,QAAQ,IAAI;AAAA,EACzB,kBAAkB,QAAQ,IAAI;AAAA,EAC9B,sBAAsB,QAAQ,IAAI;AAAA,EAClC,sBAAsB,QAAQ,IAAI;AAAA,EAElC,KAAK;AAAA,EACL,MAAM;AAAA,EAEN,QAAQ;AAAA,EACR,cAAc;AAAA,EAEd,iBAAiB,QAAQ,IAAI;AAAA,EAC7B,qBAAqB,QAAQ,IAAI;AAAA,EACjC,sBAAsB,QAAQ,IAAI;AAGtC;","names":[]}