@withwiz/toolkit 0.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (380) hide show
  1. package/README.md +162 -0
  2. package/dist/auth/adapters/prisma/index.d.ts +43 -0
  3. package/dist/auth/adapters/prisma/index.js +284 -0
  4. package/dist/auth/core/email/token-generator.d.ts +43 -0
  5. package/dist/auth/core/email/token-generator.js +7 -0
  6. package/dist/auth/core/jwt/client.d.ts +87 -0
  7. package/dist/auth/core/jwt/client.js +36 -0
  8. package/dist/auth/core/jwt/index.d.ts +110 -0
  9. package/dist/auth/core/jwt/index.js +10 -0
  10. package/dist/auth/core/jwt/types.d.ts +6 -0
  11. package/dist/auth/core/jwt/types.js +13 -0
  12. package/dist/auth/core/oauth/index.d.ts +51 -0
  13. package/dist/auth/core/oauth/index.js +12 -0
  14. package/dist/auth/core/password/client-helper.d.ts +44 -0
  15. package/dist/auth/core/password/client-helper.js +28 -0
  16. package/dist/auth/core/password/index.d.ts +71 -0
  17. package/dist/auth/core/password/index.js +14 -0
  18. package/dist/auth/errors/index.d.ts +49 -0
  19. package/dist/auth/errors/index.js +17 -0
  20. package/dist/auth/index.d.ts +21 -0
  21. package/dist/auth/index.js +97 -0
  22. package/dist/auth/types/index.d.ts +213 -0
  23. package/dist/auth/types/index.js +13 -0
  24. package/dist/cache/cache-config.d.ts +73 -0
  25. package/dist/cache/cache-config.js +12 -0
  26. package/dist/cache/cache-defaults.d.ts +141 -0
  27. package/dist/cache/cache-defaults.js +33 -0
  28. package/dist/cache/cache-env.d.ts +75 -0
  29. package/dist/cache/cache-env.js +25 -0
  30. package/dist/cache/cache-factory.d.ts +34 -0
  31. package/dist/cache/cache-factory.js +28 -0
  32. package/dist/cache/cache-invalidation.d.ts +90 -0
  33. package/dist/cache/cache-invalidation.js +24 -0
  34. package/dist/cache/cache-keys-legacy.d.ts +35 -0
  35. package/dist/cache/cache-keys-legacy.js +7 -0
  36. package/dist/cache/cache-redis.d.ts +74 -0
  37. package/dist/cache/cache-redis.js +24 -0
  38. package/dist/cache/cache-types.d.ts +151 -0
  39. package/dist/cache/cache-types.js +9 -0
  40. package/dist/cache/cache-wrapper.d.ts +27 -0
  41. package/dist/cache/cache-wrapper.js +22 -0
  42. package/dist/cache/cache.d.ts +14 -0
  43. package/dist/cache/cache.js +112 -0
  44. package/dist/cache/hybrid-cache-manager.d.ts +148 -0
  45. package/dist/cache/hybrid-cache-manager.js +13 -0
  46. package/dist/cache/index.d.ts +21 -0
  47. package/dist/cache/index.js +112 -0
  48. package/dist/cache/inmemory-cache-manager.d.ts +163 -0
  49. package/dist/cache/inmemory-cache-manager.js +9 -0
  50. package/dist/cache/noop-cache-manager.d.ts +36 -0
  51. package/dist/cache/noop-cache-manager.js +11 -0
  52. package/dist/cache/redis-cache-manager.d.ts +34 -0
  53. package/dist/cache/redis-cache-manager.js +11 -0
  54. package/dist/chunk-26Y7VEYG.js +93 -0
  55. package/dist/chunk-2DVWSDST.js +119 -0
  56. package/dist/chunk-2KAPUVIS.js +155 -0
  57. package/dist/chunk-2TO7WUKK.js +93 -0
  58. package/dist/chunk-34WAGUT5.js +117 -0
  59. package/dist/chunk-3DZA6AGS.js +120 -0
  60. package/dist/chunk-4DPSCTX4.js +212 -0
  61. package/dist/chunk-4KJXENRM.js +64 -0
  62. package/dist/chunk-4NWJ3WCZ.js +28 -0
  63. package/dist/chunk-4ODT3Q4A.js +86 -0
  64. package/dist/chunk-5ATB5D6S.js +40 -0
  65. package/dist/chunk-62FLBG6B.js +34 -0
  66. package/dist/chunk-62Q7DN5G.js +25 -0
  67. package/dist/chunk-65LHDFU3.js +242 -0
  68. package/dist/chunk-6C7HQIX4.js +13 -0
  69. package/dist/chunk-6D3HHYER.js +32 -0
  70. package/dist/chunk-6LTZCXNC.js +326 -0
  71. package/dist/chunk-7VJNLGAS.js +110 -0
  72. package/dist/chunk-7XFHGAJP.js +0 -0
  73. package/dist/chunk-A6EAAWMK.js +50 -0
  74. package/dist/chunk-AHDPGRXS.js +51 -0
  75. package/dist/chunk-AIH3F7JV.js +76 -0
  76. package/dist/chunk-AIHQBQ3E.js +109 -0
  77. package/dist/chunk-BKGVSC6S.js +152 -0
  78. package/dist/chunk-COK4ZXNG.js +0 -0
  79. package/dist/chunk-DEEJBDJE.js +47 -0
  80. package/dist/chunk-DH2ZHGW2.js +53 -0
  81. package/dist/chunk-EBUEBEJX.js +0 -0
  82. package/dist/chunk-EEUBKZV4.js +54 -0
  83. package/dist/chunk-EQYTE7WD.js +139 -0
  84. package/dist/chunk-EUQATJLI.js +180 -0
  85. package/dist/chunk-EZC6ETFW.js +80 -0
  86. package/dist/chunk-EZR55KV2.js +249 -0
  87. package/dist/chunk-F6LCSFSU.js +31 -0
  88. package/dist/chunk-FOKAATUQ.js +62 -0
  89. package/dist/chunk-FW3IEJ7H.js +71 -0
  90. package/dist/chunk-G26T2PRQ.js +53 -0
  91. package/dist/chunk-G4NI37NN.js +257 -0
  92. package/dist/chunk-GCZOXUDV.js +132 -0
  93. package/dist/chunk-GDWEDUHO.js +55 -0
  94. package/dist/chunk-GL2NANFH.js +434 -0
  95. package/dist/chunk-GPBOMJSZ.js +136 -0
  96. package/dist/chunk-H5I5GWAA.js +94 -0
  97. package/dist/chunk-HGC4CCKB.js +29 -0
  98. package/dist/chunk-HV3DGSSH.js +447 -0
  99. package/dist/chunk-I47QEDTX.js +193 -0
  100. package/dist/chunk-IAJNC34M.js +102 -0
  101. package/dist/chunk-IHXRF3BH.js +215 -0
  102. package/dist/chunk-IJEZ7G7S.js +26 -0
  103. package/dist/chunk-IQQKKUAV.js +151 -0
  104. package/dist/chunk-JBCDEAMW.js +35 -0
  105. package/dist/chunk-JLLMTTQ4.js +75 -0
  106. package/dist/chunk-JS5VI3OW.js +143 -0
  107. package/dist/chunk-KAWVMIRJ.js +44 -0
  108. package/dist/chunk-KMCJIL57.js +214 -0
  109. package/dist/chunk-KWTBD4CM.js +145 -0
  110. package/dist/chunk-KXAWBFJN.js +310 -0
  111. package/dist/chunk-L25BNU3E.js +56 -0
  112. package/dist/chunk-L76O3X3D.js +197 -0
  113. package/dist/chunk-LNV2E4I6.js +63 -0
  114. package/dist/chunk-MLGO3HLS.js +329 -0
  115. package/dist/chunk-MRJE6OX5.js +22 -0
  116. package/dist/chunk-MYLGYX4K.js +57 -0
  117. package/dist/chunk-N4YGR5WH.js +310 -0
  118. package/dist/chunk-OIVXOT2X.js +80 -0
  119. package/dist/chunk-ORMEWXMH.js +37 -0
  120. package/dist/chunk-POKGHK3L.js +57 -0
  121. package/dist/chunk-Q7IP4JMW.js +69 -0
  122. package/dist/chunk-RJUVBBZG.js +27 -0
  123. package/dist/chunk-S73334QY.js +89 -0
  124. package/dist/chunk-SLG26KHZ.js +101 -0
  125. package/dist/chunk-SR65BF6X.js +82 -0
  126. package/dist/chunk-SS56XFLI.js +19 -0
  127. package/dist/chunk-T3LJYAMO.js +277 -0
  128. package/dist/chunk-TDZJ6SAI.js +34 -0
  129. package/dist/chunk-TEIYA7U4.js +72 -0
  130. package/dist/chunk-TMVS4F7E.js +88 -0
  131. package/dist/chunk-TRBKJ7JT.js +137 -0
  132. package/dist/chunk-TXGNSECL.js +84 -0
  133. package/dist/chunk-TZAP5T4N.js +188 -0
  134. package/dist/chunk-UCYQNHST.js +24 -0
  135. package/dist/chunk-ULF5RDDX.js +0 -0
  136. package/dist/chunk-UXQRU3EM.js +167 -0
  137. package/dist/chunk-V5K5FYU7.js +200 -0
  138. package/dist/chunk-VDXB5DCY.js +68 -0
  139. package/dist/chunk-VSGKVZB4.js +47 -0
  140. package/dist/chunk-VWODEQ5C.js +204 -0
  141. package/dist/chunk-WDUFQFDP.js +193 -0
  142. package/dist/chunk-WHR7HPWF.js +126 -0
  143. package/dist/chunk-WSQMXMTL.js +122 -0
  144. package/dist/chunk-XHZ5L4FO.js +103 -0
  145. package/dist/chunk-XPASCCUA.js +404 -0
  146. package/dist/chunk-XRRPEBKB.js +231 -0
  147. package/dist/chunk-Y2TUZFCP.js +0 -0
  148. package/dist/chunk-Y3OTJH2S.js +473 -0
  149. package/dist/chunk-YBSHN67U.js +161 -0
  150. package/dist/chunk-YJ3TLEW3.js +100 -0
  151. package/dist/chunk-YJWLWUFK.js +105 -0
  152. package/dist/chunk-Z4D4CMDA.js +488 -0
  153. package/dist/chunk-ZHVUK5OY.js +314 -0
  154. package/dist/chunk-ZTN4X5FN.js +29 -0
  155. package/dist/chunk-ZZIKRBJU.js +96 -0
  156. package/dist/components/ui/Alert.d.ts +12 -0
  157. package/dist/components/ui/Alert.js +10 -0
  158. package/dist/components/ui/Badge.d.ts +7 -0
  159. package/dist/components/ui/Badge.js +8 -0
  160. package/dist/components/ui/Button.d.ts +7 -0
  161. package/dist/components/ui/Button.js +8 -0
  162. package/dist/components/ui/DataTable.d.ts +103 -0
  163. package/dist/components/ui/DataTable.js +606 -0
  164. package/dist/components/ui/DomainDisplay.d.ts +12 -0
  165. package/dist/components/ui/DomainDisplay.js +31 -0
  166. package/dist/components/ui/Input.d.ts +5 -0
  167. package/dist/components/ui/Input.js +8 -0
  168. package/dist/components/ui/Label.d.ts +5 -0
  169. package/dist/components/ui/Label.js +8 -0
  170. package/dist/components/ui/Pagination.d.ts +42 -0
  171. package/dist/components/ui/Pagination.js +20 -0
  172. package/dist/components/ui/Select.d.ts +15 -0
  173. package/dist/components/ui/Select.js +27 -0
  174. package/dist/components/ui/Skeleton.d.ts +6 -0
  175. package/dist/components/ui/Skeleton.js +8 -0
  176. package/dist/components/ui/TimezoneDisplay.d.ts +22 -0
  177. package/dist/components/ui/TimezoneDisplay.js +83 -0
  178. package/dist/components/ui/Tooltip.d.ts +21 -0
  179. package/dist/components/ui/Tooltip.js +94 -0
  180. package/dist/components/ui/WorldMapChart.d.ts +17 -0
  181. package/dist/components/ui/WorldMapChart.js +250 -0
  182. package/dist/components/ui/loading-bar.d.ts +20 -0
  183. package/dist/components/ui/loading-bar.js +15 -0
  184. package/dist/constants/error-codes.d.ts +389 -0
  185. package/dist/constants/error-codes.js +27 -0
  186. package/dist/constants/index.d.ts +11 -0
  187. package/dist/constants/index.js +85 -0
  188. package/dist/constants/messages.d.ts +83 -0
  189. package/dist/constants/messages.js +13 -0
  190. package/dist/constants/pagination.d.ts +43 -0
  191. package/dist/constants/pagination.js +15 -0
  192. package/dist/constants/security.d.ts +66 -0
  193. package/dist/constants/security.js +23 -0
  194. package/dist/constants/validation.d.ts +60 -0
  195. package/dist/constants/validation.js +19 -0
  196. package/dist/error/ErrorBoundary.d.ts +47 -0
  197. package/dist/error/app-error.d.ts +144 -0
  198. package/dist/error/app-error.js +10 -0
  199. package/dist/error/components/EmptyState.d.ts +50 -0
  200. package/dist/error/components/ErrorAlert.d.ts +50 -0
  201. package/dist/error/components/ErrorPage.d.ts +39 -0
  202. package/dist/error/components/LoadingState.d.ts +37 -0
  203. package/dist/error/components/index.d.ts +13 -0
  204. package/dist/error/components/index.js +18 -0
  205. package/dist/error/core/locale-detector.d.ts +44 -0
  206. package/dist/error/core/locale-detector.js +9 -0
  207. package/dist/error/error-display.d.ts +55 -0
  208. package/dist/error/error-display.js +24 -0
  209. package/dist/error/error-handler.d.ts +118 -0
  210. package/dist/error/error-handler.js +18 -0
  211. package/dist/error/friendly-messages-v2.d.ts +46 -0
  212. package/dist/error/friendly-messages-v2.js +15 -0
  213. package/dist/error/friendly-messages.d.ts +22 -0
  214. package/dist/error/friendly-messages.js +12 -0
  215. package/dist/error/hooks/index.d.ts +7 -0
  216. package/dist/error/hooks/index.js +14 -0
  217. package/dist/error/hooks/useErrorHandler.d.ts +67 -0
  218. package/dist/error/hooks/useErrorHandler.js +14 -0
  219. package/dist/error/index.d.ts +26 -0
  220. package/dist/error/index.js +289 -0
  221. package/dist/error/logging/error-logger.d.ts +77 -0
  222. package/dist/error/logging/error-logger.js +10 -0
  223. package/dist/error/logging/index.d.ts +9 -0
  224. package/dist/error/logging/index.js +35 -0
  225. package/dist/error/logging/transports/base.d.ts +30 -0
  226. package/dist/error/logging/transports/base.js +7 -0
  227. package/dist/error/logging/transports/console.d.ts +40 -0
  228. package/dist/error/logging/transports/console.js +9 -0
  229. package/dist/error/logging/transports/file.d.ts +49 -0
  230. package/dist/error/logging/transports/file.js +8 -0
  231. package/dist/error/logging/transports/index.d.ts +12 -0
  232. package/dist/error/logging/transports/index.js +25 -0
  233. package/dist/error/logging/transports/sentry.d.ts +44 -0
  234. package/dist/error/logging/transports/sentry.js +9 -0
  235. package/dist/error/logging/transports/slack.d.ts +51 -0
  236. package/dist/error/logging/transports/slack.js +9 -0
  237. package/dist/error/logging/types.d.ts +83 -0
  238. package/dist/error/logging/types.js +7 -0
  239. package/dist/error/messages/en.d.ts +5 -0
  240. package/dist/error/messages/en.js +7 -0
  241. package/dist/error/messages/index.d.ts +40 -0
  242. package/dist/error/messages/index.js +17 -0
  243. package/dist/error/messages/ko.d.ts +5 -0
  244. package/dist/error/messages/ko.js +7 -0
  245. package/dist/error/messages/types.d.ts +30 -0
  246. package/dist/error/messages/types.js +0 -0
  247. package/dist/error/recovery/circuit-breaker.d.ts +85 -0
  248. package/dist/error/recovery/circuit-breaker.js +9 -0
  249. package/dist/error/recovery/degradation.d.ts +56 -0
  250. package/dist/error/recovery/degradation.js +7 -0
  251. package/dist/error/recovery/fallback.d.ts +55 -0
  252. package/dist/error/recovery/fallback.js +11 -0
  253. package/dist/error/recovery/index.d.ts +12 -0
  254. package/dist/error/recovery/index.js +26 -0
  255. package/dist/error/recovery/retry.d.ts +44 -0
  256. package/dist/error/recovery/retry.js +7 -0
  257. package/dist/geolocation/batch-processor.d.ts +33 -0
  258. package/dist/geolocation/batch-processor.js +10 -0
  259. package/dist/geolocation/index.d.ts +14 -0
  260. package/dist/geolocation/index.js +36 -0
  261. package/dist/geolocation/providers/base-provider.d.ts +33 -0
  262. package/dist/geolocation/providers/base-provider.js +9 -0
  263. package/dist/geolocation/providers/index.d.ts +54 -0
  264. package/dist/geolocation/providers/index.js +29 -0
  265. package/dist/geolocation/providers/ip-api-provider.d.ts +17 -0
  266. package/dist/geolocation/providers/ip-api-provider.js +8 -0
  267. package/dist/geolocation/providers/ipapi-co-provider.d.ts +17 -0
  268. package/dist/geolocation/providers/ipapi-co-provider.js +8 -0
  269. package/dist/geolocation/providers/ipgeolocation-provider.d.ts +18 -0
  270. package/dist/geolocation/providers/ipgeolocation-provider.js +8 -0
  271. package/dist/geolocation/providers/maxmind-provider.d.ts +18 -0
  272. package/dist/geolocation/providers/maxmind-provider.js +8 -0
  273. package/dist/hooks/useDataTable.d.ts +51 -0
  274. package/dist/hooks/useDataTable.js +149 -0
  275. package/dist/hooks/useDebounce.d.ts +7 -0
  276. package/dist/hooks/useDebounce.js +7 -0
  277. package/dist/hooks/useExitIntent.d.ts +35 -0
  278. package/dist/hooks/useExitIntent.js +72 -0
  279. package/dist/hooks/useTimezone.d.ts +19 -0
  280. package/dist/hooks/useTimezone.js +11 -0
  281. package/dist/logger/logger.d.ts +11 -0
  282. package/dist/logger/logger.js +17 -0
  283. package/dist/middleware/auth.d.ts +87 -0
  284. package/dist/middleware/auth.js +20 -0
  285. package/dist/middleware/cors.d.ts +30 -0
  286. package/dist/middleware/cors.js +10 -0
  287. package/dist/middleware/error-handler.d.ts +23 -0
  288. package/dist/middleware/error-handler.js +13 -0
  289. package/dist/middleware/index.d.ts +16 -0
  290. package/dist/middleware/index.js +72 -0
  291. package/dist/middleware/init-request.d.ts +18 -0
  292. package/dist/middleware/init-request.js +8 -0
  293. package/dist/middleware/middleware-chain.d.ts +53 -0
  294. package/dist/middleware/middleware-chain.js +8 -0
  295. package/dist/middleware/rate-limit.d.ts +82 -0
  296. package/dist/middleware/rate-limit.js +14 -0
  297. package/dist/middleware/response-logger.d.ts +22 -0
  298. package/dist/middleware/response-logger.js +8 -0
  299. package/dist/middleware/security.d.ts +31 -0
  300. package/dist/middleware/security.js +9 -0
  301. package/dist/middleware/types.d.ts +45 -0
  302. package/dist/middleware/types.js +0 -0
  303. package/dist/middleware/wrappers.d.ts +91 -0
  304. package/dist/middleware/wrappers.js +32 -0
  305. package/dist/storage/r2-storage.d.ts +38 -0
  306. package/dist/storage/r2-storage.js +105 -0
  307. package/dist/system/cpu.d.ts +2 -0
  308. package/dist/system/cpu.js +9 -0
  309. package/dist/system/disk.d.ts +2 -0
  310. package/dist/system/disk.js +9 -0
  311. package/dist/system/environment.d.ts +8 -0
  312. package/dist/system/environment.js +9 -0
  313. package/dist/system/health-check.d.ts +26 -0
  314. package/dist/system/health-check.js +10 -0
  315. package/dist/system/index.d.ts +51 -0
  316. package/dist/system/index.js +194 -0
  317. package/dist/system/memory.d.ts +2 -0
  318. package/dist/system/memory.js +9 -0
  319. package/dist/system/network.d.ts +2 -0
  320. package/dist/system/network.js +9 -0
  321. package/dist/system/types.d.ts +93 -0
  322. package/dist/system/types.js +0 -0
  323. package/dist/system/utils.d.ts +12 -0
  324. package/dist/system/utils.js +26 -0
  325. package/dist/types/api.d.ts +80 -0
  326. package/dist/types/api.js +0 -0
  327. package/dist/types/database.d.ts +38 -0
  328. package/dist/types/database.js +0 -0
  329. package/dist/types/env.d.ts +105 -0
  330. package/dist/types/env.js +0 -0
  331. package/dist/types/geoip.d.ts +152 -0
  332. package/dist/types/geoip.js +0 -0
  333. package/dist/types/i18n.d.ts +11 -0
  334. package/dist/types/i18n.js +0 -0
  335. package/dist/types/qr-code.d.ts +139 -0
  336. package/dist/types/qr-code.js +75 -0
  337. package/dist/types/user.d.ts +54 -0
  338. package/dist/types/user.js +0 -0
  339. package/dist/utils/api-helpers.d.ts +147 -0
  340. package/dist/utils/api-helpers.js +30 -0
  341. package/dist/utils/client/client-utils.d.ts +3 -0
  342. package/dist/utils/client/client-utils.js +9 -0
  343. package/dist/utils/client/qr-code.d.ts +16 -0
  344. package/dist/utils/client/qr-code.js +215 -0
  345. package/dist/utils/cors.d.ts +40 -0
  346. package/dist/utils/cors.js +21 -0
  347. package/dist/utils/csv-export.d.ts +97 -0
  348. package/dist/utils/csv-export.js +20 -0
  349. package/dist/utils/error-message-formatter.d.ts +17 -0
  350. package/dist/utils/error-message-formatter.js +11 -0
  351. package/dist/utils/error-processor.d.ts +70 -0
  352. package/dist/utils/error-processor.js +34 -0
  353. package/dist/utils/format-number.d.ts +17 -0
  354. package/dist/utils/format-number.js +9 -0
  355. package/dist/utils/index.d.ts +13 -0
  356. package/dist/utils/index.js +160 -0
  357. package/dist/utils/input-validation.d.ts +88 -0
  358. package/dist/utils/input-validation.js +223 -0
  359. package/dist/utils/ip-utils.d.ts +15 -0
  360. package/dist/utils/ip-utils.js +91 -0
  361. package/dist/utils/optimistic-lock.d.ts +27 -0
  362. package/dist/utils/optimistic-lock.js +16 -0
  363. package/dist/utils/sanitizer.d.ts +72 -0
  364. package/dist/utils/sanitizer.js +19 -0
  365. package/dist/utils/shared-utils.d.ts +25 -0
  366. package/dist/utils/shared-utils.js +43 -0
  367. package/dist/utils/short-code-generator.d.ts +24 -0
  368. package/dist/utils/short-code-generator.js +9 -0
  369. package/dist/utils/timezone.d.ts +56 -0
  370. package/dist/utils/timezone.js +29 -0
  371. package/dist/utils/type-guards.d.ts +164 -0
  372. package/dist/utils/type-guards.js +59 -0
  373. package/dist/utils/url-normalizer.d.ts +53 -0
  374. package/dist/utils/url-normalizer.js +21 -0
  375. package/dist/validators/index.d.ts +7 -0
  376. package/dist/validators/index.js +13 -0
  377. package/dist/validators/password-validator.d.ts +86 -0
  378. package/dist/validators/password-validator.js +13 -0
  379. package/dist/world_countries-C2WUL2CQ.js +279 -0
  380. package/package.json +129 -0
