@withwiz/toolkit 0.10.0 → 0.11.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/dist/{chunk-XDB3K74B.js → chunk-2QO7YXTF.js} +1 -1
- package/dist/{chunk-KHXS4DGA.js → chunk-4Y5MRUMX.js} +4 -4
- package/dist/{chunk-W27FQNP6.js → chunk-5MPMPXIR.js} +1 -1
- package/dist/{chunk-465MEI5K.js → chunk-6E2Q27EN.js} +1 -1
- package/dist/chunk-6NFMRZWB.js +8 -0
- package/dist/{chunk-5Z5CZAZP.js → chunk-7IOAGJMK.js} +12 -12
- package/dist/{chunk-SROPI74N.js → chunk-AWFP2KAU.js} +1 -1
- package/dist/{chunk-Z64GNAB7.js → chunk-DISEIUYD.js} +2 -2
- package/dist/{chunk-6NEGFM32.js → chunk-DTRXWS7G.js} +25 -16
- package/dist/{chunk-VHRBXD7U.js → chunk-HNFYO5XV.js} +10 -6
- package/dist/{chunk-OII5BXCZ.js → chunk-JRORMRVN.js} +1 -1
- package/dist/{chunk-HZN44RWL.js → chunk-MJOXTFIC.js} +5 -5
- package/dist/{chunk-3P4TZM3O.js → chunk-QBXNL6QU.js} +1 -1
- package/dist/{chunk-KZ4PDS5K.js → chunk-RWN47K7J.js} +1 -1
- package/dist/{chunk-N3TCQ5BF.js → chunk-TQMQ5XXG.js} +17 -2
- package/dist/{chunk-7S2PCYNT.js → chunk-YBVZ5UVC.js} +1 -1
- package/dist/core/api-key/api-key.service.js +2 -2
- package/dist/core/api-key/index.js +5 -5
- package/dist/core/auth/adapters/sql/email-token-repository.js +2 -2
- package/dist/core/auth/adapters/sql/index.js +8 -8
- package/dist/core/auth/adapters/sql/oauth-account-repository.js +2 -2
- package/dist/core/auth/adapters/sql/user-repository.js +2 -2
- package/dist/core/auth/config.js +2 -1
- package/dist/core/auth/cookie-names.d.ts +3 -0
- package/dist/core/auth/cookie-names.js +9 -0
- package/dist/core/auth/index.js +13 -12
- package/dist/core/auth/jwt/cookie.js +4 -3
- package/dist/core/auth/jwt/index.js +4 -3
- package/dist/core/auth/oauth/index.js +7 -7
- package/dist/core/auth/oauth/providers/index.js +6 -6
- package/dist/core/auth/services/cache-token-stores.d.ts +45 -0
- package/dist/core/auth/services/cache-token-stores.js +59 -0
- package/dist/core/auth/services/index.js +8 -7
- package/dist/core/auth/services/login.service.js +4 -3
- package/dist/core/auth/services/oauth-callback.service.js +4 -3
- package/dist/core/auth/services/token-refresh.service.js +4 -3
- package/dist/core/auth/token-delivery.js +5 -4
- package/dist/core/cache/cache-factory.js +3 -3
- package/dist/core/cache/cache-invalidation.js +4 -4
- package/dist/core/cache/cache-wrapper.js +4 -4
- package/dist/core/cache/cache.js +9 -9
- package/dist/core/cache/index.js +9 -9
- package/dist/core/system/environment.js +4 -3
- package/dist/core/system/health-check.js +1 -1
- package/dist/core/system/index.js +8 -7
- package/dist/initialize.js +7 -6
- package/dist/next/auth-handlers/index.js +21 -20
- package/dist/next/auth-handlers/login.handler.js +6 -5
- package/dist/next/auth-handlers/logout.handler.js +5 -4
- package/dist/next/auth-handlers/me.handler.js +6 -5
- package/dist/next/auth-handlers/oauth-authorize.handler.js +4 -4
- package/dist/next/auth-handlers/oauth-callback.handler.js +9 -8
- package/dist/next/auth-handlers/refresh.handler.js +6 -5
- package/dist/next/auth-types/handler-types.js +5 -4
- package/dist/next/auth-types/index.js +5 -4
- package/dist/next/error/error-handler.js +2 -2
- package/dist/next/error/index.js +2 -2
- package/dist/next/middleware/auth.js +8 -7
- package/dist/next/middleware/error-handler.js +3 -3
- package/dist/next/middleware/index.js +26 -25
- package/dist/next/middleware/wrappers.js +13 -12
- package/dist/next/oapi/api-key-auth.js +3 -3
- package/dist/next/oapi/index.js +3 -3
- package/dist/next/proxy.d.ts +38 -0
- package/dist/next/proxy.js +53 -0
- package/dist/next/utils/index.js +15 -15
- package/package.json +12 -3
- package/dist/{chunk-GSRAIDD7.js → chunk-6A5JHOBB.js} +3 -3
- package/dist/{chunk-R7EFDSPZ.js → chunk-AYCXN6QJ.js} +3 -3
- package/dist/{chunk-43XXILCX.js → chunk-BTYH4MHU.js} +3 -3
- package/dist/{chunk-BICSVLN7.js → chunk-NAFMJT62.js} +6 -6
- package/dist/{chunk-P4MGYRJM.js → chunk-RWENSBNW.js} +3 -3
- package/dist/{chunk-ER6LSA4M.js → chunk-UQ3Z3ZAF.js} +6 -6
- package/dist/{chunk-5VDT3ZB4.js → chunk-VQJY52YF.js} +3 -3
- /package/dist/{chunk-UIWR5MXM.js → chunk-WYA763JL.js} +0 -0
|
@@ -1,13 +1,14 @@
|
|
|
1
1
|
import "../../chunk-AOWUPAPS.js";
|
|
2
2
|
import {
|
|
3
3
|
resolveTokenDelivery
|
|
4
|
-
} from "../../chunk-
|
|
5
|
-
import "../../chunk-
|
|
6
|
-
import "../../chunk-
|
|
7
|
-
import "../../chunk-N3TCQ5BF.js";
|
|
4
|
+
} from "../../chunk-HNFYO5XV.js";
|
|
5
|
+
import "../../chunk-DTRXWS7G.js";
|
|
6
|
+
import "../../chunk-TQMQ5XXG.js";
|
|
8
7
|
import "../../chunk-7YWUKMZD.js";
|
|
8
|
+
import "../../chunk-OVOBSYR4.js";
|
|
9
9
|
import "../../chunk-6J2EJVND.js";
|
|
10
10
|
import "../../chunk-F3R3UYBF.js";
|
|
11
|
+
import "../../chunk-6NFMRZWB.js";
|
|
11
12
|
import "../../chunk-N3ETBM74.js";
|
|
12
13
|
export {
|
|
13
14
|
resolveTokenDelivery
|
|
@@ -1,13 +1,14 @@
|
|
|
1
1
|
import "../../chunk-AOWUPAPS.js";
|
|
2
2
|
import {
|
|
3
3
|
resolveTokenDelivery
|
|
4
|
-
} from "../../chunk-
|
|
5
|
-
import "../../chunk-
|
|
6
|
-
import "../../chunk-
|
|
7
|
-
import "../../chunk-N3TCQ5BF.js";
|
|
4
|
+
} from "../../chunk-HNFYO5XV.js";
|
|
5
|
+
import "../../chunk-DTRXWS7G.js";
|
|
6
|
+
import "../../chunk-TQMQ5XXG.js";
|
|
8
7
|
import "../../chunk-7YWUKMZD.js";
|
|
8
|
+
import "../../chunk-OVOBSYR4.js";
|
|
9
9
|
import "../../chunk-6J2EJVND.js";
|
|
10
10
|
import "../../chunk-F3R3UYBF.js";
|
|
11
|
+
import "../../chunk-6NFMRZWB.js";
|
|
11
12
|
import "../../chunk-N3ETBM74.js";
|
|
12
13
|
export {
|
|
13
14
|
resolveTokenDelivery
|
|
@@ -5,11 +5,11 @@ import {
|
|
|
5
5
|
error_handler_default,
|
|
6
6
|
processError,
|
|
7
7
|
withErrorHandler
|
|
8
|
-
} from "../../chunk-
|
|
8
|
+
} from "../../chunk-AYCXN6QJ.js";
|
|
9
9
|
import "../../chunk-ATAQRXTH.js";
|
|
10
10
|
import "../../chunk-XQIAXMRY.js";
|
|
11
|
-
import "../../chunk-5GWGARXI.js";
|
|
12
11
|
import "../../chunk-QAIN3WNN.js";
|
|
12
|
+
import "../../chunk-5GWGARXI.js";
|
|
13
13
|
import "../../chunk-IKZB26SK.js";
|
|
14
14
|
import "../../chunk-6J2EJVND.js";
|
|
15
15
|
import "../../chunk-F3R3UYBF.js";
|
package/dist/next/error/index.js
CHANGED
|
@@ -4,7 +4,7 @@ import {
|
|
|
4
4
|
errorToResponse,
|
|
5
5
|
processError,
|
|
6
6
|
withErrorHandler
|
|
7
|
-
} from "../../chunk-
|
|
7
|
+
} from "../../chunk-AYCXN6QJ.js";
|
|
8
8
|
import {
|
|
9
9
|
LocaleDetector
|
|
10
10
|
} from "../../chunk-K2PNAQI4.js";
|
|
@@ -19,8 +19,8 @@ import "../../chunk-7WG7XPXC.js";
|
|
|
19
19
|
import "../../chunk-AMZWDLJ4.js";
|
|
20
20
|
import "../../chunk-VUYS3SU7.js";
|
|
21
21
|
import "../../chunk-XQIAXMRY.js";
|
|
22
|
-
import "../../chunk-5GWGARXI.js";
|
|
23
22
|
import "../../chunk-QAIN3WNN.js";
|
|
23
|
+
import "../../chunk-5GWGARXI.js";
|
|
24
24
|
import "../../chunk-IKZB26SK.js";
|
|
25
25
|
import "../../chunk-6J2EJVND.js";
|
|
26
26
|
import "../../chunk-F3R3UYBF.js";
|
|
@@ -5,20 +5,21 @@ import {
|
|
|
5
5
|
initializeAuthMiddleware,
|
|
6
6
|
optionalAuthMiddleware,
|
|
7
7
|
setAccessTokenBlacklistChecker
|
|
8
|
-
} from "../../chunk-
|
|
8
|
+
} from "../../chunk-MJOXTFIC.js";
|
|
9
9
|
import "../../chunk-ATAQRXTH.js";
|
|
10
10
|
import "../../chunk-XQIAXMRY.js";
|
|
11
|
+
import "../../chunk-QAIN3WNN.js";
|
|
11
12
|
import "../../chunk-LWHLB2Y6.js";
|
|
12
13
|
import "../../chunk-5GWGARXI.js";
|
|
13
|
-
import "../../chunk-
|
|
14
|
-
import "../../chunk-
|
|
15
|
-
import "../../chunk-OVOBSYR4.js";
|
|
16
|
-
import "../../chunk-QAIN3WNN.js";
|
|
17
|
-
import "../../chunk-N3TCQ5BF.js";
|
|
18
|
-
import "../../chunk-7YWUKMZD.js";
|
|
14
|
+
import "../../chunk-HNFYO5XV.js";
|
|
15
|
+
import "../../chunk-DTRXWS7G.js";
|
|
19
16
|
import "../../chunk-IKZB26SK.js";
|
|
17
|
+
import "../../chunk-TQMQ5XXG.js";
|
|
18
|
+
import "../../chunk-7YWUKMZD.js";
|
|
19
|
+
import "../../chunk-OVOBSYR4.js";
|
|
20
20
|
import "../../chunk-6J2EJVND.js";
|
|
21
21
|
import "../../chunk-F3R3UYBF.js";
|
|
22
|
+
import "../../chunk-6NFMRZWB.js";
|
|
22
23
|
import "../../chunk-N3ETBM74.js";
|
|
23
24
|
export {
|
|
24
25
|
adminMiddleware,
|
|
@@ -1,14 +1,14 @@
|
|
|
1
1
|
import {
|
|
2
2
|
errorHandlerMiddleware
|
|
3
|
-
} from "../../chunk-
|
|
4
|
-
import "../../chunk-
|
|
3
|
+
} from "../../chunk-4Y5MRUMX.js";
|
|
4
|
+
import "../../chunk-AYCXN6QJ.js";
|
|
5
5
|
import "../../chunk-ATAQRXTH.js";
|
|
6
6
|
import "../../chunk-7WG7XPXC.js";
|
|
7
7
|
import "../../chunk-AMZWDLJ4.js";
|
|
8
8
|
import "../../chunk-VUYS3SU7.js";
|
|
9
9
|
import "../../chunk-XQIAXMRY.js";
|
|
10
|
-
import "../../chunk-5GWGARXI.js";
|
|
11
10
|
import "../../chunk-QAIN3WNN.js";
|
|
11
|
+
import "../../chunk-5GWGARXI.js";
|
|
12
12
|
import "../../chunk-IKZB26SK.js";
|
|
13
13
|
import "../../chunk-6J2EJVND.js";
|
|
14
14
|
import "../../chunk-F3R3UYBF.js";
|
|
@@ -4,14 +4,30 @@ import {
|
|
|
4
4
|
withCustomApi,
|
|
5
5
|
withOptionalAuthApi,
|
|
6
6
|
withPublicApi
|
|
7
|
-
} from "../../chunk-
|
|
7
|
+
} from "../../chunk-7IOAGJMK.js";
|
|
8
|
+
import {
|
|
9
|
+
responseLoggerMiddleware
|
|
10
|
+
} from "../../chunk-LCYDMYZS.js";
|
|
11
|
+
import {
|
|
12
|
+
securityMiddleware,
|
|
13
|
+
setAllowedOrigins,
|
|
14
|
+
validateSecurityConfiguration
|
|
15
|
+
} from "../../chunk-Y4WPEIKW.js";
|
|
16
|
+
import {
|
|
17
|
+
adminMiddleware,
|
|
18
|
+
authMiddleware,
|
|
19
|
+
createRoleMiddleware,
|
|
20
|
+
initializeAuthMiddleware,
|
|
21
|
+
optionalAuthMiddleware,
|
|
22
|
+
setAccessTokenBlacklistChecker
|
|
23
|
+
} from "../../chunk-MJOXTFIC.js";
|
|
8
24
|
import {
|
|
9
25
|
corsMiddleware,
|
|
10
26
|
validateCorsConfiguration
|
|
11
27
|
} from "../../chunk-37VGD4VX.js";
|
|
12
28
|
import {
|
|
13
29
|
errorHandlerMiddleware
|
|
14
|
-
} from "../../chunk-
|
|
30
|
+
} from "../../chunk-4Y5MRUMX.js";
|
|
15
31
|
import {
|
|
16
32
|
initRequestMiddleware
|
|
17
33
|
} from "../../chunk-VC2E6KYQ.js";
|
|
@@ -23,41 +39,26 @@ import {
|
|
|
23
39
|
rateLimitMiddleware,
|
|
24
40
|
setRateLimitAdapter
|
|
25
41
|
} from "../../chunk-TRGFXIEF.js";
|
|
26
|
-
import
|
|
27
|
-
responseLoggerMiddleware
|
|
28
|
-
} from "../../chunk-LCYDMYZS.js";
|
|
29
|
-
import {
|
|
30
|
-
securityMiddleware,
|
|
31
|
-
setAllowedOrigins,
|
|
32
|
-
validateSecurityConfiguration
|
|
33
|
-
} from "../../chunk-Y4WPEIKW.js";
|
|
34
|
-
import "../../chunk-R7EFDSPZ.js";
|
|
42
|
+
import "../../chunk-AYCXN6QJ.js";
|
|
35
43
|
import "../../chunk-K2PNAQI4.js";
|
|
36
|
-
import {
|
|
37
|
-
adminMiddleware,
|
|
38
|
-
authMiddleware,
|
|
39
|
-
createRoleMiddleware,
|
|
40
|
-
initializeAuthMiddleware,
|
|
41
|
-
optionalAuthMiddleware,
|
|
42
|
-
setAccessTokenBlacklistChecker
|
|
43
|
-
} from "../../chunk-HZN44RWL.js";
|
|
44
44
|
import "../../chunk-ATAQRXTH.js";
|
|
45
45
|
import "../../chunk-7WG7XPXC.js";
|
|
46
46
|
import "../../chunk-AMZWDLJ4.js";
|
|
47
47
|
import "../../chunk-VUYS3SU7.js";
|
|
48
48
|
import "../../chunk-XQIAXMRY.js";
|
|
49
|
+
import "../../chunk-QAIN3WNN.js";
|
|
49
50
|
import "../../chunk-LWHLB2Y6.js";
|
|
50
51
|
import "../../chunk-5GWGARXI.js";
|
|
51
|
-
import "../../chunk-
|
|
52
|
-
import "../../chunk-
|
|
53
|
-
import "../../chunk-OVOBSYR4.js";
|
|
54
|
-
import "../../chunk-QAIN3WNN.js";
|
|
52
|
+
import "../../chunk-HNFYO5XV.js";
|
|
53
|
+
import "../../chunk-DTRXWS7G.js";
|
|
55
54
|
import "../../chunk-7ZO5UNTJ.js";
|
|
56
|
-
import "../../chunk-N3TCQ5BF.js";
|
|
57
|
-
import "../../chunk-7YWUKMZD.js";
|
|
58
55
|
import "../../chunk-IKZB26SK.js";
|
|
56
|
+
import "../../chunk-TQMQ5XXG.js";
|
|
57
|
+
import "../../chunk-7YWUKMZD.js";
|
|
58
|
+
import "../../chunk-OVOBSYR4.js";
|
|
59
59
|
import "../../chunk-6J2EJVND.js";
|
|
60
60
|
import "../../chunk-F3R3UYBF.js";
|
|
61
|
+
import "../../chunk-6NFMRZWB.js";
|
|
61
62
|
import "../../chunk-N3ETBM74.js";
|
|
62
63
|
export {
|
|
63
64
|
MiddlewareChain,
|
|
@@ -4,34 +4,35 @@ import {
|
|
|
4
4
|
withCustomApi,
|
|
5
5
|
withOptionalAuthApi,
|
|
6
6
|
withPublicApi
|
|
7
|
-
} from "../../chunk-
|
|
7
|
+
} from "../../chunk-7IOAGJMK.js";
|
|
8
|
+
import "../../chunk-LCYDMYZS.js";
|
|
9
|
+
import "../../chunk-Y4WPEIKW.js";
|
|
10
|
+
import "../../chunk-MJOXTFIC.js";
|
|
8
11
|
import "../../chunk-37VGD4VX.js";
|
|
9
|
-
import "../../chunk-
|
|
12
|
+
import "../../chunk-4Y5MRUMX.js";
|
|
10
13
|
import "../../chunk-VC2E6KYQ.js";
|
|
11
14
|
import "../../chunk-WXOWI7BJ.js";
|
|
12
15
|
import "../../chunk-TRGFXIEF.js";
|
|
13
|
-
import "../../chunk-
|
|
14
|
-
import "../../chunk-Y4WPEIKW.js";
|
|
15
|
-
import "../../chunk-R7EFDSPZ.js";
|
|
16
|
+
import "../../chunk-AYCXN6QJ.js";
|
|
16
17
|
import "../../chunk-K2PNAQI4.js";
|
|
17
|
-
import "../../chunk-HZN44RWL.js";
|
|
18
18
|
import "../../chunk-ATAQRXTH.js";
|
|
19
19
|
import "../../chunk-7WG7XPXC.js";
|
|
20
20
|
import "../../chunk-AMZWDLJ4.js";
|
|
21
21
|
import "../../chunk-VUYS3SU7.js";
|
|
22
22
|
import "../../chunk-XQIAXMRY.js";
|
|
23
|
+
import "../../chunk-QAIN3WNN.js";
|
|
23
24
|
import "../../chunk-LWHLB2Y6.js";
|
|
24
25
|
import "../../chunk-5GWGARXI.js";
|
|
25
|
-
import "../../chunk-
|
|
26
|
-
import "../../chunk-
|
|
27
|
-
import "../../chunk-OVOBSYR4.js";
|
|
28
|
-
import "../../chunk-QAIN3WNN.js";
|
|
26
|
+
import "../../chunk-HNFYO5XV.js";
|
|
27
|
+
import "../../chunk-DTRXWS7G.js";
|
|
29
28
|
import "../../chunk-7ZO5UNTJ.js";
|
|
30
|
-
import "../../chunk-N3TCQ5BF.js";
|
|
31
|
-
import "../../chunk-7YWUKMZD.js";
|
|
32
29
|
import "../../chunk-IKZB26SK.js";
|
|
30
|
+
import "../../chunk-TQMQ5XXG.js";
|
|
31
|
+
import "../../chunk-7YWUKMZD.js";
|
|
32
|
+
import "../../chunk-OVOBSYR4.js";
|
|
33
33
|
import "../../chunk-6J2EJVND.js";
|
|
34
34
|
import "../../chunk-F3R3UYBF.js";
|
|
35
|
+
import "../../chunk-6NFMRZWB.js";
|
|
35
36
|
import "../../chunk-N3ETBM74.js";
|
|
36
37
|
export {
|
|
37
38
|
withAdminApi,
|
|
@@ -2,13 +2,13 @@ import {
|
|
|
2
2
|
createApiKeyAuth
|
|
3
3
|
} from "../../chunk-XWHT53CZ.js";
|
|
4
4
|
import "../../chunk-MXWSG6ER.js";
|
|
5
|
-
import "../../chunk-
|
|
5
|
+
import "../../chunk-RWENSBNW.js";
|
|
6
|
+
import "../../chunk-BTNM5YSU.js";
|
|
6
7
|
import "../../chunk-NUHSUAXG.js";
|
|
7
8
|
import "../../chunk-ZZTBIA57.js";
|
|
9
|
+
import "../../chunk-N3ETBM74.js";
|
|
8
10
|
import "../../chunk-CWS5RPRX.js";
|
|
9
11
|
import "../../chunk-TN5ZNYR2.js";
|
|
10
|
-
import "../../chunk-BTNM5YSU.js";
|
|
11
|
-
import "../../chunk-N3ETBM74.js";
|
|
12
12
|
export {
|
|
13
13
|
createApiKeyAuth
|
|
14
14
|
};
|
package/dist/next/oapi/index.js
CHANGED
|
@@ -11,13 +11,13 @@ import {
|
|
|
11
11
|
buildOpenApiSpec
|
|
12
12
|
} from "../../chunk-L2A6NGW7.js";
|
|
13
13
|
import "../../chunk-MXWSG6ER.js";
|
|
14
|
-
import "../../chunk-
|
|
14
|
+
import "../../chunk-RWENSBNW.js";
|
|
15
|
+
import "../../chunk-BTNM5YSU.js";
|
|
15
16
|
import "../../chunk-NUHSUAXG.js";
|
|
16
17
|
import "../../chunk-ZZTBIA57.js";
|
|
18
|
+
import "../../chunk-N3ETBM74.js";
|
|
17
19
|
import "../../chunk-CWS5RPRX.js";
|
|
18
20
|
import "../../chunk-TN5ZNYR2.js";
|
|
19
|
-
import "../../chunk-BTNM5YSU.js";
|
|
20
|
-
import "../../chunk-N3ETBM74.js";
|
|
21
21
|
export {
|
|
22
22
|
buildOpenApiSpec,
|
|
23
23
|
createApiKeyAuth,
|
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* 엣지 라우트 가드 — Next middleware.ts/proxy.ts 에서 쿠키의 access_token 을
|
|
3
|
+
* 검증해 리다이렉트하는 헬퍼.
|
|
4
|
+
*
|
|
5
|
+
* 엣지 안전 제약: 이 모듈은 `next/server` + `jose` + cookie-names leaf 외에는
|
|
6
|
+
* 절대 import 하지 않는다. core auth 배럴(JWTManager)·winston·node:crypto 를
|
|
7
|
+
* 끌어오면 엣지 런타임에서 깨진다. 검증은 jose 의 jwtVerify 직접 호출이며,
|
|
8
|
+
* HS256 대칭키를 우선 지원한다(비대칭 RS256/JWKS 는 후속 범위).
|
|
9
|
+
*/
|
|
10
|
+
import { NextResponse } from 'next/server';
|
|
11
|
+
import type { NextRequest } from 'next/server';
|
|
12
|
+
import { type JWTPayload } from 'jose';
|
|
13
|
+
export interface AuthProxyOptions {
|
|
14
|
+
/** JWT_SECRET (HS256 대칭키) */
|
|
15
|
+
secret: string;
|
|
16
|
+
/** 허용 알고리즘. 기본 ['HS256'] */
|
|
17
|
+
algorithms?: string[];
|
|
18
|
+
/** access 토큰 쿠키명. 기본 'access_token' */
|
|
19
|
+
cookieName?: string;
|
|
20
|
+
/** 미인증 리다이렉트 대상. 기본 '/login' */
|
|
21
|
+
loginPath?: string;
|
|
22
|
+
/** 원래 목적지를 붙일 쿼리 파라미터명. false면 미부착. 기본 false */
|
|
23
|
+
redirectParam?: string | false;
|
|
24
|
+
/** 이 경로를 보호할지 판정. true인 경로만 가드가 동작. */
|
|
25
|
+
isProtected: (pathname: string) => boolean;
|
|
26
|
+
}
|
|
27
|
+
/**
|
|
28
|
+
* 엣지 라우트 가드 팩토리. 반환 함수는:
|
|
29
|
+
* - 보호 대상이 아니면 `undefined` (호출측 proxy 로직과 합성 가능 — 라우팅/locale 등)
|
|
30
|
+
* - 미인증/무효면 로그인 리다이렉트 NextResponse
|
|
31
|
+
* - 유효면 NextResponse.next()
|
|
32
|
+
*/
|
|
33
|
+
export declare function createAuthProxy(opts: AuthProxyOptions): (req: NextRequest) => Promise<NextResponse | undefined>;
|
|
34
|
+
/** 저수준: 커스텀 합성용. 유효하면 payload, 아니면 null. */
|
|
35
|
+
export declare function verifyAccessTokenEdge(token: string, args: {
|
|
36
|
+
secret: string;
|
|
37
|
+
algorithms?: string[];
|
|
38
|
+
}): Promise<JWTPayload | null>;
|
|
@@ -0,0 +1,53 @@
|
|
|
1
|
+
import {
|
|
2
|
+
ACCESS_TOKEN_COOKIE
|
|
3
|
+
} from "../chunk-6NFMRZWB.js";
|
|
4
|
+
import "../chunk-N3ETBM74.js";
|
|
5
|
+
|
|
6
|
+
// src/next/proxy.ts
|
|
7
|
+
import { NextResponse } from "next/server";
|
|
8
|
+
import { jwtVerify } from "jose";
|
|
9
|
+
function redirectToLogin(req, opts) {
|
|
10
|
+
var _a, _b;
|
|
11
|
+
const url = new URL((_a = opts.loginPath) != null ? _a : "/login", req.url);
|
|
12
|
+
if (opts.redirectParam) {
|
|
13
|
+
url.searchParams.set(opts.redirectParam, req.nextUrl.pathname + req.nextUrl.search);
|
|
14
|
+
}
|
|
15
|
+
const res = NextResponse.redirect(url);
|
|
16
|
+
res.cookies.delete((_b = opts.cookieName) != null ? _b : ACCESS_TOKEN_COOKIE);
|
|
17
|
+
return res;
|
|
18
|
+
}
|
|
19
|
+
function createAuthProxy(opts) {
|
|
20
|
+
var _a, _b;
|
|
21
|
+
const key = new TextEncoder().encode(opts.secret);
|
|
22
|
+
const algorithms = (_a = opts.algorithms) != null ? _a : ["HS256"];
|
|
23
|
+
const cookieName = (_b = opts.cookieName) != null ? _b : ACCESS_TOKEN_COOKIE;
|
|
24
|
+
return async function authProxy(req) {
|
|
25
|
+
var _a2;
|
|
26
|
+
if (!opts.isProtected(req.nextUrl.pathname)) return void 0;
|
|
27
|
+
const token = (_a2 = req.cookies.get(cookieName)) == null ? void 0 : _a2.value;
|
|
28
|
+
if (!token) return redirectToLogin(req, opts);
|
|
29
|
+
try {
|
|
30
|
+
await jwtVerify(token, key, { algorithms });
|
|
31
|
+
return NextResponse.next();
|
|
32
|
+
} catch (e) {
|
|
33
|
+
return redirectToLogin(req, opts);
|
|
34
|
+
}
|
|
35
|
+
};
|
|
36
|
+
}
|
|
37
|
+
async function verifyAccessTokenEdge(token, args) {
|
|
38
|
+
var _a;
|
|
39
|
+
try {
|
|
40
|
+
const { payload } = await jwtVerify(
|
|
41
|
+
token,
|
|
42
|
+
new TextEncoder().encode(args.secret),
|
|
43
|
+
{ algorithms: (_a = args.algorithms) != null ? _a : ["HS256"] }
|
|
44
|
+
);
|
|
45
|
+
return payload;
|
|
46
|
+
} catch (e) {
|
|
47
|
+
return null;
|
|
48
|
+
}
|
|
49
|
+
}
|
|
50
|
+
export {
|
|
51
|
+
createAuthProxy,
|
|
52
|
+
verifyAccessTokenEdge
|
|
53
|
+
};
|
package/dist/next/utils/index.js
CHANGED
|
@@ -1,3 +1,17 @@
|
|
|
1
|
+
import {
|
|
2
|
+
ErrorProcessor,
|
|
3
|
+
errorToResponse,
|
|
4
|
+
handlePrismaError,
|
|
5
|
+
processError,
|
|
6
|
+
throwBadRequestError,
|
|
7
|
+
throwBusinessRuleError,
|
|
8
|
+
throwConflictError,
|
|
9
|
+
throwForbiddenError,
|
|
10
|
+
throwNotFoundError,
|
|
11
|
+
throwUnauthorizedError,
|
|
12
|
+
throwValidationError,
|
|
13
|
+
withErrorHandling
|
|
14
|
+
} from "../../chunk-BRFW2LL2.js";
|
|
1
15
|
import {
|
|
2
16
|
createPaginatedResponse,
|
|
3
17
|
getReferer,
|
|
@@ -31,26 +45,12 @@ import {
|
|
|
31
45
|
escapeCsvField,
|
|
32
46
|
rowToCsv
|
|
33
47
|
} from "../../chunk-DVCGAI5N.js";
|
|
34
|
-
import {
|
|
35
|
-
ErrorProcessor,
|
|
36
|
-
errorToResponse,
|
|
37
|
-
handlePrismaError,
|
|
38
|
-
processError,
|
|
39
|
-
throwBadRequestError,
|
|
40
|
-
throwBusinessRuleError,
|
|
41
|
-
throwConflictError,
|
|
42
|
-
throwForbiddenError,
|
|
43
|
-
throwNotFoundError,
|
|
44
|
-
throwUnauthorizedError,
|
|
45
|
-
throwValidationError,
|
|
46
|
-
withErrorHandling
|
|
47
|
-
} from "../../chunk-BRFW2LL2.js";
|
|
48
48
|
import "../../chunk-ATAQRXTH.js";
|
|
49
49
|
import "../../chunk-XQIAXMRY.js";
|
|
50
50
|
import "../../chunk-QAIN3WNN.js";
|
|
51
51
|
import "../../chunk-7ZO5UNTJ.js";
|
|
52
|
-
import "../../chunk-7YWUKMZD.js";
|
|
53
52
|
import "../../chunk-IKZB26SK.js";
|
|
53
|
+
import "../../chunk-7YWUKMZD.js";
|
|
54
54
|
import "../../chunk-PX535BHW.js";
|
|
55
55
|
import "../../chunk-6J2EJVND.js";
|
|
56
56
|
import "../../chunk-F3R3UYBF.js";
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@withwiz/toolkit",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.11.0",
|
|
4
4
|
"description": "Shared utility library for withwiz projects",
|
|
5
5
|
"license": "MIT",
|
|
6
6
|
"private": false,
|
|
@@ -31,7 +31,10 @@
|
|
|
31
31
|
},
|
|
32
32
|
"exports": {
|
|
33
33
|
"./initialize": "./dist/initialize.js",
|
|
34
|
-
"./core/api-key": {
|
|
34
|
+
"./core/api-key": {
|
|
35
|
+
"types": "./dist/core/api-key/index.d.ts",
|
|
36
|
+
"import": "./dist/core/api-key/index.js"
|
|
37
|
+
},
|
|
35
38
|
"./core/api-key/types": "./dist/core/api-key/types.js",
|
|
36
39
|
"./core/api-key/ports": "./dist/core/api-key/ports.js",
|
|
37
40
|
"./core/api-key/key-generator": "./dist/core/api-key/key-generator.js",
|
|
@@ -41,6 +44,7 @@
|
|
|
41
44
|
"./core/auth": "./dist/core/auth/index.js",
|
|
42
45
|
"./core/auth/adapters/sql": "./dist/core/auth/adapters/sql/index.js",
|
|
43
46
|
"./core/auth/config": "./dist/core/auth/config.js",
|
|
47
|
+
"./core/auth/cookie-names": "./dist/core/auth/cookie-names.js",
|
|
44
48
|
"./core/auth/duration": "./dist/core/auth/duration.js",
|
|
45
49
|
"./core/auth/email": "./dist/core/auth/email/index.js",
|
|
46
50
|
"./core/auth/email/sender": "./dist/core/auth/email/sender.js",
|
|
@@ -61,6 +65,7 @@
|
|
|
61
65
|
"./core/auth/password/client-helper": "./dist/core/auth/password/client-helper.js",
|
|
62
66
|
"./core/auth/password/hasher": "./dist/core/auth/password/hasher.js",
|
|
63
67
|
"./core/auth/services": "./dist/core/auth/services/index.js",
|
|
68
|
+
"./core/auth/services/cache-token-stores": "./dist/core/auth/services/cache-token-stores.js",
|
|
64
69
|
"./core/auth/services/email-verification.service": "./dist/core/auth/services/email-verification.service.js",
|
|
65
70
|
"./core/auth/services/login.service": "./dist/core/auth/services/login.service.js",
|
|
66
71
|
"./core/auth/services/oauth-callback.service": "./dist/core/auth/services/oauth-callback.service.js",
|
|
@@ -170,10 +175,14 @@
|
|
|
170
175
|
"import": "./dist/next/error/index.js"
|
|
171
176
|
},
|
|
172
177
|
"./next/error/locale-detector": "./dist/next/error/locale-detector.js",
|
|
173
|
-
"./next/oapi": {
|
|
178
|
+
"./next/oapi": {
|
|
179
|
+
"types": "./dist/next/oapi/index.d.ts",
|
|
180
|
+
"import": "./dist/next/oapi/index.js"
|
|
181
|
+
},
|
|
174
182
|
"./next/oapi/api-key-auth": "./dist/next/oapi/api-key-auth.js",
|
|
175
183
|
"./next/oapi/openapi-spec": "./dist/next/oapi/openapi-spec.js",
|
|
176
184
|
"./next/oapi/helpers": "./dist/next/oapi/helpers.js",
|
|
185
|
+
"./next/proxy": "./dist/next/proxy.js",
|
|
177
186
|
"./next/middleware": "./dist/next/middleware/index.js",
|
|
178
187
|
"./next/middleware/auth": "./dist/next/middleware/auth.js",
|
|
179
188
|
"./next/middleware/cors": "./dist/next/middleware/cors.js",
|
|
@@ -1,11 +1,11 @@
|
|
|
1
|
-
import {
|
|
2
|
-
resolveConfig
|
|
3
|
-
} from "./chunk-E4TKORMQ.js";
|
|
4
1
|
import {
|
|
5
2
|
ParamBuilder,
|
|
6
3
|
columnList,
|
|
7
4
|
getDialect
|
|
8
5
|
} from "./chunk-2JUFL4KX.js";
|
|
6
|
+
import {
|
|
7
|
+
resolveConfig
|
|
8
|
+
} from "./chunk-E4TKORMQ.js";
|
|
9
9
|
|
|
10
10
|
// src/core/auth/adapters/sql/user-repository.ts
|
|
11
11
|
import { randomUUID } from "crypto";
|
|
@@ -7,12 +7,12 @@ import {
|
|
|
7
7
|
formatErrorMessage,
|
|
8
8
|
getHttpStatus
|
|
9
9
|
} from "./chunk-XQIAXMRY.js";
|
|
10
|
-
import {
|
|
11
|
-
AuthError
|
|
12
|
-
} from "./chunk-5GWGARXI.js";
|
|
13
10
|
import {
|
|
14
11
|
logger
|
|
15
12
|
} from "./chunk-QAIN3WNN.js";
|
|
13
|
+
import {
|
|
14
|
+
AuthError
|
|
15
|
+
} from "./chunk-5GWGARXI.js";
|
|
16
16
|
import {
|
|
17
17
|
__spreadProps,
|
|
18
18
|
__spreadValues
|
|
@@ -1,11 +1,11 @@
|
|
|
1
|
-
import {
|
|
2
|
-
resolveConfig
|
|
3
|
-
} from "./chunk-E4TKORMQ.js";
|
|
4
1
|
import {
|
|
5
2
|
ParamBuilder,
|
|
6
3
|
columnList,
|
|
7
4
|
getDialect
|
|
8
5
|
} from "./chunk-2JUFL4KX.js";
|
|
6
|
+
import {
|
|
7
|
+
resolveConfig
|
|
8
|
+
} from "./chunk-E4TKORMQ.js";
|
|
9
9
|
|
|
10
10
|
// src/core/auth/adapters/sql/email-token-repository.ts
|
|
11
11
|
import { randomUUID } from "crypto";
|
|
@@ -1,15 +1,15 @@
|
|
|
1
|
-
import {
|
|
2
|
-
NoopCacheManager
|
|
3
|
-
} from "./chunk-XF3WUF3F.js";
|
|
4
|
-
import {
|
|
5
|
-
RedisCacheManager
|
|
6
|
-
} from "./chunk-4TGPAUJV.js";
|
|
7
1
|
import {
|
|
8
2
|
HybridCacheManager
|
|
9
3
|
} from "./chunk-2GK4LDPV.js";
|
|
10
4
|
import {
|
|
11
5
|
InMemoryCacheManager
|
|
12
6
|
} from "./chunk-YYTA6ERS.js";
|
|
7
|
+
import {
|
|
8
|
+
NoopCacheManager
|
|
9
|
+
} from "./chunk-XF3WUF3F.js";
|
|
10
|
+
import {
|
|
11
|
+
RedisCacheManager
|
|
12
|
+
} from "./chunk-4TGPAUJV.js";
|
|
13
13
|
import {
|
|
14
14
|
isRedisAvailableNow,
|
|
15
15
|
isRedisGloballyDisabled
|
|
@@ -1,11 +1,11 @@
|
|
|
1
|
+
import {
|
|
2
|
+
validateApiKeyRecord
|
|
3
|
+
} from "./chunk-BTNM5YSU.js";
|
|
1
4
|
import {
|
|
2
5
|
generateRawKey,
|
|
3
6
|
hashKey,
|
|
4
7
|
keyPreview
|
|
5
8
|
} from "./chunk-ZZTBIA57.js";
|
|
6
|
-
import {
|
|
7
|
-
validateApiKeyRecord
|
|
8
|
-
} from "./chunk-BTNM5YSU.js";
|
|
9
9
|
import {
|
|
10
10
|
__spreadProps,
|
|
11
11
|
__spreadValues
|
|
@@ -1,3 +1,9 @@
|
|
|
1
|
+
import {
|
|
2
|
+
KakaoOAuthProvider
|
|
3
|
+
} from "./chunk-65HVR74O.js";
|
|
4
|
+
import {
|
|
5
|
+
MetaOAuthProvider
|
|
6
|
+
} from "./chunk-33RIHX7O.js";
|
|
1
7
|
import {
|
|
2
8
|
MicrosoftOAuthProvider
|
|
3
9
|
} from "./chunk-GSSHHVHF.js";
|
|
@@ -7,12 +13,6 @@ import {
|
|
|
7
13
|
import {
|
|
8
14
|
GoogleOAuthProvider
|
|
9
15
|
} from "./chunk-GF3DKZIW.js";
|
|
10
|
-
import {
|
|
11
|
-
KakaoOAuthProvider
|
|
12
|
-
} from "./chunk-65HVR74O.js";
|
|
13
|
-
import {
|
|
14
|
-
MetaOAuthProvider
|
|
15
|
-
} from "./chunk-33RIHX7O.js";
|
|
16
16
|
import {
|
|
17
17
|
OAuthError
|
|
18
18
|
} from "./chunk-5GWGARXI.js";
|
|
@@ -1,11 +1,11 @@
|
|
|
1
|
-
import {
|
|
2
|
-
resolveConfig
|
|
3
|
-
} from "./chunk-E4TKORMQ.js";
|
|
4
1
|
import {
|
|
5
2
|
ParamBuilder,
|
|
6
3
|
columnList,
|
|
7
4
|
getDialect
|
|
8
5
|
} from "./chunk-2JUFL4KX.js";
|
|
6
|
+
import {
|
|
7
|
+
resolveConfig
|
|
8
|
+
} from "./chunk-E4TKORMQ.js";
|
|
9
9
|
|
|
10
10
|
// src/core/auth/adapters/sql/oauth-account-repository.ts
|
|
11
11
|
import { randomUUID } from "crypto";
|
|
File without changes
|