@catbee/utils 0.0.8-rc.1 → 0.0.8-rc.2

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 (280) hide show
  1. package/build/esm/config.d.ts +0 -1
  2. package/build/esm/config.js +6 -7
  3. package/build/esm/index.d.ts +0 -1
  4. package/build/esm/index.js +0 -1
  5. package/build/esm/servers/server.builder.d.ts +0 -1
  6. package/build/esm/servers/server.builder.js +99 -147
  7. package/build/esm/servers/server.d.ts +0 -1
  8. package/build/esm/servers/server.js +591 -876
  9. package/build/esm/types/api-response.d.ts +0 -1
  10. package/build/esm/types/api-response.js +0 -1
  11. package/build/esm/types/index.d.ts +0 -1
  12. package/build/esm/types/index.js +0 -1
  13. package/build/esm/types/server.d.ts +0 -1
  14. package/build/esm/types/server.js +0 -1
  15. package/build/esm/utils/array.utils.d.ts +0 -1
  16. package/build/esm/utils/array.utils.js +48 -86
  17. package/build/esm/utils/async.utils.d.ts +0 -1
  18. package/build/esm/utils/async.utils.js +247 -524
  19. package/build/esm/utils/cache.utils.d.ts +0 -1
  20. package/build/esm/utils/cache.utils.js +96 -301
  21. package/build/esm/utils/context-store.utils.d.ts +0 -1
  22. package/build/esm/utils/context-store.utils.js +62 -79
  23. package/build/esm/utils/crypto.utils.d.ts +0 -1
  24. package/build/esm/utils/crypto.utils.js +78 -175
  25. package/build/esm/utils/date.utils.d.ts +0 -1
  26. package/build/esm/utils/date.utils.js +47 -53
  27. package/build/esm/utils/decorators.utils.d.ts +30 -27
  28. package/build/esm/utils/decorators.utils.js +417 -461
  29. package/build/esm/utils/dir.utils.d.ts +0 -1
  30. package/build/esm/utils/dir.utils.js +264 -786
  31. package/build/esm/utils/env.utils.d.ts +0 -1
  32. package/build/esm/utils/env.utils.js +180 -271
  33. package/build/esm/utils/exception.utils.d.ts +0 -1
  34. package/build/esm/utils/exception.utils.js +112 -289
  35. package/build/esm/utils/fs.utils.d.ts +0 -1
  36. package/build/esm/utils/fs.utils.js +169 -401
  37. package/build/esm/utils/http-status-codes.d.ts +0 -1
  38. package/build/esm/utils/http-status-codes.js +0 -1
  39. package/build/esm/utils/id.utils.d.ts +0 -1
  40. package/build/esm/utils/id.utils.js +5 -9
  41. package/build/esm/utils/logger.utils.d.ts +0 -1
  42. package/build/esm/utils/logger.utils.js +34 -71
  43. package/build/esm/utils/middleware.utils.d.ts +0 -1
  44. package/build/esm/utils/middleware.utils.js +65 -155
  45. package/build/esm/utils/obj.utils.d.ts +0 -1
  46. package/build/esm/utils/obj.utils.js +69 -176
  47. package/build/esm/utils/performance.utils.d.ts +0 -1
  48. package/build/esm/utils/performance.utils.js +92 -195
  49. package/build/esm/utils/request.utils.d.ts +0 -1
  50. package/build/esm/utils/request.utils.js +41 -74
  51. package/build/esm/utils/response.utils.d.ts +0 -1
  52. package/build/esm/utils/response.utils.js +84 -107
  53. package/build/esm/utils/stream.utils.d.ts +0 -1
  54. package/build/esm/utils/stream.utils.js +38 -113
  55. package/build/esm/utils/string.utils.d.ts +0 -1
  56. package/build/esm/utils/string.utils.js +6 -11
  57. package/build/esm/utils/type.utils.d.ts +0 -1
  58. package/build/esm/utils/type.utils.js +8 -12
  59. package/build/esm/utils/url.utils.d.ts +0 -1
  60. package/build/esm/utils/url.utils.js +49 -127
  61. package/build/esm/utils/validate.utils.d.ts +0 -1
  62. package/build/esm/utils/validate.utils.js +23 -40
  63. package/package.json +3 -33
  64. package/build/esm/config.js.map +0 -1
  65. package/build/esm/index.js.map +0 -1
  66. package/build/esm/servers/server.builder.js.map +0 -1
  67. package/build/esm/servers/server.js.map +0 -1
  68. package/build/esm/types/api-response.js.map +0 -1
  69. package/build/esm/types/index.js.map +0 -1
  70. package/build/esm/types/server.js.map +0 -1
  71. package/build/esm/utils/array.utils.js.map +0 -1
  72. package/build/esm/utils/async.utils.js.map +0 -1
  73. package/build/esm/utils/cache.utils.js.map +0 -1
  74. package/build/esm/utils/context-store.utils.js.map +0 -1
  75. package/build/esm/utils/crypto.utils.js.map +0 -1
  76. package/build/esm/utils/date.utils.js.map +0 -1
  77. package/build/esm/utils/decorators.utils.js.map +0 -1
  78. package/build/esm/utils/dir.utils.js.map +0 -1
  79. package/build/esm/utils/env.utils.js.map +0 -1
  80. package/build/esm/utils/exception.utils.js.map +0 -1
  81. package/build/esm/utils/fs.utils.js.map +0 -1
  82. package/build/esm/utils/http-status-codes.js.map +0 -1
  83. package/build/esm/utils/id.utils.js.map +0 -1
  84. package/build/esm/utils/logger.utils.js.map +0 -1
  85. package/build/esm/utils/middleware.utils.js.map +0 -1
  86. package/build/esm/utils/obj.utils.js.map +0 -1
  87. package/build/esm/utils/performance.utils.js.map +0 -1
  88. package/build/esm/utils/request.utils.js.map +0 -1
  89. package/build/esm/utils/response.utils.js.map +0 -1
  90. package/build/esm/utils/stream.utils.js.map +0 -1
  91. package/build/esm/utils/string.utils.js.map +0 -1
  92. package/build/esm/utils/type.utils.js.map +0 -1
  93. package/build/esm/utils/url.utils.js.map +0 -1
  94. package/build/esm/utils/validate.utils.js.map +0 -1
  95. package/build/esnext/config.d.ts +0 -122
  96. package/build/esnext/config.js +0 -133
  97. package/build/esnext/config.js.map +0 -1
  98. package/build/esnext/index.d.ts +0 -27
  99. package/build/esnext/index.js +0 -50
  100. package/build/esnext/index.js.map +0 -1
  101. package/build/esnext/servers/server.builder.d.ts +0 -508
  102. package/build/esnext/servers/server.builder.js +0 -657
  103. package/build/esnext/servers/server.builder.js.map +0 -1
  104. package/build/esnext/servers/server.d.ts +0 -256
  105. package/build/esnext/servers/server.js +0 -955
  106. package/build/esnext/servers/server.js.map +0 -1
  107. package/build/esnext/types/api-response.d.ts +0 -152
  108. package/build/esnext/types/api-response.js +0 -34
  109. package/build/esnext/types/api-response.js.map +0 -1
  110. package/build/esnext/types/index.d.ts +0 -125
  111. package/build/esnext/types/index.js +0 -25
  112. package/build/esnext/types/index.js.map +0 -1
  113. package/build/esnext/types/server.d.ts +0 -268
  114. package/build/esnext/types/server.js +0 -25
  115. package/build/esnext/types/server.js.map +0 -1
  116. package/build/esnext/utils/array.utils.d.ts +0 -168
  117. package/build/esnext/utils/array.utils.js +0 -345
  118. package/build/esnext/utils/array.utils.js.map +0 -1
  119. package/build/esnext/utils/async.utils.d.ts +0 -265
  120. package/build/esnext/utils/async.utils.js +0 -620
  121. package/build/esnext/utils/async.utils.js.map +0 -1
  122. package/build/esnext/utils/cache.utils.d.ts +0 -153
  123. package/build/esnext/utils/cache.utils.js +0 -293
  124. package/build/esnext/utils/cache.utils.js.map +0 -1
  125. package/build/esnext/utils/context-store.utils.d.ts +0 -189
  126. package/build/esnext/utils/context-store.utils.js +0 -289
  127. package/build/esnext/utils/context-store.utils.js.map +0 -1
  128. package/build/esnext/utils/crypto.utils.d.ts +0 -160
  129. package/build/esnext/utils/crypto.utils.js +0 -276
  130. package/build/esnext/utils/crypto.utils.js.map +0 -1
  131. package/build/esnext/utils/date.utils.d.ts +0 -159
  132. package/build/esnext/utils/date.utils.js +0 -384
  133. package/build/esnext/utils/date.utils.js.map +0 -1
  134. package/build/esnext/utils/decorators.utils.d.ts +0 -508
  135. package/build/esnext/utils/decorators.utils.js +0 -877
  136. package/build/esnext/utils/decorators.utils.js.map +0 -1
  137. package/build/esnext/utils/dir.utils.d.ts +0 -196
  138. package/build/esnext/utils/dir.utils.js +0 -477
  139. package/build/esnext/utils/dir.utils.js.map +0 -1
  140. package/build/esnext/utils/env.utils.d.ts +0 -377
  141. package/build/esnext/utils/env.utils.js +0 -785
  142. package/build/esnext/utils/env.utils.js.map +0 -1
  143. package/build/esnext/utils/exception.utils.d.ts +0 -230
  144. package/build/esnext/utils/exception.utils.js +0 -381
  145. package/build/esnext/utils/exception.utils.js.map +0 -1
  146. package/build/esnext/utils/fs.utils.d.ts +0 -164
  147. package/build/esnext/utils/fs.utils.js +0 -349
  148. package/build/esnext/utils/fs.utils.js.map +0 -1
  149. package/build/esnext/utils/http-status-codes.d.ts +0 -266
  150. package/build/esnext/utils/http-status-codes.js +0 -295
  151. package/build/esnext/utils/http-status-codes.js.map +0 -1
  152. package/build/esnext/utils/id.utils.d.ts +0 -36
  153. package/build/esnext/utils/id.utils.js +0 -84
  154. package/build/esnext/utils/id.utils.js.map +0 -1
  155. package/build/esnext/utils/logger.utils.d.ts +0 -160
  156. package/build/esnext/utils/logger.utils.js +0 -300
  157. package/build/esnext/utils/logger.utils.js.map +0 -1
  158. package/build/esnext/utils/middleware.utils.d.ts +0 -100
  159. package/build/esnext/utils/middleware.utils.js +0 -236
  160. package/build/esnext/utils/middleware.utils.js.map +0 -1
  161. package/build/esnext/utils/obj.utils.d.ts +0 -124
  162. package/build/esnext/utils/obj.utils.js +0 -413
  163. package/build/esnext/utils/obj.utils.js.map +0 -1
  164. package/build/esnext/utils/performance.utils.d.ts +0 -136
  165. package/build/esnext/utils/performance.utils.js +0 -271
  166. package/build/esnext/utils/performance.utils.js.map +0 -1
  167. package/build/esnext/utils/request.utils.d.ts +0 -86
  168. package/build/esnext/utils/request.utils.js +0 -186
  169. package/build/esnext/utils/request.utils.js.map +0 -1
  170. package/build/esnext/utils/response.utils.d.ts +0 -163
  171. package/build/esnext/utils/response.utils.js +0 -247
  172. package/build/esnext/utils/response.utils.js.map +0 -1
  173. package/build/esnext/utils/stream.utils.d.ts +0 -88
  174. package/build/esnext/utils/stream.utils.js +0 -210
  175. package/build/esnext/utils/stream.utils.js.map +0 -1
  176. package/build/esnext/utils/string.utils.d.ts +0 -93
  177. package/build/esnext/utils/string.utils.js +0 -165
  178. package/build/esnext/utils/string.utils.js.map +0 -1
  179. package/build/esnext/utils/type.utils.d.ts +0 -90
  180. package/build/esnext/utils/type.utils.js +0 -187
  181. package/build/esnext/utils/type.utils.js.map +0 -1
  182. package/build/esnext/utils/url.utils.d.ts +0 -141
  183. package/build/esnext/utils/url.utils.js +0 -304
  184. package/build/esnext/utils/url.utils.js.map +0 -1
  185. package/build/esnext/utils/validate.utils.d.ts +0 -177
  186. package/build/esnext/utils/validate.utils.js +0 -320
  187. package/build/esnext/utils/validate.utils.js.map +0 -1
  188. package/build/src/config.d.ts +0 -122
  189. package/build/src/config.js +0 -138
  190. package/build/src/config.js.map +0 -1
  191. package/build/src/index.d.ts +0 -27
  192. package/build/src/index.js +0 -69
  193. package/build/src/index.js.map +0 -1
  194. package/build/src/servers/server.builder.d.ts +0 -508
  195. package/build/src/servers/server.builder.js +0 -661
  196. package/build/src/servers/server.builder.js.map +0 -1
  197. package/build/src/servers/server.d.ts +0 -256
  198. package/build/src/servers/server.js +0 -962
  199. package/build/src/servers/server.js.map +0 -1
  200. package/build/src/types/api-response.d.ts +0 -152
  201. package/build/src/types/api-response.js +0 -37
  202. package/build/src/types/api-response.js.map +0 -1
  203. package/build/src/types/index.d.ts +0 -125
  204. package/build/src/types/index.js +0 -26
  205. package/build/src/types/index.js.map +0 -1
  206. package/build/src/types/server.d.ts +0 -268
  207. package/build/src/types/server.js +0 -26
  208. package/build/src/types/server.js.map +0 -1
  209. package/build/src/utils/array.utils.d.ts +0 -168
  210. package/build/src/utils/array.utils.js +0 -364
  211. package/build/src/utils/array.utils.js.map +0 -1
  212. package/build/src/utils/async.utils.d.ts +0 -265
  213. package/build/src/utils/async.utils.js +0 -641
  214. package/build/src/utils/async.utils.js.map +0 -1
  215. package/build/src/utils/cache.utils.d.ts +0 -153
  216. package/build/src/utils/cache.utils.js +0 -297
  217. package/build/src/utils/cache.utils.js.map +0 -1
  218. package/build/src/utils/context-store.utils.d.ts +0 -189
  219. package/build/src/utils/context-store.utils.js +0 -296
  220. package/build/src/utils/context-store.utils.js.map +0 -1
  221. package/build/src/utils/crypto.utils.d.ts +0 -160
  222. package/build/src/utils/crypto.utils.js +0 -293
  223. package/build/src/utils/crypto.utils.js.map +0 -1
  224. package/build/src/utils/date.utils.d.ts +0 -159
  225. package/build/src/utils/date.utils.js +0 -396
  226. package/build/src/utils/date.utils.js.map +0 -1
  227. package/build/src/utils/decorators.utils.d.ts +0 -508
  228. package/build/src/utils/decorators.utils.js +0 -896
  229. package/build/src/utils/decorators.utils.js.map +0 -1
  230. package/build/src/utils/dir.utils.d.ts +0 -196
  231. package/build/src/utils/dir.utils.js +0 -501
  232. package/build/src/utils/dir.utils.js.map +0 -1
  233. package/build/src/utils/env.utils.d.ts +0 -377
  234. package/build/src/utils/env.utils.js +0 -789
  235. package/build/src/utils/env.utils.js.map +0 -1
  236. package/build/src/utils/exception.utils.d.ts +0 -230
  237. package/build/src/utils/exception.utils.js +0 -407
  238. package/build/src/utils/exception.utils.js.map +0 -1
  239. package/build/src/utils/fs.utils.d.ts +0 -164
  240. package/build/src/utils/fs.utils.js +0 -372
  241. package/build/src/utils/fs.utils.js.map +0 -1
  242. package/build/src/utils/http-status-codes.d.ts +0 -266
  243. package/build/src/utils/http-status-codes.js +0 -298
  244. package/build/src/utils/http-status-codes.js.map +0 -1
  245. package/build/src/utils/id.utils.d.ts +0 -36
  246. package/build/src/utils/id.utils.js +0 -91
  247. package/build/src/utils/id.utils.js.map +0 -1
  248. package/build/src/utils/logger.utils.d.ts +0 -160
  249. package/build/src/utils/logger.utils.js +0 -346
  250. package/build/src/utils/logger.utils.js.map +0 -1
  251. package/build/src/utils/middleware.utils.d.ts +0 -100
  252. package/build/src/utils/middleware.utils.js +0 -244
  253. package/build/src/utils/middleware.utils.js.map +0 -1
  254. package/build/src/utils/obj.utils.d.ts +0 -124
  255. package/build/src/utils/obj.utils.js +0 -429
  256. package/build/src/utils/obj.utils.js.map +0 -1
  257. package/build/src/utils/performance.utils.d.ts +0 -136
  258. package/build/src/utils/performance.utils.js +0 -278
  259. package/build/src/utils/performance.utils.js.map +0 -1
  260. package/build/src/utils/request.utils.d.ts +0 -86
  261. package/build/src/utils/request.utils.js +0 -195
  262. package/build/src/utils/request.utils.js.map +0 -1
  263. package/build/src/utils/response.utils.d.ts +0 -163
  264. package/build/src/utils/response.utils.js +0 -260
  265. package/build/src/utils/response.utils.js.map +0 -1
  266. package/build/src/utils/stream.utils.d.ts +0 -88
  267. package/build/src/utils/stream.utils.js +0 -218
  268. package/build/src/utils/stream.utils.js.map +0 -1
  269. package/build/src/utils/string.utils.d.ts +0 -93
  270. package/build/src/utils/string.utils.js +0 -179
  271. package/build/src/utils/string.utils.js.map +0 -1
  272. package/build/src/utils/type.utils.d.ts +0 -90
  273. package/build/src/utils/type.utils.js +0 -196
  274. package/build/src/utils/type.utils.js.map +0 -1
  275. package/build/src/utils/url.utils.d.ts +0 -141
  276. package/build/src/utils/url.utils.js +0 -317
  277. package/build/src/utils/url.utils.js.map +0 -1
  278. package/build/src/utils/validate.utils.d.ts +0 -177
  279. package/build/src/utils/validate.utils.js +0 -345
  280. package/build/src/utils/validate.utils.js.map +0 -1
