vona-module-test-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.
@@ -52,42 +52,6 @@ declare module 'vona-module-a-web' {
52
52
  }
53
53
  }
54
54
  /** controller: end */
55
- /** captchaProvider: begin */
56
- export * from '../bean/captchaProvider.bound.ts';
57
- import { type IDecoratorCaptchaProviderOptions } from 'vona-module-a-captcha';
58
- declare module 'vona-module-a-captcha' {
59
- interface ICaptchaProviderRecord {
60
- 'test-captcha:bound': IDecoratorCaptchaProviderOptions;
61
- }
62
- }
63
- declare module 'vona-module-test-captcha' {
64
- interface CaptchaProviderBound {
65
- }
66
- interface CaptchaProviderBound {
67
- get $beanFullName(): 'test-captcha.captchaProvider.bound';
68
- get $onionName(): 'test-captcha:bound';
69
- get $onionOptions(): IDecoratorCaptchaProviderOptions;
70
- }
71
- }
72
- /** captchaProvider: end */
73
- /** captchaScene: begin */
74
- export * from '../bean/captchaScene.bound.ts';
75
- import { type IDecoratorCaptchaSceneOptions } from 'vona-module-a-captcha';
76
- declare module 'vona-module-a-captcha' {
77
- interface ICaptchaSceneRecord {
78
- 'test-captcha:bound': IDecoratorCaptchaSceneOptions;
79
- }
80
- }
81
- declare module 'vona-module-test-captcha' {
82
- interface CaptchaSceneBound {
83
- }
84
- interface CaptchaSceneBound {
85
- get $beanFullName(): 'test-captcha.captchaScene.bound';
86
- get $onionName(): 'test-captcha:bound';
87
- get $onionOptions(): IDecoratorCaptchaSceneOptions;
88
- }
89
- }
90
- /** captchaScene: end */
91
55
  /** scope: begin */
92
56
  import { BeanScopeBase, type BeanScopeUtil } from 'vona';
