vona-module-a-captcha 5.1.14 → 5.1.16
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/.metadata/index.d.ts.map +1 -1
- package/dist/bean/bean.captcha.d.ts +6 -3
- package/dist/bean/bean.captcha.d.ts.map +1 -1
- package/dist/bean/cacheRedis.captcha.d.ts +38 -0
- package/dist/bean/cacheRedis.captcha.d.ts.map +1 -1
- package/dist/index.js +482 -143
- package/dist/index.js.map +1 -1
- package/dist/lib/captchaLua.d.ts +5 -0
- package/dist/lib/captchaLua.d.ts.map +1 -0
- package/dist/types/captcha.d.ts +15 -1
- package/dist/types/captcha.d.ts.map +1 -1
- package/dist/types/captchaProvider.d.ts +27 -1
- package/dist/types/captchaProvider.d.ts.map +1 -1
- package/package.json +2 -2
- package/src/.metadata/index.ts +27 -29
- package/src/bean/bean.captcha.ts +271 -137
- package/src/bean/cacheRedis.captcha.ts +199 -2
- package/src/lib/captchaLua.ts +90 -0
- package/src/types/captcha.ts +15 -1
- package/src/types/captchaProvider.ts +38 -1
|
@@ -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,yBAAyB;AACzB,cAAc,sCAAsC,CAAC;AACrD,OAAO,KAAK,EAAE,gCAAgC,EAAE,MAAM,sCAAsC,CAAC;AAC7F,OAAO,sBAAsB,CAAC;AAC9B,OAAO,QAAQ,sBAAsB,CAAC;IAGtC,UAAiB,uBAAuB;QACtC,yBAAyB,EAAE,gCAAgC,CAAC;KAC7D;CAEA;AACD,OAAO,QAAQ,uBAAuB,CAAC;IAE/B,UAAiB,wBAAwB;KAGxC;IAEC,UAAiB,wBAAwB;QACvC,IAAI,aAAa,IAAI,qCAAqC,CAAC;QAC3D,IAAI,UAAU,IAAI,yBAAyB,CAAC;QAC5C,IAAI,aAAa,IAAI,gCAAgC,CAAC;KACvD;CACV;AACD,uBAAuB;AACvB,kBAAkB;AAClB,cAAc,yBAAyB,CAAC;AAExC,OAAO,MAAM,CAAC;AACd,OAAO,QAAQ,MAAM,CAAC;CAGrB;AACD,OAAO,QAAQ,uBAAuB,CAAC;IAE/B,UAAiB,WAAW;KAG3B;CACR;AACD,gBAAgB;AAChB,kBAAkB;AAClB,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,yBAAyB,CAAC;AAC3D,OAAO,MAAM,CAAC;AACd,OAAO,QAAQ,MAAM,CAAC;IACpB,UAAiB,iBAAiB;QAChC,SAAS,EAAE,WAAW,CAAC;KACxB;CACF;AACD,gBAAgB;AAChB,wBAAwB;AACxB,cAAc,+BAA+B,CAAC;AAE9C,OAAO,EAAE,KAAK,2BAA2B,EAAE,MAAM,qBAAqB,CAAC;AACvE,OAAO,QAAQ,qBAAqB,CAAC;IAEjC,UAAiB,iBAAiB;QAChC,mBAAmB,EAAE,2BAA2B,CAAC;KAClD;CAGJ;AACD,OAAO,QAAQ,uBAAuB,CAAC;IAE/B,UAAiB,iBAAiB;KAGjC;IAEC,UAAiB,iBAAiB;QAChC,IAAI,aAAa,IAAI,8BAA8B,CAAC;QACpD,IAAI,UAAU,IAAI,mBAAmB,CAAC;QACtC,IAAI,aAAa,IAAI,2BAA2B,CAAC;KAClD;CACV;AACD,sBAAsB;AACtB,wBAAwB;AACxB,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,+BAA+B,CAAC;AACvE,MAAM,WAAW,iBAAiB;IAChC,SAAS,EAAE,iBAAiB,CAAC;CAC9B;AACD,sBAAsB;AACtB,iBAAiB;AACjB,cAAc,gCAAgC,CAAC;AAC/C,cAAc,6BAA6B,CAAC;AAE5C,OAAO,MAAM,CAAC;AACd,OAAO,QAAQ,MAAM,CAAC;IAElB,UAAiB,UAAU;QACzB,2BAA2B,EAAE,KAAK,CAAC;QACzC,wBAAwB,EAAE,KAAK,CAAC;KAC3B;CAGJ;AACD,OAAO,QAAQ,uBAAuB,CAAC;IAE/B,UAAiB,kBAAkB;KAGlC;IAEC,UAAiB,kBAAkB;QACjC,IAAI,aAAa,IAAI,+BAA+B,CAAC;QACrD,IAAI,UAAU,IAAI,2BAA2B,CAAC;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/.metadata/index.ts"],"names":[],"mappings":"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"}
|
|
@@ -2,13 +2,16 @@ import { BeanBase } from 'vona';
|
|
|
2
2
|
import type { ICaptchaData, ICaptchaDataCache } 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): Promise<ICaptchaData>;
|
|
5
|
+
create(sceneName: keyof ICaptchaSceneRecord, context?: unknown): Promise<ICaptchaData>;
|
|
6
|
+
private _createBound;
|
|
6
7
|
refresh(id: string, sceneName: keyof ICaptchaSceneRecord): Promise<ICaptchaData>;
|
|
7
|
-
verify(id: string, token: unknown, sceneName: keyof ICaptchaSceneRecord): Promise<boolean>;
|
|
8
|
-
private
|
|
8
|
+
verify(id: string, token: unknown, sceneName: keyof ICaptchaSceneRecord, context?: unknown): Promise<boolean>;
|
|
9
|
+
private _verifyBound;
|
|
9
10
|
verifyImmediate(id: string, token: unknown): Promise<false | string>;
|
|
10
11
|
getCaptchaData(id: string): Promise<ICaptchaDataCache | undefined>;
|
|
11
12
|
updateCaptchaToken(id: string, token: unknown): Promise<undefined>;
|
|
13
|
+
private _authorize;
|
|
14
|
+
private _bindingMatches;
|
|
12
15
|
private _getProviderInstance;
|
|
13
16
|
private _getProviderOptions;
|
|
14
17
|
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,
|
|
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,7 +1,45 @@
|
|
|
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';
|
|
3
4
|
export type TCacheRedisCaptchaKey = string;
|
|
4
5
|
export type TCacheRedisCaptchaData = ICaptchaDataCache;
|
|
6
|
+
export interface ICaptchaSnapshot {
|
|
7
|
+
raw: string;
|
|
8
|
+
data: ICaptchaDataCache;
|
|
9
|
+
}
|
|
5
10
|
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;
|
|
34
|
+
}>;
|
|
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;
|
|
40
|
+
private _validateTtl;
|
|
41
|
+
private _validateBoundId;
|
|
42
|
+
private _redisKeys;
|
|
43
|
+
private _eval;
|
|
6
44
|
}
|
|
7
45
|
//# sourceMappingURL=cacheRedis.captcha.d.ts.map
|
|
@@ -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":"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"}
|