@@ -21,42 +21,6 @@
21
21
  * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
22
22
  * SOFTWARE.
23
23
  */
24
- var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
25
- function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
26
- return new (P || (P = Promise))(function (resolve, reject) {
27
- function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
28
- function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
29
- function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
30
- step((generator = generator.apply(thisArg, _arguments || [])).next());
31
- });
32
- };
33
- var __generator = (this && this.__generator) || function (thisArg, body) {
34
- var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g = Object.create((typeof Iterator === "function" ? Iterator : Object).prototype);
35
- return g.next = verb(0), g["throw"] = verb(1), g["return"] = verb(2), typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g;
36
- function verb(n) { return function (v) { return step([n, v]); }; }
37
- function step(op) {
38
- if (f) throw new TypeError("Generator is already executing.");
39
- while (g && (g = 0, op[0] && (_ = 0)), _) try {
40
- if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;
41
- if (y = 0, t) op = [op[0] & 2, t.value];
42
- switch (op[0]) {
43
- case 0: case 1: t = op; break;
44
- case 4: _.label++; return { value: op[1], done: false };
45
- case 5: _.label++; y = op[1]; op = [0]; continue;
46
- case 7: op = _.ops.pop(); _.trys.pop(); continue;
47
- default:
48
- if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }
49
- if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }
50
- if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }
51
- if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }
52
- if (t[2]) _.ops.pop();
53
- _.trys.pop(); continue;
54
- }
55
- op = body.call(thisArg, _);
56
- } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }
57
- if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };
58
- }
59
- };
60
24
  import fs from 'fs/promises';
