@figulus/validator-core 0.5.0-alpha-dev-04 → 0.5.0-alpha-dev-05

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/index.d.ts CHANGED
@@ -1,4 +1,4 @@
1
1
  export { Helpers, RegistryValidator } from "./registry-validator.js";
2
- export { settingsSchema } from "./settings.js";
3
- export type { Settings } from "./settings.js";
2
+ export { settingsSchemaInput, settingsSchemaOutput } from "./settings.js";
3
+ export type { SettingsOutput, SettingsInput } from "./settings.js";
4
4
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,iBAAiB,EAAE,MAAM,yBAAyB,CAAC;AACrE,OAAO,EAAE,cAAc,EAAE,MAAM,eAAe,CAAC;AAC/C,YAAY,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,iBAAiB,EAAE,MAAM,yBAAyB,CAAC;AACrE,OAAO,EAAE,mBAAmB,EAAE,oBAAoB,EAAE,MAAM,eAAe,CAAC;AAC1E,YAAY,EAAE,cAAc,EAAE,aAAa,EAAE,MAAM,eAAe,CAAC"}
package/dist/index.js CHANGED
@@ -1,3 +1,3 @@
1
1
  export { RegistryValidator } from "./registry-validator.js";
2
- export { settingsSchema } from "./settings.js";
2
+ export { settingsSchemaInput, settingsSchemaOutput } from "./settings.js";
3
3
  //# sourceMappingURL=index.js.map
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAW,iBAAiB,EAAE,MAAM,yBAAyB,CAAC;AACrE,OAAO,EAAE,cAAc,EAAE,MAAM,eAAe,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAW,iBAAiB,EAAE,MAAM,yBAAyB,CAAC;AACrE,OAAO,EAAE,mBAAmB,EAAE,oBAAoB,EAAE,MAAM,eAAe,CAAC"}
@@ -1,5 +1,5 @@
1
1
  import { Helpers } from "../registry-validator.js";
2
2
  import { ValidationError } from "../validation-result.js";
3
- import { Settings } from "../settings.js";
4
- export declare function checkPushLimit(prAuthor: string, namespace: string, helpers: Helpers, settings: Settings): Promise<ValidationError | null>;
3
+ import { SettingsOutput } from "../settings.js";
4
+ export declare function checkPushLimit(prAuthor: string, namespace: string, helpers: Helpers, settings: SettingsOutput): Promise<ValidationError | null>;
5
5
  //# sourceMappingURL=check-push-limit.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"check-push-limit.d.ts","sourceRoot":"","sources":["../../src/lib/check-push-limit.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,0BAA0B,CAAC;AAMnD,OAAO,EACL,eAAe,EAGhB,MAAM,yBAAyB,CAAC;AACjC,OAAO,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAC;AAE1C,wBAAsB,cAAc,CAClC,QAAQ,EAAE,MAAM,EAChB,SAAS,EAAE,MAAM,EACjB,OAAO,EAAE,OAAO,EAChB,QAAQ,EAAE,QAAQ,GACjB,OAAO,CAAC,eAAe,GAAG,IAAI,CAAC,CAyEjC"}
