@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.
- package/README.ko.md +226 -0
- package/README.md +66 -44
- package/dist/{chunk-V6YD53NH.js → chunk-23LQJYZN.js} +5 -2
- package/dist/chunk-2JUFL4KX.js +41 -0
- package/dist/{chunk-ZTRASVGZ.js → chunk-34L7HTM7.js} +1 -1
- package/dist/{chunk-GSUCBWML.js → chunk-3RK3MKAR.js} +5 -2
- package/dist/{chunk-6JXHXIEH.js → chunk-3UIKCS56.js} +2 -2
- package/dist/{chunk-MWBEE6VI.js → chunk-4EXZ2SDV.js} +5 -5
- package/dist/{chunk-MNYVAEXK.js → chunk-4ROIPF33.js} +16 -3
- package/dist/{chunk-JKSABDFT.js → chunk-4TGPAUJV.js} +4 -4
- package/dist/{chunk-D2KXIKI4.js → chunk-4XPXZNBX.js} +18 -11
- package/dist/{chunk-LG3KM5V3.js → chunk-5I3EQHR4.js} +6 -2
- package/dist/chunk-63EKUOJH.js +72 -0
- package/dist/chunk-6A5JHOBB.js +134 -0
- package/dist/{chunk-N5VOFGF3.js → chunk-75UDFONR.js} +5 -4
- package/dist/{chunk-GORISA3L.js → chunk-7KIM5MHV.js} +1 -1
- package/dist/{chunk-4L6OSSSG.js → chunk-7S2PCYNT.js} +3 -3
- package/dist/{chunk-2SIBG5BG.js → chunk-7YWUKMZD.js} +7 -0
- package/dist/{chunk-7X2N4VZM.js → chunk-ATBYGPLP.js} +1 -1
- package/dist/{chunk-A74POWYY.js → chunk-B7AJJKOY.js} +1 -1
- package/dist/{chunk-W7PEL3DX.js → chunk-BRBOGLFT.js} +4 -4
- package/dist/{chunk-IOUNOHP7.js → chunk-BRFW2LL2.js} +1 -1
- package/dist/chunk-BTYH4MHU.js +118 -0
- package/dist/{chunk-I4NT6G2T.js → chunk-DRTJSTEV.js} +2 -2
- package/dist/{chunk-JIYLTMVL.js → chunk-DVCGAI5N.js} +2 -2
- package/dist/chunk-E4TKORMQ.js +59 -0
- package/dist/{chunk-AV7ELXHG.js → chunk-E5TDIRBJ.js} +2 -2
- package/dist/{chunk-UBASOMP5.js → chunk-HGVPZSWW.js} +18 -13
- package/dist/{chunk-7F5X6F7X.js → chunk-HV6A6Z5R.js} +1 -1
- package/dist/chunk-ILMPKSWS.js +125 -0
- package/dist/{chunk-J5NLAZV2.js → chunk-JHUWZ6YW.js} +2 -2
- package/dist/{chunk-LON5THYQ.js → chunk-KLMKCYIN.js} +1 -1
- package/dist/{chunk-4KJZRI74.js → chunk-KWUOLKDO.js} +1 -1
- package/dist/{chunk-GJO2MPC3.js → chunk-LCYDMYZS.js} +1 -1
- package/dist/{chunk-WIQAPWTY.js → chunk-LL3VWKY4.js} +1 -1
- package/dist/{chunk-IMAFMUZ7.js → chunk-LSS3GJUE.js} +3 -2
- package/dist/{chunk-2PFSRVVD.js → chunk-LWHLB2Y6.js} +84 -18
- package/dist/{chunk-BBE4RXR7.js → chunk-MTZXWVW3.js} +17 -6
- package/dist/{chunk-ORMEWXMH.js → chunk-N3ETBM74.js} +1 -14
- package/dist/{chunk-KYAHURXN.js → chunk-N3TCQ5BF.js} +4 -3
- package/dist/{chunk-HX4MPCVV.js → chunk-NTZBMWB6.js} +4 -4
- package/dist/{chunk-RJGYONRO.js → chunk-PRPMEHRE.js} +2 -2
- package/dist/{chunk-KG65BFPK.js → chunk-QAIN3WNN.js} +1 -1
- package/dist/{chunk-JJAIVUVD.js → chunk-R7EFDSPZ.js} +2 -2
- package/dist/{chunk-VJE4HA2C.js → chunk-RWCPRPEP.js} +3 -2
- package/dist/{chunk-B6L5XV7O.js → chunk-SCAFDDJP.js} +11 -11
- package/dist/{chunk-KXYDTC4A.js → chunk-SNFPZD6L.js} +11 -2
- package/dist/{chunk-B5VRZ2VJ.js → chunk-TNDEYJEL.js} +25 -6
- package/dist/{chunk-GDTZMX3L.js → chunk-TRGFXIEF.js} +1 -1
- package/dist/{chunk-JRORMRVN.js → chunk-U2TGXJ3A.js} +1 -1
- package/dist/{chunk-VNDL2E44.js → chunk-U52U5SK7.js} +2 -2
- package/dist/{chunk-54REXMTE.js → chunk-UWOWKOOQ.js} +3 -1
- package/dist/{chunk-4PROUAZ5.js → chunk-V3WZFUY3.js} +7 -7
- package/dist/{chunk-G4LJN4OZ.js → chunk-VH57Y5Z4.js} +1 -1
- package/dist/chunk-VQJY52YF.js +139 -0
- package/dist/{chunk-5S7M2AJL.js → chunk-VWAB4PM7.js} +1 -1
- package/dist/{chunk-AQZPGOEZ.js → chunk-VWKZMGPJ.js} +5 -4
- package/dist/{chunk-4K27YLAE.js → chunk-VZ2PQA4U.js} +2 -2
- package/dist/{chunk-ZOWEW4GY.js → chunk-WBHX4MJV.js} +2 -2
- package/dist/{chunk-G4SNTXJ3.js → chunk-WSHRBK6Y.js} +7 -6
- package/dist/{chunk-UMRKMF3E.js → chunk-WXOWI7BJ.js} +2 -2
- package/dist/chunk-XAGPZLRK.js +106 -0
- package/dist/{chunk-VPRTPW7C.js → chunk-XF3WUF3F.js} +2 -2
- package/dist/{chunk-6TRD7ZW4.js → chunk-XKIBJJA3.js} +25 -21
- package/dist/{chunk-ZLYBY3R4.js → chunk-XTGS6JJB.js} +10 -5
- package/dist/{chunk-BFZR62LZ.js → chunk-XXPB4C37.js} +7 -7
- package/dist/{chunk-LUIYCIF7.js → chunk-Y4ME3Q5K.js} +2 -2
- package/dist/{chunk-Q66VOVGN.js → chunk-Y4WPEIKW.js} +1 -1
- package/dist/{chunk-MREY2W7N.js → chunk-Y6CPPBJI.js} +1 -1
- package/dist/{chunk-6TUDUOGC.js → chunk-ZEHNCHIV.js} +2 -2
- package/dist/{chunk-D73ZJQMX.js → chunk-ZZABL54F.js} +13 -0
- package/dist/core/auth/adapters/sql/dialect.d.ts +21 -0
- package/dist/core/auth/adapters/sql/dialect.js +11 -0
- package/dist/core/auth/adapters/sql/email-token-repository.d.ts +17 -0
- package/dist/core/auth/adapters/sql/email-token-repository.js +9 -0
- package/dist/core/auth/adapters/sql/index.d.ts +7 -0
- package/dist/core/auth/adapters/sql/index.js +27 -0
- package/dist/core/auth/adapters/sql/oauth-account-repository.d.ts +18 -0
- package/dist/core/auth/adapters/sql/oauth-account-repository.js +9 -0
- package/dist/core/auth/adapters/sql/types.d.ts +73 -0
- package/dist/core/auth/adapters/sql/types.js +7 -0
- package/dist/core/auth/adapters/sql/user-repository.d.ts +20 -0
- package/dist/core/auth/adapters/sql/user-repository.js +9 -0
- package/dist/core/auth/config.d.ts +3 -0
- package/dist/core/auth/config.js +3 -3
- package/dist/core/auth/email/index.d.ts +3 -3
- package/dist/core/auth/email/index.js +3 -3
- package/dist/core/auth/email/sender.d.ts +1 -1
- package/dist/core/auth/email/sender.js +2 -2
- package/dist/core/auth/email/token-generator.d.ts +11 -0
- package/dist/core/auth/email/token-generator.js +2 -2
- package/dist/core/auth/errors/index.js +1 -1
- package/dist/core/auth/index.d.ts +11 -11
- package/dist/core/auth/index.js +23 -15
- package/dist/core/auth/jwt/client.js +3 -2
- package/dist/core/auth/jwt/cookie.d.ts +1 -1
- package/dist/core/auth/jwt/cookie.js +4 -4
- package/dist/core/auth/jwt/index.d.ts +41 -9
- package/dist/core/auth/jwt/index.js +6 -6
- package/dist/core/auth/jwt/types.d.ts +1 -1
- package/dist/core/auth/jwt/types.js +1 -1
- package/dist/core/auth/oauth/index.d.ts +6 -6
- package/dist/core/auth/oauth/index.js +5 -5
- package/dist/core/auth/oauth/providers/github.d.ts +1 -1
- package/dist/core/auth/oauth/providers/github.js +1 -1
- package/dist/core/auth/oauth/providers/google.d.ts +1 -1
- package/dist/core/auth/oauth/providers/google.js +1 -1
- package/dist/core/auth/oauth/providers/index.d.ts +5 -5
- package/dist/core/auth/oauth/providers/index.js +4 -4
- package/dist/core/auth/oauth/providers/kakao.d.ts +1 -1
- package/dist/core/auth/oauth/providers/kakao.js +1 -1
- package/dist/core/auth/oauth/providers/meta.d.ts +1 -1
- package/dist/core/auth/oauth/providers/meta.js +1 -1
- package/dist/core/auth/oauth/providers/microsoft.d.ts +1 -1
- package/dist/core/auth/oauth/providers/microsoft.js +1 -1
- package/dist/core/auth/oauth/state-cookie.js +1 -1
- package/dist/core/auth/password/client-helper.d.ts +9 -9
- package/dist/core/auth/password/client-helper.js +5 -3
- package/dist/core/auth/password/hasher.d.ts +83 -0
- package/dist/core/auth/password/hasher.js +14 -0
- package/dist/core/auth/password/index.d.ts +8 -6
- package/dist/core/auth/password/index.js +11 -2
- package/dist/core/auth/services/email-verification.service.d.ts +1 -1
- package/dist/core/auth/services/email-verification.service.js +3 -3
- package/dist/core/auth/services/index.d.ts +13 -12
- package/dist/core/auth/services/index.js +16 -16
- package/dist/core/auth/services/login.service.d.ts +15 -1
- package/dist/core/auth/services/login.service.js +6 -6
- package/dist/core/auth/services/oauth-callback.service.d.ts +7 -1
- package/dist/core/auth/services/oauth-callback.service.js +6 -6
- package/dist/core/auth/services/password-reset.service.d.ts +1 -1
- package/dist/core/auth/services/password-reset.service.js +3 -3
- package/dist/core/auth/services/refresh-token-store.d.ts +39 -0
- package/dist/core/auth/services/register.service.d.ts +1 -1
- package/dist/core/auth/services/register.service.js +3 -3
- package/dist/core/auth/services/token-refresh.service.d.ts +27 -1
- package/dist/core/auth/services/token-refresh.service.js +6 -6
- package/dist/core/auth/token-delivery.d.ts +47 -0
- package/dist/core/auth/token-delivery.js +14 -0
- package/dist/core/auth/types/index.d.ts +38 -4
- package/dist/core/auth/types/index.js +1 -1
- package/dist/core/cache/cache-config.js +4 -4
- package/dist/core/cache/cache-defaults.js +1 -1
- package/dist/core/cache/cache-env.d.ts +3 -3
- package/dist/core/cache/cache-env.js +3 -3
- package/dist/core/cache/cache-factory.d.ts +6 -6
- package/dist/core/cache/cache-factory.js +11 -11
- package/dist/core/cache/cache-invalidation.d.ts +4 -4
- package/dist/core/cache/cache-invalidation.js +12 -12
- package/dist/core/cache/cache-redis.js +5 -5
- package/dist/core/cache/cache-types.js +1 -1
- package/dist/core/cache/cache-wrapper.d.ts +1 -1
- package/dist/core/cache/cache-wrapper.js +12 -12
- package/dist/core/cache/cache.d.ts +2 -2
- package/dist/core/cache/cache.js +17 -17
- package/dist/core/cache/config.js +2 -2
- package/dist/core/cache/hybrid-cache-manager.d.ts +1 -1
- package/dist/core/cache/hybrid-cache-manager.js +7 -7
- package/dist/core/cache/index.d.ts +15 -15
- package/dist/core/cache/index.js +17 -17
- package/dist/core/cache/inmemory-cache-manager.d.ts +1 -1
- package/dist/core/cache/inmemory-cache-manager.js +3 -3
- package/dist/core/cache/noop-cache-manager.d.ts +1 -1
- package/dist/core/cache/noop-cache-manager.js +5 -5
- package/dist/core/cache/redis-cache-manager.d.ts +2 -2
- package/dist/core/cache/redis-cache-manager.js +6 -6
- package/dist/core/config/common.js +1 -1
- package/dist/core/config/errors.js +1 -1
- package/dist/core/config/registry.d.ts +7 -7
- package/dist/core/config/registry.js +1 -1
- package/dist/core/config/warn.js +1 -1
- package/dist/core/constants/error-codes.js +1 -1
- package/dist/core/constants/index.d.ts +5 -5
- package/dist/core/constants/index.js +10 -8
- package/dist/core/constants/messages.js +1 -1
- package/dist/core/constants/pagination.js +1 -1
- package/dist/core/constants/security.d.ts +15 -0
- package/dist/core/constants/security.js +4 -2
- package/dist/core/constants/validation.js +1 -1
- package/dist/core/cors/index.js +1 -1
- package/dist/core/error/app-error.d.ts +2 -2
- package/dist/core/error/app-error.js +1 -1
- package/dist/core/error/extract-error-info.js +1 -1
- package/dist/core/error/friendly-messages-v2.d.ts +3 -3
- package/dist/core/error/friendly-messages-v2.js +4 -4
- package/dist/core/error/friendly-messages.js +1 -1
- package/dist/core/error/index.d.ts +6 -6
- package/dist/core/error/index.js +4 -4
- package/dist/core/error/messages/en.d.ts +1 -1
- package/dist/core/error/messages/en.js +1 -1
- package/dist/core/error/messages/index.d.ts +2 -2
- package/dist/core/error/messages/index.js +3 -3
- package/dist/core/error/messages/ko.d.ts +1 -1
- package/dist/core/error/messages/ko.js +1 -1
- package/dist/core/geolocation/batch-processor.d.ts +1 -1
- package/dist/core/geolocation/batch-processor.js +3 -3
- package/dist/core/geolocation/config.js +1 -1
- package/dist/core/geolocation/index.d.ts +5 -5
- package/dist/core/geolocation/index.js +7 -7
- package/dist/core/geolocation/providers/base-provider.d.ts +2 -2
- package/dist/core/geolocation/providers/base-provider.js +1 -1
- package/dist/core/geolocation/providers/index.d.ts +6 -6
- package/dist/core/geolocation/providers/index.js +5 -5
- package/dist/core/geolocation/providers/ip-api-provider.d.ts +3 -3
- package/dist/core/geolocation/providers/ip-api-provider.js +1 -1
- package/dist/core/geolocation/providers/ipapi-co-provider.d.ts +3 -3
- package/dist/core/geolocation/providers/ipapi-co-provider.js +1 -1
- package/dist/core/geolocation/providers/ipgeolocation-provider.d.ts +3 -3
- package/dist/core/geolocation/providers/ipgeolocation-provider.js +1 -1
- package/dist/core/geolocation/providers/maxmind-provider.d.ts +3 -3
- package/dist/core/geolocation/providers/maxmind-provider.js +1 -1
- package/dist/core/logger/config.js +1 -1
- package/dist/core/logger/logger.js +2 -2
- package/dist/core/storage/config.js +1 -1
- package/dist/core/storage/r2-storage.js +1 -1
- package/dist/core/system/cpu.d.ts +1 -1
- package/dist/core/system/cpu.js +4 -4
- package/dist/core/system/disk.d.ts +1 -1
- package/dist/core/system/disk.js +4 -4
- package/dist/core/system/environment.d.ts +1 -1
- package/dist/core/system/environment.js +7 -7
- package/dist/core/system/health-check.d.ts +2 -2
- package/dist/core/system/health-check.js +5 -5
- package/dist/core/system/index.d.ts +7 -7
- package/dist/core/system/index.js +17 -17
- package/dist/core/system/memory.d.ts +1 -1
- package/dist/core/system/memory.js +4 -4
- package/dist/core/system/network.d.ts +1 -1
- package/dist/core/system/network.js +4 -4
- package/dist/core/system/utils.js +3 -3
- package/dist/core/types/geoip.d.ts +1 -1
- package/dist/core/types/qr-code.js +1 -1
- package/dist/core/utils/error-message-formatter.js +1 -1
- package/dist/core/utils/format-number.js +1 -1
- package/dist/core/utils/index.d.ts +3 -3
- package/dist/core/utils/index.js +9 -9
- package/dist/core/utils/input-validation.js +52 -16
- package/dist/core/utils/ip-utils.js +1 -1
- package/dist/core/utils/optimistic-lock.js +1 -1
- package/dist/core/utils/sanitizer.js +2 -2
- package/dist/core/utils/short-code-generator.js +1 -1
- package/dist/core/utils/timezone.js +121 -14
- package/dist/core/utils/type-guards.js +1 -1
- package/dist/core/utils/url-normalizer.js +1 -1
- package/dist/core/validators/index.d.ts +1 -1
- package/dist/core/validators/index.js +2 -2
- package/dist/core/validators/password-validator.d.ts +3 -3
- package/dist/core/validators/password-validator.js +2 -2
- package/dist/initialize.d.ts +10 -10
- package/dist/initialize.js +7 -7
- package/dist/next/auth-handlers/forgot-password.handler.d.ts +1 -1
- package/dist/next/auth-handlers/forgot-password.handler.js +4 -4
- package/dist/next/auth-handlers/index.d.ts +11 -11
- package/dist/next/auth-handlers/index.js +32 -31
- package/dist/next/auth-handlers/login.handler.d.ts +1 -1
- package/dist/next/auth-handlers/login.handler.js +7 -6
- package/dist/next/auth-handlers/logout.handler.d.ts +1 -1
- package/dist/next/auth-handlers/logout.handler.js +5 -5
- package/dist/next/auth-handlers/me.handler.d.ts +1 -1
- package/dist/next/auth-handlers/me.handler.js +7 -6
- package/dist/next/auth-handlers/oauth-authorize.handler.d.ts +1 -1
- package/dist/next/auth-handlers/oauth-authorize.handler.js +4 -4
- package/dist/next/auth-handlers/oauth-callback.handler.d.ts +1 -1
- package/dist/next/auth-handlers/oauth-callback.handler.js +9 -9
- package/dist/next/auth-handlers/refresh.handler.d.ts +1 -1
- package/dist/next/auth-handlers/refresh.handler.js +8 -7
- package/dist/next/auth-handlers/register.handler.d.ts +1 -1
- package/dist/next/auth-handlers/register.handler.js +4 -4
- package/dist/next/auth-handlers/reset-password.handler.d.ts +1 -1
- package/dist/next/auth-handlers/reset-password.handler.js +4 -4
- package/dist/next/auth-handlers/verify-email.handler.d.ts +1 -1
- package/dist/next/auth-handlers/verify-email.handler.js +4 -4
- package/dist/next/auth-types/handler-types.d.ts +5 -1
- package/dist/next/auth-types/handler-types.js +13 -1
- package/dist/next/auth-types/index.d.ts +1 -1
- package/dist/next/auth-types/index.js +13 -1
- package/dist/next/error/error-handler.js +3 -3
- package/dist/next/error/index.d.ts +3 -3
- package/dist/next/error/index.js +9 -9
- package/dist/next/error/locale-detector.d.ts +1 -1
- package/dist/next/error/locale-detector.js +1 -1
- package/dist/next/middleware/auth.d.ts +3 -3
- package/dist/next/middleware/auth.js +8 -7
- package/dist/next/middleware/cors.d.ts +2 -2
- package/dist/next/middleware/cors.js +3 -3
- package/dist/next/middleware/error-handler.d.ts +1 -1
- package/dist/next/middleware/error-handler.js +6 -6
- package/dist/next/middleware/index.d.ts +11 -11
- package/dist/next/middleware/index.js +19 -18
- package/dist/next/middleware/init-request.d.ts +1 -1
- package/dist/next/middleware/init-request.js +1 -1
- package/dist/next/middleware/middleware-chain.d.ts +1 -1
- package/dist/next/middleware/middleware-chain.js +3 -3
- package/dist/next/middleware/rate-limit.d.ts +2 -2
- package/dist/next/middleware/rate-limit.js +3 -3
- package/dist/next/middleware/response-logger.d.ts +1 -1
- package/dist/next/middleware/response-logger.js +3 -3
- package/dist/next/middleware/security.d.ts +1 -1
- package/dist/next/middleware/security.js +3 -3
- package/dist/next/middleware/types.d.ts +6 -3
- package/dist/next/middleware/wrappers.d.ts +2 -2
- package/dist/next/middleware/wrappers.js +18 -17
- package/dist/next/utils/api-helpers.d.ts +6 -2
- package/dist/next/utils/api-helpers.js +3 -2
- package/dist/next/utils/cors.js +2 -2
- package/dist/next/utils/csv-export-format.js +1 -1
- package/dist/next/utils/csv-export.js +3 -3
- package/dist/next/utils/error-processor.d.ts +1 -1
- package/dist/next/utils/error-processor.js +3 -3
- package/dist/next/utils/index.d.ts +5 -5
- package/dist/next/utils/index.js +28 -27
- package/dist/prisma/auth-adapter/index.d.ts +1 -1
- package/dist/prisma/auth-adapter/index.js +1 -1
- package/package.json +96 -52
- package/dist/chunk-2P4N4OK2.js +0 -150
- package/dist/chunk-4IQWQSEV.js +0 -27
- package/dist/chunk-4K76HG4V.js +0 -34
- package/dist/chunk-7EXSMZ2O.js +0 -29
- package/dist/chunk-7VXRBTRF.js +0 -110
- package/dist/chunk-ARXUKGZI.js +0 -58
- package/dist/chunk-B5OH43PR.js +0 -31
- package/dist/chunk-BW4QO7T6.js +0 -56
- package/dist/chunk-EK4TL7VW.js +0 -22
- package/dist/chunk-ERKJJDY6.js +0 -117
- package/dist/chunk-G4GT4X3J.js +0 -240
- package/dist/chunk-GPOSTBDQ.js +0 -193
- package/dist/chunk-IRUFNC4L.js +0 -26
- package/dist/chunk-J2MAXMIP.js +0 -105
- package/dist/chunk-MFMQO6IS.js +0 -127
- package/dist/chunk-PBQGXOVX.js +0 -31
- package/dist/chunk-STMAKLLG.js +0 -24
- package/dist/chunk-WP233RH2.js +0 -80
- package/dist/chunk-WWOYFWFB.js +0 -137
- package/dist/chunk-X7FGBUA4.js +0 -117
- package/dist/chunk-YSPIFSDI.js +0 -136
- package/dist/chunk-ZCLKRGZ4.js +0 -81
- package/dist/react/components/ui/Alert.d.ts +0 -12
- package/dist/react/components/ui/Alert.js +0 -10
- package/dist/react/components/ui/Badge.d.ts +0 -7
- package/dist/react/components/ui/Badge.js +0 -8
- package/dist/react/components/ui/Button.d.ts +0 -7
- package/dist/react/components/ui/Button.js +0 -8
- package/dist/react/components/ui/DataTable.d.ts +0 -8
- package/dist/react/components/ui/DataTable.js +0 -22
- package/dist/react/components/ui/DomainDisplay.d.ts +0 -12
- package/dist/react/components/ui/DomainDisplay.js +0 -31
- package/dist/react/components/ui/Input.d.ts +0 -5
- package/dist/react/components/ui/Input.js +0 -8
- package/dist/react/components/ui/Label.d.ts +0 -5
- package/dist/react/components/ui/Label.js +0 -8
- package/dist/react/components/ui/Pagination.d.ts +0 -42
- package/dist/react/components/ui/Pagination.js +0 -20
- package/dist/react/components/ui/Select.d.ts +0 -15
- package/dist/react/components/ui/Select.js +0 -27
- package/dist/react/components/ui/Skeleton.d.ts +0 -6
- package/dist/react/components/ui/Skeleton.js +0 -8
- package/dist/react/components/ui/TimezoneDisplay.d.ts +0 -22
- package/dist/react/components/ui/TimezoneDisplay.js +0 -83
- package/dist/react/components/ui/Tooltip.d.ts +0 -21
- package/dist/react/components/ui/Tooltip.js +0 -94
- package/dist/react/components/ui/data-table/DataTable.d.ts +0 -2
- package/dist/react/components/ui/data-table/DataTable.js +0 -22
- package/dist/react/components/ui/data-table/DataTableBody.d.ts +0 -19
- package/dist/react/components/ui/data-table/DataTableBody.js +0 -10
- package/dist/react/components/ui/data-table/DataTableBulkActions.d.ts +0 -17
- package/dist/react/components/ui/data-table/DataTableBulkActions.js +0 -12
- package/dist/react/components/ui/data-table/DataTableFilters.d.ts +0 -15
- package/dist/react/components/ui/data-table/DataTableFilters.js +0 -13
- package/dist/react/components/ui/data-table/DataTablePagination.d.ts +0 -10
- package/dist/react/components/ui/data-table/DataTablePagination.js +0 -11
- package/dist/react/components/ui/data-table/DataTableSearch.d.ts +0 -24
- package/dist/react/components/ui/data-table/DataTableSearch.js +0 -12
- package/dist/react/components/ui/data-table/index.d.ts +0 -13
- package/dist/react/components/ui/data-table/index.js +0 -42
- package/dist/react/components/ui/data-table/types.d.ts +0 -120
- package/dist/react/components/ui/data-table/types.js +0 -9
- package/dist/react/components/ui/loading-bar.d.ts +0 -20
- package/dist/react/components/ui/loading-bar.js +0 -15
- package/dist/react/error/error-display.d.ts +0 -48
- package/dist/react/error/error-display.js +0 -30
- package/dist/react/error/index.d.ts +0 -6
- package/dist/react/error/index.js +0 -30
- package/dist/react/hooks/useDataTable.d.ts +0 -96
- package/dist/react/hooks/useDataTable.js +0 -151
- package/dist/react/hooks/useDebounce.d.ts +0 -7
- package/dist/react/hooks/useDebounce.js +0 -7
- package/dist/react/hooks/useExitIntent.d.ts +0 -35
- package/dist/react/hooks/useExitIntent.js +0 -72
- package/dist/react/hooks/useTimezone.d.ts +0 -19
- package/dist/react/hooks/useTimezone.js +0 -11
- package/dist/react/utils/client-utils.d.ts +0 -3
- package/dist/react/utils/client-utils.js +0 -9
- package/dist/react/utils/qr-code.d.ts +0 -16
- package/dist/react/utils/qr-code.js +0 -215
- package/dist/{chunk-7PEVOMBO.js → chunk-AOWUPAPS.js} +0 -0
- package/dist/{chunk-VDRLJU6C.js → chunk-E2HYIONP.js} +3 -3
- package/dist/{chunk-7WG7XPXC.js → chunk-KKZCNF6U.js} +3 -3
- package/dist/{chunk-UQ3Z3ZAF.js → chunk-P7WHMKN5.js} +3 -3
- /package/dist/{chunk-M22Z2NO6.js → core/auth/services/refresh-token-store.js} +0 -0
package/dist/chunk-7VXRBTRF.js
DELETED
|
@@ -1,110 +0,0 @@
|
|
|
1
|
-
import {
|
|
2
|
-
formatLabel
|
|
3
|
-
} from "./chunk-B5OH43PR.js";
|
|
4
|
-
import {
|
|
5
|
-
Input
|
|
6
|
-
} from "./chunk-4IQWQSEV.js";
|
|
7
|
-
import {
|
|
8
|
-
Button
|
|
9
|
-
} from "./chunk-BW4QO7T6.js";
|
|
10
|
-
|
|
11
|
-
// src/react/components/ui/data-table/DataTableSearch.tsx
|
|
12
|
-
import { isValidElement } from "react";
|
|
13
|
-
import { Filter } from "lucide-react";
|
|
14
|
-
import { jsx, jsxs } from "react/jsx-runtime";
|
|
15
|
-
function DataTableSearch({
|
|
16
|
-
onSearch,
|
|
17
|
-
onSearchValueChange,
|
|
18
|
-
searchValue,
|
|
19
|
-
searchPlaceholder,
|
|
20
|
-
labels,
|
|
21
|
-
filters,
|
|
22
|
-
onToggleFilters,
|
|
23
|
-
showFilters,
|
|
24
|
-
hasActiveFilters,
|
|
25
|
-
pagination,
|
|
26
|
-
createButton
|
|
27
|
-
}) {
|
|
28
|
-
const handleSearch = (e) => {
|
|
29
|
-
if (e.key === "Enter" && onSearch) {
|
|
30
|
-
onSearch(searchValue);
|
|
31
|
-
}
|
|
32
|
-
};
|
|
33
|
-
const handleSearchClick = () => {
|
|
34
|
-
if (onSearch) {
|
|
35
|
-
onSearch(searchValue);
|
|
36
|
-
}
|
|
37
|
-
};
|
|
38
|
-
const handleSearchInputChange = (value) => {
|
|
39
|
-
if (onSearchValueChange) {
|
|
40
|
-
onSearchValueChange(value);
|
|
41
|
-
}
|
|
42
|
-
};
|
|
43
|
-
return /* @__PURE__ */ jsx("div", { className: "flex flex-col gap-3 p-3 bg-muted rounded-lg", children: /* @__PURE__ */ jsxs("div", { className: "flex flex-row items-center gap-2", children: [
|
|
44
|
-
onSearch && /* @__PURE__ */ jsxs("div", { className: "relative flex-1 min-w-0", children: [
|
|
45
|
-
/* @__PURE__ */ jsx(
|
|
46
|
-
Input,
|
|
47
|
-
{
|
|
48
|
-
"data-testid": "search-input",
|
|
49
|
-
placeholder: searchPlaceholder,
|
|
50
|
-
value: searchValue,
|
|
51
|
-
onChange: (e) => handleSearchInputChange(e.target.value),
|
|
52
|
-
onKeyPress: handleSearch,
|
|
53
|
-
className: "min-w-0 pr-20 h-10"
|
|
54
|
-
}
|
|
55
|
-
),
|
|
56
|
-
/* @__PURE__ */ jsx(
|
|
57
|
-
Button,
|
|
58
|
-
{
|
|
59
|
-
"data-testid": "search-btn",
|
|
60
|
-
size: "sm",
|
|
61
|
-
onClick: handleSearchClick,
|
|
62
|
-
className: "absolute right-1 top-1/2 transform -translate-y-1/2 h-8 px-3 text-sm",
|
|
63
|
-
children: labels.search
|
|
64
|
-
}
|
|
65
|
-
)
|
|
66
|
-
] }),
|
|
67
|
-
/* @__PURE__ */ jsxs("div", { className: "flex items-center gap-2 flex-shrink-0", children: [
|
|
68
|
-
filters.length > 0 && onToggleFilters && /* @__PURE__ */ jsxs(
|
|
69
|
-
Button,
|
|
70
|
-
{
|
|
71
|
-
"data-testid": "filter-toggle-btn",
|
|
72
|
-
variant: "outline",
|
|
73
|
-
size: "sm",
|
|
74
|
-
onClick: () => onToggleFilters(!showFilters),
|
|
75
|
-
className: "flex items-center gap-1 h-10 px-3",
|
|
76
|
-
children: [
|
|
77
|
-
/* @__PURE__ */ jsx(Filter, { className: "h-4 w-4" }),
|
|
78
|
-
/* @__PURE__ */ jsx("span", { className: "hidden sm:inline", children: labels.filter }),
|
|
79
|
-
hasActiveFilters && /* @__PURE__ */ jsx("span", { className: "ml-1 bg-primary text-primary-foreground text-xs px-1.5 py-0.5 rounded-full", children: labels.filterActive })
|
|
80
|
-
]
|
|
81
|
-
}
|
|
82
|
-
),
|
|
83
|
-
pagination && /* @__PURE__ */ jsx(
|
|
84
|
-
"select",
|
|
85
|
-
{
|
|
86
|
-
"data-testid": "page-size-select",
|
|
87
|
-
value: pagination.pageSize,
|
|
88
|
-
onChange: (e) => pagination.onPageSizeChange(Number(e.target.value)),
|
|
89
|
-
className: "border rounded px-3 py-2 text-sm bg-background h-10 min-w-[100px]",
|
|
90
|
-
children: (pagination.pageSizeOptions || [10, 20, 50]).map((size) => /* @__PURE__ */ jsx("option", { value: size, children: formatLabel(labels.perPage, { size }) }, size))
|
|
91
|
-
}
|
|
92
|
-
),
|
|
93
|
-
createButton && (isValidElement(createButton) ? createButton : /* @__PURE__ */ jsx(
|
|
94
|
-
Button,
|
|
95
|
-
{
|
|
96
|
-
"data-testid": "create-btn",
|
|
97
|
-
onClick: createButton.onClick,
|
|
98
|
-
variant: "default",
|
|
99
|
-
size: "sm",
|
|
100
|
-
className: "flex-shrink-0 h-10 px-3",
|
|
101
|
-
children: createButton.label
|
|
102
|
-
}
|
|
103
|
-
))
|
|
104
|
-
] })
|
|
105
|
-
] }) });
|
|
106
|
-
}
|
|
107
|
-
|
|
108
|
-
export {
|
|
109
|
-
DataTableSearch
|
|
110
|
-
};
|
package/dist/chunk-ARXUKGZI.js
DELETED
|
@@ -1,58 +0,0 @@
|
|
|
1
|
-
import {
|
|
2
|
-
JWTService
|
|
3
|
-
} from "./chunk-2PFSRVVD.js";
|
|
4
|
-
import {
|
|
5
|
-
AuthError
|
|
6
|
-
} from "./chunk-5GWGARXI.js";
|
|
7
|
-
import {
|
|
8
|
-
JWT_DEFAULTS
|
|
9
|
-
} from "./chunk-2SIBG5BG.js";
|
|
10
|
-
|
|
11
|
-
// src/core/auth/services/token-refresh.service.ts
|
|
12
|
-
var TokenRefreshService = class {
|
|
13
|
-
constructor(config) {
|
|
14
|
-
var _a, _b, _c;
|
|
15
|
-
this.userRepo = config.userRepository;
|
|
16
|
-
this.jwtService = new JWTService({
|
|
17
|
-
secret: config.jwtSecret,
|
|
18
|
-
accessTokenExpiry: (_a = config.accessTokenExpiry) != null ? _a : JWT_DEFAULTS.DEFAULT_ACCESS_TOKEN_EXPIRES,
|
|
19
|
-
refreshTokenExpiry: (_b = config.refreshTokenExpiry) != null ? _b : JWT_DEFAULTS.DEFAULT_REFRESH_TOKEN_EXPIRES,
|
|
20
|
-
algorithm: JWT_DEFAULTS.ALGORITHM
|
|
21
|
-
}, config.logger);
|
|
22
|
-
this.isTokenBlacklisted = config.isTokenBlacklisted;
|
|
23
|
-
this.logger = (_c = config.logger) != null ? _c : { debug() {
|
|
24
|
-
}, info() {
|
|
25
|
-
}, warn() {
|
|
26
|
-
}, error() {
|
|
27
|
-
} };
|
|
28
|
-
}
|
|
29
|
-
async refresh(refreshToken) {
|
|
30
|
-
var _a, _b;
|
|
31
|
-
if (this.isTokenBlacklisted) {
|
|
32
|
-
const blacklisted = await this.isTokenBlacklisted(refreshToken);
|
|
33
|
-
if (blacklisted) {
|
|
34
|
-
throw new AuthError("Token has been revoked", "TOKEN_REVOKED", 401);
|
|
35
|
-
}
|
|
36
|
-
}
|
|
37
|
-
const { userId } = await this.jwtService.verifyRefreshToken(refreshToken);
|
|
38
|
-
const user = await this.userRepo.findById(userId);
|
|
39
|
-
if (!user) {
|
|
40
|
-
throw new AuthError("User not found", "USER_NOT_FOUND", 401);
|
|
41
|
-
}
|
|
42
|
-
if (user.isActive === false) {
|
|
43
|
-
throw new AuthError("Account is disabled", "ACCOUNT_DISABLED", 403);
|
|
44
|
-
}
|
|
45
|
-
const accessToken = await this.jwtService.createAccessToken({
|
|
46
|
-
id: user.id,
|
|
47
|
-
userId: user.id,
|
|
48
|
-
email: user.email,
|
|
49
|
-
role: (_a = user.role) != null ? _a : "USER",
|
|
50
|
-
emailVerified: user.emailVerified
|
|
51
|
-
});
|
|
52
|
-
return { accessToken, user: { id: user.id, email: user.email, role: (_b = user.role) != null ? _b : "USER" } };
|
|
53
|
-
}
|
|
54
|
-
};
|
|
55
|
-
|
|
56
|
-
export {
|
|
57
|
-
TokenRefreshService
|
|
58
|
-
};
|
package/dist/chunk-B5OH43PR.js
DELETED
|
@@ -1,31 +0,0 @@
|
|
|
1
|
-
// src/react/components/ui/data-table/types.ts
|
|
2
|
-
var DEFAULT_LABELS = {
|
|
3
|
-
search: "Search",
|
|
4
|
-
filter: "Filter",
|
|
5
|
-
filterActive: "Active",
|
|
6
|
-
clearFilters: "Clear Filters",
|
|
7
|
-
selectAll: "Select All",
|
|
8
|
-
selectAllShort: "All",
|
|
9
|
-
selected: "{count} / {total} selected",
|
|
10
|
-
processing: "Processing...",
|
|
11
|
-
processingItems: "Processing {count} items...",
|
|
12
|
-
loading: "Loading data...",
|
|
13
|
-
perPage: "{size} per page",
|
|
14
|
-
all: "All",
|
|
15
|
-
min: "Min",
|
|
16
|
-
max: "Max",
|
|
17
|
-
previous: "Previous",
|
|
18
|
-
next: "Next",
|
|
19
|
-
showing: "Showing {start} to {end} of {total} results"
|
|
20
|
-
};
|
|
21
|
-
function formatLabel(template, values) {
|
|
22
|
-
return Object.entries(values).reduce(
|
|
23
|
-
(result, [key, value]) => result.replace(new RegExp(`\\{${key}\\}`, "g"), String(value)),
|
|
24
|
-
template
|
|
25
|
-
);
|
|
26
|
-
}
|
|
27
|
-
|
|
28
|
-
export {
|
|
29
|
-
DEFAULT_LABELS,
|
|
30
|
-
formatLabel
|
|
31
|
-
};
|
package/dist/chunk-BW4QO7T6.js
DELETED
|
@@ -1,56 +0,0 @@
|
|
|
1
|
-
import {
|
|
2
|
-
cn
|
|
3
|
-
} from "./chunk-4K76HG4V.js";
|
|
4
|
-
import {
|
|
5
|
-
__objRest,
|
|
6
|
-
__spreadProps,
|
|
7
|
-
__spreadValues
|
|
8
|
-
} from "./chunk-ORMEWXMH.js";
|
|
9
|
-
|
|
10
|
-
// src/react/components/ui/Button.tsx
|
|
11
|
-
import { jsx } from "react/jsx-runtime";
|
|
12
|
-
function Button(_a) {
|
|
13
|
-
var _b = _a, {
|
|
14
|
-
className,
|
|
15
|
-
variant = "default",
|
|
16
|
-
size = "default",
|
|
17
|
-
children
|
|
18
|
-
} = _b, props = __objRest(_b, [
|
|
19
|
-
"className",
|
|
20
|
-
"variant",
|
|
21
|
-
"size",
|
|
22
|
-
"children"
|
|
23
|
-
]);
|
|
24
|
-
const baseClasses = "inline-flex items-center justify-center whitespace-nowrap rounded-md text-sm font-medium ring-offset-background transition-colors focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 disabled:pointer-events-none disabled:opacity-50";
|
|
25
|
-
const variantClasses = {
|
|
26
|
-
default: "bg-primary text-primary-foreground hover:bg-primary/90",
|
|
27
|
-
destructive: "bg-destructive text-destructive-foreground hover:bg-destructive/90",
|
|
28
|
-
outline: "border border-input bg-background hover:bg-accent hover:text-accent-foreground",
|
|
29
|
-
secondary: "bg-secondary text-secondary-foreground hover:bg-secondary/80",
|
|
30
|
-
ghost: "hover:bg-accent hover:text-accent-foreground",
|
|
31
|
-
link: "text-primary underline-offset-4 hover:underline"
|
|
32
|
-
};
|
|
33
|
-
const sizeClasses = {
|
|
34
|
-
default: "h-10 px-4 py-2",
|
|
35
|
-
sm: "h-9 rounded-md px-3",
|
|
36
|
-
lg: "h-11 rounded-md px-8",
|
|
37
|
-
icon: "h-10 w-10"
|
|
38
|
-
};
|
|
39
|
-
return /* @__PURE__ */ jsx(
|
|
40
|
-
"button",
|
|
41
|
-
__spreadProps(__spreadValues({
|
|
42
|
-
className: cn(
|
|
43
|
-
baseClasses,
|
|
44
|
-
variantClasses[variant],
|
|
45
|
-
sizeClasses[size],
|
|
46
|
-
className
|
|
47
|
-
)
|
|
48
|
-
}, props), {
|
|
49
|
-
children
|
|
50
|
-
})
|
|
51
|
-
);
|
|
52
|
-
}
|
|
53
|
-
|
|
54
|
-
export {
|
|
55
|
-
Button
|
|
56
|
-
};
|
package/dist/chunk-EK4TL7VW.js
DELETED
|
@@ -1,22 +0,0 @@
|
|
|
1
|
-
import {
|
|
2
|
-
cn
|
|
3
|
-
} from "./chunk-4K76HG4V.js";
|
|
4
|
-
|
|
5
|
-
// src/react/components/ui/Skeleton.tsx
|
|
6
|
-
import { jsx } from "react/jsx-runtime";
|
|
7
|
-
function Skeleton({ className, children }) {
|
|
8
|
-
return /* @__PURE__ */ jsx(
|
|
9
|
-
"div",
|
|
10
|
-
{
|
|
11
|
-
className: cn(
|
|
12
|
-
"animate-pulse rounded-md bg-muted",
|
|
13
|
-
className
|
|
14
|
-
),
|
|
15
|
-
children
|
|
16
|
-
}
|
|
17
|
-
);
|
|
18
|
-
}
|
|
19
|
-
|
|
20
|
-
export {
|
|
21
|
-
Skeleton
|
|
22
|
-
};
|
package/dist/chunk-ERKJJDY6.js
DELETED
|
@@ -1,117 +0,0 @@
|
|
|
1
|
-
import {
|
|
2
|
-
getErrorDisplayInfo,
|
|
3
|
-
getFriendlyMessage
|
|
4
|
-
} from "./chunk-5S7M2AJL.js";
|
|
5
|
-
import {
|
|
6
|
-
AppError
|
|
7
|
-
} from "./chunk-ATAQRXTH.js";
|
|
8
|
-
import {
|
|
9
|
-
getErrorCategory
|
|
10
|
-
} from "./chunk-XQIAXMRY.js";
|
|
11
|
-
|
|
12
|
-
// src/react/error/error-display.ts
|
|
13
|
-
import { toast } from "sonner";
|
|
14
|
-
function getLocale() {
|
|
15
|
-
var _a;
|
|
16
|
-
if (typeof window === "undefined") return "ko";
|
|
17
|
-
const locale = localStorage.getItem("locale") || ((_a = document.cookie.match(/locale=([^;]+)/)) == null ? void 0 : _a[1]);
|
|
18
|
-
return locale === "en" ? "en" : "ko";
|
|
19
|
-
}
|
|
20
|
-
function showFriendlyError(errorOrCode, options) {
|
|
21
|
-
var _a;
|
|
22
|
-
const { locale = getLocale(), duration = 5e3, showCode = true, onAuthError, onRateLimitError } = options || {};
|
|
23
|
-
let code;
|
|
24
|
-
let displayInfo;
|
|
25
|
-
if (typeof errorOrCode === "number") {
|
|
26
|
-
code = errorOrCode;
|
|
27
|
-
displayInfo = getErrorDisplayInfo(code, locale);
|
|
28
|
-
} else if (errorOrCode instanceof Error) {
|
|
29
|
-
if ("code" in errorOrCode && typeof errorOrCode.code === "number") {
|
|
30
|
-
code = errorOrCode.code;
|
|
31
|
-
} else {
|
|
32
|
-
code = 50002;
|
|
33
|
-
}
|
|
34
|
-
displayInfo = getErrorDisplayInfo(code, locale);
|
|
35
|
-
} else {
|
|
36
|
-
code = ((_a = errorOrCode.error) == null ? void 0 : _a.code) || 50002;
|
|
37
|
-
displayInfo = getErrorDisplayInfo(code, locale);
|
|
38
|
-
}
|
|
39
|
-
const category = getErrorCategory(code);
|
|
40
|
-
if (category === "auth" && onAuthError) onAuthError();
|
|
41
|
-
if (category === "rateLimit" && onRateLimitError) onRateLimitError();
|
|
42
|
-
const description = showCode ? `${displayInfo.description} [${code}]` : displayInfo.description;
|
|
43
|
-
switch (displayInfo.severity) {
|
|
44
|
-
case "critical":
|
|
45
|
-
case "error":
|
|
46
|
-
toast.error(displayInfo.title, { description, duration });
|
|
47
|
-
break;
|
|
48
|
-
case "warning":
|
|
49
|
-
toast.warning(displayInfo.title, { description, duration });
|
|
50
|
-
break;
|
|
51
|
-
case "info":
|
|
52
|
-
default:
|
|
53
|
-
toast.info(displayInfo.title, { description, duration });
|
|
54
|
-
}
|
|
55
|
-
}
|
|
56
|
-
async function handleApiResponse(response, options) {
|
|
57
|
-
var _a, _b;
|
|
58
|
-
if (response.ok) {
|
|
59
|
-
const data = await response.json();
|
|
60
|
-
return data.data;
|
|
61
|
-
}
|
|
62
|
-
const errorData = await response.json();
|
|
63
|
-
if ((options == null ? void 0 : options.showToast) !== false) {
|
|
64
|
-
showFriendlyError(errorData, {
|
|
65
|
-
locale: options == null ? void 0 : options.locale,
|
|
66
|
-
onAuthError: options == null ? void 0 : options.onAuthError
|
|
67
|
-
});
|
|
68
|
-
}
|
|
69
|
-
const errorCode = (_a = errorData.error) == null ? void 0 : _a.code;
|
|
70
|
-
if (errorCode) {
|
|
71
|
-
throw new AppError(errorCode, (_b = errorData.error) == null ? void 0 : _b.message);
|
|
72
|
-
}
|
|
73
|
-
throw AppError.fromKey("SERVER_ERROR", `Request failed with status ${response.status}`);
|
|
74
|
-
}
|
|
75
|
-
function formatInlineError(code, locale) {
|
|
76
|
-
const lang = locale || getLocale();
|
|
77
|
-
const { title, description } = getFriendlyMessage(code, lang);
|
|
78
|
-
return `${description} [${code}]`;
|
|
79
|
-
}
|
|
80
|
-
function getErrorIcon(code) {
|
|
81
|
-
const category = getErrorCategory(code);
|
|
82
|
-
const icons = {
|
|
83
|
-
validation: "\u26A0\uFE0F",
|
|
84
|
-
auth: "\u{1F510}",
|
|
85
|
-
permission: "\u{1F6AB}",
|
|
86
|
-
resource: "\u{1F50D}",
|
|
87
|
-
conflict: "\u26A1",
|
|
88
|
-
business: "\u{1F4CB}",
|
|
89
|
-
rateLimit: "\u23F1\uFE0F",
|
|
90
|
-
server: "\u{1F527}",
|
|
91
|
-
security: "\u{1F6E1}\uFE0F",
|
|
92
|
-
unknown: "\u274C"
|
|
93
|
-
};
|
|
94
|
-
return icons[category] || "\u274C";
|
|
95
|
-
}
|
|
96
|
-
function getDefaultErrorCode(status) {
|
|
97
|
-
const statusMap = {
|
|
98
|
-
400: 40002,
|
|
99
|
-
401: 40101,
|
|
100
|
-
403: 40304,
|
|
101
|
-
404: 40401,
|
|
102
|
-
409: 40904,
|
|
103
|
-
422: 42201,
|
|
104
|
-
429: 42901,
|
|
105
|
-
500: 50002,
|
|
106
|
-
503: 50305
|
|
107
|
-
};
|
|
108
|
-
return statusMap[status] || 50002;
|
|
109
|
-
}
|
|
110
|
-
|
|
111
|
-
export {
|
|
112
|
-
showFriendlyError,
|
|
113
|
-
handleApiResponse,
|
|
114
|
-
formatInlineError,
|
|
115
|
-
getErrorIcon,
|
|
116
|
-
getDefaultErrorCode
|
|
117
|
-
};
|
package/dist/chunk-G4GT4X3J.js
DELETED
|
@@ -1,240 +0,0 @@
|
|
|
1
|
-
import {
|
|
2
|
-
DataTableBody
|
|
3
|
-
} from "./chunk-2P4N4OK2.js";
|
|
4
|
-
import {
|
|
5
|
-
DataTableBulkActions
|
|
6
|
-
} from "./chunk-ZCLKRGZ4.js";
|
|
7
|
-
import {
|
|
8
|
-
DataTableFilters
|
|
9
|
-
} from "./chunk-YSPIFSDI.js";
|
|
10
|
-
import {
|
|
11
|
-
DataTablePagination
|
|
12
|
-
} from "./chunk-MFMQO6IS.js";
|
|
13
|
-
import {
|
|
14
|
-
DataTableSearch
|
|
15
|
-
} from "./chunk-7VXRBTRF.js";
|
|
16
|
-
import {
|
|
17
|
-
DEFAULT_LABELS
|
|
18
|
-
} from "./chunk-B5OH43PR.js";
|
|
19
|
-
import {
|
|
20
|
-
Alert,
|
|
21
|
-
AlertDescription
|
|
22
|
-
} from "./chunk-PBQGXOVX.js";
|
|
23
|
-
import {
|
|
24
|
-
cn
|
|
25
|
-
} from "./chunk-4K76HG4V.js";
|
|
26
|
-
import {
|
|
27
|
-
__spreadValues
|
|
28
|
-
} from "./chunk-ORMEWXMH.js";
|
|
29
|
-
|
|
30
|
-
// src/react/components/ui/data-table/DataTable.tsx
|
|
31
|
-
import { useState, useEffect, useMemo, useRef } from "react";
|
|
32
|
-
import { jsx, jsxs } from "react/jsx-runtime";
|
|
33
|
-
var EMPTY_ARRAY = [];
|
|
34
|
-
var EMPTY_OBJECT = {};
|
|
35
|
-
function DataTable({
|
|
36
|
-
data,
|
|
37
|
-
columns,
|
|
38
|
-
loading = false,
|
|
39
|
-
error = null,
|
|
40
|
-
pagination,
|
|
41
|
-
sort,
|
|
42
|
-
bulkActions = EMPTY_ARRAY,
|
|
43
|
-
filters = EMPTY_ARRAY,
|
|
44
|
-
filterValues = EMPTY_OBJECT,
|
|
45
|
-
onFilterChange,
|
|
46
|
-
onClearFilters,
|
|
47
|
-
selectable = false,
|
|
48
|
-
onSelectionChange,
|
|
49
|
-
selectedIds = EMPTY_ARRAY,
|
|
50
|
-
getRowId,
|
|
51
|
-
className,
|
|
52
|
-
emptyMessage = "No data",
|
|
53
|
-
searchPlaceholder = "Search...",
|
|
54
|
-
onSearch,
|
|
55
|
-
onSearchValueChange,
|
|
56
|
-
searchValue = "",
|
|
57
|
-
showFilters = false,
|
|
58
|
-
onToggleFilters,
|
|
59
|
-
createButton,
|
|
60
|
-
labels: customLabels,
|
|
61
|
-
syncWithUrl = false
|
|
62
|
-
}) {
|
|
63
|
-
const customLabelsRef = useRef(customLabels);
|
|
64
|
-
const labelsRef = useRef(__spreadValues(__spreadValues({}, DEFAULT_LABELS), customLabels));
|
|
65
|
-
if (customLabelsRef.current !== customLabels) {
|
|
66
|
-
customLabelsRef.current = customLabels;
|
|
67
|
-
labelsRef.current = __spreadValues(__spreadValues({}, DEFAULT_LABELS), customLabels);
|
|
68
|
-
}
|
|
69
|
-
const labels = labelsRef.current;
|
|
70
|
-
const [localSelectedIds, setLocalSelectedIds] = useState(
|
|
71
|
-
selectedIds
|
|
72
|
-
);
|
|
73
|
-
const [bulkActionLoading, setBulkActionLoading] = useState(null);
|
|
74
|
-
const prevSelectedIdsRef = useRef(JSON.stringify(selectedIds));
|
|
75
|
-
useEffect(() => {
|
|
76
|
-
const serialized = JSON.stringify(selectedIds);
|
|
77
|
-
if (serialized !== prevSelectedIdsRef.current) {
|
|
78
|
-
prevSelectedIdsRef.current = serialized;
|
|
79
|
-
setLocalSelectedIds(selectedIds);
|
|
80
|
-
}
|
|
81
|
-
}, [selectedIds]);
|
|
82
|
-
const hasActiveFilters = useMemo(() => {
|
|
83
|
-
if (searchValue && searchValue.trim()) return true;
|
|
84
|
-
for (const [key, value] of Object.entries(filterValues)) {
|
|
85
|
-
if (value === void 0 || value === null || value === "") continue;
|
|
86
|
-
if (value === "all") continue;
|
|
87
|
-
if (typeof value === "object" && value !== null) {
|
|
88
|
-
if (key === "dateRange" && (value.start || value.end)) return true;
|
|
89
|
-
if (key === "clickRange" && (value.min || value.max)) return true;
|
|
90
|
-
if (key === "lastClickedRange" && (value.start || value.end)) return true;
|
|
91
|
-
} else {
|
|
92
|
-
if (key === "activeFilter" && value !== "all") return true;
|
|
93
|
-
if (key === "publicFilter" && value !== "all") return true;
|
|
94
|
-
if (key === "expirationFilter" && value !== "all") return true;
|
|
95
|
-
}
|
|
96
|
-
}
|
|
97
|
-
return false;
|
|
98
|
-
}, [searchValue, filterValues]);
|
|
99
|
-
useEffect(() => {
|
|
100
|
-
if (!syncWithUrl || typeof window === "undefined") return;
|
|
101
|
-
const params = new URLSearchParams(window.location.search);
|
|
102
|
-
let changed = false;
|
|
103
|
-
if (searchValue) {
|
|
104
|
-
if (params.get("search") !== searchValue) {
|
|
105
|
-
params.set("search", searchValue);
|
|
106
|
-
changed = true;
|
|
107
|
-
}
|
|
108
|
-
} else {
|
|
109
|
-
if (params.has("search")) {
|
|
110
|
-
params.delete("search");
|
|
111
|
-
changed = true;
|
|
112
|
-
}
|
|
113
|
-
}
|
|
114
|
-
if (sort) {
|
|
115
|
-
if (params.get("sort") !== sort.sort) {
|
|
116
|
-
params.set("sort", sort.sort);
|
|
117
|
-
changed = true;
|
|
118
|
-
}
|
|
119
|
-
if (params.get("order") !== sort.order) {
|
|
120
|
-
params.set("order", sort.order);
|
|
121
|
-
changed = true;
|
|
122
|
-
}
|
|
123
|
-
}
|
|
124
|
-
if (pagination) {
|
|
125
|
-
const pageStr = String(pagination.page);
|
|
126
|
-
const pageSizeStr = String(pagination.pageSize);
|
|
127
|
-
if (params.get("page") !== pageStr) {
|
|
128
|
-
params.set("page", pageStr);
|
|
129
|
-
changed = true;
|
|
130
|
-
}
|
|
131
|
-
if (params.get("pageSize") !== pageSizeStr) {
|
|
132
|
-
params.set("pageSize", pageSizeStr);
|
|
133
|
-
changed = true;
|
|
134
|
-
}
|
|
135
|
-
}
|
|
136
|
-
if (changed) {
|
|
137
|
-
const newUrl = `${window.location.pathname}?${params.toString()}`;
|
|
138
|
-
window.history.replaceState(null, "", newUrl);
|
|
139
|
-
}
|
|
140
|
-
}, [syncWithUrl, searchValue, sort == null ? void 0 : sort.sort, sort == null ? void 0 : sort.order, pagination == null ? void 0 : pagination.page, pagination == null ? void 0 : pagination.pageSize]);
|
|
141
|
-
const handleSelectAll = (checked) => {
|
|
142
|
-
const newSelection = checked ? data.map((item) => getRowId(item)) : [];
|
|
143
|
-
setLocalSelectedIds(newSelection);
|
|
144
|
-
onSelectionChange == null ? void 0 : onSelectionChange(newSelection);
|
|
145
|
-
};
|
|
146
|
-
const handleSelect = (id, checked) => {
|
|
147
|
-
const newSelection = checked ? [...localSelectedIds, id] : localSelectedIds.filter((item) => item !== id);
|
|
148
|
-
setLocalSelectedIds(newSelection);
|
|
149
|
-
onSelectionChange == null ? void 0 : onSelectionChange(newSelection);
|
|
150
|
-
};
|
|
151
|
-
const handleSort = (columnKey) => {
|
|
152
|
-
if (!sort) return;
|
|
153
|
-
if (sort.sort === columnKey) {
|
|
154
|
-
sort.onSortChange(columnKey, sort.order === "asc" ? "desc" : "asc");
|
|
155
|
-
} else {
|
|
156
|
-
sort.onSortChange(columnKey, "asc");
|
|
157
|
-
}
|
|
158
|
-
};
|
|
159
|
-
const handleBulkAction = async (action) => {
|
|
160
|
-
if (localSelectedIds.length === 0 || bulkActionLoading) return;
|
|
161
|
-
setBulkActionLoading(action.key);
|
|
162
|
-
try {
|
|
163
|
-
await action.onClick(localSelectedIds);
|
|
164
|
-
} finally {
|
|
165
|
-
setBulkActionLoading(null);
|
|
166
|
-
}
|
|
167
|
-
};
|
|
168
|
-
const visibleColumns = columns.filter((col) => !col.hidden);
|
|
169
|
-
return /* @__PURE__ */ jsxs("div", { className: cn("space-y-4", className), children: [
|
|
170
|
-
(onSearch || createButton) && /* @__PURE__ */ jsx(
|
|
171
|
-
DataTableSearch,
|
|
172
|
-
{
|
|
173
|
-
onSearch,
|
|
174
|
-
onSearchValueChange,
|
|
175
|
-
searchValue,
|
|
176
|
-
searchPlaceholder,
|
|
177
|
-
labels,
|
|
178
|
-
filters,
|
|
179
|
-
onToggleFilters,
|
|
180
|
-
showFilters,
|
|
181
|
-
hasActiveFilters,
|
|
182
|
-
pagination,
|
|
183
|
-
createButton
|
|
184
|
-
}
|
|
185
|
-
),
|
|
186
|
-
showFilters && filters.length > 0 && /* @__PURE__ */ jsx(
|
|
187
|
-
DataTableFilters,
|
|
188
|
-
{
|
|
189
|
-
filters,
|
|
190
|
-
filterValues,
|
|
191
|
-
onFilterChange,
|
|
192
|
-
onClearFilters,
|
|
193
|
-
hasActiveFilters,
|
|
194
|
-
labels
|
|
195
|
-
}
|
|
196
|
-
),
|
|
197
|
-
selectable && bulkActions.length > 0 && /* @__PURE__ */ jsx(
|
|
198
|
-
DataTableBulkActions,
|
|
199
|
-
{
|
|
200
|
-
bulkActions,
|
|
201
|
-
localSelectedIds,
|
|
202
|
-
dataLength: data.length,
|
|
203
|
-
bulkActionLoading,
|
|
204
|
-
onSelectAll: handleSelectAll,
|
|
205
|
-
onBulkAction: handleBulkAction,
|
|
206
|
-
labels
|
|
207
|
-
}
|
|
208
|
-
),
|
|
209
|
-
error && /* @__PURE__ */ jsx(Alert, { variant: "destructive", children: /* @__PURE__ */ jsx(AlertDescription, { children: error }) }),
|
|
210
|
-
/* @__PURE__ */ jsx(
|
|
211
|
-
DataTableBody,
|
|
212
|
-
{
|
|
213
|
-
data,
|
|
214
|
-
visibleColumns,
|
|
215
|
-
loading,
|
|
216
|
-
error,
|
|
217
|
-
emptyMessage,
|
|
218
|
-
selectable,
|
|
219
|
-
localSelectedIds,
|
|
220
|
-
getRowId,
|
|
221
|
-
onSelectAll: handleSelectAll,
|
|
222
|
-
onSelect: handleSelect,
|
|
223
|
-
sort,
|
|
224
|
-
onSort: handleSort,
|
|
225
|
-
labels
|
|
226
|
-
}
|
|
227
|
-
),
|
|
228
|
-
pagination && pagination.total > 0 && /* @__PURE__ */ jsx(
|
|
229
|
-
DataTablePagination,
|
|
230
|
-
{
|
|
231
|
-
pagination,
|
|
232
|
-
labels
|
|
233
|
-
}
|
|
234
|
-
)
|
|
235
|
-
] });
|
|
236
|
-
}
|
|
237
|
-
|
|
238
|
-
export {
|
|
239
|
-
DataTable
|
|
240
|
-
};
|