@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.
Files changed (72) hide show
  1. package/dist/browser/ContentIcon-CsECY5id.js +11868 -0
  2. package/dist/browser/FlowCanvas-C5X22xQ7.js +22721 -0
  3. package/dist/browser/{createResourceDialog-BQVD8Rqb.js → createResourceDialog-Di5BBrQv.js} +3 -2
  4. package/dist/browser/dialog-Bjo-r9B0.js +8862 -0
  5. package/dist/browser/event-sources.d.ts +4 -2
  6. package/dist/browser/exportSvg-Cj6Spxx-.js +659 -0
  7. package/dist/browser/flow-authoring-node.d.ts +3 -1
  8. package/dist/browser/flow-authoring.js +68 -7
  9. package/dist/browser/flow-change-schema.d.ts +3 -1
  10. package/dist/browser/flow-change.d.ts +17 -2
  11. package/dist/browser/flow-change.js +82 -9
  12. package/dist/browser/{flowChanges-VB9Y4iy7.js → flowChanges-Dp-rcEJ6.js} +4312 -16566
  13. package/dist/browser/{flowRunInputEditorStore-DJqmR6Qh.js → flowRunInputEditorStore-ys1-w9GW.js} +2 -1
  14. package/dist/browser/{flowWorkspace-C1hlTnZq.js → flowWorkspace-CB1QACku.js} +1304 -23538
  15. package/dist/browser/languages-gYzoQqCi.js +68 -0
  16. package/dist/browser/licenses.md +24 -0
  17. package/dist/browser/preview.css +53 -41
  18. package/dist/browser/preview.js +3974 -4094
  19. package/dist/browser/{dialog-CS2Vt2if.js → tooltip-CJjYs_2I.js} +710 -9472
  20. package/dist/browser/{typeScriptSession-D0bjYDeg.js → typeScriptSession-B0hC-C8y.js} +1 -1
  21. package/dist/browser/ui.css +12 -0
  22. package/dist/browser/{value-BADHeZ9I.js → value-BbFQZZ_V.js} +1 -68
  23. package/dist/browser/workbench.css +2840 -2824
  24. package/dist/browser/workbench.js +437 -337
  25. package/dist/browser/{workbenchSelect-CpXhjUou.js → workbenchSelect-C3hxUcYm.js} +2 -1
  26. package/dist/command/index.js +55 -51
  27. package/dist/common/authoring.d.ts +20 -0
  28. package/dist/common/authoringSchema.d.ts +243 -0
  29. package/dist/common/connector-proxy.d.ts +4 -0
  30. package/dist/common/control-api-conformance.js +173 -36
  31. package/dist/common/control-api.d.ts +22 -8
  32. package/dist/common/control-api.js +156 -18
  33. package/dist/common/control-requests.d.ts +32 -19
  34. package/dist/common/control-requests.js +2854 -152
  35. package/dist/common/decision.js +27 -3
  36. package/dist/common/engine-contract.d.ts +2 -2
  37. package/dist/common/event-source-definition.d.ts +34 -16
  38. package/dist/common/event-source.d.ts +63 -5
  39. package/dist/common/event-source.js +5744 -261
  40. package/dist/common/event-sources.d.ts +99 -6
  41. package/dist/common/flow-encoding.js +49 -10
  42. package/dist/common/flow-errorHandling.d.ts +36 -0
  43. package/dist/common/flow-graph.d.ts +4 -2
  44. package/dist/common/flow-retry.d.ts +19 -0
  45. package/dist/common/flow-semantics.js +94 -10
  46. package/dist/common/{fr-Du5gv3kM.js → fr-CNTSedYU.js} +259 -18
  47. package/dist/common/integration-trigger.d.ts +1 -1
  48. package/dist/common/integration-trigger.js +27 -3
  49. package/dist/common/{ja-D2wyPdTF.js → ja-CxQBHr2J.js} +259 -18
  50. package/dist/common/{ko-Cuu2AOaC.js → ko-D1Exiv1h.js} +259 -18
  51. package/dist/common/mcp.d.ts +30 -0
  52. package/dist/common/mcp.js +158 -20
  53. package/dist/common/openapi.js +27 -3
  54. package/dist/common/poll-trigger.js +27 -3
  55. package/dist/common/provider-triggers.d.ts +0 -2
  56. package/dist/common/provider-triggers.js +358 -155
  57. package/dist/common/{ru-BjI_JSsx.js → ru-BzLZv0B7.js} +259 -18
  58. package/dist/common/run-events.d.ts +2 -0
  59. package/dist/common/run-events.js +4 -2
  60. package/dist/common/runtime-contract.d.ts +1 -0
  61. package/dist/common/runtime-contract.js +4 -4
  62. package/dist/common/scheduler.d.ts +13 -2
  63. package/dist/common/scheduler.js +288 -98
  64. package/dist/common/webhook-trigger.js +27 -3
  65. package/dist/common/workflow.js +27 -3
  66. package/dist/common/{zh-CN-CnnXkzLh.js → zh-CN-Dg_xSGde.js} +259 -18
  67. package/dist/common/{zh-TW-CJnR2dgF.js → zh-TW-oxuLwsV0.js} +259 -18
  68. package/dist/index.d.ts +1 -0
  69. package/package.json +1 -1
  70. package/dist/common/event-source-feishu.d.ts +0 -3
  71. package/dist/common/feishu-events.d.ts +0 -19
  72. 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 cidrv4 = /^((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])$/;
