@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 +2 -2
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +1 -1
- package/dist/index.js.map +1 -1
- package/dist/lib/check-push-limit.d.ts +2 -2
- package/dist/lib/check-push-limit.d.ts.map +1 -1
- package/dist/lib/check-push-limit.js.map +1 -1
- package/dist/lib/validate-push-limit-constraints.d.ts +3 -3
- package/dist/lib/validate-push-limit-constraints.d.ts.map +1 -1
- package/dist/lib/validate-push-limit-constraints.js.map +1 -1
- package/dist/pr.d.ts +2 -2
- package/dist/pr.d.ts.map +1 -1
- package/dist/registry-validator.d.ts +3 -3
- package/dist/registry-validator.d.ts.map +1 -1
- package/dist/registry-validator.js +3 -2
- package/dist/registry-validator.js.map +1 -1
- package/dist/settings.d.ts +52 -6
- package/dist/settings.d.ts.map +1 -1
- package/dist/settings.js +41 -24
- package/dist/settings.js.map +1 -1
- package/package.json +1 -1
- package/src/index.ts +2 -2
- package/src/lib/check-push-limit.ts +2 -2
- package/src/lib/validate-push-limit-constraints.ts +3 -3
- package/src/pr.ts +2 -2
- package/src/registry-validator.ts +7 -3
- package/src/settings.ts +64 -42
package/dist/index.d.ts
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
1
|
export { Helpers, RegistryValidator } from "./registry-validator.js";
|
|
2
|
-
export {
|
|
3
|
-
export type {
|
|
2
|
+
export { settingsSchemaInput, settingsSchemaOutput } from "./settings.js";
|
|
3
|
+
export type { SettingsOutput, SettingsInput } from "./settings.js";
|
|
4
4
|
//# sourceMappingURL=index.d.ts.map
|
package/dist/index.d.ts.map
CHANGED
|
@@ -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,
|
|
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
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,
|
|
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 {
|
|
4
|
-
export declare function checkPushLimit(prAuthor: string, namespace: string, helpers: Helpers, settings:
|
|
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,
|
|
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":"AACA,OAAO,EAAE,uBAAuB,EAAE,MAAM,gBAAgB,CAAC;AACzD,OAAO,EACL,4BAA4B,EAC5B,6BAA6B,GAC9B,MAAM,eAAe,CAAC;AACvB,OAAO,EAEL,WAAW,EACX,WAAW,GACZ,MAAM,yBAAyB,CAAC;AAGjC,MAAM,CAAC,KAAK,UAAU,cAAc,CAClC,QAAgB,EAChB,SAAiB,EACjB,OAAgB,EAChB,
|
|
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 {
|
|
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:
|
|
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:
|
|
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,
|
|
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,
|
|
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 {
|
|
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():
|
|
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,
|
|
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 {
|
|
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:
|
|
34
|
-
constructor(helpers: Helpers,
|
|
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,
|
|
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,
|
|
6
|
+
constructor(helpers, settingsInput) {
|
|
6
7
|
this.helpers = helpers;
|
|
7
|
-
this.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;
|
|
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"}
|
package/dist/settings.d.ts
CHANGED
|
@@ -1,9 +1,13 @@
|
|
|
1
1
|
import z from "zod";
|
|
2
|
-
export declare const
|
|
2
|
+
export declare const settingsSchemaOutput: z.ZodObject<{
|
|
3
3
|
repoRoot: z.ZodString;
|
|
4
|
-
registryMaintainers: z.
|
|
5
|
-
restrictedNamespaces: z.
|
|
6
|
-
|
|
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
|
|
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
|
package/dist/settings.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"settings.d.ts","sourceRoot":"","sources":["../src/settings.ts"],"names":[],"mappings":"AAAA,OAAO,CAAC,MAAM,KAAK,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
|
-
|
|
12
|
+
const settingsSchemaRequiredFields = {
|
|
13
13
|
repoRoot: z.string(),
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
.string()
|
|
21
|
-
|
|
22
|
-
|
|
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
|
-
|
|
42
|
-
|
|
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
|
package/dist/settings.js.map
CHANGED
|
@@ -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,
|
|
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
package/src/index.ts
CHANGED
|
@@ -1,3 +1,3 @@
|
|
|
1
1
|
export { Helpers, RegistryValidator } from "./registry-validator.js";
|
|
2
|
-
export {
|
|
3
|
-
export type {
|
|
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 {
|
|
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:
|
|
18
|
+
settings: SettingsOutput,
|
|
19
19
|
): Promise<ValidationError | null> {
|
|
20
20
|
const namespaceMetadata = await getNamespaceMetadataFromHead(
|
|
21
21
|
namespace,
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import {
|
|
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:
|
|
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:
|
|
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 {
|
|
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():
|
|
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 {
|
|
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
|
-
|
|
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
|
-
|
|
14
|
+
const settingsSchemaRequiredFields = {
|
|
15
15
|
repoRoot: z.string(),
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
.
|
|
23
|
-
.
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
"
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
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
|
|
76
|
+
export function loadSettings(input: SettingsInput): SettingsOutput {
|
|
77
|
+
return {
|
|
78
|
+
...settingsDefaults,
|
|
79
|
+
...input,
|
|
80
|
+
};
|
|
81
|
+
}
|