@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,110 @@
1
+ /**
2
+ * Shared Auth - JWT Core Module
3
+ *
4
+ * JWT 토큰 생성 및 검증 모듈 (프레임워크 독립적)
5
+ * Next.js, Express, Fastify 등 어디서나 사용 가능
6
+ */
7
+ import type { JWTConfig, JWTPayload, TokenPair, Logger } from "@withwiz/auth/types";
8
+ export declare class JWTManager {
9
+ private config;
10
+ private logger;
11
+ private secretKey;
12
+ constructor(config: JWTConfig, logger: Logger);
13
+ /**
14
+ * Access JWT 토큰 생성
15
+ */
16
+ createAccessToken(payload: Omit<JWTPayload, "iat" | "exp">): Promise<string>;
17
+ /**
18
+ * Refresh 토큰 생성
19
+ */
20
+ createRefreshToken(userId: string): Promise<string>;
21
+ /**
22
+ * 토큰 쌍 생성 (Access + Refresh)
23
+ */
24
+ createTokenPair(user: {
25
+ id: string;
26
+ email: string;
27
+ role: string;
28
+ emailVerified?: Date | null;
29
+ }): Promise<TokenPair>;
30
+ /**
31
+ * Access JWT 토큰 검증
32
+ */
33
+ verifyAccessToken(token: string): Promise<JWTPayload>;
34
+ /**
35
+ * Refresh 토큰 검증
36
+ */
37
+ verifyRefreshToken(token: string): Promise<{
38
+ userId: string;
39
+ tokenType: string;
40
+ }>;
41
+ /**
42
+ * Authorization 헤더에서 토큰 추출
43
+ */
44
+ extractTokenFromHeader(authHeader: string | null): string | null;
45
+ /**
46
+ * 토큰 만료 여부 확인
47
+ */
48
+ isTokenExpired(payload: JWTPayload): boolean;
49
+ /**
50
+ * 토큰 남은 시간 (초)
51
+ */
52
+ getTokenRemainingTime(payload: JWTPayload): number;
53
+ /**
54
+ * 토큰에서 사용자 정보 추출
55
+ */
56
+ extractUserFromPayload(payload: JWTPayload): {
57
+ id: string;
58
+ email: string;
59
+ role: import("@withwiz/auth/types").UserRole;
60
+ };
61
+ }
62
+ /**
63
+ * JWTService는 JWTManager의 간단한 wrapper로, Logger 없이 사용 가능합니다.
64
+ * 테스트 및 간단한 사용 사례를 위한 클래스입니다.
65
+ */
66
+ export declare class JWTService {
67
+ private manager;
68
+ constructor(config: JWTConfig);
69
+ /**
70
+ * Access 토큰 생성 (sign으로 alias)
71
+ */
72
+ sign(payload: Omit<JWTPayload, "iat" | "exp">): Promise<string>;
73
+ /**
74
+ * 토큰 검증
75
+ */
76
+ verify(token: string): Promise<JWTPayload>;
77
+ /**
78
+ * Refresh 토큰 생성
79
+ */
80
+ createRefreshToken(userId: string): Promise<string>;
81
+ /**
82
+ * Refresh 토큰 검증
83
+ */
84
+ verifyRefreshToken(token: string): Promise<{
85
+ userId: string;
86
+ tokenType: string;
87
+ }>;
88
+ /**
89
+ * 토큰 쌍 생성
90
+ */
91
+ createTokenPair(user: {
92
+ id: string;
93
+ email: string;
94
+ role: string;
95
+ emailVerified?: Date | null;
96
+ }): Promise<TokenPair>;
97
+ /**
98
+ * Access 토큰 생성
99
+ */
100
+ createAccessToken(payload: Omit<JWTPayload, "iat" | "exp">): Promise<string>;
101
+ /**
102
+ * Access 토큰 검증
103
+ */
104
+ verifyAccessToken(token: string): Promise<JWTPayload>;
105
+ /**
106
+ * Authorization 헤더에서 토큰 추출
107
+ */
108
+ extractTokenFromHeader(authHeader: string | undefined): string | null;
109
+ }
110
+ export type { JWTConfig, JWTPayload, TokenPair };
@@ -0,0 +1,10 @@
1
+ import {
2
+ JWTManager,
3
+ JWTService
4
+ } from "../../../chunk-T3LJYAMO.js";
5
+ import "../../../chunk-AIH3F7JV.js";
6
+ import "../../../chunk-ORMEWXMH.js";
7
+ export {
8
+ JWTManager,
9
+ JWTService
10
+ };
@@ -0,0 +1,6 @@
1
+ /**
2
+ * JWT Types
3
+ *
4
+ * JWT 모듈 전용 타입 정의
5
+ */
6
+ export * from '@withwiz/auth/types';
@@ -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,51 @@
1
+ /**
2
+ * Shared Auth - OAuth Module
3
+ *
4
+ * OAuth 2.0 인증 모듈 (프레임워크 독립적)
5
+ * Google, GitHub 지원
6
+ */
7
+ import type { OAuthConfig, OAuthUserInfo, Logger } from '@withwiz/auth/types';
8
+ import { OAuthProvider } from '@withwiz/auth/types';
9
+ export { OAuthProvider };
10
+ export declare class OAuthManager {
11
+ private config;
12
+ private logger;
13
+ constructor(config: OAuthConfig, logger: Logger);
14
+ /**
15
+ * OAuth 로그인 URL 생성
16
+ */
17
+ getLoginUrl(provider: OAuthProvider, state: string): string;
18
+ /**
19
+ * Google OAuth 로그인 URL
20
+ */
21
+ private getGoogleLoginUrl;
22
+ /**
23
+ * GitHub OAuth 로그인 URL
24
+ */
25
+ private getGitHubLoginUrl;
26
+ /**
27
+ * 인증 코드를 액세스 토큰으로 교환
28
+ */
29
+ exchangeCodeForToken(provider: OAuthProvider, code: string): Promise<string>;
30
+ /**
31
+ * Google 코드 교환
32
+ */
33
+ private exchangeGoogleCode;
34
+ /**
35
+ * GitHub 코드 교환
36
+ */
37
+ private exchangeGitHubCode;
38
+ /**
39
+ * 사용자 정보 가져오기
40
+ */
41
+ getUserInfo(provider: OAuthProvider, accessToken: string): Promise<OAuthUserInfo>;
42
+ /**
43
+ * Google 사용자 정보
44
+ */
45
+ private getGoogleUserInfo;
46
+ /**
47
+ * GitHub 사용자 정보
48
+ */
49
+ private getGitHubUserInfo;
50
+ }
51
+ export type { OAuthConfig, OAuthUserInfo, OAuthTokenResponse } from '@withwiz/auth/types';
@@ -0,0 +1,12 @@
1
+ import {
2
+ OAuthManager
3
+ } from "../../../chunk-V5K5FYU7.js";
4
+ import {
5
+ OAuthProvider
6
+ } from "../../../chunk-6D3HHYER.js";
7
+ import "../../../chunk-AIH3F7JV.js";
8
+ import "../../../chunk-ORMEWXMH.js";
9
+ export {
10
+ OAuthManager,
11
+ OAuthProvider
12
+ };
@@ -0,0 +1,44 @@
1
+ /**
2
+ * Shared Auth - Password Client Helper
3
+ *
4
+ * 클라이언트 사이드용 비밀번호 검증 헬퍼 (프레임워크 독립적)
5
+ */
6
+ import { PasswordValidator, PasswordHasher } from './index';
7
+ import type { PasswordConfig } from '@withwiz/auth/types';
8
+ import type { z } from 'zod';
9
+ /**
10
+ * 기본 비밀번호 설정
11
+ */
12
+ export declare const DEFAULT_PASSWORD_CONFIG: PasswordConfig;
13
+ /**
14
+ * 클라이언트용 비밀번호 검증기 인스턴스 생성
15
+ */
16
+ export declare function createPasswordValidator(config?: Partial<PasswordConfig>): PasswordValidator;
17
+ /**
18
+ * 비밀번호 검증 헬퍼 함수 (간편 사용)
19
+ */
20
+ export declare function validatePassword(password: string, config?: Partial<PasswordConfig>): import("./index").PasswordValidationResult;
21
+ /**
22
+ * 비밀번호 강도 계산 헬퍼 함수
23
+ */
24
+ export declare function getPasswordStrength(password: string, config?: Partial<PasswordConfig>): import("@withwiz/auth/types").PasswordStrength;
25
+ /**
26
+ * Zod 스키마 생성 헬퍼 함수
27
+ */
28
+ export declare function createPasswordSchema(config?: Partial<PasswordConfig>): z.ZodString;
29
+ /**
30
+ * 기본 Zod 스키마 (기존 defaultPasswordSchema와 호환)
31
+ */
32
+ export declare const defaultPasswordSchema: z.ZodString;
33
+ /**
34
+ * 싱글톤 인스턴스 (기존 PasswordValidator 정적 메서드 대체)
35
+ */
36
+ export declare const passwordValidator: PasswordValidator;
37
+ /**
38
+ * 비밀번호 해싱 인스턴스 (브라우저에서는 사용하지 말 것!)
39
+ * ⚠️ WARNING: 해싱은 서버 사이드에서만 수행해야 합니다.
40
+ */
41
+ export declare function createPasswordHasher(rounds?: number): PasswordHasher;
42
+ export { PasswordValidator, PasswordHasher } from './index';
43
+ export type { PasswordValidationResult } from './index';
44
+ export type { PasswordConfig, PasswordStrength } from '@withwiz/auth/types';
@@ -0,0 +1,28 @@
1
+ import {
2
+ DEFAULT_PASSWORD_CONFIG,
3
+ createPasswordHasher,
4
+ createPasswordSchema,
5
+ createPasswordValidator,
6
+ defaultPasswordSchema,
7
+ getPasswordStrength,
8
+ passwordValidator,
9
+ validatePassword
10
+ } from "../../../chunk-G26T2PRQ.js";
11
+ import {
12
+ PasswordHasher,
13
+ PasswordValidator
14
+ } from "../../../chunk-IHXRF3BH.js";
15
+ import "../../../chunk-6D3HHYER.js";
16
+ import "../../../chunk-ORMEWXMH.js";
17
+ export {
18
+ DEFAULT_PASSWORD_CONFIG,
19
+ PasswordHasher,
20
+ PasswordValidator,
21
+ createPasswordHasher,
22
+ createPasswordSchema,
23
+ createPasswordValidator,
24
+ defaultPasswordSchema,
25
+ getPasswordStrength,
26
+ passwordValidator,
27
+ validatePassword
28
+ };
@@ -0,0 +1,71 @@
1
+ /**
2
+ * Shared Auth - Password Module
3
+ *
4
+ * 비밀번호 검증 및 강도 측정 모듈 (프레임워크 독립적)
5
+ */
6
+ import { z } from 'zod';
7
+ import type { PasswordConfig } from '@withwiz/auth/types';
8
+ import { PasswordStrength, type PasswordValidationResult as BasePasswordValidationResult } from '@withwiz/auth/types';
9
+ export interface PasswordValidationResult extends BasePasswordValidationResult {
10
+ score: number;
11
+ }
12
+ export declare class PasswordValidator {
13
+ private config;
14
+ private static readonly SPECIAL_CHARS;
15
+ constructor(config: PasswordConfig);
16
+ /**
17
+ * 비밀번호 유효성 검사
18
+ */
19
+ validate(password: string): PasswordValidationResult;
20
+ /**
21
+ * 비밀번호 확인 검증
22
+ */
23
+ validateConfirmation(password: string, confirmPassword: string): PasswordValidationResult;
24
+ /**
25
+ * 비밀번호 강도 계산
26
+ */
27
+ calculateStrength(password: string): PasswordStrength;
28
+ /**
29
+ * 비밀번호 점수 계산 (0-100)
30
+ */
31
+ private calculateScore;
32
+ /**
33
+ * Zod 스키마 생성
34
+ */
35
+ createZodSchema(): z.ZodString;
36
+ /**
37
+ * 비밀번호 힌트 생성
38
+ */
39
+ generateHint(password: string): string[];
40
+ /**
41
+ * 비밀번호 강도 메시지 반환
42
+ */
43
+ static getStrengthMessage(strength: PasswordStrength): string;
44
+ /**
45
+ * 비밀번호 강도 색상 반환 (Tailwind CSS)
46
+ */
47
+ static getStrengthColor(strength: PasswordStrength): string;
48
+ }
49
+ export declare class PasswordHasher {
50
+ private rounds;
51
+ constructor(rounds?: number);
52
+ /**
53
+ * 비밀번호 해싱
54
+ */
55
+ hash(password: string): Promise<string>;
56
+ /**
57
+ * 비밀번호 검증
58
+ */
59
+ verify(password: string, hash: string): Promise<boolean>;
60
+ }
61
+ /**
62
+ * 기본 비밀번호 스키마 (기존 코드 호환성)
63
+ * 최소 8자, 숫자 포함
64
+ */
65
+ export declare const defaultPasswordSchema: z.ZodString;
66
+ /**
67
+ * 강력한 비밀번호 스키마 (기존 코드 호환성)
68
+ * 최소 12자, 대소문자, 숫자, 특수문자 포함
69
+ */
70
+ export declare const strongPasswordSchema: z.ZodString;
71
+ export type { PasswordConfig, PasswordStrength } from '@withwiz/auth/types';
@@ -0,0 +1,14 @@
1
+ import {
2
+ PasswordHasher,
3
+ PasswordValidator,
4
+ defaultPasswordSchema,
5
+ strongPasswordSchema
6
+ } from "../../../chunk-IHXRF3BH.js";
7
+ import "../../../chunk-6D3HHYER.js";
8
+ import "../../../chunk-ORMEWXMH.js";
9
+ export {
10
+ PasswordHasher,
11
+ PasswordValidator,
12
+ defaultPasswordSchema,
13
+ strongPasswordSchema
14
+ };
@@ -0,0 +1,49 @@
1
+ /**
2
+ * Shared Auth Errors
3
+ *
4
+ * 프레임워크 독립적인 인증 에러 클래스
5
+ */
6
+ export declare class AuthError extends Error {
7
+ code: string;
8
+ statusCode: number;
9
+ constructor(message: string, code: string, statusCode?: number);
10
+ }
11
+ export declare class JWTError extends AuthError {
12
+ constructor(message: string, code?: string);
13
+ }
14
+ export declare class OAuthError extends AuthError {
15
+ constructor(message: string, code?: string);
16
+ }
17
+ export declare class EmailError extends AuthError {
18
+ constructor(message: string, code?: string);
19
+ }
20
+ export declare class PasswordError extends AuthError {
21
+ constructor(message: string, code?: string);
22
+ }
23
+ export declare const AUTH_ERROR_CODES: {
24
+ readonly TOKEN_EXPIRED: "TOKEN_EXPIRED";
25
+ readonly TOKEN_INVALID: "TOKEN_INVALID";
26
+ readonly TOKEN_CREATION_FAILED: "TOKEN_CREATION_FAILED";
27
+ readonly TOKEN_VERIFICATION_FAILED: "TOKEN_VERIFICATION_FAILED";
28
+ readonly REFRESH_TOKEN_EXPIRED: "REFRESH_TOKEN_EXPIRED";
29
+ readonly INVALID_PAYLOAD: "INVALID_PAYLOAD";
30
+ readonly OAUTH_PROVIDER_NOT_CONFIGURED: "OAUTH_PROVIDER_NOT_CONFIGURED";
31
+ readonly OAUTH_TOKEN_EXCHANGE_FAILED: "OAUTH_TOKEN_EXCHANGE_FAILED";
32
+ readonly OAUTH_USER_INFO_FAILED: "OAUTH_USER_INFO_FAILED";
33
+ readonly PASSWORD_TOO_SHORT: "PASSWORD_TOO_SHORT";
34
+ readonly PASSWORD_TOO_LONG: "PASSWORD_TOO_LONG";
35
+ readonly PASSWORD_MISSING_NUMBER: "PASSWORD_MISSING_NUMBER";
36
+ readonly PASSWORD_MISSING_UPPERCASE: "PASSWORD_MISSING_UPPERCASE";
37
+ readonly PASSWORD_MISSING_LOWERCASE: "PASSWORD_MISSING_LOWERCASE";
38
+ readonly PASSWORD_MISSING_SPECIAL_CHAR: "PASSWORD_MISSING_SPECIAL_CHAR";
39
+ readonly PASSWORD_HASH_FAILED: "PASSWORD_HASH_FAILED";
40
+ readonly PASSWORD_VERIFY_FAILED: "PASSWORD_VERIFY_FAILED";
41
+ readonly EMAIL_SEND_FAILED: "EMAIL_SEND_FAILED";
42
+ readonly EMAIL_TOKEN_INVALID: "EMAIL_TOKEN_INVALID";
43
+ readonly EMAIL_TOKEN_EXPIRED: "EMAIL_TOKEN_EXPIRED";
44
+ readonly INVALID_CREDENTIALS: "INVALID_CREDENTIALS";
45
+ readonly USER_NOT_FOUND: "USER_NOT_FOUND";
46
+ readonly EMAIL_ALREADY_EXISTS: "EMAIL_ALREADY_EXISTS";
47
+ readonly UNAUTHORIZED: "UNAUTHORIZED";
48
+ };
49
+ export type AuthErrorCode = typeof AUTH_ERROR_CODES[keyof typeof AUTH_ERROR_CODES];
@@ -0,0 +1,17 @@
1
+ import {
2
+ AUTH_ERROR_CODES,
3
+ AuthError,
4
+ EmailError,
5
+ JWTError,
6
+ OAuthError,
7
+ PasswordError
8
+ } from "../../chunk-AIH3F7JV.js";
9
+ import "../../chunk-ORMEWXMH.js";
10
+ export {
11
+ AUTH_ERROR_CODES,
12
+ AuthError,
13
+ EmailError,
14
+ JWTError,
15
+ OAuthError,
16
+ PasswordError
17
+ };
@@ -0,0 +1,21 @@
1
+ /**
2
+ * Shared Auth Module
3
+ *
4
+ * 프레임워크 독립적인 인증 라이브러리
5
+ * Next.js, Express, Fastify, NestJS 등 어디서나 사용 가능
6
+ *
7
+ * @version 1.0.0
8
+ * @description 범용 공유 라이브러리 - Tier 3
9
+ */
10
+ export * from './types';
11
+ export * from './errors';
12
+ export { JWTManager, JWTService } from './core/jwt';
13
+ export type { JWTConfig, JWTPayload, TokenPair } from './types';
14
+ export { JWTClientManager, getStoredTokens, storeTokens, clearStoredTokens, clearTokens, decodeJWTPayload, isTokenExpired, getTokenRemainingTime, extractUserFromToken, createAuthHeader, createApiHeaders, isTokenExpiringSoon, getTokenExpirationString, getTokenIssuedAtString, } from './core/jwt/client';
15
+ export { PasswordValidator, PasswordHasher, defaultPasswordSchema, strongPasswordSchema, } from './core/password';
16
+ export type { PasswordValidationResult, PasswordConfig } from './core/password';
17
+ export { DEFAULT_PASSWORD_CONFIG, createPasswordValidator, validatePassword, getPasswordStrength, createPasswordSchema, passwordValidator, createPasswordHasher, } from './core/password/client-helper';
18
+ export { OAuthManager } from './core/oauth';
19
+ export type { OAuthConfig, OAuthUserInfo, OAuthTokenResponse } from './core/oauth';
20
+ export { TokenGenerator } from './core/email/token-generator';
21
+ export { UserRole, PasswordStrength, OAuthProvider, TokenType } from './types';
@@ -0,0 +1,97 @@
1
+ import {
2
+ OAuthManager
3
+ } from "../chunk-V5K5FYU7.js";
4
+ import {
5
+ TokenGenerator
6
+ } from "../chunk-GDWEDUHO.js";
7
+ import {
8
+ DEFAULT_PASSWORD_CONFIG,
9
+ createPasswordHasher,
10
+ createPasswordSchema,
11
+ createPasswordValidator,
12
+ getPasswordStrength,
13
+ passwordValidator,
14
+ validatePassword
15
+ } from "../chunk-G26T2PRQ.js";
16
+ import {
17
+ PasswordHasher,
18
+ PasswordValidator,
19
+ defaultPasswordSchema,
20
+ strongPasswordSchema
21
+ } from "../chunk-IHXRF3BH.js";
22
+ import {
23
+ JWTClientManager,
24
+ clearStoredTokens,
25
+ clearTokens,
26
+ createApiHeaders,
27
+ createAuthHeader,
28
+ decodeJWTPayload,
29
+ extractUserFromToken,
30
+ getStoredTokens,
31
+ getTokenExpirationString,
32
+ getTokenIssuedAtString,
33
+ getTokenRemainingTime,
34
+ isTokenExpired,
35
+ isTokenExpiringSoon,
36
+ storeTokens
37
+ } from "../chunk-XRRPEBKB.js";
38
+ import {
39
+ OAuthProvider,
40
+ PasswordStrength,
41
+ TokenType,
42
+ UserRole
43
+ } from "../chunk-6D3HHYER.js";
44
+ import {
45
+ JWTManager,
46
+ JWTService
47
+ } from "../chunk-T3LJYAMO.js";
48
+ import {
49
+ AUTH_ERROR_CODES,
50
+ AuthError,
51
+ EmailError,
52
+ JWTError,
53
+ OAuthError,
54
+ PasswordError
55
+ } from "../chunk-AIH3F7JV.js";
56
+ import "../chunk-ORMEWXMH.js";
57
+ export {
58
+ AUTH_ERROR_CODES,
59
+ AuthError,
60
+ DEFAULT_PASSWORD_CONFIG,
61
+ EmailError,
62
+ JWTClientManager,
63
+ JWTError,
64
+ JWTManager,
65
+ JWTService,
66
+ OAuthError,
67
+ OAuthManager,
68
+ OAuthProvider,
69
+ PasswordError,
70
+ PasswordHasher,
71
+ PasswordStrength,
72
+ PasswordValidator,
73
+ TokenGenerator,
74
+ TokenType,
75
+ UserRole,
76
+ clearStoredTokens,
77
+ clearTokens,
78
+ createApiHeaders,
79
+ createAuthHeader,
80
+ createPasswordHasher,
81
+ createPasswordSchema,
82
+ createPasswordValidator,
83
+ decodeJWTPayload,
84
+ defaultPasswordSchema,
85
+ extractUserFromToken,
86
+ getPasswordStrength,
87
+ getStoredTokens,
88
+ getTokenExpirationString,
89
+ getTokenIssuedAtString,
90
+ getTokenRemainingTime,
91
+ isTokenExpired,
92
+ isTokenExpiringSoon,
93
+ passwordValidator,
94
+ storeTokens,
95
+ strongPasswordSchema,
96
+ validatePassword
97
+ };