vona-module-a-captcha 5.1.17 → 5.1.19
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/cli/captchaProvider/boilerplate/{{sceneName}}.{{beanName}}.ts_ +11 -3
- package/dist/.metadata/index.d.ts +61 -61
- package/dist/.metadata/index.d.ts.map +1 -1
- package/dist/bean/bean.captcha.d.ts +6 -9
- package/dist/bean/bean.captcha.d.ts.map +1 -1
- package/dist/bean/cacheRedis.captcha.d.ts +12 -32
- package/dist/bean/cacheRedis.captcha.d.ts.map +1 -1
- package/dist/controller/captcha.d.ts +2 -2
- package/dist/controller/captcha.d.ts.map +1 -1
- package/dist/dto/captchaData.d.ts +5 -0
- package/dist/dto/captchaData.d.ts.map +1 -1
- package/dist/index.js +164 -455
- package/dist/index.js.map +1 -1
- package/dist/lib/captchaLua.d.ts +2 -3
- package/dist/lib/captchaLua.d.ts.map +1 -1
- package/dist/types/captcha.d.ts +3 -13
- package/dist/types/captcha.d.ts.map +1 -1
- package/dist/types/captchaProvider.d.ts +18 -31
- package/dist/types/captchaProvider.d.ts.map +1 -1
- package/package.json +2 -2
- package/src/.metadata/index.ts +78 -78
- package/src/bean/bean.captcha.ts +61 -250
- package/src/bean/cacheRedis.captcha.ts +25 -159
- package/src/controller/captcha.ts +13 -4
- package/src/dto/captchaData.ts +21 -0
- package/src/lib/captchaLua.ts +20 -64
- package/src/types/captcha.ts +3 -13
- package/src/types/captchaProvider.ts +28 -39
|
@@ -2,7 +2,7 @@ import type { ICaptchaProviderData, ICaptchaProviderExecute, IDecoratorCaptchaPr
|
|
|
2
2
|
import { BeanBase } from 'vona';
|
|
3
3
|
import { CaptchaProvider } from 'vona-module-a-captcha';
|
|
4
4
|
|
|
5
|
-
export type TypeCaptchaProvider<%=argv.beanNameCapitalize%>Token =
|
|
5
|
+
export type TypeCaptchaProvider<%=argv.beanNameCapitalize%>Token = string;
|
|
6
6
|
export type TypeCaptchaProvider<%=argv.beanNameCapitalize%>Payload = any;
|
|
7
7
|
export type TypeCaptchaProvider<%=argv.beanNameCapitalize%>Data = ICaptchaProviderData<TypeCaptchaProvider<%=argv.beanNameCapitalize%>Token, TypeCaptchaProvider<%=argv.beanNameCapitalize%>Payload>;
|
|
8
8
|
|
|
@@ -11,15 +11,23 @@ export interface ICaptchaProviderOptions<%=argv.beanNameCapitalize%> extends IDe
|
|
|
11
11
|
@CaptchaProvider<ICaptchaProviderOptions<%=argv.beanNameCapitalize%>>()
|
|
12
12
|
export class CaptchaProvider<%=argv.beanNameCapitalize%>
|
|
13
13
|
extends BeanBase implements ICaptchaProviderExecute<TypeCaptchaProvider<%=argv.beanNameCapitalize%>Token, TypeCaptchaProvider<%=argv.beanNameCapitalize%>Payload> {
|
|
14
|
-
async create(
|
|
14
|
+
async create(
|
|
15
|
+
_options: ICaptchaProviderOptions<%=argv.beanNameCapitalize%>,
|
|
16
|
+
_payload?: unknown,
|
|
17
|
+
_previousToken?: TypeCaptchaProvider<%=argv.beanNameCapitalize%>Token,
|
|
18
|
+
): Promise<TypeCaptchaProvider<%=argv.beanNameCapitalize%>Data> {
|
|
19
|
+
// Store provider-owned proof state; return its opaque reference and absolute expiresAt.
|
|
20
|
+
// Supply tokenPublic separately when debug disclosure is appropriate.
|
|
15
21
|
throw new Error('Not Implemented');
|
|
16
22
|
}
|
|
17
23
|
|
|
18
24
|
async verify(
|
|
19
25
|
_token: TypeCaptchaProvider<%=argv.beanNameCapitalize%>Token,
|
|
20
|
-
_tokenInput:
|
|
26
|
+
_tokenInput: unknown,
|
|
21
27
|
_options: ICaptchaProviderOptions<%=argv.beanNameCapitalize%>,
|
|
28
|
+
_payload?: unknown,
|
|
22
29
|
): Promise<boolean> {
|
|
30
|
+
// Return true only after verification and one-time consumption atomically commit.
|
|
23
31
|
return false;
|
|
24
32
|
}
|
|
25
33
|
}
|
|
@@ -1,5 +1,66 @@
|
|
|
1
1
|
import type { TypeSymbolKeyFieldsMore } from 'vona-module-a-orm';
|
|
2
2
|
import type { TypeEntityOptionsFields, TypeControllerOptionsActions } from 'vona-module-a-openapi';
|
|
3
|
+
/** dto: begin */
|
|
4
|
+
export * from '../dto/captchaData.ts';
|
|
5
|
+
export * from '../dto/captchaVerify.ts';
|
|
6
|
+
import type { IDtoOptionsCaptchaData } from '../dto/captchaData.ts';
|
|
7
|
+
import type { IDtoOptionsCaptchaVerify } from '../dto/captchaVerify.ts';
|
|
8
|
+
import 'vona-module-a-web';
|
|
9
|
+
declare module 'vona-module-a-web' {
|
|
10
|
+
interface IDtoRecord {
|
|
11
|
+
'a-captcha:captchaData': IDtoOptionsCaptchaData;
|
|
12
|
+
'a-captcha:captchaVerify': IDtoOptionsCaptchaVerify;
|
|
13
|
+
}
|
|
14
|
+
}
|
|
15
|
+
declare module 'vona-module-a-captcha' {
|
|
16
|
+
}
|
|
17
|
+
/** dto: end */
|
|
18
|
+
/** dto: begin */
|
|
19
|
+
import type { DtoCaptchaData } from '../dto/captchaData.ts';
|
|
20
|
+
import type { DtoCaptchaVerify } from '../dto/captchaVerify.ts';
|
|
21
|
+
declare module 'vona-module-a-captcha' {
|
|
22
|
+
interface IDtoOptionsCaptchaData {
|
|
23
|
+
fields?: TypeEntityOptionsFields<DtoCaptchaData, IDtoOptionsCaptchaData[TypeSymbolKeyFieldsMore]>;
|
|
24
|
+
}
|
|
25
|
+
interface IDtoOptionsCaptchaVerify {
|
|
26
|
+
fields?: TypeEntityOptionsFields<DtoCaptchaVerify, IDtoOptionsCaptchaVerify[TypeSymbolKeyFieldsMore]>;
|
|
27
|
+
}
|
|
28
|
+
}
|
|
29
|
+
/** dto: end */
|
|
30
|
+
/** controller: begin */
|
|
31
|
+
export * from '../controller/captcha.ts';
|
|
32
|
+
import type { IControllerOptionsCaptcha } from '../controller/captcha.ts';
|
|
33
|
+
import 'vona-module-a-web';
|
|
34
|
+
declare module 'vona-module-a-web' {
|
|
35
|
+
interface IControllerRecord {
|
|
36
|
+
'a-captcha:captcha': IControllerOptionsCaptcha;
|
|
37
|
+
}
|
|
38
|
+
}
|
|
39
|
+
declare module 'vona-module-a-captcha' {
|
|
40
|
+
interface ControllerCaptcha {
|
|
41
|
+
}
|
|
42
|
+
interface ControllerCaptcha {
|
|
43
|
+
get $beanFullName(): 'a-captcha.controller.captcha';
|
|
44
|
+
get $onionName(): 'a-captcha:captcha';
|
|
45
|
+
get $onionOptions(): IControllerOptionsCaptcha;
|
|
46
|
+
}
|
|
47
|
+
}
|
|
48
|
+
/** controller: end */
|
|
49
|
+
/** controller: begin */
|
|
50
|
+
import '../controller/captcha.ts';
|
|
51
|
+
declare module 'vona-module-a-captcha' {
|
|
52
|
+
interface IControllerOptionsCaptcha {
|
|
53
|
+
actions?: TypeControllerOptionsActions<ControllerCaptcha>;
|
|
54
|
+
}
|
|
55
|
+
}
|
|
56
|
+
declare module 'vona-module-a-web' {
|
|
57
|
+
interface IApiPathPostRecord {
|
|
58
|
+
'/captcha/create': undefined;
|
|
59
|
+
'/captcha/refresh': undefined;
|
|
60
|
+
'/captcha/verifyImmediate': undefined;
|
|
61
|
+
}
|
|
62
|
+
}
|
|
63
|
+
/** controller: end */
|
|
3
64
|
/** interceptor: begin */
|
|
4
65
|
export * from '../bean/interceptor.captchaVerify.ts';
|
|
5
66
|
import type { IInterceptorOptionsCaptchaVerify } from '../bean/interceptor.captchaVerify.ts';
|
|
@@ -87,67 +148,6 @@ declare module 'vona-module-a-captcha' {
|
|
|
87
148
|
}
|
|
88
149
|
}
|
|
89
150
|
/** hmr: end */
|
|
90
|
-
/** dto: begin */
|
|
91
|
-
export * from '../dto/captchaData.ts';
|
|
92
|
-
export * from '../dto/captchaVerify.ts';
|
|
93
|
-
import type { IDtoOptionsCaptchaData } from '../dto/captchaData.ts';
|
|
94
|
-
import type { IDtoOptionsCaptchaVerify } from '../dto/captchaVerify.ts';
|
|
95
|
-
import 'vona-module-a-web';
|
|
96
|
-
declare module 'vona-module-a-web' {
|
|
97
|
-
interface IDtoRecord {
|
|
98
|
-
'a-captcha:captchaData': IDtoOptionsCaptchaData;
|
|
99
|
-
'a-captcha:captchaVerify': IDtoOptionsCaptchaVerify;
|
|
100
|
-
}
|
|
101
|
-
}
|
|
102
|
-
declare module 'vona-module-a-captcha' {
|
|
103
|
-
}
|
|
104
|
-
/** dto: end */
|
|
105
|
-
/** dto: begin */
|
|
106
|
-
import type { DtoCaptchaData } from '../dto/captchaData.ts';
|
|
107
|
-
import type { DtoCaptchaVerify } from '../dto/captchaVerify.ts';
|
|
108
|
-
declare module 'vona-module-a-captcha' {
|
|
109
|
-
interface IDtoOptionsCaptchaData {
|
|
110
|
-
fields?: TypeEntityOptionsFields<DtoCaptchaData, IDtoOptionsCaptchaData[TypeSymbolKeyFieldsMore]>;
|
|
111
|
-
}
|
|
112
|
-
interface IDtoOptionsCaptchaVerify {
|
|
113
|
-
fields?: TypeEntityOptionsFields<DtoCaptchaVerify, IDtoOptionsCaptchaVerify[TypeSymbolKeyFieldsMore]>;
|
|
114
|
-
}
|
|
115
|
-
}
|
|
116
|
-
/** dto: end */
|
|
117
|
-
/** controller: begin */
|
|
118
|
-
export * from '../controller/captcha.ts';
|
|
119
|
-
import type { IControllerOptionsCaptcha } from '../controller/captcha.ts';
|
|
120
|
-
import 'vona-module-a-web';
|
|
121
|
-
declare module 'vona-module-a-web' {
|
|
122
|
-
interface IControllerRecord {
|
|
123
|
-
'a-captcha:captcha': IControllerOptionsCaptcha;
|
|
124
|
-
}
|
|
125
|
-
}
|
|
126
|
-
declare module 'vona-module-a-captcha' {
|
|
127
|
-
interface ControllerCaptcha {
|
|
128
|
-
}
|
|
129
|
-
interface ControllerCaptcha {
|
|
130
|
-
get $beanFullName(): 'a-captcha.controller.captcha';
|
|
131
|
-
get $onionName(): 'a-captcha:captcha';
|
|
132
|
-
get $onionOptions(): IControllerOptionsCaptcha;
|
|
133
|
-
}
|
|
134
|
-
}
|
|
135
|
-
/** controller: end */
|
|
136
|
-
/** controller: begin */
|
|
137
|
-
import '../controller/captcha.ts';
|
|
138
|
-
declare module 'vona-module-a-captcha' {
|
|
139
|
-
interface IControllerOptionsCaptcha {
|
|
140
|
-
actions?: TypeControllerOptionsActions<ControllerCaptcha>;
|
|
141
|
-
}
|
|
142
|
-
}
|
|
143
|
-
declare module 'vona-module-a-web' {
|
|
144
|
-
interface IApiPathPostRecord {
|
|
145
|
-
'/captcha/create': undefined;
|
|
146
|
-
'/captcha/refresh': undefined;
|
|
147
|
-
'/captcha/verifyImmediate': undefined;
|
|
148
|
-
}
|
|
149
|
-
}
|
|
150
|
-
/** controller: end */
|
|
151
151
|
/** config: begin */
|
|
152
152
|
export * from '../config/config.ts';
|
|
153
153
|
import type { config } from '../config/config.ts';
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/.metadata/index.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,mBAAmB,CAAC;AACjE,OAAO,KAAK,EAAE,uBAAuB,EAAC,4BAA4B,EAAE,MAAM,uBAAuB,CAAC;AAClG,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/.metadata/index.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,17 +1,14 @@
|
|
|
1
1
|
import { BeanBase } from 'vona';
|
|
2
|
-
import type { ICaptchaData
|
|
2
|
+
import type { ICaptchaData } from '../types/captcha.ts';
|
|
3
3
|
import type { ICaptchaSceneRecord } from '../types/captchaScene.ts';
|
|
4
4
|
export declare class BeanCaptcha extends BeanBase {
|
|
5
|
-
create(sceneName: keyof ICaptchaSceneRecord,
|
|
6
|
-
private
|
|
7
|
-
refresh(id: string, sceneName: keyof ICaptchaSceneRecord): Promise<ICaptchaData>;
|
|
8
|
-
verify(id: string, token: unknown, sceneName: keyof ICaptchaSceneRecord,
|
|
9
|
-
private _verifyBound;
|
|
5
|
+
create(sceneName: keyof ICaptchaSceneRecord, payload?: unknown): Promise<ICaptchaData>;
|
|
6
|
+
private _create;
|
|
7
|
+
refresh(id: string | undefined, sceneName: keyof ICaptchaSceneRecord, payload?: unknown): Promise<ICaptchaData>;
|
|
8
|
+
verify(id: string, token: unknown, sceneName: keyof ICaptchaSceneRecord, payload?: unknown): Promise<boolean>;
|
|
10
9
|
verifyImmediate(id: string, token: unknown): Promise<false | string>;
|
|
11
|
-
getCaptchaData(id: string): Promise<ICaptchaDataCache | undefined>;
|
|
10
|
+
getCaptchaData(id: string): Promise<import("../types/captcha.ts").ICaptchaDataCache | undefined>;
|
|
12
11
|
updateCaptchaToken(id: string, token: unknown): Promise<undefined>;
|
|
13
|
-
private _authorize;
|
|
14
|
-
private _bindingMatches;
|
|
15
12
|
private _getProviderInstance;
|
|
16
13
|
private _getProviderOptions;
|
|
17
14
|
private _resolveProvider;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"bean.captcha.d.ts","sourceRoot":"","sources":["../../src/bean/bean.captcha.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,QAAQ,EAAqC,MAAM,MAAM,CAAC;AAGnE,OAAO,KAAK,EAAE,YAAY,EAAE,
|
|
1
|
+
{"version":3,"file":"bean.captcha.d.ts","sourceRoot":"","sources":["../../src/bean/bean.captcha.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,QAAQ,EAAqC,MAAM,MAAM,CAAC;AAGnE,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC;AAMxD,OAAO,KAAK,EAGV,mBAAmB,EACpB,MAAM,0BAA0B,CAAC;AAElC,qBACa,WAAY,SAAQ,QAAQ;IACjC,MAAM,CAAC,SAAS,EAAE,MAAM,mBAAmB,EAAE,OAAO,CAAC,EAAE,OAAO,GAAG,OAAO,CAAC,YAAY,CAAC;YAU9E,OAAO;IA2Bf,OAAO,CACX,EAAE,EAAE,MAAM,GAAG,SAAS,EACtB,SAAS,EAAE,MAAM,mBAAmB,EACpC,OAAO,CAAC,EAAE,OAAO,GAChB,OAAO,CAAC,YAAY,CAAC;IAmBlB,MAAM,CACV,EAAE,EAAE,MAAM,EACV,KAAK,EAAE,OAAO,EACd,SAAS,EAAE,MAAM,mBAAmB,EACpC,OAAO,CAAC,EAAE,OAAO,GAChB,OAAO,CAAC,OAAO,CAAC;IAQb,eAAe,CAAC,EAAE,EAAE,MAAM,EAAE,KAAK,EAAE,OAAO,GAAG,OAAO,CAAC,KAAK,GAAG,MAAM,CAAC;IASpE,cAAc,CAAC,EAAE,EAAE,MAAM;IAIzB,kBAAkB,CAAC,EAAE,EAAE,MAAM,EAAE,KAAK,EAAE,OAAO;IAYnD,OAAO,CAAC,oBAAoB;IAK5B,OAAO,CAAC,mBAAmB;YAOb,gBAAgB;IAY9B,OAAO,CAAC,aAAa;IAOrB,OAAO,CAAC,iBAAiB;CAmB1B"}
|
|
@@ -1,44 +1,24 @@
|
|
|
1
1
|
import { ServiceCacheRedisBase } from 'vona-module-a-cache';
|
|
2
2
|
import type { ICaptchaDataCache } from '../types/captcha.ts';
|
|
3
|
-
import type { ICaptchaAuthorization } from '../types/captchaProvider.ts';
|
|
4
3
|
export type TCacheRedisCaptchaKey = string;
|
|
5
4
|
export type TCacheRedisCaptchaData = ICaptchaDataCache;
|
|
6
|
-
export interface ICaptchaSnapshot {
|
|
5
|
+
export interface ICaptchaSnapshot<T = ICaptchaDataCache> {
|
|
7
6
|
raw: string;
|
|
8
|
-
data:
|
|
7
|
+
data: T;
|
|
9
8
|
}
|
|
10
9
|
export declare class CacheRedisCaptcha extends ServiceCacheRedisBase<TCacheRedisCaptchaKey, TCacheRedisCaptchaData> {
|
|
11
|
-
snapshot(id: string): Promise<ICaptchaSnapshot | undefined>;
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
boundKeys(authorization: Pick<ICaptchaAuthorization, 'scope' | 'ip' | 'recipientLimits' | 'ipLimits'>): {
|
|
17
|
-
pointer: string;
|
|
18
|
-
cooldown: string;
|
|
19
|
-
budgets: string[];
|
|
20
|
-
};
|
|
21
|
-
reserveBound(id: string, data: ICaptchaDataCache, authorization: ICaptchaAuthorization): Promise<{
|
|
22
|
-
reserved: false;
|
|
23
|
-
retryAt: number;
|
|
24
|
-
resendAt: number;
|
|
25
|
-
snapshot?: undefined;
|
|
26
|
-
} | {
|
|
27
|
-
reserved: true;
|
|
28
|
-
snapshot: {
|
|
29
|
-
raw: string;
|
|
30
|
-
data: ICaptchaDataCache;
|
|
31
|
-
};
|
|
32
|
-
retryAt?: undefined;
|
|
33
|
-
resendAt?: undefined;
|
|
10
|
+
snapshot<T = ICaptchaDataCache>(id: string): Promise<ICaptchaSnapshot<T> | undefined>;
|
|
11
|
+
writeProof<T>(id: string, data: T, ttl: number, snapshot?: ICaptchaSnapshot<T>): Promise<{
|
|
12
|
+
changed: boolean;
|
|
13
|
+
serverNow: number;
|
|
14
|
+
expiresAt: number;
|
|
34
15
|
}>;
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
16
|
+
publish(id: string, data: ICaptchaDataCache, expiresAt: number): Promise<{
|
|
17
|
+
published: boolean;
|
|
18
|
+
serverNow: number;
|
|
19
|
+
}>;
|
|
20
|
+
compareAndSet<T>(id: string, snapshot: ICaptchaSnapshot<T>, data?: T, ttl?: number): Promise<boolean>;
|
|
40
21
|
private _validateTtl;
|
|
41
|
-
private _validateBoundId;
|
|
42
22
|
private _redisKeys;
|
|
43
23
|
private _eval;
|
|
44
24
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cacheRedis.captcha.d.ts","sourceRoot":"","sources":["../../src/bean/cacheRedis.captcha.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"cacheRedis.captcha.d.ts","sourceRoot":"","sources":["../../src/bean/cacheRedis.captcha.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,qBAAqB,EAAc,MAAM,qBAAqB,CAAC;AAExE,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAC;AAI7D,MAAM,MAAM,qBAAqB,GAAG,MAAM,CAAC;AAC3C,MAAM,MAAM,sBAAsB,GAAG,iBAAiB,CAAC;AAEvD,MAAM,WAAW,gBAAgB,CAAC,CAAC,GAAG,iBAAiB;IACrD,GAAG,EAAE,MAAM,CAAC;IACZ,IAAI,EAAE,CAAC,CAAC;CACT;AAED,qBACa,iBAAkB,SAAQ,qBAAqB,CAC1D,qBAAqB,EACrB,sBAAsB,CACvB;IACO,QAAQ,CAAC,CAAC,GAAG,iBAAiB,EAAE,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,gBAAgB,CAAC,CAAC,CAAC,GAAG,SAAS,CAAC;IAMrF,UAAU,CAAC,CAAC,EAAE,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC,EAAE,GAAG,EAAE,MAAM,EAAE,QAAQ,CAAC,EAAE,gBAAgB,CAAC,CAAC,CAAC;;;;;IAU9E,OAAO,CAAC,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,iBAAiB,EAAE,SAAS,EAAE,MAAM;;;;IAa9D,aAAa,CAAC,CAAC,EAAE,EAAE,EAAE,MAAM,EAAE,QAAQ,EAAE,gBAAgB,CAAC,CAAC,CAAC,EAAE,IAAI,CAAC,EAAE,CAAC,EAAE,GAAG,CAAC,EAAE,MAAM;IAUxF,OAAO,CAAC,YAAY;IAMpB,OAAO,CAAC,UAAU;YAMJ,KAAK;CAIpB"}
|
|
@@ -3,8 +3,8 @@ import { BeanBase } from 'vona';
|
|
|
3
3
|
export interface IControllerOptionsCaptcha extends IDecoratorControllerOptions {
|
|
4
4
|
}
|
|
5
5
|
export declare class ControllerCaptcha extends BeanBase {
|
|
6
|
-
create(scene: string): Promise<import("vona-module-a-captcha").ICaptchaData>;
|
|
7
|
-
refresh(id: string, scene: string): Promise<import("vona-module-a-captcha").ICaptchaData>;
|
|
6
|
+
create(scene: string, payload?: unknown): Promise<import("vona-module-a-captcha").ICaptchaData>;
|
|
7
|
+
refresh(id: string | undefined, scene: string, payload?: unknown): Promise<import("vona-module-a-captcha").ICaptchaData>;
|
|
8
8
|
verifyImmediate(id: string, token: unknown): Promise<string>;
|
|
9
9
|
}
|
|
10
10
|
//# sourceMappingURL=captcha.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"captcha.d.ts","sourceRoot":"","sources":["../../src/controller/captcha.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,2BAA2B,EAAE,MAAM,mBAAmB,CAAC;AAErE,OAAO,EAAE,QAAQ,EAAE,MAAM,MAAM,CAAC;AAQhC,MAAM,WAAW,yBAA0B,SAAQ,2BAA2B;CAAG;AAEjF,qBACa,iBAAkB,SAAQ,QAAQ;IAIvC,MAAM,
|
|
1
|
+
{"version":3,"file":"captcha.d.ts","sourceRoot":"","sources":["../../src/controller/captcha.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,2BAA2B,EAAE,MAAM,mBAAmB,CAAC;AAErE,OAAO,EAAE,QAAQ,EAAE,MAAM,MAAM,CAAC;AAQhC,MAAM,WAAW,yBAA0B,SAAQ,2BAA2B;CAAG;AAEjF,qBACa,iBAAkB,SAAQ,QAAQ;IAIvC,MAAM,CACS,KAAK,EAAE,MAAM,EACa,OAAO,CAAC,EAAE,OAAO;IAS1D,OAAO,CAC4B,EAAE,EAAE,MAAM,GAAG,SAAS,EAC1C,KAAK,EAAE,MAAM,EACa,OAAO,CAAC,EAAE,OAAO;IAS1D,eAAe,CACH,EAAE,EAAE,MAAM,EACP,KAAK,EAAE,OAAO,GAChC,OAAO,CAAC,MAAM,CAAC;CAKnB"}
|
|
@@ -7,5 +7,10 @@ export declare class DtoCaptchaData {
|
|
|
7
7
|
provider: keyof ICaptchaProviderRecord;
|
|
8
8
|
token?: unknown;
|
|
9
9
|
payload: unknown;
|
|
10
|
+
status?: 'accepted' | 'rejected' | 'unknown' | 'limited';
|
|
11
|
+
serverNow?: number;
|
|
12
|
+
expiresAt?: number;
|
|
13
|
+
resendAt?: number;
|
|
14
|
+
retryAt?: number;
|
|
10
15
|
}
|
|
11
16
|
//# sourceMappingURL=captchaData.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"captchaData.d.ts","sourceRoot":"","sources":["../../src/dto/captchaData.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,mBAAmB,CAAC;AAM9D,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,6BAA6B,CAAC;AAE1E,MAAM,WAAW,sBAAuB,SAAQ,oBAAoB;CAAG;
|
|
1
|
+
{"version":3,"file":"captchaData.d.ts","sourceRoot":"","sources":["../../src/dto/captchaData.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,mBAAmB,CAAC;AAM9D,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,6BAA6B,CAAC;AAE1E,MAAM,WAAW,sBAAuB,SAAQ,oBAAoB;CAAG;AAIvE,qBACa,cAAc;IAEzB,EAAE,EAAE,MAAM,CAAC;IAGX,QAAQ,EAAE,MAAM,sBAAsB,CAAC;IAGvC,KAAK,CAAC,EAAE,OAAO,CAAC;IAGhB,OAAO,EAAE,OAAO,CAAC;IAOjB,MAAM,CAAC,EAAE,UAAU,GAAG,UAAU,GAAG,SAAS,GAAG,SAAS,CAAC;IAGzD,SAAS,CAAC,EAAE,MAAM,CAAC;IAGnB,SAAS,CAAC,EAAE,MAAM,CAAC;IAGnB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAGlB,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB"}
|