1002
- var cidrv6 = /^(([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])$/;
1003
- var base64 = /^$|^(?:[0-9a-zA-Z+/]{4})*(?:(?:[0-9a-zA-Z+/]{2}==)|(?:[0-9a-zA-Z+/]{3}=))?$/;
1004
- var base64url = /^(?:[A-Za-z0-9_-]{4})*(?:[A-Za-z0-9_-]{2,3})?$/;
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$1 = /*@__PURE__*/ anchor(dateSource);
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$1(args) {
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$1);
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$1(def));
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 $ZodRecord = /*@__PURE__*/ $constructor("$ZodRecord", (inst, def) => {
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 (!isPlainObject$1(input)) {
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 values = def.keyType._zod.values;
2449
- if (values && !def.partial) {
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: "never",
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 record$3(keyType, valueType, params) {
5588
- if (!valueType || !valueType._zod) return new ZodRecord({
5589
- type: "record",
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 == 8) return content;
9659
+ if (!hasManual && content.modelVersion == 9) return content;
7002
9660
  return {
7003
9661
  ...content,
7004
- modelVersion: 8,
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 != 8 || Object.values(content.document.graph.nodes).some((node) => node.kind == "manual") ? decodeRevisionContent(content) : content;
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: 8,
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$2 = string().min(1);
14300
+ var id$1 = string().min(1);
11623
14301
  var json$3 = json$5();
11624
- var patch = record$3(id$2, json$3);
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$2.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.");
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$2.optional().describe("Omit for a node with one output. For multiple outputs, choose a name from node details."),
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$2
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([output, variable])).min(1)
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$2, 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();
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$2,
11687
- inputs: record$3(id$2, union([strictObject({
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$2
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$2, 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.");
11701
- var flowInputFields = record$3(id$2, field).describe("Workflow input definitions by name. Omitted schema accepts any JSON; omitted nullable is true. No defaults. Supply call values as trigger.outputs.");
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$2, field.extend({
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$2, field).describe("Code return fields by name. Omitted schema accepts any JSON; omitted nullable is true.");
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$2 }),
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$2).optional() }),
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$2,
11728
- connectionId: id$2.optional(),
14417
+ key: id$1,
14418
+ connectionId: id$1.optional(),
11729
14419
  schedule: authoringDefinitionSchemas.schedule
11730
14420
  }),
11731
14421
  integration: strictObject({
11732
- key: id$2,
11733
- connectionId: id$2.optional()
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$2,
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
- name: id$2.optional(),
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$2.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."),
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$2,
14473
+ name: id$1,
14474
+ onError: _enum(["stop", "error"]).optional(),
14475
+ retry: retryConfigurationSchema.optional(),
11782
14476
  config: patch.optional(),
11783
- inputs: record$3(id$2, authoringSourceSchema).optional().describe("Input data sources, applied after creation, as input.set operations. Execution edges are separate."),
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$2).min(1)).optional()
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$2,
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$2.optional()
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$2,
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$2,
11829
- requestId: id$2.max(256),
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$2.optional().describe("Fixed revision from a previous read; omit to read the current draft."),
11834
- nodes: array(id$2).min(1).max(100).optional().describe("Node references to read in one batch. Mutually exclusive with text. Long texts return metadata."),
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$2,
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$2 });
14539
+ var authoringCheckSchema = strictObject({ revisionId: id$1 });
11846
14540
  var authoringSearchSchema = strictObject({
11847
- revision: id$2.optional(),
11848
- query: id$2.max(1e3),
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$2.optional()
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$2,
14791
+ code: id$1,
12095
14792
  message: string(),
12096
- nodes: array(id$2),
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$2,
12103
- revisionId: id$2,
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$2,
14806
+ flowId: id$1,
12110
14807
  saved: literal(true),
12111
- revision: id$2,
12112
- nodes: record$3(id$2, id$2),
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$2,
12116
- node: id$2.optional()
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$2,
12130
- revision: id$2,
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$2,
12140
- revision: id$2,
14836
+ flowId: id$1,
14837
+ revision: id$1,
12141
14838
  data: object$1({
12142
14839
  matches: array(object$1({
12143
- node: id$2.optional(),
12144
- field: id$2,
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, { config });
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
- var id$1 = string().min(1).max(256);
14137
- var eventType = string().regex(/^[a-z][a-z0-9_.]{0,127}$/);
14138
- var name = string().trim().min(1).max(128);
14139
- var secret = string().min(1).max(256);
14140
- var createEventSourceSchema = strictObject({
14141
- version: literal(1),
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()