@oomol-lab/open-flow 0.1.0-beta.67 → 0.1.0-beta.69
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/browser/ContentIcon-CsECY5id.js +11868 -0
- package/dist/browser/FlowCanvas-C5X22xQ7.js +22721 -0
- package/dist/browser/{createResourceDialog-BQVD8Rqb.js → createResourceDialog-Di5BBrQv.js} +3 -2
- package/dist/browser/dialog-Bjo-r9B0.js +8862 -0
- package/dist/browser/event-sources.d.ts +4 -2
- package/dist/browser/exportSvg-Cj6Spxx-.js +659 -0
- package/dist/browser/flow-authoring-node.d.ts +3 -1
- package/dist/browser/flow-authoring.js +68 -7
- package/dist/browser/flow-change-schema.d.ts +3 -1
- package/dist/browser/flow-change.d.ts +17 -2
- package/dist/browser/flow-change.js +82 -9
- package/dist/browser/{flowChanges-VB9Y4iy7.js → flowChanges-Dp-rcEJ6.js} +4312 -16566
- package/dist/browser/{flowRunInputEditorStore-DJqmR6Qh.js → flowRunInputEditorStore-ys1-w9GW.js} +2 -1
- package/dist/browser/{flowWorkspace-C1hlTnZq.js → flowWorkspace-CB1QACku.js} +1304 -23538
- package/dist/browser/languages-gYzoQqCi.js +68 -0
- package/dist/browser/licenses.md +24 -0
- package/dist/browser/preview.css +53 -41
- package/dist/browser/preview.js +3974 -4094
- package/dist/browser/{dialog-CS2Vt2if.js → tooltip-CJjYs_2I.js} +710 -9472
- package/dist/browser/{typeScriptSession-D0bjYDeg.js → typeScriptSession-B0hC-C8y.js} +1 -1
- package/dist/browser/ui.css +12 -0
- package/dist/browser/{value-BADHeZ9I.js → value-BbFQZZ_V.js} +1 -68
- package/dist/browser/workbench.css +2840 -2824
- package/dist/browser/workbench.js +437 -337
- package/dist/browser/{workbenchSelect-CpXhjUou.js → workbenchSelect-C3hxUcYm.js} +2 -1
- package/dist/command/index.js +55 -51
- package/dist/common/authoring.d.ts +20 -0
- package/dist/common/authoringSchema.d.ts +243 -0
- package/dist/common/connector-proxy.d.ts +4 -0
- package/dist/common/control-api-conformance.js +173 -36
- package/dist/common/control-api.d.ts +22 -8
- package/dist/common/control-api.js +156 -18
- package/dist/common/control-requests.d.ts +32 -19
- package/dist/common/control-requests.js +2854 -152
- package/dist/common/decision.js +27 -3
- package/dist/common/engine-contract.d.ts +2 -2
- package/dist/common/event-source-definition.d.ts +34 -16
- package/dist/common/event-source.d.ts +63 -5
- package/dist/common/event-source.js +5744 -261
- package/dist/common/event-sources.d.ts +99 -6
- package/dist/common/flow-encoding.js +49 -10
- package/dist/common/flow-errorHandling.d.ts +36 -0
- package/dist/common/flow-graph.d.ts +4 -2
- package/dist/common/flow-retry.d.ts +19 -0
- package/dist/common/flow-semantics.js +94 -10
- package/dist/common/{fr-Du5gv3kM.js → fr-CNTSedYU.js} +259 -18
- package/dist/common/integration-trigger.d.ts +1 -1
- package/dist/common/integration-trigger.js +27 -3
- package/dist/common/{ja-D2wyPdTF.js → ja-CxQBHr2J.js} +259 -18
- package/dist/common/{ko-Cuu2AOaC.js → ko-D1Exiv1h.js} +259 -18
- package/dist/common/mcp.d.ts +30 -0
- package/dist/common/mcp.js +158 -20
- package/dist/common/openapi.js +27 -3
- package/dist/common/poll-trigger.js +27 -3
- package/dist/common/provider-triggers.d.ts +0 -2
- package/dist/common/provider-triggers.js +358 -155
- package/dist/common/{ru-BjI_JSsx.js → ru-BzLZv0B7.js} +259 -18
- package/dist/common/run-events.d.ts +2 -0
- package/dist/common/run-events.js +4 -2
- package/dist/common/runtime-contract.d.ts +1 -0
- package/dist/common/runtime-contract.js +4 -4
- package/dist/common/scheduler.d.ts +13 -2
- package/dist/common/scheduler.js +288 -98
- package/dist/common/webhook-trigger.js +27 -3
- package/dist/common/workflow.js +27 -3
- package/dist/common/{zh-CN-CnnXkzLh.js → zh-CN-Dg_xSGde.js} +259 -18
- package/dist/common/{zh-TW-CJnR2dgF.js → zh-TW-oxuLwsV0.js} +259 -18
- package/dist/index.d.ts +1 -0
- package/package.json +1 -1
- package/dist/common/event-source-feishu.d.ts +0 -3
- package/dist/common/feishu-events.d.ts +0 -19
- package/dist/common/feishu-subscriptions.d.ts +0 -6
|
@@ -1,3 +1,15 @@
|
|
|
1
|
+
//#region \0rolldown/runtime.js
|
|
2
|
+
var __defProp = Object.defineProperty;
|
|
3
|
+
var __exportAll = (all, no_symbols) => {
|
|
4
|
+
let target = {};
|
|
5
|
+
for (var name in all) __defProp(target, name, {
|
|
6
|
+
get: all[name],
|
|
7
|
+
enumerable: true
|
|
8
|
+
});
|
|
9
|
+
if (!no_symbols) __defProp(target, Symbol.toStringTag, { value: "Module" });
|
|
10
|
+
return target;
|
|
11
|
+
};
|
|
12
|
+
//#endregion
|
|
1
13
|
//#region ../../node_modules/.bun/zod@4.6.5/node_modules/zod/v4/core/util.js
|
|
2
14
|
function getEnumValues(entries) {
|
|
3
15
|
const numericValues = Object.values(entries).filter((v) => typeof v === "number");
|
|
@@ -27,7 +39,7 @@ var Cached = class {
|
|
|
27
39
|
function cached(getter) {
|
|
28
40
|
return new Cached(getter);
|
|
29
41
|
}
|
|
30
|
-
function nullish(input) {
|
|
42
|
+
function nullish$1(input) {
|
|
31
43
|
return input === null || input === void 0;
|
|
32
44
|
}
|
|
33
45
|
function cleanRegex(source) {
|
|
@@ -170,6 +182,14 @@ var propertyKeyTypes = /* @__PURE__*/ new Set([
|
|
|
170
182
|
"number",
|
|
171
183
|
"symbol"
|
|
172
184
|
]);
|
|
185
|
+
var primitiveTypes = /* @__PURE__*/ new Set([
|
|
186
|
+
"string",
|
|
187
|
+
"number",
|
|
188
|
+
"bigint",
|
|
189
|
+
"boolean",
|
|
190
|
+
"symbol",
|
|
191
|
+
"undefined"
|
|
192
|
+
]);
|
|
173
193
|
function escapeRegex(str) {
|
|
174
194
|
return str.replace(/[.*+?^${}()|[\]\\]/g, "\\$&");
|
|
175
195
|
}
|
|
@@ -346,6 +366,12 @@ function finalizeIssue(iss, ctx, config) {
|
|
|
346
366
|
if (ctx?.reportInput) full.input = iss.input;
|
|
347
367
|
return full;
|
|
348
368
|
}
|
|
369
|
+
function getSizableOrigin(input) {
|
|
370
|
+
if (input instanceof Set) return "set";
|
|
371
|
+
if (input instanceof Map) return "map";
|
|
372
|
+
if (input instanceof File) return "file";
|
|
373
|
+
return "unknown";
|
|
374
|
+
}
|
|
349
375
|
var highSurrogate = /[\uD800-\uDBFF]/;
|
|
350
376
|
function codePointLength(str) {
|
|
351
377
|
const units = str.length;
|
|
@@ -697,7 +723,7 @@ var initializer$1 = (inst, def) => {
|
|
|
697
723
|
}
|
|
698
724
|
};
|
|
699
725
|
var $ZodError = $constructor("$ZodError", initializer$1);
|
|
700
|
-
$constructor("$ZodError", initializer$1, void 0, { Parent: Error });
|
|
726
|
+
var $ZodRealError = $constructor("$ZodError", initializer$1, void 0, { Parent: Error });
|
|
701
727
|
/** Get-or-create `obj[key]` as an own data property. A path segment naming an inherited member
|
|
702
728
|
* ("toString", "constructor") would otherwise read through to the prototype, and assigning
|
|
703
729
|
* "__proto__" would hit the setter instead of creating a key. */
|
|
@@ -788,6 +814,7 @@ var _parse = (_Err) => {
|
|
|
788
814
|
};
|
|
789
815
|
return fn;
|
|
790
816
|
};
|
|
817
|
+
var parse$1 = /* @__PURE__*/ _parse($ZodRealError);
|
|
791
818
|
var _parseAsync = (_Err) => {
|
|
792
819
|
const fn = async (schema, value, _ctx, params) => {
|
|
793
820
|
const ctx = _ctx ? {
|
|
@@ -808,6 +835,7 @@ var _parseAsync = (_Err) => {
|
|
|
808
835
|
};
|
|
809
836
|
return fn;
|
|
810
837
|
};
|
|
838
|
+
var parseAsync$1 = /* @__PURE__*/ _parseAsync($ZodRealError);
|
|
811
839
|
var _safeParse = (_Err) => (schema, value, _ctx) => {
|
|
812
840
|
const ctx = _ctx ? {
|
|
813
841
|
..._ctx,
|
|
@@ -965,45 +993,133 @@ var _safeDecodeAsync = (_Err) => async (schema, value, _ctx) => {
|
|
|
965
993
|
};
|
|
966
994
|
//#endregion
|
|
967
995
|
//#region ../../node_modules/.bun/zod@4.6.5/node_modules/zod/v4/core/regexes.js
|
|
996
|
+
var regexes_exports = /* @__PURE__ */ __exportAll({
|
|
997
|
+
anyString: () => anyString,
|
|
998
|
+
base64: () => base64$1,
|
|
999
|
+
base64url: () => base64url$1,
|
|
1000
|
+
bigint: () => bigint$1,
|
|
1001
|
+
boolean: () => boolean$1,
|
|
1002
|
+
browserEmail: () => browserEmail,
|
|
1003
|
+
cidrv4: () => cidrv4$1,
|
|
1004
|
+
cidrv6: () => cidrv6$1,
|
|
1005
|
+
creditCard: () => creditCard$1,
|
|
1006
|
+
cuid: () => cuid$1,
|
|
1007
|
+
cuid2: () => cuid2$1,
|
|
1008
|
+
currencyCode: () => currencyCode$1,
|
|
1009
|
+
date: () => date$3,
|
|
1010
|
+
datetime: () => datetime$1,
|
|
1011
|
+
domain: () => domain,
|
|
1012
|
+
duration: () => duration$1,
|
|
1013
|
+
e164: () => e164$1,
|
|
1014
|
+
email: () => email$1,
|
|
1015
|
+
emoji: () => emoji$1,
|
|
1016
|
+
extendedDuration: () => extendedDuration,
|
|
1017
|
+
guid: () => guid$1,
|
|
1018
|
+
hex: () => hex$1,
|
|
1019
|
+
hostname: () => hostname$1,
|
|
1020
|
+
html5Email: () => html5Email,
|
|
1021
|
+
httpProtocol: () => httpProtocol,
|
|
1022
|
+
iban: () => iban$1,
|
|
1023
|
+
idnEmail: () => idnEmail,
|
|
1024
|
+
integer: () => integer,
|
|
1025
|
+
ipv4: () => ipv4$1,
|
|
1026
|
+
ipv6: () => ipv6$1,
|
|
1027
|
+
ksuid: () => ksuid$1,
|
|
1028
|
+
lowercase: () => lowercase,
|
|
1029
|
+
mac: () => mac$1,
|
|
1030
|
+
md5_base64: () => md5_base64,
|
|
1031
|
+
md5_base64url: () => md5_base64url,
|
|
1032
|
+
md5_hex: () => md5_hex,
|
|
1033
|
+
nanoid: () => nanoid$1,
|
|
1034
|
+
nanoidOfLength: () => nanoidOfLength,
|
|
1035
|
+
null: () => _null$2,
|
|
1036
|
+
number: () => number$1,
|
|
1037
|
+
rfc5322Email: () => rfc5322Email,
|
|
1038
|
+
sha1_base64: () => sha1_base64,
|
|
1039
|
+
sha1_base64url: () => sha1_base64url,
|
|
1040
|
+
sha1_hex: () => sha1_hex,
|
|
1041
|
+
sha256_base64: () => sha256_base64,
|
|
1042
|
+
sha256_base64url: () => sha256_base64url,
|
|
1043
|
+
sha256_hex: () => sha256_hex,
|
|
1044
|
+
sha384_base64: () => sha384_base64,
|
|
1045
|
+
sha384_base64url: () => sha384_base64url,
|
|
1046
|
+
sha384_hex: () => sha384_hex,
|
|
1047
|
+
sha512_base64: () => sha512_base64,
|
|
1048
|
+
sha512_base64url: () => sha512_base64url,
|
|
1049
|
+
sha512_hex: () => sha512_hex,
|
|
1050
|
+
string: () => string$1,
|
|
1051
|
+
time: () => time$2,
|
|
1052
|
+
ulid: () => ulid$1,
|
|
1053
|
+
undefined: () => _undefined$2,
|
|
1054
|
+
unicodeEmail: () => unicodeEmail,
|
|
1055
|
+
uppercase: () => uppercase,
|
|
1056
|
+
uuid: () => uuid$1,
|
|
1057
|
+
uuid4: () => uuid4,
|
|
1058
|
+
uuid6: () => uuid6,
|
|
1059
|
+
uuid7: () => uuid7,
|
|
1060
|
+
xid: () => xid$1
|
|
1061
|
+
});
|
|
968
1062
|
/**
|
|
969
1063
|
* @deprecated CUID v1 is deprecated by its authors due to information leakage
|
|
970
1064
|
* (timestamps embedded in the id). Use {@link cuid2} instead.
|
|
971
1065
|
* See https://github.com/paralleldrive/cuid.
|
|
972
1066
|
*/
|
|
973
|
-
var cuid = /^[cC][0-9a-z]{6,}$/;
|
|
974
|
-
var cuid2 = /^[0-9a-z]+$/;
|
|
975
|
-
var ulid = /^[0-7][0-9A-HJKMNP-TV-Za-hjkmnp-tv-z]{25}$/;
|
|
976
|
-
var xid = /^[0-9a-vA-V]{20}$/;
|
|
977
|
-
var ksuid = /^[A-Za-z0-9]{27}$/;
|
|
978
|
-
var nanoid = /^[a-zA-Z0-9_-]{21}$/;
|
|
1067
|
+
var cuid$1 = /^[cC][0-9a-z]{6,}$/;
|
|
1068
|
+
var cuid2$1 = /^[0-9a-z]+$/;
|
|
1069
|
+
var ulid$1 = /^[0-7][0-9A-HJKMNP-TV-Za-hjkmnp-tv-z]{25}$/;
|
|
1070
|
+
var xid$1 = /^[0-9a-vA-V]{20}$/;
|
|
1071
|
+
var ksuid$1 = /^[A-Za-z0-9]{27}$/;
|
|
1072
|
+
var nanoid$1 = /^[a-zA-Z0-9_-]{21}$/;
|
|
979
1073
|
function nanoidOfLength(length) {
|
|
980
1074
|
return new RegExp(`^[a-zA-Z0-9_-]{${length}}$`);
|
|
981
1075
|
}
|
|
982
1076
|
/** ISO 8601-1 duration regex. Does not support the 8601-2 extensions like negative durations or fractional/negative components. */
|
|
983
|
-
var duration = /^P(?:(\d+W)|(?!.*W)(?=\d|T\d)(\d+Y)?(\d+M)?(\d+D)?(T(?=\d)(\d+H)?(\d+M)?(\d+([.,]\d+)?S)?)?)$/;
|
|
1077
|
+
var duration$1 = /^P(?:(\d+W)|(?!.*W)(?=\d|T\d)(\d+Y)?(\d+M)?(\d+D)?(T(?=\d)(\d+H)?(\d+M)?(\d+([.,]\d+)?S)?)?)$/;
|
|
1078
|
+
/** Implements ISO 8601-2 extensions like explicit +- prefixes, mixing weeks with other units, and fractional/negative components. */
|
|
1079
|
+
var extendedDuration = /^[-+]?P(?!$)(?:(?:[-+]?\d+Y)|(?:[-+]?\d+[.,]\d+Y$))?(?:(?:[-+]?\d+M)|(?:[-+]?\d+[.,]\d+M$))?(?:(?:[-+]?\d+W)|(?:[-+]?\d+[.,]\d+W$))?(?:(?:[-+]?\d+D)|(?:[-+]?\d+[.,]\d+D$))?(?:T(?=[\d+-])(?:(?:[-+]?\d+H)|(?:[-+]?\d+[.,]\d+H$))?(?:(?:[-+]?\d+M)|(?:[-+]?\d+[.,]\d+M$))?(?:[-+]?\d+(?:[.,]\d+)?S)?)??$/;
|
|
984
1080
|
/** A regex for any UUID-like identifier: 8-4-4-4-12 hex pattern */
|
|
985
|
-
var guid = /^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12})$/;
|
|
1081
|
+
var guid$1 = /^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12})$/;
|
|
986
1082
|
/** Returns a regex for validating an RFC 9562/4122 UUID.
|
|
987
1083
|
*
|
|
988
1084
|
* @param version Optionally specify a version 1-8. If no version is specified, all versions are supported. */
|
|
989
|
-
var uuid = (version) => {
|
|
1085
|
+
var uuid$1 = (version) => {
|
|
990
1086
|
if (!version) return /^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$/;
|
|
991
1087
|
return new RegExp(`^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-${version}[0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12})$`);
|
|
992
1088
|
};
|
|
1089
|
+
var uuid4 = /*@__PURE__*/ uuid$1(4);
|
|
1090
|
+
var uuid6 = /*@__PURE__*/ uuid$1(6);
|
|
1091
|
+
var uuid7 = /*@__PURE__*/ uuid$1(7);
|
|
993
1092
|
/** Practical email validation */
|
|
994
|
-
var email = /^(?:[A-Za-z0-9_'+\-]+\.)*[A-Za-z0-9_'+\-]*[A-Za-z0-9_+-]@(?:[A-Za-z0-9][A-Za-z0-9\-]*\.)+[A-Za-z]{2,}$/;
|
|
1093
|
+
var email$1 = /^(?:[A-Za-z0-9_'+\-]+\.)*[A-Za-z0-9_'+\-]*[A-Za-z0-9_+-]@(?:[A-Za-z0-9][A-Za-z0-9\-]*\.)+[A-Za-z]{2,}$/;
|
|
1094
|
+
/** Equivalent to the HTML5 input[type=email] validation implemented by browsers. Source: https://developer.mozilla.org/en-US/docs/Web/HTML/Element/input/email */
|
|
1095
|
+
var html5Email = /^[a-zA-Z0-9.!#$%&'*+/=?^_`{|}~-]+@[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?(?:\.[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?)*$/;
|
|
1096
|
+
/** The classic emailregex.com regex for RFC 5322-compliant emails */
|
|
1097
|
+
var rfc5322Email = /^(([^<>()\[\]\\.,;:\s@"]+(\.[^<>()\[\]\\.,;:\s@"]+)*)|(".+"))@((\[[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}])|(([a-zA-Z\-0-9]+\.)+[a-zA-Z]{2,}))$/;
|
|
1098
|
+
/** A loose regex that allows Unicode characters, enforces length limits, and that's about it. */
|
|
1099
|
+
var unicodeEmail = /^[^\s@"]{1,64}@[^\s@]{1,255}$/u;
|
|
1100
|
+
var idnEmail = unicodeEmail;
|
|
1101
|
+
var browserEmail = /^[a-zA-Z0-9.!#$%&'*+/=?^_`{|}~-]+@[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?(?:\.[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?)*$/;
|
|
995
1102
|
var _emoji$1 = `^(?=[\\s\\S]*[\\p{Extended_Pictographic}\\p{Regional_Indicator}\\u20E3])[\\p{Extended_Pictographic}\\p{Emoji_Component}]+$`;
|
|
996
|
-
function emoji() {
|
|
1103
|
+
function emoji$1() {
|
|
997
1104
|
return new RegExp(_emoji$1, "u");
|
|
998
1105
|
}
|
|
999
|
-
var ipv4 = /^(?:(?:25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])\.){3}(?:25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])$/;
|
|
1000
|
-
var ipv6 = /^(([0-9a-fA-F]{1,4}:){7}[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,7}:|([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}|([0-9a-fA-F]{1,4}:){1,4}(:[0-9a-fA-F]{1,4}){1,3}|([0-9a-fA-F]{1,4}:){1,3}(:[0-9a-fA-F]{1,4}){1,4}|([0-9a-fA-F]{1,4}:){1,2}(:[0-9a-fA-F]{1,4}){1,5}|[0-9a-fA-F]{1,4}:((:[0-9a-fA-F]{1,4}){1,6})|:((:[0-9a-fA-F]{1,4}){1,7}|:))$/;
|
|
1001
|
-
var
|
|
1002
|
-
|
|
1003
|
-
|
|
1004
|
-
|
|
1106
|
+
var ipv4$1 = /^(?:(?:25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])\.){3}(?:25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])$/;
|
|
1107
|
+
var ipv6$1 = /^(([0-9a-fA-F]{1,4}:){7}[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,7}:|([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}|([0-9a-fA-F]{1,4}:){1,4}(:[0-9a-fA-F]{1,4}){1,3}|([0-9a-fA-F]{1,4}:){1,3}(:[0-9a-fA-F]{1,4}){1,4}|([0-9a-fA-F]{1,4}:){1,2}(:[0-9a-fA-F]{1,4}){1,5}|[0-9a-fA-F]{1,4}:((:[0-9a-fA-F]{1,4}){1,6})|:((:[0-9a-fA-F]{1,4}){1,7}|:))$/;
|
|
1108
|
+
var mac$1 = (delimiter) => {
|
|
1109
|
+
const escapedDelim = escapeRegex(delimiter ?? ":");
|
|
1110
|
+
return new RegExp(`^(?:[0-9A-F]{2}${escapedDelim}){5}[0-9A-F]{2}$|^(?:[0-9a-f]{2}${escapedDelim}){5}[0-9a-f]{2}$`);
|
|
1111
|
+
};
|
|
1112
|
+
var cidrv4$1 = /^((25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])\.){3}(25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])\/([0-9]|[1-2][0-9]|3[0-2])$/;
|
|
1113
|
+
var cidrv6$1 = /^(([0-9a-fA-F]{1,4}:){7}[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,7}:|([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}|([0-9a-fA-F]{1,4}:){1,4}(:[0-9a-fA-F]{1,4}){1,3}|([0-9a-fA-F]{1,4}:){1,3}(:[0-9a-fA-F]{1,4}){1,4}|([0-9a-fA-F]{1,4}:){1,2}(:[0-9a-fA-F]{1,4}){1,5}|[0-9a-fA-F]{1,4}:((:[0-9a-fA-F]{1,4}){1,6})|:((:[0-9a-fA-F]{1,4}){1,7}|:))\/(12[0-8]|1[01][0-9]|[1-9]?[0-9])$/;
|
|
1114
|
+
var base64$1 = /^$|^(?:[0-9a-zA-Z+/]{4})*(?:(?:[0-9a-zA-Z+/]{2}==)|(?:[0-9a-zA-Z+/]{3}=))?$/;
|
|
1115
|
+
var base64url$1 = /^(?:[A-Za-z0-9_-]{4})*(?:[A-Za-z0-9_-]{2,3})?$/;
|
|
1116
|
+
var hostname$1 = /^(?=.{1,253}\.?$)[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?(?:\.[a-zA-Z0-9](?:[-0-9a-zA-Z]{0,61}[0-9a-zA-Z])?)*\.?$/;
|
|
1117
|
+
var domain = /^(?=.{1,253}$)([a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?\.)+[a-zA-Z]{2,63}$/;
|
|
1005
1118
|
var httpProtocol = /^https?$/;
|
|
1006
|
-
var e164 = /^\+[1-9]\d{6,14}$/;
|
|
1119
|
+
var e164$1 = /^\+[1-9]\d{6,14}$/;
|
|
1120
|
+
var creditCard$1 = /^\d(?:[ -]?\d){11,18}$/;
|
|
1121
|
+
var currencyCode$1 = /^(?:AED|AFN|ALL|AMD|AOA|ARS|AUD|AWG|AZN|BAM|BBD|BDT|BHD|BIF|BMD|BND|BOB|BOV|BRL|BSD|BTN|BWP|BYN|BZD|CAD|CDF|CHE|CHF|CHW|CLF|CLP|CNY|COP|COU|CRC|CUP|CVE|CZK|DJF|DKK|DOP|DZD|EGP|ERN|ETB|EUR|FJD|FKP|GBP|GEL|GHS|GIP|GMD|GNF|GTQ|GYD|HKD|HNL|HTG|HUF|IDR|ILS|INR|IQD|IRR|ISK|JMD|JOD|JPY|KES|KGS|KHR|KMF|KPW|KRW|KWD|KYD|KZT|LAK|LBP|LKR|LRD|LSL|LYD|MAD|MDL|MGA|MKD|MMK|MNT|MOP|MRU|MUR|MVR|MWK|MXN|MXV|MYR|MZN|NAD|NGN|NIO|NOK|NPR|NZD|OMR|PAB|PEN|PGK|PHP|PKR|PLN|PYG|QAR|RON|RSD|RUB|RWF|SAR|SBD|SCR|SDG|SEK|SGD|SHP|SLE|SOS|SRD|SSP|STN|SVC|SYP|SZL|THB|TJS|TMT|TND|TOP|TRY|TTD|TWD|TZS|UAH|UGX|USD|USN|UYI|UYU|UYW|UZS|VED|VES|VND|VUV|WST|XAD|XAF|XAG|XAU|XBA|XBB|XBC|XBD|XCD|XCG|XDR|XOF|XPD|XPF|XPT|XSU|XTS|XUA|XXX|YER|ZAR|ZMW|ZWG)$/;
|
|
1122
|
+
var iban$1 = /^[A-Z]{2}(?!00|01|99)\d{2}[A-Z0-9]{11,30}$/;
|
|
1007
1123
|
var dateSource = `(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))`;
|
|
1008
1124
|
/** Anchors a pattern source. The interpolation lives here rather than at the call site because
|
|
1009
1125
|
* esbuild will not drop a `@__PURE__` call whose own argument interpolates a variable, but it
|
|
@@ -1011,15 +1127,15 @@ var dateSource = `(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][
|
|
|
1011
1127
|
function anchor(source) {
|
|
1012
1128
|
return new RegExp(`^${source}$`);
|
|
1013
1129
|
}
|
|
1014
|
-
var date$
|
|
1130
|
+
var date$3 = /*@__PURE__*/ anchor(dateSource);
|
|
1015
1131
|
function timeSource(args) {
|
|
1016
1132
|
const hhmm = `(?:[01]\\d|2[0-3]):[0-5]\\d`;
|
|
1017
1133
|
return typeof args.precision === "number" ? args.precision === -1 ? `${hhmm}` : args.precision === 0 ? `${hhmm}:[0-5]\\d` : `${hhmm}:[0-5]\\d\\.\\d{${args.precision}}` : args.seconds ? `${hhmm}:[0-5]\\d(?:\\.\\d+)?` : `${hhmm}(?::[0-5]\\d(?:\\.\\d+)?)?`;
|
|
1018
1134
|
}
|
|
1019
|
-
function time$
|
|
1135
|
+
function time$2(args) {
|
|
1020
1136
|
return new RegExp(`^${timeSource(args)}$`);
|
|
1021
1137
|
}
|
|
1022
|
-
function datetime(args) {
|
|
1138
|
+
function datetime$1(args) {
|
|
1023
1139
|
const opts = ["Z"];
|
|
1024
1140
|
if (args.offset) opts.push(`([+-](?:[01]\\d|2[0-3]):[0-5]\\d)`);
|
|
1025
1141
|
const qualified = `${timeSource({
|
|
@@ -1030,12 +1146,40 @@ function datetime(args) {
|
|
|
1030
1146
|
return new RegExp(`^${dateSource}T(?:${timeRegex})$`);
|
|
1031
1147
|
}
|
|
1032
1148
|
var anyString = /^[\s\S]{0,}$/;
|
|
1149
|
+
var string$1 = (params) => {
|
|
1150
|
+
const regex = params ? `[\\s\\S]{${params?.minimum ?? 0},${params?.maximum ?? ""}}` : `[\\s\\S]*`;
|
|
1151
|
+
return new RegExp(`^${regex}$`);
|
|
1152
|
+
};
|
|
1153
|
+
var bigint$1 = /^-?\d+n?$/;
|
|
1033
1154
|
var integer = /^-?\d+$/;
|
|
1034
1155
|
var number$1 = /^-?\d+(?:\.\d+)?$/;
|
|
1035
1156
|
var boolean$1 = /^(?:true|false)$/i;
|
|
1036
1157
|
var _null$2 = /^null$/i;
|
|
1158
|
+
var _undefined$2 = /^undefined$/i;
|
|
1037
1159
|
var lowercase = /^[^A-Z]*$/;
|
|
1038
1160
|
var uppercase = /^[^a-z]*$/;
|
|
1161
|
+
var hex$1 = /^[0-9a-fA-F]*$/;
|
|
1162
|
+
function fixedBase64(bodyLength, padding) {
|
|
1163
|
+
return new RegExp(`^[A-Za-z0-9+/]{${bodyLength}}${padding}$`);
|
|
1164
|
+
}
|
|
1165
|
+
function fixedBase64url(length) {
|
|
1166
|
+
return new RegExp(`^[A-Za-z0-9_-]{${length}}$`);
|
|
1167
|
+
}
|
|
1168
|
+
var md5_hex = /^[0-9a-fA-F]{32}$/;
|
|
1169
|
+
var md5_base64 = /*@__PURE__*/ fixedBase64(22, "==");
|
|
1170
|
+
var md5_base64url = /*@__PURE__*/ fixedBase64url(22);
|
|
1171
|
+
var sha1_hex = /^[0-9a-fA-F]{40}$/;
|
|
1172
|
+
var sha1_base64 = /*@__PURE__*/ fixedBase64(27, "=");
|
|
1173
|
+
var sha1_base64url = /*@__PURE__*/ fixedBase64url(27);
|
|
1174
|
+
var sha256_hex = /^[0-9a-fA-F]{64}$/;
|
|
1175
|
+
var sha256_base64 = /*@__PURE__*/ fixedBase64(43, "=");
|
|
1176
|
+
var sha256_base64url = /*@__PURE__*/ fixedBase64url(43);
|
|
1177
|
+
var sha384_hex = /^[0-9a-fA-F]{96}$/;
|
|
1178
|
+
var sha384_base64 = /*@__PURE__*/ fixedBase64(64, "");
|
|
1179
|
+
var sha384_base64url = /*@__PURE__*/ fixedBase64url(64);
|
|
1180
|
+
var sha512_hex = /^[0-9a-fA-F]{128}$/;
|
|
1181
|
+
var sha512_base64 = /*@__PURE__*/ fixedBase64(86, "==");
|
|
1182
|
+
var sha512_base64url = /*@__PURE__*/ fixedBase64url(86);
|
|
1039
1183
|
//#endregion
|
|
1040
1184
|
//#region ../../node_modules/.bun/zod@4.6.5/node_modules/zod/v4/core/checks.js
|
|
1041
1185
|
var $ZodCheck = /*@__PURE__*/ $constructor("$ZodCheck", (inst, def) => {
|
|
@@ -1044,10 +1188,15 @@ var $ZodCheck = /*@__PURE__*/ $constructor("$ZodCheck", (inst, def) => {
|
|
|
1044
1188
|
inst._zod.def = def;
|
|
1045
1189
|
(_a = inst._zod).onattach ?? (_a.onattach = []);
|
|
1046
1190
|
});
|
|
1191
|
+
/** Default `when` for size-based checks: run only on non-nullish values with a `size`. */
|
|
1192
|
+
var _whenHasSize = (payload) => {
|
|
1193
|
+
const val = payload.value;
|
|
1194
|
+
return !nullish$1(val) && val.size !== void 0;
|
|
1195
|
+
};
|
|
1047
1196
|
/** Default `when` for length-based checks: run only on non-nullish values with a `length`. */
|
|
1048
1197
|
var _whenHasLength = (payload) => {
|
|
1049
1198
|
const val = payload.value;
|
|
1050
|
-
return !nullish(val) && val.length !== void 0;
|
|
1199
|
+
return !nullish$1(val) && val.length !== void 0;
|
|
1051
1200
|
};
|
|
1052
1201
|
var numericOriginMap = {
|
|
1053
1202
|
number: "number",
|
|
@@ -1165,6 +1314,93 @@ var $ZodCheckNumberFormat = /*@__PURE__*/ $constructor("$ZodCheckNumberFormat",
|
|
|
1165
1314
|
});
|
|
1166
1315
|
};
|
|
1167
1316
|
});
|
|
1317
|
+
var $ZodCheckBigIntFormat = /*@__PURE__*/ $constructor("$ZodCheckBigIntFormat", (inst, def) => {
|
|
1318
|
+
$ZodCheck.init(inst, def);
|
|
1319
|
+
const [minimum, maximum] = BIGINT_FORMAT_RANGES[def.format];
|
|
1320
|
+
inst._zod.check = (payload) => {
|
|
1321
|
+
const input = payload.value;
|
|
1322
|
+
if (input < minimum) payload.issues.push({
|
|
1323
|
+
origin: "bigint",
|
|
1324
|
+
input,
|
|
1325
|
+
code: "too_small",
|
|
1326
|
+
minimum,
|
|
1327
|
+
inclusive: true,
|
|
1328
|
+
inst,
|
|
1329
|
+
continue: !def.abort
|
|
1330
|
+
});
|
|
1331
|
+
if (input > maximum) payload.issues.push({
|
|
1332
|
+
origin: "bigint",
|
|
1333
|
+
input,
|
|
1334
|
+
code: "too_big",
|
|
1335
|
+
maximum,
|
|
1336
|
+
inclusive: true,
|
|
1337
|
+
inst,
|
|
1338
|
+
continue: !def.abort
|
|
1339
|
+
});
|
|
1340
|
+
};
|
|
1341
|
+
});
|
|
1342
|
+
var $ZodCheckMaxSize = /*@__PURE__*/ $constructor("$ZodCheckMaxSize", (inst, def) => {
|
|
1343
|
+
var _a;
|
|
1344
|
+
$ZodCheck.init(inst, def);
|
|
1345
|
+
(_a = inst._zod.def).when ?? (_a.when = _whenHasSize);
|
|
1346
|
+
inst._zod.check = (payload) => {
|
|
1347
|
+
const input = payload.value;
|
|
1348
|
+
if (input.size <= def.maximum) return;
|
|
1349
|
+
payload.issues.push({
|
|
1350
|
+
origin: getSizableOrigin(input),
|
|
1351
|
+
code: "too_big",
|
|
1352
|
+
maximum: def.maximum,
|
|
1353
|
+
inclusive: true,
|
|
1354
|
+
input,
|
|
1355
|
+
inst,
|
|
1356
|
+
continue: !def.abort
|
|
1357
|
+
});
|
|
1358
|
+
};
|
|
1359
|
+
});
|
|
1360
|
+
var $ZodCheckMinSize = /*@__PURE__*/ $constructor("$ZodCheckMinSize", (inst, def) => {
|
|
1361
|
+
var _a;
|
|
1362
|
+
$ZodCheck.init(inst, def);
|
|
1363
|
+
(_a = inst._zod.def).when ?? (_a.when = _whenHasSize);
|
|
1364
|
+
inst._zod.check = (payload) => {
|
|
1365
|
+
const input = payload.value;
|
|
1366
|
+
if (input.size >= def.minimum) return;
|
|
1367
|
+
payload.issues.push({
|
|
1368
|
+
origin: getSizableOrigin(input),
|
|
1369
|
+
code: "too_small",
|
|
1370
|
+
minimum: def.minimum,
|
|
1371
|
+
inclusive: true,
|
|
1372
|
+
input,
|
|
1373
|
+
inst,
|
|
1374
|
+
continue: !def.abort
|
|
1375
|
+
});
|
|
1376
|
+
};
|
|
1377
|
+
});
|
|
1378
|
+
var $ZodCheckSizeEquals = /*@__PURE__*/ $constructor("$ZodCheckSizeEquals", (inst, def) => {
|
|
1379
|
+
var _a;
|
|
1380
|
+
$ZodCheck.init(inst, def);
|
|
1381
|
+
(_a = inst._zod.def).when ?? (_a.when = _whenHasSize);
|
|
1382
|
+
inst._zod.check = (payload) => {
|
|
1383
|
+
const input = payload.value;
|
|
1384
|
+
const size = input.size;
|
|
1385
|
+
if (size === def.size) return;
|
|
1386
|
+
const tooBig = size > def.size;
|
|
1387
|
+
payload.issues.push({
|
|
1388
|
+
origin: getSizableOrigin(input),
|
|
1389
|
+
...tooBig ? {
|
|
1390
|
+
code: "too_big",
|
|
1391
|
+
maximum: def.size
|
|
1392
|
+
} : {
|
|
1393
|
+
code: "too_small",
|
|
1394
|
+
minimum: def.size
|
|
1395
|
+
},
|
|
1396
|
+
inclusive: true,
|
|
1397
|
+
exact: true,
|
|
1398
|
+
input: payload.value,
|
|
1399
|
+
inst,
|
|
1400
|
+
continue: !def.abort
|
|
1401
|
+
});
|
|
1402
|
+
};
|
|
1403
|
+
});
|
|
1168
1404
|
var $ZodCheckMaxLength = /*@__PURE__*/ $constructor("$ZodCheckMaxLength", (inst, def) => {
|
|
1169
1405
|
var _a;
|
|
1170
1406
|
$ZodCheck.init(inst, def);
|
|
@@ -1326,6 +1562,66 @@ var $ZodCheckEndsWith = /*@__PURE__*/ $constructor("$ZodCheckEndsWith", (inst, d
|
|
|
1326
1562
|
});
|
|
1327
1563
|
};
|
|
1328
1564
|
});
|
|
1565
|
+
function handleCheckPropertyResult(result, payload, property) {
|
|
1566
|
+
if (result.issues.length) payload.issues.push(...prefixIssues(property, result.issues));
|
|
1567
|
+
}
|
|
1568
|
+
var $ZodCheckProperty = /*@__PURE__*/ $constructor("$ZodCheckProperty", (inst, def) => {
|
|
1569
|
+
$ZodCheck.init(inst, def);
|
|
1570
|
+
inst._zod.check = (payload) => {
|
|
1571
|
+
const result = def.schema._zod.run({
|
|
1572
|
+
value: payload.value[def.property],
|
|
1573
|
+
issues: []
|
|
1574
|
+
}, {});
|
|
1575
|
+
if (result instanceof Promise) return result.then((result) => handleCheckPropertyResult(result, payload, def.property));
|
|
1576
|
+
handleCheckPropertyResult(result, payload, def.property);
|
|
1577
|
+
};
|
|
1578
|
+
});
|
|
1579
|
+
var $ZodCheckProperties = /*@__PURE__*/ $constructor("$ZodCheckProperties", (inst, def) => {
|
|
1580
|
+
$ZodCheck.init(inst, def);
|
|
1581
|
+
hide(inst, Symbol.iterator, function* () {
|
|
1582
|
+
yield inst;
|
|
1583
|
+
});
|
|
1584
|
+
let entries;
|
|
1585
|
+
inst._zod.check = (payload) => {
|
|
1586
|
+
if (payload.value == null) {
|
|
1587
|
+
payload.issues.push({
|
|
1588
|
+
expected: "object",
|
|
1589
|
+
code: "invalid_type",
|
|
1590
|
+
input: payload.value,
|
|
1591
|
+
inst
|
|
1592
|
+
});
|
|
1593
|
+
return;
|
|
1594
|
+
}
|
|
1595
|
+
entries ?? (entries = Reflect.ownKeys(def.shape).map((key) => [key, def.shape[key]]));
|
|
1596
|
+
const input = payload.value;
|
|
1597
|
+
let proms;
|
|
1598
|
+
for (const [key, schema] of entries) {
|
|
1599
|
+
const result = schema._zod.run({
|
|
1600
|
+
value: input[key],
|
|
1601
|
+
issues: []
|
|
1602
|
+
}, {});
|
|
1603
|
+
if (result instanceof Promise) {
|
|
1604
|
+
proms ?? (proms = []);
|
|
1605
|
+
proms.push(result.then((result) => handleCheckPropertyResult(result, payload, key)));
|
|
1606
|
+
} else handleCheckPropertyResult(result, payload, key);
|
|
1607
|
+
}
|
|
1608
|
+
if (proms) return Promise.all(proms).then(() => void 0);
|
|
1609
|
+
};
|
|
1610
|
+
});
|
|
1611
|
+
var $ZodCheckMimeType = /*@__PURE__*/ $constructor("$ZodCheckMimeType", (inst, def) => {
|
|
1612
|
+
$ZodCheck.init(inst, def);
|
|
1613
|
+
const mimeSet = new Set(def.mime);
|
|
1614
|
+
inst._zod.check = (payload) => {
|
|
1615
|
+
if (mimeSet.has(payload.value.type)) return;
|
|
1616
|
+
payload.issues.push({
|
|
1617
|
+
code: "invalid_value",
|
|
1618
|
+
values: def.mime,
|
|
1619
|
+
input: payload.value.type,
|
|
1620
|
+
inst,
|
|
1621
|
+
continue: !def.abort
|
|
1622
|
+
});
|
|
1623
|
+
};
|
|
1624
|
+
});
|
|
1329
1625
|
var $ZodCheckOverwrite = /*@__PURE__*/ $constructor("$ZodCheckOverwrite", (inst, def) => {
|
|
1330
1626
|
$ZodCheck.init(inst, def);
|
|
1331
1627
|
inst._zod.check = (payload) => {
|
|
@@ -1510,7 +1806,7 @@ var $ZodStringFormat = /*@__PURE__*/ $constructor("$ZodStringFormat", (inst, def
|
|
|
1510
1806
|
$ZodString.init(inst, def);
|
|
1511
1807
|
});
|
|
1512
1808
|
var $ZodGUID = /*@__PURE__*/ $constructor("$ZodGUID", (inst, def) => {
|
|
1513
|
-
def.pattern ?? (def.pattern = guid);
|
|
1809
|
+
def.pattern ?? (def.pattern = guid$1);
|
|
1514
1810
|
$ZodStringFormat.init(inst, def);
|
|
1515
1811
|
});
|
|
1516
1812
|
var $ZodUUID = /*@__PURE__*/ $constructor("$ZodUUID", (inst, def) => {
|
|
@@ -1526,12 +1822,12 @@ var $ZodUUID = /*@__PURE__*/ $constructor("$ZodUUID", (inst, def) => {
|
|
|
1526
1822
|
v8: 8
|
|
1527
1823
|
}[def.version];
|
|
1528
1824
|
if (v === void 0) throw new Error(`Invalid UUID version: "${def.version}"`);
|
|
1529
|
-
def.pattern ?? (def.pattern = uuid(v));
|
|
1530
|
-
} else def.pattern ?? (def.pattern = uuid());
|
|
1825
|
+
def.pattern ?? (def.pattern = uuid$1(v));
|
|
1826
|
+
} else def.pattern ?? (def.pattern = uuid$1());
|
|
1531
1827
|
$ZodStringFormat.init(inst, def);
|
|
1532
1828
|
});
|
|
1533
1829
|
var $ZodEmail = /*@__PURE__*/ $constructor("$ZodEmail", (inst, def) => {
|
|
1534
|
-
def.pattern ?? (def.pattern = email);
|
|
1830
|
+
def.pattern ?? (def.pattern = email$1);
|
|
1535
1831
|
$ZodStringFormat.init(inst, def);
|
|
1536
1832
|
});
|
|
1537
1833
|
function canParseURL(input) {
|
|
@@ -1636,12 +1932,12 @@ var $ZodURL = /*@__PURE__*/ $constructor("$ZodURL", (inst, def) => {
|
|
|
1636
1932
|
};
|
|
1637
1933
|
});
|
|
1638
1934
|
var $ZodEmoji = /*@__PURE__*/ $constructor("$ZodEmoji", (inst, def) => {
|
|
1639
|
-
def.pattern ?? (def.pattern = emoji());
|
|
1935
|
+
def.pattern ?? (def.pattern = emoji$1());
|
|
1640
1936
|
$ZodStringFormat.init(inst, def);
|
|
1641
1937
|
});
|
|
1642
1938
|
var $ZodNanoID = /*@__PURE__*/ $constructor("$ZodNanoID", (inst, def) => {
|
|
1643
1939
|
if (def.length !== void 0 && (!Number.isInteger(def.length) || def.length < 1)) throw new Error(`Invalid nanoid length: ${def.length}`);
|
|
1644
|
-
def.pattern ?? (def.pattern = def.length === void 0 ? nanoid : nanoidOfLength(def.length));
|
|
1940
|
+
def.pattern ?? (def.pattern = def.length === void 0 ? nanoid$1 : nanoidOfLength(def.length));
|
|
1645
1941
|
$ZodStringFormat.init(inst, def);
|
|
1646
1942
|
});
|
|
1647
1943
|
/**
|
|
@@ -1650,43 +1946,43 @@ var $ZodNanoID = /*@__PURE__*/ $constructor("$ZodNanoID", (inst, def) => {
|
|
|
1650
1946
|
* See https://github.com/paralleldrive/cuid.
|
|
1651
1947
|
*/
|
|
1652
1948
|
var $ZodCUID = /*@__PURE__*/ $constructor("$ZodCUID", (inst, def) => {
|
|
1653
|
-
def.pattern ?? (def.pattern = cuid);
|
|
1949
|
+
def.pattern ?? (def.pattern = cuid$1);
|
|
1654
1950
|
$ZodStringFormat.init(inst, def);
|
|
1655
1951
|
});
|
|
1656
1952
|
var $ZodCUID2 = /*@__PURE__*/ $constructor("$ZodCUID2", (inst, def) => {
|
|
1657
|
-
def.pattern ?? (def.pattern = cuid2);
|
|
1953
|
+
def.pattern ?? (def.pattern = cuid2$1);
|
|
1658
1954
|
$ZodStringFormat.init(inst, def);
|
|
1659
1955
|
});
|
|
1660
1956
|
var $ZodULID = /*@__PURE__*/ $constructor("$ZodULID", (inst, def) => {
|
|
1661
|
-
def.pattern ?? (def.pattern = ulid);
|
|
1957
|
+
def.pattern ?? (def.pattern = ulid$1);
|
|
1662
1958
|
$ZodStringFormat.init(inst, def);
|
|
1663
1959
|
});
|
|
1664
1960
|
var $ZodXID = /*@__PURE__*/ $constructor("$ZodXID", (inst, def) => {
|
|
1665
|
-
def.pattern ?? (def.pattern = xid);
|
|
1961
|
+
def.pattern ?? (def.pattern = xid$1);
|
|
1666
1962
|
$ZodStringFormat.init(inst, def);
|
|
1667
1963
|
});
|
|
1668
1964
|
var $ZodKSUID = /*@__PURE__*/ $constructor("$ZodKSUID", (inst, def) => {
|
|
1669
|
-
def.pattern ?? (def.pattern = ksuid);
|
|
1965
|
+
def.pattern ?? (def.pattern = ksuid$1);
|
|
1670
1966
|
$ZodStringFormat.init(inst, def);
|
|
1671
1967
|
});
|
|
1672
1968
|
var $ZodISODateTime = /*@__PURE__*/ $constructor("$ZodISODateTime", (inst, def) => {
|
|
1673
|
-
def.pattern ?? (def.pattern = datetime(def));
|
|
1969
|
+
def.pattern ?? (def.pattern = datetime$1(def));
|
|
1674
1970
|
$ZodStringFormat.init(inst, def);
|
|
1675
1971
|
});
|
|
1676
1972
|
var $ZodISODate = /*@__PURE__*/ $constructor("$ZodISODate", (inst, def) => {
|
|
1677
|
-
def.pattern ?? (def.pattern = date$
|
|
1973
|
+
def.pattern ?? (def.pattern = date$3);
|
|
1678
1974
|
$ZodStringFormat.init(inst, def);
|
|
1679
1975
|
});
|
|
1680
1976
|
var $ZodISOTime = /*@__PURE__*/ $constructor("$ZodISOTime", (inst, def) => {
|
|
1681
|
-
def.pattern ?? (def.pattern = time$
|
|
1977
|
+
def.pattern ?? (def.pattern = time$2(def));
|
|
1682
1978
|
$ZodStringFormat.init(inst, def);
|
|
1683
1979
|
});
|
|
1684
1980
|
var $ZodISODuration = /*@__PURE__*/ $constructor("$ZodISODuration", (inst, def) => {
|
|
1685
|
-
def.pattern ?? (def.pattern = duration);
|
|
1981
|
+
def.pattern ?? (def.pattern = duration$1);
|
|
1686
1982
|
$ZodStringFormat.init(inst, def);
|
|
1687
1983
|
});
|
|
1688
1984
|
var $ZodIPv4 = /*@__PURE__*/ $constructor("$ZodIPv4", (inst, def) => {
|
|
1689
|
-
def.pattern ?? (def.pattern = ipv4);
|
|
1985
|
+
def.pattern ?? (def.pattern = ipv4$1);
|
|
1690
1986
|
$ZodStringFormat.init(inst, def);
|
|
1691
1987
|
});
|
|
1692
1988
|
/** An IPv6 address is written with hex digits, colons and dots, and nothing else. The guard is what makes the check below an IPv6 check: `new URL("http://[...]")` parses an authority, not an address, so `@` and `\` re-delimit it and `"::@1\\"` validates against the host `0.0.0.1`. The URL parser also deletes ASCII tab, LF and CR rather than failing, which is how `"::1\n"` validated as `::1`. */
|
|
@@ -1696,7 +1992,7 @@ function isValidIPv6(value) {
|
|
|
1696
1992
|
return canParseURL(`http://[${value}]`);
|
|
1697
1993
|
}
|
|
1698
1994
|
var $ZodIPv6 = /*@__PURE__*/ $constructor("$ZodIPv6", (inst, def) => {
|
|
1699
|
-
def.pattern ?? (def.pattern = ipv6);
|
|
1995
|
+
def.pattern ?? (def.pattern = ipv6$1);
|
|
1700
1996
|
$ZodStringFormat.init(inst, def);
|
|
1701
1997
|
inst._zod.check = (payload) => {
|
|
1702
1998
|
if (!isValidIPv6(payload.value)) payload.issues.push({
|
|
@@ -1708,8 +2004,12 @@ var $ZodIPv6 = /*@__PURE__*/ $constructor("$ZodIPv6", (inst, def) => {
|
|
|
1708
2004
|
});
|
|
1709
2005
|
};
|
|
1710
2006
|
});
|
|
2007
|
+
var $ZodMAC = /*@__PURE__*/ $constructor("$ZodMAC", (inst, def) => {
|
|
2008
|
+
def.pattern ?? (def.pattern = mac$1(def.delimiter));
|
|
2009
|
+
$ZodStringFormat.init(inst, def);
|
|
2010
|
+
});
|
|
1711
2011
|
var $ZodCIDRv4 = /*@__PURE__*/ $constructor("$ZodCIDRv4", (inst, def) => {
|
|
1712
|
-
def.pattern ?? (def.pattern = cidrv4);
|
|
2012
|
+
def.pattern ?? (def.pattern = cidrv4$1);
|
|
1713
2013
|
$ZodStringFormat.init(inst, def);
|
|
1714
2014
|
});
|
|
1715
2015
|
function isValidCIDRv6(value) {
|
|
@@ -1723,7 +2023,7 @@ function isValidCIDRv6(value) {
|
|
|
1723
2023
|
return isValidIPv6(address);
|
|
1724
2024
|
}
|
|
1725
2025
|
var $ZodCIDRv6 = /*@__PURE__*/ $constructor("$ZodCIDRv6", (inst, def) => {
|
|
1726
|
-
def.pattern ?? (def.pattern = cidrv6);
|
|
2026
|
+
def.pattern ?? (def.pattern = cidrv6$1);
|
|
1727
2027
|
$ZodStringFormat.init(inst, def);
|
|
1728
2028
|
inst._zod.check = (payload) => {
|
|
1729
2029
|
if (!isValidCIDRv6(payload.value)) payload.issues.push({
|
|
@@ -1782,8 +2082,81 @@ var $ZodBase64URL = /*@__PURE__*/ $constructor("$ZodBase64URL", (inst, def) => {
|
|
|
1782
2082
|
};
|
|
1783
2083
|
});
|
|
1784
2084
|
var $ZodE164 = /*@__PURE__*/ $constructor("$ZodE164", (inst, def) => {
|
|
1785
|
-
def.pattern ?? (def.pattern = e164);
|
|
2085
|
+
def.pattern ?? (def.pattern = e164$1);
|
|
2086
|
+
$ZodStringFormat.init(inst, def);
|
|
2087
|
+
});
|
|
2088
|
+
var CC_SANITIZE = /[- ]/g;
|
|
2089
|
+
/** Luhn checksum on a digit-only string. Adapted from valibot (MIT). */
|
|
2090
|
+
function isLuhnAlgo(digits) {
|
|
2091
|
+
let length = digits.length;
|
|
2092
|
+
let bit = 1;
|
|
2093
|
+
let sum = 0;
|
|
2094
|
+
while (length) {
|
|
2095
|
+
const value = digits.charCodeAt(--length) - 48;
|
|
2096
|
+
bit ^= 1;
|
|
2097
|
+
sum += bit ? [
|
|
2098
|
+
0,
|
|
2099
|
+
2,
|
|
2100
|
+
4,
|
|
2101
|
+
6,
|
|
2102
|
+
8,
|
|
2103
|
+
1,
|
|
2104
|
+
3,
|
|
2105
|
+
5,
|
|
2106
|
+
7,
|
|
2107
|
+
9
|
|
2108
|
+
][value] : value;
|
|
2109
|
+
}
|
|
2110
|
+
return sum % 10 === 0;
|
|
2111
|
+
}
|
|
2112
|
+
function isValidCreditCard(input) {
|
|
2113
|
+
if (!creditCard$1.test(input)) return false;
|
|
2114
|
+
return isLuhnAlgo(input.replace(CC_SANITIZE, ""));
|
|
2115
|
+
}
|
|
2116
|
+
var $ZodCreditCard = /*@__PURE__*/ $constructor("$ZodCreditCard", (inst, def) => {
|
|
2117
|
+
def.pattern ?? (def.pattern = creditCard$1);
|
|
2118
|
+
$ZodStringFormat.init(inst, def);
|
|
2119
|
+
inst._zod.check = (payload) => {
|
|
2120
|
+
if (isValidCreditCard(payload.value)) return;
|
|
2121
|
+
payload.issues.push({
|
|
2122
|
+
code: "invalid_format",
|
|
2123
|
+
format: "credit_card",
|
|
2124
|
+
input: payload.value,
|
|
2125
|
+
inst,
|
|
2126
|
+
continue: !def.abort
|
|
2127
|
+
});
|
|
2128
|
+
};
|
|
2129
|
+
});
|
|
2130
|
+
function isIso7064Mod97(iban) {
|
|
2131
|
+
let remainder = 0;
|
|
2132
|
+
const len = iban.length;
|
|
2133
|
+
for (let i = 4; i < len; i++) {
|
|
2134
|
+
const code = iban.charCodeAt(i);
|
|
2135
|
+
remainder = (code >= 65 ? remainder * 100 + (code - 55) : remainder * 10 + (code - 48)) % 97;
|
|
2136
|
+
}
|
|
2137
|
+
for (let i = 0; i < 4; i++) {
|
|
2138
|
+
const code = iban.charCodeAt(i);
|
|
2139
|
+
remainder = (code >= 65 ? remainder * 100 + (code - 55) : remainder * 10 + (code - 48)) % 97;
|
|
2140
|
+
}
|
|
2141
|
+
return remainder === 1;
|
|
2142
|
+
}
|
|
2143
|
+
function isValidIBAN(input) {
|
|
2144
|
+
if (!iban$1.test(input)) return false;
|
|
2145
|
+
return isIso7064Mod97(input);
|
|
2146
|
+
}
|
|
2147
|
+
var $ZodIBAN = /*@__PURE__*/ $constructor("$ZodIBAN", (inst, def) => {
|
|
2148
|
+
def.pattern ?? (def.pattern = iban$1);
|
|
1786
2149
|
$ZodStringFormat.init(inst, def);
|
|
2150
|
+
inst._zod.check = (payload) => {
|
|
2151
|
+
if (isValidIBAN(payload.value)) return;
|
|
2152
|
+
payload.issues.push({
|
|
2153
|
+
code: "invalid_format",
|
|
2154
|
+
format: "iban",
|
|
2155
|
+
input: payload.value,
|
|
2156
|
+
inst,
|
|
2157
|
+
continue: !def.abort
|
|
2158
|
+
});
|
|
2159
|
+
};
|
|
1787
2160
|
});
|
|
1788
2161
|
function isValidJWT(token, algorithm = null) {
|
|
1789
2162
|
try {
|
|
@@ -1813,6 +2186,19 @@ var $ZodJWT = /*@__PURE__*/ $constructor("$ZodJWT", (inst, def) => {
|
|
|
1813
2186
|
});
|
|
1814
2187
|
};
|
|
1815
2188
|
});
|
|
2189
|
+
var $ZodCustomStringFormat = /*@__PURE__*/ $constructor("$ZodCustomStringFormat", (inst, def) => {
|
|
2190
|
+
$ZodStringFormat.init(inst, def);
|
|
2191
|
+
inst._zod.check = (payload) => {
|
|
2192
|
+
if (def.fn(payload.value)) return;
|
|
2193
|
+
payload.issues.push({
|
|
2194
|
+
code: "invalid_format",
|
|
2195
|
+
format: def.format,
|
|
2196
|
+
input: payload.value,
|
|
2197
|
+
inst,
|
|
2198
|
+
continue: !def.abort
|
|
2199
|
+
});
|
|
2200
|
+
};
|
|
2201
|
+
});
|
|
1816
2202
|
var $ZodNumber = /*@__PURE__*/ $constructor("$ZodNumber", (inst, def) => {
|
|
1817
2203
|
$ZodType.init(inst, def);
|
|
1818
2204
|
inst._zod.pattern = number$1;
|
|
@@ -1855,6 +2241,57 @@ var $ZodBoolean = /*@__PURE__*/ $constructor("$ZodBoolean", (inst, def) => {
|
|
|
1855
2241
|
return payload;
|
|
1856
2242
|
};
|
|
1857
2243
|
});
|
|
2244
|
+
var $ZodBigInt = /*@__PURE__*/ $constructor("$ZodBigInt", (inst, def) => {
|
|
2245
|
+
$ZodType.init(inst, def);
|
|
2246
|
+
inst._zod.pattern = bigint$1;
|
|
2247
|
+
inst._zod.parse = (payload, _ctx) => {
|
|
2248
|
+
if (def.coerce) try {
|
|
2249
|
+
payload.value = BigInt(payload.value);
|
|
2250
|
+
} catch (_) {}
|
|
2251
|
+
if (typeof payload.value === "bigint") return payload;
|
|
2252
|
+
payload.issues.push({
|
|
2253
|
+
expected: "bigint",
|
|
2254
|
+
code: "invalid_type",
|
|
2255
|
+
input: payload.value,
|
|
2256
|
+
inst
|
|
2257
|
+
});
|
|
2258
|
+
return payload;
|
|
2259
|
+
};
|
|
2260
|
+
});
|
|
2261
|
+
var $ZodBigIntFormat = /*@__PURE__*/ $constructor("$ZodBigIntFormat", (inst, def) => {
|
|
2262
|
+
$ZodCheckBigIntFormat.init(inst, def);
|
|
2263
|
+
$ZodBigInt.init(inst, def);
|
|
2264
|
+
});
|
|
2265
|
+
var $ZodSymbol = /*@__PURE__*/ $constructor("$ZodSymbol", (inst, def) => {
|
|
2266
|
+
$ZodType.init(inst, def);
|
|
2267
|
+
inst._zod.parse = (payload, _ctx) => {
|
|
2268
|
+
const input = payload.value;
|
|
2269
|
+
if (typeof input === "symbol") return payload;
|
|
2270
|
+
payload.issues.push({
|
|
2271
|
+
expected: "symbol",
|
|
2272
|
+
code: "invalid_type",
|
|
2273
|
+
input,
|
|
2274
|
+
inst
|
|
2275
|
+
});
|
|
2276
|
+
return payload;
|
|
2277
|
+
};
|
|
2278
|
+
});
|
|
2279
|
+
var $ZodUndefined = /*@__PURE__*/ $constructor("$ZodUndefined", (inst, def) => {
|
|
2280
|
+
$ZodType.init(inst, def);
|
|
2281
|
+
inst._zod.pattern = _undefined$2;
|
|
2282
|
+
inst._zod.values = /* @__PURE__ */ new Set([void 0]);
|
|
2283
|
+
inst._zod.parse = (payload, _ctx) => {
|
|
2284
|
+
const input = payload.value;
|
|
2285
|
+
if (typeof input === "undefined") return payload;
|
|
2286
|
+
payload.issues.push({
|
|
2287
|
+
expected: "undefined",
|
|
2288
|
+
code: "invalid_type",
|
|
2289
|
+
input,
|
|
2290
|
+
inst
|
|
2291
|
+
});
|
|
2292
|
+
return payload;
|
|
2293
|
+
};
|
|
2294
|
+
});
|
|
1858
2295
|
var $ZodNull = /*@__PURE__*/ $constructor("$ZodNull", (inst, def) => {
|
|
1859
2296
|
$ZodType.init(inst, def);
|
|
1860
2297
|
inst._zod.pattern = _null$2;
|
|
@@ -1871,6 +2308,10 @@ var $ZodNull = /*@__PURE__*/ $constructor("$ZodNull", (inst, def) => {
|
|
|
1871
2308
|
return payload;
|
|
1872
2309
|
};
|
|
1873
2310
|
});
|
|
2311
|
+
var $ZodAny = /*@__PURE__*/ $constructor("$ZodAny", (inst, def) => {
|
|
2312
|
+
$ZodType.init(inst, def);
|
|
2313
|
+
inst._zod.parse = (payload) => payload;
|
|
2314
|
+
});
|
|
1874
2315
|
var $ZodUnknown = /*@__PURE__*/ $constructor("$ZodUnknown", (inst, def) => {
|
|
1875
2316
|
$ZodType.init(inst, def);
|
|
1876
2317
|
inst._zod.parse = (payload) => payload;
|
|
@@ -1887,6 +2328,39 @@ var $ZodNever = /*@__PURE__*/ $constructor("$ZodNever", (inst, def) => {
|
|
|
1887
2328
|
return payload;
|
|
1888
2329
|
};
|
|
1889
2330
|
});
|
|
2331
|
+
var $ZodVoid = /*@__PURE__*/ $constructor("$ZodVoid", (inst, def) => {
|
|
2332
|
+
$ZodType.init(inst, def);
|
|
2333
|
+
inst._zod.parse = (payload, _ctx) => {
|
|
2334
|
+
const input = payload.value;
|
|
2335
|
+
if (typeof input === "undefined") return payload;
|
|
2336
|
+
payload.issues.push({
|
|
2337
|
+
expected: "void",
|
|
2338
|
+
code: "invalid_type",
|
|
2339
|
+
input,
|
|
2340
|
+
inst
|
|
2341
|
+
});
|
|
2342
|
+
return payload;
|
|
2343
|
+
};
|
|
2344
|
+
});
|
|
2345
|
+
var $ZodDate = /*@__PURE__*/ $constructor("$ZodDate", (inst, def) => {
|
|
2346
|
+
$ZodType.init(inst, def);
|
|
2347
|
+
inst._zod.parse = (payload, _ctx) => {
|
|
2348
|
+
if (def.coerce) try {
|
|
2349
|
+
payload.value = new Date(payload.value);
|
|
2350
|
+
} catch (_err) {}
|
|
2351
|
+
const input = payload.value;
|
|
2352
|
+
const isDate = input instanceof Date;
|
|
2353
|
+
if (isDate && !Number.isNaN(input.getTime())) return payload;
|
|
2354
|
+
payload.issues.push({
|
|
2355
|
+
expected: "date",
|
|
2356
|
+
code: "invalid_type",
|
|
2357
|
+
input,
|
|
2358
|
+
...isDate ? { received: "Invalid Date" } : {},
|
|
2359
|
+
inst
|
|
2360
|
+
});
|
|
2361
|
+
return payload;
|
|
2362
|
+
};
|
|
2363
|
+
});
|
|
1890
2364
|
function handleArrayResult(result, final, index) {
|
|
1891
2365
|
if (result.issues.length) final.issues.push(...prefixIssues(index, result.issues));
|
|
1892
2366
|
final.value[index] = result.value;
|
|
@@ -2251,6 +2725,53 @@ var $ZodUnion = /*@__PURE__*/ $constructor("$ZodUnion", (inst, def) => {
|
|
|
2251
2725
|
});
|
|
2252
2726
|
};
|
|
2253
2727
|
});
|
|
2728
|
+
function handleExclusiveUnionResults(results, final, inst, ctx) {
|
|
2729
|
+
const matches = [];
|
|
2730
|
+
for (let i = 0; i < results.length; i++) if (results[i].issues.length === 0) matches.push(i);
|
|
2731
|
+
if (matches.length === 1) {
|
|
2732
|
+
final.value = results[matches[0]].value;
|
|
2733
|
+
return final;
|
|
2734
|
+
}
|
|
2735
|
+
if (matches.length === 0) final.issues.push({
|
|
2736
|
+
code: "invalid_union",
|
|
2737
|
+
input: final.value,
|
|
2738
|
+
inst,
|
|
2739
|
+
errors: results.map((result) => result.issues.map((iss) => finalizeIssue(iss, ctx, config())))
|
|
2740
|
+
});
|
|
2741
|
+
else final.issues.push({
|
|
2742
|
+
code: "invalid_union",
|
|
2743
|
+
input: final.value,
|
|
2744
|
+
inst,
|
|
2745
|
+
errors: [],
|
|
2746
|
+
inclusive: false,
|
|
2747
|
+
matches
|
|
2748
|
+
});
|
|
2749
|
+
return final;
|
|
2750
|
+
}
|
|
2751
|
+
var $ZodXor = /*@__PURE__*/ $constructor("$ZodXor", (inst, def) => {
|
|
2752
|
+
$ZodUnion.init(inst, def);
|
|
2753
|
+
def.inclusive = false;
|
|
2754
|
+
const first = def.options.length === 1 ? def.options[0]._zod.run : null;
|
|
2755
|
+
inst._zod.parse = (payload, ctx) => {
|
|
2756
|
+
if (first) return first(payload, ctx);
|
|
2757
|
+
let async = false;
|
|
2758
|
+
const results = [];
|
|
2759
|
+
for (const option of def.options) {
|
|
2760
|
+
const result = option._zod.run({
|
|
2761
|
+
value: payload.value,
|
|
2762
|
+
issues: []
|
|
2763
|
+
}, ctx);
|
|
2764
|
+
if (result instanceof Promise) {
|
|
2765
|
+
results.push(result);
|
|
2766
|
+
async = true;
|
|
2767
|
+
} else results.push(result);
|
|
2768
|
+
}
|
|
2769
|
+
if (!async) return handleExclusiveUnionResults(results, payload, inst, ctx);
|
|
2770
|
+
return Promise.all(results).then((results) => {
|
|
2771
|
+
return handleExclusiveUnionResults(results, payload, inst, ctx);
|
|
2772
|
+
});
|
|
2773
|
+
};
|
|
2774
|
+
});
|
|
2254
2775
|
function discriminatorMap(def) {
|
|
2255
2776
|
const map = /* @__PURE__ */ new Map();
|
|
2256
2777
|
for (const option of def.options) {
|
|
@@ -2429,24 +2950,132 @@ function handleIntersectionResults(result, left, right) {
|
|
|
2429
2950
|
result.value = merged.data;
|
|
2430
2951
|
return result;
|
|
2431
2952
|
}
|
|
2432
|
-
var $
|
|
2953
|
+
var $ZodTuple = /*@__PURE__*/ $constructor("$ZodTuple", (inst, def) => {
|
|
2433
2954
|
$ZodType.init(inst, def);
|
|
2955
|
+
const items = def.items;
|
|
2434
2956
|
const memo = globalConfig.memoizer;
|
|
2435
2957
|
memo?.attach(inst);
|
|
2436
2958
|
inst._zod.parse = (payload, ctx) => {
|
|
2437
2959
|
const input = payload.value;
|
|
2438
|
-
if (!
|
|
2960
|
+
if (!Array.isArray(input)) {
|
|
2439
2961
|
payload.issues.push({
|
|
2440
|
-
expected: "record",
|
|
2441
|
-
code: "invalid_type",
|
|
2442
2962
|
input,
|
|
2443
|
-
inst
|
|
2963
|
+
inst,
|
|
2964
|
+
expected: "tuple",
|
|
2965
|
+
code: "invalid_type"
|
|
2444
2966
|
});
|
|
2445
2967
|
return payload;
|
|
2446
2968
|
}
|
|
2969
|
+
payload.value = memo ? memo.alloc(inst, payload, [], ctx) : [];
|
|
2447
2970
|
const proms = [];
|
|
2448
|
-
const
|
|
2449
|
-
|
|
2971
|
+
const optinStart = getTupleOptStart(items, "optin");
|
|
2972
|
+
const optoutStart = getTupleOptStart(items, "optout");
|
|
2973
|
+
if (!def.rest) {
|
|
2974
|
+
if (input.length < optinStart) {
|
|
2975
|
+
payload.issues.push({
|
|
2976
|
+
code: "too_small",
|
|
2977
|
+
minimum: optinStart,
|
|
2978
|
+
inclusive: true,
|
|
2979
|
+
input,
|
|
2980
|
+
inst,
|
|
2981
|
+
origin: "array"
|
|
2982
|
+
});
|
|
2983
|
+
return payload;
|
|
2984
|
+
}
|
|
2985
|
+
if (input.length > items.length) payload.issues.push({
|
|
2986
|
+
code: "too_big",
|
|
2987
|
+
maximum: items.length,
|
|
2988
|
+
inclusive: true,
|
|
2989
|
+
input,
|
|
2990
|
+
inst,
|
|
2991
|
+
origin: "array"
|
|
2992
|
+
});
|
|
2993
|
+
}
|
|
2994
|
+
const itemResults = new Array(items.length);
|
|
2995
|
+
const abortEarly = def.rest ? ctx?.abortEarly : void 0;
|
|
2996
|
+
let itemAborted = false;
|
|
2997
|
+
for (let i = 0; i < items.length; i++) {
|
|
2998
|
+
const r = items[i]._zod.run({
|
|
2999
|
+
value: input[i],
|
|
3000
|
+
issues: []
|
|
3001
|
+
}, ctx);
|
|
3002
|
+
if (r instanceof Promise) proms.push(r.then((rr) => {
|
|
3003
|
+
itemResults[i] = rr;
|
|
3004
|
+
}));
|
|
3005
|
+
else {
|
|
3006
|
+
itemResults[i] = r;
|
|
3007
|
+
if (abortEarly && !itemAborted && r.issues.length) itemAborted = aborted(r);
|
|
3008
|
+
}
|
|
3009
|
+
}
|
|
3010
|
+
if (def.rest && !itemAborted) {
|
|
3011
|
+
let i = items.length - 1;
|
|
3012
|
+
const rest = input.slice(items.length);
|
|
3013
|
+
let seen = payload.issues.length;
|
|
3014
|
+
for (const el of rest) {
|
|
3015
|
+
if (abortEarly && payload.issues.length !== seen) {
|
|
3016
|
+
if (aborted(payload, seen)) break;
|
|
3017
|
+
seen = payload.issues.length;
|
|
3018
|
+
}
|
|
3019
|
+
i++;
|
|
3020
|
+
const result = def.rest._zod.run({
|
|
3021
|
+
value: el,
|
|
3022
|
+
issues: []
|
|
3023
|
+
}, ctx);
|
|
3024
|
+
if (result instanceof Promise) proms.push(result.then((r) => handleTupleResult(r, payload, i)));
|
|
3025
|
+
else handleTupleResult(result, payload, i);
|
|
3026
|
+
}
|
|
3027
|
+
}
|
|
3028
|
+
if (proms.length) return Promise.all(proms).then(() => handleTupleResults(itemResults, payload, items, input, optoutStart));
|
|
3029
|
+
return handleTupleResults(itemResults, payload, items, input, optoutStart);
|
|
3030
|
+
};
|
|
3031
|
+
});
|
|
3032
|
+
function getTupleOptStart(items, key) {
|
|
3033
|
+
for (let i = items.length - 1; i >= 0; i--) if (!(key === "optin" ? items[i]._zod.optin !== void 0 : items[i]._zod.optout === "optional")) return i + 1;
|
|
3034
|
+
return 0;
|
|
3035
|
+
}
|
|
3036
|
+
function handleTupleResult(result, final, index) {
|
|
3037
|
+
if (result.issues.length) final.issues.push(...prefixIssues(index, result.issues));
|
|
3038
|
+
final.value[index] = result.value;
|
|
3039
|
+
}
|
|
3040
|
+
function handleTupleResults(itemResults, final, items, input, optoutStart) {
|
|
3041
|
+
for (let i = 0; i < items.length; i++) {
|
|
3042
|
+
const r = itemResults[i];
|
|
3043
|
+
const isPresent = i < input.length;
|
|
3044
|
+
if (!isPresent && i >= optoutStart && items[i]._zod.optin === "optional") {
|
|
3045
|
+
final.value.length = i;
|
|
3046
|
+
break;
|
|
3047
|
+
}
|
|
3048
|
+
if (r.issues.length) {
|
|
3049
|
+
if (!isPresent && i >= optoutStart) {
|
|
3050
|
+
final.value.length = i;
|
|
3051
|
+
break;
|
|
3052
|
+
}
|
|
3053
|
+
final.issues.push(...prefixIssues(i, r.issues));
|
|
3054
|
+
}
|
|
3055
|
+
final.value[i] = r.value;
|
|
3056
|
+
}
|
|
3057
|
+
for (let i = final.value.length - 1; i >= input.length; i--) if (items[i]._zod.optout === "optional" && final.value[i] === void 0) final.value.length = i;
|
|
3058
|
+
else break;
|
|
3059
|
+
return final;
|
|
3060
|
+
}
|
|
3061
|
+
var $ZodRecord = /*@__PURE__*/ $constructor("$ZodRecord", (inst, def) => {
|
|
3062
|
+
$ZodType.init(inst, def);
|
|
3063
|
+
const memo = globalConfig.memoizer;
|
|
3064
|
+
memo?.attach(inst);
|
|
3065
|
+
inst._zod.parse = (payload, ctx) => {
|
|
3066
|
+
const input = payload.value;
|
|
3067
|
+
if (!isPlainObject$1(input)) {
|
|
3068
|
+
payload.issues.push({
|
|
3069
|
+
expected: "record",
|
|
3070
|
+
code: "invalid_type",
|
|
3071
|
+
input,
|
|
3072
|
+
inst
|
|
3073
|
+
});
|
|
3074
|
+
return payload;
|
|
3075
|
+
}
|
|
3076
|
+
const proms = [];
|
|
3077
|
+
const values = def.keyType._zod.values;
|
|
3078
|
+
if (values && !def.partial) {
|
|
2450
3079
|
payload.value = memo ? memo.alloc(inst, payload, {}, ctx) : {};
|
|
2451
3080
|
const recordKeys = /* @__PURE__ */ new Set();
|
|
2452
3081
|
for (const key of values) if (typeof key === "string" || typeof key === "number" || typeof key === "symbol") {
|
|
@@ -2561,6 +3190,110 @@ var $ZodRecord = /*@__PURE__*/ $constructor("$ZodRecord", (inst, def) => {
|
|
|
2561
3190
|
return payload;
|
|
2562
3191
|
};
|
|
2563
3192
|
});
|
|
3193
|
+
var $ZodMap = /*@__PURE__*/ $constructor("$ZodMap", (inst, def) => {
|
|
3194
|
+
$ZodType.init(inst, def);
|
|
3195
|
+
const memo = globalConfig.memoizer;
|
|
3196
|
+
memo?.attach(inst);
|
|
3197
|
+
inst._zod.parse = (payload, ctx) => {
|
|
3198
|
+
const input = payload.value;
|
|
3199
|
+
if (!(input instanceof Map)) {
|
|
3200
|
+
payload.issues.push({
|
|
3201
|
+
expected: "map",
|
|
3202
|
+
code: "invalid_type",
|
|
3203
|
+
input,
|
|
3204
|
+
inst
|
|
3205
|
+
});
|
|
3206
|
+
return payload;
|
|
3207
|
+
}
|
|
3208
|
+
const proms = [];
|
|
3209
|
+
payload.value = memo ? memo.alloc(inst, payload, /* @__PURE__ */ new Map(), ctx) : /* @__PURE__ */ new Map();
|
|
3210
|
+
const abortEarly = ctx?.abortEarly;
|
|
3211
|
+
let seen = payload.issues.length;
|
|
3212
|
+
for (const [key, value] of input) {
|
|
3213
|
+
if (abortEarly && payload.issues.length !== seen) {
|
|
3214
|
+
if (aborted(payload, seen)) break;
|
|
3215
|
+
seen = payload.issues.length;
|
|
3216
|
+
}
|
|
3217
|
+
const keyResult = def.keyType._zod.run({
|
|
3218
|
+
value: key,
|
|
3219
|
+
issues: []
|
|
3220
|
+
}, ctx);
|
|
3221
|
+
const valueResult = def.valueType._zod.run({
|
|
3222
|
+
value,
|
|
3223
|
+
issues: []
|
|
3224
|
+
}, ctx);
|
|
3225
|
+
if (keyResult instanceof Promise || valueResult instanceof Promise) proms.push(Promise.all([keyResult, valueResult]).then(([keyResult, valueResult]) => {
|
|
3226
|
+
handleMapResult(keyResult, valueResult, payload, key, input, inst, ctx);
|
|
3227
|
+
}));
|
|
3228
|
+
else handleMapResult(keyResult, valueResult, payload, key, input, inst, ctx);
|
|
3229
|
+
}
|
|
3230
|
+
if (proms.length) return Promise.all(proms).then(() => payload);
|
|
3231
|
+
return payload;
|
|
3232
|
+
};
|
|
3233
|
+
});
|
|
3234
|
+
function handleMapResult(keyResult, valueResult, final, key, input, inst, ctx) {
|
|
3235
|
+
if (keyResult.issues.length) {
|
|
3236
|
+
if (propertyKeyTypes.has(typeof key)) final.issues.push(...prefixIssues(key, keyResult.issues));
|
|
3237
|
+
else final.issues.push({
|
|
3238
|
+
code: "invalid_key",
|
|
3239
|
+
origin: "map",
|
|
3240
|
+
input,
|
|
3241
|
+
inst,
|
|
3242
|
+
issues: keyResult.issues.map((iss) => finalizeIssue(iss, ctx, config()))
|
|
3243
|
+
});
|
|
3244
|
+
}
|
|
3245
|
+
if (valueResult.issues.length) {
|
|
3246
|
+
if (propertyKeyTypes.has(typeof key)) final.issues.push(...prefixIssues(key, valueResult.issues));
|
|
3247
|
+
else final.issues.push({
|
|
3248
|
+
origin: "map",
|
|
3249
|
+
code: "invalid_element",
|
|
3250
|
+
input,
|
|
3251
|
+
inst,
|
|
3252
|
+
key,
|
|
3253
|
+
issues: valueResult.issues.map((iss) => finalizeIssue(iss, ctx, config()))
|
|
3254
|
+
});
|
|
3255
|
+
}
|
|
3256
|
+
final.value.set(keyResult.value, valueResult.value);
|
|
3257
|
+
}
|
|
3258
|
+
var $ZodSet = /*@__PURE__*/ $constructor("$ZodSet", (inst, def) => {
|
|
3259
|
+
$ZodType.init(inst, def);
|
|
3260
|
+
const memo = globalConfig.memoizer;
|
|
3261
|
+
memo?.attach(inst);
|
|
3262
|
+
inst._zod.parse = (payload, ctx) => {
|
|
3263
|
+
const input = payload.value;
|
|
3264
|
+
if (!(input instanceof Set)) {
|
|
3265
|
+
payload.issues.push({
|
|
3266
|
+
input,
|
|
3267
|
+
inst,
|
|
3268
|
+
expected: "set",
|
|
3269
|
+
code: "invalid_type"
|
|
3270
|
+
});
|
|
3271
|
+
return payload;
|
|
3272
|
+
}
|
|
3273
|
+
const proms = [];
|
|
3274
|
+
payload.value = memo ? memo.alloc(inst, payload, /* @__PURE__ */ new Set(), ctx) : /* @__PURE__ */ new Set();
|
|
3275
|
+
const abortEarly = ctx?.abortEarly;
|
|
3276
|
+
let seen = payload.issues.length;
|
|
3277
|
+
for (const item of input) {
|
|
3278
|
+
if (abortEarly && payload.issues.length !== seen) {
|
|
3279
|
+
if (aborted(payload, seen)) break;
|
|
3280
|
+
seen = payload.issues.length;
|
|
3281
|
+
}
|
|
3282
|
+
const result = def.valueType._zod.run({
|
|
3283
|
+
value: item,
|
|
3284
|
+
issues: []
|
|
3285
|
+
}, ctx);
|
|
3286
|
+
if (result instanceof Promise) proms.push(result.then((result) => handleSetResult(result, payload)));
|
|
3287
|
+
else handleSetResult(result, payload);
|
|
3288
|
+
}
|
|
3289
|
+
if (proms.length) return Promise.all(proms).then(() => payload);
|
|
3290
|
+
return payload;
|
|
3291
|
+
};
|
|
3292
|
+
});
|
|
3293
|
+
function handleSetResult(result, final) {
|
|
3294
|
+
if (result.issues.length) final.issues.push(...result.issues);
|
|
3295
|
+
final.value.add(result.value);
|
|
3296
|
+
}
|
|
2564
3297
|
var $ZodEnum = /*@__PURE__*/ $constructor("$ZodEnum", (inst, def) => {
|
|
2565
3298
|
$ZodType.init(inst, def);
|
|
2566
3299
|
const values = getEnumValues(def.entries);
|
|
@@ -2602,6 +3335,20 @@ var $ZodLiteral = /*@__PURE__*/ $constructor("$ZodLiteral", (inst, def) => {
|
|
|
2602
3335
|
return payload;
|
|
2603
3336
|
};
|
|
2604
3337
|
});
|
|
3338
|
+
var $ZodFile = /*@__PURE__*/ $constructor("$ZodFile", (inst, def) => {
|
|
3339
|
+
$ZodType.init(inst, def);
|
|
3340
|
+
inst._zod.parse = (payload, _ctx) => {
|
|
3341
|
+
const input = payload.value;
|
|
3342
|
+
if (input instanceof File) return payload;
|
|
3343
|
+
payload.issues.push({
|
|
3344
|
+
expected: "file",
|
|
3345
|
+
code: "invalid_type",
|
|
3346
|
+
input,
|
|
3347
|
+
inst
|
|
3348
|
+
});
|
|
3349
|
+
return payload;
|
|
3350
|
+
};
|
|
3351
|
+
});
|
|
2605
3352
|
var $ZodTransform = /*@__PURE__*/ $constructor("$ZodTransform", (inst, def) => {
|
|
2606
3353
|
$ZodType.init(inst, def);
|
|
2607
3354
|
inst._zod.optin = "optional";
|
|
@@ -2724,6 +3471,19 @@ function handleNonOptionalResult(payload, inst) {
|
|
|
2724
3471
|
});
|
|
2725
3472
|
return payload;
|
|
2726
3473
|
}
|
|
3474
|
+
var $ZodSuccess = /*@__PURE__*/ $constructor("$ZodSuccess", (inst, def) => {
|
|
3475
|
+
$ZodType.init(inst, def);
|
|
3476
|
+
inst._zod.parse = (payload, ctx) => {
|
|
3477
|
+
if (ctx.direction === "backward") throw new $ZodEncodeError("ZodSuccess");
|
|
3478
|
+
const result = def.innerType._zod.run(payload, ctx);
|
|
3479
|
+
if (result instanceof Promise) return result.then((result) => {
|
|
3480
|
+
payload.value = result.issues.length === 0;
|
|
3481
|
+
return payload;
|
|
3482
|
+
});
|
|
3483
|
+
payload.value = result.issues.length === 0;
|
|
3484
|
+
return payload;
|
|
3485
|
+
};
|
|
3486
|
+
});
|
|
2727
3487
|
function handleCatchResult(payload, result, def, ctx) {
|
|
2728
3488
|
if (!result.issues.length) {
|
|
2729
3489
|
payload.value = result.value;
|
|
@@ -2753,6 +3513,21 @@ var $ZodCatch = /*@__PURE__*/ $constructor("$ZodCatch", (inst, def) => {
|
|
|
2753
3513
|
return handleCatchResult(payload, result, def, ctx);
|
|
2754
3514
|
};
|
|
2755
3515
|
});
|
|
3516
|
+
var $ZodNaN = /*@__PURE__*/ $constructor("$ZodNaN", (inst, def) => {
|
|
3517
|
+
$ZodType.init(inst, def);
|
|
3518
|
+
inst._zod.parse = (payload, _ctx) => {
|
|
3519
|
+
if (typeof payload.value !== "number" || !Number.isNaN(payload.value)) {
|
|
3520
|
+
payload.issues.push({
|
|
3521
|
+
input: payload.value,
|
|
3522
|
+
inst,
|
|
3523
|
+
expected: "nan",
|
|
3524
|
+
code: "invalid_type"
|
|
3525
|
+
});
|
|
3526
|
+
return payload;
|
|
3527
|
+
}
|
|
3528
|
+
return payload;
|
|
3529
|
+
};
|
|
3530
|
+
});
|
|
2756
3531
|
var $ZodPipe = /*@__PURE__*/ $constructor("$ZodPipe", (inst, def) => {
|
|
2757
3532
|
$ZodType.init(inst, def);
|
|
2758
3533
|
defineLazyInternal(inst, "values", (zod) => zod.def.in._zod.values);
|
|
@@ -2780,6 +3555,49 @@ function handlePipeResult(left, next, ctx) {
|
|
|
2780
3555
|
issues: left.issues
|
|
2781
3556
|
}, ctx);
|
|
2782
3557
|
}
|
|
3558
|
+
var $ZodCodec = /*@__PURE__*/ $constructor("$ZodCodec", (inst, def) => {
|
|
3559
|
+
$ZodType.init(inst, def);
|
|
3560
|
+
defineLazyInternal(inst, "values", (zod) => zod.def.in._zod.values);
|
|
3561
|
+
defineLazyInternal(inst, "optin", (zod) => zod.def.in._zod.optin);
|
|
3562
|
+
defineLazyInternal(inst, "optout", (zod) => zod.def.out._zod.optout);
|
|
3563
|
+
defineLazyInternal(inst, "propValues", (zod) => zod.def.in._zod.propValues);
|
|
3564
|
+
inst._zod.parse = (payload, ctx) => {
|
|
3565
|
+
if ((ctx.direction || "forward") === "forward") {
|
|
3566
|
+
const left = def.in._zod.run(payload, ctx);
|
|
3567
|
+
if (left instanceof Promise) return left.then((left) => handleCodecAResult(left, def, ctx));
|
|
3568
|
+
return handleCodecAResult(left, def, ctx);
|
|
3569
|
+
} else {
|
|
3570
|
+
const right = def.out._zod.run(payload, ctx);
|
|
3571
|
+
if (right instanceof Promise) return right.then((right) => handleCodecAResult(right, def, ctx));
|
|
3572
|
+
return handleCodecAResult(right, def, ctx);
|
|
3573
|
+
}
|
|
3574
|
+
};
|
|
3575
|
+
});
|
|
3576
|
+
function handleCodecAResult(result, def, ctx) {
|
|
3577
|
+
if (result.issues.length) {
|
|
3578
|
+
result.aborted = true;
|
|
3579
|
+
return result;
|
|
3580
|
+
}
|
|
3581
|
+
if ((ctx.direction || "forward") === "forward") {
|
|
3582
|
+
const transformed = def.transform(result.value, result);
|
|
3583
|
+
if (transformed instanceof Promise) return transformed.then((value) => handleCodecTxResult(result, value, def.out, ctx));
|
|
3584
|
+
return handleCodecTxResult(result, transformed, def.out, ctx);
|
|
3585
|
+
} else {
|
|
3586
|
+
const transformed = def.reverseTransform(result.value, result);
|
|
3587
|
+
if (transformed instanceof Promise) return transformed.then((value) => handleCodecTxResult(result, value, def.in, ctx));
|
|
3588
|
+
return handleCodecTxResult(result, transformed, def.in, ctx);
|
|
3589
|
+
}
|
|
3590
|
+
}
|
|
3591
|
+
function handleCodecTxResult(left, value, nextSchema, ctx) {
|
|
3592
|
+
if (left.issues.length) {
|
|
3593
|
+
left.aborted = true;
|
|
3594
|
+
return left;
|
|
3595
|
+
}
|
|
3596
|
+
return nextSchema._zod.run({
|
|
3597
|
+
value,
|
|
3598
|
+
issues: left.issues
|
|
3599
|
+
}, ctx);
|
|
3600
|
+
}
|
|
2783
3601
|
var $ZodPreprocess = /*@__PURE__*/ $constructor("$ZodPreprocess", (inst, def) => {
|
|
2784
3602
|
$ZodPipe.init(inst, def);
|
|
2785
3603
|
});
|
|
@@ -2800,6 +3618,158 @@ function handleReadonlyResult(payload) {
|
|
|
2800
3618
|
if (!payload.memo) payload.value = Object.freeze(payload.value);
|
|
2801
3619
|
return payload;
|
|
2802
3620
|
}
|
|
3621
|
+
function leafPattern(schema) {
|
|
3622
|
+
const def = schema._zod.def;
|
|
3623
|
+
let pattern = def.pattern;
|
|
3624
|
+
let isInt = !!def.format?.includes("int");
|
|
3625
|
+
let minimum;
|
|
3626
|
+
let maximum;
|
|
3627
|
+
for (const ch of def.checks ?? []) {
|
|
3628
|
+
const d = ch._zod.def;
|
|
3629
|
+
if (d.pattern) pattern = d.pattern;
|
|
3630
|
+
isInt || (isInt = !!d.format?.includes("int"));
|
|
3631
|
+
const lo = d.minimum ?? d.length;
|
|
3632
|
+
const hi = d.maximum ?? d.length;
|
|
3633
|
+
if (lo !== void 0 && (minimum === void 0 || lo > minimum)) minimum = lo;
|
|
3634
|
+
if (hi !== void 0 && (maximum === void 0 || hi < maximum)) maximum = hi;
|
|
3635
|
+
}
|
|
3636
|
+
if (pattern) return pattern.source;
|
|
3637
|
+
if (minimum !== void 0 && maximum !== void 0 && minimum > maximum) return "(?!)";
|
|
3638
|
+
if (minimum !== void 0 || maximum !== void 0) return string$1({
|
|
3639
|
+
minimum,
|
|
3640
|
+
maximum
|
|
3641
|
+
}).source;
|
|
3642
|
+
const own = schema._zod.pattern;
|
|
3643
|
+
return (isInt && own === number$1 ? integer : own)?.source;
|
|
3644
|
+
}
|
|
3645
|
+
function partPattern(schema) {
|
|
3646
|
+
const def = schema._zod.def;
|
|
3647
|
+
const own = schema._zod.pattern?.source;
|
|
3648
|
+
const inner = def.innerType ?? schema._zod.innerType;
|
|
3649
|
+
if (inner) {
|
|
3650
|
+
const before = inner._zod.pattern?.source;
|
|
3651
|
+
const after = partPattern(inner);
|
|
3652
|
+
if (own && before && after && after !== before) return own.replace(cleanRegex(before), () => cleanRegex(after));
|
|
3653
|
+
return own;
|
|
3654
|
+
}
|
|
3655
|
+
if (def.options) {
|
|
3656
|
+
const sources = def.options.map(partPattern);
|
|
3657
|
+
if (sources.every(Boolean)) return `^(${sources.map((s) => cleanRegex(s)).join("|")})$`;
|
|
3658
|
+
}
|
|
3659
|
+
return leafPattern(schema);
|
|
3660
|
+
}
|
|
3661
|
+
var $ZodTemplateLiteral = /*@__PURE__*/ $constructor("$ZodTemplateLiteral", (inst, def) => {
|
|
3662
|
+
$ZodType.init(inst, def);
|
|
3663
|
+
const regexParts = [];
|
|
3664
|
+
for (const part of def.parts) if (typeof part === "object" && part !== null) {
|
|
3665
|
+
const source = partPattern(part);
|
|
3666
|
+
if (!source) throw new Error(`Invalid template literal part, no pattern found: ${[...part._zod.traits].shift()}`);
|
|
3667
|
+
regexParts.push(cleanRegex(source));
|
|
3668
|
+
} else if (part === null || primitiveTypes.has(typeof part)) regexParts.push(escapeRegex(`${part}`));
|
|
3669
|
+
else throw new Error(`Invalid template literal part: ${part}`);
|
|
3670
|
+
inst._zod.pattern = new RegExp(`^${regexParts.join("")}$`);
|
|
3671
|
+
inst._zod.parse = (payload, _ctx) => {
|
|
3672
|
+
if (typeof payload.value !== "string") {
|
|
3673
|
+
payload.issues.push({
|
|
3674
|
+
input: payload.value,
|
|
3675
|
+
inst,
|
|
3676
|
+
expected: "string",
|
|
3677
|
+
code: "invalid_type"
|
|
3678
|
+
});
|
|
3679
|
+
return payload;
|
|
3680
|
+
}
|
|
3681
|
+
inst._zod.pattern.lastIndex = 0;
|
|
3682
|
+
if (!inst._zod.pattern.test(payload.value)) {
|
|
3683
|
+
payload.issues.push({
|
|
3684
|
+
input: payload.value,
|
|
3685
|
+
inst,
|
|
3686
|
+
code: "invalid_format",
|
|
3687
|
+
format: def.format ?? "template_literal",
|
|
3688
|
+
pattern: inst._zod.pattern.source
|
|
3689
|
+
});
|
|
3690
|
+
return payload;
|
|
3691
|
+
}
|
|
3692
|
+
return payload;
|
|
3693
|
+
};
|
|
3694
|
+
});
|
|
3695
|
+
var $ZodFunction = /*@__PURE__*/ $constructor("$ZodFunction", (inst, def) => {
|
|
3696
|
+
$ZodType.init(inst, def);
|
|
3697
|
+
Object.defineProperty(inst, "_def", { value: def });
|
|
3698
|
+
inst._zod.def = def;
|
|
3699
|
+
inst.implement = (func) => {
|
|
3700
|
+
if (typeof func !== "function") throw new Error("implement() must be called with a function");
|
|
3701
|
+
return Object.defineProperty(function(...args) {
|
|
3702
|
+
const parsedArgs = inst._def.input ? parse$1(inst._def.input, args) : args;
|
|
3703
|
+
const result = Reflect.apply(func, this, parsedArgs);
|
|
3704
|
+
if (inst._def.output) return parse$1(inst._def.output, result);
|
|
3705
|
+
return result;
|
|
3706
|
+
}, "_zod", {
|
|
3707
|
+
value: inst._zod,
|
|
3708
|
+
enumerable: false
|
|
3709
|
+
});
|
|
3710
|
+
};
|
|
3711
|
+
inst.implementAsync = (func) => {
|
|
3712
|
+
if (typeof func !== "function") throw new Error("implementAsync() must be called with a function");
|
|
3713
|
+
return Object.defineProperty(async function(...args) {
|
|
3714
|
+
const parsedArgs = inst._def.input ? await parseAsync$1(inst._def.input, args) : args;
|
|
3715
|
+
const result = await Reflect.apply(func, this, parsedArgs);
|
|
3716
|
+
if (inst._def.output) return await parseAsync$1(inst._def.output, result);
|
|
3717
|
+
return result;
|
|
3718
|
+
}, "_zod", {
|
|
3719
|
+
value: inst._zod,
|
|
3720
|
+
enumerable: false
|
|
3721
|
+
});
|
|
3722
|
+
};
|
|
3723
|
+
inst._zod.parse = (payload, _ctx) => {
|
|
3724
|
+
if (typeof payload.value !== "function") {
|
|
3725
|
+
payload.issues.push({
|
|
3726
|
+
code: "invalid_type",
|
|
3727
|
+
expected: "function",
|
|
3728
|
+
input: payload.value,
|
|
3729
|
+
inst
|
|
3730
|
+
});
|
|
3731
|
+
return payload;
|
|
3732
|
+
}
|
|
3733
|
+
if (inst._def.output && inst._def.output._zod.def.type === "promise") payload.value = inst.implementAsync(payload.value);
|
|
3734
|
+
else payload.value = inst.implement(payload.value);
|
|
3735
|
+
return payload;
|
|
3736
|
+
};
|
|
3737
|
+
inst.input = (...args) => {
|
|
3738
|
+
const F = inst.constructor;
|
|
3739
|
+
if (Array.isArray(args[0])) return new F({
|
|
3740
|
+
type: "function",
|
|
3741
|
+
input: new $ZodTuple({
|
|
3742
|
+
type: "tuple",
|
|
3743
|
+
items: args[0],
|
|
3744
|
+
rest: args[1]
|
|
3745
|
+
}),
|
|
3746
|
+
output: inst._def.output
|
|
3747
|
+
});
|
|
3748
|
+
return new F({
|
|
3749
|
+
type: "function",
|
|
3750
|
+
input: args[0],
|
|
3751
|
+
output: inst._def.output
|
|
3752
|
+
});
|
|
3753
|
+
};
|
|
3754
|
+
inst.output = (output) => {
|
|
3755
|
+
const F = inst.constructor;
|
|
3756
|
+
return new F({
|
|
3757
|
+
type: "function",
|
|
3758
|
+
input: inst._def.input,
|
|
3759
|
+
output
|
|
3760
|
+
});
|
|
3761
|
+
};
|
|
3762
|
+
return inst;
|
|
3763
|
+
});
|
|
3764
|
+
var $ZodPromise = /*@__PURE__*/ $constructor("$ZodPromise", (inst, def) => {
|
|
3765
|
+
$ZodType.init(inst, def);
|
|
3766
|
+
inst._zod.parse = (payload, ctx) => {
|
|
3767
|
+
return Promise.resolve(payload.value).then((inner) => def.innerType._zod.run({
|
|
3768
|
+
value: inner,
|
|
3769
|
+
issues: []
|
|
3770
|
+
}, ctx));
|
|
3771
|
+
};
|
|
3772
|
+
});
|
|
2803
3773
|
var $ZodLazy = /*@__PURE__*/ $constructor("$ZodLazy", (inst, def) => {
|
|
2804
3774
|
$ZodType.init(inst, def);
|
|
2805
3775
|
defineLazy(inst._zod, "innerType", () => {
|
|
@@ -3431,6 +4401,16 @@ function _ipv6(Class, params) {
|
|
|
3431
4401
|
});
|
|
3432
4402
|
}
|
|
3433
4403
|
// @__NO_SIDE_EFFECTS__
|
|
4404
|
+
function _mac(Class, params) {
|
|
4405
|
+
return new Class({
|
|
4406
|
+
type: "string",
|
|
4407
|
+
format: "mac",
|
|
4408
|
+
check: "string_format",
|
|
4409
|
+
abort: false,
|
|
4410
|
+
...normalizeParams(params)
|
|
4411
|
+
});
|
|
4412
|
+
}
|
|
4413
|
+
// @__NO_SIDE_EFFECTS__
|
|
3434
4414
|
function _cidrv4(Class, params) {
|
|
3435
4415
|
return new Class({
|
|
3436
4416
|
type: "string",
|
|
@@ -3481,6 +4461,26 @@ function _e164(Class, params) {
|
|
|
3481
4461
|
});
|
|
3482
4462
|
}
|
|
3483
4463
|
// @__NO_SIDE_EFFECTS__
|
|
4464
|
+
function _creditCard(Class, params) {
|
|
4465
|
+
return new Class({
|
|
4466
|
+
type: "string",
|
|
4467
|
+
format: "credit_card",
|
|
4468
|
+
check: "string_format",
|
|
4469
|
+
abort: false,
|
|
4470
|
+
...normalizeParams(params)
|
|
4471
|
+
});
|
|
4472
|
+
}
|
|
4473
|
+
// @__NO_SIDE_EFFECTS__
|
|
4474
|
+
function _iban(Class, params) {
|
|
4475
|
+
return new Class({
|
|
4476
|
+
type: "string",
|
|
4477
|
+
format: "iban",
|
|
4478
|
+
check: "string_format",
|
|
4479
|
+
abort: false,
|
|
4480
|
+
...normalizeParams(params)
|
|
4481
|
+
});
|
|
4482
|
+
}
|
|
4483
|
+
// @__NO_SIDE_EFFECTS__
|
|
3484
4484
|
function _jwt(Class, params) {
|
|
3485
4485
|
return new Class({
|
|
3486
4486
|
type: "string",
|
|
@@ -3549,6 +4549,46 @@ function _int(Class, params) {
|
|
|
3549
4549
|
});
|
|
3550
4550
|
}
|
|
3551
4551
|
// @__NO_SIDE_EFFECTS__
|
|
4552
|
+
function _float32(Class, params) {
|
|
4553
|
+
return new Class({
|
|
4554
|
+
type: "number",
|
|
4555
|
+
check: "number_format",
|
|
4556
|
+
abort: false,
|
|
4557
|
+
format: "float32",
|
|
4558
|
+
...normalizeParams(params)
|
|
4559
|
+
});
|
|
4560
|
+
}
|
|
4561
|
+
// @__NO_SIDE_EFFECTS__
|
|
4562
|
+
function _float64(Class, params) {
|
|
4563
|
+
return new Class({
|
|
4564
|
+
type: "number",
|
|
4565
|
+
check: "number_format",
|
|
4566
|
+
abort: false,
|
|
4567
|
+
format: "float64",
|
|
4568
|
+
...normalizeParams(params)
|
|
4569
|
+
});
|
|
4570
|
+
}
|
|
4571
|
+
// @__NO_SIDE_EFFECTS__
|
|
4572
|
+
function _int32(Class, params) {
|
|
4573
|
+
return new Class({
|
|
4574
|
+
type: "number",
|
|
4575
|
+
check: "number_format",
|
|
4576
|
+
abort: false,
|
|
4577
|
+
format: "int32",
|
|
4578
|
+
...normalizeParams(params)
|
|
4579
|
+
});
|
|
4580
|
+
}
|
|
4581
|
+
// @__NO_SIDE_EFFECTS__
|
|
4582
|
+
function _uint32(Class, params) {
|
|
4583
|
+
return new Class({
|
|
4584
|
+
type: "number",
|
|
4585
|
+
check: "number_format",
|
|
4586
|
+
abort: false,
|
|
4587
|
+
format: "uint32",
|
|
4588
|
+
...normalizeParams(params)
|
|
4589
|
+
});
|
|
4590
|
+
}
|
|
4591
|
+
// @__NO_SIDE_EFFECTS__
|
|
3552
4592
|
function _boolean(Class, params) {
|
|
3553
4593
|
return new Class({
|
|
3554
4594
|
type: "boolean",
|
|
@@ -3556,6 +4596,47 @@ function _boolean(Class, params) {
|
|
|
3556
4596
|
});
|
|
3557
4597
|
}
|
|
3558
4598
|
// @__NO_SIDE_EFFECTS__
|
|
4599
|
+
function _bigint(Class, params) {
|
|
4600
|
+
return new Class({
|
|
4601
|
+
type: "bigint",
|
|
4602
|
+
...normalizeParams(params)
|
|
4603
|
+
});
|
|
4604
|
+
}
|
|
4605
|
+
// @__NO_SIDE_EFFECTS__
|
|
4606
|
+
function _int64(Class, params) {
|
|
4607
|
+
return new Class({
|
|
4608
|
+
type: "bigint",
|
|
4609
|
+
check: "bigint_format",
|
|
4610
|
+
abort: false,
|
|
4611
|
+
format: "int64",
|
|
4612
|
+
...normalizeParams(params)
|
|
4613
|
+
});
|
|
4614
|
+
}
|
|
4615
|
+
// @__NO_SIDE_EFFECTS__
|
|
4616
|
+
function _uint64(Class, params) {
|
|
4617
|
+
return new Class({
|
|
4618
|
+
type: "bigint",
|
|
4619
|
+
check: "bigint_format",
|
|
4620
|
+
abort: false,
|
|
4621
|
+
format: "uint64",
|
|
4622
|
+
...normalizeParams(params)
|
|
4623
|
+
});
|
|
4624
|
+
}
|
|
4625
|
+
// @__NO_SIDE_EFFECTS__
|
|
4626
|
+
function _symbol(Class, params) {
|
|
4627
|
+
return new Class({
|
|
4628
|
+
type: "symbol",
|
|
4629
|
+
...normalizeParams(params)
|
|
4630
|
+
});
|
|
4631
|
+
}
|
|
4632
|
+
// @__NO_SIDE_EFFECTS__
|
|
4633
|
+
function _undefined$1(Class, params) {
|
|
4634
|
+
return new Class({
|
|
4635
|
+
type: "undefined",
|
|
4636
|
+
...normalizeParams(params)
|
|
4637
|
+
});
|
|
4638
|
+
}
|
|
4639
|
+
// @__NO_SIDE_EFFECTS__
|
|
3559
4640
|
function _null$1(Class, params) {
|
|
3560
4641
|
return new Class({
|
|
3561
4642
|
type: "null",
|
|
@@ -3563,13 +4644,38 @@ function _null$1(Class, params) {
|
|
|
3563
4644
|
});
|
|
3564
4645
|
}
|
|
3565
4646
|
// @__NO_SIDE_EFFECTS__
|
|
4647
|
+
function _any(Class) {
|
|
4648
|
+
return new Class({ type: "any" });
|
|
4649
|
+
}
|
|
4650
|
+
// @__NO_SIDE_EFFECTS__
|
|
3566
4651
|
function _unknown(Class) {
|
|
3567
4652
|
return new Class({ type: "unknown" });
|
|
3568
4653
|
}
|
|
3569
4654
|
// @__NO_SIDE_EFFECTS__
|
|
3570
|
-
function _never(Class, params) {
|
|
4655
|
+
function _never(Class, params) {
|
|
4656
|
+
return new Class({
|
|
4657
|
+
type: "never",
|
|
4658
|
+
...normalizeParams(params)
|
|
4659
|
+
});
|
|
4660
|
+
}
|
|
4661
|
+
// @__NO_SIDE_EFFECTS__
|
|
4662
|
+
function _void$1(Class, params) {
|
|
4663
|
+
return new Class({
|
|
4664
|
+
type: "void",
|
|
4665
|
+
...normalizeParams(params)
|
|
4666
|
+
});
|
|
4667
|
+
}
|
|
4668
|
+
// @__NO_SIDE_EFFECTS__
|
|
4669
|
+
function _date(Class, params) {
|
|
4670
|
+
return new Class({
|
|
4671
|
+
type: "date",
|
|
4672
|
+
...normalizeParams(params)
|
|
4673
|
+
});
|
|
4674
|
+
}
|
|
4675
|
+
// @__NO_SIDE_EFFECTS__
|
|
4676
|
+
function _nan(Class, params) {
|
|
3571
4677
|
return new Class({
|
|
3572
|
-
type: "
|
|
4678
|
+
type: "nan",
|
|
3573
4679
|
...normalizeParams(params)
|
|
3574
4680
|
});
|
|
3575
4681
|
}
|
|
@@ -3610,6 +4716,22 @@ function _gte(value, params) {
|
|
|
3610
4716
|
});
|
|
3611
4717
|
}
|
|
3612
4718
|
// @__NO_SIDE_EFFECTS__
|
|
4719
|
+
function _positive(params) {
|
|
4720
|
+
return /* @__PURE__ */ _gt(0, params);
|
|
4721
|
+
}
|
|
4722
|
+
// @__NO_SIDE_EFFECTS__
|
|
4723
|
+
function _negative(params) {
|
|
4724
|
+
return /* @__PURE__ */ _lt(0, params);
|
|
4725
|
+
}
|
|
4726
|
+
// @__NO_SIDE_EFFECTS__
|
|
4727
|
+
function _nonpositive(params) {
|
|
4728
|
+
return /* @__PURE__ */ _lte(0, params);
|
|
4729
|
+
}
|
|
4730
|
+
// @__NO_SIDE_EFFECTS__
|
|
4731
|
+
function _nonnegative(params) {
|
|
4732
|
+
return /* @__PURE__ */ _gte(0, params);
|
|
4733
|
+
}
|
|
4734
|
+
// @__NO_SIDE_EFFECTS__
|
|
3613
4735
|
function _multipleOf(value, params) {
|
|
3614
4736
|
return new $ZodCheckMultipleOf({
|
|
3615
4737
|
check: "multiple_of",
|
|
@@ -3618,6 +4740,30 @@ function _multipleOf(value, params) {
|
|
|
3618
4740
|
});
|
|
3619
4741
|
}
|
|
3620
4742
|
// @__NO_SIDE_EFFECTS__
|
|
4743
|
+
function _maxSize(maximum, params) {
|
|
4744
|
+
return new $ZodCheckMaxSize({
|
|
4745
|
+
check: "max_size",
|
|
4746
|
+
...normalizeParams(params),
|
|
4747
|
+
maximum
|
|
4748
|
+
});
|
|
4749
|
+
}
|
|
4750
|
+
// @__NO_SIDE_EFFECTS__
|
|
4751
|
+
function _minSize(minimum, params) {
|
|
4752
|
+
return new $ZodCheckMinSize({
|
|
4753
|
+
check: "min_size",
|
|
4754
|
+
...normalizeParams(params),
|
|
4755
|
+
minimum
|
|
4756
|
+
});
|
|
4757
|
+
}
|
|
4758
|
+
// @__NO_SIDE_EFFECTS__
|
|
4759
|
+
function _size(size, params) {
|
|
4760
|
+
return new $ZodCheckSizeEquals({
|
|
4761
|
+
check: "size_equals",
|
|
4762
|
+
...normalizeParams(params),
|
|
4763
|
+
size
|
|
4764
|
+
});
|
|
4765
|
+
}
|
|
4766
|
+
// @__NO_SIDE_EFFECTS__
|
|
3621
4767
|
function _maxLength(maximum, params) {
|
|
3622
4768
|
return new $ZodCheckMaxLength({
|
|
3623
4769
|
check: "max_length",
|
|
@@ -3694,6 +4840,31 @@ function _endsWith(suffix, params) {
|
|
|
3694
4840
|
});
|
|
3695
4841
|
}
|
|
3696
4842
|
// @__NO_SIDE_EFFECTS__
|
|
4843
|
+
function _property(property, schema, params) {
|
|
4844
|
+
return new $ZodCheckProperty({
|
|
4845
|
+
check: "property",
|
|
4846
|
+
property,
|
|
4847
|
+
schema,
|
|
4848
|
+
...normalizeParams(params)
|
|
4849
|
+
});
|
|
4850
|
+
}
|
|
4851
|
+
// @__NO_SIDE_EFFECTS__
|
|
4852
|
+
function _properties(shape, params) {
|
|
4853
|
+
return new $ZodCheckProperties({
|
|
4854
|
+
check: "properties",
|
|
4855
|
+
shape,
|
|
4856
|
+
...normalizeParams(params)
|
|
4857
|
+
});
|
|
4858
|
+
}
|
|
4859
|
+
// @__NO_SIDE_EFFECTS__
|
|
4860
|
+
function _mime(types, params) {
|
|
4861
|
+
return new $ZodCheckMimeType({
|
|
4862
|
+
check: "mime_type",
|
|
4863
|
+
mime: types,
|
|
4864
|
+
...normalizeParams(params)
|
|
4865
|
+
});
|
|
4866
|
+
}
|
|
4867
|
+
// @__NO_SIDE_EFFECTS__
|
|
3697
4868
|
function _overwrite(tx) {
|
|
3698
4869
|
return new $ZodCheckOverwrite({
|
|
3699
4870
|
check: "overwrite",
|
|
@@ -3729,6 +4900,24 @@ function _array(Class, element, params) {
|
|
|
3729
4900
|
});
|
|
3730
4901
|
}
|
|
3731
4902
|
// @__NO_SIDE_EFFECTS__
|
|
4903
|
+
function _file(Class, params) {
|
|
4904
|
+
return new Class({
|
|
4905
|
+
type: "file",
|
|
4906
|
+
...normalizeParams(params)
|
|
4907
|
+
});
|
|
4908
|
+
}
|
|
4909
|
+
// @__NO_SIDE_EFFECTS__
|
|
4910
|
+
function _custom(Class, fn, _params) {
|
|
4911
|
+
const norm = normalizeParams(_params);
|
|
4912
|
+
norm.abort ?? (norm.abort = true);
|
|
4913
|
+
return new Class({
|
|
4914
|
+
type: "custom",
|
|
4915
|
+
check: "custom",
|
|
4916
|
+
fn,
|
|
4917
|
+
...norm
|
|
4918
|
+
});
|
|
4919
|
+
}
|
|
4920
|
+
// @__NO_SIDE_EFFECTS__
|
|
3732
4921
|
function _refine(Class, fn, _params) {
|
|
3733
4922
|
return new Class({
|
|
3734
4923
|
type: "custom",
|
|
@@ -3765,6 +4954,110 @@ function _check(fn, params) {
|
|
|
3765
4954
|
ch._zod.check = fn;
|
|
3766
4955
|
return ch;
|
|
3767
4956
|
}
|
|
4957
|
+
// @__NO_SIDE_EFFECTS__
|
|
4958
|
+
function describe$1(description) {
|
|
4959
|
+
const ch = new $ZodCheck({ check: "describe" });
|
|
4960
|
+
ch._zod.onattach = [(inst) => {
|
|
4961
|
+
const existing = globalRegistry.get(inst) ?? {};
|
|
4962
|
+
globalRegistry.add(inst, {
|
|
4963
|
+
...existing,
|
|
4964
|
+
description
|
|
4965
|
+
});
|
|
4966
|
+
}];
|
|
4967
|
+
ch._zod.check = () => {};
|
|
4968
|
+
return ch;
|
|
4969
|
+
}
|
|
4970
|
+
// @__NO_SIDE_EFFECTS__
|
|
4971
|
+
function meta$1(metadata) {
|
|
4972
|
+
const ch = new $ZodCheck({ check: "meta" });
|
|
4973
|
+
ch._zod.onattach = [(inst) => {
|
|
4974
|
+
const existing = globalRegistry.get(inst) ?? {};
|
|
4975
|
+
globalRegistry.add(inst, {
|
|
4976
|
+
...existing,
|
|
4977
|
+
...metadata
|
|
4978
|
+
});
|
|
4979
|
+
}];
|
|
4980
|
+
ch._zod.check = () => {};
|
|
4981
|
+
return ch;
|
|
4982
|
+
}
|
|
4983
|
+
// @__NO_SIDE_EFFECTS__
|
|
4984
|
+
function _stringbool(Classes, _params) {
|
|
4985
|
+
const params = normalizeParams(_params);
|
|
4986
|
+
let truthyArray = params.truthy ?? [
|
|
4987
|
+
"true",
|
|
4988
|
+
"1",
|
|
4989
|
+
"yes",
|
|
4990
|
+
"on",
|
|
4991
|
+
"y",
|
|
4992
|
+
"enabled"
|
|
4993
|
+
];
|
|
4994
|
+
let falsyArray = params.falsy ?? [
|
|
4995
|
+
"false",
|
|
4996
|
+
"0",
|
|
4997
|
+
"no",
|
|
4998
|
+
"off",
|
|
4999
|
+
"n",
|
|
5000
|
+
"disabled"
|
|
5001
|
+
];
|
|
5002
|
+
if (params.case !== "sensitive") {
|
|
5003
|
+
truthyArray = truthyArray.map((v) => typeof v === "string" ? v.toLowerCase() : v);
|
|
5004
|
+
falsyArray = falsyArray.map((v) => typeof v === "string" ? v.toLowerCase() : v);
|
|
5005
|
+
}
|
|
5006
|
+
const truthySet = new Set(truthyArray);
|
|
5007
|
+
const falsySet = new Set(falsyArray);
|
|
5008
|
+
const _Codec = Classes.Codec ?? $ZodCodec;
|
|
5009
|
+
const _Boolean = Classes.Boolean ?? $ZodBoolean;
|
|
5010
|
+
const codec = new _Codec({
|
|
5011
|
+
type: "pipe",
|
|
5012
|
+
in: new (Classes.String ?? $ZodString)({
|
|
5013
|
+
type: "string",
|
|
5014
|
+
error: params.error
|
|
5015
|
+
}),
|
|
5016
|
+
out: new _Boolean({
|
|
5017
|
+
type: "boolean",
|
|
5018
|
+
error: params.error
|
|
5019
|
+
}),
|
|
5020
|
+
transform: ((input, payload) => {
|
|
5021
|
+
let data = input;
|
|
5022
|
+
if (params.case !== "sensitive") data = data.toLowerCase();
|
|
5023
|
+
if (truthySet.has(data)) return true;
|
|
5024
|
+
else if (falsySet.has(data)) return false;
|
|
5025
|
+
else {
|
|
5026
|
+
payload.issues.push({
|
|
5027
|
+
code: "invalid_value",
|
|
5028
|
+
expected: "stringbool",
|
|
5029
|
+
values: [...truthySet, ...falsySet],
|
|
5030
|
+
input: payload.value,
|
|
5031
|
+
inst: codec,
|
|
5032
|
+
continue: false
|
|
5033
|
+
});
|
|
5034
|
+
return {};
|
|
5035
|
+
}
|
|
5036
|
+
}),
|
|
5037
|
+
reverseTransform: ((input, _payload) => {
|
|
5038
|
+
if (input === true) return truthyArray[0] || "true";
|
|
5039
|
+
else return falsyArray[0] || "false";
|
|
5040
|
+
}),
|
|
5041
|
+
error: params.error
|
|
5042
|
+
});
|
|
5043
|
+
codec._zod.bag.truthy = truthyArray;
|
|
5044
|
+
codec._zod.bag.falsy = falsyArray;
|
|
5045
|
+
codec._zod.bag.case = params.case ?? "insensitive";
|
|
5046
|
+
return codec;
|
|
5047
|
+
}
|
|
5048
|
+
// @__NO_SIDE_EFFECTS__
|
|
5049
|
+
function _stringFormat(Class, format, fnOrRegex, _params = {}) {
|
|
5050
|
+
const params = normalizeParams(_params);
|
|
5051
|
+
const def = {
|
|
5052
|
+
check: "string_format",
|
|
5053
|
+
type: "string",
|
|
5054
|
+
format,
|
|
5055
|
+
fn: typeof fnOrRegex === "function" ? fnOrRegex : (val) => fnOrRegex.test(val),
|
|
5056
|
+
...params
|
|
5057
|
+
};
|
|
5058
|
+
if (fnOrRegex instanceof RegExp) def.pattern = fnOrRegex;
|
|
5059
|
+
return new Class(def);
|
|
5060
|
+
}
|
|
3768
5061
|
//#endregion
|
|
3769
5062
|
//#region ../../node_modules/.bun/zod@4.6.5/node_modules/zod/v4/core/to-json-schema.js
|
|
3770
5063
|
function assignProps(target, ...sources) {
|
|
@@ -4290,7 +5583,7 @@ var formatMap = {
|
|
|
4290
5583
|
json_string: "json-string",
|
|
4291
5584
|
regex: ""
|
|
4292
5585
|
};
|
|
4293
|
-
var exactPatterns = /* @__PURE__ */ new Map([[base64Charset, base64], [base64urlCharset, base64url]]);
|
|
5586
|
+
var exactPatterns = /* @__PURE__ */ new Map([[base64Charset, base64$1], [base64urlCharset, base64url$1]]);
|
|
4294
5587
|
var exactPattern = (p) => exactPatterns.get(p) ?? p;
|
|
4295
5588
|
var stringProcessor = (schema, ctx, _json, _params) => {
|
|
4296
5589
|
const json = _json;
|
|
@@ -4856,6 +6149,40 @@ function toJSONSchema(input, params) {
|
|
|
4856
6149
|
return finalize(ctx, input);
|
|
4857
6150
|
}
|
|
4858
6151
|
//#endregion
|
|
6152
|
+
//#region ../../node_modules/.bun/zod@4.6.5/node_modules/zod/v4/classic/checks.js
|
|
6153
|
+
var checks_exports = /* @__PURE__ */ __exportAll({
|
|
6154
|
+
endsWith: () => _endsWith,
|
|
6155
|
+
gt: () => _gt,
|
|
6156
|
+
gte: () => _gte,
|
|
6157
|
+
includes: () => _includes,
|
|
6158
|
+
length: () => _length,
|
|
6159
|
+
lowercase: () => _lowercase,
|
|
6160
|
+
lt: () => _lt,
|
|
6161
|
+
lte: () => _lte,
|
|
6162
|
+
maxLength: () => _maxLength,
|
|
6163
|
+
maxSize: () => _maxSize,
|
|
6164
|
+
mime: () => _mime,
|
|
6165
|
+
minLength: () => _minLength,
|
|
6166
|
+
minSize: () => _minSize,
|
|
6167
|
+
multipleOf: () => _multipleOf,
|
|
6168
|
+
negative: () => _negative,
|
|
6169
|
+
nonnegative: () => _nonnegative,
|
|
6170
|
+
nonpositive: () => _nonpositive,
|
|
6171
|
+
normalize: () => _normalize,
|
|
6172
|
+
overwrite: () => _overwrite,
|
|
6173
|
+
positive: () => _positive,
|
|
6174
|
+
properties: () => _properties,
|
|
6175
|
+
property: () => _property,
|
|
6176
|
+
regex: () => _regex,
|
|
6177
|
+
size: () => _size,
|
|
6178
|
+
slugify: () => _slugify,
|
|
6179
|
+
startsWith: () => _startsWith,
|
|
6180
|
+
toLowerCase: () => _toLowerCase,
|
|
6181
|
+
toUpperCase: () => _toUpperCase,
|
|
6182
|
+
trim: () => _trim,
|
|
6183
|
+
uppercase: () => _uppercase
|
|
6184
|
+
});
|
|
6185
|
+
//#endregion
|
|
4859
6186
|
//#region ../../node_modules/.bun/zod@4.6.5/node_modules/zod/v4/classic/errors.js
|
|
4860
6187
|
var _installedErrorProtos = /* @__PURE__ */ new WeakSet([Object.prototype, Error.prototype]);
|
|
4861
6188
|
function _lazyMethod(proto, key, make) {
|
|
@@ -4922,6 +6249,184 @@ var safeEncodeAsync = /* @__PURE__ */ _safeEncodeAsync(ZodRealError);
|
|
|
4922
6249
|
var safeDecodeAsync = /* @__PURE__ */ _safeDecodeAsync(ZodRealError);
|
|
4923
6250
|
//#endregion
|
|
4924
6251
|
//#region ../../node_modules/.bun/zod@4.6.5/node_modules/zod/v4/classic/schemas.js
|
|
6252
|
+
var schemas_exports = /* @__PURE__ */ __exportAll({
|
|
6253
|
+
ZodAny: () => ZodAny,
|
|
6254
|
+
ZodArray: () => ZodArray,
|
|
6255
|
+
ZodBase64: () => ZodBase64,
|
|
6256
|
+
ZodBase64URL: () => ZodBase64URL,
|
|
6257
|
+
ZodBigInt: () => ZodBigInt,
|
|
6258
|
+
ZodBigIntFormat: () => ZodBigIntFormat,
|
|
6259
|
+
ZodBoolean: () => ZodBoolean,
|
|
6260
|
+
ZodCIDRv4: () => ZodCIDRv4,
|
|
6261
|
+
ZodCIDRv6: () => ZodCIDRv6,
|
|
6262
|
+
ZodCUID: () => ZodCUID,
|
|
6263
|
+
ZodCUID2: () => ZodCUID2,
|
|
6264
|
+
ZodCatch: () => ZodCatch,
|
|
6265
|
+
ZodCodec: () => ZodCodec,
|
|
6266
|
+
ZodCreditCard: () => ZodCreditCard,
|
|
6267
|
+
ZodCustom: () => ZodCustom,
|
|
6268
|
+
ZodCustomStringFormat: () => ZodCustomStringFormat,
|
|
6269
|
+
ZodDate: () => ZodDate,
|
|
6270
|
+
ZodDefault: () => ZodDefault,
|
|
6271
|
+
ZodDiscriminatedUnion: () => ZodDiscriminatedUnion,
|
|
6272
|
+
ZodE164: () => ZodE164,
|
|
6273
|
+
ZodEmail: () => ZodEmail,
|
|
6274
|
+
ZodEmoji: () => ZodEmoji,
|
|
6275
|
+
ZodEnum: () => ZodEnum,
|
|
6276
|
+
ZodExactOptional: () => ZodExactOptional,
|
|
6277
|
+
ZodFile: () => ZodFile,
|
|
6278
|
+
ZodFunction: () => ZodFunction,
|
|
6279
|
+
ZodGUID: () => ZodGUID,
|
|
6280
|
+
ZodIBAN: () => ZodIBAN,
|
|
6281
|
+
ZodIPv4: () => ZodIPv4,
|
|
6282
|
+
ZodIPv6: () => ZodIPv6,
|
|
6283
|
+
ZodISODate: () => ZodISODate,
|
|
6284
|
+
ZodISODateTime: () => ZodISODateTime,
|
|
6285
|
+
ZodISODuration: () => ZodISODuration,
|
|
6286
|
+
ZodISOTime: () => ZodISOTime,
|
|
6287
|
+
ZodInstanceOf: () => ZodInstanceOf,
|
|
6288
|
+
ZodIntersection: () => ZodIntersection,
|
|
6289
|
+
ZodJWT: () => ZodJWT,
|
|
6290
|
+
ZodKSUID: () => ZodKSUID,
|
|
6291
|
+
ZodLazy: () => ZodLazy,
|
|
6292
|
+
ZodLiteral: () => ZodLiteral,
|
|
6293
|
+
ZodMAC: () => ZodMAC,
|
|
6294
|
+
ZodMap: () => ZodMap,
|
|
6295
|
+
ZodNaN: () => ZodNaN,
|
|
6296
|
+
ZodNanoID: () => ZodNanoID,
|
|
6297
|
+
ZodNever: () => ZodNever,
|
|
6298
|
+
ZodNonOptional: () => ZodNonOptional,
|
|
6299
|
+
ZodNull: () => ZodNull,
|
|
6300
|
+
ZodNullable: () => ZodNullable,
|
|
6301
|
+
ZodNumber: () => ZodNumber,
|
|
6302
|
+
ZodNumberFormat: () => ZodNumberFormat,
|
|
6303
|
+
ZodObject: () => ZodObject,
|
|
6304
|
+
ZodOptional: () => ZodOptional,
|
|
6305
|
+
ZodPipe: () => ZodPipe,
|
|
6306
|
+
ZodPrefault: () => ZodPrefault,
|
|
6307
|
+
ZodPreprocess: () => ZodPreprocess,
|
|
6308
|
+
ZodPromise: () => ZodPromise,
|
|
6309
|
+
ZodReadonly: () => ZodReadonly,
|
|
6310
|
+
ZodRecord: () => ZodRecord,
|
|
6311
|
+
ZodSet: () => ZodSet,
|
|
6312
|
+
ZodString: () => ZodString,
|
|
6313
|
+
ZodStringFormat: () => ZodStringFormat,
|
|
6314
|
+
ZodSuccess: () => ZodSuccess,
|
|
6315
|
+
ZodSymbol: () => ZodSymbol,
|
|
6316
|
+
ZodTemplateLiteral: () => ZodTemplateLiteral,
|
|
6317
|
+
ZodTransform: () => ZodTransform,
|
|
6318
|
+
ZodTuple: () => ZodTuple,
|
|
6319
|
+
ZodType: () => ZodType,
|
|
6320
|
+
ZodULID: () => ZodULID,
|
|
6321
|
+
ZodURL: () => ZodURL,
|
|
6322
|
+
ZodUUID: () => ZodUUID,
|
|
6323
|
+
ZodUndefined: () => ZodUndefined,
|
|
6324
|
+
ZodUnion: () => ZodUnion,
|
|
6325
|
+
ZodUnknown: () => ZodUnknown,
|
|
6326
|
+
ZodVoid: () => ZodVoid,
|
|
6327
|
+
ZodXID: () => ZodXID,
|
|
6328
|
+
ZodXor: () => ZodXor,
|
|
6329
|
+
_ZodString: () => _ZodString,
|
|
6330
|
+
_default: () => _default,
|
|
6331
|
+
_function: () => _function,
|
|
6332
|
+
any: () => any,
|
|
6333
|
+
array: () => array,
|
|
6334
|
+
base64: () => base64,
|
|
6335
|
+
base64url: () => base64url,
|
|
6336
|
+
bigint: () => bigint,
|
|
6337
|
+
boolean: () => boolean,
|
|
6338
|
+
catch: () => _catch,
|
|
6339
|
+
check: () => check,
|
|
6340
|
+
cidrv4: () => cidrv4,
|
|
6341
|
+
cidrv6: () => cidrv6,
|
|
6342
|
+
codec: () => codec,
|
|
6343
|
+
creditCard: () => creditCard,
|
|
6344
|
+
cuid: () => cuid,
|
|
6345
|
+
cuid2: () => cuid2,
|
|
6346
|
+
currencyCode: () => currencyCode,
|
|
6347
|
+
custom: () => custom,
|
|
6348
|
+
date: () => date$2,
|
|
6349
|
+
describe: () => describe,
|
|
6350
|
+
discriminatedUnion: () => discriminatedUnion,
|
|
6351
|
+
e164: () => e164,
|
|
6352
|
+
email: () => email,
|
|
6353
|
+
emoji: () => emoji,
|
|
6354
|
+
enum: () => _enum,
|
|
6355
|
+
exactOptional: () => exactOptional,
|
|
6356
|
+
file: () => file,
|
|
6357
|
+
float32: () => float32,
|
|
6358
|
+
float64: () => float64,
|
|
6359
|
+
function: () => _function,
|
|
6360
|
+
guid: () => guid,
|
|
6361
|
+
hash: () => hash,
|
|
6362
|
+
hex: () => hex,
|
|
6363
|
+
hostname: () => hostname,
|
|
6364
|
+
httpUrl: () => httpUrl$1,
|
|
6365
|
+
iban: () => iban,
|
|
6366
|
+
instanceof: () => _instanceof,
|
|
6367
|
+
int: () => int,
|
|
6368
|
+
int32: () => int32,
|
|
6369
|
+
int64: () => int64,
|
|
6370
|
+
intersection: () => intersection,
|
|
6371
|
+
invertCodec: () => invertCodec,
|
|
6372
|
+
ipv4: () => ipv4,
|
|
6373
|
+
ipv6: () => ipv6,
|
|
6374
|
+
json: () => json$5,
|
|
6375
|
+
jwt: () => jwt,
|
|
6376
|
+
keyof: () => keyof,
|
|
6377
|
+
ksuid: () => ksuid,
|
|
6378
|
+
lazy: () => lazy,
|
|
6379
|
+
literal: () => literal,
|
|
6380
|
+
looseObject: () => looseObject,
|
|
6381
|
+
looseRecord: () => looseRecord,
|
|
6382
|
+
mac: () => mac,
|
|
6383
|
+
map: () => map,
|
|
6384
|
+
meta: () => meta,
|
|
6385
|
+
nan: () => nan,
|
|
6386
|
+
nanoid: () => nanoid,
|
|
6387
|
+
nativeEnum: () => nativeEnum,
|
|
6388
|
+
never: () => never,
|
|
6389
|
+
nonoptional: () => nonoptional,
|
|
6390
|
+
null: () => _null,
|
|
6391
|
+
nullable: () => nullable,
|
|
6392
|
+
nullish: () => nullish,
|
|
6393
|
+
number: () => number,
|
|
6394
|
+
object: () => object$1,
|
|
6395
|
+
optional: () => optional,
|
|
6396
|
+
partialRecord: () => partialRecord,
|
|
6397
|
+
pipe: () => pipe,
|
|
6398
|
+
prefault: () => prefault,
|
|
6399
|
+
preprocess: () => preprocess,
|
|
6400
|
+
promise: () => promise,
|
|
6401
|
+
readonly: () => readonly,
|
|
6402
|
+
record: () => record$3,
|
|
6403
|
+
refine: () => refine,
|
|
6404
|
+
set: () => set,
|
|
6405
|
+
strictObject: () => strictObject,
|
|
6406
|
+
string: () => string,
|
|
6407
|
+
stringFormat: () => stringFormat,
|
|
6408
|
+
stringbool: () => stringbool,
|
|
6409
|
+
success: () => success,
|
|
6410
|
+
superRefine: () => superRefine,
|
|
6411
|
+
symbol: () => symbol,
|
|
6412
|
+
templateLiteral: () => templateLiteral,
|
|
6413
|
+
transform: () => transform,
|
|
6414
|
+
tuple: () => tuple,
|
|
6415
|
+
uint32: () => uint32,
|
|
6416
|
+
uint64: () => uint64,
|
|
6417
|
+
ulid: () => ulid,
|
|
6418
|
+
undefined: () => _undefined,
|
|
6419
|
+
union: () => union,
|
|
6420
|
+
unknown: () => unknown,
|
|
6421
|
+
url: () => url,
|
|
6422
|
+
uuid: () => uuid,
|
|
6423
|
+
uuidv4: () => uuidv4,
|
|
6424
|
+
uuidv6: () => uuidv6,
|
|
6425
|
+
uuidv7: () => uuidv7,
|
|
6426
|
+
void: () => _void,
|
|
6427
|
+
xid: () => xid,
|
|
6428
|
+
xor: () => xor
|
|
6429
|
+
});
|
|
4925
6430
|
function _ensureDefaultLocale() {
|
|
4926
6431
|
if (!globalConfig.localeError) config(en_default());
|
|
4927
6432
|
}
|
|
@@ -5263,26 +6768,60 @@ var ZodEmail = /*@__PURE__*/ $constructor("ZodEmail", (inst, def) => {
|
|
|
5263
6768
|
$ZodEmail.init(inst, def);
|
|
5264
6769
|
ZodStringFormat.init(inst, def);
|
|
5265
6770
|
});
|
|
6771
|
+
function email(params) {
|
|
6772
|
+
return /* @__PURE__ */ _email(ZodEmail, params);
|
|
6773
|
+
}
|
|
5266
6774
|
var ZodGUID = /*@__PURE__*/ $constructor("ZodGUID", (inst, def) => {
|
|
5267
6775
|
$ZodGUID.init(inst, def);
|
|
5268
6776
|
ZodStringFormat.init(inst, def);
|
|
5269
6777
|
});
|
|
6778
|
+
function guid(params) {
|
|
6779
|
+
return /* @__PURE__ */ _guid(ZodGUID, params);
|
|
6780
|
+
}
|
|
5270
6781
|
var ZodUUID = /*@__PURE__*/ $constructor("ZodUUID", (inst, def) => {
|
|
5271
6782
|
$ZodUUID.init(inst, def);
|
|
5272
6783
|
ZodStringFormat.init(inst, def);
|
|
5273
6784
|
});
|
|
6785
|
+
function uuid(params) {
|
|
6786
|
+
return /* @__PURE__ */ _uuid(ZodUUID, params);
|
|
6787
|
+
}
|
|
6788
|
+
function uuidv4(params) {
|
|
6789
|
+
return /* @__PURE__ */ _uuidv4(ZodUUID, params);
|
|
6790
|
+
}
|
|
6791
|
+
function uuidv6(params) {
|
|
6792
|
+
return /* @__PURE__ */ _uuidv6(ZodUUID, params);
|
|
6793
|
+
}
|
|
6794
|
+
function uuidv7(params) {
|
|
6795
|
+
return /* @__PURE__ */ _uuidv7(ZodUUID, params);
|
|
6796
|
+
}
|
|
5274
6797
|
var ZodURL = /*@__PURE__*/ $constructor("ZodURL", (inst, def) => {
|
|
5275
6798
|
$ZodURL.init(inst, def);
|
|
5276
6799
|
ZodStringFormat.init(inst, def);
|
|
5277
6800
|
});
|
|
6801
|
+
function url(params) {
|
|
6802
|
+
return /* @__PURE__ */ _url(ZodURL, params);
|
|
6803
|
+
}
|
|
6804
|
+
function httpUrl$1(params) {
|
|
6805
|
+
return /* @__PURE__ */ _url(ZodURL, {
|
|
6806
|
+
protocol: httpProtocol,
|
|
6807
|
+
hostname: domain,
|
|
6808
|
+
...normalizeParams(params)
|
|
6809
|
+
});
|
|
6810
|
+
}
|
|
5278
6811
|
var ZodEmoji = /*@__PURE__*/ $constructor("ZodEmoji", (inst, def) => {
|
|
5279
6812
|
$ZodEmoji.init(inst, def);
|
|
5280
6813
|
ZodStringFormat.init(inst, def);
|
|
5281
6814
|
});
|
|
6815
|
+
function emoji(params) {
|
|
6816
|
+
return /* @__PURE__ */ _emoji(ZodEmoji, params);
|
|
6817
|
+
}
|
|
5282
6818
|
var ZodNanoID = /*@__PURE__*/ $constructor("ZodNanoID", (inst, def) => {
|
|
5283
6819
|
$ZodNanoID.init(inst, def);
|
|
5284
6820
|
ZodStringFormat.init(inst, def);
|
|
5285
6821
|
});
|
|
6822
|
+
function nanoid(params) {
|
|
6823
|
+
return /* @__PURE__ */ _nanoid(ZodNanoID, params);
|
|
6824
|
+
}
|
|
5286
6825
|
/**
|
|
5287
6826
|
* @deprecated CUID v1 is deprecated by its authors due to information leakage
|
|
5288
6827
|
* (timestamps embedded in the id). Use {@link ZodCUID2} instead.
|
|
@@ -5292,54 +6831,143 @@ var ZodCUID = /*@__PURE__*/ $constructor("ZodCUID", (inst, def) => {
|
|
|
5292
6831
|
$ZodCUID.init(inst, def);
|
|
5293
6832
|
ZodStringFormat.init(inst, def);
|
|
5294
6833
|
});
|
|
6834
|
+
/**
|
|
6835
|
+
* Validates a CUID v1 string.
|
|
6836
|
+
*
|
|
6837
|
+
* @deprecated CUID v1 is deprecated by its authors due to information leakage
|
|
6838
|
+
* (timestamps embedded in the id). Use {@link cuid2 | `z.cuid2()`} instead.
|
|
6839
|
+
* See https://github.com/paralleldrive/cuid.
|
|
6840
|
+
*/
|
|
6841
|
+
function cuid(params) {
|
|
6842
|
+
return /* @__PURE__ */ _cuid(ZodCUID, params);
|
|
6843
|
+
}
|
|
5295
6844
|
var ZodCUID2 = /*@__PURE__*/ $constructor("ZodCUID2", (inst, def) => {
|
|
5296
6845
|
$ZodCUID2.init(inst, def);
|
|
5297
6846
|
ZodStringFormat.init(inst, def);
|
|
5298
6847
|
});
|
|
6848
|
+
function cuid2(params) {
|
|
6849
|
+
return /* @__PURE__ */ _cuid2(ZodCUID2, params);
|
|
6850
|
+
}
|
|
5299
6851
|
var ZodULID = /*@__PURE__*/ $constructor("ZodULID", (inst, def) => {
|
|
5300
6852
|
$ZodULID.init(inst, def);
|
|
5301
6853
|
ZodStringFormat.init(inst, def);
|
|
5302
6854
|
});
|
|
6855
|
+
function ulid(params) {
|
|
6856
|
+
return /* @__PURE__ */ _ulid(ZodULID, params);
|
|
6857
|
+
}
|
|
5303
6858
|
var ZodXID = /*@__PURE__*/ $constructor("ZodXID", (inst, def) => {
|
|
5304
6859
|
$ZodXID.init(inst, def);
|
|
5305
6860
|
ZodStringFormat.init(inst, def);
|
|
5306
6861
|
});
|
|
6862
|
+
function xid(params) {
|
|
6863
|
+
return /* @__PURE__ */ _xid(ZodXID, params);
|
|
6864
|
+
}
|
|
5307
6865
|
var ZodKSUID = /*@__PURE__*/ $constructor("ZodKSUID", (inst, def) => {
|
|
5308
6866
|
$ZodKSUID.init(inst, def);
|
|
5309
6867
|
ZodStringFormat.init(inst, def);
|
|
5310
6868
|
});
|
|
6869
|
+
function ksuid(params) {
|
|
6870
|
+
return /* @__PURE__ */ _ksuid(ZodKSUID, params);
|
|
6871
|
+
}
|
|
5311
6872
|
var ZodIPv4 = /*@__PURE__*/ $constructor("ZodIPv4", (inst, def) => {
|
|
5312
6873
|
$ZodIPv4.init(inst, def);
|
|
5313
6874
|
ZodStringFormat.init(inst, def);
|
|
5314
6875
|
});
|
|
6876
|
+
function ipv4(params) {
|
|
6877
|
+
return /* @__PURE__ */ _ipv4(ZodIPv4, params);
|
|
6878
|
+
}
|
|
6879
|
+
var ZodMAC = /*@__PURE__*/ $constructor("ZodMAC", (inst, def) => {
|
|
6880
|
+
$ZodMAC.init(inst, def);
|
|
6881
|
+
ZodStringFormat.init(inst, def);
|
|
6882
|
+
});
|
|
6883
|
+
function mac(params) {
|
|
6884
|
+
return /* @__PURE__ */ _mac(ZodMAC, params);
|
|
6885
|
+
}
|
|
5315
6886
|
var ZodIPv6 = /*@__PURE__*/ $constructor("ZodIPv6", (inst, def) => {
|
|
5316
6887
|
$ZodIPv6.init(inst, def);
|
|
5317
6888
|
ZodStringFormat.init(inst, def);
|
|
5318
6889
|
});
|
|
6890
|
+
function ipv6(params) {
|
|
6891
|
+
return /* @__PURE__ */ _ipv6(ZodIPv6, params);
|
|
6892
|
+
}
|
|
5319
6893
|
var ZodCIDRv4 = /*@__PURE__*/ $constructor("ZodCIDRv4", (inst, def) => {
|
|
5320
6894
|
$ZodCIDRv4.init(inst, def);
|
|
5321
6895
|
ZodStringFormat.init(inst, def);
|
|
5322
6896
|
});
|
|
6897
|
+
function cidrv4(params) {
|
|
6898
|
+
return /* @__PURE__ */ _cidrv4(ZodCIDRv4, params);
|
|
6899
|
+
}
|
|
5323
6900
|
var ZodCIDRv6 = /*@__PURE__*/ $constructor("ZodCIDRv6", (inst, def) => {
|
|
5324
6901
|
$ZodCIDRv6.init(inst, def);
|
|
5325
6902
|
ZodStringFormat.init(inst, def);
|
|
5326
6903
|
});
|
|
6904
|
+
function cidrv6(params) {
|
|
6905
|
+
return /* @__PURE__ */ _cidrv6(ZodCIDRv6, params);
|
|
6906
|
+
}
|
|
5327
6907
|
var ZodBase64 = /*@__PURE__*/ $constructor("ZodBase64", (inst, def) => {
|
|
5328
6908
|
$ZodBase64.init(inst, def);
|
|
5329
6909
|
ZodStringFormat.init(inst, def);
|
|
5330
6910
|
});
|
|
6911
|
+
function base64(params) {
|
|
6912
|
+
return /* @__PURE__ */ _base64(ZodBase64, params);
|
|
6913
|
+
}
|
|
5331
6914
|
var ZodBase64URL = /*@__PURE__*/ $constructor("ZodBase64URL", (inst, def) => {
|
|
5332
6915
|
$ZodBase64URL.init(inst, def);
|
|
5333
6916
|
ZodStringFormat.init(inst, def);
|
|
5334
6917
|
});
|
|
6918
|
+
function base64url(params) {
|
|
6919
|
+
return /* @__PURE__ */ _base64url(ZodBase64URL, params);
|
|
6920
|
+
}
|
|
5335
6921
|
var ZodE164 = /*@__PURE__*/ $constructor("ZodE164", (inst, def) => {
|
|
5336
6922
|
$ZodE164.init(inst, def);
|
|
5337
6923
|
ZodStringFormat.init(inst, def);
|
|
5338
6924
|
});
|
|
6925
|
+
function e164(params) {
|
|
6926
|
+
return /* @__PURE__ */ _e164(ZodE164, params);
|
|
6927
|
+
}
|
|
6928
|
+
var ZodCreditCard = /*@__PURE__*/ $constructor("ZodCreditCard", (inst, def) => {
|
|
6929
|
+
$ZodCreditCard.init(inst, def);
|
|
6930
|
+
ZodStringFormat.init(inst, def);
|
|
6931
|
+
});
|
|
6932
|
+
function creditCard(params) {
|
|
6933
|
+
return /* @__PURE__ */ _creditCard(ZodCreditCard, params);
|
|
6934
|
+
}
|
|
6935
|
+
var ZodIBAN = /*@__PURE__*/ $constructor("ZodIBAN", (inst, def) => {
|
|
6936
|
+
$ZodIBAN.init(inst, def);
|
|
6937
|
+
ZodStringFormat.init(inst, def);
|
|
6938
|
+
});
|
|
6939
|
+
function iban(params) {
|
|
6940
|
+
return /* @__PURE__ */ _iban(ZodIBAN, params);
|
|
6941
|
+
}
|
|
5339
6942
|
var ZodJWT = /*@__PURE__*/ $constructor("ZodJWT", (inst, def) => {
|
|
5340
6943
|
$ZodJWT.init(inst, def);
|
|
5341
6944
|
ZodStringFormat.init(inst, def);
|
|
5342
6945
|
});
|
|
6946
|
+
function jwt(params) {
|
|
6947
|
+
return /* @__PURE__ */ _jwt(ZodJWT, params);
|
|
6948
|
+
}
|
|
6949
|
+
var ZodCustomStringFormat = /*@__PURE__*/ $constructor("ZodCustomStringFormat", (inst, def) => {
|
|
6950
|
+
$ZodCustomStringFormat.init(inst, def);
|
|
6951
|
+
ZodStringFormat.init(inst, def);
|
|
6952
|
+
});
|
|
6953
|
+
function stringFormat(format, fnOrRegex, _params = {}) {
|
|
6954
|
+
return /* @__PURE__ */ _stringFormat(ZodCustomStringFormat, format, fnOrRegex, _params);
|
|
6955
|
+
}
|
|
6956
|
+
function hostname(_params) {
|
|
6957
|
+
return /* @__PURE__ */ _stringFormat(ZodCustomStringFormat, "hostname", hostname$1, _params);
|
|
6958
|
+
}
|
|
6959
|
+
function hex(_params) {
|
|
6960
|
+
return /* @__PURE__ */ _stringFormat(ZodCustomStringFormat, "hex", hex$1, _params);
|
|
6961
|
+
}
|
|
6962
|
+
function currencyCode(_params) {
|
|
6963
|
+
return /* @__PURE__ */ _stringFormat(ZodCustomStringFormat, "currency_code", currencyCode$1, _params);
|
|
6964
|
+
}
|
|
6965
|
+
function hash(alg, params) {
|
|
6966
|
+
const format = `${alg}_${params?.enc ?? "hex"}`;
|
|
6967
|
+
const regex = regexes_exports[format];
|
|
6968
|
+
if (!regex) throw new Error(`Unrecognized hash format: ${format}`);
|
|
6969
|
+
return /* @__PURE__ */ _stringFormat(ZodCustomStringFormat, format, regex, params);
|
|
6970
|
+
}
|
|
5343
6971
|
var ZodNumber = /*@__PURE__*/ $constructor("ZodNumber", (inst, def) => {
|
|
5344
6972
|
$ZodNumber.init(inst, def);
|
|
5345
6973
|
ZodType.init(inst, def);
|
|
@@ -5416,6 +7044,18 @@ var ZodNumberFormat = /*@__PURE__*/ $constructor("ZodNumberFormat", (inst, def)
|
|
|
5416
7044
|
function int(params) {
|
|
5417
7045
|
return /* @__PURE__ */ _int(ZodNumberFormat, params);
|
|
5418
7046
|
}
|
|
7047
|
+
function float32(params) {
|
|
7048
|
+
return /* @__PURE__ */ _float32(ZodNumberFormat, params);
|
|
7049
|
+
}
|
|
7050
|
+
function float64(params) {
|
|
7051
|
+
return /* @__PURE__ */ _float64(ZodNumberFormat, params);
|
|
7052
|
+
}
|
|
7053
|
+
function int32(params) {
|
|
7054
|
+
return /* @__PURE__ */ _int32(ZodNumberFormat, params);
|
|
7055
|
+
}
|
|
7056
|
+
function uint32(params) {
|
|
7057
|
+
return /* @__PURE__ */ _uint32(ZodNumberFormat, params);
|
|
7058
|
+
}
|
|
5419
7059
|
var ZodBoolean = /*@__PURE__*/ $constructor("ZodBoolean", (inst, def) => {
|
|
5420
7060
|
$ZodBoolean.init(inst, def);
|
|
5421
7061
|
ZodType.init(inst, def);
|
|
@@ -5424,6 +7064,78 @@ var ZodBoolean = /*@__PURE__*/ $constructor("ZodBoolean", (inst, def) => {
|
|
|
5424
7064
|
function boolean(params) {
|
|
5425
7065
|
return /* @__PURE__ */ _boolean(ZodBoolean, params);
|
|
5426
7066
|
}
|
|
7067
|
+
var ZodBigInt = /*@__PURE__*/ $constructor("ZodBigInt", (inst, def) => {
|
|
7068
|
+
$ZodBigInt.init(inst, def);
|
|
7069
|
+
ZodType.init(inst, def);
|
|
7070
|
+
inst._zod.processJSONSchema = (ctx, json, params) => bigintProcessor(inst, ctx, json, params);
|
|
7071
|
+
}, /*@__PURE__*/ derived({
|
|
7072
|
+
minValue: (inst) => aggregateChecks(inst).minimum ?? null,
|
|
7073
|
+
maxValue: (inst) => aggregateChecks(inst).maximum ?? null,
|
|
7074
|
+
format: (inst) => aggregateChecks(inst).format ?? null
|
|
7075
|
+
}, {
|
|
7076
|
+
gte(value, params) {
|
|
7077
|
+
return this.check(/* @__PURE__ */ _gte(value, params));
|
|
7078
|
+
},
|
|
7079
|
+
min(value, params) {
|
|
7080
|
+
return this.check(/* @__PURE__ */ _gte(value, params));
|
|
7081
|
+
},
|
|
7082
|
+
gt(value, params) {
|
|
7083
|
+
return this.check(/* @__PURE__ */ _gt(value, params));
|
|
7084
|
+
},
|
|
7085
|
+
lt(value, params) {
|
|
7086
|
+
return this.check(/* @__PURE__ */ _lt(value, params));
|
|
7087
|
+
},
|
|
7088
|
+
lte(value, params) {
|
|
7089
|
+
return this.check(/* @__PURE__ */ _lte(value, params));
|
|
7090
|
+
},
|
|
7091
|
+
max(value, params) {
|
|
7092
|
+
return this.check(/* @__PURE__ */ _lte(value, params));
|
|
7093
|
+
},
|
|
7094
|
+
positive(params) {
|
|
7095
|
+
return this.check(/* @__PURE__ */ _gt(BigInt(0), params));
|
|
7096
|
+
},
|
|
7097
|
+
negative(params) {
|
|
7098
|
+
return this.check(/* @__PURE__ */ _lt(BigInt(0), params));
|
|
7099
|
+
},
|
|
7100
|
+
nonpositive(params) {
|
|
7101
|
+
return this.check(/* @__PURE__ */ _lte(BigInt(0), params));
|
|
7102
|
+
},
|
|
7103
|
+
nonnegative(params) {
|
|
7104
|
+
return this.check(/* @__PURE__ */ _gte(BigInt(0), params));
|
|
7105
|
+
},
|
|
7106
|
+
multipleOf(value, params) {
|
|
7107
|
+
return this.check(/* @__PURE__ */ _multipleOf(value, params));
|
|
7108
|
+
}
|
|
7109
|
+
}));
|
|
7110
|
+
function bigint(params) {
|
|
7111
|
+
return /* @__PURE__ */ _bigint(ZodBigInt, params);
|
|
7112
|
+
}
|
|
7113
|
+
var ZodBigIntFormat = /*@__PURE__*/ $constructor("ZodBigIntFormat", (inst, def) => {
|
|
7114
|
+
$ZodBigIntFormat.init(inst, def);
|
|
7115
|
+
ZodBigInt.init(inst, def);
|
|
7116
|
+
});
|
|
7117
|
+
function int64(params) {
|
|
7118
|
+
return /* @__PURE__ */ _int64(ZodBigIntFormat, params);
|
|
7119
|
+
}
|
|
7120
|
+
function uint64(params) {
|
|
7121
|
+
return /* @__PURE__ */ _uint64(ZodBigIntFormat, params);
|
|
7122
|
+
}
|
|
7123
|
+
var ZodSymbol = /*@__PURE__*/ $constructor("ZodSymbol", (inst, def) => {
|
|
7124
|
+
$ZodSymbol.init(inst, def);
|
|
7125
|
+
ZodType.init(inst, def);
|
|
7126
|
+
inst._zod.processJSONSchema = (ctx, json, params) => symbolProcessor(inst, ctx, json, params);
|
|
7127
|
+
});
|
|
7128
|
+
function symbol(params) {
|
|
7129
|
+
return /* @__PURE__ */ _symbol(ZodSymbol, params);
|
|
7130
|
+
}
|
|
7131
|
+
var ZodUndefined = /*@__PURE__*/ $constructor("ZodUndefined", (inst, def) => {
|
|
7132
|
+
$ZodUndefined.init(inst, def);
|
|
7133
|
+
ZodType.init(inst, def);
|
|
7134
|
+
inst._zod.processJSONSchema = (ctx, json, params) => undefinedProcessor(inst, ctx, json, params);
|
|
7135
|
+
});
|
|
7136
|
+
function _undefined(params) {
|
|
7137
|
+
return /* @__PURE__ */ _undefined$1(ZodUndefined, params);
|
|
7138
|
+
}
|
|
5427
7139
|
var ZodNull = /*@__PURE__*/ $constructor("ZodNull", (inst, def) => {
|
|
5428
7140
|
$ZodNull.init(inst, def);
|
|
5429
7141
|
ZodType.init(inst, def);
|
|
@@ -5432,6 +7144,14 @@ var ZodNull = /*@__PURE__*/ $constructor("ZodNull", (inst, def) => {
|
|
|
5432
7144
|
function _null(params) {
|
|
5433
7145
|
return /* @__PURE__ */ _null$1(ZodNull, params);
|
|
5434
7146
|
}
|
|
7147
|
+
var ZodAny = /*@__PURE__*/ $constructor("ZodAny", (inst, def) => {
|
|
7148
|
+
$ZodAny.init(inst, def);
|
|
7149
|
+
ZodType.init(inst, def);
|
|
7150
|
+
inst._zod.processJSONSchema = (ctx, json, params) => void 0;
|
|
7151
|
+
});
|
|
7152
|
+
function any() {
|
|
7153
|
+
return /* @__PURE__ */ _any(ZodAny);
|
|
7154
|
+
}
|
|
5435
7155
|
var ZodUnknown = /*@__PURE__*/ $constructor("ZodUnknown", (inst, def) => {
|
|
5436
7156
|
$ZodUnknown.init(inst, def);
|
|
5437
7157
|
ZodType.init(inst, def);
|
|
@@ -5448,6 +7168,33 @@ var ZodNever = /*@__PURE__*/ $constructor("ZodNever", (inst, def) => {
|
|
|
5448
7168
|
function never(params) {
|
|
5449
7169
|
return /* @__PURE__ */ _never(ZodNever, params);
|
|
5450
7170
|
}
|
|
7171
|
+
var ZodVoid = /*@__PURE__*/ $constructor("ZodVoid", (inst, def) => {
|
|
7172
|
+
$ZodVoid.init(inst, def);
|
|
7173
|
+
ZodType.init(inst, def);
|
|
7174
|
+
inst._zod.processJSONSchema = (ctx, json, params) => voidProcessor(inst, ctx, json, params);
|
|
7175
|
+
});
|
|
7176
|
+
function _void(params) {
|
|
7177
|
+
return /* @__PURE__ */ _void$1(ZodVoid, params);
|
|
7178
|
+
}
|
|
7179
|
+
var ZodDate = /*@__PURE__*/ $constructor("ZodDate", (inst, def) => {
|
|
7180
|
+
$ZodDate.init(inst, def);
|
|
7181
|
+
ZodType.init(inst, def);
|
|
7182
|
+
inst._zod.processJSONSchema = (ctx, json, params) => dateProcessor(inst, ctx, json, params);
|
|
7183
|
+
inst.min = (value, params) => inst.check(/* @__PURE__ */ _gte(value, params));
|
|
7184
|
+
inst.max = (value, params) => inst.check(/* @__PURE__ */ _lte(value, params));
|
|
7185
|
+
}, /*@__PURE__*/ derived({
|
|
7186
|
+
minDate: (inst) => {
|
|
7187
|
+
const { minimum } = aggregateChecks(inst);
|
|
7188
|
+
return minimum ? new Date(minimum) : null;
|
|
7189
|
+
},
|
|
7190
|
+
maxDate: (inst) => {
|
|
7191
|
+
const { maximum } = aggregateChecks(inst);
|
|
7192
|
+
return maximum ? new Date(maximum) : null;
|
|
7193
|
+
}
|
|
7194
|
+
}, {}));
|
|
7195
|
+
function date$2(params) {
|
|
7196
|
+
return /* @__PURE__ */ _date(ZodDate, params);
|
|
7197
|
+
}
|
|
5451
7198
|
var ZodArray = /*@__PURE__*/ $constructor("ZodArray", (inst, def) => {
|
|
5452
7199
|
_ensureDefaultMemoizer();
|
|
5453
7200
|
$ZodArray.init(inst, def);
|
|
@@ -5474,6 +7221,10 @@ var ZodArray = /*@__PURE__*/ $constructor("ZodArray", (inst, def) => {
|
|
|
5474
7221
|
function array(element, params) {
|
|
5475
7222
|
return /* @__PURE__ */ _array(ZodArray, element, params);
|
|
5476
7223
|
}
|
|
7224
|
+
function keyof(schema) {
|
|
7225
|
+
const shape = schema._zod.def.shape;
|
|
7226
|
+
return _enum(Object.keys(shape));
|
|
7227
|
+
}
|
|
5477
7228
|
var ZodObject = /*@__PURE__*/ $constructor("ZodObject", (inst, def) => {
|
|
5478
7229
|
_ensureDefaultMemoizer();
|
|
5479
7230
|
$ZodObjectJIT.init(inst, def);
|
|
@@ -5539,6 +7290,14 @@ function strictObject(shape, params) {
|
|
|
5539
7290
|
...normalizeParams(params)
|
|
5540
7291
|
});
|
|
5541
7292
|
}
|
|
7293
|
+
function looseObject(shape, params) {
|
|
7294
|
+
return new ZodObject({
|
|
7295
|
+
type: "object",
|
|
7296
|
+
shape,
|
|
7297
|
+
catchall: unknown(),
|
|
7298
|
+
...normalizeParams(params)
|
|
7299
|
+
});
|
|
7300
|
+
}
|
|
5542
7301
|
var ZodUnion = /*@__PURE__*/ $constructor("ZodUnion", (inst, def) => {
|
|
5543
7302
|
$ZodUnion.init(inst, def);
|
|
5544
7303
|
ZodType.init(inst, def);
|
|
@@ -5552,6 +7311,23 @@ function union(options, params) {
|
|
|
5552
7311
|
...normalizeParams(params)
|
|
5553
7312
|
});
|
|
5554
7313
|
}
|
|
7314
|
+
var ZodXor = /*@__PURE__*/ $constructor("ZodXor", (inst, def) => {
|
|
7315
|
+
ZodUnion.init(inst, def);
|
|
7316
|
+
$ZodXor.init(inst, def);
|
|
7317
|
+
inst._zod.processJSONSchema = (ctx, json, params) => unionProcessor(inst, ctx, json, params);
|
|
7318
|
+
inst.options = def.options;
|
|
7319
|
+
});
|
|
7320
|
+
/** Creates an exclusive union (XOR) where exactly one option must match.
|
|
7321
|
+
* Unlike regular unions that succeed when any option matches, xor fails if
|
|
7322
|
+
* zero or more than one option matches the input. */
|
|
7323
|
+
function xor(options, params) {
|
|
7324
|
+
return new ZodXor({
|
|
7325
|
+
type: "union",
|
|
7326
|
+
options,
|
|
7327
|
+
inclusive: false,
|
|
7328
|
+
...normalizeParams(params)
|
|
7329
|
+
});
|
|
7330
|
+
}
|
|
5555
7331
|
var ZodDiscriminatedUnion = /*@__PURE__*/ $constructor("ZodDiscriminatedUnion", (inst, def) => {
|
|
5556
7332
|
ZodUnion.init(inst, def);
|
|
5557
7333
|
$ZodDiscriminatedUnion.init(inst, def);
|
|
@@ -5576,28 +7352,116 @@ function intersection(left, right) {
|
|
|
5576
7352
|
right
|
|
5577
7353
|
});
|
|
5578
7354
|
}
|
|
7355
|
+
var ZodTuple = /*@__PURE__*/ $constructor("ZodTuple", (inst, def) => {
|
|
7356
|
+
_ensureDefaultMemoizer();
|
|
7357
|
+
$ZodTuple.init(inst, def);
|
|
7358
|
+
ZodType.init(inst, def);
|
|
7359
|
+
inst._zod.processJSONSchema = (ctx, json, params) => tupleProcessor(inst, ctx, json, params);
|
|
7360
|
+
}, {
|
|
7361
|
+
rest(rest) {
|
|
7362
|
+
return this.clone({
|
|
7363
|
+
...this._zod.def,
|
|
7364
|
+
rest
|
|
7365
|
+
});
|
|
7366
|
+
},
|
|
7367
|
+
partial() {
|
|
7368
|
+
const def = this._zod.def;
|
|
7369
|
+
if (def.checks?.length) throw new Error(".partial() cannot be used on tuple schemas containing refinements");
|
|
7370
|
+
return this.clone({
|
|
7371
|
+
...def,
|
|
7372
|
+
items: def.items.map((item) => new ZodOptional({
|
|
7373
|
+
type: "optional",
|
|
7374
|
+
innerType: item
|
|
7375
|
+
}))
|
|
7376
|
+
});
|
|
7377
|
+
}
|
|
7378
|
+
});
|
|
7379
|
+
function tuple(items, _paramsOrRest, _params) {
|
|
7380
|
+
const hasRest = _paramsOrRest instanceof $ZodType;
|
|
7381
|
+
return new ZodTuple({
|
|
7382
|
+
type: "tuple",
|
|
7383
|
+
items,
|
|
7384
|
+
rest: hasRest ? _paramsOrRest : null,
|
|
7385
|
+
...normalizeParams(hasRest ? _params : _paramsOrRest)
|
|
7386
|
+
});
|
|
7387
|
+
}
|
|
5579
7388
|
var ZodRecord = /*@__PURE__*/ $constructor("ZodRecord", (inst, def) => {
|
|
5580
7389
|
_ensureDefaultMemoizer();
|
|
5581
7390
|
$ZodRecord.init(inst, def);
|
|
5582
7391
|
ZodType.init(inst, def);
|
|
5583
|
-
inst._zod.processJSONSchema = (ctx, json, params) => recordProcessor(inst, ctx, json, params);
|
|
7392
|
+
inst._zod.processJSONSchema = (ctx, json, params) => recordProcessor(inst, ctx, json, params);
|
|
7393
|
+
inst.keyType = def.keyType;
|
|
7394
|
+
inst.valueType = def.valueType;
|
|
7395
|
+
});
|
|
7396
|
+
function record$3(keyType, valueType, params) {
|
|
7397
|
+
if (!valueType || !valueType._zod) return new ZodRecord({
|
|
7398
|
+
type: "record",
|
|
7399
|
+
keyType: string(),
|
|
7400
|
+
valueType: keyType,
|
|
7401
|
+
...normalizeParams(valueType)
|
|
7402
|
+
});
|
|
7403
|
+
return new ZodRecord({
|
|
7404
|
+
type: "record",
|
|
7405
|
+
keyType,
|
|
7406
|
+
valueType,
|
|
7407
|
+
...normalizeParams(params)
|
|
7408
|
+
});
|
|
7409
|
+
}
|
|
7410
|
+
function partialRecord(keyType, valueType, params) {
|
|
7411
|
+
return new ZodRecord({
|
|
7412
|
+
type: "record",
|
|
7413
|
+
keyType,
|
|
7414
|
+
valueType,
|
|
7415
|
+
...normalizeParams(params),
|
|
7416
|
+
partial: true
|
|
7417
|
+
});
|
|
7418
|
+
}
|
|
7419
|
+
function looseRecord(keyType, valueType, params) {
|
|
7420
|
+
return new ZodRecord({
|
|
7421
|
+
type: "record",
|
|
7422
|
+
keyType,
|
|
7423
|
+
valueType,
|
|
7424
|
+
mode: "loose",
|
|
7425
|
+
...normalizeParams(params)
|
|
7426
|
+
});
|
|
7427
|
+
}
|
|
7428
|
+
var ZodMap = /*@__PURE__*/ $constructor("ZodMap", (inst, def) => {
|
|
7429
|
+
_ensureDefaultMemoizer();
|
|
7430
|
+
$ZodMap.init(inst, def);
|
|
7431
|
+
ZodType.init(inst, def);
|
|
7432
|
+
inst._zod.processJSONSchema = (ctx, json, params) => mapProcessor(inst, ctx, json, params);
|
|
5584
7433
|
inst.keyType = def.keyType;
|
|
5585
7434
|
inst.valueType = def.valueType;
|
|
7435
|
+
inst.min = (...args) => inst.check(/* @__PURE__ */ _minSize(...args));
|
|
7436
|
+
inst.nonempty = (params) => inst.check(/* @__PURE__ */ _minSize(1, params));
|
|
7437
|
+
inst.max = (...args) => inst.check(/* @__PURE__ */ _maxSize(...args));
|
|
7438
|
+
inst.size = (...args) => inst.check(/* @__PURE__ */ _size(...args));
|
|
5586
7439
|
});
|
|
5587
|
-
function
|
|
5588
|
-
|
|
5589
|
-
type: "
|
|
5590
|
-
keyType: string(),
|
|
5591
|
-
valueType: keyType,
|
|
5592
|
-
...normalizeParams(valueType)
|
|
5593
|
-
});
|
|
5594
|
-
return new ZodRecord({
|
|
5595
|
-
type: "record",
|
|
7440
|
+
function map(keyType, valueType, params) {
|
|
7441
|
+
return new ZodMap({
|
|
7442
|
+
type: "map",
|
|
5596
7443
|
keyType,
|
|
5597
7444
|
valueType,
|
|
5598
7445
|
...normalizeParams(params)
|
|
5599
7446
|
});
|
|
5600
7447
|
}
|
|
7448
|
+
var ZodSet = /*@__PURE__*/ $constructor("ZodSet", (inst, def) => {
|
|
7449
|
+
_ensureDefaultMemoizer();
|
|
7450
|
+
$ZodSet.init(inst, def);
|
|
7451
|
+
ZodType.init(inst, def);
|
|
7452
|
+
inst._zod.processJSONSchema = (ctx, json, params) => setProcessor(inst, ctx, json, params);
|
|
7453
|
+
inst.min = (...args) => inst.check(/* @__PURE__ */ _minSize(...args));
|
|
7454
|
+
inst.nonempty = (params) => inst.check(/* @__PURE__ */ _minSize(1, params));
|
|
7455
|
+
inst.max = (...args) => inst.check(/* @__PURE__ */ _maxSize(...args));
|
|
7456
|
+
inst.size = (...args) => inst.check(/* @__PURE__ */ _size(...args));
|
|
7457
|
+
});
|
|
7458
|
+
function set(valueType, params) {
|
|
7459
|
+
return new ZodSet({
|
|
7460
|
+
type: "set",
|
|
7461
|
+
valueType,
|
|
7462
|
+
...normalizeParams(params)
|
|
7463
|
+
});
|
|
7464
|
+
}
|
|
5601
7465
|
var ZodEnum = /*@__PURE__*/ $constructor("ZodEnum", (inst, def) => {
|
|
5602
7466
|
$ZodEnum.init(inst, def);
|
|
5603
7467
|
ZodType.init(inst, def);
|
|
@@ -5635,6 +7499,20 @@ function _enum(values, params) {
|
|
|
5635
7499
|
...normalizeParams(params)
|
|
5636
7500
|
});
|
|
5637
7501
|
}
|
|
7502
|
+
/** @deprecated This API has been merged into `z.enum()`. Use `z.enum()` instead.
|
|
7503
|
+
*
|
|
7504
|
+
* ```ts
|
|
7505
|
+
* enum Colors { red, green, blue }
|
|
7506
|
+
* z.enum(Colors);
|
|
7507
|
+
* ```
|
|
7508
|
+
*/
|
|
7509
|
+
function nativeEnum(entries, params) {
|
|
7510
|
+
return new ZodEnum({
|
|
7511
|
+
type: "enum",
|
|
7512
|
+
entries,
|
|
7513
|
+
...normalizeParams(params)
|
|
7514
|
+
});
|
|
7515
|
+
}
|
|
5638
7516
|
var ZodLiteral = /*@__PURE__*/ $constructor("ZodLiteral", (inst, def) => {
|
|
5639
7517
|
$ZodLiteral.init(inst, def);
|
|
5640
7518
|
ZodType.init(inst, def);
|
|
@@ -5652,6 +7530,17 @@ function literal(value, params) {
|
|
|
5652
7530
|
...normalizeParams(params)
|
|
5653
7531
|
});
|
|
5654
7532
|
}
|
|
7533
|
+
var ZodFile = /*@__PURE__*/ $constructor("ZodFile", (inst, def) => {
|
|
7534
|
+
$ZodFile.init(inst, def);
|
|
7535
|
+
ZodType.init(inst, def);
|
|
7536
|
+
inst._zod.processJSONSchema = (ctx, json, params) => fileProcessor(inst, ctx, json, params);
|
|
7537
|
+
inst.min = (size, params) => inst.check(/* @__PURE__ */ _minSize(size, params));
|
|
7538
|
+
inst.max = (size, params) => inst.check(/* @__PURE__ */ _maxSize(size, params));
|
|
7539
|
+
inst.mime = (types, params) => inst.check(/* @__PURE__ */ _mime(Array.isArray(types) ? types : [types], params));
|
|
7540
|
+
});
|
|
7541
|
+
function file(params) {
|
|
7542
|
+
return /* @__PURE__ */ _file(ZodFile, params);
|
|
7543
|
+
}
|
|
5655
7544
|
var ZodTransform = /*@__PURE__*/ $constructor("ZodTransform", (inst, def) => {
|
|
5656
7545
|
_ensureDefaultMemoizer();
|
|
5657
7546
|
$ZodTransform.init(inst, def);
|
|
@@ -5721,6 +7610,9 @@ function nullable(innerType) {
|
|
|
5721
7610
|
innerType
|
|
5722
7611
|
});
|
|
5723
7612
|
}
|
|
7613
|
+
function nullish(innerType) {
|
|
7614
|
+
return optional(nullable(innerType));
|
|
7615
|
+
}
|
|
5724
7616
|
var ZodDefault = /*@__PURE__*/ $constructor("ZodDefault", (inst, def) => {
|
|
5725
7617
|
$ZodDefault.init(inst, def);
|
|
5726
7618
|
ZodType.init(inst, def);
|
|
@@ -5765,6 +7657,18 @@ function nonoptional(innerType, params) {
|
|
|
5765
7657
|
...normalizeParams(params)
|
|
5766
7658
|
});
|
|
5767
7659
|
}
|
|
7660
|
+
var ZodSuccess = /*@__PURE__*/ $constructor("ZodSuccess", (inst, def) => {
|
|
7661
|
+
$ZodSuccess.init(inst, def);
|
|
7662
|
+
ZodType.init(inst, def);
|
|
7663
|
+
inst._zod.processJSONSchema = (ctx, json, params) => successProcessor(inst, ctx, json, params);
|
|
7664
|
+
inst.unwrap = () => inst._zod.def.innerType;
|
|
7665
|
+
});
|
|
7666
|
+
function success(innerType) {
|
|
7667
|
+
return new ZodSuccess({
|
|
7668
|
+
type: "success",
|
|
7669
|
+
innerType
|
|
7670
|
+
});
|
|
7671
|
+
}
|
|
5768
7672
|
var ZodCatch = /*@__PURE__*/ $constructor("ZodCatch", (inst, def) => {
|
|
5769
7673
|
$ZodCatch.init(inst, def);
|
|
5770
7674
|
ZodType.init(inst, def);
|
|
@@ -5779,6 +7683,14 @@ function _catch(innerType, catchValue) {
|
|
|
5779
7683
|
catchValue: typeof catchValue === "function" ? catchValue : constantCatch(catchValue)
|
|
5780
7684
|
});
|
|
5781
7685
|
}
|
|
7686
|
+
var ZodNaN = /*@__PURE__*/ $constructor("ZodNaN", (inst, def) => {
|
|
7687
|
+
$ZodNaN.init(inst, def);
|
|
7688
|
+
ZodType.init(inst, def);
|
|
7689
|
+
inst._zod.processJSONSchema = (ctx, json, params) => nanProcessor(inst, ctx, json, params);
|
|
7690
|
+
});
|
|
7691
|
+
function nan(params) {
|
|
7692
|
+
return /* @__PURE__ */ _nan(ZodNaN, params);
|
|
7693
|
+
}
|
|
5782
7694
|
var ZodPipe = /*@__PURE__*/ $constructor("ZodPipe", (inst, def) => {
|
|
5783
7695
|
$ZodPipe.init(inst, def);
|
|
5784
7696
|
ZodType.init(inst, def);
|
|
@@ -5793,6 +7705,29 @@ function pipe(in_, out) {
|
|
|
5793
7705
|
out
|
|
5794
7706
|
});
|
|
5795
7707
|
}
|
|
7708
|
+
var ZodCodec = /*@__PURE__*/ $constructor("ZodCodec", (inst, def) => {
|
|
7709
|
+
ZodPipe.init(inst, def);
|
|
7710
|
+
$ZodCodec.init(inst, def);
|
|
7711
|
+
});
|
|
7712
|
+
function codec(in_, out, params) {
|
|
7713
|
+
return new ZodCodec({
|
|
7714
|
+
type: "pipe",
|
|
7715
|
+
in: in_,
|
|
7716
|
+
out,
|
|
7717
|
+
transform: params.decode,
|
|
7718
|
+
reverseTransform: params.encode
|
|
7719
|
+
});
|
|
7720
|
+
}
|
|
7721
|
+
function invertCodec(codec) {
|
|
7722
|
+
const def = codec._zod.def;
|
|
7723
|
+
return new ZodCodec({
|
|
7724
|
+
type: "pipe",
|
|
7725
|
+
in: def.out,
|
|
7726
|
+
out: def.in,
|
|
7727
|
+
transform: def.reverseTransform,
|
|
7728
|
+
reverseTransform: def.transform
|
|
7729
|
+
});
|
|
7730
|
+
}
|
|
5796
7731
|
var ZodPreprocess = /*@__PURE__*/ $constructor("ZodPreprocess", (inst, def) => {
|
|
5797
7732
|
ZodPipe.init(inst, def);
|
|
5798
7733
|
$ZodPreprocess.init(inst, def);
|
|
@@ -5809,6 +7744,18 @@ function readonly(innerType) {
|
|
|
5809
7744
|
innerType
|
|
5810
7745
|
});
|
|
5811
7746
|
}
|
|
7747
|
+
var ZodTemplateLiteral = /*@__PURE__*/ $constructor("ZodTemplateLiteral", (inst, def) => {
|
|
7748
|
+
$ZodTemplateLiteral.init(inst, def);
|
|
7749
|
+
ZodType.init(inst, def);
|
|
7750
|
+
inst._zod.processJSONSchema = (ctx, json, params) => templateLiteralProcessor(inst, ctx, json, params);
|
|
7751
|
+
});
|
|
7752
|
+
function templateLiteral(parts, params) {
|
|
7753
|
+
return new ZodTemplateLiteral({
|
|
7754
|
+
type: "template_literal",
|
|
7755
|
+
parts,
|
|
7756
|
+
...normalizeParams(params)
|
|
7757
|
+
});
|
|
7758
|
+
}
|
|
5812
7759
|
var ZodLazy = /*@__PURE__*/ $constructor("ZodLazy", (inst, def) => {
|
|
5813
7760
|
$ZodLazy.init(inst, def);
|
|
5814
7761
|
ZodType.init(inst, def);
|
|
@@ -5821,17 +7768,81 @@ function lazy(getter) {
|
|
|
5821
7768
|
getter
|
|
5822
7769
|
});
|
|
5823
7770
|
}
|
|
7771
|
+
var ZodPromise = /*@__PURE__*/ $constructor("ZodPromise", (inst, def) => {
|
|
7772
|
+
$ZodPromise.init(inst, def);
|
|
7773
|
+
ZodType.init(inst, def);
|
|
7774
|
+
inst._zod.processJSONSchema = (ctx, json, params) => promiseProcessor(inst, ctx, json, params);
|
|
7775
|
+
inst.unwrap = () => inst._zod.def.innerType;
|
|
7776
|
+
});
|
|
7777
|
+
function promise(innerType) {
|
|
7778
|
+
return new ZodPromise({
|
|
7779
|
+
type: "promise",
|
|
7780
|
+
innerType
|
|
7781
|
+
});
|
|
7782
|
+
}
|
|
7783
|
+
var ZodFunction = /*@__PURE__*/ $constructor("ZodFunction", (inst, def) => {
|
|
7784
|
+
$ZodFunction.init(inst, def);
|
|
7785
|
+
ZodType.init(inst, def);
|
|
7786
|
+
inst._zod.processJSONSchema = (ctx, json, params) => functionProcessor(inst, ctx, json, params);
|
|
7787
|
+
});
|
|
7788
|
+
function _function(params) {
|
|
7789
|
+
return new ZodFunction({
|
|
7790
|
+
type: "function",
|
|
7791
|
+
input: Array.isArray(params?.input) ? tuple(params?.input) : params?.input ?? array(unknown()),
|
|
7792
|
+
output: params?.output ?? unknown()
|
|
7793
|
+
});
|
|
7794
|
+
}
|
|
5824
7795
|
var ZodCustom = /*@__PURE__*/ $constructor("ZodCustom", (inst, def) => {
|
|
5825
7796
|
$ZodCustom.init(inst, def);
|
|
5826
7797
|
ZodType.init(inst, def);
|
|
5827
7798
|
inst._zod.processJSONSchema = (ctx, json, params) => customProcessor(inst, ctx, json, params);
|
|
5828
7799
|
});
|
|
7800
|
+
function check(fn) {
|
|
7801
|
+
const ch = new $ZodCheck({ check: "custom" });
|
|
7802
|
+
ch._zod.check = fn;
|
|
7803
|
+
return ch;
|
|
7804
|
+
}
|
|
7805
|
+
function custom(fn, _params) {
|
|
7806
|
+
return /* @__PURE__ */ _custom(ZodCustom, fn ?? (() => true), _params);
|
|
7807
|
+
}
|
|
5829
7808
|
function refine(fn, _params = {}) {
|
|
5830
7809
|
return /* @__PURE__ */ _refine(ZodCustom, fn, _params);
|
|
5831
7810
|
}
|
|
5832
7811
|
function superRefine(fn, params) {
|
|
5833
7812
|
return /* @__PURE__ */ _superRefine(fn, params);
|
|
5834
7813
|
}
|
|
7814
|
+
var describe = describe$1;
|
|
7815
|
+
var meta = meta$1;
|
|
7816
|
+
var ZodInstanceOf = /*@__PURE__*/ $constructor("ZodInstanceOf", (inst, def) => {
|
|
7817
|
+
ZodCustom.init(inst, def);
|
|
7818
|
+
}, { properties(shape, params) {
|
|
7819
|
+
return this.check(/* @__PURE__ */ _properties(shape, params));
|
|
7820
|
+
} });
|
|
7821
|
+
function _instanceof(cls, params = {}) {
|
|
7822
|
+
const inst = new ZodInstanceOf({
|
|
7823
|
+
type: "custom",
|
|
7824
|
+
check: "custom",
|
|
7825
|
+
fn: (data) => data instanceof cls,
|
|
7826
|
+
abort: true,
|
|
7827
|
+
...normalizeParams(params)
|
|
7828
|
+
});
|
|
7829
|
+
inst._zod.bag.Class = cls;
|
|
7830
|
+
inst._zod.check = (payload) => {
|
|
7831
|
+
if (!(payload.value instanceof cls)) payload.issues.push({
|
|
7832
|
+
code: "invalid_type",
|
|
7833
|
+
expected: cls.name,
|
|
7834
|
+
input: payload.value,
|
|
7835
|
+
inst,
|
|
7836
|
+
path: [...inst._zod.def.path ?? []]
|
|
7837
|
+
});
|
|
7838
|
+
};
|
|
7839
|
+
return inst;
|
|
7840
|
+
}
|
|
7841
|
+
var stringbool = (...args) => /* @__PURE__ */ _stringbool({
|
|
7842
|
+
Codec: ZodCodec,
|
|
7843
|
+
Boolean: ZodBoolean,
|
|
7844
|
+
String: ZodString
|
|
7845
|
+
}, ...args);
|
|
5835
7846
|
function json$5(params) {
|
|
5836
7847
|
const jsonSchema = lazy(() => {
|
|
5837
7848
|
return union([
|
|
@@ -5852,6 +7863,600 @@ function preprocess(fn, schema) {
|
|
|
5852
7863
|
out: schema
|
|
5853
7864
|
});
|
|
5854
7865
|
}
|
|
7866
|
+
//#endregion
|
|
7867
|
+
//#region ../../node_modules/.bun/zod@4.6.5/node_modules/zod/v4/classic/iso.js
|
|
7868
|
+
var iso_exports = /* @__PURE__ */ __exportAll({
|
|
7869
|
+
ZodISODate: () => ZodISODate,
|
|
7870
|
+
ZodISODateTime: () => ZodISODateTime,
|
|
7871
|
+
ZodISODuration: () => ZodISODuration,
|
|
7872
|
+
ZodISOTime: () => ZodISOTime,
|
|
7873
|
+
date: () => date$1,
|
|
7874
|
+
datetime: () => datetime,
|
|
7875
|
+
duration: () => duration,
|
|
7876
|
+
time: () => time$1
|
|
7877
|
+
});
|
|
7878
|
+
function datetime(params) {
|
|
7879
|
+
return /* @__PURE__ */ _isoDateTime(ZodISODateTime, params);
|
|
7880
|
+
}
|
|
7881
|
+
function date$1(params) {
|
|
7882
|
+
return /* @__PURE__ */ _isoDate(ZodISODate, params);
|
|
7883
|
+
}
|
|
7884
|
+
function time$1(params) {
|
|
7885
|
+
return /* @__PURE__ */ _isoTime(ZodISOTime, params);
|
|
7886
|
+
}
|
|
7887
|
+
function duration(params) {
|
|
7888
|
+
return /* @__PURE__ */ _isoDuration(ZodISODuration, params);
|
|
7889
|
+
}
|
|
7890
|
+
//#endregion
|
|
7891
|
+
//#region ../../node_modules/.bun/zod@4.6.5/node_modules/zod/v4/classic/from-json-schema.js
|
|
7892
|
+
var z = {
|
|
7893
|
+
...schemas_exports,
|
|
7894
|
+
...checks_exports,
|
|
7895
|
+
iso: iso_exports
|
|
7896
|
+
};
|
|
7897
|
+
var RECOGNIZED_KEYS = /*@__PURE__*/ new Set([
|
|
7898
|
+
"$schema",
|
|
7899
|
+
"$ref",
|
|
7900
|
+
"$defs",
|
|
7901
|
+
"definitions",
|
|
7902
|
+
"$id",
|
|
7903
|
+
"id",
|
|
7904
|
+
"$comment",
|
|
7905
|
+
"$anchor",
|
|
7906
|
+
"$vocabulary",
|
|
7907
|
+
"$dynamicRef",
|
|
7908
|
+
"$dynamicAnchor",
|
|
7909
|
+
"type",
|
|
7910
|
+
"enum",
|
|
7911
|
+
"const",
|
|
7912
|
+
"anyOf",
|
|
7913
|
+
"oneOf",
|
|
7914
|
+
"allOf",
|
|
7915
|
+
"not",
|
|
7916
|
+
"properties",
|
|
7917
|
+
"required",
|
|
7918
|
+
"additionalProperties",
|
|
7919
|
+
"patternProperties",
|
|
7920
|
+
"propertyNames",
|
|
7921
|
+
"minProperties",
|
|
7922
|
+
"maxProperties",
|
|
7923
|
+
"items",
|
|
7924
|
+
"prefixItems",
|
|
7925
|
+
"additionalItems",
|
|
7926
|
+
"minItems",
|
|
7927
|
+
"maxItems",
|
|
7928
|
+
"uniqueItems",
|
|
7929
|
+
"contains",
|
|
7930
|
+
"minContains",
|
|
7931
|
+
"maxContains",
|
|
7932
|
+
"minLength",
|
|
7933
|
+
"maxLength",
|
|
7934
|
+
"pattern",
|
|
7935
|
+
"format",
|
|
7936
|
+
"minimum",
|
|
7937
|
+
"maximum",
|
|
7938
|
+
"exclusiveMinimum",
|
|
7939
|
+
"exclusiveMaximum",
|
|
7940
|
+
"multipleOf",
|
|
7941
|
+
"description",
|
|
7942
|
+
"default",
|
|
7943
|
+
"contentEncoding",
|
|
7944
|
+
"contentMediaType",
|
|
7945
|
+
"contentSchema",
|
|
7946
|
+
"unevaluatedItems",
|
|
7947
|
+
"unevaluatedProperties",
|
|
7948
|
+
"if",
|
|
7949
|
+
"then",
|
|
7950
|
+
"else",
|
|
7951
|
+
"dependentSchemas",
|
|
7952
|
+
"dependentRequired",
|
|
7953
|
+
"nullable",
|
|
7954
|
+
"readOnly"
|
|
7955
|
+
]);
|
|
7956
|
+
function detectVersion(schema, defaultTarget) {
|
|
7957
|
+
const $schema = schema.$schema;
|
|
7958
|
+
if ($schema === "https://json-schema.org/draft/2020-12/schema") return "draft-2020-12";
|
|
7959
|
+
if ($schema === "http://json-schema.org/draft-07/schema#") return "draft-7";
|
|
7960
|
+
if ($schema === "http://json-schema.org/draft-04/schema#") return "draft-4";
|
|
7961
|
+
return defaultTarget ?? "draft-2020-12";
|
|
7962
|
+
}
|
|
7963
|
+
function applyMinItems(items, minItems) {
|
|
7964
|
+
return items.map((item, index) => index < minItems ? item : item.optional());
|
|
7965
|
+
}
|
|
7966
|
+
function decodeJSONPointerSegment(segment) {
|
|
7967
|
+
return segment.replace(/~1/g, "/").replace(/~0/g, "~");
|
|
7968
|
+
}
|
|
7969
|
+
function resolveRef(ref, ctx) {
|
|
7970
|
+
if (!ref.startsWith("#")) throw new Error("External $ref is not supported, only local refs (#/...) are allowed");
|
|
7971
|
+
const path = ref.slice(1).split("/").filter(Boolean);
|
|
7972
|
+
if (path.length === 0) return ctx.rootSchema;
|
|
7973
|
+
const defsKey = ctx.version === "draft-2020-12" ? "$defs" : "definitions";
|
|
7974
|
+
if (path[0] === defsKey) {
|
|
7975
|
+
const key = path[1] === void 0 ? void 0 : decodeJSONPointerSegment(path[1]);
|
|
7976
|
+
if (!key || !ctx.defs[key]) throw new Error(`Reference not found: ${ref}`);
|
|
7977
|
+
return ctx.defs[key];
|
|
7978
|
+
}
|
|
7979
|
+
throw new Error(`Reference not found: ${ref}`);
|
|
7980
|
+
}
|
|
7981
|
+
/**
|
|
7982
|
+
* Enforces the keywords that constrain an object's own keys — `propertyNames`,
|
|
7983
|
+
* `minProperties`, `maxProperties` — before `objectSchema` runs. The guard has
|
|
7984
|
+
* to see the raw input: an object parse drops `__proto__` and can add keys from
|
|
7985
|
+
* a property `default`, so its output is not the set of names the instance
|
|
7986
|
+
* actually carried.
|
|
7987
|
+
*/
|
|
7988
|
+
function checkObjectGuards(objectSchema, guards) {
|
|
7989
|
+
return z.transform((value) => value).check((payload) => {
|
|
7990
|
+
const value = payload.value;
|
|
7991
|
+
if (typeof value !== "object" || value === null || Array.isArray(value)) return;
|
|
7992
|
+
const keys = Object.getOwnPropertyNames(value);
|
|
7993
|
+
if (guards.minProperties !== void 0 && keys.length < guards.minProperties) payload.issues.push({
|
|
7994
|
+
origin: "object",
|
|
7995
|
+
code: "too_small",
|
|
7996
|
+
minimum: guards.minProperties,
|
|
7997
|
+
inclusive: true,
|
|
7998
|
+
message: `Too small: expected object to have >=${guards.minProperties} properties`,
|
|
7999
|
+
input: value,
|
|
8000
|
+
inst: objectSchema,
|
|
8001
|
+
continue: true
|
|
8002
|
+
});
|
|
8003
|
+
if (guards.maxProperties !== void 0 && keys.length > guards.maxProperties) payload.issues.push({
|
|
8004
|
+
origin: "object",
|
|
8005
|
+
code: "too_big",
|
|
8006
|
+
maximum: guards.maxProperties,
|
|
8007
|
+
inclusive: true,
|
|
8008
|
+
message: `Too big: expected object to have <=${guards.maxProperties} properties`,
|
|
8009
|
+
input: value,
|
|
8010
|
+
inst: objectSchema,
|
|
8011
|
+
continue: true
|
|
8012
|
+
});
|
|
8013
|
+
if (guards.keySchema) for (const key of keys) {
|
|
8014
|
+
const result = guards.keySchema.safeParse(key);
|
|
8015
|
+
if (result.success) continue;
|
|
8016
|
+
payload.issues.push({
|
|
8017
|
+
code: "invalid_key",
|
|
8018
|
+
origin: "record",
|
|
8019
|
+
issues: result.error.issues,
|
|
8020
|
+
input: key,
|
|
8021
|
+
path: [key],
|
|
8022
|
+
continue: true
|
|
8023
|
+
});
|
|
8024
|
+
}
|
|
8025
|
+
}).pipe(objectSchema);
|
|
8026
|
+
}
|
|
8027
|
+
/**
|
|
8028
|
+
* An injective string for JSON data: two values share a key exactly when `uniqueItems` calls them
|
|
8029
|
+
* equal, so duplicate detection is a Map lookup rather than a pairwise walk. Strings and keys are
|
|
8030
|
+
* length-prefixed so no value can spell another one. `null` means "never equal to anything" — a
|
|
8031
|
+
* cycle or a NaN, neither of which JSON can express.
|
|
8032
|
+
*/
|
|
8033
|
+
function canonicalKey(value, seen) {
|
|
8034
|
+
if (value === null) return "z";
|
|
8035
|
+
const type = typeof value;
|
|
8036
|
+
if (type !== "object") {
|
|
8037
|
+
if (type === "number" && Number.isNaN(value)) return null;
|
|
8038
|
+
const raw = String(value);
|
|
8039
|
+
return `${type[0]}${raw.length}:${raw}`;
|
|
8040
|
+
}
|
|
8041
|
+
if (seen.has(value)) return null;
|
|
8042
|
+
seen.add(value);
|
|
8043
|
+
try {
|
|
8044
|
+
if (Array.isArray(value)) {
|
|
8045
|
+
const parts = [];
|
|
8046
|
+
for (const item of value) {
|
|
8047
|
+
const key = canonicalKey(item, seen);
|
|
8048
|
+
if (key === null) return null;
|
|
8049
|
+
parts.push(key);
|
|
8050
|
+
}
|
|
8051
|
+
return `a${parts.length}:[${parts.join(",")}]`;
|
|
8052
|
+
}
|
|
8053
|
+
const keys = Object.keys(value).sort();
|
|
8054
|
+
const parts = [];
|
|
8055
|
+
for (const k of keys) {
|
|
8056
|
+
const key = canonicalKey(value[k], seen);
|
|
8057
|
+
if (key === null) return null;
|
|
8058
|
+
parts.push(`${k.length}:${k}=${key}`);
|
|
8059
|
+
}
|
|
8060
|
+
return `o${parts.length}:{${parts.join(",")}}`;
|
|
8061
|
+
} finally {
|
|
8062
|
+
seen.delete(value);
|
|
8063
|
+
}
|
|
8064
|
+
}
|
|
8065
|
+
var SCHEMA_KEYWORDS = /*@__PURE__*/ new Set([
|
|
8066
|
+
"items",
|
|
8067
|
+
"prefixItems",
|
|
8068
|
+
"additionalItems",
|
|
8069
|
+
"additionalProperties",
|
|
8070
|
+
"contains",
|
|
8071
|
+
"propertyNames",
|
|
8072
|
+
"not",
|
|
8073
|
+
"if",
|
|
8074
|
+
"then",
|
|
8075
|
+
"else",
|
|
8076
|
+
"allOf",
|
|
8077
|
+
"anyOf",
|
|
8078
|
+
"oneOf",
|
|
8079
|
+
"unevaluatedItems",
|
|
8080
|
+
"unevaluatedProperties",
|
|
8081
|
+
"contentSchema"
|
|
8082
|
+
]);
|
|
8083
|
+
var SCHEMA_MAP_KEYWORDS = /*@__PURE__*/ new Set([
|
|
8084
|
+
"properties",
|
|
8085
|
+
"patternProperties",
|
|
8086
|
+
"dependentSchemas",
|
|
8087
|
+
"dependencies",
|
|
8088
|
+
"$defs",
|
|
8089
|
+
"definitions"
|
|
8090
|
+
]);
|
|
8091
|
+
/**
|
|
8092
|
+
* True when a subschema holds a `$ref` anywhere a schema can appear. Only those positions are
|
|
8093
|
+
* walked: `$ref` under `default` or an `x-` annotation is instance data with an ordinary key, and
|
|
8094
|
+
* reading it as a reference would drop a constraint that resolves perfectly well.
|
|
8095
|
+
*/
|
|
8096
|
+
function containsRef(value) {
|
|
8097
|
+
if (typeof value !== "object" || value === null) return false;
|
|
8098
|
+
if (Array.isArray(value)) return value.some(containsRef);
|
|
8099
|
+
if (typeof value.$ref === "string") return true;
|
|
8100
|
+
return Object.entries(value).some(([key, sub]) => {
|
|
8101
|
+
if (SCHEMA_KEYWORDS.has(key)) return containsRef(sub);
|
|
8102
|
+
if (!SCHEMA_MAP_KEYWORDS.has(key) || typeof sub !== "object" || sub === null) return false;
|
|
8103
|
+
return Object.values(sub).some(containsRef);
|
|
8104
|
+
});
|
|
8105
|
+
}
|
|
8106
|
+
function plural(n) {
|
|
8107
|
+
return n === 1 ? "element" : "elements";
|
|
8108
|
+
}
|
|
8109
|
+
/**
|
|
8110
|
+
* Enforces `uniqueItems` and the `contains` family before `arraySchema` runs, for the same reason
|
|
8111
|
+
* `checkObjectGuards` runs pre-pipe: an item parse can apply a nested `default`, so the parsed
|
|
8112
|
+
* array is not the instance the keywords are defined over. A guard issue aborts the pipe, so
|
|
8113
|
+
* `minItems`/`maxItems` are not also reported on the same parse — instance correctness is worth
|
|
8114
|
+
* more than co-reporting two issues.
|
|
8115
|
+
*/
|
|
8116
|
+
function checkArrayGuards(arraySchema, guards) {
|
|
8117
|
+
return z.transform((value) => value).check((payload) => {
|
|
8118
|
+
const items = payload.value;
|
|
8119
|
+
if (!Array.isArray(items)) return;
|
|
8120
|
+
if (guards.uniqueItems === true) {
|
|
8121
|
+
const firstSeen = /* @__PURE__ */ new Map();
|
|
8122
|
+
for (let i = 0; i < items.length; i++) {
|
|
8123
|
+
const key = canonicalKey(items[i], /* @__PURE__ */ new Set());
|
|
8124
|
+
if (key === null) continue;
|
|
8125
|
+
const first = firstSeen.get(key);
|
|
8126
|
+
if (first === void 0) {
|
|
8127
|
+
firstSeen.set(key, i);
|
|
8128
|
+
continue;
|
|
8129
|
+
}
|
|
8130
|
+
payload.issues.push({
|
|
8131
|
+
code: "custom",
|
|
8132
|
+
message: `Array items must be unique: element at index ${i} duplicates the one at index ${first}`,
|
|
8133
|
+
input: items,
|
|
8134
|
+
path: [i],
|
|
8135
|
+
continue: true
|
|
8136
|
+
});
|
|
8137
|
+
}
|
|
8138
|
+
}
|
|
8139
|
+
if (guards.containsSchema) {
|
|
8140
|
+
const minContains = guards.minContains ?? 1;
|
|
8141
|
+
const ceiling = guards.maxContains !== void 0 ? guards.maxContains + 1 : Number.POSITIVE_INFINITY;
|
|
8142
|
+
let matches = 0;
|
|
8143
|
+
for (const item of items) if (guards.containsSchema.safeParse(item).success && ++matches >= ceiling) break;
|
|
8144
|
+
if (matches < minContains) payload.issues.push({
|
|
8145
|
+
code: "custom",
|
|
8146
|
+
message: `Array must contain at least ${minContains} matching ${plural(minContains)}; found ${matches}`,
|
|
8147
|
+
input: items,
|
|
8148
|
+
continue: true
|
|
8149
|
+
});
|
|
8150
|
+
if (guards.maxContains !== void 0 && matches > guards.maxContains) payload.issues.push({
|
|
8151
|
+
code: "custom",
|
|
8152
|
+
message: `Array must contain at most ${guards.maxContains} matching ${plural(guards.maxContains)}`,
|
|
8153
|
+
input: items,
|
|
8154
|
+
continue: true
|
|
8155
|
+
});
|
|
8156
|
+
}
|
|
8157
|
+
}).pipe(arraySchema);
|
|
8158
|
+
}
|
|
8159
|
+
function getTupleRest(restSchema, ctx) {
|
|
8160
|
+
if (restSchema === false) return;
|
|
8161
|
+
if (restSchema === void 0 || restSchema === true) return z.any();
|
|
8162
|
+
return convertSchema(restSchema, ctx);
|
|
8163
|
+
}
|
|
8164
|
+
var fullTime = /^(?:[01]\d|2[0-3]):[0-5]\d:[0-5]\d(?:\.\d+)?(?:Z|[+-](?:[01]\d|2[0-3]):[0-5]\d)$/;
|
|
8165
|
+
function convertBaseSchema(schema, ctx) {
|
|
8166
|
+
if (schema.not !== void 0) {
|
|
8167
|
+
if (typeof schema.not === "object" && Object.keys(schema.not).length === 0) return z.never();
|
|
8168
|
+
throw new Error("not is not supported in Zod (except { not: {} } for never)");
|
|
8169
|
+
}
|
|
8170
|
+
if (schema.unevaluatedItems !== void 0) throw new Error("unevaluatedItems is not supported");
|
|
8171
|
+
if (schema.unevaluatedProperties !== void 0) throw new Error("unevaluatedProperties is not supported");
|
|
8172
|
+
if (schema.if !== void 0 || schema.then !== void 0 || schema.else !== void 0) throw new Error("Conditional schemas (if/then/else) are not supported");
|
|
8173
|
+
if (schema.dependentSchemas !== void 0 || schema.dependentRequired !== void 0) throw new Error("dependentSchemas and dependentRequired are not supported");
|
|
8174
|
+
if (schema.$ref) {
|
|
8175
|
+
const refPath = schema.$ref;
|
|
8176
|
+
if (ctx.refs.has(refPath)) return ctx.refs.get(refPath);
|
|
8177
|
+
if (ctx.processing.has(refPath)) return z.lazy(() => {
|
|
8178
|
+
if (!ctx.refs.has(refPath)) throw new Error(`Circular reference not resolved: ${refPath}`);
|
|
8179
|
+
return ctx.refs.get(refPath);
|
|
8180
|
+
});
|
|
8181
|
+
ctx.processing.add(refPath);
|
|
8182
|
+
const zodSchema = convertSchema(resolveRef(refPath, ctx), ctx);
|
|
8183
|
+
ctx.refs.set(refPath, zodSchema);
|
|
8184
|
+
ctx.processing.delete(refPath);
|
|
8185
|
+
return zodSchema;
|
|
8186
|
+
}
|
|
8187
|
+
if (schema.enum !== void 0) {
|
|
8188
|
+
const enumValues = schema.enum;
|
|
8189
|
+
if (ctx.version === "openapi-3.0" && schema.nullable === true && enumValues.length === 1 && enumValues[0] === null) return z.null();
|
|
8190
|
+
if (enumValues.length === 0) return z.never();
|
|
8191
|
+
if (enumValues.length === 1) return z.literal(enumValues[0]);
|
|
8192
|
+
if (enumValues.every((v) => typeof v === "string")) return z.enum(enumValues);
|
|
8193
|
+
const literalSchemas = enumValues.map((v) => z.literal(v));
|
|
8194
|
+
if (literalSchemas.length < 2) return literalSchemas[0];
|
|
8195
|
+
return z.union([
|
|
8196
|
+
literalSchemas[0],
|
|
8197
|
+
literalSchemas[1],
|
|
8198
|
+
...literalSchemas.slice(2)
|
|
8199
|
+
]);
|
|
8200
|
+
}
|
|
8201
|
+
if (schema.const !== void 0) return z.literal(schema.const);
|
|
8202
|
+
const type = schema.type;
|
|
8203
|
+
if (Array.isArray(type)) {
|
|
8204
|
+
const typeSchemas = type.map((t) => {
|
|
8205
|
+
return convertBaseSchema({
|
|
8206
|
+
...schema,
|
|
8207
|
+
type: t
|
|
8208
|
+
}, ctx);
|
|
8209
|
+
});
|
|
8210
|
+
if (typeSchemas.length === 0) return z.never();
|
|
8211
|
+
if (typeSchemas.length === 1) return typeSchemas[0];
|
|
8212
|
+
return z.union(typeSchemas);
|
|
8213
|
+
}
|
|
8214
|
+
if (!type) return z.any();
|
|
8215
|
+
let zodSchema;
|
|
8216
|
+
switch (type) {
|
|
8217
|
+
case "string": {
|
|
8218
|
+
let stringSchema = z.string();
|
|
8219
|
+
if (schema.format) {
|
|
8220
|
+
const format = schema.format;
|
|
8221
|
+
if (format === "email") stringSchema = stringSchema.check(z.email());
|
|
8222
|
+
else if (format === "uri" || format === "uri-reference") stringSchema = stringSchema.check(z.url());
|
|
8223
|
+
else if (format === "uuid" || format === "guid") stringSchema = stringSchema.check(z.uuid());
|
|
8224
|
+
else if (format === "date-time") stringSchema = stringSchema.check(z.iso.datetime({ offset: true }));
|
|
8225
|
+
else if (format === "date") stringSchema = stringSchema.check(z.iso.date());
|
|
8226
|
+
else if (format === "time") stringSchema = stringSchema.check(z.regex(fullTime));
|
|
8227
|
+
else if (format === "duration") stringSchema = stringSchema.check(z.iso.duration());
|
|
8228
|
+
else if (format === "hostname") stringSchema = stringSchema.check(z.hostname());
|
|
8229
|
+
else if (format === "ipv4") stringSchema = stringSchema.check(z.ipv4());
|
|
8230
|
+
else if (format === "ipv6") stringSchema = stringSchema.check(z.ipv6());
|
|
8231
|
+
else if (format === "mac") stringSchema = stringSchema.check(z.mac());
|
|
8232
|
+
else if (format === "cidr") stringSchema = stringSchema.check(z.cidrv4());
|
|
8233
|
+
else if (format === "cidr-v6") stringSchema = stringSchema.check(z.cidrv6());
|
|
8234
|
+
else if (format === "base64") stringSchema = stringSchema.check(z.base64());
|
|
8235
|
+
else if (format === "base64url") stringSchema = stringSchema.check(z.base64url());
|
|
8236
|
+
else if (format === "e164") stringSchema = stringSchema.check(z.e164());
|
|
8237
|
+
else if (format === "credit_card") stringSchema = stringSchema.check(z.creditCard());
|
|
8238
|
+
else if (format === "iban") stringSchema = stringSchema.check(z.iban());
|
|
8239
|
+
else if (format === "jwt") stringSchema = stringSchema.check(z.jwt());
|
|
8240
|
+
else if (format === "emoji") stringSchema = stringSchema.check(z.emoji());
|
|
8241
|
+
else if (format === "nanoid") stringSchema = stringSchema.check(z.nanoid());
|
|
8242
|
+
else if (format === "cuid") stringSchema = stringSchema.check(z.cuid());
|
|
8243
|
+
else if (format === "cuid2") stringSchema = stringSchema.check(z.cuid2());
|
|
8244
|
+
else if (format === "ulid") stringSchema = stringSchema.check(z.ulid());
|
|
8245
|
+
else if (format === "xid") stringSchema = stringSchema.check(z.xid());
|
|
8246
|
+
else if (format === "ksuid") stringSchema = stringSchema.check(z.ksuid());
|
|
8247
|
+
}
|
|
8248
|
+
if (typeof schema.minLength === "number") stringSchema = stringSchema.min(schema.minLength);
|
|
8249
|
+
if (typeof schema.maxLength === "number") stringSchema = stringSchema.max(schema.maxLength);
|
|
8250
|
+
if (schema.pattern) stringSchema = stringSchema.regex(new RegExp(schema.pattern));
|
|
8251
|
+
zodSchema = stringSchema;
|
|
8252
|
+
break;
|
|
8253
|
+
}
|
|
8254
|
+
case "number":
|
|
8255
|
+
case "integer": {
|
|
8256
|
+
let numberSchema = type === "integer" ? z.number().int() : z.number();
|
|
8257
|
+
if (typeof schema.minimum === "number" && schema.exclusiveMinimum !== true) numberSchema = numberSchema.min(schema.minimum);
|
|
8258
|
+
if (typeof schema.maximum === "number" && schema.exclusiveMaximum !== true) numberSchema = numberSchema.max(schema.maximum);
|
|
8259
|
+
if (typeof schema.exclusiveMinimum === "number") numberSchema = numberSchema.gt(schema.exclusiveMinimum);
|
|
8260
|
+
else if (schema.exclusiveMinimum === true && typeof schema.minimum === "number") numberSchema = numberSchema.gt(schema.minimum);
|
|
8261
|
+
if (typeof schema.exclusiveMaximum === "number") numberSchema = numberSchema.lt(schema.exclusiveMaximum);
|
|
8262
|
+
else if (schema.exclusiveMaximum === true && typeof schema.maximum === "number") numberSchema = numberSchema.lt(schema.maximum);
|
|
8263
|
+
if (typeof schema.multipleOf === "number") numberSchema = numberSchema.multipleOf(schema.multipleOf);
|
|
8264
|
+
zodSchema = numberSchema;
|
|
8265
|
+
break;
|
|
8266
|
+
}
|
|
8267
|
+
case "boolean":
|
|
8268
|
+
zodSchema = z.boolean();
|
|
8269
|
+
break;
|
|
8270
|
+
case "null":
|
|
8271
|
+
zodSchema = z.null();
|
|
8272
|
+
break;
|
|
8273
|
+
case "object": {
|
|
8274
|
+
const shape = {};
|
|
8275
|
+
const properties = schema.properties || {};
|
|
8276
|
+
const requiredSet = new Set(schema.required || []);
|
|
8277
|
+
const additionalSchema = typeof schema.additionalProperties === "object" ? convertSchema(schema.additionalProperties, ctx) : void 0;
|
|
8278
|
+
for (const [key, propSchema] of Object.entries(properties)) {
|
|
8279
|
+
const propZodSchema = convertSchema(propSchema, ctx);
|
|
8280
|
+
assignProp(shape, key, requiredSet.has(key) ? propZodSchema : propZodSchema.optional());
|
|
8281
|
+
}
|
|
8282
|
+
if (schema.patternProperties) {
|
|
8283
|
+
const patternProps = schema.patternProperties;
|
|
8284
|
+
const patternKeys = Object.keys(patternProps);
|
|
8285
|
+
const looseRecords = [];
|
|
8286
|
+
for (const pattern of patternKeys) {
|
|
8287
|
+
const patternValue = convertSchema(patternProps[pattern], ctx);
|
|
8288
|
+
const keySchema = z.string().regex(new RegExp(pattern));
|
|
8289
|
+
looseRecords.push(z.looseRecord(keySchema, patternValue));
|
|
8290
|
+
}
|
|
8291
|
+
const schemasToIntersect = [];
|
|
8292
|
+
if (Object.keys(shape).length > 0) schemasToIntersect.push(z.object(shape).passthrough());
|
|
8293
|
+
schemasToIntersect.push(...looseRecords);
|
|
8294
|
+
if (schemasToIntersect.length === 0) zodSchema = z.object({}).passthrough();
|
|
8295
|
+
else if (schemasToIntersect.length === 1) zodSchema = schemasToIntersect[0];
|
|
8296
|
+
else {
|
|
8297
|
+
let result = z.intersection(schemasToIntersect[0], schemasToIntersect[1]);
|
|
8298
|
+
for (let i = 2; i < schemasToIntersect.length; i++) result = z.intersection(result, schemasToIntersect[i]);
|
|
8299
|
+
zodSchema = result;
|
|
8300
|
+
}
|
|
8301
|
+
if (schema.additionalProperties === false) {
|
|
8302
|
+
const propertyKeys = Object.keys(shape);
|
|
8303
|
+
const patterns = patternKeys.map((p) => new RegExp(p));
|
|
8304
|
+
const basePatternSchema = zodSchema;
|
|
8305
|
+
zodSchema = zodSchema.check((payload) => {
|
|
8306
|
+
if (!isPlainObject$1(payload.value)) return;
|
|
8307
|
+
const unrecognized = [];
|
|
8308
|
+
for (const key of Object.keys(payload.value)) {
|
|
8309
|
+
if (propertyKeys.includes(key)) continue;
|
|
8310
|
+
if (patterns.some((regex) => regex.test(key))) continue;
|
|
8311
|
+
unrecognized.push(key);
|
|
8312
|
+
}
|
|
8313
|
+
if (unrecognized.length) payload.issues.push({
|
|
8314
|
+
code: "unrecognized_keys",
|
|
8315
|
+
keys: unrecognized,
|
|
8316
|
+
input: payload.value,
|
|
8317
|
+
inst: basePatternSchema
|
|
8318
|
+
});
|
|
8319
|
+
});
|
|
8320
|
+
}
|
|
8321
|
+
} else {
|
|
8322
|
+
const objectSchema = z.object(shape);
|
|
8323
|
+
if (schema.additionalProperties === false) zodSchema = objectSchema.strict();
|
|
8324
|
+
else if (additionalSchema) zodSchema = objectSchema.catchall(additionalSchema);
|
|
8325
|
+
else zodSchema = objectSchema.passthrough();
|
|
8326
|
+
}
|
|
8327
|
+
const hasKeyGuard = schema.propertyNames !== void 0 && schema.propertyNames !== true;
|
|
8328
|
+
const minProperties = typeof schema.minProperties === "number" ? schema.minProperties : void 0;
|
|
8329
|
+
const maxProperties = typeof schema.maxProperties === "number" ? schema.maxProperties : void 0;
|
|
8330
|
+
if (hasKeyGuard || minProperties !== void 0 || maxProperties !== void 0) {
|
|
8331
|
+
let keySchema;
|
|
8332
|
+
if (hasKeyGuard) keySchema = convertSchema(typeof schema.propertyNames === "object" && schema.propertyNames.type === void 0 ? {
|
|
8333
|
+
type: "string",
|
|
8334
|
+
...schema.propertyNames
|
|
8335
|
+
} : schema.propertyNames, ctx);
|
|
8336
|
+
zodSchema = checkObjectGuards(zodSchema, {
|
|
8337
|
+
keySchema,
|
|
8338
|
+
minProperties,
|
|
8339
|
+
maxProperties
|
|
8340
|
+
});
|
|
8341
|
+
}
|
|
8342
|
+
break;
|
|
8343
|
+
}
|
|
8344
|
+
case "array": {
|
|
8345
|
+
const prefixItems = schema.prefixItems;
|
|
8346
|
+
const items = schema.items;
|
|
8347
|
+
if (prefixItems && Array.isArray(prefixItems)) {
|
|
8348
|
+
const minItems = typeof schema.minItems === "number" ? schema.minItems : 0;
|
|
8349
|
+
const positionalItems = applyMinItems(prefixItems.map((item) => convertSchema(item, ctx)), minItems);
|
|
8350
|
+
const rest = !Array.isArray(items) ? getTupleRest(items, ctx) : void 0;
|
|
8351
|
+
const tupleSchema = z.tuple(positionalItems);
|
|
8352
|
+
zodSchema = rest ? tupleSchema.rest(rest) : tupleSchema;
|
|
8353
|
+
if (typeof schema.minItems === "number") zodSchema = zodSchema.check(z.minLength(schema.minItems));
|
|
8354
|
+
if (typeof schema.maxItems === "number") zodSchema = zodSchema.check(z.maxLength(schema.maxItems));
|
|
8355
|
+
} else if (Array.isArray(items)) {
|
|
8356
|
+
const minItems = typeof schema.minItems === "number" ? schema.minItems : 0;
|
|
8357
|
+
const positionalItems = applyMinItems(items.map((item) => convertSchema(item, ctx)), minItems);
|
|
8358
|
+
const rest = getTupleRest(schema.additionalItems, ctx);
|
|
8359
|
+
const tupleSchema = z.tuple(positionalItems);
|
|
8360
|
+
zodSchema = rest ? tupleSchema.rest(rest) : tupleSchema;
|
|
8361
|
+
if (typeof schema.minItems === "number") zodSchema = zodSchema.check(z.minLength(schema.minItems));
|
|
8362
|
+
if (typeof schema.maxItems === "number") zodSchema = zodSchema.check(z.maxLength(schema.maxItems));
|
|
8363
|
+
} else if (items !== void 0) {
|
|
8364
|
+
const element = convertSchema(items, ctx);
|
|
8365
|
+
let arraySchema = z.array(element);
|
|
8366
|
+
if (typeof schema.minItems === "number") arraySchema = arraySchema.min(schema.minItems);
|
|
8367
|
+
if (typeof schema.maxItems === "number") arraySchema = arraySchema.max(schema.maxItems);
|
|
8368
|
+
zodSchema = arraySchema;
|
|
8369
|
+
} else zodSchema = z.array(z.any());
|
|
8370
|
+
if (schema.uniqueItems === true || schema.contains !== void 0) zodSchema = checkArrayGuards(zodSchema, {
|
|
8371
|
+
uniqueItems: schema.uniqueItems === true,
|
|
8372
|
+
containsSchema: schema.contains !== void 0 ? convertSchema(schema.contains, ctx) : void 0,
|
|
8373
|
+
minContains: typeof schema.minContains === "number" ? schema.minContains : void 0,
|
|
8374
|
+
maxContains: typeof schema.maxContains === "number" ? schema.maxContains : void 0
|
|
8375
|
+
});
|
|
8376
|
+
break;
|
|
8377
|
+
}
|
|
8378
|
+
default: throw new Error(`Unsupported type: ${type}`);
|
|
8379
|
+
}
|
|
8380
|
+
return zodSchema;
|
|
8381
|
+
}
|
|
8382
|
+
function convertSchema(schema, ctx) {
|
|
8383
|
+
if (typeof schema === "boolean") return schema ? z.any() : z.never();
|
|
8384
|
+
let baseSchema = convertBaseSchema(schema, ctx);
|
|
8385
|
+
const hasExplicitType = schema.type || schema.enum !== void 0 || schema.const !== void 0;
|
|
8386
|
+
if (schema.anyOf && Array.isArray(schema.anyOf)) {
|
|
8387
|
+
const options = schema.anyOf.map((s) => convertSchema(s, ctx));
|
|
8388
|
+
const anyOfUnion = z.union(options);
|
|
8389
|
+
baseSchema = hasExplicitType ? z.intersection(baseSchema, anyOfUnion) : anyOfUnion;
|
|
8390
|
+
}
|
|
8391
|
+
if (schema.oneOf && Array.isArray(schema.oneOf)) {
|
|
8392
|
+
const options = schema.oneOf.map((s) => convertSchema(s, ctx));
|
|
8393
|
+
const oneOfUnion = z.xor(options);
|
|
8394
|
+
baseSchema = hasExplicitType ? z.intersection(baseSchema, oneOfUnion) : oneOfUnion;
|
|
8395
|
+
}
|
|
8396
|
+
if (schema.allOf && Array.isArray(schema.allOf)) {
|
|
8397
|
+
if (schema.allOf.length === 0) baseSchema = hasExplicitType ? baseSchema : z.any();
|
|
8398
|
+
else {
|
|
8399
|
+
let result = hasExplicitType ? baseSchema : convertSchema(schema.allOf[0], ctx);
|
|
8400
|
+
const startIdx = hasExplicitType ? 0 : 1;
|
|
8401
|
+
for (let i = startIdx; i < schema.allOf.length; i++) result = z.intersection(result, convertSchema(schema.allOf[i], ctx));
|
|
8402
|
+
baseSchema = result;
|
|
8403
|
+
}
|
|
8404
|
+
}
|
|
8405
|
+
if (schema.nullable === true && ctx.version === "openapi-3.0") baseSchema = z.nullable(baseSchema);
|
|
8406
|
+
if (schema.readOnly === true) baseSchema = z.readonly(baseSchema);
|
|
8407
|
+
if (schema.default !== void 0) baseSchema = baseSchema.default(schema.default);
|
|
8408
|
+
const extraMeta = {};
|
|
8409
|
+
for (const key of [
|
|
8410
|
+
"$id",
|
|
8411
|
+
"id",
|
|
8412
|
+
"$comment",
|
|
8413
|
+
"$anchor",
|
|
8414
|
+
"$vocabulary",
|
|
8415
|
+
"$dynamicRef",
|
|
8416
|
+
"$dynamicAnchor"
|
|
8417
|
+
]) if (key in schema) extraMeta[key] = schema[key];
|
|
8418
|
+
for (const key of [
|
|
8419
|
+
"contentEncoding",
|
|
8420
|
+
"contentMediaType",
|
|
8421
|
+
"contentSchema"
|
|
8422
|
+
]) if (key in schema) extraMeta[key] = schema[key];
|
|
8423
|
+
if (schema.type === "object" && schema.$ref === void 0) {
|
|
8424
|
+
if (schema.propertyNames !== void 0 && !containsRef(schema.propertyNames)) extraMeta.propertyNames = schema.propertyNames;
|
|
8425
|
+
for (const key of ["minProperties", "maxProperties"]) if (schema[key] !== void 0) extraMeta[key] = schema[key];
|
|
8426
|
+
}
|
|
8427
|
+
if (schema.type === "array" && schema.$ref === void 0) {
|
|
8428
|
+
if (schema.contains !== void 0 && !containsRef(schema.contains)) extraMeta.contains = schema.contains;
|
|
8429
|
+
for (const key of [
|
|
8430
|
+
"uniqueItems",
|
|
8431
|
+
"minContains",
|
|
8432
|
+
"maxContains"
|
|
8433
|
+
]) if (schema[key] !== void 0) extraMeta[key] = schema[key];
|
|
8434
|
+
}
|
|
8435
|
+
for (const key of Object.keys(schema)) if (!RECOGNIZED_KEYS.has(key)) assignProp(extraMeta, key, schema[key]);
|
|
8436
|
+
if (Object.keys(extraMeta).length > 0) ctx.registry.add(baseSchema, extraMeta);
|
|
8437
|
+
if (schema.description) baseSchema = baseSchema.describe(schema.description);
|
|
8438
|
+
return baseSchema;
|
|
8439
|
+
}
|
|
8440
|
+
/**
|
|
8441
|
+
* Converts a JSON Schema to a Zod schema. This function should be considered semi-experimental. It's behavior is liable to change. */
|
|
8442
|
+
function fromJSONSchema(schema, params) {
|
|
8443
|
+
if (typeof schema === "boolean") return schema ? z.any() : z.never();
|
|
8444
|
+
let normalized;
|
|
8445
|
+
try {
|
|
8446
|
+
normalized = JSON.parse(JSON.stringify(schema));
|
|
8447
|
+
} catch {
|
|
8448
|
+
throw new Error("fromJSONSchema input is not valid JSON (possibly cyclic); use $defs/$ref for recursive schemas");
|
|
8449
|
+
}
|
|
8450
|
+
const ctx = {
|
|
8451
|
+
version: detectVersion(normalized, params?.defaultTarget),
|
|
8452
|
+
defs: normalized.$defs || normalized.definitions || {},
|
|
8453
|
+
refs: /* @__PURE__ */ new Map(),
|
|
8454
|
+
processing: /* @__PURE__ */ new Set(),
|
|
8455
|
+
rootSchema: normalized,
|
|
8456
|
+
registry: params?.registry ?? globalRegistry
|
|
8457
|
+
};
|
|
8458
|
+
return convertSchema(normalized, ctx);
|
|
8459
|
+
}
|
|
5855
8460
|
/** Transient operations on each connected canvas's own viewport. */
|
|
5856
8461
|
var canvasCommandSchema = discriminatedUnion("type", [
|
|
5857
8462
|
strictObject({
|
|
@@ -6853,6 +9458,59 @@ function setConditionInput(node, handle, mapping) {
|
|
|
6853
9458
|
})
|
|
6854
9459
|
};
|
|
6855
9460
|
}
|
|
9461
|
+
//#endregion
|
|
9462
|
+
//#region src/flow/common/retry.ts
|
|
9463
|
+
var retryNodeTypes = [
|
|
9464
|
+
"code",
|
|
9465
|
+
"connector",
|
|
9466
|
+
"openapi",
|
|
9467
|
+
"llm",
|
|
9468
|
+
"decision"
|
|
9469
|
+
];
|
|
9470
|
+
var nodeRetryLimits = {
|
|
9471
|
+
maxRetries: 5,
|
|
9472
|
+
minIntervalMs: 1e3,
|
|
9473
|
+
maxIntervalMs: 6e4,
|
|
9474
|
+
intervalStepMs: 1e3
|
|
9475
|
+
};
|
|
9476
|
+
var retryConfigurationSchema = strictObject({
|
|
9477
|
+
maxRetries: number().int().min(0).max(nodeRetryLimits.maxRetries),
|
|
9478
|
+
intervalMs: number().int().min(nodeRetryLimits.minIntervalMs).max(nodeRetryLimits.maxIntervalMs).multipleOf(nodeRetryLimits.intervalStepMs)
|
|
9479
|
+
});
|
|
9480
|
+
function supportsNodeRetry(node) {
|
|
9481
|
+
return node.kind == "task" && retryNodeTypes.some((type) => type == ("moduleId" in node.task ? "code" : node.task.executor.kind));
|
|
9482
|
+
}
|
|
9483
|
+
//#endregion
|
|
9484
|
+
//#region src/flow/common/errorHandling.ts
|
|
9485
|
+
var nodeErrorSchema = {
|
|
9486
|
+
type: "object",
|
|
9487
|
+
additionalProperties: false,
|
|
9488
|
+
required: [
|
|
9489
|
+
"code",
|
|
9490
|
+
"message",
|
|
9491
|
+
"nodeId",
|
|
9492
|
+
"nodeName",
|
|
9493
|
+
"runId",
|
|
9494
|
+
"executionId"
|
|
9495
|
+
],
|
|
9496
|
+
properties: {
|
|
9497
|
+
code: { type: "string" },
|
|
9498
|
+
message: { type: "string" },
|
|
9499
|
+
nodeId: { type: "string" },
|
|
9500
|
+
nodeName: { type: "string" },
|
|
9501
|
+
runId: { type: "string" },
|
|
9502
|
+
executionId: { type: "string" }
|
|
9503
|
+
}
|
|
9504
|
+
};
|
|
9505
|
+
function supportsNodeErrorHandling(node) {
|
|
9506
|
+
return supportsNodeRetry(node);
|
|
9507
|
+
}
|
|
9508
|
+
function nodeSystemOutputPorts(node) {
|
|
9509
|
+
return supportsNodeErrorHandling(node) && node.onError == "error" ? { error: {
|
|
9510
|
+
jsonSchema: nodeErrorSchema,
|
|
9511
|
+
nullable: true
|
|
9512
|
+
} } : {};
|
|
9513
|
+
}
|
|
6856
9514
|
function resourceNameIssue(value) {
|
|
6857
9515
|
const name = value.trim();
|
|
6858
9516
|
if (name.length == 0) return "empty";
|
|
@@ -6998,10 +9656,10 @@ function upgradeRevisionContent(content) {
|
|
|
6998
9656
|
function upgradeDecodedRevisionContent(content) {
|
|
6999
9657
|
const graph = content.document.graph;
|
|
7000
9658
|
const hasManual = Object.values(graph.nodes).some((node) => node.kind == "manual");
|
|
7001
|
-
if (!hasManual && content.modelVersion ==
|
|
9659
|
+
if (!hasManual && content.modelVersion == 9) return content;
|
|
7002
9660
|
return {
|
|
7003
9661
|
...content,
|
|
7004
|
-
modelVersion:
|
|
9662
|
+
modelVersion: 9,
|
|
7005
9663
|
document: {
|
|
7006
9664
|
...content.document,
|
|
7007
9665
|
graph: hasManual ? {
|
|
@@ -7036,7 +9694,7 @@ function invalid(message) {
|
|
|
7036
9694
|
throw new FlowChangeError(message);
|
|
7037
9695
|
}
|
|
7038
9696
|
function applyFlowChanges(content, operations) {
|
|
7039
|
-
const source = content.modelVersion !=
|
|
9697
|
+
const source = content.modelVersion != 9 || Object.values(content.document.graph.nodes).some((node) => node.kind == "manual") ? decodeRevisionContent(content) : content;
|
|
7040
9698
|
const document = { ...source.document };
|
|
7041
9699
|
const modules = { ...source.modules };
|
|
7042
9700
|
for (const operation of operations) switch (operation.kind) {
|
|
@@ -7208,6 +9866,8 @@ function applyFlowChanges(content, operations) {
|
|
|
7208
9866
|
const graph = document.graph;
|
|
7209
9867
|
const node = graph.nodes[operation.nodeId];
|
|
7210
9868
|
if (node == null) invalid("The Node does not exist in the target graph.");
|
|
9869
|
+
if (operation.field == "onError" && operation.value != null && (!supportsNodeErrorHandling(node) || !["stop", "error"].includes(String(operation.value)))) invalid("This node does not support this error handling setting.");
|
|
9870
|
+
if (operation.field == "retry" && operation.value != null && !supportsNodeRetry(node)) invalid("This node does not support retries.");
|
|
7211
9871
|
if (operation.field == "connectionId" && node.kind != "poll" && node.kind != "integration") invalid("Only provider Triggers select a node Connection.");
|
|
7212
9872
|
if (!dequal(Reflect.get(node, operation.field), operation.before)) invalid("The Node field changed before this operation was applied.");
|
|
7213
9873
|
const updated = { ...node };
|
|
@@ -7479,7 +10139,7 @@ function applyFlowChanges(content, operations) {
|
|
|
7479
10139
|
assertOpenApiAuthBindings(document);
|
|
7480
10140
|
return upgradeDecodedRevisionContent({
|
|
7481
10141
|
document,
|
|
7482
|
-
modelVersion:
|
|
10142
|
+
modelVersion: 9,
|
|
7483
10143
|
modules
|
|
7484
10144
|
});
|
|
7485
10145
|
}
|
|
@@ -10442,6 +13102,7 @@ var source = union([object$1({
|
|
|
10442
13102
|
kind: literal("node"),
|
|
10443
13103
|
nodeId: text$1,
|
|
10444
13104
|
output: text$1,
|
|
13105
|
+
system: literal(true).optional(),
|
|
10445
13106
|
field: text$1.optional()
|
|
10446
13107
|
}), object$1({
|
|
10447
13108
|
kind: literal("binding"),
|
|
@@ -10700,7 +13361,9 @@ var base = {
|
|
|
10700
13361
|
name: text$1.optional(),
|
|
10701
13362
|
description: text$1.optional(),
|
|
10702
13363
|
icon: text$1.optional(),
|
|
10703
|
-
timeoutMs: number().optional()
|
|
13364
|
+
timeoutMs: number().optional(),
|
|
13365
|
+
retry: retryConfigurationSchema.optional(),
|
|
13366
|
+
onError: _enum(["stop", "error"]).optional()
|
|
10704
13367
|
};
|
|
10705
13368
|
var node = union([
|
|
10706
13369
|
strictObject({
|
|
@@ -10836,7 +13499,8 @@ var revision = object$1({
|
|
|
10836
13499
|
literal(5),
|
|
10837
13500
|
literal(6),
|
|
10838
13501
|
literal(7),
|
|
10839
|
-
literal(8)
|
|
13502
|
+
literal(8),
|
|
13503
|
+
literal(9)
|
|
10840
13504
|
]),
|
|
10841
13505
|
document,
|
|
10842
13506
|
modules: record$3(text$1, module)
|
|
@@ -10905,6 +13569,13 @@ var shapes = {
|
|
|
10905
13569
|
},
|
|
10906
13570
|
"graph.node.delete": at,
|
|
10907
13571
|
"graph.node.field.set": union([
|
|
13572
|
+
object$1({
|
|
13573
|
+
...at,
|
|
13574
|
+
kind: literal("graph.node.field.set"),
|
|
13575
|
+
field: literal("retry"),
|
|
13576
|
+
before: retryConfigurationSchema.optional(),
|
|
13577
|
+
value: retryConfigurationSchema.optional()
|
|
13578
|
+
}),
|
|
10908
13579
|
object$1({
|
|
10909
13580
|
...at,
|
|
10910
13581
|
kind: literal("graph.node.field.set"),
|
|
@@ -10918,7 +13589,8 @@ var shapes = {
|
|
|
10918
13589
|
field: _enum([
|
|
10919
13590
|
"description",
|
|
10920
13591
|
"icon",
|
|
10921
|
-
"name"
|
|
13592
|
+
"name",
|
|
13593
|
+
"onError"
|
|
10922
13594
|
]),
|
|
10923
13595
|
before: text$1.optional(),
|
|
10924
13596
|
value: text$1.optional()
|
|
@@ -11047,6 +13719,12 @@ function changeOperationsSchema(kind) {
|
|
|
11047
13719
|
return toJSONSchema(schema, { io: "input" });
|
|
11048
13720
|
}
|
|
11049
13721
|
function checkModelVersion(content) {
|
|
13722
|
+
if (content.modelVersion < 9 && Object.values(content.document.graph.nodes).some((candidateNode) => "retry" in candidateNode && candidateNode.retry != null)) throw new TypeError("Node retries require Flow model version 9.");
|
|
13723
|
+
if (content.modelVersion < 9 && Object.values(content.document.graph.nodes).some((candidateNode) => {
|
|
13724
|
+
if (candidateNode.onError != null) return true;
|
|
13725
|
+
if ([...Object.values("inputs" in candidateNode ? candidateNode.inputs : {}), ...Object.values(candidateNode.kind == "outputs" ? candidateNode.outputMappings : {})].some((candidateMapping) => candidateMapping.kind == "sources" && candidateMapping.sources.some((candidateSource) => candidateSource.kind == "node" && candidateSource.system))) return true;
|
|
13726
|
+
return candidateNode.kind == "condition" && candidateNode.cases.some((item) => item.groups.some((candidateGroup) => candidateGroup.expressions.some((expression) => [expression.left, expression.right].some((candidateOperand) => candidateOperand?.kind == "source" && candidateOperand.source.kind == "node" && candidateOperand.source.system))));
|
|
13727
|
+
})) throw new TypeError("Node error handling requires Flow model version 9.");
|
|
11050
13728
|
if (content.modelVersion < 8 && Object.values(content.document.graph.nodes).some((candidateNode) => candidateNode.kind == "outputs")) throw new TypeError("Workflow outputs require Flow model version 8.");
|
|
11051
13729
|
if (content.modelVersion < 7 && Object.values(content.document.graph.nodes).some((candidateNode) => candidateNode.kind == "start")) throw new TypeError("Start Triggers require Flow model version 7.");
|
|
11052
13730
|
if (content.modelVersion < 6 && Object.values(content.document.graph.nodes).some((candidateNode) => candidateNode.kind == "task" && "executor" in candidateNode.task)) throw new TypeError("Node-owned managed Tasks require Flow model version 6.");
|
|
@@ -11619,9 +14297,9 @@ async function prepareOpenApiTask(config, previous, fetch, name, explicit = {})
|
|
|
11619
14297
|
}
|
|
11620
14298
|
//#endregion
|
|
11621
14299
|
//#region src/control/common/authoringSchema.ts
|
|
11622
|
-
var id$
|
|
14300
|
+
var id$1 = string().min(1);
|
|
11623
14301
|
var json$3 = json$5();
|
|
11624
|
-
var patch = record$3(id$
|
|
14302
|
+
var patch = record$3(id$1, json$3);
|
|
11625
14303
|
var authoringTypes = [
|
|
11626
14304
|
"start",
|
|
11627
14305
|
"outputs",
|
|
@@ -11643,19 +14321,26 @@ var authoringTypes = [
|
|
|
11643
14321
|
"approval"
|
|
11644
14322
|
];
|
|
11645
14323
|
var type = _enum(authoringTypes);
|
|
11646
|
-
var referenceSchema = id$
|
|
14324
|
+
var referenceSchema = id$1.describe("An existing node reference returned by read/search, or $alias for a preceding node.add in this edit batch. For node.add.as \"step\", reference \"$step\", never bare \"step\". Aliases are local to one batch.");
|
|
11647
14325
|
var output = strictObject({
|
|
11648
14326
|
kind: literal("output"),
|
|
11649
14327
|
node: referenceSchema,
|
|
11650
|
-
port: id$
|
|
14328
|
+
port: id$1.optional().describe("Omit for a node with one output. For multiple outputs, choose a name from node details."),
|
|
14329
|
+
field: string().optional()
|
|
14330
|
+
});
|
|
14331
|
+
var system = strictObject({
|
|
14332
|
+
kind: literal("system"),
|
|
14333
|
+
node: referenceSchema,
|
|
14334
|
+
port: literal("error"),
|
|
11651
14335
|
field: string().optional()
|
|
11652
14336
|
});
|
|
11653
14337
|
var variable = strictObject({
|
|
11654
14338
|
kind: literal("variable"),
|
|
11655
|
-
name: id$
|
|
14339
|
+
name: id$1
|
|
11656
14340
|
});
|
|
11657
14341
|
var authoringSourceSchema = union([
|
|
11658
14342
|
output,
|
|
14343
|
+
system,
|
|
11659
14344
|
variable,
|
|
11660
14345
|
strictObject({
|
|
11661
14346
|
kind: literal("value"),
|
|
@@ -11665,7 +14350,11 @@ var authoringSourceSchema = union([
|
|
|
11665
14350
|
strictObject({ kind: literal("default") }),
|
|
11666
14351
|
strictObject({
|
|
11667
14352
|
kind: literal("sources"),
|
|
11668
|
-
sources: array(union([
|
|
14353
|
+
sources: array(union([
|
|
14354
|
+
output,
|
|
14355
|
+
system,
|
|
14356
|
+
variable
|
|
14357
|
+
])).min(1)
|
|
11669
14358
|
})
|
|
11670
14359
|
]);
|
|
11671
14360
|
var operand = union([
|
|
@@ -11675,21 +14364,22 @@ var operand = union([
|
|
|
11675
14364
|
schema: json$3.optional()
|
|
11676
14365
|
}),
|
|
11677
14366
|
output,
|
|
14367
|
+
system,
|
|
11678
14368
|
variable
|
|
11679
14369
|
]);
|
|
11680
14370
|
var agentTool = authoringDefinitionSchemas.agent.shape.tools.element.omit({
|
|
11681
14371
|
id: true,
|
|
11682
14372
|
inputs: true
|
|
11683
|
-
}).extend({ inputs: record$3(id$
|
|
14373
|
+
}).extend({ inputs: record$3(id$1, authoringDefinitionSchemas.agent.shape.tools.element.shape.inputs.element.shape.source).optional().describe("Action input sources by name. The tool resolves types from the Action. New inputs default to model-provided; existing sources are preserved when omitted.") }).strict();
|
|
11684
14374
|
var notification = strictObject({
|
|
11685
14375
|
...authoringDefinitionSchemas.connector.shape,
|
|
11686
|
-
messageHandle: id$
|
|
11687
|
-
inputs: record$3(id$
|
|
14376
|
+
messageHandle: id$1,
|
|
14377
|
+
inputs: record$3(id$1, union([strictObject({
|
|
11688
14378
|
kind: literal("value"),
|
|
11689
14379
|
value: json$3
|
|
11690
14380
|
}), strictObject({
|
|
11691
14381
|
kind: literal("input"),
|
|
11692
|
-
input: id$
|
|
14382
|
+
input: id$1
|
|
11693
14383
|
})]))
|
|
11694
14384
|
});
|
|
11695
14385
|
var field = strictObject({
|
|
@@ -11697,14 +14387,14 @@ var field = strictObject({
|
|
|
11697
14387
|
nullable: boolean().optional(),
|
|
11698
14388
|
description: string().optional()
|
|
11699
14389
|
});
|
|
11700
|
-
var inputFields = record$3(id$
|
|
11701
|
-
var flowInputFields = record$3(id$
|
|
14390
|
+
var inputFields = record$3(id$1, field.extend({ default: json$3.optional() })).describe("Optional business input constraints by name. A binding to a new Code, Agent, LLM, Wait or Approval input automatically declares an input accepting any JSON. Existing constraints are preserved. Omitted schema accepts any JSON; omitted nullable is true. Use default for inherited values; input.set supplies data.");
|
|
14391
|
+
var flowInputFields = record$3(id$1, field).describe("Workflow input definitions by name. Omitted schema accepts any JSON; omitted nullable is true. No defaults. Supply call values as trigger.outputs.");
|
|
11702
14392
|
var flowOutputFields = flowInputFields.describe("Workflow output definitions by name. Omitted schema accepts any JSON; omitted nullable is true. No defaults. Set values on the Outputs node with input.set or node.add.inputs.");
|
|
11703
|
-
var flowInputFieldsView = record$3(id$
|
|
14393
|
+
var flowInputFieldsView = record$3(id$1, field.extend({
|
|
11704
14394
|
schema: json$3,
|
|
11705
14395
|
nullable: boolean()
|
|
11706
14396
|
}));
|
|
11707
|
-
var outputFields = record$3(id$
|
|
14397
|
+
var outputFields = record$3(id$1, field).describe("Code return fields by name. Omitted schema accepts any JSON; omitted nullable is true.");
|
|
11708
14398
|
var expression = strictObject({
|
|
11709
14399
|
left: operand,
|
|
11710
14400
|
operator: authoringDefinitionSchemas.condition.shape.cases.element.shape.groups.element.shape.expressions.element.shape.operator,
|
|
@@ -11717,20 +14407,20 @@ var when = union([
|
|
|
11717
14407
|
strictObject({ any: array(union([expression, all])) })
|
|
11718
14408
|
]);
|
|
11719
14409
|
var authoringConfigurations = {
|
|
11720
|
-
workflow: strictObject({ flowId: id$
|
|
14410
|
+
workflow: strictObject({ flowId: id$1 }),
|
|
11721
14411
|
start: strictObject({ inputDefs: flowInputFields.default({}) }),
|
|
11722
14412
|
outputs: strictObject({ outputDefs: flowOutputFields.default({}) }),
|
|
11723
|
-
error: strictObject({ sourceFlowIds: array(id$
|
|
14413
|
+
error: strictObject({ sourceFlowIds: array(id$1).optional() }),
|
|
11724
14414
|
webhook: authoringDefinitionSchemas.webhook.omit({ bodyFields: true }).extend({ body: inputFields }).strict(),
|
|
11725
14415
|
cron: strictObject({ schedule: authoringDefinitionSchemas.schedule }),
|
|
11726
14416
|
poll: strictObject({
|
|
11727
|
-
key: id$
|
|
11728
|
-
connectionId: id$
|
|
14417
|
+
key: id$1,
|
|
14418
|
+
connectionId: id$1.optional(),
|
|
11729
14419
|
schedule: authoringDefinitionSchemas.schedule
|
|
11730
14420
|
}),
|
|
11731
14421
|
integration: strictObject({
|
|
11732
|
-
key: id$
|
|
11733
|
-
connectionId: id$
|
|
14422
|
+
key: id$1,
|
|
14423
|
+
connectionId: id$1.optional()
|
|
11734
14424
|
}),
|
|
11735
14425
|
code: strictObject({
|
|
11736
14426
|
inputs: inputFields,
|
|
@@ -11753,7 +14443,7 @@ var authoringConfigurations = {
|
|
|
11753
14443
|
condition: strictObject({
|
|
11754
14444
|
match: _enum(["first", "all"]),
|
|
11755
14445
|
branches: array(strictObject({
|
|
11756
|
-
name: id$
|
|
14446
|
+
name: id$1,
|
|
11757
14447
|
description: string().optional(),
|
|
11758
14448
|
when
|
|
11759
14449
|
}))
|
|
@@ -11766,21 +14456,25 @@ var authoringConfigurations = {
|
|
|
11766
14456
|
approval: strictObject({ inputs: inputFields })
|
|
11767
14457
|
};
|
|
11768
14458
|
var updates = strictObject({
|
|
11769
|
-
|
|
14459
|
+
onError: _enum(["stop", "error"]).optional(),
|
|
14460
|
+
name: id$1.optional(),
|
|
11770
14461
|
description: string().optional(),
|
|
11771
14462
|
icon: string().optional(),
|
|
11772
14463
|
maxExecutions: int().positive().optional(),
|
|
11773
14464
|
timeoutMs: number().nonnegative().optional(),
|
|
14465
|
+
retry: retryConfigurationSchema.partial().optional().describe("Node retry policy for Code, Connector, OpenAPI, LLM and AI Decision. Omitted update fields preserve the policy; use clear: [[\"retry\"]] to disable it. maxRetries counts additional attempts; intervalMs is 1000–60000 in whole seconds."),
|
|
11774
14466
|
config: patch.optional().describe("Recursively merge configuration; omitted fields remain unchanged and arrays replace as a whole. This includes schema objects: {} does not clear an existing schema. Use clear paths to remove fields, e.g. [\"config\",\"inputs\",\"amount\",\"schema\",\"type\"].")
|
|
11775
14467
|
});
|
|
11776
14468
|
var authoringEditSchema = discriminatedUnion("op", [
|
|
11777
14469
|
strictObject({
|
|
11778
14470
|
op: literal("node.add"),
|
|
11779
|
-
as: id$
|
|
14471
|
+
as: id$1.regex(/^[A-Za-z][\w-]*$/).describe("Unique batch-local alias without the $ prefix. Later edits must reference this new node as $alias; the bare alias is not its node ID."),
|
|
11780
14472
|
type,
|
|
11781
|
-
name: id$
|
|
14473
|
+
name: id$1,
|
|
14474
|
+
onError: _enum(["stop", "error"]).optional(),
|
|
14475
|
+
retry: retryConfigurationSchema.optional(),
|
|
11782
14476
|
config: patch.optional(),
|
|
11783
|
-
inputs: record$3(id$
|
|
14477
|
+
inputs: record$3(id$1, authoringSourceSchema).optional().describe("Input data sources, applied after creation, as input.set operations. Execution edges are separate."),
|
|
11784
14478
|
code: string().optional(),
|
|
11785
14479
|
prompt: string().optional()
|
|
11786
14480
|
}),
|
|
@@ -11788,7 +14482,7 @@ var authoringEditSchema = discriminatedUnion("op", [
|
|
|
11788
14482
|
op: literal("node.update"),
|
|
11789
14483
|
node: referenceSchema,
|
|
11790
14484
|
set: updates.optional(),
|
|
11791
|
-
clear: array(array(id$
|
|
14485
|
+
clear: array(array(id$1).min(1)).optional()
|
|
11792
14486
|
}),
|
|
11793
14487
|
strictObject({
|
|
11794
14488
|
op: literal("node.refresh"),
|
|
@@ -11801,20 +14495,20 @@ var authoringEditSchema = discriminatedUnion("op", [
|
|
|
11801
14495
|
strictObject({
|
|
11802
14496
|
op: literal("input.set"),
|
|
11803
14497
|
node: referenceSchema,
|
|
11804
|
-
input: id$
|
|
14498
|
+
input: id$1,
|
|
11805
14499
|
source: authoringSourceSchema
|
|
11806
14500
|
}),
|
|
11807
14501
|
strictObject({
|
|
11808
14502
|
op: _enum(["edge.connect", "edge.disconnect"]),
|
|
11809
14503
|
source: referenceSchema,
|
|
11810
14504
|
target: referenceSchema,
|
|
11811
|
-
branch: id$
|
|
14505
|
+
branch: id$1.optional()
|
|
11812
14506
|
}),
|
|
11813
14507
|
strictObject({
|
|
11814
14508
|
op: literal("text.edit"),
|
|
11815
14509
|
node: referenceSchema,
|
|
11816
14510
|
field: _enum(["code", "prompt"]),
|
|
11817
|
-
oldText: id$
|
|
14511
|
+
oldText: id$1,
|
|
11818
14512
|
newText: string()
|
|
11819
14513
|
}),
|
|
11820
14514
|
strictObject({
|
|
@@ -11825,15 +14519,15 @@ var authoringEditSchema = discriminatedUnion("op", [
|
|
|
11825
14519
|
})
|
|
11826
14520
|
]);
|
|
11827
14521
|
var authoringRequestSchema = strictObject({
|
|
11828
|
-
baseRevision: id$
|
|
11829
|
-
requestId: id$
|
|
14522
|
+
baseRevision: id$1,
|
|
14523
|
+
requestId: id$1.max(256),
|
|
11830
14524
|
edits: array(authoringEditSchema).min(1).max(1e3)
|
|
11831
14525
|
});
|
|
11832
14526
|
var authoringReadSchema = strictObject({
|
|
11833
|
-
revision: id$
|
|
11834
|
-
nodes: array(id$
|
|
14527
|
+
revision: id$1.optional().describe("Fixed revision from a previous read; omit to read the current draft."),
|
|
14528
|
+
nodes: array(id$1).min(1).max(100).optional().describe("Node references to read in one batch. Mutually exclusive with text. Long texts return metadata."),
|
|
11835
14529
|
text: strictObject({
|
|
11836
|
-
node: id$
|
|
14530
|
+
node: id$1,
|
|
11837
14531
|
field: _enum(["code", "prompt"]),
|
|
11838
14532
|
start: int().positive().default(1),
|
|
11839
14533
|
lines: int().min(1).max(200).default(80)
|
|
@@ -11842,17 +14536,17 @@ var authoringReadSchema = strictObject({
|
|
|
11842
14536
|
not: { required: ["nodes", "text"] },
|
|
11843
14537
|
description: "Omit nodes and text for an outline; provide nodes for details, or text for an excerpt."
|
|
11844
14538
|
});
|
|
11845
|
-
var authoringCheckSchema = strictObject({ revisionId: id$
|
|
14539
|
+
var authoringCheckSchema = strictObject({ revisionId: id$1 });
|
|
11846
14540
|
var authoringSearchSchema = strictObject({
|
|
11847
|
-
revision: id$
|
|
11848
|
-
query: id$
|
|
14541
|
+
revision: id$1.optional(),
|
|
14542
|
+
query: id$1.max(1e3),
|
|
11849
14543
|
type: type.optional(),
|
|
11850
14544
|
offset: int().nonnegative().default(0),
|
|
11851
14545
|
limit: int().min(1).max(100).default(20)
|
|
11852
14546
|
});
|
|
11853
14547
|
var authoringSchemaQuery = strictObject({
|
|
11854
14548
|
type: type.optional(),
|
|
11855
|
-
action: id$
|
|
14549
|
+
action: id$1.optional()
|
|
11856
14550
|
}).refine((v) => v.type == null || v.action == null, "Choose type or action.");
|
|
11857
14551
|
var requestContracts = {
|
|
11858
14552
|
read: {
|
|
@@ -11949,6 +14643,8 @@ function authoringSchema(kind) {
|
|
|
11949
14643
|
guidance: "Read a node type schema before creating or configuring it. Use $alias to reference a preceding node.add in the same batch. Read returns stable node references. Long code and prompt fields use text reads and edits. Changes use the observed baseRevision and a stable requestId."
|
|
11950
14644
|
} : {
|
|
11951
14645
|
type: kind,
|
|
14646
|
+
onError: retryNodeTypes.some((nodeType) => nodeType == kind) ? { enum: ["stop", "error"] } : false,
|
|
14647
|
+
retry: retryNodeTypes.some((nodeType) => nodeType == kind) ? toJSONSchema(retryConfigurationSchema) : false,
|
|
11952
14648
|
inputSources: ["poll", "integration"].includes(kind) ? [
|
|
11953
14649
|
"value",
|
|
11954
14650
|
"unset",
|
|
@@ -11966,6 +14662,7 @@ function authoringSchema(kind) {
|
|
|
11966
14662
|
"unset",
|
|
11967
14663
|
"default",
|
|
11968
14664
|
"output",
|
|
14665
|
+
"system",
|
|
11969
14666
|
"variable",
|
|
11970
14667
|
"sources"
|
|
11971
14668
|
],
|
|
@@ -12091,29 +14788,29 @@ function authoringSchema(kind) {
|
|
|
12091
14788
|
};
|
|
12092
14789
|
}
|
|
12093
14790
|
var authoringDiagnosticSchema = object$1({
|
|
12094
|
-
code: id$
|
|
14791
|
+
code: id$1,
|
|
12095
14792
|
message: string(),
|
|
12096
|
-
nodes: array(id$
|
|
14793
|
+
nodes: array(id$1),
|
|
12097
14794
|
field: string().optional(),
|
|
12098
14795
|
line: number().optional(),
|
|
12099
14796
|
column: number().optional()
|
|
12100
14797
|
});
|
|
12101
14798
|
var authoringCheckResponse = object$1({
|
|
12102
|
-
flowId: id$
|
|
12103
|
-
revisionId: id$
|
|
14799
|
+
flowId: id$1,
|
|
14800
|
+
revisionId: id$1,
|
|
12104
14801
|
valid: boolean(),
|
|
12105
14802
|
diagnostics: array(authoringDiagnosticSchema),
|
|
12106
14803
|
version: literal(1)
|
|
12107
14804
|
});
|
|
12108
14805
|
var authoringEditResponse = object$1({
|
|
12109
|
-
flowId: id$
|
|
14806
|
+
flowId: id$1,
|
|
12110
14807
|
saved: literal(true),
|
|
12111
|
-
revision: id$
|
|
12112
|
-
nodes: record$3(id$
|
|
14808
|
+
revision: id$1,
|
|
14809
|
+
nodes: record$3(id$1, id$1),
|
|
12113
14810
|
changes: array(object$1({
|
|
12114
14811
|
index: int(),
|
|
12115
|
-
op: id$
|
|
12116
|
-
node: id$
|
|
14812
|
+
op: id$1,
|
|
14813
|
+
node: id$1.optional()
|
|
12117
14814
|
})),
|
|
12118
14815
|
validation: object$1({
|
|
12119
14816
|
status: _enum([
|
|
@@ -12126,8 +14823,8 @@ var authoringEditResponse = object$1({
|
|
|
12126
14823
|
version: literal(1)
|
|
12127
14824
|
});
|
|
12128
14825
|
var authoringReadResponse = object$1({
|
|
12129
|
-
flowId: id$
|
|
12130
|
-
revision: id$
|
|
14826
|
+
flowId: id$1,
|
|
14827
|
+
revision: id$1,
|
|
12131
14828
|
data: object$1({
|
|
12132
14829
|
nodes: array(record$3(string(), json$3)).optional(),
|
|
12133
14830
|
edges: array(json$3).optional(),
|
|
@@ -12136,12 +14833,12 @@ var authoringReadResponse = object$1({
|
|
|
12136
14833
|
version: literal(1)
|
|
12137
14834
|
});
|
|
12138
14835
|
var authoringSearchResponse = object$1({
|
|
12139
|
-
flowId: id$
|
|
12140
|
-
revision: id$
|
|
14836
|
+
flowId: id$1,
|
|
14837
|
+
revision: id$1,
|
|
12141
14838
|
data: object$1({
|
|
12142
14839
|
matches: array(object$1({
|
|
12143
|
-
node: id$
|
|
12144
|
-
field: id$
|
|
14840
|
+
node: id$1.optional(),
|
|
14841
|
+
field: id$1,
|
|
12145
14842
|
line: int().optional(),
|
|
12146
14843
|
excerpt: string()
|
|
12147
14844
|
})),
|
|
@@ -12424,7 +15121,7 @@ function renamedPort(previous, next) {
|
|
|
12424
15121
|
}
|
|
12425
15122
|
function renameOutputMapping(mapping, nodeIds, rename) {
|
|
12426
15123
|
if (rename == null || mapping.kind != "sources") return mapping;
|
|
12427
|
-
const sources = mapping.sources.map((source) => source.kind == "node" && nodeIds.has(source.nodeId) && source.output == rename[0] ? {
|
|
15124
|
+
const sources = mapping.sources.map((source) => source.kind == "node" && !source.system && nodeIds.has(source.nodeId) && source.output == rename[0] ? {
|
|
12428
15125
|
...source,
|
|
12429
15126
|
output: rename[1]
|
|
12430
15127
|
} : source);
|
|
@@ -12953,7 +15650,9 @@ var metadata = /* @__PURE__ */ new Set([
|
|
|
12953
15650
|
"description",
|
|
12954
15651
|
"icon",
|
|
12955
15652
|
"timeoutMs",
|
|
12956
|
-
"maxExecutions"
|
|
15653
|
+
"maxExecutions",
|
|
15654
|
+
"retry",
|
|
15655
|
+
"onError"
|
|
12957
15656
|
]);
|
|
12958
15657
|
function portField(ports, path, parent) {
|
|
12959
15658
|
const port = ports[Number(path[0])];
|
|
@@ -13245,7 +15944,7 @@ function outwardSource(content, value) {
|
|
|
13245
15944
|
if (value == null || typeof value != "object") return value;
|
|
13246
15945
|
const v = record(value);
|
|
13247
15946
|
if (v.kind == "node" && typeof v.nodeId == "string" && typeof v.output == "string") return {
|
|
13248
|
-
kind: "output",
|
|
15947
|
+
kind: v.system === true ? "system" : "output",
|
|
13249
15948
|
node: v.nodeId,
|
|
13250
15949
|
port: v.output,
|
|
13251
15950
|
...v.field == null ? {} : { field: v.field }
|
|
@@ -13342,6 +16041,8 @@ function authoringNode(content, ref) {
|
|
|
13342
16041
|
...node.icon == null ? {} : { icon: node.icon },
|
|
13343
16042
|
..."timeoutMs" in node && node.timeoutMs != null ? { timeoutMs: node.timeoutMs } : {},
|
|
13344
16043
|
..."maxExecutions" in node && node.maxExecutions != null ? { maxExecutions: node.maxExecutions } : {},
|
|
16044
|
+
...node.onError == null ? {} : { onError: node.onError },
|
|
16045
|
+
..."retry" in node && node.retry != null ? { retry: node.retry } : {},
|
|
13345
16046
|
config: json$2(config),
|
|
13346
16047
|
texts: Object.fromEntries(Object.entries(texts).map(([field, text]) => [field, {
|
|
13347
16048
|
lines: text.split("\n").length,
|
|
@@ -13349,6 +16050,7 @@ function authoringNode(content, ref) {
|
|
|
13349
16050
|
}])),
|
|
13350
16051
|
inputs: outwardSource(content, inputMappings(node)),
|
|
13351
16052
|
inputPorts: fieldsView(Object.entries(inputDefinitions(node)).map(([handle, port]) => Object.assign({}, port, { handle }))),
|
|
16053
|
+
...Object.keys(nodeSystemOutputPorts(node)).length == 0 ? {} : { systemOutputs: fieldsView(Object.entries(nodeSystemOutputPorts(node)).map(([handle, port]) => Object.assign({ handle }, port))) },
|
|
13352
16054
|
outputPorts: fieldsView(Object.entries(nodeOutputPorts(node)).map(([handle, port]) => Object.assign({}, port, { handle }))),
|
|
13353
16055
|
...task != null && "executor" in task && task.executor.kind == "openapi" ? { authenticationChoices: openApiAuthenticationChoices(task.executor) } : {},
|
|
13354
16056
|
incoming: edges.filter((e) => e.target == ref),
|
|
@@ -13426,6 +16128,8 @@ function searchAuthoring(content, query) {
|
|
|
13426
16128
|
const fields = {
|
|
13427
16129
|
name: view.name,
|
|
13428
16130
|
description: view.description ?? "",
|
|
16131
|
+
onError: view.onError ?? "",
|
|
16132
|
+
retry: JSON.stringify(view.retry ?? {}),
|
|
13429
16133
|
inputs: JSON.stringify(view.inputs),
|
|
13430
16134
|
config: JSON.stringify(view.config),
|
|
13431
16135
|
...Object.fromEntries(Object.keys(view.texts).map((field) => [field, textAt(content, node, field)]))
|
|
@@ -13494,7 +16198,7 @@ async function compileAuthoring(base, request, host) {
|
|
|
13494
16198
|
return ref.startsWith("$") ? (Object.hasOwn(aliases, ref.slice(1)) ? aliases[ref.slice(1)] : void 0) ?? fail("node.alias-missing", `Unknown alias ${ref}.`) : ref;
|
|
13495
16199
|
}
|
|
13496
16200
|
function source(value) {
|
|
13497
|
-
if (value.kind == "output") {
|
|
16201
|
+
if (value.kind == "output" || value.kind == "system") {
|
|
13498
16202
|
const ref = resolve(value.node);
|
|
13499
16203
|
const choices = Object.keys(nodeOutputPorts(nodeAt(content, ref)));
|
|
13500
16204
|
const port = value.port ?? (choices.length == 1 ? choices[0] : void 0);
|
|
@@ -13504,6 +16208,7 @@ async function compileAuthoring(base, request, host) {
|
|
|
13504
16208
|
});
|
|
13505
16209
|
return {
|
|
13506
16210
|
kind: "node",
|
|
16211
|
+
...value.kind == "system" ? { system: true } : {},
|
|
13507
16212
|
nodeId: ref,
|
|
13508
16213
|
output: port,
|
|
13509
16214
|
...value.field == null ? {} : { field: value.field }
|
|
@@ -13575,6 +16280,8 @@ async function compileAuthoring(base, request, host) {
|
|
|
13575
16280
|
...view.icon == null ? {} : { icon: view.icon },
|
|
13576
16281
|
...view.timeoutMs == null ? {} : { timeoutMs: view.timeoutMs },
|
|
13577
16282
|
...view.maxExecutions == null ? {} : { maxExecutions: view.maxExecutions },
|
|
16283
|
+
...view.onError == null ? {} : { onError: view.onError },
|
|
16284
|
+
...view.retry == null ? {} : { retry: view.retry },
|
|
13578
16285
|
config: view.config
|
|
13579
16286
|
}, patch));
|
|
13580
16287
|
const explicit = (key) => Object.hasOwn(record(patch.config), key) || clear.some((path) => path[0] == "config" && path[1] == key);
|
|
@@ -13582,6 +16289,7 @@ async function compileAuthoring(base, request, host) {
|
|
|
13582
16289
|
for (const path of clear) clearPath(update, path);
|
|
13583
16290
|
if (typeof update.name != "string") fail("node.name-required", "Node name cannot be cleared.");
|
|
13584
16291
|
const config = authoringConfigurations[type].parse(update.config);
|
|
16292
|
+
if (Object.hasOwn(update, "retry")) update.retry = retryConfigurationSchema.parse(update.retry);
|
|
13585
16293
|
const { config: _, ...metadata } = update;
|
|
13586
16294
|
const { name: _name, description: _description, icon: _icon, ...rest } = node;
|
|
13587
16295
|
let next = {
|
|
@@ -13590,10 +16298,14 @@ async function compileAuthoring(base, request, host) {
|
|
|
13590
16298
|
};
|
|
13591
16299
|
if (!isTriggerNode(node)) {
|
|
13592
16300
|
const clean = { ...next };
|
|
16301
|
+
if (!Object.hasOwn(update, "onError")) delete clean.onError;
|
|
16302
|
+
if (!Object.hasOwn(update, "retry")) delete clean.retry;
|
|
13593
16303
|
if (!Object.hasOwn(update, "timeoutMs")) delete clean.timeoutMs;
|
|
13594
16304
|
if (!Object.hasOwn(update, "maxExecutions")) delete clean.maxExecutions;
|
|
13595
16305
|
next = clean;
|
|
13596
16306
|
} else if (update.timeoutMs != null || update.maxExecutions != null) fail("node.invalid-field", "Trigger nodes do not have execution limits.");
|
|
16307
|
+
if (update.onError != null && (!supportsNodeErrorHandling(next) || !["stop", "error"].includes(String(update.onError)))) fail("node.invalid-field", "This node does not support this error handling setting.");
|
|
16308
|
+
if (update.retry != null && !supportsNodeRetry(next)) fail("node.invalid-field", "This node does not support retries.");
|
|
13597
16309
|
if (node.kind == "start" || node.kind == "outputs") {
|
|
13598
16310
|
replace(ref, next);
|
|
13599
16311
|
const ports = fieldsToPorts(node.kind == "start" ? config.inputDefs : config.outputDefs, node.kind == "start" ? node.inputDefs : node.outputDefs).filter((port) => "handle" in port);
|
|
@@ -13988,7 +16700,11 @@ async function compileAuthoring(base, request, host) {
|
|
|
13988
16700
|
}];
|
|
13989
16701
|
}
|
|
13990
16702
|
apply(changes);
|
|
13991
|
-
await configure(nodeId, {
|
|
16703
|
+
await configure(nodeId, {
|
|
16704
|
+
config,
|
|
16705
|
+
...edit.onError == null ? {} : { onError: edit.onError },
|
|
16706
|
+
...edit.retry == null ? {} : { retry: edit.retry }
|
|
16707
|
+
});
|
|
13992
16708
|
const added = nodeAt(content, nodeId);
|
|
13993
16709
|
if (added.kind == "task") replace(nodeId, {
|
|
13994
16710
|
...added,
|
|
@@ -14132,30 +16848,16 @@ function resolveDraftOperations(operations, definition) {
|
|
|
14132
16848
|
});
|
|
14133
16849
|
}
|
|
14134
16850
|
//#endregion
|
|
16851
|
+
//#region src/trigger/providers/catalog.generated.json
|
|
16852
|
+
var catalog_generated_default = /*#__PURE__*/ JSON.parse("[{\"snapshot\":{\"configInputs\":[{\"handle\":\"baseId\",\"jsonSchema\":{\"type\":\"string\",\"pattern\":\"^app[A-Za-z0-9]{14}$\"},\"nullable\":false},{\"handle\":\"formula\",\"jsonSchema\":{\"type\":\"string\"},\"nullable\":false,\"value\":\"\"},{\"handle\":\"tableIdOrName\",\"jsonSchema\":{\"type\":\"string\",\"minLength\":1,\"maxLength\":255},\"nullable\":false},{\"handle\":\"triggerField\",\"jsonSchema\":{\"type\":\"string\",\"minLength\":1,\"maxLength\":255,\"pattern\":\"^[^}]*$\"},\"nullable\":false},{\"handle\":\"view\",\"jsonSchema\":{\"type\":\"string\"},\"nullable\":false,\"value\":\"\"},{\"group\":\"Advanced settings\",\"collapsed\":true},{\"handle\":\"fields\",\"jsonSchema\":{\"type\":\"array\",\"items\":{\"type\":\"string\",\"minLength\":1}},\"nullable\":false,\"value\":[]},{\"handle\":\"maxRecordsPerPoll\",\"jsonSchema\":{\"type\":\"integer\",\"minimum\":1,\"maximum\":1000},\"nullable\":false,\"value\":200}],\"definitionVersion\":2,\"description\":\"Polls an Airtable table and triggers when a record is created or updated, ordered by a time field.\",\"displayName\":\"Record Created or Updated\",\"key\":\"airtable.on_record_changed\",\"name\":\"on_record_changed\",\"outputs\":[{\"handle\":\"events\",\"jsonSchema\":{\"type\":\"array\",\"items\":{\"type\":\"object\",\"properties\":{\"baseId\":{\"type\":\"string\"},\"createdTime\":{\"type\":\"string\"},\"fields\":{\"type\":\"object\"},\"recordId\":{\"type\":\"string\"},\"tableIdOrName\":{\"type\":\"string\"},\"triggerField\":{\"type\":\"string\"},\"triggerFieldValue\":{\"type\":\"string\"}},\"additionalProperties\":false,\"required\":[\"baseId\",\"tableIdOrName\",\"recordId\",\"createdTime\",\"triggerField\",\"triggerFieldValue\",\"fields\"]}},\"nullable\":false}],\"provider\":\"airtable\",\"type\":\"poll\"},\"options\":false},{\"snapshot\":{\"key\":\"asana.on_task_event\",\"provider\":\"asana\",\"name\":\"on_task_event\",\"displayName\":\"Project Task Event\",\"description\":\"Receives tasks added to a project, completion changes, and selected custom field changes. Task details represent current state, not historical state.\",\"definitionVersion\":2,\"type\":\"integration\",\"endpoint\":{\"methods\":[\"POST\"],\"body\":{\"formats\":[\"json\"],\"allowArray\":false,\"allowEmpty\":true},\"successStatus\":200},\"configInputs\":[{\"handle\":\"projectId\",\"jsonSchema\":{\"type\":\"string\",\"minLength\":1,\"title\":\"Project ID\"},\"nullable\":false},{\"handle\":\"eventTypes\",\"jsonSchema\":{\"type\":\"array\",\"items\":{\"type\":\"string\",\"enum\":[\"task.added\",\"task.completed\",\"task.field_changed\"]},\"minItems\":1,\"uniqueItems\":true,\"title\":\"Events\"},\"nullable\":false,\"value\":[\"task.added\",\"task.completed\"]},{\"handle\":\"customFieldId\",\"jsonSchema\":{\"type\":\"string\",\"minLength\":1,\"title\":\"Custom field ID\"},\"nullable\":true}],\"outputs\":[{\"handle\":\"projectId\",\"jsonSchema\":{\"type\":\"string\"},\"nullable\":false},{\"handle\":\"events\",\"jsonSchema\":{\"type\":\"array\",\"items\":{\"type\":\"object\",\"properties\":{\"event\":{\"type\":\"string\"},\"task\":{\"type\":\"object\"},\"change\":{\"type\":\"object\"}},\"required\":[\"event\",\"task\",\"change\"]}},\"nullable\":false}]},\"options\":false},{\"snapshot\":{\"key\":\"calendly.on_booking_event\",\"provider\":\"calendly\",\"name\":\"on_booking_event\",\"displayName\":\"Booking Created or Canceled\",\"description\":\"Receives bookings and cancellations, preserving reschedule links. Requires a Personal Access Token connection.\",\"definitionVersion\":2,\"type\":\"integration\",\"endpoint\":{\"methods\":[\"POST\"],\"body\":{\"formats\":[\"json\"],\"allowArray\":false,\"allowEmpty\":false},\"successStatus\":200},\"configInputs\":[{\"handle\":\"scope\",\"jsonSchema\":{\"type\":\"string\",\"enum\":[\"user\",\"organization\"],\"title\":\"Scope\"},\"nullable\":false,\"value\":\"user\"},{\"handle\":\"eventTypes\",\"jsonSchema\":{\"type\":\"array\",\"items\":{\"type\":\"string\",\"enum\":[\"invitee.created\",\"invitee.canceled\"]},\"minItems\":1,\"uniqueItems\":true,\"title\":\"Events\"},\"nullable\":false,\"value\":[\"invitee.created\",\"invitee.canceled\"]}],\"outputs\":[{\"handle\":\"event\",\"jsonSchema\":{\"type\":\"string\",\"enum\":[\"invitee.created\",\"invitee.canceled\"]},\"nullable\":false},{\"handle\":\"inviteeUri\",\"jsonSchema\":{\"type\":\"string\"},\"nullable\":false},{\"handle\":\"createdAt\",\"jsonSchema\":{\"type\":\"string\"},\"nullable\":false},{\"handle\":\"body\",\"jsonSchema\":{\"type\":\"object\"},\"nullable\":false}]},\"options\":false},{\"snapshot\":{\"key\":\"clickup.on_task_event\",\"provider\":\"clickup\",\"name\":\"on_task_event\",\"displayName\":\"Task Event\",\"description\":\"Receives task creation, status changes, and new comments in a ClickUp Workspace or List.\",\"definitionVersion\":2,\"type\":\"integration\",\"endpoint\":{\"methods\":[\"POST\"],\"body\":{\"formats\":[\"json\"],\"allowArray\":false,\"allowEmpty\":false},\"successStatus\":200},\"configInputs\":[{\"handle\":\"workspaceId\",\"jsonSchema\":{\"type\":\"string\",\"pattern\":\"^[0-9]+$\",\"title\":\"Workspace ID\"},\"nullable\":false},{\"handle\":\"listId\",\"jsonSchema\":{\"type\":\"string\",\"pattern\":\"^[0-9]+$\",\"title\":\"List ID\"},\"nullable\":true},{\"handle\":\"eventTypes\",\"jsonSchema\":{\"type\":\"array\",\"items\":{\"type\":\"string\",\"enum\":[\"taskCreated\",\"taskStatusUpdated\",\"taskCommentPosted\"]},\"minItems\":1,\"uniqueItems\":true,\"title\":\"Events\"},\"nullable\":false,\"value\":[\"taskCreated\",\"taskStatusUpdated\",\"taskCommentPosted\"]}],\"outputs\":[{\"handle\":\"event\",\"jsonSchema\":{\"type\":\"string\",\"enum\":[\"taskCreated\",\"taskStatusUpdated\",\"taskCommentPosted\"]},\"nullable\":false},{\"handle\":\"taskId\",\"jsonSchema\":{\"type\":\"string\"},\"nullable\":false},{\"handle\":\"body\",\"jsonSchema\":{\"type\":\"object\"},\"nullable\":false}]},\"options\":false},{\"snapshot\":{\"key\":\"feishu_app_bot.on_event\",\"provider\":\"feishu_app_bot\",\"name\":\"on_event\",\"displayName\":\"Application Event\",\"description\":\"Receives selected Feishu application events through a shared event source.\",\"definitionVersion\":2,\"type\":\"integration\",\"endpoint\":{\"methods\":[\"POST\"],\"body\":{\"formats\":[\"json\"],\"allowArray\":false,\"allowEmpty\":false},\"successStatus\":200},\"configInputs\":[{\"handle\":\"sourceId\",\"jsonSchema\":{\"type\":\"string\",\"pattern\":\"^source_[0-9a-f]{32}$\",\"title\":\"Event source\"},\"nullable\":false},{\"handle\":\"eventTypes\",\"jsonSchema\":{\"type\":\"array\",\"items\":{\"type\":\"string\",\"pattern\":\"^[a-z][a-z0-9_.]{0,127}$\"},\"minItems\":1,\"maxItems\":200,\"uniqueItems\":true,\"title\":\"Event types\"},\"nullable\":false},{\"handle\":\"chatIds\",\"jsonSchema\":{\"type\":\"array\",\"items\":{\"type\":\"string\",\"minLength\":1,\"maxLength\":256},\"maxItems\":100,\"uniqueItems\":true,\"title\":\"Chat IDs\"},\"nullable\":true,\"description\":\"Leave empty to receive events from all chats available to the source.\"},{\"handle\":\"resource\",\"jsonSchema\":{\"type\":\"object\",\"properties\":{\"kind\":{\"type\":\"string\",\"enum\":[\"document\",\"calendar\",\"approval\"]},\"id\":{\"type\":\"string\",\"minLength\":1,\"maxLength\":256},\"documentType\":{\"type\":\"string\",\"enum\":[\"doc\",\"docx\",\"sheet\",\"bitable\",\"file\",\"folder\"]}},\"additionalProperties\":false,\"required\":[\"kind\",\"id\"],\"title\":\"Resource subscription\"},\"nullable\":true}],\"outputs\":[{\"handle\":\"event\",\"jsonSchema\":{\"type\":\"string\"},\"nullable\":false},{\"handle\":\"deliveryId\",\"jsonSchema\":{\"type\":\"string\"},\"nullable\":false},{\"handle\":\"appId\",\"jsonSchema\":{\"type\":\"string\"},\"nullable\":false},{\"handle\":\"tenantKey\",\"jsonSchema\":{\"type\":\"string\"},\"nullable\":false},{\"handle\":\"occurredAt\",\"jsonSchema\":{\"type\":\"string\"},\"nullable\":true},{\"handle\":\"body\",\"jsonSchema\":{\"type\":\"object\"},\"nullable\":false}]},\"options\":false,\"eventSource\":\"feishu\",\"source\":{\"createSchema\":{\"$schema\":\"https://json-schema.org/draft/2020-12/schema\",\"type\":\"object\",\"properties\":{\"kind\":{\"type\":\"string\",\"const\":\"feishu\"},\"version\":{\"type\":\"number\",\"const\":1},\"name\":{\"type\":\"string\",\"minLength\":1,\"maxLength\":128},\"connectionId\":{\"type\":\"string\",\"minLength\":1,\"maxLength\":256},\"teamId\":{\"anyOf\":[{\"type\":\"string\",\"minLength\":1,\"maxLength\":256},{\"type\":\"null\"}]},\"verificationToken\":{\"type\":\"string\",\"minLength\":1,\"maxLength\":256},\"encryptKey\":{\"type\":\"string\",\"minLength\":1,\"maxLength\":256},\"eventTypes\":{\"minItems\":1,\"maxItems\":200,\"type\":\"array\",\"items\":{\"type\":\"string\",\"pattern\":\"^[a-z][a-z0-9_.:]{0,127}$\"}},\"manageSubscriptions\":{\"type\":\"boolean\"}},\"required\":[\"version\",\"name\",\"connectionId\",\"teamId\",\"verificationToken\",\"encryptKey\",\"eventTypes\",\"manageSubscriptions\"],\"additionalProperties\":false},\"updateSchema\":{\"$schema\":\"https://json-schema.org/draft/2020-12/schema\",\"type\":\"object\",\"properties\":{\"version\":{\"type\":\"number\",\"const\":1},\"expectedRevision\":{\"type\":\"integer\",\"exclusiveMinimum\":0,\"maximum\":9007199254740991},\"name\":{\"type\":\"string\",\"minLength\":1,\"maxLength\":128},\"enabled\":{\"type\":\"boolean\"},\"eventTypes\":{\"minItems\":1,\"maxItems\":200,\"type\":\"array\",\"items\":{\"type\":\"string\",\"pattern\":\"^[a-z][a-z0-9_.:]{0,127}$\"}},\"verificationToken\":{\"type\":\"string\",\"minLength\":1,\"maxLength\":256},\"signingSecret\":{\"type\":\"string\",\"minLength\":1,\"maxLength\":256},\"encryptKey\":{\"type\":\"string\",\"minLength\":1,\"maxLength\":256}},\"required\":[\"version\",\"expectedRevision\",\"name\",\"enabled\",\"eventTypes\"],\"additionalProperties\":false},\"kind\":\"feishu\",\"provider\":\"feishu_app_bot\",\"triggerId\":\"feishu_app_bot.on_event\",\"maximumBodyBytes\":65536,\"applicationIngress\":false,\"managed\":false}},{\"snapshot\":{\"key\":\"fireflies.on_meeting_ready\",\"provider\":\"fireflies\",\"name\":\"on_meeting_ready\",\"displayName\":\"Meeting Transcript or Summary Ready\",\"description\":\"Receives separate transcript and summary readiness events through Fireflies Webhooks V2 after checking meeting access.\",\"definitionVersion\":2,\"type\":\"integration\",\"endpoint\":{\"methods\":[\"POST\"],\"body\":{\"formats\":[\"json\"],\"allowArray\":false,\"allowEmpty\":false},\"successStatus\":200},\"configInputs\":[{\"handle\":\"sourceId\",\"jsonSchema\":{\"type\":\"string\",\"pattern\":\"^source_[0-9a-f]{32}$\",\"title\":\"Event source\"},\"nullable\":false},{\"handle\":\"eventTypes\",\"jsonSchema\":{\"type\":\"array\",\"items\":{\"type\":\"string\",\"enum\":[\"meeting.transcribed\",\"meeting.summarized\"]},\"minItems\":1,\"maxItems\":2,\"uniqueItems\":true,\"title\":\"Events\"},\"nullable\":false,\"value\":[\"meeting.transcribed\",\"meeting.summarized\"]}],\"outputs\":[{\"handle\":\"event\",\"jsonSchema\":{\"type\":\"string\"},\"nullable\":false},{\"handle\":\"deliveryId\",\"jsonSchema\":{\"type\":\"string\"},\"nullable\":false},{\"handle\":\"accountId\",\"jsonSchema\":{\"type\":\"string\"},\"nullable\":false},{\"handle\":\"meetingId\",\"jsonSchema\":{\"type\":\"string\"},\"nullable\":false},{\"handle\":\"body\",\"jsonSchema\":{\"type\":\"object\"},\"nullable\":false}]},\"options\":false,\"eventSource\":\"fireflies\",\"source\":{\"createSchema\":{\"$schema\":\"https://json-schema.org/draft/2020-12/schema\",\"type\":\"object\",\"properties\":{\"kind\":{\"type\":\"string\",\"const\":\"fireflies\"},\"version\":{\"type\":\"number\",\"const\":1},\"name\":{\"type\":\"string\",\"minLength\":1,\"maxLength\":128},\"connectionId\":{\"type\":\"string\",\"minLength\":1,\"maxLength\":256},\"teamId\":{\"anyOf\":[{\"type\":\"string\",\"minLength\":1,\"maxLength\":256},{\"type\":\"null\"}]},\"signingSecret\":{\"type\":\"string\",\"minLength\":1,\"maxLength\":256},\"eventTypes\":{\"minItems\":1,\"maxItems\":2,\"type\":\"array\",\"items\":{\"type\":\"string\",\"enum\":[\"meeting.transcribed\",\"meeting.summarized\"]}}},\"required\":[\"kind\",\"version\",\"name\",\"connectionId\",\"teamId\",\"signingSecret\",\"eventTypes\"],\"additionalProperties\":false},\"updateSchema\":{\"$schema\":\"https://json-schema.org/draft/2020-12/schema\",\"type\":\"object\",\"properties\":{\"version\":{\"type\":\"number\",\"const\":1},\"expectedRevision\":{\"type\":\"integer\",\"exclusiveMinimum\":0,\"maximum\":9007199254740991},\"name\":{\"type\":\"string\",\"minLength\":1,\"maxLength\":128},\"enabled\":{\"type\":\"boolean\"},\"eventTypes\":{\"minItems\":1,\"maxItems\":200,\"type\":\"array\",\"items\":{\"type\":\"string\",\"pattern\":\"^[a-z][a-z0-9_.:]{0,127}$\"}},\"verificationToken\":{\"type\":\"string\",\"minLength\":1,\"maxLength\":256},\"signingSecret\":{\"type\":\"string\",\"minLength\":1,\"maxLength\":256},\"encryptKey\":{\"type\":\"string\",\"minLength\":1,\"maxLength\":256}},\"required\":[\"version\",\"expectedRevision\",\"name\",\"enabled\",\"eventTypes\"],\"additionalProperties\":false},\"kind\":\"fireflies\",\"provider\":\"fireflies\",\"triggerId\":\"fireflies.on_meeting_ready\",\"maximumBodyBytes\":65536,\"applicationIngress\":false,\"managed\":false}},{\"snapshot\":{\"configInputs\":[{\"handle\":\"events\",\"jsonSchema\":{\"type\":\"array\",\"items\":{\"type\":\"string\",\"enum\":[\"*\",\"branch_protection_configuration\",\"branch_protection_rule\",\"check_run\",\"check_suite\",\"code_scanning_alert\",\"commit_comment\",\"create\",\"custom_property_values\",\"delete\",\"dependabot_alert\",\"deploy_key\",\"deployment\",\"deployment_status\",\"discussion\",\"discussion_comment\",\"fork\",\"gollum\",\"issue_comment\",\"issue_dependencies\",\"issues\",\"label\",\"member\",\"meta\",\"milestone\",\"package\",\"page_build\",\"project\",\"project_card\",\"project_column\",\"public\",\"pull_request\",\"pull_request_review\",\"pull_request_review_comment\",\"pull_request_review_thread\",\"push\",\"registry_package\",\"release\",\"repository\",\"repository_advisory\",\"repository_import\",\"repository_ruleset\",\"repository_vulnerability_alert\",\"secret_scanning_alert\",\"secret_scanning_alert_location\",\"secret_scanning_scan\",\"security_and_analysis\",\"star\",\"status\",\"sub_issues\",\"team_add\",\"watch\",\"workflow_job\",\"workflow_run\"]},\"minItems\":1,\"uniqueItems\":true},\"nullable\":false},{\"handle\":\"owner\",\"jsonSchema\":{\"type\":\"string\",\"pattern\":\"^[a-zA-Z0-9](?:[a-zA-Z0-9]|-(?=[a-zA-Z0-9])){0,38}$\"},\"nullable\":false},{\"handle\":\"repo\",\"jsonSchema\":{\"type\":\"string\",\"pattern\":\"^(?!\\\\.{1,2}$)[a-zA-Z0-9._-]{1,100}$\"},\"nullable\":false},{\"group\":\"Advanced settings\",\"collapsed\":true},{\"handle\":\"insecureSsl\",\"jsonSchema\":{\"type\":\"boolean\"},\"nullable\":false,\"value\":false}],\"definitionVersion\":2,\"description\":\"Triggers when selected GitHub webhook events occur in a repository.\",\"displayName\":\"Repository Event\",\"endpoint\":{\"body\":{\"allowArray\":false,\"allowEmpty\":false,\"formats\":[\"json\"]},\"methods\":[\"POST\"],\"successStatus\":202},\"key\":\"github.on_repo_event\",\"name\":\"on_repo_event\",\"outputs\":[{\"handle\":\"body\",\"jsonSchema\":{\"type\":\"object\"},\"nullable\":false},{\"handle\":\"deliveryId\",\"jsonSchema\":{\"type\":\"string\"},\"nullable\":false},{\"handle\":\"event\",\"jsonSchema\":{\"type\":\"string\"},\"nullable\":false}],\"provider\":\"github\",\"type\":\"integration\"},\"options\":false},{\"snapshot\":{\"configInputs\":[{\"handle\":\"owner\",\"jsonSchema\":{\"type\":\"string\",\"pattern\":\"^[a-zA-Z0-9](?:[a-zA-Z0-9]|-(?=[a-zA-Z0-9])){0,38}$\"},\"nullable\":false},{\"handle\":\"repo\",\"jsonSchema\":{\"type\":\"string\",\"pattern\":\"^(?!\\\\.{1,2}$)[a-zA-Z0-9._-]{1,100}$\"},\"nullable\":false},{\"handle\":\"number\",\"jsonSchema\":{\"type\":\"integer\",\"minimum\":1},\"nullable\":false,\"description\":\"Number of the pull request to watch.\"}],\"definitionVersion\":2,\"description\":\"Watches one pull request using notifications and periodic checks. Starts from its current state; reports observed changes, not every intermediate transition or review event.\",\"displayName\":\"Watch Pull Request\",\"endpoint\":{\"body\":{\"allowArray\":false,\"allowEmpty\":false,\"formats\":[\"json\"]},\"methods\":[\"POST\"],\"successStatus\":202},\"key\":\"github.watch_pull_request\",\"name\":\"watch_pull_request\",\"provider\":\"github\",\"type\":\"integration\",\"outputs\":[{\"handle\":\"pullRequest\",\"jsonSchema\":{\"type\":\"object\",\"properties\":{\"id\":{\"type\":\"integer\"},\"number\":{\"type\":\"integer\"},\"title\":{\"type\":\"string\"},\"url\":{\"type\":\"string\"},\"state\":{\"type\":\"string\",\"enum\":[\"open\",\"closed\"]},\"draft\":{\"type\":\"boolean\"},\"merged\":{\"type\":\"boolean\"},\"updatedAt\":{\"type\":\"string\"},\"headSha\":{\"type\":\"string\"},\"baseSha\":{\"type\":\"string\"}},\"additionalProperties\":false,\"required\":[\"id\",\"number\",\"title\",\"url\",\"state\",\"draft\",\"merged\",\"updatedAt\",\"headSha\",\"baseSha\"]},\"nullable\":false},{\"handle\":\"version\",\"jsonSchema\":{\"type\":\"string\"},\"nullable\":false}]},\"options\":false,\"intervalMs\":300000},{\"snapshot\":{\"configInputs\":[{\"handle\":\"events\",\"jsonSchema\":{\"type\":\"array\",\"items\":{\"type\":\"string\",\"enum\":[\"push\",\"tag_push\",\"issues\",\"confidential_issues\",\"note\",\"confidential_note\",\"merge_requests\",\"job\",\"pipeline\",\"wiki_page\",\"deployment\",\"feature_flag\",\"releases\",\"milestone\",\"emoji\",\"resource_access_token\",\"resource_deploy_token\"]},\"minItems\":1,\"uniqueItems\":true},\"nullable\":false},{\"handle\":\"project\",\"jsonSchema\":{\"type\":\"string\",\"minLength\":1,\"maxLength\":255,\"pattern\":\"^(?:[0-9]+|(?!\\\\.{1,2}(?:/|$))[A-Za-z0-9_.][A-Za-z0-9_.-]*(?:/(?!\\\\.{1,2}(?:/|$))[A-Za-z0-9_.][A-Za-z0-9_.-]*)*)$\"},\"nullable\":false},{\"handle\":\"pushBranchFilter\",\"jsonSchema\":{\"type\":\"string\",\"maxLength\":255},\"nullable\":false,\"value\":\"\"},{\"group\":\"Advanced settings\",\"collapsed\":true},{\"handle\":\"insecureSsl\",\"jsonSchema\":{\"type\":\"boolean\"},\"nullable\":false,\"value\":false}],\"definitionVersion\":2,\"description\":\"Triggers when selected GitLab webhook events occur in a project.\",\"displayName\":\"Project Event\",\"endpoint\":{\"body\":{\"allowArray\":false,\"allowEmpty\":false,\"formats\":[\"json\"]},\"methods\":[\"POST\"],\"successStatus\":202},\"key\":\"gitlab.on_project_event\",\"name\":\"on_project_event\",\"outputs\":[{\"handle\":\"body\",\"jsonSchema\":{\"type\":\"object\"},\"nullable\":false},{\"handle\":\"deliveryId\",\"jsonSchema\":{\"type\":\"string\"},\"nullable\":false},{\"handle\":\"event\",\"jsonSchema\":{\"type\":\"string\"},\"nullable\":false},{\"handle\":\"gitlabEvent\",\"jsonSchema\":{\"type\":\"string\"},\"nullable\":false}],\"provider\":\"gitlab\",\"type\":\"integration\"},\"options\":false},{\"snapshot\":{\"configInputs\":[{\"handle\":\"labelNamesOrIds\",\"jsonSchema\":{\"type\":\"array\",\"items\":{\"type\":\"string\",\"minLength\":1}},\"nullable\":false,\"description\":\"Only trigger on messages carrying all of these labels, referenced by name or ID.\",\"value\":[]},{\"handle\":\"readStatus\",\"jsonSchema\":{\"type\":\"string\",\"enum\":[\"Read\",\"Unread\",\"All\"]},\"nullable\":false,\"value\":\"All\"},{\"handle\":\"search\",\"jsonSchema\":{\"type\":\"string\"},\"nullable\":false,\"description\":\"Gmail search-syntax query the message must match.\",\"value\":\"\"},{\"handle\":\"sender\",\"jsonSchema\":{\"type\":\"string\"},\"nullable\":false,\"description\":\"Only trigger on messages whose sender matches this address or name.\",\"value\":\"\"},{\"group\":\"Advanced settings\",\"collapsed\":true},{\"handle\":\"includeDrafts\",\"jsonSchema\":{\"type\":\"boolean\"},\"nullable\":false,\"value\":false,\"description\":\"Also trigger on draft messages.\"},{\"handle\":\"includeSpamAndTrash\",\"jsonSchema\":{\"type\":\"boolean\"},\"nullable\":false,\"value\":false,\"description\":\"Also trigger on messages in SPAM and TRASH.\"},{\"handle\":\"maxMessagesPerPoll\",\"jsonSchema\":{\"type\":\"integer\",\"minimum\":1,\"maximum\":100},\"nullable\":false,\"value\":25}],\"definitionVersion\":2,\"description\":\"Polls the Gmail mailbox and triggers when a new message is received.\",\"displayName\":\"New Message Received\",\"key\":\"gmail.on_message_received\",\"name\":\"on_message_received\",\"outputs\":[{\"handle\":\"events\",\"jsonSchema\":{\"type\":\"array\",\"items\":{\"type\":\"object\",\"properties\":{\"historyId\":{\"type\":[\"string\",\"null\"]},\"labelIds\":{\"type\":\"array\",\"items\":{\"type\":\"string\"}},\"messageId\":{\"type\":\"string\"},\"messageTimestamp\":{\"type\":\"string\"},\"sender\":{\"type\":\"string\"},\"subject\":{\"type\":\"string\"},\"threadId\":{\"type\":\"string\"},\"to\":{\"type\":\"string\"}},\"additionalProperties\":false,\"required\":[\"messageId\",\"threadId\",\"historyId\",\"labelIds\",\"subject\",\"sender\",\"to\",\"messageTimestamp\"]}},\"nullable\":false}],\"provider\":\"gmail\",\"type\":\"poll\"},\"options\":false},{\"snapshot\":{\"configInputs\":[{\"handle\":\"calendarId\",\"jsonSchema\":{\"type\":\"string\",\"minLength\":1,\"maxLength\":1024},\"nullable\":false},{\"handle\":\"changes\",\"jsonSchema\":{\"type\":\"array\",\"items\":{\"type\":\"string\",\"enum\":[\"created\",\"updated\",\"cancelled\"]},\"minItems\":1,\"uniqueItems\":true},\"nullable\":false,\"value\":[\"created\",\"updated\",\"cancelled\"]},{\"handle\":\"matchTerm\",\"jsonSchema\":{\"type\":\"string\"},\"nullable\":false,\"value\":\"\"},{\"group\":\"Advanced settings\",\"collapsed\":true},{\"handle\":\"maxEventsPerPoll\",\"jsonSchema\":{\"type\":\"integer\",\"minimum\":1,\"maximum\":500},\"nullable\":false,\"value\":100}],\"definitionVersion\":2,\"description\":\"Polls a Google Calendar and triggers when an event is created, updated or cancelled.\",\"displayName\":\"Event Changed\",\"key\":\"googlecalendar.on_event_changed\",\"name\":\"on_event_changed\",\"outputs\":[{\"handle\":\"events\",\"jsonSchema\":{\"type\":\"array\",\"items\":{\"type\":\"object\",\"properties\":{\"attendeeEmails\":{\"type\":\"array\",\"items\":{\"type\":\"string\"}},\"calendarId\":{\"type\":\"string\"},\"changeType\":{\"type\":\"string\",\"enum\":[\"created\",\"updated\",\"cancelled\"]},\"created\":{\"type\":[\"string\",\"null\"]},\"creatorEmail\":{\"type\":[\"string\",\"null\"]},\"description\":{\"type\":[\"string\",\"null\"]},\"end\":{\"type\":[\"object\",\"null\"]},\"eventId\":{\"type\":\"string\"},\"eventType\":{\"type\":[\"string\",\"null\"]},\"htmlLink\":{\"type\":[\"string\",\"null\"]},\"isAllDay\":{\"type\":\"boolean\"},\"location\":{\"type\":[\"string\",\"null\"]},\"organizerEmail\":{\"type\":[\"string\",\"null\"]},\"recurringEventId\":{\"type\":[\"string\",\"null\"]},\"start\":{\"type\":[\"object\",\"null\"]},\"status\":{\"type\":\"string\"},\"summary\":{\"type\":[\"string\",\"null\"]},\"updated\":{\"type\":[\"string\",\"null\"]}},\"additionalProperties\":false,\"required\":[\"changeType\",\"calendarId\",\"eventId\",\"status\",\"summary\",\"description\",\"location\",\"htmlLink\",\"start\",\"end\",\"isAllDay\",\"organizerEmail\",\"creatorEmail\",\"attendeeEmails\",\"recurringEventId\",\"eventType\",\"created\",\"updated\"]}},\"nullable\":false}],\"provider\":\"googlecalendar\",\"type\":\"poll\"},\"options\":false},{\"snapshot\":{\"configInputs\":[{\"handle\":\"driveId\",\"jsonSchema\":{\"type\":\"string\",\"minLength\":1,\"maxLength\":256},\"nullable\":true,\"description\":\"Optional shared drive ID. Omit it to monitor the connected account.\"},{\"handle\":\"includeRemoved\",\"jsonSchema\":{\"type\":\"boolean\"},\"nullable\":false,\"value\":true,\"description\":\"Include changes caused by deletion or loss of access.\"},{\"handle\":\"restrictToMyDrive\",\"jsonSchema\":{\"type\":\"boolean\"},\"nullable\":false,\"value\":false,\"description\":\"Restrict changes to the My Drive hierarchy.\"},{\"group\":\"Advanced settings\",\"collapsed\":true},{\"handle\":\"includeCorpusRemovals\",\"jsonSchema\":{\"type\":\"boolean\"},\"nullable\":false,\"value\":false,\"description\":\"Include the accessible file resource when an item leaves the change corpus.\"},{\"handle\":\"includeItemsFromAllDrives\",\"jsonSchema\":{\"type\":\"boolean\"},\"nullable\":false,\"value\":true,\"description\":\"Include items from My Drive and shared drives.\"},{\"handle\":\"pageSize\",\"jsonSchema\":{\"type\":\"integer\",\"minimum\":1,\"maximum\":100},\"nullable\":false,\"value\":100,\"description\":\"Maximum changes included in one Flow Run.\"}],\"definitionVersion\":2,\"description\":\"Uses a Google Drive changes.watch channel and triggers when Drive changes are available.\",\"displayName\":\"Changes Detected\",\"endpoint\":{\"body\":{\"allowArray\":false,\"allowEmpty\":true,\"formats\":[\"json\"]},\"methods\":[\"POST\"],\"successStatus\":204},\"key\":\"googledrive.changes_detected\",\"name\":\"changes_detected\",\"outputs\":[{\"handle\":\"events\",\"jsonSchema\":{\"type\":\"array\",\"items\":{\"type\":\"object\",\"properties\":{\"changeId\":{\"type\":\"string\"},\"changeType\":{\"type\":[\"string\",\"null\"]},\"driveId\":{\"type\":[\"string\",\"null\"]},\"file\":{\"type\":[\"object\",\"null\"]},\"fileId\":{\"type\":[\"string\",\"null\"]},\"notification\":{\"type\":\"object\",\"properties\":{\"changedTypes\":{\"type\":\"array\",\"items\":{\"type\":\"string\"}},\"messageNumber\":{\"type\":[\"string\",\"null\"]},\"resourceState\":{\"type\":\"string\"},\"resourceUri\":{\"type\":[\"string\",\"null\"]}},\"additionalProperties\":false,\"required\":[\"resourceState\",\"changedTypes\",\"messageNumber\",\"resourceUri\"]},\"removed\":{\"type\":\"boolean\"},\"time\":{\"type\":[\"string\",\"null\"]}},\"additionalProperties\":false,\"required\":[\"changeId\",\"changeType\",\"removed\",\"time\",\"fileId\",\"driveId\",\"file\",\"notification\"]}},\"nullable\":false}],\"provider\":\"googledrive\",\"type\":\"integration\"},\"options\":false},{\"snapshot\":{\"configInputs\":[{\"handle\":\"changeType\",\"jsonSchema\":{\"type\":\"string\",\"enum\":[\"created\",\"updated\"]},\"nullable\":false},{\"handle\":\"driveId\",\"jsonSchema\":{\"type\":\"string\",\"pattern\":\"^[A-Za-z0-9_-]{0,512}$\"},\"nullable\":false,\"value\":\"\"},{\"handle\":\"folderId\",\"jsonSchema\":{\"type\":\"string\",\"pattern\":\"^[A-Za-z0-9_-]{2,512}$\"},\"nullable\":false},{\"handle\":\"itemTypes\",\"jsonSchema\":{\"type\":\"array\",\"items\":{\"type\":\"string\",\"enum\":[\"file\",\"folder\"]},\"minItems\":1,\"uniqueItems\":true},\"nullable\":false,\"value\":[\"file\"]},{\"handle\":\"mimeTypes\",\"jsonSchema\":{\"type\":\"array\",\"items\":{\"type\":\"string\",\"minLength\":1}},\"nullable\":false,\"value\":[]},{\"handle\":\"namePrefix\",\"jsonSchema\":{\"type\":\"string\"},\"nullable\":false,\"value\":\"\"},{\"group\":\"Advanced settings\",\"collapsed\":true},{\"handle\":\"maxFilesPerPoll\",\"jsonSchema\":{\"type\":\"integer\",\"minimum\":1,\"maximum\":200},\"nullable\":false,\"value\":50}],\"definitionVersion\":2,\"description\":\"Polls one Google Drive folder and triggers when a file or folder directly inside it is created or updated.\",\"displayName\":\"File or Folder Change in a Folder\",\"key\":\"googledrive.on_file_change\",\"name\":\"on_file_change\",\"outputs\":[{\"handle\":\"events\",\"jsonSchema\":{\"type\":\"array\",\"items\":{\"type\":\"object\",\"properties\":{\"createdTime\":{\"type\":[\"string\",\"null\"]},\"driveId\":{\"type\":[\"string\",\"null\"]},\"eventType\":{\"type\":\"string\",\"enum\":[\"file_created\",\"file_updated\",\"folder_created\",\"folder_updated\"]},\"fileId\":{\"type\":\"string\"},\"itemType\":{\"type\":\"string\",\"enum\":[\"file\",\"folder\"]},\"lastModifyingUser\":{\"type\":[\"object\",\"null\"]},\"mimeType\":{\"type\":\"string\"},\"modifiedTime\":{\"type\":[\"string\",\"null\"]},\"name\":{\"type\":\"string\"},\"parents\":{\"type\":\"array\",\"items\":{\"type\":\"string\"}},\"size\":{\"type\":\"string\"},\"webViewLink\":{\"type\":[\"string\",\"null\"]}},\"additionalProperties\":false,\"required\":[\"eventType\",\"itemType\",\"fileId\",\"name\",\"mimeType\",\"createdTime\",\"modifiedTime\",\"parents\",\"webViewLink\",\"driveId\",\"lastModifyingUser\"]}},\"nullable\":false}],\"provider\":\"googledrive\",\"type\":\"poll\"},\"options\":false},{\"snapshot\":{\"configInputs\":[{\"handle\":\"driveId\",\"jsonSchema\":{\"type\":\"string\",\"minLength\":1,\"maxLength\":256},\"nullable\":true,\"description\":\"Optional shared drive ID. Omit it to monitor the connected account.\"},{\"handle\":\"includeRemoved\",\"jsonSchema\":{\"type\":\"boolean\"},\"nullable\":false,\"value\":true,\"description\":\"Include changes caused by deletion or loss of access.\"},{\"handle\":\"restrictToMyDrive\",\"jsonSchema\":{\"type\":\"boolean\"},\"nullable\":false,\"value\":false,\"description\":\"Restrict changes to the My Drive hierarchy.\"},{\"group\":\"Advanced settings\",\"collapsed\":true},{\"handle\":\"includeCorpusRemovals\",\"jsonSchema\":{\"type\":\"boolean\"},\"nullable\":false,\"value\":false,\"description\":\"Include the accessible file resource when an item leaves the change corpus.\"},{\"handle\":\"includeItemsFromAllDrives\",\"jsonSchema\":{\"type\":\"boolean\"},\"nullable\":false,\"value\":true,\"description\":\"Include items from My Drive and shared drives.\"},{\"handle\":\"pageSize\",\"jsonSchema\":{\"type\":\"integer\",\"minimum\":1,\"maximum\":100},\"nullable\":false,\"value\":100,\"description\":\"Maximum changes included in one Flow Run.\"}],\"definitionVersion\":2,\"description\":\"Monitors Drive changes using notifications and periodic scans of the same change stream.\",\"displayName\":\"Watch Changes\",\"endpoint\":{\"body\":{\"allowArray\":false,\"allowEmpty\":true,\"formats\":[\"json\"]},\"methods\":[\"POST\"],\"successStatus\":204},\"key\":\"googledrive.watch_changes\",\"name\":\"watch_changes\",\"outputs\":[{\"handle\":\"events\",\"jsonSchema\":{\"type\":\"array\",\"items\":{\"type\":\"object\"}},\"nullable\":false}],\"provider\":\"googledrive\",\"type\":\"integration\"},\"options\":false,\"intervalMs\":300000},{\"snapshot\":{\"configInputs\":[{\"handle\":\"columnRange\",\"jsonSchema\":{\"type\":\"string\",\"pattern\":\"^[A-Za-z]{1,3}(?::[A-Za-z]{1,3})?$\"},\"nullable\":false,\"value\":\"A:ZZZ\"},{\"handle\":\"sheet\",\"jsonSchema\":{\"type\":\"string\",\"minLength\":1},\"nullable\":false},{\"handle\":\"spreadsheetId\",\"jsonSchema\":{\"type\":\"string\",\"minLength\":1},\"nullable\":false},{\"group\":\"Advanced settings\",\"collapsed\":true},{\"handle\":\"dateTimeRender\",\"jsonSchema\":{\"type\":\"string\",\"enum\":[\"FORMATTED_STRING\",\"SERIAL_NUMBER\"]},\"nullable\":false,\"value\":\"FORMATTED_STRING\"},{\"handle\":\"firstDataRow\",\"jsonSchema\":{\"type\":\"integer\",\"minimum\":1},\"nullable\":false,\"value\":2},{\"handle\":\"headerRow\",\"jsonSchema\":{\"type\":\"integer\",\"minimum\":1},\"nullable\":false,\"value\":1},{\"handle\":\"maxRowsPerPoll\",\"jsonSchema\":{\"type\":\"integer\",\"minimum\":1,\"maximum\":500},\"nullable\":false,\"value\":100},{\"handle\":\"valueRender\",\"jsonSchema\":{\"type\":\"string\",\"enum\":[\"UNFORMATTED_VALUE\",\"FORMATTED_VALUE\",\"FORMULA\"]},\"nullable\":false,\"value\":\"UNFORMATTED_VALUE\"}],\"definitionVersion\":2,\"description\":\"Polls a sheet and triggers once for every new row appended below the last row already seen.\",\"displayName\":\"New Row Added\",\"key\":\"googlesheets.on_row_added\",\"name\":\"on_row_added\",\"outputs\":[{\"handle\":\"events\",\"jsonSchema\":{\"type\":\"array\",\"items\":{\"type\":\"object\",\"properties\":{\"row\":{\"type\":\"object\"},\"rowNumber\":{\"type\":\"integer\"},\"sheetId\":{\"type\":\"integer\"},\"sheetTitle\":{\"type\":\"string\"},\"spreadsheetId\":{\"type\":\"string\"},\"values\":{\"type\":\"array\",\"items\":{}}},\"additionalProperties\":false,\"required\":[\"spreadsheetId\",\"sheetId\",\"sheetTitle\",\"rowNumber\",\"row\",\"values\"]}},\"nullable\":false}],\"provider\":\"googlesheets\",\"type\":\"poll\"},\"options\":false},{\"snapshot\":{\"key\":\"intercom.on_conversation_event\",\"provider\":\"intercom\",\"name\":\"on_conversation_event\",\"displayName\":\"Customer Conversation or Ticket\",\"description\":\"Receives customer conversations, customer replies and new tickets from a verified Intercom application event source. Administrator replies are excluded.\",\"definitionVersion\":2,\"type\":\"integration\",\"endpoint\":{\"methods\":[\"POST\"],\"body\":{\"formats\":[\"json\"],\"allowArray\":false,\"allowEmpty\":false},\"successStatus\":200},\"configInputs\":[{\"handle\":\"sourceId\",\"jsonSchema\":{\"type\":\"string\",\"pattern\":\"^source_[0-9a-f]{32}$\",\"title\":\"Event source\"},\"nullable\":false},{\"handle\":\"eventTypes\",\"jsonSchema\":{\"type\":\"array\",\"items\":{\"type\":\"string\",\"enum\":[\"conversation.user.created\",\"conversation.user.replied\",\"ticket.created\"]},\"minItems\":1,\"maxItems\":3,\"uniqueItems\":true,\"title\":\"Events\"},\"nullable\":false,\"value\":[\"conversation.user.created\",\"conversation.user.replied\",\"ticket.created\"]}],\"outputs\":[{\"handle\":\"event\",\"jsonSchema\":{\"type\":\"string\"},\"nullable\":false},{\"handle\":\"deliveryId\",\"jsonSchema\":{\"type\":\"string\"},\"nullable\":false},{\"handle\":\"workspaceId\",\"jsonSchema\":{\"type\":\"string\"},\"nullable\":false},{\"handle\":\"objectId\",\"jsonSchema\":{\"type\":\"string\"},\"nullable\":false},{\"handle\":\"body\",\"jsonSchema\":{\"type\":\"object\",\"properties\":{},\"additionalProperties\":true},\"nullable\":false}]},\"options\":false,\"eventSource\":\"intercom\",\"source\":{\"createSchema\":{\"$schema\":\"https://json-schema.org/draft/2020-12/schema\",\"type\":\"object\",\"properties\":{\"kind\":{\"type\":\"string\",\"const\":\"intercom\"},\"version\":{\"type\":\"number\",\"const\":1},\"name\":{\"type\":\"string\",\"minLength\":1,\"maxLength\":128},\"connectionId\":{\"type\":\"string\",\"minLength\":1,\"maxLength\":256},\"teamId\":{\"anyOf\":[{\"type\":\"string\",\"minLength\":1,\"maxLength\":256},{\"type\":\"null\"}]},\"appId\":{\"type\":\"string\",\"minLength\":1,\"maxLength\":256},\"signingSecret\":{\"type\":\"string\",\"minLength\":1,\"maxLength\":256},\"eventTypes\":{\"minItems\":1,\"maxItems\":3,\"type\":\"array\",\"items\":{\"type\":\"string\",\"enum\":[\"conversation.user.created\",\"conversation.user.replied\",\"ticket.created\"]}}},\"required\":[\"kind\",\"version\",\"name\",\"connectionId\",\"teamId\",\"appId\",\"signingSecret\",\"eventTypes\"],\"additionalProperties\":false},\"updateSchema\":{\"$schema\":\"https://json-schema.org/draft/2020-12/schema\",\"type\":\"object\",\"properties\":{\"version\":{\"type\":\"number\",\"const\":1},\"expectedRevision\":{\"type\":\"integer\",\"exclusiveMinimum\":0,\"maximum\":9007199254740991},\"name\":{\"type\":\"string\",\"minLength\":1,\"maxLength\":128},\"enabled\":{\"type\":\"boolean\"},\"eventTypes\":{\"minItems\":1,\"maxItems\":200,\"type\":\"array\",\"items\":{\"type\":\"string\",\"pattern\":\"^[a-z][a-z0-9_.:]{0,127}$\"}},\"verificationToken\":{\"type\":\"string\",\"minLength\":1,\"maxLength\":256},\"signingSecret\":{\"type\":\"string\",\"minLength\":1,\"maxLength\":256},\"encryptKey\":{\"type\":\"string\",\"minLength\":1,\"maxLength\":256}},\"required\":[\"version\",\"expectedRevision\",\"name\",\"enabled\",\"eventTypes\"],\"additionalProperties\":false},\"kind\":\"intercom\",\"provider\":\"intercom\",\"triggerId\":\"intercom.on_conversation_event\",\"maximumBodyBytes\":65536,\"applicationIngress\":true,\"managed\":false}},{\"snapshot\":{\"key\":\"jira.on_issue_event\",\"provider\":\"jira\",\"name\":\"on_issue_event\",\"displayName\":\"Issue or Comment Event\",\"description\":\"Receives Jira Cloud issue creation, issue updates and new comments through a shared project webhook with automatic renewal.\",\"definitionVersion\":2,\"type\":\"integration\",\"endpoint\":{\"methods\":[\"POST\"],\"body\":{\"formats\":[\"json\"],\"allowArray\":false,\"allowEmpty\":false},\"successStatus\":200},\"configInputs\":[{\"handle\":\"sourceId\",\"jsonSchema\":{\"type\":\"string\",\"pattern\":\"^source_[0-9a-f]{32}$\",\"title\":\"Event source\"},\"nullable\":false},{\"handle\":\"eventTypes\",\"jsonSchema\":{\"type\":\"array\",\"items\":{\"type\":\"string\",\"enum\":[\"jira:issue_created\",\"jira:issue_updated\",\"comment_created\"]},\"minItems\":1,\"maxItems\":3,\"uniqueItems\":true,\"title\":\"Events\"},\"nullable\":false,\"value\":[\"jira:issue_created\",\"jira:issue_updated\",\"comment_created\"]}],\"outputs\":[{\"handle\":\"event\",\"jsonSchema\":{\"type\":\"string\"},\"nullable\":false},{\"handle\":\"deliveryId\",\"jsonSchema\":{\"type\":\"string\"},\"nullable\":false},{\"handle\":\"cloudId\",\"jsonSchema\":{\"type\":\"string\"},\"nullable\":false},{\"handle\":\"issueId\",\"jsonSchema\":{\"type\":\"string\"},\"nullable\":false},{\"handle\":\"body\",\"jsonSchema\":{\"type\":\"object\"},\"nullable\":false}]},\"options\":false,\"eventSource\":\"jira\",\"source\":{\"createSchema\":{\"$schema\":\"https://json-schema.org/draft/2020-12/schema\",\"type\":\"object\",\"properties\":{\"kind\":{\"type\":\"string\",\"const\":\"jira\"},\"version\":{\"type\":\"number\",\"const\":1},\"name\":{\"type\":\"string\",\"minLength\":1,\"maxLength\":128},\"connectionId\":{\"type\":\"string\",\"minLength\":1,\"maxLength\":256},\"teamId\":{\"anyOf\":[{\"type\":\"string\",\"minLength\":1,\"maxLength\":256},{\"type\":\"null\"}]},\"project\":{\"type\":\"string\",\"minLength\":1,\"maxLength\":256},\"eventTypes\":{\"minItems\":1,\"maxItems\":3,\"type\":\"array\",\"items\":{\"type\":\"string\",\"enum\":[\"jira:issue_created\",\"jira:issue_updated\",\"comment_created\"]}}},\"required\":[\"kind\",\"version\",\"name\",\"connectionId\",\"teamId\",\"project\",\"eventTypes\"],\"additionalProperties\":false},\"updateSchema\":{\"$schema\":\"https://json-schema.org/draft/2020-12/schema\",\"type\":\"object\",\"properties\":{\"version\":{\"type\":\"number\",\"const\":1},\"expectedRevision\":{\"type\":\"integer\",\"exclusiveMinimum\":0,\"maximum\":9007199254740991},\"name\":{\"type\":\"string\",\"minLength\":1,\"maxLength\":128},\"enabled\":{\"type\":\"boolean\"},\"eventTypes\":{\"minItems\":1,\"maxItems\":200,\"type\":\"array\",\"items\":{\"type\":\"string\",\"pattern\":\"^[a-z][a-z0-9_.:]{0,127}$\"}},\"verificationToken\":{\"type\":\"string\",\"minLength\":1,\"maxLength\":256},\"signingSecret\":{\"type\":\"string\",\"minLength\":1,\"maxLength\":256},\"encryptKey\":{\"type\":\"string\",\"minLength\":1,\"maxLength\":256}},\"required\":[\"version\",\"expectedRevision\",\"name\",\"enabled\",\"eventTypes\"],\"additionalProperties\":false},\"kind\":\"jira\",\"provider\":\"jira\",\"triggerId\":\"jira.on_issue_event\",\"maximumBodyBytes\":65536,\"applicationIngress\":false,\"managed\":true}},{\"snapshot\":{\"configInputs\":[{\"handle\":\"teamId\",\"jsonSchema\":{\"type\":\"string\",\"pattern\":\"^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}$\",\"title\":\"Team ID\"},\"nullable\":false,\"description\":\"Linear Team UUID. Use Copy model UUID in Linear to find it.\"},{\"handle\":\"stateIds\",\"jsonSchema\":{\"type\":\"array\",\"items\":{\"type\":\"string\",\"pattern\":\"^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}$\"},\"maxItems\":50,\"uniqueItems\":true,\"title\":\"Issue statuses\"},\"nullable\":false,\"value\":[],\"description\":\"Choose statuses from the selected Team. Empty means all statuses. Matches the current status, not every transition into it.\"}],\"definitionVersion\":2,\"description\":\"Watches new and updated issues in a Linear team with periodic checks. Starts from now without running existing issues. Reports observed current states, not deletions or every intermediate status change.\",\"displayName\":\"Issue Created or Updated\",\"key\":\"linear.on_issue_changed\",\"name\":\"on_issue_changed\",\"outputs\":[{\"handle\":\"events\",\"jsonSchema\":{\"type\":\"array\",\"items\":{\"type\":\"object\",\"properties\":{\"id\":{\"type\":\"string\"},\"identifier\":{\"type\":\"string\"},\"title\":{\"type\":\"string\"},\"url\":{\"type\":\"string\"},\"teamId\":{\"type\":\"string\"},\"createdAt\":{\"type\":\"string\"},\"updatedAt\":{\"type\":\"string\"},\"state\":{\"type\":\"object\",\"properties\":{\"id\":{\"type\":\"string\"},\"name\":{\"type\":\"string\"},\"type\":{\"type\":\"string\"}},\"additionalProperties\":false,\"required\":[\"id\",\"name\",\"type\"]}},\"additionalProperties\":false,\"required\":[\"id\",\"identifier\",\"title\",\"url\",\"teamId\",\"createdAt\",\"updatedAt\",\"state\"]}},\"nullable\":false}],\"provider\":\"linear\",\"type\":\"poll\"},\"options\":true},{\"snapshot\":{\"configInputs\":[{\"handle\":\"dataSourceId\",\"jsonSchema\":{\"type\":\"string\",\"pattern\":\"^(?:|[0-9a-fA-F]{8}-?[0-9a-fA-F]{4}-?[0-9a-fA-F]{4}-?[0-9a-fA-F]{4}-?[0-9a-fA-F]{12})$\"},\"nullable\":false,\"value\":\"\"},{\"handle\":\"databaseId\",\"jsonSchema\":{\"type\":\"string\",\"pattern\":\"^[0-9a-fA-F]{8}-?[0-9a-fA-F]{4}-?[0-9a-fA-F]{4}-?[0-9a-fA-F]{4}-?[0-9a-fA-F]{12}$\"},\"nullable\":false},{\"handle\":\"events\",\"jsonSchema\":{\"type\":\"array\",\"items\":{\"type\":\"string\",\"enum\":[\"page_added\",\"page_updated\"]},\"minItems\":1,\"uniqueItems\":true},\"nullable\":false,\"value\":[\"page_added\"]},{\"group\":\"Advanced settings\",\"collapsed\":true},{\"handle\":\"includeProperties\",\"jsonSchema\":{\"type\":\"boolean\"},\"nullable\":false,\"value\":true},{\"handle\":\"maxItemsPerPoll\",\"jsonSchema\":{\"type\":\"integer\",\"minimum\":1,\"maximum\":100},\"nullable\":false,\"value\":25}],\"definitionVersion\":2,\"description\":\"Polls a Notion database and triggers when a page is added to it or an existing page is edited.\",\"displayName\":\"Database Page Added or Updated\",\"key\":\"notion.on_database_page_event\",\"name\":\"on_database_page_event\",\"outputs\":[{\"handle\":\"events\",\"jsonSchema\":{\"type\":\"array\",\"items\":{\"type\":\"object\",\"properties\":{\"createdBy\":{\"type\":\"object\"},\"createdTime\":{\"type\":\"string\"},\"dataSourceId\":{\"type\":\"string\"},\"databaseId\":{\"type\":\"string\"},\"event\":{\"type\":\"string\",\"enum\":[\"page_added\",\"page_updated\"]},\"lastEditedBy\":{\"type\":\"object\"},\"lastEditedTime\":{\"type\":\"string\"},\"pageId\":{\"type\":\"string\"},\"properties\":{\"type\":\"object\"},\"title\":{\"type\":\"string\"},\"url\":{\"type\":\"string\"}},\"additionalProperties\":false,\"required\":[\"event\",\"pageId\",\"databaseId\",\"dataSourceId\",\"url\",\"title\",\"createdTime\",\"lastEditedTime\",\"createdBy\",\"lastEditedBy\"]}},\"nullable\":false}],\"provider\":\"notion\",\"type\":\"poll\"},\"options\":false},{\"snapshot\":{\"configInputs\":[{\"handle\":\"events\",\"jsonSchema\":{\"type\":\"array\",\"items\":{\"type\":\"string\",\"enum\":[\"created\",\"updated\",\"deleted\"]},\"minItems\":1,\"uniqueItems\":true},\"nullable\":false,\"value\":[\"created\",\"updated\"]},{\"handle\":\"itemId\",\"jsonSchema\":{\"type\":\"string\"},\"nullable\":false,\"value\":\"\"},{\"handle\":\"itemTypes\",\"jsonSchema\":{\"type\":\"array\",\"items\":{\"type\":\"string\",\"enum\":[\"file\",\"folder\"]},\"minItems\":1,\"uniqueItems\":true},\"nullable\":false,\"value\":[\"file\"]},{\"handle\":\"parentFolderId\",\"jsonSchema\":{\"type\":\"string\"},\"nullable\":false,\"value\":\"\"},{\"group\":\"Advanced settings\",\"collapsed\":true},{\"handle\":\"maxItemsPerPoll\",\"jsonSchema\":{\"type\":\"integer\",\"minimum\":1,\"maximum\":200},\"nullable\":false,\"value\":50}],\"definitionVersion\":2,\"description\":\"Polls the OneDrive change feed and triggers when a file or folder is created, updated or deleted.\",\"displayName\":\"File or Folder Changed\",\"key\":\"one_drive.on_item_changed\",\"name\":\"on_item_changed\",\"outputs\":[{\"handle\":\"events\",\"jsonSchema\":{\"type\":\"array\",\"items\":{\"type\":\"object\",\"properties\":{\"changeType\":{\"type\":\"string\",\"enum\":[\"created\",\"updated\",\"deleted\"]},\"createdDateTime\":{\"type\":[\"string\",\"null\"]},\"driveId\":{\"type\":[\"string\",\"null\"]},\"eTag\":{\"type\":[\"string\",\"null\"]},\"itemId\":{\"type\":\"string\"},\"itemType\":{\"type\":\"string\",\"enum\":[\"file\",\"folder\"]},\"lastModifiedDateTime\":{\"type\":[\"string\",\"null\"]},\"mimeType\":{\"type\":[\"string\",\"null\"]},\"name\":{\"type\":\"string\"},\"parentFolderId\":{\"type\":[\"string\",\"null\"]},\"size\":{\"type\":[\"number\",\"null\"]},\"webUrl\":{\"type\":\"string\"}},\"additionalProperties\":false,\"required\":[\"itemId\",\"name\",\"changeType\",\"itemType\",\"size\",\"mimeType\",\"webUrl\",\"parentFolderId\",\"driveId\",\"createdDateTime\",\"lastModifiedDateTime\",\"eTag\"]}},\"nullable\":false}],\"provider\":\"one_drive\",\"type\":\"poll\"},\"options\":false},{\"snapshot\":{\"configInputs\":[{\"handle\":\"folder\",\"jsonSchema\":{\"type\":\"string\",\"pattern\":\"^[A-Za-z0-9_=-]*$\"},\"nullable\":false,\"value\":\"inbox\",\"description\":\"A well-known mail folder name, folder ID, or an empty string for the whole mailbox.\"},{\"handle\":\"readStatus\",\"jsonSchema\":{\"type\":\"string\",\"enum\":[\"All\",\"Read\",\"Unread\"]},\"nullable\":false,\"value\":\"All\"},{\"handle\":\"senderAddress\",\"jsonSchema\":{\"type\":\"string\"},\"nullable\":false,\"value\":\"\",\"description\":\"Exact sender address, or empty for any sender.\"},{\"handle\":\"subjectContains\",\"jsonSchema\":{\"type\":\"string\"},\"nullable\":false,\"value\":\"\",\"description\":\"Case-insensitive subject text.\"},{\"handle\":\"withAttachmentsOnly\",\"jsonSchema\":{\"type\":\"boolean\"},\"nullable\":false,\"value\":false},{\"group\":\"Advanced settings\",\"collapsed\":true},{\"handle\":\"includeDrafts\",\"jsonSchema\":{\"type\":\"boolean\"},\"nullable\":false,\"value\":false},{\"handle\":\"maxMessagesPerPoll\",\"jsonSchema\":{\"type\":\"integer\",\"minimum\":1,\"maximum\":100},\"nullable\":false,\"value\":25}],\"definitionVersion\":2,\"description\":\"Polls a Microsoft Outlook mail folder and triggers when a new message arrives.\",\"displayName\":\"New Message Received\",\"key\":\"outlook.on_message_received\",\"name\":\"on_message_received\",\"outputs\":[{\"handle\":\"events\",\"jsonSchema\":{\"type\":\"array\",\"items\":{\"type\":\"object\",\"properties\":{\"bodyPreview\":{\"type\":\"string\"},\"categories\":{\"type\":\"array\",\"items\":{\"type\":\"string\"}},\"conversationId\":{\"type\":\"string\"},\"from\":{\"type\":\"string\"},\"fromName\":{\"type\":\"string\"},\"hasAttachments\":{\"type\":\"boolean\"},\"importance\":{\"type\":\"string\"},\"internetMessageId\":{\"type\":\"string\"},\"isDraft\":{\"type\":\"boolean\"},\"isRead\":{\"type\":\"boolean\"},\"messageId\":{\"type\":\"string\"},\"parentFolderId\":{\"type\":\"string\"},\"receivedDateTime\":{\"type\":\"string\"},\"subject\":{\"type\":\"string\"},\"to\":{\"type\":\"array\",\"items\":{\"type\":\"string\"}},\"webLink\":{\"type\":\"string\"}},\"additionalProperties\":false,\"required\":[\"messageId\",\"internetMessageId\",\"conversationId\",\"subject\",\"bodyPreview\",\"from\",\"fromName\",\"to\",\"receivedDateTime\",\"hasAttachments\",\"isRead\",\"isDraft\",\"importance\",\"categories\",\"parentFolderId\",\"webLink\"]}},\"nullable\":false}],\"provider\":\"outlook\",\"type\":\"poll\"},\"options\":false},{\"snapshot\":{\"key\":\"pandadoc.on_document_event\",\"provider\":\"pandadoc\",\"name\":\"on_document_event\",\"displayName\":\"Document Status Changed\",\"description\":\"Receives document status changes in the connected workspace, optionally only when the entire document is completed.\",\"definitionVersion\":2,\"type\":\"integration\",\"endpoint\":{\"methods\":[\"POST\"],\"body\":{\"formats\":[\"json\"],\"allowArray\":true,\"allowEmpty\":false},\"successStatus\":200},\"configInputs\":[{\"handle\":\"completedOnly\",\"jsonSchema\":{\"type\":\"boolean\",\"title\":\"Completed documents only\"},\"nullable\":false,\"value\":true}],\"outputs\":[{\"handle\":\"events\",\"nullable\":false,\"jsonSchema\":{\"type\":\"array\",\"items\":{\"type\":\"object\",\"properties\":{\"event\":{\"type\":\"string\"},\"data\":{\"type\":\"object\"}},\"required\":[\"event\",\"data\"]}}}]},\"options\":false},{\"snapshot\":{\"key\":\"pipedrive.on_crm_event\",\"provider\":\"pipedrive\",\"name\":\"on_crm_event\",\"displayName\":\"Deal or Contact Event\",\"description\":\"Receives new deals or contacts, or actual changes to a deal stage or status using Pipedrive Webhooks v2.\",\"definitionVersion\":2,\"type\":\"integration\",\"endpoint\":{\"methods\":[\"POST\"],\"body\":{\"formats\":[\"json\"],\"allowArray\":false,\"allowEmpty\":false},\"successStatus\":200},\"configInputs\":[{\"handle\":\"eventType\",\"jsonSchema\":{\"type\":\"string\",\"enum\":[\"deal.created\",\"deal.stage_changed\",\"deal.status_changed\",\"person.created\"],\"title\":\"Event\"},\"nullable\":false,\"value\":\"deal.created\"}],\"outputs\":[{\"handle\":\"event\",\"jsonSchema\":{\"type\":\"string\",\"enum\":[\"deal.created\",\"deal.stage_changed\",\"deal.status_changed\",\"person.created\"]},\"nullable\":false},{\"handle\":\"deliveryId\",\"jsonSchema\":{\"type\":\"string\"},\"nullable\":false},{\"handle\":\"objectId\",\"jsonSchema\":{\"type\":\"string\"},\"nullable\":false},{\"handle\":\"body\",\"jsonSchema\":{\"type\":\"object\"},\"nullable\":false}]},\"options\":false},{\"snapshot\":{\"key\":\"resend.on_email_event\",\"provider\":\"resend\",\"name\":\"on_email_event\",\"displayName\":\"Email Received, Bounced or Complained\",\"description\":\"Receives inbound email, bounce, and complaint notifications. Read message bodies and attachments with Actions.\",\"definitionVersion\":2,\"type\":\"integration\",\"endpoint\":{\"methods\":[\"POST\"],\"body\":{\"formats\":[\"json\"],\"allowArray\":false,\"allowEmpty\":false},\"successStatus\":200},\"configInputs\":[{\"handle\":\"eventTypes\",\"jsonSchema\":{\"type\":\"array\",\"items\":{\"type\":\"string\",\"enum\":[\"email.received\",\"email.bounced\",\"email.complained\"]},\"minItems\":1,\"uniqueItems\":true,\"title\":\"Events\"},\"nullable\":false,\"value\":[\"email.received\",\"email.bounced\",\"email.complained\"]}],\"outputs\":[{\"handle\":\"event\",\"jsonSchema\":{\"type\":\"string\",\"enum\":[\"email.received\",\"email.bounced\",\"email.complained\"]},\"nullable\":false},{\"handle\":\"deliveryId\",\"jsonSchema\":{\"type\":\"string\"},\"nullable\":false},{\"handle\":\"emailId\",\"jsonSchema\":{\"type\":\"string\"},\"nullable\":false},{\"handle\":\"createdAt\",\"jsonSchema\":{\"type\":\"string\"},\"nullable\":false},{\"handle\":\"body\",\"jsonSchema\":{\"type\":\"object\"},\"nullable\":false}]},\"options\":false},{\"snapshot\":{\"key\":\"sentry.on_issue_alert\",\"provider\":\"sentry\",\"name\":\"on_issue_alert\",\"displayName\":\"Issue Alert\",\"description\":\"Receives Issue Alert Rule notifications from a verified Sentry Custom Integration installation.\",\"definitionVersion\":2,\"type\":\"integration\",\"endpoint\":{\"methods\":[\"POST\"],\"body\":{\"formats\":[\"json\"],\"allowArray\":false,\"allowEmpty\":false},\"successStatus\":200},\"configInputs\":[{\"handle\":\"projectIds\",\"jsonSchema\":{\"type\":\"array\",\"items\":{\"type\":\"string\",\"pattern\":\"^[0-9]+$\"},\"uniqueItems\":true,\"title\":\"Project IDs\"},\"nullable\":true},{\"handle\":\"ruleNames\",\"jsonSchema\":{\"type\":\"array\",\"items\":{\"type\":\"string\",\"minLength\":1},\"uniqueItems\":true,\"title\":\"Alert rule names\"},\"nullable\":true},{\"handle\":\"sourceId\",\"jsonSchema\":{\"type\":\"string\",\"pattern\":\"^source_[0-9a-f]{32}$\",\"title\":\"Event source\"},\"nullable\":false},{\"handle\":\"eventTypes\",\"jsonSchema\":{\"type\":\"array\",\"items\":{\"type\":\"string\",\"enum\":[\"issue.alert\"]},\"minItems\":1,\"maxItems\":1,\"uniqueItems\":true,\"title\":\"Events\"},\"nullable\":false,\"value\":[\"issue.alert\"]}],\"outputs\":[{\"handle\":\"event\",\"jsonSchema\":{\"type\":\"string\"},\"nullable\":false},{\"handle\":\"deliveryId\",\"jsonSchema\":{\"type\":\"string\"},\"nullable\":false},{\"handle\":\"organizationId\",\"jsonSchema\":{\"type\":\"string\"},\"nullable\":false},{\"handle\":\"issueId\",\"jsonSchema\":{\"type\":\"string\"},\"nullable\":false},{\"handle\":\"body\",\"jsonSchema\":{\"type\":\"object\"},\"nullable\":false}]},\"options\":false,\"eventSource\":\"sentry\",\"source\":{\"createSchema\":{\"$schema\":\"https://json-schema.org/draft/2020-12/schema\",\"type\":\"object\",\"properties\":{\"kind\":{\"type\":\"string\",\"const\":\"sentry\"},\"version\":{\"type\":\"number\",\"const\":1},\"name\":{\"type\":\"string\",\"minLength\":1,\"maxLength\":128},\"connectionId\":{\"type\":\"string\",\"minLength\":1,\"maxLength\":256},\"teamId\":{\"anyOf\":[{\"type\":\"string\",\"minLength\":1,\"maxLength\":256},{\"type\":\"null\"}]},\"appId\":{\"type\":\"string\",\"minLength\":1,\"maxLength\":256},\"installationId\":{\"type\":\"string\",\"minLength\":1,\"maxLength\":256},\"organizationId\":{\"type\":\"string\",\"minLength\":1,\"maxLength\":256},\"signingSecret\":{\"type\":\"string\",\"minLength\":1,\"maxLength\":256},\"eventTypes\":{\"minItems\":1,\"maxItems\":1,\"type\":\"array\",\"items\":{\"type\":\"string\",\"const\":\"issue.alert\"}}},\"required\":[\"kind\",\"version\",\"name\",\"connectionId\",\"teamId\",\"appId\",\"installationId\",\"organizationId\",\"signingSecret\",\"eventTypes\"],\"additionalProperties\":false},\"updateSchema\":{\"$schema\":\"https://json-schema.org/draft/2020-12/schema\",\"type\":\"object\",\"properties\":{\"version\":{\"type\":\"number\",\"const\":1},\"expectedRevision\":{\"type\":\"integer\",\"exclusiveMinimum\":0,\"maximum\":9007199254740991},\"name\":{\"type\":\"string\",\"minLength\":1,\"maxLength\":128},\"enabled\":{\"type\":\"boolean\"},\"eventTypes\":{\"minItems\":1,\"maxItems\":200,\"type\":\"array\",\"items\":{\"type\":\"string\",\"pattern\":\"^[a-z][a-z0-9_.:]{0,127}$\"}},\"verificationToken\":{\"type\":\"string\",\"minLength\":1,\"maxLength\":256},\"signingSecret\":{\"type\":\"string\",\"minLength\":1,\"maxLength\":256},\"encryptKey\":{\"type\":\"string\",\"minLength\":1,\"maxLength\":256}},\"required\":[\"version\",\"expectedRevision\",\"name\",\"enabled\",\"eventTypes\"],\"additionalProperties\":false},\"kind\":\"sentry\",\"provider\":\"sentry\",\"triggerId\":\"sentry.on_issue_alert\",\"maximumBodyBytes\":65536,\"applicationIngress\":true,\"managed\":false}},{\"snapshot\":{\"configInputs\":[{\"handle\":\"topics\",\"jsonSchema\":{\"type\":\"array\",\"items\":{\"type\":\"string\",\"enum\":[\"app/scopes_update\",\"app/uninstalled\",\"app_purchases_one_time/update\",\"app_subscriptions/approaching_capped_amount\",\"app_subscriptions/update\",\"bulk_operations/finish\",\"carts/create\",\"carts/update\",\"channels/delete\",\"checkout_and_accounts_configurations/update\",\"checkouts/create\",\"checkouts/delete\",\"checkouts/update\",\"collection_listings/add\",\"collection_listings/remove\",\"collection_listings/update\",\"collection_publications/create\",\"collection_publications/delete\",\"collection_publications/update\",\"collections/create\",\"collections/delete\",\"collections/update\",\"companies/create\",\"companies/delete\",\"companies/update\",\"company_contact_roles/assign\",\"company_contact_roles/revoke\",\"company_contacts/create\",\"company_contacts/delete\",\"company_contacts/update\",\"company_locations/create\",\"company_locations/delete\",\"company_locations/update\",\"customer.joined_segment\",\"customer.left_segment\",\"customer.tags_added\",\"customer.tags_removed\",\"customer_account_settings/update\",\"customer_groups/create\",\"customer_groups/delete\",\"customer_groups/update\",\"customers/create\",\"customers/delete\",\"customers/disable\",\"customers/enable\",\"customers/purchasing_summary\",\"customers/update\",\"customers_email_marketing_consent/update\",\"customers_marketing_consent/update\",\"delivery_promise_settings/update\",\"disputes/create\",\"disputes/update\",\"domains/create\",\"domains/destroy\",\"domains/update\",\"draft_orders/create\",\"draft_orders/delete\",\"draft_orders/update\",\"fulfillment_events/create\",\"fulfillment_events/delete\",\"fulfillment_holds/added\",\"fulfillment_holds/released\",\"fulfillment_orders/cancellation_request_accepted\",\"fulfillment_orders/cancellation_request_rejected\",\"fulfillment_orders/cancellation_request_submitted\",\"fulfillment_orders/cancelled\",\"fulfillment_orders/fulfillment_request_accepted\",\"fulfillment_orders/fulfillment_request_rejected\",\"fulfillment_orders/fulfillment_request_submitted\",\"fulfillment_orders/fulfillment_service_failed_to_complete\",\"fulfillment_orders/hold_released\",\"fulfillment_orders/line_items_prepared_for_local_delivery\",\"fulfillment_orders/line_items_prepared_for_pickup\",\"fulfillment_orders/manually_reported_progress_stopped\",\"fulfillment_orders/merged\",\"fulfillment_orders/moved\",\"fulfillment_orders/order_routing_complete\",\"fulfillment_orders/placed_on_hold\",\"fulfillment_orders/progress_reported\",\"fulfillment_orders/rescheduled\",\"fulfillment_orders/scheduled_fulfillment_order_ready\",\"fulfillment_orders/split\",\"fulfillments/create\",\"fulfillments/update\",\"inventory_items/create\",\"inventory_items/delete\",\"inventory_items/update\",\"inventory_levels/connect\",\"inventory_levels/disconnect\",\"inventory_levels/update\",\"locales/create\",\"locales/destroy\",\"locales/update\",\"locations/activate\",\"locations/create\",\"locations/deactivate\",\"locations/delete\",\"locations/update\",\"machine_translation_batch/completed\",\"metafield_definitions/create\",\"metafield_definitions/delete\",\"metafield_definitions/update\",\"order_transactions/create\",\"orders/cancelled\",\"orders/create\",\"orders/delete\",\"orders/edited\",\"orders/fulfilled\",\"orders/link_requested\",\"orders/paid\",\"orders/partially_fulfilled\",\"orders/risk_assessment_changed\",\"orders/shopify_protect_eligibility_changed\",\"orders/updated\",\"payment_schedules/due\",\"payment_terms/create\",\"payment_terms/delete\",\"payment_terms/update\",\"product_feeds/create\",\"product_feeds/full_sync\",\"product_feeds/full_sync_finish\",\"product_feeds/incremental_sync\",\"product_feeds/update\",\"product_listings/add\",\"product_listings/remove\",\"product_listings/update\",\"product_publications/create\",\"product_publications/delete\",\"product_publications/update\",\"products/create\",\"products/delete\",\"products/update\",\"profiles/create\",\"profiles/delete\",\"profiles/update\",\"publications/delete\",\"refunds/create\",\"returns/approve\",\"returns/cancel\",\"returns/close\",\"returns/decline\",\"returns/process\",\"returns/reopen\",\"returns/request\",\"returns/update\",\"reverse_deliveries/attach_deliverable\",\"reverse_fulfillment_orders/dispose\",\"scheduled_product_listings/add\",\"scheduled_product_listings/remove\",\"scheduled_product_listings/update\",\"segments/create\",\"segments/delete\",\"segments/update\",\"selling_plan_groups/create\",\"selling_plan_groups/delete\",\"selling_plan_groups/update\",\"shop/update\",\"subscription_billing_attempts/challenged\",\"subscription_billing_attempts/failure\",\"subscription_billing_attempts/success\",\"subscription_billing_cycle_edits/create\",\"subscription_billing_cycle_edits/delete\",\"subscription_billing_cycle_edits/update\",\"subscription_billing_cycles/skip\",\"subscription_billing_cycles/unskip\",\"subscription_contracts/activate\",\"subscription_contracts/cancel\",\"subscription_contracts/create\",\"subscription_contracts/expire\",\"subscription_contracts/fail\",\"subscription_contracts/pause\",\"subscription_contracts/update\",\"tax_partners/update\",\"tax_summaries/create\",\"tender_transactions/create\",\"themes/create\",\"themes/delete\",\"themes/publish\",\"themes/update\",\"variants/in_stock\",\"variants/out_of_stock\"]},\"minItems\":1,\"maxItems\":20,\"uniqueItems\":true},\"nullable\":false}],\"definitionVersion\":2,\"description\":\"Triggers when selected Shopify webhook topics occur in the connected store.\",\"displayName\":\"Store Event\",\"endpoint\":{\"body\":{\"allowArray\":false,\"allowEmpty\":false,\"formats\":[\"json\"]},\"methods\":[\"POST\"],\"successStatus\":202},\"key\":\"shopify.on_shop_event\",\"name\":\"on_shop_event\",\"outputs\":[{\"handle\":\"apiVersion\",\"jsonSchema\":{\"type\":\"string\"},\"nullable\":false},{\"handle\":\"body\",\"jsonSchema\":{\"type\":\"object\"},\"nullable\":false},{\"handle\":\"eventId\",\"jsonSchema\":{\"type\":\"string\"},\"nullable\":false},{\"handle\":\"shopDomain\",\"jsonSchema\":{\"type\":\"string\"},\"nullable\":false},{\"handle\":\"topic\",\"jsonSchema\":{\"type\":\"string\"},\"nullable\":false},{\"handle\":\"triggeredAt\",\"jsonSchema\":{\"type\":\"string\"},\"nullable\":false},{\"handle\":\"webhookId\",\"jsonSchema\":{\"type\":\"string\"},\"nullable\":false}],\"provider\":\"shopify\",\"type\":\"integration\"},\"options\":false},{\"snapshot\":{\"configInputs\":[{\"handle\":\"channelId\",\"jsonSchema\":{\"type\":\"string\",\"pattern\":\"^[CDG][A-Z0-9]{2,31}$\"},\"nullable\":false,\"description\":\"Slack conversation ID to watch, e.g. C0122KQ70S7E.\"},{\"handle\":\"fromUserIds\",\"jsonSchema\":{\"type\":\"array\",\"items\":{\"type\":\"string\",\"pattern\":\"^[UW][A-Z0-9]{2,31}$\"}},\"nullable\":false,\"value\":[],\"description\":\"Only trigger on messages written by these Slack user IDs. Empty means any author.\"},{\"handle\":\"ignoreUserIds\",\"jsonSchema\":{\"type\":\"array\",\"items\":{\"type\":\"string\",\"pattern\":\"^[UW][A-Z0-9]{2,31}$\"}},\"nullable\":false,\"value\":[],\"description\":\"Never trigger on messages written by these Slack user IDs.\"},{\"handle\":\"textContains\",\"jsonSchema\":{\"type\":\"string\"},\"nullable\":false,\"value\":\"\",\"description\":\"Only trigger when message text contains this string, case-insensitively.\"},{\"group\":\"Advanced settings\",\"collapsed\":true},{\"handle\":\"includeBotMessages\",\"jsonSchema\":{\"type\":\"boolean\"},\"nullable\":false,\"value\":false,\"description\":\"Also trigger on messages posted by bots and apps.\"},{\"handle\":\"includeSystemMessages\",\"jsonSchema\":{\"type\":\"boolean\"},\"nullable\":false,\"value\":false,\"description\":\"Also trigger on Slack system notices.\"},{\"handle\":\"maxMessagesPerPoll\",\"jsonSchema\":{\"type\":\"integer\",\"minimum\":1,\"maximum\":100},\"nullable\":false,\"value\":15,\"description\":\"Maximum number of messages processed per poll.\"}],\"definitionVersion\":2,\"description\":\"Polls one Slack conversation and triggers when a new message is posted to it.\",\"displayName\":\"New Channel Message\",\"key\":\"slack.on_message_posted\",\"name\":\"on_message_posted\",\"outputs\":[{\"handle\":\"events\",\"jsonSchema\":{\"type\":\"array\",\"items\":{\"type\":\"object\",\"properties\":{\"botId\":{\"type\":[\"string\",\"null\"]},\"channelId\":{\"type\":\"string\"},\"files\":{\"type\":\"array\",\"items\":{\"type\":\"object\",\"properties\":{\"id\":{\"type\":\"string\"},\"mimetype\":{\"type\":\"string\"},\"name\":{\"type\":\"string\"}},\"additionalProperties\":false,\"required\":[\"id\",\"name\",\"mimetype\"]}},\"messageTs\":{\"type\":\"string\"},\"subtype\":{\"type\":[\"string\",\"null\"]},\"text\":{\"type\":\"string\"},\"threadTs\":{\"type\":[\"string\",\"null\"]},\"userId\":{\"type\":[\"string\",\"null\"]}},\"additionalProperties\":false,\"required\":[\"channelId\",\"messageTs\",\"threadTs\",\"userId\",\"botId\",\"subtype\",\"text\",\"files\"]}},\"nullable\":false}],\"provider\":\"slack\",\"type\":\"poll\"},\"options\":false},{\"snapshot\":{\"key\":\"slackbot.on_event\",\"provider\":\"slackbot\",\"name\":\"on_event\",\"displayName\":\"Mention or Direct Message\",\"description\":\"Receives user mentions and new direct messages through a shared Slack application event source. Slack Connect events are excluded.\",\"definitionVersion\":2,\"type\":\"integration\",\"endpoint\":{\"methods\":[\"POST\"],\"body\":{\"formats\":[\"json\"],\"allowArray\":false,\"allowEmpty\":false},\"successStatus\":200},\"configInputs\":[{\"handle\":\"sourceId\",\"jsonSchema\":{\"type\":\"string\",\"pattern\":\"^source_[0-9a-f]{32}$\",\"title\":\"Event source\"},\"nullable\":false},{\"handle\":\"eventTypes\",\"jsonSchema\":{\"type\":\"array\",\"items\":{\"type\":\"string\",\"enum\":[\"app_mention\",\"message.im\"]},\"minItems\":1,\"maxItems\":2,\"uniqueItems\":true,\"title\":\"Events\"},\"nullable\":false,\"value\":[\"app_mention\",\"message.im\"]},{\"handle\":\"channelIds\",\"jsonSchema\":{\"type\":\"array\",\"items\":{\"type\":\"string\",\"minLength\":1},\"maxItems\":100,\"uniqueItems\":true,\"title\":\"Channel IDs\"},\"nullable\":true}],\"outputs\":[{\"handle\":\"event\",\"jsonSchema\":{\"type\":\"string\"},\"nullable\":false},{\"handle\":\"deliveryId\",\"jsonSchema\":{\"type\":\"string\"},\"nullable\":false},{\"handle\":\"appId\",\"jsonSchema\":{\"type\":\"string\"},\"nullable\":false},{\"handle\":\"teamId\",\"jsonSchema\":{\"type\":\"string\"},\"nullable\":false},{\"handle\":\"channel\",\"jsonSchema\":{\"type\":\"string\"},\"nullable\":false},{\"handle\":\"user\",\"jsonSchema\":{\"type\":\"string\"},\"nullable\":false},{\"handle\":\"text\",\"jsonSchema\":{\"type\":\"string\"},\"nullable\":false},{\"handle\":\"ts\",\"jsonSchema\":{\"type\":\"string\"},\"nullable\":false},{\"handle\":\"threadTs\",\"jsonSchema\":{\"type\":\"string\"},\"nullable\":true},{\"handle\":\"body\",\"jsonSchema\":{\"type\":\"object\"},\"nullable\":false}]},\"options\":false,\"eventSource\":\"slack\",\"source\":{\"createSchema\":{\"$schema\":\"https://json-schema.org/draft/2020-12/schema\",\"type\":\"object\",\"properties\":{\"kind\":{\"type\":\"string\",\"const\":\"slack\"},\"version\":{\"type\":\"number\",\"const\":1},\"name\":{\"type\":\"string\",\"minLength\":1,\"maxLength\":128},\"connectionId\":{\"type\":\"string\",\"minLength\":1,\"maxLength\":256},\"teamId\":{\"anyOf\":[{\"type\":\"string\",\"minLength\":1,\"maxLength\":256},{\"type\":\"null\"}]},\"appId\":{\"type\":\"string\",\"pattern\":\"^A[A-Z0-9]+$\"},\"workspaceId\":{\"type\":\"string\",\"pattern\":\"^T[A-Z0-9]+$\"},\"signingSecret\":{\"type\":\"string\",\"minLength\":1,\"maxLength\":256},\"eventTypes\":{\"minItems\":1,\"maxItems\":2,\"type\":\"array\",\"items\":{\"type\":\"string\",\"enum\":[\"app_mention\",\"message.im\"]}}},\"required\":[\"kind\",\"version\",\"name\",\"connectionId\",\"teamId\",\"appId\",\"workspaceId\",\"signingSecret\",\"eventTypes\"],\"additionalProperties\":false},\"updateSchema\":{\"$schema\":\"https://json-schema.org/draft/2020-12/schema\",\"type\":\"object\",\"properties\":{\"version\":{\"type\":\"number\",\"const\":1},\"expectedRevision\":{\"type\":\"integer\",\"exclusiveMinimum\":0,\"maximum\":9007199254740991},\"name\":{\"type\":\"string\",\"minLength\":1,\"maxLength\":128},\"enabled\":{\"type\":\"boolean\"},\"eventTypes\":{\"minItems\":1,\"maxItems\":200,\"type\":\"array\",\"items\":{\"type\":\"string\",\"pattern\":\"^[a-z][a-z0-9_.:]{0,127}$\"}},\"verificationToken\":{\"type\":\"string\",\"minLength\":1,\"maxLength\":256},\"signingSecret\":{\"type\":\"string\",\"minLength\":1,\"maxLength\":256},\"encryptKey\":{\"type\":\"string\",\"minLength\":1,\"maxLength\":256}},\"required\":[\"version\",\"expectedRevision\",\"name\",\"enabled\",\"eventTypes\"],\"additionalProperties\":false},\"kind\":\"slack\",\"provider\":\"slackbot\",\"triggerId\":\"slackbot.on_event\",\"maximumBodyBytes\":65536,\"applicationIngress\":true,\"managed\":false}},{\"snapshot\":{\"configInputs\":[{\"handle\":\"events\",\"jsonSchema\":{\"type\":\"array\",\"items\":{\"type\":\"string\",\"maxLength\":120,\"pattern\":\"^(\\\\*|[a-z0-9_]+(?:\\\\.[a-z0-9_]+)+)$\"},\"minItems\":1,\"uniqueItems\":true},\"nullable\":false},{\"handle\":\"includeConnectedAccounts\",\"jsonSchema\":{\"type\":\"boolean\"},\"nullable\":false,\"value\":false},{\"group\":\"Advanced settings\",\"collapsed\":true},{\"handle\":\"apiVersion\",\"jsonSchema\":{\"type\":\"string\",\"maxLength\":40},\"nullable\":false,\"value\":\"\"}],\"definitionVersion\":2,\"description\":\"Triggers when selected Stripe events happen on the connected account.\",\"displayName\":\"Account Event\",\"endpoint\":{\"body\":{\"allowArray\":false,\"allowEmpty\":false,\"formats\":[\"json\"]},\"methods\":[\"POST\"],\"successStatus\":202},\"key\":\"stripe.on_event\",\"name\":\"on_event\",\"outputs\":[{\"handle\":\"body\",\"jsonSchema\":{\"type\":\"object\"},\"nullable\":false},{\"handle\":\"event\",\"jsonSchema\":{\"type\":\"string\"},\"nullable\":false},{\"handle\":\"eventId\",\"jsonSchema\":{\"type\":\"string\"},\"nullable\":false},{\"handle\":\"livemode\",\"jsonSchema\":{\"type\":\"boolean\"},\"nullable\":false}],\"provider\":\"stripe\",\"type\":\"integration\"},\"options\":false},{\"snapshot\":{\"configInputs\":[{\"handle\":\"formId\",\"jsonSchema\":{\"type\":\"string\",\"minLength\":1,\"maxLength\":128,\"title\":\"Form\"},\"nullable\":false,\"description\":\"Choose a form accessible to this Connection.\"}],\"definitionVersion\":2,\"description\":\"Receives new Tally form submissions through a signed, automatically managed webhook.\",\"displayName\":\"Form Response\",\"endpoint\":{\"body\":{\"allowArray\":false,\"allowEmpty\":false,\"formats\":[\"json\"]},\"methods\":[\"POST\"],\"successStatus\":200},\"key\":\"tally.on_form_response\",\"name\":\"on_form_response\",\"outputs\":[{\"handle\":\"response\",\"nullable\":false,\"jsonSchema\":{\"type\":\"object\",\"properties\":{\"eventId\":{\"type\":\"string\"},\"createdAt\":{\"type\":\"string\"},\"formId\":{\"type\":\"string\"},\"submissionId\":{\"type\":\"string\"},\"responseId\":{\"type\":\"string\"},\"fields\":{\"type\":\"array\",\"items\":{\"type\":\"object\",\"properties\":{\"key\":{\"type\":\"string\"},\"type\":{\"type\":\"string\"},\"label\":{\"type\":[\"string\",\"null\"]},\"value\":{},\"options\":{\"type\":\"array\",\"items\":{\"type\":\"object\"}}},\"required\":[\"key\",\"type\",\"label\",\"value\"]}}},\"required\":[\"eventId\",\"createdAt\",\"formId\",\"submissionId\",\"responseId\",\"fields\"]}}],\"provider\":\"tally\",\"type\":\"integration\"},\"options\":true},{\"snapshot\":{\"configInputs\":[{\"handle\":\"chatIds\",\"jsonSchema\":{\"type\":\"array\",\"items\":{\"type\":\"string\",\"pattern\":\"^-?[0-9]{1,20}$\"},\"maxItems\":100,\"uniqueItems\":true},\"nullable\":false,\"value\":[],\"description\":\"Only accept updates from these numeric Telegram chat IDs. Empty means every chat.\"},{\"handle\":\"updates\",\"jsonSchema\":{\"type\":\"array\",\"items\":{\"enum\":[\"*\",\"message\",\"edited_message\",\"channel_post\",\"edited_channel_post\",\"business_connection\",\"business_message\",\"edited_business_message\",\"deleted_business_messages\",\"guest_message\",\"message_reaction\",\"message_reaction_count\",\"inline_query\",\"chosen_inline_result\",\"callback_query\",\"shipping_query\",\"pre_checkout_query\",\"purchased_paid_media\",\"poll\",\"poll_answer\",\"my_chat_member\",\"chat_member\",\"chat_join_request\",\"chat_boost\",\"removed_chat_boost\",\"managed_bot\",\"subscription\"]},\"minItems\":1,\"uniqueItems\":true},\"nullable\":false,\"description\":\"Telegram update types that trigger a Run. Use * for the Telegram default set.\"},{\"handle\":\"userIds\",\"jsonSchema\":{\"type\":\"array\",\"items\":{\"type\":\"string\",\"pattern\":\"^[0-9]{1,20}$\"},\"maxItems\":100,\"uniqueItems\":true},\"nullable\":false,\"value\":[],\"description\":\"Only accept updates from these numeric Telegram user IDs. Empty means every user.\"},{\"group\":\"Advanced settings\",\"collapsed\":true},{\"handle\":\"dropPendingUpdates\",\"jsonSchema\":{\"type\":\"boolean\"},\"nullable\":false,\"value\":true,\"description\":\"Discard updates queued before the webhook is created or resumed.\"}],\"definitionVersion\":2,\"description\":\"Triggers when the connected Telegram bot receives a selected update.\",\"displayName\":\"Bot Update\",\"endpoint\":{\"body\":{\"allowArray\":false,\"allowEmpty\":false,\"formats\":[\"json\"]},\"methods\":[\"POST\"],\"successStatus\":200},\"key\":\"telegram.on_update\",\"name\":\"on_update\",\"outputs\":[{\"handle\":\"body\",\"jsonSchema\":{\"type\":\"object\"},\"nullable\":false},{\"handle\":\"deliveryId\",\"jsonSchema\":{\"type\":\"string\"},\"nullable\":false},{\"handle\":\"event\",\"jsonSchema\":{\"type\":\"string\"},\"nullable\":false}],\"provider\":\"telegram\",\"type\":\"integration\"},\"options\":false},{\"snapshot\":{\"key\":\"typeform.on_form_response\",\"provider\":\"typeform\",\"name\":\"on_form_response\",\"displayName\":\"Completed Form Response\",\"description\":\"Receives complete Typeform submissions through an automatically managed signed webhook.\",\"definitionVersion\":2,\"type\":\"integration\",\"endpoint\":{\"methods\":[\"POST\"],\"body\":{\"formats\":[\"json\"],\"allowArray\":false,\"allowEmpty\":false},\"successStatus\":200},\"configInputs\":[{\"handle\":\"formId\",\"jsonSchema\":{\"type\":\"string\",\"minLength\":1,\"maxLength\":128,\"title\":\"Form ID\"},\"nullable\":false}],\"outputs\":[{\"handle\":\"response\",\"nullable\":false,\"jsonSchema\":{\"type\":\"object\",\"properties\":{\"eventId\":{\"type\":\"string\"},\"form_id\":{\"type\":\"string\"},\"token\":{\"type\":\"string\"},\"submitted_at\":{\"type\":\"string\"},\"answers\":{\"type\":\"array\",\"items\":{\"type\":\"object\"}},\"definition\":{\"type\":\"object\"}},\"required\":[\"eventId\",\"form_id\",\"token\",\"submitted_at\",\"answers\"]}}]},\"options\":false},{\"snapshot\":{\"key\":\"vercel.on_deployment_event\",\"provider\":\"vercel\",\"name\":\"on_deployment_event\",\"displayName\":\"Deployment Ready or Failed\",\"description\":\"Receives successful and failed deployments for a Vercel project.\",\"definitionVersion\":2,\"type\":\"integration\",\"endpoint\":{\"methods\":[\"POST\"],\"body\":{\"formats\":[\"json\"],\"allowArray\":false,\"allowEmpty\":false},\"successStatus\":200},\"configInputs\":[{\"handle\":\"teamId\",\"jsonSchema\":{\"type\":\"string\",\"minLength\":1,\"maxLength\":256,\"title\":\"Team ID\"},\"nullable\":false},{\"handle\":\"projectId\",\"jsonSchema\":{\"type\":\"string\",\"minLength\":1,\"maxLength\":256,\"title\":\"Project ID\"},\"nullable\":false},{\"handle\":\"environment\",\"jsonSchema\":{\"type\":\"string\",\"enum\":[\"all\",\"production\",\"preview\"],\"title\":\"Environment\"},\"nullable\":false,\"value\":\"all\"}],\"outputs\":[{\"handle\":\"event\",\"jsonSchema\":{\"type\":\"string\",\"enum\":[\"deployment.ready\",\"deployment.error\"]},\"nullable\":false},{\"handle\":\"deliveryId\",\"jsonSchema\":{\"type\":\"string\"},\"nullable\":false},{\"handle\":\"deploymentId\",\"jsonSchema\":{\"type\":\"string\"},\"nullable\":false},{\"handle\":\"projectId\",\"jsonSchema\":{\"type\":\"string\"},\"nullable\":false},{\"handle\":\"body\",\"jsonSchema\":{\"type\":\"object\"},\"nullable\":false}]},\"options\":false},{\"snapshot\":{\"configInputs\":[{\"handle\":\"events\",\"jsonSchema\":{\"type\":\"array\",\"items\":{\"type\":\"string\",\"enum\":[\"coupon.created\",\"coupon.updated\",\"coupon.deleted\",\"coupon.restored\",\"customer.created\",\"customer.updated\",\"customer.deleted\",\"order.created\",\"order.updated\",\"order.deleted\",\"order.restored\",\"product.created\",\"product.updated\",\"product.deleted\",\"product.restored\",\"product.published\"]},\"minItems\":1,\"maxItems\":16,\"uniqueItems\":true},\"nullable\":false},{\"group\":\"Advanced settings\",\"collapsed\":true},{\"handle\":\"webhookName\",\"jsonSchema\":{\"type\":\"string\",\"minLength\":1,\"maxLength\":120},\"nullable\":false,\"value\":\"OOMOL Trigger\"}],\"definitionVersion\":2,\"description\":\"Triggers when selected WooCommerce store events occur.\",\"displayName\":\"Store Event\",\"endpoint\":{\"body\":{\"allowArray\":false,\"allowEmpty\":false,\"formats\":[\"json\"]},\"methods\":[\"POST\"],\"successStatus\":202},\"key\":\"woocommerce.on_store_event\",\"name\":\"on_store_event\",\"outputs\":[{\"handle\":\"body\",\"jsonSchema\":{\"type\":\"object\"},\"nullable\":false},{\"handle\":\"deliveryId\",\"jsonSchema\":{\"type\":\"string\"},\"nullable\":false},{\"handle\":\"event\",\"jsonSchema\":{\"type\":\"string\"},\"nullable\":false},{\"handle\":\"resource\",\"jsonSchema\":{\"type\":\"string\"},\"nullable\":false},{\"handle\":\"source\",\"jsonSchema\":{\"type\":\"string\"},\"nullable\":false},{\"handle\":\"topic\",\"jsonSchema\":{\"type\":\"string\"},\"nullable\":false},{\"handle\":\"webhookId\",\"jsonSchema\":{\"type\":\"string\"},\"nullable\":false}],\"provider\":\"woocommerce\",\"type\":\"integration\"},\"options\":false},{\"snapshot\":{\"configInputs\":[{\"handle\":\"events\",\"jsonSchema\":{\"type\":\"array\",\"items\":{\"type\":\"string\",\"enum\":[\"zen:event-type:ticket.agent_assignment_changed\",\"zen:event-type:ticket.attachment_linked_to_comment\",\"zen:event-type:ticket.attachment_redacted_from_comment\",\"zen:event-type:ticket.brand_changed\",\"zen:event-type:ticket.comment_added\",\"zen:event-type:ticket.comment_made_private\",\"zen:event-type:ticket.comment_redacted\",\"zen:event-type:ticket.created\",\"zen:event-type:ticket.csat_received\",\"zen:event-type:ticket.csat_requested\",\"zen:event-type:ticket.custom_field_changed\",\"zen:event-type:ticket.custom_status_changed\",\"zen:event-type:ticket.description_changed\",\"zen:event-type:ticket.email_ccs_changed\",\"zen:event-type:ticket.external_id_changed\",\"zen:event-type:ticket.followers_changed\",\"zen:event-type:ticket.form_changed\",\"zen:event-type:ticket.group_assignment_changed\",\"zen:event-type:ticket.marked_as_spam\",\"zen:event-type:ticket.merged\",\"zen:event-type:ticket.next_sla_breach_changed\",\"zen:event-type:ticket.ola_policy_changed\",\"zen:event-type:ticket.organization_changed\",\"zen:event-type:ticket.permanently_deleted\",\"zen:event-type:ticket.priority_changed\",\"zen:event-type:ticket.problem_link_changed\",\"zen:event-type:ticket.requester_changed\",\"zen:event-type:ticket.schedule_changed\",\"zen:event-type:ticket.sla_policy_changed\",\"zen:event-type:ticket.soft_deleted\",\"zen:event-type:ticket.status_changed\",\"zen:event-type:ticket.subject_changed\",\"zen:event-type:ticket.submitter_changed\",\"zen:event-type:ticket.tags_changed\",\"zen:event-type:ticket.task_due_at_changed\",\"zen:event-type:ticket.type_changed\",\"zen:event-type:ticket.undeleted\",\"zen:event-type:organization.created\",\"zen:event-type:organization.custom_field_changed\",\"zen:event-type:organization.deleted\",\"zen:event-type:organization.external_id_changed\",\"zen:event-type:organization.name_changed\",\"zen:event-type:organization.tags_changed\",\"zen:event-type:user.active_changed\",\"zen:event-type:user.alias_changed\",\"zen:event-type:user.created\",\"zen:event-type:user.custom_field_changed\",\"zen:event-type:user.custom_role_changed\",\"zen:event-type:user.default_group_changed\",\"zen:event-type:user.deleted\",\"zen:event-type:user.details_changed\",\"zen:event-type:user.external_id_changed\",\"zen:event-type:user.group_membership_created\",\"zen:event-type:user.group_membership_deleted\",\"zen:event-type:user.identity_changed\",\"zen:event-type:user.identity_created\",\"zen:event-type:user.identity_deleted\",\"zen:event-type:user.last_login_changed\",\"zen:event-type:user.merged\",\"zen:event-type:user.name_changed\",\"zen:event-type:user.notes_changed\",\"zen:event-type:user.only_private_comments_changed\",\"zen:event-type:user.organization_membership_created\",\"zen:event-type:user.organization_membership_deleted\",\"zen:event-type:user.password_changed\",\"zen:event-type:user.photo_changed\",\"zen:event-type:user.role_changed\",\"zen:event-type:user.suspended_changed\",\"zen:event-type:user.tags_changed\",\"zen:event-type:user.time_zone_changed\"]},\"minItems\":1,\"uniqueItems\":true},\"nullable\":false}],\"definitionVersion\":2,\"description\":\"Triggers when one of the selected Zendesk account events occurs.\",\"displayName\":\"Event Subscription\",\"endpoint\":{\"body\":{\"allowArray\":false,\"allowEmpty\":false,\"formats\":[\"json\"]},\"methods\":[\"POST\"],\"successStatus\":202},\"key\":\"zendesk.on_event\",\"name\":\"on_event\",\"outputs\":[{\"handle\":\"body\",\"jsonSchema\":{\"type\":\"object\"},\"nullable\":false},{\"handle\":\"deliveryId\",\"jsonSchema\":{\"type\":\"string\"},\"nullable\":false},{\"handle\":\"event\",\"jsonSchema\":{\"type\":\"string\"},\"nullable\":false},{\"handle\":\"subject\",\"jsonSchema\":{\"type\":\"string\"},\"nullable\":false}],\"provider\":\"zendesk\",\"type\":\"integration\"},\"options\":false},{\"snapshot\":{\"key\":\"zoom.on_recording_ready\",\"provider\":\"zoom\",\"name\":\"on_recording_ready\",\"displayName\":\"Cloud Recording Ready\",\"description\":\"Receives completed cloud recordings hosted by the connected Zoom user through a verified application event source.\",\"definitionVersion\":2,\"type\":\"integration\",\"endpoint\":{\"methods\":[\"POST\"],\"body\":{\"formats\":[\"json\"],\"allowArray\":false,\"allowEmpty\":false},\"successStatus\":200},\"configInputs\":[{\"handle\":\"sourceId\",\"jsonSchema\":{\"type\":\"string\",\"pattern\":\"^source_[0-9a-f]{32}$\",\"title\":\"Event source\"},\"nullable\":false},{\"handle\":\"eventTypes\",\"jsonSchema\":{\"type\":\"array\",\"items\":{\"type\":\"string\",\"enum\":[\"recording.completed\"]},\"minItems\":1,\"maxItems\":1,\"uniqueItems\":true,\"title\":\"Events\"},\"nullable\":false,\"value\":[\"recording.completed\"]}],\"outputs\":[{\"handle\":\"event\",\"jsonSchema\":{\"type\":\"string\"},\"nullable\":false},{\"handle\":\"deliveryId\",\"jsonSchema\":{\"type\":\"string\"},\"nullable\":false},{\"handle\":\"accountId\",\"jsonSchema\":{\"type\":\"string\"},\"nullable\":false},{\"handle\":\"meetingUuid\",\"jsonSchema\":{\"type\":\"string\"},\"nullable\":false},{\"handle\":\"body\",\"jsonSchema\":{\"type\":\"object\"},\"nullable\":false}]},\"options\":false,\"eventSource\":\"zoom\",\"source\":{\"createSchema\":{\"$schema\":\"https://json-schema.org/draft/2020-12/schema\",\"type\":\"object\",\"properties\":{\"kind\":{\"type\":\"string\",\"const\":\"zoom\"},\"version\":{\"type\":\"number\",\"const\":1},\"name\":{\"type\":\"string\",\"minLength\":1,\"maxLength\":128},\"connectionId\":{\"type\":\"string\",\"minLength\":1,\"maxLength\":256},\"teamId\":{\"anyOf\":[{\"type\":\"string\",\"minLength\":1,\"maxLength\":256},{\"type\":\"null\"}]},\"appId\":{\"type\":\"string\",\"minLength\":1,\"maxLength\":256},\"signingSecret\":{\"type\":\"string\",\"minLength\":1,\"maxLength\":256},\"eventTypes\":{\"minItems\":1,\"maxItems\":1,\"type\":\"array\",\"items\":{\"type\":\"string\",\"const\":\"recording.completed\"}}},\"required\":[\"kind\",\"version\",\"name\",\"connectionId\",\"teamId\",\"appId\",\"signingSecret\",\"eventTypes\"],\"additionalProperties\":false},\"updateSchema\":{\"$schema\":\"https://json-schema.org/draft/2020-12/schema\",\"type\":\"object\",\"properties\":{\"version\":{\"type\":\"number\",\"const\":1},\"expectedRevision\":{\"type\":\"integer\",\"exclusiveMinimum\":0,\"maximum\":9007199254740991},\"name\":{\"type\":\"string\",\"minLength\":1,\"maxLength\":128},\"enabled\":{\"type\":\"boolean\"},\"eventTypes\":{\"minItems\":1,\"maxItems\":200,\"type\":\"array\",\"items\":{\"type\":\"string\",\"pattern\":\"^[a-z][a-z0-9_.:]{0,127}$\"}},\"verificationToken\":{\"type\":\"string\",\"minLength\":1,\"maxLength\":256},\"signingSecret\":{\"type\":\"string\",\"minLength\":1,\"maxLength\":256},\"encryptKey\":{\"type\":\"string\",\"minLength\":1,\"maxLength\":256}},\"required\":[\"version\",\"expectedRevision\",\"name\",\"enabled\",\"eventTypes\"],\"additionalProperties\":false},\"kind\":\"zoom\",\"provider\":\"zoom\",\"triggerId\":\"zoom.on_recording_ready\",\"maximumBodyBytes\":65536,\"applicationIngress\":true,\"managed\":false}}]");
|
|
16853
|
+
//#endregion
|
|
14135
16854
|
//#region src/control/common/eventSourceSchemas.ts
|
|
14136
|
-
|
|
14137
|
-
|
|
14138
|
-
|
|
14139
|
-
var
|
|
14140
|
-
var createEventSourceSchema =
|
|
14141
|
-
|
|
14142
|
-
name,
|
|
14143
|
-
connectionId: id$1,
|
|
14144
|
-
teamId: id$1.nullable(),
|
|
14145
|
-
verificationToken: secret,
|
|
14146
|
-
encryptKey: secret,
|
|
14147
|
-
eventTypes: array(eventType).min(1).max(200).refine((values) => new Set(values).size == values.length),
|
|
14148
|
-
manageSubscriptions: boolean()
|
|
14149
|
-
});
|
|
14150
|
-
var updateEventSourceSchema = strictObject({
|
|
14151
|
-
version: literal(1),
|
|
14152
|
-
expectedRevision: int().positive(),
|
|
14153
|
-
name,
|
|
14154
|
-
enabled: boolean(),
|
|
14155
|
-
eventTypes: array(eventType).min(1).max(200).refine((values) => new Set(values).size == values.length),
|
|
14156
|
-
verificationToken: secret.optional(),
|
|
14157
|
-
encryptKey: secret.optional()
|
|
14158
|
-
});
|
|
16855
|
+
function requestSchema(schema) {
|
|
16856
|
+
return fromJSONSchema(schema).extend({ name: string().trim().min(1).max(128) });
|
|
16857
|
+
}
|
|
16858
|
+
var sources = catalog_generated_default.flatMap((entry) => "source" in entry && entry.source != null ? [entry.source] : []);
|
|
16859
|
+
var createEventSourceSchema = union(sources.map((source) => requestSchema(source.createSchema)));
|
|
16860
|
+
var updateEventSourceSchema = requestSchema(sources[0].updateSchema);
|
|
14159
16861
|
var eventSourceRevisionSchema = strictObject({
|
|
14160
16862
|
version: literal(1),
|
|
14161
16863
|
expectedRevision: int().positive()
|