@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,213 @@
1
+ /**
2
+ * Shared Auth Types
3
+ *
4
+ * 프레임워크 독립적인 인증 타입 정의
5
+ * Next.js, Express, Fastify 등 어디서나 사용 가능
6
+ */
7
+ export interface Logger {
8
+ debug(message: string, meta?: any): void;
9
+ info(message: string, meta?: any): void;
10
+ warn(message: string, meta?: any): void;
11
+ error(message: string, meta?: any): void;
12
+ }
13
+ export declare enum UserRole {
14
+ USER = "USER",
15
+ ADMIN = "ADMIN"
16
+ }
17
+ export interface JWTPayload {
18
+ id: string;
19
+ userId: string;
20
+ email: string;
21
+ role: UserRole;
22
+ emailVerified?: Date | null;
23
+ tokenType?: 'access' | 'refresh';
24
+ iat?: number;
25
+ exp?: number;
26
+ }
27
+ export interface TokenPair {
28
+ accessToken: string;
29
+ refreshToken: string;
30
+ }
31
+ export interface JWTConfig {
32
+ secret: string;
33
+ accessTokenExpiry: string;
34
+ refreshTokenExpiry: string;
35
+ algorithm: 'HS256' | 'HS384' | 'HS512';
36
+ }
37
+ export declare enum OAuthProvider {
38
+ GOOGLE = "google",
39
+ GITHUB = "github"
40
+ }
41
+ export interface OAuthUserInfo {
42
+ id: string;
43
+ email: string;
44
+ name: string | null;
45
+ image: string | null;
46
+ emailVerified: boolean;
47
+ }
48
+ export interface OAuthTokenResponse {
49
+ access_token: string;
50
+ token_type: string;
51
+ expires_in?: number;
52
+ refresh_token?: string;
53
+ scope?: string;
54
+ }
55
+ export interface OAuthConfig {
56
+ google?: {
57
+ clientId: string;
58
+ clientSecret: string;
59
+ redirectUri: string;
60
+ };
61
+ github?: {
62
+ clientId: string;
63
+ clientSecret: string;
64
+ redirectUri: string;
65
+ };
66
+ }
67
+ export declare enum PasswordStrength {
68
+ VERY_WEAK = "VERY_WEAK",
69
+ WEAK = "WEAK",
70
+ MEDIUM = "MEDIUM",
71
+ STRONG = "STRONG",
72
+ VERY_STRONG = "VERY_STRONG"
73
+ }
74
+ export interface PasswordValidationResult {
75
+ isValid: boolean;
76
+ strength: PasswordStrength;
77
+ errors: string[];
78
+ }
79
+ export interface PasswordConfig {
80
+ minLength: number;
81
+ maxLength: number;
82
+ requireNumber: boolean;
83
+ requireUppercase: boolean;
84
+ requireLowercase: boolean;
85
+ requireSpecialChar: boolean;
86
+ bcryptRounds: number;
87
+ }
88
+ export declare enum TokenType {
89
+ EMAIL_VERIFICATION = "EMAIL_VERIFICATION",
90
+ PASSWORD_RESET = "PASSWORD_RESET",
91
+ MAGIC_LINK = "MAGIC_LINK"
92
+ }
93
+ export interface BaseUser {
94
+ id: string;
95
+ email: string;
96
+ name: string | null;
97
+ role: UserRole;
98
+ emailVerified: Date | null;
99
+ isActive: boolean;
100
+ image: string | null;
101
+ createdAt: Date;
102
+ updatedAt: Date;
103
+ }
104
+ export interface UserRepository {
105
+ findById(id: string): Promise<BaseUser | null>;
106
+ findByEmail(email: string): Promise<BaseUser | null>;
107
+ create(data: CreateUserData): Promise<BaseUser>;
108
+ update(id: string, data: UpdateUserData): Promise<BaseUser>;
109
+ delete(id: string): Promise<void>;
110
+ updateLastLoginAt(id: string): Promise<void>;
111
+ verifyEmail(email: string): Promise<void>;
112
+ }
113
+ export interface CreateUserData {
114
+ email: string;
115
+ password?: string | null;
116
+ name?: string | null;
117
+ role?: UserRole;
118
+ emailVerified?: Date | null;
119
+ image?: string | null;
120
+ }
121
+ export interface UpdateUserData {
122
+ email?: string;
123
+ password?: string;
124
+ name?: string | null;
125
+ role?: UserRole;
126
+ emailVerified?: Date | null;
127
+ isActive?: boolean;
128
+ image?: string | null;
129
+ }
130
+ export interface OAuthAccount {
131
+ id: string;
132
+ userId: string;
133
+ provider: OAuthProvider;
134
+ providerAccountId: string;
135
+ accessToken: string | null;
136
+ refreshToken: string | null;
137
+ expiresAt: Date | null;
138
+ tokenType: string | null;
139
+ scope: string | null;
140
+ createdAt: Date;
141
+ updatedAt: Date;
142
+ }
143
+ export interface OAuthAccountRepository {
144
+ findByProvider(provider: OAuthProvider, providerAccountId: string): Promise<OAuthAccount | null>;
145
+ findByUserId(userId: string): Promise<OAuthAccount[]>;
146
+ create(data: CreateOAuthAccountData): Promise<OAuthAccount>;
147
+ update(id: string, data: UpdateOAuthAccountData): Promise<OAuthAccount>;
148
+ delete(id: string): Promise<void>;
149
+ }
150
+ export interface CreateOAuthAccountData {
151
+ userId: string;
152
+ provider: OAuthProvider;
153
+ providerAccountId: string;
154
+ accessToken?: string | null;
155
+ refreshToken?: string | null;
156
+ expiresAt?: Date | null;
157
+ tokenType?: string | null;
158
+ scope?: string | null;
159
+ }
160
+ export interface UpdateOAuthAccountData {
161
+ accessToken?: string | null;
162
+ refreshToken?: string | null;
163
+ expiresAt?: Date | null;
164
+ tokenType?: string | null;
165
+ scope?: string | null;
166
+ }
167
+ export interface EmailToken {
168
+ id: string;
169
+ email: string;
170
+ token: string;
171
+ type: TokenType;
172
+ expires: Date;
173
+ used: boolean;
174
+ createdAt: Date;
175
+ }
176
+ export interface EmailTokenRepository {
177
+ create(email: string, token: string, type: TokenType, expiresAt: Date): Promise<EmailToken>;
178
+ findByEmailAndToken(email: string, token: string, type: TokenType): Promise<EmailToken | null>;
179
+ delete(email: string, token: string, type: TokenType): Promise<void>;
180
+ deleteExpired(): Promise<void>;
181
+ markAsUsed(id: string): Promise<void>;
182
+ }
183
+ export interface EmailConfig {
184
+ from: string;
185
+ provider: 'smtp' | 'sendgrid' | 'mailgun' | 'resend';
186
+ verificationTokenExpiry: number;
187
+ passwordResetTokenExpiry: number;
188
+ magicLinkTokenExpiry: number;
189
+ }
190
+ export interface EmailSender {
191
+ sendVerificationEmail(email: string, token: string): Promise<void>;
192
+ sendPasswordResetEmail(email: string, token: string): Promise<void>;
193
+ sendMagicLinkEmail(email: string, token: string): Promise<void>;
194
+ sendWelcomeEmail(email: string, name: string): Promise<void>;
195
+ }
196
+ export interface AuthConfig {
197
+ jwt: JWTConfig;
198
+ password: PasswordConfig;
199
+ oauth?: OAuthConfig;
200
+ email?: EmailConfig;
201
+ features: {
202
+ emailVerificationRequired: boolean;
203
+ magicLinkEnabled: boolean;
204
+ oauthEnabled: boolean;
205
+ passwordResetEnabled: boolean;
206
+ };
207
+ urls: {
208
+ baseUrl: string;
209
+ loginUrl: string;
210
+ callbackUrl: string;
211
+ };
212
+ logger?: Logger;
213
+ }
@@ -0,0 +1,13 @@
1
+ import {
2
+ OAuthProvider,
3
+ PasswordStrength,
4
+ TokenType,
5
+ UserRole
6
+ } from "../../chunk-6D3HHYER.js";
7
+ import "../../chunk-ORMEWXMH.js";
8
+ export {
9
+ OAuthProvider,
10
+ PasswordStrength,
11
+ TokenType,
12
+ UserRole
13
+ };
@@ -0,0 +1,73 @@
1
+ export interface CacheOptions {
2
+ ttl?: number;
3
+ prefix?: string;
4
+ }
5
+ /**
6
+ * 통일된 캐시 설정 유틸리티
7
+ * getENV().CACHE를 통해 중앙화된 환경변수에서 값을 가져옴
8
+ */
9
+ export declare const getCacheConfig: {
10
+ analytics: {
11
+ enabled: () => boolean;
12
+ duration: () => number;
13
+ };
14
+ user: {
15
+ enabled: () => boolean;
16
+ duration: () => number;
17
+ };
18
+ geoip: {
19
+ enabled: () => boolean;
20
+ duration: () => number;
21
+ };
22
+ settings: {
23
+ enabled: () => boolean;
24
+ duration: () => number;
25
+ };
26
+ reservedWords: {
27
+ enabled: () => boolean;
28
+ duration: () => number;
29
+ };
30
+ alias: {
31
+ enabled: () => boolean;
32
+ duration: () => number;
33
+ };
34
+ community: {
35
+ enabled: () => boolean;
36
+ duration: () => number;
37
+ };
38
+ link: {
39
+ enabled: () => boolean;
40
+ duration: () => number;
41
+ };
42
+ rateLimit: {
43
+ enabled: () => boolean;
44
+ duration: () => number;
45
+ };
46
+ urlToken: {
47
+ enabled: () => boolean;
48
+ duration: () => number;
49
+ };
50
+ apiKey: {
51
+ enabled: () => boolean;
52
+ duration: () => number;
53
+ };
54
+ apiConfig: {
55
+ enabled: () => boolean;
56
+ duration: () => number;
57
+ };
58
+ };
59
+ /**
60
+ * @deprecated getCacheConfig.xxx.duration()을 사용하세요.
61
+ * 예: getCacheConfig.analytics.duration()
62
+ */
63
+ export declare const getCacheTTL: {
64
+ settings: () => number;
65
+ reservedWords: () => number;
66
+ alias: () => number;
67
+ user: () => number;
68
+ analytics: () => number;
69
+ geoip: () => number;
70
+ community: () => number;
71
+ link: () => number;
72
+ default: () => number;
73
+ };
@@ -0,0 +1,12 @@
1
+ import {
2
+ getCacheConfig,
3
+ getCacheTTL
4
+ } from "../chunk-TXGNSECL.js";
5
+ import "../chunk-I47QEDTX.js";
6
+ import "../chunk-EZR55KV2.js";
7
+ import "../chunk-IQQKKUAV.js";
8
+ import "../chunk-ORMEWXMH.js";
9
+ export {
10
+ getCacheConfig,
11
+ getCacheTTL
12
+ };
@@ -0,0 +1,141 @@
1
+ /**
2
+ * Cache Default Constants
3
+ *
4
+ * 캐시 관련 기본값 상수 정의
5
+ * 환경 변수가 설정되지 않았을 때 사용되는 폴백 값들
6
+ */
7
+ /** 1분 (초) */
8
+ export declare const ONE_MINUTE = 60;
9
+ /** 5분 (초) */
10
+ export declare const FIVE_MINUTES = 300;
11
+ /** 10분 (초) */
12
+ export declare const TEN_MINUTES = 600;
13
+ /** 15분 (초) */
14
+ export declare const FIFTEEN_MINUTES = 900;
15
+ /** 30분 (초) */
16
+ export declare const THIRTY_MINUTES = 1800;
17
+ /** 1시간 (초) */
18
+ export declare const ONE_HOUR = 3600;
19
+ /** 24시간 (초) */
20
+ export declare const ONE_DAY = 86400;
21
+ /** 30일 (초) */
22
+ export declare const THIRTY_DAYS = 2592000;
23
+ export declare const INMEMORY_CACHE_DEFAULTS: {
24
+ /** 최대 캐시 항목 수 */
25
+ readonly MAX_SIZE: 100000;
26
+ /** 최대 메모리 사용량 (MB) */
27
+ readonly MAX_MB: 200;
28
+ /** 제거 정책: 'lru' | 'fifo' | 'ttl' */
29
+ readonly EVICTION: "lru";
30
+ /** 정리 간격 (밀리초) */
31
+ readonly CLEANUP_INTERVAL: 60000;
32
+ };
33
+ export declare const CACHE_TTL_DEFAULTS: {
34
+ /** 기본 TTL (1시간) */
35
+ readonly DEFAULT: 3600;
36
+ /** 짧은 TTL (5분) - 자주 변경되는 데이터 */
37
+ readonly SHORT: 300;
38
+ /** 긴 TTL (24시간) - 거의 변경되지 않는 데이터 */
39
+ readonly LONG: 86400;
40
+ /** GeoIP TTL (30일) - IP 위치 정보는 거의 변경되지 않음 */
41
+ readonly GEOIP: 2592000;
42
+ /** 설정 TTL (1시간) */
43
+ readonly SETTINGS: 3600;
44
+ /** 분석 데이터 TTL (30분) */
45
+ readonly ANALYTICS: 1800;
46
+ /** 사용자 데이터 TTL (30분) */
47
+ readonly USER: 1800;
48
+ /** 링크 데이터 TTL (30분) */
49
+ readonly LINK: 1800;
50
+ /** 별칭 TTL (5분) - 자주 확인되는 데이터 */
51
+ readonly ALIAS: 300;
52
+ /** 커뮤니티 TTL (15분) */
53
+ readonly COMMUNITY: 900;
54
+ /** 예약어 TTL (30분) */
55
+ readonly RESERVED_WORDS: 1800;
56
+ };
57
+ export declare const CACHE_DURATION_DEFAULTS: {
58
+ /** 분석 데이터 (30분) */
59
+ readonly ANALYTICS: 1800;
60
+ /** 사용자 데이터 (10분) */
61
+ readonly USER: 600;
62
+ /** GeoIP 데이터 (30일) */
63
+ readonly GEOIP: 2592000;
64
+ /** 설정 데이터 (30분) */
65
+ readonly SETTINGS: 1800;
66
+ /** 예약어 데이터 (30분) */
67
+ readonly RESERVED_WORDS: 1800;
68
+ /** 별칭 데이터 (5분) */
69
+ readonly ALIAS: 300;
70
+ /** 커뮤니티 데이터 (15분) */
71
+ readonly COMMUNITY: 900;
72
+ /** 링크 데이터 (30분) */
73
+ readonly LINK: 1800;
74
+ /** Rate Limit (1분) */
75
+ readonly RATE_LIMIT: 60;
76
+ /** URL 토큰 (5분) */
77
+ readonly URL_TOKEN: 300;
78
+ /** API 키 (5분) */
79
+ readonly API_KEY: 300;
80
+ /** API 설정 (10분) */
81
+ readonly API_CONFIG: 600;
82
+ };
83
+ export declare const CACHE_FALLBACK_DEFAULTS: {
84
+ /** 전역 Redis 에러 임계값 (이 값 이상이면 즉시 전역 비활성화) */
85
+ readonly REDIS_ERROR_THRESHOLD_GLOBAL: 1;
86
+ /** 인스턴스별 Redis 에러 임계값 (이 값 이상이면 해당 인스턴스만 일시 비활성화) */
87
+ readonly REDIS_ERROR_THRESHOLD_LOCAL: 5;
88
+ /** Redis 재연결 시도 간격 (밀리초) */
89
+ readonly REDIS_RECONNECT_INTERVAL: 30000;
90
+ /** Redis 에러 시 인메모리 폴백 허용 여부 */
91
+ readonly FALLBACK_ON_REDIS_ERROR: true;
92
+ /** hybrid 모드에서 인메모리에도 저장 여부 */
93
+ readonly WRITE_TO_MEMORY: true;
94
+ };
95
+ export declare const CACHE_HEALTH_DEFAULTS: {
96
+ /** 건강상태 판단: 에러율 임계값 (%) - 이 값 이상이면 unhealthy */
97
+ readonly ERROR_RATE_THRESHOLD: 10;
98
+ /** 건강상태 판단: 히트율 임계값 (%) - 이 값 미만이면 unhealthy */
99
+ readonly HIT_RATE_THRESHOLD: 50;
100
+ /** 성능 리포트: 권장 히트율 (%) - 이 값 미만이면 TTL 조정 권장 */
101
+ readonly REPORT_HIT_RATE_THRESHOLD: 70;
102
+ /** 성능 리포트: 응답시간 임계값 (ms) - 이 값 초과 시 성능 확인 권장 */
103
+ readonly REPORT_RESPONSE_TIME_THRESHOLD: 500;
104
+ /** 성능 리포트: 무효화 빈도 임계값 (/분) - 이 값 초과 시 최적화 권장 */
105
+ readonly REPORT_INVALIDATION_THRESHOLD: 100;
106
+ /** 성능 리포트: 최소 요청 수 - 이 값 미만이면 리포트 판단 생략 */
107
+ readonly REPORT_MIN_REQUESTS: 100;
108
+ };
109
+ export declare const CACHE_ENV_VARS: {
110
+ readonly CACHE_ENABLED: "CACHE_ENABLED";
111
+ readonly CACHE_REDIS_ENABLED: "CACHE_REDIS_ENABLED";
112
+ readonly CACHE_INMEMORY_ENABLED: "CACHE_INMEMORY_ENABLED";
113
+ readonly CACHE_INMEMORY_MAX_SIZE: "CACHE_INMEMORY_MAX_SIZE";
114
+ readonly CACHE_INMEMORY_MAX_MB: "CACHE_INMEMORY_MAX_MB";
115
+ readonly CACHE_INMEMORY_EVICTION: "CACHE_INMEMORY_EVICTION";
116
+ readonly CACHE_INMEMORY_CLEANUP_INTERVAL: "CACHE_INMEMORY_CLEANUP_INTERVAL";
117
+ readonly UPSTASH_REDIS_REST_URL: "UPSTASH_REDIS_REST_URL";
118
+ readonly UPSTASH_REDIS_REST_TOKEN: "UPSTASH_REDIS_REST_TOKEN";
119
+ readonly CACHE_TTL_DEFAULT: "CACHE_TTL_DEFAULT";
120
+ readonly CACHE_TTL_SHORT: "CACHE_TTL_SHORT";
121
+ readonly CACHE_TTL_LONG: "CACHE_TTL_LONG";
122
+ readonly CACHE_TTL_GEOIP: "CACHE_TTL_GEOIP";
123
+ readonly CACHE_TTL_SETTINGS: "CACHE_TTL_SETTINGS";
124
+ readonly CACHE_TTL_ANALYTICS: "CACHE_TTL_ANALYTICS";
125
+ readonly CACHE_TTL_USER: "CACHE_TTL_USER";
126
+ readonly CACHE_TTL_LINK: "CACHE_TTL_LINK";
127
+ readonly CACHE_TTL_ALIAS: "CACHE_TTL_ALIAS";
128
+ readonly CACHE_TTL_COMMUNITY: "CACHE_TTL_COMMUNITY";
129
+ readonly CACHE_TTL_RESERVED_WORDS: "CACHE_TTL_RESERVED_WORDS";
130
+ readonly CACHE_REDIS_ERROR_THRESHOLD_GLOBAL: "CACHE_REDIS_ERROR_THRESHOLD_GLOBAL";
131
+ readonly CACHE_REDIS_ERROR_THRESHOLD_LOCAL: "CACHE_REDIS_ERROR_THRESHOLD_LOCAL";
132
+ readonly CACHE_REDIS_RECONNECT_INTERVAL: "CACHE_REDIS_RECONNECT_INTERVAL";
133
+ readonly CACHE_FALLBACK_ON_REDIS_ERROR: "CACHE_FALLBACK_ON_REDIS_ERROR";
134
+ readonly CACHE_WRITE_TO_MEMORY: "CACHE_WRITE_TO_MEMORY";
135
+ readonly CACHE_HEALTH_ERROR_RATE_THRESHOLD: "CACHE_HEALTH_ERROR_RATE_THRESHOLD";
136
+ readonly CACHE_HEALTH_HIT_RATE_THRESHOLD: "CACHE_HEALTH_HIT_RATE_THRESHOLD";
137
+ readonly CACHE_REPORT_HIT_RATE_THRESHOLD: "CACHE_REPORT_HIT_RATE_THRESHOLD";
138
+ readonly CACHE_REPORT_RESPONSE_TIME_THRESHOLD: "CACHE_REPORT_RESPONSE_TIME_THRESHOLD";
139
+ readonly CACHE_REPORT_INVALIDATION_THRESHOLD: "CACHE_REPORT_INVALIDATION_THRESHOLD";
140
+ readonly CACHE_REPORT_MIN_REQUESTS: "CACHE_REPORT_MIN_REQUESTS";
141
+ };
@@ -0,0 +1,33 @@
1
+ import {
2
+ CACHE_DURATION_DEFAULTS,
3
+ CACHE_ENV_VARS,
4
+ CACHE_FALLBACK_DEFAULTS,
5
+ CACHE_HEALTH_DEFAULTS,
6
+ CACHE_TTL_DEFAULTS,
7
+ FIFTEEN_MINUTES,
8
+ FIVE_MINUTES,
9
+ INMEMORY_CACHE_DEFAULTS,
10
+ ONE_DAY,
11
+ ONE_HOUR,
12
+ ONE_MINUTE,
13
+ TEN_MINUTES,
14
+ THIRTY_DAYS,
15
+ THIRTY_MINUTES
16
+ } from "../chunk-IQQKKUAV.js";
17
+ import "../chunk-ORMEWXMH.js";
18
+ export {
19
+ CACHE_DURATION_DEFAULTS,
20
+ CACHE_ENV_VARS,
21
+ CACHE_FALLBACK_DEFAULTS,
22
+ CACHE_HEALTH_DEFAULTS,
23
+ CACHE_TTL_DEFAULTS,
24
+ FIFTEEN_MINUTES,
25
+ FIVE_MINUTES,
26
+ INMEMORY_CACHE_DEFAULTS,
27
+ ONE_DAY,
28
+ ONE_HOUR,
29
+ ONE_MINUTE,
30
+ TEN_MINUTES,
31
+ THIRTY_DAYS,
32
+ THIRTY_MINUTES
33
+ };
@@ -0,0 +1,75 @@
1
+ import type { ISharedEnvConfig, IRawEnv } from '@withwiz/types/env';
2
+ /**
3
+ * 기본 환경 설정 (fallback용)
4
+ * process.env에서 직접 읽되, 타입 안전하게 처리
5
+ */
6
+ export declare function getDefaultConfig(): ISharedEnvConfig;
7
+ /**
8
+ * 현재 환경 설정 가져오기 (주입된 설정 또는 기본값)
9
+ */
10
+ export declare function getConfig(): ISharedEnvConfig;
11
+ export declare const getEnv: () => IRawEnv;
12
+ export declare const getENV: () => {
13
+ REDIS: import("@withwiz/types/env").IRedisEnv;
14
+ CACHE: import("@withwiz/types/env").ICacheEnv;
15
+ };
16
+ declare global {
17
+ var __cacheInitialized: boolean | undefined;
18
+ }
19
+ /**
20
+ * 캐시 모듈 초기화 (외부에서 환경 설정 주입)
21
+ *
22
+ * @example
23
+ * ```typescript
24
+ * import { initializeCache } from '@withwiz/cache/cache';
25
+ * import { env, ENV, isCacheEnabled, isRedisAvailable } from '<your-project>/env';
26
+ *
27
+ * initializeCache({ env, ENV, isCacheEnabled, isRedisAvailable });
28
+ * ```
29
+ */
30
+ export declare function initializeCache(config: ISharedEnvConfig): void;
31
+ export declare const isCacheEnabled: () => boolean;
32
+ export declare function validateRedisEnvironment(): {
33
+ isValid: boolean;
34
+ errors: string[];
35
+ };
36
+ /**
37
+ * 캐시 폴백 설정 인터페이스
38
+ */
39
+ export interface CacheFallbackConfig {
40
+ /** 전역 Redis 에러 임계값 */
41
+ redisErrorThresholdGlobal: number;
42
+ /** 인스턴스별 Redis 에러 임계값 */
43
+ redisErrorThresholdLocal: number;
44
+ /** Redis 재연결 간격 (ms) */
45
+ redisReconnectInterval: number;
46
+ /** Redis 에러 시 인메모리 폴백 허용 여부 */
47
+ fallbackOnRedisError: boolean;
48
+ /** hybrid 모드에서 인메모리에도 저장 여부 */
49
+ writeToMemory: boolean;
50
+ }
51
+ /**
52
+ * 캐시 폴백 설정 가져오기
53
+ */
54
+ export declare function getCacheFallbackConfig(): CacheFallbackConfig;
55
+ /**
56
+ * 캐시 건강상태 설정 인터페이스
57
+ */
58
+ export interface CacheHealthConfig {
59
+ /** 건강상태 판단: 에러율 임계값 (%) */
60
+ errorRateThreshold: number;
61
+ /** 건강상태 판단: 히트율 임계값 (%) */
62
+ hitRateThreshold: number;
63
+ /** 성능 리포트: 권장 히트율 (%) */
64
+ reportHitRateThreshold: number;
65
+ /** 성능 리포트: 응답시간 임계값 (ms) */
66
+ reportResponseTimeThreshold: number;
67
+ /** 성능 리포트: 무효화 빈도 임계값 (/분) */
68
+ reportInvalidationThreshold: number;
69
+ /** 성능 리포트: 최소 요청 수 */
70
+ reportMinRequests: number;
71
+ }
72
+ /**
73
+ * 캐시 건강상태 설정 가져오기
74
+ */
75
+ export declare function getCacheHealthConfig(): CacheHealthConfig;
@@ -0,0 +1,25 @@
1
+ import {
2
+ getCacheFallbackConfig,
3
+ getCacheHealthConfig,
4
+ getConfig,
5
+ getDefaultConfig,
6
+ getENV,
7
+ getEnv,
8
+ initializeCache,
9
+ isCacheEnabled,
10
+ validateRedisEnvironment
11
+ } from "../chunk-I47QEDTX.js";
12
+ import "../chunk-EZR55KV2.js";
13
+ import "../chunk-IQQKKUAV.js";
14
+ import "../chunk-ORMEWXMH.js";
15
+ export {
16
+ getCacheFallbackConfig,
17
+ getCacheHealthConfig,
18
+ getConfig,
19
+ getDefaultConfig,
20
+ getENV,
21
+ getEnv,
22
+ initializeCache,
23
+ isCacheEnabled,
24
+ validateRedisEnvironment
25
+ };
@@ -0,0 +1,34 @@
1
+ import type { CacheBackendType } from '@withwiz/types/env';
2
+ import { RedisCacheManager } from './redis-cache-manager';
3
+ import { NoopCacheManager } from './noop-cache-manager';
4
+ import { InMemoryCacheManager } from './inmemory-cache-manager';
5
+ import { HybridCacheManager } from './hybrid-cache-manager';
6
+ export { isRedisGloballyDisabled, getRedisGlobalStatus } from './cache-redis';
7
+ /**
8
+ * 효과적인 캐시 백엔드 결정
9
+ *
10
+ * CACHE_REDIS_ENABLED + CACHE_INMEMORY_ENABLED 조합으로 백엔드 결정:
11
+ * - true + true → 'hybrid' (Redis 기본, InMemory 폴백)
12
+ * - true + false → 'redis' (Redis만 사용)
13
+ * - false + true → 'memory' (InMemory만 사용)
14
+ * - false + false → 'none' (NoopCache, 경고 로그)
15
+ *
16
+ * 전역적으로 Redis가 비활성화된 경우:
17
+ * - 'hybrid' → 'memory'로 폴백
18
+ * - 'redis' → 'memory'로 폴백 (inmemory가 활성화된 경우)
19
+ *
20
+ * @returns 'hybrid' | 'redis' | 'memory' | 'none'
21
+ */
22
+ export declare function getEffectiveCacheBackend(): CacheBackendType | 'none';
23
+ /**
24
+ * 캐시 매니저 인스턴스 생성 함수 (지연 초기화)
25
+ */
26
+ export declare function getCacheManager(prefix: string): RedisCacheManager | HybridCacheManager | InMemoryCacheManager | NoopCacheManager;
27
+ /**
28
+ * 기본 범용 캐시
29
+ */
30
+ export declare const cache: RedisCacheManager | NoopCacheManager | InMemoryCacheManager | HybridCacheManager;
31
+ /**
32
+ * GeoIP 캐시 (범용)
33
+ */
34
+ export declare const geoCache: RedisCacheManager | NoopCacheManager | InMemoryCacheManager | HybridCacheManager;
@@ -0,0 +1,28 @@
1
+ import {
2
+ cache,
3
+ geoCache,
4
+ getCacheManager,
5
+ getEffectiveCacheBackend
6
+ } from "../chunk-AIHQBQ3E.js";
7
+ import "../chunk-HV3DGSSH.js";
8
+ import "../chunk-Z4D4CMDA.js";
9
+ import "../chunk-SS56XFLI.js";
10
+ import "../chunk-Q7IP4JMW.js";
11
+ import "../chunk-GL2NANFH.js";
12
+ import "../chunk-TXGNSECL.js";
13
+ import {
14
+ getRedisGlobalStatus,
15
+ isRedisGloballyDisabled
16
+ } from "../chunk-6LTZCXNC.js";
17
+ import "../chunk-I47QEDTX.js";
18
+ import "../chunk-EZR55KV2.js";
19
+ import "../chunk-IQQKKUAV.js";
20
+ import "../chunk-ORMEWXMH.js";
21
+ export {
22
+ cache,
23
+ geoCache,
24
+ getCacheManager,
25
+ getEffectiveCacheBackend,
26
+ getRedisGlobalStatus,
27
+ isRedisGloballyDisabled
28
+ };