1
+ {"version":3,"file":"check-push-limit.d.ts","sourceRoot":"","sources":["../../src/lib/check-push-limit.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,0BAA0B,CAAC;AAMnD,OAAO,EACL,eAAe,EAGhB,MAAM,yBAAyB,CAAC;AACjC,OAAO,EAAE,cAAc,EAAE,MAAM,gBAAgB,CAAC;AAEhD,wBAAsB,cAAc,CAClC,QAAQ,EAAE,MAAM,EAChB,SAAS,EAAE,MAAM,EACjB,OAAO,EAAE,OAAO,EAChB,QAAQ,EAAE,cAAc,GACvB,OAAO,CAAC,eAAe,GAAG,IAAI,CAAC,CAyEjC"}
@@ -1 +1 @@
1
- {"version":3,"file":"check-push-limit.js","sourceRoot":"","sources":["../../src/lib/check-push-limit.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"check-push-limit.js","sourceRoot":"","sources":["../../src/lib/check-push-limit.ts"],"names":[],"mappings":"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"}
@@ -1,4 +1,4 @@
1
- import { Settings } from "../settings.js";
1
+ import { SettingsOutput } from "../settings.js";
2
2
  import { ValidationError } from "../validation-result.js";
3
3
  export interface PushLimitValue {
4
4
  unit: "daily" | "weekly";
@@ -8,11 +8,11 @@ export declare function validatePushLimitConstraints(pushLimit: PushLimitValue,
8
8
  min: number;
9
9
  max: number;
10
10
  }, context: string): ValidationError | null;
11
- export declare function getPushLimitConstraintsForEditor(settings: Settings, unit: "daily" | "weekly"): {
11
+ export declare function getPushLimitConstraintsForEditor(settings: SettingsOutput, unit: "daily" | "weekly"): {
12
12
  min: number;
13
13
  max: number;
14
14
  };
15
- export declare function getPushLimitConstraintsForMaintainer(settings: Settings, unit: "daily" | "weekly"): {
15
+ export declare function getPushLimitConstraintsForMaintainer(settings: SettingsOutput, unit: "daily" | "weekly"): {
16
16
  min: number;
17
17
  max: number;
18
18
  };
@@ -1 +1 @@
1
- {"version":3,"file":"validate-push-limit-constraints.d.ts","sourceRoot":"","sources":["../../src/lib/validate-push-limit-constraints.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAC;AAC1C,OAAO,EACL,eAAe,EAGhB,MAAM,yBAAyB,CAAC;AAEjC,MAAM,WAAW,cAAc;IAC7B,IAAI,EAAE,OAAO,GAAG,QAAQ,CAAC;IACzB,KAAK,EAAE,MAAM,CAAC;CACf;AAED,wBAAgB,4BAA4B,CAC1C,SAAS,EAAE,cAAc,EACzB,WAAW,EAAE;IAAE,GAAG,EAAE,MAAM,CAAC;IAAC,GAAG,EAAE,MAAM,CAAA;CAAE,EACzC,OAAO,EAAE,MAAM,GACd,eAAe,GAAG,IAAI,CAQxB;AAED,wBAAgB,gCAAgC,CAC9C,QAAQ,EAAE,QAAQ,EAClB,IAAI,EAAE,OAAO,GAAG,QAAQ,GACvB;IAAE,GAAG,EAAE,MAAM,CAAC;IAAC,GAAG,EAAE,MAAM,CAAA;CAAE,CAE9B;AAED,wBAAgB,oCAAoC,CAClD,QAAQ,EAAE,QAAQ,EAClB,IAAI,EAAE,OAAO,GAAG,QAAQ,GACvB;IAAE,GAAG,EAAE,MAAM,CAAC;IAAC,GAAG,EAAE,MAAM,CAAA;CAAE,CAE9B"}
1
+ {"version":3,"file":"validate-push-limit-constraints.d.ts","sourceRoot":"","sources":["../../src/lib/validate-push-limit-constraints.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,gBAAgB,CAAC;AAChD,OAAO,EACL,eAAe,EAGhB,MAAM,yBAAyB,CAAC;AAEjC,MAAM,WAAW,cAAc;IAC7B,IAAI,EAAE,OAAO,GAAG,QAAQ,CAAC;IACzB,KAAK,EAAE,MAAM,CAAC;CACf;AAED,wBAAgB,4BAA4B,CAC1C,SAAS,EAAE,cAAc,EACzB,WAAW,EAAE;IAAE,GAAG,EAAE,MAAM,CAAC;IAAC,GAAG,EAAE,MAAM,CAAA;CAAE,EACzC,OAAO,EAAE,MAAM,GACd,eAAe,GAAG,IAAI,CAQxB;AAED,wBAAgB,gCAAgC,CAC9C,QAAQ,EAAE,cAAc,EACxB,IAAI,EAAE,OAAO,GAAG,QAAQ,GACvB;IAAE,GAAG,EAAE,MAAM,CAAC;IAAC,GAAG,EAAE,MAAM,CAAA;CAAE,CAE9B;AAED,wBAAgB,oCAAoC,CAClD,QAAQ,EAAE,cAAc,EACxB,IAAI,EAAE,OAAO,GAAG,QAAQ,GACvB;IAAE,GAAG,EAAE,MAAM,CAAC;IAAC,GAAG,EAAE,MAAM,CAAA;CAAE,CAE9B"}
@@ -1 +1 @@
1
- {"version":3,"file":"validate-push-limit-constraints.js","sourceRoot":"","sources":["../../src/lib/validate-push-limit-constraints.ts"],"names":[],"mappings":"AACA,OAAO,EAEL,WAAW,EACX,WAAW,GACZ,MAAM,yBAAyB,CAAC;AAOjC,MAAM,UAAU,4BAA4B,CAC1C,SAAyB,EACzB,WAAyC,EACzC,OAAe;IAEf,IAAI,SAAS,CAAC,KAAK,GAAG,WAAW,CAAC,GAAG,IAAI,SAAS,CAAC,KAAK,GAAG,WAAW,CAAC,GAAG,EAAE,CAAC;QAC3E,OAAO,WAAW,CAChB,GAAG,OAAO,eAAe,SAAS,CAAC,KAAK,IAAI,SAAS,CAAC,IAAI,8BAA8B,WAAW,CAAC,GAAG,IAAI,WAAW,CAAC,GAAG,EAAE,EAC5H,WAAW,CAAC,mBAAmB,CAChC,CAAC;IACJ,CAAC;IACD,OAAO,IAAI,CAAC;AACd,CAAC;AAED,MAAM,UAAU,gCAAgC,CAC9C,QAAkB,EAClB,IAAwB;IAExB,OAAO,QAAQ,CAAC,UAAU,CAAC,cAAc,CAAC,eAAe,CAAC,IAAI,CAAC,CAAC;AAClE,CAAC;AAED,MAAM,UAAU,oCAAoC,CAClD,QAAkB,EAClB,IAAwB;IAExB,OAAO,QAAQ,CAAC,UAAU,CAAC,cAAc,CAAC,mBAAmB,CAAC,IAAI,CAAC,CAAC;AACtE,CAAC"}
1
+ {"version":3,"file":"validate-push-limit-constraints.js","sourceRoot":"","sources":["../../src/lib/validate-push-limit-constraints.ts"],"names":[],"mappings":"AACA,OAAO,EAEL,WAAW,EACX,WAAW,GACZ,MAAM,yBAAyB,CAAC;AAOjC,MAAM,UAAU,4BAA4B,CAC1C,SAAyB,EACzB,WAAyC,EACzC,OAAe;IAEf,IAAI,SAAS,CAAC,KAAK,GAAG,WAAW,CAAC,GAAG,IAAI,SAAS,CAAC,KAAK,GAAG,WAAW,CAAC,GAAG,EAAE,CAAC;QAC3E,OAAO,WAAW,CAChB,GAAG,OAAO,eAAe,SAAS,CAAC,KAAK,IAAI,SAAS,CAAC,IAAI,8BAA8B,WAAW,CAAC,GAAG,IAAI,WAAW,CAAC,GAAG,EAAE,EAC5H,WAAW,CAAC,mBAAmB,CAChC,CAAC;IACJ,CAAC;IACD,OAAO,IAAI,CAAC;AACd,CAAC;AAED,MAAM,UAAU,gCAAgC,CAC9C,QAAwB,EACxB,IAAwB;IAExB,OAAO,QAAQ,CAAC,UAAU,CAAC,cAAc,CAAC,eAAe,CAAC,IAAI,CAAC,CAAC;AAClE,CAAC;AAED,MAAM,UAAU,oCAAoC,CAClD,QAAwB,EACxB,IAAwB;IAExB,OAAO,QAAQ,CAAC,UAAU,CAAC,cAAc,CAAC,mBAAmB,CAAC,IAAI,CAAC,CAAC;AACtE,CAAC"}
package/dist/pr.d.ts CHANGED
@@ -1,12 +1,12 @@
1
1
  import { RegistryValidator, Helpers } from "./registry-validator";
2
2
  import { PullRequestInfo, ValidationSummary } from "./types.js";
3
- import { Settings } from "./settings.js";
3
+ import { SettingsOutput } from "./settings.js";
4
4
  export declare class PR {
5
5
  prInfo: PullRequestInfo;
6
6
  registry: RegistryValidator;
7
7
  constructor(prInfo: PullRequestInfo, registry: RegistryValidator);
8
8
  getAuthor(): string;
9
- getSettings(): Settings;
9
+ getSettings(): SettingsOutput;
10
10
  getHelpers(): Helpers;
11
11
  validate(): Promise<ValidationSummary>;
12
12
  }
package/dist/pr.d.ts.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"pr.d.ts","sourceRoot":"","sources":["../src/pr.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAE,OAAO,EAAE,MAAM,sBAAsB,CAAC;AAClE,OAAO,EACL,eAAe,EACf,iBAAiB,EAElB,MAAM,YAAY,CAAC;AAEpB,OAAO,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AAEzC,qBAAa,EAAE;IAEJ,MAAM,EAAE,eAAe;IACvB,QAAQ,EAAE,iBAAiB;gBAD3B,MAAM,EAAE,eAAe,EACvB,QAAQ,EAAE,iBAAiB;IAG7B,SAAS,IAAI,MAAM;IAInB,WAAW,IAAI,QAAQ;IAIvB,UAAU,IAAI,OAAO;IAIf,QAAQ,IAAI,OAAO,CAAC,iBAAiB,CAAC;CAoEpD"}
1
+ {"version":3,"file":"pr.d.ts","sourceRoot":"","sources":["../src/pr.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAE,OAAO,EAAE,MAAM,sBAAsB,CAAC;AAClE,OAAO,EACL,eAAe,EACf,iBAAiB,EAElB,MAAM,YAAY,CAAC;AAEpB,OAAO,EAAE,cAAc,EAAE,MAAM,eAAe,CAAC;AAE/C,qBAAa,EAAE;IAEJ,MAAM,EAAE,eAAe;IACvB,QAAQ,EAAE,iBAAiB;gBAD3B,MAAM,EAAE,eAAe,EACvB,QAAQ,EAAE,iBAAiB;IAG7B,SAAS,IAAI,MAAM;IAInB,WAAW,IAAI,cAAc;IAI7B,UAAU,IAAI,OAAO;IAIf,QAAQ,IAAI,OAAO,CAAC,iBAAiB,CAAC;CAoEpD"}
@@ -1,4 +1,4 @@
1
- import { Settings } from "./settings.js";
1
+ import { SettingsOutput, SettingsInput } from "./settings.js";
2
2
  import { PullRequestInfo } from "./types.js";
3
3
  export interface Helpers {
4
4
  console: {
@@ -30,8 +30,8 @@ export interface Helpers {
30
30
  }
31
31
  export declare class RegistryValidator {
32
32
  helpers: Helpers;
33
- settings: Settings;
34
- constructor(helpers: Helpers, settings: Settings);
33
+ settings: SettingsOutput;
34
+ constructor(helpers: Helpers, settingsInput: SettingsInput);
35
35
  validatePr(prInfo: PullRequestInfo): Promise<import("./types.js").ValidationSummary>;
36
36
  isMaintainer(user: string): boolean;
37
37
  isNamespaceRestricted(namespace: string): boolean;
@@ -1 +1 @@
1
- {"version":3,"file":"registry-validator.d.ts","sourceRoot":"","sources":["../src/registry-validator.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AACzC,OAAO,EAAE,eAAe,EAAE,MAAM,YAAY,CAAC;AAE7C,MAAM,WAAW,OAAO;IACtB,OAAO,EAAE;QACP,GAAG,EAAE,CAAC,GAAG,IAAI,EAAE,GAAG,EAAE,KAAK,IAAI,CAAC;QAC9B,KAAK,EAAE,CAAC,GAAG,IAAI,EAAE,GAAG,EAAE,KAAK,IAAI,CAAC;KACjC,CAAC;IACF,MAAM,EAAE;QACN,mBAAmB,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,MAAM,CAAC;KAC/C,CAAC;IACF,EAAE,EAAE;QACF,WAAW,EAAE,CAAC,GAAG,KAAK,EAAE,MAAM,EAAE,KAAK,MAAM,CAAC;QAC5C,SAAS,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,MAAM,EAAE,CAAC;QACtC,eAAe,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,OAAO,CAAC;QAC3C,cAAc,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,MAAM,CAAC;KAC1C,CAAC;IACF,GAAG,EAAE;QACH,QAAQ,EAAE,CAAC,QAAQ,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,MAAM,KAAK,OAAO,CAAC,MAAM,CAAC,CAAC;QACjE,SAAS,EAAE,MAAM,OAAO,CACtB;YACE,GAAG,EAAE,MAAM,CAAC;YACZ,UAAU,EAAE,MAAM,CAAC;YACnB,IAAI,EAAE;gBAAE,EAAE,EAAE,MAAM,CAAA;aAAE,CAAC;SACtB,EAAE,CACJ,CAAC;QACF,UAAU,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,OAAO,CACpC;YACE,QAAQ,EAAE,MAAM,CAAC;SAClB,EAAE,CACJ,CAAC;KACH,CAAC;CACH;AAED,qBAAa,iBAAiB;IAEnB,OAAO,EAAE,OAAO;IAChB,QAAQ,EAAE,QAAQ;gBADlB,OAAO,EAAE,OAAO,EAChB,QAAQ,EAAE,QAAQ;IAGd,UAAU,CAAC,MAAM,EAAE,eAAe;IAIxC,YAAY,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO;IAInC,qBAAqB,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO;CAGzD"}
1
+ {"version":3,"file":"registry-validator.d.ts","sourceRoot":"","sources":["../src/registry-validator.ts"],"names":[],"mappings":"AACA,OAAO,EAAgB,cAAc,EAAE,aAAa,EAAE,MAAM,eAAe,CAAC;AAC5E,OAAO,EAAE,eAAe,EAAE,MAAM,YAAY,CAAC;AAE7C,MAAM,WAAW,OAAO;IACtB,OAAO,EAAE;QACP,GAAG,EAAE,CAAC,GAAG,IAAI,EAAE,GAAG,EAAE,KAAK,IAAI,CAAC;QAC9B,KAAK,EAAE,CAAC,GAAG,IAAI,EAAE,GAAG,EAAE,KAAK,IAAI,CAAC;KACjC,CAAC;IACF,MAAM,EAAE;QACN,mBAAmB,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,MAAM,CAAC;KAC/C,CAAC;IACF,EAAE,EAAE;QACF,WAAW,EAAE,CAAC,GAAG,KAAK,EAAE,MAAM,EAAE,KAAK,MAAM,CAAC;QAC5C,SAAS,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,MAAM,EAAE,CAAC;QACtC,eAAe,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,OAAO,CAAC;QAC3C,cAAc,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,MAAM,CAAC;KAC1C,CAAC;IACF,GAAG,EAAE;QACH,QAAQ,EAAE,CAAC,QAAQ,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,MAAM,KAAK,OAAO,CAAC,MAAM,CAAC,CAAC;QACjE,SAAS,EAAE,MAAM,OAAO,CACtB;YACE,GAAG,EAAE,MAAM,CAAC;YACZ,UAAU,EAAE,MAAM,CAAC;YACnB,IAAI,EAAE;gBAAE,EAAE,EAAE,MAAM,CAAA;aAAE,CAAC;SACtB,EAAE,CACJ,CAAC;QACF,UAAU,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,OAAO,CACpC;YACE,QAAQ,EAAE,MAAM,CAAC;SAClB,EAAE,CACJ,CAAC;KACH,CAAC;CACH;AAED,qBAAa,iBAAiB;IAInB,OAAO,EAAE,OAAO;IAHlB,QAAQ,EAAE,cAAc,CAAC;gBAGvB,OAAO,EAAE,OAAO,EACvB,aAAa,EAAE,aAAa;IAKjB,UAAU,CAAC,MAAM,EAAE,eAAe;IAIxC,YAAY,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO;IAInC,qBAAqB,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO;CAGzD"}
@@ -1,10 +1,11 @@
1
1
  import { PR } from "./pr.js";
2
+ import { loadSettings } from "./settings.js";
2
3
  export class RegistryValidator {
3
4
  helpers;
4
5
  settings;
5
- constructor(helpers, settings) {
6
+ constructor(helpers, settingsInput) {
6
7
  this.helpers = helpers;
7
- this.settings = settings;
8
+ this.settings = loadSettings(settingsInput);
8
9
  }
9
10
  async validatePr(prInfo) {
10
11
  return await new PR(prInfo, this).validate();
@@ -1 +1 @@
1
- {"version":3,"file":"registry-validator.js","sourceRoot":"","sources":["../src/registry-validator.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,EAAE,EAAE,MAAM,SAAS,CAAC;AAmC7B,MAAM,OAAO,iBAAiB;IAEnB;IACA;IAFT,YACS,OAAgB,EAChB,QAAkB;QADlB,YAAO,GAAP,OAAO,CAAS;QAChB,aAAQ,GAAR,QAAQ,CAAU;IACxB,CAAC;IAEG,KAAK,CAAC,UAAU,CAAC,MAAuB;QAC7C,OAAO,MAAM,IAAI,EAAE,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC,QAAQ,EAAE,CAAC;IAC/C,CAAC;IAEM,YAAY,CAAC,IAAY;QAC9B,OAAO,IAAI,CAAC,QAAQ,CAAC,mBAAmB,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;IAC1D,CAAC;IAEM,qBAAqB,CAAC,SAAiB;QAC5C,OAAO,IAAI,CAAC,QAAQ,CAAC,oBAAoB,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC;IAChE,CAAC;CACF"}
1
+ {"version":3,"file":"registry-validator.js","sourceRoot":"","sources":["../src/registry-validator.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,EAAE,EAAE,MAAM,SAAS,CAAC;AAC7B,OAAO,EAAE,YAAY,EAAiC,MAAM,eAAe,CAAC;AAkC5E,MAAM,OAAO,iBAAiB;IAInB;IAHF,QAAQ,CAAiB;IAEhC,YACS,OAAgB,EACvB,aAA4B;QADrB,YAAO,GAAP,OAAO,CAAS;QAGvB,IAAI,CAAC,QAAQ,GAAG,YAAY,CAAC,aAAa,CAAC,CAAC;IAC9C,CAAC;IAEM,KAAK,CAAC,UAAU,CAAC,MAAuB;QAC7C,OAAO,MAAM,IAAI,EAAE,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC,QAAQ,EAAE,CAAC;IAC/C,CAAC;IAEM,YAAY,CAAC,IAAY;QAC9B,OAAO,IAAI,CAAC,QAAQ,CAAC,mBAAmB,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;IAC1D,CAAC;IAEM,qBAAqB,CAAC,SAAiB;QAC5C,OAAO,IAAI,CAAC,QAAQ,CAAC,oBAAoB,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC;IAChE,CAAC;CACF"}
@@ -1,9 +1,9 @@
1
1
  import z from "zod";
2
- export declare const settingsSchema: z.ZodObject<{
2
+ export declare const settingsSchemaOutput: z.ZodObject<{
3
3
  repoRoot: z.ZodString;
4
- registryMaintainers: z.ZodDefault<z.ZodOptional<z.ZodArray<z.ZodString>>>;
5
- restrictedNamespaces: z.ZodDefault<z.ZodOptional<z.ZodArray<z.ZodString>>>;
6
- pushLimits: z.ZodDefault<z.ZodOptional<z.ZodObject<{
4
+ registryMaintainers: z.ZodArray<z.ZodString>;
5
+ restrictedNamespaces: z.ZodArray<z.ZodString>;
6
+ pushLimits: z.ZodObject<{
7
7
  default: z.ZodObject<{
8
8
  unit: z.ZodEnum<{
9
9
  daily: "daily";
@@ -33,7 +33,45 @@ export declare const settingsSchema: z.ZodObject<{
33
33
  }, z.core.$strip>;
34
34
  }, z.core.$strip>;
35
35
  }, z.core.$strip>;
36
- }, z.core.$strip>>>;
36
+ }, z.core.$strip>;
37
37
  }, z.core.$strip>;
38
- export type Settings = z.infer<typeof settingsSchema>;
38
+ export type SettingsOutput = z.infer<typeof settingsSchemaOutput>;
39
+ export declare const settingsSchemaInput: z.ZodObject<{
40
+ repoRoot: z.ZodString;
41
+ registryMaintainers: z.ZodOptional<z.ZodArray<z.ZodString>>;
42
+ restrictedNamespaces: z.ZodOptional<z.ZodArray<z.ZodString>>;
43
+ pushLimits: z.ZodOptional<z.ZodObject<{
44
+ default: z.ZodObject<{
45
+ unit: z.ZodEnum<{
46
+ daily: "daily";
47
+ weekly: "weekly";
48
+ }>;
49
+ pushes: z.ZodInt;
50
+ }, z.core.$strip>;
51
+ overridesSetBy: z.ZodObject<{
52
+ namespaceOwners: z.ZodObject<{
53
+ daily: z.ZodObject<{
54
+ max: z.ZodInt;
55
+ min: z.ZodInt;
56
+ }, z.core.$strip>;
57
+ weekly: z.ZodObject<{
58
+ max: z.ZodInt;
59
+ min: z.ZodInt;
60
+ }, z.core.$strip>;
61
+ }, z.core.$strip>;
62
+ registryMaintainers: z.ZodObject<{
63
+ daily: z.ZodObject<{
64
+ max: z.ZodInt;
65
+ min: z.ZodInt;
66
+ }, z.core.$strip>;
67
+ weekly: z.ZodObject<{
68
+ max: z.ZodInt;
69
+ min: z.ZodInt;
70
+ }, z.core.$strip>;
71
+ }, z.core.$strip>;
72
+ }, z.core.$strip>;
73
+ }, z.core.$strip>>;
74
+ }, z.core.$strip>;
75
+ export type SettingsInput = z.infer<typeof settingsSchemaInput>;
76
+ export declare function loadSettings(input: SettingsInput): SettingsOutput;
39
77
  //# sourceMappingURL=settings.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"settings.d.ts","sourceRoot":"","sources":["../src/settings.ts"],"names":[],"mappings":"AAAA,OAAO,CAAC,MAAM,KAAK,CAAC;AAapB,eAAO,MAAM,cAAc;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;iBA2CzB,CAAC;AAEH,MAAM,MAAM,QAAQ,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,cAAc,CAAC,CAAC"}
1
+ {"version":3,"file":"settings.d.ts","sourceRoot":"","sources":["../src/settings.ts"],"names":[],"mappings":"AAAA,OAAO,CAAC,MAAM,KAAK,CAAC;AAgCpB,eAAO,MAAM,oBAAoB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;iBAG/B,CAAC;AACH,MAAM,MAAM,cAAc,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,oBAAoB,CAAC,CAAC;AAElE,eAAO,MAAM,mBAAmB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;iBAG9B,CAAC;AACH,MAAM,MAAM,aAAa,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,mBAAmB,CAAC,CAAC;AA0BhE,wBAAgB,YAAY,CAAC,KAAK,EAAE,aAAa,GAAG,cAAc,CAKjE"}
package/dist/settings.js CHANGED
@@ -9,26 +9,13 @@ const pushLimitOverridesSetBySchema = z.object({
9
9
  min: z.int(),
10
10
  }),
11
11
  });
12
- export const settingsSchema = z.object({
12
+ const settingsSchemaRequiredFields = {
13
13
  repoRoot: z.string(),
14
- registryMaintainers: z
15
- .string()
16
- .array()
17
- .optional()
18
- .default(["figulusproject"]),
19
- restrictedNamespaces: z
20
- .string()
21
- .array()
22
- .optional()
23
- .default([
24
- "examples",
25
- "figulus",
26
- "official",
27
- "push-limit-overrides",
28
- "verified",
29
- ]),
30
- pushLimits: z
31
- .object({
14
+ };
15
+ const settingsSchemaOptionalFields = {
16
+ registryMaintainers: z.string().array(),
17
+ restrictedNamespaces: z.string().array(),
18
+ pushLimits: z.object({
32
19
  default: z.object({
33
20
  unit: z.enum(["daily", "weekly"]),
34
21
  pushes: z.int(),
@@ -37,9 +24,26 @@ export const settingsSchema = z.object({
37
24
  namespaceOwners: pushLimitOverridesSetBySchema,
38
25
  registryMaintainers: pushLimitOverridesSetBySchema,
39
26
  }),
40
- })
41
- .optional()
42
- .default({
27
+ }),
28
+ };
29
+ export const settingsSchemaOutput = z.object({
30
+ ...settingsSchemaOptionalFields,
31
+ ...settingsSchemaRequiredFields,
32
+ });
33
+ export const settingsSchemaInput = z.object({
34
+ ...z.object(settingsSchemaOptionalFields).partial().shape,
35
+ ...settingsSchemaRequiredFields,
36
+ });
37
+ const settingsDefaults = {
38
+ registryMaintainers: ["figulusproject"],
39
+ restrictedNamespaces: [
40
+ "examples",
41
+ "figulus",
42
+ "official",
43
+ "push-limit-overrides",
44
+ "verified",
45
+ ],
46
+ pushLimits: {
43
47
  default: { unit: "daily", pushes: 10 },
44
48
  overridesSetBy: {
45
49
  namespaceOwners: {
@@ -51,6 +55,12 @@ export const settingsSchema = z.object({
51
55
  weekly: { min: 0, max: 30 * 7 },
52
56
  },
53
57
  },
54
- }),
55
- });
58
+ },
59
+ };
60
+ export function loadSettings(input) {
61
+ return {
62
+ ...settingsDefaults,
63
+ ...input,
64
+ };
65
+ }
56
66
  //# sourceMappingURL=settings.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"settings.js","sourceRoot":"","sources":["../src/settings.ts"],"names":[],"mappings":"AAAA,OAAO,CAAC,MAAM,KAAK,CAAC;AAEpB,MAAM,6BAA6B,GAAG,CAAC,CAAC,MAAM,CAAC;IAC7C,KAAK,EAAE,CAAC,CAAC,MAAM,CAAC;QACd,GAAG,EAAE,CAAC,CAAC,GAAG,EAAE;QACZ,GAAG,EAAE,CAAC,CAAC,GAAG,EAAE;KACb,CAAC;IACF,MAAM,EAAE,CAAC,CAAC,MAAM,CAAC;QACf,GAAG,EAAE,CAAC,CAAC,GAAG,EAAE;QACZ,GAAG,EAAE,CAAC,CAAC,GAAG,EAAE;KACb,CAAC;CACH,CAAC,CAAC;AAEH,MAAM,CAAC,MAAM,cAAc,GAAG,CAAC,CAAC,MAAM,CAAC;IACrC,QAAQ,EAAE,CAAC,CAAC,MAAM,EAAE;IACpB,mBAAmB,EAAE,CAAC;SACnB,MAAM,EAAE;SACR,KAAK,EAAE;SACP,QAAQ,EAAE;SACV,OAAO,CAAC,CAAC,gBAAgB,CAAC,CAAC;IAC9B,oBAAoB,EAAE,CAAC;SACpB,MAAM,EAAE;SACR,KAAK,EAAE;SACP,QAAQ,EAAE;SACV,OAAO,CAAC;QACP,UAAU;QACV,SAAS;QACT,UAAU;QACV,sBAAsB;QACtB,UAAU;KACX,CAAC;IACJ,UAAU,EAAE,CAAC;SACV,MAAM,CAAC;QACN,OAAO,EAAE,CAAC,CAAC,MAAM,CAAC;YAChB,IAAI,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,OAAO,EAAE,QAAQ,CAAC,CAAC;YACjC,MAAM,EAAE,CAAC,CAAC,GAAG,EAAE;SAChB,CAAC;QACF,cAAc,EAAE,CAAC,CAAC,MAAM,CAAC;YACvB,eAAe,EAAE,6BAA6B;YAC9C,mBAAmB,EAAE,6BAA6B;SACnD,CAAC;KACH,CAAC;SACD,QAAQ,EAAE;SACV,OAAO,CAAC;QACP,OAAO,EAAE,EAAE,IAAI,EAAE,OAAO,EAAE,MAAM,EAAE,EAAE,EAAE;QACtC,cAAc,EAAE;YACd,eAAe,EAAE;gBACf,KAAK,EAAE,EAAE,GAAG,EAAE,CAAC,EAAE,GAAG,EAAE,EAAE,EAAE;gBAC1B,MAAM,EAAE,EAAE,GAAG,EAAE,CAAC,EAAE,GAAG,EAAE,EAAE,GAAG,CAAC,EAAE;aAChC;YACD,mBAAmB,EAAE;gBACnB,KAAK,EAAE,EAAE,GAAG,EAAE,CAAC,EAAE,GAAG,EAAE,EAAE,EAAE;gBAC1B,MAAM,EAAE,EAAE,GAAG,EAAE,CAAC,EAAE,GAAG,EAAE,EAAE,GAAG,CAAC,EAAE;aAChC;SACF;KACF,CAAC;CACL,CAAC,CAAC"}
1
+ {"version":3,"file":"settings.js","sourceRoot":"","sources":["../src/settings.ts"],"names":[],"mappings":"AAAA,OAAO,CAAC,MAAM,KAAK,CAAC;AAEpB,MAAM,6BAA6B,GAAG,CAAC,CAAC,MAAM,CAAC;IAC7C,KAAK,EAAE,CAAC,CAAC,MAAM,CAAC;QACd,GAAG,EAAE,CAAC,CAAC,GAAG,EAAE;QACZ,GAAG,EAAE,CAAC,CAAC,GAAG,EAAE;KACb,CAAC;IACF,MAAM,EAAE,CAAC,CAAC,MAAM,CAAC;QACf,GAAG,EAAE,CAAC,CAAC,GAAG,EAAE;QACZ,GAAG,EAAE,CAAC,CAAC,GAAG,EAAE;KACb,CAAC;CACH,CAAC,CAAC;AAEH,MAAM,4BAA4B,GAAG;IACnC,QAAQ,EAAE,CAAC,CAAC,MAAM,EAAE;CACrB,CAAC;AAEF,MAAM,4BAA4B,GAAG;IACnC,mBAAmB,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,KAAK,EAAE;IACvC,oBAAoB,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,KAAK,EAAE;IACxC,UAAU,EAAE,CAAC,CAAC,MAAM,CAAC;QACnB,OAAO,EAAE,CAAC,CAAC,MAAM,CAAC;YAChB,IAAI,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,OAAO,EAAE,QAAQ,CAAC,CAAC;YACjC,MAAM,EAAE,CAAC,CAAC,GAAG,EAAE;SAChB,CAAC;QACF,cAAc,EAAE,CAAC,CAAC,MAAM,CAAC;YACvB,eAAe,EAAE,6BAA6B;YAC9C,mBAAmB,EAAE,6BAA6B;SACnD,CAAC;KACH,CAAC;CACH,CAAC;AAEF,MAAM,CAAC,MAAM,oBAAoB,GAAG,CAAC,CAAC,MAAM,CAAC;IAC3C,GAAG,4BAA4B;IAC/B,GAAG,4BAA4B;CAChC,CAAC,CAAC;AAGH,MAAM,CAAC,MAAM,mBAAmB,GAAG,CAAC,CAAC,MAAM,CAAC;IAC1C,GAAG,CAAC,CAAC,MAAM,CAAC,4BAA4B,CAAC,CAAC,OAAO,EAAE,CAAC,KAAK;IACzD,GAAG,4BAA4B;CAChC,CAAC,CAAC;AAGH,MAAM,gBAAgB,GAAqC;IACzD,mBAAmB,EAAE,CAAC,gBAAgB,CAAC;IACvC,oBAAoB,EAAE;QACpB,UAAU;QACV,SAAS;QACT,UAAU;QACV,sBAAsB;QACtB,UAAU;KACX;IACD,UAAU,EAAE;QACV,OAAO,EAAE,EAAE,IAAI,EAAE,OAAO,EAAE,MAAM,EAAE,EAAE,EAAE;QACtC,cAAc,EAAE;YACd,eAAe,EAAE;gBACf,KAAK,EAAE,EAAE,GAAG,EAAE,CAAC,EAAE,GAAG,EAAE,EAAE,EAAE;gBAC1B,MAAM,EAAE,EAAE,GAAG,EAAE,CAAC,EAAE,GAAG,EAAE,EAAE,GAAG,CAAC,EAAE;aAChC;YACD,mBAAmB,EAAE;gBACnB,KAAK,EAAE,EAAE,GAAG,EAAE,CAAC,EAAE,GAAG,EAAE,EAAE,EAAE;gBAC1B,MAAM,EAAE,EAAE,GAAG,EAAE,CAAC,EAAE,GAAG,EAAE,EAAE,GAAG,CAAC,EAAE;aAChC;SACF;KACF;CACF,CAAC;AAEF,MAAM,UAAU,YAAY,CAAC,KAAoB;IAC/C,OAAO;QACL,GAAG,gBAAgB;QACnB,GAAG,KAAK;KACT,CAAC;AACJ,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@figulus/validator-core",
3
- "version": "0.5.0-alpha-dev-04",
3
+ "version": "0.5.0-alpha-dev-05",
4
4
  "description": "Core logic for the Figulus Validator",
5
5
  "type": "module",
6
6
  "main": "./dist/index.js",
package/src/index.ts CHANGED
@@ -1,3 +1,3 @@
1
1
  export { Helpers, RegistryValidator } from "./registry-validator.js";
2
- export { settingsSchema } from "./settings.js";
3
- export type { Settings } from "./settings.js";
2
+ export { settingsSchemaInput, settingsSchemaOutput } from "./settings.js";
3
+ export type { SettingsOutput, SettingsInput } from "./settings.js";
@@ -9,13 +9,13 @@ import {
9
9
  ERROR_CODES,
10
10
  createError,
11
11
  } from "../validation-result.js";
12
- import { Settings } from "../settings.js";
12
+ import { SettingsOutput } from "../settings.js";
13
13
 
14
14
  export async function checkPushLimit(
15
15
  prAuthor: string,
16
16
  namespace: string,
17
17
  helpers: Helpers,
18
- settings: Settings,
18
+ settings: SettingsOutput,
19
19
  ): Promise<ValidationError | null> {
20
20
  const namespaceMetadata = await getNamespaceMetadataFromHead(
21
21
  namespace,
@@ -1,4 +1,4 @@
1
- import { Settings } from "../settings.js";
1
+ import { SettingsOutput } from "../settings.js";
2
2
  import {
3
3
  ValidationError,
4
4
  ERROR_CODES,
@@ -25,14 +25,14 @@ export function validatePushLimitConstraints(
25
25
  }
26
26
 
27
27
  export function getPushLimitConstraintsForEditor(
28
- settings: Settings,
28
+ settings: SettingsOutput,
29
29
  unit: "daily" | "weekly",
30
30
  ): { min: number; max: number } {
31
31
  return settings.pushLimits.overridesSetBy.namespaceOwners[unit];
32
32
  }
33
33
 
34
34
  export function getPushLimitConstraintsForMaintainer(
35
- settings: Settings,
35
+ settings: SettingsOutput,
36
36
  unit: "daily" | "weekly",
37
37
  ): { min: number; max: number } {
38
38
  return settings.pushLimits.overridesSetBy.registryMaintainers[unit];
package/src/pr.ts CHANGED
@@ -5,7 +5,7 @@ import {
5
5
  FileValidationResult,
6
6
  } from "./types.js";
7
7
  import { ChangedFile } from "./changed-file.js";
8
- import { Settings } from "./settings.js";
8
+ import { SettingsOutput } from "./settings.js";
9
9
 
10
10
  export class PR {
11
11
  constructor(
@@ -17,7 +17,7 @@ export class PR {
17
17
  return this.prInfo.author;
18
18
  }
19
19
 
20
- public getSettings(): Settings {
20
+ public getSettings(): SettingsOutput {
21
21
  return this.registry.settings;
22
22
  }
23
23
 
@@ -1,5 +1,5 @@
1
1
  import { PR } from "./pr.js";
2
- import { Settings } from "./settings.js";
2
+ import { loadSettings, SettingsOutput, SettingsInput } from "./settings.js";
3
3
  import { PullRequestInfo } from "./types.js";
4
4
 
5
5
  export interface Helpers {
@@ -34,10 +34,14 @@ export interface Helpers {
34
34
  }
35
35
 
36
36
  export class RegistryValidator {
37
+ public settings: SettingsOutput;
38
+
37
39
  constructor(
38
40
  public helpers: Helpers,
39
- public settings: Settings,
40
- ) {}
41
+ settingsInput: SettingsInput,
42
+ ) {
43
+ this.settings = loadSettings(settingsInput);
44
+ }
41
45
 
42
46
  public async validatePr(prInfo: PullRequestInfo) {
43
47
  return await new PR(prInfo, this).validate();
package/src/settings.ts CHANGED
@@ -11,49 +11,64 @@ const pushLimitOverridesSetBySchema = z.object({
11
11
  }),
12
12
  });
13
13
 
14
- export const settingsSchema = z.object({
14
+ const settingsSchemaRequiredFields = {
15
15
  repoRoot: z.string(),
16
- registryMaintainers: z
17
- .string()
18
- .array()
19
- .optional()
20
- .default(["figulusproject"]),
21
- restrictedNamespaces: z
22
- .string()
23
- .array()
24
- .optional()
25
- .default([
26
- "examples",
27
- "figulus",
28
- "official",
29
- "push-limit-overrides",
30
- "verified",
31
- ]),
32
- pushLimits: z
33
- .object({
34
- default: z.object({
35
- unit: z.enum(["daily", "weekly"]),
36
- pushes: z.int(),
37
- }),
38
- overridesSetBy: z.object({
39
- namespaceOwners: pushLimitOverridesSetBySchema,
40
- registryMaintainers: pushLimitOverridesSetBySchema,
41
- }),
42
- })
43
- .optional()
44
- .default({
45
- default: { unit: "daily", pushes: 10 },
46
- overridesSetBy: {
47
- namespaceOwners: {
48
- daily: { min: 1, max: 10 },
49
- weekly: { min: 1, max: 10 * 7 },
50
- },
51
- registryMaintainers: {
52
- daily: { min: 0, max: 30 },
53
- weekly: { min: 0, max: 30 * 7 },
54
- },
55
- },
16
+ };
17
+
18
+ const settingsSchemaOptionalFields = {
19
+ registryMaintainers: z.string().array(),
20
+ restrictedNamespaces: z.string().array(),
21
+ pushLimits: z.object({
22
+ default: z.object({
23
+ unit: z.enum(["daily", "weekly"]),
24
+ pushes: z.int(),
25
+ }),
26
+ overridesSetBy: z.object({
27
+ namespaceOwners: pushLimitOverridesSetBySchema,
28
+ registryMaintainers: pushLimitOverridesSetBySchema,
56
29
  }),
30
+ }),
31
+ };
32
+
33
+ export const settingsSchemaOutput = z.object({
34
+ ...settingsSchemaOptionalFields,
35
+ ...settingsSchemaRequiredFields,
57
36
  });
37
+ export type SettingsOutput = z.infer<typeof settingsSchemaOutput>;
38
+
39
+ export const settingsSchemaInput = z.object({
40
+ ...z.object(settingsSchemaOptionalFields).partial().shape,
41
+ ...settingsSchemaRequiredFields,
42
+ });
43
+ export type SettingsInput = z.infer<typeof settingsSchemaInput>;
44
+
45
+ const settingsDefaults: Omit<SettingsOutput, "repoRoot"> = {
46
+ registryMaintainers: ["figulusproject"],
47
+ restrictedNamespaces: [
48
+ "examples",
49
+ "figulus",
50
+ "official",
51
+ "push-limit-overrides",
52
+ "verified",
53
+ ],
54
+ pushLimits: {
55
+ default: { unit: "daily", pushes: 10 },
56
+ overridesSetBy: {
57
+ namespaceOwners: {
58
+ daily: { min: 1, max: 10 },
59
+ weekly: { min: 1, max: 10 * 7 },
60
+ },
61
+ registryMaintainers: {
62
+ daily: { min: 0, max: 30 },
63
+ weekly: { min: 0, max: 30 * 7 },
64
+ },
65
+ },
66
+ },
67
+ };
58
68
 
59
- export type Settings = z.infer<typeof settingsSchema>;
69
+ export function loadSettings(input: SettingsInput): SettingsOutput {
70
+ return {
71
+ ...settingsDefaults,
72
+ ...input,
73
+ };
74
+ }