@withwiz/toolkit 0.7.1 → 0.9.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 (399) hide show
  1. package/README.ko.md +226 -0
  2. package/README.md +66 -44
  3. package/dist/{chunk-V6YD53NH.js → chunk-23LQJYZN.js} +5 -2
  4. package/dist/chunk-2JUFL4KX.js +41 -0
  5. package/dist/{chunk-ZTRASVGZ.js → chunk-34L7HTM7.js} +1 -1
  6. package/dist/{chunk-GSUCBWML.js → chunk-3RK3MKAR.js} +5 -2
  7. package/dist/{chunk-6JXHXIEH.js → chunk-3UIKCS56.js} +2 -2
  8. package/dist/{chunk-MWBEE6VI.js → chunk-4EXZ2SDV.js} +5 -5
  9. package/dist/{chunk-MNYVAEXK.js → chunk-4ROIPF33.js} +16 -3
  10. package/dist/{chunk-JKSABDFT.js → chunk-4TGPAUJV.js} +4 -4
  11. package/dist/{chunk-D2KXIKI4.js → chunk-4XPXZNBX.js} +18 -11
  12. package/dist/{chunk-LG3KM5V3.js → chunk-5I3EQHR4.js} +6 -2
  13. package/dist/chunk-63EKUOJH.js +72 -0
  14. package/dist/chunk-6A5JHOBB.js +134 -0
  15. package/dist/{chunk-N5VOFGF3.js → chunk-75UDFONR.js} +5 -4
  16. package/dist/{chunk-GORISA3L.js → chunk-7KIM5MHV.js} +1 -1
  17. package/dist/{chunk-4L6OSSSG.js → chunk-7S2PCYNT.js} +3 -3
  18. package/dist/{chunk-2SIBG5BG.js → chunk-7YWUKMZD.js} +7 -0
  19. package/dist/{chunk-7X2N4VZM.js → chunk-ATBYGPLP.js} +1 -1
  20. package/dist/{chunk-A74POWYY.js → chunk-B7AJJKOY.js} +1 -1
  21. package/dist/{chunk-W7PEL3DX.js → chunk-BRBOGLFT.js} +4 -4
  22. package/dist/{chunk-IOUNOHP7.js → chunk-BRFW2LL2.js} +1 -1
  23. package/dist/chunk-BTYH4MHU.js +118 -0
  24. package/dist/{chunk-I4NT6G2T.js → chunk-DRTJSTEV.js} +2 -2
  25. package/dist/{chunk-JIYLTMVL.js → chunk-DVCGAI5N.js} +2 -2
  26. package/dist/chunk-E4TKORMQ.js +59 -0
  27. package/dist/{chunk-AV7ELXHG.js → chunk-E5TDIRBJ.js} +2 -2
  28. package/dist/{chunk-UBASOMP5.js → chunk-HGVPZSWW.js} +18 -13
  29. package/dist/{chunk-7F5X6F7X.js → chunk-HV6A6Z5R.js} +1 -1
  30. package/dist/chunk-ILMPKSWS.js +125 -0
  31. package/dist/{chunk-J5NLAZV2.js → chunk-JHUWZ6YW.js} +2 -2
  32. package/dist/{chunk-LON5THYQ.js → chunk-KLMKCYIN.js} +1 -1
  33. package/dist/{chunk-4KJZRI74.js → chunk-KWUOLKDO.js} +1 -1
  34. package/dist/{chunk-GJO2MPC3.js → chunk-LCYDMYZS.js} +1 -1
  35. package/dist/{chunk-WIQAPWTY.js → chunk-LL3VWKY4.js} +1 -1
  36. package/dist/{chunk-IMAFMUZ7.js → chunk-LSS3GJUE.js} +3 -2
  37. package/dist/{chunk-2PFSRVVD.js → chunk-LWHLB2Y6.js} +84 -18
  38. package/dist/{chunk-BBE4RXR7.js → chunk-MTZXWVW3.js} +17 -6
  39. package/dist/{chunk-ORMEWXMH.js → chunk-N3ETBM74.js} +1 -14
  40. package/dist/{chunk-KYAHURXN.js → chunk-N3TCQ5BF.js} +4 -3
  41. package/dist/{chunk-HX4MPCVV.js → chunk-NTZBMWB6.js} +4 -4
  42. package/dist/{chunk-RJGYONRO.js → chunk-PRPMEHRE.js} +2 -2
  43. package/dist/{chunk-KG65BFPK.js → chunk-QAIN3WNN.js} +1 -1
  44. package/dist/{chunk-JJAIVUVD.js → chunk-R7EFDSPZ.js} +2 -2
  45. package/dist/{chunk-VJE4HA2C.js → chunk-RWCPRPEP.js} +3 -2
  46. package/dist/{chunk-B6L5XV7O.js → chunk-SCAFDDJP.js} +11 -11
  47. package/dist/{chunk-KXYDTC4A.js → chunk-SNFPZD6L.js} +11 -2
  48. package/dist/{chunk-B5VRZ2VJ.js → chunk-TNDEYJEL.js} +25 -6
  49. package/dist/{chunk-GDTZMX3L.js → chunk-TRGFXIEF.js} +1 -1
  50. package/dist/{chunk-JRORMRVN.js → chunk-U2TGXJ3A.js} +1 -1
  51. package/dist/{chunk-VNDL2E44.js → chunk-U52U5SK7.js} +2 -2
  52. package/dist/{chunk-54REXMTE.js → chunk-UWOWKOOQ.js} +3 -1
  53. package/dist/{chunk-4PROUAZ5.js → chunk-V3WZFUY3.js} +7 -7
  54. package/dist/{chunk-G4LJN4OZ.js → chunk-VH57Y5Z4.js} +1 -1
  55. package/dist/chunk-VQJY52YF.js +139 -0
  56. package/dist/{chunk-5S7M2AJL.js → chunk-VWAB4PM7.js} +1 -1
  57. package/dist/{chunk-AQZPGOEZ.js → chunk-VWKZMGPJ.js} +5 -4
  58. package/dist/{chunk-4K27YLAE.js → chunk-VZ2PQA4U.js} +2 -2
  59. package/dist/{chunk-ZOWEW4GY.js → chunk-WBHX4MJV.js} +2 -2
  60. package/dist/{chunk-G4SNTXJ3.js → chunk-WSHRBK6Y.js} +7 -6
  61. package/dist/{chunk-UMRKMF3E.js → chunk-WXOWI7BJ.js} +2 -2
  62. package/dist/chunk-XAGPZLRK.js +106 -0
  63. package/dist/{chunk-VPRTPW7C.js → chunk-XF3WUF3F.js} +2 -2
  64. package/dist/{chunk-6TRD7ZW4.js → chunk-XKIBJJA3.js} +25 -21
  65. package/dist/{chunk-ZLYBY3R4.js → chunk-XTGS6JJB.js} +10 -5
  66. package/dist/{chunk-BFZR62LZ.js → chunk-XXPB4C37.js} +7 -7
  67. package/dist/{chunk-LUIYCIF7.js → chunk-Y4ME3Q5K.js} +2 -2
  68. package/dist/{chunk-Q66VOVGN.js → chunk-Y4WPEIKW.js} +1 -1
  69. package/dist/{chunk-MREY2W7N.js → chunk-Y6CPPBJI.js} +1 -1
  70. package/dist/{chunk-6TUDUOGC.js → chunk-ZEHNCHIV.js} +2 -2
  71. package/dist/{chunk-D73ZJQMX.js → chunk-ZZABL54F.js} +13 -0
  72. package/dist/core/auth/adapters/sql/dialect.d.ts +21 -0
  73. package/dist/core/auth/adapters/sql/dialect.js +11 -0
  74. package/dist/core/auth/adapters/sql/email-token-repository.d.ts +17 -0
  75. package/dist/core/auth/adapters/sql/email-token-repository.js +9 -0
  76. package/dist/core/auth/adapters/sql/index.d.ts +7 -0
  77. package/dist/core/auth/adapters/sql/index.js +27 -0
  78. package/dist/core/auth/adapters/sql/oauth-account-repository.d.ts +18 -0
  79. package/dist/core/auth/adapters/sql/oauth-account-repository.js +9 -0
  80. package/dist/core/auth/adapters/sql/types.d.ts +73 -0
  81. package/dist/core/auth/adapters/sql/types.js +7 -0
  82. package/dist/core/auth/adapters/sql/user-repository.d.ts +20 -0
  83. package/dist/core/auth/adapters/sql/user-repository.js +9 -0
  84. package/dist/core/auth/config.d.ts +3 -0
  85. package/dist/core/auth/config.js +3 -3
  86. package/dist/core/auth/email/index.d.ts +3 -3
  87. package/dist/core/auth/email/index.js +3 -3
  88. package/dist/core/auth/email/sender.d.ts +1 -1
  89. package/dist/core/auth/email/sender.js +2 -2
  90. package/dist/core/auth/email/token-generator.d.ts +11 -0
  91. package/dist/core/auth/email/token-generator.js +2 -2
  92. package/dist/core/auth/errors/index.js +1 -1
  93. package/dist/core/auth/index.d.ts +11 -11
  94. package/dist/core/auth/index.js +23 -15
  95. package/dist/core/auth/jwt/client.js +3 -2
  96. package/dist/core/auth/jwt/cookie.d.ts +1 -1
  97. package/dist/core/auth/jwt/cookie.js +4 -4
  98. package/dist/core/auth/jwt/index.d.ts +41 -9
  99. package/dist/core/auth/jwt/index.js +6 -6
  100. package/dist/core/auth/jwt/types.d.ts +1 -1
  101. package/dist/core/auth/jwt/types.js +1 -1
  102. package/dist/core/auth/oauth/index.d.ts +6 -6
  103. package/dist/core/auth/oauth/index.js +5 -5
  104. package/dist/core/auth/oauth/providers/github.d.ts +1 -1
  105. package/dist/core/auth/oauth/providers/github.js +1 -1
  106. package/dist/core/auth/oauth/providers/google.d.ts +1 -1
  107. package/dist/core/auth/oauth/providers/google.js +1 -1
  108. package/dist/core/auth/oauth/providers/index.d.ts +5 -5
  109. package/dist/core/auth/oauth/providers/index.js +4 -4
  110. package/dist/core/auth/oauth/providers/kakao.d.ts +1 -1
  111. package/dist/core/auth/oauth/providers/kakao.js +1 -1
  112. package/dist/core/auth/oauth/providers/meta.d.ts +1 -1
  113. package/dist/core/auth/oauth/providers/meta.js +1 -1
  114. package/dist/core/auth/oauth/providers/microsoft.d.ts +1 -1
  115. package/dist/core/auth/oauth/providers/microsoft.js +1 -1
  116. package/dist/core/auth/oauth/state-cookie.js +1 -1
  117. package/dist/core/auth/password/client-helper.d.ts +9 -9
  118. package/dist/core/auth/password/client-helper.js +5 -3
  119. package/dist/core/auth/password/hasher.d.ts +83 -0
  120. package/dist/core/auth/password/hasher.js +14 -0
  121. package/dist/core/auth/password/index.d.ts +8 -6
  122. package/dist/core/auth/password/index.js +11 -2
  123. package/dist/core/auth/services/email-verification.service.d.ts +1 -1
  124. package/dist/core/auth/services/email-verification.service.js +3 -3
  125. package/dist/core/auth/services/index.d.ts +13 -12
  126. package/dist/core/auth/services/index.js +16 -16
  127. package/dist/core/auth/services/login.service.d.ts +15 -1
  128. package/dist/core/auth/services/login.service.js +6 -6
  129. package/dist/core/auth/services/oauth-callback.service.d.ts +7 -1
  130. package/dist/core/auth/services/oauth-callback.service.js +6 -6
  131. package/dist/core/auth/services/password-reset.service.d.ts +1 -1
  132. package/dist/core/auth/services/password-reset.service.js +3 -3
  133. package/dist/core/auth/services/refresh-token-store.d.ts +39 -0
  134. package/dist/core/auth/services/register.service.d.ts +1 -1
  135. package/dist/core/auth/services/register.service.js +3 -3
  136. package/dist/core/auth/services/token-refresh.service.d.ts +27 -1
  137. package/dist/core/auth/services/token-refresh.service.js +6 -6
  138. package/dist/core/auth/token-delivery.d.ts +47 -0
  139. package/dist/core/auth/token-delivery.js +14 -0
  140. package/dist/core/auth/types/index.d.ts +38 -4
  141. package/dist/core/auth/types/index.js +1 -1
  142. package/dist/core/cache/cache-config.js +4 -4
  143. package/dist/core/cache/cache-defaults.js +1 -1
  144. package/dist/core/cache/cache-env.d.ts +3 -3
  145. package/dist/core/cache/cache-env.js +3 -3
  146. package/dist/core/cache/cache-factory.d.ts +6 -6
  147. package/dist/core/cache/cache-factory.js +11 -11
  148. package/dist/core/cache/cache-invalidation.d.ts +4 -4
  149. package/dist/core/cache/cache-invalidation.js +12 -12
  150. package/dist/core/cache/cache-redis.js +5 -5
  151. package/dist/core/cache/cache-types.js +1 -1
  152. package/dist/core/cache/cache-wrapper.d.ts +1 -1
  153. package/dist/core/cache/cache-wrapper.js +12 -12
  154. package/dist/core/cache/cache.d.ts +2 -2
  155. package/dist/core/cache/cache.js +17 -17
  156. package/dist/core/cache/config.js +2 -2
  157. package/dist/core/cache/hybrid-cache-manager.d.ts +1 -1
  158. package/dist/core/cache/hybrid-cache-manager.js +7 -7
  159. package/dist/core/cache/index.d.ts +15 -15
  160. package/dist/core/cache/index.js +17 -17
  161. package/dist/core/cache/inmemory-cache-manager.d.ts +1 -1
  162. package/dist/core/cache/inmemory-cache-manager.js +3 -3
  163. package/dist/core/cache/noop-cache-manager.d.ts +1 -1
  164. package/dist/core/cache/noop-cache-manager.js +5 -5
  165. package/dist/core/cache/redis-cache-manager.d.ts +2 -2
  166. package/dist/core/cache/redis-cache-manager.js +6 -6
  167. package/dist/core/config/common.js +1 -1
  168. package/dist/core/config/errors.js +1 -1
  169. package/dist/core/config/registry.d.ts +7 -7
  170. package/dist/core/config/registry.js +1 -1
  171. package/dist/core/config/warn.js +1 -1
  172. package/dist/core/constants/error-codes.js +1 -1
  173. package/dist/core/constants/index.d.ts +5 -5
  174. package/dist/core/constants/index.js +10 -8
  175. package/dist/core/constants/messages.js +1 -1
  176. package/dist/core/constants/pagination.js +1 -1
  177. package/dist/core/constants/security.d.ts +15 -0
  178. package/dist/core/constants/security.js +4 -2
  179. package/dist/core/constants/validation.js +1 -1
  180. package/dist/core/cors/index.js +1 -1
  181. package/dist/core/error/app-error.d.ts +2 -2
  182. package/dist/core/error/app-error.js +1 -1
  183. package/dist/core/error/extract-error-info.js +1 -1
  184. package/dist/core/error/friendly-messages-v2.d.ts +3 -3
  185. package/dist/core/error/friendly-messages-v2.js +4 -4
  186. package/dist/core/error/friendly-messages.js +1 -1
  187. package/dist/core/error/index.d.ts +6 -6
  188. package/dist/core/error/index.js +4 -4
  189. package/dist/core/error/messages/en.d.ts +1 -1
  190. package/dist/core/error/messages/en.js +1 -1
  191. package/dist/core/error/messages/index.d.ts +2 -2
  192. package/dist/core/error/messages/index.js +3 -3
  193. package/dist/core/error/messages/ko.d.ts +1 -1
  194. package/dist/core/error/messages/ko.js +1 -1
  195. package/dist/core/geolocation/batch-processor.d.ts +1 -1
  196. package/dist/core/geolocation/batch-processor.js +3 -3
  197. package/dist/core/geolocation/config.js +1 -1
  198. package/dist/core/geolocation/index.d.ts +5 -5
  199. package/dist/core/geolocation/index.js +7 -7
  200. package/dist/core/geolocation/providers/base-provider.d.ts +2 -2
  201. package/dist/core/geolocation/providers/base-provider.js +1 -1
  202. package/dist/core/geolocation/providers/index.d.ts +6 -6
  203. package/dist/core/geolocation/providers/index.js +5 -5
  204. package/dist/core/geolocation/providers/ip-api-provider.d.ts +3 -3
  205. package/dist/core/geolocation/providers/ip-api-provider.js +1 -1
  206. package/dist/core/geolocation/providers/ipapi-co-provider.d.ts +3 -3
  207. package/dist/core/geolocation/providers/ipapi-co-provider.js +1 -1
  208. package/dist/core/geolocation/providers/ipgeolocation-provider.d.ts +3 -3
  209. package/dist/core/geolocation/providers/ipgeolocation-provider.js +1 -1
  210. package/dist/core/geolocation/providers/maxmind-provider.d.ts +3 -3
  211. package/dist/core/geolocation/providers/maxmind-provider.js +1 -1
  212. package/dist/core/logger/config.js +1 -1
  213. package/dist/core/logger/logger.js +2 -2
  214. package/dist/core/storage/config.js +1 -1
  215. package/dist/core/storage/r2-storage.js +1 -1
  216. package/dist/core/system/cpu.d.ts +1 -1
  217. package/dist/core/system/cpu.js +4 -4
  218. package/dist/core/system/disk.d.ts +1 -1
  219. package/dist/core/system/disk.js +4 -4
  220. package/dist/core/system/environment.d.ts +1 -1
  221. package/dist/core/system/environment.js +7 -7
  222. package/dist/core/system/health-check.d.ts +2 -2
  223. package/dist/core/system/health-check.js +5 -5
  224. package/dist/core/system/index.d.ts +7 -7
  225. package/dist/core/system/index.js +17 -17
  226. package/dist/core/system/memory.d.ts +1 -1
  227. package/dist/core/system/memory.js +4 -4
  228. package/dist/core/system/network.d.ts +1 -1
  229. package/dist/core/system/network.js +4 -4
  230. package/dist/core/system/utils.js +3 -3
  231. package/dist/core/types/geoip.d.ts +1 -1
  232. package/dist/core/types/qr-code.js +1 -1
  233. package/dist/core/utils/error-message-formatter.js +1 -1
  234. package/dist/core/utils/format-number.js +1 -1
  235. package/dist/core/utils/index.d.ts +3 -3
  236. package/dist/core/utils/index.js +9 -9
  237. package/dist/core/utils/input-validation.js +52 -16
  238. package/dist/core/utils/ip-utils.js +1 -1
  239. package/dist/core/utils/optimistic-lock.js +1 -1
  240. package/dist/core/utils/sanitizer.js +2 -2
  241. package/dist/core/utils/short-code-generator.js +1 -1
  242. package/dist/core/utils/timezone.js +121 -14
  243. package/dist/core/utils/type-guards.js +1 -1
  244. package/dist/core/utils/url-normalizer.js +1 -1
  245. package/dist/core/validators/index.d.ts +1 -1
  246. package/dist/core/validators/index.js +2 -2
  247. package/dist/core/validators/password-validator.d.ts +3 -3
  248. package/dist/core/validators/password-validator.js +2 -2
  249. package/dist/initialize.d.ts +10 -10
  250. package/dist/initialize.js +7 -7
  251. package/dist/next/auth-handlers/forgot-password.handler.d.ts +1 -1
  252. package/dist/next/auth-handlers/forgot-password.handler.js +4 -4
  253. package/dist/next/auth-handlers/index.d.ts +11 -11
  254. package/dist/next/auth-handlers/index.js +32 -31
  255. package/dist/next/auth-handlers/login.handler.d.ts +1 -1
  256. package/dist/next/auth-handlers/login.handler.js +7 -6
  257. package/dist/next/auth-handlers/logout.handler.d.ts +1 -1
  258. package/dist/next/auth-handlers/logout.handler.js +5 -5
  259. package/dist/next/auth-handlers/me.handler.d.ts +1 -1
  260. package/dist/next/auth-handlers/me.handler.js +7 -6
  261. package/dist/next/auth-handlers/oauth-authorize.handler.d.ts +1 -1
  262. package/dist/next/auth-handlers/oauth-authorize.handler.js +4 -4
  263. package/dist/next/auth-handlers/oauth-callback.handler.d.ts +1 -1
  264. package/dist/next/auth-handlers/oauth-callback.handler.js +9 -9
  265. package/dist/next/auth-handlers/refresh.handler.d.ts +1 -1
  266. package/dist/next/auth-handlers/refresh.handler.js +8 -7
  267. package/dist/next/auth-handlers/register.handler.d.ts +1 -1
  268. package/dist/next/auth-handlers/register.handler.js +4 -4
  269. package/dist/next/auth-handlers/reset-password.handler.d.ts +1 -1
  270. package/dist/next/auth-handlers/reset-password.handler.js +4 -4
  271. package/dist/next/auth-handlers/verify-email.handler.d.ts +1 -1
  272. package/dist/next/auth-handlers/verify-email.handler.js +4 -4
  273. package/dist/next/auth-types/handler-types.d.ts +5 -1
  274. package/dist/next/auth-types/handler-types.js +13 -1
  275. package/dist/next/auth-types/index.d.ts +1 -1
  276. package/dist/next/auth-types/index.js +13 -1
  277. package/dist/next/error/error-handler.js +3 -3
  278. package/dist/next/error/index.d.ts +3 -3
  279. package/dist/next/error/index.js +9 -9
  280. package/dist/next/error/locale-detector.d.ts +1 -1
  281. package/dist/next/error/locale-detector.js +1 -1
  282. package/dist/next/middleware/auth.d.ts +3 -3
  283. package/dist/next/middleware/auth.js +8 -7
  284. package/dist/next/middleware/cors.d.ts +2 -2
  285. package/dist/next/middleware/cors.js +3 -3
  286. package/dist/next/middleware/error-handler.d.ts +1 -1
  287. package/dist/next/middleware/error-handler.js +6 -6
  288. package/dist/next/middleware/index.d.ts +11 -11
  289. package/dist/next/middleware/index.js +19 -18
  290. package/dist/next/middleware/init-request.d.ts +1 -1
  291. package/dist/next/middleware/init-request.js +1 -1
  292. package/dist/next/middleware/middleware-chain.d.ts +1 -1
  293. package/dist/next/middleware/middleware-chain.js +3 -3
  294. package/dist/next/middleware/rate-limit.d.ts +2 -2
  295. package/dist/next/middleware/rate-limit.js +3 -3
  296. package/dist/next/middleware/response-logger.d.ts +1 -1
  297. package/dist/next/middleware/response-logger.js +3 -3
  298. package/dist/next/middleware/security.d.ts +1 -1
  299. package/dist/next/middleware/security.js +3 -3
  300. package/dist/next/middleware/types.d.ts +6 -3
  301. package/dist/next/middleware/wrappers.d.ts +2 -2
  302. package/dist/next/middleware/wrappers.js +18 -17
  303. package/dist/next/utils/api-helpers.d.ts +6 -2
  304. package/dist/next/utils/api-helpers.js +3 -2
  305. package/dist/next/utils/cors.js +2 -2
  306. package/dist/next/utils/csv-export-format.js +1 -1
  307. package/dist/next/utils/csv-export.js +3 -3
  308. package/dist/next/utils/error-processor.d.ts +1 -1
  309. package/dist/next/utils/error-processor.js +3 -3
  310. package/dist/next/utils/index.d.ts +5 -5
  311. package/dist/next/utils/index.js +28 -27
  312. package/dist/prisma/auth-adapter/index.d.ts +1 -1
  313. package/dist/prisma/auth-adapter/index.js +1 -1
  314. package/package.json +96 -52
  315. package/dist/chunk-2P4N4OK2.js +0 -150
  316. package/dist/chunk-4IQWQSEV.js +0 -27
  317. package/dist/chunk-4K76HG4V.js +0 -34
  318. package/dist/chunk-7EXSMZ2O.js +0 -29
  319. package/dist/chunk-7VXRBTRF.js +0 -110
  320. package/dist/chunk-ARXUKGZI.js +0 -58
  321. package/dist/chunk-B5OH43PR.js +0 -31
  322. package/dist/chunk-BW4QO7T6.js +0 -56
  323. package/dist/chunk-EK4TL7VW.js +0 -22
  324. package/dist/chunk-ERKJJDY6.js +0 -117
  325. package/dist/chunk-G4GT4X3J.js +0 -240
  326. package/dist/chunk-GPOSTBDQ.js +0 -193
  327. package/dist/chunk-IRUFNC4L.js +0 -26
  328. package/dist/chunk-J2MAXMIP.js +0 -105
  329. package/dist/chunk-MFMQO6IS.js +0 -127
  330. package/dist/chunk-PBQGXOVX.js +0 -31
  331. package/dist/chunk-STMAKLLG.js +0 -24
  332. package/dist/chunk-WP233RH2.js +0 -80
  333. package/dist/chunk-WWOYFWFB.js +0 -137
  334. package/dist/chunk-X7FGBUA4.js +0 -117
  335. package/dist/chunk-YSPIFSDI.js +0 -136
  336. package/dist/chunk-ZCLKRGZ4.js +0 -81
  337. package/dist/react/components/ui/Alert.d.ts +0 -12
  338. package/dist/react/components/ui/Alert.js +0 -10
  339. package/dist/react/components/ui/Badge.d.ts +0 -7
  340. package/dist/react/components/ui/Badge.js +0 -8
  341. package/dist/react/components/ui/Button.d.ts +0 -7
  342. package/dist/react/components/ui/Button.js +0 -8
  343. package/dist/react/components/ui/DataTable.d.ts +0 -8
  344. package/dist/react/components/ui/DataTable.js +0 -22
  345. package/dist/react/components/ui/DomainDisplay.d.ts +0 -12
  346. package/dist/react/components/ui/DomainDisplay.js +0 -31
  347. package/dist/react/components/ui/Input.d.ts +0 -5
  348. package/dist/react/components/ui/Input.js +0 -8
  349. package/dist/react/components/ui/Label.d.ts +0 -5
  350. package/dist/react/components/ui/Label.js +0 -8
  351. package/dist/react/components/ui/Pagination.d.ts +0 -42
  352. package/dist/react/components/ui/Pagination.js +0 -20
  353. package/dist/react/components/ui/Select.d.ts +0 -15
  354. package/dist/react/components/ui/Select.js +0 -27
  355. package/dist/react/components/ui/Skeleton.d.ts +0 -6
  356. package/dist/react/components/ui/Skeleton.js +0 -8
  357. package/dist/react/components/ui/TimezoneDisplay.d.ts +0 -22
  358. package/dist/react/components/ui/TimezoneDisplay.js +0 -83
  359. package/dist/react/components/ui/Tooltip.d.ts +0 -21
  360. package/dist/react/components/ui/Tooltip.js +0 -94
  361. package/dist/react/components/ui/data-table/DataTable.d.ts +0 -2
  362. package/dist/react/components/ui/data-table/DataTable.js +0 -22
  363. package/dist/react/components/ui/data-table/DataTableBody.d.ts +0 -19
  364. package/dist/react/components/ui/data-table/DataTableBody.js +0 -10
  365. package/dist/react/components/ui/data-table/DataTableBulkActions.d.ts +0 -17
  366. package/dist/react/components/ui/data-table/DataTableBulkActions.js +0 -12
  367. package/dist/react/components/ui/data-table/DataTableFilters.d.ts +0 -15
  368. package/dist/react/components/ui/data-table/DataTableFilters.js +0 -13
  369. package/dist/react/components/ui/data-table/DataTablePagination.d.ts +0 -10
  370. package/dist/react/components/ui/data-table/DataTablePagination.js +0 -11
  371. package/dist/react/components/ui/data-table/DataTableSearch.d.ts +0 -24
  372. package/dist/react/components/ui/data-table/DataTableSearch.js +0 -12
  373. package/dist/react/components/ui/data-table/index.d.ts +0 -13
  374. package/dist/react/components/ui/data-table/index.js +0 -42
  375. package/dist/react/components/ui/data-table/types.d.ts +0 -120
  376. package/dist/react/components/ui/data-table/types.js +0 -9
  377. package/dist/react/components/ui/loading-bar.d.ts +0 -20
  378. package/dist/react/components/ui/loading-bar.js +0 -15
  379. package/dist/react/error/error-display.d.ts +0 -48
  380. package/dist/react/error/error-display.js +0 -30
  381. package/dist/react/error/index.d.ts +0 -6
  382. package/dist/react/error/index.js +0 -30
  383. package/dist/react/hooks/useDataTable.d.ts +0 -96
  384. package/dist/react/hooks/useDataTable.js +0 -151
  385. package/dist/react/hooks/useDebounce.d.ts +0 -7
  386. package/dist/react/hooks/useDebounce.js +0 -7
  387. package/dist/react/hooks/useExitIntent.d.ts +0 -35
  388. package/dist/react/hooks/useExitIntent.js +0 -72
  389. package/dist/react/hooks/useTimezone.d.ts +0 -19
  390. package/dist/react/hooks/useTimezone.js +0 -11
  391. package/dist/react/utils/client-utils.d.ts +0 -3
  392. package/dist/react/utils/client-utils.js +0 -9
  393. package/dist/react/utils/qr-code.d.ts +0 -16
  394. package/dist/react/utils/qr-code.js +0 -215
  395. package/dist/{chunk-7PEVOMBO.js → chunk-AOWUPAPS.js} +0 -0
  396. package/dist/{chunk-VDRLJU6C.js → chunk-E2HYIONP.js} +3 -3
  397. package/dist/{chunk-7WG7XPXC.js → chunk-KKZCNF6U.js} +3 -3
  398. package/dist/{chunk-UQ3Z3ZAF.js → chunk-P7WHMKN5.js} +3 -3
  399. /package/dist/{chunk-M22Z2NO6.js → core/auth/services/refresh-token-store.js} +0 -0
