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

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,13 @@
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
+ registryRepo: {
7
+ apiUrl: z.ZodURL;
8
+ accessToken: z.ZodNullable<z.ZodOptional<z.ZodString>>;
9
+ };
10
+ pushLimits: z.ZodObject<{
7
11
  default: z.ZodObject<{
8
12
  unit: z.ZodEnum<{
9
13
  daily: "daily";
@@ -33,7 +37,49 @@ export declare const settingsSchema: z.ZodObject<{
33
37
  }, z.core.$strip>;
34
38
  }, z.core.$strip>;
35
39
  }, z.core.$strip>;
36
- }, z.core.$strip>>>;
40
+ }, z.core.$strip>;
37
41
  }, z.core.$strip>;
38
- export type Settings = z.infer<typeof settingsSchema>;
42
+ export type SettingsOutput = z.infer<typeof settingsSchemaOutput>;
43
+ export declare const settingsSchemaInput: z.ZodObject<{
44
+ repoRoot: z.ZodString;
45
+ registryMaintainers: z.ZodOptional<z.ZodArray<z.ZodString>>;
46
+ restrictedNamespaces: z.ZodOptional<z.ZodArray<z.ZodString>>;
47
+ registryRepo: z.ZodOptional<{
48
+ apiUrl: z.ZodURL;
49
+ accessToken: z.ZodNullable<z.ZodOptional<z.ZodString>>;
50
+ }>;
51
+ pushLimits: z.ZodOptional<z.ZodObject<{
52
+ default: z.ZodObject<{
53
+ unit: z.ZodEnum<{
54
+ daily: "daily";
55
+ weekly: "weekly";
56
+ }>;
57
+ pushes: z.ZodInt;
58
+ }, z.core.$strip>;
59
+ overridesSetBy: z.ZodObject<{
60
+ namespaceOwners: z.ZodObject<{
61
+ daily: z.ZodObject<{
62
+ max: z.ZodInt;
63
+ min: z.ZodInt;
64
+ }, z.core.$strip>;
65
+ weekly: z.ZodObject<{
66
+ max: z.ZodInt;
67
+ min: z.ZodInt;
68
+ }, z.core.$strip>;
69
+ }, z.core.$strip>;
70
+ registryMaintainers: z.ZodObject<{
71
+ daily: z.ZodObject<{
72
+ max: z.ZodInt;
73
+ min: z.ZodInt;
74
+ }, z.core.$strip>;
75
+ weekly: z.ZodObject<{
76
+ max: z.ZodInt;
77
+ min: z.ZodInt;
78
+ }, z.core.$strip>;
79
+ }, z.core.$strip>;
80
+ }, z.core.$strip>;
81
+ }, z.core.$strip>>;
82
+ }, z.core.$strip>;
83
+ export type SettingsInput = z.infer<typeof settingsSchemaInput>;
84
+ export declare function loadSettings(input: SettingsInput): SettingsOutput;
39
85
  //# 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;AAoCpB,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;AA6BhE,wBAAgB,YAAY,CAAC,KAAK,EAAE,aAAa,GAAG,cAAc,CAKjE"}
