@open-macaron/review 0.3.1 → 0.3.4
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/macaron-review.mjs +1360 -1215
- package/package.json +1 -1
package/macaron-review.mjs
CHANGED
|
@@ -9173,434 +9173,6 @@ import { mkdtemp, rm, writeFile } from "node:fs/promises";
|
|
|
9173
9173
|
import { tmpdir } from "node:os";
|
|
9174
9174
|
import { join } from "node:path";
|
|
9175
9175
|
|
|
9176
|
-
// ../../node_modules/.pnpm/deepmerge-ts@8.0.2/node_modules/deepmerge-ts/dist/index.mjs
|
|
9177
|
-
var actions = {
|
|
9178
|
-
defaultMerge: /* @__PURE__ */ Symbol("deepmerge-ts: default merge"),
|
|
9179
|
-
skip: /* @__PURE__ */ Symbol("deepmerge-ts: skip")
|
|
9180
|
-
};
|
|
9181
|
-
var actionsInto = {
|
|
9182
|
-
defaultMerge: actions.defaultMerge
|
|
9183
|
-
};
|
|
9184
|
-
function defaultMetaDataUpdater(previousMeta, mergeInfo) {
|
|
9185
|
-
const ancestor = {
|
|
9186
|
-
key: mergeInfo.key,
|
|
9187
|
-
parents: mergeInfo.parents,
|
|
9188
|
-
values: mergeInfo.values,
|
|
9189
|
-
result: mergeInfo.result
|
|
9190
|
-
};
|
|
9191
|
-
const prevHierarchy = previousMeta?.hierarchy;
|
|
9192
|
-
return {
|
|
9193
|
-
...ancestor,
|
|
9194
|
-
hierarchy: prevHierarchy === void 0 ? [ancestor] : [...prevHierarchy, ancestor]
|
|
9195
|
-
};
|
|
9196
|
-
}
|
|
9197
|
-
function defaultFilterValues(values, meta3) {
|
|
9198
|
-
return values.includes(void 0) ? values.filter((value) => value !== void 0) : values;
|
|
9199
|
-
}
|
|
9200
|
-
function shouldFallbackToDefault(utils, fallback, result) {
|
|
9201
|
-
return result === actions.defaultMerge || utils.useImplicitDefaultMerging && result === void 0 && utils.mergeFunctions[fallback] !== utils.defaultMergeFunctions[fallback];
|
|
9202
|
-
}
|
|
9203
|
-
function resolveCustomMergeFunctions(options, defaultMergeFunctions) {
|
|
9204
|
-
return {
|
|
9205
|
-
...defaultMergeFunctions,
|
|
9206
|
-
...Object.fromEntries(Object.entries(options).filter(([key]) => Object.hasOwn(defaultMergeFunctions, key)).map(([key, option]) => option === false ? [key, defaultMergeFunctions.mergeOthers] : typeof option === "function" ? [key, option] : [key, defaultMergeFunctions[key]]))
|
|
9207
|
-
};
|
|
9208
|
-
}
|
|
9209
|
-
function mergeArrays$1(values, utils, meta3) {
|
|
9210
|
-
return values.flat();
|
|
9211
|
-
}
|
|
9212
|
-
function mergeSets$1(values, utils, meta3) {
|
|
9213
|
-
const result = /* @__PURE__ */ new Set();
|
|
9214
|
-
for (const set2 of values) {
|
|
9215
|
-
for (const element of set2) {
|
|
9216
|
-
result.add(element);
|
|
9217
|
-
}
|
|
9218
|
-
}
|
|
9219
|
-
return result;
|
|
9220
|
-
}
|
|
9221
|
-
function mergeOthers$1(values, utils, meta3) {
|
|
9222
|
-
return values.at(-1);
|
|
9223
|
-
}
|
|
9224
|
-
var ObjectType;
|
|
9225
|
-
(function(ObjectType2) {
|
|
9226
|
-
ObjectType2[ObjectType2["NOT"] = 0] = "NOT";
|
|
9227
|
-
ObjectType2[ObjectType2["RECORD"] = 1] = "RECORD";
|
|
9228
|
-
ObjectType2[ObjectType2["ARRAY"] = 2] = "ARRAY";
|
|
9229
|
-
ObjectType2[ObjectType2["SET"] = 3] = "SET";
|
|
9230
|
-
ObjectType2[ObjectType2["MAP"] = 4] = "MAP";
|
|
9231
|
-
ObjectType2[ObjectType2["OTHER"] = 5] = "OTHER";
|
|
9232
|
-
})(ObjectType || (ObjectType = {}));
|
|
9233
|
-
function getObjectType(object2) {
|
|
9234
|
-
if (typeof object2 !== "object" || object2 === null) {
|
|
9235
|
-
return ObjectType.NOT;
|
|
9236
|
-
}
|
|
9237
|
-
if (Array.isArray(object2)) {
|
|
9238
|
-
return ObjectType.ARRAY;
|
|
9239
|
-
}
|
|
9240
|
-
if (isRecord(object2)) {
|
|
9241
|
-
return ObjectType.RECORD;
|
|
9242
|
-
}
|
|
9243
|
-
if (object2 instanceof Set) {
|
|
9244
|
-
return ObjectType.SET;
|
|
9245
|
-
}
|
|
9246
|
-
if (object2 instanceof Map) {
|
|
9247
|
-
return ObjectType.MAP;
|
|
9248
|
-
}
|
|
9249
|
-
return ObjectType.OTHER;
|
|
9250
|
-
}
|
|
9251
|
-
function getKeysOfObjects(objects) {
|
|
9252
|
-
const keys = /* @__PURE__ */ new Set();
|
|
9253
|
-
for (const currentObject of objects) {
|
|
9254
|
-
const stringKeys = Object.keys(currentObject);
|
|
9255
|
-
for (const stringKey of stringKeys) {
|
|
9256
|
-
keys.add(stringKey);
|
|
9257
|
-
}
|
|
9258
|
-
const symbols = Object.getOwnPropertySymbols(currentObject);
|
|
9259
|
-
if (symbols.length > 0) {
|
|
9260
|
-
for (const symbol2 of symbols) {
|
|
9261
|
-
if (Object.prototype.propertyIsEnumerable.call(currentObject, symbol2)) {
|
|
9262
|
-
keys.add(symbol2);
|
|
9263
|
-
}
|
|
9264
|
-
}
|
|
9265
|
-
}
|
|
9266
|
-
}
|
|
9267
|
-
return keys;
|
|
9268
|
-
}
|
|
9269
|
-
function getKeysOfObject(object2) {
|
|
9270
|
-
const symbols = Object.getOwnPropertySymbols(object2).filter((symbol2) => Object.prototype.propertyIsEnumerable.call(object2, symbol2));
|
|
9271
|
-
return [...Object.keys(object2), ...symbols];
|
|
9272
|
-
}
|
|
9273
|
-
function objectHasProperty(object2, property) {
|
|
9274
|
-
return typeof object2 === "object" && Object.prototype.propertyIsEnumerable.call(object2, property);
|
|
9275
|
-
}
|
|
9276
|
-
function isRecord(value) {
|
|
9277
|
-
const prototype = Object.getPrototypeOf(value);
|
|
9278
|
-
if (prototype === null || prototype === Object.prototype) {
|
|
9279
|
-
return true;
|
|
9280
|
-
}
|
|
9281
|
-
const objectToString = Object.prototype.toString.call(value);
|
|
9282
|
-
if (objectToString !== "[object Object]" && objectToString !== "[object Module]") {
|
|
9283
|
-
return false;
|
|
9284
|
-
}
|
|
9285
|
-
const { constructor } = value;
|
|
9286
|
-
if (constructor === void 0) {
|
|
9287
|
-
return true;
|
|
9288
|
-
}
|
|
9289
|
-
const constructorPrototype = constructor.prototype;
|
|
9290
|
-
if (constructorPrototype === null || typeof constructorPrototype !== "object") {
|
|
9291
|
-
return false;
|
|
9292
|
-
}
|
|
9293
|
-
const constructorToString = Object.prototype.toString.call(constructorPrototype);
|
|
9294
|
-
if (constructorToString !== "[object Object]" && constructorToString !== "[object Module]") {
|
|
9295
|
-
return false;
|
|
9296
|
-
}
|
|
9297
|
-
if (!Object.hasOwn(constructorPrototype, "isPrototypeOf")) {
|
|
9298
|
-
return false;
|
|
9299
|
-
}
|
|
9300
|
-
return true;
|
|
9301
|
-
}
|
|
9302
|
-
function getCyclicReferenceDepth(object2, hierarchy, index) {
|
|
9303
|
-
if (hierarchy === void 0 || hierarchy.length === 0) {
|
|
9304
|
-
return 0;
|
|
9305
|
-
}
|
|
9306
|
-
let mut_depth = 1;
|
|
9307
|
-
for (let mut_index = hierarchy.length - 1; mut_index >= 0; mut_index--) {
|
|
9308
|
-
const { parents } = hierarchy[mut_index];
|
|
9309
|
-
if (parents[index] === object2 || parents.includes(object2)) {
|
|
9310
|
-
return mut_depth;
|
|
9311
|
-
}
|
|
9312
|
-
mut_depth += 1;
|
|
9313
|
-
}
|
|
9314
|
-
return 0;
|
|
9315
|
-
}
|
|
9316
|
-
function getMetaDataHierarchy(meta3) {
|
|
9317
|
-
return meta3?.hierarchy;
|
|
9318
|
-
}
|
|
9319
|
-
function mergeRecords$1(values, utils, meta3) {
|
|
9320
|
-
if (values.length === 2) {
|
|
9321
|
-
const result = {};
|
|
9322
|
-
const mergeProperty = (key, propValues) => {
|
|
9323
|
-
const updatedMeta = utils.metaDataUpdater(meta3, {
|
|
9324
|
-
key,
|
|
9325
|
-
parents: values,
|
|
9326
|
-
values: propValues,
|
|
9327
|
-
result
|
|
9328
|
-
});
|
|
9329
|
-
const propertyResult = mergeUnknowns(propValues, utils, updatedMeta);
|
|
9330
|
-
if (propertyResult === actions.skip) {
|
|
9331
|
-
return;
|
|
9332
|
-
}
|
|
9333
|
-
if (key === "__proto__") {
|
|
9334
|
-
Object.defineProperty(result, key, {
|
|
9335
|
-
value: propertyResult,
|
|
9336
|
-
configurable: true,
|
|
9337
|
-
enumerable: true,
|
|
9338
|
-
writable: true
|
|
9339
|
-
});
|
|
9340
|
-
} else {
|
|
9341
|
-
result[key] = propertyResult;
|
|
9342
|
-
}
|
|
9343
|
-
};
|
|
9344
|
-
const firstValue = values[0];
|
|
9345
|
-
const secondValue = values[1];
|
|
9346
|
-
for (const key of getKeysOfObject(firstValue)) {
|
|
9347
|
-
mergeProperty(key, objectHasProperty(secondValue, key) ? [firstValue[key], secondValue[key]] : [firstValue[key]]);
|
|
9348
|
-
}
|
|
9349
|
-
for (const key of getKeysOfObject(secondValue)) {
|
|
9350
|
-
if (!objectHasProperty(firstValue, key)) {
|
|
9351
|
-
mergeProperty(key, [secondValue[key]]);
|
|
9352
|
-
}
|
|
9353
|
-
}
|
|
9354
|
-
return result;
|
|
9355
|
-
}
|
|
9356
|
-
return mergeRecordsGeneral(values, utils, meta3);
|
|
9357
|
-
}
|
|
9358
|
-
function mergeRecordsGeneral(values, utils, meta3) {
|
|
9359
|
-
const result = {};
|
|
9360
|
-
for (const key of getKeysOfObjects(values)) {
|
|
9361
|
-
const propValues = [];
|
|
9362
|
-
for (const value of values) {
|
|
9363
|
-
if (objectHasProperty(value, key)) {
|
|
9364
|
-
propValues.push(value[key]);
|
|
9365
|
-
}
|
|
9366
|
-
}
|
|
9367
|
-
const updatedMeta = utils.metaDataUpdater(meta3, {
|
|
9368
|
-
key,
|
|
9369
|
-
parents: values,
|
|
9370
|
-
values: propValues,
|
|
9371
|
-
result
|
|
9372
|
-
});
|
|
9373
|
-
const propertyResult = mergeUnknowns(propValues, utils, updatedMeta);
|
|
9374
|
-
if (propertyResult === actions.skip) {
|
|
9375
|
-
continue;
|
|
9376
|
-
}
|
|
9377
|
-
if (key === "__proto__") {
|
|
9378
|
-
Object.defineProperty(result, key, {
|
|
9379
|
-
value: propertyResult,
|
|
9380
|
-
configurable: true,
|
|
9381
|
-
enumerable: true,
|
|
9382
|
-
writable: true
|
|
9383
|
-
});
|
|
9384
|
-
} else {
|
|
9385
|
-
result[key] = propertyResult;
|
|
9386
|
-
}
|
|
9387
|
-
}
|
|
9388
|
-
return result;
|
|
9389
|
-
}
|
|
9390
|
-
function mergeMaps$1(values, utils, meta3) {
|
|
9391
|
-
const result = /* @__PURE__ */ new Map();
|
|
9392
|
-
const valuesByKey = /* @__PURE__ */ new Map();
|
|
9393
|
-
for (const map2 of values) {
|
|
9394
|
-
for (const [key, value] of map2) {
|
|
9395
|
-
const mut_keyValues = valuesByKey.get(key);
|
|
9396
|
-
if (mut_keyValues === void 0) {
|
|
9397
|
-
valuesByKey.set(key, [value]);
|
|
9398
|
-
} else {
|
|
9399
|
-
mut_keyValues.push(value);
|
|
9400
|
-
}
|
|
9401
|
-
}
|
|
9402
|
-
}
|
|
9403
|
-
for (const [key, keyValues] of valuesByKey) {
|
|
9404
|
-
const updatedMeta = utils.metaDataUpdater(meta3, {
|
|
9405
|
-
key,
|
|
9406
|
-
parents: values,
|
|
9407
|
-
values: keyValues,
|
|
9408
|
-
result
|
|
9409
|
-
});
|
|
9410
|
-
const keyResult = mergeUnknowns(keyValues, utils, updatedMeta);
|
|
9411
|
-
if (keyResult === actions.skip) {
|
|
9412
|
-
continue;
|
|
9413
|
-
}
|
|
9414
|
-
result.set(key, keyResult);
|
|
9415
|
-
}
|
|
9416
|
-
return result;
|
|
9417
|
-
}
|
|
9418
|
-
function resolveCyclicReferences(value, utils, meta3) {
|
|
9419
|
-
if (typeof value !== "object" || value === null) {
|
|
9420
|
-
return value;
|
|
9421
|
-
}
|
|
9422
|
-
const hierarchy = getMetaDataHierarchy(meta3);
|
|
9423
|
-
const depth = getCyclicReferenceDepth(value, hierarchy, 0);
|
|
9424
|
-
if (hierarchy !== void 0 && depth > 0) {
|
|
9425
|
-
return hierarchy[hierarchy.length - depth]?.result;
|
|
9426
|
-
}
|
|
9427
|
-
const type = getObjectType(value);
|
|
9428
|
-
if (type === ObjectType.RECORD) {
|
|
9429
|
-
const record2 = value;
|
|
9430
|
-
let mut_changed = false;
|
|
9431
|
-
const result = {};
|
|
9432
|
-
for (const key of getKeysOfObject(record2)) {
|
|
9433
|
-
const propVal = record2[key];
|
|
9434
|
-
const updatedMeta = utils.metaDataUpdater(meta3, {
|
|
9435
|
-
key,
|
|
9436
|
-
parents: [record2],
|
|
9437
|
-
values: [propVal],
|
|
9438
|
-
result
|
|
9439
|
-
});
|
|
9440
|
-
const resolvedProp = resolveCyclicReferences(propVal, utils, updatedMeta);
|
|
9441
|
-
if (resolvedProp !== propVal) {
|
|
9442
|
-
mut_changed = true;
|
|
9443
|
-
}
|
|
9444
|
-
if (key === "__proto__") {
|
|
9445
|
-
Object.defineProperty(result, key, {
|
|
9446
|
-
value: resolvedProp,
|
|
9447
|
-
configurable: true,
|
|
9448
|
-
enumerable: true,
|
|
9449
|
-
writable: true
|
|
9450
|
-
});
|
|
9451
|
-
} else {
|
|
9452
|
-
result[key] = resolvedProp;
|
|
9453
|
-
}
|
|
9454
|
-
}
|
|
9455
|
-
return mut_changed ? result : value;
|
|
9456
|
-
}
|
|
9457
|
-
return value;
|
|
9458
|
-
}
|
|
9459
|
-
function mergeCircularReferences$1(values, cyclicDepths, utils, meta3) {
|
|
9460
|
-
const depth = cyclicDepths[0];
|
|
9461
|
-
const hierarchy = getMetaDataHierarchy(meta3);
|
|
9462
|
-
for (let mut_index = 1; mut_index < values.length; mut_index++) {
|
|
9463
|
-
if (cyclicDepths[mut_index] !== depth) {
|
|
9464
|
-
const lastCyclicDepth = cyclicDepths.at(-1);
|
|
9465
|
-
return lastCyclicDepth === 0 ? resolveCyclicReferences(values.at(-1), utils, meta3) : hierarchy?.[hierarchy.length - lastCyclicDepth]?.result;
|
|
9466
|
-
}
|
|
9467
|
-
}
|
|
9468
|
-
return hierarchy?.[hierarchy.length - depth]?.result;
|
|
9469
|
-
}
|
|
9470
|
-
var mergeFunctions = {
|
|
9471
|
-
mergeRecords: mergeRecords$1,
|
|
9472
|
-
mergeArrays: mergeArrays$1,
|
|
9473
|
-
mergeSets: mergeSets$1,
|
|
9474
|
-
mergeMaps: mergeMaps$1,
|
|
9475
|
-
mergeCircularReferences: mergeCircularReferences$1,
|
|
9476
|
-
mergeOthers: mergeOthers$1
|
|
9477
|
-
};
|
|
9478
|
-
function deepmergeCustom(options = {}, rootMetaData) {
|
|
9479
|
-
const utils = getUtils$1(options, customizedDeepmerge);
|
|
9480
|
-
function customizedDeepmerge(...objects) {
|
|
9481
|
-
return mergeUnknowns(objects, utils, rootMetaData ?? void 0);
|
|
9482
|
-
}
|
|
9483
|
-
return customizedDeepmerge;
|
|
9484
|
-
}
|
|
9485
|
-
function getUtils$1(options, customizedDeepmerge) {
|
|
9486
|
-
const defaultMergeFns = mergeFunctions;
|
|
9487
|
-
const defaultMetaDataUpd = defaultMetaDataUpdater;
|
|
9488
|
-
return {
|
|
9489
|
-
defaultMergeFunctions: defaultMergeFns,
|
|
9490
|
-
mergeFunctions: resolveCustomMergeFunctions(options, defaultMergeFns),
|
|
9491
|
-
metaDataUpdater: typeof options.metaDataUpdater === "function" ? options.metaDataUpdater : defaultMetaDataUpd,
|
|
9492
|
-
deepmerge: customizedDeepmerge,
|
|
9493
|
-
useImplicitDefaultMerging: options.enableImplicitDefaultMerging ?? false,
|
|
9494
|
-
filterValues: options.filterValues === false ? void 0 : typeof options.filterValues === "function" ? options.filterValues : defaultFilterValues,
|
|
9495
|
-
maxDepth: typeof options.maxDepth === "number" && !Number.isNaN(options.maxDepth) && options.maxDepth >= 0 ? options.maxDepth : 1e3,
|
|
9496
|
-
actions
|
|
9497
|
-
};
|
|
9498
|
-
}
|
|
9499
|
-
function mergeUnknowns(values, utils, meta3) {
|
|
9500
|
-
const filteredValues = utils.filterValues?.(values, meta3) ?? values;
|
|
9501
|
-
if (filteredValues.length === 0) {
|
|
9502
|
-
return void 0;
|
|
9503
|
-
}
|
|
9504
|
-
const hierarchy = getMetaDataHierarchy(meta3);
|
|
9505
|
-
const currentDepth = hierarchy?.length ?? (typeof meta3 === "number" ? meta3 : meta3?.depth ?? 0);
|
|
9506
|
-
if (utils.maxDepth !== void 0 && currentDepth >= utils.maxDepth) {
|
|
9507
|
-
return mergeOthers(filteredValues, utils, meta3);
|
|
9508
|
-
}
|
|
9509
|
-
if (filteredValues.length === 1) {
|
|
9510
|
-
if (hierarchy !== void 0) {
|
|
9511
|
-
const depth = getCyclicReferenceDepth(filteredValues[0], hierarchy, 0);
|
|
9512
|
-
if (depth > 0) {
|
|
9513
|
-
return hierarchy[hierarchy.length - depth]?.result ?? hierarchy[hierarchy.length - depth]?.parents[0];
|
|
9514
|
-
}
|
|
9515
|
-
}
|
|
9516
|
-
return mergeOthers(filteredValues, utils, meta3);
|
|
9517
|
-
}
|
|
9518
|
-
const type = getObjectType(filteredValues[0]);
|
|
9519
|
-
if (type !== ObjectType.NOT && type !== ObjectType.OTHER) {
|
|
9520
|
-
if (filteredValues.length === 2) {
|
|
9521
|
-
if (getObjectType(filteredValues[1]) !== type) {
|
|
9522
|
-
return mergeOthers(filteredValues, utils, meta3);
|
|
9523
|
-
}
|
|
9524
|
-
const d0 = getCyclicReferenceDepth(filteredValues[0], hierarchy, 0);
|
|
9525
|
-
const d1 = getCyclicReferenceDepth(filteredValues[1], hierarchy, 1);
|
|
9526
|
-
if (d0 !== 0 || d1 !== 0) {
|
|
9527
|
-
return mergeCircularReferences(filteredValues, [d0, d1], utils, meta3);
|
|
9528
|
-
}
|
|
9529
|
-
} else {
|
|
9530
|
-
const cyclicDepths = new Array(filteredValues.length);
|
|
9531
|
-
cyclicDepths[0] = getCyclicReferenceDepth(filteredValues[0], hierarchy, 0);
|
|
9532
|
-
for (let mut_index = 1; mut_index < filteredValues.length; mut_index++) {
|
|
9533
|
-
if (getObjectType(filteredValues[mut_index]) !== type) {
|
|
9534
|
-
return mergeOthers(filteredValues, utils, meta3);
|
|
9535
|
-
}
|
|
9536
|
-
cyclicDepths[mut_index] = getCyclicReferenceDepth(filteredValues[mut_index], hierarchy, mut_index);
|
|
9537
|
-
}
|
|
9538
|
-
if (cyclicDepths.some((depth) => depth !== 0)) {
|
|
9539
|
-
return mergeCircularReferences(filteredValues, cyclicDepths, utils, meta3);
|
|
9540
|
-
}
|
|
9541
|
-
}
|
|
9542
|
-
}
|
|
9543
|
-
switch (type) {
|
|
9544
|
-
case ObjectType.RECORD: {
|
|
9545
|
-
return mergeRecords(filteredValues, utils, meta3);
|
|
9546
|
-
}
|
|
9547
|
-
case ObjectType.ARRAY: {
|
|
9548
|
-
return mergeArrays(filteredValues, utils, meta3);
|
|
9549
|
-
}
|
|
9550
|
-
case ObjectType.SET: {
|
|
9551
|
-
return mergeSets(filteredValues, utils, meta3);
|
|
9552
|
-
}
|
|
9553
|
-
case ObjectType.MAP: {
|
|
9554
|
-
return mergeMaps(filteredValues, utils, meta3);
|
|
9555
|
-
}
|
|
9556
|
-
default: {
|
|
9557
|
-
return mergeOthers(filteredValues, utils, meta3);
|
|
9558
|
-
}
|
|
9559
|
-
}
|
|
9560
|
-
}
|
|
9561
|
-
function mergeRecords(values, utils, meta3) {
|
|
9562
|
-
const result = utils.mergeFunctions.mergeRecords(values, utils, meta3);
|
|
9563
|
-
if (shouldFallbackToDefault(utils, "mergeRecords", result)) {
|
|
9564
|
-
return utils.defaultMergeFunctions.mergeRecords(values, utils, meta3);
|
|
9565
|
-
}
|
|
9566
|
-
return result;
|
|
9567
|
-
}
|
|
9568
|
-
function mergeArrays(values, utils, meta3) {
|
|
9569
|
-
const result = utils.mergeFunctions.mergeArrays(values, utils, meta3);
|
|
9570
|
-
if (shouldFallbackToDefault(utils, "mergeArrays", result)) {
|
|
9571
|
-
return utils.defaultMergeFunctions.mergeArrays(values);
|
|
9572
|
-
}
|
|
9573
|
-
return result;
|
|
9574
|
-
}
|
|
9575
|
-
function mergeSets(values, utils, meta3) {
|
|
9576
|
-
const result = utils.mergeFunctions.mergeSets(values, utils, meta3);
|
|
9577
|
-
if (shouldFallbackToDefault(utils, "mergeSets", result)) {
|
|
9578
|
-
return utils.defaultMergeFunctions.mergeSets(values);
|
|
9579
|
-
}
|
|
9580
|
-
return result;
|
|
9581
|
-
}
|
|
9582
|
-
function mergeMaps(values, utils, meta3) {
|
|
9583
|
-
const result = utils.mergeFunctions.mergeMaps(values, utils, meta3);
|
|
9584
|
-
if (shouldFallbackToDefault(utils, "mergeMaps", result)) {
|
|
9585
|
-
return utils.defaultMergeFunctions.mergeMaps(values, utils, meta3);
|
|
9586
|
-
}
|
|
9587
|
-
return result;
|
|
9588
|
-
}
|
|
9589
|
-
function mergeCircularReferences(values, cyclicDepths, utils, meta3) {
|
|
9590
|
-
const result = utils.mergeFunctions.mergeCircularReferences(values, cyclicDepths, utils, meta3);
|
|
9591
|
-
if (shouldFallbackToDefault(utils, "mergeCircularReferences", result)) {
|
|
9592
|
-
return utils.defaultMergeFunctions.mergeCircularReferences(values, cyclicDepths, utils, meta3);
|
|
9593
|
-
}
|
|
9594
|
-
return result;
|
|
9595
|
-
}
|
|
9596
|
-
function mergeOthers(values, utils, meta3) {
|
|
9597
|
-
const result = utils.mergeFunctions.mergeOthers(values, utils, meta3);
|
|
9598
|
-
if (shouldFallbackToDefault(utils, "mergeOthers", result)) {
|
|
9599
|
-
return utils.defaultMergeFunctions.mergeOthers(values);
|
|
9600
|
-
}
|
|
9601
|
-
return result;
|
|
9602
|
-
}
|
|
9603
|
-
|
|
9604
9176
|
// ../../node_modules/.pnpm/zod@4.6.6/node_modules/zod/v4/classic/external.js
|
|
9605
9177
|
var external_exports = {};
|
|
9606
9178
|
__export(external_exports, {
|
|
@@ -28448,885 +28020,1454 @@ function detectVersion(schema, defaultTarget) {
|
|
|
28448
28020
|
if ($schema === "http://json-schema.org/draft-07/schema#") {
|
|
28449
28021
|
return "draft-7";
|
|
28450
28022
|
}
|
|
28451
|
-
if ($schema === "http://json-schema.org/draft-04/schema#") {
|
|
28452
|
-
return "draft-4";
|
|
28023
|
+
if ($schema === "http://json-schema.org/draft-04/schema#") {
|
|
28024
|
+
return "draft-4";
|
|
28025
|
+
}
|
|
28026
|
+
return defaultTarget ?? "draft-2020-12";
|
|
28027
|
+
}
|
|
28028
|
+
function applyMinItems(items, minItems) {
|
|
28029
|
+
return items.map((item, index) => index < minItems ? item : item.optional());
|
|
28030
|
+
}
|
|
28031
|
+
function decodeJSONPointerSegment(segment) {
|
|
28032
|
+
return segment.replace(/~1/g, "/").replace(/~0/g, "~");
|
|
28033
|
+
}
|
|
28034
|
+
function resolveRef(ref, ctx) {
|
|
28035
|
+
if (!ref.startsWith("#")) {
|
|
28036
|
+
throw new Error("External $ref is not supported, only local refs (#/...) are allowed");
|
|
28037
|
+
}
|
|
28038
|
+
const path = ref.slice(1).split("/").filter(Boolean);
|
|
28039
|
+
if (path.length === 0) {
|
|
28040
|
+
return ctx.rootSchema;
|
|
28041
|
+
}
|
|
28042
|
+
const defsKey = ctx.version === "draft-2020-12" ? "$defs" : "definitions";
|
|
28043
|
+
if (path[0] === defsKey) {
|
|
28044
|
+
const key = path[1] === void 0 ? void 0 : decodeJSONPointerSegment(path[1]);
|
|
28045
|
+
if (!key || !ctx.defs[key]) {
|
|
28046
|
+
throw new Error(`Reference not found: ${ref}`);
|
|
28047
|
+
}
|
|
28048
|
+
return ctx.defs[key];
|
|
28049
|
+
}
|
|
28050
|
+
throw new Error(`Reference not found: ${ref}`);
|
|
28051
|
+
}
|
|
28052
|
+
function checkObjectGuards(objectSchema, guards) {
|
|
28053
|
+
const guard = z.transform((value) => value).check((payload) => {
|
|
28054
|
+
const value = payload.value;
|
|
28055
|
+
if (typeof value !== "object" || value === null || Array.isArray(value))
|
|
28056
|
+
return;
|
|
28057
|
+
const keys = Object.getOwnPropertyNames(value);
|
|
28058
|
+
if (guards.minProperties !== void 0 && keys.length < guards.minProperties) {
|
|
28059
|
+
payload.issues.push({
|
|
28060
|
+
origin: "object",
|
|
28061
|
+
code: "too_small",
|
|
28062
|
+
minimum: guards.minProperties,
|
|
28063
|
+
inclusive: true,
|
|
28064
|
+
message: `Too small: expected object to have >=${guards.minProperties} properties`,
|
|
28065
|
+
input: value,
|
|
28066
|
+
inst: objectSchema,
|
|
28067
|
+
continue: true
|
|
28068
|
+
});
|
|
28069
|
+
}
|
|
28070
|
+
if (guards.maxProperties !== void 0 && keys.length > guards.maxProperties) {
|
|
28071
|
+
payload.issues.push({
|
|
28072
|
+
origin: "object",
|
|
28073
|
+
code: "too_big",
|
|
28074
|
+
maximum: guards.maxProperties,
|
|
28075
|
+
inclusive: true,
|
|
28076
|
+
message: `Too big: expected object to have <=${guards.maxProperties} properties`,
|
|
28077
|
+
input: value,
|
|
28078
|
+
inst: objectSchema,
|
|
28079
|
+
continue: true
|
|
28080
|
+
});
|
|
28081
|
+
}
|
|
28082
|
+
if (guards.keySchema) {
|
|
28083
|
+
for (const key of keys) {
|
|
28084
|
+
const result = guards.keySchema.safeParse(key);
|
|
28085
|
+
if (result.success)
|
|
28086
|
+
continue;
|
|
28087
|
+
payload.issues.push({
|
|
28088
|
+
code: "invalid_key",
|
|
28089
|
+
origin: "record",
|
|
28090
|
+
issues: result.error.issues,
|
|
28091
|
+
input: key,
|
|
28092
|
+
path: [key],
|
|
28093
|
+
continue: true
|
|
28094
|
+
});
|
|
28095
|
+
}
|
|
28096
|
+
}
|
|
28097
|
+
});
|
|
28098
|
+
return guard.pipe(objectSchema);
|
|
28099
|
+
}
|
|
28100
|
+
function canonicalKey(value, seen) {
|
|
28101
|
+
if (value === null)
|
|
28102
|
+
return "z";
|
|
28103
|
+
const type = typeof value;
|
|
28104
|
+
if (type !== "object") {
|
|
28105
|
+
if (type === "number" && Number.isNaN(value))
|
|
28106
|
+
return null;
|
|
28107
|
+
const raw = String(value);
|
|
28108
|
+
return `${type[0]}${raw.length}:${raw}`;
|
|
28109
|
+
}
|
|
28110
|
+
if (seen.has(value))
|
|
28111
|
+
return null;
|
|
28112
|
+
seen.add(value);
|
|
28113
|
+
try {
|
|
28114
|
+
if (Array.isArray(value)) {
|
|
28115
|
+
const parts2 = [];
|
|
28116
|
+
for (const item of value) {
|
|
28117
|
+
const key = canonicalKey(item, seen);
|
|
28118
|
+
if (key === null)
|
|
28119
|
+
return null;
|
|
28120
|
+
parts2.push(key);
|
|
28121
|
+
}
|
|
28122
|
+
return `a${parts2.length}:[${parts2.join(",")}]`;
|
|
28123
|
+
}
|
|
28124
|
+
const keys = Object.keys(value).sort();
|
|
28125
|
+
const parts = [];
|
|
28126
|
+
for (const k of keys) {
|
|
28127
|
+
const key = canonicalKey(value[k], seen);
|
|
28128
|
+
if (key === null)
|
|
28129
|
+
return null;
|
|
28130
|
+
parts.push(`${k.length}:${k}=${key}`);
|
|
28131
|
+
}
|
|
28132
|
+
return `o${parts.length}:{${parts.join(",")}}`;
|
|
28133
|
+
} finally {
|
|
28134
|
+
seen.delete(value);
|
|
28135
|
+
}
|
|
28136
|
+
}
|
|
28137
|
+
var SCHEMA_KEYWORDS = /* @__PURE__ */ new Set([
|
|
28138
|
+
"items",
|
|
28139
|
+
"prefixItems",
|
|
28140
|
+
"additionalItems",
|
|
28141
|
+
"additionalProperties",
|
|
28142
|
+
"contains",
|
|
28143
|
+
"propertyNames",
|
|
28144
|
+
"not",
|
|
28145
|
+
"if",
|
|
28146
|
+
"then",
|
|
28147
|
+
"else",
|
|
28148
|
+
"allOf",
|
|
28149
|
+
"anyOf",
|
|
28150
|
+
"oneOf",
|
|
28151
|
+
"unevaluatedItems",
|
|
28152
|
+
"unevaluatedProperties",
|
|
28153
|
+
"contentSchema"
|
|
28154
|
+
]);
|
|
28155
|
+
var SCHEMA_MAP_KEYWORDS = /* @__PURE__ */ new Set([
|
|
28156
|
+
"properties",
|
|
28157
|
+
"patternProperties",
|
|
28158
|
+
"dependentSchemas",
|
|
28159
|
+
"dependencies",
|
|
28160
|
+
"$defs",
|
|
28161
|
+
"definitions"
|
|
28162
|
+
]);
|
|
28163
|
+
function containsRef(value) {
|
|
28164
|
+
if (typeof value !== "object" || value === null)
|
|
28165
|
+
return false;
|
|
28166
|
+
if (Array.isArray(value))
|
|
28167
|
+
return value.some(containsRef);
|
|
28168
|
+
if (typeof value.$ref === "string")
|
|
28169
|
+
return true;
|
|
28170
|
+
return Object.entries(value).some(([key, sub]) => {
|
|
28171
|
+
if (SCHEMA_KEYWORDS.has(key))
|
|
28172
|
+
return containsRef(sub);
|
|
28173
|
+
if (!SCHEMA_MAP_KEYWORDS.has(key) || typeof sub !== "object" || sub === null)
|
|
28174
|
+
return false;
|
|
28175
|
+
return Object.values(sub).some(containsRef);
|
|
28176
|
+
});
|
|
28177
|
+
}
|
|
28178
|
+
function plural(n) {
|
|
28179
|
+
return n === 1 ? "element" : "elements";
|
|
28180
|
+
}
|
|
28181
|
+
function checkArrayGuards(arraySchema, guards) {
|
|
28182
|
+
const guard = z.transform((value) => value).check((payload) => {
|
|
28183
|
+
const items = payload.value;
|
|
28184
|
+
if (!Array.isArray(items))
|
|
28185
|
+
return;
|
|
28186
|
+
if (guards.uniqueItems === true) {
|
|
28187
|
+
const firstSeen = /* @__PURE__ */ new Map();
|
|
28188
|
+
for (let i = 0; i < items.length; i++) {
|
|
28189
|
+
const key = canonicalKey(items[i], /* @__PURE__ */ new Set());
|
|
28190
|
+
if (key === null)
|
|
28191
|
+
continue;
|
|
28192
|
+
const first = firstSeen.get(key);
|
|
28193
|
+
if (first === void 0) {
|
|
28194
|
+
firstSeen.set(key, i);
|
|
28195
|
+
continue;
|
|
28196
|
+
}
|
|
28197
|
+
payload.issues.push({
|
|
28198
|
+
code: "custom",
|
|
28199
|
+
message: `Array items must be unique: element at index ${i} duplicates the one at index ${first}`,
|
|
28200
|
+
input: items,
|
|
28201
|
+
path: [i],
|
|
28202
|
+
continue: true
|
|
28203
|
+
});
|
|
28204
|
+
}
|
|
28205
|
+
}
|
|
28206
|
+
if (guards.containsSchema) {
|
|
28207
|
+
const minContains = guards.minContains ?? 1;
|
|
28208
|
+
const ceiling = guards.maxContains !== void 0 ? guards.maxContains + 1 : Number.POSITIVE_INFINITY;
|
|
28209
|
+
let matches = 0;
|
|
28210
|
+
for (const item of items) {
|
|
28211
|
+
if (guards.containsSchema.safeParse(item).success && ++matches >= ceiling)
|
|
28212
|
+
break;
|
|
28213
|
+
}
|
|
28214
|
+
if (matches < minContains) {
|
|
28215
|
+
payload.issues.push({
|
|
28216
|
+
code: "custom",
|
|
28217
|
+
message: `Array must contain at least ${minContains} matching ${plural(minContains)}; found ${matches}`,
|
|
28218
|
+
input: items,
|
|
28219
|
+
continue: true
|
|
28220
|
+
});
|
|
28221
|
+
}
|
|
28222
|
+
if (guards.maxContains !== void 0 && matches > guards.maxContains) {
|
|
28223
|
+
payload.issues.push({
|
|
28224
|
+
code: "custom",
|
|
28225
|
+
message: `Array must contain at most ${guards.maxContains} matching ${plural(guards.maxContains)}`,
|
|
28226
|
+
input: items,
|
|
28227
|
+
continue: true
|
|
28228
|
+
});
|
|
28229
|
+
}
|
|
28230
|
+
}
|
|
28231
|
+
});
|
|
28232
|
+
return guard.pipe(arraySchema);
|
|
28233
|
+
}
|
|
28234
|
+
function getTupleRest(restSchema, ctx) {
|
|
28235
|
+
if (restSchema === false) {
|
|
28236
|
+
return void 0;
|
|
28237
|
+
}
|
|
28238
|
+
if (restSchema === void 0 || restSchema === true) {
|
|
28239
|
+
return z.any();
|
|
28453
28240
|
}
|
|
28454
|
-
return
|
|
28455
|
-
}
|
|
28456
|
-
function applyMinItems(items, minItems) {
|
|
28457
|
-
return items.map((item, index) => index < minItems ? item : item.optional());
|
|
28458
|
-
}
|
|
28459
|
-
function decodeJSONPointerSegment(segment) {
|
|
28460
|
-
return segment.replace(/~1/g, "/").replace(/~0/g, "~");
|
|
28241
|
+
return convertSchema(restSchema, ctx);
|
|
28461
28242
|
}
|
|
28462
|
-
|
|
28463
|
-
|
|
28464
|
-
|
|
28243
|
+
var fullTime = /^(?:[01]\d|2[0-3]):[0-5]\d:[0-5]\d(?:\.\d+)?(?:Z|[+-](?:[01]\d|2[0-3]):[0-5]\d)$/;
|
|
28244
|
+
function convertBaseSchema(schema, ctx) {
|
|
28245
|
+
if (schema.not !== void 0) {
|
|
28246
|
+
if (typeof schema.not === "object" && Object.keys(schema.not).length === 0) {
|
|
28247
|
+
return z.never();
|
|
28248
|
+
}
|
|
28249
|
+
throw new Error("not is not supported in Zod (except { not: {} } for never)");
|
|
28465
28250
|
}
|
|
28466
|
-
|
|
28467
|
-
|
|
28468
|
-
return ctx.rootSchema;
|
|
28251
|
+
if (schema.unevaluatedItems !== void 0) {
|
|
28252
|
+
throw new Error("unevaluatedItems is not supported");
|
|
28469
28253
|
}
|
|
28470
|
-
|
|
28471
|
-
|
|
28472
|
-
const key = path[1] === void 0 ? void 0 : decodeJSONPointerSegment(path[1]);
|
|
28473
|
-
if (!key || !ctx.defs[key]) {
|
|
28474
|
-
throw new Error(`Reference not found: ${ref}`);
|
|
28475
|
-
}
|
|
28476
|
-
return ctx.defs[key];
|
|
28254
|
+
if (schema.unevaluatedProperties !== void 0) {
|
|
28255
|
+
throw new Error("unevaluatedProperties is not supported");
|
|
28477
28256
|
}
|
|
28478
|
-
|
|
28479
|
-
|
|
28480
|
-
|
|
28481
|
-
|
|
28482
|
-
|
|
28483
|
-
|
|
28484
|
-
|
|
28485
|
-
const
|
|
28486
|
-
if (
|
|
28487
|
-
|
|
28488
|
-
origin: "object",
|
|
28489
|
-
code: "too_small",
|
|
28490
|
-
minimum: guards.minProperties,
|
|
28491
|
-
inclusive: true,
|
|
28492
|
-
message: `Too small: expected object to have >=${guards.minProperties} properties`,
|
|
28493
|
-
input: value,
|
|
28494
|
-
inst: objectSchema,
|
|
28495
|
-
continue: true
|
|
28496
|
-
});
|
|
28257
|
+
if (schema.if !== void 0 || schema.then !== void 0 || schema.else !== void 0) {
|
|
28258
|
+
throw new Error("Conditional schemas (if/then/else) are not supported");
|
|
28259
|
+
}
|
|
28260
|
+
if (schema.dependentSchemas !== void 0 || schema.dependentRequired !== void 0) {
|
|
28261
|
+
throw new Error("dependentSchemas and dependentRequired are not supported");
|
|
28262
|
+
}
|
|
28263
|
+
if (schema.$ref) {
|
|
28264
|
+
const refPath = schema.$ref;
|
|
28265
|
+
if (ctx.refs.has(refPath)) {
|
|
28266
|
+
return ctx.refs.get(refPath);
|
|
28497
28267
|
}
|
|
28498
|
-
if (
|
|
28499
|
-
|
|
28500
|
-
|
|
28501
|
-
|
|
28502
|
-
|
|
28503
|
-
|
|
28504
|
-
message: `Too big: expected object to have <=${guards.maxProperties} properties`,
|
|
28505
|
-
input: value,
|
|
28506
|
-
inst: objectSchema,
|
|
28507
|
-
continue: true
|
|
28268
|
+
if (ctx.processing.has(refPath)) {
|
|
28269
|
+
return z.lazy(() => {
|
|
28270
|
+
if (!ctx.refs.has(refPath)) {
|
|
28271
|
+
throw new Error(`Circular reference not resolved: ${refPath}`);
|
|
28272
|
+
}
|
|
28273
|
+
return ctx.refs.get(refPath);
|
|
28508
28274
|
});
|
|
28509
28275
|
}
|
|
28510
|
-
|
|
28511
|
-
|
|
28512
|
-
|
|
28513
|
-
|
|
28514
|
-
|
|
28515
|
-
|
|
28516
|
-
|
|
28517
|
-
|
|
28518
|
-
|
|
28519
|
-
|
|
28520
|
-
|
|
28521
|
-
continue: true
|
|
28522
|
-
});
|
|
28523
|
-
}
|
|
28276
|
+
ctx.processing.add(refPath);
|
|
28277
|
+
const resolved = resolveRef(refPath, ctx);
|
|
28278
|
+
const zodSchema2 = convertSchema(resolved, ctx);
|
|
28279
|
+
ctx.refs.set(refPath, zodSchema2);
|
|
28280
|
+
ctx.processing.delete(refPath);
|
|
28281
|
+
return zodSchema2;
|
|
28282
|
+
}
|
|
28283
|
+
if (schema.enum !== void 0) {
|
|
28284
|
+
const enumValues = schema.enum;
|
|
28285
|
+
if (ctx.version === "openapi-3.0" && schema.nullable === true && enumValues.length === 1 && enumValues[0] === null) {
|
|
28286
|
+
return z.null();
|
|
28524
28287
|
}
|
|
28525
|
-
|
|
28526
|
-
|
|
28527
|
-
}
|
|
28528
|
-
|
|
28529
|
-
|
|
28530
|
-
|
|
28531
|
-
|
|
28532
|
-
|
|
28533
|
-
|
|
28534
|
-
|
|
28535
|
-
|
|
28536
|
-
|
|
28288
|
+
if (enumValues.length === 0) {
|
|
28289
|
+
return z.never();
|
|
28290
|
+
}
|
|
28291
|
+
if (enumValues.length === 1) {
|
|
28292
|
+
return z.literal(enumValues[0]);
|
|
28293
|
+
}
|
|
28294
|
+
if (enumValues.every((v) => typeof v === "string")) {
|
|
28295
|
+
return z.enum(enumValues);
|
|
28296
|
+
}
|
|
28297
|
+
const literalSchemas = enumValues.map((v) => z.literal(v));
|
|
28298
|
+
if (literalSchemas.length < 2) {
|
|
28299
|
+
return literalSchemas[0];
|
|
28300
|
+
}
|
|
28301
|
+
return z.union([literalSchemas[0], literalSchemas[1], ...literalSchemas.slice(2)]);
|
|
28537
28302
|
}
|
|
28538
|
-
if (
|
|
28539
|
-
return
|
|
28540
|
-
|
|
28541
|
-
|
|
28542
|
-
|
|
28543
|
-
|
|
28544
|
-
|
|
28545
|
-
|
|
28546
|
-
|
|
28547
|
-
|
|
28548
|
-
|
|
28303
|
+
if (schema.const !== void 0) {
|
|
28304
|
+
return z.literal(schema.const);
|
|
28305
|
+
}
|
|
28306
|
+
const type = schema.type;
|
|
28307
|
+
if (Array.isArray(type)) {
|
|
28308
|
+
const typeSchemas = type.map((t) => {
|
|
28309
|
+
const typeSchema = { ...schema, type: t };
|
|
28310
|
+
return convertBaseSchema(typeSchema, ctx);
|
|
28311
|
+
});
|
|
28312
|
+
if (typeSchemas.length === 0) {
|
|
28313
|
+
return z.never();
|
|
28314
|
+
}
|
|
28315
|
+
if (typeSchemas.length === 1) {
|
|
28316
|
+
return typeSchemas[0];
|
|
28317
|
+
}
|
|
28318
|
+
return z.union(typeSchemas);
|
|
28319
|
+
}
|
|
28320
|
+
if (!type) {
|
|
28321
|
+
return z.any();
|
|
28322
|
+
}
|
|
28323
|
+
let zodSchema;
|
|
28324
|
+
switch (type) {
|
|
28325
|
+
case "string": {
|
|
28326
|
+
let stringSchema = z.string();
|
|
28327
|
+
if (schema.format) {
|
|
28328
|
+
const format = schema.format;
|
|
28329
|
+
if (format === "email") {
|
|
28330
|
+
stringSchema = stringSchema.check(z.email());
|
|
28331
|
+
} else if (format === "uri" || format === "uri-reference") {
|
|
28332
|
+
stringSchema = stringSchema.check(z.url());
|
|
28333
|
+
} else if (format === "uuid" || format === "guid") {
|
|
28334
|
+
stringSchema = stringSchema.check(z.uuid());
|
|
28335
|
+
} else if (format === "date-time") {
|
|
28336
|
+
stringSchema = stringSchema.check(z.iso.datetime({ offset: true }));
|
|
28337
|
+
} else if (format === "date") {
|
|
28338
|
+
stringSchema = stringSchema.check(z.iso.date());
|
|
28339
|
+
} else if (format === "time") {
|
|
28340
|
+
stringSchema = stringSchema.check(z.regex(fullTime));
|
|
28341
|
+
} else if (format === "duration") {
|
|
28342
|
+
stringSchema = stringSchema.check(z.iso.duration());
|
|
28343
|
+
} else if (format === "hostname") {
|
|
28344
|
+
stringSchema = stringSchema.check(z.hostname());
|
|
28345
|
+
} else if (format === "ipv4") {
|
|
28346
|
+
stringSchema = stringSchema.check(z.ipv4());
|
|
28347
|
+
} else if (format === "ipv6") {
|
|
28348
|
+
stringSchema = stringSchema.check(z.ipv6());
|
|
28349
|
+
} else if (format === "mac") {
|
|
28350
|
+
stringSchema = stringSchema.check(z.mac());
|
|
28351
|
+
} else if (format === "cidr") {
|
|
28352
|
+
stringSchema = stringSchema.check(z.cidrv4());
|
|
28353
|
+
} else if (format === "cidr-v6") {
|
|
28354
|
+
stringSchema = stringSchema.check(z.cidrv6());
|
|
28355
|
+
} else if (format === "base64") {
|
|
28356
|
+
stringSchema = stringSchema.check(z.base64());
|
|
28357
|
+
} else if (format === "base64url") {
|
|
28358
|
+
stringSchema = stringSchema.check(z.base64url());
|
|
28359
|
+
} else if (format === "e164") {
|
|
28360
|
+
stringSchema = stringSchema.check(z.e164());
|
|
28361
|
+
} else if (format === "credit_card") {
|
|
28362
|
+
stringSchema = stringSchema.check(z.creditCard());
|
|
28363
|
+
} else if (format === "iban") {
|
|
28364
|
+
stringSchema = stringSchema.check(z.iban());
|
|
28365
|
+
} else if (format === "jwt") {
|
|
28366
|
+
stringSchema = stringSchema.check(z.jwt());
|
|
28367
|
+
} else if (format === "emoji") {
|
|
28368
|
+
stringSchema = stringSchema.check(z.emoji());
|
|
28369
|
+
} else if (format === "nanoid") {
|
|
28370
|
+
stringSchema = stringSchema.check(z.nanoid());
|
|
28371
|
+
} else if (format === "cuid") {
|
|
28372
|
+
stringSchema = stringSchema.check(z.cuid());
|
|
28373
|
+
} else if (format === "cuid2") {
|
|
28374
|
+
stringSchema = stringSchema.check(z.cuid2());
|
|
28375
|
+
} else if (format === "ulid") {
|
|
28376
|
+
stringSchema = stringSchema.check(z.ulid());
|
|
28377
|
+
} else if (format === "xid") {
|
|
28378
|
+
stringSchema = stringSchema.check(z.xid());
|
|
28379
|
+
} else if (format === "ksuid") {
|
|
28380
|
+
stringSchema = stringSchema.check(z.ksuid());
|
|
28381
|
+
}
|
|
28382
|
+
}
|
|
28383
|
+
if (typeof schema.minLength === "number") {
|
|
28384
|
+
stringSchema = stringSchema.min(schema.minLength);
|
|
28385
|
+
}
|
|
28386
|
+
if (typeof schema.maxLength === "number") {
|
|
28387
|
+
stringSchema = stringSchema.max(schema.maxLength);
|
|
28388
|
+
}
|
|
28389
|
+
if (schema.pattern) {
|
|
28390
|
+
stringSchema = stringSchema.regex(new RegExp(schema.pattern));
|
|
28391
|
+
}
|
|
28392
|
+
zodSchema = stringSchema;
|
|
28393
|
+
break;
|
|
28394
|
+
}
|
|
28395
|
+
case "number":
|
|
28396
|
+
case "integer": {
|
|
28397
|
+
let numberSchema = type === "integer" ? z.number().int() : z.number();
|
|
28398
|
+
if (typeof schema.minimum === "number" && schema.exclusiveMinimum !== true) {
|
|
28399
|
+
numberSchema = numberSchema.min(schema.minimum);
|
|
28400
|
+
}
|
|
28401
|
+
if (typeof schema.maximum === "number" && schema.exclusiveMaximum !== true) {
|
|
28402
|
+
numberSchema = numberSchema.max(schema.maximum);
|
|
28403
|
+
}
|
|
28404
|
+
if (typeof schema.exclusiveMinimum === "number") {
|
|
28405
|
+
numberSchema = numberSchema.gt(schema.exclusiveMinimum);
|
|
28406
|
+
} else if (schema.exclusiveMinimum === true && typeof schema.minimum === "number") {
|
|
28407
|
+
numberSchema = numberSchema.gt(schema.minimum);
|
|
28408
|
+
}
|
|
28409
|
+
if (typeof schema.exclusiveMaximum === "number") {
|
|
28410
|
+
numberSchema = numberSchema.lt(schema.exclusiveMaximum);
|
|
28411
|
+
} else if (schema.exclusiveMaximum === true && typeof schema.maximum === "number") {
|
|
28412
|
+
numberSchema = numberSchema.lt(schema.maximum);
|
|
28413
|
+
}
|
|
28414
|
+
if (typeof schema.multipleOf === "number") {
|
|
28415
|
+
numberSchema = numberSchema.multipleOf(schema.multipleOf);
|
|
28549
28416
|
}
|
|
28550
|
-
|
|
28417
|
+
zodSchema = numberSchema;
|
|
28418
|
+
break;
|
|
28551
28419
|
}
|
|
28552
|
-
|
|
28553
|
-
|
|
28554
|
-
|
|
28555
|
-
const key = canonicalKey(value[k], seen);
|
|
28556
|
-
if (key === null)
|
|
28557
|
-
return null;
|
|
28558
|
-
parts.push(`${k.length}:${k}=${key}`);
|
|
28420
|
+
case "boolean": {
|
|
28421
|
+
zodSchema = z.boolean();
|
|
28422
|
+
break;
|
|
28559
28423
|
}
|
|
28560
|
-
|
|
28561
|
-
|
|
28562
|
-
|
|
28563
|
-
|
|
28564
|
-
|
|
28565
|
-
|
|
28566
|
-
|
|
28567
|
-
|
|
28568
|
-
|
|
28569
|
-
|
|
28570
|
-
|
|
28571
|
-
|
|
28572
|
-
|
|
28573
|
-
|
|
28574
|
-
|
|
28575
|
-
|
|
28576
|
-
|
|
28577
|
-
|
|
28578
|
-
|
|
28579
|
-
|
|
28580
|
-
|
|
28581
|
-
|
|
28582
|
-
]
|
|
28583
|
-
|
|
28584
|
-
|
|
28585
|
-
|
|
28586
|
-
|
|
28587
|
-
|
|
28588
|
-
|
|
28589
|
-
|
|
28590
|
-
]
|
|
28591
|
-
|
|
28592
|
-
|
|
28593
|
-
|
|
28594
|
-
|
|
28595
|
-
|
|
28596
|
-
|
|
28597
|
-
|
|
28598
|
-
|
|
28599
|
-
|
|
28600
|
-
|
|
28601
|
-
|
|
28602
|
-
|
|
28603
|
-
|
|
28604
|
-
|
|
28605
|
-
|
|
28606
|
-
|
|
28607
|
-
|
|
28608
|
-
|
|
28609
|
-
|
|
28610
|
-
|
|
28611
|
-
|
|
28612
|
-
|
|
28613
|
-
|
|
28614
|
-
|
|
28615
|
-
|
|
28616
|
-
|
|
28617
|
-
|
|
28618
|
-
|
|
28619
|
-
|
|
28620
|
-
|
|
28621
|
-
|
|
28622
|
-
|
|
28623
|
-
|
|
28424
|
+
case "null": {
|
|
28425
|
+
zodSchema = z.null();
|
|
28426
|
+
break;
|
|
28427
|
+
}
|
|
28428
|
+
case "object": {
|
|
28429
|
+
const shape = {};
|
|
28430
|
+
const properties = schema.properties || {};
|
|
28431
|
+
const requiredSet = new Set(schema.required || []);
|
|
28432
|
+
const additionalSchema = typeof schema.additionalProperties === "object" ? convertSchema(schema.additionalProperties, ctx) : void 0;
|
|
28433
|
+
for (const [key, propSchema] of Object.entries(properties)) {
|
|
28434
|
+
const propZodSchema = convertSchema(propSchema, ctx);
|
|
28435
|
+
assignProp(shape, key, requiredSet.has(key) ? propZodSchema : propZodSchema.optional());
|
|
28436
|
+
}
|
|
28437
|
+
if (schema.patternProperties) {
|
|
28438
|
+
const patternProps = schema.patternProperties;
|
|
28439
|
+
const patternKeys = Object.keys(patternProps);
|
|
28440
|
+
const looseRecords = [];
|
|
28441
|
+
for (const pattern of patternKeys) {
|
|
28442
|
+
const patternValue = convertSchema(patternProps[pattern], ctx);
|
|
28443
|
+
const keySchema = z.string().regex(new RegExp(pattern));
|
|
28444
|
+
looseRecords.push(z.looseRecord(keySchema, patternValue));
|
|
28445
|
+
}
|
|
28446
|
+
const schemasToIntersect = [];
|
|
28447
|
+
if (Object.keys(shape).length > 0) {
|
|
28448
|
+
schemasToIntersect.push(z.object(shape).passthrough());
|
|
28449
|
+
}
|
|
28450
|
+
schemasToIntersect.push(...looseRecords);
|
|
28451
|
+
if (schemasToIntersect.length === 0) {
|
|
28452
|
+
zodSchema = z.object({}).passthrough();
|
|
28453
|
+
} else if (schemasToIntersect.length === 1) {
|
|
28454
|
+
zodSchema = schemasToIntersect[0];
|
|
28455
|
+
} else {
|
|
28456
|
+
let result = z.intersection(schemasToIntersect[0], schemasToIntersect[1]);
|
|
28457
|
+
for (let i = 2; i < schemasToIntersect.length; i++) {
|
|
28458
|
+
result = z.intersection(result, schemasToIntersect[i]);
|
|
28459
|
+
}
|
|
28460
|
+
zodSchema = result;
|
|
28461
|
+
}
|
|
28462
|
+
if (schema.additionalProperties === false) {
|
|
28463
|
+
const propertyKeys = Object.keys(shape);
|
|
28464
|
+
const patterns = patternKeys.map((p) => new RegExp(p));
|
|
28465
|
+
const basePatternSchema = zodSchema;
|
|
28466
|
+
zodSchema = zodSchema.check((payload) => {
|
|
28467
|
+
if (!isPlainObject(payload.value))
|
|
28468
|
+
return;
|
|
28469
|
+
const unrecognized = [];
|
|
28470
|
+
for (const key of Object.keys(payload.value)) {
|
|
28471
|
+
if (propertyKeys.includes(key))
|
|
28472
|
+
continue;
|
|
28473
|
+
if (patterns.some((regex) => regex.test(key)))
|
|
28474
|
+
continue;
|
|
28475
|
+
unrecognized.push(key);
|
|
28476
|
+
}
|
|
28477
|
+
if (unrecognized.length) {
|
|
28478
|
+
payload.issues.push({
|
|
28479
|
+
code: "unrecognized_keys",
|
|
28480
|
+
keys: unrecognized,
|
|
28481
|
+
input: payload.value,
|
|
28482
|
+
inst: basePatternSchema
|
|
28483
|
+
});
|
|
28484
|
+
}
|
|
28485
|
+
});
|
|
28486
|
+
}
|
|
28487
|
+
} else {
|
|
28488
|
+
const objectSchema = z.object(shape);
|
|
28489
|
+
if (schema.additionalProperties === false) {
|
|
28490
|
+
zodSchema = objectSchema.strict();
|
|
28491
|
+
} else if (additionalSchema) {
|
|
28492
|
+
zodSchema = objectSchema.catchall(additionalSchema);
|
|
28493
|
+
} else {
|
|
28494
|
+
zodSchema = objectSchema.passthrough();
|
|
28624
28495
|
}
|
|
28625
|
-
payload.issues.push({
|
|
28626
|
-
code: "custom",
|
|
28627
|
-
message: `Array items must be unique: element at index ${i} duplicates the one at index ${first}`,
|
|
28628
|
-
input: items,
|
|
28629
|
-
path: [i],
|
|
28630
|
-
continue: true
|
|
28631
|
-
});
|
|
28632
28496
|
}
|
|
28633
|
-
|
|
28634
|
-
|
|
28635
|
-
const
|
|
28636
|
-
|
|
28637
|
-
|
|
28638
|
-
|
|
28639
|
-
|
|
28640
|
-
|
|
28497
|
+
const hasKeyGuard = schema.propertyNames !== void 0 && schema.propertyNames !== true;
|
|
28498
|
+
const minProperties = typeof schema.minProperties === "number" ? schema.minProperties : void 0;
|
|
28499
|
+
const maxProperties = typeof schema.maxProperties === "number" ? schema.maxProperties : void 0;
|
|
28500
|
+
if (hasKeyGuard || minProperties !== void 0 || maxProperties !== void 0) {
|
|
28501
|
+
let keySchema;
|
|
28502
|
+
if (hasKeyGuard) {
|
|
28503
|
+
const keyJSONSchema = typeof schema.propertyNames === "object" && schema.propertyNames.type === void 0 ? { type: "string", ...schema.propertyNames } : schema.propertyNames;
|
|
28504
|
+
keySchema = convertSchema(keyJSONSchema, ctx);
|
|
28505
|
+
}
|
|
28506
|
+
zodSchema = checkObjectGuards(zodSchema, { keySchema, minProperties, maxProperties });
|
|
28641
28507
|
}
|
|
28642
|
-
|
|
28643
|
-
|
|
28644
|
-
|
|
28645
|
-
|
|
28646
|
-
|
|
28647
|
-
|
|
28648
|
-
|
|
28508
|
+
break;
|
|
28509
|
+
}
|
|
28510
|
+
case "array": {
|
|
28511
|
+
const prefixItems = schema.prefixItems;
|
|
28512
|
+
const items = schema.items;
|
|
28513
|
+
if (prefixItems && Array.isArray(prefixItems)) {
|
|
28514
|
+
const minItems = typeof schema.minItems === "number" ? schema.minItems : 0;
|
|
28515
|
+
const tupleItems = prefixItems.map((item) => convertSchema(item, ctx));
|
|
28516
|
+
const positionalItems = applyMinItems(tupleItems, minItems);
|
|
28517
|
+
const rest = !Array.isArray(items) ? getTupleRest(items, ctx) : void 0;
|
|
28518
|
+
const tupleSchema = z.tuple(positionalItems);
|
|
28519
|
+
zodSchema = rest ? tupleSchema.rest(rest) : tupleSchema;
|
|
28520
|
+
if (typeof schema.minItems === "number") {
|
|
28521
|
+
zodSchema = zodSchema.check(z.minLength(schema.minItems));
|
|
28522
|
+
}
|
|
28523
|
+
if (typeof schema.maxItems === "number") {
|
|
28524
|
+
zodSchema = zodSchema.check(z.maxLength(schema.maxItems));
|
|
28525
|
+
}
|
|
28526
|
+
} else if (Array.isArray(items)) {
|
|
28527
|
+
const minItems = typeof schema.minItems === "number" ? schema.minItems : 0;
|
|
28528
|
+
const tupleItems = items.map((item) => convertSchema(item, ctx));
|
|
28529
|
+
const positionalItems = applyMinItems(tupleItems, minItems);
|
|
28530
|
+
const rest = getTupleRest(schema.additionalItems, ctx);
|
|
28531
|
+
const tupleSchema = z.tuple(positionalItems);
|
|
28532
|
+
zodSchema = rest ? tupleSchema.rest(rest) : tupleSchema;
|
|
28533
|
+
if (typeof schema.minItems === "number") {
|
|
28534
|
+
zodSchema = zodSchema.check(z.minLength(schema.minItems));
|
|
28535
|
+
}
|
|
28536
|
+
if (typeof schema.maxItems === "number") {
|
|
28537
|
+
zodSchema = zodSchema.check(z.maxLength(schema.maxItems));
|
|
28538
|
+
}
|
|
28539
|
+
} else if (items !== void 0) {
|
|
28540
|
+
const element = convertSchema(items, ctx);
|
|
28541
|
+
let arraySchema = z.array(element);
|
|
28542
|
+
if (typeof schema.minItems === "number") {
|
|
28543
|
+
arraySchema = arraySchema.min(schema.minItems);
|
|
28544
|
+
}
|
|
28545
|
+
if (typeof schema.maxItems === "number") {
|
|
28546
|
+
arraySchema = arraySchema.max(schema.maxItems);
|
|
28547
|
+
}
|
|
28548
|
+
zodSchema = arraySchema;
|
|
28549
|
+
} else {
|
|
28550
|
+
zodSchema = z.array(z.any());
|
|
28649
28551
|
}
|
|
28650
|
-
if (
|
|
28651
|
-
|
|
28652
|
-
|
|
28653
|
-
|
|
28654
|
-
|
|
28655
|
-
|
|
28552
|
+
if (schema.uniqueItems === true || schema.contains !== void 0) {
|
|
28553
|
+
zodSchema = checkArrayGuards(zodSchema, {
|
|
28554
|
+
uniqueItems: schema.uniqueItems === true,
|
|
28555
|
+
containsSchema: schema.contains !== void 0 ? convertSchema(schema.contains, ctx) : void 0,
|
|
28556
|
+
minContains: typeof schema.minContains === "number" ? schema.minContains : void 0,
|
|
28557
|
+
maxContains: typeof schema.maxContains === "number" ? schema.maxContains : void 0
|
|
28656
28558
|
});
|
|
28657
28559
|
}
|
|
28560
|
+
break;
|
|
28658
28561
|
}
|
|
28659
|
-
|
|
28660
|
-
|
|
28562
|
+
default:
|
|
28563
|
+
throw new Error(`Unsupported type: ${type}`);
|
|
28564
|
+
}
|
|
28565
|
+
return zodSchema;
|
|
28661
28566
|
}
|
|
28662
|
-
function
|
|
28663
|
-
if (
|
|
28664
|
-
return
|
|
28567
|
+
function convertSchema(schema, ctx) {
|
|
28568
|
+
if (typeof schema === "boolean") {
|
|
28569
|
+
return schema ? z.any() : z.never();
|
|
28570
|
+
}
|
|
28571
|
+
let baseSchema = convertBaseSchema(schema, ctx);
|
|
28572
|
+
const hasExplicitType = schema.type || schema.enum !== void 0 || schema.const !== void 0;
|
|
28573
|
+
if (schema.anyOf && Array.isArray(schema.anyOf)) {
|
|
28574
|
+
const options = schema.anyOf.map((s) => convertSchema(s, ctx));
|
|
28575
|
+
const anyOfUnion = z.union(options);
|
|
28576
|
+
baseSchema = hasExplicitType ? z.intersection(baseSchema, anyOfUnion) : anyOfUnion;
|
|
28665
28577
|
}
|
|
28666
|
-
if (
|
|
28667
|
-
|
|
28578
|
+
if (schema.oneOf && Array.isArray(schema.oneOf)) {
|
|
28579
|
+
const options = schema.oneOf.map((s) => convertSchema(s, ctx));
|
|
28580
|
+
const oneOfUnion = z.xor(options);
|
|
28581
|
+
baseSchema = hasExplicitType ? z.intersection(baseSchema, oneOfUnion) : oneOfUnion;
|
|
28668
28582
|
}
|
|
28669
|
-
|
|
28670
|
-
|
|
28671
|
-
|
|
28672
|
-
|
|
28673
|
-
|
|
28674
|
-
|
|
28675
|
-
|
|
28583
|
+
if (schema.allOf && Array.isArray(schema.allOf)) {
|
|
28584
|
+
if (schema.allOf.length === 0) {
|
|
28585
|
+
baseSchema = hasExplicitType ? baseSchema : z.any();
|
|
28586
|
+
} else {
|
|
28587
|
+
let result = hasExplicitType ? baseSchema : convertSchema(schema.allOf[0], ctx);
|
|
28588
|
+
const startIdx = hasExplicitType ? 0 : 1;
|
|
28589
|
+
for (let i = startIdx; i < schema.allOf.length; i++) {
|
|
28590
|
+
result = z.intersection(result, convertSchema(schema.allOf[i], ctx));
|
|
28591
|
+
}
|
|
28592
|
+
baseSchema = result;
|
|
28676
28593
|
}
|
|
28677
|
-
throw new Error("not is not supported in Zod (except { not: {} } for never)");
|
|
28678
28594
|
}
|
|
28679
|
-
if (schema.
|
|
28680
|
-
|
|
28681
|
-
}
|
|
28682
|
-
if (schema.unevaluatedProperties !== void 0) {
|
|
28683
|
-
throw new Error("unevaluatedProperties is not supported");
|
|
28595
|
+
if (schema.nullable === true && ctx.version === "openapi-3.0") {
|
|
28596
|
+
baseSchema = z.nullable(baseSchema);
|
|
28684
28597
|
}
|
|
28685
|
-
if (schema.
|
|
28686
|
-
|
|
28598
|
+
if (schema.readOnly === true) {
|
|
28599
|
+
baseSchema = z.readonly(baseSchema);
|
|
28687
28600
|
}
|
|
28688
|
-
if (schema.
|
|
28689
|
-
|
|
28601
|
+
if (schema.default !== void 0) {
|
|
28602
|
+
baseSchema = baseSchema.default(schema.default);
|
|
28690
28603
|
}
|
|
28691
|
-
|
|
28692
|
-
|
|
28693
|
-
|
|
28694
|
-
|
|
28604
|
+
const extraMeta = {};
|
|
28605
|
+
const coreMetadataKeys = ["$id", "id", "$comment", "$anchor", "$vocabulary", "$dynamicRef", "$dynamicAnchor"];
|
|
28606
|
+
for (const key of coreMetadataKeys) {
|
|
28607
|
+
if (key in schema) {
|
|
28608
|
+
extraMeta[key] = schema[key];
|
|
28695
28609
|
}
|
|
28696
|
-
|
|
28697
|
-
|
|
28698
|
-
|
|
28699
|
-
|
|
28700
|
-
|
|
28701
|
-
return ctx.refs.get(refPath);
|
|
28702
|
-
});
|
|
28610
|
+
}
|
|
28611
|
+
const contentMetadataKeys = ["contentEncoding", "contentMediaType", "contentSchema"];
|
|
28612
|
+
for (const key of contentMetadataKeys) {
|
|
28613
|
+
if (key in schema) {
|
|
28614
|
+
extraMeta[key] = schema[key];
|
|
28703
28615
|
}
|
|
28704
|
-
ctx.processing.add(refPath);
|
|
28705
|
-
const resolved = resolveRef(refPath, ctx);
|
|
28706
|
-
const zodSchema2 = convertSchema(resolved, ctx);
|
|
28707
|
-
ctx.refs.set(refPath, zodSchema2);
|
|
28708
|
-
ctx.processing.delete(refPath);
|
|
28709
|
-
return zodSchema2;
|
|
28710
28616
|
}
|
|
28711
|
-
if (schema.
|
|
28712
|
-
|
|
28713
|
-
|
|
28714
|
-
return z.null();
|
|
28617
|
+
if (schema.type === "object" && schema.$ref === void 0) {
|
|
28618
|
+
if (schema.propertyNames !== void 0 && !containsRef(schema.propertyNames)) {
|
|
28619
|
+
extraMeta.propertyNames = schema.propertyNames;
|
|
28715
28620
|
}
|
|
28716
|
-
|
|
28717
|
-
|
|
28621
|
+
for (const key of ["minProperties", "maxProperties"]) {
|
|
28622
|
+
if (schema[key] !== void 0)
|
|
28623
|
+
extraMeta[key] = schema[key];
|
|
28718
28624
|
}
|
|
28719
|
-
|
|
28720
|
-
|
|
28625
|
+
}
|
|
28626
|
+
if (schema.type === "array" && schema.$ref === void 0) {
|
|
28627
|
+
if (schema.contains !== void 0 && !containsRef(schema.contains)) {
|
|
28628
|
+
extraMeta.contains = schema.contains;
|
|
28721
28629
|
}
|
|
28722
|
-
|
|
28723
|
-
|
|
28630
|
+
for (const key of ["uniqueItems", "minContains", "maxContains"]) {
|
|
28631
|
+
if (schema[key] !== void 0)
|
|
28632
|
+
extraMeta[key] = schema[key];
|
|
28724
28633
|
}
|
|
28725
|
-
|
|
28726
|
-
|
|
28727
|
-
|
|
28634
|
+
}
|
|
28635
|
+
for (const key of Object.keys(schema)) {
|
|
28636
|
+
if (!RECOGNIZED_KEYS.has(key)) {
|
|
28637
|
+
assignProp(extraMeta, key, schema[key]);
|
|
28728
28638
|
}
|
|
28729
|
-
return z.union([literalSchemas[0], literalSchemas[1], ...literalSchemas.slice(2)]);
|
|
28730
28639
|
}
|
|
28731
|
-
if (
|
|
28732
|
-
|
|
28640
|
+
if (Object.keys(extraMeta).length > 0) {
|
|
28641
|
+
ctx.registry.add(baseSchema, extraMeta);
|
|
28733
28642
|
}
|
|
28734
|
-
|
|
28735
|
-
|
|
28736
|
-
const typeSchemas = type.map((t) => {
|
|
28737
|
-
const typeSchema = { ...schema, type: t };
|
|
28738
|
-
return convertBaseSchema(typeSchema, ctx);
|
|
28739
|
-
});
|
|
28740
|
-
if (typeSchemas.length === 0) {
|
|
28741
|
-
return z.never();
|
|
28742
|
-
}
|
|
28743
|
-
if (typeSchemas.length === 1) {
|
|
28744
|
-
return typeSchemas[0];
|
|
28745
|
-
}
|
|
28746
|
-
return z.union(typeSchemas);
|
|
28643
|
+
if (schema.description) {
|
|
28644
|
+
baseSchema = baseSchema.describe(schema.description);
|
|
28747
28645
|
}
|
|
28748
|
-
|
|
28749
|
-
|
|
28646
|
+
return baseSchema;
|
|
28647
|
+
}
|
|
28648
|
+
function fromJSONSchema(schema, params) {
|
|
28649
|
+
if (typeof schema === "boolean") {
|
|
28650
|
+
return schema ? z.any() : z.never();
|
|
28750
28651
|
}
|
|
28751
|
-
let
|
|
28752
|
-
|
|
28753
|
-
|
|
28754
|
-
|
|
28755
|
-
|
|
28756
|
-
|
|
28757
|
-
|
|
28758
|
-
|
|
28759
|
-
|
|
28760
|
-
|
|
28761
|
-
|
|
28762
|
-
|
|
28763
|
-
|
|
28764
|
-
|
|
28765
|
-
|
|
28766
|
-
|
|
28767
|
-
|
|
28768
|
-
|
|
28769
|
-
|
|
28770
|
-
|
|
28771
|
-
|
|
28772
|
-
|
|
28773
|
-
|
|
28774
|
-
|
|
28775
|
-
|
|
28776
|
-
|
|
28777
|
-
|
|
28778
|
-
|
|
28779
|
-
|
|
28780
|
-
|
|
28781
|
-
|
|
28782
|
-
|
|
28783
|
-
|
|
28784
|
-
|
|
28785
|
-
|
|
28786
|
-
|
|
28787
|
-
|
|
28788
|
-
|
|
28789
|
-
|
|
28790
|
-
|
|
28791
|
-
|
|
28792
|
-
|
|
28793
|
-
|
|
28794
|
-
|
|
28795
|
-
|
|
28796
|
-
|
|
28797
|
-
|
|
28798
|
-
|
|
28799
|
-
|
|
28800
|
-
|
|
28801
|
-
|
|
28802
|
-
|
|
28803
|
-
|
|
28804
|
-
|
|
28805
|
-
|
|
28806
|
-
|
|
28807
|
-
|
|
28808
|
-
|
|
28652
|
+
let normalized;
|
|
28653
|
+
try {
|
|
28654
|
+
normalized = JSON.parse(JSON.stringify(schema));
|
|
28655
|
+
} catch {
|
|
28656
|
+
throw new Error("fromJSONSchema input is not valid JSON (possibly cyclic); use $defs/$ref for recursive schemas");
|
|
28657
|
+
}
|
|
28658
|
+
const version2 = detectVersion(normalized, params?.defaultTarget);
|
|
28659
|
+
const defs = normalized.$defs || normalized.definitions || {};
|
|
28660
|
+
const ctx = {
|
|
28661
|
+
version: version2,
|
|
28662
|
+
defs,
|
|
28663
|
+
refs: /* @__PURE__ */ new Map(),
|
|
28664
|
+
processing: /* @__PURE__ */ new Set(),
|
|
28665
|
+
rootSchema: normalized,
|
|
28666
|
+
registry: params?.registry ?? globalRegistry
|
|
28667
|
+
};
|
|
28668
|
+
return convertSchema(normalized, ctx);
|
|
28669
|
+
}
|
|
28670
|
+
|
|
28671
|
+
// ../../node_modules/.pnpm/zod@4.6.6/node_modules/zod/v4/core/visit.js
|
|
28672
|
+
var RESOLVING = /* @__PURE__ */ Symbol("z.visit/resolving");
|
|
28673
|
+
function visit(schema, fnOrHandlers) {
|
|
28674
|
+
const fn = typeof fnOrHandlers === "function" ? fnOrHandlers : (node2, rewritten) => {
|
|
28675
|
+
const h = fnOrHandlers[node2._zod.def.type];
|
|
28676
|
+
return h ? h(node2, rewritten) : node2;
|
|
28677
|
+
};
|
|
28678
|
+
const cache = /* @__PURE__ */ new Map();
|
|
28679
|
+
function run2(s) {
|
|
28680
|
+
const cached2 = cache.get(s);
|
|
28681
|
+
if (cached2 === RESOLVING) {
|
|
28682
|
+
return new $ZodLazy({
|
|
28683
|
+
type: "lazy",
|
|
28684
|
+
getter: () => cache.get(s)
|
|
28685
|
+
});
|
|
28686
|
+
}
|
|
28687
|
+
if (cached2 !== void 0)
|
|
28688
|
+
return cached2;
|
|
28689
|
+
cache.set(s, RESOLVING);
|
|
28690
|
+
const inner = mapInner(s);
|
|
28691
|
+
const mapped = fn(inner, inner !== s);
|
|
28692
|
+
cache.set(s, mapped);
|
|
28693
|
+
return mapped;
|
|
28694
|
+
}
|
|
28695
|
+
function mapInner(s) {
|
|
28696
|
+
const def = s._zod.def;
|
|
28697
|
+
const kind = def.type;
|
|
28698
|
+
switch (kind) {
|
|
28699
|
+
case "object": {
|
|
28700
|
+
const oldShape = def.shape;
|
|
28701
|
+
const keys = Object.keys(oldShape);
|
|
28702
|
+
let changed = false;
|
|
28703
|
+
const newShape = {};
|
|
28704
|
+
for (const k of keys) {
|
|
28705
|
+
const mapped = run2(oldShape[k]);
|
|
28706
|
+
if (mapped !== oldShape[k])
|
|
28707
|
+
changed = true;
|
|
28708
|
+
newShape[k] = mapped;
|
|
28709
|
+
}
|
|
28710
|
+
let newCatchall = def.catchall;
|
|
28711
|
+
if (def.catchall) {
|
|
28712
|
+
newCatchall = run2(def.catchall);
|
|
28713
|
+
if (newCatchall !== def.catchall)
|
|
28714
|
+
changed = true;
|
|
28715
|
+
}
|
|
28716
|
+
return changed ? clone(s, { ...def, shape: newShape, catchall: newCatchall }) : s;
|
|
28717
|
+
}
|
|
28718
|
+
case "array": {
|
|
28719
|
+
const mapped = run2(def.element);
|
|
28720
|
+
return mapped === def.element ? s : clone(s, { ...def, element: mapped });
|
|
28721
|
+
}
|
|
28722
|
+
case "tuple": {
|
|
28723
|
+
const oldItems = def.items;
|
|
28724
|
+
let changed = false;
|
|
28725
|
+
const newItems = [];
|
|
28726
|
+
for (const item of oldItems) {
|
|
28727
|
+
const mapped = run2(item);
|
|
28728
|
+
if (mapped !== item)
|
|
28729
|
+
changed = true;
|
|
28730
|
+
newItems.push(mapped);
|
|
28809
28731
|
}
|
|
28732
|
+
let newRest = def.rest;
|
|
28733
|
+
if (def.rest) {
|
|
28734
|
+
newRest = run2(def.rest);
|
|
28735
|
+
if (newRest !== def.rest)
|
|
28736
|
+
changed = true;
|
|
28737
|
+
}
|
|
28738
|
+
return changed ? clone(s, { ...def, items: newItems, rest: newRest }) : s;
|
|
28810
28739
|
}
|
|
28811
|
-
|
|
28812
|
-
|
|
28813
|
-
|
|
28814
|
-
|
|
28815
|
-
|
|
28816
|
-
}
|
|
28817
|
-
if (schema.pattern) {
|
|
28818
|
-
stringSchema = stringSchema.regex(new RegExp(schema.pattern));
|
|
28740
|
+
case "record":
|
|
28741
|
+
case "map": {
|
|
28742
|
+
const newKey = run2(def.keyType);
|
|
28743
|
+
const newVal = run2(def.valueType);
|
|
28744
|
+
return newKey === def.keyType && newVal === def.valueType ? s : clone(s, { ...def, keyType: newKey, valueType: newVal });
|
|
28819
28745
|
}
|
|
28820
|
-
|
|
28821
|
-
|
|
28822
|
-
|
|
28823
|
-
case "number":
|
|
28824
|
-
case "integer": {
|
|
28825
|
-
let numberSchema = type === "integer" ? z.number().int() : z.number();
|
|
28826
|
-
if (typeof schema.minimum === "number" && schema.exclusiveMinimum !== true) {
|
|
28827
|
-
numberSchema = numberSchema.min(schema.minimum);
|
|
28746
|
+
case "set": {
|
|
28747
|
+
const newVal = run2(def.valueType);
|
|
28748
|
+
return newVal === def.valueType ? s : clone(s, { ...def, valueType: newVal });
|
|
28828
28749
|
}
|
|
28829
|
-
|
|
28830
|
-
|
|
28750
|
+
case "union": {
|
|
28751
|
+
const oldOptions = def.options;
|
|
28752
|
+
let changed = false;
|
|
28753
|
+
const newOptions = [];
|
|
28754
|
+
for (const opt of oldOptions) {
|
|
28755
|
+
const mapped = run2(opt);
|
|
28756
|
+
if (mapped !== opt)
|
|
28757
|
+
changed = true;
|
|
28758
|
+
newOptions.push(mapped);
|
|
28759
|
+
}
|
|
28760
|
+
return changed ? clone(s, { ...def, options: newOptions }) : s;
|
|
28831
28761
|
}
|
|
28832
|
-
|
|
28833
|
-
|
|
28834
|
-
|
|
28835
|
-
|
|
28762
|
+
case "intersection": {
|
|
28763
|
+
const newLeft = run2(def.left);
|
|
28764
|
+
const newRight = run2(def.right);
|
|
28765
|
+
return newLeft === def.left && newRight === def.right ? s : clone(s, { ...def, left: newLeft, right: newRight });
|
|
28836
28766
|
}
|
|
28837
|
-
|
|
28838
|
-
|
|
28839
|
-
|
|
28840
|
-
|
|
28767
|
+
case "optional":
|
|
28768
|
+
case "nullable":
|
|
28769
|
+
case "default":
|
|
28770
|
+
case "prefault":
|
|
28771
|
+
case "catch":
|
|
28772
|
+
case "readonly":
|
|
28773
|
+
case "nonoptional":
|
|
28774
|
+
case "promise":
|
|
28775
|
+
case "success": {
|
|
28776
|
+
const newInner = run2(def.innerType);
|
|
28777
|
+
return newInner === def.innerType ? s : clone(s, { ...def, innerType: newInner });
|
|
28841
28778
|
}
|
|
28842
|
-
|
|
28843
|
-
|
|
28779
|
+
case "pipe": {
|
|
28780
|
+
const newIn = run2(def.in);
|
|
28781
|
+
const newOut = run2(def.out);
|
|
28782
|
+
return newIn === def.in && newOut === def.out ? s : clone(s, { ...def, in: newIn, out: newOut });
|
|
28844
28783
|
}
|
|
28845
|
-
|
|
28846
|
-
|
|
28847
|
-
|
|
28848
|
-
|
|
28849
|
-
zodSchema = z.boolean();
|
|
28850
|
-
break;
|
|
28851
|
-
}
|
|
28852
|
-
case "null": {
|
|
28853
|
-
zodSchema = z.null();
|
|
28854
|
-
break;
|
|
28855
|
-
}
|
|
28856
|
-
case "object": {
|
|
28857
|
-
const shape = {};
|
|
28858
|
-
const properties = schema.properties || {};
|
|
28859
|
-
const requiredSet = new Set(schema.required || []);
|
|
28860
|
-
const additionalSchema = typeof schema.additionalProperties === "object" ? convertSchema(schema.additionalProperties, ctx) : void 0;
|
|
28861
|
-
for (const [key, propSchema] of Object.entries(properties)) {
|
|
28862
|
-
const propZodSchema = convertSchema(propSchema, ctx);
|
|
28863
|
-
assignProp(shape, key, requiredSet.has(key) ? propZodSchema : propZodSchema.optional());
|
|
28784
|
+
case "function": {
|
|
28785
|
+
const newInput = run2(def.input);
|
|
28786
|
+
const newOutput = run2(def.output);
|
|
28787
|
+
return newInput === def.input && newOutput === def.output ? s : clone(s, { ...def, input: newInput, output: newOutput });
|
|
28864
28788
|
}
|
|
28865
|
-
|
|
28866
|
-
const
|
|
28867
|
-
const
|
|
28868
|
-
|
|
28869
|
-
for (const pattern of patternKeys) {
|
|
28870
|
-
const patternValue = convertSchema(patternProps[pattern], ctx);
|
|
28871
|
-
const keySchema = z.string().regex(new RegExp(pattern));
|
|
28872
|
-
looseRecords.push(z.looseRecord(keySchema, patternValue));
|
|
28873
|
-
}
|
|
28874
|
-
const schemasToIntersect = [];
|
|
28875
|
-
if (Object.keys(shape).length > 0) {
|
|
28876
|
-
schemasToIntersect.push(z.object(shape).passthrough());
|
|
28877
|
-
}
|
|
28878
|
-
schemasToIntersect.push(...looseRecords);
|
|
28879
|
-
if (schemasToIntersect.length === 0) {
|
|
28880
|
-
zodSchema = z.object({}).passthrough();
|
|
28881
|
-
} else if (schemasToIntersect.length === 1) {
|
|
28882
|
-
zodSchema = schemasToIntersect[0];
|
|
28883
|
-
} else {
|
|
28884
|
-
let result = z.intersection(schemasToIntersect[0], schemasToIntersect[1]);
|
|
28885
|
-
for (let i = 2; i < schemasToIntersect.length; i++) {
|
|
28886
|
-
result = z.intersection(result, schemasToIntersect[i]);
|
|
28887
|
-
}
|
|
28888
|
-
zodSchema = result;
|
|
28889
|
-
}
|
|
28890
|
-
if (schema.additionalProperties === false) {
|
|
28891
|
-
const propertyKeys = Object.keys(shape);
|
|
28892
|
-
const patterns = patternKeys.map((p) => new RegExp(p));
|
|
28893
|
-
const basePatternSchema = zodSchema;
|
|
28894
|
-
zodSchema = zodSchema.check((payload) => {
|
|
28895
|
-
if (!isPlainObject(payload.value))
|
|
28896
|
-
return;
|
|
28897
|
-
const unrecognized = [];
|
|
28898
|
-
for (const key of Object.keys(payload.value)) {
|
|
28899
|
-
if (propertyKeys.includes(key))
|
|
28900
|
-
continue;
|
|
28901
|
-
if (patterns.some((regex) => regex.test(key)))
|
|
28902
|
-
continue;
|
|
28903
|
-
unrecognized.push(key);
|
|
28904
|
-
}
|
|
28905
|
-
if (unrecognized.length) {
|
|
28906
|
-
payload.issues.push({
|
|
28907
|
-
code: "unrecognized_keys",
|
|
28908
|
-
keys: unrecognized,
|
|
28909
|
-
input: payload.value,
|
|
28910
|
-
inst: basePatternSchema
|
|
28911
|
-
});
|
|
28912
|
-
}
|
|
28913
|
-
});
|
|
28914
|
-
}
|
|
28915
|
-
} else {
|
|
28916
|
-
const objectSchema = z.object(shape);
|
|
28917
|
-
if (schema.additionalProperties === false) {
|
|
28918
|
-
zodSchema = objectSchema.strict();
|
|
28919
|
-
} else if (additionalSchema) {
|
|
28920
|
-
zodSchema = objectSchema.catchall(additionalSchema);
|
|
28921
|
-
} else {
|
|
28922
|
-
zodSchema = objectSchema.passthrough();
|
|
28923
|
-
}
|
|
28789
|
+
case "lazy": {
|
|
28790
|
+
const original = def.getter;
|
|
28791
|
+
const { _cachedInner, ...rest } = def;
|
|
28792
|
+
return clone(s, { ...rest, getter: () => run2(original()) });
|
|
28924
28793
|
}
|
|
28925
|
-
|
|
28926
|
-
|
|
28927
|
-
|
|
28928
|
-
|
|
28929
|
-
|
|
28930
|
-
|
|
28931
|
-
|
|
28932
|
-
|
|
28933
|
-
|
|
28934
|
-
|
|
28794
|
+
// A leaf by choice: `parts` are regex fragments, not data positions.
|
|
28795
|
+
case "template_literal":
|
|
28796
|
+
// Leaves.
|
|
28797
|
+
case "string":
|
|
28798
|
+
case "number":
|
|
28799
|
+
case "int":
|
|
28800
|
+
case "boolean":
|
|
28801
|
+
case "bigint":
|
|
28802
|
+
case "symbol":
|
|
28803
|
+
case "undefined":
|
|
28804
|
+
case "null":
|
|
28805
|
+
case "void":
|
|
28806
|
+
case "never":
|
|
28807
|
+
case "any":
|
|
28808
|
+
case "unknown":
|
|
28809
|
+
case "date":
|
|
28810
|
+
case "nan":
|
|
28811
|
+
case "enum":
|
|
28812
|
+
case "literal":
|
|
28813
|
+
case "file":
|
|
28814
|
+
case "transform":
|
|
28815
|
+
case "custom":
|
|
28816
|
+
return s;
|
|
28817
|
+
default: {
|
|
28818
|
+
kind;
|
|
28819
|
+
return s;
|
|
28935
28820
|
}
|
|
28936
|
-
break;
|
|
28937
28821
|
}
|
|
28938
|
-
|
|
28939
|
-
|
|
28940
|
-
|
|
28941
|
-
|
|
28942
|
-
|
|
28943
|
-
|
|
28944
|
-
|
|
28945
|
-
|
|
28946
|
-
|
|
28947
|
-
|
|
28948
|
-
|
|
28949
|
-
|
|
28950
|
-
}
|
|
28951
|
-
if (typeof schema.maxItems === "number") {
|
|
28952
|
-
zodSchema = zodSchema.check(z.maxLength(schema.maxItems));
|
|
28953
|
-
}
|
|
28954
|
-
} else if (Array.isArray(items)) {
|
|
28955
|
-
const minItems = typeof schema.minItems === "number" ? schema.minItems : 0;
|
|
28956
|
-
const tupleItems = items.map((item) => convertSchema(item, ctx));
|
|
28957
|
-
const positionalItems = applyMinItems(tupleItems, minItems);
|
|
28958
|
-
const rest = getTupleRest(schema.additionalItems, ctx);
|
|
28959
|
-
const tupleSchema = z.tuple(positionalItems);
|
|
28960
|
-
zodSchema = rest ? tupleSchema.rest(rest) : tupleSchema;
|
|
28961
|
-
if (typeof schema.minItems === "number") {
|
|
28962
|
-
zodSchema = zodSchema.check(z.minLength(schema.minItems));
|
|
28963
|
-
}
|
|
28964
|
-
if (typeof schema.maxItems === "number") {
|
|
28965
|
-
zodSchema = zodSchema.check(z.maxLength(schema.maxItems));
|
|
28966
|
-
}
|
|
28967
|
-
} else if (items !== void 0) {
|
|
28968
|
-
const element = convertSchema(items, ctx);
|
|
28969
|
-
let arraySchema = z.array(element);
|
|
28970
|
-
if (typeof schema.minItems === "number") {
|
|
28971
|
-
arraySchema = arraySchema.min(schema.minItems);
|
|
28972
|
-
}
|
|
28973
|
-
if (typeof schema.maxItems === "number") {
|
|
28974
|
-
arraySchema = arraySchema.max(schema.maxItems);
|
|
28975
|
-
}
|
|
28976
|
-
zodSchema = arraySchema;
|
|
28977
|
-
} else {
|
|
28978
|
-
zodSchema = z.array(z.any());
|
|
28979
|
-
}
|
|
28980
|
-
if (schema.uniqueItems === true || schema.contains !== void 0) {
|
|
28981
|
-
zodSchema = checkArrayGuards(zodSchema, {
|
|
28982
|
-
uniqueItems: schema.uniqueItems === true,
|
|
28983
|
-
containsSchema: schema.contains !== void 0 ? convertSchema(schema.contains, ctx) : void 0,
|
|
28984
|
-
minContains: typeof schema.minContains === "number" ? schema.minContains : void 0,
|
|
28985
|
-
maxContains: typeof schema.maxContains === "number" ? schema.maxContains : void 0
|
|
28986
|
-
});
|
|
28987
|
-
}
|
|
28988
|
-
break;
|
|
28822
|
+
}
|
|
28823
|
+
return run2(schema);
|
|
28824
|
+
}
|
|
28825
|
+
|
|
28826
|
+
// ../../node_modules/.pnpm/zod@4.6.6/node_modules/zod/v4/classic/deep-partial.js
|
|
28827
|
+
function deepPartial(schema) {
|
|
28828
|
+
return visit(schema, {
|
|
28829
|
+
object: (s) => s.partial(),
|
|
28830
|
+
// Every partialed option now admits `undefined`, which the constructor rejects as a duplicate.
|
|
28831
|
+
union: (s) => {
|
|
28832
|
+
const def = s._zod.def;
|
|
28833
|
+
return def.discriminator === void 0 ? s : union(def.options);
|
|
28989
28834
|
}
|
|
28990
|
-
|
|
28991
|
-
throw new Error(`Unsupported type: ${type}`);
|
|
28992
|
-
}
|
|
28993
|
-
return zodSchema;
|
|
28835
|
+
});
|
|
28994
28836
|
}
|
|
28995
|
-
|
|
28996
|
-
|
|
28997
|
-
|
|
28998
|
-
|
|
28999
|
-
|
|
29000
|
-
const
|
|
29001
|
-
|
|
29002
|
-
|
|
29003
|
-
|
|
29004
|
-
|
|
29005
|
-
|
|
29006
|
-
|
|
29007
|
-
|
|
29008
|
-
|
|
29009
|
-
|
|
29010
|
-
|
|
29011
|
-
|
|
29012
|
-
|
|
29013
|
-
|
|
29014
|
-
|
|
29015
|
-
|
|
29016
|
-
|
|
29017
|
-
|
|
29018
|
-
|
|
29019
|
-
|
|
29020
|
-
|
|
28837
|
+
|
|
28838
|
+
// ../../node_modules/.pnpm/zod@4.6.6/node_modules/zod/v4/classic/in-out.js
|
|
28839
|
+
function withChecks(side, checks) {
|
|
28840
|
+
if (!checks?.length)
|
|
28841
|
+
return side;
|
|
28842
|
+
const def = side._zod.def;
|
|
28843
|
+
return clone(side, mergeDefs(def, { checks: [...def.checks ?? [], ...checks] }), { parent: true });
|
|
28844
|
+
}
|
|
28845
|
+
function outSide(def) {
|
|
28846
|
+
return withChecks(def.out, def.checks);
|
|
28847
|
+
}
|
|
28848
|
+
function inSide(def) {
|
|
28849
|
+
return def.in._zod.traits.has("$ZodTransform") ? outSide(def) : def.in;
|
|
28850
|
+
}
|
|
28851
|
+
function input(schema) {
|
|
28852
|
+
return visit(schema, {
|
|
28853
|
+
pipe: (s) => inSide(s._zod.def),
|
|
28854
|
+
// A default value belongs to the output side, so a rewritten inner type leaves it stranded. `.default()` widens the declared input type with `undefined`, and `optional` is what carries that across.
|
|
28855
|
+
default: (s, rewritten) => rewritten ? optional(s._zod.def.innerType) : s,
|
|
28856
|
+
// A catch value is output-side too, but `.catch()` leaves the declared input type alone, so the inner schema stands on its own.
|
|
28857
|
+
catch: (s, rewritten) => rewritten ? s._zod.def.innerType : s
|
|
28858
|
+
});
|
|
28859
|
+
}
|
|
28860
|
+
function output(schema) {
|
|
28861
|
+
return visit(schema, {
|
|
28862
|
+
pipe: (s) => outSide(s._zod.def),
|
|
28863
|
+
// A prefault value is fed through the schema, which makes it input-side, so a rewritten inner type leaves it stranded.
|
|
28864
|
+
prefault: (s, rewritten) => rewritten ? s._zod.def.innerType : s
|
|
28865
|
+
});
|
|
28866
|
+
}
|
|
28867
|
+
|
|
28868
|
+
// ../../node_modules/.pnpm/zod@4.6.6/node_modules/zod/v4/classic/coerce.js
|
|
28869
|
+
var coerce_exports = {};
|
|
28870
|
+
__export(coerce_exports, {
|
|
28871
|
+
bigint: () => bigint3,
|
|
28872
|
+
boolean: () => boolean3,
|
|
28873
|
+
date: () => date4,
|
|
28874
|
+
number: () => number3,
|
|
28875
|
+
string: () => string3
|
|
28876
|
+
});
|
|
28877
|
+
function string3(params) {
|
|
28878
|
+
return _coercedString(ZodString, params);
|
|
28879
|
+
}
|
|
28880
|
+
function number3(params) {
|
|
28881
|
+
return _coercedNumber(ZodNumber, params);
|
|
28882
|
+
}
|
|
28883
|
+
function boolean3(params) {
|
|
28884
|
+
return _coercedBoolean(ZodBoolean, params);
|
|
28885
|
+
}
|
|
28886
|
+
function bigint3(params) {
|
|
28887
|
+
return _coercedBigint(ZodBigInt, params);
|
|
28888
|
+
}
|
|
28889
|
+
function date4(params) {
|
|
28890
|
+
return _coercedDate(ZodDate, params);
|
|
28891
|
+
}
|
|
28892
|
+
|
|
28893
|
+
// ../contracts/src/capability.ts
|
|
28894
|
+
var Capability = external_exports.enum(["triage", "plan", "implement", "reproduce", "verify", "review", "remember"]);
|
|
28895
|
+
|
|
28896
|
+
// ../contracts/src/ids.ts
|
|
28897
|
+
var GitHubLogin = external_exports.string().regex(/^(?!-)[A-Za-z0-9-]{1,39}(?<!-)(\[bot\])?$/, "not a GitHub login").brand();
|
|
28898
|
+
var RepoSlug = external_exports.string().regex(/^[A-Za-z0-9-]{1,39}\/[A-Za-z0-9._-]{1,100}$/, "expected owner/name").brand();
|
|
28899
|
+
var CommitSha = external_exports.string().regex(/^[0-9a-f]{40}$/, "expected a full commit SHA").brand();
|
|
28900
|
+
var BotBranch = external_exports.string().regex(/^macaron\/[0-9]+-[a-z0-9-]{1,48}$/, "expected macaron/<number>-<slug>").brand();
|
|
28901
|
+
var Ticket = external_exports.string().regex(/^t_[A-Za-z0-9_-]{32,64}$/, "not a ticket").brand();
|
|
28902
|
+
var Slug = external_exports.string().regex(/^[a-z0-9]+(-[a-z0-9]+)*$/, "expected kebab-case").max(64).brand();
|
|
28903
|
+
var Usd = external_exports.number().nonnegative().max(1e3);
|
|
28904
|
+
|
|
28905
|
+
// ../contracts/src/accounts.ts
|
|
28906
|
+
var Timestamp = external_exports.iso.datetime({ offset: true });
|
|
28907
|
+
var Capabilities = external_exports.array(Capability).min(1, "grant at least one capability").refine((capabilities) => new Set(capabilities).size === capabilities.length, "a capability appears twice");
|
|
28908
|
+
var Me = external_exports.object({
|
|
28909
|
+
githubId: external_exports.int().positive(),
|
|
28910
|
+
githubLogin: GitHubLogin,
|
|
28911
|
+
name: external_exports.string(),
|
|
28912
|
+
avatarUrl: external_exports.url().nullable(),
|
|
28913
|
+
role: external_exports.enum(["user", "admin"]),
|
|
28914
|
+
capabilities: external_exports.array(Capability)
|
|
28915
|
+
});
|
|
28916
|
+
var MonthlyCapUsd = external_exports.number().positive("a cap is above $0").max(1e5).multipleOf(0.01, "whole cents").nullable();
|
|
28917
|
+
var SetMonthlyCap = external_exports.object({ monthlyCapUsd: MonthlyCapUsd });
|
|
28918
|
+
var MyMonth = external_exports.object({
|
|
28919
|
+
monthlyCapUsd: MonthlyCapUsd,
|
|
28920
|
+
/** Settled runs billed to this user's key. */
|
|
28921
|
+
spentUsd: external_exports.number().nonnegative(),
|
|
28922
|
+
/** The limits of their runs not settled yet, counted against the cap until they are. */
|
|
28923
|
+
reservedUsd: external_exports.number().nonnegative()
|
|
28924
|
+
});
|
|
28925
|
+
var InvitationStatus = external_exports.enum(["pending", "accepted", "revoked", "expired"]);
|
|
28926
|
+
var Invitation = external_exports.object({
|
|
28927
|
+
id: external_exports.uuid(),
|
|
28928
|
+
githubId: external_exports.int().positive(),
|
|
28929
|
+
githubLogin: GitHubLogin,
|
|
28930
|
+
capabilities: external_exports.array(Capability),
|
|
28931
|
+
invitedBy: GitHubLogin,
|
|
28932
|
+
createdAt: Timestamp,
|
|
28933
|
+
expiresAt: Timestamp,
|
|
28934
|
+
status: InvitationStatus
|
|
28935
|
+
});
|
|
28936
|
+
var Invitations = external_exports.object({ invitations: external_exports.array(Invitation) });
|
|
28937
|
+
var CreateInvitation = external_exports.object({ githubLogin: GitHubLogin, capabilities: Capabilities });
|
|
28938
|
+
var UserAccount = external_exports.object({
|
|
28939
|
+
id: external_exports.string().min(1),
|
|
28940
|
+
githubId: external_exports.int().positive(),
|
|
28941
|
+
githubLogin: GitHubLogin,
|
|
28942
|
+
name: external_exports.string(),
|
|
28943
|
+
avatarUrl: external_exports.url().nullable(),
|
|
28944
|
+
role: external_exports.enum(["user", "admin"]),
|
|
28945
|
+
capabilities: external_exports.array(Capability),
|
|
28946
|
+
createdAt: Timestamp,
|
|
28947
|
+
lastSignInAt: Timestamp.nullable()
|
|
28948
|
+
});
|
|
28949
|
+
var UserAccounts = external_exports.object({ users: external_exports.array(UserAccount) });
|
|
28950
|
+
var SetCapabilities = external_exports.object({ capabilities: Capabilities });
|
|
28951
|
+
var FieldError = external_exports.object({ error: external_exports.string(), field: external_exports.string(), message: external_exports.string() });
|
|
28952
|
+
var UsageRun = external_exports.object({
|
|
28953
|
+
id: external_exports.uuid(),
|
|
28954
|
+
repo: external_exports.string(),
|
|
28955
|
+
number: external_exports.int().positive(),
|
|
28956
|
+
kind: external_exports.enum(["issue", "pull"]),
|
|
28957
|
+
mode: external_exports.string(),
|
|
28958
|
+
status: external_exports.enum(["pending", "dispatched", "running", "completed", "failed", "aborted"]),
|
|
28959
|
+
model: external_exports.string(),
|
|
28960
|
+
/** Settled cost; null until the backend reported the run's final usage. */
|
|
28961
|
+
costUsd: external_exports.number().nonnegative().nullable(),
|
|
28962
|
+
createdAt: Timestamp
|
|
28963
|
+
});
|
|
28964
|
+
var UsagePage = external_exports.object({
|
|
28965
|
+
runs: external_exports.array(UsageRun),
|
|
28966
|
+
/** Pass as `before` for the next page; null on the last one. */
|
|
28967
|
+
nextCursor: external_exports.string().nullable(),
|
|
28968
|
+
/** This calendar month (UTC), settled runs only. */
|
|
28969
|
+
monthUsd: external_exports.number().nonnegative(),
|
|
28970
|
+
monthRuns: external_exports.int().nonnegative()
|
|
28971
|
+
});
|
|
28972
|
+
var UsageQuery = external_exports.object({
|
|
28973
|
+
before: external_exports.string().optional(),
|
|
28974
|
+
limit: external_exports.coerce.number().int().min(1).max(100).default(25)
|
|
28975
|
+
});
|
|
28976
|
+
var Endpoint = external_exports.object({
|
|
28977
|
+
id: external_exports.uuid(),
|
|
28978
|
+
name: external_exports.string(),
|
|
28979
|
+
baseUrl: external_exports.url(),
|
|
28980
|
+
enabled: external_exports.boolean(),
|
|
28981
|
+
pricingNote: external_exports.string().nullable(),
|
|
28982
|
+
/** Null for the deployment's defaults (LLM_ENDPOINT_DEFAULTS). */
|
|
28983
|
+
createdBy: GitHubLogin.nullable(),
|
|
28984
|
+
createdAt: Timestamp
|
|
28985
|
+
});
|
|
28986
|
+
var Endpoints = external_exports.object({ endpoints: external_exports.array(Endpoint) });
|
|
28987
|
+
var EndpointBaseUrl = external_exports.url({ protocol: /^https$/, error: "an https:// URL" }).refine((value) => {
|
|
28988
|
+
const url2 = URL.parse(value);
|
|
28989
|
+
return url2 === null || url2.username === "" && url2.password === "" && url2.search === "" && url2.hash === "";
|
|
28990
|
+
}, "no credentials, query or fragment in the URL").transform((value) => value.replace(/\/+$/, ""));
|
|
28991
|
+
var CreateEndpoint = external_exports.object({
|
|
28992
|
+
name: external_exports.string().trim().min(2).max(60),
|
|
28993
|
+
baseUrl: EndpointBaseUrl,
|
|
28994
|
+
pricingNote: external_exports.string().trim().max(280).nullish().transform((note) => note === void 0 || note === null || note === "" ? null : note)
|
|
28995
|
+
});
|
|
28996
|
+
var SetEndpointEnabled = external_exports.object({ enabled: external_exports.boolean() });
|
|
28997
|
+
var EndpointChoice = Endpoint.pick({ id: true, name: true, baseUrl: true, pricingNote: true });
|
|
28998
|
+
var LlmKeyStatus = external_exports.enum(["valid", "rejected"]);
|
|
28999
|
+
var LlmKey = external_exports.object({
|
|
29000
|
+
endpoint: Endpoint.pick({ id: true, name: true, baseUrl: true, pricingNote: true, enabled: true }),
|
|
29001
|
+
last4: external_exports.string(),
|
|
29002
|
+
/** `rejected` once the endpoint refused it during a run: save it again, or another. */
|
|
29003
|
+
status: LlmKeyStatus,
|
|
29004
|
+
validatedAt: Timestamp,
|
|
29005
|
+
createdAt: Timestamp,
|
|
29006
|
+
updatedAt: Timestamp
|
|
29007
|
+
});
|
|
29008
|
+
var MyLlmKey = external_exports.object({
|
|
29009
|
+
key: LlmKey.nullable(),
|
|
29010
|
+
/** The enabled endpoints a key may be saved for. */
|
|
29011
|
+
endpoints: external_exports.array(EndpointChoice),
|
|
29012
|
+
/** False when this deployment can't store keys (no key-encryption key): saving is refused. */
|
|
29013
|
+
storage: external_exports.boolean(),
|
|
29014
|
+
/** Until when this session may save or delete a key; sign in again after. */
|
|
29015
|
+
freshUntil: Timestamp
|
|
29016
|
+
});
|
|
29017
|
+
var SaveLlmKey = external_exports.object({
|
|
29018
|
+
endpointId: external_exports.uuid(),
|
|
29019
|
+
key: external_exports.string().trim().min(8, "too short for an API key").max(1024, "too long for an API key").regex(/^[\x21-\x7e]+$/, "printable characters only, without spaces")
|
|
29020
|
+
});
|
|
29021
|
+
var SavedLlmKey = external_exports.object({
|
|
29022
|
+
key: LlmKey,
|
|
29023
|
+
/** Models the configuration uses that the endpoint didn't list: runs needing them would fail. */
|
|
29024
|
+
missingModels: external_exports.array(external_exports.string())
|
|
29025
|
+
});
|
|
29026
|
+
var LlmKeyEventKind = external_exports.enum(["created", "replaced", "deleted", "used", "rejected", "unreachable"]);
|
|
29027
|
+
var LlmKeyEvent = external_exports.object({
|
|
29028
|
+
id: external_exports.uuid(),
|
|
29029
|
+
kind: LlmKeyEventKind,
|
|
29030
|
+
at: Timestamp,
|
|
29031
|
+
endpointName: external_exports.string().nullable(),
|
|
29032
|
+
last4: external_exports.string().nullable(),
|
|
29033
|
+
/** The thread of the run that used the key, for `used` and `rejected` during a run. */
|
|
29034
|
+
thread: external_exports.object({ repo: external_exports.string(), number: external_exports.int().positive(), kind: external_exports.enum(["issue", "pull"]) }).nullable(),
|
|
29035
|
+
detail: external_exports.string().nullable()
|
|
29036
|
+
});
|
|
29037
|
+
var LlmKeyEvents = external_exports.object({ events: external_exports.array(LlmKeyEvent), nextCursor: external_exports.string().nullable() });
|
|
29038
|
+
|
|
29039
|
+
// ../contracts/src/auth-fields.ts
|
|
29040
|
+
var AUTH_COOKIE_PREFIX = "macaron";
|
|
29041
|
+
var SESSION_COOKIE = `__Secure-${AUTH_COOKIE_PREFIX}.session_token`;
|
|
29042
|
+
|
|
29043
|
+
// ../../node_modules/.pnpm/deepmerge-ts@8.0.2/node_modules/deepmerge-ts/dist/index.mjs
|
|
29044
|
+
var actions = {
|
|
29045
|
+
defaultMerge: /* @__PURE__ */ Symbol("deepmerge-ts: default merge"),
|
|
29046
|
+
skip: /* @__PURE__ */ Symbol("deepmerge-ts: skip")
|
|
29047
|
+
};
|
|
29048
|
+
var actionsInto = {
|
|
29049
|
+
defaultMerge: actions.defaultMerge
|
|
29050
|
+
};
|
|
29051
|
+
function defaultMetaDataUpdater(previousMeta, mergeInfo) {
|
|
29052
|
+
const ancestor = {
|
|
29053
|
+
key: mergeInfo.key,
|
|
29054
|
+
parents: mergeInfo.parents,
|
|
29055
|
+
values: mergeInfo.values,
|
|
29056
|
+
result: mergeInfo.result
|
|
29057
|
+
};
|
|
29058
|
+
const prevHierarchy = previousMeta?.hierarchy;
|
|
29059
|
+
return {
|
|
29060
|
+
...ancestor,
|
|
29061
|
+
hierarchy: prevHierarchy === void 0 ? [ancestor] : [...prevHierarchy, ancestor]
|
|
29062
|
+
};
|
|
29063
|
+
}
|
|
29064
|
+
function defaultFilterValues(values, meta3) {
|
|
29065
|
+
return values.includes(void 0) ? values.filter((value) => value !== void 0) : values;
|
|
29066
|
+
}
|
|
29067
|
+
function shouldFallbackToDefault(utils, fallback, result) {
|
|
29068
|
+
return result === actions.defaultMerge || utils.useImplicitDefaultMerging && result === void 0 && utils.mergeFunctions[fallback] !== utils.defaultMergeFunctions[fallback];
|
|
29069
|
+
}
|
|
29070
|
+
function resolveCustomMergeFunctions(options, defaultMergeFunctions) {
|
|
29071
|
+
return {
|
|
29072
|
+
...defaultMergeFunctions,
|
|
29073
|
+
...Object.fromEntries(Object.entries(options).filter(([key]) => Object.hasOwn(defaultMergeFunctions, key)).map(([key, option]) => option === false ? [key, defaultMergeFunctions.mergeOthers] : typeof option === "function" ? [key, option] : [key, defaultMergeFunctions[key]]))
|
|
29074
|
+
};
|
|
29075
|
+
}
|
|
29076
|
+
function mergeArrays$1(values, utils, meta3) {
|
|
29077
|
+
return values.flat();
|
|
29078
|
+
}
|
|
29079
|
+
function mergeSets$1(values, utils, meta3) {
|
|
29080
|
+
const result = /* @__PURE__ */ new Set();
|
|
29081
|
+
for (const set2 of values) {
|
|
29082
|
+
for (const element of set2) {
|
|
29083
|
+
result.add(element);
|
|
29021
29084
|
}
|
|
29022
29085
|
}
|
|
29023
|
-
|
|
29024
|
-
|
|
29086
|
+
return result;
|
|
29087
|
+
}
|
|
29088
|
+
function mergeOthers$1(values, utils, meta3) {
|
|
29089
|
+
return values.at(-1);
|
|
29090
|
+
}
|
|
29091
|
+
var ObjectType;
|
|
29092
|
+
(function(ObjectType2) {
|
|
29093
|
+
ObjectType2[ObjectType2["NOT"] = 0] = "NOT";
|
|
29094
|
+
ObjectType2[ObjectType2["RECORD"] = 1] = "RECORD";
|
|
29095
|
+
ObjectType2[ObjectType2["ARRAY"] = 2] = "ARRAY";
|
|
29096
|
+
ObjectType2[ObjectType2["SET"] = 3] = "SET";
|
|
29097
|
+
ObjectType2[ObjectType2["MAP"] = 4] = "MAP";
|
|
29098
|
+
ObjectType2[ObjectType2["OTHER"] = 5] = "OTHER";
|
|
29099
|
+
})(ObjectType || (ObjectType = {}));
|
|
29100
|
+
function getObjectType(object2) {
|
|
29101
|
+
if (typeof object2 !== "object" || object2 === null) {
|
|
29102
|
+
return ObjectType.NOT;
|
|
29025
29103
|
}
|
|
29026
|
-
if (
|
|
29027
|
-
|
|
29104
|
+
if (Array.isArray(object2)) {
|
|
29105
|
+
return ObjectType.ARRAY;
|
|
29028
29106
|
}
|
|
29029
|
-
if (
|
|
29030
|
-
|
|
29107
|
+
if (isRecord(object2)) {
|
|
29108
|
+
return ObjectType.RECORD;
|
|
29031
29109
|
}
|
|
29032
|
-
|
|
29033
|
-
|
|
29034
|
-
for (const key of coreMetadataKeys) {
|
|
29035
|
-
if (key in schema) {
|
|
29036
|
-
extraMeta[key] = schema[key];
|
|
29037
|
-
}
|
|
29110
|
+
if (object2 instanceof Set) {
|
|
29111
|
+
return ObjectType.SET;
|
|
29038
29112
|
}
|
|
29039
|
-
|
|
29040
|
-
|
|
29041
|
-
if (key in schema) {
|
|
29042
|
-
extraMeta[key] = schema[key];
|
|
29043
|
-
}
|
|
29113
|
+
if (object2 instanceof Map) {
|
|
29114
|
+
return ObjectType.MAP;
|
|
29044
29115
|
}
|
|
29045
|
-
|
|
29046
|
-
|
|
29047
|
-
|
|
29116
|
+
return ObjectType.OTHER;
|
|
29117
|
+
}
|
|
29118
|
+
function getKeysOfObjects(objects) {
|
|
29119
|
+
const keys = /* @__PURE__ */ new Set();
|
|
29120
|
+
for (const currentObject of objects) {
|
|
29121
|
+
const stringKeys = Object.keys(currentObject);
|
|
29122
|
+
for (const stringKey of stringKeys) {
|
|
29123
|
+
keys.add(stringKey);
|
|
29048
29124
|
}
|
|
29049
|
-
|
|
29050
|
-
|
|
29051
|
-
|
|
29125
|
+
const symbols = Object.getOwnPropertySymbols(currentObject);
|
|
29126
|
+
if (symbols.length > 0) {
|
|
29127
|
+
for (const symbol2 of symbols) {
|
|
29128
|
+
if (Object.prototype.propertyIsEnumerable.call(currentObject, symbol2)) {
|
|
29129
|
+
keys.add(symbol2);
|
|
29130
|
+
}
|
|
29131
|
+
}
|
|
29052
29132
|
}
|
|
29053
29133
|
}
|
|
29054
|
-
|
|
29055
|
-
|
|
29056
|
-
|
|
29057
|
-
|
|
29058
|
-
|
|
29059
|
-
|
|
29060
|
-
|
|
29061
|
-
|
|
29134
|
+
return keys;
|
|
29135
|
+
}
|
|
29136
|
+
function getKeysOfObject(object2) {
|
|
29137
|
+
const symbols = Object.getOwnPropertySymbols(object2).filter((symbol2) => Object.prototype.propertyIsEnumerable.call(object2, symbol2));
|
|
29138
|
+
return [...Object.keys(object2), ...symbols];
|
|
29139
|
+
}
|
|
29140
|
+
function objectHasProperty(object2, property) {
|
|
29141
|
+
return typeof object2 === "object" && Object.prototype.propertyIsEnumerable.call(object2, property);
|
|
29142
|
+
}
|
|
29143
|
+
function isRecord(value) {
|
|
29144
|
+
const prototype = Object.getPrototypeOf(value);
|
|
29145
|
+
if (prototype === null || prototype === Object.prototype) {
|
|
29146
|
+
return true;
|
|
29062
29147
|
}
|
|
29063
|
-
|
|
29064
|
-
|
|
29065
|
-
|
|
29066
|
-
}
|
|
29148
|
+
const objectToString = Object.prototype.toString.call(value);
|
|
29149
|
+
if (objectToString !== "[object Object]" && objectToString !== "[object Module]") {
|
|
29150
|
+
return false;
|
|
29067
29151
|
}
|
|
29068
|
-
|
|
29069
|
-
|
|
29152
|
+
const { constructor } = value;
|
|
29153
|
+
if (constructor === void 0) {
|
|
29154
|
+
return true;
|
|
29070
29155
|
}
|
|
29071
|
-
|
|
29072
|
-
|
|
29156
|
+
const constructorPrototype = constructor.prototype;
|
|
29157
|
+
if (constructorPrototype === null || typeof constructorPrototype !== "object") {
|
|
29158
|
+
return false;
|
|
29159
|
+
}
|
|
29160
|
+
const constructorToString = Object.prototype.toString.call(constructorPrototype);
|
|
29161
|
+
if (constructorToString !== "[object Object]" && constructorToString !== "[object Module]") {
|
|
29162
|
+
return false;
|
|
29163
|
+
}
|
|
29164
|
+
if (!Object.hasOwn(constructorPrototype, "isPrototypeOf")) {
|
|
29165
|
+
return false;
|
|
29073
29166
|
}
|
|
29074
|
-
return
|
|
29167
|
+
return true;
|
|
29075
29168
|
}
|
|
29076
|
-
function
|
|
29077
|
-
if (
|
|
29078
|
-
return
|
|
29169
|
+
function getCyclicReferenceDepth(object2, hierarchy, index) {
|
|
29170
|
+
if (hierarchy === void 0 || hierarchy.length === 0) {
|
|
29171
|
+
return 0;
|
|
29079
29172
|
}
|
|
29080
|
-
let
|
|
29081
|
-
|
|
29082
|
-
|
|
29083
|
-
|
|
29084
|
-
|
|
29173
|
+
let mut_depth = 1;
|
|
29174
|
+
for (let mut_index = hierarchy.length - 1; mut_index >= 0; mut_index--) {
|
|
29175
|
+
const { parents } = hierarchy[mut_index];
|
|
29176
|
+
if (parents[index] === object2 || parents.includes(object2)) {
|
|
29177
|
+
return mut_depth;
|
|
29178
|
+
}
|
|
29179
|
+
mut_depth += 1;
|
|
29085
29180
|
}
|
|
29086
|
-
|
|
29087
|
-
const defs = normalized.$defs || normalized.definitions || {};
|
|
29088
|
-
const ctx = {
|
|
29089
|
-
version: version2,
|
|
29090
|
-
defs,
|
|
29091
|
-
refs: /* @__PURE__ */ new Map(),
|
|
29092
|
-
processing: /* @__PURE__ */ new Set(),
|
|
29093
|
-
rootSchema: normalized,
|
|
29094
|
-
registry: params?.registry ?? globalRegistry
|
|
29095
|
-
};
|
|
29096
|
-
return convertSchema(normalized, ctx);
|
|
29181
|
+
return 0;
|
|
29097
29182
|
}
|
|
29098
|
-
|
|
29099
|
-
|
|
29100
|
-
|
|
29101
|
-
function
|
|
29102
|
-
|
|
29103
|
-
const
|
|
29104
|
-
|
|
29105
|
-
|
|
29106
|
-
|
|
29107
|
-
|
|
29108
|
-
|
|
29109
|
-
|
|
29110
|
-
return new $ZodLazy({
|
|
29111
|
-
type: "lazy",
|
|
29112
|
-
getter: () => cache.get(s)
|
|
29183
|
+
function getMetaDataHierarchy(meta3) {
|
|
29184
|
+
return meta3?.hierarchy;
|
|
29185
|
+
}
|
|
29186
|
+
function mergeRecords$1(values, utils, meta3) {
|
|
29187
|
+
if (values.length === 2) {
|
|
29188
|
+
const result = {};
|
|
29189
|
+
const mergeProperty = (key, propValues) => {
|
|
29190
|
+
const updatedMeta = utils.metaDataUpdater(meta3, {
|
|
29191
|
+
key,
|
|
29192
|
+
parents: values,
|
|
29193
|
+
values: propValues,
|
|
29194
|
+
result
|
|
29113
29195
|
});
|
|
29114
|
-
|
|
29115
|
-
|
|
29116
|
-
|
|
29117
|
-
cache.set(s, RESOLVING);
|
|
29118
|
-
const inner = mapInner(s);
|
|
29119
|
-
const mapped = fn(inner, inner !== s);
|
|
29120
|
-
cache.set(s, mapped);
|
|
29121
|
-
return mapped;
|
|
29122
|
-
}
|
|
29123
|
-
function mapInner(s) {
|
|
29124
|
-
const def = s._zod.def;
|
|
29125
|
-
const kind = def.type;
|
|
29126
|
-
switch (kind) {
|
|
29127
|
-
case "object": {
|
|
29128
|
-
const oldShape = def.shape;
|
|
29129
|
-
const keys = Object.keys(oldShape);
|
|
29130
|
-
let changed = false;
|
|
29131
|
-
const newShape = {};
|
|
29132
|
-
for (const k of keys) {
|
|
29133
|
-
const mapped = run2(oldShape[k]);
|
|
29134
|
-
if (mapped !== oldShape[k])
|
|
29135
|
-
changed = true;
|
|
29136
|
-
newShape[k] = mapped;
|
|
29137
|
-
}
|
|
29138
|
-
let newCatchall = def.catchall;
|
|
29139
|
-
if (def.catchall) {
|
|
29140
|
-
newCatchall = run2(def.catchall);
|
|
29141
|
-
if (newCatchall !== def.catchall)
|
|
29142
|
-
changed = true;
|
|
29143
|
-
}
|
|
29144
|
-
return changed ? clone(s, { ...def, shape: newShape, catchall: newCatchall }) : s;
|
|
29145
|
-
}
|
|
29146
|
-
case "array": {
|
|
29147
|
-
const mapped = run2(def.element);
|
|
29148
|
-
return mapped === def.element ? s : clone(s, { ...def, element: mapped });
|
|
29149
|
-
}
|
|
29150
|
-
case "tuple": {
|
|
29151
|
-
const oldItems = def.items;
|
|
29152
|
-
let changed = false;
|
|
29153
|
-
const newItems = [];
|
|
29154
|
-
for (const item of oldItems) {
|
|
29155
|
-
const mapped = run2(item);
|
|
29156
|
-
if (mapped !== item)
|
|
29157
|
-
changed = true;
|
|
29158
|
-
newItems.push(mapped);
|
|
29159
|
-
}
|
|
29160
|
-
let newRest = def.rest;
|
|
29161
|
-
if (def.rest) {
|
|
29162
|
-
newRest = run2(def.rest);
|
|
29163
|
-
if (newRest !== def.rest)
|
|
29164
|
-
changed = true;
|
|
29165
|
-
}
|
|
29166
|
-
return changed ? clone(s, { ...def, items: newItems, rest: newRest }) : s;
|
|
29167
|
-
}
|
|
29168
|
-
case "record":
|
|
29169
|
-
case "map": {
|
|
29170
|
-
const newKey = run2(def.keyType);
|
|
29171
|
-
const newVal = run2(def.valueType);
|
|
29172
|
-
return newKey === def.keyType && newVal === def.valueType ? s : clone(s, { ...def, keyType: newKey, valueType: newVal });
|
|
29173
|
-
}
|
|
29174
|
-
case "set": {
|
|
29175
|
-
const newVal = run2(def.valueType);
|
|
29176
|
-
return newVal === def.valueType ? s : clone(s, { ...def, valueType: newVal });
|
|
29177
|
-
}
|
|
29178
|
-
case "union": {
|
|
29179
|
-
const oldOptions = def.options;
|
|
29180
|
-
let changed = false;
|
|
29181
|
-
const newOptions = [];
|
|
29182
|
-
for (const opt of oldOptions) {
|
|
29183
|
-
const mapped = run2(opt);
|
|
29184
|
-
if (mapped !== opt)
|
|
29185
|
-
changed = true;
|
|
29186
|
-
newOptions.push(mapped);
|
|
29187
|
-
}
|
|
29188
|
-
return changed ? clone(s, { ...def, options: newOptions }) : s;
|
|
29189
|
-
}
|
|
29190
|
-
case "intersection": {
|
|
29191
|
-
const newLeft = run2(def.left);
|
|
29192
|
-
const newRight = run2(def.right);
|
|
29193
|
-
return newLeft === def.left && newRight === def.right ? s : clone(s, { ...def, left: newLeft, right: newRight });
|
|
29194
|
-
}
|
|
29195
|
-
case "optional":
|
|
29196
|
-
case "nullable":
|
|
29197
|
-
case "default":
|
|
29198
|
-
case "prefault":
|
|
29199
|
-
case "catch":
|
|
29200
|
-
case "readonly":
|
|
29201
|
-
case "nonoptional":
|
|
29202
|
-
case "promise":
|
|
29203
|
-
case "success": {
|
|
29204
|
-
const newInner = run2(def.innerType);
|
|
29205
|
-
return newInner === def.innerType ? s : clone(s, { ...def, innerType: newInner });
|
|
29196
|
+
const propertyResult = mergeUnknowns(propValues, utils, updatedMeta);
|
|
29197
|
+
if (propertyResult === actions.skip) {
|
|
29198
|
+
return;
|
|
29206
29199
|
}
|
|
29207
|
-
|
|
29208
|
-
|
|
29209
|
-
|
|
29210
|
-
|
|
29200
|
+
if (key === "__proto__") {
|
|
29201
|
+
Object.defineProperty(result, key, {
|
|
29202
|
+
value: propertyResult,
|
|
29203
|
+
configurable: true,
|
|
29204
|
+
enumerable: true,
|
|
29205
|
+
writable: true
|
|
29206
|
+
});
|
|
29207
|
+
} else {
|
|
29208
|
+
result[key] = propertyResult;
|
|
29211
29209
|
}
|
|
29212
|
-
|
|
29213
|
-
|
|
29214
|
-
|
|
29215
|
-
|
|
29210
|
+
};
|
|
29211
|
+
const firstValue = values[0];
|
|
29212
|
+
const secondValue = values[1];
|
|
29213
|
+
for (const key of getKeysOfObject(firstValue)) {
|
|
29214
|
+
mergeProperty(key, objectHasProperty(secondValue, key) ? [firstValue[key], secondValue[key]] : [firstValue[key]]);
|
|
29215
|
+
}
|
|
29216
|
+
for (const key of getKeysOfObject(secondValue)) {
|
|
29217
|
+
if (!objectHasProperty(firstValue, key)) {
|
|
29218
|
+
mergeProperty(key, [secondValue[key]]);
|
|
29216
29219
|
}
|
|
29217
|
-
|
|
29218
|
-
|
|
29219
|
-
|
|
29220
|
-
|
|
29220
|
+
}
|
|
29221
|
+
return result;
|
|
29222
|
+
}
|
|
29223
|
+
return mergeRecordsGeneral(values, utils, meta3);
|
|
29224
|
+
}
|
|
29225
|
+
function mergeRecordsGeneral(values, utils, meta3) {
|
|
29226
|
+
const result = {};
|
|
29227
|
+
for (const key of getKeysOfObjects(values)) {
|
|
29228
|
+
const propValues = [];
|
|
29229
|
+
for (const value of values) {
|
|
29230
|
+
if (objectHasProperty(value, key)) {
|
|
29231
|
+
propValues.push(value[key]);
|
|
29221
29232
|
}
|
|
29222
|
-
|
|
29223
|
-
|
|
29224
|
-
|
|
29225
|
-
|
|
29226
|
-
|
|
29227
|
-
|
|
29228
|
-
|
|
29229
|
-
|
|
29230
|
-
|
|
29231
|
-
|
|
29232
|
-
|
|
29233
|
-
|
|
29234
|
-
|
|
29235
|
-
|
|
29236
|
-
|
|
29237
|
-
|
|
29238
|
-
|
|
29239
|
-
|
|
29240
|
-
|
|
29241
|
-
|
|
29242
|
-
|
|
29243
|
-
|
|
29244
|
-
|
|
29245
|
-
|
|
29246
|
-
|
|
29247
|
-
|
|
29233
|
+
}
|
|
29234
|
+
const updatedMeta = utils.metaDataUpdater(meta3, {
|
|
29235
|
+
key,
|
|
29236
|
+
parents: values,
|
|
29237
|
+
values: propValues,
|
|
29238
|
+
result
|
|
29239
|
+
});
|
|
29240
|
+
const propertyResult = mergeUnknowns(propValues, utils, updatedMeta);
|
|
29241
|
+
if (propertyResult === actions.skip) {
|
|
29242
|
+
continue;
|
|
29243
|
+
}
|
|
29244
|
+
if (key === "__proto__") {
|
|
29245
|
+
Object.defineProperty(result, key, {
|
|
29246
|
+
value: propertyResult,
|
|
29247
|
+
configurable: true,
|
|
29248
|
+
enumerable: true,
|
|
29249
|
+
writable: true
|
|
29250
|
+
});
|
|
29251
|
+
} else {
|
|
29252
|
+
result[key] = propertyResult;
|
|
29253
|
+
}
|
|
29254
|
+
}
|
|
29255
|
+
return result;
|
|
29256
|
+
}
|
|
29257
|
+
function mergeMaps$1(values, utils, meta3) {
|
|
29258
|
+
const result = /* @__PURE__ */ new Map();
|
|
29259
|
+
const valuesByKey = /* @__PURE__ */ new Map();
|
|
29260
|
+
for (const map2 of values) {
|
|
29261
|
+
for (const [key, value] of map2) {
|
|
29262
|
+
const mut_keyValues = valuesByKey.get(key);
|
|
29263
|
+
if (mut_keyValues === void 0) {
|
|
29264
|
+
valuesByKey.set(key, [value]);
|
|
29265
|
+
} else {
|
|
29266
|
+
mut_keyValues.push(value);
|
|
29248
29267
|
}
|
|
29249
29268
|
}
|
|
29250
29269
|
}
|
|
29251
|
-
|
|
29270
|
+
for (const [key, keyValues] of valuesByKey) {
|
|
29271
|
+
const updatedMeta = utils.metaDataUpdater(meta3, {
|
|
29272
|
+
key,
|
|
29273
|
+
parents: values,
|
|
29274
|
+
values: keyValues,
|
|
29275
|
+
result
|
|
29276
|
+
});
|
|
29277
|
+
const keyResult = mergeUnknowns(keyValues, utils, updatedMeta);
|
|
29278
|
+
if (keyResult === actions.skip) {
|
|
29279
|
+
continue;
|
|
29280
|
+
}
|
|
29281
|
+
result.set(key, keyResult);
|
|
29282
|
+
}
|
|
29283
|
+
return result;
|
|
29252
29284
|
}
|
|
29253
|
-
|
|
29254
|
-
|
|
29255
|
-
|
|
29256
|
-
|
|
29257
|
-
|
|
29258
|
-
|
|
29259
|
-
|
|
29260
|
-
|
|
29261
|
-
|
|
29285
|
+
function resolveCyclicReferences(value, utils, meta3) {
|
|
29286
|
+
if (typeof value !== "object" || value === null) {
|
|
29287
|
+
return value;
|
|
29288
|
+
}
|
|
29289
|
+
const hierarchy = getMetaDataHierarchy(meta3);
|
|
29290
|
+
const depth = getCyclicReferenceDepth(value, hierarchy, 0);
|
|
29291
|
+
if (hierarchy !== void 0 && depth > 0) {
|
|
29292
|
+
return hierarchy[hierarchy.length - depth]?.result;
|
|
29293
|
+
}
|
|
29294
|
+
const type = getObjectType(value);
|
|
29295
|
+
if (type === ObjectType.RECORD) {
|
|
29296
|
+
const record2 = value;
|
|
29297
|
+
let mut_changed = false;
|
|
29298
|
+
const result = {};
|
|
29299
|
+
for (const key of getKeysOfObject(record2)) {
|
|
29300
|
+
const propVal = record2[key];
|
|
29301
|
+
const updatedMeta = utils.metaDataUpdater(meta3, {
|
|
29302
|
+
key,
|
|
29303
|
+
parents: [record2],
|
|
29304
|
+
values: [propVal],
|
|
29305
|
+
result
|
|
29306
|
+
});
|
|
29307
|
+
const resolvedProp = resolveCyclicReferences(propVal, utils, updatedMeta);
|
|
29308
|
+
if (resolvedProp !== propVal) {
|
|
29309
|
+
mut_changed = true;
|
|
29310
|
+
}
|
|
29311
|
+
if (key === "__proto__") {
|
|
29312
|
+
Object.defineProperty(result, key, {
|
|
29313
|
+
value: resolvedProp,
|
|
29314
|
+
configurable: true,
|
|
29315
|
+
enumerable: true,
|
|
29316
|
+
writable: true
|
|
29317
|
+
});
|
|
29318
|
+
} else {
|
|
29319
|
+
result[key] = resolvedProp;
|
|
29320
|
+
}
|
|
29262
29321
|
}
|
|
29263
|
-
|
|
29322
|
+
return mut_changed ? result : value;
|
|
29323
|
+
}
|
|
29324
|
+
return value;
|
|
29264
29325
|
}
|
|
29265
|
-
|
|
29266
|
-
|
|
29267
|
-
|
|
29268
|
-
|
|
29269
|
-
|
|
29270
|
-
|
|
29271
|
-
|
|
29326
|
+
function mergeCircularReferences$1(values, cyclicDepths, utils, meta3) {
|
|
29327
|
+
const depth = cyclicDepths[0];
|
|
29328
|
+
const hierarchy = getMetaDataHierarchy(meta3);
|
|
29329
|
+
for (let mut_index = 1; mut_index < values.length; mut_index++) {
|
|
29330
|
+
if (cyclicDepths[mut_index] !== depth) {
|
|
29331
|
+
const lastCyclicDepth = cyclicDepths.at(-1);
|
|
29332
|
+
return lastCyclicDepth === 0 ? resolveCyclicReferences(values.at(-1), utils, meta3) : hierarchy?.[hierarchy.length - lastCyclicDepth]?.result;
|
|
29333
|
+
}
|
|
29334
|
+
}
|
|
29335
|
+
return hierarchy?.[hierarchy.length - depth]?.result;
|
|
29272
29336
|
}
|
|
29273
|
-
|
|
29274
|
-
|
|
29337
|
+
var mergeFunctions = {
|
|
29338
|
+
mergeRecords: mergeRecords$1,
|
|
29339
|
+
mergeArrays: mergeArrays$1,
|
|
29340
|
+
mergeSets: mergeSets$1,
|
|
29341
|
+
mergeMaps: mergeMaps$1,
|
|
29342
|
+
mergeCircularReferences: mergeCircularReferences$1,
|
|
29343
|
+
mergeOthers: mergeOthers$1
|
|
29344
|
+
};
|
|
29345
|
+
function deepmergeCustom(options = {}, rootMetaData) {
|
|
29346
|
+
const utils = getUtils$1(options, customizedDeepmerge);
|
|
29347
|
+
function customizedDeepmerge(...objects) {
|
|
29348
|
+
return mergeUnknowns(objects, utils, rootMetaData ?? void 0);
|
|
29349
|
+
}
|
|
29350
|
+
return customizedDeepmerge;
|
|
29275
29351
|
}
|
|
29276
|
-
function
|
|
29277
|
-
|
|
29352
|
+
function getUtils$1(options, customizedDeepmerge) {
|
|
29353
|
+
const defaultMergeFns = mergeFunctions;
|
|
29354
|
+
const defaultMetaDataUpd = defaultMetaDataUpdater;
|
|
29355
|
+
return {
|
|
29356
|
+
defaultMergeFunctions: defaultMergeFns,
|
|
29357
|
+
mergeFunctions: resolveCustomMergeFunctions(options, defaultMergeFns),
|
|
29358
|
+
metaDataUpdater: typeof options.metaDataUpdater === "function" ? options.metaDataUpdater : defaultMetaDataUpd,
|
|
29359
|
+
deepmerge: customizedDeepmerge,
|
|
29360
|
+
useImplicitDefaultMerging: options.enableImplicitDefaultMerging ?? false,
|
|
29361
|
+
filterValues: options.filterValues === false ? void 0 : typeof options.filterValues === "function" ? options.filterValues : defaultFilterValues,
|
|
29362
|
+
maxDepth: typeof options.maxDepth === "number" && !Number.isNaN(options.maxDepth) && options.maxDepth >= 0 ? options.maxDepth : 1e3,
|
|
29363
|
+
actions
|
|
29364
|
+
};
|
|
29278
29365
|
}
|
|
29279
|
-
function
|
|
29280
|
-
|
|
29281
|
-
|
|
29282
|
-
|
|
29283
|
-
|
|
29284
|
-
|
|
29285
|
-
|
|
29286
|
-
|
|
29366
|
+
function mergeUnknowns(values, utils, meta3) {
|
|
29367
|
+
const filteredValues = utils.filterValues?.(values, meta3) ?? values;
|
|
29368
|
+
if (filteredValues.length === 0) {
|
|
29369
|
+
return void 0;
|
|
29370
|
+
}
|
|
29371
|
+
const hierarchy = getMetaDataHierarchy(meta3);
|
|
29372
|
+
const currentDepth = hierarchy?.length ?? (typeof meta3 === "number" ? meta3 : meta3?.depth ?? 0);
|
|
29373
|
+
if (utils.maxDepth !== void 0 && currentDepth >= utils.maxDepth) {
|
|
29374
|
+
return mergeOthers(filteredValues, utils, meta3);
|
|
29375
|
+
}
|
|
29376
|
+
if (filteredValues.length === 1) {
|
|
29377
|
+
if (hierarchy !== void 0) {
|
|
29378
|
+
const depth = getCyclicReferenceDepth(filteredValues[0], hierarchy, 0);
|
|
29379
|
+
if (depth > 0) {
|
|
29380
|
+
return hierarchy[hierarchy.length - depth]?.result ?? hierarchy[hierarchy.length - depth]?.parents[0];
|
|
29381
|
+
}
|
|
29382
|
+
}
|
|
29383
|
+
return mergeOthers(filteredValues, utils, meta3);
|
|
29384
|
+
}
|
|
29385
|
+
const type = getObjectType(filteredValues[0]);
|
|
29386
|
+
if (type !== ObjectType.NOT && type !== ObjectType.OTHER) {
|
|
29387
|
+
if (filteredValues.length === 2) {
|
|
29388
|
+
if (getObjectType(filteredValues[1]) !== type) {
|
|
29389
|
+
return mergeOthers(filteredValues, utils, meta3);
|
|
29390
|
+
}
|
|
29391
|
+
const d0 = getCyclicReferenceDepth(filteredValues[0], hierarchy, 0);
|
|
29392
|
+
const d1 = getCyclicReferenceDepth(filteredValues[1], hierarchy, 1);
|
|
29393
|
+
if (d0 !== 0 || d1 !== 0) {
|
|
29394
|
+
return mergeCircularReferences(filteredValues, [d0, d1], utils, meta3);
|
|
29395
|
+
}
|
|
29396
|
+
} else {
|
|
29397
|
+
const cyclicDepths = new Array(filteredValues.length);
|
|
29398
|
+
cyclicDepths[0] = getCyclicReferenceDepth(filteredValues[0], hierarchy, 0);
|
|
29399
|
+
for (let mut_index = 1; mut_index < filteredValues.length; mut_index++) {
|
|
29400
|
+
if (getObjectType(filteredValues[mut_index]) !== type) {
|
|
29401
|
+
return mergeOthers(filteredValues, utils, meta3);
|
|
29402
|
+
}
|
|
29403
|
+
cyclicDepths[mut_index] = getCyclicReferenceDepth(filteredValues[mut_index], hierarchy, mut_index);
|
|
29404
|
+
}
|
|
29405
|
+
if (cyclicDepths.some((depth) => depth !== 0)) {
|
|
29406
|
+
return mergeCircularReferences(filteredValues, cyclicDepths, utils, meta3);
|
|
29407
|
+
}
|
|
29408
|
+
}
|
|
29409
|
+
}
|
|
29410
|
+
switch (type) {
|
|
29411
|
+
case ObjectType.RECORD: {
|
|
29412
|
+
return mergeRecords(filteredValues, utils, meta3);
|
|
29413
|
+
}
|
|
29414
|
+
case ObjectType.ARRAY: {
|
|
29415
|
+
return mergeArrays(filteredValues, utils, meta3);
|
|
29416
|
+
}
|
|
29417
|
+
case ObjectType.SET: {
|
|
29418
|
+
return mergeSets(filteredValues, utils, meta3);
|
|
29419
|
+
}
|
|
29420
|
+
case ObjectType.MAP: {
|
|
29421
|
+
return mergeMaps(filteredValues, utils, meta3);
|
|
29422
|
+
}
|
|
29423
|
+
default: {
|
|
29424
|
+
return mergeOthers(filteredValues, utils, meta3);
|
|
29425
|
+
}
|
|
29426
|
+
}
|
|
29287
29427
|
}
|
|
29288
|
-
function
|
|
29289
|
-
|
|
29290
|
-
|
|
29291
|
-
|
|
29292
|
-
|
|
29293
|
-
|
|
29428
|
+
function mergeRecords(values, utils, meta3) {
|
|
29429
|
+
const result = utils.mergeFunctions.mergeRecords(values, utils, meta3);
|
|
29430
|
+
if (shouldFallbackToDefault(utils, "mergeRecords", result)) {
|
|
29431
|
+
return utils.defaultMergeFunctions.mergeRecords(values, utils, meta3);
|
|
29432
|
+
}
|
|
29433
|
+
return result;
|
|
29294
29434
|
}
|
|
29295
|
-
|
|
29296
|
-
|
|
29297
|
-
|
|
29298
|
-
|
|
29299
|
-
|
|
29300
|
-
|
|
29301
|
-
date: () => date4,
|
|
29302
|
-
number: () => number3,
|
|
29303
|
-
string: () => string3
|
|
29304
|
-
});
|
|
29305
|
-
function string3(params) {
|
|
29306
|
-
return _coercedString(ZodString, params);
|
|
29435
|
+
function mergeArrays(values, utils, meta3) {
|
|
29436
|
+
const result = utils.mergeFunctions.mergeArrays(values, utils, meta3);
|
|
29437
|
+
if (shouldFallbackToDefault(utils, "mergeArrays", result)) {
|
|
29438
|
+
return utils.defaultMergeFunctions.mergeArrays(values);
|
|
29439
|
+
}
|
|
29440
|
+
return result;
|
|
29307
29441
|
}
|
|
29308
|
-
function
|
|
29309
|
-
|
|
29442
|
+
function mergeSets(values, utils, meta3) {
|
|
29443
|
+
const result = utils.mergeFunctions.mergeSets(values, utils, meta3);
|
|
29444
|
+
if (shouldFallbackToDefault(utils, "mergeSets", result)) {
|
|
29445
|
+
return utils.defaultMergeFunctions.mergeSets(values);
|
|
29446
|
+
}
|
|
29447
|
+
return result;
|
|
29310
29448
|
}
|
|
29311
|
-
function
|
|
29312
|
-
|
|
29449
|
+
function mergeMaps(values, utils, meta3) {
|
|
29450
|
+
const result = utils.mergeFunctions.mergeMaps(values, utils, meta3);
|
|
29451
|
+
if (shouldFallbackToDefault(utils, "mergeMaps", result)) {
|
|
29452
|
+
return utils.defaultMergeFunctions.mergeMaps(values, utils, meta3);
|
|
29453
|
+
}
|
|
29454
|
+
return result;
|
|
29313
29455
|
}
|
|
29314
|
-
function
|
|
29315
|
-
|
|
29456
|
+
function mergeCircularReferences(values, cyclicDepths, utils, meta3) {
|
|
29457
|
+
const result = utils.mergeFunctions.mergeCircularReferences(values, cyclicDepths, utils, meta3);
|
|
29458
|
+
if (shouldFallbackToDefault(utils, "mergeCircularReferences", result)) {
|
|
29459
|
+
return utils.defaultMergeFunctions.mergeCircularReferences(values, cyclicDepths, utils, meta3);
|
|
29460
|
+
}
|
|
29461
|
+
return result;
|
|
29316
29462
|
}
|
|
29317
|
-
function
|
|
29318
|
-
|
|
29463
|
+
function mergeOthers(values, utils, meta3) {
|
|
29464
|
+
const result = utils.mergeFunctions.mergeOthers(values, utils, meta3);
|
|
29465
|
+
if (shouldFallbackToDefault(utils, "mergeOthers", result)) {
|
|
29466
|
+
return utils.defaultMergeFunctions.mergeOthers(values);
|
|
29467
|
+
}
|
|
29468
|
+
return result;
|
|
29319
29469
|
}
|
|
29320
29470
|
|
|
29321
|
-
// ../contracts/src/ids.ts
|
|
29322
|
-
var GitHubLogin = external_exports.string().regex(/^(?!-)[A-Za-z0-9-]{1,39}(?<!-)(\[bot\])?$/, "not a GitHub login").brand();
|
|
29323
|
-
var RepoSlug = external_exports.string().regex(/^[A-Za-z0-9-]{1,39}\/[A-Za-z0-9._-]{1,100}$/, "expected owner/name").brand();
|
|
29324
|
-
var CommitSha = external_exports.string().regex(/^[0-9a-f]{40}$/, "expected a full commit SHA").brand();
|
|
29325
|
-
var BotBranch = external_exports.string().regex(/^macaron\/[0-9]+-[a-z0-9-]{1,48}$/, "expected macaron/<number>-<slug>").brand();
|
|
29326
|
-
var Ticket = external_exports.string().regex(/^t_[A-Za-z0-9_-]{32,64}$/, "not a ticket").brand();
|
|
29327
|
-
var Slug = external_exports.string().regex(/^[a-z0-9]+(-[a-z0-9]+)*$/, "expected kebab-case").max(64).brand();
|
|
29328
|
-
var Usd = external_exports.number().nonnegative().max(1e3);
|
|
29329
|
-
|
|
29330
29471
|
// ../contracts/src/mode.ts
|
|
29331
29472
|
var Mode = external_exports.enum(["triage", "plan", "implement", "address_review", "reproduce", "verify", "retro", "review"]);
|
|
29332
29473
|
var Harness = external_exports.enum(["claude", "codex", "opencode"]);
|
|
@@ -29424,7 +29565,12 @@ var GlobalFile = external_exports.strictObject({
|
|
|
29424
29565
|
var ProjectFile = external_exports.strictObject({
|
|
29425
29566
|
project: Slug,
|
|
29426
29567
|
owners: external_exports.string().regex(/^@[A-Za-z0-9-]+\/[A-Za-z0-9-]+$/),
|
|
29427
|
-
|
|
29568
|
+
/**
|
|
29569
|
+
* Deprecated and ignored: who may trigger the bot is an account of the web app (invited, with its
|
|
29570
|
+
* capabilities). Still accepted so open-macaron/config's files parse until it drops them.
|
|
29571
|
+
*/
|
|
29572
|
+
users: external_exports.array(GitHubLogin).optional(),
|
|
29573
|
+
/** Review bots whose comments on the bot's pull requests count, for review loops only. */
|
|
29428
29574
|
bots: external_exports.array(GitHubLogin).default([]),
|
|
29429
29575
|
budget: external_exports.strictObject({ monthUsd: Usd }),
|
|
29430
29576
|
concurrency: external_exports.int().min(1).max(50),
|
|
@@ -29436,7 +29582,6 @@ var RepoConfig = RepoSettings.extend({
|
|
|
29436
29582
|
repo: RepoSlug,
|
|
29437
29583
|
fork: ForkName,
|
|
29438
29584
|
project: Slug,
|
|
29439
|
-
users: external_exports.array(GitHubLogin),
|
|
29440
29585
|
bots: external_exports.array(GitHubLogin)
|
|
29441
29586
|
});
|
|
29442
29587
|
var mergeSettings = deepmergeCustom({ mergeArrays: false });
|