@xemahq/contracts 0.78.0 → 0.80.0
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/.source-stamp.json +2 -2
- package/dist/authorization-facts/lib/facts-apply.d.ts +1 -0
- package/dist/authorization-facts/lib/facts-apply.d.ts.map +1 -1
- package/dist/authorization-facts/lib/facts-apply.js +1 -0
- package/dist/authorization-facts/lib/facts-apply.js.map +1 -1
- package/dist/authorization-facts/lib/facts-writer-authority.d.ts +12 -1
- package/dist/authorization-facts/lib/facts-writer-authority.d.ts.map +1 -1
- package/dist/authorization-facts/lib/facts-writer-authority.js +69 -5
- package/dist/authorization-facts/lib/facts-writer-authority.js.map +1 -1
- package/dist/authorization-module/lib/authorization-composition-error.d.ts +1 -0
- package/dist/authorization-module/lib/authorization-composition-error.d.ts.map +1 -1
- package/dist/authorization-module/lib/authorization-composition-error.js +1 -0
- package/dist/authorization-module/lib/authorization-composition-error.js.map +1 -1
- package/dist/authorization-module/lib/platform-authorization-modules.d.ts.map +1 -1
- package/dist/authorization-module/lib/platform-authorization-modules.js +1 -0
- package/dist/authorization-module/lib/platform-authorization-modules.js.map +1 -1
- package/dist/authorization-module/server/compose-authorization-base.d.ts.map +1 -1
- package/dist/authorization-module/server/compose-authorization-base.js +30 -0
- package/dist/authorization-module/server/compose-authorization-base.js.map +1 -1
- package/dist/biome/lib/biome-component.d.ts +18 -0
- package/dist/biome/lib/biome-component.d.ts.map +1 -1
- package/dist/biome/lib/biome-component.js +100 -5
- package/dist/biome/lib/biome-component.js.map +1 -1
- package/dist/biome/lib/biome-generated-index.d.ts +75 -1
- package/dist/biome/lib/biome-generated-index.d.ts.map +1 -1
- package/dist/biome/lib/biome-generated-index.js +14 -0
- package/dist/biome/lib/biome-generated-index.js.map +1 -1
- package/dist/biome/lib/biome-manifest.d.ts +36 -0
- package/dist/biome/lib/biome-manifest.d.ts.map +1 -1
- package/dist/biome/xema-biome.schema.json +104 -0
- package/dist/connector/index.d.ts +1 -0
- package/dist/connector/index.d.ts.map +1 -1
- package/dist/connector/index.js +1 -0
- package/dist/connector/index.js.map +1 -1
- package/dist/connector/lib/connector-adapter-contribution.d.ts +1 -0
- package/dist/connector/lib/connector-adapter-contribution.d.ts.map +1 -1
- package/dist/connector/lib/connector-descriptor.d.ts +4 -0
- package/dist/connector/lib/connector-descriptor.d.ts.map +1 -1
- package/dist/connector/lib/connector-descriptor.js +2 -0
- package/dist/connector/lib/connector-descriptor.js.map +1 -1
- package/dist/connector/lib/connector-operation-exposure.d.ts +8 -0
- package/dist/connector/lib/connector-operation-exposure.d.ts.map +1 -0
- package/dist/connector/lib/connector-operation-exposure.js +12 -0
- package/dist/connector/lib/connector-operation-exposure.js.map +1 -0
- package/dist/contribution/lib/contribution-kind.d.ts +1 -0
- package/dist/contribution/lib/contribution-kind.d.ts.map +1 -1
- package/dist/contribution/lib/contribution-kind.js +1 -0
- package/dist/contribution/lib/contribution-kind.js.map +1 -1
- package/dist/deployment/index.d.ts +4 -0
- package/dist/deployment/index.d.ts.map +1 -1
- package/dist/deployment/index.js +4 -0
- package/dist/deployment/index.js.map +1 -1
- package/dist/deployment/lib/operation-grant.d.ts +22 -0
- package/dist/deployment/lib/operation-grant.d.ts.map +1 -0
- package/dist/deployment/lib/operation-grant.js +45 -0
- package/dist/deployment/lib/operation-grant.js.map +1 -0
- package/dist/deployment/lib/operation-id.d.ts +6 -0
- package/dist/deployment/lib/operation-id.d.ts.map +1 -0
- package/dist/deployment/lib/operation-id.js +12 -0
- package/dist/deployment/lib/operation-id.js.map +1 -0
- package/dist/deployment/lib/organization-sweep-grant.d.ts +18 -0
- package/dist/deployment/lib/organization-sweep-grant.d.ts.map +1 -0
- package/dist/deployment/lib/organization-sweep-grant.js +25 -0
- package/dist/deployment/lib/organization-sweep-grant.js.map +1 -0
- package/dist/deployment/lib/platform-sweep.d.ts +17 -0
- package/dist/deployment/lib/platform-sweep.d.ts.map +1 -0
- package/dist/deployment/lib/platform-sweep.js +21 -0
- package/dist/deployment/lib/platform-sweep.js.map +1 -0
- package/dist/deployment/lib/resolved-deployment.d.ts +24 -2
- package/dist/deployment/lib/resolved-deployment.d.ts.map +1 -1
- package/dist/deployment/lib/resolved-deployment.js +47 -1
- package/dist/deployment/lib/resolved-deployment.js.map +1 -1
- package/dist/distribution/index.d.ts +5 -0
- package/dist/distribution/index.d.ts.map +1 -1
- package/dist/distribution/index.js +12 -1
- package/dist/distribution/index.js.map +1 -1
- package/dist/distribution/lib/capability-domain-owner-duplicates.d.ts +10 -0
- package/dist/distribution/lib/capability-domain-owner-duplicates.d.ts.map +1 -0
- package/dist/distribution/lib/capability-domain-owner-duplicates.js +21 -0
- package/dist/distribution/lib/capability-domain-owner-duplicates.js.map +1 -0
- package/dist/distribution/lib/code-unit-order.d.ts +2 -0
- package/dist/distribution/lib/code-unit-order.d.ts.map +1 -0
- package/dist/distribution/lib/code-unit-order.js +7 -0
- package/dist/distribution/lib/code-unit-order.js.map +1 -0
- package/dist/distribution/lib/distribution-lock.d.ts +8 -0
- package/dist/distribution/lib/distribution-lock.d.ts.map +1 -1
- package/dist/distribution/lib/distribution-lock.js +92 -8
- package/dist/distribution/lib/distribution-lock.js.map +1 -1
- package/dist/distribution/lib/kernel-contract-source-paths.d.ts +1 -1
- package/dist/distribution/lib/kernel-contract-source-paths.d.ts.map +1 -1
- package/dist/distribution/lib/kernel-contract-source-paths.js +10 -1
- package/dist/distribution/lib/kernel-contract-source-paths.js.map +1 -1
- package/dist/distribution/lib/operation-grant-admission.d.ts +23 -0
- package/dist/distribution/lib/operation-grant-admission.d.ts.map +1 -0
- package/dist/distribution/lib/operation-grant-admission.js +72 -0
- package/dist/distribution/lib/operation-grant-admission.js.map +1 -0
- package/dist/distribution/lib/organization-sweep-admission.d.ts +20 -0
- package/dist/distribution/lib/organization-sweep-admission.d.ts.map +1 -0
- package/dist/distribution/lib/organization-sweep-admission.js +45 -0
- package/dist/distribution/lib/organization-sweep-admission.js.map +1 -0
- package/dist/distribution/lib/platform-service-source-index.d.ts +2 -0
- package/dist/distribution/lib/platform-service-source-index.d.ts.map +1 -1
- package/dist/distribution/lib/platform-service-source-index.js +17 -0
- package/dist/distribution/lib/platform-service-source-index.js.map +1 -1
- package/dist/distribution/lib/resolve-unsplit-deployment.d.ts.map +1 -1
- package/dist/distribution/lib/resolve-unsplit-deployment.js +20 -0
- package/dist/distribution/lib/resolve-unsplit-deployment.js.map +1 -1
- package/dist/distribution/lib/sorted-unique-non-empty.d.ts +3 -0
- package/dist/distribution/lib/sorted-unique-non-empty.d.ts.map +1 -0
- package/dist/distribution/lib/sorted-unique-non-empty.js +29 -0
- package/dist/distribution/lib/sorted-unique-non-empty.js.map +1 -0
- package/dist/distribution/lib/verify-resolved-deployment.d.ts +6 -1
- package/dist/distribution/lib/verify-resolved-deployment.d.ts.map +1 -1
- package/dist/distribution/lib/verify-resolved-deployment.js +87 -3
- package/dist/distribution/lib/verify-resolved-deployment.js.map +1 -1
- package/dist/edition-protocol/edition-contract.schema.json +1 -1
- package/dist/edition-protocol/edition-protocol.json +1 -1
- package/dist/edition-protocol/lib/edition-protocol.js +2 -2
- package/dist/resolved-deployment-fixture/lib/resolved-deployment-fixture.d.ts +5 -0
- package/dist/resolved-deployment-fixture/lib/resolved-deployment-fixture.d.ts.map +1 -1
- package/dist/resolved-deployment-fixture/lib/resolved-deployment-fixture.js +38 -4
- package/dist/resolved-deployment-fixture/lib/resolved-deployment-fixture.js.map +1 -1
- package/dist/resource/lib/resource-kind.d.ts +1 -0
- package/dist/resource/lib/resource-kind.d.ts.map +1 -1
- package/dist/resource/lib/resource-kind.js +1 -0
- package/dist/resource/lib/resource-kind.js.map +1 -1
- package/dist/setting/index.d.ts +10 -0
- package/dist/setting/index.d.ts.map +1 -0
- package/dist/setting/index.js +26 -0
- package/dist/setting/index.js.map +1 -0
- package/dist/setting/lib/setting-constraints.d.ts +32 -0
- package/dist/setting/lib/setting-constraints.d.ts.map +1 -0
- package/dist/setting/lib/setting-constraints.js +27 -0
- package/dist/setting/lib/setting-constraints.js.map +1 -0
- package/dist/setting/lib/setting-definition.d.ts +70 -0
- package/dist/setting/lib/setting-definition.d.ts.map +1 -0
- package/dist/setting/lib/setting-definition.js +144 -0
- package/dist/setting/lib/setting-definition.js.map +1 -0
- package/dist/setting/lib/setting-duration.d.ts +3 -0
- package/dist/setting/lib/setting-duration.d.ts.map +1 -0
- package/dist/setting/lib/setting-duration.js +39 -0
- package/dist/setting/lib/setting-duration.js.map +1 -0
- package/dist/setting/lib/setting-enums.d.ts +27 -0
- package/dist/setting/lib/setting-enums.d.ts.map +1 -0
- package/dist/setting/lib/setting-enums.js +34 -0
- package/dist/setting/lib/setting-enums.js.map +1 -0
- package/dist/setting/lib/setting-key.d.ts +19 -0
- package/dist/setting/lib/setting-key.d.ts.map +1 -0
- package/dist/setting/lib/setting-key.js +70 -0
- package/dist/setting/lib/setting-key.js.map +1 -0
- package/dist/setting/lib/setting-merge.d.ts +7 -0
- package/dist/setting/lib/setting-merge.d.ts.map +1 -0
- package/dist/setting/lib/setting-merge.js +36 -0
- package/dist/setting/lib/setting-merge.js.map +1 -0
- package/dist/setting/lib/setting-resolve.d.ts +11 -0
- package/dist/setting/lib/setting-resolve.d.ts.map +1 -0
- package/dist/setting/lib/setting-resolve.js +39 -0
- package/dist/setting/lib/setting-resolve.js.map +1 -0
- package/dist/setting/lib/setting-revision.d.ts +5 -0
- package/dist/setting/lib/setting-revision.d.ts.map +1 -0
- package/dist/setting/lib/setting-revision.js +68 -0
- package/dist/setting/lib/setting-revision.js.map +1 -0
- package/dist/setting/lib/setting-value.d.ts +5 -0
- package/dist/setting/lib/setting-value.d.ts.map +1 -0
- package/dist/setting/lib/setting-value.js +57 -0
- package/dist/setting/lib/setting-value.js.map +1 -0
- package/dist/space/index.d.ts +0 -1
- package/dist/space/index.d.ts.map +1 -1
- package/dist/space/index.js +0 -1
- package/dist/space/index.js.map +1 -1
- package/package.json +2 -2
- package/dist/space/lib/scoped-setting.d.ts +0 -28
- package/dist/space/lib/scoped-setting.d.ts.map +0 -1
- package/dist/space/lib/scoped-setting.js +0 -60
- package/dist/space/lib/scoped-setting.js.map +0 -1
|
@@ -0,0 +1,144 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.SettingDefinitionSchema = void 0;
|
|
4
|
+
exports.stampSettingDefinition = stampSettingDefinition;
|
|
5
|
+
exports.settingDefaultValue = settingDefaultValue;
|
|
6
|
+
exports.mayDeclareAt = mayDeclareAt;
|
|
7
|
+
exports.settingOwnership = settingOwnership;
|
|
8
|
+
const zod_1 = require("zod");
|
|
9
|
+
const space_1 = require("../../space");
|
|
10
|
+
const setting_constraints_1 = require("./setting-constraints");
|
|
11
|
+
const setting_enums_1 = require("./setting-enums");
|
|
12
|
+
const setting_key_1 = require("./setting-key");
|
|
13
|
+
const setting_value_1 = require("./setting-value");
|
|
14
|
+
const common = {
|
|
15
|
+
name: setting_key_1.SettingNameSchema,
|
|
16
|
+
major: setting_key_1.SettingMajorSchema,
|
|
17
|
+
title: zod_1.z.string().min(1).max(120),
|
|
18
|
+
description: zod_1.z.string().min(1).max(2000),
|
|
19
|
+
unit: zod_1.z.string().min(1).max(32).optional(),
|
|
20
|
+
declarableAt: zod_1.z.array(space_1.SpaceKindSchema).min(1),
|
|
21
|
+
merge: setting_enums_1.SettingMergeSchema,
|
|
22
|
+
};
|
|
23
|
+
const BooleanArm = zod_1.z
|
|
24
|
+
.object({
|
|
25
|
+
...common,
|
|
26
|
+
valueType: zod_1.z.literal(setting_enums_1.SettingValueType.Boolean),
|
|
27
|
+
default: zod_1.z.boolean(),
|
|
28
|
+
tighter: zod_1.z.boolean().optional(),
|
|
29
|
+
})
|
|
30
|
+
.strict();
|
|
31
|
+
const IntegerArm = zod_1.z
|
|
32
|
+
.object({
|
|
33
|
+
...common,
|
|
34
|
+
valueType: zod_1.z.literal(setting_enums_1.SettingValueType.Integer),
|
|
35
|
+
constraints: setting_constraints_1.IntegerConstraintsSchema,
|
|
36
|
+
default: zod_1.z.number(),
|
|
37
|
+
tighter: setting_enums_1.SettingTighterDirectionSchema.optional(),
|
|
38
|
+
})
|
|
39
|
+
.strict();
|
|
40
|
+
const DurationArm = zod_1.z
|
|
41
|
+
.object({
|
|
42
|
+
...common,
|
|
43
|
+
valueType: zod_1.z.literal(setting_enums_1.SettingValueType.Duration),
|
|
44
|
+
constraints: setting_constraints_1.DurationConstraintsSchema,
|
|
45
|
+
default: zod_1.z.string(),
|
|
46
|
+
tighter: setting_enums_1.SettingTighterDirectionSchema.optional(),
|
|
47
|
+
})
|
|
48
|
+
.strict();
|
|
49
|
+
const EnumArm = zod_1.z
|
|
50
|
+
.object({
|
|
51
|
+
...common,
|
|
52
|
+
valueType: zod_1.z.literal(setting_enums_1.SettingValueType.Enum),
|
|
53
|
+
constraints: setting_constraints_1.EnumConstraintsSchema,
|
|
54
|
+
default: zod_1.z.string(),
|
|
55
|
+
tighter: zod_1.z.never().optional(),
|
|
56
|
+
})
|
|
57
|
+
.strict();
|
|
58
|
+
exports.SettingDefinitionSchema = zod_1.z
|
|
59
|
+
.discriminatedUnion("valueType", [
|
|
60
|
+
BooleanArm,
|
|
61
|
+
IntegerArm,
|
|
62
|
+
DurationArm,
|
|
63
|
+
EnumArm,
|
|
64
|
+
])
|
|
65
|
+
.superRefine((def, ctx) => {
|
|
66
|
+
try {
|
|
67
|
+
for (const kind of def.declarableAt) {
|
|
68
|
+
(0, space_1.assertSpaceKindAdmissible)(setting_enums_1.SETTING_REGISTRY, kind, setting_enums_1.SETTING_SPACE_KINDS);
|
|
69
|
+
}
|
|
70
|
+
}
|
|
71
|
+
catch (error) {
|
|
72
|
+
ctx.addIssue({
|
|
73
|
+
code: "custom",
|
|
74
|
+
path: ["declarableAt"],
|
|
75
|
+
message: error instanceof Error ? error.message : String(error),
|
|
76
|
+
});
|
|
77
|
+
}
|
|
78
|
+
if (new Set(def.declarableAt).size !== def.declarableAt.length) {
|
|
79
|
+
ctx.addIssue({
|
|
80
|
+
code: "custom",
|
|
81
|
+
path: ["declarableAt"],
|
|
82
|
+
message: "A tier may appear at most once in `declarableAt`.",
|
|
83
|
+
});
|
|
84
|
+
}
|
|
85
|
+
const needsTighter = def.merge === setting_enums_1.SettingMerge.Tighten &&
|
|
86
|
+
def.valueType !== setting_enums_1.SettingValueType.Enum;
|
|
87
|
+
if (needsTighter && def.tighter === undefined) {
|
|
88
|
+
ctx.addIssue({
|
|
89
|
+
code: "custom",
|
|
90
|
+
path: ["tighter"],
|
|
91
|
+
message: "A `tighten` setting must declare which end is tighter.",
|
|
92
|
+
});
|
|
93
|
+
}
|
|
94
|
+
if (!needsTighter && def.tighter !== undefined) {
|
|
95
|
+
ctx.addIssue({
|
|
96
|
+
code: "custom",
|
|
97
|
+
path: ["tighter"],
|
|
98
|
+
message: "`tighter` is only declared by a `tighten` boolean, integer or duration setting.",
|
|
99
|
+
});
|
|
100
|
+
}
|
|
101
|
+
if (def.valueType === setting_enums_1.SettingValueType.Boolean ||
|
|
102
|
+
def.valueType === setting_enums_1.SettingValueType.Enum ||
|
|
103
|
+
def.valueType === setting_enums_1.SettingValueType.Integer ||
|
|
104
|
+
def.valueType === setting_enums_1.SettingValueType.Duration) {
|
|
105
|
+
const checked = (0, setting_value_1.settingValueSchema)(def).safeParse(def.default);
|
|
106
|
+
if (!checked.success) {
|
|
107
|
+
ctx.addIssue({
|
|
108
|
+
code: "custom",
|
|
109
|
+
path: ["default"],
|
|
110
|
+
message: `The default must satisfy the constraints: ${checked.error.issues
|
|
111
|
+
.map((issue) => issue.message)
|
|
112
|
+
.join("; ")}`,
|
|
113
|
+
});
|
|
114
|
+
}
|
|
115
|
+
}
|
|
116
|
+
});
|
|
117
|
+
function stampSettingDefinition(authored, declaringBiomeId) {
|
|
118
|
+
const def = exports.SettingDefinitionSchema.parse(authored);
|
|
119
|
+
const namespace = setting_key_1.SettingNamespaceSchema.parse(declaringBiomeId);
|
|
120
|
+
return {
|
|
121
|
+
...def,
|
|
122
|
+
namespace,
|
|
123
|
+
key: (0, setting_key_1.formatSettingKey)({ namespace, name: def.name, major: def.major }),
|
|
124
|
+
};
|
|
125
|
+
}
|
|
126
|
+
function settingDefaultValue(def) {
|
|
127
|
+
return (0, setting_value_1.settingValueSchema)(def).parse(def.default);
|
|
128
|
+
}
|
|
129
|
+
function mayDeclareAt(def, tier) {
|
|
130
|
+
return def.declarableAt.includes(tier);
|
|
131
|
+
}
|
|
132
|
+
function settingOwnership(def) {
|
|
133
|
+
const tiers = new Set(def.declarableAt);
|
|
134
|
+
const org = tiers.has(space_1.SpaceKind.Org);
|
|
135
|
+
const project = tiers.has(space_1.SpaceKind.Project);
|
|
136
|
+
if (org && project)
|
|
137
|
+
return setting_enums_1.SettingOwnership.ProjectOverridable;
|
|
138
|
+
if (project)
|
|
139
|
+
return setting_enums_1.SettingOwnership.ProjectOnly;
|
|
140
|
+
if (org)
|
|
141
|
+
return setting_enums_1.SettingOwnership.OrgOnly;
|
|
142
|
+
throw new Error("A setting must be declarable at the Org or Project tier.");
|
|
143
|
+
}
|
|
144
|
+
//# sourceMappingURL=setting-definition.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"setting-definition.js","sourceRoot":"","sources":["../../../src/setting/lib/setting-definition.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"setting-duration.d.ts","sourceRoot":"","sources":["../../../src/setting/lib/setting-duration.ts"],"names":[],"mappings":"AAWA,wBAAgB,uBAAuB,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAmB3D;AAGD,wBAAgB,wBAAwB,CAAC,YAAY,EAAE,MAAM,GAAG,MAAM,CAkBrE"}
|
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.parseIsoDurationSeconds = parseIsoDurationSeconds;
|
|
4
|
+
exports.formatIsoDurationSeconds = formatIsoDurationSeconds;
|
|
5
|
+
const ISO_DURATION = /^P(?:(\d+)D)?(?:T(?:(\d+)H)?(?:(\d+)M)?(?:(\d+)S)?)?$/u;
|
|
6
|
+
const SECONDS_PER_MINUTE = 60;
|
|
7
|
+
const SECONDS_PER_HOUR = 3600;
|
|
8
|
+
const SECONDS_PER_DAY = 86400;
|
|
9
|
+
function parseIsoDurationSeconds(raw) {
|
|
10
|
+
const match = ISO_DURATION.exec(raw);
|
|
11
|
+
if (match === null || raw === "P" || raw.endsWith("T")) {
|
|
12
|
+
throw new Error(`"${raw}" is not an admitted ISO-8601 duration (days, hours, minutes, seconds only; e.g. "PT5M").`);
|
|
13
|
+
}
|
|
14
|
+
const [, days, hours, minutes, seconds] = match.map((part) => part === undefined ? 0 : Number(part));
|
|
15
|
+
const total = days * SECONDS_PER_DAY +
|
|
16
|
+
hours * SECONDS_PER_HOUR +
|
|
17
|
+
minutes * SECONDS_PER_MINUTE +
|
|
18
|
+
seconds;
|
|
19
|
+
if (!Number.isSafeInteger(total)) {
|
|
20
|
+
throw new Error(`Duration "${raw}" is out of range.`);
|
|
21
|
+
}
|
|
22
|
+
return total;
|
|
23
|
+
}
|
|
24
|
+
function formatIsoDurationSeconds(totalSeconds) {
|
|
25
|
+
if (!Number.isSafeInteger(totalSeconds) || totalSeconds < 0) {
|
|
26
|
+
throw new Error(`${totalSeconds} is not a whole non-negative number of seconds.`);
|
|
27
|
+
}
|
|
28
|
+
if (totalSeconds === 0)
|
|
29
|
+
return "PT0S";
|
|
30
|
+
const days = Math.floor(totalSeconds / SECONDS_PER_DAY);
|
|
31
|
+
const hours = Math.floor((totalSeconds % SECONDS_PER_DAY) / SECONDS_PER_HOUR);
|
|
32
|
+
const minutes = Math.floor((totalSeconds % SECONDS_PER_HOUR) / SECONDS_PER_MINUTE);
|
|
33
|
+
const seconds = totalSeconds % SECONDS_PER_MINUTE;
|
|
34
|
+
const time = (hours > 0 ? `${hours}H` : "") +
|
|
35
|
+
(minutes > 0 ? `${minutes}M` : "") +
|
|
36
|
+
(seconds > 0 ? `${seconds}S` : "");
|
|
37
|
+
return `P${days > 0 ? `${days}D` : ""}${time === "" ? "" : `T${time}`}`;
|
|
38
|
+
}
|
|
39
|
+
//# sourceMappingURL=setting-duration.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"setting-duration.js","sourceRoot":"","sources":["../../../src/setting/lib/setting-duration.ts"],"names":[],"mappings":";;AAWA,0DAmBC;AAGD,4DAkBC;AA9CD,MAAM,YAAY,GAAG,wDAAwD,CAAC;AAE9E,MAAM,kBAAkB,GAAG,EAAE,CAAC;AAC9B,MAAM,gBAAgB,GAAG,IAAI,CAAC;AAC9B,MAAM,eAAe,GAAG,KAAK,CAAC;AAE9B,SAAgB,uBAAuB,CAAC,GAAW;IACjD,MAAM,KAAK,GAAG,YAAY,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IACrC,IAAI,KAAK,KAAK,IAAI,IAAI,GAAG,KAAK,GAAG,IAAI,GAAG,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE,CAAC;QACvD,MAAM,IAAI,KAAK,CACb,IAAI,GAAG,2FAA2F,CACnG,CAAC;IACJ,CAAC;IACD,MAAM,CAAC,EAAE,IAAI,EAAE,KAAK,EAAE,OAAO,EAAE,OAAO,CAAC,GAAG,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAC3D,IAAI,KAAK,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,CACtC,CAAC;IACF,MAAM,KAAK,GACT,IAAK,GAAG,eAAe;QACvB,KAAM,GAAG,gBAAgB;QACzB,OAAQ,GAAG,kBAAkB;QAC7B,OAAQ,CAAC;IACX,IAAI,CAAC,MAAM,CAAC,aAAa,CAAC,KAAK,CAAC,EAAE,CAAC;QACjC,MAAM,IAAI,KAAK,CAAC,aAAa,GAAG,oBAAoB,CAAC,CAAC;IACxD,CAAC;IACD,OAAO,KAAK,CAAC;AACf,CAAC;AAGD,SAAgB,wBAAwB,CAAC,YAAoB;IAC3D,IAAI,CAAC,MAAM,CAAC,aAAa,CAAC,YAAY,CAAC,IAAI,YAAY,GAAG,CAAC,EAAE,CAAC;QAC5D,MAAM,IAAI,KAAK,CACb,GAAG,YAAY,iDAAiD,CACjE,CAAC;IACJ,CAAC;IACD,IAAI,YAAY,KAAK,CAAC;QAAE,OAAO,MAAM,CAAC;IACtC,MAAM,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,YAAY,GAAG,eAAe,CAAC,CAAC;IACxD,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,YAAY,GAAG,eAAe,CAAC,GAAG,gBAAgB,CAAC,CAAC;IAC9E,MAAM,OAAO,GAAG,IAAI,CAAC,KAAK,CACxB,CAAC,YAAY,GAAG,gBAAgB,CAAC,GAAG,kBAAkB,CACvD,CAAC;IACF,MAAM,OAAO,GAAG,YAAY,GAAG,kBAAkB,CAAC;IAClD,MAAM,IAAI,GACR,CAAC,KAAK,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,KAAK,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC;QAC9B,CAAC,OAAO,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,OAAO,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC;QAClC,CAAC,OAAO,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,OAAO,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;IACrC,OAAO,IAAI,IAAI,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,IAAI,GAAG,CAAC,CAAC,CAAC,EAAE,GAAG,IAAI,KAAK,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,IAAI,EAAE,EAAE,CAAC;AAC1E,CAAC"}
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
import { z } from "zod";
|
|
2
|
+
import { type SpaceKindSubset } from "../../space";
|
|
3
|
+
export declare enum SettingValueType {
|
|
4
|
+
Boolean = "boolean",
|
|
5
|
+
Integer = "integer",
|
|
6
|
+
Duration = "duration",
|
|
7
|
+
Enum = "enum"
|
|
8
|
+
}
|
|
9
|
+
export declare const SettingValueTypeSchema: z.ZodEnum<typeof SettingValueType>;
|
|
10
|
+
export declare enum SettingMerge {
|
|
11
|
+
Nearest = "nearest",
|
|
12
|
+
Tighten = "tighten"
|
|
13
|
+
}
|
|
14
|
+
export declare const SettingMergeSchema: z.ZodEnum<typeof SettingMerge>;
|
|
15
|
+
export declare enum SettingTighterDirection {
|
|
16
|
+
Lower = "lower",
|
|
17
|
+
Higher = "higher"
|
|
18
|
+
}
|
|
19
|
+
export declare const SettingTighterDirectionSchema: z.ZodEnum<typeof SettingTighterDirection>;
|
|
20
|
+
export declare const SETTING_SPACE_KINDS: SpaceKindSubset;
|
|
21
|
+
export declare const SETTING_REGISTRY = "The scoped-setting registry";
|
|
22
|
+
export declare enum SettingOwnership {
|
|
23
|
+
OrgOnly = "org-only",
|
|
24
|
+
ProjectOverridable = "project-overridable",
|
|
25
|
+
ProjectOnly = "project-only"
|
|
26
|
+
}
|
|
27
|
+
//# sourceMappingURL=setting-enums.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"setting-enums.d.ts","sourceRoot":"","sources":["../../../src/setting/lib/setting-enums.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,OAAO,EAA8B,KAAK,eAAe,EAAE,MAAM,aAAa,CAAC;AAS/E,oBAAY,gBAAgB;IAC1B,OAAO,YAAY;IACnB,OAAO,YAAY;IAEnB,QAAQ,aAAa;IACrB,IAAI,SAAS;CACd;AACD,eAAO,MAAM,sBAAsB,oCAAiC,CAAC;AASrE,oBAAY,YAAY;IACtB,OAAO,YAAY;IACnB,OAAO,YAAY;CACpB;AACD,eAAO,MAAM,kBAAkB,gCAA6B,CAAC;AAG7D,oBAAY,uBAAuB;IACjC,KAAK,UAAU;IACf,MAAM,WAAW;CAClB;AACD,eAAO,MAAM,6BAA6B,2CAEzC,CAAC;AAGF,eAAO,MAAM,mBAAmB,EAAE,eAGjC,CAAC;AAGF,eAAO,MAAM,gBAAgB,gCAAgC,CAAC;AAG9D,oBAAY,gBAAgB;IAC1B,OAAO,aAAa;IACpB,kBAAkB,wBAAwB;IAC1C,WAAW,iBAAiB;CAC7B"}
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.SettingOwnership = exports.SETTING_REGISTRY = exports.SETTING_SPACE_KINDS = exports.SettingTighterDirectionSchema = exports.SettingTighterDirection = exports.SettingMergeSchema = exports.SettingMerge = exports.SettingValueTypeSchema = exports.SettingValueType = void 0;
|
|
4
|
+
const zod_1 = require("zod");
|
|
5
|
+
const space_1 = require("../../space");
|
|
6
|
+
var SettingValueType;
|
|
7
|
+
(function (SettingValueType) {
|
|
8
|
+
SettingValueType["Boolean"] = "boolean";
|
|
9
|
+
SettingValueType["Integer"] = "integer";
|
|
10
|
+
SettingValueType["Duration"] = "duration";
|
|
11
|
+
SettingValueType["Enum"] = "enum";
|
|
12
|
+
})(SettingValueType || (exports.SettingValueType = SettingValueType = {}));
|
|
13
|
+
exports.SettingValueTypeSchema = zod_1.z.nativeEnum(SettingValueType);
|
|
14
|
+
var SettingMerge;
|
|
15
|
+
(function (SettingMerge) {
|
|
16
|
+
SettingMerge["Nearest"] = "nearest";
|
|
17
|
+
SettingMerge["Tighten"] = "tighten";
|
|
18
|
+
})(SettingMerge || (exports.SettingMerge = SettingMerge = {}));
|
|
19
|
+
exports.SettingMergeSchema = zod_1.z.nativeEnum(SettingMerge);
|
|
20
|
+
var SettingTighterDirection;
|
|
21
|
+
(function (SettingTighterDirection) {
|
|
22
|
+
SettingTighterDirection["Lower"] = "lower";
|
|
23
|
+
SettingTighterDirection["Higher"] = "higher";
|
|
24
|
+
})(SettingTighterDirection || (exports.SettingTighterDirection = SettingTighterDirection = {}));
|
|
25
|
+
exports.SettingTighterDirectionSchema = zod_1.z.nativeEnum(SettingTighterDirection);
|
|
26
|
+
exports.SETTING_SPACE_KINDS = (0, space_1.spaceKindSubset)(space_1.SpaceKind.Org, space_1.SpaceKind.Project);
|
|
27
|
+
exports.SETTING_REGISTRY = "The scoped-setting registry";
|
|
28
|
+
var SettingOwnership;
|
|
29
|
+
(function (SettingOwnership) {
|
|
30
|
+
SettingOwnership["OrgOnly"] = "org-only";
|
|
31
|
+
SettingOwnership["ProjectOverridable"] = "project-overridable";
|
|
32
|
+
SettingOwnership["ProjectOnly"] = "project-only";
|
|
33
|
+
})(SettingOwnership || (exports.SettingOwnership = SettingOwnership = {}));
|
|
34
|
+
//# sourceMappingURL=setting-enums.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"setting-enums.js","sourceRoot":"","sources":["../../../src/setting/lib/setting-enums.ts"],"names":[],"mappings":";;;AAAA,6BAAwB;AAExB,uCAA+E;AAS/E,IAAY,gBAMX;AAND,WAAY,gBAAgB;IAC1B,uCAAmB,CAAA;IACnB,uCAAmB,CAAA;IAEnB,yCAAqB,CAAA;IACrB,iCAAa,CAAA;AACf,CAAC,EANW,gBAAgB,gCAAhB,gBAAgB,QAM3B;AACY,QAAA,sBAAsB,GAAG,OAAC,CAAC,UAAU,CAAC,gBAAgB,CAAC,CAAC;AASrE,IAAY,YAGX;AAHD,WAAY,YAAY;IACtB,mCAAmB,CAAA;IACnB,mCAAmB,CAAA;AACrB,CAAC,EAHW,YAAY,4BAAZ,YAAY,QAGvB;AACY,QAAA,kBAAkB,GAAG,OAAC,CAAC,UAAU,CAAC,YAAY,CAAC,CAAC;AAG7D,IAAY,uBAGX;AAHD,WAAY,uBAAuB;IACjC,0CAAe,CAAA;IACf,4CAAiB,CAAA;AACnB,CAAC,EAHW,uBAAuB,uCAAvB,uBAAuB,QAGlC;AACY,QAAA,6BAA6B,GAAG,OAAC,CAAC,UAAU,CACvD,uBAAuB,CACxB,CAAC;AAGW,QAAA,mBAAmB,GAAoB,IAAA,uBAAe,EACjE,iBAAS,CAAC,GAAG,EACb,iBAAS,CAAC,OAAO,CAClB,CAAC;AAGW,QAAA,gBAAgB,GAAG,6BAA6B,CAAC;AAG9D,IAAY,gBAIX;AAJD,WAAY,gBAAgB;IAC1B,wCAAoB,CAAA;IACpB,8DAA0C,CAAA;IAC1C,gDAA4B,CAAA;AAC9B,CAAC,EAJW,gBAAgB,gCAAhB,gBAAgB,QAI3B"}
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
import { z } from "zod";
|
|
2
|
+
export declare const SETTING_NAME_PATTERN: RegExp;
|
|
3
|
+
export declare const SETTING_NAME_MAX_LENGTH = 96;
|
|
4
|
+
export declare const SETTING_KEY_NAMESPACE_SEPARATOR = ":";
|
|
5
|
+
export declare const SETTING_KEY_MAJOR_SEPARATOR = "@";
|
|
6
|
+
export declare const SettingNameSchema: z.ZodString;
|
|
7
|
+
export declare const SettingMajorSchema: z.ZodNumber;
|
|
8
|
+
export declare const SettingNamespaceSchema: z.ZodString;
|
|
9
|
+
export interface SettingKeyParts {
|
|
10
|
+
readonly namespace: string;
|
|
11
|
+
readonly name: string;
|
|
12
|
+
readonly major: number;
|
|
13
|
+
}
|
|
14
|
+
export declare const SettingKeyPartsSchema: z.ZodType<SettingKeyParts>;
|
|
15
|
+
export declare function formatSettingKey(parts: SettingKeyParts): string;
|
|
16
|
+
export declare function parseSettingKey(raw: string): SettingKeyParts;
|
|
17
|
+
export declare const SettingKeySchema: z.ZodString;
|
|
18
|
+
export declare function assertSettingDeclaredBy(key: string, declaringBiomeId: string): SettingKeyParts;
|
|
19
|
+
//# sourceMappingURL=setting-key.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"setting-key.d.ts","sourceRoot":"","sources":["../../../src/setting/lib/setting-key.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAaxB,eAAO,MAAM,oBAAoB,QAA6C,CAAC;AAC/E,eAAO,MAAM,uBAAuB,KAAK,CAAC;AAC1C,eAAO,MAAM,+BAA+B,MAAM,CAAC;AACnD,eAAO,MAAM,2BAA2B,MAAM,CAAC;AAE/C,eAAO,MAAM,iBAAiB,aAM3B,CAAC;AAEJ,eAAO,MAAM,kBAAkB,aAA0B,CAAC;AAE1D,eAAO,MAAM,sBAAsB,aAE2C,CAAC;AAE/E,MAAM,WAAW,eAAe;IAC9B,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAC3B,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;CACxB;AAED,eAAO,MAAM,qBAAqB,EAAE,CAAC,CAAC,OAAO,CAAC,eAAe,CAMlD,CAAC;AAEZ,wBAAgB,gBAAgB,CAAC,KAAK,EAAE,eAAe,GAAG,MAAM,CAG/D;AAKD,wBAAgB,eAAe,CAAC,GAAG,EAAE,MAAM,GAAG,eAAe,CAoB5D;AAED,eAAO,MAAM,gBAAgB,aAS3B,CAAC;AAMH,wBAAgB,uBAAuB,CACrC,GAAG,EAAE,MAAM,EACX,gBAAgB,EAAE,MAAM,GACvB,eAAe,CAUjB"}
|
|
@@ -0,0 +1,70 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.SettingKeySchema = exports.SettingKeyPartsSchema = exports.SettingNamespaceSchema = exports.SettingMajorSchema = exports.SettingNameSchema = exports.SETTING_KEY_MAJOR_SEPARATOR = exports.SETTING_KEY_NAMESPACE_SEPARATOR = exports.SETTING_NAME_MAX_LENGTH = exports.SETTING_NAME_PATTERN = void 0;
|
|
4
|
+
exports.formatSettingKey = formatSettingKey;
|
|
5
|
+
exports.parseSettingKey = parseSettingKey;
|
|
6
|
+
exports.assertSettingDeclaredBy = assertSettingDeclaredBy;
|
|
7
|
+
const zod_1 = require("zod");
|
|
8
|
+
const contribution_1 = require("../../contribution");
|
|
9
|
+
exports.SETTING_NAME_PATTERN = /^[a-z][a-z0-9-]*(?:\.[a-z][a-z0-9-]*)*$/u;
|
|
10
|
+
exports.SETTING_NAME_MAX_LENGTH = 96;
|
|
11
|
+
exports.SETTING_KEY_NAMESPACE_SEPARATOR = ":";
|
|
12
|
+
exports.SETTING_KEY_MAJOR_SEPARATOR = "@";
|
|
13
|
+
exports.SettingNameSchema = zod_1.z
|
|
14
|
+
.string()
|
|
15
|
+
.max(exports.SETTING_NAME_MAX_LENGTH)
|
|
16
|
+
.regex(exports.SETTING_NAME_PATTERN, 'A setting name is lower-kebab segments joined by dots, e.g. "self-answer-allowed"; it never carries a namespace or a major.');
|
|
17
|
+
exports.SettingMajorSchema = zod_1.z.number().int().min(1);
|
|
18
|
+
exports.SettingNamespaceSchema = zod_1.z
|
|
19
|
+
.string()
|
|
20
|
+
.regex(contribution_1.CONTRIBUTION_NAMESPACE_PATTERN, "A setting namespace is a biome id.");
|
|
21
|
+
exports.SettingKeyPartsSchema = zod_1.z
|
|
22
|
+
.object({
|
|
23
|
+
namespace: exports.SettingNamespaceSchema,
|
|
24
|
+
name: exports.SettingNameSchema,
|
|
25
|
+
major: exports.SettingMajorSchema,
|
|
26
|
+
})
|
|
27
|
+
.strict();
|
|
28
|
+
function formatSettingKey(parts) {
|
|
29
|
+
const parsed = exports.SettingKeyPartsSchema.parse(parts);
|
|
30
|
+
return `${parsed.namespace}${exports.SETTING_KEY_NAMESPACE_SEPARATOR}${parsed.name}${exports.SETTING_KEY_MAJOR_SEPARATOR}${parsed.major}`;
|
|
31
|
+
}
|
|
32
|
+
const KEY_SHAPE = /^([^:@]+):([^:@]+)@(\d+)$/u;
|
|
33
|
+
function parseSettingKey(raw) {
|
|
34
|
+
const match = KEY_SHAPE.exec(raw);
|
|
35
|
+
if (match === null) {
|
|
36
|
+
throw new Error(`"${raw}" is not a setting key; expected "<namespace>:<name>@<major>".`);
|
|
37
|
+
}
|
|
38
|
+
const parsed = exports.SettingKeyPartsSchema.safeParse({
|
|
39
|
+
namespace: match[1],
|
|
40
|
+
name: match[2],
|
|
41
|
+
major: Number(match[3]),
|
|
42
|
+
});
|
|
43
|
+
if (!parsed.success) {
|
|
44
|
+
throw new Error(`"${raw}" is not a legal setting key: ${parsed.error.issues
|
|
45
|
+
.map((issue) => `${issue.path.join(".")}: ${issue.message}`)
|
|
46
|
+
.join("; ")}`);
|
|
47
|
+
}
|
|
48
|
+
return parsed.data;
|
|
49
|
+
}
|
|
50
|
+
exports.SettingKeySchema = zod_1.z.string().superRefine((raw, ctx) => {
|
|
51
|
+
try {
|
|
52
|
+
parseSettingKey(raw);
|
|
53
|
+
}
|
|
54
|
+
catch (error) {
|
|
55
|
+
ctx.addIssue({
|
|
56
|
+
code: "custom",
|
|
57
|
+
message: error instanceof Error ? error.message : String(error),
|
|
58
|
+
});
|
|
59
|
+
}
|
|
60
|
+
});
|
|
61
|
+
function assertSettingDeclaredBy(key, declaringBiomeId) {
|
|
62
|
+
const parts = parseSettingKey(key);
|
|
63
|
+
if (parts.namespace !== declaringBiomeId) {
|
|
64
|
+
throw new Error(`Setting "${key}" names namespace "${parts.namespace}", but it is declared by ` +
|
|
65
|
+
`"${declaringBiomeId}". The namespace is stamped from the contribution owner, ` +
|
|
66
|
+
`never authored.`);
|
|
67
|
+
}
|
|
68
|
+
return parts;
|
|
69
|
+
}
|
|
70
|
+
//# sourceMappingURL=setting-key.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"setting-key.js","sourceRoot":"","sources":["../../../src/setting/lib/setting-key.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import type { ParameterCombine } from "../../declared-parameter";
|
|
2
|
+
import type { EffectiveValue } from "../../declared-parameter";
|
|
3
|
+
import type { SettingValue } from "./setting-constraints";
|
|
4
|
+
import type { SettingDefinition } from "./setting-definition";
|
|
5
|
+
export declare function settingCombine(def: SettingDefinition): ParameterCombine<SettingValue> | undefined;
|
|
6
|
+
export declare function tightenWith(def: SettingDefinition, effective: Pick<EffectiveValue<SettingValue>, "effectiveValue">, requested: SettingValue): SettingValue;
|
|
7
|
+
//# sourceMappingURL=setting-merge.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"setting-merge.d.ts","sourceRoot":"","sources":["../../../src/setting/lib/setting-merge.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,0BAA0B,CAAC;AACjE,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,0BAA0B,CAAC;AAC/D,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,uBAAuB,CAAC;AAC1D,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,sBAAsB,CAAC;AAc9D,wBAAgB,cAAc,CAC5B,GAAG,EAAE,iBAAiB,GACrB,gBAAgB,CAAC,YAAY,CAAC,GAAG,SAAS,CAqB5C;AAMD,wBAAgB,WAAW,CACzB,GAAG,EAAE,iBAAiB,EACtB,SAAS,EAAE,IAAI,CAAC,cAAc,CAAC,YAAY,CAAC,EAAE,gBAAgB,CAAC,EAC/D,SAAS,EAAE,YAAY,GACtB,YAAY,CAYd"}
|
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.settingCombine = settingCombine;
|
|
4
|
+
exports.tightenWith = tightenWith;
|
|
5
|
+
const setting_enums_1 = require("./setting-enums");
|
|
6
|
+
const setting_value_1 = require("./setting-value");
|
|
7
|
+
function settingCombine(def) {
|
|
8
|
+
if (def.merge === setting_enums_1.SettingMerge.Nearest)
|
|
9
|
+
return undefined;
|
|
10
|
+
switch (def.valueType) {
|
|
11
|
+
case setting_enums_1.SettingValueType.Boolean: {
|
|
12
|
+
const tighterIs = def.tighter;
|
|
13
|
+
return (a, b) => (a === tighterIs ? a : b);
|
|
14
|
+
}
|
|
15
|
+
case setting_enums_1.SettingValueType.Integer:
|
|
16
|
+
case setting_enums_1.SettingValueType.Duration: {
|
|
17
|
+
const lower = def.tighter === setting_enums_1.SettingTighterDirection.Lower;
|
|
18
|
+
return (a, b) => lower
|
|
19
|
+
? Math.min(a, b)
|
|
20
|
+
: Math.max(a, b);
|
|
21
|
+
}
|
|
22
|
+
case setting_enums_1.SettingValueType.Enum: {
|
|
23
|
+
const order = def.constraints.values;
|
|
24
|
+
return (a, b) => order.indexOf(a) <= order.indexOf(b) ? a : b;
|
|
25
|
+
}
|
|
26
|
+
}
|
|
27
|
+
}
|
|
28
|
+
function tightenWith(def, effective, requested) {
|
|
29
|
+
const combine = settingCombine(def);
|
|
30
|
+
if (combine === undefined) {
|
|
31
|
+
throw new Error(`tightenWith applies to a "tighten" setting; this one is "${def.merge}".`);
|
|
32
|
+
}
|
|
33
|
+
const schema = (0, setting_value_1.settingAtRestValueSchema)(def);
|
|
34
|
+
return combine(schema.parse(effective.effectiveValue), schema.parse(requested));
|
|
35
|
+
}
|
|
36
|
+
//# sourceMappingURL=setting-merge.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"setting-merge.js","sourceRoot":"","sources":["../../../src/setting/lib/setting-merge.ts"],"names":[],"mappings":";;AAiBA,wCAuBC;AAMD,kCAgBC;AA1DD,mDAIyB;AACzB,mDAA2D;AAQ3D,SAAgB,cAAc,CAC5B,GAAsB;IAEtB,IAAI,GAAG,CAAC,KAAK,KAAK,4BAAY,CAAC,OAAO;QAAE,OAAO,SAAS,CAAC;IACzD,QAAQ,GAAG,CAAC,SAAS,EAAE,CAAC;QACtB,KAAK,gCAAgB,CAAC,OAAO,CAAC,CAAC,CAAC;YAC9B,MAAM,SAAS,GAAG,GAAG,CAAC,OAAO,CAAC;YAC9B,OAAO,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,KAAK,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QAC7C,CAAC;QACD,KAAK,gCAAgB,CAAC,OAAO,CAAC;QAC9B,KAAK,gCAAgB,CAAC,QAAQ,CAAC,CAAC,CAAC;YAC/B,MAAM,KAAK,GAAG,GAAG,CAAC,OAAO,KAAK,uCAAuB,CAAC,KAAK,CAAC;YAC5D,OAAO,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CACd,KAAK;gBACH,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAW,EAAE,CAAW,CAAC;gBACpC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAW,EAAE,CAAW,CAAC,CAAC;QAC3C,CAAC;QACD,KAAK,gCAAgB,CAAC,IAAI,CAAC,CAAC,CAAC;YAC3B,MAAM,KAAK,GAAG,GAAG,CAAC,WAAW,CAAC,MAAM,CAAC;YACrC,OAAO,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CACd,KAAK,CAAC,OAAO,CAAC,CAAW,CAAC,IAAI,KAAK,CAAC,OAAO,CAAC,CAAW,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QACrE,CAAC;IACH,CAAC;AACH,CAAC;AAMD,SAAgB,WAAW,CACzB,GAAsB,EACtB,SAA+D,EAC/D,SAAuB;IAEvB,MAAM,OAAO,GAAG,cAAc,CAAC,GAAG,CAAC,CAAC;IACpC,IAAI,OAAO,KAAK,SAAS,EAAE,CAAC;QAC1B,MAAM,IAAI,KAAK,CACb,4DAA4D,GAAG,CAAC,KAAK,IAAI,CAC1E,CAAC;IACJ,CAAC;IACD,MAAM,MAAM,GAAG,IAAA,wCAAwB,EAAC,GAAG,CAAC,CAAC;IAC7C,OAAO,OAAO,CACZ,MAAM,CAAC,KAAK,CAAC,SAAS,CAAC,cAAc,CAAC,EACtC,MAAM,CAAC,KAAK,CAAC,SAAS,CAAC,CACxB,CAAC;AACJ,CAAC"}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import { type EffectiveValue, type ParameterScopeRef } from "../../declared-parameter";
|
|
2
|
+
import { type SpaceKind } from "../../space";
|
|
3
|
+
import type { SettingValue } from "./setting-constraints";
|
|
4
|
+
import { type StampedSettingDefinition } from "./setting-definition";
|
|
5
|
+
export interface SettingChainEntry {
|
|
6
|
+
readonly spaceKind: SpaceKind;
|
|
7
|
+
readonly scope: ParameterScopeRef;
|
|
8
|
+
readonly value?: SettingValue;
|
|
9
|
+
}
|
|
10
|
+
export declare function resolveSetting(def: StampedSettingDefinition, chain: readonly SettingChainEntry[]): EffectiveValue<SettingValue>;
|
|
11
|
+
//# sourceMappingURL=setting-resolve.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"setting-resolve.d.ts","sourceRoot":"","sources":["../../../src/setting/lib/setting-resolve.ts"],"names":[],"mappings":"AAAA,OAAO,EAEL,KAAK,cAAc,EAEnB,KAAK,iBAAiB,EACvB,MAAM,0BAA0B,CAAC;AAClC,OAAO,EAGL,KAAK,SAAS,EACf,MAAM,aAAa,CAAC;AACrB,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,uBAAuB,CAAC;AAC1D,OAAO,EAGL,KAAK,wBAAwB,EAC9B,MAAM,sBAAsB,CAAC;AAM9B,MAAM,WAAW,iBAAiB;IAChC,QAAQ,CAAC,SAAS,EAAE,SAAS,CAAC;IAC9B,QAAQ,CAAC,KAAK,EAAE,iBAAiB,CAAC;IAClC,QAAQ,CAAC,KAAK,CAAC,EAAE,YAAY,CAAC;CAC/B;AAQD,wBAAgB,cAAc,CAC5B,GAAG,EAAE,wBAAwB,EAC7B,KAAK,EAAE,SAAS,iBAAiB,EAAE,GAClC,cAAc,CAAC,YAAY,CAAC,CAwC9B"}
|
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.resolveSetting = resolveSetting;
|
|
4
|
+
const declared_parameter_1 = require("../../declared-parameter");
|
|
5
|
+
const space_1 = require("../../space");
|
|
6
|
+
const setting_definition_1 = require("./setting-definition");
|
|
7
|
+
const setting_enums_1 = require("./setting-enums");
|
|
8
|
+
const setting_merge_1 = require("./setting-merge");
|
|
9
|
+
const setting_value_1 = require("./setting-value");
|
|
10
|
+
function resolveSetting(def, chain) {
|
|
11
|
+
const schema = (0, setting_value_1.settingAtRestValueSchema)(def);
|
|
12
|
+
const seen = new Set();
|
|
13
|
+
const admitted = [];
|
|
14
|
+
for (const entry of chain) {
|
|
15
|
+
(0, space_1.spaceKindRank)(entry.spaceKind);
|
|
16
|
+
if (seen.has(entry.spaceKind)) {
|
|
17
|
+
throw new Error(`Setting "${def.key}" chain has two rungs at "${entry.spaceKind}".`);
|
|
18
|
+
}
|
|
19
|
+
seen.add(entry.spaceKind);
|
|
20
|
+
const admits = (0, setting_definition_1.mayDeclareAt)(def, entry.spaceKind);
|
|
21
|
+
if (entry.value === undefined && !admits)
|
|
22
|
+
continue;
|
|
23
|
+
(0, space_1.assertSpaceKindAdmissible)(setting_enums_1.SETTING_REGISTRY, entry.spaceKind, new Set(def.declarableAt));
|
|
24
|
+
if (entry.value !== undefined)
|
|
25
|
+
schema.parse(entry.value);
|
|
26
|
+
admitted.push(entry);
|
|
27
|
+
}
|
|
28
|
+
admitted.sort((a, b) => (0, space_1.spaceKindRank)(a.spaceKind) - (0, space_1.spaceKindRank)(b.spaceKind));
|
|
29
|
+
const parameterChain = admitted.map((entry) => entry.value === undefined
|
|
30
|
+
? { scope: entry.scope }
|
|
31
|
+
: { scope: entry.scope, value: entry.value });
|
|
32
|
+
const combine = (0, setting_merge_1.settingCombine)(def);
|
|
33
|
+
return (0, declared_parameter_1.resolveDeclaredParameter)({
|
|
34
|
+
key: def.key,
|
|
35
|
+
platformDefault: (0, setting_definition_1.settingDefaultValue)(def),
|
|
36
|
+
...(combine === undefined ? {} : { combine }),
|
|
37
|
+
}, parameterChain);
|
|
38
|
+
}
|
|
39
|
+
//# sourceMappingURL=setting-resolve.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"setting-resolve.js","sourceRoot":"","sources":["../../../src/setting/lib/setting-resolve.ts"],"names":[],"mappings":";;AAkCA,wCA2CC;AA7ED,iEAKkC;AAClC,uCAIqB;AAErB,6DAI8B;AAC9B,mDAAmD;AACnD,mDAAiD;AACjD,mDAA2D;AAe3D,SAAgB,cAAc,CAC5B,GAA6B,EAC7B,KAAmC;IAEnC,MAAM,MAAM,GAAG,IAAA,wCAAwB,EAAC,GAAG,CAAC,CAAC;IAC7C,MAAM,IAAI,GAAG,IAAI,GAAG,EAAa,CAAC;IAClC,MAAM,QAAQ,GAAwB,EAAE,CAAC;IACzC,KAAK,MAAM,KAAK,IAAI,KAAK,EAAE,CAAC;QAC1B,IAAA,qBAAa,EAAC,KAAK,CAAC,SAAS,CAAC,CAAC;QAC/B,IAAI,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,SAAS,CAAC,EAAE,CAAC;YAC9B,MAAM,IAAI,KAAK,CACb,YAAY,GAAG,CAAC,GAAG,6BAA6B,KAAK,CAAC,SAAS,IAAI,CACpE,CAAC;QACJ,CAAC;QACD,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC;QAC1B,MAAM,MAAM,GAAG,IAAA,iCAAY,EAAC,GAAG,EAAE,KAAK,CAAC,SAAS,CAAC,CAAC;QAClD,IAAI,KAAK,CAAC,KAAK,KAAK,SAAS,IAAI,CAAC,MAAM;YAAE,SAAS;QACnD,IAAA,iCAAyB,EACvB,gCAAgB,EAChB,KAAK,CAAC,SAAS,EACf,IAAI,GAAG,CAAC,GAAG,CAAC,YAAY,CAAC,CAC1B,CAAC;QACF,IAAI,KAAK,CAAC,KAAK,KAAK,SAAS;YAAE,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;QACzD,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IACvB,CAAC;IACD,QAAQ,CAAC,IAAI,CACX,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,IAAA,qBAAa,EAAC,CAAC,CAAC,SAAS,CAAC,GAAG,IAAA,qBAAa,EAAC,CAAC,CAAC,SAAS,CAAC,CAClE,CAAC;IACF,MAAM,cAAc,GAAwC,QAAQ,CAAC,GAAG,CACtE,CAAC,KAAK,EAAE,EAAE,CACR,KAAK,CAAC,KAAK,KAAK,SAAS;QACvB,CAAC,CAAC,EAAE,KAAK,EAAE,KAAK,CAAC,KAAK,EAAE;QACxB,CAAC,CAAC,EAAE,KAAK,EAAE,KAAK,CAAC,KAAK,EAAE,KAAK,EAAE,KAAK,CAAC,KAAK,EAAE,CACjD,CAAC;IACF,MAAM,OAAO,GAAG,IAAA,8BAAc,EAAC,GAAG,CAAC,CAAC;IACpC,OAAO,IAAA,6CAAwB,EAC7B;QACE,GAAG,EAAE,GAAG,CAAC,GAAG;QACZ,eAAe,EAAE,IAAA,wCAAmB,EAAC,GAAG,CAAC;QACzC,GAAG,CAAC,OAAO,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,CAAC;KAC9C,EACD,cAAc,CACf,CAAC;AACJ,CAAC"}
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
import type { SettingDefinition } from "./setting-definition";
|
|
2
|
+
export declare function settingRevisionIncompatibilities(prev: SettingDefinition, next: SettingDefinition): readonly string[];
|
|
3
|
+
export declare function isCompatibleRevision(prev: SettingDefinition, next: SettingDefinition): boolean;
|
|
4
|
+
export declare function assertCompatibleRevision(prev: SettingDefinition, next: SettingDefinition): void;
|
|
5
|
+
//# sourceMappingURL=setting-revision.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"setting-revision.d.ts","sourceRoot":"","sources":["../../../src/setting/lib/setting-revision.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,sBAAsB,CAAC;AAS9D,wBAAgB,gCAAgC,CAC9C,IAAI,EAAE,iBAAiB,EACvB,IAAI,EAAE,iBAAiB,GACtB,SAAS,MAAM,EAAE,CAiDnB;AAED,wBAAgB,oBAAoB,CAClC,IAAI,EAAE,iBAAiB,EACvB,IAAI,EAAE,iBAAiB,GACtB,OAAO,CAET;AAED,wBAAgB,wBAAwB,CACtC,IAAI,EAAE,iBAAiB,EACvB,IAAI,EAAE,iBAAiB,GACtB,IAAI,CAQN"}
|
|
@@ -0,0 +1,68 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.settingRevisionIncompatibilities = settingRevisionIncompatibilities;
|
|
4
|
+
exports.isCompatibleRevision = isCompatibleRevision;
|
|
5
|
+
exports.assertCompatibleRevision = assertCompatibleRevision;
|
|
6
|
+
const setting_enums_1 = require("./setting-enums");
|
|
7
|
+
function settingRevisionIncompatibilities(prev, next) {
|
|
8
|
+
if (prev.name !== next.name || prev.major !== next.major) {
|
|
9
|
+
return [
|
|
10
|
+
"name and major identify the definition; a different pair is a different setting",
|
|
11
|
+
];
|
|
12
|
+
}
|
|
13
|
+
const out = [];
|
|
14
|
+
if (prev.valueType !== next.valueType)
|
|
15
|
+
out.push("valueType changed");
|
|
16
|
+
if (prev.merge !== next.merge)
|
|
17
|
+
out.push("merge changed");
|
|
18
|
+
if (prev.tighter !== next.tighter)
|
|
19
|
+
out.push("tighter changed");
|
|
20
|
+
const prevTiers = [...prev.declarableAt].sort().join(",");
|
|
21
|
+
const nextTiers = [...next.declarableAt].sort().join(",");
|
|
22
|
+
if (prevTiers !== nextTiers)
|
|
23
|
+
out.push("declarableAt changed");
|
|
24
|
+
if (out.length > 0)
|
|
25
|
+
return out;
|
|
26
|
+
switch (prev.valueType) {
|
|
27
|
+
case setting_enums_1.SettingValueType.Boolean:
|
|
28
|
+
break;
|
|
29
|
+
case setting_enums_1.SettingValueType.Integer:
|
|
30
|
+
if (next.valueType === setting_enums_1.SettingValueType.Integer) {
|
|
31
|
+
if (next.constraints.min > prev.constraints.min)
|
|
32
|
+
out.push("min was raised");
|
|
33
|
+
if (next.constraints.max < prev.constraints.max)
|
|
34
|
+
out.push("max was lowered");
|
|
35
|
+
}
|
|
36
|
+
break;
|
|
37
|
+
case setting_enums_1.SettingValueType.Duration:
|
|
38
|
+
if (next.valueType === setting_enums_1.SettingValueType.Duration) {
|
|
39
|
+
if (next.constraints.minSeconds > prev.constraints.minSeconds) {
|
|
40
|
+
out.push("minSeconds was raised");
|
|
41
|
+
}
|
|
42
|
+
if (next.constraints.maxSeconds < prev.constraints.maxSeconds) {
|
|
43
|
+
out.push("maxSeconds was lowered");
|
|
44
|
+
}
|
|
45
|
+
}
|
|
46
|
+
break;
|
|
47
|
+
case setting_enums_1.SettingValueType.Enum:
|
|
48
|
+
if (next.valueType === setting_enums_1.SettingValueType.Enum) {
|
|
49
|
+
const kept = prev.constraints.values.every((value, index) => next.constraints.values[index] === value);
|
|
50
|
+
if (!kept) {
|
|
51
|
+
out.push("enum members may only be appended at the loose end, in order");
|
|
52
|
+
}
|
|
53
|
+
}
|
|
54
|
+
break;
|
|
55
|
+
}
|
|
56
|
+
return out;
|
|
57
|
+
}
|
|
58
|
+
function isCompatibleRevision(prev, next) {
|
|
59
|
+
return settingRevisionIncompatibilities(prev, next).length === 0;
|
|
60
|
+
}
|
|
61
|
+
function assertCompatibleRevision(prev, next) {
|
|
62
|
+
const problems = settingRevisionIncompatibilities(prev, next);
|
|
63
|
+
if (problems.length > 0) {
|
|
64
|
+
throw new Error(`Setting "${prev.name}@${prev.major}" revision is not additive: ${problems.join("; ")}. ` +
|
|
65
|
+
`Publish it as @${prev.major + 1}.`);
|
|
66
|
+
}
|
|
67
|
+
}
|
|
68
|
+
//# sourceMappingURL=setting-revision.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"setting-revision.js","sourceRoot":"","sources":["../../../src/setting/lib/setting-revision.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
import { z } from "zod";
|
|
2
|
+
import type { SettingValue, SettingValueShape } from "./setting-constraints";
|
|
3
|
+
export declare function settingValueSchema(shape: SettingValueShape): z.ZodType<SettingValue, unknown>;
|
|
4
|
+
export declare function settingAtRestValueSchema(shape: SettingValueShape): z.ZodType<SettingValue>;
|
|
5
|
+
//# sourceMappingURL=setting-value.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"setting-value.d.ts","sourceRoot":"","sources":["../../../src/setting/lib/setting-value.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,OAAO,KAAK,EAAE,YAAY,EAAE,iBAAiB,EAAE,MAAM,uBAAuB,CAAC;AA8B7E,wBAAgB,kBAAkB,CAChC,KAAK,EAAE,iBAAiB,GACvB,CAAC,CAAC,OAAO,CAAC,YAAY,EAAE,OAAO,CAAC,CAuBlC;AAGD,wBAAgB,wBAAwB,CACtC,KAAK,EAAE,iBAAiB,GACvB,CAAC,CAAC,OAAO,CAAC,YAAY,CAAC,CAEzB"}
|