package/dist/settings.js CHANGED
@@ -9,26 +9,17 @@ 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
+ registryRepo: {
19
+ apiUrl: z.url(),
20
+ accessToken: z.string().optional().nullable(),
21
+ },
22
+ pushLimits: z.object({
32
23
  default: z.object({
33
24
  unit: z.enum(["daily", "weekly"]),
34
25
  pushes: z.int(),
@@ -37,9 +28,29 @@ export const settingsSchema = z.object({
37
28
  namespaceOwners: pushLimitOverridesSetBySchema,
38
29
  registryMaintainers: pushLimitOverridesSetBySchema,
39
30
  }),
40
- })
41
- .optional()
42
- .default({
31
+ }),
32
+ };
33
+ export const settingsSchemaOutput = z.object({
34
+ ...settingsSchemaOptionalFields,
35
+ ...settingsSchemaRequiredFields,
36
+ });
37
+ export const settingsSchemaInput = z.object({
38
+ ...z.object(settingsSchemaOptionalFields).partial().shape,
39
+ ...settingsSchemaRequiredFields,
40
+ });
41
+ const settingsDefaults = {
42
+ registryMaintainers: ["figulusproject"],
43
+ restrictedNamespaces: [
44
+ "examples",
45
+ "figulus",
46
+ "official",
47
+ "push-limit-overrides",
48
+ "verified",
49
+ ],
50
+ registryRepo: {
51
+ apiUrl: "https://api.github.com/repos/figulusproject/registry/",
52
+ },
53
+ pushLimits: {
43
54
  default: { unit: "daily", pushes: 10 },
44
55
  overridesSetBy: {
45
56
  namespaceOwners: {
@@ -51,6 +62,12 @@ export const settingsSchema = z.object({
51
62
  weekly: { min: 0, max: 30 * 7 },
52
63
  },
53
64
  },
54
- }),
55
- });
65
+ },
66
+ };
67
+ export function loadSettings(input) {
68
+ return {
69
+ ...settingsDefaults,
70
+ ...input,
71
+ };
72
+ }
56
73
  //# 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,YAAY,EAAE;QACZ,MAAM,EAAE,CAAC,CAAC,GAAG,EAAE;QACf,WAAW,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,EAAE;KAC9C;IACD,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,YAAY,EAAE;QACZ,MAAM,EAAE,uDAAuD;KAChE;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-06",
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,71 @@ 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
+ registryRepo: {
22
+ apiUrl: z.url(),
23
+ accessToken: z.string().optional().nullable(),
24
+ },
25
+ pushLimits: z.object({
26
+ default: z.object({
27
+ unit: z.enum(["daily", "weekly"]),
28
+ pushes: z.int(),
29
+ }),
30
+ overridesSetBy: z.object({
31
+ namespaceOwners: pushLimitOverridesSetBySchema,
32
+ registryMaintainers: pushLimitOverridesSetBySchema,
56
33
  }),
34
+ }),
35
+ };
36
+
37
+ export const settingsSchemaOutput = z.object({
38
+ ...settingsSchemaOptionalFields,
39
+ ...settingsSchemaRequiredFields,
57
40
  });
41
+ export type SettingsOutput = z.infer<typeof settingsSchemaOutput>;
42
+
43
+ export const settingsSchemaInput = z.object({
44
+ ...z.object(settingsSchemaOptionalFields).partial().shape,
45
+ ...settingsSchemaRequiredFields,
46
+ });
47
+ export type SettingsInput = z.infer<typeof settingsSchemaInput>;
48
+
49
+ const settingsDefaults: Omit<SettingsOutput, "repoRoot"> = {
50
+ registryMaintainers: ["figulusproject"],
51
+ restrictedNamespaces: [
52
+ "examples",
53
+ "figulus",
54
+ "official",
55
+ "push-limit-overrides",
56
+ "verified",
57
+ ],
58
+ registryRepo: {
59
+ apiUrl: "https://api.github.com/repos/figulusproject/registry/",
60
+ },
61
+ pushLimits: {
62
+ default: { unit: "daily", pushes: 10 },
63
+ overridesSetBy: {
64
+ namespaceOwners: {
65
+ daily: { min: 1, max: 10 },
66
+ weekly: { min: 1, max: 10 * 7 },
67
+ },
68
+ registryMaintainers: {
69
+ daily: { min: 0, max: 30 },
70
+ weekly: { min: 0, max: 30 * 7 },
71
+ },
72
+ },
73
+ },
74
+ };
58
75
 
59
- export type Settings = z.infer<typeof settingsSchema>;
76
+ export function loadSettings(input: SettingsInput): SettingsOutput {
77
+ return {
78
+ ...settingsDefaults,
79
+ ...input,
80
+ };
81
+ }