61
25
  import { createReadStream, createWriteStream } from 'fs';
62
26
  import { tmpdir } from 'os';
@@ -69,24 +33,14 @@ import { randomUUID } from 'crypto';
69
33
  * @param {string} path - The file or directory path to check.
70
34
  * @returns {Promise<boolean>} Resolves to `true` if the path exists, `false` otherwise.
71
35
  */
72
- export function fileExists(path) {
73
- return __awaiter(this, void 0, void 0, function () {
74
- var _a;
75
- return __generator(this, function (_b) {
76
- switch (_b.label) {
77
- case 0:
78
- _b.trys.push([0, 2, , 3]);
79
- return [4 /*yield*/, fs.access(path)];
80
- case 1:
81
- _b.sent();
82
- return [2 /*return*/, true];
83
- case 2:
84
- _a = _b.sent();
85
- return [2 /*return*/, false];
86
- case 3: return [2 /*return*/];
87
- }
88
- });
89
- });
36
+ export async function fileExists(path) {
37
+ try {
38
+ await fs.access(path);
39
+ return true;
40
+ }
41
+ catch {
42
+ return false;
43
+ }
90
44
  }
91
45
  /**
92
46
  * Reads and parses a JSON file from the specified path.
@@ -95,24 +49,14 @@ export function fileExists(path) {
95
49
  * @param {string} path - The path to the JSON file.
96
50
  * @returns {Promise<T | null>} The parsed object, or `null` if reading or parsing fails.
97
51
  */
98
- export function readJsonFile(path) {
99
- return __awaiter(this, void 0, void 0, function () {
100
- var data, _a;
101
- return __generator(this, function (_b) {
102
- switch (_b.label) {
103
- case 0:
104
- _b.trys.push([0, 2, , 3]);
105
- return [4 /*yield*/, fs.readFile(path, 'utf-8')];
106
- case 1:
107
- data = _b.sent();
108
- return [2 /*return*/, JSON.parse(data)];
109
- case 2:
110
- _a = _b.sent();
111
- return [2 /*return*/, null];
112
- case 3: return [2 /*return*/];
113
- }
114
- });
115
- });
52
+ export async function readJsonFile(path) {
53
+ try {
54
+ const data = await fs.readFile(path, 'utf-8');
55
+ return JSON.parse(data);
56
+ }
57
+ catch {
58
+ return null;
59
+ }
116
60
  }
117
61
  /**
118
62
  * Writes a JavaScript object to a file as formatted JSON.
@@ -122,21 +66,9 @@ export function readJsonFile(path) {
122
66
  * @param {number} [space=2] - Number of spaces for JSON formatting.
123
67
  * @returns {Promise<void>} Resolves when writing is complete.
124
68
  */
125
- export function writeJsonFile(path_1, data_1) {
126
- return __awaiter(this, arguments, void 0, function (path, data, space) {
127
- var json;
128
- if (space === void 0) { space = 2; }
129
- return __generator(this, function (_a) {
130
- switch (_a.label) {
131
- case 0:
132
- json = JSON.stringify(data, null, space);
133
- return [4 /*yield*/, fs.writeFile(path, json, 'utf-8')];
134
- case 1:
135
- _a.sent();
136
- return [2 /*return*/];
137
- }
138
- });
139
- });
69
+ export async function writeJsonFile(path, data, space = 2) {
70
+ const json = JSON.stringify(data, null, space);
71
+ await fs.writeFile(path, json, 'utf-8');
140
72
  }
141
73
  /**
142
74
  * Deletes a file if it exists.
@@ -144,26 +76,16 @@ export function writeJsonFile(path_1, data_1) {
144
76
  * @param {string} path - The file path to delete.
145
77
  * @returns {Promise<boolean>} Resolves to `true` if the file was deleted or didn't exist, `false` if deletion failed.
146
78
  */
147
- export function deleteFileIfExists(path) {
148
- return __awaiter(this, void 0, void 0, function () {
149
- var err_1;
150
- return __generator(this, function (_a) {
151
- switch (_a.label) {
152
- case 0:
153
- _a.trys.push([0, 2, , 3]);
154
- return [4 /*yield*/, fs.unlink(path)];
155
- case 1:
156
- _a.sent();
157
- return [2 /*return*/, true];
158
- case 2:
159
- err_1 = _a.sent();
160
- if (err_1.code === 'ENOENT')
161
- return [2 /*return*/, true];
162
- return [2 /*return*/, false];
163
- case 3: return [2 /*return*/];
164
- }
165
- });
166
- });
79
+ export async function deleteFileIfExists(path) {
80
+ try {
81
+ await fs.unlink(path);
82
+ return true;
83
+ }
84
+ catch (err) {
85
+ if (err.code === 'ENOENT')
86
+ return true;
87
+ return false;
88
+ }
167
89
  }
168
90
  /**
169
91
  * Reads a text file from the specified path.
@@ -172,23 +94,13 @@ export function deleteFileIfExists(path) {
172
94
  * @param {BufferEncoding} [encoding="utf-8"] - The encoding to use.
173
95
  * @returns {Promise<string | null>} The file contents, or `null` if reading fails.
174
96
  */
175
- export function readTextFile(path_1) {
176
- return __awaiter(this, arguments, void 0, function (path, encoding) {
177
- var _a;
178
- if (encoding === void 0) { encoding = 'utf-8'; }
179
- return __generator(this, function (_b) {
180
- switch (_b.label) {
181
- case 0:
182
- _b.trys.push([0, 2, , 3]);
183
- return [4 /*yield*/, fs.readFile(path, encoding)];
184
- case 1: return [2 /*return*/, _b.sent()];
185
- case 2:
186
- _a = _b.sent();
187
- return [2 /*return*/, null];
188
- case 3: return [2 /*return*/];
189
- }
190
- });
191
- });
97
+ export async function readTextFile(path, encoding = 'utf-8') {
98
+ try {
99
+ return await fs.readFile(path, encoding);
100
+ }
101
+ catch {
102
+ return null;
103
+ }
192
104
  }
193
105
  /**
194
106
  * Writes text content to a file.
@@ -198,25 +110,14 @@ export function readTextFile(path_1) {
198
110
  * @param {BufferEncoding} [encoding="utf-8"] - The encoding to use.
199
111
  * @returns {Promise<boolean>} Resolves to `true` if successful, `false` otherwise.
200
112
  */
201
- export function writeTextFile(path_1, content_1) {
202
- return __awaiter(this, arguments, void 0, function (path, content, encoding) {
203
- var _a;
204
- if (encoding === void 0) { encoding = 'utf-8'; }
205
- return __generator(this, function (_b) {
206
- switch (_b.label) {
207
- case 0:
208
- _b.trys.push([0, 2, , 3]);
209
- return [4 /*yield*/, fs.writeFile(path, content, encoding)];
210
- case 1:
211
- _b.sent();
212
- return [2 /*return*/, true];
213
- case 2:
214
- _a = _b.sent();
215
- return [2 /*return*/, false];
216
- case 3: return [2 /*return*/];
217
- }
218
- });
219
- });
113
+ export async function writeTextFile(path, content, encoding = 'utf-8') {
114
+ try {
115
+ await fs.writeFile(path, content, encoding);
116
+ return true;
117
+ }
118
+ catch {
119
+ return false;
120
+ }
220
121
  }
221
122
  /**
222
123
  * Appends text content to a file.
@@ -226,25 +127,14 @@ export function writeTextFile(path_1, content_1) {
226
127
  * @param {BufferEncoding} [encoding="utf-8"] - The encoding to use.
227
128
  * @returns {Promise<boolean>} Resolves to `true` if successful, `false` otherwise.
228
129
  */
229
- export function appendTextFile(path_1, content_1) {
230
- return __awaiter(this, arguments, void 0, function (path, content, encoding) {
231
- var _a;
232
- if (encoding === void 0) { encoding = 'utf-8'; }
233
- return __generator(this, function (_b) {
234
- switch (_b.label) {
235
- case 0:
236
- _b.trys.push([0, 2, , 3]);
237
- return [4 /*yield*/, fs.appendFile(path, content, encoding)];
238
- case 1:
239
- _b.sent();
240
- return [2 /*return*/, true];
241
- case 2:
242
- _a = _b.sent();
243
- return [2 /*return*/, false];
244
- case 3: return [2 /*return*/];
245
- }
246
- });
247
- });
130
+ export async function appendTextFile(path, content, encoding = 'utf-8') {
131
+ try {
132
+ await fs.appendFile(path, content, encoding);
133
+ return true;
134
+ }
135
+ catch {
136
+ return false;
137
+ }
248
138
  }
249
139
  /**
250
140
  * Copies a file from source to destination.
@@ -254,26 +144,15 @@ export function appendTextFile(path_1, content_1) {
254
144
  * @param {boolean} [overwrite=false] - Whether to overwrite if destination exists.
255
145
  * @returns {Promise<boolean>} Resolves to `true` if successful, `false` otherwise.
256
146
  */
257
- export function copyFile(source_1, destination_1) {
258
- return __awaiter(this, arguments, void 0, function (source, destination, overwrite) {
259
- var flags, _a;
260
- if (overwrite === void 0) { overwrite = false; }
261
- return __generator(this, function (_b) {
262
- switch (_b.label) {
263
- case 0:
264
- _b.trys.push([0, 2, , 3]);
265
- flags = overwrite ? 0 : fs.constants.COPYFILE_EXCL;
266
- return [4 /*yield*/, fs.copyFile(source, destination, flags)];
267
- case 1:
268
- _b.sent();
269
- return [2 /*return*/, true];
270
- case 2:
271
- _a = _b.sent();
272
- return [2 /*return*/, false];
273
- case 3: return [2 /*return*/];
274
- }
275
- });
276
- });
147
+ export async function copyFile(source, destination, overwrite = false) {
148
+ try {
149
+ const flags = overwrite ? 0 : fs.constants.COPYFILE_EXCL;
150
+ await fs.copyFile(source, destination, flags);
151
+ return true;
152
+ }
153
+ catch {
154
+ return false;
155
+ }
277
156
  }
278
157
  /**
279
158
  * Renames/moves a file.
@@ -282,37 +161,22 @@ export function copyFile(source_1, destination_1) {
282
161
  * @param {string} newPath - New file path.
283
162
  * @returns {Promise<boolean>} Resolves to `true` if successful, `false` otherwise.
284
163
  */
285
- export function moveFile(oldPath, newPath) {
286
- return __awaiter(this, void 0, void 0, function () {
287
- var _a, _b;
288
- return __generator(this, function (_c) {
289
- switch (_c.label) {
290
- case 0:
291
- _c.trys.push([0, 2, , 8]);
292
- return [4 /*yield*/, fs.rename(oldPath, newPath)];
293
- case 1:
294
- _c.sent();
295
- return [2 /*return*/, true];
296
- case 2:
297
- _a = _c.sent();
298
- _c.label = 3;
299
- case 3:
300
- _c.trys.push([3, 6, , 7]);
301
- return [4 /*yield*/, fs.copyFile(oldPath, newPath)];
302
- case 4:
303
- _c.sent();
304
- return [4 /*yield*/, fs.unlink(oldPath)];
305
- case 5:
306
- _c.sent();
307
- return [2 /*return*/, true];
308
- case 6:
309
- _b = _c.sent();
310
- return [2 /*return*/, false];
311
- case 7: return [3 /*break*/, 8];
312
- case 8: return [2 /*return*/];
313
- }
314
- });
315
- });
164
+ export async function moveFile(oldPath, newPath) {
165
+ try {
166
+ await fs.rename(oldPath, newPath);
167
+ return true;
168
+ }
169
+ catch {
170
+ // If rename fails (e.g., across devices), try copy+delete
171
+ try {
172
+ await fs.copyFile(oldPath, newPath);
173
+ await fs.unlink(oldPath);
174
+ return true;
175
+ }
176
+ catch {
177
+ return false;
178
+ }
179
+ }
316
180
  }
317
181
  /**
318
182
  * Gets file stats if the file exists.
@@ -320,22 +184,13 @@ export function moveFile(oldPath, newPath) {
320
184
  * @param {string} path - Path to the file.
321
185
  * @returns {Promise<fs.Stats | null>} File stats object or null if file doesn't exist.
322
186
  */
323
- export function getFileStats(path) {
324
- return __awaiter(this, void 0, void 0, function () {
325
- var _a;
326
- return __generator(this, function (_b) {
327
- switch (_b.label) {
328
- case 0:
329
- _b.trys.push([0, 2, , 3]);
330
- return [4 /*yield*/, fs.stat(path)];
331
- case 1: return [2 /*return*/, _b.sent()];
332
- case 2:
333
- _a = _b.sent();
334
- return [2 /*return*/, null];
335
- case 3: return [2 /*return*/];
336
- }
337
- });
338
- });
187
+ export async function getFileStats(path) {
188
+ try {
189
+ return await fs.stat(path);
190
+ }
191
+ catch {
192
+ return null;
193
+ }
339
194
  }
340
195
  /**
341
196
  * Creates a temporary file with optional content.
@@ -347,29 +202,17 @@ export function getFileStats(path) {
347
202
  * @param {string | Buffer} [options.content] - Optional content to write to the file.
348
203
  * @returns {Promise<string>} Path to the created temporary file.
349
204
  */
350
- export function createTempFile() {
351
- return __awaiter(this, arguments, void 0, function (_a) {
352
- var ext, filename, filepath;
353
- var _b = _a === void 0 ? {} : _a, _c = _b.prefix, prefix = _c === void 0 ? 'tmp-' : _c, _d = _b.extension, extension = _d === void 0 ? '' : _d, _e = _b.dir, dir = _e === void 0 ? tmpdir() : _e, content = _b.content;
354
- return __generator(this, function (_f) {
355
- switch (_f.label) {
356
- case 0:
357
- ext = extension ? (extension.startsWith('.') ? extension : ".".concat(extension)) : '';
358
- filename = "".concat(prefix).concat(randomUUID()).concat(ext);
359
- filepath = path.join(dir, filename);
360
- if (!content) return [3 /*break*/, 2];
361
- return [4 /*yield*/, fs.writeFile(filepath, content)];
362
- case 1:
363
- _f.sent();
364
- return [3 /*break*/, 4];
365
- case 2: return [4 /*yield*/, fs.writeFile(filepath, '')];
366
- case 3:
367
- _f.sent();
368
- _f.label = 4;
369
- case 4: return [2 /*return*/, filepath];
370
- }
371
- });
372
- });
205
+ export async function createTempFile({ prefix = 'tmp-', extension = '', dir = tmpdir(), content } = {}) {
206
+ const ext = extension ? (extension.startsWith('.') ? extension : `.${extension}`) : '';
207
+ const filename = `${prefix}${randomUUID()}${ext}`;
208
+ const filepath = path.join(dir, filename);
209
+ if (content) {
210
+ await fs.writeFile(filepath, content);
211
+ }
212
+ else {
213
+ await fs.writeFile(filepath, '');
214
+ }
215
+ return filepath;
373
216
  }
374
217
  /**
375
218
  * Streams a file from source to destination.
@@ -380,31 +223,18 @@ export function createTempFile() {
380
223
  * @returns {Promise<void>} Resolves when streaming completes.
381
224
  * @throws {Error} If streaming fails.
382
225
  */
383
- export function streamFile(source, destination) {
384
- return __awaiter(this, void 0, void 0, function () {
385
- var readStream, writeStream, error_1;
386
- return __generator(this, function (_a) {
387
- switch (_a.label) {
388
- case 0:
389
- readStream = createReadStream(source);
390
- writeStream = createWriteStream(destination);
391
- _a.label = 1;
392
- case 1:
393
- _a.trys.push([1, 3, , 4]);
394
- return [4 /*yield*/, pipeline(readStream, writeStream)];
395
- case 2:
396
- _a.sent();
397
- return [3 /*break*/, 4];
398
- case 3:
399
- error_1 = _a.sent();
400
- // Ensure both streams are closed in case of error
401
- readStream.destroy();
402
- writeStream.destroy();
403
- throw error_1;
404
- case 4: return [2 /*return*/];
405
- }
406
- });
407
- });
226
+ export async function streamFile(source, destination) {
227
+ const readStream = createReadStream(source);
228
+ const writeStream = createWriteStream(destination);
229
+ try {
230
+ await pipeline(readStream, writeStream);
231
+ }
232
+ catch (error) {
233
+ // Ensure both streams are closed in case of error
234
+ readStream.destroy();
235
+ writeStream.destroy();
236
+ throw error;
237
+ }
408
238
  }
409
239
  /**
410
240
  * Reads a directory and returns file names.
@@ -416,26 +246,16 @@ export function streamFile(source, destination) {
416
246
  * @returns {Promise<string[]>} Array of file names or paths.
417
247
  * @throws {Error} If directory cannot be read.
418
248
  */
419
- export function readDirectory(dirPath_1) {
420
- return __awaiter(this, arguments, void 0, function (dirPath, options) {
421
- var files, result;
422
- if (options === void 0) { options = {}; }
423
- return __generator(this, function (_a) {
424
- switch (_a.label) {
425
- case 0: return [4 /*yield*/, fs.readdir(dirPath)];
426
- case 1:
427
- files = _a.sent();
428
- result = files;
429
- if (options.filter) {
430
- result = result.filter(function (file) { return options.filter.test(file); });
431
- }
432
- if (options.fullPaths) {
433
- result = result.map(function (file) { return path.join(dirPath, file); });
434
- }
435
- return [2 /*return*/, result];
436
- }
437
- });
438
- });
249
+ export async function readDirectory(dirPath, options = {}) {
250
+ const files = await fs.readdir(dirPath);
251
+ let result = files;
252
+ if (options.filter) {
253
+ result = result.filter(file => options.filter.test(file));
254
+ }
255
+ if (options.fullPaths) {
256
+ result = result.map(file => path.join(dirPath, file));
257
+ }
258
+ return result;
439
259
  }
440
260
  /**
441
261
  * Creates a directory if it doesn't exist.
@@ -444,26 +264,15 @@ export function readDirectory(dirPath_1) {
444
264
  * @param {boolean} [recursive=true] - Whether to create parent directories.
445
265
  * @returns {Promise<boolean>} Resolves to `true` if successful, `false` otherwise.
446
266
  */
447
- export function createDirectory(dirPath_1) {
448
- return __awaiter(this, arguments, void 0, function (dirPath, recursive) {
449
- var err_2;
450
- if (recursive === void 0) { recursive = true; }
451
- return __generator(this, function (_a) {
452
- switch (_a.label) {
453
- case 0:
454
- _a.trys.push([0, 2, , 3]);
455
- return [4 /*yield*/, fs.mkdir(dirPath, { recursive: recursive })];
456
- case 1:
457
- _a.sent();
458
- return [2 /*return*/, true];
459
- case 2:
460
- err_2 = _a.sent();
461
- // Consider it success if directory already exists
462
- return [2 /*return*/, err_2.code === 'EEXIST'];
463
- case 3: return [2 /*return*/];
464
- }
465
- });
466
- });
267
+ export async function createDirectory(dirPath, recursive = true) {
268
+ try {
269
+ await fs.mkdir(dirPath, { recursive });
270
+ return true;
271
+ }
272
+ catch (err) {
273
+ // Consider it success if directory already exists
274
+ return err.code === 'EEXIST';
275
+ }
467
276
  }
468
277
  /**
469
278
  * Safely reads and parses a JSON file with error details.
@@ -472,37 +281,26 @@ export function createDirectory(dirPath_1) {
472
281
  * @param {string} path - The path to the JSON file.
473
282
  * @returns {Promise<{ data: T | null; error: Error | null }>} Object with data and error properties.
474
283
  */
475
- export function safeReadJsonFile(path) {
476
- return __awaiter(this, void 0, void 0, function () {
477
- var content, data, error_2;
478
- return __generator(this, function (_a) {
479
- switch (_a.label) {
480
- case 0:
481
- _a.trys.push([0, 2, , 3]);
482
- return [4 /*yield*/, fs.readFile(path, 'utf-8')];
483
- case 1:
484
- content = _a.sent();
485
- try {
486
- data = JSON.parse(content);
487
- return [2 /*return*/, { data: data, error: null }];
488
- }
489
- catch (error) {
490
- return [2 /*return*/, {
491
- data: null,
492
- error: new Error("Invalid JSON in file ".concat(path, ": ").concat(error.message))
493
- }];
494
- }
495
- return [3 /*break*/, 3];
496
- case 2:
497
- error_2 = _a.sent();
498
- return [2 /*return*/, {
499
- data: null,
500
- error: new Error("Failed to read file ".concat(path, ": ").concat(error_2.message))
501
- }];
502
- case 3: return [2 /*return*/];
503
- }
504
- });
505
- });
284
+ export async function safeReadJsonFile(path) {
285
+ try {
286
+ const content = await fs.readFile(path, 'utf-8');
287
+ try {
288
+ const data = JSON.parse(content);
289
+ return { data, error: null };
290
+ }
291
+ catch (error) {
292
+ return {
293
+ data: null,
294
+ error: new Error(`Invalid JSON in file ${path}: ${error.message}`)
295
+ };
296
+ }
297
+ }
298
+ catch (error) {
299
+ return {
300
+ data: null,
301
+ error: new Error(`Failed to read file ${path}: ${error.message}`)
302
+ };
303
+ }
506
304
  }
507
305
  /**
508
306
  * Checks if a path points to a file (not a directory).
@@ -510,24 +308,14 @@ export function safeReadJsonFile(path) {
510
308
  * @param {string} path - Path to check.
511
309
  * @returns {Promise<boolean>} True if the path is a file, false otherwise.
512
310
  */
513
- export function isFile(path) {
514
- return __awaiter(this, void 0, void 0, function () {
515
- var stat, _a;
516
- return __generator(this, function (_b) {
517
- switch (_b.label) {
518
- case 0:
519
- _b.trys.push([0, 2, , 3]);
520
- return [4 /*yield*/, fs.stat(path)];
521
- case 1:
522
- stat = _b.sent();
523
- return [2 /*return*/, stat.isFile()];
524
- case 2:
525
- _a = _b.sent();
526
- return [2 /*return*/, false];
527
- case 3: return [2 /*return*/];
528
- }
529
- });
530
- });
311
+ export async function isFile(path) {
312
+ try {
313
+ const stat = await fs.stat(path);
314
+ return stat.isFile();
315
+ }
316
+ catch {
317
+ return false;
318
+ }
531
319
  }
532
320
  /**
533
321
  * Gets the size of a file in bytes.
@@ -535,24 +323,14 @@ export function isFile(path) {
535
323
  * @param {string} path - Path to the file.
536
324
  * @returns {Promise<number>} Size in bytes or -1 if file doesn't exist.
537
325
  */
538
- export function getFileSize(path) {
539
- return __awaiter(this, void 0, void 0, function () {
540
- var stat, _a;
541
- return __generator(this, function (_b) {
542
- switch (_b.label) {
543
- case 0:
544
- _b.trys.push([0, 2, , 3]);
545
- return [4 /*yield*/, fs.stat(path)];
546
- case 1:
547
- stat = _b.sent();
548
- return [2 /*return*/, stat.size];
549
- case 2:
550
- _a = _b.sent();
551
- return [2 /*return*/, -1];
552
- case 3: return [2 /*return*/];
553
- }
554
- });
555
- });
326
+ export async function getFileSize(path) {
327
+ try {
328
+ const stat = await fs.stat(path);
329
+ return stat.size;
330
+ }
331
+ catch {
332
+ return -1;
333
+ }
556
334
  }
557
335
  /**
558
336
  * Reads a file as a Buffer.
@@ -560,21 +338,11 @@ export function getFileSize(path) {
560
338
  * @param {string} path - Path to the file.
561
339
  * @returns {Promise<Buffer | null>} File contents as Buffer or null if reading fails.
562
340
  */
563
- export function readFileBuffer(path) {
564
- return __awaiter(this, void 0, void 0, function () {
565
- var _a;
566
- return __generator(this, function (_b) {
567
- switch (_b.label) {
568
- case 0:
569
- _b.trys.push([0, 2, , 3]);
570
- return [4 /*yield*/, fs.readFile(path)];
571
- case 1: return [2 /*return*/, _b.sent()];
572
- case 2:
573
- _a = _b.sent();
574
- return [2 /*return*/, null];
575
- case 3: return [2 /*return*/];
576
- }
577
- });
578
- });
341
+ export async function readFileBuffer(path) {
342
+ try {
343
+ return await fs.readFile(path);
344
+ }
345
+ catch {
346
+ return null;
347
+ }
579
348
  }
580
- //# sourceMappingURL=fs.utils.js.map