@@ -0,0 +1,212 @@
1
+ import {
2
+ runCommand,
3
+ runMacCommand
4
+ } from "./chunk-KWTBD4CM.js";
5
+ import {
6
+ logger
7
+ } from "./chunk-EZR55KV2.js";
8
+
9
+ // src/system/disk.ts
10
+ async function getDiskInfo() {
11
+ try {
12
+ const platform = process.platform;
13
+ if (platform === "darwin") {
14
+ return await getMacDiskInfo();
15
+ } else {
16
+ return await getLinuxDiskInfo();
17
+ }
18
+ } catch (error) {
19
+ logger.error("Disk info fetch error:", error);
20
+ throw error;
21
+ }
22
+ }
23
+ function normalizeToGB(sizeStr) {
24
+ const match = sizeStr.match(/^([\d.]+)\s*([KMGTP])?i?[Bb]?$/i);
25
+ if (!match) return sizeStr;
26
+ const value = parseFloat(match[1]);
27
+ const unit = (match[2] || "").toUpperCase();
28
+ let gbValue;
29
+ switch (unit) {
30
+ case "K":
31
+ gbValue = value / (1024 * 1024);
32
+ break;
33
+ case "M":
34
+ gbValue = value / 1024;
35
+ break;
36
+ case "G":
37
+ gbValue = value;
38
+ break;
39
+ case "T":
40
+ gbValue = value * 1024;
41
+ break;
42
+ case "P":
43
+ gbValue = value * 1024 * 1024;
44
+ break;
45
+ default:
46
+ gbValue = value / (1024 * 1024 * 1024);
47
+ }
48
+ if (gbValue >= 1e3) {
49
+ return `${(gbValue / 1024).toFixed(1)} TB`;
50
+ }
51
+ return `${gbValue.toFixed(1)} GB`;
52
+ }
53
+ async function getMacDiskInfo() {
54
+ try {
55
+ try {
56
+ const apfsOutput = await runMacCommand("diskutil apfs list 2>/dev/null");
57
+ const capacityCeilingMatch = apfsOutput.match(/Size \(Capacity Ceiling\):\s+([\d.]+)\s+B\s+\(([\d.]+)\s+GB\)/);
58
+ const capacityInUseMatch = apfsOutput.match(/Capacity In Use By Volumes:\s+([\d.]+)\s+B\s+\(([\d.]+)\s+GB\)\s+\(([\d.]+)% used\)/);
59
+ const capacityFreeMatch = apfsOutput.match(/Capacity Not Allocated:\s+([\d.]+)\s+B\s+\(([\d.]+)\s+GB\)/);
60
+ if (capacityCeilingMatch && capacityInUseMatch && capacityFreeMatch) {
61
+ const totalGB = parseFloat(capacityCeilingMatch[2]);
62
+ const usedGB = parseFloat(capacityInUseMatch[2]);
63
+ const availableGB = parseFloat(capacityFreeMatch[2]);
64
+ const percent = parseFloat(capacityInUseMatch[3]);
65
+ return {
66
+ total: `${totalGB.toFixed(1)} GB`,
67
+ used: `${usedGB.toFixed(1)} GB`,
68
+ available: `${availableGB.toFixed(1)} GB`,
69
+ percent: Math.round(percent)
70
+ };
71
+ }
72
+ } catch (apfsError) {
73
+ logger.debug("diskutil apfs list failed:", apfsError);
74
+ }
75
+ try {
76
+ const dfOutput = await runMacCommand("df -h /System/Volumes/Data 2>/dev/null || df -h /");
77
+ const lines = dfOutput.split("\n");
78
+ for (const line of lines) {
79
+ if (line.includes("/dev/")) {
80
+ const parts = line.split(/\s+/);
81
+ if (parts.length >= 5) {
82
+ const total = normalizeToGB(parts[1]);
83
+ const used = normalizeToGB(parts[2]);
84
+ const available = normalizeToGB(parts[3]);
85
+ const percentStr = parts[4].replace("%", "");
86
+ const percent = parseInt(percentStr) || 0;
87
+ return { total, used, available, percent };
88
+ }
89
+ }
90
+ }
91
+ } catch (dfError) {
92
+ logger.debug("df fallback failed:", dfError);
93
+ }
94
+ try {
95
+ const diskutilOutput = await runMacCommand("diskutil info / | grep -E 'Total Size|Container Total Space'");
96
+ const totalMatch = diskutilOutput.match(/(\d+(?:\.\d+)?)\s+(B|KB|MB|GB|TB)/);
97
+ if (totalMatch) {
98
+ const size = parseFloat(totalMatch[1]);
99
+ const unit = totalMatch[2];
100
+ let totalGB = size;
101
+ switch (unit) {
102
+ case "B":
103
+ totalGB = size / (1024 * 1024 * 1024);
104
+ break;
105
+ case "KB":
106
+ totalGB = size / (1024 * 1024);
107
+ break;
108
+ case "MB":
109
+ totalGB = size / 1024;
110
+ break;
111
+ case "GB":
112
+ totalGB = size;
113
+ break;
114
+ case "TB":
115
+ totalGB = size * 1024;
116
+ break;
117
+ }
118
+ const percent = 70;
119
+ const usedGB = Math.round(totalGB * (percent / 100));
120
+ const availableGB = Math.round(totalGB - usedGB);
121
+ return {
122
+ total: `${Math.round(totalGB)} GB`,
123
+ used: `${usedGB} GB`,
124
+ available: `${availableGB} GB`,
125
+ percent
126
+ };
127
+ }
128
+ } catch (diskutilError) {
129
+ logger.debug("diskutil info fallback failed:", diskutilError);
130
+ }
131
+ throw new Error("Disk info parsing failed");
132
+ } catch (error) {
133
+ logger.debug("macOS disk info fetch failed:", error);
134
+ throw error;
135
+ }
136
+ }
137
+ async function getLinuxDiskInfo() {
138
+ try {
139
+ const dfOutput = await runCommand("df -h /");
140
+ const lines = dfOutput.split("\n");
141
+ for (const line of lines) {
142
+ if (line.includes("/dev/")) {
143
+ const parts = line.split(/\s+/);
144
+ if (parts.length >= 5) {
145
+ const total = normalizeToGB(parts[1]);
146
+ const used = normalizeToGB(parts[2]);
147
+ const available = normalizeToGB(parts[3]);
148
+ const percentStr = parts[4].replace("%", "");
149
+ const percent = parseInt(percentStr) || 0;
150
+ return { total, used, available, percent };
151
+ }
152
+ }
153
+ }
154
+ try {
155
+ const mountOutput = await runCommand("cat /proc/mounts | grep ' / '");
156
+ const mountParts = mountOutput.trim().split(/\s+/);
157
+ if (mountParts.length >= 2) {
158
+ const device = mountParts[0];
159
+ const deviceName = device.split("/").pop();
160
+ if (deviceName) {
161
+ const diskstatsOutput = await runCommand(`cat /proc/diskstats | grep '${deviceName}'`);
162
+ const diskParts = diskstatsOutput.trim().split(/\s+/);
163
+ if (diskParts.length >= 14) {
164
+ const totalBlocks = parseInt(diskParts[2]) || 0;
165
+ const totalBytes = totalBlocks * 512;
166
+ const percent = 60;
167
+ const totalGB = Math.round(totalBytes / (1024 * 1024 * 1024));
168
+ const usedGB = Math.round(totalGB * (percent / 100));
169
+ const availableGB = Math.round(totalGB - usedGB);
170
+ return {
171
+ total: `${totalGB} GB`,
172
+ used: `${usedGB} GB`,
173
+ available: `${availableGB} GB`,
174
+ percent
175
+ };
176
+ }
177
+ }
178
+ }
179
+ } catch (procError) {
180
+ logger.debug("/proc fallback failed:", procError);
181
+ }
182
+ throw new Error("Disk info parsing failed");
183
+ } catch (error) {
184
+ logger.debug("Linux disk info fetch failed:", error);
185
+ try {
186
+ const lsblkOutput = await runCommand("lsblk -b -o SIZE,MOUNTPOINT 2>/dev/null | grep -E '\\s+/$' | head -1");
187
+ const parts = lsblkOutput.trim().split(/\s+/);
188
+ if (parts.length >= 1) {
189
+ const sizeBytes = parseInt(parts[0]) || 0;
190
+ const totalGB = Math.round(sizeBytes / (1024 * 1024 * 1024));
191
+ if (totalGB > 0) {
192
+ const percent = 60;
193
+ const usedGB = Math.round(totalGB * (percent / 100));
194
+ const availableGB = Math.round(totalGB - usedGB);
195
+ return {
196
+ total: `${totalGB} GB`,
197
+ used: `${usedGB} GB`,
198
+ available: `${availableGB} GB`,
199
+ percent
200
+ };
201
+ }
202
+ }
203
+ } catch (lsblkError) {
204
+ logger.debug("lsblk fallback failed:", lsblkError);
205
+ }
206
+ throw new Error("All disk info retrieval methods failed.");
207
+ }
208
+ }
209
+
210
+ export {
211
+ getDiskInfo
212
+ };
@@ -0,0 +1,64 @@
1
+ import {
2
+ cache,
3
+ geoCache
4
+ } from "./chunk-AIHQBQ3E.js";
5
+
6
+ // src/cache/cache-invalidation.ts
7
+ var invalidateCache = {
8
+ /**
9
+ * 기본 캐시에서 단일 키 삭제
10
+ * @param key - 삭제할 캐시 키
11
+ */
12
+ byKey: async (key) => {
13
+ await cache.delete(key);
14
+ },
15
+ /**
16
+ * 기본 캐시에서 패턴으로 삭제
17
+ * @param pattern - 삭제할 캐시 키 패턴 (예: "user:*")
18
+ */
19
+ byPattern: async (pattern) => {
20
+ await cache.deletePattern(pattern);
21
+ },
22
+ /**
23
+ * GeoIP 캐시에서 단일 키 삭제
24
+ * @param key - 삭제할 캐시 키
25
+ */
26
+ geoByKey: async (key) => {
27
+ await geoCache.delete(key);
28
+ },
29
+ /**
30
+ * GeoIP 캐시에서 패턴으로 삭제
31
+ * @param pattern - 삭제할 캐시 키 패턴
32
+ */
33
+ geoByPattern: async (pattern) => {
34
+ await geoCache.deletePattern(pattern);
35
+ },
36
+ /**
37
+ * 기본 캐시 전체 삭제
38
+ */
39
+ all: async () => {
40
+ await cache.deletePattern("*");
41
+ },
42
+ /**
43
+ * GeoIP 캐시 전체 삭제
44
+ */
45
+ allGeo: async () => {
46
+ await geoCache.deletePattern("*");
47
+ }
48
+ };
49
+ async function deleteFromCache(cacheManager, key) {
50
+ await cacheManager.delete(key);
51
+ }
52
+ async function deletePatternFromCache(cacheManager, pattern) {
53
+ await cacheManager.deletePattern(pattern);
54
+ }
55
+ async function deletePatternFromMultipleCaches(cacheManagers, pattern) {
56
+ await Promise.all(cacheManagers.map((cm) => cm.deletePattern(pattern)));
57
+ }
58
+
59
+ export {
60
+ invalidateCache,
61
+ deleteFromCache,
62
+ deletePatternFromCache,
63
+ deletePatternFromMultipleCaches
64
+ };
@@ -0,0 +1,28 @@
1
+ import {
2
+ BaseGeoIPProvider
3
+ } from "./chunk-AHDPGRXS.js";
4
+
5
+ // src/geolocation/providers/maxmind-provider.ts
6
+ var MaxMindProvider = class extends BaseGeoIPProvider {
7
+ constructor() {
8
+ super(...arguments);
9
+ this.name = "maxmind";
10
+ this.rateLimit = 5e4;
11
+ // 분당 50000회 요청 제한 (엔터프라이즈 플랜 기준)
12
+ this.timeout = 2e3;
13
+ }
14
+ // 2초 타임아웃
15
+ url(ip) {
16
+ return "";
17
+ }
18
+ parseResponse(data) {
19
+ return null;
20
+ }
21
+ isAvailable() {
22
+ return !!process.env.MAXMIND_LICENSE_KEY;
23
+ }
24
+ };
25
+
26
+ export {
27
+ MaxMindProvider
28
+ };
@@ -0,0 +1,86 @@
1
+ import {
2
+ logger
3
+ } from "./chunk-EZR55KV2.js";
4
+ import {
5
+ __spreadValues
6
+ } from "./chunk-ORMEWXMH.js";
7
+
8
+ // src/middleware/middleware-chain.ts
9
+ var MiddlewareChain = class {
10
+ constructor(options = {}) {
11
+ this.middlewares = [];
12
+ this.options = __spreadValues({
13
+ continueOnError: false,
14
+ timeout: 3e4
15
+ }, options);
16
+ }
17
+ /**
18
+ * 미들웨어 추가
19
+ */
20
+ use(middleware) {
21
+ this.middlewares.push(middleware);
22
+ return this;
23
+ }
24
+ /**
25
+ * 체인 실행
26
+ *
27
+ * @param context - API 컨텍스트
28
+ * @param handler - 최종 핸들러 함수
29
+ * @param props - Next.js 동적 라우트 파라미터 (params 등)
30
+ */
31
+ async execute(context, handler, props) {
32
+ let index = 0;
33
+ const next = async () => {
34
+ if (index >= this.middlewares.length) {
35
+ return await handler(context, props);
36
+ }
37
+ const middleware = this.middlewares[index++];
38
+ try {
39
+ if (this.options.timeout) {
40
+ return await this.withTimeout(
41
+ middleware(context, next),
42
+ this.options.timeout
43
+ );
44
+ }
45
+ return await middleware(context, next);
46
+ } catch (error) {
47
+ if (this.options.continueOnError) {
48
+ logger.error("[MiddlewareChain] Error in middleware:", error);
49
+ return await next();
50
+ }
51
+ throw error;
52
+ }
53
+ };
54
+ return await next();
55
+ }
56
+ /**
57
+ * 타임아웃 처리
58
+ */
59
+ async withTimeout(promise, timeoutMs) {
60
+ return Promise.race([
61
+ promise,
62
+ new Promise(
63
+ (_, reject) => setTimeout(
64
+ () => reject(new Error(`Timeout after ${timeoutMs}ms`)),
65
+ timeoutMs
66
+ )
67
+ )
68
+ ]);
69
+ }
70
+ /**
71
+ * 미들웨어 개수 반환
72
+ */
73
+ get length() {
74
+ return this.middlewares.length;
75
+ }
76
+ /**
77
+ * 체인 초기화
78
+ */
79
+ clear() {
80
+ this.middlewares = [];
81
+ }
82
+ };
83
+
84
+ export {
85
+ MiddlewareChain
86
+ };
@@ -0,0 +1,40 @@
1
+ // src/utils/short-code-generator.ts
2
+ function generateShortCode(length = 8) {
3
+ if (!Number.isInteger(length) || length <= 0) {
4
+ throw new Error("length must be a positive integer");
5
+ }
6
+ const chars = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789";
7
+ let result = "";
8
+ for (let i = 0; i < length; i++) {
9
+ result += chars.charAt(Math.floor(Math.random() * chars.length));
10
+ }
11
+ return result;
12
+ }
13
+ async function generateUniqueShortCode(options = {}) {
14
+ const {
15
+ length = 8,
16
+ maxAttempts = 100,
17
+ checkDuplicate
18
+ } = options;
19
+ let shortCode;
20
+ let attempts = 0;
21
+ do {
22
+ shortCode = generateShortCode(length);
23
+ attempts++;
24
+ if (checkDuplicate) {
25
+ const isDuplicate = await checkDuplicate(shortCode);
26
+ if (!isDuplicate) break;
27
+ } else {
28
+ break;
29
+ }
30
+ if (attempts >= maxAttempts) {
31
+ throw new Error("Failed to generate unique shortCode after multiple attempts");
32
+ }
33
+ } while (true);
34
+ return shortCode;
35
+ }
36
+
37
+ export {
38
+ generateShortCode,
39
+ generateUniqueShortCode
40
+ };
@@ -0,0 +1,34 @@
1
+ // src/utils/client/client-utils.ts
2
+ import { clsx } from "clsx";
3
+ import { twMerge } from "tailwind-merge";
4
+ function cn(...inputs) {
5
+ return twMerge(clsx(inputs));
6
+ }
7
+ async function copyToClipboard(text) {
8
+ try {
9
+ if (navigator.clipboard && window.isSecureContext) {
10
+ await navigator.clipboard.writeText(text);
11
+ return true;
12
+ } else {
13
+ const textArea = document.createElement("textarea");
14
+ textArea.value = text;
15
+ textArea.style.position = "fixed";
16
+ textArea.style.left = "-999999px";
17
+ textArea.style.top = "-999999px";
18
+ document.body.appendChild(textArea);
19
+ textArea.focus();
20
+ textArea.select();
21
+ const result = document.execCommand("copy");
22
+ textArea.remove();
23
+ return result;
24
+ }
25
+ } catch (error) {
26
+ console.error("Failed to copy to clipboard:", error);
27
+ return false;
28
+ }
29
+ }
30
+
31
+ export {
32
+ cn,
33
+ copyToClipboard
34
+ };
@@ -0,0 +1,25 @@
1
+ import {
2
+ LocaleDetector
3
+ } from "./chunk-XHZ5L4FO.js";
4
+
5
+ // src/middleware/init-request.ts
6
+ import { randomUUID } from "crypto";
7
+ var initRequestMiddleware = async (context, next) => {
8
+ if (!context.requestId) {
9
+ context.requestId = randomUUID();
10
+ }
11
+ if (!context.locale) {
12
+ context.locale = LocaleDetector.detectServer(context.request);
13
+ }
14
+ if (!context.startTime) {
15
+ context.startTime = Date.now();
16
+ }
17
+ if (!context.metadata) {
18
+ context.metadata = {};
19
+ }
20
+ return await next();
21
+ };
22
+
23
+ export {
24
+ initRequestMiddleware
25
+ };