@vitnode/core 1.2.0-canary.26 → 1.2.0-canary.28
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/scripts/scripts.js +2 -2
- package/dist/scripts/shared/file-utils.d.ts.map +1 -1
- package/dist/src/api/config.d.ts.map +1 -1
- package/dist/src/api/config.js +2 -1
- package/dist/src/api/lib/route.d.ts +1 -0
- package/dist/src/api/lib/route.d.ts.map +1 -1
- package/dist/src/api/lib/route.js +4 -0
- package/dist/src/api/middlewares/captcha.middleware.d.ts +3 -0
- package/dist/src/api/middlewares/captcha.middleware.d.ts.map +1 -0
- package/dist/src/api/middlewares/captcha.middleware.js +62 -0
- package/dist/src/api/middlewares/global.middleware.d.ts +3 -2
- package/dist/src/api/middlewares/global.middleware.d.ts.map +1 -1
- package/dist/src/api/middlewares/global.middleware.js +4 -3
- package/dist/src/api/models/sso.js +1 -1
- package/dist/src/api/modules/admin/admin.module.d.ts +4 -4
- package/dist/src/api/modules/admin/debug/debug.admin.module.d.ts +4 -4
- package/dist/src/api/modules/admin/debug/routes/logs.route.d.ts +4 -4
- package/dist/src/api/modules/middleware/middleware.module.d.ts +22 -0
- package/dist/src/api/modules/middleware/middleware.module.d.ts.map +1 -1
- package/dist/src/api/modules/middleware/route.d.ts +65 -0
- package/dist/src/api/modules/middleware/route.d.ts.map +1 -1
- package/dist/src/api/modules/middleware/route.js +22 -10
- package/dist/src/api/modules/users/routes/sign-in.route.d.ts +2 -2
- package/dist/src/api/modules/users/routes/sign-up.route.d.ts +1 -0
- package/dist/src/api/modules/users/routes/sign-up.route.d.ts.map +1 -1
- package/dist/src/api/modules/users/routes/sign-up.route.js +1 -0
- package/dist/src/api/modules/users/sso/routes/callback.route.d.ts +2 -2
- package/dist/src/api/modules/users/sso/sso.module.d.ts +2 -2
- package/dist/src/api/modules/users/users.module.d.ts +5 -4
- package/dist/src/api/modules/users/users.module.d.ts.map +1 -1
- package/dist/src/components/form/auto-form.d.ts +7 -2
- package/dist/src/components/form/auto-form.d.ts.map +1 -1
- package/dist/src/components/form/auto-form.js +13 -3
- package/dist/src/hooks/use-captcha.d.ts +8 -0
- package/dist/src/hooks/use-captcha.d.ts.map +1 -0
- package/dist/src/hooks/use-captcha.js +94 -0
- package/dist/src/lib/api/get-middleware-api.d.ts +4 -0
- package/dist/src/lib/api/get-middleware-api.d.ts.map +1 -1
- package/dist/src/lib/fetcher-client.d.ts +2 -1
- package/dist/src/lib/fetcher-client.d.ts.map +1 -1
- package/dist/src/lib/fetcher-client.js +7 -2
- package/dist/src/lib/fetcher.d.ts +2 -1
- package/dist/src/lib/fetcher.d.ts.map +1 -1
- package/dist/src/lib/fetcher.js +10 -6
- package/dist/src/views/admin/layouts/sidebar/nav/item.d.ts.map +1 -1
- package/dist/src/views/admin/layouts/sidebar/nav/item.js +0 -2
- package/dist/src/views/admin/layouts/sidebar/sidebar.js +0 -1
- package/dist/src/views/admin/views/core/debug/system-logs/system-logs-view.d.ts +1 -1
- package/dist/src/views/auth/sign-in/form/use-form.d.ts +3 -2
- package/dist/src/views/auth/sign-in/form/use-form.d.ts.map +1 -1
- package/dist/src/views/auth/sign-up/form/form.d.ts +4 -1
- package/dist/src/views/auth/sign-up/form/form.d.ts.map +1 -1
- package/dist/src/views/auth/sign-up/form/form.js +2 -1
- package/dist/src/views/auth/sign-up/form/mutation-api.d.ts +3 -1
- package/dist/src/views/auth/sign-up/form/mutation-api.d.ts.map +1 -1
- package/dist/src/views/auth/sign-up/form/mutation-api.js +2 -1
- package/dist/src/views/auth/sign-up/form/use-form.d.ts +3 -21
- package/dist/src/views/auth/sign-up/form/use-form.d.ts.map +1 -1
- package/dist/src/views/auth/sign-up/form/use-form.js +5 -2
- package/dist/src/views/auth/sign-up/sign-up-view.js +2 -1
- package/dist/src/views/layouts/root-layout.d.ts +1 -3
- package/dist/src/views/layouts/root-layout.d.ts.map +1 -1
- package/dist/src/views/layouts/root-layout.js +9 -21
- package/dist/src/views/layouts/theme/header/header.d.ts.map +1 -1
- package/dist/src/views/layouts/theme/header/header.js +0 -1
- package/dist/src/views/layouts/theme/header/user/user.d.ts.map +1 -1
- package/dist/src/views/layouts/theme/header/user/user.js +0 -2
- package/dist/src/vitnode.config.d.ts +6 -1
- package/dist/src/vitnode.config.d.ts.map +1 -1
- package/dist/tsconfig.tsbuildinfo +1 -1
- package/package.json +2 -2
- package/src/locales/en.json +1 -0
|
@@ -5,6 +5,10 @@ export declare const middlewareModule: import("../../../api/lib/module").BuildMo
|
|
|
5
5
|
id: string;
|
|
6
6
|
name: string;
|
|
7
7
|
}[];
|
|
8
|
+
captcha: {
|
|
9
|
+
siteKey: string;
|
|
10
|
+
type: "cloudflare_turnstile" | "recaptcha_v3";
|
|
11
|
+
} | undefined;
|
|
8
12
|
}, 200, "json">;
|
|
9
13
|
pluginId: "@vitnode/core";
|
|
10
14
|
route: {
|
|
@@ -27,18 +31,36 @@ export declare const middlewareModule: import("../../../api/lib/module").BuildMo
|
|
|
27
31
|
name: string;
|
|
28
32
|
}>, "many">;
|
|
29
33
|
isEmail: import("zod").ZodBoolean;
|
|
34
|
+
captcha: import("zod").ZodOptional<import("zod").ZodObject<{
|
|
35
|
+
siteKey: import("zod").ZodString;
|
|
36
|
+
type: import("zod").ZodEnum<["cloudflare_turnstile", "recaptcha_v3"]>;
|
|
37
|
+
}, "strip", import("zod").ZodTypeAny, {
|
|
38
|
+
type: "cloudflare_turnstile" | "recaptcha_v3";
|
|
39
|
+
siteKey: string;
|
|
40
|
+
}, {
|
|
41
|
+
type: "cloudflare_turnstile" | "recaptcha_v3";
|
|
42
|
+
siteKey: string;
|
|
43
|
+
}>>;
|
|
30
44
|
}, "strip", import("zod").ZodTypeAny, {
|
|
31
45
|
sso: {
|
|
32
46
|
id: string;
|
|
33
47
|
name: string;
|
|
34
48
|
}[];
|
|
35
49
|
isEmail: boolean;
|
|
50
|
+
captcha?: {
|
|
51
|
+
type: "cloudflare_turnstile" | "recaptcha_v3";
|
|
52
|
+
siteKey: string;
|
|
53
|
+
} | undefined;
|
|
36
54
|
}, {
|
|
37
55
|
sso: {
|
|
38
56
|
id: string;
|
|
39
57
|
name: string;
|
|
40
58
|
}[];
|
|
41
59
|
isEmail: boolean;
|
|
60
|
+
captcha?: {
|
|
61
|
+
type: "cloudflare_turnstile" | "recaptcha_v3";
|
|
62
|
+
siteKey: string;
|
|
63
|
+
} | undefined;
|
|
42
64
|
}>;
|
|
43
65
|
};
|
|
44
66
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"middleware.module.d.ts","sourceRoot":"","sources":["../../../../../src/api/modules/middleware/middleware.module.ts"],"names":[],"mappings":"AAKA,eAAO,MAAM,gBAAgB
|
|
1
|
+
{"version":3,"file":"middleware.module.d.ts","sourceRoot":"","sources":["../../../../../src/api/modules/middleware/middleware.module.ts"],"names":[],"mappings":"AAKA,eAAO,MAAM,gBAAgB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;gQAI3B,CAAC"}
|
|
@@ -1,4 +1,47 @@
|
|
|
1
1
|
import { z } from 'zod';
|
|
2
|
+
export declare const routeMiddlewareSchema: z.ZodObject<{
|
|
3
|
+
sso: z.ZodArray<z.ZodObject<{
|
|
4
|
+
id: z.ZodString;
|
|
5
|
+
name: z.ZodString;
|
|
6
|
+
}, "strip", z.ZodTypeAny, {
|
|
7
|
+
id: string;
|
|
8
|
+
name: string;
|
|
9
|
+
}, {
|
|
10
|
+
id: string;
|
|
11
|
+
name: string;
|
|
12
|
+
}>, "many">;
|
|
13
|
+
isEmail: z.ZodBoolean;
|
|
14
|
+
captcha: z.ZodOptional<z.ZodObject<{
|
|
15
|
+
siteKey: z.ZodString;
|
|
16
|
+
type: z.ZodEnum<["cloudflare_turnstile", "recaptcha_v3"]>;
|
|
17
|
+
}, "strip", z.ZodTypeAny, {
|
|
18
|
+
type: "cloudflare_turnstile" | "recaptcha_v3";
|
|
19
|
+
siteKey: string;
|
|
20
|
+
}, {
|
|
21
|
+
type: "cloudflare_turnstile" | "recaptcha_v3";
|
|
22
|
+
siteKey: string;
|
|
23
|
+
}>>;
|
|
24
|
+
}, "strip", z.ZodTypeAny, {
|
|
25
|
+
sso: {
|
|
26
|
+
id: string;
|
|
27
|
+
name: string;
|
|
28
|
+
}[];
|
|
29
|
+
isEmail: boolean;
|
|
30
|
+
captcha?: {
|
|
31
|
+
type: "cloudflare_turnstile" | "recaptcha_v3";
|
|
32
|
+
siteKey: string;
|
|
33
|
+
} | undefined;
|
|
34
|
+
}, {
|
|
35
|
+
sso: {
|
|
36
|
+
id: string;
|
|
37
|
+
name: string;
|
|
38
|
+
}[];
|
|
39
|
+
isEmail: boolean;
|
|
40
|
+
captcha?: {
|
|
41
|
+
type: "cloudflare_turnstile" | "recaptcha_v3";
|
|
42
|
+
siteKey: string;
|
|
43
|
+
} | undefined;
|
|
44
|
+
}>;
|
|
2
45
|
export declare const routeMiddleware: {
|
|
3
46
|
handler: (c: import("hono").Context<import("../../middlewares/global.middleware").EnvVitNode, "/", {}>) => Response & import("hono").TypedResponse<{
|
|
4
47
|
isEmail: boolean;
|
|
@@ -6,6 +49,10 @@ export declare const routeMiddleware: {
|
|
|
6
49
|
id: string;
|
|
7
50
|
name: string;
|
|
8
51
|
}[];
|
|
52
|
+
captcha: {
|
|
53
|
+
siteKey: string;
|
|
54
|
+
type: "cloudflare_turnstile" | "recaptcha_v3";
|
|
55
|
+
} | undefined;
|
|
9
56
|
}, 200, "json">;
|
|
10
57
|
pluginId: "@vitnode/core";
|
|
11
58
|
route: {
|
|
@@ -28,18 +75,36 @@ export declare const routeMiddleware: {
|
|
|
28
75
|
name: string;
|
|
29
76
|
}>, "many">;
|
|
30
77
|
isEmail: z.ZodBoolean;
|
|
78
|
+
captcha: z.ZodOptional<z.ZodObject<{
|
|
79
|
+
siteKey: z.ZodString;
|
|
80
|
+
type: z.ZodEnum<["cloudflare_turnstile", "recaptcha_v3"]>;
|
|
81
|
+
}, "strip", z.ZodTypeAny, {
|
|
82
|
+
type: "cloudflare_turnstile" | "recaptcha_v3";
|
|
83
|
+
siteKey: string;
|
|
84
|
+
}, {
|
|
85
|
+
type: "cloudflare_turnstile" | "recaptcha_v3";
|
|
86
|
+
siteKey: string;
|
|
87
|
+
}>>;
|
|
31
88
|
}, "strip", z.ZodTypeAny, {
|
|
32
89
|
sso: {
|
|
33
90
|
id: string;
|
|
34
91
|
name: string;
|
|
35
92
|
}[];
|
|
36
93
|
isEmail: boolean;
|
|
94
|
+
captcha?: {
|
|
95
|
+
type: "cloudflare_turnstile" | "recaptcha_v3";
|
|
96
|
+
siteKey: string;
|
|
97
|
+
} | undefined;
|
|
37
98
|
}, {
|
|
38
99
|
sso: {
|
|
39
100
|
id: string;
|
|
40
101
|
name: string;
|
|
41
102
|
}[];
|
|
42
103
|
isEmail: boolean;
|
|
104
|
+
captcha?: {
|
|
105
|
+
type: "cloudflare_turnstile" | "recaptcha_v3";
|
|
106
|
+
siteKey: string;
|
|
107
|
+
} | undefined;
|
|
43
108
|
}>;
|
|
44
109
|
};
|
|
45
110
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"route.d.ts","sourceRoot":"","sources":["../../../../../src/api/modules/middleware/route.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAKxB,eAAO,MAAM,eAAe
|
|
1
|
+
{"version":3,"file":"route.d.ts","sourceRoot":"","sources":["../../../../../src/api/modules/middleware/route.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAKxB,eAAO,MAAM,qBAAqB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAShC,CAAC;AAEH,eAAO,MAAM,eAAe;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAkC1B,CAAC"}
|
|
@@ -1,6 +1,20 @@
|
|
|
1
1
|
import { z } from "zod";
|
|
2
2
|
import { buildRoute } from "../../lib/route.js";
|
|
3
3
|
import { CONFIG_PLUGIN } from "../../../config.js";
|
|
4
|
+
export const routeMiddlewareSchema = z.object({
|
|
5
|
+
sso: z.array(z.object({
|
|
6
|
+
id: z.string(),
|
|
7
|
+
name: z.string()
|
|
8
|
+
})),
|
|
9
|
+
isEmail: z.boolean(),
|
|
10
|
+
captcha: z.object({
|
|
11
|
+
siteKey: z.string(),
|
|
12
|
+
type: z.enum([
|
|
13
|
+
'cloudflare_turnstile',
|
|
14
|
+
'recaptcha_v3'
|
|
15
|
+
])
|
|
16
|
+
}).optional()
|
|
17
|
+
});
|
|
4
18
|
export const routeMiddleware = buildRoute({
|
|
5
19
|
...CONFIG_PLUGIN,
|
|
6
20
|
route: {
|
|
@@ -11,13 +25,7 @@ export const routeMiddleware = buildRoute({
|
|
|
11
25
|
200: {
|
|
12
26
|
content: {
|
|
13
27
|
'application/json': {
|
|
14
|
-
schema:
|
|
15
|
-
sso: z.array(z.object({
|
|
16
|
-
id: z.string(),
|
|
17
|
-
name: z.string()
|
|
18
|
-
})),
|
|
19
|
-
isEmail: z.boolean()
|
|
20
|
-
})
|
|
28
|
+
schema: routeMiddlewareSchema
|
|
21
29
|
}
|
|
22
30
|
},
|
|
23
31
|
description: 'Middleware route'
|
|
@@ -25,13 +33,17 @@ export const routeMiddleware = buildRoute({
|
|
|
25
33
|
}
|
|
26
34
|
},
|
|
27
35
|
handler: (c)=>{
|
|
28
|
-
const sso = c.get('core').authorization.
|
|
36
|
+
const sso = c.get('core').authorization.ssoAdapters;
|
|
29
37
|
return c.json({
|
|
30
38
|
isEmail: !!c.get('core').emailAdapter,
|
|
31
39
|
sso: sso.map((s)=>({
|
|
32
40
|
id: s.id,
|
|
33
41
|
name: s.name
|
|
34
|
-
}))
|
|
35
|
-
|
|
42
|
+
})),
|
|
43
|
+
captcha: c.get('core').captcha ? {
|
|
44
|
+
siteKey: c.get('core').captcha?.siteKey ?? '',
|
|
45
|
+
type: c.get('core').captcha?.type ?? 'cloudflare_turnstile'
|
|
46
|
+
} : undefined
|
|
47
|
+
}, 200);
|
|
36
48
|
}
|
|
37
49
|
});
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"sign-up.route.d.ts","sourceRoot":"","sources":["../../../../../../src/api/modules/users/routes/sign-up.route.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAWxB,eAAO,MAAM,eAAe;;;;;;;;;;;;;;;EAe1B,CAAC;AAEH,eAAO,MAAM,WAAW
|
|
1
|
+
{"version":3,"file":"sign-up.route.d.ts","sourceRoot":"","sources":["../../../../../../src/api/modules/users/routes/sign-up.route.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAWxB,eAAO,MAAM,eAAe;;;;;;;;;;;;;;;EAe1B,CAAC;AAEH,eAAO,MAAM,WAAW;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAwDtB,CAAC"}
|
|
@@ -59,11 +59,11 @@ export declare const ssoUserModule: import("../../../../api/lib/module").BuildMo
|
|
|
59
59
|
id: import("zod").ZodNumber;
|
|
60
60
|
token: import("zod").ZodString;
|
|
61
61
|
}, "strip", import("zod").ZodTypeAny, {
|
|
62
|
-
id: number;
|
|
63
62
|
token: string;
|
|
64
|
-
}, {
|
|
65
63
|
id: number;
|
|
64
|
+
}, {
|
|
66
65
|
token: string;
|
|
66
|
+
id: number;
|
|
67
67
|
}>;
|
|
68
68
|
};
|
|
69
69
|
};
|
|
@@ -156,11 +156,11 @@ export declare const usersModule: import("../../../api/lib/module").BuildModuleR
|
|
|
156
156
|
id: import("zod").ZodNumber;
|
|
157
157
|
token: import("zod").ZodString;
|
|
158
158
|
}, "strip", import("zod").ZodTypeAny, {
|
|
159
|
-
id: number;
|
|
160
159
|
token: string;
|
|
161
|
-
}, {
|
|
162
160
|
id: number;
|
|
161
|
+
}, {
|
|
163
162
|
token: string;
|
|
163
|
+
id: number;
|
|
164
164
|
}>;
|
|
165
165
|
};
|
|
166
166
|
};
|
|
@@ -242,6 +242,7 @@ export declare const usersModule: import("../../../api/lib/module").BuildModuleR
|
|
|
242
242
|
method: "post";
|
|
243
243
|
description: string;
|
|
244
244
|
path: "/sign_up";
|
|
245
|
+
withCaptcha: true;
|
|
245
246
|
request: {
|
|
246
247
|
body: {
|
|
247
248
|
required: true;
|
|
@@ -381,11 +382,11 @@ export declare const usersModule: import("../../../api/lib/module").BuildModuleR
|
|
|
381
382
|
id: import("zod").ZodNumber;
|
|
382
383
|
token: import("zod").ZodString;
|
|
383
384
|
}, "strip", import("zod").ZodTypeAny, {
|
|
384
|
-
id: number;
|
|
385
385
|
token: string;
|
|
386
|
-
}, {
|
|
387
386
|
id: number;
|
|
387
|
+
}, {
|
|
388
388
|
token: string;
|
|
389
|
+
id: number;
|
|
389
390
|
}>;
|
|
390
391
|
};
|
|
391
392
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"users.module.d.ts","sourceRoot":"","sources":["../../../../../src/api/modules/users/users.module.ts"],"names":[],"mappings":"AAUA,eAAO,MAAM,WAAW
|
|
1
|
+
{"version":3,"file":"users.module.d.ts","sourceRoot":"","sources":["../../../../../src/api/modules/users/users.module.ts"],"names":[],"mappings":"AAUA,eAAO,MAAM,WAAW;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;mQAKtB,CAAC"}
|
|
@@ -1,12 +1,17 @@
|
|
|
1
1
|
import type { Mode, UseFormReturn } from 'react-hook-form';
|
|
2
2
|
import type { z } from 'zod';
|
|
3
|
+
import type { routeMiddlewareSchema } from '../../api/modules/middleware/route';
|
|
3
4
|
import type { ItemAutoFormProps } from './fields/item';
|
|
4
5
|
import { Button } from '../ui/button';
|
|
5
|
-
export
|
|
6
|
+
export type AutoFormOnSubmit<T extends z.ZodTypeAny> = (values: z.infer<T>, form: UseFormReturn<z.infer<T>>, options: {
|
|
7
|
+
captchaToken: string;
|
|
8
|
+
}) => Promise<void> | void;
|
|
9
|
+
export declare function AutoForm<T extends z.ZodEffects<z.ZodObject<z.ZodRawShape>> | z.ZodObject<z.ZodRawShape>, TContext = unknown>({ formSchema, onSubmit: onSubmitProp, fields, submitButtonProps, mode, captcha, ...props }: Omit<React.ComponentProps<'form'>, 'onSubmit'> & {
|
|
10
|
+
captcha?: z.infer<typeof routeMiddlewareSchema>['captcha'];
|
|
6
11
|
fields: ItemAutoFormProps<T>[];
|
|
7
12
|
formSchema: T;
|
|
8
13
|
mode?: Mode;
|
|
9
|
-
onSubmit?:
|
|
14
|
+
onSubmit?: AutoFormOnSubmit<T>;
|
|
10
15
|
submitButtonProps?: Omit<React.ComponentProps<typeof Button>, 'isLoading' | 'type'>;
|
|
11
16
|
}): import("react/jsx-runtime").JSX.Element;
|
|
12
17
|
//# sourceMappingURL=auto-form.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"auto-form.d.ts","sourceRoot":"","sources":["../../../../src/components/form/auto-form.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAiB,IAAI,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAC1E,OAAO,KAAK,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAQ7B,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,eAAe,CAAC;
|
|
1
|
+
{"version":3,"file":"auto-form.d.ts","sourceRoot":"","sources":["../../../../src/components/form/auto-form.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAiB,IAAI,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAC1E,OAAO,KAAK,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAQ7B,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,oCAAoC,CAAC;AAChF,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,eAAe,CAAC;AAGvD,OAAO,EAAE,MAAM,EAAE,MAAM,cAAc,CAAC;AAKtC,MAAM,MAAM,gBAAgB,CAAC,CAAC,SAAS,CAAC,CAAC,UAAU,IAAI,CACrD,MAAM,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,EAClB,IAAI,EAAE,aAAa,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,EAC/B,OAAO,EAAE;IACP,YAAY,EAAE,MAAM,CAAC;CACtB,KACE,OAAO,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC;AAE1B,wBAAgB,QAAQ,CACtB,CAAC,SACG,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,GACxC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,WAAW,CAAC,EAC9B,QAAQ,GAAG,OAAO,EAClB,EACA,UAAU,EACV,QAAQ,EAAE,YAAY,EACtB,MAAM,EACN,iBAAiB,EACjB,IAAI,EACJ,OAAO,EACP,GAAG,KAAK,EACT,EAAE,IAAI,CAAC,KAAK,CAAC,cAAc,CAAC,MAAM,CAAC,EAAE,UAAU,CAAC,GAAG;IAClD,OAAO,CAAC,EAAE,CAAC,CAAC,KAAK,CAAC,OAAO,qBAAqB,CAAC,CAAC,SAAS,CAAC,CAAC;IAC3D,MAAM,EAAE,iBAAiB,CAAC,CAAC,CAAC,EAAE,CAAC;IAC/B,UAAU,EAAE,CAAC,CAAC;IACd,IAAI,CAAC,EAAE,IAAI,CAAC;IACZ,QAAQ,CAAC,EAAE,gBAAgB,CAAC,CAAC,CAAC,CAAC;IAC/B,iBAAiB,CAAC,EAAE,IAAI,CACtB,KAAK,CAAC,cAAc,CAAC,OAAO,MAAM,CAAC,EACnC,WAAW,GAAG,MAAM,CACrB,CAAC;CACH,2CAgEA"}
|
|
@@ -4,11 +4,13 @@ import { zodResolver } from "@hookform/resolvers/zod";
|
|
|
4
4
|
import { useTranslations } from "next-intl";
|
|
5
5
|
import { useForm } from "react-hook-form";
|
|
6
6
|
import { getDefaultValues, getObjectFormSchema } from "../../lib/helpers/auto-form.js";
|
|
7
|
+
import { useCaptcha } from "../../hooks/use-captcha.js";
|
|
7
8
|
import { Button } from "../ui/button.js";
|
|
8
9
|
import { DialogClose, DialogFooter, useDialog } from "../ui/dialog.js";
|
|
9
10
|
import { Form } from "../ui/form.js";
|
|
10
11
|
import { ItemAutoForm } from "./fields/item.js";
|
|
11
|
-
export function AutoForm({ formSchema, onSubmit: onSubmitProp, fields, submitButtonProps, mode, ...props }) {
|
|
12
|
+
export function AutoForm({ formSchema, onSubmit: onSubmitProp, fields, submitButtonProps, mode, captcha, ...props }) {
|
|
13
|
+
const { isReady, getToken: getTokenCaptcha, onReset: onResetCaptcha } = useCaptcha(captcha);
|
|
12
14
|
const { setIsDirty } = useDialog();
|
|
13
15
|
const objectFormSchema = getObjectFormSchema(formSchema);
|
|
14
16
|
const defaultValues = getDefaultValues(objectFormSchema);
|
|
@@ -21,11 +23,16 @@ export function AutoForm({ formSchema, onSubmit: onSubmitProp, fields, submitBut
|
|
|
21
23
|
const onSubmit = async (values)=>{
|
|
22
24
|
const parsedValues = formSchema.safeParse(values);
|
|
23
25
|
if (parsedValues.success) {
|
|
24
|
-
await onSubmitProp?.(parsedValues.data, form
|
|
26
|
+
await onSubmitProp?.(parsedValues.data, form, {
|
|
27
|
+
captchaToken: captcha ? await getTokenCaptcha() : ''
|
|
28
|
+
});
|
|
29
|
+
if (captcha) {
|
|
30
|
+
onResetCaptcha();
|
|
31
|
+
}
|
|
25
32
|
}
|
|
26
33
|
};
|
|
27
34
|
const submitButton = /*#__PURE__*/ _jsx(Button, {
|
|
28
|
-
disabled: !form.formState.isValid || form.formState.isSubmitting,
|
|
35
|
+
disabled: !form.formState.isValid || form.formState.isSubmitting || captcha && !isReady,
|
|
29
36
|
isLoading: form.formState.isSubmitting,
|
|
30
37
|
...submitButtonProps,
|
|
31
38
|
type: "submit",
|
|
@@ -40,6 +47,9 @@ export function AutoForm({ formSchema, onSubmit: onSubmitProp, fields, submitBut
|
|
|
40
47
|
formSchema: formSchema,
|
|
41
48
|
...field
|
|
42
49
|
}, field.id)),
|
|
50
|
+
captcha && /*#__PURE__*/ _jsx("div", {
|
|
51
|
+
id: "vitnode_captcha"
|
|
52
|
+
}),
|
|
43
53
|
setIsDirty ? /*#__PURE__*/ _jsxs(DialogFooter, {
|
|
44
54
|
children: [
|
|
45
55
|
/*#__PURE__*/ _jsx(DialogClose, {
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import type { z } from 'zod';
|
|
2
|
+
import type { routeMiddlewareSchema } from '../api/modules/middleware/route';
|
|
3
|
+
export declare const useCaptcha: (captcha: z.infer<typeof routeMiddlewareSchema>["captcha"]) => {
|
|
4
|
+
isReady: boolean;
|
|
5
|
+
onReset: () => void;
|
|
6
|
+
getToken: () => Promise<string>;
|
|
7
|
+
};
|
|
8
|
+
//# sourceMappingURL=use-captcha.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"use-captcha.d.ts","sourceRoot":"","sources":["../../../src/hooks/use-captcha.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAO7B,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,iCAAiC,CAAC;AAE7E,eAAO,MAAM,UAAU,GACrB,SAAS,CAAC,CAAC,KAAK,CAAC,OAAO,qBAAqB,CAAC,CAAC,SAAS,CAAC;;;oBA0E9B,OAAO,CAAC,MAAM,CAAC;CAkC3C,CAAC"}
|
|
@@ -0,0 +1,94 @@
|
|
|
1
|
+
import { useLocale, useTranslations } from "next-intl";
|
|
2
|
+
import { useTheme } from "next-themes";
|
|
3
|
+
import React from "react";
|
|
4
|
+
import { toast } from "sonner";
|
|
5
|
+
export const useCaptcha = (captcha)=>{
|
|
6
|
+
const t = useTranslations('core.global.errors');
|
|
7
|
+
const locale = useLocale();
|
|
8
|
+
const { resolvedTheme } = useTheme();
|
|
9
|
+
const [isReady, setIsReady] = React.useState(false);
|
|
10
|
+
const [token, setToken] = React.useState('');
|
|
11
|
+
const handleLoaded = ()=>{
|
|
12
|
+
if (!captcha) return;
|
|
13
|
+
const elementId = 'vitnode_captcha';
|
|
14
|
+
if (captcha.type === 'cloudflare_turnstile') {
|
|
15
|
+
// eslint-disable-next-line @typescript-eslint/ban-ts-comment
|
|
16
|
+
// @ts-ignore
|
|
17
|
+
window.turnstile.render(`#${elementId}`, {
|
|
18
|
+
sitekey: captcha.siteKey,
|
|
19
|
+
theme: resolvedTheme,
|
|
20
|
+
language: locale,
|
|
21
|
+
callback: (token)=>{
|
|
22
|
+
setToken(token);
|
|
23
|
+
}
|
|
24
|
+
});
|
|
25
|
+
}
|
|
26
|
+
setIsReady(true);
|
|
27
|
+
};
|
|
28
|
+
const handleError = ()=>{
|
|
29
|
+
toast.error(t('title'), {
|
|
30
|
+
description: t('captcha_internal_error')
|
|
31
|
+
});
|
|
32
|
+
};
|
|
33
|
+
React.useEffect(()=>{
|
|
34
|
+
if (!captcha) return;
|
|
35
|
+
const googleCaptchaDomain = `https://www.google.com/recaptcha/api.js?hl=${locale}`;
|
|
36
|
+
// Load script
|
|
37
|
+
const script = document.createElement('script');
|
|
38
|
+
if (captcha.type === 'cloudflare_turnstile') {
|
|
39
|
+
script.src = 'https://challenges.cloudflare.com/turnstile/v0/api.js';
|
|
40
|
+
} else if (captcha.type === 'recaptcha_v3') {
|
|
41
|
+
script.src = `${googleCaptchaDomain}&render=${captcha.siteKey}`;
|
|
42
|
+
}
|
|
43
|
+
if (!script.src) return;
|
|
44
|
+
document.body.appendChild(script);
|
|
45
|
+
script.addEventListener('load', handleLoaded);
|
|
46
|
+
script.addEventListener('error', handleError);
|
|
47
|
+
return ()=>{
|
|
48
|
+
script.removeEventListener('load', handleLoaded);
|
|
49
|
+
script.removeEventListener('error', handleError);
|
|
50
|
+
document.body.removeChild(script);
|
|
51
|
+
};
|
|
52
|
+
// eslint-disable-next-line react-compiler/react-compiler
|
|
53
|
+
// eslint-disable-next-line react-hooks/exhaustive-deps
|
|
54
|
+
}, []);
|
|
55
|
+
const onReset = ()=>{
|
|
56
|
+
if (!captcha) return;
|
|
57
|
+
if (captcha.type === 'cloudflare_turnstile') {
|
|
58
|
+
// eslint-disable-next-line @typescript-eslint/ban-ts-comment
|
|
59
|
+
// @ts-ignore
|
|
60
|
+
window.turnstile.reset();
|
|
61
|
+
}
|
|
62
|
+
setToken('');
|
|
63
|
+
};
|
|
64
|
+
const getToken = async ()=>{
|
|
65
|
+
if (!captcha) return '';
|
|
66
|
+
if (captcha.type === 'recaptcha_v3') {
|
|
67
|
+
// Captcha
|
|
68
|
+
return new Promise((resolve)=>{
|
|
69
|
+
// eslint-disable-next-line @typescript-eslint/ban-ts-comment
|
|
70
|
+
// @ts-ignore
|
|
71
|
+
window.grecaptcha.ready(async ()=>{
|
|
72
|
+
try {
|
|
73
|
+
// eslint-disable-next-line @typescript-eslint/ban-ts-comment
|
|
74
|
+
// @ts-ignore
|
|
75
|
+
const token = await window.grecaptcha.execute(captcha.siteKey, {
|
|
76
|
+
action: 'submit'
|
|
77
|
+
});
|
|
78
|
+
resolve(token);
|
|
79
|
+
} catch (error) {
|
|
80
|
+
// eslint-disable-next-line no-console
|
|
81
|
+
console.error('Captcha error', error);
|
|
82
|
+
}
|
|
83
|
+
resolve('');
|
|
84
|
+
});
|
|
85
|
+
});
|
|
86
|
+
}
|
|
87
|
+
return token;
|
|
88
|
+
};
|
|
89
|
+
return {
|
|
90
|
+
isReady,
|
|
91
|
+
onReset,
|
|
92
|
+
getToken
|
|
93
|
+
};
|
|
94
|
+
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"get-middleware-api.d.ts","sourceRoot":"","sources":["../../../../src/lib/api/get-middleware-api.ts"],"names":[],"mappings":"AAGA,eAAO,MAAM,gBAAgB
|
|
1
|
+
{"version":3,"file":"get-middleware-api.d.ts","sourceRoot":"","sources":["../../../../src/lib/api/get-middleware-api.ts"],"names":[],"mappings":"AAGA,eAAO,MAAM,gBAAgB;;;;;;;;;;EAW5B,CAAC"}
|
|
@@ -1,7 +1,8 @@
|
|
|
1
1
|
import type { BaseBuildModuleReturn, BuildModuleReturn } from '../api/lib/module';
|
|
2
2
|
import type { Route } from '../api/lib/route';
|
|
3
3
|
import type { FetcherParams, GetModulePaths, GetValidMethodForPath, GetValidPathsForModule, InferResponseType } from './fetcher/types';
|
|
4
|
-
export declare function fetcherClient<M extends string, Routes extends Route[], Modules extends BaseBuildModuleReturn[], ModuleName extends GetModulePaths<M, Modules>, SelectedPath extends GetValidPathsForModule<ModuleName, M, Routes, Modules>, Method extends GetValidMethodForPath<ModuleName, SelectedPath, M, Routes, Modules> = GetValidMethodForPath<ModuleName, SelectedPath, M, Routes, Modules>>(moduleReturn: BuildModuleReturn<string, M, Routes, Modules>, { path, method, module, args, options, withPagination, prefixPath, }: FetcherParams<M, Routes, Modules, ModuleName, SelectedPath, Method> & {
|
|
4
|
+
export declare function fetcherClient<M extends string, Routes extends Route[], Modules extends BaseBuildModuleReturn[], ModuleName extends GetModulePaths<M, Modules>, SelectedPath extends GetValidPathsForModule<ModuleName, M, Routes, Modules>, Method extends GetValidMethodForPath<ModuleName, SelectedPath, M, Routes, Modules> = GetValidMethodForPath<ModuleName, SelectedPath, M, Routes, Modules>>(moduleReturn: BuildModuleReturn<string, M, Routes, Modules>, { path, method, module, args, options, withPagination, prefixPath, captchaToken, }: FetcherParams<M, Routes, Modules, ModuleName, SelectedPath, Method> & {
|
|
5
|
+
captchaToken?: string;
|
|
5
6
|
options?: Omit<RequestInit, 'body'>;
|
|
6
7
|
prefixPath?: string;
|
|
7
8
|
withPagination?: boolean;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"fetcher-client.d.ts","sourceRoot":"","sources":["../../../src/lib/fetcher-client.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,qBAAqB,EACrB,iBAAiB,EAClB,MAAM,kBAAkB,CAAC;AAC1B,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,iBAAiB,CAAC;AAE7C,OAAO,KAAK,EACV,aAAa,EACb,cAAc,EACd,qBAAqB,EACrB,sBAAsB,EACtB,iBAAiB,EAClB,MAAM,iBAAiB,CAAC;AAIzB,wBAAsB,aAAa,CACjC,CAAC,SAAS,MAAM,EAChB,MAAM,SAAS,KAAK,EAAE,EACtB,OAAO,SAAS,qBAAqB,EAAE,EACvC,UAAU,SAAS,cAAc,CAAC,CAAC,EAAE,OAAO,CAAC,EAC7C,YAAY,SAAS,sBAAsB,CAAC,UAAU,EAAE,CAAC,EAAE,MAAM,EAAE,OAAO,CAAC,EAC3E,MAAM,SAAS,qBAAqB,CAClC,UAAU,EACV,YAAY,EACZ,CAAC,EACD,MAAM,EACN,OAAO,CACR,GAAG,qBAAqB,CAAC,UAAU,EAAE,YAAY,EAAE,CAAC,EAAE,MAAM,EAAE,OAAO,CAAC,EAEvE,YAAY,EAAE,iBAAiB,CAAC,MAAM,EAAE,CAAC,EAAE,MAAM,EAAE,OAAO,CAAC,EAC3D,EACE,IAAI,EACJ,MAAM,EACN,MAAM,EACN,IAAI,EACJ,OAAO,EACP,cAAsB,EACtB,UAAe,
|
|
1
|
+
{"version":3,"file":"fetcher-client.d.ts","sourceRoot":"","sources":["../../../src/lib/fetcher-client.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,qBAAqB,EACrB,iBAAiB,EAClB,MAAM,kBAAkB,CAAC;AAC1B,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,iBAAiB,CAAC;AAE7C,OAAO,KAAK,EACV,aAAa,EACb,cAAc,EACd,qBAAqB,EACrB,sBAAsB,EACtB,iBAAiB,EAClB,MAAM,iBAAiB,CAAC;AAIzB,wBAAsB,aAAa,CACjC,CAAC,SAAS,MAAM,EAChB,MAAM,SAAS,KAAK,EAAE,EACtB,OAAO,SAAS,qBAAqB,EAAE,EACvC,UAAU,SAAS,cAAc,CAAC,CAAC,EAAE,OAAO,CAAC,EAC7C,YAAY,SAAS,sBAAsB,CAAC,UAAU,EAAE,CAAC,EAAE,MAAM,EAAE,OAAO,CAAC,EAC3E,MAAM,SAAS,qBAAqB,CAClC,UAAU,EACV,YAAY,EACZ,CAAC,EACD,MAAM,EACN,OAAO,CACR,GAAG,qBAAqB,CAAC,UAAU,EAAE,YAAY,EAAE,CAAC,EAAE,MAAM,EAAE,OAAO,CAAC,EAEvE,YAAY,EAAE,iBAAiB,CAAC,MAAM,EAAE,CAAC,EAAE,MAAM,EAAE,OAAO,CAAC,EAC3D,EACE,IAAI,EACJ,MAAM,EACN,MAAM,EACN,IAAI,EACJ,OAAO,EACP,cAAsB,EACtB,UAAe,EACf,YAAY,GACb,EAAE,aAAa,CAAC,CAAC,EAAE,MAAM,EAAE,OAAO,EAAE,UAAU,EAAE,YAAY,EAAE,MAAM,CAAC,GAAG;IACvE,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,OAAO,CAAC,EAAE,IAAI,CAAC,WAAW,EAAE,MAAM,CAAC,CAAC;IACpC,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,cAAc,CAAC,EAAE,OAAO,CAAC;CAC1B,GACA,OAAO,CACR,iBAAiB,CAAC,CAAC,EAAE,MAAM,EAAE,OAAO,EAAE,UAAU,EAAE,YAAY,EAAE,MAAM,CAAC,CACxE,CAiBA"}
|
|
@@ -1,5 +1,9 @@
|
|
|
1
1
|
import { coreFetcher } from "./fetcher/core.js";
|
|
2
|
-
export async function fetcherClient(moduleReturn, { path, method, module, args, options, withPagination = false, prefixPath = '' }) {
|
|
2
|
+
export async function fetcherClient(moduleReturn, { path, method, module, args, options, withPagination = false, prefixPath = '', captchaToken }) {
|
|
3
|
+
const additionalHeaders = {};
|
|
4
|
+
if (captchaToken) {
|
|
5
|
+
additionalHeaders['x-vitnode-captcha-token'] = captchaToken;
|
|
6
|
+
}
|
|
3
7
|
return coreFetcher(moduleReturn, {
|
|
4
8
|
path,
|
|
5
9
|
method,
|
|
@@ -7,6 +11,7 @@ export async function fetcherClient(moduleReturn, { path, method, module, args,
|
|
|
7
11
|
args,
|
|
8
12
|
options,
|
|
9
13
|
withPagination,
|
|
10
|
-
prefixPath
|
|
14
|
+
prefixPath,
|
|
15
|
+
additionalHeaders
|
|
11
16
|
});
|
|
12
17
|
}
|
|
@@ -2,8 +2,9 @@ import 'server-only';
|
|
|
2
2
|
import type { BaseBuildModuleReturn, BuildModuleReturn } from '../api/lib/module';
|
|
3
3
|
import type { Route } from '../api/lib/route';
|
|
4
4
|
import type { FetcherParams, GetModulePaths, GetValidMethodForPath, GetValidPathsForModule, InferResponseType } from './fetcher/types';
|
|
5
|
-
export declare function fetcher<M extends string, Routes extends Route[], Modules extends BaseBuildModuleReturn[], ModuleName extends GetModulePaths<M, Modules>, SelectedPath extends GetValidPathsForModule<ModuleName, M, Routes, Modules>, Method extends GetValidMethodForPath<ModuleName, SelectedPath, M, Routes, Modules> = GetValidMethodForPath<ModuleName, SelectedPath, M, Routes, Modules>>(moduleReturn: BuildModuleReturn<string, M, Routes, Modules>, { path, method, module, args, options, allowSaveCookies, withPagination, prefixPath, }: FetcherParams<M, Routes, Modules, ModuleName, SelectedPath, Method> & {
|
|
5
|
+
export declare function fetcher<M extends string, Routes extends Route[], Modules extends BaseBuildModuleReturn[], ModuleName extends GetModulePaths<M, Modules>, SelectedPath extends GetValidPathsForModule<ModuleName, M, Routes, Modules>, Method extends GetValidMethodForPath<ModuleName, SelectedPath, M, Routes, Modules> = GetValidMethodForPath<ModuleName, SelectedPath, M, Routes, Modules>>(moduleReturn: BuildModuleReturn<string, M, Routes, Modules>, { path, method, module, args, options, allowSaveCookies, withPagination, prefixPath, captchaToken, }: FetcherParams<M, Routes, Modules, ModuleName, SelectedPath, Method> & {
|
|
6
6
|
allowSaveCookies?: boolean;
|
|
7
|
+
captchaToken?: string;
|
|
7
8
|
options?: Omit<RequestInit, 'body'>;
|
|
8
9
|
prefixPath?: string;
|
|
9
10
|
withPagination?: boolean;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"fetcher.d.ts","sourceRoot":"","sources":["../../../src/lib/fetcher.ts"],"names":[],"mappings":"AAAA,OAAO,aAAa,CAAC;AAGrB,OAAO,KAAK,EACV,qBAAqB,EACrB,iBAAiB,EAClB,MAAM,kBAAkB,CAAC;AAC1B,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,iBAAiB,CAAC;AAE7C,OAAO,KAAK,EACV,aAAa,EACb,cAAc,EACd,qBAAqB,EACrB,sBAAsB,EACtB,iBAAiB,EAClB,MAAM,iBAAiB,CAAC;AAKzB,wBAAsB,OAAO,CAC3B,CAAC,SAAS,MAAM,EAChB,MAAM,SAAS,KAAK,EAAE,EACtB,OAAO,SAAS,qBAAqB,EAAE,EACvC,UAAU,SAAS,cAAc,CAAC,CAAC,EAAE,OAAO,CAAC,EAC7C,YAAY,SAAS,sBAAsB,CAAC,UAAU,EAAE,CAAC,EAAE,MAAM,EAAE,OAAO,CAAC,EAC3E,MAAM,SAAS,qBAAqB,CAClC,UAAU,EACV,YAAY,EACZ,CAAC,EACD,MAAM,EACN,OAAO,CACR,GAAG,qBAAqB,CAAC,UAAU,EAAE,YAAY,EAAE,CAAC,EAAE,MAAM,EAAE,OAAO,CAAC,EAEvE,YAAY,EAAE,iBAAiB,CAAC,MAAM,EAAE,CAAC,EAAE,MAAM,EAAE,OAAO,CAAC,EAC3D,EACE,IAAI,EACJ,MAAM,EACN,MAAM,EACN,IAAI,EACJ,OAAO,EACP,gBAAwB,EACxB,cAAsB,EACtB,UAAe,
|
|
1
|
+
{"version":3,"file":"fetcher.d.ts","sourceRoot":"","sources":["../../../src/lib/fetcher.ts"],"names":[],"mappings":"AAAA,OAAO,aAAa,CAAC;AAGrB,OAAO,KAAK,EACV,qBAAqB,EACrB,iBAAiB,EAClB,MAAM,kBAAkB,CAAC;AAC1B,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,iBAAiB,CAAC;AAE7C,OAAO,KAAK,EACV,aAAa,EACb,cAAc,EACd,qBAAqB,EACrB,sBAAsB,EACtB,iBAAiB,EAClB,MAAM,iBAAiB,CAAC;AAKzB,wBAAsB,OAAO,CAC3B,CAAC,SAAS,MAAM,EAChB,MAAM,SAAS,KAAK,EAAE,EACtB,OAAO,SAAS,qBAAqB,EAAE,EACvC,UAAU,SAAS,cAAc,CAAC,CAAC,EAAE,OAAO,CAAC,EAC7C,YAAY,SAAS,sBAAsB,CAAC,UAAU,EAAE,CAAC,EAAE,MAAM,EAAE,OAAO,CAAC,EAC3E,MAAM,SAAS,qBAAqB,CAClC,UAAU,EACV,YAAY,EACZ,CAAC,EACD,MAAM,EACN,OAAO,CACR,GAAG,qBAAqB,CAAC,UAAU,EAAE,YAAY,EAAE,CAAC,EAAE,MAAM,EAAE,OAAO,CAAC,EAEvE,YAAY,EAAE,iBAAiB,CAAC,MAAM,EAAE,CAAC,EAAE,MAAM,EAAE,OAAO,CAAC,EAC3D,EACE,IAAI,EACJ,MAAM,EACN,MAAM,EACN,IAAI,EACJ,OAAO,EACP,gBAAwB,EACxB,cAAsB,EACtB,UAAe,EACf,YAAY,GACb,EAAE,aAAa,CAAC,CAAC,EAAE,MAAM,EAAE,OAAO,EAAE,UAAU,EAAE,YAAY,EAAE,MAAM,CAAC,GAAG;IACvE,gBAAgB,CAAC,EAAE,OAAO,CAAC;IAC3B,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,OAAO,CAAC,EAAE,IAAI,CAAC,WAAW,EAAE,MAAM,CAAC,CAAC;IACpC,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,cAAc,CAAC,EAAE,OAAO,CAAC;CAC1B,GACA,OAAO,CACR,iBAAiB,CAAC,CAAC,EAAE,MAAM,EAAE,OAAO,EAAE,UAAU,EAAE,YAAY,EAAE,MAAM,CAAC,CACxE,CAsCA"}
|
package/dist/src/lib/fetcher.js
CHANGED
|
@@ -2,11 +2,19 @@ import "server-only";
|
|
|
2
2
|
import { cookies, headers } from "next/headers";
|
|
3
3
|
import { coreFetcher } from "./fetcher/core.js";
|
|
4
4
|
import { handleSetCookiesFetcher } from "./fetcher/helpers-server.js";
|
|
5
|
-
export async function fetcher(moduleReturn, { path, method, module, args, options, allowSaveCookies = false, withPagination = false, prefixPath = '' }) {
|
|
5
|
+
export async function fetcher(moduleReturn, { path, method, module, args, options, allowSaveCookies = false, withPagination = false, prefixPath = '', captchaToken }) {
|
|
6
6
|
const [nextInternalHeaders, cookie] = await Promise.all([
|
|
7
7
|
headers(),
|
|
8
8
|
cookies()
|
|
9
9
|
]);
|
|
10
|
+
const additionalHeaders = {
|
|
11
|
+
Cookie: cookie.toString(),
|
|
12
|
+
['user-agent']: nextInternalHeaders.get('user-agent') ?? 'node',
|
|
13
|
+
['x-forwarded-for']: nextInternalHeaders.get('x-forwarded-for') ?? '0.0.0.0'
|
|
14
|
+
};
|
|
15
|
+
if (captchaToken) {
|
|
16
|
+
additionalHeaders['x-vitnode-captcha-token'] = captchaToken;
|
|
17
|
+
}
|
|
10
18
|
const response = await coreFetcher(moduleReturn, {
|
|
11
19
|
path,
|
|
12
20
|
method,
|
|
@@ -15,11 +23,7 @@ export async function fetcher(moduleReturn, { path, method, module, args, option
|
|
|
15
23
|
options,
|
|
16
24
|
withPagination,
|
|
17
25
|
prefixPath,
|
|
18
|
-
additionalHeaders
|
|
19
|
-
Cookie: cookie.toString(),
|
|
20
|
-
['user-agent']: nextInternalHeaders.get('user-agent') ?? 'node',
|
|
21
|
-
['x-forwarded-for']: nextInternalHeaders.get('x-forwarded-for') ?? '0.0.0.0'
|
|
22
|
-
}
|
|
26
|
+
additionalHeaders
|
|
23
27
|
});
|
|
24
28
|
// Handle cookies on server-side for successful responses
|
|
25
29
|
if (response.status >= 200 && response.status < 300 && allowSaveCookies) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"item.d.ts","sourceRoot":"","sources":["../../../../../../../src/views/admin/layouts/sidebar/nav/item.tsx"],"names":[],"mappings":"AAoBA,UAAU,iBAAiB;IACzB,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IACvB,cAAc,CAAC,EAAE,OAAO,CAAC;IACzB,KAAK,EAAE,MAAM,CAAC;CACf;AAED,eAAO,MAAM,YAAY,GAAI,+CAM1B,iBAAiB,GAAG;IACrB,KAAK,CAAC,EAAE,IAAI,CAAC,iBAAiB,EAAE,MAAM,CAAC,EAAE,CAAC;CAC3C,
|
|
1
|
+
{"version":3,"file":"item.d.ts","sourceRoot":"","sources":["../../../../../../../src/views/admin/layouts/sidebar/nav/item.tsx"],"names":[],"mappings":"AAoBA,UAAU,iBAAiB;IACzB,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IACvB,cAAc,CAAC,EAAE,OAAO,CAAC;IACzB,KAAK,EAAE,MAAM,CAAC;CACf;AAED,eAAO,MAAM,YAAY,GAAI,+CAM1B,iBAAiB,GAAG;IACrB,KAAK,CAAC,EAAE,IAAI,CAAC,iBAAiB,EAAE,MAAM,CAAC,EAAE,CAAC;CAC3C,4CAqHA,CAAC"}
|