@@ -6,13 +6,18 @@ import {
6
6
  getPasswordStrength,
7
7
  passwordValidator,
8
8
  validatePassword
9
- } from "../../chunk-6JXHXIEH.js";
9
+ } from "../../chunk-3UIKCS56.js";
10
10
  import {
11
11
  PasswordHasher,
12
12
  PasswordValidator,
13
13
  defaultPasswordSchema,
14
14
  strongPasswordSchema
15
- } from "../../chunk-MNYVAEXK.js";
15
+ } from "../../chunk-4ROIPF33.js";
16
+ import {
17
+ Argon2idPasswordHasher,
18
+ BcryptPasswordHasher,
19
+ MigratingPasswordHasher
20
+ } from "../../chunk-ILMPKSWS.js";
16
21
  import {
17
22
  JWTClientManager,
18
23
  clearStoredTokens,
@@ -28,14 +33,14 @@ import {
28
33
  isTokenExpired,
29
34
  isTokenExpiringSoon,
30
35
  storeTokens
31
- } from "../../chunk-LG3KM5V3.js";
32
- import {
33
- TokenGenerator
34
- } from "../../chunk-D73ZJQMX.js";
36
+ } from "../../chunk-5I3EQHR4.js";
35
37
  import {
36
38
  OAuthManager
37
- } from "../../chunk-UQ3Z3ZAF.js";
39
+ } from "../../chunk-P7WHMKN5.js";
38
40
  import "../../chunk-CDALZTPN.js";
