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.
@@ -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 = any;
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(_options: ICaptchaProviderOptions<%=argv.beanNameCapitalize%>): Promise<TypeCaptchaProvider<%=argv.beanNameCapitalize%>Data> {
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: TypeCaptchaProvider<%=argv.beanNameCapitalize%>Token,
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":"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"}
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, ICaptchaDataCache } from '../types/captcha.ts';
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, context?: unknown): Promise<ICaptchaData>;
6
- private _createBound;
7
- refresh(id: string, sceneName: keyof ICaptchaSceneRecord): Promise<ICaptchaData>;
8
- verify(id: string, token: unknown, sceneName: keyof ICaptchaSceneRecord, context?: unknown): Promise<boolean>;
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,iBAAiB,EAAE,MAAM,qBAAqB,CAAC;AAO3E,OAAO,KAAK,EAGV,mBAAmB,EACpB,MAAM,0BAA0B,CAAC;AAGlC,qBACa,WAAY,SAAQ,QAAQ;IACjC,MAAM,CAAC,SAAS,EAAE,MAAM,mBAAmB,EAAE,OAAO,CAAC,EAAE,OAAO,GAAG,OAAO,CAAC,YAAY,CAAC;YAyB9E,YAAY;IA8EpB,OAAO,CAAC,EAAE,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,mBAAmB;IAgCxD,MAAM,CACV,EAAE,EAAE,MAAM,EACV,KAAK,EAAE,OAAO,EACd,SAAS,EAAE,MAAM,mBAAmB,EACpC,OAAO,CAAC,EAAE,OAAO,GAChB,OAAO,CAAC,OAAO,CAAC;YA2BL,YAAY;IAoCpB,eAAe,CAAC,EAAE,EAAE,MAAM,EAAE,KAAK,EAAE,OAAO,GAAG,OAAO,CAAC,KAAK,GAAG,MAAM,CAAC;IAyBpE,cAAc,CAAC,EAAE,EAAE,MAAM;IAIzB,kBAAkB,CAAC,EAAE,EAAE,MAAM,EAAE,KAAK,EAAE,OAAO;YAqBrC,UAAU;IAyBxB,OAAO,CAAC,eAAe;IAOvB,OAAO,CAAC,oBAAoB;IAK5B,OAAO,CAAC,mBAAmB;YAOb,gBAAgB;IAY9B,OAAO,CAAC,aAAa;IAOrB,OAAO,CAAC,iBAAiB;CAmB1B"}
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: ICaptchaDataCache;
7
+ data: T;
9
8
  }
10
9
  export declare class CacheRedisCaptcha extends ServiceCacheRedisBase<TCacheRedisCaptchaKey, TCacheRedisCaptchaData> {
11
- snapshot(id: string): Promise<ICaptchaSnapshot | undefined>;
12
- createImage(id: string, data: ICaptchaDataCache, ttl: number): Promise<boolean>;
13
- compareAndSet(id: string, snapshot: ICaptchaSnapshot, data?: ICaptchaDataCache, ttl?: number): Promise<boolean>;
14
- boundPrefix(): string;
15
- /** Opaque, instance-local cache keys, also available for precise test cleanup. */
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
- finalizeBound(id: string, snapshot: ICaptchaSnapshot, data?: ICaptchaDataCache): Promise<boolean>;
36
- /** -1 asks the verifier to reread a competing wrong-attempt update. */
37
- consumeBound(id: string, snapshot: ICaptchaSnapshot, verified: boolean): Promise<number>;
38
- validateAuthorization(authorization: ICaptchaAuthorization): void;
39
- private _validateAuthorization;
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":"AACA,OAAO,EAAE,qBAAqB,EAAc,MAAM,qBAAqB,CAAC;AAExE,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAC;AAC7D,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,6BAA6B,CAAC;AASzE,MAAM,MAAM,qBAAqB,GAAG,MAAM,CAAC;AAC3C,MAAM,MAAM,sBAAsB,GAAG,iBAAiB,CAAC;AAEvD,MAAM,WAAW,gBAAgB;IAC/B,GAAG,EAAE,MAAM,CAAC;IACZ,IAAI,EAAE,iBAAiB,CAAC;CACzB;AAED,qBACa,iBAAkB,SAAQ,qBAAqB,CAC1D,qBAAqB,EACrB,sBAAsB,CACvB;IACO,QAAQ,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,gBAAgB,GAAG,SAAS,CAAC;IAM3D,WAAW,CAAC,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,iBAAiB,EAAE,GAAG,EAAE,MAAM;IAM5D,aAAa,CACjB,EAAE,EAAE,MAAM,EACV,QAAQ,EAAE,gBAAgB,EAC1B,IAAI,CAAC,EAAE,iBAAiB,EACxB,GAAG,CAAC,EAAE,MAAM;IAWd,WAAW;IAKX,kFAAkF;IAClF,SAAS,CACP,aAAa,EAAE,IAAI,CAAC,qBAAqB,EAAE,OAAO,GAAG,IAAI,GAAG,iBAAiB,GAAG,UAAU,CAAC;;;;;IAevF,YAAY,CAAC,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,iBAAiB,EAAE,aAAa,EAAE,qBAAqB;;;;;;;;;kBAqB7B,iBAAiB;;;;;IAI1E,aAAa,CAAC,EAAE,EAAE,MAAM,EAAE,QAAQ,EAAE,gBAAgB,EAAE,IAAI,CAAC,EAAE,iBAAiB;IAapF,uEAAuE;IACjE,YAAY,CAAC,EAAE,EAAE,MAAM,EAAE,QAAQ,EAAE,gBAAgB,EAAE,QAAQ,EAAE,OAAO;IAmB5E,qBAAqB,CAAC,aAAa,EAAE,qBAAqB;IAI1D,OAAO,CAAC,sBAAsB;IA8C9B,OAAO,CAAC,YAAY;IAMpB,OAAO,CAAC,gBAAgB;IASxB,OAAO,CAAC,UAAU;YAMJ,KAAK;CAIpB"}
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,CAAoB,KAAK,EAAE,MAAM;IAOvC,OAAO,CAAiB,EAAE,EAAE,MAAM,EAAqB,KAAK,EAAE,MAAM;IAOpE,eAAe,CACH,EAAE,EAAE,MAAM,EACP,KAAK,EAAE,OAAO,GAChC,OAAO,CAAC,MAAM,CAAC;CAKnB"}
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;AAEvE,qBACa,cAAc;IAEzB,EAAE,EAAE,MAAM,CAAC;IAGX,QAAQ,EAAE,MAAM,sBAAsB,CAAC;IAGvC,KAAK,CAAC,EAAE,OAAO,CAAC;IAGhB,OAAO,EAAE,OAAO,CAAC;CAClB"}
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"}