93
57
  export declare class ScopeModuleTestCaptcha extends BeanScopeBase {
@@ -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":"AACA,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,mBAAmB,CAAC;AACjE,OAAO,KAAK,EAAE,uBAAuB,EAAC,4BAA4B,EAAE,MAAM,uBAAuB,CAAC;AAClG,iBAAiB;AACjB,cAAc,kBAAkB,CAAC;AACjC,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,kBAAkB,CAAC;AAC1D,OAAO,mBAAmB,CAAC;AAC3B,OAAO,QAAQ,mBAAmB,CAAC;IAE/B,UAAiB,UAAU;QACzB,qBAAqB,EAAE,iBAAiB,CAAC;KAC1C;CAGJ;AACD,OAAO,QAAQ,0BAA0B,CAAC;CAEzC;AACD,eAAe;AACf,iBAAiB;AACjB,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAC;AAClD,OAAO,QAAQ,0BAA0B,CAAC;IAEtC,UAAiB,iBAAiB;QAChC,MAAM,CAAC,EAAE,uBAAuB,CAAC,SAAS,EAAE,iBAAiB,CAAC,uBAAuB,CAAC,CAAC,CAAC;KACzF;CACJ;AACD,eAAe;AACf,wBAAwB;AACxB,cAAc,0BAA0B,CAAC;AACzC,OAAO,KAAK,EAAE,yBAAyB,EAAE,MAAM,0BAA0B,CAAC;AAC1E,OAAO,mBAAmB,CAAC;AAC3B,OAAO,QAAQ,mBAAmB,CAAC;IAE/B,UAAiB,iBAAiB;QAChC,sBAAsB,EAAE,yBAAyB,CAAC;KACnD;CAGJ;AACD,OAAO,QAAQ,0BAA0B,CAAC;IAElC,UAAiB,iBAAiB;KAGjC;IAEC,UAAiB,iBAAiB;QAChC,IAAI,aAAa,IAAI,iCAAiC,CAAC;QACvD,IAAI,UAAU,IAAI,sBAAsB,CAAC;QACzC,IAAI,aAAa,IAAI,yBAAyB,CAAC;KAChD;CACV;AACD,sBAAsB;AACtB,wBAAwB;AAExB,OAAuC,0BAA0B,CAAC;AAClE,OAAO,QAAQ,0BAA0B,CAAC;IAEtC,UAAiB,yBAAyB;QACxC,OAAO,CAAC,EAAE,4BAA4B,CAAC,iBAAiB,CAAC,CAAC;KAC3D;CACJ;AACD,OAAO,QAAQ,mBAAmB,CAAC;IACjC,UAAiB,kBAAkB;QAC7B,sBAAsB,EAAE,SAAS,CAAC;KACrC;CAEJ;AAED,sBAAsB;AACtB,mBAAmB;AACnB,OAAO,EAAE,aAAa,EAAE,KAAK,aAAa,EAAE,MAAM,MAAM,CAAC;AAGzD,qBACa,sBAAuB,SAAQ,aAAa;CAAG;AAE5D,MAAM,WAAW,sBAAsB;IACrC,IAAI,EAAE,aAAa,CAAC;CACrB;AAED,OAAO,MAAM,CAAC;AACd,OAAO,QAAQ,MAAM,CAAC;IACpB,UAAiB,gBAAgB;QAC/B,cAAc,EAAE,sBAAsB,CAAC;KACxC;IAED,UAAiB,mBAAmB;QAClC,WAAW,EAAE,sBAAsB,CAAC;KACrC;CAOF;AACD,iBAAiB"}
package/dist/index.js CHANGED
@@ -1,12 +1,10 @@
1
- import { BeanInfo, BeanBase, uuidv4, BeanScopeBase } from 'vona';
1
+ import { BeanInfo, BeanBase, BeanScopeBase } from 'vona';
2
2
  import { __decorate, __metadata, __param } from 'tslib';
3
3
  import { Api, v } from 'vona-module-a-openapiutils';
4
4
  import { Dto, Web, Arg, Controller } from 'vona-module-a-web';
5
5
  import { ZovaRender } from 'zova-rest-cabloy-basic-admin';
6
6
  import { Core } from 'vona-module-a-core';
7
7
  import { Passport } from 'vona-module-a-user';
8
- import { createHash } from 'node:crypto';
9
- import { CaptchaProvider, CaptchaScene } from 'vona-module-a-captcha';
10
8
  import { Scope } from 'vona-module-a-bean';
11
9
 
12
10
  let DtoSignin = class DtoSignin {
@@ -38,73 +36,11 @@ ControllerCaptcha = __decorate([Controller({
38
36
  module: "test-captcha"
39
37
  })], ControllerCaptcha);
40
38
 
41
- class CaptchaBoundContext {
42
- constructor(binding = {
43
- recipient: `${uuidv4()}@example.test`,
44
- purpose: 'captcha-regression',
45
- subject: uuidv4()
46
- }) {
47
- this.token = uuidv4();
48
- this.authorization = void 0;
49
- this.authorization = {
50
- binding,
51
- scope: createHash('sha256').update(JSON.stringify(binding)).digest('hex'),
52
- ip: createHash('sha256').update(uuidv4()).digest('hex'),
53
- ttl: 60_000,
54
- cooldown: 0,
55
- maxAttempts: 5,
56
- recipientLimits: [{
57
- limit: 10,
58
- windowMs: 60_000
59
- }],
60
- ipLimits: [{
61
- limit: 10,
62
- windowMs: 60_000
63
- }]
64
- };
65
- }
66
- }
67
- let CaptchaProviderBound = class CaptchaProviderBound extends BeanBase {
68
- constructor(...args) {
69
- super(...args);
70
- this.bound = true;
71
- }
72
- authorize(context) {
73
- if (this.app.meta.isTest && context instanceof CaptchaBoundContext) {
74
- return context.authorization;
75
- }
76
- }
77
- async create(_options, context) {
78
- if (!this.app.meta.isTest || !(context instanceof CaptchaBoundContext)) {
79
- return this.app.throw(403);
80
- }
81
- return {
82
- token: context.token,
83
- payload: undefined
84
- };
85
- }
86
- async verify(token, tokenInput) {
87
- return token === tokenInput;
88
- }
89
- };
90
- CaptchaProviderBound = __decorate([CaptchaProvider(), BeanInfo({
91
- module: "test-captcha"
92
- })], CaptchaProviderBound);
93
-
94
- let CaptchaSceneBound = class CaptchaSceneBound extends BeanBase {};
95
- CaptchaSceneBound = __decorate([CaptchaScene({
96
- providers: {
97
- 'test-captcha:bound': true
98
- }
99
- }), BeanInfo({
100
- module: "test-captcha"
101
- })], CaptchaSceneBound);
102
-
103
39
  let ScopeModuleTestCaptcha = class ScopeModuleTestCaptcha extends BeanScopeBase {};
104
40
  ScopeModuleTestCaptcha = __decorate([Scope(), BeanInfo({
105
41
  module: "test-captcha"
106
42
  })], ScopeModuleTestCaptcha);
107
43
  /** scope: end */
108
44
 
109
- export { CaptchaBoundContext, CaptchaProviderBound, CaptchaSceneBound, ControllerCaptcha, DtoSignin, ScopeModuleTestCaptcha };
45
+ export { ControllerCaptcha, DtoSignin, ScopeModuleTestCaptcha };
110
46
  //# sourceMappingURL=index.js.map
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sources":["../src/dto/signin.ts","../src/controller/captcha.ts","../src/bean/captchaProvider.bound.ts","../src/bean/captchaScene.bound.ts","../src/.metadata/index.ts"],"sourcesContent":[null,null,null,null,null],"names":["DtoSignin","constructor","username","password","captcha","__decorate","Api","field","prototype","v","min","ZovaRender","Dto","__z_BeanInfo","module","ControllerCaptcha","BeanBase","signin","_user","Web","post","Passport","public","Core","captchaVerify","scene","__param","Arg","body","Controller","path","meta","mode","CaptchaBoundContext","binding","recipient","uuidv4","purpose","subject","token","authorization","scope","createHash","update","JSON","stringify","digest","ip","ttl","cooldown","maxAttempts","recipientLimits","limit","windowMs","ipLimits","CaptchaProviderBound","args","bound","authorize","context","app","isTest","create","_options","throw","payload","undefined","verify","tokenInput","CaptchaProvider","CaptchaSceneBound","CaptchaScene","providers","ScopeModuleTestCaptcha","BeanScopeBase","Scope"],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sources":["../src/dto/signin.ts","../src/controller/captcha.ts","../src/.metadata/index.ts"],"sourcesContent":[null,null,null],"names":["DtoSignin","constructor","username","password","captcha","__decorate","Api","field","prototype","v","min","ZovaRender","Dto","__z_BeanInfo","module","ControllerCaptcha","BeanBase","signin","_user","Web","post","Passport","public","Core","captchaVerify","scene","__param","Arg","body","Controller","path","meta","mode","ScopeModuleTestCaptcha","BeanScopeBase","Scope"],"mappings":";;;;;;;;;AAUO,IAAMA,SAAS,GAAf,MAAMA,SAAS,CAAA;EAAAC,WAAAA,GAAA;AAAA,IAAA,IAAA,CAEpBC,QAAQ,GAAA,MAAA;AAAA,IAAA,IAAA,CAGRC,QAAQ,GAAA,MAAA;AAAA,IAAA,IAAA,CAGRC,OAAO,GAAA,MAAA;AAAA,EAAA;;AANPC,UAAA,CAAA,CADCC,GAAG,CAACC,KAAK,EAAE,oCACK,EAAAP,SAAA,CAAAQ,SAAA,EAAA,UAAA,EAAA,MAAA,CAAA;AAGjBH,UAAA,CAAA,CADCC,GAAG,CAACC,KAAK,CAACE,CAAC,CAACC,GAAG,CAAC,CAAC,CAAC,CAAC,oCACH,EAAAV,SAAA,CAAAQ,SAAA,EAAA,UAAA,EAAA,MAAA,CAAA;AAGjBH,UAAA,CAAA,CADCC,GAAG,CAACC,KAAK,CAACI,UAAU,CAACJ,KAAK,CAAC,gCAAgC,CAAC,CAAC,sCACpC,EAAAP,SAAA,CAAAQ,SAAA,EAAA,SAAA,EAAA,MAAA,CAAA;AARfR,SAAS,GAAAK,UAAA,CAAA,CADrBO,GAAG,EAAqB,EAAAC,QAAA,CAAA;EAAAC,MAAA,EAAA;AAAA,CAAA,CAAA,CACZ,EAAAd,SAAS,CASrB;;ACPM,IAAMe,iBAAiB,GAAvB,MAAMA,iBAAkB,SAAQC,QAAQ,CAAA;AAI7C,EAAA,MAAMC,MAAMA,CAAaC,KAAgB,GAAG;;AAAtCb,UAAA,CAAA,CAHLc,GAAG,CAACC,IAAI,CAAC,QAAQ,CAAC,EAClBC,QAAQ,CAACC,MAAM,EAAE,EACjBC,IAAI,CAACC,aAAa,CAAC;AAAEC,EAAAA,KAAK,EAAE;CAAyB,CAAC,EACzCC,OAAA,CAAA,CAAA,EAAAC,GAAG,CAACC,IAAI,EAAE,CAAA,wEAAQ5B,SAAS,CAAA,CAAA,2CAAI,EAAAe,iBAAA,CAAAP,SAAA,EAAA,QAAA,EAAA,IAAA,CAAA;AAJlCO,iBAAiB,GAAAV,UAAA,CAAA,CAD7BwB,UAAU,CAA4B;AAAEC,EAAAA,IAAI,EAAE,SAAS;AAAEC,EAAAA,IAAI,EAAE;AAAEC,IAAAA,IAAI,EAAE,CAAC,MAAM,EAAE,KAAK;AAAC;CAAI,CAAC,EAAAnB,QAAA,CAAA;EAAAC,MAAA,EAAA;AAAA,CAAA,CAAA,CAC/E,EAAAC,iBAAiB,CAK7B;;AC2DM,IAAMkB,sBAAsB,GAA5B,MAAMA,sBAAuB,SAAQC,aAAa,CAAA;AAA5CD,sBAAsB,GAAA5B,UAAA,CAAA,CADlC8B,KAAK,EAAE,EAAAtB,QAAA,CAAA;EAAAC,MAAA,EAAA;AAAA,CAAA,CAAA,CACK,EAAAmB,sBAAsB,CAAyB;AAsB5D;;"}
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "vona-module-test-captcha",
3
- "version": "5.1.14",
4
- "gitHead": "1f11c426ed1c781449bf1f579cc141781b3f12e5",
3
+ "version": "5.1.16",
4
+ "gitHead": "30aa129a2ca0c4ef6dde9cc910d42f7b3982ef79",
5
5
  "description": "",
6
6
  "keywords": [
7
7
  "Vona Module"
@@ -69,58 +69,6 @@ declare module 'vona-module-a-web' {
69
69
  }
70
70
 
71
71
  /** controller: end */
72
- /** captchaProvider: begin */
73
- export * from '../bean/captchaProvider.bound.ts';
74
-
75
- import { type IDecoratorCaptchaProviderOptions } from 'vona-module-a-captcha';
76
- declare module 'vona-module-a-captcha' {
77
-
78
- export interface ICaptchaProviderRecord {
79
- 'test-captcha:bound': IDecoratorCaptchaProviderOptions;
80
- }
81
-
82
-
83
- }
84
- declare module 'vona-module-test-captcha' {
85
-
86
- export interface CaptchaProviderBound {
87
- /** @internal */
88
- get scope(): ScopeModuleTestCaptcha;
89
- }
90
-
91
- export interface CaptchaProviderBound {
92
- get $beanFullName(): 'test-captcha.captchaProvider.bound';
93
- get $onionName(): 'test-captcha:bound';
94
- get $onionOptions(): IDecoratorCaptchaProviderOptions;
95
- }
96
- }
97
- /** captchaProvider: end */
98
- /** captchaScene: begin */
99
- export * from '../bean/captchaScene.bound.ts';
100
-
101
- import { type IDecoratorCaptchaSceneOptions } from 'vona-module-a-captcha';
102
- declare module 'vona-module-a-captcha' {
103
-
104
- export interface ICaptchaSceneRecord {
105
- 'test-captcha:bound': IDecoratorCaptchaSceneOptions;
106
- }
107
-
108
-
109
- }
110
- declare module 'vona-module-test-captcha' {
111
-
112
- export interface CaptchaSceneBound {
113
- /** @internal */
114
- get scope(): ScopeModuleTestCaptcha;
115
- }
116
-
117
- export interface CaptchaSceneBound {
118
- get $beanFullName(): 'test-captcha.captchaScene.bound';
119
- get $onionName(): 'test-captcha:bound';
120
- get $onionOptions(): IDecoratorCaptchaSceneOptions;
121
- }
122
- }
123
- /** captchaScene: end */
124
72
  /** scope: begin */
125
73
  import { BeanScopeBase, type BeanScopeUtil } from 'vona';
126
74
  import { Scope } from 'vona-module-a-bean';
@@ -1,14 +0,0 @@
1
- import type { ICaptchaAuthorization, ICaptchaBinding, ICaptchaProviderData, ICaptchaProviderExecute } from 'vona-module-a-captcha';
2
- import { BeanBase } from 'vona';
3
- export declare class CaptchaBoundContext {
4
- readonly token: string;
5
- readonly authorization: ICaptchaAuthorization;
6
- constructor(binding?: ICaptchaBinding);
7
- }
8
- export declare class CaptchaProviderBound extends BeanBase implements ICaptchaProviderExecute<string> {
9
- readonly bound = true;
10
- authorize(context: unknown): ICaptchaAuthorization | undefined;
11
- create(_options: unknown, context?: unknown): Promise<ICaptchaProviderData<string>>;
12
- verify(token: string, tokenInput: string): Promise<boolean>;
13
- }
14
- //# sourceMappingURL=captchaProvider.bound.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"captchaProvider.bound.d.ts","sourceRoot":"","sources":["../../src/bean/captchaProvider.bound.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,qBAAqB,EACrB,eAAe,EACf,oBAAoB,EACpB,uBAAuB,EACxB,MAAM,uBAAuB,CAAC;AAG/B,OAAO,EAAE,QAAQ,EAAU,MAAM,MAAM,CAAC;AAGxC,qBAAa,mBAAmB;IAC9B,QAAQ,CAAC,KAAK,SAAY;IAC1B,QAAQ,CAAC,aAAa,EAAE,qBAAqB,CAAC;gBAG5C,OAAO,GAAE,eAIR;CAaJ;AAED,qBACa,oBAAqB,SAAQ,QAAS,YAAW,uBAAuB,CAAC,MAAM,CAAC;IAC3F,QAAQ,CAAC,KAAK,QAAQ;IAEtB,SAAS,CAAC,OAAO,EAAE,OAAO;IAMpB,MAAM,CAAC,QAAQ,EAAE,OAAO,EAAE,OAAO,CAAC,EAAE,OAAO,GAAG,OAAO,CAAC,oBAAoB,CAAC,MAAM,CAAC,CAAC;IAOnF,MAAM,CAAC,KAAK,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;CAGlE"}
@@ -1,4 +0,0 @@
1
- import { BeanBase } from 'vona';
2
- export declare class CaptchaSceneBound extends BeanBase {
3
- }
4
- //# sourceMappingURL=captchaScene.bound.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"captchaScene.bound.d.ts","sourceRoot":"","sources":["../../src/bean/captchaScene.bound.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,MAAM,CAAC;AAGhC,qBAKa,iBAAkB,SAAQ,QAAQ;CAAG"}
@@ -1,56 +0,0 @@
1
- import type {
2
- ICaptchaAuthorization,
3
- ICaptchaBinding,
4
- ICaptchaProviderData,
5
- ICaptchaProviderExecute,
6
- } from 'vona-module-a-captcha';
7
-
8
- import { createHash } from 'node:crypto';
9
- import { BeanBase, uuidv4 } from 'vona';
10
- import { CaptchaProvider } from 'vona-module-a-captcha';
11
-
12
- export class CaptchaBoundContext {
13
- readonly token = uuidv4();
14
- readonly authorization: ICaptchaAuthorization;
15
-
16
- constructor(
17
- binding: ICaptchaBinding = {
18
- recipient: `${uuidv4()}@example.test`,
19
- purpose: 'captcha-regression',
20
- subject: uuidv4(),
21
- },
22
- ) {
23
- this.authorization = {
24
- binding,
25
- scope: createHash('sha256').update(JSON.stringify(binding)).digest('hex'),
26
- ip: createHash('sha256').update(uuidv4()).digest('hex'),
27
- ttl: 60_000,
28
- cooldown: 0,
29
- maxAttempts: 5,
30
- recipientLimits: [{ limit: 10, windowMs: 60_000 }],
31
- ipLimits: [{ limit: 10, windowMs: 60_000 }],
32
- };
33
- }
34
- }
35
-
36
- @CaptchaProvider()
37
- export class CaptchaProviderBound extends BeanBase implements ICaptchaProviderExecute<string> {
38
- readonly bound = true;
39
-
40
- authorize(context: unknown) {
41
- if (this.app.meta.isTest && context instanceof CaptchaBoundContext) {
42
- return context.authorization;
43
- }
44
- }
45
-
46
- async create(_options: unknown, context?: unknown): Promise<ICaptchaProviderData<string>> {
47
- if (!this.app.meta.isTest || !(context instanceof CaptchaBoundContext)) {
48
- return this.app.throw(403);
49
- }
50
- return { token: context.token, payload: undefined };
51
- }
52
-
53
- async verify(token: string, tokenInput: string): Promise<boolean> {
54
- return token === tokenInput;
55
- }
56
- }
@@ -1,9 +0,0 @@
1
- import { BeanBase } from 'vona';
2
- import { CaptchaScene } from 'vona-module-a-captcha';
3
-
4
- @CaptchaScene({
5
- providers: {
6
- 'test-captcha:bound': true,
7
- },
8
- })
9
- export class CaptchaSceneBound extends BeanBase {}