41
+ import {
42
+ GoogleOAuthProvider
43
+ } from "../../chunk-GF3DKZIW.js";
39
44
  import {
40
45
  KakaoOAuthProvider
41
46
  } from "../../chunk-65HVR74O.js";
@@ -44,10 +49,10 @@ import "../../chunk-GSSHHVHF.js";
44
49
  import {
45
50
  GitHubOAuthProvider
46
51
  } from "../../chunk-HIZ7USIF.js";
47
- import {
48
- GoogleOAuthProvider
49
- } from "../../chunk-GF3DKZIW.js";
50
52
  import "../../chunk-JLRMET4V.js";
53
+ import {
54
+ TokenGenerator
55
+ } from "../../chunk-ZZABL54F.js";
51
56
  import {
52
57
  OAUTH_PROVIDERS,
53
58
  PasswordStrength,
@@ -56,8 +61,7 @@ import {
56
61
  import {
57
62
  JWTManager,
58
63
  JWTService
59
- } from "../../chunk-2PFSRVVD.js";
60
- import "../../chunk-RJGYONRO.js";
64
+ } from "../../chunk-LWHLB2Y6.js";
61
65
  import {
62
66
  AUTH_ERROR_CODES,
63
67
  AuthError,
@@ -66,14 +70,17 @@ import {
66
70
  OAuthError,
67
71
  PasswordError
68
72
  } from "../../chunk-5GWGARXI.js";
69
- import "../../chunk-KYAHURXN.js";
70
- import "../../chunk-2SIBG5BG.js";
73
+ import "../../chunk-PRPMEHRE.js";
74
+ import "../../chunk-N3TCQ5BF.js";
75
+ import "../../chunk-7YWUKMZD.js";
71
76
  import "../../chunk-6J2EJVND.js";
72
77
  import "../../chunk-F3R3UYBF.js";
73
- import "../../chunk-ORMEWXMH.js";
78
+ import "../../chunk-N3ETBM74.js";
74
79
  export {
75
80
  AUTH_ERROR_CODES,
81
+ Argon2idPasswordHasher,
76
82
  AuthError,
83
+ BcryptPasswordHasher,
77
84
  DEFAULT_PASSWORD_CONFIG,
78
85
  EmailError,
79
86
  GitHubOAuthProvider,
@@ -83,6 +90,7 @@ export {
83
90
  JWTManager,
84
91
  JWTService,
85
92
  KakaoOAuthProvider,
93
+ MigratingPasswordHasher,
86
94
  OAUTH_PROVIDERS,
87
95
  OAuthError,
88
96
  OAuthManager,
@@ -15,8 +15,9 @@ import {
15
15
  isTokenExpired,
16
16
  isTokenExpiringSoon,
17
17
  storeTokens
18
- } from "../../../chunk-LG3KM5V3.js";
19
- import "../../../chunk-ORMEWXMH.js";
18
+ } from "../../../chunk-5I3EQHR4.js";
19
+ import "../../../chunk-7YWUKMZD.js";
20
+ import "../../../chunk-N3ETBM74.js";
20
21
  export {
21
22
  JWTClientManager,
22
23
  clearStoredTokens,
@@ -4,7 +4,7 @@
4
4
  * NextResponse 타입을 제네릭으로 처리하여
5
5
  * symlink 환경에서의 next 패키지 경로 충돌을 방지합니다.
6
6
  */
7
- import type { TokenPair } from '@withwiz/core/auth/types';
7
+ import type { TokenPair } from '@withwiz/toolkit/core/auth/types';
8
8
  /** cookies.set()을 지원하는 Response 타입 */
9
9
  interface CookieSettableResponse {
10
10
  cookies: {
@@ -1,12 +1,12 @@
1
1
  import {
2
2
  clearTokenCookies,
3
3
  setTokenCookies
4
- } from "../../../chunk-RJGYONRO.js";
5
- import "../../../chunk-KYAHURXN.js";
6
- import "../../../chunk-2SIBG5BG.js";
4
+ } from "../../../chunk-PRPMEHRE.js";
5
+ import "../../../chunk-N3TCQ5BF.js";
6
+ import "../../../chunk-7YWUKMZD.js";
7
7
  import "../../../chunk-6J2EJVND.js";
8
8
  import "../../../chunk-F3R3UYBF.js";
9
- import "../../../chunk-ORMEWXMH.js";
9
+ import "../../../chunk-N3ETBM74.js";
10
10
  export {
11
11
  clearTokenCookies,
12
12
  setTokenCookies
@@ -4,20 +4,39 @@
4
4
  * JWT 토큰 생성 및 검증 모듈 (프레임워크 독립적)
5
5
  * Next.js, Express, Fastify 등 어디서나 사용 가능
6
6
  */
7
- import type { JWTConfig, JWTPayload, TokenPair, Logger } from "@withwiz/core/auth/types";
7
+ import type { JWTConfig, JWTPayload, TokenPair, Logger } from "@withwiz/toolkit/core/auth/types";
8
8
  export declare class JWTManager {
9
9
  private config;
10
10
  private logger;
11
- private secretKey;
11
+ private secretKey?;
12
+ private signingKeyCache?;
13
+ private verifyKeyCache?;
14
+ private jwks?;
12
15
  constructor(config: JWTConfig, logger: Logger);
16
+ private isSymmetric;
17
+ /** 발급용 키 (HS: secret, 비대칭: PKCS#8 개인키). 결과를 캐시한다. */
18
+ private getSigningKey;
19
+ /**
20
+ * 검증용 키를 jose getKey 함수로 정규화해 반환한다 (HS: secret, 비대칭:
21
+ * SPKI 공개키 또는 원격 JWKS). 정적 키도 함수로 감싸 단일 호출 경로를 쓰며,
22
+ * jose 는 함수 호출 전 알고리즘 allowlist 를 검증하므로 confusion 가드는 유지된다.
23
+ */
24
+ private getVerifyKey;
13
25
  /**
14
26
  * Access JWT 토큰 생성
15
27
  */
16
28
  createAccessToken(payload: Omit<JWTPayload, "iat" | "exp">): Promise<string>;
17
29
  /**
18
30
  * Refresh 토큰 생성
31
+ *
32
+ * rotation/reuse detection 용 `jti`(토큰 고유 id)와 `familyId`(회전 계보 id)를
33
+ * 함께 발급할 수 있다. 미지정 시 0.8 이전과 동일하게 식별자 없는 refresh
34
+ * 토큰을 만든다(하위 호환).
19
35
  */
20
- createRefreshToken(userId: string): Promise<string>;
36
+ createRefreshToken(userId: string, options?: {
37
+ jti?: string;
38
+ familyId?: string;
39
+ }): Promise<string>;
21
40
  /**
22
41
  * 토큰 쌍 생성 (Access + Refresh)
23
42
  */
@@ -26,17 +45,22 @@ export declare class JWTManager {
26
45
  email: string;
27
46
  role: string;
28
47
  emailVerified?: Date | null;
48
+ }, options?: {
49
+ jti?: string;
50
+ familyId?: string;
29
51
  }): Promise<TokenPair>;
30
52
  /**
31
53
  * Access JWT 토큰 검증
32
54
  */
33
- verifyAccessToken(token: string): Promise<JWTPayload>;
55
+ verifyAccessToken<TRole extends string = string>(token: string): Promise<JWTPayload<TRole>>;
34
56
  /**
35
57
  * Refresh 토큰 검증
36
58
  */
37
59
  verifyRefreshToken(token: string): Promise<{
38
60
  userId: string;
39
61
  tokenType: string;
62
+ jti?: string;
63
+ familyId?: string;
40
64
  }>;
41
65
  /**
42
66
  * Authorization 헤더에서 토큰 추출
@@ -73,17 +97,22 @@ export declare class JWTService {
73
97
  /**
74
98
  * 토큰 검증
75
99
  */
76
- verify(token: string): Promise<JWTPayload>;
100
+ verify<TRole extends string = string>(token: string): Promise<JWTPayload<TRole>>;
77
101
  /**
78
102
  * Refresh 토큰 생성
79
103
  */
80
- createRefreshToken(userId: string): Promise<string>;
104
+ createRefreshToken(userId: string, options?: {
105
+ jti?: string;
106
+ familyId?: string;
107
+ }): Promise<string>;
81
108
  /**
82
109
  * Refresh 토큰 검증
83
110
  */
84
111
  verifyRefreshToken(token: string): Promise<{
85
112
  userId: string;
86
113
  tokenType: string;
114
+ jti?: string;
115
+ familyId?: string;
87
116
  }>;
88
117
  /**
89
118
  * 토큰 쌍 생성
@@ -93,6 +122,9 @@ export declare class JWTService {
93
122
  email: string;
94
123
  role: string;
95
124
  emailVerified?: Date | null;
125
+ }, options?: {
126
+ jti?: string;
127
+ familyId?: string;
96
128
  }): Promise<TokenPair>;
97
129
  /**
98
130
  * Access 토큰 생성
@@ -101,12 +133,12 @@ export declare class JWTService {
101
133
  /**
102
134
  * Access 토큰 검증
103
135
  */
104
- verifyAccessToken(token: string): Promise<JWTPayload>;
136
+ verifyAccessToken<TRole extends string = string>(token: string): Promise<JWTPayload<TRole>>;
105
137
  /**
106
138
  * Authorization 헤더에서 토큰 추출
107
139
  */
108
140
  extractTokenFromHeader(authHeader: string | undefined): string | null;
109
141
  }
110
- export { setTokenCookies, clearTokenCookies } from './cookie';
111
- export type { CookieOptions } from './cookie';
142
+ export { setTokenCookies, clearTokenCookies } from '@withwiz/toolkit/core/auth/jwt/cookie';
143
+ export type { CookieOptions } from '@withwiz/toolkit/core/auth/jwt/cookie';
112
144
  export type { JWTConfig, JWTPayload, TokenPair };
@@ -1,17 +1,17 @@
1
1
  import {
2
2
  JWTManager,
3
3
  JWTService
4
- } from "../../../chunk-2PFSRVVD.js";
4
+ } from "../../../chunk-LWHLB2Y6.js";
5
+ import "../../../chunk-5GWGARXI.js";
5
6
  import {
6
7
  clearTokenCookies,
7
8
  setTokenCookies
8
- } from "../../../chunk-RJGYONRO.js";
9
- import "../../../chunk-5GWGARXI.js";
10
- import "../../../chunk-KYAHURXN.js";
11
- import "../../../chunk-2SIBG5BG.js";
9
+ } from "../../../chunk-PRPMEHRE.js";
10
+ import "../../../chunk-N3TCQ5BF.js";
11
+ import "../../../chunk-7YWUKMZD.js";
12
12
  import "../../../chunk-6J2EJVND.js";
13
13
  import "../../../chunk-F3R3UYBF.js";
14
- import "../../../chunk-ORMEWXMH.js";
14
+ import "../../../chunk-N3ETBM74.js";
15
15
  export {
16
16
  JWTManager,
17
17
  JWTService,
@@ -3,4 +3,4 @@
3
3
  *
4
4
  * JWT 모듈 전용 타입 정의
5
5
  */
6
- export * from '@withwiz/core/auth/types';
6
+ export * from '@withwiz/toolkit/core/auth/types';
@@ -3,7 +3,7 @@ import {
3
3
  PasswordStrength,
4
4
  TokenType
5
5
  } from "../../../chunk-GH3U4WRE.js";
6
- import "../../../chunk-ORMEWXMH.js";
6
+ import "../../../chunk-N3ETBM74.js";
7
7
  export {
8
8
  OAUTH_PROVIDERS,
9
9
  PasswordStrength,
@@ -4,12 +4,12 @@
4
4
  * OAuth 2.0 인증 모듈 (프레임워크 독립적)
5
5
  * 플러그인 기반 프로바이더 레지스트리 패턴
6
6
  */
7
- import type { OAuthConfig, OAuthUserInfo, Logger, IOAuthProviderAdapter } from '@withwiz/core/auth/types';
8
- import { OAUTH_PROVIDERS } from '@withwiz/core/auth/types';
7
+ import type { OAuthConfig, OAuthUserInfo, Logger, IOAuthProviderAdapter } from '@withwiz/toolkit/core/auth/types';
8
+ import { OAUTH_PROVIDERS } from '@withwiz/toolkit/core/auth/types';
9
9
  export { OAUTH_PROVIDERS };
10
- export { OAUTH_STATE_COOKIE, generateOAuthState, setOAuthStateCookie, clearOAuthStateCookie, validateOAuthState, } from './state-cookie';
11
- export type { OAuthStateCookieOptions } from './state-cookie';
12
- export { GoogleOAuthProvider, GitHubOAuthProvider, KakaoOAuthProvider, MicrosoftOAuthProvider, MetaOAuthProvider, } from './providers';
10
+ export { OAUTH_STATE_COOKIE, generateOAuthState, setOAuthStateCookie, clearOAuthStateCookie, validateOAuthState, } from '@withwiz/toolkit/core/auth/oauth/state-cookie';
11
+ export type { OAuthStateCookieOptions } from '@withwiz/toolkit/core/auth/oauth/state-cookie';
12
+ export { GoogleOAuthProvider, GitHubOAuthProvider, KakaoOAuthProvider, MicrosoftOAuthProvider, MetaOAuthProvider, } from '@withwiz/toolkit/core/auth/oauth/providers';
13
13
  export declare class OAuthManager {
14
14
  private config;
15
15
  private logger;
@@ -40,4 +40,4 @@ export declare class OAuthManager {
40
40
  */
41
41
  private getProviderConfig;
42
42
  }
43
- export type { OAuthConfig, OAuthUserInfo, OAuthTokenResponse, IOAuthProviderAdapter, OAuthProviderConfig } from '@withwiz/core/auth/types';
43
+ export type { OAuthConfig, OAuthUserInfo, OAuthTokenResponse, IOAuthProviderAdapter, OAuthProviderConfig } from '@withwiz/toolkit/core/auth/types';
@@ -1,7 +1,10 @@
1
1
  import {
2
2
  OAuthManager
3
- } from "../../../chunk-UQ3Z3ZAF.js";
3
+ } from "../../../chunk-P7WHMKN5.js";
4
4
  import "../../../chunk-CDALZTPN.js";
5
+ import {
6
+ GoogleOAuthProvider
7
+ } from "../../../chunk-GF3DKZIW.js";
5
8
  import {
6
9
  KakaoOAuthProvider
7
10
  } from "../../../chunk-65HVR74O.js";
@@ -14,9 +17,6 @@ import {
14
17
  import {
15
18
  GitHubOAuthProvider
16
19
  } from "../../../chunk-HIZ7USIF.js";
17
- import {
18
- GoogleOAuthProvider
19
- } from "../../../chunk-GF3DKZIW.js";
20
20
  import {
21
21
  OAUTH_STATE_COOKIE,
22
22
  clearOAuthStateCookie,
@@ -28,7 +28,7 @@ import {
28
28
  OAUTH_PROVIDERS
29
29
  } from "../../../chunk-GH3U4WRE.js";
30
30
  import "../../../chunk-5GWGARXI.js";
31
- import "../../../chunk-ORMEWXMH.js";
31
+ import "../../../chunk-N3ETBM74.js";
32
32
  export {
33
33
  GitHubOAuthProvider,
34
34
  GoogleOAuthProvider,
@@ -3,7 +3,7 @@
3
3
  *
4
4
  * GitHub OAuth 2.0 인증 어댑터
5
5
  */
6
- import type { IOAuthProviderAdapter, OAuthProviderConfig, OAuthUserInfo, OAuthTokenResponse } from '@withwiz/core/auth/types';
6
+ import type { IOAuthProviderAdapter, OAuthProviderConfig, OAuthUserInfo, OAuthTokenResponse } from '@withwiz/toolkit/core/auth/types';
7
7
  export declare class GitHubOAuthProvider implements IOAuthProviderAdapter {
8
8
  readonly name = "github";
9
9
  getLoginUrl(config: OAuthProviderConfig, state?: string): string;
@@ -2,7 +2,7 @@ import {
2
2
  GitHubOAuthProvider
3
3
  } from "../../../../chunk-HIZ7USIF.js";
4
4
  import "../../../../chunk-5GWGARXI.js";
5
- import "../../../../chunk-ORMEWXMH.js";
5
+ import "../../../../chunk-N3ETBM74.js";
6
6
  export {
7
7
  GitHubOAuthProvider
8
8
  };
@@ -3,7 +3,7 @@
3
3
  *
4
4
  * Google OAuth 2.0 인증 어댑터
5
5
  */
6
- import type { IOAuthProviderAdapter, OAuthProviderConfig, OAuthUserInfo, OAuthTokenResponse } from '@withwiz/core/auth/types';
6
+ import type { IOAuthProviderAdapter, OAuthProviderConfig, OAuthUserInfo, OAuthTokenResponse } from '@withwiz/toolkit/core/auth/types';
7
7
  export declare class GoogleOAuthProvider implements IOAuthProviderAdapter {
8
8
  readonly name = "google";
9
9
  getLoginUrl(config: OAuthProviderConfig, state?: string): string;
@@ -2,7 +2,7 @@ import {
2
2
  GoogleOAuthProvider
3
3
  } from "../../../../chunk-GF3DKZIW.js";
4
4
  import "../../../../chunk-5GWGARXI.js";
5
- import "../../../../chunk-ORMEWXMH.js";
5
+ import "../../../../chunk-N3ETBM74.js";
6
6
  export {
7
7
  GoogleOAuthProvider
8
8
  };
@@ -1,5 +1,5 @@
1
- export { GoogleOAuthProvider } from './google';
2
- export { GitHubOAuthProvider } from './github';
3
- export { KakaoOAuthProvider } from './kakao';
4
- export { MicrosoftOAuthProvider } from './microsoft';
5
- export { MetaOAuthProvider } from './meta';
1
+ export { GoogleOAuthProvider } from '@withwiz/toolkit/core/auth/oauth/providers/google';
2
+ export { GitHubOAuthProvider } from '@withwiz/toolkit/core/auth/oauth/providers/github';
3
+ export { KakaoOAuthProvider } from '@withwiz/toolkit/core/auth/oauth/providers/kakao';
4
+ export { MicrosoftOAuthProvider } from '@withwiz/toolkit/core/auth/oauth/providers/microsoft';
5
+ export { MetaOAuthProvider } from '@withwiz/toolkit/core/auth/oauth/providers/meta';
@@ -1,4 +1,7 @@
1
1
  import "../../../../chunk-CDALZTPN.js";
2
+ import {
3
+ GoogleOAuthProvider
4
+ } from "../../../../chunk-GF3DKZIW.js";
2
5
  import {
3
6
  KakaoOAuthProvider
4
7
  } from "../../../../chunk-65HVR74O.js";
@@ -11,11 +14,8 @@ import {
11
14
  import {
12
15
  GitHubOAuthProvider
13
16
  } from "../../../../chunk-HIZ7USIF.js";
14
- import {
15
- GoogleOAuthProvider
16
- } from "../../../../chunk-GF3DKZIW.js";
17
17
  import "../../../../chunk-5GWGARXI.js";
18
- import "../../../../chunk-ORMEWXMH.js";
18
+ import "../../../../chunk-N3ETBM74.js";
19
19
  export {
20
20
  GitHubOAuthProvider,
21
21
  GoogleOAuthProvider,
@@ -3,7 +3,7 @@
3
3
  *
4
4
  * Kakao OAuth 2.0 인증 어댑터
5
5
  */
6
- import type { IOAuthProviderAdapter, OAuthProviderConfig, OAuthUserInfo, OAuthTokenResponse } from '@withwiz/core/auth/types';
6
+ import type { IOAuthProviderAdapter, OAuthProviderConfig, OAuthUserInfo, OAuthTokenResponse } from '@withwiz/toolkit/core/auth/types';
7
7
  export declare class KakaoOAuthProvider implements IOAuthProviderAdapter {
8
8
  readonly name = "kakao";
9
9
  getLoginUrl(config: OAuthProviderConfig, state?: string): string;
@@ -2,7 +2,7 @@ import {
2
2
  KakaoOAuthProvider
3
3
  } from "../../../../chunk-65HVR74O.js";
4
4
  import "../../../../chunk-5GWGARXI.js";
5
- import "../../../../chunk-ORMEWXMH.js";
5
+ import "../../../../chunk-N3ETBM74.js";
6
6
  export {
7
7
  KakaoOAuthProvider
8
8
  };
@@ -5,7 +5,7 @@
5
5
  * - Token 교환은 Meta 공식 권고에 따라 GET + query string 사용
6
6
  * - 사용자 정보는 Graph /me?fields=id,name,email,picture 응답에서 매핑
7
7
  */
8
- import type { IOAuthProviderAdapter, OAuthProviderConfig, OAuthUserInfo, OAuthTokenResponse } from '@withwiz/core/auth/types';
8
+ import type { IOAuthProviderAdapter, OAuthProviderConfig, OAuthUserInfo, OAuthTokenResponse } from '@withwiz/toolkit/core/auth/types';
9
9
  export declare class MetaOAuthProvider implements IOAuthProviderAdapter {
10
10
  readonly name = "meta";
11
11
  getLoginUrl(config: OAuthProviderConfig, state?: string): string;
@@ -2,7 +2,7 @@ import {
2
2
  MetaOAuthProvider
3
3
  } from "../../../../chunk-33RIHX7O.js";
4
4
  import "../../../../chunk-5GWGARXI.js";
5
- import "../../../../chunk-ORMEWXMH.js";
5
+ import "../../../../chunk-N3ETBM74.js";
6
6
  export {
7
7
  MetaOAuthProvider
8
8
  };
@@ -12,7 +12,7 @@
12
12
  * 위해, exchangeCodeForToken은 upstream의 `id_token` 값을 OAuthTokenResponse.access_token
13
13
  * 필드에 담아 반환한다. getUserInfo는 그 문자열을 JWKS 서명 검증 후 사용한다.
14
14
  */
15
- import type { IOAuthProviderAdapter, OAuthProviderConfig, OAuthUserInfo, OAuthTokenResponse } from '@withwiz/core/auth/types';
15
+ import type { IOAuthProviderAdapter, OAuthProviderConfig, OAuthUserInfo, OAuthTokenResponse } from '@withwiz/toolkit/core/auth/types';
16
16
  export declare class MicrosoftOAuthProvider implements IOAuthProviderAdapter {
17
17
  readonly name = "microsoft";
18
18
  getLoginUrl(config: OAuthProviderConfig, state?: string): string;
@@ -2,7 +2,7 @@ import {
2
2
  MicrosoftOAuthProvider
3
3
  } from "../../../../chunk-GSSHHVHF.js";
4
4
  import "../../../../chunk-5GWGARXI.js";
5
- import "../../../../chunk-ORMEWXMH.js";
5
+ import "../../../../chunk-N3ETBM74.js";
6
6
  export {
7
7
  MicrosoftOAuthProvider
8
8
  };
@@ -5,7 +5,7 @@ import {
5
5
  setOAuthStateCookie,
6
6
  validateOAuthState
7
7
  } from "../../../chunk-JLRMET4V.js";
8
- import "../../../chunk-ORMEWXMH.js";
8
+ import "../../../chunk-N3ETBM74.js";
9
9
  export {
10
10
  OAUTH_STATE_COOKIE,
11
11
  clearOAuthStateCookie,
@@ -3,8 +3,8 @@
3
3
  *
4
4
  * 클라이언트 사이드용 비밀번호 검증 헬퍼 (프레임워크 독립적)
5
5
  */
6
- import { PasswordValidator, PasswordHasher } from './index';
7
- import type { PasswordConfig } from '@withwiz/core/auth/types';
6
+ import { PasswordValidator, PasswordHasher } from '@withwiz/toolkit/core/auth/password';
7
+ import type { PasswordConfig } from '@withwiz/toolkit/core/auth/types';
8
8
  import type { z } from 'zod';
9
9
  /**
10
10
  * 기본 비밀번호 설정
@@ -17,19 +17,19 @@ export declare function createPasswordValidator(config?: Partial<PasswordConfig>
17
17
  /**
18
18
  * 비밀번호 검증 헬퍼 함수 (간편 사용)
19
19
  */
20
- export declare function validatePassword(password: string, config?: Partial<PasswordConfig>): import("./index").PasswordValidationResult;
20
+ export declare function validatePassword(password: string, config?: Partial<PasswordConfig>): import("@withwiz/toolkit/core/auth/password").PasswordValidationResult;
21
21
  /**
22
22
  * 비밀번호 강도 계산 헬퍼 함수
23
23
  */
24
- export declare function getPasswordStrength(password: string, config?: Partial<PasswordConfig>): import("@withwiz/core/auth/types").PasswordStrength;
24
+ export declare function getPasswordStrength(password: string, config?: Partial<PasswordConfig>): import("@withwiz/toolkit/core/auth/types").PasswordStrength;
25
25
  /**
26
26
  * Zod 스키마 생성 헬퍼 함수
27
27
  */
28
- export declare function createPasswordSchema(config?: Partial<PasswordConfig>): z.ZodString;
28
+ export declare function createPasswordSchema(config?: Partial<PasswordConfig>): z.ZodType<string>;
29
29
  /**
30
30
  * 기본 Zod 스키마 (기존 defaultPasswordSchema와 호환)
31
31
  */
32
- export declare const defaultPasswordSchema: z.ZodString;
32
+ export declare const defaultPasswordSchema: z.ZodType<string, z.ZodTypeDef, string>;
33
33
  /**
34
34
  * 싱글톤 인스턴스 (기존 PasswordValidator 정적 메서드 대체)
35
35
  */
@@ -39,6 +39,6 @@ export declare const passwordValidator: PasswordValidator;
39
39
  * ⚠️ WARNING: 해싱은 서버 사이드에서만 수행해야 합니다.
40
40
  */
41
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/core/auth/types';
42
+ export { PasswordValidator, PasswordHasher } from '@withwiz/toolkit/core/auth/password';
43
+ export type { PasswordValidationResult } from '@withwiz/toolkit/core/auth/password';
44
+ export type { PasswordConfig, PasswordStrength } from '@withwiz/toolkit/core/auth/types';
@@ -7,13 +7,15 @@ import {
7
7
  getPasswordStrength,
8
8
  passwordValidator,
9
9
  validatePassword
10
- } from "../../../chunk-6JXHXIEH.js";
10
+ } from "../../../chunk-3UIKCS56.js";
11
11
  import {
12
12
  PasswordHasher,
13
13
  PasswordValidator
14
- } from "../../../chunk-MNYVAEXK.js";
14
+ } from "../../../chunk-4ROIPF33.js";
15
+ import "../../../chunk-ILMPKSWS.js";
15
16
  import "../../../chunk-GH3U4WRE.js";
16
- import "../../../chunk-ORMEWXMH.js";
17
+ import "../../../chunk-5GWGARXI.js";
18
+ import "../../../chunk-N3ETBM74.js";
17
19
  export {
18
20
  DEFAULT_PASSWORD_CONFIG,
19
21
  PasswordHasher,
@@ -0,0 +1,83 @@
1
+ /**
2
+ * Pluggable Password Hashing
3
+ *
4
+ * `IPasswordHasher` 추상화로 해시 백엔드를 교체 가능하게 한다.
5
+ * - `BcryptPasswordHasher`: 기본(bcryptjs). 하드 의존성.
6
+ * - `Argon2idPasswordHasher`: argon2id. `argon2` 패키지를 지연 import 하는
7
+ * optional 의존성 — 설치되지 않으면 verify/hash 호출 시 명확한 에러를 던진다.
8
+ * - `MigratingPasswordHasher`: preferred + legacy 해셔를 조합해 레거시 해시를
9
+ * 검증하고(scrypt→bcrypt 등) rehash 대상 여부를 판정한다 (rehash-on-login).
10
+ *
11
+ * rehash-on-login 흐름: 로그인 시 verify() 성공 후 needsRehash(storedHash) 가
12
+ * true 면 preferred 스킴으로 다시 해싱해 저장한다. 평문은 로그인 시점에만
13
+ * 존재하므로 이 시점이 무중단 마이그레이션의 유일한 기회다.
14
+ */
15
+ export interface IPasswordHasher {
16
+ /** 스킴 식별자 (예: 'bcrypt', 'argon2id'). 로깅/디버깅용. */
17
+ readonly id: string;
18
+ /** 이 해셔가 인식하는 해시 포맷인지 판정 (verify 위임 라우팅에 사용). */
19
+ identifies(hash: string): boolean;
20
+ /** 평문을 이 해셔의 스킴으로 해싱. */
21
+ hash(password: string): Promise<string>;
22
+ /** 평문과 해시 비교. */
23
+ verify(password: string, hash: string): Promise<boolean>;
24
+ /**
25
+ * 이 해시를 다시 해싱해야 하는지 판정한다.
26
+ * - 다른 스킴이거나(스킴 마이그레이션)
27
+ * - 같은 스킴이지만 파라미터가 현재 설정보다 약하면 true.
28
+ */
29
+ needsRehash(hash: string): boolean;
30
+ }
31
+ export interface BcryptHasherOptions {
32
+ /** bcrypt cost factor. 기본 12. */
33
+ rounds?: number;
34
+ }
35
+ export declare class BcryptPasswordHasher implements IPasswordHasher {
36
+ readonly id = "bcrypt";
37
+ private rounds;
38
+ constructor(options?: BcryptHasherOptions);
39
+ identifies(hash: string): boolean;
40
+ hash(password: string): Promise<string>;
41
+ verify(password: string, hash: string): Promise<boolean>;
42
+ needsRehash(hash: string): boolean;
43
+ }
44
+ export interface Argon2idHasherOptions {
45
+ /** 메모리 비용 (KiB). 기본 19456 (= 19 MiB, OWASP 권장 하한). */
46
+ memoryCost?: number;
47
+ /** 반복 횟수. 기본 2. */
48
+ timeCost?: number;
49
+ /** 병렬성. 기본 1. */
50
+ parallelism?: number;
51
+ }
52
+ /** 테스트 전용: 지연 로드된 argon2 모듈 캐시를 초기화한다. */
53
+ export declare function __resetArgon2Cache(): void;
54
+ export declare class Argon2idPasswordHasher implements IPasswordHasher {
55
+ readonly id = "argon2id";
56
+ private memoryCost;
57
+ private timeCost;
58
+ private parallelism;
59
+ constructor(options?: Argon2idHasherOptions);
60
+ identifies(hash: string): boolean;
61
+ hash(password: string): Promise<string>;
62
+ verify(password: string, hash: string): Promise<boolean>;
63
+ needsRehash(hash: string): boolean;
64
+ }
65
+ export interface MigratingHasherOptions {
66
+ /** 신규 해시 및 rehash 대상 스킴. */
67
+ preferred: IPasswordHasher;
68
+ /**
69
+ * 검증만 지원하는 레거시 해셔들 (예: 소비자가 구현한 scrypt 어댑터).
70
+ * verify 시 preferred 다음 순서로 매칭을 시도한다.
71
+ */
72
+ legacy?: IPasswordHasher[];
73
+ }
74
+ export declare class MigratingPasswordHasher implements IPasswordHasher {
75
+ private preferred;
76
+ private legacy;
77
+ constructor(options: MigratingHasherOptions);
78
+ get id(): string;
79
+ identifies(hash: string): boolean;
80
+ hash(password: string): Promise<string>;
81
+ verify(password: string, hash: string): Promise<boolean>;
82
+ needsRehash(hash: string): boolean;
83
+ }