@spinajs/rbac 2.0.530 → 2.0.532

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.
@@ -191,6 +191,15 @@ declare const rbac: {
191
191
  };
192
192
  validation: {
193
193
  service: string;
194
+ /**
195
+ * Human-readable statement of `rule`, returned by
196
+ * `PasswordValidationProvider.describe()` (and by
197
+ * `GET /auth/password/policy` in @spinajs/rbac-http-user) so a client
198
+ * can show the user what to type BEFORE the server refuses it. A regex
199
+ * cannot be turned back into words, so this is the application's job;
200
+ * keep it in step with `rule`. Unset by default: clients then fall back
201
+ * to the `minLength` / `maxLength` the rule itself declares.
202
+ */
194
203
  rule: {
195
204
  pattern: string;
196
205
  type: string;
@@ -1 +1 @@
1
- {"version":3,"file":"rbac.d.ts","sourceRoot":"","sources":["../../../src/config/rbac.ts"],"names":[],"mappings":"AAcA,QAAA,MAAM,IAAI;;QAEN,IAAI;YACF,GAAG;;;;;YAKH,OAAO;gBAAI,UAAU;;YACrB,aAAa;gBAAI,UAAU;;YAC3B,UAAU;gBAAI,UAAU;;YACxB,eAAe;gBAAI,UAAU;;YAC7B,WAAW;gBAAI,UAAU;;YACzB,UAAU;gBAAI,UAAU;;YACxB,mBAAmB;gBAAI,UAAU;;YACjC,YAAY;gBAAI,UAAU;;YAC1B,mBAAmB;gBAAI,UAAU;;YACjC,yBAAyB;gBAAI,UAAU;;YACvC,eAAe;gBAAI,UAAU;;YAC7B,eAAe;gBAAI,UAAU;;YAC7B,wBAAwB;gBAAI,UAAU;;YACtC,sBAAsB;gBAAI,UAAU;;;;;;;;;;;;;YAkBpC,UAAU;YAEV,cAAc;gBACZ,OAAO;gBACP,QAAQ;gBACR,OAAO;;YAIT,OAAO;gBACL,OAAO;gBACP,QAAQ;gBACR,OAAO;;YAGT,MAAM;gBACJ,OAAO;gBACP,QAAQ;gBACR,OAAO;;YAGT,QAAQ;gBACN,OAAO;gBACP,QAAQ;gBACR,OAAO;;YAGT,OAAO;gBACL,OAAO;gBACP,QAAQ;gBACR,OAAO;;YAGT,WAAW;gBACT,OAAO;gBACP,QAAQ;gBACR,OAAO;;YAGT,eAAe;gBACb,OAAO;gBACP,QAAQ;gBACR,OAAO;;YAGT,kBAAkB;gBAChB,OAAO;gBACP,QAAQ;gBACR,OAAO;;YAGT,SAAS;gBACP,OAAO;gBACP,QAAQ;gBACR,OAAO;;YAMT,OAAO;gBACL,OAAO;gBACP,QAAQ;gBACR,OAAO;;;;;;;;YAeT,KAAK;gBACH,QAAU;oBACR,UAAU;;;YAKd,MAAM;gBACJ,OAAO;;YAGT,aAAa;gBACX,KAAK;oBACH,YAAY;oBACZ,UAAU;oBACV,YAAY;oBACZ,YAAY;;gBAEd,eAAe;oBACb,YAAY;oBACZ,UAAU;oBACV,YAAY;oBACZ,YAAY;;;YAGhB,IAAI;gBACF,IAAM;oBACJ,UAAU;oBACV,YAAY;;gBAEd,eAAe;oBACb,YAAY;oBACZ,UAAU;oBACV,YAAY;oBACZ,YAAY;;;YAGhB,KAAK;gBACH,OAAO;;;QAIX;;;;;;;;;;WAUG;;;;YAKD,OAAO;;;YAGP,OAAO;YAEP;;;;;;;;;;;;eAYG;YACH,SAAS;gBACP,MAAM;gBACN,UAAU;;YAGZ,UAAU;gBACR,OAAO;gBACP,IAAI;oBAKF,OAAO;oBAWP,IAAI;;;YAIR;;eAEG;YAEH,UAAU;gBACR,OAAO;gBAGP,sBAAsB;;YAGxB;;eAEG;YACH,qBAAqB;YAErB;;;;;;;;;eASG;YACH,QAAQ;YAER;;eAEG;YACH,kBAAkB;YAElB;;;eAGG;YACH,WAAW;;;YAGX,OAAO;;;YAGP,OAAO;YAEP;;;;eAIG;YACH,UAAU;gBACR,OAAO;gBAGP,GAAG;gBAGH,WAAW;;YAGb;;;;;;;;;;eAUG;YACH,MAAM;gBACJ;;;;;;;;;;;mBAWG;gBACH,MAAM;;;QAIV;;WAEG;;QAEH;;;;;eAKO;;YAEL,MAAM;gBACJ,YAAY,EAAQ,KAAK,CAAC,QAAQ,CAAC;gBACnC,WAAW,EAAQ,KAAK,CAAC,QAAQ,CAAC;;;QAMtC;;WAEG;;QAGH;;;WAGG;;YAED;;;eAGG;YACH,eAAe,EAAQ,MAAM,EAAE;;QAGjC;;;;;WAKG;;YAED;;;eAGG;YACH,eAAe;YAEf;;;eAGG;YACH,cAAc,EAAgB,MAAM,EAAE;;;CAG3C,CAAC;eAEa,IAAI"}
1
+ {"version":3,"file":"rbac.d.ts","sourceRoot":"","sources":["../../../src/config/rbac.ts"],"names":[],"mappings":"AAcA,QAAA,MAAM,IAAI;;QAEN,IAAI;YACF,GAAG;;;;;YAKH,OAAO;gBAAI,UAAU;;YACrB,aAAa;gBAAI,UAAU;;YAC3B,UAAU;gBAAI,UAAU;;YACxB,eAAe;gBAAI,UAAU;;YAC7B,WAAW;gBAAI,UAAU;;YACzB,UAAU;gBAAI,UAAU;;YACxB,mBAAmB;gBAAI,UAAU;;YACjC,YAAY;gBAAI,UAAU;;YAC1B,mBAAmB;gBAAI,UAAU;;YACjC,yBAAyB;gBAAI,UAAU;;YACvC,eAAe;gBAAI,UAAU;;YAC7B,eAAe;gBAAI,UAAU;;YAC7B,wBAAwB;gBAAI,UAAU;;YACtC,sBAAsB;gBAAI,UAAU;;;;;;;;;;;;;YAkBpC,UAAU;YAEV,cAAc;gBACZ,OAAO;gBACP,QAAQ;gBACR,OAAO;;YAIT,OAAO;gBACL,OAAO;gBACP,QAAQ;gBACR,OAAO;;YAGT,MAAM;gBACJ,OAAO;gBACP,QAAQ;gBACR,OAAO;;YAGT,QAAQ;gBACN,OAAO;gBACP,QAAQ;gBACR,OAAO;;YAGT,OAAO;gBACL,OAAO;gBACP,QAAQ;gBACR,OAAO;;YAGT,WAAW;gBACT,OAAO;gBACP,QAAQ;gBACR,OAAO;;YAGT,eAAe;gBACb,OAAO;gBACP,QAAQ;gBACR,OAAO;;YAGT,kBAAkB;gBAChB,OAAO;gBACP,QAAQ;gBACR,OAAO;;YAGT,SAAS;gBACP,OAAO;gBACP,QAAQ;gBACR,OAAO;;YAMT,OAAO;gBACL,OAAO;gBACP,QAAQ;gBACR,OAAO;;;;;;;;YAeT,KAAK;gBACH,QAAU;oBACR,UAAU;;;YAKd,MAAM;gBACJ,OAAO;;YAGT,aAAa;gBACX,KAAK;oBACH,YAAY;oBACZ,UAAU;oBACV,YAAY;oBACZ,YAAY;;gBAEd,eAAe;oBACb,YAAY;oBACZ,UAAU;oBACV,YAAY;oBACZ,YAAY;;;YAGhB,IAAI;gBACF,IAAM;oBACJ,UAAU;oBACV,YAAY;;gBAEd,eAAe;oBACb,YAAY;oBACZ,UAAU;oBACV,YAAY;oBACZ,YAAY;;;YAGhB,KAAK;gBACH,OAAO;;;QAIX;;;;;;;;;;WAUG;;;;YAKD,OAAO;;;YAGP,OAAO;YAEP;;;;;;;;;;;;eAYG;YACH,SAAS;gBACP,MAAM;gBACN,UAAU;;YAGZ,UAAU;gBACR,OAAO;gBAEP;;;;;;;;mBAQG;gBAGH,IAAI;oBAKF,OAAO;oBAWP,IAAI;;;YAIR;;eAEG;YAEH,UAAU;gBACR,OAAO;gBAGP,sBAAsB;;YAGxB;;eAEG;YACH,qBAAqB;YAErB;;;;;;;;;eASG;YACH,QAAQ;YAER;;eAEG;YACH,kBAAkB;YAElB;;;eAGG;YACH,WAAW;;;YAGX,OAAO;;;YAGP,OAAO;YAEP;;;;eAIG;YACH,UAAU;gBACR,OAAO;gBAGP,GAAG;gBAGH,WAAW;;YAGb;;;;;;;;;;eAUG;YACH,MAAM;gBACJ;;;;;;;;;;;mBAWG;gBACH,MAAM;;;QAIV;;WAEG;;QAEH;;;;;eAKO;;YAEL,MAAM;gBACJ,YAAY,EAAQ,KAAK,CAAC,QAAQ,CAAC;gBACnC,WAAW,EAAQ,KAAK,CAAC,QAAQ,CAAC;;;QAMtC;;WAEG;;QAGH;;;WAGG;;YAED;;;eAGG;YACH,eAAe,EAAQ,MAAM,EAAE;;QAGjC;;;;;WAKG;;YAED;;;eAGG;YACH,eAAe;YAEf;;;eAGG;YACH,cAAc,EAAgB,MAAM,EAAE;;;CAG3C,CAAC;eAEa,IAAI"}
@@ -190,6 +190,16 @@ const rbac = {
190
190
  },
191
191
  validation: {
192
192
  service: 'BasicPasswordValidationProvider',
193
+ /**
194
+ * Human-readable statement of `rule`, returned by
195
+ * `PasswordValidationProvider.describe()` (and by
196
+ * `GET /auth/password/policy` in @spinajs/rbac-http-user) so a client
197
+ * can show the user what to type BEFORE the server refuses it. A regex
198
+ * cannot be turned back into words, so this is the application's job;
199
+ * keep it in step with `rule`. Unset by default: clients then fall back
200
+ * to the `minLength` / `maxLength` the rule itself declares.
201
+ */
202
+ // description: 'At least eight characters, including one digit',
193
203
  rule: {
194
204
  // UNCOMMENT ONE OF BELOW OR MODIFY
195
205
  // VALIDATION RULE IS JSON SCHEMA
@@ -1 +1 @@
1
- {"version":3,"file":"rbac.js","sourceRoot":"","sources":["../../../src/config/rbac.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"rbac.js","sourceRoot":"","sources":["../../../src/config/rbac.ts"],"names":[],"mappings":"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"}
@@ -269,11 +269,43 @@ export interface IRbacModelDescriptor extends IModelDescriptor {
269
269
  */
270
270
  RbacRelationScope?: 'where' | 'join';
271
271
  }
272
+ /**
273
+ * What a client may tell the user about the password rule BEFORE they submit
274
+ * one - the human-facing counterpart of {@link PasswordValidationProvider.check}.
275
+ *
276
+ * Every constraint is optional: a provider that validates in a way it cannot
277
+ * describe (a breach-list lookup, say) answers with only what it can, and a
278
+ * client renders whatever is present. `pattern` is an ECMAScript regular
279
+ * expression source, the JSON-schema dialect, so a browser can compile it with
280
+ * `new RegExp(pattern)` and refuse a password locally with the same verdict the
281
+ * server will give.
282
+ */
283
+ export interface IPasswordPolicy {
284
+ /** Fewest characters accepted. */
285
+ minLength?: number;
286
+ /** Most characters accepted. */
287
+ maxLength?: number;
288
+ /** ECMAScript regular expression source every accepted password matches. */
289
+ pattern?: string;
290
+ /**
291
+ * Human-readable statement of the rule, as configured by the application
292
+ * (`rbac.password.validation.description`). Copy, not a constraint: a client
293
+ * shows it next to the password field; it never validates against it.
294
+ */
295
+ description?: string;
296
+ }
272
297
  /**
273
298
  * Interface to provide implementation of password rule validation
274
299
  */
275
300
  export declare abstract class PasswordValidationProvider {
276
301
  abstract check(password: string): boolean;
302
+ /**
303
+ * Describe the rule `check()` enforces, for display before a password is
304
+ * chosen. The default says nothing at all - an implementation that can
305
+ * state its constraints should override this so clients stop hardcoding a
306
+ * mirror of the server rule.
307
+ */
308
+ describe(): IPasswordPolicy;
277
309
  }
278
310
  export declare class UserProfile<T> {
279
311
  User: User;
@@ -1 +1 @@
1
- {"version":3,"file":"interfaces.d.ts","sourceRoot":"","sources":["../../src/interfaces.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"interfaces.d.ts","sourceRoot":"","sources":["../../src/interfaces.ts"],"names":[],"mappings":"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"}
@@ -76,6 +76,15 @@ __decorate([
76
76
  * Interface to provide implementation of password rule validation
77
77
  */
78
78
  class PasswordValidationProvider {
79
+ /**
80
+ * Describe the rule `check()` enforces, for display before a password is
81
+ * chosen. The default says nothing at all - an implementation that can
82
+ * state its constraints should override this so clients stop hardcoding a
83
+ * mirror of the server rule.
84
+ */
85
+ describe() {
86
+ return {};
87
+ }
79
88
  }
80
89
  exports.PasswordValidationProvider = PasswordValidationProvider;
81
90
  class UserProfile {
@@ -1 +1 @@
1
- {"version":3,"file":"interfaces.js","sourceRoot":"","sources":["../../src/interfaces.ts"],"names":[],"mappings":";;;;;;;;;;;;AACA,oCAA2C;AAC3C,0DAA2D;AAE3D,iCAAiC;AAkEjC;;;;;GAKG;AACH;CAUC;;AAED;;GAEG;AACH;CAuBC;;AAED;;;;;GAKG;AACH;CAgEC;;AAED;;;;;;GAMG;AACH;CAwBC;;AAED,qBAAqE,SAAQ,iBAAY;IA8DvF;;OAEG;IACO,sBAAsB,CAAC,CAAW;QAC1C,CAAC,CAAC,UAAU,GAAG,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;IAC5C,CAAC;IAED;;OAEG;IACO,sBAAsB,CAAC,CAAW;QAC1C,CAAC,CAAC,UAAU,GAAG,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;IAC1C,CAAC;IAED;;OAEG;IACO,SAAS,CAAC,CAAW;QAC7B,OAAO,CAAC,CAAC,CAAC,CAAC,UAAU,IAAI,CAAC,CAAC,UAAU,IAAI,gBAAQ,CAAC,GAAG,EAAE,CAAC;IAC1D,CAAC;CACF;;AA3EW;IADT,IAAA,iCAAiB,EAAC,yBAAyB,CAAC;8BACtB,yBAAyB;mDAAC;AA4FnD;;GAEG;AACH;CAEC;;AAGD;IAIE,YAAmB,IAAW,EAAE,IAAU;QACxC,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;QACjB,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC;IAC7B,CAAC;CACF;;AAED;;;;;GAKG;AACH;CAEC"}
1
+ {"version":3,"file":"interfaces.js","sourceRoot":"","sources":["../../src/interfaces.ts"],"names":[],"mappings":";;;;;;;;;;;;AACA,oCAA2C;AAC3C,0DAA2D;AAE3D,iCAAiC;AAkEjC;;;;;GAKG;AACH;CAUC;;AAED;;GAEG;AACH;CAuBC;;AAED;;;;;GAKG;AACH;CAgEC;;AAED;;;;;;GAMG;AACH;CAwBC;;AAED,qBAAqE,SAAQ,iBAAY;IA8DvF;;OAEG;IACO,sBAAsB,CAAC,CAAW;QAC1C,CAAC,CAAC,UAAU,GAAG,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;IAC5C,CAAC;IAED;;OAEG;IACO,sBAAsB,CAAC,CAAW;QAC1C,CAAC,CAAC,UAAU,GAAG,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;IAC1C,CAAC;IAED;;OAEG;IACO,SAAS,CAAC,CAAW;QAC7B,OAAO,CAAC,CAAC,CAAC,CAAC,UAAU,IAAI,CAAC,CAAC,UAAU,IAAI,gBAAQ,CAAC,GAAG,EAAE,CAAC;IAC1D,CAAC;CACF;;AA3EW;IADT,IAAA,iCAAiB,EAAC,yBAAyB,CAAC;8BACtB,yBAAyB;mDAAC;AAyHnD;;GAEG;AACH;IAGE;;;;;OAKG;IACI,QAAQ;QACb,OAAO,EAAE,CAAC;IACZ,CAAC;CACF;;AAGD;IAIE,YAAmB,IAAW,EAAE,IAAU;QACxC,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;QACjB,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC;IAC7B,CAAC;CACF;;AAED;;;;;GAKG;AACH;CAEC"}
@@ -1,4 +1,4 @@
1
- import { PasswordProvider, PasswordValidationProvider } from './interfaces.js';
1
+ import { IPasswordPolicy, PasswordProvider, PasswordValidationProvider } from './interfaces.js';
2
2
  import { DataValidator } from '@spinajs/validation';
3
3
  /**
4
4
  * Simple password service that use argon2 hash alghoritm
@@ -37,7 +37,23 @@ export declare class BasicPasswordProvider implements PasswordProvider {
37
37
  */
38
38
  export declare class BasicPasswordValidationProvider extends PasswordValidationProvider {
39
39
  protected ValidationSchema: object;
40
+ /**
41
+ * Optional human-readable statement of the rule, surfaced verbatim through
42
+ * {@link describe}. The schema below is what is ENFORCED; this is what is
43
+ * SHOWN - an application whose rule is a bare regex has no other way to tell
44
+ * the user what that regex demands.
45
+ */
46
+ protected Description: string | undefined;
40
47
  protected Validator: DataValidator;
41
48
  check(password: string): boolean;
49
+ /**
50
+ * The string constraints of the configured JSON schema, lifted out so a
51
+ * client can show and pre-check them. Only the three keywords a string
52
+ * schema commonly carries are read; anything else in the schema (`enum`,
53
+ * `format`, `allOf` ...) still applies in `check()` but is not described -
54
+ * the schema itself is not returned, because it is server configuration and
55
+ * may carry more than a user needs to see.
56
+ */
57
+ describe(): IPasswordPolicy;
42
58
  }
43
59
  //# sourceMappingURL=password.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"password.d.ts","sourceRoot":"","sources":["../../src/password.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,gBAAgB,EAAE,0BAA0B,EAAE,MAAM,iBAAiB,CAAC;AAI/E,OAAO,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AA6BpD;;GAEG;AACH,qBACa,qBAAsB,YAAW,gBAAgB;IAE5D,SAAS,CAAC,gBAAgB,EAAE;QAAE,MAAM,EAAE,MAAM,CAAC;QAAC,UAAU,EAAE,MAAM,EAAE,CAAA;KAAE,CAAC;IAGrE,SAAS,CAAC,UAAU,EAAE,0BAA0B,CAAC;IAEpC,IAAI,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAGhD;IAED;;;;;;OAMG;IACU,MAAM,CAAC,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,CAEpE;IAED;;;;;;;;;;;OAWG;IACI,QAAQ,IAAI,MAAM,CAoBxB;CACF;AAED;;GAEG;AACH,qBACa,+BAAgC,SAAQ,0BAA0B;IAE7E,SAAS,CAAC,gBAAgB,EAAE,MAAM,CAAC;IAGnC,SAAS,CAAC,SAAS,EAAE,aAAa,CAAC;IAE5B,KAAK,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAGtC;CACF"}
1
+ {"version":3,"file":"password.d.ts","sourceRoot":"","sources":["../../src/password.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,eAAe,EAAE,gBAAgB,EAAE,0BAA0B,EAAE,MAAM,iBAAiB,CAAC;AAIhG,OAAO,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AA6BpD;;GAEG;AACH,qBACa,qBAAsB,YAAW,gBAAgB;IAE5D,SAAS,CAAC,gBAAgB,EAAE;QAAE,MAAM,EAAE,MAAM,CAAC;QAAC,UAAU,EAAE,MAAM,EAAE,CAAA;KAAE,CAAC;IAGrE,SAAS,CAAC,UAAU,EAAE,0BAA0B,CAAC;IAEpC,IAAI,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAGhD;IAED;;;;;;OAMG;IACU,MAAM,CAAC,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,CAEpE;IAED;;;;;;;;;;;OAWG;IACI,QAAQ,IAAI,MAAM,CAoBxB;CACF;AAED;;GAEG;AACH,qBACa,+BAAgC,SAAQ,0BAA0B;IAE7E,SAAS,CAAC,gBAAgB,EAAE,MAAM,CAAC;IAEnC;;;;;OAKG;IAEH,SAAS,CAAC,WAAW,EAAE,MAAM,GAAG,SAAS,CAAC;IAG1C,SAAS,CAAC,SAAS,EAAE,aAAa,CAAC;IAE5B,KAAK,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAGtC;IAED;;;;;;;OAOG;IACI,QAAQ,IAAI,eAAe,CAqBjC;CACF"}
@@ -142,12 +142,41 @@ let BasicPasswordValidationProvider = class BasicPasswordValidationProvider exte
142
142
  const [result] = this.Validator.tryValidate(this.ValidationSchema, password);
143
143
  return result;
144
144
  }
145
+ /**
146
+ * The string constraints of the configured JSON schema, lifted out so a
147
+ * client can show and pre-check them. Only the three keywords a string
148
+ * schema commonly carries are read; anything else in the schema (`enum`,
149
+ * `format`, `allOf` ...) still applies in `check()` but is not described -
150
+ * the schema itself is not returned, because it is server configuration and
151
+ * may carry more than a user needs to see.
152
+ */
153
+ describe() {
154
+ const schema = (this.ValidationSchema ?? {});
155
+ const policy = {};
156
+ if (typeof schema.minLength === 'number') {
157
+ policy.minLength = schema.minLength;
158
+ }
159
+ if (typeof schema.maxLength === 'number') {
160
+ policy.maxLength = schema.maxLength;
161
+ }
162
+ if (typeof schema.pattern === 'string') {
163
+ policy.pattern = schema.pattern;
164
+ }
165
+ if (typeof this.Description === 'string' && this.Description.trim() !== '') {
166
+ policy.description = this.Description;
167
+ }
168
+ return policy;
169
+ }
145
170
  };
146
171
  exports.BasicPasswordValidationProvider = BasicPasswordValidationProvider;
147
172
  __decorate([
148
173
  (0, configuration_1.Config)('rbac.password.validation.rule'),
149
174
  __metadata("design:type", Object)
150
175
  ], BasicPasswordValidationProvider.prototype, "ValidationSchema", void 0);
176
+ __decorate([
177
+ (0, configuration_1.Config)('rbac.password.validation.description', { defaultValue: undefined }),
178
+ __metadata("design:type", Object)
179
+ ], BasicPasswordValidationProvider.prototype, "Description", void 0);
151
180
  __decorate([
152
181
  (0, di_1.Autoinject)(),
153
182
  __metadata("design:type", validation_1.DataValidator)
@@ -1 +1 @@
1
- {"version":3,"file":"password.js","sourceRoot":"","sources":["../../src/password.ts"],"names":[],"mappings":";AAAA,4CAA4C;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAE5C,mDAA+E;AAC/E,MAAY,KAAK,mCAAe;AAChC,oCAAqD;AACrD,0DAAmE;AACnE,oDAAoD;AACpD,oDAA4D;AAC5D,mCAAmC;AAEnC;;;;;;;;;;;GAWG;AACH,MAAM,iBAAiB,GAAG,EAAE,CAAC;AAE7B;;;;;;;;GAQG;AACH,MAAM,iBAAiB,GAAG,EAAE,MAAM,EAAE,EAAE,EAAE,UAAU,EAAE,CAAC,4BAA4B,EAAE,4BAA4B,EAAE,YAAY,CAAC,EAAE,CAAC;AAEjI;;GAEG;AAEI,IAAM,qBAAqB,GAA3B,MAAM,qBAAqB;IAOzB,KAAK,CAAC,IAAI,CAAC,KAAa;QAC7B,gDAAgD;QAChD,OAAO,MAAM,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IACjC,CAAC;IAED;;;;;;OAMG;IACI,KAAK,CAAC,MAAM,CAAC,IAAY,EAAE,QAAgB;QAChD,OAAO,MAAM,KAAK,CAAC,MAAM,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAC;IAC5C,CAAC;IAED;;;;;;;;;;;OAWG;IACI,QAAQ;QACb,MAAM,OAAO,GAAG,IAAI,CAAC,gBAAgB,IAAI,iBAAiB,CAAC;QAC3D,MAAM,MAAM,GAAG,OAAO,CAAC,MAAM,IAAI,iBAAiB,CAAC,MAAM,CAAC;QAC1D,MAAM,IAAI,GAAG,CAAC,OAAO,CAAC,UAAU,IAAI,iBAAiB,CAAC,UAAU,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QAE3E,IAAI,MAAM,GAAG,CAAC,IAAI,IAAI,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YACpC,MAAM,IAAI,kCAAqB,CAAC,sFAAsF,CAAC,CAAC;QAC1H,CAAC;QAED,KAAK,IAAI,OAAO,GAAG,CAAC,EAAE,OAAO,GAAG,iBAAiB,EAAE,OAAO,EAAE,EAAE,CAAC;YAC7D,yEAAyE;YACzE,6CAA6C;YAC7C,MAAM,SAAS,GAAG,KAAK,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,EAAE,GAAG,EAAE,CAAC,IAAI,CAAC,IAAA,kBAAS,EAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;YAEtF,IAAI,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC,SAAS,CAAC,EAAE,CAAC;gBACrC,OAAO,SAAS,CAAC;YACnB,CAAC;QACH,CAAC;QAED,MAAM,IAAI,kCAAqB,CAAC,6EAA6E,iBAAiB,2GAA2G,CAAC,CAAC;IAC7O,CAAC;CACF,CAAA;;AAtDW;IADT,IAAA,sBAAM,EAAC,yBAAyB,CAAC;;+DACmC;AAG3D;IADT,IAAA,iCAAiB,EAAC,0BAA0B,CAAC;8BACxB,0CAA0B;yDAAC;gCALtC,qBAAqB;IADjC,IAAA,eAAU,EAAC,gCAAgB,CAAC;GAChB,qBAAqB,CAwDjC;AAED;;GAEG;AAEI,IAAM,+BAA+B,GAArC,MAAM,+BAAgC,SAAQ,0CAA0B;IAOtE,KAAK,CAAC,QAAgB;QAC3B,MAAM,CAAC,MAAM,CAAC,GAAG,IAAI,CAAC,SAAS,CAAC,WAAW,CAAC,IAAI,CAAC,gBAAgB,EAAE,QAAe,CAAC,CAAC;QACpF,OAAO,MAAM,CAAC;IAChB,CAAC;CACF,CAAA;;AATW;IADT,IAAA,sBAAM,EAAC,+BAA+B,CAAC;;yEACL;AAGzB;IADT,IAAA,eAAU,GAAE;8BACQ,0BAAa;kEAAC;0CALxB,+BAA+B;IAD3C,IAAA,eAAU,EAAC,0CAA0B,CAAC;GAC1B,+BAA+B,CAW3C"}
1
+ {"version":3,"file":"password.js","sourceRoot":"","sources":["../../src/password.ts"],"names":[],"mappings":"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"}
@@ -191,6 +191,15 @@ declare const rbac: {
191
191
  };
192
192
  validation: {
193
193
  service: string;
194
+ /**
195
+ * Human-readable statement of `rule`, returned by
196
+ * `PasswordValidationProvider.describe()` (and by
197
+ * `GET /auth/password/policy` in @spinajs/rbac-http-user) so a client
198
+ * can show the user what to type BEFORE the server refuses it. A regex
199
+ * cannot be turned back into words, so this is the application's job;
200
+ * keep it in step with `rule`. Unset by default: clients then fall back
201
+ * to the `minLength` / `maxLength` the rule itself declares.
202
+ */
194
203
  rule: {
195
204
  pattern: string;
196
205
  type: string;
@@ -1 +1 @@
1
- {"version":3,"file":"rbac.d.ts","sourceRoot":"","sources":["../../../src/config/rbac.ts"],"names":[],"mappings":"AAcA,QAAA,MAAM,IAAI;;QAEN,IAAI;YACF,GAAG;;;;;YAKH,OAAO;gBAAI,UAAU;;YACrB,aAAa;gBAAI,UAAU;;YAC3B,UAAU;gBAAI,UAAU;;YACxB,eAAe;gBAAI,UAAU;;YAC7B,WAAW;gBAAI,UAAU;;YACzB,UAAU;gBAAI,UAAU;;YACxB,mBAAmB;gBAAI,UAAU;;YACjC,YAAY;gBAAI,UAAU;;YAC1B,mBAAmB;gBAAI,UAAU;;YACjC,yBAAyB;gBAAI,UAAU;;YACvC,eAAe;gBAAI,UAAU;;YAC7B,eAAe;gBAAI,UAAU;;YAC7B,wBAAwB;gBAAI,UAAU;;YACtC,sBAAsB;gBAAI,UAAU;;;;;;;;;;;;;YAkBpC,UAAU;YAEV,cAAc;gBACZ,OAAO;gBACP,QAAQ;gBACR,OAAO;;YAIT,OAAO;gBACL,OAAO;gBACP,QAAQ;gBACR,OAAO;;YAGT,MAAM;gBACJ,OAAO;gBACP,QAAQ;gBACR,OAAO;;YAGT,QAAQ;gBACN,OAAO;gBACP,QAAQ;gBACR,OAAO;;YAGT,OAAO;gBACL,OAAO;gBACP,QAAQ;gBACR,OAAO;;YAGT,WAAW;gBACT,OAAO;gBACP,QAAQ;gBACR,OAAO;;YAGT,eAAe;gBACb,OAAO;gBACP,QAAQ;gBACR,OAAO;;YAGT,kBAAkB;gBAChB,OAAO;gBACP,QAAQ;gBACR,OAAO;;YAGT,SAAS;gBACP,OAAO;gBACP,QAAQ;gBACR,OAAO;;YAMT,OAAO;gBACL,OAAO;gBACP,QAAQ;gBACR,OAAO;;;;;;;;YAeT,KAAK;gBACH,QAAU;oBACR,UAAU;;;YAKd,MAAM;gBACJ,OAAO;;YAGT,aAAa;gBACX,KAAK;oBACH,YAAY;oBACZ,UAAU;oBACV,YAAY;oBACZ,YAAY;;gBAEd,eAAe;oBACb,YAAY;oBACZ,UAAU;oBACV,YAAY;oBACZ,YAAY;;;YAGhB,IAAI;gBACF,IAAM;oBACJ,UAAU;oBACV,YAAY;;gBAEd,eAAe;oBACb,YAAY;oBACZ,UAAU;oBACV,YAAY;oBACZ,YAAY;;;YAGhB,KAAK;gBACH,OAAO;;;QAIX;;;;;;;;;;WAUG;;;;YAKD,OAAO;;;YAGP,OAAO;YAEP;;;;;;;;;;;;eAYG;YACH,SAAS;gBACP,MAAM;gBACN,UAAU;;YAGZ,UAAU;gBACR,OAAO;gBACP,IAAI;oBAKF,OAAO;oBAWP,IAAI;;;YAIR;;eAEG;YAEH,UAAU;gBACR,OAAO;gBAGP,sBAAsB;;YAGxB;;eAEG;YACH,qBAAqB;YAErB;;;;;;;;;eASG;YACH,QAAQ;YAER;;eAEG;YACH,kBAAkB;YAElB;;;eAGG;YACH,WAAW;;;YAGX,OAAO;;;YAGP,OAAO;YAEP;;;;eAIG;YACH,UAAU;gBACR,OAAO;gBAGP,GAAG;gBAGH,WAAW;;YAGb;;;;;;;;;;eAUG;YACH,MAAM;gBACJ;;;;;;;;;;;mBAWG;gBACH,MAAM;;;QAIV;;WAEG;;QAEH;;;;;eAKO;;YAEL,MAAM;gBACJ,YAAY,EAAQ,KAAK,CAAC,QAAQ,CAAC;gBACnC,WAAW,EAAQ,KAAK,CAAC,QAAQ,CAAC;;;QAMtC;;WAEG;;QAGH;;;WAGG;;YAED;;;eAGG;YACH,eAAe,EAAQ,MAAM,EAAE;;QAGjC;;;;;WAKG;;YAED;;;eAGG;YACH,eAAe;YAEf;;;eAGG;YACH,cAAc,EAAgB,MAAM,EAAE;;;CAG3C,CAAC;eAEa,IAAI"}
1
+ {"version":3,"file":"rbac.d.ts","sourceRoot":"","sources":["../../../src/config/rbac.ts"],"names":[],"mappings":"AAcA,QAAA,MAAM,IAAI;;QAEN,IAAI;YACF,GAAG;;;;;YAKH,OAAO;gBAAI,UAAU;;YACrB,aAAa;gBAAI,UAAU;;YAC3B,UAAU;gBAAI,UAAU;;YACxB,eAAe;gBAAI,UAAU;;YAC7B,WAAW;gBAAI,UAAU;;YACzB,UAAU;gBAAI,UAAU;;YACxB,mBAAmB;gBAAI,UAAU;;YACjC,YAAY;gBAAI,UAAU;;YAC1B,mBAAmB;gBAAI,UAAU;;YACjC,yBAAyB;gBAAI,UAAU;;YACvC,eAAe;gBAAI,UAAU;;YAC7B,eAAe;gBAAI,UAAU;;YAC7B,wBAAwB;gBAAI,UAAU;;YACtC,sBAAsB;gBAAI,UAAU;;;;;;;;;;;;;YAkBpC,UAAU;YAEV,cAAc;gBACZ,OAAO;gBACP,QAAQ;gBACR,OAAO;;YAIT,OAAO;gBACL,OAAO;gBACP,QAAQ;gBACR,OAAO;;YAGT,MAAM;gBACJ,OAAO;gBACP,QAAQ;gBACR,OAAO;;YAGT,QAAQ;gBACN,OAAO;gBACP,QAAQ;gBACR,OAAO;;YAGT,OAAO;gBACL,OAAO;gBACP,QAAQ;gBACR,OAAO;;YAGT,WAAW;gBACT,OAAO;gBACP,QAAQ;gBACR,OAAO;;YAGT,eAAe;gBACb,OAAO;gBACP,QAAQ;gBACR,OAAO;;YAGT,kBAAkB;gBAChB,OAAO;gBACP,QAAQ;gBACR,OAAO;;YAGT,SAAS;gBACP,OAAO;gBACP,QAAQ;gBACR,OAAO;;YAMT,OAAO;gBACL,OAAO;gBACP,QAAQ;gBACR,OAAO;;;;;;;;YAeT,KAAK;gBACH,QAAU;oBACR,UAAU;;;YAKd,MAAM;gBACJ,OAAO;;YAGT,aAAa;gBACX,KAAK;oBACH,YAAY;oBACZ,UAAU;oBACV,YAAY;oBACZ,YAAY;;gBAEd,eAAe;oBACb,YAAY;oBACZ,UAAU;oBACV,YAAY;oBACZ,YAAY;;;YAGhB,IAAI;gBACF,IAAM;oBACJ,UAAU;oBACV,YAAY;;gBAEd,eAAe;oBACb,YAAY;oBACZ,UAAU;oBACV,YAAY;oBACZ,YAAY;;;YAGhB,KAAK;gBACH,OAAO;;;QAIX;;;;;;;;;;WAUG;;;;YAKD,OAAO;;;YAGP,OAAO;YAEP;;;;;;;;;;;;eAYG;YACH,SAAS;gBACP,MAAM;gBACN,UAAU;;YAGZ,UAAU;gBACR,OAAO;gBAEP;;;;;;;;mBAQG;gBAGH,IAAI;oBAKF,OAAO;oBAWP,IAAI;;;YAIR;;eAEG;YAEH,UAAU;gBACR,OAAO;gBAGP,sBAAsB;;YAGxB;;eAEG;YACH,qBAAqB;YAErB;;;;;;;;;eASG;YACH,QAAQ;YAER;;eAEG;YACH,kBAAkB;YAElB;;;eAGG;YACH,WAAW;;;YAGX,OAAO;;;YAGP,OAAO;YAEP;;;;eAIG;YACH,UAAU;gBACR,OAAO;gBAGP,GAAG;gBAGH,WAAW;;YAGb;;;;;;;;;;eAUG;YACH,MAAM;gBACJ;;;;;;;;;;;mBAWG;gBACH,MAAM;;;QAIV;;WAEG;;QAEH;;;;;eAKO;;YAEL,MAAM;gBACJ,YAAY,EAAQ,KAAK,CAAC,QAAQ,CAAC;gBACnC,WAAW,EAAQ,KAAK,CAAC,QAAQ,CAAC;;;QAMtC;;WAEG;;QAGH;;;WAGG;;YAED;;;eAGG;YACH,eAAe,EAAQ,MAAM,EAAE;;QAGjC;;;;;WAKG;;YAED;;;eAGG;YACH,eAAe;YAEf;;;eAGG;YACH,cAAc,EAAgB,MAAM,EAAE;;;CAG3C,CAAC;eAEa,IAAI"}
@@ -188,6 +188,16 @@ const rbac = {
188
188
  },
189
189
  validation: {
190
190
  service: 'BasicPasswordValidationProvider',
191
+ /**
192
+ * Human-readable statement of `rule`, returned by
193
+ * `PasswordValidationProvider.describe()` (and by
194
+ * `GET /auth/password/policy` in @spinajs/rbac-http-user) so a client
195
+ * can show the user what to type BEFORE the server refuses it. A regex
196
+ * cannot be turned back into words, so this is the application's job;
197
+ * keep it in step with `rule`. Unset by default: clients then fall back
198
+ * to the `minLength` / `maxLength` the rule itself declares.
199
+ */
200
+ // description: 'At least eight characters, including one digit',
191
201
  rule: {
192
202
  // UNCOMMENT ONE OF BELOW OR MODIFY
193
203
  // VALIDATION RULE IS JSON SCHEMA
@@ -1 +1 @@
1
- {"version":3,"file":"rbac.js","sourceRoot":"","sources":["../../../src/config/rbac.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,SAAS,EAAE,OAAO,EAAE,MAAM,MAAM,CAAC;AAEhD,SAAS,GAAG,CAAC,IAAY;IACvB,MAAM,UAAU,GAAG,OAAO,MAAM,KAAK,WAAW,CAAC;IACjD,OAAO;QACL,OAAO,CAAC,SAAS,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,mBAAmB,IAAI,OAAO,CAAC,GAAG,EAAE,EAAE,cAAc,EAAE,UAAU,EAAE,MAAM,EAAE,KAAK,EAAE,UAAU,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC,CAAC;QAEvJ,4CAA4C;QAC5C,OAAO,CAAC,SAAS,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,mBAAmB,IAAI,OAAO,CAAC,GAAG,EAAE,EAAE,KAAK,EAAE,cAAc,EAAE,UAAU,EAAE,MAAM,EAAE,KAAK,EAAE,UAAU,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC,CAAC;KAC/J,CAAC;AACJ,CAAC;AAID,MAAM,IAAI,GAAG;IACX,MAAM,EAAE;QACN,IAAI,EAAE;YACJ,GAAG,EAAE,CAAC,GAAG,GAAG,CAAC,KAAK,CAAC,CAAC;SACrB;KACF;IACD,KAAK,EAAE;QACL,OAAO,EAAE;YACP,OAAO,EAAE,EAAE,UAAU,EAAE,uBAAuB,EAAE;YAChD,aAAa,EAAE,EAAE,UAAU,EAAE,uBAAuB,EAAE;YACtD,UAAU,EAAE,EAAE,UAAU,EAAE,uBAAuB,EAAE;YACnD,eAAe,EAAE,EAAE,UAAU,EAAE,uBAAuB,EAAE;YACxD,WAAW,EAAE,EAAE,UAAU,EAAE,uBAAuB,EAAE;YACpD,UAAU,EAAE,EAAE,UAAU,EAAE,uBAAuB,EAAE;YACnD,mBAAmB,EAAE,EAAE,UAAU,EAAE,uBAAuB,EAAE;YAC5D,YAAY,EAAE,EAAE,UAAU,EAAE,uBAAuB,EAAE;YACrD,mBAAmB,EAAE,EAAE,UAAU,EAAE,uBAAuB,EAAE;YAC5D,yBAAyB,EAAE,EAAE,UAAU,EAAE,uBAAuB,EAAE;YAClE,eAAe,EAAE,EAAE,UAAU,EAAE,uBAAuB,EAAE;YACxD,eAAe,EAAE,EAAE,UAAU,EAAE,uBAAuB,EAAE;YACxD,wBAAwB,EAAE,EAAE,UAAU,EAAE,uBAAuB,EAAE;YACjE,sBAAsB,EAAE,EAAE,UAAU,EAAE,uBAAuB,EAAE;SAChE;QAED,6EAA6E;QAC7E,iDAAiD;QACjD,WAAW,EAAE;YACX;gBACE,IAAI,EAAE,uBAAuB;gBAC7B,OAAO,EAAE,sBAAsB;gBAC/B,mBAAmB,EAAE,WAAW;gBAChC,mBAAmB,EAAE,aAAa;aACnC;SACF;KACF;IACD,IAAI,EAAE;QACJ,kBAAkB,EAAE,KAAK;QAEzB,KAAK,EAAE;YACL,UAAU,EAAE,uBAAuB;YAEnC,cAAc,EAAE;gBACd,OAAO,EAAE,IAAI;gBACb,QAAQ,EAAE,qCAAqC;gBAC/C,OAAO,EAAE,yBAAyB;aACnC;YAED,2DAA2D;YAC3D,OAAO,EAAE;gBACP,OAAO,EAAE,IAAI;gBACb,QAAQ,EAAE,oCAAoC;gBAC9C,OAAO,EAAE,2BAA2B;aACrC;YAED,MAAM,EAAE;gBACN,OAAO,EAAE,IAAI;gBACb,QAAQ,EAAE,kCAAkC;gBAC5C,OAAO,EAAE,gBAAgB;aAC1B;YAED,QAAQ,EAAE;gBACR,OAAO,EAAE,IAAI;gBACb,QAAQ,EAAE,oCAAoC;gBAC9C,OAAO,EAAE,kBAAkB;aAC5B;YAED,OAAO,EAAE;gBACP,OAAO,EAAE,IAAI;gBACb,QAAQ,EAAE,mCAAmC;gBAC7C,OAAO,EAAE,iBAAiB;aAC3B;YAED,WAAW,EAAE;gBACX,OAAO,EAAE,IAAI;gBACb,QAAQ,EAAE,uCAAuC;gBACjD,OAAO,EAAE,qBAAqB;aAC/B;YAED,eAAe,EAAE;gBACf,OAAO,EAAE,IAAI;gBACb,QAAQ,EAAE,sCAAsC;gBAChD,OAAO,EAAE,kBAAkB;aAC5B;YAED,kBAAkB,EAAE;gBAClB,OAAO,EAAE,IAAI;gBACb,QAAQ,EAAE,sCAAsC;gBAChD,OAAO,EAAE,gCAAgC;aAC1C;YAED,SAAS,EAAE;gBACT,OAAO,EAAE,IAAI;gBACb,QAAQ,EAAE,qCAAqC;gBAC/C,OAAO,EAAE,mBAAmB;aAC7B;YAED,gDAAgD;YAChD,wCAAwC;YACxC,yDAAyD;YACzD,OAAO,EAAE;gBACP,OAAO,EAAE,IAAI;gBACb,QAAQ,EAAE,wCAAwC;gBAClD,OAAO,EAAE,iBAAiB;aAC3B;SACF;QACD,gDAAgD;QAChD,KAAK,EAAE;YACL;gBACE,IAAI,EAAE,OAAO;gBACb,WAAW,EAAE,eAAe;aAC7B;YACD;gBACE,IAAI,EAAE,MAAM;gBACZ,WAAW,EAAE,sCAAsC;aACpD;SACF;QACD,MAAM,EAAE;YACN,KAAK,EAAE;gBACL,UAAU,EAAC;oBACT,UAAU,EAAE,CAAC,GAAG,CAAC;iBAClB;aACF;YAED,sDAAsD;YACtD,MAAM,EAAE;gBACN,OAAO,EAAE,CAAC,OAAO,CAAC;aACnB;YAED,aAAa,EAAE;gBACb,KAAK,EAAE;oBACL,YAAY,EAAE,CAAC,GAAG,CAAC;oBACnB,UAAU,EAAE,CAAC,GAAG,CAAC;oBACjB,YAAY,EAAE,CAAC,GAAG,CAAC;oBACnB,YAAY,EAAE,CAAC,GAAG,CAAC;iBACpB;gBACD,eAAe,EAAE;oBACf,YAAY,EAAE,CAAC,GAAG,CAAC;oBACnB,UAAU,EAAE,CAAC,GAAG,CAAC;oBACjB,YAAY,EAAE,CAAC,GAAG,CAAC;oBACnB,YAAY,EAAE,CAAC,GAAG,CAAC;iBACpB;aACF;YACD,IAAI,EAAE;gBACJ,MAAM,EAAE;oBACN,UAAU,EAAE,CAAC,OAAO,EAAE,OAAO,CAAC;oBAC9B,YAAY,EAAE,CAAC,OAAO,EAAE,OAAO,EAAE,UAAU,CAAC;iBAC7C;gBACD,eAAe,EAAE;oBACf,YAAY,EAAE,CAAC,GAAG,CAAC;oBACnB,UAAU,EAAE,CAAC,GAAG,CAAC;oBACjB,YAAY,EAAE,CAAC,GAAG,CAAC;oBACnB,YAAY,EAAE,CAAC,GAAG,CAAC;iBACpB;aACF;YACD,KAAK,EAAE;gBACL,OAAO,EAAE,CAAC,aAAa,CAAC;aACzB;SACF;QAED;;;;;;;;;;WAUG;QACH,gBAAgB,EAAE,IAAI;QAEtB,WAAW,EAAE,OAAO;QACpB,IAAI,EAAE;YACJ,OAAO,EAAE,sBAAsB;SAChC;QACD,QAAQ,EAAE;YACR,OAAO,EAAE,uBAAuB;YAEhC;;;;;;;;;;;;eAYG;YACH,SAAS,EAAE;gBACT,MAAM,EAAE,EAAE;gBACV,UAAU,EAAE,CAAC,4BAA4B,EAAE,4BAA4B,EAAE,YAAY,CAAC;aACvF;YAED,UAAU,EAAE;gBACV,OAAO,EAAE,iCAAiC;gBAC1C,IAAI,EAAE;oBACJ,mCAAmC;oBACnC,iCAAiC;oBAEjC,+DAA+D;oBAC/D,OAAO,EAAE,kBAAkB;oBAE3B,uFAAuF;oBACvF,6EAA6E;oBAE7E,+FAA+F;oBAC/F,6DAA6D;oBAE7D,+FAA+F;oBAC/F,mFAAmF;oBAEnF,IAAI,EAAE,QAAQ;iBACf;aACF;YAED;;eAEG;YAEH,UAAU,EAAE;gBACV,OAAO,EAAE,IAAI;gBAEb,aAAa;gBACb,sBAAsB,EAAE,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE;aAC1C;YAED;;eAEG;YACH,qBAAqB,EAAE,EAAE,GAAG,EAAE;YAE9B;;;;;;;;;eASG;YACH,QAAQ,EAAE,EAAE;YAEZ;;eAEG;YACH,kBAAkB,EAAE,CAAC;YAErB;;;eAGG;YACH,WAAW,EAAE,EAAE,GAAG,EAAE;SACrB;QACD,IAAI,EAAE;YACJ,OAAO,EAAE,sBAAsB;SAChC;QACD,OAAO,EAAE;YACP,OAAO,EAAE,oBAAoB;YAE7B;;;;eAIG;YACH,UAAU,EAAE;gBACV,OAAO,EAAE,yBAAyB;gBAElC,oEAAoE;gBACpE,GAAG,EAAE,EAAE,EAAE,UAAU;gBAEnB,kEAAkE;gBAClE,WAAW,EAAE,GAAG,EAAE,yCAAyC;aAC5D;YAED;;;;;;;;;;eAUG;YACH,MAAM,EAAE;gBACN;;;;;;;;;;;mBAWG;gBACH,MAAM,EAAE,OAAO,CAAC,GAAG,CAAC,QAAQ,KAAK,YAAY;aAC9C;SACF;QAED;;WAEG;QACH,UAAU,EAAE,QAAQ;QACpB;;;;;eAKO;QACP,OAAO,EAAE;YACP,MAAM,EAAE;gBACN,YAAY,EAAE,EAAqB;gBACnC,WAAW,EAAE,EAAqB;aACnC;SACF;QAID;;WAEG;QACH,UAAU,EAAE,MAAM;QAElB;;;WAGG;QACH,UAAU,EAAE;YACV;;;eAGG;YACH,eAAe,EAAE,EAAc;SAChC;QAED;;;;;WAKG;QACH,aAAa,EAAE;YACb;;;eAGG;YACH,eAAe,EAAE,IAAI;YAErB;;;eAGG;YACH,cAAc,EAAE,CAAC,QAAQ,CAAa;SACvC;KACF;CACF,CAAC;AAEF,eAAe,IAAI,CAAC"}
1
+ {"version":3,"file":"rbac.js","sourceRoot":"","sources":["../../../src/config/rbac.ts"],"names":[],"mappings":"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"}
@@ -269,11 +269,43 @@ export interface IRbacModelDescriptor extends IModelDescriptor {
269
269
  */
270
270
  RbacRelationScope?: 'where' | 'join';
271
271
  }
272
+ /**
273
+ * What a client may tell the user about the password rule BEFORE they submit
274
+ * one - the human-facing counterpart of {@link PasswordValidationProvider.check}.
275
+ *
276
+ * Every constraint is optional: a provider that validates in a way it cannot
277
+ * describe (a breach-list lookup, say) answers with only what it can, and a
278
+ * client renders whatever is present. `pattern` is an ECMAScript regular
279
+ * expression source, the JSON-schema dialect, so a browser can compile it with
280
+ * `new RegExp(pattern)` and refuse a password locally with the same verdict the
281
+ * server will give.
282
+ */
283
+ export interface IPasswordPolicy {
284
+ /** Fewest characters accepted. */
285
+ minLength?: number;
286
+ /** Most characters accepted. */
287
+ maxLength?: number;
288
+ /** ECMAScript regular expression source every accepted password matches. */
289
+ pattern?: string;
290
+ /**
291
+ * Human-readable statement of the rule, as configured by the application
292
+ * (`rbac.password.validation.description`). Copy, not a constraint: a client
293
+ * shows it next to the password field; it never validates against it.
294
+ */
295
+ description?: string;
296
+ }
272
297
  /**
273
298
  * Interface to provide implementation of password rule validation
274
299
  */
275
300
  export declare abstract class PasswordValidationProvider {
276
301
  abstract check(password: string): boolean;
302
+ /**
303
+ * Describe the rule `check()` enforces, for display before a password is
304
+ * chosen. The default says nothing at all - an implementation that can
305
+ * state its constraints should override this so clients stop hardcoding a
306
+ * mirror of the server rule.
307
+ */
308
+ describe(): IPasswordPolicy;
277
309
  }
278
310
  export declare class UserProfile<T> {
279
311
  User: User;
@@ -1 +1 @@
1
- {"version":3,"file":"interfaces.d.ts","sourceRoot":"","sources":["../../src/interfaces.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"interfaces.d.ts","sourceRoot":"","sources":["../../src/interfaces.ts"],"names":[],"mappings":"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"}
@@ -68,6 +68,15 @@ __decorate([
68
68
  * Interface to provide implementation of password rule validation
69
69
  */
70
70
  export class PasswordValidationProvider {
71
+ /**
72
+ * Describe the rule `check()` enforces, for display before a password is
73
+ * chosen. The default says nothing at all - an implementation that can
74
+ * state its constraints should override this so clients stop hardcoding a
75
+ * mirror of the server rule.
76
+ */
77
+ describe() {
78
+ return {};
79
+ }
71
80
  }
72
81
  export class UserProfile {
73
82
  constructor(user, data) {
@@ -1 +1 @@
1
- {"version":3,"file":"interfaces.js","sourceRoot":"","sources":["../../src/interfaces.ts"],"names":[],"mappings":";;;;;;;;;AACA,OAAO,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAC3C,OAAO,EAAE,iBAAiB,EAAE,MAAM,wBAAwB,CAAC;AAE3D,OAAO,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAC;AAkEjC;;;;;GAKG;AACH,MAAM,OAAgB,yBAAyB;CAU9C;AAED;;GAEG;AACH,MAAM,OAAgB,gBAAgB;CAuBrC;AAED;;;;;GAKG;AACH,MAAM,OAAgB,YAAY;CAgEjC;AAED;;;;;;GAMG;AACH,MAAM,OAAgB,qBAAqB;CAwB1C;AAED,MAAM,OAAgB,eAA+C,SAAQ,YAAY;IA8DvF;;OAEG;IACO,sBAAsB,CAAC,CAAW;QAC1C,CAAC,CAAC,UAAU,GAAG,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;IAC5C,CAAC;IAED;;OAEG;IACO,sBAAsB,CAAC,CAAW;QAC1C,CAAC,CAAC,UAAU,GAAG,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;IAC1C,CAAC;IAED;;OAEG;IACO,SAAS,CAAC,CAAW;QAC7B,OAAO,CAAC,CAAC,CAAC,CAAC,UAAU,IAAI,CAAC,CAAC,UAAU,IAAI,QAAQ,CAAC,GAAG,EAAE,CAAC;IAC1D,CAAC;CACF;AA3EW;IADT,iBAAiB,CAAC,yBAAyB,CAAC;8BACtB,yBAAyB;mDAAC;AA4FnD;;GAEG;AACH,MAAM,OAAgB,0BAA0B;CAE/C;AAGD,MAAM,OAAO,WAAW;IAItB,YAAmB,IAAW,EAAE,IAAU;QACxC,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;QACjB,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC;IAC7B,CAAC;CACF;AAED;;;;;GAKG;AACH,MAAM,OAAgB,mBAAmB;CAExC"}
1
+ {"version":3,"file":"interfaces.js","sourceRoot":"","sources":["../../src/interfaces.ts"],"names":[],"mappings":";;;;;;;;;AACA,OAAO,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAC3C,OAAO,EAAE,iBAAiB,EAAE,MAAM,wBAAwB,CAAC;AAE3D,OAAO,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAC;AAkEjC;;;;;GAKG;AACH,MAAM,OAAgB,yBAAyB;CAU9C;AAED;;GAEG;AACH,MAAM,OAAgB,gBAAgB;CAuBrC;AAED;;;;;GAKG;AACH,MAAM,OAAgB,YAAY;CAgEjC;AAED;;;;;;GAMG;AACH,MAAM,OAAgB,qBAAqB;CAwB1C;AAED,MAAM,OAAgB,eAA+C,SAAQ,YAAY;IA8DvF;;OAEG;IACO,sBAAsB,CAAC,CAAW;QAC1C,CAAC,CAAC,UAAU,GAAG,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;IAC5C,CAAC;IAED;;OAEG;IACO,sBAAsB,CAAC,CAAW;QAC1C,CAAC,CAAC,UAAU,GAAG,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;IAC1C,CAAC;IAED;;OAEG;IACO,SAAS,CAAC,CAAW;QAC7B,OAAO,CAAC,CAAC,CAAC,CAAC,UAAU,IAAI,CAAC,CAAC,UAAU,IAAI,QAAQ,CAAC,GAAG,EAAE,CAAC;IAC1D,CAAC;CACF;AA3EW;IADT,iBAAiB,CAAC,yBAAyB,CAAC;8BACtB,yBAAyB;mDAAC;AAyHnD;;GAEG;AACH,MAAM,OAAgB,0BAA0B;IAG9C;;;;;OAKG;IACI,QAAQ;QACb,OAAO,EAAE,CAAC;IACZ,CAAC;CACF;AAGD,MAAM,OAAO,WAAW;IAItB,YAAmB,IAAW,EAAE,IAAU;QACxC,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;QACjB,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC;IAC7B,CAAC;CACF;AAED;;;;;GAKG;AACH,MAAM,OAAgB,mBAAmB;CAExC"}
@@ -1,4 +1,4 @@
1
- import { PasswordProvider, PasswordValidationProvider } from './interfaces.js';
1
+ import { IPasswordPolicy, PasswordProvider, PasswordValidationProvider } from './interfaces.js';
2
2
  import { DataValidator } from '@spinajs/validation';
3
3
  /**
4
4
  * Simple password service that use argon2 hash alghoritm
@@ -37,7 +37,23 @@ export declare class BasicPasswordProvider implements PasswordProvider {
37
37
  */
38
38
  export declare class BasicPasswordValidationProvider extends PasswordValidationProvider {
39
39
  protected ValidationSchema: object;
40
+ /**
41
+ * Optional human-readable statement of the rule, surfaced verbatim through
42
+ * {@link describe}. The schema below is what is ENFORCED; this is what is
43
+ * SHOWN - an application whose rule is a bare regex has no other way to tell
44
+ * the user what that regex demands.
45
+ */
46
+ protected Description: string | undefined;
40
47
  protected Validator: DataValidator;
41
48
  check(password: string): boolean;
49
+ /**
50
+ * The string constraints of the configured JSON schema, lifted out so a
51
+ * client can show and pre-check them. Only the three keywords a string
52
+ * schema commonly carries are read; anything else in the schema (`enum`,
53
+ * `format`, `allOf` ...) still applies in `check()` but is not described -
54
+ * the schema itself is not returned, because it is server configuration and
55
+ * may carry more than a user needs to see.
56
+ */
57
+ describe(): IPasswordPolicy;
42
58
  }
43
59
  //# sourceMappingURL=password.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"password.d.ts","sourceRoot":"","sources":["../../src/password.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,gBAAgB,EAAE,0BAA0B,EAAE,MAAM,iBAAiB,CAAC;AAI/E,OAAO,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AA6BpD;;GAEG;AACH,qBACa,qBAAsB,YAAW,gBAAgB;IAE5D,SAAS,CAAC,gBAAgB,EAAE;QAAE,MAAM,EAAE,MAAM,CAAC;QAAC,UAAU,EAAE,MAAM,EAAE,CAAA;KAAE,CAAC;IAGrE,SAAS,CAAC,UAAU,EAAE,0BAA0B,CAAC;IAEpC,IAAI,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAGhD;IAED;;;;;;OAMG;IACU,MAAM,CAAC,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,CAEpE;IAED;;;;;;;;;;;OAWG;IACI,QAAQ,IAAI,MAAM,CAoBxB;CACF;AAED;;GAEG;AACH,qBACa,+BAAgC,SAAQ,0BAA0B;IAE7E,SAAS,CAAC,gBAAgB,EAAE,MAAM,CAAC;IAGnC,SAAS,CAAC,SAAS,EAAE,aAAa,CAAC;IAE5B,KAAK,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAGtC;CACF"}
1
+ {"version":3,"file":"password.d.ts","sourceRoot":"","sources":["../../src/password.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,eAAe,EAAE,gBAAgB,EAAE,0BAA0B,EAAE,MAAM,iBAAiB,CAAC;AAIhG,OAAO,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AA6BpD;;GAEG;AACH,qBACa,qBAAsB,YAAW,gBAAgB;IAE5D,SAAS,CAAC,gBAAgB,EAAE;QAAE,MAAM,EAAE,MAAM,CAAC;QAAC,UAAU,EAAE,MAAM,EAAE,CAAA;KAAE,CAAC;IAGrE,SAAS,CAAC,UAAU,EAAE,0BAA0B,CAAC;IAEpC,IAAI,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAGhD;IAED;;;;;;OAMG;IACU,MAAM,CAAC,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,CAEpE;IAED;;;;;;;;;;;OAWG;IACI,QAAQ,IAAI,MAAM,CAoBxB;CACF;AAED;;GAEG;AACH,qBACa,+BAAgC,SAAQ,0BAA0B;IAE7E,SAAS,CAAC,gBAAgB,EAAE,MAAM,CAAC;IAEnC;;;;;OAKG;IAEH,SAAS,CAAC,WAAW,EAAE,MAAM,GAAG,SAAS,CAAC;IAG1C,SAAS,CAAC,SAAS,EAAE,aAAa,CAAC;IAE5B,KAAK,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAGtC;IAED;;;;;;;OAOG;IACI,QAAQ,IAAI,eAAe,CAqBjC;CACF"}
@@ -106,11 +106,40 @@ let BasicPasswordValidationProvider = class BasicPasswordValidationProvider exte
106
106
  const [result] = this.Validator.tryValidate(this.ValidationSchema, password);
107
107
  return result;
108
108
  }
109
+ /**
110
+ * The string constraints of the configured JSON schema, lifted out so a
111
+ * client can show and pre-check them. Only the three keywords a string
112
+ * schema commonly carries are read; anything else in the schema (`enum`,
113
+ * `format`, `allOf` ...) still applies in `check()` but is not described -
114
+ * the schema itself is not returned, because it is server configuration and
115
+ * may carry more than a user needs to see.
116
+ */
117
+ describe() {
118
+ const schema = (this.ValidationSchema ?? {});
119
+ const policy = {};
120
+ if (typeof schema.minLength === 'number') {
121
+ policy.minLength = schema.minLength;
122
+ }
123
+ if (typeof schema.maxLength === 'number') {
124
+ policy.maxLength = schema.maxLength;
125
+ }
126
+ if (typeof schema.pattern === 'string') {
127
+ policy.pattern = schema.pattern;
128
+ }
129
+ if (typeof this.Description === 'string' && this.Description.trim() !== '') {
130
+ policy.description = this.Description;
131
+ }
132
+ return policy;
133
+ }
109
134
  };
110
135
  __decorate([
111
136
  Config('rbac.password.validation.rule'),
112
137
  __metadata("design:type", Object)
113
138
  ], BasicPasswordValidationProvider.prototype, "ValidationSchema", void 0);
139
+ __decorate([
140
+ Config('rbac.password.validation.description', { defaultValue: undefined }),
141
+ __metadata("design:type", Object)
142
+ ], BasicPasswordValidationProvider.prototype, "Description", void 0);
114
143
  __decorate([
115
144
  Autoinject(),
116
145
  __metadata("design:type", DataValidator)
@@ -1 +1 @@
1
- {"version":3,"file":"password.js","sourceRoot":"","sources":["../../src/password.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"password.js","sourceRoot":"","sources":["../../src/password.ts"],"names":[],"mappings":"AAAA,4CAA4C;;;;;;;;;;AAE5C,OAAO,EAAmB,gBAAgB,EAAE,0BAA0B,EAAE,MAAM,iBAAiB,CAAC;AAChG,OAAO,KAAK,KAAK,MAAM,QAAQ,CAAC;AAChC,OAAO,EAAE,UAAU,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AACrD,OAAO,EAAE,iBAAiB,EAAE,MAAM,EAAE,MAAM,wBAAwB,CAAC;AACnE,OAAO,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AACpD,OAAO,EAAE,qBAAqB,EAAE,MAAM,qBAAqB,CAAC;AAC5D,OAAO,EAAE,SAAS,EAAE,MAAM,QAAQ,CAAC;AAEnC;;;;;;;;;;;GAWG;AACH,MAAM,iBAAiB,GAAG,EAAE,CAAC;AAE7B;;;;;;;;GAQG;AACH,MAAM,iBAAiB,GAAG,EAAE,MAAM,EAAE,EAAE,EAAE,UAAU,EAAE,CAAC,4BAA4B,EAAE,4BAA4B,EAAE,YAAY,CAAC,EAAE,CAAC;AAEjI;;GAEG;AAEI,IAAM,qBAAqB,GAA3B,MAAM,qBAAqB;IAOzB,KAAK,CAAC,IAAI,CAAC,KAAa;QAC7B,gDAAgD;QAChD,OAAO,MAAM,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IACjC,CAAC;IAED;;;;;;OAMG;IACI,KAAK,CAAC,MAAM,CAAC,IAAY,EAAE,QAAgB;QAChD,OAAO,MAAM,KAAK,CAAC,MAAM,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAC;IAC5C,CAAC;IAED;;;;;;;;;;;OAWG;IACI,QAAQ;QACb,MAAM,OAAO,GAAG,IAAI,CAAC,gBAAgB,IAAI,iBAAiB,CAAC;QAC3D,MAAM,MAAM,GAAG,OAAO,CAAC,MAAM,IAAI,iBAAiB,CAAC,MAAM,CAAC;QAC1D,MAAM,IAAI,GAAG,CAAC,OAAO,CAAC,UAAU,IAAI,iBAAiB,CAAC,UAAU,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QAE3E,IAAI,MAAM,GAAG,CAAC,IAAI,IAAI,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YACpC,MAAM,IAAI,qBAAqB,CAAC,sFAAsF,CAAC,CAAC;QAC1H,CAAC;QAED,KAAK,IAAI,OAAO,GAAG,CAAC,EAAE,OAAO,GAAG,iBAAiB,EAAE,OAAO,EAAE,EAAE,CAAC;YAC7D,yEAAyE;YACzE,6CAA6C;YAC7C,MAAM,SAAS,GAAG,KAAK,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,EAAE,GAAG,EAAE,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;YAEtF,IAAI,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC,SAAS,CAAC,EAAE,CAAC;gBACrC,OAAO,SAAS,CAAC;YACnB,CAAC;QACH,CAAC;QAED,MAAM,IAAI,qBAAqB,CAAC,6EAA6E,iBAAiB,2GAA2G,CAAC,CAAC;IAC7O,CAAC;CACF,CAAA;AAtDW;IADT,MAAM,CAAC,yBAAyB,CAAC;;+DACmC;AAG3D;IADT,iBAAiB,CAAC,0BAA0B,CAAC;8BACxB,0BAA0B;yDAAC;AALtC,qBAAqB;IADjC,UAAU,CAAC,gBAAgB,CAAC;GAChB,qBAAqB,CAwDjC;;AAED;;GAEG;AAEI,IAAM,+BAA+B,GAArC,MAAM,+BAAgC,SAAQ,0BAA0B;IAgBtE,KAAK,CAAC,QAAgB;QAC3B,MAAM,CAAC,MAAM,CAAC,GAAG,IAAI,CAAC,SAAS,CAAC,WAAW,CAAC,IAAI,CAAC,gBAAgB,EAAE,QAAe,CAAC,CAAC;QACpF,OAAO,MAAM,CAAC;IAChB,CAAC;IAED;;;;;;;OAOG;IACI,QAAQ;QACb,MAAM,MAAM,GAAG,CAAC,IAAI,CAAC,gBAAgB,IAAI,EAAE,CAAoE,CAAC;QAChH,MAAM,MAAM,GAAoB,EAAE,CAAC;QAEnC,IAAI,OAAO,MAAM,CAAC,SAAS,KAAK,QAAQ,EAAE,CAAC;YACzC,MAAM,CAAC,SAAS,GAAG,MAAM,CAAC,SAAS,CAAC;QACtC,CAAC;QAED,IAAI,OAAO,MAAM,CAAC,SAAS,KAAK,QAAQ,EAAE,CAAC;YACzC,MAAM,CAAC,SAAS,GAAG,MAAM,CAAC,SAAS,CAAC;QACtC,CAAC;QAED,IAAI,OAAO,MAAM,CAAC,OAAO,KAAK,QAAQ,EAAE,CAAC;YACvC,MAAM,CAAC,OAAO,GAAG,MAAM,CAAC,OAAO,CAAC;QAClC,CAAC;QAED,IAAI,OAAO,IAAI,CAAC,WAAW,KAAK,QAAQ,IAAI,IAAI,CAAC,WAAW,CAAC,IAAI,EAAE,KAAK,EAAE,EAAE,CAAC;YAC3E,MAAM,CAAC,WAAW,GAAG,IAAI,CAAC,WAAW,CAAC;QACxC,CAAC;QAED,OAAO,MAAM,CAAC;IAChB,CAAC;CACF,CAAA;AAjDW;IADT,MAAM,CAAC,+BAA+B,CAAC;;yEACL;AASzB;IADT,MAAM,CAAC,sCAAsC,EAAE,EAAE,YAAY,EAAE,SAA+B,EAAE,CAAC;;oEACxD;AAGhC;IADT,UAAU,EAAE;8BACQ,aAAa;kEAAC;AAdxB,+BAA+B;IAD3C,UAAU,CAAC,0BAA0B,CAAC;GAC1B,+BAA+B,CAmD3C"}