{
  "version": 3,
  "sources": ["../../../../node_modules/@sniptt/guards/lib/guards/primitives.ts", "../../../../node_modules/@sniptt/guards/lib/guards/structural.ts", "../../../../node_modules/@sniptt/guards/lib/guards/convenience.ts", "../../../../node_modules/@sniptt/guards/lib/index.ts", "../../../../node_modules/sharp/dist/is.mjs", "../../../../node_modules/detect-libc/lib/process.js", "../../../../node_modules/detect-libc/lib/filesystem.js", "../../../../node_modules/detect-libc/lib/elf.js", "../../../../node_modules/detect-libc/lib/detect-libc.js", "../../../../node_modules/semver/internal/constants.js", "../../../../node_modules/semver/internal/debug.js", "../../../../node_modules/semver/internal/re.js", "../../../../node_modules/semver/internal/parse-options.js", "../../../../node_modules/semver/internal/identifiers.js", "../../../../node_modules/semver/classes/semver.js", "../../../../node_modules/semver/functions/parse.js", "../../../../node_modules/semver/functions/valid.js", "../../../../node_modules/semver/functions/clean.js", "../../../../node_modules/semver/functions/inc.js", "../../../../node_modules/semver/functions/diff.js", "../../../../node_modules/semver/functions/major.js", "../../../../node_modules/semver/functions/minor.js", "../../../../node_modules/semver/functions/patch.js", "../../../../node_modules/semver/functions/prerelease.js", "../../../../node_modules/semver/functions/compare.js", "../../../../node_modules/semver/functions/rcompare.js", "../../../../node_modules/semver/functions/compare-loose.js", "../../../../node_modules/semver/functions/compare-build.js", "../../../../node_modules/semver/functions/sort.js", "../../../../node_modules/semver/functions/rsort.js", "../../../../node_modules/semver/functions/gt.js", "../../../../node_modules/semver/functions/lt.js", "../../../../node_modules/semver/functions/eq.js", "../../../../node_modules/semver/functions/neq.js", "../../../../node_modules/semver/functions/gte.js", "../../../../node_modules/semver/functions/lte.js", "../../../../node_modules/semver/functions/cmp.js", "../../../../node_modules/semver/functions/coerce.js", "../../../../node_modules/semver/functions/truncate.js", "../../../../node_modules/semver/internal/lrucache.js", "../../../../node_modules/semver/classes/range.js", "../../../../node_modules/semver/classes/comparator.js", "../../../../node_modules/semver/functions/satisfies.js", "../../../../node_modules/semver/ranges/to-comparators.js", "../../../../node_modules/semver/ranges/max-satisfying.js", "../../../../node_modules/semver/ranges/min-satisfying.js", "../../../../node_modules/semver/ranges/min-version.js", "../../../../node_modules/semver/ranges/valid.js", "../../../../node_modules/semver/ranges/outside.js", "../../../../node_modules/semver/ranges/gtr.js", "../../../../node_modules/semver/ranges/ltr.js", "../../../../node_modules/semver/ranges/intersects.js", "../../../../node_modules/semver/ranges/simplify.js", "../../../../node_modules/semver/ranges/subset.js", "../../../../node_modules/semver/index.js", "../../../../node_modules/sharp/package.json", "../../../../node_modules/sharp/dist/libvips.mjs", "../../../../node_modules/sharp/dist/sharp.mjs", "../../../../node_modules/sharp/dist/constructor.mjs", "../../../../node_modules/sharp/dist/input.mjs", "../../../../node_modules/sharp/dist/resize.mjs", "../../../../node_modules/sharp/dist/composite.mjs", "../../../../node_modules/sharp/dist/operation.mjs", "../../../../node_modules/@img/colour/color.cjs", "../../../../node_modules/@img/colour/index.cjs", "../../../../node_modules/sharp/dist/colour.mjs", "../../../../node_modules/sharp/dist/channel.mjs", "../../../../node_modules/sharp/dist/output.mjs", "../../../../node_modules/sharp/dist/utility.mjs", "../../../../node_modules/sharp/dist/index.mjs", "../../../../src/logic-functions/process-pending-call-recording-requests.ts", "twenty-sdk-define-stub:__twenty-sdk-define-stub__", "../../../../src/constants/universal-identifiers.ts", "../../../../src/logic-functions/constants/pending-call-recording-requests-cron-pattern.ts", "../../../../src/logic-functions/flows/retry-failed-recall-cancellations.util.ts", "../../../../src/logic-functions/domain/has-meeting-ended.util.ts", "../../../../src/logic-functions/constants/non-terminal-call-recording-statuses.ts", "../../../../src/logic-functions/data/fetch-calendar-events-by-filter.util.ts", "../../../../src/logic-functions/constants/twenty-page-size.ts", "../../../../src/logic-functions/data/fetch-all-nodes.util.ts", "../../../../src/logic-functions/constants/supported-meeting-platform-url-patterns.ts", "../../../../src/logic-functions/utils/is-non-empty-string.util.ts", "../../../../src/logic-functions/domain/extract-conference-link-url-from-text.util.ts", "../../../../src/logic-functions/domain/resolve-conference-link-url.util.ts", "../../../../src/logic-functions/constants/restricted-field-placeholder.ts", "../../../../src/logic-functions/data/strip-restricted-field-value.util.ts", "../../../../src/logic-functions/utils/get-unique-sorted-ids.util.ts", "../../../../src/logic-functions/data/fetch-calendar-events-by-ids.util.ts", "../../../../src/logic-functions/data/find-call-recordings-by-filter.util.ts", "../../../../src/logic-functions/utils/normalize-optional-string.util.ts", "../../../../src/logic-functions/data/replace-canceled-call-recording-external-bot-id.util.ts", "../../../../src/logic-functions/flows/cancel-recall-bot-for-canceled-call-recording.util.ts", "../../../../src/logic-functions/data/find-call-recordings-by-ids.util.ts", "../../../../src/logic-functions/recall-api/cancel-or-eject-recall-bot.util.ts", "../../../../src/logic-functions/recall-api/get-recall-api-config.util.ts", "../../../../src/logic-functions/constants/call-recorder-name-env-var-name.ts", "../../../../src/logic-functions/constants/default-call-recorder-name.ts", "../../../../src/logic-functions/constants/default-recall-region.ts", "../../../../src/logic-functions/constants/recall-api-key-env-var-name.ts", "../../../../src/logic-functions/constants/recall-region-env-var-name.ts", "../../../../src/logic-functions/utils/get-application-variable-value.util.ts", "../../../../src/logic-functions/recall-api/recall-bot-api-request.util.ts", "../../../../src/logic-functions/constants/recall-api-max-in-process-retry-wait-ms.ts", "../../../../src/logic-functions/constants/recall-api-max-attempts.ts", "../../../../src/logic-functions/constants/recall-api-not-found-status.ts", "../../../../src/logic-functions/constants/recall-api-max-retry-after-ms.ts", "../../../../src/logic-functions/recall-api/parse-recall-retry-after.util.ts", "../../../../src/logic-functions/constants/recall-api-adhoc-pool-retry-delay-ms.ts", "../../../../src/logic-functions/constants/recall-api-retry-delay-ms.ts", "../../../../src/logic-functions/recall-api/recall-api-retry-policy.util.ts", "../../../../src/logic-functions/utils/build-abort-signal-with-timeout.util.ts", "../../../../src/logic-functions/utils/fetch-with-timeout.util.ts", "../../../../src/logic-functions/recall-api/cancel-recall-bot.util.ts", "../../../../src/logic-functions/recall-api/eject-recall-bot.util.ts", "../../../../src/logic-functions/recall-api/find-scheduled-recall-bot-ids-by-call-recording-id.util.ts", "../../../../src/logic-functions/constants/active-recall-bot-statuses.ts", "../../../../src/logic-functions/data/get-current-workspace-id.util.ts", "../../../../src/logic-functions/utils/as-record.util.ts", "../../../../src/logic-functions/utils/get-string.util.ts", "../../../../src/logic-functions/recall-api/list-scheduled-recall-bots.util.ts", "../../../../src/logic-functions/recall-api/fetch-recall-list-pages.util.ts", "../../../../src/logic-functions/recall-api/parse-recall-bot-snapshot.util.ts", "../../../../src/logic-functions/flows/schedule-recall-bots-for-pending-call-recordings.util.ts", "../../../../src/logic-functions/domain/can-reschedule-call-recording-without-recall-lookup.util.ts", "../../../../src/logic-functions/domain/has-unchanged-bot-schedule-idempotency-key.util.ts", "../../../../src/logic-functions/domain/build-recall-routing-metadata.util.ts", "../../../../src/logic-functions/constants/default-call-recorder-join-early-minutes.ts", "../../../../src/logic-functions/constants/milliseconds-per-minute.ts", "../../../../src/logic-functions/constants/call-recorder-join-early-minutes-env-var-name.ts", "../../../../src/logic-functions/domain/compute-recall-bot-join-at.util.ts", "../../../../src/logic-functions/recall-api/schedule-recall-bot.util.ts", "../../../../src/logic-functions/constants/recall-bot-automatic-leave.ts", "../../../../src/logic-functions/constants/call-recorder-everyone-left-timeout-seconds-env-var-name.ts", "../../../../src/logic-functions/constants/call-recorder-noone-joined-timeout-seconds-env-var-name.ts", "../../../../src/logic-functions/constants/call-recorder-waiting-room-timeout-seconds-env-var-name.ts", "../../../../src/logic-functions/constants/recall-bot-everyone-left-min-activate-after-seconds.ts", "../../../../src/logic-functions/constants/recall-bot-detection-timeouts.ts", "../../../../src/logic-functions/constants/recall-bot-silence-detection-activate-after-seconds.ts", "../../../../src/logic-functions/constants/recall-bot-silence-detection-timeout-seconds.ts", "../../../../src/logic-functions/constants/recall-bot-detection-name-matches.ts", "../../../../src/logic-functions/utils/get-call-recorder-bot-detection-name-matches.util.ts", "../../../../src/logic-functions/constants/call-recorder-recording-retention-hours-env-var-name.ts", "../../../../src/logic-functions/constants/default-call-recorder-recording-retention-hours.ts", "../../../../src/logic-functions/constants/recall-bot-recording-config.ts", "../../../../src/logic-functions/recall-api/extract-recall-bot-id.util.ts", "../../../../src/logic-functions/domain/compute-recall-bot-detection-activate-after-seconds.util.ts", "../../../../src/logic-functions/constants/call-recorder-recording-notice-enabled-env-var-name.ts", "../../../../src/logic-functions/constants/call-recorder-recording-notice-message-env-var-name.ts", "../../../../src/logic-functions/constants/default-call-recorder-recording-notice-enabled.ts", "../../../../src/logic-functions/constants/default-call-recorder-recording-notice-message.ts", "../../../../src/logic-functions/utils/get-boolean-application-variable-value.util.ts", "../../../../src/logic-functions/constants/call-recorder-recording-notice-max-length.ts", "../../../../src/logic-functions/utils/truncate-recording-notice-message.util.ts", "../../../../src/logic-functions/recall-api/get-recall-bot-chat-config.util.ts", "../../../../src/logic-functions/recall-api/compute-maximum-join-at.utils.ts", "../../../../node_modules/uuid/dist-node/stringify.js", "../../../../node_modules/uuid/dist-node/rng.js", "../../../../node_modules/uuid/dist-node/native.js", "../../../../node_modules/uuid/dist-node/v4.js", "../../../../node_modules/twenty-shared/dist/is-record-object-schema-CwzshFdt.mjs", "../../../../node_modules/twenty-shared/dist/logic-function.mjs", "../../../../node_modules/twenty-sdk/src/sdk/logic-function/connections/errors/app-connection-auth-failed.error.ts", "../../../../node_modules/zod/v4/core/core.js", "../../../../node_modules/zod/v4/core/util.js", "../../../../node_modules/zod/v4/core/errors.js", "../../../../node_modules/zod/v4/core/parse.js", "../../../../node_modules/zod/v4/core/regexes.js", "../../../../node_modules/zod/v4/core/checks.js", "../../../../node_modules/zod/v4/core/doc.js", "../../../../node_modules/zod/v4/core/versions.js", "../../../../node_modules/zod/v4/core/schemas.js", "../../../../node_modules/zod/v4/core/registries.js", "../../../../node_modules/zod/v4/core/api.js", "../../../../node_modules/zod/v4/classic/iso.js", "../../../../node_modules/zod/v4/classic/errors.js", "../../../../node_modules/zod/v4/classic/parse.js", "../../../../node_modules/zod/v4/classic/schemas.js", "../../../../node_modules/twenty-shared/node_modules/class-validator/esm5/metadata/ValidationMetadata.js", "../../../../node_modules/twenty-shared/node_modules/class-validator/esm5/validation-schema/ValidationSchemaToMetadataTransformer.js", "../../../../node_modules/twenty-shared/node_modules/class-validator/esm5/utils/get-global.util.js", "../../../../node_modules/twenty-shared/node_modules/class-validator/esm5/metadata/MetadataStorage.js", "../../../../node_modules/twenty-shared/node_modules/class-validator/esm5/validation/ValidationTypes.js", "../../../../node_modules/twenty-shared/node_modules/class-validator/esm5/container.js", "../../../../node_modules/twenty-shared/node_modules/class-validator/esm5/metadata/ConstraintMetadata.js", "../../../../node_modules/twenty-shared/node_modules/class-validator/esm5/register-decorator.js", "../../../../node_modules/twenty-shared/dist/types-BPwZbSNY.mjs", "../../../../node_modules/twenty-shared/dist/get-system-view-universal-identifier.util-DET35GTV.mjs", "../../../../node_modules/twenty-shared/dist/application.mjs", "../../../../node_modules/twenty-sdk/src/sdk/utils/get-application-access-token.ts", "../../../../node_modules/twenty-sdk/src/sdk/logic-function/utils/post-graphql-request.util.ts", "../../../../node_modules/twenty-sdk/src/sdk/logic-function/connections/get-connection.ts", "../../../../node_modules/twenty-sdk/src/sdk/logic-function/connections/list-connections.ts", "../../../../node_modules/twenty-sdk/src/sdk/logic-function/connections/find-connection-for-request.ts", "../../../../node_modules/twenty-sdk/src/sdk/logic-function/agents/run-agent.ts", "../../../../node_modules/twenty-sdk/src/sdk/logic-function/jobs/enqueue-job.ts", "../../../../node_modules/twenty-sdk/src/sdk/logic-function/jobs/enqueue-jobs.ts", "../../../../node_modules/twenty-sdk/src/sdk/logic-function/jobs/get-jobs.ts", "../../../../node_modules/twenty-shared/dist/capitalize-BIrP8_oc.mjs", "../../../../node_modules/twenty-sdk/src/sdk/logic-function/timeline/create-timeline-activity.ts", "../../../../node_modules/twenty-sdk/src/sdk/logic-function/key-value/kv.ts", "../../../../node_modules/twenty-sdk/src/sdk/logic-function/response.ts", "../../../../src/logic-functions/constants/enqueued-job-retry-limit.ts", "../../../../src/logic-functions/constants/pre-join-credit-check-lead-minutes.ts", "../../../../src/logic-functions/data/enqueue-pre-join-credit-check.util.ts", "../../../../src/logic-functions/flows/schedule-recall-bot-for-call-recording.util.ts", "../../../../src/logic-functions/domain/build-recall-bot-automatic-video-output.util.ts", "../../../../src/logic-functions/constants/call-recorder-bot-image-background-env-var-name.ts", "../../../../src/logic-functions/constants/default-call-recorder-bot-image-background.ts", "../../../../src/logic-functions/constants/get-bot-image-background.ts", "../../../../src/logic-functions/constants/call-recorder-use-workspace-logo-env-var-name.ts", "../../../../src/logic-functions/constants/default-call-recorder-use-workspace-logo.ts", "../../../../src/logic-functions/constants/is-workspace-logo-bot-image-enabled.ts", "../../../../src/logic-functions/data/get-workspace-logo.util.ts", "../../../../src/logic-functions/constants/recall-bot-image-config.ts", "../../../../src/logic-functions/constants/recording-status-badge-config.ts", "../../../../src/logic-functions/domain/build-recording-status-badge.util.ts", "../../../../src/logic-functions/domain/build-bot-image.util.ts", "../../../../src/logic-functions/domain/is-recall-bot-join-within-credit-check-lead.util.ts", "../../../../node_modules/zod/v4/core/core.js", "../../../../node_modules/zod/v4/core/util.js", "../../../../node_modules/zod/v4/core/errors.js", "../../../../node_modules/zod/v4/core/parse.js", "../../../../node_modules/zod/v4/core/regexes.js", "../../../../node_modules/zod/v4/core/checks.js", "../../../../node_modules/zod/v4/core/doc.js", "../../../../node_modules/zod/v4/core/versions.js", "../../../../node_modules/zod/v4/core/schemas.js", "../../../../node_modules/zod/v4/core/registries.js", "../../../../node_modules/zod/v4/core/api.js", "../../../../node_modules/zod/v4/classic/iso.js", "../../../../node_modules/zod/v4/classic/errors.js", "../../../../node_modules/zod/v4/classic/parse.js", "../../../../node_modules/zod/v4/classic/schemas.js", "../../../../node_modules/twenty-shared/node_modules/class-validator/esm5/metadata/ValidationMetadata.js", "../../../../node_modules/twenty-shared/node_modules/class-validator/esm5/validation-schema/ValidationSchemaToMetadataTransformer.js", "../../../../node_modules/twenty-shared/node_modules/class-validator/esm5/utils/get-global.util.js", "../../../../node_modules/twenty-shared/node_modules/class-validator/esm5/metadata/MetadataStorage.js", "../../../../node_modules/twenty-shared/node_modules/class-validator/esm5/validation/ValidationTypes.js", "../../../../node_modules/twenty-shared/node_modules/class-validator/esm5/container.js", "../../../../node_modules/twenty-shared/node_modules/class-validator/esm5/metadata/ConstraintMetadata.js", "../../../../node_modules/twenty-shared/node_modules/class-validator/esm5/register-decorator.js", "../../../../node_modules/twenty-shared/dist/types-BPwZbSNY.mjs", "../../../../node_modules/twenty-shared/dist/get-system-view-universal-identifier.util-DET35GTV.mjs", "../../../../node_modules/twenty-shared/dist/application.mjs", "../../../../node_modules/twenty-sdk/src/sdk/utils/get-application-access-token.ts", "../../../../node_modules/twenty-sdk/src/sdk/billing/charge-credits.ts", "../../../../node_modules/twenty-sdk/src/sdk/billing/get-credit-availability.ts", "../../../../src/logic-functions/constants/failure-reason-by-credit-unavailable-reason.ts", "../../../../src/logic-functions/data/get-credits-unavailable-failure-reason.util.ts", "../../../../src/logic-functions/data/update-non-terminal-call-recording-state.util.ts", "../../../../src/logic-functions/data/mark-call-recording-not-recorded.util.ts", "../../../../src/logic-functions/constants/call-recorder-calendar-bot-scheduling-enabled-env-var-name.ts", "../../../../src/logic-functions/constants/default-call-recorder-calendar-bot-scheduling-enabled.ts", "../../../../src/logic-functions/utils/is-calendar-bot-scheduling-enabled.util.ts", "../../../../src/logic-functions/data/update-call-recording.util.ts", "../../../../src/logic-functions/data/find-open-scheduled-call-recordings.util.ts", "../../../../src/logic-functions/utils/build-step-failure.util.ts"],
  "sourcesContent": [null, null, null, null, "/*!\n  Copyright 2013 Lovell Fuller and others.\n  SPDX-License-Identifier: Apache-2.0\n*/\n\n/**\n * Is this value defined and not null?\n * @private\n */\nconst defined = (val) => typeof val !== 'undefined' && val !== null;\n\n/**\n * Is this value an object?\n * @private\n */\nconst object = (val) => typeof val === 'object';\n\n/**\n * Is this value a plain object?\n * @private\n */\nconst plainObject = (val) => Object.prototype.toString.call(val) === '[object Object]';\n\n/**\n * Is this value a function?\n * @private\n */\nconst fn = (val) => typeof val === 'function';\n\n/**\n * Is this value a boolean?\n * @private\n */\nconst bool = (val) => typeof val === 'boolean';\n\n/**\n * Is this value a Buffer object?\n * @private\n */\nconst buffer = (val) => val instanceof Buffer;\n\n/**\n * Is this value a typed array object?. E.g. Uint8Array or Uint8ClampedArray?\n * @private\n */\nconst typedArray = (val) => {\n  if (defined(val)) {\n    switch (val.constructor) {\n      case Uint8Array:\n      case Uint8ClampedArray:\n      case Int8Array:\n      case Uint16Array:\n      case Int16Array:\n      case Uint32Array:\n      case Int32Array:\n      case Float32Array:\n      case Float64Array:\n        return true;\n    }\n  }\n\n  return false;\n};\n\n/**\n * Is this value an ArrayBuffer object?\n * @private\n */\nconst arrayBuffer = (val) => val instanceof ArrayBuffer;\n\n/**\n * Is this value a non-empty string?\n * @private\n */\nconst string = (val) => typeof val === 'string' && val.length > 0;\n\n/**\n * Is this value a real number?\n * @private\n */\nconst number = (val) => typeof val === 'number' && Number.isFinite(val);\n\n/**\n * Is this value an integer?\n * @private\n */\nconst integer = (val) => Number.isInteger(val);\n\n/**\n * Is this value within an inclusive given range?\n * @private\n */\nconst inRange = (val, min, max) => val >= min && val <= max;\n\n/**\n * Is this value within the elements of an array?\n * @private\n */\nconst inArray = (val, list) => list.includes(val);\n\n/**\n * Create an Error with a message relating to an invalid parameter.\n *\n * @param {string} name - parameter name.\n * @param {string} expected - description of the type/value/range expected.\n * @param {*} actual - the value received.\n * @returns {Error} Containing the formatted message.\n * @private\n */\nconst invalidParameterError = (name, expected, actual) => new Error(\n    `Expected ${expected} for ${name} but received ${actual} of type ${typeof actual}`\n  );\n\n/**\n * Ensures an Error from C++ contains a JS stack.\n *\n * @param {Error} native - Error with message from C++.\n * @param {Error} context - Error with stack from JS.\n * @returns {Error} Error with message and stack.\n * @private\n */\nconst nativeError = (native, context) => {\n  context.message = native.message;\n  return context;\n};\n\nexport default {\n  defined,\n  object,\n  plainObject,\n  fn,\n  bool,\n  buffer,\n  typedArray,\n  arrayBuffer,\n  string,\n  number,\n  integer,\n  inRange,\n  inArray,\n  invalidParameterError,\n  nativeError\n};\n", "// Copyright 2017 Lovell Fuller and others.\n// SPDX-License-Identifier: Apache-2.0\n\n'use strict';\n\nconst isLinux = () => process.platform === 'linux';\n\nlet report = null;\nconst getReport = () => {\n  if (!report) {\n    /* istanbul ignore next */\n    if (isLinux() && process.report) {\n      const orig = process.report.excludeNetwork;\n      process.report.excludeNetwork = true;\n      report = process.report.getReport();\n      process.report.excludeNetwork = orig;\n    } else {\n      report = {};\n    }\n  }\n  return report;\n};\n\nmodule.exports = { isLinux, getReport };\n", "// Copyright 2017 Lovell Fuller and others.\n// SPDX-License-Identifier: Apache-2.0\n\n'use strict';\n\nconst fs = require('fs');\n\nconst LDD_PATH = '/usr/bin/ldd';\nconst SELF_PATH = '/proc/self/exe';\nconst MAX_LENGTH = 2048;\n\n/**\n * Read the content of a file synchronous\n *\n * @param {string} path\n * @returns {Buffer}\n */\nconst readFileSync = (path) => {\n  const fd = fs.openSync(path, 'r');\n  const buffer = Buffer.alloc(MAX_LENGTH);\n  const bytesRead = fs.readSync(fd, buffer, 0, MAX_LENGTH, 0);\n  fs.close(fd, () => {});\n  return buffer.subarray(0, bytesRead);\n};\n\n/**\n * Read the content of a file\n *\n * @param {string} path\n * @returns {Promise<Buffer>}\n */\nconst readFile = (path) => new Promise((resolve, reject) => {\n  fs.open(path, 'r', (err, fd) => {\n    if (err) {\n      reject(err);\n    } else {\n      const buffer = Buffer.alloc(MAX_LENGTH);\n      fs.read(fd, buffer, 0, MAX_LENGTH, 0, (_, bytesRead) => {\n        resolve(buffer.subarray(0, bytesRead));\n        fs.close(fd, () => {});\n      });\n    }\n  });\n});\n\nmodule.exports = {\n  LDD_PATH,\n  SELF_PATH,\n  readFileSync,\n  readFile\n};\n", "// Copyright 2017 Lovell Fuller and others.\n// SPDX-License-Identifier: Apache-2.0\n\n'use strict';\n\nconst interpreterPath = (elf) => {\n  if (elf.length < 64) {\n    return null;\n  }\n  if (elf.readUInt32BE(0) !== 0x7F454C46) {\n    // Unexpected magic bytes\n    return null;\n  }\n  if (elf.readUInt8(4) !== 2) {\n    // Not a 64-bit ELF\n    return null;\n  }\n  if (elf.readUInt8(5) !== 1) {\n    // Not little-endian\n    return null;\n  }\n  const offset = elf.readUInt32LE(32);\n  const size = elf.readUInt16LE(54);\n  const count = elf.readUInt16LE(56);\n  for (let i = 0; i < count; i++) {\n    const headerOffset = offset + (i * size);\n    const type = elf.readUInt32LE(headerOffset);\n    if (type === 3) {\n      const fileOffset = elf.readUInt32LE(headerOffset + 8);\n      const fileSize = elf.readUInt32LE(headerOffset + 32);\n      return elf.subarray(fileOffset, fileOffset + fileSize).toString().replace(/\\0.*$/g, '');\n    }\n  }\n  return null;\n};\n\nmodule.exports = {\n  interpreterPath\n};\n", "// Copyright 2017 Lovell Fuller and others.\n// SPDX-License-Identifier: Apache-2.0\n\n'use strict';\n\nconst childProcess = require('child_process');\nconst { isLinux, getReport } = require('./process');\nconst { LDD_PATH, SELF_PATH, readFile, readFileSync } = require('./filesystem');\nconst { interpreterPath } = require('./elf');\n\nlet cachedFamilyInterpreter;\nlet cachedFamilyFilesystem;\nlet cachedVersionFilesystem;\n\nconst command = 'getconf GNU_LIBC_VERSION 2>&1 || true; ldd --version 2>&1 || true';\nlet commandOut = '';\n\nconst safeCommand = () => {\n  if (!commandOut) {\n    return new Promise((resolve) => {\n      childProcess.exec(command, (err, out) => {\n        commandOut = err ? ' ' : out;\n        resolve(commandOut);\n      });\n    });\n  }\n  return commandOut;\n};\n\nconst safeCommandSync = () => {\n  if (!commandOut) {\n    try {\n      commandOut = childProcess.execSync(command, { encoding: 'utf8' });\n    } catch (_err) {\n      commandOut = ' ';\n    }\n  }\n  return commandOut;\n};\n\n/**\n * A String constant containing the value `glibc`.\n * @type {string}\n * @public\n */\nconst GLIBC = 'glibc';\n\n/**\n * A Regexp constant to get the GLIBC Version.\n * @type {string}\n */\nconst RE_GLIBC_VERSION = /LIBC[a-z0-9 \\-).]*?(\\d+\\.\\d+)/i;\n\n/**\n * A String constant containing the value `musl`.\n * @type {string}\n * @public\n */\nconst MUSL = 'musl';\n\nconst isFileMusl = (f) => f.includes('libc.musl-') || f.includes('ld-musl-');\n\nconst familyFromReport = () => {\n  const report = getReport();\n  if (report.header && report.header.glibcVersionRuntime) {\n    return GLIBC;\n  }\n  if (Array.isArray(report.sharedObjects)) {\n    if (report.sharedObjects.some(isFileMusl)) {\n      return MUSL;\n    }\n  }\n  return null;\n};\n\nconst familyFromCommand = (out) => {\n  const [getconf, ldd1] = out.split(/[\\r\\n]+/);\n  if (getconf && getconf.includes(GLIBC)) {\n    return GLIBC;\n  }\n  if (ldd1 && ldd1.includes(MUSL)) {\n    return MUSL;\n  }\n  return null;\n};\n\nconst familyFromInterpreterPath = (path) => {\n  if (path) {\n    if (path.includes('/ld-musl-')) {\n      return MUSL;\n    } else if (path.includes('/ld-linux-')) {\n      return GLIBC;\n    }\n  }\n  return null;\n};\n\nconst getFamilyFromLddContent = (content) => {\n  content = content.toString();\n  if (content.includes('musl')) {\n    return MUSL;\n  }\n  if (content.includes('GNU C Library')) {\n    return GLIBC;\n  }\n  return null;\n};\n\nconst familyFromFilesystem = async () => {\n  if (cachedFamilyFilesystem !== undefined) {\n    return cachedFamilyFilesystem;\n  }\n  cachedFamilyFilesystem = null;\n  try {\n    const lddContent = await readFile(LDD_PATH);\n    cachedFamilyFilesystem = getFamilyFromLddContent(lddContent);\n  } catch (e) {}\n  return cachedFamilyFilesystem;\n};\n\nconst familyFromFilesystemSync = () => {\n  if (cachedFamilyFilesystem !== undefined) {\n    return cachedFamilyFilesystem;\n  }\n  cachedFamilyFilesystem = null;\n  try {\n    const lddContent = readFileSync(LDD_PATH);\n    cachedFamilyFilesystem = getFamilyFromLddContent(lddContent);\n  } catch (e) {}\n  return cachedFamilyFilesystem;\n};\n\nconst familyFromInterpreter = async () => {\n  if (cachedFamilyInterpreter !== undefined) {\n    return cachedFamilyInterpreter;\n  }\n  cachedFamilyInterpreter = null;\n  try {\n    const selfContent = await readFile(SELF_PATH);\n    const path = interpreterPath(selfContent);\n    cachedFamilyInterpreter = familyFromInterpreterPath(path);\n  } catch (e) {}\n  return cachedFamilyInterpreter;\n};\n\nconst familyFromInterpreterSync = () => {\n  if (cachedFamilyInterpreter !== undefined) {\n    return cachedFamilyInterpreter;\n  }\n  cachedFamilyInterpreter = null;\n  try {\n    const selfContent = readFileSync(SELF_PATH);\n    const path = interpreterPath(selfContent);\n    cachedFamilyInterpreter = familyFromInterpreterPath(path);\n  } catch (e) {}\n  return cachedFamilyInterpreter;\n};\n\n/**\n * Resolves with the libc family when it can be determined, `null` otherwise.\n * @returns {Promise<?string>}\n */\nconst family = async () => {\n  let family = null;\n  if (isLinux()) {\n    family = await familyFromInterpreter();\n    if (!family) {\n      family = await familyFromFilesystem();\n      if (!family) {\n        family = familyFromReport();\n      }\n      if (!family) {\n        const out = await safeCommand();\n        family = familyFromCommand(out);\n      }\n    }\n  }\n  return family;\n};\n\n/**\n * Returns the libc family when it can be determined, `null` otherwise.\n * @returns {?string}\n */\nconst familySync = () => {\n  let family = null;\n  if (isLinux()) {\n    family = familyFromInterpreterSync();\n    if (!family) {\n      family = familyFromFilesystemSync();\n      if (!family) {\n        family = familyFromReport();\n      }\n      if (!family) {\n        const out = safeCommandSync();\n        family = familyFromCommand(out);\n      }\n    }\n  }\n  return family;\n};\n\n/**\n * Resolves `true` only when the platform is Linux and the libc family is not `glibc`.\n * @returns {Promise<boolean>}\n */\nconst isNonGlibcLinux = async () => isLinux() && await family() !== GLIBC;\n\n/**\n * Returns `true` only when the platform is Linux and the libc family is not `glibc`.\n * @returns {boolean}\n */\nconst isNonGlibcLinuxSync = () => isLinux() && familySync() !== GLIBC;\n\nconst versionFromFilesystem = async () => {\n  if (cachedVersionFilesystem !== undefined) {\n    return cachedVersionFilesystem;\n  }\n  cachedVersionFilesystem = null;\n  try {\n    const lddContent = await readFile(LDD_PATH);\n    const versionMatch = lddContent.match(RE_GLIBC_VERSION);\n    if (versionMatch) {\n      cachedVersionFilesystem = versionMatch[1];\n    }\n  } catch (e) {}\n  return cachedVersionFilesystem;\n};\n\nconst versionFromFilesystemSync = () => {\n  if (cachedVersionFilesystem !== undefined) {\n    return cachedVersionFilesystem;\n  }\n  cachedVersionFilesystem = null;\n  try {\n    const lddContent = readFileSync(LDD_PATH);\n    const versionMatch = lddContent.match(RE_GLIBC_VERSION);\n    if (versionMatch) {\n      cachedVersionFilesystem = versionMatch[1];\n    }\n  } catch (e) {}\n  return cachedVersionFilesystem;\n};\n\nconst versionFromReport = () => {\n  const report = getReport();\n  if (report.header && report.header.glibcVersionRuntime) {\n    return report.header.glibcVersionRuntime;\n  }\n  return null;\n};\n\nconst versionSuffix = (s) => s.trim().split(/\\s+/)[1];\n\nconst versionFromCommand = (out) => {\n  const [getconf, ldd1, ldd2] = out.split(/[\\r\\n]+/);\n  if (getconf && getconf.includes(GLIBC)) {\n    return versionSuffix(getconf);\n  }\n  if (ldd1 && ldd2 && ldd1.includes(MUSL)) {\n    return versionSuffix(ldd2);\n  }\n  return null;\n};\n\n/**\n * Resolves with the libc version when it can be determined, `null` otherwise.\n * @returns {Promise<?string>}\n */\nconst version = async () => {\n  let version = null;\n  if (isLinux()) {\n    version = await versionFromFilesystem();\n    if (!version) {\n      version = versionFromReport();\n    }\n    if (!version) {\n      const out = await safeCommand();\n      version = versionFromCommand(out);\n    }\n  }\n  return version;\n};\n\n/**\n * Returns the libc version when it can be determined, `null` otherwise.\n * @returns {?string}\n */\nconst versionSync = () => {\n  let version = null;\n  if (isLinux()) {\n    version = versionFromFilesystemSync();\n    if (!version) {\n      version = versionFromReport();\n    }\n    if (!version) {\n      const out = safeCommandSync();\n      version = versionFromCommand(out);\n    }\n  }\n  return version;\n};\n\nmodule.exports = {\n  GLIBC,\n  MUSL,\n  family,\n  familySync,\n  isNonGlibcLinux,\n  isNonGlibcLinuxSync,\n  version,\n  versionSync\n};\n", "'use strict'\n\n// Note: this is the semver.org version of the spec that it implements\n// Not necessarily the package version of this code.\nconst SEMVER_SPEC_VERSION = '2.0.0'\n\nconst MAX_LENGTH = 256\nconst MAX_SAFE_INTEGER = Number.MAX_SAFE_INTEGER ||\n/* istanbul ignore next */ 9007199254740991\n\n// Max safe segment length for coercion.\nconst MAX_SAFE_COMPONENT_LENGTH = 16\n\n// Max safe length for a build identifier. The max length minus 6 characters for\n// the shortest version with a build 0.0.0+BUILD.\nconst MAX_SAFE_BUILD_LENGTH = MAX_LENGTH - 6\n\nconst RELEASE_TYPES = [\n  'major',\n  'premajor',\n  'minor',\n  'preminor',\n  'patch',\n  'prepatch',\n  'prerelease',\n]\n\nmodule.exports = {\n  MAX_LENGTH,\n  MAX_SAFE_COMPONENT_LENGTH,\n  MAX_SAFE_BUILD_LENGTH,\n  MAX_SAFE_INTEGER,\n  RELEASE_TYPES,\n  SEMVER_SPEC_VERSION,\n  FLAG_INCLUDE_PRERELEASE: 0b001,\n  FLAG_LOOSE: 0b010,\n}\n", "'use strict'\n\nconst debug = (\n  typeof process === 'object' &&\n  process.env &&\n  process.env.NODE_DEBUG &&\n  /\\bsemver\\b/i.test(process.env.NODE_DEBUG)\n) ? (...args) => console.error('SEMVER', ...args)\n  : () => {}\n\nmodule.exports = debug\n", "'use strict'\n\nconst {\n  MAX_SAFE_COMPONENT_LENGTH,\n  MAX_SAFE_BUILD_LENGTH,\n  MAX_LENGTH,\n} = require('./constants')\nconst debug = require('./debug')\nexports = module.exports = {}\n\n// The actual regexps go on exports.re\nconst re = exports.re = []\nconst safeRe = exports.safeRe = []\nconst src = exports.src = []\nconst safeSrc = exports.safeSrc = []\nconst t = exports.t = {}\nlet R = 0\n\nconst LETTERDASHNUMBER = '[a-zA-Z0-9-]'\n\n// Replace some greedy regex tokens to prevent regex dos issues. These regex are\n// used internally via the safeRe object since all inputs in this library get\n// normalized first to trim and collapse all extra whitespace. The original\n// regexes are exported for userland consumption and lower level usage. A\n// future breaking change could export the safer regex only with a note that\n// all input should have extra whitespace removed.\nconst safeRegexReplacements = [\n  ['\\\\s', 1],\n  ['\\\\d', MAX_LENGTH],\n  [LETTERDASHNUMBER, MAX_SAFE_BUILD_LENGTH],\n]\n\nconst makeSafeRegex = (value) => {\n  for (const [token, max] of safeRegexReplacements) {\n    value = value\n      .split(`${token}*`).join(`${token}{0,${max}}`)\n      .split(`${token}+`).join(`${token}{1,${max}}`)\n  }\n  return value\n}\n\nconst createToken = (name, value, isGlobal) => {\n  const safe = makeSafeRegex(value)\n  const index = R++\n  debug(name, index, value)\n  t[name] = index\n  src[index] = value\n  safeSrc[index] = safe\n  re[index] = new RegExp(value, isGlobal ? 'g' : undefined)\n  safeRe[index] = new RegExp(safe, isGlobal ? 'g' : undefined)\n}\n\n// The following Regular Expressions can be used for tokenizing,\n// validating, and parsing SemVer version strings.\n\n// ## Numeric Identifier\n// A single `0`, or a non-zero digit followed by zero or more digits.\n\ncreateToken('NUMERICIDENTIFIER', '0|[1-9]\\\\d*')\ncreateToken('NUMERICIDENTIFIERLOOSE', '\\\\d+')\n\n// ## Non-numeric Identifier\n// Zero or more digits, followed by a letter or hyphen, and then zero or\n// more letters, digits, or hyphens.\n\ncreateToken('NONNUMERICIDENTIFIER', `\\\\d*[a-zA-Z-]${LETTERDASHNUMBER}*`)\n\n// ## Main Version\n// Three dot-separated numeric identifiers.\n\ncreateToken('MAINVERSION', `(${src[t.NUMERICIDENTIFIER]})\\\\.` +\n                   `(${src[t.NUMERICIDENTIFIER]})\\\\.` +\n                   `(${src[t.NUMERICIDENTIFIER]})`)\n\ncreateToken('MAINVERSIONLOOSE', `(${src[t.NUMERICIDENTIFIERLOOSE]})\\\\.` +\n                        `(${src[t.NUMERICIDENTIFIERLOOSE]})\\\\.` +\n                        `(${src[t.NUMERICIDENTIFIERLOOSE]})`)\n\n// ## Pre-release Version Identifier\n// A numeric identifier, or a non-numeric identifier.\n// Non-numeric identifiers include numeric identifiers but can be longer.\n// Therefore non-numeric identifiers must go first.\n\ncreateToken('PRERELEASEIDENTIFIER', `(?:${src[t.NONNUMERICIDENTIFIER]\n}|${src[t.NUMERICIDENTIFIER]})`)\n\ncreateToken('PRERELEASEIDENTIFIERLOOSE', `(?:${src[t.NONNUMERICIDENTIFIER]\n}|${src[t.NUMERICIDENTIFIERLOOSE]})`)\n\n// ## Pre-release Version\n// Hyphen, followed by one or more dot-separated pre-release version\n// identifiers.\n\ncreateToken('PRERELEASE', `(?:-(${src[t.PRERELEASEIDENTIFIER]\n}(?:\\\\.${src[t.PRERELEASEIDENTIFIER]})*))`)\n\ncreateToken('PRERELEASELOOSE', `(?:-?(${src[t.PRERELEASEIDENTIFIERLOOSE]\n}(?:\\\\.${src[t.PRERELEASEIDENTIFIERLOOSE]})*))`)\n\n// ## Build Metadata Identifier\n// Any combination of digits, letters, or hyphens.\n\ncreateToken('BUILDIDENTIFIER', `${LETTERDASHNUMBER}+`)\n\n// ## Build Metadata\n// Plus sign, followed by one or more period-separated build metadata\n// identifiers.\n\ncreateToken('BUILD', `(?:\\\\+(${src[t.BUILDIDENTIFIER]\n}(?:\\\\.${src[t.BUILDIDENTIFIER]})*))`)\n\n// ## Full Version String\n// A main version, followed optionally by a pre-release version and\n// build metadata.\n\n// Note that the only major, minor, patch, and pre-release sections of\n// the version string are capturing groups.  The build metadata is not a\n// capturing group, because it should not ever be used in version\n// comparison.\n\ncreateToken('FULLPLAIN', `v?${src[t.MAINVERSION]\n}${src[t.PRERELEASE]}?${\n  src[t.BUILD]}?`)\n\ncreateToken('FULL', `^${src[t.FULLPLAIN]}$`)\n\n// like full, but allows v1.2.3 and =1.2.3, which people do sometimes.\n// also, 1.0.0alpha1 (prerelease without the hyphen) which is pretty\n// common in the npm registry.\ncreateToken('LOOSEPLAIN', `[v=\\\\s]*${src[t.MAINVERSIONLOOSE]\n}${src[t.PRERELEASELOOSE]}?${\n  src[t.BUILD]}?`)\n\ncreateToken('LOOSE', `^${src[t.LOOSEPLAIN]}$`)\n\ncreateToken('GTLT', '((?:<|>)?=?)')\n\n// Something like \"2.*\" or \"1.2.x\".\n// Note that \"x.x\" is a valid xRange identifier, meaning \"any version\"\n// Only the first item is strictly required.\ncreateToken('XRANGEIDENTIFIERLOOSE', `${src[t.NUMERICIDENTIFIERLOOSE]}|x|X|\\\\*`)\ncreateToken('XRANGEIDENTIFIER', `${src[t.NUMERICIDENTIFIER]}|x|X|\\\\*`)\n\ncreateToken('XRANGEPLAIN', `[v=\\\\s]*(${src[t.XRANGEIDENTIFIER]})` +\n                   `(?:\\\\.(${src[t.XRANGEIDENTIFIER]})` +\n                   `(?:\\\\.(${src[t.XRANGEIDENTIFIER]})` +\n                   `(?:${src[t.PRERELEASE]})?${\n                     src[t.BUILD]}?` +\n                   `)?)?`)\n\ncreateToken('XRANGEPLAINLOOSE', `[v=\\\\s]*(${src[t.XRANGEIDENTIFIERLOOSE]})` +\n                        `(?:\\\\.(${src[t.XRANGEIDENTIFIERLOOSE]})` +\n                        `(?:\\\\.(${src[t.XRANGEIDENTIFIERLOOSE]})` +\n                        `(?:${src[t.PRERELEASELOOSE]})?${\n                          src[t.BUILD]}?` +\n                        `)?)?`)\n\ncreateToken('XRANGE', `^${src[t.GTLT]}\\\\s*${src[t.XRANGEPLAIN]}$`)\ncreateToken('XRANGELOOSE', `^${src[t.GTLT]}\\\\s*${src[t.XRANGEPLAINLOOSE]}$`)\n\n// Coercion.\n// Extract anything that could conceivably be a part of a valid semver\ncreateToken('COERCEPLAIN', `${'(^|[^\\\\d])' +\n              '(\\\\d{1,'}${MAX_SAFE_COMPONENT_LENGTH}})` +\n              `(?:\\\\.(\\\\d{1,${MAX_SAFE_COMPONENT_LENGTH}}))?` +\n              `(?:\\\\.(\\\\d{1,${MAX_SAFE_COMPONENT_LENGTH}}))?`)\ncreateToken('COERCE', `${src[t.COERCEPLAIN]}(?:$|[^\\\\d])`)\ncreateToken('COERCEFULL', src[t.COERCEPLAIN] +\n              `(?:${src[t.PRERELEASE]})?` +\n              `(?:${src[t.BUILD]})?` +\n              `(?:$|[^\\\\d])`)\ncreateToken('COERCERTL', src[t.COERCE], true)\ncreateToken('COERCERTLFULL', src[t.COERCEFULL], true)\n\n// Tilde ranges.\n// Meaning is \"reasonably at or greater than\"\ncreateToken('LONETILDE', '(?:~>?)')\n\ncreateToken('TILDETRIM', `(\\\\s*)${src[t.LONETILDE]}\\\\s+`, true)\nexports.tildeTrimReplace = '$1~'\n\ncreateToken('TILDE', `^${src[t.LONETILDE]}${src[t.XRANGEPLAIN]}$`)\ncreateToken('TILDELOOSE', `^${src[t.LONETILDE]}${src[t.XRANGEPLAINLOOSE]}$`)\n\n// Caret ranges.\n// Meaning is \"at least and backwards compatible with\"\ncreateToken('LONECARET', '(?:\\\\^)')\n\ncreateToken('CARETTRIM', `(\\\\s*)${src[t.LONECARET]}\\\\s+`, true)\nexports.caretTrimReplace = '$1^'\n\ncreateToken('CARET', `^${src[t.LONECARET]}${src[t.XRANGEPLAIN]}$`)\ncreateToken('CARETLOOSE', `^${src[t.LONECARET]}${src[t.XRANGEPLAINLOOSE]}$`)\n\n// A simple gt/lt/eq thing, or just \"\" to indicate \"any version\"\ncreateToken('COMPARATORLOOSE', `^${src[t.GTLT]}\\\\s*(${src[t.LOOSEPLAIN]})$|^$`)\ncreateToken('COMPARATOR', `^${src[t.GTLT]}\\\\s*(${src[t.FULLPLAIN]})$|^$`)\n\n// An expression to strip any whitespace between the gtlt and the thing\n// it modifies, so that `> 1.2.3` ==> `>1.2.3`\ncreateToken('COMPARATORTRIM', `(\\\\s*)${src[t.GTLT]\n}\\\\s*(${src[t.LOOSEPLAIN]}|${src[t.XRANGEPLAIN]})`, true)\nexports.comparatorTrimReplace = '$1$2$3'\n\n// Something like `1.2.3 - 1.2.4`\n// Note that these all use the loose form, because they'll be\n// checked against either the strict or loose comparator form\n// later.\ncreateToken('HYPHENRANGE', `^\\\\s*(${src[t.XRANGEPLAIN]})` +\n                   `\\\\s+-\\\\s+` +\n                   `(${src[t.XRANGEPLAIN]})` +\n                   `\\\\s*$`)\n\ncreateToken('HYPHENRANGELOOSE', `^\\\\s*(${src[t.XRANGEPLAINLOOSE]})` +\n                        `\\\\s+-\\\\s+` +\n                        `(${src[t.XRANGEPLAINLOOSE]})` +\n                        `\\\\s*$`)\n\n// Star ranges basically just allow anything at all.\ncreateToken('STAR', '(<|>)?=?\\\\s*\\\\*')\n// >=0.0.0 is like a star\ncreateToken('GTE0', '^\\\\s*>=\\\\s*0\\\\.0\\\\.0\\\\s*$')\ncreateToken('GTE0PRE', '^\\\\s*>=\\\\s*0\\\\.0\\\\.0-0\\\\s*$')\n", "'use strict'\n\n// parse out just the options we care about\nconst looseOption = Object.freeze({ loose: true })\nconst emptyOpts = Object.freeze({ })\nconst parseOptions = options => {\n  if (!options) {\n    return emptyOpts\n  }\n\n  if (typeof options !== 'object') {\n    return looseOption\n  }\n\n  return options\n}\nmodule.exports = parseOptions\n", "'use strict'\n\nconst numeric = /^[0-9]+$/\nconst compareIdentifiers = (a, b) => {\n  if (typeof a === 'number' && typeof b === 'number') {\n    return a === b ? 0 : a < b ? -1 : 1\n  }\n\n  const anum = numeric.test(a)\n  const bnum = numeric.test(b)\n\n  if (anum && bnum) {\n    a = +a\n    b = +b\n  }\n\n  return a === b ? 0\n    : (anum && !bnum) ? -1\n    : (bnum && !anum) ? 1\n    : a < b ? -1\n    : 1\n}\n\nconst rcompareIdentifiers = (a, b) => compareIdentifiers(b, a)\n\nmodule.exports = {\n  compareIdentifiers,\n  rcompareIdentifiers,\n}\n", "'use strict'\n\nconst debug = require('../internal/debug')\nconst { MAX_LENGTH, MAX_SAFE_INTEGER } = require('../internal/constants')\nconst { safeRe: re, t } = require('../internal/re')\n\nconst parseOptions = require('../internal/parse-options')\nconst { compareIdentifiers } = require('../internal/identifiers')\n\nconst isPrereleaseIdentifier = (prerelease, identifier) => {\n  const identifiers = identifier.split('.')\n  if (identifiers.length > prerelease.length) {\n    return false\n  }\n\n  for (let i = 0; i < identifiers.length; i++) {\n    if (compareIdentifiers(prerelease[i], identifiers[i]) !== 0) {\n      return false\n    }\n  }\n\n  return true\n}\n\nclass SemVer {\n  constructor (version, options) {\n    options = parseOptions(options)\n\n    if (version instanceof SemVer) {\n      if (version.loose === !!options.loose &&\n        version.includePrerelease === !!options.includePrerelease) {\n        return version\n      } else {\n        version = version.version\n      }\n    } else if (typeof version !== 'string') {\n      throw new TypeError(`Invalid version. Must be a string. Got type \"${typeof version}\".`)\n    }\n\n    if (version.length > MAX_LENGTH) {\n      throw new TypeError(\n        `version is longer than ${MAX_LENGTH} characters`\n      )\n    }\n\n    debug('SemVer', version, options)\n    this.options = options\n    this.loose = !!options.loose\n    // this isn't actually relevant for versions, but keep it so that we\n    // don't run into trouble passing this.options around.\n    this.includePrerelease = !!options.includePrerelease\n\n    const m = version.trim().match(options.loose ? re[t.LOOSE] : re[t.FULL])\n\n    if (!m) {\n      throw new TypeError(`Invalid Version: ${version}`)\n    }\n\n    this.raw = version\n\n    // these are actually numbers\n    this.major = +m[1]\n    this.minor = +m[2]\n    this.patch = +m[3]\n\n    if (this.major > MAX_SAFE_INTEGER || this.major < 0) {\n      throw new TypeError('Invalid major version')\n    }\n\n    if (this.minor > MAX_SAFE_INTEGER || this.minor < 0) {\n      throw new TypeError('Invalid minor version')\n    }\n\n    if (this.patch > MAX_SAFE_INTEGER || this.patch < 0) {\n      throw new TypeError('Invalid patch version')\n    }\n\n    // numberify any prerelease numeric ids\n    if (!m[4]) {\n      this.prerelease = []\n    } else {\n      this.prerelease = m[4].split('.').map((id) => {\n        if (/^[0-9]+$/.test(id)) {\n          const num = +id\n          if (num >= 0 && num < MAX_SAFE_INTEGER) {\n            return num\n          }\n        }\n        return id\n      })\n    }\n\n    this.build = m[5] ? m[5].split('.') : []\n    this.format()\n  }\n\n  format () {\n    this.version = `${this.major}.${this.minor}.${this.patch}`\n    if (this.prerelease.length) {\n      this.version += `-${this.prerelease.join('.')}`\n    }\n    return this.version\n  }\n\n  toString () {\n    return this.version\n  }\n\n  compare (other) {\n    debug('SemVer.compare', this.version, this.options, other)\n    if (!(other instanceof SemVer)) {\n      if (typeof other === 'string' && other === this.version) {\n        return 0\n      }\n      other = new SemVer(other, this.options)\n    }\n\n    if (other.version === this.version) {\n      return 0\n    }\n\n    return this.compareMain(other) || this.comparePre(other)\n  }\n\n  compareMain (other) {\n    if (!(other instanceof SemVer)) {\n      other = new SemVer(other, this.options)\n    }\n\n    if (this.major < other.major) {\n      return -1\n    }\n    if (this.major > other.major) {\n      return 1\n    }\n    if (this.minor < other.minor) {\n      return -1\n    }\n    if (this.minor > other.minor) {\n      return 1\n    }\n    if (this.patch < other.patch) {\n      return -1\n    }\n    if (this.patch > other.patch) {\n      return 1\n    }\n    return 0\n  }\n\n  comparePre (other) {\n    if (!(other instanceof SemVer)) {\n      other = new SemVer(other, this.options)\n    }\n\n    // NOT having a prerelease is > having one\n    if (this.prerelease.length && !other.prerelease.length) {\n      return -1\n    } else if (!this.prerelease.length && other.prerelease.length) {\n      return 1\n    } else if (!this.prerelease.length && !other.prerelease.length) {\n      return 0\n    }\n\n    let i = 0\n    do {\n      const a = this.prerelease[i]\n      const b = other.prerelease[i]\n      debug('prerelease compare', i, a, b)\n      if (a === undefined && b === undefined) {\n        return 0\n      } else if (b === undefined) {\n        return 1\n      } else if (a === undefined) {\n        return -1\n      } else if (a === b) {\n        continue\n      } else {\n        return compareIdentifiers(a, b)\n      }\n    } while (++i)\n  }\n\n  compareBuild (other) {\n    if (!(other instanceof SemVer)) {\n      other = new SemVer(other, this.options)\n    }\n\n    let i = 0\n    do {\n      const a = this.build[i]\n      const b = other.build[i]\n      debug('build compare', i, a, b)\n      if (a === undefined && b === undefined) {\n        return 0\n      } else if (b === undefined) {\n        return 1\n      } else if (a === undefined) {\n        return -1\n      } else if (a === b) {\n        continue\n      } else {\n        return compareIdentifiers(a, b)\n      }\n    } while (++i)\n  }\n\n  // preminor will bump the version up to the next minor release, and immediately\n  // down to pre-release. premajor and prepatch work the same way.\n  inc (release, identifier, identifierBase) {\n    if (release.startsWith('pre')) {\n      if (!identifier && identifierBase === false) {\n        throw new Error('invalid increment argument: identifier is empty')\n      }\n      // Avoid an invalid semver results\n      if (identifier) {\n        const match = `-${identifier}`.match(this.options.loose ? re[t.PRERELEASELOOSE] : re[t.PRERELEASE])\n        if (!match || match[1] !== identifier) {\n          throw new Error(`invalid identifier: ${identifier}`)\n        }\n      }\n    }\n\n    switch (release) {\n      case 'premajor':\n        this.prerelease.length = 0\n        this.patch = 0\n        this.minor = 0\n        this.major++\n        this.inc('pre', identifier, identifierBase)\n        break\n      case 'preminor':\n        this.prerelease.length = 0\n        this.patch = 0\n        this.minor++\n        this.inc('pre', identifier, identifierBase)\n        break\n      case 'prepatch':\n        // If this is already a prerelease, it will bump to the next version\n        // drop any prereleases that might already exist, since they are not\n        // relevant at this point.\n        this.prerelease.length = 0\n        this.inc('patch', identifier, identifierBase)\n        this.inc('pre', identifier, identifierBase)\n        break\n      // If the input is a non-prerelease version, this acts the same as\n      // prepatch.\n      case 'prerelease':\n        if (this.prerelease.length === 0) {\n          this.inc('patch', identifier, identifierBase)\n        }\n        this.inc('pre', identifier, identifierBase)\n        break\n      case 'release':\n        if (this.prerelease.length === 0) {\n          throw new Error(`version ${this.raw} is not a prerelease`)\n        }\n        this.prerelease.length = 0\n        break\n\n      case 'major':\n        // If this is a pre-major version, bump up to the same major version.\n        // Otherwise increment major.\n        // 1.0.0-5 bumps to 1.0.0\n        // 1.1.0 bumps to 2.0.0\n        if (\n          this.minor !== 0 ||\n          this.patch !== 0 ||\n          this.prerelease.length === 0\n        ) {\n          this.major++\n        }\n        this.minor = 0\n        this.patch = 0\n        this.prerelease = []\n        break\n      case 'minor':\n        // If this is a pre-minor version, bump up to the same minor version.\n        // Otherwise increment minor.\n        // 1.2.0-5 bumps to 1.2.0\n        // 1.2.1 bumps to 1.3.0\n        if (this.patch !== 0 || this.prerelease.length === 0) {\n          this.minor++\n        }\n        this.patch = 0\n        this.prerelease = []\n        break\n      case 'patch':\n        // If this is not a pre-release version, it will increment the patch.\n        // If it is a pre-release it will bump up to the same patch version.\n        // 1.2.0-5 patches to 1.2.0\n        // 1.2.0 patches to 1.2.1\n        if (this.prerelease.length === 0) {\n          this.patch++\n        }\n        this.prerelease = []\n        break\n      // This probably shouldn't be used publicly.\n      // 1.0.0 'pre' would become 1.0.0-0 which is the wrong direction.\n      case 'pre': {\n        const base = Number(identifierBase) ? 1 : 0\n\n        if (this.prerelease.length === 0) {\n          this.prerelease = [base]\n        } else {\n          let i = this.prerelease.length\n          while (--i >= 0) {\n            if (typeof this.prerelease[i] === 'number') {\n              this.prerelease[i]++\n              i = -2\n            }\n          }\n          if (i === -1) {\n            // didn't increment anything\n            if (identifier === this.prerelease.join('.') && identifierBase === false) {\n              throw new Error('invalid increment argument: identifier already exists')\n            }\n            this.prerelease.push(base)\n          }\n        }\n        if (identifier) {\n          // 1.2.0-beta.1 bumps to 1.2.0-beta.2,\n          // 1.2.0-beta.fooblz or 1.2.0-beta bumps to 1.2.0-beta.0\n          let prerelease = [identifier, base]\n          if (identifierBase === false) {\n            prerelease = [identifier]\n          }\n          if (isPrereleaseIdentifier(this.prerelease, identifier)) {\n            const prereleaseBase = this.prerelease[identifier.split('.').length]\n            if (isNaN(prereleaseBase)) {\n              this.prerelease = prerelease\n            }\n          } else {\n            this.prerelease = prerelease\n          }\n        }\n        break\n      }\n      default:\n        throw new Error(`invalid increment argument: ${release}`)\n    }\n    this.raw = this.format()\n    if (this.build.length) {\n      this.raw += `+${this.build.join('.')}`\n    }\n    return this\n  }\n}\n\nmodule.exports = SemVer\n", "'use strict'\n\nconst SemVer = require('../classes/semver')\nconst parse = (version, options, throwErrors = false) => {\n  if (version instanceof SemVer) {\n    return version\n  }\n  try {\n    return new SemVer(version, options)\n  } catch (er) {\n    if (!throwErrors) {\n      return null\n    }\n    throw er\n  }\n}\n\nmodule.exports = parse\n", "'use strict'\n\nconst parse = require('./parse')\nconst valid = (version, options) => {\n  const v = parse(version, options)\n  return v ? v.version : null\n}\nmodule.exports = valid\n", "'use strict'\n\nconst parse = require('./parse')\nconst clean = (version, options) => {\n  const s = parse(version.trim().replace(/^[=v]+/, ''), options)\n  return s ? s.version : null\n}\nmodule.exports = clean\n", "'use strict'\n\nconst SemVer = require('../classes/semver')\n\nconst inc = (version, release, options, identifier, identifierBase) => {\n  if (typeof (options) === 'string') {\n    identifierBase = identifier\n    identifier = options\n    options = undefined\n  }\n\n  try {\n    return new SemVer(\n      version instanceof SemVer ? version.version : version,\n      options\n    ).inc(release, identifier, identifierBase).version\n  } catch (er) {\n    return null\n  }\n}\nmodule.exports = inc\n", "'use strict'\n\nconst parse = require('./parse.js')\n\nconst diff = (version1, version2) => {\n  const v1 = parse(version1, null, true)\n  const v2 = parse(version2, null, true)\n  const comparison = v1.compare(v2)\n\n  if (comparison === 0) {\n    return null\n  }\n\n  const v1Higher = comparison > 0\n  const highVersion = v1Higher ? v1 : v2\n  const lowVersion = v1Higher ? v2 : v1\n  const highHasPre = !!highVersion.prerelease.length\n  const lowHasPre = !!lowVersion.prerelease.length\n\n  if (lowHasPre && !highHasPre) {\n    // Going from prerelease -> no prerelease requires some special casing\n\n    // If the low version has only a major, then it will always be a major\n    // Some examples:\n    // 1.0.0-1 -> 1.0.0\n    // 1.0.0-1 -> 1.1.1\n    // 1.0.0-1 -> 2.0.0\n    if (!lowVersion.patch && !lowVersion.minor) {\n      return 'major'\n    }\n\n    // If the main part has no difference\n    if (lowVersion.compareMain(highVersion) === 0) {\n      if (lowVersion.minor && !lowVersion.patch) {\n        return 'minor'\n      }\n      return 'patch'\n    }\n  }\n\n  // add the `pre` prefix if we are going to a prerelease version\n  const prefix = highHasPre ? 'pre' : ''\n\n  if (v1.major !== v2.major) {\n    return prefix + 'major'\n  }\n\n  if (v1.minor !== v2.minor) {\n    return prefix + 'minor'\n  }\n\n  if (v1.patch !== v2.patch) {\n    return prefix + 'patch'\n  }\n\n  // high and low are prereleases\n  return 'prerelease'\n}\n\nmodule.exports = diff\n", "'use strict'\n\nconst SemVer = require('../classes/semver')\nconst major = (a, loose) => new SemVer(a, loose).major\nmodule.exports = major\n", "'use strict'\n\nconst SemVer = require('../classes/semver')\nconst minor = (a, loose) => new SemVer(a, loose).minor\nmodule.exports = minor\n", "'use strict'\n\nconst SemVer = require('../classes/semver')\nconst patch = (a, loose) => new SemVer(a, loose).patch\nmodule.exports = patch\n", "'use strict'\n\nconst parse = require('./parse')\nconst prerelease = (version, options) => {\n  const parsed = parse(version, options)\n  return (parsed && parsed.prerelease.length) ? parsed.prerelease : null\n}\nmodule.exports = prerelease\n", "'use strict'\n\nconst SemVer = require('../classes/semver')\nconst compare = (a, b, loose) =>\n  new SemVer(a, loose).compare(new SemVer(b, loose))\n\nmodule.exports = compare\n", "'use strict'\n\nconst compare = require('./compare')\nconst rcompare = (a, b, loose) => compare(b, a, loose)\nmodule.exports = rcompare\n", "'use strict'\n\nconst compare = require('./compare')\nconst compareLoose = (a, b) => compare(a, b, true)\nmodule.exports = compareLoose\n", "'use strict'\n\nconst SemVer = require('../classes/semver')\nconst compareBuild = (a, b, loose) => {\n  const versionA = new SemVer(a, loose)\n  const versionB = new SemVer(b, loose)\n  return versionA.compare(versionB) || versionA.compareBuild(versionB)\n}\nmodule.exports = compareBuild\n", "'use strict'\n\nconst compareBuild = require('./compare-build')\nconst sort = (list, loose) => list.sort((a, b) => compareBuild(a, b, loose))\nmodule.exports = sort\n", "'use strict'\n\nconst compareBuild = require('./compare-build')\nconst rsort = (list, loose) => list.sort((a, b) => compareBuild(b, a, loose))\nmodule.exports = rsort\n", "'use strict'\n\nconst compare = require('./compare')\nconst gt = (a, b, loose) => compare(a, b, loose) > 0\nmodule.exports = gt\n", "'use strict'\n\nconst compare = require('./compare')\nconst lt = (a, b, loose) => compare(a, b, loose) < 0\nmodule.exports = lt\n", "'use strict'\n\nconst compare = require('./compare')\nconst eq = (a, b, loose) => compare(a, b, loose) === 0\nmodule.exports = eq\n", "'use strict'\n\nconst compare = require('./compare')\nconst neq = (a, b, loose) => compare(a, b, loose) !== 0\nmodule.exports = neq\n", "'use strict'\n\nconst compare = require('./compare')\nconst gte = (a, b, loose) => compare(a, b, loose) >= 0\nmodule.exports = gte\n", "'use strict'\n\nconst compare = require('./compare')\nconst lte = (a, b, loose) => compare(a, b, loose) <= 0\nmodule.exports = lte\n", "'use strict'\n\nconst eq = require('./eq')\nconst neq = require('./neq')\nconst gt = require('./gt')\nconst gte = require('./gte')\nconst lt = require('./lt')\nconst lte = require('./lte')\n\nconst cmp = (a, op, b, loose) => {\n  switch (op) {\n    case '===':\n      if (typeof a === 'object') {\n        a = a.version\n      }\n      if (typeof b === 'object') {\n        b = b.version\n      }\n      return a === b\n\n    case '!==':\n      if (typeof a === 'object') {\n        a = a.version\n      }\n      if (typeof b === 'object') {\n        b = b.version\n      }\n      return a !== b\n\n    case '':\n    case '=':\n    case '==':\n      return eq(a, b, loose)\n\n    case '!=':\n      return neq(a, b, loose)\n\n    case '>':\n      return gt(a, b, loose)\n\n    case '>=':\n      return gte(a, b, loose)\n\n    case '<':\n      return lt(a, b, loose)\n\n    case '<=':\n      return lte(a, b, loose)\n\n    default:\n      throw new TypeError(`Invalid operator: ${op}`)\n  }\n}\nmodule.exports = cmp\n", "'use strict'\n\nconst SemVer = require('../classes/semver')\nconst parse = require('./parse')\nconst { safeRe: re, t } = require('../internal/re')\n\nconst coerce = (version, options) => {\n  if (version instanceof SemVer) {\n    return version\n  }\n\n  if (typeof version === 'number') {\n    version = String(version)\n  }\n\n  if (typeof version !== 'string') {\n    return null\n  }\n\n  options = options || {}\n\n  let match = null\n  if (!options.rtl) {\n    match = version.match(options.includePrerelease ? re[t.COERCEFULL] : re[t.COERCE])\n  } else {\n    // Find the right-most coercible string that does not share\n    // a terminus with a more left-ward coercible string.\n    // Eg, '1.2.3.4' wants to coerce '2.3.4', not '3.4' or '4'\n    // With includePrerelease option set, '1.2.3.4-rc' wants to coerce '2.3.4-rc', not '2.3.4'\n    //\n    // Walk through the string checking with a /g regexp\n    // Manually set the index so as to pick up overlapping matches.\n    // Stop when we get a match that ends at the string end, since no\n    // coercible string can be more right-ward without the same terminus.\n    const coerceRtlRegex = options.includePrerelease ? re[t.COERCERTLFULL] : re[t.COERCERTL]\n    let next\n    while ((next = coerceRtlRegex.exec(version)) &&\n        (!match || match.index + match[0].length !== version.length)\n    ) {\n      if (!match ||\n            next.index + next[0].length !== match.index + match[0].length) {\n        match = next\n      }\n      coerceRtlRegex.lastIndex = next.index + next[1].length + next[2].length\n    }\n    // leave it in a clean state\n    coerceRtlRegex.lastIndex = -1\n  }\n\n  if (match === null) {\n    return null\n  }\n\n  const major = match[2]\n  const minor = match[3] || '0'\n  const patch = match[4] || '0'\n  const prerelease = options.includePrerelease && match[5] ? `-${match[5]}` : ''\n  const build = options.includePrerelease && match[6] ? `+${match[6]}` : ''\n\n  return parse(`${major}.${minor}.${patch}${prerelease}${build}`, options)\n}\nmodule.exports = coerce\n", "'use strict'\n\nconst parse = require('./parse')\nconst constants = require('../internal/constants')\nconst SemVer = require('../classes/semver')\n\nconst truncate = (version, truncation, options) => {\n  if (!constants.RELEASE_TYPES.includes(truncation)) {\n    return null\n  }\n\n  const clonedVersion = cloneInputVersion(version, options)\n  return clonedVersion && doTruncation(clonedVersion, truncation)\n}\n\nconst cloneInputVersion = (version, options) => {\n  const versionStringToParse = (\n    version instanceof SemVer ? version.version : version\n  )\n\n  return parse(versionStringToParse, options)\n}\n\nconst doTruncation = (version, truncation) => {\n  if (isPrerelease(truncation)) {\n    return version.version\n  }\n\n  version.prerelease = []\n\n  switch (truncation) {\n    case 'major':\n      version.minor = 0\n      version.patch = 0\n      break\n    case 'minor':\n      version.patch = 0\n      break\n  }\n\n  return version.format()\n}\n\nconst isPrerelease = (type) => {\n  return type.startsWith('pre')\n}\n\nmodule.exports = truncate\n", "'use strict'\n\nclass LRUCache {\n  constructor () {\n    this.max = 1000\n    this.map = new Map()\n  }\n\n  get (key) {\n    const value = this.map.get(key)\n    if (value === undefined) {\n      return undefined\n    } else {\n      // Remove the key from the map and add it to the end\n      this.map.delete(key)\n      this.map.set(key, value)\n      return value\n    }\n  }\n\n  delete (key) {\n    return this.map.delete(key)\n  }\n\n  set (key, value) {\n    const deleted = this.delete(key)\n\n    if (!deleted && value !== undefined) {\n      // If cache is full, delete the least recently used item\n      if (this.map.size >= this.max) {\n        const firstKey = this.map.keys().next().value\n        this.delete(firstKey)\n      }\n\n      this.map.set(key, value)\n    }\n\n    return this\n  }\n}\n\nmodule.exports = LRUCache\n", "'use strict'\n\nconst SPACE_CHARACTERS = /\\s+/g\n\n// hoisted class for cyclic dependency\nclass Range {\n  constructor (range, options) {\n    options = parseOptions(options)\n\n    if (range instanceof Range) {\n      if (\n        range.loose === !!options.loose &&\n        range.includePrerelease === !!options.includePrerelease\n      ) {\n        return range\n      } else {\n        return new Range(range.raw, options)\n      }\n    }\n\n    if (range instanceof Comparator) {\n      // just put it in the set and return\n      this.raw = range.value\n      this.set = [[range]]\n      this.formatted = undefined\n      return this\n    }\n\n    this.options = options\n    this.loose = !!options.loose\n    this.includePrerelease = !!options.includePrerelease\n\n    // First reduce all whitespace as much as possible so we do not have to rely\n    // on potentially slow regexes like \\s*. This is then stored and used for\n    // future error messages as well.\n    this.raw = range.trim().replace(SPACE_CHARACTERS, ' ')\n\n    // First, split on ||\n    this.set = this.raw\n      .split('||')\n      // map the range to a 2d array of comparators\n      .map(r => this.parseRange(r.trim()))\n      // throw out any comparator lists that are empty\n      // this generally means that it was not a valid range, which is allowed\n      // in loose mode, but will still throw if the WHOLE range is invalid.\n      .filter(c => c.length)\n\n    if (!this.set.length) {\n      throw new TypeError(`Invalid SemVer Range: ${this.raw}`)\n    }\n\n    // if we have any that are not the null set, throw out null sets.\n    if (this.set.length > 1) {\n      // keep the first one, in case they're all null sets\n      const first = this.set[0]\n      this.set = this.set.filter(c => !isNullSet(c[0]))\n      if (this.set.length === 0) {\n        this.set = [first]\n      } else if (this.set.length > 1) {\n        // if we have any that are *, then the range is just *\n        for (const c of this.set) {\n          if (c.length === 1 && isAny(c[0])) {\n            this.set = [c]\n            break\n          }\n        }\n      }\n    }\n\n    this.formatted = undefined\n  }\n\n  get range () {\n    if (this.formatted === undefined) {\n      this.formatted = ''\n      for (let i = 0; i < this.set.length; i++) {\n        if (i > 0) {\n          this.formatted += '||'\n        }\n        const comps = this.set[i]\n        for (let k = 0; k < comps.length; k++) {\n          if (k > 0) {\n            this.formatted += ' '\n          }\n          this.formatted += comps[k].toString().trim()\n        }\n      }\n    }\n    return this.formatted\n  }\n\n  format () {\n    return this.range\n  }\n\n  toString () {\n    return this.range\n  }\n\n  parseRange (range) {\n    // strip build metadata so it can't bleed into the version\n    range = range.replace(BUILDSTRIPRE, '')\n\n    // memoize range parsing for performance.\n    // this is a very hot path, and fully deterministic.\n    const memoOpts =\n      (this.options.includePrerelease && FLAG_INCLUDE_PRERELEASE) |\n      (this.options.loose && FLAG_LOOSE)\n    const memoKey = memoOpts + ':' + range\n    const cached = cache.get(memoKey)\n    if (cached) {\n      return cached\n    }\n\n    const loose = this.options.loose\n    // `1.2.3 - 1.2.4` => `>=1.2.3 <=1.2.4`\n    const hr = loose ? re[t.HYPHENRANGELOOSE] : re[t.HYPHENRANGE]\n    range = range.replace(hr, hyphenReplace(this.options.includePrerelease))\n    debug('hyphen replace', range)\n\n    // `> 1.2.3 < 1.2.5` => `>1.2.3 <1.2.5`\n    range = range.replace(re[t.COMPARATORTRIM], comparatorTrimReplace)\n    debug('comparator trim', range)\n\n    // `~ 1.2.3` => `~1.2.3`\n    range = range.replace(re[t.TILDETRIM], tildeTrimReplace)\n    debug('tilde trim', range)\n\n    // `^ 1.2.3` => `^1.2.3`\n    range = range.replace(re[t.CARETTRIM], caretTrimReplace)\n    debug('caret trim', range)\n\n    // At this point, the range is completely trimmed and\n    // ready to be split into comparators.\n\n    let rangeList = range\n      .split(' ')\n      .map(comp => parseComparator(comp, this.options))\n      .join(' ')\n      .split(/\\s+/)\n      // >=0.0.0 is equivalent to *\n      .map(comp => replaceGTE0(comp, this.options))\n\n    if (loose) {\n      // in loose mode, throw out any that are not valid comparators\n      rangeList = rangeList.filter(comp => {\n        debug('loose invalid filter', comp, this.options)\n        return !!comp.match(re[t.COMPARATORLOOSE])\n      })\n    }\n    debug('range list', rangeList)\n\n    // if any comparators are the null set, then replace with JUST null set\n    // if more than one comparator, remove any * comparators\n    // also, don't include the same comparator more than once\n    const rangeMap = new Map()\n    const comparators = rangeList.map(comp => new Comparator(comp, this.options))\n    for (const comp of comparators) {\n      if (isNullSet(comp)) {\n        return [comp]\n      }\n      rangeMap.set(comp.value, comp)\n    }\n    if (rangeMap.size > 1 && rangeMap.has('')) {\n      rangeMap.delete('')\n    }\n\n    const result = [...rangeMap.values()]\n    cache.set(memoKey, result)\n    return result\n  }\n\n  intersects (range, options) {\n    if (!(range instanceof Range)) {\n      throw new TypeError('a Range is required')\n    }\n\n    return this.set.some((thisComparators) => {\n      return (\n        isSatisfiable(thisComparators, options) &&\n        range.set.some((rangeComparators) => {\n          return (\n            isSatisfiable(rangeComparators, options) &&\n            thisComparators.every((thisComparator) => {\n              return rangeComparators.every((rangeComparator) => {\n                return thisComparator.intersects(rangeComparator, options)\n              })\n            })\n          )\n        })\n      )\n    })\n  }\n\n  // if ANY of the sets match ALL of its comparators, then pass\n  test (version) {\n    if (!version) {\n      return false\n    }\n\n    if (typeof version === 'string') {\n      try {\n        version = new SemVer(version, this.options)\n      } catch (er) {\n        return false\n      }\n    }\n\n    for (let i = 0; i < this.set.length; i++) {\n      if (testSet(this.set[i], version, this.options)) {\n        return true\n      }\n    }\n    return false\n  }\n}\n\nmodule.exports = Range\n\nconst LRU = require('../internal/lrucache')\nconst cache = new LRU()\n\nconst parseOptions = require('../internal/parse-options')\nconst Comparator = require('./comparator')\nconst debug = require('../internal/debug')\nconst SemVer = require('./semver')\nconst {\n  safeRe: re,\n  src,\n  t,\n  comparatorTrimReplace,\n  tildeTrimReplace,\n  caretTrimReplace,\n} = require('../internal/re')\nconst { FLAG_INCLUDE_PRERELEASE, FLAG_LOOSE } = require('../internal/constants')\n\n// unbounded global build-metadata stripper used by parseRange\nconst BUILDSTRIPRE = new RegExp(src[t.BUILD], 'g')\n\nconst isNullSet = c => c.value === '<0.0.0-0'\nconst isAny = c => c.value === ''\n\n// take a set of comparators and determine whether there\n// exists a version which can satisfy it\nconst isSatisfiable = (comparators, options) => {\n  let result = true\n  const remainingComparators = comparators.slice()\n  let testComparator = remainingComparators.pop()\n\n  while (result && remainingComparators.length) {\n    result = remainingComparators.every((otherComparator) => {\n      return testComparator.intersects(otherComparator, options)\n    })\n\n    testComparator = remainingComparators.pop()\n  }\n\n  return result\n}\n\n// comprised of xranges, tildes, stars, and gtlt's at this point.\n// already replaced the hyphen ranges\n// turn into a set of JUST comparators.\nconst parseComparator = (comp, options) => {\n  comp = comp.replace(re[t.BUILD], '')\n  debug('comp', comp, options)\n  comp = replaceCarets(comp, options)\n  debug('caret', comp)\n  comp = replaceTildes(comp, options)\n  debug('tildes', comp)\n  comp = replaceXRanges(comp, options)\n  debug('xrange', comp)\n  comp = replaceStars(comp, options)\n  debug('stars', comp)\n  return comp\n}\n\nconst isX = id => !id || id.toLowerCase() === 'x' || id === '*'\n\nconst invalidXRangeOrder = (M, m, p) => (\n  (isX(M) && !isX(m)) ||\n  (isX(m) && p && !isX(p))\n)\n\n// ~, ~> --> * (any, kinda silly)\n// ~2, ~2.x, ~2.x.x, ~>2, ~>2.x ~>2.x.x --> >=2.0.0 <3.0.0-0\n// ~2.0, ~2.0.x, ~>2.0, ~>2.0.x --> >=2.0.0 <2.1.0-0\n// ~1.2, ~1.2.x, ~>1.2, ~>1.2.x --> >=1.2.0 <1.3.0-0\n// ~1.2.3, ~>1.2.3 --> >=1.2.3 <1.3.0-0\n// ~1.2.0, ~>1.2.0 --> >=1.2.0 <1.3.0-0\n// ~0.0.1 --> >=0.0.1 <0.1.0-0\nconst replaceTildes = (comp, options) => {\n  return comp\n    .trim()\n    .split(/\\s+/)\n    .map((c) => replaceTilde(c, options))\n    .join(' ')\n}\n\nconst replaceTilde = (comp, options) => {\n  const r = options.loose ? re[t.TILDELOOSE] : re[t.TILDE]\n  // if we're including prereleases in the match, then the lower bound is\n  // -0, the lowest possible prerelease value, just like x-ranges and carets.\n  // this keeps `~1.2` equivalent to the `1.2.x` x-range it's documented as.\n  const z = options.includePrerelease ? '-0' : ''\n  return comp.replace(r, (_, M, m, p, pr) => {\n    debug('tilde', comp, _, M, m, p, pr)\n    let ret\n\n    if (isX(M)) {\n      ret = ''\n    } else if (isX(m)) {\n      ret = `>=${M}.0.0${z} <${+M + 1}.0.0-0`\n    } else if (isX(p)) {\n      // ~1.2 == >=1.2.0 <1.3.0-0\n      ret = `>=${M}.${m}.0${z} <${M}.${+m + 1}.0-0`\n    } else if (pr) {\n      debug('replaceTilde pr', pr)\n      ret = `>=${M}.${m}.${p}-${pr\n      } <${M}.${+m + 1}.0-0`\n    } else {\n      // ~1.2.3 == >=1.2.3 <1.3.0-0\n      ret = `>=${M}.${m}.${p\n      } <${M}.${+m + 1}.0-0`\n    }\n\n    debug('tilde return', ret)\n    return ret\n  })\n}\n\n// ^ --> * (any, kinda silly)\n// ^2, ^2.x, ^2.x.x --> >=2.0.0 <3.0.0-0\n// ^2.0, ^2.0.x --> >=2.0.0 <3.0.0-0\n// ^1.2, ^1.2.x --> >=1.2.0 <2.0.0-0\n// ^1.2.3 --> >=1.2.3 <2.0.0-0\n// ^1.2.0 --> >=1.2.0 <2.0.0-0\n// ^0.0.1 --> >=0.0.1 <0.0.2-0\n// ^0.1.0 --> >=0.1.0 <0.2.0-0\nconst replaceCarets = (comp, options) => {\n  return comp\n    .trim()\n    .split(/\\s+/)\n    .map((c) => replaceCaret(c, options))\n    .join(' ')\n}\n\nconst replaceCaret = (comp, options) => {\n  debug('caret', comp, options)\n  const r = options.loose ? re[t.CARETLOOSE] : re[t.CARET]\n  const z = options.includePrerelease ? '-0' : ''\n  return comp.replace(r, (_, M, m, p, pr) => {\n    debug('caret', comp, _, M, m, p, pr)\n    let ret\n\n    if (isX(M)) {\n      ret = ''\n    } else if (isX(m)) {\n      ret = `>=${M}.0.0${z} <${+M + 1}.0.0-0`\n    } else if (isX(p)) {\n      if (M === '0') {\n        ret = `>=${M}.${m}.0${z} <${M}.${+m + 1}.0-0`\n      } else {\n        ret = `>=${M}.${m}.0${z} <${+M + 1}.0.0-0`\n      }\n    } else if (pr) {\n      debug('replaceCaret pr', pr)\n      if (M === '0') {\n        if (m === '0') {\n          ret = `>=${M}.${m}.${p}-${pr\n          } <${M}.${m}.${+p + 1}-0`\n        } else {\n          ret = `>=${M}.${m}.${p}-${pr\n          } <${M}.${+m + 1}.0-0`\n        }\n      } else {\n        ret = `>=${M}.${m}.${p}-${pr\n        } <${+M + 1}.0.0-0`\n      }\n    } else {\n      debug('no pr')\n      if (M === '0') {\n        if (m === '0') {\n          ret = `>=${M}.${m}.${p\n          } <${M}.${m}.${+p + 1}-0`\n        } else {\n          ret = `>=${M}.${m}.${p\n          } <${M}.${+m + 1}.0-0`\n        }\n      } else {\n        ret = `>=${M}.${m}.${p\n        } <${+M + 1}.0.0-0`\n      }\n    }\n\n    debug('caret return', ret)\n    return ret\n  })\n}\n\nconst replaceXRanges = (comp, options) => {\n  debug('replaceXRanges', comp, options)\n  return comp\n    .split(/\\s+/)\n    .map((c) => replaceXRange(c, options))\n    .join(' ')\n}\n\nconst replaceXRange = (comp, options) => {\n  comp = comp.trim()\n  const r = options.loose ? re[t.XRANGELOOSE] : re[t.XRANGE]\n  return comp.replace(r, (ret, gtlt, M, m, p, pr) => {\n    debug('xRange', comp, ret, gtlt, M, m, p, pr)\n    if (invalidXRangeOrder(M, m, p)) {\n      return comp\n    }\n\n    const xM = isX(M)\n    const xm = xM || isX(m)\n    const xp = xm || isX(p)\n    const anyX = xp\n\n    if (gtlt === '=' && anyX) {\n      gtlt = ''\n    }\n\n    // if we're including prereleases in the match, then we need\n    // to fix this to -0, the lowest possible prerelease value\n    pr = options.includePrerelease ? '-0' : ''\n\n    if (xM) {\n      if (gtlt === '>' || gtlt === '<') {\n        // nothing is allowed\n        ret = '<0.0.0-0'\n      } else {\n        // nothing is forbidden\n        ret = '*'\n      }\n    } else if (gtlt && anyX) {\n      // we know patch is an x, because we have any x at all.\n      // replace X with 0\n      if (xm) {\n        m = 0\n      }\n      p = 0\n\n      if (gtlt === '>') {\n        // >1 => >=2.0.0\n        // >1.2 => >=1.3.0\n        gtlt = '>='\n        if (xm) {\n          M = +M + 1\n          m = 0\n          p = 0\n        } else {\n          m = +m + 1\n          p = 0\n        }\n      } else if (gtlt === '<=') {\n        // <=0.7.x is actually <0.8.0, since any 0.7.x should\n        // pass.  Similarly, <=7.x is actually <8.0.0, etc.\n        gtlt = '<'\n        if (xm) {\n          M = +M + 1\n        } else {\n          m = +m + 1\n        }\n      }\n\n      if (gtlt === '<') {\n        pr = '-0'\n      }\n\n      ret = `${gtlt + M}.${m}.${p}${pr}`\n    } else if (xm) {\n      ret = `>=${M}.0.0${pr} <${+M + 1}.0.0-0`\n    } else if (xp) {\n      ret = `>=${M}.${m}.0${pr\n      } <${M}.${+m + 1}.0-0`\n    }\n\n    debug('xRange return', ret)\n\n    return ret\n  })\n}\n\n// Because * is AND-ed with everything else in the comparator,\n// and '' means \"any version\", just remove the *s entirely.\nconst replaceStars = (comp, options) => {\n  debug('replaceStars', comp, options)\n  // Looseness is ignored here.  star is always as loose as it gets!\n  return comp\n    .trim()\n    .replace(re[t.STAR], '')\n}\n\nconst replaceGTE0 = (comp, options) => {\n  debug('replaceGTE0', comp, options)\n  return comp\n    .trim()\n    .replace(re[options.includePrerelease ? t.GTE0PRE : t.GTE0], '')\n}\n\n// This function is passed to string.replace(re[t.HYPHENRANGE])\n// M, m, patch, prerelease, build\n// 1.2 - 3.4.5 => >=1.2.0 <=3.4.5\n// 1.2.3 - 3.4 => >=1.2.0 <3.5.0-0 Any 3.4.x will do\n// 1.2 - 3.4 => >=1.2.0 <3.5.0-0\n// TODO build?\nconst hyphenReplace = incPr => ($0,\n  from, fM, fm, fp, fpr, fb,\n  to, tM, tm, tp, tpr) => {\n  if (isX(fM)) {\n    from = ''\n  } else if (isX(fm)) {\n    from = `>=${fM}.0.0${incPr ? '-0' : ''}`\n  } else if (isX(fp)) {\n    from = `>=${fM}.${fm}.0${incPr ? '-0' : ''}`\n  } else if (fpr) {\n    from = `>=${from}`\n  } else {\n    from = `>=${from}${incPr ? '-0' : ''}`\n  }\n\n  if (isX(tM)) {\n    to = ''\n  } else if (isX(tm)) {\n    to = `<${+tM + 1}.0.0-0`\n  } else if (isX(tp)) {\n    to = `<${tM}.${+tm + 1}.0-0`\n  } else if (tpr) {\n    to = `<=${tM}.${tm}.${tp}-${tpr}`\n  } else if (incPr) {\n    to = `<${tM}.${tm}.${+tp + 1}-0`\n  } else {\n    to = `<=${to}`\n  }\n\n  return `${from} ${to}`.trim()\n}\n\nconst testSet = (set, version, options) => {\n  for (let i = 0; i < set.length; i++) {\n    if (!set[i].test(version)) {\n      return false\n    }\n  }\n\n  if (version.prerelease.length && !options.includePrerelease) {\n    // Find the set of versions that are allowed to have prereleases\n    // For example, ^1.2.3-pr.1 desugars to >=1.2.3-pr.1 <2.0.0\n    // That should allow `1.2.3-pr.2` to pass.\n    // However, `1.2.4-alpha.notready` should NOT be allowed,\n    // even though it's within the range set by the comparators.\n    for (let i = 0; i < set.length; i++) {\n      debug(set[i].semver)\n      if (set[i].semver === Comparator.ANY) {\n        continue\n      }\n\n      if (set[i].semver.prerelease.length > 0) {\n        const allowed = set[i].semver\n        if (allowed.major === version.major &&\n            allowed.minor === version.minor &&\n            allowed.patch === version.patch) {\n          return true\n        }\n      }\n    }\n\n    // Version has a -pre, but it's not one of the ones we like.\n    return false\n  }\n\n  return true\n}\n", "'use strict'\n\nconst ANY = Symbol('SemVer ANY')\n// hoisted class for cyclic dependency\nclass Comparator {\n  static get ANY () {\n    return ANY\n  }\n\n  constructor (comp, options) {\n    options = parseOptions(options)\n\n    if (comp instanceof Comparator) {\n      if (comp.loose === !!options.loose) {\n        return comp\n      } else {\n        comp = comp.value\n      }\n    }\n\n    comp = comp.trim().split(/\\s+/).join(' ')\n    debug('comparator', comp, options)\n    this.options = options\n    this.loose = !!options.loose\n    this.parse(comp)\n\n    if (this.semver === ANY) {\n      this.value = ''\n    } else {\n      this.value = this.operator + this.semver.version\n    }\n\n    debug('comp', this)\n  }\n\n  parse (comp) {\n    const r = this.options.loose ? re[t.COMPARATORLOOSE] : re[t.COMPARATOR]\n    const m = comp.match(r)\n\n    if (!m) {\n      throw new TypeError(`Invalid comparator: ${comp}`)\n    }\n\n    this.operator = m[1] !== undefined ? m[1] : ''\n    if (this.operator === '=') {\n      this.operator = ''\n    }\n\n    // if it literally is just '>' or '' then allow anything.\n    if (!m[2]) {\n      this.semver = ANY\n    } else {\n      this.semver = new SemVer(m[2], this.options.loose)\n    }\n  }\n\n  toString () {\n    return this.value\n  }\n\n  test (version) {\n    debug('Comparator.test', version, this.options.loose)\n\n    if (this.semver === ANY || version === ANY) {\n      return true\n    }\n\n    if (typeof version === 'string') {\n      try {\n        version = new SemVer(version, this.options)\n      } catch (er) {\n        return false\n      }\n    }\n\n    return cmp(version, this.operator, this.semver, this.options)\n  }\n\n  intersects (comp, options) {\n    if (!(comp instanceof Comparator)) {\n      throw new TypeError('a Comparator is required')\n    }\n\n    if (this.operator === '') {\n      if (this.value === '') {\n        return true\n      }\n      return new Range(comp.value, options).test(this.value)\n    } else if (comp.operator === '') {\n      if (comp.value === '') {\n        return true\n      }\n      return new Range(this.value, options).test(comp.semver)\n    }\n\n    options = parseOptions(options)\n\n    // Special cases where nothing can possibly be lower\n    if (options.includePrerelease &&\n      (this.value === '<0.0.0-0' || comp.value === '<0.0.0-0')) {\n      return false\n    }\n    if (!options.includePrerelease &&\n      (this.value.startsWith('<0.0.0') || comp.value.startsWith('<0.0.0'))) {\n      return false\n    }\n\n    // Same direction increasing (> or >=)\n    if (this.operator.startsWith('>') && comp.operator.startsWith('>')) {\n      return true\n    }\n    // Same direction decreasing (< or <=)\n    if (this.operator.startsWith('<') && comp.operator.startsWith('<')) {\n      return true\n    }\n    // same SemVer and both sides are inclusive (<= or >=)\n    if (\n      (this.semver.version === comp.semver.version) &&\n      this.operator.includes('=') && comp.operator.includes('=')) {\n      return true\n    }\n    // opposite directions less than\n    if (cmp(this.semver, '<', comp.semver, options) &&\n      this.operator.startsWith('>') && comp.operator.startsWith('<')) {\n      return true\n    }\n    // opposite directions greater than\n    if (cmp(this.semver, '>', comp.semver, options) &&\n      this.operator.startsWith('<') && comp.operator.startsWith('>')) {\n      return true\n    }\n    return false\n  }\n}\n\nmodule.exports = Comparator\n\nconst parseOptions = require('../internal/parse-options')\nconst { safeRe: re, t } = require('../internal/re')\nconst cmp = require('../functions/cmp')\nconst debug = require('../internal/debug')\nconst SemVer = require('./semver')\nconst Range = require('./range')\n", "'use strict'\n\nconst Range = require('../classes/range')\nconst satisfies = (version, range, options) => {\n  try {\n    range = new Range(range, options)\n  } catch (er) {\n    return false\n  }\n  return range.test(version)\n}\nmodule.exports = satisfies\n", "'use strict'\n\nconst Range = require('../classes/range')\n\n// Mostly just for testing and legacy API reasons\nconst toComparators = (range, options) =>\n  new Range(range, options).set\n    .map(comp => comp.map(c => c.value).join(' ').trim().split(' '))\n\nmodule.exports = toComparators\n", "'use strict'\n\nconst SemVer = require('../classes/semver')\nconst Range = require('../classes/range')\n\nconst maxSatisfying = (versions, range, options) => {\n  let max = null\n  let maxSV = null\n  let rangeObj = null\n  try {\n    rangeObj = new Range(range, options)\n  } catch (er) {\n    return null\n  }\n  versions.forEach((v) => {\n    if (rangeObj.test(v)) {\n      // satisfies(v, range, options)\n      if (!max || maxSV.compare(v) === -1) {\n        // compare(max, v, true)\n        max = v\n        maxSV = new SemVer(max, options)\n      }\n    }\n  })\n  return max\n}\nmodule.exports = maxSatisfying\n", "'use strict'\n\nconst SemVer = require('../classes/semver')\nconst Range = require('../classes/range')\nconst minSatisfying = (versions, range, options) => {\n  let min = null\n  let minSV = null\n  let rangeObj = null\n  try {\n    rangeObj = new Range(range, options)\n  } catch (er) {\n    return null\n  }\n  versions.forEach((v) => {\n    if (rangeObj.test(v)) {\n      // satisfies(v, range, options)\n      if (!min || minSV.compare(v) === 1) {\n        // compare(min, v, true)\n        min = v\n        minSV = new SemVer(min, options)\n      }\n    }\n  })\n  return min\n}\nmodule.exports = minSatisfying\n", "'use strict'\n\nconst SemVer = require('../classes/semver')\nconst Range = require('../classes/range')\nconst gt = require('../functions/gt')\n\nconst minVersion = (range, loose) => {\n  range = new Range(range, loose)\n\n  let minver = new SemVer('0.0.0')\n  if (range.test(minver)) {\n    return minver\n  }\n\n  minver = new SemVer('0.0.0-0')\n  if (range.test(minver)) {\n    return minver\n  }\n\n  minver = null\n  for (let i = 0; i < range.set.length; ++i) {\n    const comparators = range.set[i]\n\n    let setMin = null\n    comparators.forEach((comparator) => {\n      // Clone to avoid manipulating the comparator's semver object.\n      const compver = new SemVer(comparator.semver.version)\n      switch (comparator.operator) {\n        case '>':\n          if (compver.prerelease.length === 0) {\n            compver.patch++\n          } else {\n            compver.prerelease.push(0)\n          }\n          compver.raw = compver.format()\n          /* fallthrough */\n        case '':\n        case '>=':\n          if (!setMin || gt(compver, setMin)) {\n            setMin = compver\n          }\n          break\n        case '<':\n        case '<=':\n          /* Ignore maximum versions */\n          break\n        /* istanbul ignore next */\n        default:\n          throw new Error(`Unexpected operation: ${comparator.operator}`)\n      }\n    })\n    if (setMin && (!minver || gt(minver, setMin))) {\n      minver = setMin\n    }\n  }\n\n  if (minver && range.test(minver)) {\n    return minver\n  }\n\n  return null\n}\nmodule.exports = minVersion\n", "'use strict'\n\nconst Range = require('../classes/range')\nconst validRange = (range, options) => {\n  try {\n    // Return '*' instead of '' so that truthiness works.\n    // This will throw if it's invalid anyway\n    return new Range(range, options).range || '*'\n  } catch (er) {\n    return null\n  }\n}\nmodule.exports = validRange\n", "'use strict'\n\nconst SemVer = require('../classes/semver')\nconst Comparator = require('../classes/comparator')\nconst { ANY } = Comparator\nconst Range = require('../classes/range')\nconst satisfies = require('../functions/satisfies')\nconst gt = require('../functions/gt')\nconst lt = require('../functions/lt')\nconst lte = require('../functions/lte')\nconst gte = require('../functions/gte')\n\nconst outside = (version, range, hilo, options) => {\n  version = new SemVer(version, options)\n  range = new Range(range, options)\n\n  let gtfn, ltefn, ltfn, comp, ecomp\n  switch (hilo) {\n    case '>':\n      gtfn = gt\n      ltefn = lte\n      ltfn = lt\n      comp = '>'\n      ecomp = '>='\n      break\n    case '<':\n      gtfn = lt\n      ltefn = gte\n      ltfn = gt\n      comp = '<'\n      ecomp = '<='\n      break\n    default:\n      throw new TypeError('Must provide a hilo val of \"<\" or \">\"')\n  }\n\n  // If it satisfies the range it is not outside\n  if (satisfies(version, range, options)) {\n    return false\n  }\n\n  // From now on, variable terms are as if we're in \"gtr\" mode.\n  // but note that everything is flipped for the \"ltr\" function.\n\n  for (let i = 0; i < range.set.length; ++i) {\n    const comparators = range.set[i]\n\n    let high = null\n    let low = null\n\n    comparators.forEach((comparator) => {\n      if (comparator.semver === ANY) {\n        comparator = new Comparator('>=0.0.0')\n      }\n      high = high || comparator\n      low = low || comparator\n      if (gtfn(comparator.semver, high.semver, options)) {\n        high = comparator\n      } else if (ltfn(comparator.semver, low.semver, options)) {\n        low = comparator\n      }\n    })\n\n    // If the edge version comparator has a operator then our version\n    // isn't outside it\n    if (high.operator === comp || high.operator === ecomp) {\n      return false\n    }\n\n    // If the lowest version comparator has an operator and our version\n    // is less than it then it isn't higher than the range\n    if ((!low.operator || low.operator === comp) &&\n        ltefn(version, low.semver)) {\n      return false\n    } else if (low.operator === ecomp && ltfn(version, low.semver)) {\n      return false\n    }\n  }\n  return true\n}\n\nmodule.exports = outside\n", "'use strict'\n\n// Determine if version is greater than all the versions possible in the range.\nconst outside = require('./outside')\nconst gtr = (version, range, options) => outside(version, range, '>', options)\nmodule.exports = gtr\n", "'use strict'\n\nconst outside = require('./outside')\n// Determine if version is less than all the versions possible in the range\nconst ltr = (version, range, options) => outside(version, range, '<', options)\nmodule.exports = ltr\n", "'use strict'\n\nconst Range = require('../classes/range')\nconst intersects = (r1, r2, options) => {\n  r1 = new Range(r1, options)\n  r2 = new Range(r2, options)\n  return r1.intersects(r2, options)\n}\nmodule.exports = intersects\n", "'use strict'\n\n// given a set of versions and a range, create a \"simplified\" range\n// that includes the same versions that the original range does\n// If the original range is shorter than the simplified one, return that.\nconst satisfies = require('../functions/satisfies.js')\nconst compare = require('../functions/compare.js')\nmodule.exports = (versions, range, options) => {\n  const set = []\n  let first = null\n  let prev = null\n  const v = versions.sort((a, b) => compare(a, b, options))\n  for (const version of v) {\n    const included = satisfies(version, range, options)\n    if (included) {\n      prev = version\n      if (!first) {\n        first = version\n      }\n    } else {\n      if (prev) {\n        set.push([first, prev])\n      }\n      prev = null\n      first = null\n    }\n  }\n  if (first) {\n    set.push([first, null])\n  }\n\n  const ranges = []\n  for (const [min, max] of set) {\n    if (min === max) {\n      ranges.push(min)\n    } else if (!max && min === v[0]) {\n      ranges.push('*')\n    } else if (!max) {\n      ranges.push(`>=${min}`)\n    } else if (min === v[0]) {\n      ranges.push(`<=${max}`)\n    } else {\n      ranges.push(`${min} - ${max}`)\n    }\n  }\n  const simplified = ranges.join(' || ')\n  const original = typeof range.raw === 'string' ? range.raw : String(range)\n  return simplified.length < original.length ? simplified : range\n}\n", "'use strict'\n\nconst Range = require('../classes/range.js')\nconst Comparator = require('../classes/comparator.js')\nconst { ANY } = Comparator\nconst satisfies = require('../functions/satisfies.js')\nconst compare = require('../functions/compare.js')\n\n// Complex range `r1 || r2 || ...` is a subset of `R1 || R2 || ...` iff:\n// - Every simple range `r1, r2, ...` is a null set, OR\n// - Every simple range `r1, r2, ...` which is not a null set is a subset of\n//   some `R1, R2, ...`\n//\n// Simple range `c1 c2 ...` is a subset of simple range `C1 C2 ...` iff:\n// - If c is only the ANY comparator\n//   - If C is only the ANY comparator, return true\n//   - Else if in prerelease mode, return false\n//   - else replace c with `[>=0.0.0]`\n// - If C is only the ANY comparator\n//   - if in prerelease mode, return true\n//   - else replace C with `[>=0.0.0]`\n// - Let EQ be the set of = comparators in c\n// - If EQ is more than one, return true (null set)\n// - Let GT be the highest > or >= comparator in c\n// - Let LT be the lowest < or <= comparator in c\n// - If GT and LT, and GT.semver > LT.semver, return true (null set)\n// - If any C is a = range, and GT or LT are set, return false\n// - If EQ\n//   - If GT, and EQ does not satisfy GT, return true (null set)\n//   - If LT, and EQ does not satisfy LT, return true (null set)\n//   - If EQ satisfies every C, return true\n//   - Else return false\n// - If GT\n//   - If GT.semver is lower than any > or >= comp in C, return false\n//   - If GT is >=, and GT.semver does not satisfy every C, return false\n//   - If GT.semver has a prerelease, and not in prerelease mode\n//     - If no C has a prerelease and the GT.semver tuple, return false\n// - If LT\n//   - If LT.semver is greater than any < or <= comp in C, return false\n//   - If LT is <=, and LT.semver does not satisfy every C, return false\n//   - If LT.semver has a prerelease, and not in prerelease mode\n//     - If no C has a prerelease and the LT.semver tuple, return false\n// - Else return true\n\nconst subset = (sub, dom, options = {}) => {\n  if (sub === dom) {\n    return true\n  }\n\n  sub = new Range(sub, options)\n  dom = new Range(dom, options)\n  let sawNonNull = false\n\n  OUTER: for (const simpleSub of sub.set) {\n    for (const simpleDom of dom.set) {\n      const isSub = simpleSubset(simpleSub, simpleDom, options)\n      sawNonNull = sawNonNull || isSub !== null\n      if (isSub) {\n        continue OUTER\n      }\n    }\n    // the null set is a subset of everything, but null simple ranges in\n    // a complex range should be ignored.  so if we saw a non-null range,\n    // then we know this isn't a subset, but if EVERY simple range was null,\n    // then it is a subset.\n    if (sawNonNull) {\n      return false\n    }\n  }\n  return true\n}\n\nconst minimumVersionWithPreRelease = [new Comparator('>=0.0.0-0')]\nconst minimumVersion = [new Comparator('>=0.0.0')]\n\nconst simpleSubset = (sub, dom, options) => {\n  if (sub === dom) {\n    return true\n  }\n\n  if (sub.length === 1 && sub[0].semver === ANY) {\n    if (dom.length === 1 && dom[0].semver === ANY) {\n      return true\n    } else if (options.includePrerelease) {\n      sub = minimumVersionWithPreRelease\n    } else {\n      sub = minimumVersion\n    }\n  }\n\n  if (dom.length === 1 && dom[0].semver === ANY) {\n    if (options.includePrerelease) {\n      return true\n    } else {\n      dom = minimumVersion\n    }\n  }\n\n  const eqSet = new Set()\n  let gt, lt\n  for (const c of sub) {\n    if (c.operator === '>' || c.operator === '>=') {\n      gt = higherGT(gt, c, options)\n    } else if (c.operator === '<' || c.operator === '<=') {\n      lt = lowerLT(lt, c, options)\n    } else {\n      eqSet.add(c.semver)\n    }\n  }\n\n  if (eqSet.size > 1) {\n    return null\n  }\n\n  let gtltComp\n  if (gt && lt) {\n    gtltComp = compare(gt.semver, lt.semver, options)\n    if (gtltComp > 0) {\n      return null\n    } else if (gtltComp === 0 && (gt.operator !== '>=' || lt.operator !== '<=')) {\n      return null\n    }\n  }\n\n  // will iterate one or zero times\n  for (const eq of eqSet) {\n    if (gt && !satisfies(eq, String(gt), options)) {\n      return null\n    }\n\n    if (lt && !satisfies(eq, String(lt), options)) {\n      return null\n    }\n\n    for (const c of dom) {\n      if (!satisfies(eq, String(c), options)) {\n        return false\n      }\n    }\n\n    return true\n  }\n\n  let higher, lower\n  let hasDomLT, hasDomGT\n  // if the subset has a prerelease, we need a comparator in the superset\n  // with the same tuple and a prerelease, or it's not a subset\n  let needDomLTPre = lt &&\n    !options.includePrerelease &&\n    lt.semver.prerelease.length ? lt.semver : false\n  let needDomGTPre = gt &&\n    !options.includePrerelease &&\n    gt.semver.prerelease.length ? gt.semver : false\n  // exception: <1.2.3-0 is the same as <1.2.3\n  if (needDomLTPre && needDomLTPre.prerelease.length === 1 &&\n      lt.operator === '<' && needDomLTPre.prerelease[0] === 0) {\n    needDomLTPre = false\n  }\n\n  for (const c of dom) {\n    hasDomGT = hasDomGT || c.operator === '>' || c.operator === '>='\n    hasDomLT = hasDomLT || c.operator === '<' || c.operator === '<='\n    if (gt) {\n      if (needDomGTPre) {\n        if (c.semver.prerelease && c.semver.prerelease.length &&\n            c.semver.major === needDomGTPre.major &&\n            c.semver.minor === needDomGTPre.minor &&\n            c.semver.patch === needDomGTPre.patch) {\n          needDomGTPre = false\n        }\n      }\n      if (c.operator === '>' || c.operator === '>=') {\n        higher = higherGT(gt, c, options)\n        if (higher === c && higher !== gt) {\n          return false\n        }\n      } else if (gt.operator === '>=' && !c.test(gt.semver)) {\n        return false\n      }\n    }\n    if (lt) {\n      if (needDomLTPre) {\n        if (c.semver.prerelease && c.semver.prerelease.length &&\n            c.semver.major === needDomLTPre.major &&\n            c.semver.minor === needDomLTPre.minor &&\n            c.semver.patch === needDomLTPre.patch) {\n          needDomLTPre = false\n        }\n      }\n      if (c.operator === '<' || c.operator === '<=') {\n        lower = lowerLT(lt, c, options)\n        if (lower === c && lower !== lt) {\n          return false\n        }\n      } else if (lt.operator === '<=' && !c.test(lt.semver)) {\n        return false\n      }\n    }\n    if (!c.operator && (lt || gt) && gtltComp !== 0) {\n      return false\n    }\n  }\n\n  // if there was a < or >, and nothing in the dom, then must be false\n  // UNLESS it was limited by another range in the other direction.\n  // Eg, >1.0.0 <1.0.1 is still a subset of <2.0.0\n  if (gt && hasDomLT && !lt && gtltComp !== 0) {\n    return false\n  }\n\n  if (lt && hasDomGT && !gt && gtltComp !== 0) {\n    return false\n  }\n\n  // we needed a prerelease range in a specific tuple, but didn't get one\n  // then this isn't a subset.  eg >=1.2.3-pre is not a subset of >=1.0.0,\n  // because it includes prereleases in the 1.2.3 tuple\n  if (needDomGTPre || needDomLTPre) {\n    return false\n  }\n\n  return true\n}\n\n// >=1.2.3 is lower than >1.2.3\nconst higherGT = (a, b, options) => {\n  if (!a) {\n    return b\n  }\n  const comp = compare(a.semver, b.semver, options)\n  return comp > 0 ? a\n    : comp < 0 ? b\n    : b.operator === '>' && a.operator === '>=' ? b\n    : a\n}\n\n// <=1.2.3 is higher than <1.2.3\nconst lowerLT = (a, b, options) => {\n  if (!a) {\n    return b\n  }\n  const comp = compare(a.semver, b.semver, options)\n  return comp < 0 ? a\n    : comp > 0 ? b\n    : b.operator === '<' && a.operator === '<=' ? b\n    : a\n}\n\nmodule.exports = subset\n", "'use strict'\n\n// just pre-load all the stuff that index.js lazily exports\nconst internalRe = require('./internal/re')\nconst constants = require('./internal/constants')\nconst SemVer = require('./classes/semver')\nconst identifiers = require('./internal/identifiers')\nconst parse = require('./functions/parse')\nconst valid = require('./functions/valid')\nconst clean = require('./functions/clean')\nconst inc = require('./functions/inc')\nconst diff = require('./functions/diff')\nconst major = require('./functions/major')\nconst minor = require('./functions/minor')\nconst patch = require('./functions/patch')\nconst prerelease = require('./functions/prerelease')\nconst compare = require('./functions/compare')\nconst rcompare = require('./functions/rcompare')\nconst compareLoose = require('./functions/compare-loose')\nconst compareBuild = require('./functions/compare-build')\nconst sort = require('./functions/sort')\nconst rsort = require('./functions/rsort')\nconst gt = require('./functions/gt')\nconst lt = require('./functions/lt')\nconst eq = require('./functions/eq')\nconst neq = require('./functions/neq')\nconst gte = require('./functions/gte')\nconst lte = require('./functions/lte')\nconst cmp = require('./functions/cmp')\nconst coerce = require('./functions/coerce')\nconst truncate = require('./functions/truncate')\nconst Comparator = require('./classes/comparator')\nconst Range = require('./classes/range')\nconst satisfies = require('./functions/satisfies')\nconst toComparators = require('./ranges/to-comparators')\nconst maxSatisfying = require('./ranges/max-satisfying')\nconst minSatisfying = require('./ranges/min-satisfying')\nconst minVersion = require('./ranges/min-version')\nconst validRange = require('./ranges/valid')\nconst outside = require('./ranges/outside')\nconst gtr = require('./ranges/gtr')\nconst ltr = require('./ranges/ltr')\nconst intersects = require('./ranges/intersects')\nconst simplifyRange = require('./ranges/simplify')\nconst subset = require('./ranges/subset')\nmodule.exports = {\n  parse,\n  valid,\n  clean,\n  inc,\n  diff,\n  major,\n  minor,\n  patch,\n  prerelease,\n  compare,\n  rcompare,\n  compareLoose,\n  compareBuild,\n  sort,\n  rsort,\n  gt,\n  lt,\n  eq,\n  neq,\n  gte,\n  lte,\n  cmp,\n  coerce,\n  truncate,\n  Comparator,\n  Range,\n  satisfies,\n  toComparators,\n  maxSatisfying,\n  minSatisfying,\n  minVersion,\n  validRange,\n  outside,\n  gtr,\n  ltr,\n  intersects,\n  simplifyRange,\n  subset,\n  SemVer,\n  re: internalRe.re,\n  src: internalRe.src,\n  tokens: internalRe.t,\n  SEMVER_SPEC_VERSION: constants.SEMVER_SPEC_VERSION,\n  RELEASE_TYPES: constants.RELEASE_TYPES,\n  compareIdentifiers: identifiers.compareIdentifiers,\n  rcompareIdentifiers: identifiers.rcompareIdentifiers,\n}\n", "{\n  \"name\": \"sharp\",\n  \"description\": \"High performance Node.js image processing, the fastest module to resize JPEG, PNG, WebP, GIF, AVIF and TIFF images\",\n  \"version\": \"0.35.4\",\n  \"author\": \"Lovell Fuller <npm@lovell.info>\",\n  \"homepage\": \"https://sharp.pixelplumbing.com\",\n  \"contributors\": [\n    \"Pierre Inglebert <pierre.inglebert@gmail.com>\",\n    \"Jonathan Ong <jonathanrichardong@gmail.com>\",\n    \"Chanon Sajjamanochai <chanon.s@gmail.com>\",\n    \"Juliano Julio <julianojulio@gmail.com>\",\n    \"Daniel Gasienica <daniel@gasienica.ch>\",\n    \"Julian Walker <julian@fiftythree.com>\",\n    \"Amit Pitaru <pitaru.amit@gmail.com>\",\n    \"Brandon Aaron <hello.brandon@aaron.sh>\",\n    \"Andreas Lind <andreas@one.com>\",\n    \"Maurus Cuelenaere <mcuelenaere@gmail.com>\",\n    \"Linus Unneb\u00E4ck <linus@folkdatorn.se>\",\n    \"Victor Mateevitsi <mvictoras@gmail.com>\",\n    \"Alaric Holloway <alaric.holloway@gmail.com>\",\n    \"Bernhard K. Weisshuhn <bkw@codingforce.com>\",\n    \"Chris Riley <criley@primedia.com>\",\n    \"David Carley <dacarley@gmail.com>\",\n    \"John Tobin <john@limelightmobileinc.com>\",\n    \"Kenton Gray <kentongray@gmail.com>\",\n    \"Felix B\u00FCnemann <Felix.Buenemann@gmail.com>\",\n    \"Samy Al Zahrani <samyalzahrany@gmail.com>\",\n    \"Chintan Thakkar <lemnisk8@gmail.com>\",\n    \"F. Orlando Galashan <frulo@gmx.de>\",\n    \"Kleis Auke Wolthuizen <info@kleisauke.nl>\",\n    \"Matt Hirsch <mhirsch@media.mit.edu>\",\n    \"Matthias Thoemmes <thoemmes@gmail.com>\",\n    \"Patrick Paskaris <patrick@paskaris.gr>\",\n    \"J\u00E9r\u00E9my Lal <kapouer@melix.org>\",\n    \"Rahul Nanwani <r.nanwani@gmail.com>\",\n    \"Alice Monday <alice0meta@gmail.com>\",\n    \"Kristo Jorgenson <kristo.jorgenson@gmail.com>\",\n    \"YvesBos <yves_bos@outlook.com>\",\n    \"Guy Maliar <guy@tailorbrands.com>\",\n    \"Nicolas Coden <nicolas@ncoden.fr>\",\n    \"Matt Parrish <matt.r.parrish@gmail.com>\",\n    \"Marcel Bretschneider <marcel.bretschneider@gmail.com>\",\n    \"Matthew McEachen <matthew+github@mceachen.org>\",\n    \"Jarda Kot\u011B\u0161ovec <jarda.kotesovec@gmail.com>\",\n    \"Kenric D'Souza <kenric.dsouza@gmail.com>\",\n    \"Oleh Aleinyk <oleg.aleynik@gmail.com>\",\n    \"Marcel Bretschneider <marcel.bretschneider@gmail.com>\",\n    \"Andrea Bianco <andrea.bianco@unibas.ch>\",\n    \"Rik Heywood <rik@rik.org>\",\n    \"Thomas Parisot <hi@oncletom.io>\",\n    \"Nathan Graves <nathanrgraves+github@gmail.com>\",\n    \"Tom Lokhorst <tom@lokhorst.eu>\",\n    \"Espen Hovlandsdal <espen@hovlandsdal.com>\",\n    \"Sylvain Dumont <sylvain.dumont35@gmail.com>\",\n    \"Alun Davies <alun.owain.davies@googlemail.com>\",\n    \"Aidan Hoolachan <ajhoolachan21@gmail.com>\",\n    \"Axel Eirola <axel.eirola@iki.fi>\",\n    \"Freezy <freezy@xbmc.org>\",\n    \"Daiz <taneli.vatanen@gmail.com>\",\n    \"Julian Aubourg <j@ubourg.net>\",\n    \"Keith Belovay <keith@picthrive.com>\",\n    \"Michael B. Klein <mbklein@gmail.com>\",\n    \"Jordan Prudhomme <jordan@raboland.fr>\",\n    \"Ilya Ovdin <iovdin@gmail.com>\",\n    \"Andargor <andargor@yahoo.com>\",\n    \"Paul Neave <paul.neave@gmail.com>\",\n    \"Brendan Kennedy <brenwken@gmail.com>\",\n    \"Brychan Bennett-Odlum <git@brychan.io>\",\n    \"Edward Silverton <e.silverton@gmail.com>\",\n    \"Roman Malieiev <aromaleev@gmail.com>\",\n    \"Tomas Szabo <tomas.szabo@deftomat.com>\",\n    \"Robert O'Rourke <robert@o-rourke.org>\",\n    \"Guillermo Alfonso Varela Chouci\u00F1o <guillevch@gmail.com>\",\n    \"Christian Flintrup <chr@gigahost.dk>\",\n    \"Manan Jadhav <manan@motionden.com>\",\n    \"Leon Radley <leon@radley.se>\",\n    \"alza54 <alza54@thiocod.in>\",\n    \"Jacob Smith <jacob@frende.me>\",\n    \"Michael Nutt <michael@nutt.im>\",\n    \"Brad Parham <baparham@gmail.com>\",\n    \"Taneli Vatanen <taneli.vatanen@gmail.com>\",\n    \"Joris Dugu\u00E9 <zaruike10@gmail.com>\",\n    \"Chris Banks <christopher.bradley.banks@gmail.com>\",\n    \"Ompal Singh <ompal.hitm09@gmail.com>\",\n    \"Brodan <christopher.hranj@gmail.com>\",\n    \"Ankur Parihar <ankur.github@gmail.com>\",\n    \"Brahim Ait elhaj <brahima@gmail.com>\",\n    \"Mart Jansink <m.jansink@gmail.com>\",\n    \"Lachlan Newman <lachnewman007@gmail.com>\",\n    \"Dennis Beatty <dennis@dcbeatty.com>\",\n    \"Ingvar Stepanyan <me@rreverser.com>\",\n    \"Don Denton <don@happycollision.com>\",\n    \"Dmytro Tiapukhin <cool.gegeg@gmail.com>\",\n    \"Florian Lefebvre <contact@florian-lefebvre.dev>\"\n  ],\n  \"scripts\": {\n    \"build\": \"node install/build.js\",\n    \"build:dist\": \"node scripts/build.mjs\",\n    \"clean\": \"rm -rf src/build/ test/fixtures/output.*\",\n    \"test\": \"npm run lint && npm run test-unit\",\n    \"lint\": \"npm run lint-cpp && npm run lint-js && npm run lint-types && npm run lint-publish\",\n    \"lint-cpp\": \"cpplint --quiet src/*.h src/*.cc\",\n    \"lint-js\": \"biome lint\",\n    \"lint-publish\": \"publint --strict\",\n    \"lint-types\": \"tsd --files ./test/types/sharp.test-d.{cts,mts}\",\n    \"test-leak\": \"./test/leak/leak.sh\",\n    \"test-unit\": \"node --experimental-test-coverage test/unit.mjs\",\n    \"package-from-local-build\": \"node npm/from-local-build.js\",\n    \"package-wasm-wrappers\": \"node npm/wasm-wrappers.js\",\n    \"package-release-notes\": \"node npm/release-notes.js\",\n    \"docs-build\": \"node docs/build.mjs\",\n    \"docs-serve\": \"cd docs && npm start\",\n    \"docs-publish\": \"cd docs && npm run build && npx firebase-tools deploy --project pixelplumbing --only hosting:pixelplumbing-sharp\"\n  },\n  \"type\": \"commonjs\",\n  \"files\": [\n    \"dist\",\n    \"install\",\n    \"lib/index.d.ts\",\n    \"src/*.{cc,h,gyp}\"\n  ],\n  \"main\": \"./dist/index.cjs\",\n  \"module\": \"./dist/index.mjs\",\n  \"types\": \"./dist/index.d.mts\",\n  \"exports\": {\n    \".\": {\n      \"import\": {\n        \"types\": \"./dist/index.d.mts\",\n        \"default\": \"./dist/index.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./dist/index.d.cts\",\n        \"default\": \"./dist/index.cjs\"\n      }\n    }\n  },\n  \"sideEffects\": true,\n  \"repository\": {\n    \"type\": \"git\",\n    \"url\": \"git+https://github.com/lovell/sharp.git\"\n  },\n  \"keywords\": [\n    \"jpeg\",\n    \"png\",\n    \"webp\",\n    \"avif\",\n    \"tiff\",\n    \"gif\",\n    \"svg\",\n    \"jp2\",\n    \"dzi\",\n    \"image\",\n    \"resize\",\n    \"thumbnail\",\n    \"crop\",\n    \"embed\",\n    \"libvips\",\n    \"vips\"\n  ],\n  \"dependencies\": {\n    \"@img/colour\": \"^1.1.0\",\n    \"detect-libc\": \"^2.1.2\",\n    \"semver\": \"^7.8.5\"\n  },\n  \"optionalDependencies\": {\n    \"@img/sharp-darwin-arm64\": \"0.35.4\",\n    \"@img/sharp-darwin-x64\": \"0.35.4\",\n    \"@img/sharp-freebsd-wasm32\": \"0.35.4\",\n    \"@img/sharp-libvips-darwin-arm64\": \"1.3.3\",\n    \"@img/sharp-libvips-darwin-x64\": \"1.3.3\",\n    \"@img/sharp-libvips-linux-arm\": \"1.3.3\",\n    \"@img/sharp-libvips-linux-arm64\": \"1.3.3\",\n    \"@img/sharp-libvips-linux-ppc64\": \"1.3.3\",\n    \"@img/sharp-libvips-linux-riscv64\": \"1.3.3\",\n    \"@img/sharp-libvips-linux-s390x\": \"1.3.3\",\n    \"@img/sharp-libvips-linux-x64\": \"1.3.3\",\n    \"@img/sharp-libvips-linuxmusl-arm64\": \"1.3.3\",\n    \"@img/sharp-libvips-linuxmusl-x64\": \"1.3.3\",\n    \"@img/sharp-linux-arm\": \"0.35.4\",\n    \"@img/sharp-linux-arm64\": \"0.35.4\",\n    \"@img/sharp-linux-ppc64\": \"0.35.4\",\n    \"@img/sharp-linux-riscv64\": \"0.35.4\",\n    \"@img/sharp-linux-s390x\": \"0.35.4\",\n    \"@img/sharp-linux-x64\": \"0.35.4\",\n    \"@img/sharp-linuxmusl-arm64\": \"0.35.4\",\n    \"@img/sharp-linuxmusl-x64\": \"0.35.4\",\n    \"@img/sharp-webcontainers-wasm32\": \"0.35.4\",\n    \"@img/sharp-win32-arm64\": \"0.35.4\",\n    \"@img/sharp-win32-ia32\": \"0.35.4\",\n    \"@img/sharp-win32-x64\": \"0.35.4\"\n  },\n  \"peerDependenciesMeta\": {\n    \"@types/node\": {\n      \"optional\": true\n    }\n  },\n  \"devDependencies\": {\n    \"@biomejs/biome\": \"^2.5.10\",\n    \"@cpplint/cli\": \"^0.1.0\",\n    \"@emnapi/runtime\": \"^1.11.3\",\n    \"@img/sharp-libvips-dev\": \"1.3.3\",\n    \"@img/sharp-libvips-dev-wasm32\": \"1.3.3\",\n    \"@img/sharp-libvips-win32-arm64\": \"1.3.3\",\n    \"@img/sharp-libvips-win32-ia32\": \"1.3.3\",\n    \"@img/sharp-libvips-win32-x64\": \"1.3.3\",\n    \"@types/node\": \"*\",\n    \"emnapi\": \"^1.11.3\",\n    \"exif-reader\": \"^2.0.3\",\n    \"yauzl\": \"^3.4.0\",\n    \"icc\": \"^4.0.0\",\n    \"node-addon-api\": \"^8.9.2\",\n    \"node-gyp\": \"^12.4.0\",\n    \"publint\": \"^0.3.24\",\n    \"tar-fs\": \"^3.1.3\",\n    \"tsd\": \"^0.33.0\"\n  },\n  \"license\": \"Apache-2.0\",\n  \"engines\": {\n    \"node\": \">=20.9.0\"\n  },\n  \"config\": {\n    \"libvips\": \">=8.18.6\"\n  },\n  \"funding\": {\n    \"url\": \"https://opencollective.com/libvips\"\n  }\n}\n", "/*!\n  Copyright 2013 Lovell Fuller and others.\n  SPDX-License-Identifier: Apache-2.0\n*/\n\nimport { spawnSync } from 'node:child_process';\nimport { createHash } from 'node:crypto';\nimport semver from 'semver';\nimport detectLibc from 'detect-libc';\nimport pkg from '../package.json' with { type: 'json' };\n\n/* node:coverage ignore next */\nconst minimumLibvipsVersionLabelled = process.env.npm_package_config_libvips || pkg.config.libvips;\nconst minimumLibvipsVersion = semver.coerce(minimumLibvipsVersionLabelled).version;\n\nconst prebuiltPlatforms = [\n  'darwin-arm64', 'darwin-x64',\n  'freebsd-arm64', 'freebsd-x64',\n  'linux-arm', 'linux-arm64', 'linux-ppc64', 'linux-riscv64', 'linux-s390x', 'linux-wasm32', 'linux-x64',\n  'linuxmusl-arm64', 'linuxmusl-x64',\n  'win32-arm64', 'win32-ia32', 'win32-x64'\n];\n\nconst spawnSyncOptions = {\n  encoding: 'utf8',\n  shell: true\n};\n\nconst log = (item) => {\n  if (item instanceof Error) {\n    console.error(`sharp: Installation error: ${item.message}`);\n  } else {\n    console.log(`sharp: ${item}`);\n  }\n};\n\n/* node:coverage disable */\n\nconst runtimeLibc = () => detectLibc.isNonGlibcLinuxSync() ? detectLibc.familySync() : '';\n\nconst runtimePlatformArch = () => `${process.platform}${runtimeLibc()}-${process.arch}`;\n\nconst buildPlatformArch = () => {\n  if (isEmscripten()) {\n    return 'wasm32';\n  }\n  const { npm_config_arch, npm_config_platform, npm_config_libc } = process.env;\n  const libc = typeof npm_config_libc === 'string' ? npm_config_libc : runtimeLibc();\n  return `${npm_config_platform || process.platform}${libc}-${npm_config_arch || process.arch}`;\n};\n\nconst buildSharpLibvipsIncludeDir = () => {\n  try {\n    return require(`@img/sharp-libvips-dev-${buildPlatformArch()}/include`);\n  } catch {\n    try {\n      return require('@img/sharp-libvips-dev/include');\n    } catch {}\n  }\n  return '';\n};\n\nconst buildSharpLibvipsCPlusPlusDir = () => {\n  try {\n    return require('@img/sharp-libvips-dev/cplusplus');\n  } catch {}\n  return '';\n};\n\nconst buildSharpLibvipsLibDir = () => {\n  try {\n    return require(`@img/sharp-libvips-dev-${buildPlatformArch()}/lib`);\n  } catch {\n    try {\n      return require(`@img/sharp-libvips-${buildPlatformArch()}/lib`);\n    } catch {}\n  }\n  return '';\n};\n\nconst isUnsupportedNodeRuntime = () => {\n  if (process.release?.name === 'node' && process.versions) {\n    if (!semver.satisfies(process.versions.node, pkg.engines.node)) {\n      return { found: process.versions.node, expected: pkg.engines.node };\n    }\n  }\n};\n\nconst isEmscripten = () => {\n  const { CC } = process.env;\n  return Boolean(CC?.endsWith('/emcc'));\n};\n\nconst isRosetta = () => {\n  if (process.platform === 'darwin' && process.arch === 'x64') {\n    const translated = spawnSync('sysctl sysctl.proc_translated', spawnSyncOptions).stdout;\n    return (translated || '').trim() === 'sysctl.proc_translated: 1';\n  }\n  return false;\n};\n\n/* node:coverage enable */\n\nconst sha512 = (s) => createHash('sha512').update(s).digest('hex');\n\nconst yarnLocator = () => {\n  try {\n    const identHash = sha512(`imgsharp-libvips-${buildPlatformArch()}`);\n    const npmVersion = semver.coerce(pkg.optionalDependencies[`@img/sharp-libvips-${buildPlatformArch()}`], {\n      includePrerelease: true\n    }).version;\n    return sha512(`${identHash}npm:${npmVersion}`).slice(0, 10);\n  } catch {}\n  return '';\n};\n\n/* node:coverage disable */\n\nconst spawnRebuild = () =>\n  spawnSync(`node-gyp rebuild --directory=src ${isEmscripten() ? '--nodedir=emscripten' : ''}`, {\n    ...spawnSyncOptions,\n    stdio: 'inherit'\n  }).status;\n\nconst globalLibvipsVersion = () => {\n  if (process.platform !== 'win32') {\n    const globalLibvipsVersion = spawnSync('pkg-config --modversion vips-cpp', {\n      ...spawnSyncOptions,\n      env: {\n        ...process.env,\n        PKG_CONFIG_PATH: pkgConfigPath()\n      }\n    }).stdout;\n    return (globalLibvipsVersion || '').trim();\n  } else {\n    return '';\n  }\n};\n\nconst getBrewPkgConfigPath = () => {\n  try {\n    const brewPrefix = (spawnSync('brew', ['--prefix'], { encoding: 'utf8' }).stdout || '').trim();\n    if (brewPrefix) {\n      return `${brewPrefix}/lib/pkgconfig`;\n    }\n  } catch (_err) {}\n  return undefined;\n};\n\nconst getPkgConfigPath = () => {\n  try {\n    const pkgConfigPath = (spawnSync('pkg-config', ['--variable', 'pc_path', 'pkg-config'], { encoding: 'utf8' }).stdout || '').trim();\n    if (pkgConfigPath) {\n      return pkgConfigPath;\n    }\n  } catch (_err) {}\n  return undefined;\n};\n\n/* node:coverage enable */\n\nconst pkgConfigPath = () => {\n  if (process.platform !== 'win32') {\n    return [\n      getBrewPkgConfigPath(),\n      getPkgConfigPath(),\n      process.env.PKG_CONFIG_PATH\n    ].filter(Boolean).join(':');\n  } else {\n    return '';\n  }\n};\n\nconst skipSearch = (status, reason, logger) => {\n  if (logger) {\n    logger(`Detected ${reason}, skipping search for globally-installed libvips`);\n  }\n  return status;\n};\n\nconst useGlobalLibvips = (logger) => {\n  if (Boolean(process.env.SHARP_IGNORE_GLOBAL_LIBVIPS) === true) {\n    return skipSearch(false, 'SHARP_IGNORE_GLOBAL_LIBVIPS', logger);\n  }\n  if (Boolean(process.env.SHARP_FORCE_GLOBAL_LIBVIPS) === true) {\n    return skipSearch(true, 'SHARP_FORCE_GLOBAL_LIBVIPS', logger);\n  }\n  /* node:coverage ignore next 3 */\n  if (isRosetta()) {\n    return skipSearch(false, 'Rosetta', logger);\n  }\n  const globalVipsVersion = globalLibvipsVersion();\n  /* node:coverage ignore next */\n  return !!globalVipsVersion && semver.gte(globalVipsVersion, minimumLibvipsVersion);\n};\n\nexport default {\n  minimumLibvipsVersion,\n  prebuiltPlatforms,\n  buildPlatformArch,\n  buildSharpLibvipsIncludeDir,\n  buildSharpLibvipsCPlusPlusDir,\n  buildSharpLibvipsLibDir,\n  isUnsupportedNodeRuntime,\n  runtimePlatformArch,\n  log,\n  yarnLocator,\n  spawnRebuild,\n  globalLibvipsVersion,\n  pkgConfigPath,\n  useGlobalLibvips\n};\n", "/*!\n  Copyright 2013 Lovell Fuller and others.\n  SPDX-License-Identifier: Apache-2.0\n*/\n\n// Inspects the runtime environment and exports the relevant sharp.node binary\n\nimport { createRequire } from \"node:module\"\nimport { familySync, versionSync } from \"detect-libc\";\n\nimport libvips from \"./libvips.mjs\";\nimport pkg from '../package.json' with { type: 'json' };\n\nconst require = createRequire(import.meta.url);\nconst { version } = pkg;\n\nconst { runtimePlatformArch, isUnsupportedNodeRuntime, prebuiltPlatforms, minimumLibvipsVersion } = libvips;\nconst runtimePlatform = runtimePlatformArch();\n\n/* node:coverage disable */\n\nlet sharp;\nconst errors = [];\ntry {\n  sharp = require(`../src/build/Release/sharp-${runtimePlatform}-${version}.node`);\n} catch (err) {\n  errors.push(err);\n}\nif (!sharp) {\n  try {\n    sharp = require(`../src/build/Release/sharp-wasm32-${version}.node`);\n  } catch (err) {\n    errors.push(err);\n  }\n}\nif (!sharp) {\n  try {\n    switch (runtimePlatform) {\n      case \"darwin-arm64\":\n        sharp = require(\"@img/sharp-darwin-arm64/sharp.node\");\n        break;\n      case \"darwin-x64\":\n        sharp = require(\"@img/sharp-darwin-x64/sharp.node\");\n        break;\n      case \"linux-arm\":\n        sharp = require(\"@img/sharp-linux-arm/sharp.node\");\n        break;\n      case \"linux-arm64\":\n        sharp = require(\"@img/sharp-linux-arm64/sharp.node\");\n        break;\n      case \"linux-ppc64\":\n        sharp = require(\"@img/sharp-linux-ppc64/sharp.node\");\n        break;\n      case \"linux-riscv64\":\n        sharp = require(\"@img/sharp-linux-riscv64/sharp.node\");\n        break;\n      case \"linux-s390x\":\n        sharp = require(\"@img/sharp-linux-s390x/sharp.node\");\n        break;\n      case \"linux-x64\":\n        sharp = require(\"@img/sharp-linux-x64/sharp.node\");\n        break;\n      case \"linuxmusl-arm64\":\n        sharp = require(\"@img/sharp-linuxmusl-arm64/sharp.node\");\n        break;\n      case \"linuxmusl-x64\":\n        sharp = require(\"@img/sharp-linuxmusl-x64/sharp.node\");\n        break;\n      case \"win32-arm64\":\n        sharp = require(\"@img/sharp-win32-arm64/sharp.node\");\n        break;\n      case \"win32-ia32\":\n        sharp = require(\"@img/sharp-win32-ia32/sharp.node\");\n        break;\n      case \"win32-x64\":\n        sharp = require(\"@img/sharp-win32-x64/sharp.node\");\n        break;\n      case \"freebsd-arm64\":\n      case \"freebsd-x64\":\n        sharp = require(\"@img/sharp-freebsd-wasm32/sharp.node\");\n        break;\n      case \"linux-wasm32\":\n        sharp = require(\"@img/sharp-webcontainers-wasm32/sharp.node\");\n        break;\n    }\n    if (sharp && [\"linux-x64\", \"linuxmusl-x64\"].includes(runtimePlatform) && !sharp._isUsingX64V2()) {\n      const err = new Error(\"Prebuilt binaries for Linux x64 require v2 microarchitecture\");\n      err.code = \"Unsupported CPU\";\n      errors.push(err);\n      sharp = null;\n    }\n    if (sharp && process.versions.electron && runtimePlatform.startsWith(\"linux\")) {\n      process.emitWarning(\n        \"Binaries provided by Electron for use on Linux may be incompatible with sharp - see https://sharp.pixelplumbing.com/install#electron-and-linux\",\n        { code: \"SharpElectronLinux\" }\n      );\n    }\n  } catch (err) {\n    errors.push(err);\n  }\n}\nif (!sharp) {\n  try {\n    sharp = require(\"@img/sharp-wasm32/sharp.node\");\n  } catch (err) {\n    errors.push(err);\n  }\n}\n\nif (!sharp) {\n  const [isLinux, isMacOs, isWindows] = [\"linux\", \"darwin\", \"win32\"].map((os) => runtimePlatform.startsWith(os));\n\n  const help = [`Could not load the \"sharp\" module using the ${runtimePlatform} runtime`];\n  errors.forEach((err) => {\n    if (!err.code.endsWith(\"MODULE_NOT_FOUND\")) {\n      help.push(`${err.code}: ${err.message}`);\n    }\n  });\n  const messages = errors.map((err) => err.message).join(\" \");\n  help.push(\"Possible solutions:\");\n  // Common error messages\n  if (isUnsupportedNodeRuntime()) {\n    const { found, expected } = isUnsupportedNodeRuntime();\n    help.push(\"- Please upgrade Node.js:\", `    Found ${found}`, `    Requires ${expected}`);\n  } else if (prebuiltPlatforms.includes(runtimePlatform)) {\n    const [os, cpu] = runtimePlatform.split(\"-\");\n    const libc = os.endsWith(\"musl\") ? \" --libc=musl\" : \"\";\n    help.push(\n      \"- Ensure optional dependencies can be installed:\",\n      \"    npm install --include=optional sharp\",\n      \"- Ensure your package manager supports multi-platform installation:\",\n      \"    See https://sharp.pixelplumbing.com/install#cross-platform\",\n      \"- Add platform-specific dependencies:\",\n      `    npm install --os=${os.replace(\"musl\", \"\")}${libc} --cpu=${cpu} sharp`,\n    );\n  } else {\n    help.push(\n      `- Manually install libvips >= ${minimumLibvipsVersion}`,\n      \"    See https://sharp.pixelplumbing.com/install#building-from-source\",\n      \"- Add WebAssembly-based dependencies:\",\n      \"    npm install sharp @img/sharp-wasm32\",\n    );\n  }\n  if (isLinux && /(symbol not found|CXXABI_)/i.test(messages)) {\n    try {\n      const { config } = require(`@img/sharp-libvips-${runtimePlatform}/package`);\n      const libcFound = `${familySync()} ${versionSync()}`;\n      const libcRequires = `${config.musl ? \"musl\" : \"glibc\"} ${config.musl || config.glibc}`;\n      help.push(\"- Update your OS:\", `    Found ${libcFound}`, `    Requires ${libcRequires}`);\n    } catch (_errEngines) {}\n  }\n  if (isLinux && /\\/snap\\/core[0-9]{2}/.test(messages)) {\n    help.push(\"- Remove the Node.js Snap, which does not support native modules\", \"    snap remove node\");\n  }\n  if (isMacOs && /Incompatible library version/.test(messages)) {\n    help.push(\"- Update Homebrew:\", \"    brew update && brew upgrade vips\");\n  }\n  if (errors.some((err) => err.code === \"ERR_DLOPEN_DISABLED\")) {\n    help.push(\"- Run Node.js without using the --no-addons flag\");\n  }\n  // Link to installation docs\n  if (isWindows && /The specified procedure could not be found/.test(messages)) {\n    help.push(\n      \"- Using the canvas package on Windows?\",\n      \"    See https://sharp.pixelplumbing.com/install#canvas-and-windows\",\n      \"- Check for outdated versions of sharp in the dependency tree:\",\n      \"    npm ls sharp\",\n    );\n  }\n  help.push(\"- Consult the installation documentation:\", \"    See https://sharp.pixelplumbing.com/install\");\n  throw new Error(help.join(\"\\n\"));\n}\n\nexport default sharp;\n", "/*!\n  Copyright 2013 Lovell Fuller and others.\n  SPDX-License-Identifier: Apache-2.0\n*/\n\nimport util from 'node:util';\nimport stream from 'node:stream';\nimport is from './is.mjs';\n\nimport './sharp.mjs';\n\n// Use NODE_DEBUG=sharp to enable libvips warnings\nconst debuglog = util.debuglog('sharp');\n\nconst queueListener = (queueLength) => {\n  Sharp.queue.emit('change', queueLength);\n};\n\n/**\n * Constructor factory to create an instance of `sharp`, to which further methods are chained.\n *\n * JPEG, PNG, WebP, GIF, AVIF or TIFF format image data can be streamed out from this object.\n * When using Stream based output, derived attributes are available from the `info` event.\n *\n * Non-critical problems encountered during processing are emitted as `warning` events.\n *\n * Implements the [stream.Duplex](http://nodejs.org/api/stream.html#stream_class_stream_duplex) class.\n *\n * When loading more than one page/frame of an animated image,\n * these are combined as a vertically-stacked \"toilet roll\" image\n * where the overall height is the `pageHeight` multiplied by the number of `pages`.\n *\n * @constructs Sharp\n *\n * @emits Sharp#info\n * @emits Sharp#warning\n *\n * @example\n * sharp('input.jpg')\n *   .resize(300, 200)\n *   .toFile('output.jpg', function(err) {\n *     // output.jpg is a 300 pixels wide and 200 pixels high image\n *     // containing a scaled and cropped version of input.jpg\n *   });\n *\n * @example\n * // Read image data from remote URL,\n * // resize to 300 pixels wide,\n * // emit an 'info' event with calculated dimensions\n * // and finally write image data to writableStream\n * const { body } = await fetch('https://...');\n * const readableStream = Readable.fromWeb(body);\n * const transformer = sharp()\n *   .resize(300)\n *   .on('info', ({ height }) => {\n *     console.log(`Image height is ${height}`);\n *   });\n * readableStream.pipe(transformer).pipe(writableStream);\n *\n * @example\n * // Web Streams API, requires Node.js >= 24.15.0\n * import { Duplex } from 'node:stream';\n *\n * const { body } = await fetch('https://...');\n * const transformer = Duplex.toWeb(\n *   sharp().resize(300),\n *   { readableType: 'bytes' }\n * );\n * body.pipeThrough(transformer).pipeTo(writable);\n *\n * @example\n * // Create a blank 300x200 PNG image of semi-translucent red pixels\n * sharp({\n *   create: {\n *     width: 300,\n *     height: 200,\n *     channels: 4,\n *     background: { r: 255, g: 0, b: 0, alpha: 0.5 }\n *   }\n * })\n * .png()\n * .toBuffer()\n * .then( ... );\n *\n * @example\n * // Convert an animated GIF to an animated WebP\n * await sharp('in.gif', { animated: true }).toFile('out.webp');\n *\n * @example\n * // Read a raw array of pixels and save it to a png\n * const input = Uint8Array.from([255, 255, 255, 0, 0, 0]); // or Uint8ClampedArray\n * const image = sharp(input, {\n *   // because the input does not contain its dimensions or how many channels it has\n *   // we need to specify it in the constructor options\n *   raw: {\n *     width: 2,\n *     height: 1,\n *     channels: 3\n *   }\n * });\n * await image.toFile('my-two-pixels.png');\n *\n * @example\n * // Generate RGB Gaussian noise\n * await sharp({\n *   create: {\n *     width: 300,\n *     height: 200,\n *     channels: 3,\n *     noise: {\n *       type: 'gaussian',\n *       mean: 128,\n *       sigma: 30\n *     }\n *  }\n * }).toFile('noise.png');\n *\n * @example\n * // Generate an image from text\n * await sharp({\n *   text: {\n *     text: 'Hello, world!',\n *     width: 400, // max width\n *     height: 300 // max height\n *   }\n * }).toFile('text_bw.png');\n *\n * @example\n * // Generate an rgba image from text using pango markup and font\n * await sharp({\n *   text: {\n *     text: '<span foreground=\"red\">Red!</span><span background=\"cyan\">blue</span>',\n *     font: 'sans',\n *     rgba: true,\n *     dpi: 300\n *   }\n * }).toFile('text_rgba.png');\n *\n * @example\n * // Join four input images as a 2x2 grid with a 4 pixel gutter\n * const data = await sharp(\n *  [image1, image2, image3, image4],\n *  { join: { across: 2, shim: 4 } }\n * ).toBuffer();\n *\n * @example\n * // Generate a two-frame animated image from emoji\n * const images = ['\uD83D\uDE00', '\uD83D\uDE1B'].map(text => ({\n *   text: { text, width: 64, height: 64, channels: 4, rgba: true }\n * }));\n * await sharp(images, { join: { animated: true } }).toFile('out.gif');\n *\n * @param {(Buffer|ArrayBuffer|Uint8Array|Uint8ClampedArray|Int8Array|Uint16Array|Int16Array|Uint32Array|Int32Array|Float32Array|Float64Array|string|Array)} [input] - if present, can be\n *  a Buffer / ArrayBuffer / Uint8Array / Uint8ClampedArray containing JPEG, PNG, WebP, AVIF, GIF, SVG or TIFF image data, or\n *  a TypedArray containing raw pixel image data, or\n *  a String containing the filesystem path to an JPEG, PNG, WebP, AVIF, GIF, SVG or TIFF image file.\n *  An array of inputs can be provided, and these will be joined together.\n *  JPEG, PNG, WebP, AVIF, GIF, SVG, TIFF or raw pixel image data can be streamed into the object when not present.\n * @param {Object} [options] - if present, is an Object with optional attributes.\n * @param {string} [options.failOn='warning'] - When to abort processing of invalid pixel data, one of (in order of sensitivity, least to most): 'none', 'truncated', 'error', 'warning'. Higher levels imply lower levels. Invalid metadata will always abort. Use the default 'warning' level with untrusted input.\n * @param {number|boolean} [options.limitInputPixels=268402689] - Do not process input images where the number of pixels\n *  (width x height) exceeds this limit. Assumes image dimensions contained in the input metadata can be trusted.\n *  An integral Number of pixels, zero or false to remove limit, true to use default limit of 268402689 (0x3FFF x 0x3FFF).\n * @param {number|boolean} [options.limitInputChannels=5] - Do not process input images where the number of channels exceeds this limit. Assumes image metadata can be trusted.\n *  An integral Number of channels, zero or false to remove limit, true to use default limit of 5.\n * @param {boolean} [options.unlimited=false] - Set this to `true` to remove safety features that help prevent memory exhaustion (JPEG, PNG, SVG, HEIF).\n * @param {boolean} [options.autoOrient=false] - Set this to `true` to rotate/flip the image to match EXIF `Orientation`, if any.\n * @param {boolean} [options.sequentialRead=true] - Set this to `false` to use random access rather than sequential read. Some operations will do this automatically.\n * @param {number} [options.density=72] - The DPI at which to render SVG and PDF images, in the range 1 to 100000.\n * @param {number} [options.ignoreIcc=false] - should the embedded ICC profile, if any, be ignored.\n * @param {number} [options.pages=1] - Number of pages to extract for multi-page input (GIF, WebP, TIFF), use -1 for all pages.\n * @param {number} [options.page=0] - Page number to start extracting from for multi-page input (GIF, WebP, TIFF), zero based.\n * @param {boolean} [options.animated=false] - Set to `true` to read all frames/pages of an animated image (GIF, WebP, TIFF), equivalent of setting `pages` to `-1`.\n * @param {Object} [options.raw] - describes raw pixel input image data. See `raw()` for pixel ordering.\n * @param {number} [options.raw.width] - integral number of pixels wide.\n * @param {number} [options.raw.height] - integral number of pixels high.\n * @param {number} [options.raw.channels] - integral number of channels, between 1 and 4.\n * @param {boolean} [options.raw.premultiplied] - specifies that the raw input has already been premultiplied, set to `true`\n *  to avoid sharp premultiplying the image. (optional, default `false`)\n * @param {number} [options.raw.pageHeight] - The pixel height of each page/frame for animated images, must be an integral factor of `raw.height`.\n * @param {Object} [options.create] - describes a new image to be created.\n * @param {number} [options.create.width] - integral number of pixels wide.\n * @param {number} [options.create.height] - integral number of pixels high.\n * @param {number} [options.create.channels] - integral number of channels, either 3 (RGB) or 4 (RGBA).\n * @param {string|Object} [options.create.background] - parsed by the [color](https://www.npmjs.org/package/color) module to extract values for red, green, blue and alpha.\n * @param {number} [options.create.pageHeight] - The pixel height of each page/frame for animated images, must be an integral factor of `create.height`.\n * @param {Object} [options.create.noise] - describes a noise to be created.\n * @param {string} [options.create.noise.type] - type of generated noise, currently only `gaussian` is supported.\n * @param {number} [options.create.noise.mean=128] - Mean value of pixels in the generated noise.\n * @param {number} [options.create.noise.sigma=30] - Standard deviation of pixel values in the generated noise.\n * @param {Object} [options.text] - describes a new text image to be created.\n * @param {string} [options.text.text] - text to render as a UTF-8 string. It can contain Pango markup, for example `<i>Le</i>Monde`.\n * @param {string} [options.text.font] - font name to render with.\n * @param {string} [options.text.fontfile] - absolute filesystem path to a font file that can be used by `font`.\n * @param {number} [options.text.width=0] - Integral number of pixels to word-wrap at. Lines of text wider than this will be broken at word boundaries.\n * @param {number} [options.text.height=0] - Maximum integral number of pixels high. When defined, `dpi` will be ignored and the text will automatically fit the pixel resolution defined by `width` and `height`. Will be ignored if `width` is not specified or set to 0.\n * @param {string} [options.text.align='left'] - Alignment style for multi-line text (`'left'`, `'centre'`, `'center'`, `'right'`).\n * @param {boolean} [options.text.justify=false] - set this to true to apply justification to the text.\n * @param {number} [options.text.dpi=72] - the resolution (size) at which to render the text. Does not take effect if `height` is specified.\n * @param {boolean} [options.text.rgba=false] - set this to true to enable RGBA output. This is useful for colour emoji rendering, or support for pango markup features like `<span foreground=\"red\">Red!</span>`.\n * @param {number} [options.text.spacing=0] - text line height in points. Will use the font line height if none is specified.\n * @param {string} [options.text.wrap='word'] - word wrapping style when width is provided, one of: 'word', 'char', 'word-char' (prefer word, fallback to char) or 'none'.\n * @param {Object} [options.join] - describes how an array of input images should be joined.\n * @param {number} [options.join.across=1] - number of images to join horizontally.\n * @param {boolean} [options.join.animated=false] - set this to `true` to join the images as an animated image.\n * @param {number} [options.join.shim=0] - number of pixels to insert between joined images.\n * @param {string|Object} [options.join.background] - parsed by the [color](https://www.npmjs.org/package/color) module to extract values for red, green, blue and alpha.\n * @param {string} [options.join.halign='left'] - horizontal alignment style for images joined horizontally (`'left'`, `'centre'`, `'center'`, `'right'`).\n * @param {string} [options.join.valign='top'] - vertical alignment style for images joined vertically (`'top'`, `'centre'`, `'center'`, `'bottom'`).\n * @param {Object} [options.tiff] - Describes TIFF specific options.\n * @param {number} [options.tiff.subifd=-1] - Sub Image File Directory to extract for OME-TIFF, defaults to main image.\n * @param {Object} [options.svg] - Describes SVG specific options.\n * @param {string} [options.svg.stylesheet] - Custom CSS for SVG input, applied with a User Origin during the CSS cascade.\n * @param {boolean} [options.svg.highBitdepth=false] - Set to `true` to render SVG input at 32-bits per channel (128-bit) instead of 8-bits per channel (32-bit) RGBA.\n * @param {Object} [options.pdf] - Describes PDF specific options. Requires the use of a globally-installed libvips compiled with support for PDFium, Poppler, ImageMagick or GraphicsMagick.\n * @param {string|Object} [options.pdf.background] - Background colour to use when PDF is partially transparent. Parsed by the [color](https://www.npmjs.org/package/color) module to extract values for red, green, blue and alpha.\n * @param {Object} [options.openSlide] - Describes OpenSlide specific options. Requires the use of a globally-installed libvips compiled with support for OpenSlide.\n * @param {number} [options.openSlide.level=0] - Level to extract from a multi-level input, zero based.\n * @param {Object} [options.jp2] - Describes JPEG 2000 specific options. Requires the use of a globally-installed libvips compiled with support for OpenJPEG.\n * @param {boolean} [options.jp2.oneshot=false] - Set to `true` to decode tiled JPEG 2000 images in a single operation, improving compatibility.\n * @returns {Sharp}\n * @throws {Error} Invalid parameters\n */\nconst Sharp = function (input, options) {\n  // biome-ignore lint/complexity/noArguments: constructor factory\n  if (arguments.length === 1 && !is.defined(input)) {\n    throw new Error('Invalid input');\n  }\n  if (!(this instanceof Sharp)) {\n    return new Sharp(input, options);\n  }\n  stream.Duplex.call(this);\n  this.options = {\n    // resize options\n    topOffsetPre: -1,\n    leftOffsetPre: -1,\n    widthPre: -1,\n    heightPre: -1,\n    topOffsetPost: -1,\n    leftOffsetPost: -1,\n    widthPost: -1,\n    heightPost: -1,\n    width: -1,\n    height: -1,\n    canvas: 'crop',\n    position: 0,\n    resizeBackground: [0, 0, 0, 255],\n    angle: 0,\n    rotationAngle: 0,\n    rotationBackground: [0, 0, 0, 255],\n    rotateBefore: false,\n    orientBefore: false,\n    flip: false,\n    flop: false,\n    extendTop: 0,\n    extendBottom: 0,\n    extendLeft: 0,\n    extendRight: 0,\n    extendBackground: [0, 0, 0, 255],\n    extendWith: 'background',\n    withoutEnlargement: false,\n    withoutReduction: false,\n    affineMatrix: [],\n    affineBackground: [0, 0, 0, 255],\n    affineIdx: 0,\n    affineIdy: 0,\n    affineOdx: 0,\n    affineOdy: 0,\n    affineInterpolator: this.constructor.interpolators.bilinear,\n    kernel: 'lanczos3',\n    fastShrinkOnLoad: true,\n    // operations\n    tint: [-1, 0, 0, 0],\n    flatten: false,\n    flattenBackground: [0, 0, 0],\n    unflatten: false,\n    negate: false,\n    negateAlpha: true,\n    medianSize: 0,\n    blurSigma: 0,\n    precision: 'integer',\n    minAmpl: 0.2,\n    sharpenSigma: 0,\n    sharpenM1: 1,\n    sharpenM2: 2,\n    sharpenX1: 2,\n    sharpenY2: 10,\n    sharpenY3: 20,\n    threshold: 0,\n    thresholdGrayscale: true,\n    trimBackground: [],\n    trimThreshold: -1,\n    trimLineArt: false,\n    trimMargin: 0,\n    dilateWidth: 0,\n    erodeWidth: 0,\n    gamma: 0,\n    gammaOut: 0,\n    greyscale: false,\n    normalise: false,\n    normaliseLower: 1,\n    normaliseUpper: 99,\n    claheWidth: 0,\n    claheHeight: 0,\n    claheMaxSlope: 3,\n    brightness: 1,\n    saturation: 1,\n    hue: 0,\n    lightness: 0,\n    booleanBufferIn: null,\n    booleanFileIn: '',\n    joinChannelIn: [],\n    extractChannel: -1,\n    removeAlpha: false,\n    ensureAlpha: -1,\n    colourspace: 'srgb',\n    colourspacePipeline: 'last',\n    composite: [],\n    // output\n    fileOut: '',\n    formatOut: 'input',\n    streamOut: false,\n    typedArrayOut: false,\n    keepMetadata: 0,\n    withMetadataOrientation: -1,\n    withMetadataDensity: 0,\n    withIccProfile: '',\n    withExif: {},\n    withExifMerge: true,\n    withXmp: '',\n    keepGainMap: false,\n    withGainMap: false,\n    resolveWithObject: false,\n    loop: -1,\n    delay: [],\n    // output format\n    jpegQuality: 80,\n    jpegProgressive: false,\n    jpegChromaSubsampling: '4:2:0',\n    jpegTrellisQuantisation: false,\n    jpegOvershootDeringing: false,\n    jpegOptimiseScans: false,\n    jpegOptimiseCoding: true,\n    jpegQuantisationTable: 0,\n    pngProgressive: false,\n    pngCompressionLevel: 6,\n    pngAdaptiveFiltering: false,\n    pngPalette: false,\n    pngQuality: 100,\n    pngEffort: 7,\n    pngBitdepth: 8,\n    pngDither: 1,\n    jp2Quality: 80,\n    jp2TileHeight: 512,\n    jp2TileWidth: 512,\n    jp2Lossless: false,\n    jp2ChromaSubsampling: '4:4:4',\n    webpQuality: 80,\n    webpAlphaQuality: 100,\n    webpLossless: false,\n    webpNearLossless: false,\n    webpSmartSubsample: false,\n    webpSmartDeblock: false,\n    webpPreset: 'default',\n    webpEffort: 4,\n    webpMinSize: false,\n    webpMixed: false,\n    webpExact: false,\n    gifBitdepth: 8,\n    gifEffort: 7,\n    gifDither: 1,\n    gifInterFrameMaxError: 0,\n    gifInterPaletteMaxError: 3,\n    gifKeepDuplicateFrames: false,\n    gifReuse: true,\n    gifProgressive: false,\n    tiffQuality: 80,\n    tiffCompression: 'jpeg',\n    tiffBigtiff: false,\n    tiffPredictor: 'horizontal',\n    tiffPyramid: false,\n    tiffMiniswhite: false,\n    tiffBitdepth: 0,\n    tiffTile: false,\n    tiffTileHeight: 256,\n    tiffTileWidth: 256,\n    tiffXres: 1.0,\n    tiffYres: 1.0,\n    tiffResolutionUnit: 'inch',\n    heifQuality: 50,\n    heifLossless: false,\n    heifCompression: 'av1',\n    heifEffort: 4,\n    heifChromaSubsampling: '4:4:4',\n    heifBitdepth: 8,\n    heifTune: 'auto',\n    jxlDistance: 1,\n    jxlDecodingTier: 0,\n    jxlEffort: 7,\n    jxlLossless: false,\n    rawDepth: 'uchar',\n    tileSize: 256,\n    tileOverlap: 0,\n    tileContainer: 'fs',\n    tileLayout: 'dz',\n    tileFormat: 'last',\n    tileDepth: 'last',\n    tileAngle: 0,\n    tileSkipBlanks: -1,\n    tileBackground: [255, 255, 255, 255],\n    tileCentre: false,\n    tileId: 'https://example.com/iiif',\n    tileBasename: '',\n    timeoutSeconds: 0,\n    linearA: [],\n    linearB: [],\n    pdfBackground: [255, 255, 255, 255],\n    // Function to notify of libvips warnings\n    debuglog: warning => {\n      this.emit('warning', warning);\n      debuglog(warning);\n    },\n    // Function to notify of queue length changes\n    queueListener\n  };\n  this.options.input = this._createInputDescriptor(input, options, { allowStream: true });\n  return this;\n};\nObject.setPrototypeOf(Sharp.prototype, stream.Duplex.prototype);\nObject.setPrototypeOf(Sharp, stream.Duplex);\n\n/**\n * Take a \"snapshot\" of the Sharp instance, returning a new instance.\n * Cloned instances inherit the input of their parent instance.\n * This allows multiple output Streams and therefore multiple processing pipelines to share a single input Stream.\n *\n * @example\n * // firstWritableStream receives auto-rotated, resized readableStream\n * // secondWritableStream receives auto-rotated, extracted region of readableStream\n *\n * const pipeline = sharp().rotate();\n * pipeline\n *   .clone()\n *   .resize(800, 600)\n *   .pipe(firstWritableStream);\n * pipeline\n *   .clone()\n *   .extract({ left: 20, top: 20, width: 100, height: 100 })\n *   .pipe(secondWritableStream);\n * readableStream.pipe(pipeline);\n *\n * @example\n * // Create a pipeline that will download an image, resize it and format it to different files\n * // Using Promises to know when the pipeline is complete\n *\n * const sharpStream = sharp();\n *\n * const promises = [];\n * promises.push(\n *   sharpStream\n *     .clone()\n *     .jpeg({ quality: 100 })\n *     .toFile(\"originalFile.jpg\")\n * );\n * promises.push(\n *   sharpStream\n *     .clone()\n *     .resize({ width: 500 })\n *     .jpeg({ quality: 80 })\n *     .toFile(\"optimized-500.jpg\")\n * );\n * promises.push(\n *   sharpStream\n *     .clone()\n *     .resize({ width: 500 })\n *     .webp({ quality: 80 })\n *     .toFile(\"optimized-500.webp\")\n * );\n *\n * const res = await fetch(\"https://www.example.com/some-file.jpg\")\n * Readable.fromWeb(res.body).pipe(sharpStream);\n * await Promise.all(promises);\n *\n * @returns {Sharp}\n */\nfunction clone () {\n  // Clone existing options\n  const clone = this.constructor.call();\n  const { debuglog, queueListener, ...options } = this.options;\n  clone.options = structuredClone(options);\n  clone.options.debuglog = debuglog;\n  clone.options.queueListener = queueListener;\n  // Pass 'finish' event to clone for Stream-based input\n  if (this._isStreamInput()) {\n    this._whenStreamInFinished(() => {\n      // Clone inherits input data\n      this._flattenBufferIn();\n      clone.options.input.buffer = this.options.input.buffer;\n      clone.emit('finish');\n    });\n  }\n  return clone;\n}\nObject.assign(Sharp.prototype, { clone });\n\n/**\n * Export constructor.\n * @module Sharp\n * @private\n */\nexport default Sharp;\n", "/*!\n  Copyright 2013 Lovell Fuller and others.\n  SPDX-License-Identifier: Apache-2.0\n*/\n\nimport is from './is.mjs';\nimport sharp from './sharp.mjs';\n\n/**\n * Justification alignment\n * @member\n * @private\n */\nconst align = {\n  left: 'low',\n  top: 'low',\n  low: 'low',\n  center: 'centre',\n  centre: 'centre',\n  right: 'high',\n  bottom: 'high',\n  high: 'high'\n};\n\nconst inputStreamParameters = [\n  // Limits and error handling\n  'failOn', 'limitInputPixels', 'limitInputChannels', 'unlimited',\n  // Format-generic\n  'animated', 'autoOrient', 'density', 'ignoreIcc', 'page', 'pages', 'sequentialRead',\n  // Format-specific\n  'jp2', 'openSlide', 'pdf', 'raw', 'svg', 'tiff',\n  // Deprecated\n  'openSlideLevel', 'pdfBackground', 'tiffSubifd'\n];\n\n/**\n * Extract input options, if any, from an object.\n * @private\n */\nfunction _inputOptionsFromObject (obj) {\n  const params = inputStreamParameters\n    .filter(p => is.defined(obj[p]))\n    .map(p => ([p, obj[p]]));\n  return params.length\n    ? Object.fromEntries(params)\n    : undefined;\n}\n\n/**\n * Create Object containing input and input-related options.\n * @private\n */\nfunction _createInputDescriptor (input, inputOptions, containerOptions) {\n  const inputDescriptor = {\n    autoOrient: false,\n    failOn: 'warning',\n    limitInputPixels: 0x3FFF ** 2,\n    limitInputChannels: 5,\n    ignoreIcc: false,\n    unlimited: false,\n    sequentialRead: true\n  };\n  if (is.string(input)) {\n    // filesystem\n    inputDescriptor.file = input;\n  } else if (is.buffer(input)) {\n    // Buffer\n    if (input.length === 0) {\n      throw Error('Input Buffer is empty');\n    }\n    inputDescriptor.buffer = input;\n  } else if (is.arrayBuffer(input)) {\n    if (input.byteLength === 0) {\n      throw Error('Input bit Array is empty');\n    }\n    inputDescriptor.buffer = Buffer.from(input, 0, input.byteLength);\n  } else if (is.typedArray(input)) {\n    if (input.length === 0) {\n      throw Error('Input Bit Array is empty');\n    }\n    inputDescriptor.buffer = Buffer.from(input.buffer, input.byteOffset, input.byteLength);\n  } else if (is.plainObject(input) && !is.defined(inputOptions)) {\n    // Plain Object descriptor, e.g. create\n    inputOptions = input;\n    if (_inputOptionsFromObject(inputOptions)) {\n      // Stream with options\n      inputDescriptor.buffer = [];\n    }\n  } else if (!is.defined(input) && !is.defined(inputOptions) && is.object(containerOptions) && containerOptions.allowStream) {\n    // Stream without options\n    inputDescriptor.buffer = [];\n  } else if (Array.isArray(input)) {\n    if (input.length > 1) {\n      // Join images together\n      if (!this.options.joining) {\n        this.options.joining = true;\n        this.options.join = input.map(i => this._createInputDescriptor(i));\n      } else {\n        throw new Error('Recursive join is unsupported');\n      }\n    } else {\n      throw new Error('Expected at least two images to join');\n    }\n  } else {\n    throw new Error(`Unsupported input '${input}' of type ${typeof input}${\n      is.defined(inputOptions) ? ` when also providing options of type ${typeof inputOptions}` : ''\n    }`);\n  }\n  if (is.object(inputOptions)) {\n    // failOn\n    if (is.defined(inputOptions.failOn)) {\n      if (is.string(inputOptions.failOn) && is.inArray(inputOptions.failOn, ['none', 'truncated', 'error', 'warning'])) {\n        inputDescriptor.failOn = inputOptions.failOn;\n      } else {\n        throw is.invalidParameterError('failOn', 'one of: none, truncated, error, warning', inputOptions.failOn);\n      }\n    }\n    // autoOrient\n    if (is.defined(inputOptions.autoOrient)) {\n      if (is.bool(inputOptions.autoOrient)) {\n        inputDescriptor.autoOrient = inputOptions.autoOrient;\n      } else {\n        throw is.invalidParameterError('autoOrient', 'boolean', inputOptions.autoOrient);\n      }\n    }\n    // Density\n    if (is.defined(inputOptions.density)) {\n      if (is.number(inputOptions.density) && is.inRange(inputOptions.density, 1, 100000)) {\n        inputDescriptor.density = inputOptions.density;\n      } else {\n        throw is.invalidParameterError('density', 'number between 1 and 100000', inputOptions.density);\n      }\n    }\n    // Ignore embeddded ICC profile\n    if (is.defined(inputOptions.ignoreIcc)) {\n      if (is.bool(inputOptions.ignoreIcc)) {\n        inputDescriptor.ignoreIcc = inputOptions.ignoreIcc;\n      } else {\n        throw is.invalidParameterError('ignoreIcc', 'boolean', inputOptions.ignoreIcc);\n      }\n    }\n    // limitInputPixels\n    if (is.defined(inputOptions.limitInputPixels)) {\n      if (is.bool(inputOptions.limitInputPixels)) {\n        inputDescriptor.limitInputPixels = inputOptions.limitInputPixels\n          ? 0x3FFF ** 2\n          : 0;\n      } else if (is.integer(inputOptions.limitInputPixels) && is.inRange(inputOptions.limitInputPixels, 0, Number.MAX_SAFE_INTEGER)) {\n        inputDescriptor.limitInputPixels = inputOptions.limitInputPixels;\n      } else {\n        throw is.invalidParameterError('limitInputPixels', 'positive integer', inputOptions.limitInputPixels);\n      }\n    }\n    // limitInputChannels\n    if (is.defined(inputOptions.limitInputChannels)) {\n      if (is.bool(inputOptions.limitInputChannels)) {\n        inputDescriptor.limitInputChannels = inputOptions.limitInputChannels ? 5 : 0;\n      } else if (is.integer(inputOptions.limitInputChannels) && is.inRange(inputOptions.limitInputChannels, 0, Number.MAX_SAFE_INTEGER)) {\n        inputDescriptor.limitInputChannels = inputOptions.limitInputChannels;\n      } else {\n        throw is.invalidParameterError('limitInputChannels', 'positive integer', inputOptions.limitInputChannels);\n      }\n    }\n    // unlimited\n    if (is.defined(inputOptions.unlimited)) {\n      if (is.bool(inputOptions.unlimited)) {\n        inputDescriptor.unlimited = inputOptions.unlimited;\n      } else {\n        throw is.invalidParameterError('unlimited', 'boolean', inputOptions.unlimited);\n      }\n    }\n    // sequentialRead\n    if (is.defined(inputOptions.sequentialRead)) {\n      if (is.bool(inputOptions.sequentialRead)) {\n        inputDescriptor.sequentialRead = inputOptions.sequentialRead;\n      } else {\n        throw is.invalidParameterError('sequentialRead', 'boolean', inputOptions.sequentialRead);\n      }\n    }\n    // Raw pixel input\n    if (is.defined(inputOptions.raw)) {\n      if (\n        is.object(inputOptions.raw) &&\n        is.integer(inputOptions.raw.width) && is.inRange(inputOptions.raw.width, 1, 100000000) &&\n        is.integer(inputOptions.raw.height) && is.inRange(inputOptions.raw.height, 1, 100000000) &&\n        is.integer(inputOptions.raw.channels) && is.inRange(inputOptions.raw.channels, 1, 4)\n      ) {\n        inputDescriptor.rawWidth = inputOptions.raw.width;\n        inputDescriptor.rawHeight = inputOptions.raw.height;\n        inputDescriptor.rawChannels = inputOptions.raw.channels;\n        switch (input.constructor) {\n          case Uint8Array:\n          case Uint8ClampedArray:\n            inputDescriptor.rawDepth = 'uchar';\n            break;\n          case Int8Array:\n            inputDescriptor.rawDepth = 'char';\n            break;\n          case Uint16Array:\n            inputDescriptor.rawDepth = 'ushort';\n            break;\n          case Int16Array:\n            inputDescriptor.rawDepth = 'short';\n            break;\n          case Uint32Array:\n            inputDescriptor.rawDepth = 'uint';\n            break;\n          case Int32Array:\n            inputDescriptor.rawDepth = 'int';\n            break;\n          case Float32Array:\n            inputDescriptor.rawDepth = 'float';\n            break;\n          case Float64Array:\n            inputDescriptor.rawDepth = 'double';\n            break;\n          default:\n            inputDescriptor.rawDepth = 'uchar';\n            break;\n        }\n      } else {\n        throw new Error('Expected width, height and channels for raw pixel input');\n      }\n      inputDescriptor.rawPremultiplied = false;\n      if (is.defined(inputOptions.raw.premultiplied)) {\n        if (is.bool(inputOptions.raw.premultiplied)) {\n          inputDescriptor.rawPremultiplied = inputOptions.raw.premultiplied;\n        } else {\n          throw is.invalidParameterError('raw.premultiplied', 'boolean', inputOptions.raw.premultiplied);\n        }\n      }\n      inputDescriptor.rawPageHeight = 0;\n      if (is.defined(inputOptions.raw.pageHeight)) {\n        if (is.integer(inputOptions.raw.pageHeight) && inputOptions.raw.pageHeight > 0 && inputOptions.raw.pageHeight <= inputOptions.raw.height) {\n          if (inputOptions.raw.height % inputOptions.raw.pageHeight !== 0) {\n            throw new Error(`Expected raw.height ${inputOptions.raw.height} to be a multiple of raw.pageHeight ${inputOptions.raw.pageHeight}`);\n          }\n          inputDescriptor.rawPageHeight = inputOptions.raw.pageHeight;\n        } else {\n          throw is.invalidParameterError('raw.pageHeight', 'positive integer', inputOptions.raw.pageHeight);\n        }\n      }\n    }\n    // Multi-page input (GIF, TIFF, PDF)\n    if (is.defined(inputOptions.animated)) {\n      if (is.bool(inputOptions.animated)) {\n        inputDescriptor.pages = inputOptions.animated ? -1 : 1;\n      } else {\n        throw is.invalidParameterError('animated', 'boolean', inputOptions.animated);\n      }\n    }\n    if (is.defined(inputOptions.pages)) {\n      if (is.integer(inputOptions.pages) && is.inRange(inputOptions.pages, -1, 100000)) {\n        inputDescriptor.pages = inputOptions.pages;\n      } else {\n        throw is.invalidParameterError('pages', 'integer between -1 and 100000', inputOptions.pages);\n      }\n    }\n    if (is.defined(inputOptions.page)) {\n      if (is.integer(inputOptions.page) && is.inRange(inputOptions.page, 0, 100000)) {\n        inputDescriptor.page = inputOptions.page;\n      } else {\n        throw is.invalidParameterError('page', 'integer between 0 and 100000', inputOptions.page);\n      }\n    }\n    // OpenSlide specific options\n    if (is.object(inputOptions.openSlide) && is.defined(inputOptions.openSlide.level)) {\n      if (is.integer(inputOptions.openSlide.level) && is.inRange(inputOptions.openSlide.level, 0, 256)) {\n        inputDescriptor.openSlideLevel = inputOptions.openSlide.level;\n      } else {\n        throw is.invalidParameterError('openSlide.level', 'integer between 0 and 256', inputOptions.openSlide.level);\n      }\n    } else if (is.defined(inputOptions.level)) {\n      // Deprecated\n      if (is.integer(inputOptions.level) && is.inRange(inputOptions.level, 0, 256)) {\n        inputDescriptor.openSlideLevel = inputOptions.level;\n      } else {\n        throw is.invalidParameterError('level', 'integer between 0 and 256', inputOptions.level);\n      }\n    }\n    // TIFF specific options\n    if (is.object(inputOptions.tiff) && is.defined(inputOptions.tiff.subifd)) {\n      if (is.integer(inputOptions.tiff.subifd) && is.inRange(inputOptions.tiff.subifd, -1, 100000)) {\n        inputDescriptor.tiffSubifd = inputOptions.tiff.subifd;\n      } else {\n        throw is.invalidParameterError('tiff.subifd', 'integer between -1 and 100000', inputOptions.tiff.subifd);\n      }\n    } else if (is.defined(inputOptions.subifd)) {\n      // Deprecated\n      if (is.integer(inputOptions.subifd) && is.inRange(inputOptions.subifd, -1, 100000)) {\n        inputDescriptor.tiffSubifd = inputOptions.subifd;\n      } else {\n        throw is.invalidParameterError('subifd', 'integer between -1 and 100000', inputOptions.subifd);\n      }\n    }\n    // SVG specific options\n    if (is.object(inputOptions.svg)) {\n      if (is.defined(inputOptions.svg.stylesheet)) {\n        if (is.string(inputOptions.svg.stylesheet)) {\n          inputDescriptor.svgStylesheet = inputOptions.svg.stylesheet;\n        } else {\n          throw is.invalidParameterError('svg.stylesheet', 'string', inputOptions.svg.stylesheet);\n        }\n      }\n      if (is.defined(inputOptions.svg.highBitdepth)) {\n        if (is.bool(inputOptions.svg.highBitdepth)) {\n          inputDescriptor.svgHighBitdepth = inputOptions.svg.highBitdepth;\n        } else {\n          throw is.invalidParameterError('svg.highBitdepth', 'boolean', inputOptions.svg.highBitdepth);\n        }\n      }\n    }\n    // PDF specific options\n    if (is.object(inputOptions.pdf) && is.defined(inputOptions.pdf.background)) {\n      inputDescriptor.pdfBackground = this._getBackgroundColourOption(inputOptions.pdf.background);\n    } else if (is.defined(inputOptions.pdfBackground)) {\n      // Deprecated\n      inputDescriptor.pdfBackground = this._getBackgroundColourOption(inputOptions.pdfBackground);\n    }\n    // JPEG 2000 specific options\n    if (is.object(inputOptions.jp2) && is.defined(inputOptions.jp2.oneshot)) {\n      if (is.bool(inputOptions.jp2.oneshot)) {\n        inputDescriptor.jp2Oneshot = inputOptions.jp2.oneshot;\n      } else {\n        throw is.invalidParameterError('jp2.oneshot', 'boolean', inputOptions.jp2.oneshot);\n      }\n    }\n    // Create new image\n    if (is.defined(inputOptions.create)) {\n      if (\n        is.object(inputOptions.create) &&\n        is.integer(inputOptions.create.width) && is.inRange(inputOptions.create.width, 1, 100000000) &&\n        is.integer(inputOptions.create.height) && is.inRange(inputOptions.create.height, 1, 100000000) &&\n        is.integer(inputOptions.create.channels)\n      ) {\n        inputDescriptor.createWidth = inputOptions.create.width;\n        inputDescriptor.createHeight = inputOptions.create.height;\n        inputDescriptor.createChannels = inputOptions.create.channels;\n        inputDescriptor.createPageHeight = 0;\n        if (is.defined(inputOptions.create.pageHeight)) {\n          if (is.integer(inputOptions.create.pageHeight) && inputOptions.create.pageHeight > 0 && inputOptions.create.pageHeight <= inputOptions.create.height) {\n            if (inputOptions.create.height % inputOptions.create.pageHeight !== 0) {\n              throw new Error(`Expected create.height ${inputOptions.create.height} to be a multiple of create.pageHeight ${inputOptions.create.pageHeight}`);\n            }\n            inputDescriptor.createPageHeight = inputOptions.create.pageHeight;\n          } else {\n            throw is.invalidParameterError('create.pageHeight', 'positive integer', inputOptions.create.pageHeight);\n          }\n        }\n        // Noise\n        if (is.defined(inputOptions.create.noise)) {\n          if (!is.object(inputOptions.create.noise)) {\n            throw new Error('Expected noise to be an object');\n          }\n          if (inputOptions.create.noise.type !== 'gaussian') {\n            throw new Error('Only gaussian noise is supported at the moment');\n          }\n          inputDescriptor.createNoiseType = inputOptions.create.noise.type;\n          if (!is.inRange(inputOptions.create.channels, 1, 4)) {\n            throw is.invalidParameterError('create.channels', 'number between 1 and 4', inputOptions.create.channels);\n          }\n          inputDescriptor.createNoiseMean = 128;\n          if (is.defined(inputOptions.create.noise.mean)) {\n            if (is.number(inputOptions.create.noise.mean) && is.inRange(inputOptions.create.noise.mean, 0, 10000)) {\n              inputDescriptor.createNoiseMean = inputOptions.create.noise.mean;\n            } else {\n              throw is.invalidParameterError('create.noise.mean', 'number between 0 and 10000', inputOptions.create.noise.mean);\n            }\n          }\n          inputDescriptor.createNoiseSigma = 30;\n          if (is.defined(inputOptions.create.noise.sigma)) {\n            if (is.number(inputOptions.create.noise.sigma) && is.inRange(inputOptions.create.noise.sigma, 0, 10000)) {\n              inputDescriptor.createNoiseSigma = inputOptions.create.noise.sigma;\n            } else {\n              throw is.invalidParameterError('create.noise.sigma', 'number between 0 and 10000', inputOptions.create.noise.sigma);\n            }\n          }\n        } else if (is.defined(inputOptions.create.background)) {\n          if (!is.inRange(inputOptions.create.channels, 3, 4)) {\n            throw is.invalidParameterError('create.channels', 'number between 3 and 4', inputOptions.create.channels);\n          }\n          inputDescriptor.createBackground = this._getBackgroundColourOption(inputOptions.create.background);\n        } else {\n          throw new Error('Expected valid noise or background to create a new input image');\n        }\n        delete inputDescriptor.buffer;\n      } else {\n        throw new Error('Expected valid width, height and channels to create a new input image');\n      }\n    }\n    // Create a new image with text\n    if (is.defined(inputOptions.text)) {\n      if (is.object(inputOptions.text) && is.string(inputOptions.text.text)) {\n        inputDescriptor.textValue = inputOptions.text.text;\n        if (is.defined(inputOptions.text.height) && is.defined(inputOptions.text.dpi)) {\n          throw new Error('Expected only one of dpi or height');\n        }\n        if (is.defined(inputOptions.text.font)) {\n          if (is.string(inputOptions.text.font)) {\n            inputDescriptor.textFont = inputOptions.text.font;\n          } else {\n            throw is.invalidParameterError('text.font', 'string', inputOptions.text.font);\n          }\n        }\n        if (is.defined(inputOptions.text.fontfile)) {\n          if (is.string(inputOptions.text.fontfile)) {\n            inputDescriptor.textFontfile = inputOptions.text.fontfile;\n          } else {\n            throw is.invalidParameterError('text.fontfile', 'string', inputOptions.text.fontfile);\n          }\n        }\n        if (is.defined(inputOptions.text.width)) {\n          if (is.integer(inputOptions.text.width) && is.inRange(inputOptions.text.width, 1, 1000000)) {\n            inputDescriptor.textWidth = inputOptions.text.width;\n          } else {\n            throw is.invalidParameterError('text.width', 'integer between 1 and 1000000', inputOptions.text.width);\n          }\n        }\n        if (is.defined(inputOptions.text.height)) {\n          if (is.integer(inputOptions.text.height) && is.inRange(inputOptions.text.height, 1, 1000000)) {\n            inputDescriptor.textHeight = inputOptions.text.height;\n          } else {\n            throw is.invalidParameterError('text.height', 'integer between 1 and 1000000', inputOptions.text.height);\n          }\n        }\n        if (is.defined(inputOptions.text.align)) {\n          if (is.string(inputOptions.text.align) && is.string(this.constructor.align[inputOptions.text.align])) {\n            inputDescriptor.textAlign = this.constructor.align[inputOptions.text.align];\n          } else {\n            throw is.invalidParameterError('text.align', 'valid alignment', inputOptions.text.align);\n          }\n        }\n        if (is.defined(inputOptions.text.justify)) {\n          if (is.bool(inputOptions.text.justify)) {\n            inputDescriptor.textJustify = inputOptions.text.justify;\n          } else {\n            throw is.invalidParameterError('text.justify', 'boolean', inputOptions.text.justify);\n          }\n        }\n        if (is.defined(inputOptions.text.dpi)) {\n          if (is.integer(inputOptions.text.dpi) && is.inRange(inputOptions.text.dpi, 1, 1000000)) {\n            inputDescriptor.textDpi = inputOptions.text.dpi;\n          } else {\n            throw is.invalidParameterError('text.dpi', 'integer between 1 and 1000000', inputOptions.text.dpi);\n          }\n        }\n        if (is.defined(inputOptions.text.rgba)) {\n          if (is.bool(inputOptions.text.rgba)) {\n            inputDescriptor.textRgba = inputOptions.text.rgba;\n          } else {\n            throw is.invalidParameterError('text.rgba', 'bool', inputOptions.text.rgba);\n          }\n        }\n        if (is.defined(inputOptions.text.spacing)) {\n          if (is.integer(inputOptions.text.spacing) && is.inRange(inputOptions.text.spacing, -1000000, 1000000)) {\n            inputDescriptor.textSpacing = inputOptions.text.spacing;\n          } else {\n            throw is.invalidParameterError('text.spacing', 'integer between -1000000 and 1000000', inputOptions.text.spacing);\n          }\n        }\n        if (is.defined(inputOptions.text.wrap)) {\n          if (is.string(inputOptions.text.wrap) && is.inArray(inputOptions.text.wrap, ['word', 'char', 'word-char', 'none'])) {\n            inputDescriptor.textWrap = inputOptions.text.wrap;\n          } else {\n            throw is.invalidParameterError('text.wrap', 'one of: word, char, word-char, none', inputOptions.text.wrap);\n          }\n        }\n        delete inputDescriptor.buffer;\n      } else {\n        throw new Error('Expected a valid string to create an image with text.');\n      }\n    }\n    // Join images together\n    if (is.defined(inputOptions.join)) {\n      if (is.defined(this.options.join)) {\n        if (is.defined(inputOptions.join.animated)) {\n          if (is.bool(inputOptions.join.animated)) {\n            inputDescriptor.joinAnimated = inputOptions.join.animated;\n          } else {\n            throw is.invalidParameterError('join.animated', 'boolean', inputOptions.join.animated);\n          }\n        }\n        if (is.defined(inputOptions.join.across)) {\n          if (is.integer(inputOptions.join.across) && is.inRange(inputOptions.join.across, 1, 1000000)) {\n            inputDescriptor.joinAcross = inputOptions.join.across;\n          } else {\n            throw is.invalidParameterError('join.across', 'integer between 1 and 100000', inputOptions.join.across);\n          }\n        }\n        if (is.defined(inputOptions.join.shim)) {\n          if (is.integer(inputOptions.join.shim) && is.inRange(inputOptions.join.shim, 0, 1000000)) {\n            inputDescriptor.joinShim = inputOptions.join.shim;\n          } else {\n            throw is.invalidParameterError('join.shim', 'integer between 0 and 100000', inputOptions.join.shim);\n          }\n        }\n        if (is.defined(inputOptions.join.background)) {\n          inputDescriptor.joinBackground = this._getBackgroundColourOption(inputOptions.join.background);\n        }\n        if (is.defined(inputOptions.join.halign)) {\n          if (is.string(inputOptions.join.halign) && is.string(this.constructor.align[inputOptions.join.halign])) {\n            inputDescriptor.joinHalign = this.constructor.align[inputOptions.join.halign];\n          } else {\n            throw is.invalidParameterError('join.halign', 'valid alignment', inputOptions.join.halign);\n          }\n        }\n        if (is.defined(inputOptions.join.valign)) {\n          if (is.string(inputOptions.join.valign) && is.string(this.constructor.align[inputOptions.join.valign])) {\n            inputDescriptor.joinValign = this.constructor.align[inputOptions.join.valign];\n          } else {\n            throw is.invalidParameterError('join.valign', 'valid alignment', inputOptions.join.valign);\n          }\n        }\n      } else {\n        throw new Error('Expected input to be an array of images to join');\n      }\n    }\n  } else if (is.defined(inputOptions)) {\n    throw new Error(`Invalid input options ${inputOptions}`);\n  }\n  return inputDescriptor;\n}\n\n/**\n * Handle incoming Buffer chunk on Writable Stream.\n * @private\n * @param {Buffer} chunk\n * @param {string} encoding - unused\n * @param {Function} callback\n */\nfunction _write (chunk, _encoding, callback) {\n  if (Array.isArray(this.options.input.buffer)) {\n    if (is.buffer(chunk)) {\n      this.options.input.buffer.push(chunk);\n      callback();\n    } else {\n      callback(new Error('Non-Buffer data on Writable Stream'));\n    }\n  } else {\n    callback(new Error('Unexpected data on Writable Stream'));\n  }\n}\n\n/**\n * Flattens the array of chunks accumulated in input.buffer.\n * @private\n */\nfunction _flattenBufferIn () {\n  if (this._isStreamInput()) {\n    this.options.input.buffer = Buffer.concat(this.options.input.buffer);\n  }\n}\n\n/**\n * Are we expecting Stream-based input?\n * @private\n * @returns {boolean}\n */\nfunction _isStreamInput () {\n  return Array.isArray(this.options.input.buffer);\n}\n\n/**\n * Call fn when the Writable side of Stream-based input has finished,\n * or immediately when it already has, as 'finish' is emitted only once.\n * @private\n * @param {Function} fn\n */\nfunction _whenStreamInFinished (fn) {\n  if (this.writableFinished) {\n    fn();\n  } else {\n    this.once('finish', fn);\n  }\n}\n\n/**\n * Fast access to (uncached) image metadata without decoding any compressed pixel data.\n *\n * This is read from the header of the input image.\n * It does not take into consideration any operations to be applied to the output image,\n * such as resize or rotate.\n *\n * Dimensions in the response will respect the `page` and `pages` properties of the\n * {@link /api-constructor/ constructor parameters}.\n *\n * A `Promise` is returned when `callback` is not provided.\n *\n * - `format`: Name of decoder used to parse image e.g. `jpeg`, `png`, `webp`, `gif`, `svg`, `heif`, `tiff`\n * - `mediaType`: Media Type (MIME Type) e.g. `image/jpeg`, `image/png`, `image/svg+xml`, `image/avif`\n * - `size`: Total size of image in bytes, for Stream and Buffer input only\n * - `width`: Number of pixels wide (EXIF orientation is not taken into consideration, see example below)\n * - `height`: Number of pixels high (EXIF orientation is not taken into consideration, see example below)\n * - `space`: Name of colour space interpretation e.g. `srgb`, `rgb`, `cmyk`, `lab`, `b-w` [...](https://www.libvips.org/API/current/enum.Interpretation.html)\n * - `channels`: Number of bands e.g. `3` for sRGB, `4` for CMYK\n * - `depth`: Name of pixel depth format e.g. `uchar`, `char`, `ushort`, `float` [...](https://www.libvips.org/API/current/enum.BandFormat.html)\n * - `density`: Number of pixels per inch (DPI), if present\n * - `chromaSubsampling`: String containing JPEG chroma subsampling, `4:2:0` or `4:4:4` for RGB, `4:2:0:4` or `4:4:4:4` for CMYK\n * - `isProgressive`: Boolean indicating whether the image is interlaced using a progressive scan\n * - `isPalette`: Boolean indicating whether the image is palette-based (GIF, PNG).\n * - `bitsPerSample`: Number of bits per sample for each channel (GIF, PNG, HEIF).\n * - `pages`: Number of pages/frames contained within the image, with support for TIFF, HEIF, PDF, animated GIF and animated WebP\n * - `pageHeight`: Number of pixels high each page in a multi-page image will be.\n * - `loop`: Number of times to loop an animated image, zero refers to a continuous loop.\n * - `delay`: Delay in ms between each page in an animated image, provided as an array of integers.\n * - `pagePrimary`: Number of the primary page in a HEIF image\n * - `levels`: Details of each level in a multi-level image provided as an array of objects, requires libvips compiled with support for OpenSlide\n * - `subifds`: Number of Sub Image File Directories in an OME-TIFF image\n * - `background`: Default background colour, if present, for PNG (bKGD) and GIF images\n * - `compression`: The encoder used to compress an HEIF file, `av1` (AVIF) or `hevc` (HEIC)\n * - `resolutionUnit`: The unit of resolution (density), either `inch` or `cm`, if present\n * - `hasProfile`: Boolean indicating the presence of an embedded ICC profile\n * - `hasAlpha`: Boolean indicating the presence of an alpha transparency channel\n * - `orientation`: Number value of the EXIF Orientation header, if present\n * - `exif`: Buffer containing raw EXIF data, if present\n * - `icc`: Buffer containing raw [ICC](https://www.npmjs.com/package/icc) profile data, if present\n * - `iptc`: Buffer containing raw IPTC data, if present\n * - `xmp`: Buffer containing raw XMP data, if present\n * - `xmpAsString`: String containing XMP data, if valid UTF-8.\n * - `tifftagPhotoshop`: Buffer containing raw TIFFTAG_PHOTOSHOP data, if present\n * - `formatMagick`: String containing format for images loaded via *magick\n * - `comments`: Array of keyword/text pairs representing PNG text blocks, if present.\n * - `gainMap.image`: HDR gain map, if present, as compressed JPEG image.\n *\n * @example\n * const metadata = await sharp(input).metadata();\n *\n * @example\n * const image = sharp(inputJpg);\n * image\n *   .metadata()\n *   .then(function(metadata) {\n *     return image\n *       .resize(Math.round(metadata.width / 2))\n *       .webp()\n *       .toBuffer();\n *   })\n *   .then(function(data) {\n *     // data contains a WebP image half the width and height of the original JPEG\n *   });\n *\n * @example\n * // Get dimensions taking EXIF Orientation into account.\n * const { autoOrient } = await sharp(input).metadata();\n * const { width, height } = autoOrient;\n *\n * @param {Function} [callback] - called with the arguments `(err, metadata)`\n * @returns {Promise<Object>|Sharp}\n */\nfunction metadata (callback) {\n  const stack = Error();\n  if (is.fn(callback)) {\n    if (this._isStreamInput()) {\n      this._whenStreamInFinished(() => {\n        this._flattenBufferIn();\n        sharp.metadata(this.options, (err, metadata) => {\n          if (err) {\n            callback(is.nativeError(err, stack));\n          } else {\n            callback(null, metadata);\n          }\n        });\n      });\n    } else {\n      sharp.metadata(this.options, (err, metadata) => {\n        if (err) {\n          callback(is.nativeError(err, stack));\n        } else {\n          callback(null, metadata);\n        }\n      });\n    }\n    return this;\n  } else {\n    if (this._isStreamInput()) {\n      return new Promise((resolve, reject) => {\n        this._whenStreamInFinished(() => {\n          this._flattenBufferIn();\n          sharp.metadata(this.options, (err, metadata) => {\n            if (err) {\n              reject(is.nativeError(err, stack));\n            } else {\n              resolve(metadata);\n            }\n          });\n        });\n      });\n    } else {\n      return new Promise((resolve, reject) => {\n        sharp.metadata(this.options, (err, metadata) => {\n          if (err) {\n            reject(is.nativeError(err, stack));\n          } else {\n            resolve(metadata);\n          }\n        });\n      });\n    }\n  }\n}\n\n/**\n * Access to pixel-derived image statistics for every channel in the image.\n * A `Promise` is returned when `callback` is not provided.\n *\n * - `channels`: Array of channel statistics for each channel in the image. Each channel statistic contains\n *     - `min` (minimum value in the channel)\n *     - `max` (maximum value in the channel)\n *     - `sum` (sum of all values in a channel)\n *     - `squaresSum` (sum of squared values in a channel)\n *     - `mean` (mean of the values in a channel)\n *     - `stdev` (standard deviation for the values in a channel)\n *     - `minX` (x-coordinate of one of the pixel where the minimum lies)\n *     - `minY` (y-coordinate of one of the pixel where the minimum lies)\n *     - `maxX` (x-coordinate of one of the pixel where the maximum lies)\n *     - `maxY` (y-coordinate of one of the pixel where the maximum lies)\n * - `isOpaque`: Is the image fully opaque? Will be `true` if the image has no alpha channel or if every pixel is fully opaque.\n * - `entropy`: Histogram-based estimation of greyscale entropy, discarding alpha channel if any.\n * - `sharpness`: Estimation of greyscale sharpness based on the standard deviation of a Laplacian convolution, discarding alpha channel if any.\n * - `dominant`: Object containing most dominant sRGB colour based on a 4096-bin 3D histogram.\n *\n * **Note**: Statistics are derived from the original input image. Any operations performed on the image must first be\n * written to a buffer in order to run `stats` on the result (see third example).\n *\n * @example\n * const image = sharp(inputJpg);\n * image\n *   .stats()\n *   .then(function(stats) {\n *      // stats contains the channel-wise statistics array and the isOpaque value\n *   });\n *\n * @example\n * const { entropy, sharpness, dominant } = await sharp(input).stats();\n * const { r, g, b } = dominant;\n *\n * @example\n * const image = sharp(input);\n * // store intermediate result\n * const part = await image.extract(region).toBuffer();\n * // create new instance to obtain statistics of extracted region\n * const stats = await sharp(part).stats();\n *\n * @param {Function} [callback] - called with the arguments `(err, stats)`\n * @returns {Promise<Object>}\n */\nfunction stats (callback) {\n  const stack = Error();\n  if (is.fn(callback)) {\n    if (this._isStreamInput()) {\n      this._whenStreamInFinished(() => {\n        this._flattenBufferIn();\n        sharp.stats(this.options, (err, stats) => {\n          if (err) {\n            callback(is.nativeError(err, stack));\n          } else {\n            callback(null, stats);\n          }\n        });\n      });\n    } else {\n      sharp.stats(this.options, (err, stats) => {\n        if (err) {\n          callback(is.nativeError(err, stack));\n        } else {\n          callback(null, stats);\n        }\n      });\n    }\n    return this;\n  } else {\n    if (this._isStreamInput()) {\n      return new Promise((resolve, reject) => {\n        this._whenStreamInFinished(() => {\n          this._flattenBufferIn();\n          sharp.stats(this.options, (err, stats) => {\n            if (err) {\n              reject(is.nativeError(err, stack));\n            } else {\n              resolve(stats);\n            }\n          });\n        });\n      });\n    } else {\n      return new Promise((resolve, reject) => {\n        sharp.stats(this.options, (err, stats) => {\n          if (err) {\n            reject(is.nativeError(err, stack));\n          } else {\n            resolve(stats);\n          }\n        });\n      });\n    }\n  }\n}\n\n/**\n * Decorate the Sharp prototype with input-related functions.\n * @module Sharp\n * @private\n */\nexport default (Sharp) => {\n  Object.assign(Sharp.prototype, {\n    // Private\n    _inputOptionsFromObject,\n    _createInputDescriptor,\n    _write,\n    _flattenBufferIn,\n    _isStreamInput,\n    _whenStreamInFinished,\n    // Public\n    metadata,\n    stats\n  });\n  // Class attributes\n  Sharp.align = align;\n};\n", "/*!\n  Copyright 2013 Lovell Fuller and others.\n  SPDX-License-Identifier: Apache-2.0\n*/\n\nimport is from './is.mjs';\n\n/**\n * Weighting to apply when using contain/cover fit.\n * @member\n * @private\n */\nconst gravity = {\n  center: 0,\n  centre: 0,\n  north: 1,\n  east: 2,\n  south: 3,\n  west: 4,\n  northeast: 5,\n  southeast: 6,\n  southwest: 7,\n  northwest: 8\n};\n\n/**\n * Position to apply when using contain/cover fit.\n * @member\n * @private\n */\nconst position = {\n  top: 1,\n  right: 2,\n  bottom: 3,\n  left: 4,\n  'right top': 5,\n  'right bottom': 6,\n  'left bottom': 7,\n  'left top': 8\n};\n\n/**\n * How to extend the image.\n * @member\n * @private\n */\nconst extendWith = {\n  background: 'background',\n  copy: 'copy',\n  repeat: 'repeat',\n  mirror: 'mirror'\n};\n\n/**\n * Strategies for automagic cover behaviour.\n * @member\n * @private\n */\nconst strategy = {\n  entropy: 16,\n  attention: 17\n};\n\n/**\n * Reduction kernels.\n * @member\n * @private\n */\nconst kernel = {\n  nearest: 'nearest',\n  linear: 'linear',\n  cubic: 'cubic',\n  mitchell: 'mitchell',\n  lanczos2: 'lanczos2',\n  lanczos3: 'lanczos3',\n  mks2013: 'mks2013',\n  mks2021: 'mks2021'\n};\n\n/**\n * Methods by which an image can be resized to fit the provided dimensions.\n * @member\n * @private\n */\nconst fit = {\n  contain: 'contain',\n  cover: 'cover',\n  fill: 'fill',\n  inside: 'inside',\n  outside: 'outside'\n};\n\n/**\n * Map external fit property to internal canvas property.\n * @member\n * @private\n */\nconst mapFitToCanvas = {\n  contain: 'embed',\n  cover: 'crop',\n  fill: 'ignore_aspect',\n  inside: 'max',\n  outside: 'min'\n};\n\n/**\n * @private\n */\nfunction isRotationExpected (options) {\n  return (options.angle % 360) !== 0 || options.rotationAngle !== 0;\n}\n\n/**\n * @private\n */\nfunction isResizeExpected (options) {\n  return options.width !== -1 || options.height !== -1;\n}\n\n/**\n * Resize image to `width`, `height` or `width x height`.\n *\n * When both a `width` and `height` are provided, the possible methods by which the image should **fit** these are:\n * - `cover`: (default) Preserving aspect ratio, attempt to ensure the image covers both provided dimensions by cropping/clipping to fit.\n * - `contain`: Preserving aspect ratio, contain within both provided dimensions using \"letterboxing\" where necessary.\n * - `fill`: Ignore the aspect ratio of the input and stretch to both provided dimensions.\n * - `inside`: Preserving aspect ratio, resize the image to be as large as possible while ensuring its dimensions are less than or equal to both those specified.\n * - `outside`: Preserving aspect ratio, resize the image to be as small as possible while ensuring its dimensions are greater than or equal to both those specified.\n *\n * Some of these values are based on the [object-fit](https://developer.mozilla.org/en-US/docs/Web/CSS/object-fit) CSS property.\n *\n * <img alt=\"Examples of various values for the fit property when resizing\" width=\"100%\" style=\"aspect-ratio: 998/243\" src=\"/api-resize-fit.svg\">\n *\n * When using a **fit** of `cover` or `contain`, the default **position** is `centre`. Other options are:\n * - `sharp.position`: `top`, `right top`, `right`, `right bottom`, `bottom`, `left bottom`, `left`, `left top`.\n * - `sharp.gravity`: `north`, `northeast`, `east`, `southeast`, `south`, `southwest`, `west`, `northwest`, `center` or `centre`.\n * - `sharp.strategy`: `cover` only, dynamically crop using either the `entropy` or `attention` strategy.\n *\n * Some of these values are based on the [object-position](https://developer.mozilla.org/en-US/docs/Web/CSS/object-position) CSS property.\n *\n * The strategy-based approach initially resizes so one dimension is at its target length\n * then repeatedly ranks edge regions, discarding the edge with the lowest score based on the selected strategy.\n * - `entropy`: focus on the region with the highest [Shannon entropy](https://en.wikipedia.org/wiki/Entropy_%28information_theory%29).\n * - `attention`: focus on the region with the highest luminance frequency, colour saturation and presence of skin tones.\n *\n * Possible downsizing kernels are:\n * - `nearest`: Use [nearest neighbour interpolation](http://en.wikipedia.org/wiki/Nearest-neighbor_interpolation).\n * - `linear`: Use a [triangle filter](https://en.wikipedia.org/wiki/Triangular_function).\n * - `cubic`: Use a [Catmull-Rom spline](https://en.wikipedia.org/wiki/Centripetal_Catmull%E2%80%93Rom_spline).\n * - `mitchell`: Use a [Mitchell-Netravali spline](https://www.cs.utexas.edu/~fussell/courses/cs384g-fall2013/lectures/mitchell/Mitchell.pdf).\n * - `lanczos2`: Use a [Lanczos kernel](https://en.wikipedia.org/wiki/Lanczos_resampling#Lanczos_kernel) with `a=2`.\n * - `lanczos3`: Use a Lanczos kernel with `a=3` (the default).\n * - `mks2013`: Use a [Magic Kernel Sharp](https://johncostella.com/magic/mks.pdf) 2013 kernel, as adopted by Facebook.\n * - `mks2021`: Use a Magic Kernel Sharp 2021 kernel, with more accurate (reduced) sharpening than the 2013 version.\n *\n * When upsampling, these kernels map to `nearest`, `linear` and `cubic` interpolators.\n * Downsampling kernels without a matching upsampling interpolator map to `cubic`.\n *\n * Only one resize can occur per pipeline.\n * Previous calls to `resize` in the same pipeline will be ignored.\n *\n * @example\n * sharp(input)\n *   .resize({ width: 100 })\n *   .toBuffer()\n *   .then(data => {\n *     // 100 pixels wide, auto-scaled height\n *   });\n *\n * @example\n * sharp(input)\n *   .resize({ height: 100 })\n *   .toBuffer()\n *   .then(data => {\n *     // 100 pixels high, auto-scaled width\n *   });\n *\n * @example\n * sharp(input)\n *   .resize(200, 300, {\n *     kernel: sharp.kernel.nearest,\n *     fit: 'contain',\n *     position: 'right top',\n *     background: { r: 255, g: 255, b: 255, alpha: 0.5 }\n *   })\n *   .toFile('output.png')\n *   .then(() => {\n *     // output.png is a 200 pixels wide and 300 pixels high image\n *     // containing a nearest-neighbour scaled version\n *     // contained within the north-east corner of a semi-transparent white canvas\n *   });\n *\n * @example\n * const transformer = sharp()\n *   .resize({\n *     width: 200,\n *     height: 200,\n *     fit: sharp.fit.cover,\n *     position: sharp.strategy.entropy\n *   });\n * // Read image data from readableStream\n * // Write 200px square auto-cropped image data to writableStream\n * readableStream\n *   .pipe(transformer)\n *   .pipe(writableStream);\n *\n * @example\n * sharp(input)\n *   .resize(200, 200, {\n *     fit: sharp.fit.inside,\n *     withoutEnlargement: true\n *   })\n *   .toFormat('jpeg')\n *   .toBuffer()\n *   .then(function(outputBuffer) {\n *     // outputBuffer contains JPEG image data\n *     // no wider and no higher than 200 pixels\n *     // and no larger than the input image\n *   });\n *\n * @example\n * sharp(input)\n *   .resize(200, 200, {\n *     fit: sharp.fit.outside,\n *     withoutReduction: true\n *   })\n *   .toFormat('jpeg')\n *   .toBuffer()\n *   .then(function(outputBuffer) {\n *     // outputBuffer contains JPEG image data\n *     // of at least 200 pixels wide and 200 pixels high while maintaining aspect ratio\n *     // and no smaller than the input image\n *   });\n *\n * @example\n * const scaleByHalf = await sharp(input)\n *   .metadata()\n *   .then(({ width }) => sharp(input)\n *     .resize(Math.round(width * 0.5))\n *     .toBuffer()\n *   );\n *\n * @param {number} [width] - How many pixels wide the resultant image should be. Use `null` or `undefined` to auto-scale the width to match the height.\n * @param {number} [height] - How many pixels high the resultant image should be. Use `null` or `undefined` to auto-scale the height to match the width.\n * @param {Object} [options]\n * @param {number} [options.width] - An alternative means of specifying `width`. If both are present this takes priority.\n * @param {number} [options.height] - An alternative means of specifying `height`. If both are present this takes priority.\n * @param {String} [options.fit='cover'] - How the image should be resized/cropped to fit the target dimension(s), one of `cover`, `contain`, `fill`, `inside` or `outside`.\n * @param {String} [options.position='centre'] - A position, gravity or strategy to use when `fit` is `cover` or `contain`.\n * @param {String|Object} [options.background={r: 0, g: 0, b: 0, alpha: 1}] - background colour when `fit` is `contain`, parsed by the [color](https://www.npmjs.org/package/color) module, defaults to black without transparency.\n * @param {String} [options.kernel='lanczos3'] - The kernel to use for image reduction and the inferred interpolator to use for upsampling. Use the `fastShrinkOnLoad` option to control kernel vs shrink-on-load.\n * @param {Boolean} [options.withoutEnlargement=false] - Do not scale up if the width *or* height are already less than the target dimensions, equivalent to GraphicsMagick's `>` geometry option. This may result in output dimensions smaller than the target dimensions.\n * @param {Boolean} [options.withoutReduction=false] - Do not scale down if the width *or* height are already greater than the target dimensions, equivalent to GraphicsMagick's `<` geometry option. This may still result in a crop to reach the target dimensions.\n * @param {Boolean} [options.fastShrinkOnLoad=true] - Take greater advantage of the JPEG and WebP shrink-on-load feature, which can lead to a slight moir\u00E9 pattern or round-down of an auto-scaled dimension.\n * @returns {Sharp}\n * @throws {Error} Invalid parameters\n */\nfunction resize (widthOrOptions, height, options) {\n  if (isResizeExpected(this.options)) {\n    this.options.debuglog('ignoring previous resize options');\n  }\n  if (this.options.widthPost !== -1) {\n    this.options.debuglog('operation order will be: extract, resize, extract');\n  }\n  if (is.defined(widthOrOptions)) {\n    if (is.object(widthOrOptions) && !is.defined(options)) {\n      options = widthOrOptions;\n    } else if (is.integer(widthOrOptions) && is.inRange(widthOrOptions, 1, 100000000)) {\n      this.options.width = widthOrOptions;\n    } else {\n      throw is.invalidParameterError('width', 'positive integer between 1 and 100000000', widthOrOptions);\n    }\n  } else {\n    this.options.width = -1;\n  }\n  if (is.defined(height)) {\n    if (is.integer(height) && is.inRange(height, 1, 100000000)) {\n      this.options.height = height;\n    } else {\n      throw is.invalidParameterError('height', 'positive integer between 1 and 100000000', height);\n    }\n  } else {\n    this.options.height = -1;\n  }\n  if (is.object(options)) {\n    // Width\n    if (is.defined(options.width)) {\n      if (is.integer(options.width) && is.inRange(options.width, 1, 100000000)) {\n        this.options.width = options.width;\n      } else {\n        throw is.invalidParameterError('width', 'positive integer between 1 and 100000000', options.width);\n      }\n    }\n    // Height\n    if (is.defined(options.height)) {\n      if (is.integer(options.height) && is.inRange(options.height, 1, 100000000)) {\n        this.options.height = options.height;\n      } else {\n        throw is.invalidParameterError('height', 'positive integer between 1 and 100000000', options.height);\n      }\n    }\n    // Fit\n    if (is.defined(options.fit)) {\n      const canvas = mapFitToCanvas[options.fit];\n      if (is.string(canvas)) {\n        this.options.canvas = canvas;\n      } else {\n        throw is.invalidParameterError('fit', 'valid fit', options.fit);\n      }\n    }\n    // Position\n    if (is.defined(options.position)) {\n      const pos = is.integer(options.position)\n        ? options.position\n        : strategy[options.position] || position[options.position] || gravity[options.position];\n      if (is.integer(pos) && (is.inRange(pos, 0, 8) || is.inRange(pos, 16, 17))) {\n        this.options.position = pos;\n      } else {\n        throw is.invalidParameterError('position', 'valid position/gravity/strategy', options.position);\n      }\n    }\n    // Background\n    this._setBackgroundColourOption('resizeBackground', options.background);\n    // Kernel\n    if (is.defined(options.kernel)) {\n      if (is.string(kernel[options.kernel])) {\n        this.options.kernel = kernel[options.kernel];\n      } else {\n        throw is.invalidParameterError('kernel', 'valid kernel name', options.kernel);\n      }\n    }\n    // Without enlargement\n    if (is.defined(options.withoutEnlargement)) {\n      this._setBooleanOption('withoutEnlargement', options.withoutEnlargement);\n    }\n    // Without reduction\n    if (is.defined(options.withoutReduction)) {\n      this._setBooleanOption('withoutReduction', options.withoutReduction);\n    }\n    // Shrink on load\n    if (is.defined(options.fastShrinkOnLoad)) {\n      this._setBooleanOption('fastShrinkOnLoad', options.fastShrinkOnLoad);\n    }\n  }\n  if (isRotationExpected(this.options) && isResizeExpected(this.options)) {\n    this.options.rotateBefore = true;\n  }\n  return this;\n}\n\n/**\n * Extend / pad / extrude one or more edges of the image with either\n * the provided background colour or pixels derived from the image.\n * This operation will always occur after resizing and extraction, if any.\n *\n * @example\n * // Resize to 140 pixels wide, then add 10 transparent pixels\n * // to the top, left and right edges and 20 to the bottom edge\n * sharp(input)\n *   .resize(140)\n *   .extend({\n *     top: 10,\n *     bottom: 20,\n *     left: 10,\n *     right: 10,\n *     background: { r: 0, g: 0, b: 0, alpha: 0 }\n *   })\n *   ...\n *\n* @example\n * // Add a row of 10 red pixels to the bottom\n * sharp(input)\n *   .extend({\n *     bottom: 10,\n *     background: 'red'\n *   })\n *   ...\n *\n * @example\n * // Extrude image by 8 pixels to the right, mirroring existing right hand edge\n * sharp(input)\n *   .extend({\n *     right: 8,\n *     background: 'mirror'\n *   })\n *   ...\n *\n * @param {(number|Object)} extend - single pixel count to add to all edges or an Object with per-edge counts\n * @param {number} [extend.top=0] - number of pixels to add to the top edge, valid values are integers in the range 0-10000\n * @param {number} [extend.left=0] - number of pixels to add to the left edge, valid values are integers in the range 0-10000\n * @param {number} [extend.bottom=0] - number of pixels to add to the bottom edge, valid values are integers in the range 0-10000\n * @param {number} [extend.right=0] - number of pixels to add to the right edge, valid values are integers in the range 0-10000\n * @param {String} [extend.extendWith='background'] - populate new pixels using this method, one of: background, copy, repeat, mirror.\n * @param {String|Object} [extend.background={r: 0, g: 0, b: 0, alpha: 1}] - background colour, parsed by the [color](https://www.npmjs.org/package/color) module, defaults to black without transparency.\n * @returns {Sharp}\n * @throws {Error} Invalid parameters\n*/\nfunction extend (extend) {\n  if (is.integer(extend)) {\n    if (is.inRange(extend, 1, 10000)) {\n      this.options.extendTop = extend;\n      this.options.extendBottom = extend;\n      this.options.extendLeft = extend;\n      this.options.extendRight = extend;\n    } else {\n      throw is.invalidParameterError('extend', 'integer between 1 and 10000', extend);\n    }\n  } else if (is.object(extend)) {\n    if (is.defined(extend.top)) {\n      if (is.integer(extend.top) && is.inRange(extend.top, 0, 10000)) {\n        this.options.extendTop = extend.top;\n      } else {\n        throw is.invalidParameterError('top', 'integer between 0 and 10000', extend.top);\n      }\n    }\n    if (is.defined(extend.bottom)) {\n      if (is.integer(extend.bottom) && is.inRange(extend.bottom, 0, 10000)) {\n        this.options.extendBottom = extend.bottom;\n      } else {\n        throw is.invalidParameterError('bottom', 'integer between 0 and 10000', extend.bottom);\n      }\n    }\n    if (is.defined(extend.left)) {\n      if (is.integer(extend.left) && is.inRange(extend.left, 0, 10000)) {\n        this.options.extendLeft = extend.left;\n      } else {\n        throw is.invalidParameterError('left', 'integer between 0 and 10000', extend.left);\n      }\n    }\n    if (is.defined(extend.right)) {\n      if (is.integer(extend.right) && is.inRange(extend.right, 0, 10000)) {\n        this.options.extendRight = extend.right;\n      } else {\n        throw is.invalidParameterError('right', 'integer between 0 and 10000', extend.right);\n      }\n    }\n    this._setBackgroundColourOption('extendBackground', extend.background);\n    if (is.defined(extend.extendWith)) {\n      if (is.string(extendWith[extend.extendWith])) {\n        this.options.extendWith = extendWith[extend.extendWith];\n      } else {\n        throw is.invalidParameterError('extendWith', 'one of: background, copy, repeat, mirror', extend.extendWith);\n      }\n    }\n  } else {\n    throw is.invalidParameterError('extend', 'integer or object', extend);\n  }\n  return this;\n}\n\n/**\n * Extract/crop a region of the image.\n *\n * - Use `extract` before `resize` for pre-resize extraction.\n * - Use `extract` after `resize` for post-resize extraction.\n * - Use `extract` twice and `resize` once for extract-then-resize-then-extract in a fixed operation order.\n *\n * @example\n * sharp(input)\n *   .extract({ left: left, top: top, width: width, height: height })\n *   .toFile(output, function(err) {\n *     // Extract a region of the input image, saving in the same format.\n *   });\n * @example\n * sharp(input)\n *   .extract({ left: leftOffsetPre, top: topOffsetPre, width: widthPre, height: heightPre })\n *   .resize(width, height)\n *   .extract({ left: leftOffsetPost, top: topOffsetPost, width: widthPost, height: heightPost })\n *   .toFile(output, function(err) {\n *     // Extract a region, resize, then extract from the resized image\n *   });\n *\n * @param {Object} options - describes the region to extract using integral pixel values\n * @param {number} options.left - zero-indexed offset from left edge, an integer between 0 and 100000000\n * @param {number} options.top - zero-indexed offset from top edge, an integer between 0 and 100000000\n * @param {number} options.width - width of region to extract, an integer between 0 and 100000000\n * @param {number} options.height - height of region to extract, an integer between 0 and 100000000\n * @returns {Sharp}\n * @throws {Error} Invalid parameters\n */\nfunction extract (options) {\n  const suffix = isResizeExpected(this.options) || this.options.widthPre !== -1 ? 'Post' : 'Pre';\n  if (this.options[`width${suffix}`] !== -1) {\n    this.options.debuglog('ignoring previous extract options');\n  }\n  ['left', 'top', 'width', 'height'].forEach(function (name) {\n    const value = options[name];\n    if (is.integer(value) && is.inRange(value, 0, 100000000)) {\n      this.options[name + (name === 'left' || name === 'top' ? 'Offset' : '') + suffix] = value;\n    } else {\n      throw is.invalidParameterError(name, 'integer between 0 and 100000000', value);\n    }\n  }, this);\n  // Ensure existing rotation occurs before pre-resize extraction\n  if (isRotationExpected(this.options) && !isResizeExpected(this.options)) {\n    if (this.options.widthPre === -1 || this.options.widthPost === -1) {\n      this.options.rotateBefore = true;\n    }\n  }\n  if (this.options.input.autoOrient) {\n    this.options.orientBefore = true;\n  }\n  return this;\n}\n\n/**\n * Trim pixels from all edges that contain values similar to the given background colour, which defaults to that of the top-left pixel.\n *\n * Images with an alpha channel will use the combined bounding box of alpha and non-alpha channels.\n *\n * If the result of this operation would trim an image to nothing then no change is made.\n *\n * Use the `lineArt` and `threshold` options for control over sensitivity.\n *\n * The `info` response Object will contain `trimOffsetLeft` and `trimOffsetTop` properties.\n *\n * @example\n * // Trim pixels with a colour similar to that of the top-left pixel.\n * await sharp(input)\n *   .trim()\n *   .toFile(output);\n *\n * @example\n * // Trim pixels with the exact same colour as that of the top-left pixel.\n * await sharp(input)\n *   .trim({\n *     threshold: 0\n *   })\n *   .toFile(output);\n *\n * @example\n * // Assume input is line art and trim only pixels with a similar colour to red.\n * const output = await sharp(input)\n *   .trim({\n *     background: \"#FF0000\",\n *     lineArt: true\n *   })\n *   .toBuffer();\n *\n * @example\n * // Trim all \"yellow-ish\" pixels, being more lenient with the higher threshold.\n * const output = await sharp(input)\n *   .trim({\n *     background: \"yellow\",\n *     threshold: 42,\n *   })\n *   .toBuffer();\n *\n * @example\n * // Trim image leaving (up to) a 10 pixel margin around the trimmed content.\n * const output = await sharp(input)\n *   .trim({\n *     margin: 10\n *   })\n *   .toBuffer();\n *\n * @param {Object} [options]\n * @param {string|Object} [options.background='top-left pixel'] - Background colour, parsed by the [color](https://www.npmjs.org/package/color) module, defaults to that of the top-left pixel.\n * @param {number} [options.threshold=10] - Allowed difference from the above colour, a positive number.\n * @param {boolean} [options.lineArt=false] - Does the input more closely resemble line art (e.g. vector) rather than being photographic?\n * @param {number} [options.margin=0] - Leave a margin around trimmed content, integral number of pixels between 0 and 10000000.\n * @returns {Sharp}\n * @throws {Error} Invalid parameters\n */\nfunction trim (options) {\n  this.options.trimThreshold = 10;\n  if (is.defined(options)) {\n    if (is.object(options)) {\n      if (is.defined(options.background)) {\n        this._setBackgroundColourOption('trimBackground', options.background);\n      }\n      if (is.defined(options.threshold)) {\n        if (is.number(options.threshold) && options.threshold >= 0) {\n          this.options.trimThreshold = options.threshold;\n        } else {\n          throw is.invalidParameterError('threshold', 'positive number', options.threshold);\n        }\n      }\n      if (is.defined(options.lineArt)) {\n        this._setBooleanOption('trimLineArt', options.lineArt);\n      }\n      if (is.defined(options.margin)) {\n        if (is.integer(options.margin) && is.inRange(options.margin, 0, 10000000)) {\n          this.options.trimMargin = options.margin;\n        } else {\n          throw is.invalidParameterError('margin', 'integer between 0 and 10000000', options.margin);\n        }\n      }\n    } else {\n      throw is.invalidParameterError('trim', 'object', options);\n    }\n  }\n  if (isRotationExpected(this.options)) {\n    this.options.rotateBefore = true;\n  }\n  return this;\n}\n\n/**\n * Decorate the Sharp prototype with resize-related functions.\n * @module Sharp\n * @private\n */\nexport default (Sharp) => {\n  Object.assign(Sharp.prototype, {\n    resize,\n    extend,\n    extract,\n    trim\n  });\n  // Class attributes\n  Sharp.gravity = gravity;\n  Sharp.strategy = strategy;\n  Sharp.kernel = kernel;\n  Sharp.fit = fit;\n  Sharp.position = position;\n};\n", "/*!\n  Copyright 2013 Lovell Fuller and others.\n  SPDX-License-Identifier: Apache-2.0\n*/\n\nimport is from './is.mjs';\n\n/**\n * Blend modes.\n * @member\n * @private\n */\nconst blend = {\n  clear: 'clear',\n  source: 'source',\n  over: 'over',\n  in: 'in',\n  out: 'out',\n  atop: 'atop',\n  dest: 'dest',\n  'dest-over': 'dest-over',\n  'dest-in': 'dest-in',\n  'dest-out': 'dest-out',\n  'dest-atop': 'dest-atop',\n  xor: 'xor',\n  add: 'add',\n  saturate: 'saturate',\n  multiply: 'multiply',\n  screen: 'screen',\n  overlay: 'overlay',\n  darken: 'darken',\n  lighten: 'lighten',\n  'colour-dodge': 'colour-dodge',\n  'color-dodge': 'colour-dodge',\n  'colour-burn': 'colour-burn',\n  'color-burn': 'colour-burn',\n  'hard-light': 'hard-light',\n  'soft-light': 'soft-light',\n  difference: 'difference',\n  exclusion: 'exclusion'\n};\n\n/**\n * Composite image(s) over the processed (resized, extracted etc.) image.\n *\n * The images to composite must be the same size or smaller than the processed image.\n * If both `top` and `left` options are provided, they take precedence over `gravity`.\n *\n * Other operations in the same processing pipeline (e.g. resize, rotate, flip,\n * flop, extract) will always be applied to the input image before composition.\n *\n * The `blend` option can be one of `clear`, `source`, `over`, `in`, `out`, `atop`,\n * `dest`, `dest-over`, `dest-in`, `dest-out`, `dest-atop`,\n * `xor`, `add`, `saturate`, `multiply`, `screen`, `overlay`, `darken`, `lighten`,\n * `colour-dodge`, `color-dodge`, `colour-burn`,`color-burn`,\n * `hard-light`, `soft-light`, `difference`, `exclusion`.\n *\n * More information about blend modes can be found at\n * https://www.libvips.org/API/current/enum.BlendMode.html\n * and https://www.cairographics.org/operators/\n *\n * @since 0.22.0\n *\n * @example\n * await sharp(background)\n *   .composite([\n *     { input: layer1, gravity: 'northwest' },\n *     { input: layer2, gravity: 'southeast' },\n *   ])\n *   .toFile('combined.png');\n *\n * @example\n * const output = await sharp('input.gif', { animated: true })\n *   .composite([\n *     { input: 'overlay.png', tile: true, blend: 'saturate' }\n *   ])\n *   .toBuffer();\n *\n * @example\n * sharp('input.png')\n *   .rotate(180)\n *   .resize(300)\n *   .flatten( { background: '#ff6600' } )\n *   .composite([{ input: 'overlay.png', gravity: 'southeast' }])\n *   .sharpen()\n *   .withMetadata()\n *   .webp( { quality: 90 } )\n *   .toBuffer()\n *   .then(function(outputBuffer) {\n *     // outputBuffer contains upside down, 300px wide, alpha channel flattened\n *     // onto orange background, composited with overlay.png with SE gravity,\n *     // sharpened, with metadata, 90% quality WebP image data. Phew!\n *   });\n *\n * @param {Object[]} images - Ordered list of images to composite\n * @param {Buffer|String} [images[].input] - Buffer containing image data, String containing the path to an image file, or Create object (see below)\n * @param {Object} [images[].input.create] - describes a blank overlay to be created.\n * @param {Number} [images[].input.create.width]\n * @param {Number} [images[].input.create.height]\n * @param {Number} [images[].input.create.channels] - 3-4\n * @param {String|Object} [images[].input.create.background] - parsed by the [color](https://www.npmjs.org/package/color) module to extract values for red, green, blue and alpha.\n * @param {Object} [images[].input.text] - describes a new text image to be created.\n * @param {string} [images[].input.text.text] - text to render as a UTF-8 string. It can contain Pango markup, for example `<i>Le</i>Monde`.\n * @param {string} [images[].input.text.font] - font name to render with.\n * @param {string} [images[].input.text.fontfile] - absolute filesystem path to a font file that can be used by `font`.\n * @param {number} [images[].input.text.width=0] - integral number of pixels to word-wrap at. Lines of text wider than this will be broken at word boundaries.\n * @param {number} [images[].input.text.height=0] - integral number of pixels high. When defined, `dpi` will be ignored and the text will automatically fit the pixel resolution defined by `width` and `height`. Will be ignored if `width` is not specified or set to 0.\n * @param {string} [images[].input.text.align='left'] - text alignment (`'left'`, `'centre'`, `'center'`, `'right'`).\n * @param {boolean} [images[].input.text.justify=false] - set this to true to apply justification to the text.\n * @param {number} [images[].input.text.dpi=72] - the resolution (size) at which to render the text. Does not take effect if `height` is specified.\n * @param {boolean} [images[].input.text.rgba=false] - set this to true to enable RGBA output. This is useful for colour emoji rendering, or support for Pango markup features like `<span foreground=\"red\">Red!</span>`.\n * @param {number} [images[].input.text.spacing=0] - text line height in points. Will use the font line height if none is specified.\n * @param {Boolean} [images[].autoOrient=false] - set to true to use EXIF orientation data, if present, to orient the image.\n * @param {String} [images[].blend='over'] - how to blend this image with the image below.\n * @param {String} [images[].gravity='centre'] - gravity at which to place the overlay.\n * @param {Number} [images[].top] - the pixel offset from the top edge, an integer between -100000000 and 100000000.\n * @param {Number} [images[].left] - the pixel offset from the left edge, an integer between -100000000 and 100000000.\n * @param {Boolean} [images[].tile=false] - set to true to repeat the overlay image across the entire image with the given `gravity`.\n * @param {Boolean} [images[].premultiplied=false] - set to true to avoid premultiplying the image below. Equivalent to the `--premultiplied` vips option.\n * @param {Number} [images[].density=72] - number representing the DPI for vector overlay image.\n * @param {Object} [images[].raw] - describes overlay when using raw pixel data.\n * @param {Number} [images[].raw.width]\n * @param {Number} [images[].raw.height]\n * @param {Number} [images[].raw.channels]\n * @param {boolean} [images[].animated=false] - Set to `true` to read all frames/pages of an animated image.\n * @param {string} [images[].failOn='warning'] - @see {@link /api-constructor/ constructor parameters}\n * @param {number|boolean} [images[].limitInputPixels=268402689] - @see {@link /api-constructor/ constructor parameters}\n * @param {number|boolean} [images[].limitInputChannels=5] - @see {@link /api-constructor/ constructor parameters}\n * @returns {Sharp}\n * @throws {Error} Invalid parameters\n */\nfunction composite (images) {\n  if (!Array.isArray(images)) {\n    throw is.invalidParameterError('images to composite', 'array', images);\n  }\n  this.options.composite = images.map(image => {\n    if (!is.object(image)) {\n      throw is.invalidParameterError('image to composite', 'object', image);\n    }\n    const inputOptions = this._inputOptionsFromObject(image);\n    const composite = {\n      input: this._createInputDescriptor(image.input, inputOptions, { allowStream: false }),\n      blend: 'over',\n      tile: false,\n      left: 0,\n      top: 0,\n      hasOffset: false,\n      gravity: 0,\n      premultiplied: false\n    };\n    if (is.defined(image.blend)) {\n      if (is.string(blend[image.blend])) {\n        composite.blend = blend[image.blend];\n      } else {\n        throw is.invalidParameterError('blend', 'valid blend name', image.blend);\n      }\n    }\n    if (is.defined(image.tile)) {\n      if (is.bool(image.tile)) {\n        composite.tile = image.tile;\n      } else {\n        throw is.invalidParameterError('tile', 'boolean', image.tile);\n      }\n    }\n    if (is.defined(image.left)) {\n      if (is.integer(image.left) && is.inRange(image.left, -100000000, 100000000)) {\n        composite.left = image.left;\n      } else {\n        throw is.invalidParameterError('left', 'integer between -100000000 and 100000000', image.left);\n      }\n    }\n    if (is.defined(image.top)) {\n      if (is.integer(image.top) && is.inRange(image.top, -100000000, 100000000)) {\n        composite.top = image.top;\n      } else {\n        throw is.invalidParameterError('top', 'integer between -100000000 and 100000000', image.top);\n      }\n    }\n    if (is.defined(image.top) !== is.defined(image.left)) {\n      throw new Error('Expected both left and top to be set');\n    } else {\n      composite.hasOffset = is.integer(image.top) && is.integer(image.left);\n    }\n    if (is.defined(image.gravity)) {\n      if (is.integer(image.gravity) && is.inRange(image.gravity, 0, 8)) {\n        composite.gravity = image.gravity;\n      } else if (is.string(image.gravity) && is.integer(this.constructor.gravity[image.gravity])) {\n        composite.gravity = this.constructor.gravity[image.gravity];\n      } else {\n        throw is.invalidParameterError('gravity', 'valid gravity', image.gravity);\n      }\n    }\n    if (is.defined(image.premultiplied)) {\n      if (is.bool(image.premultiplied)) {\n        composite.premultiplied = image.premultiplied;\n      } else {\n        throw is.invalidParameterError('premultiplied', 'boolean', image.premultiplied);\n      }\n    }\n    return composite;\n  });\n  return this;\n}\n\n/**\n * Decorate the Sharp prototype with composite-related functions.\n * @module Sharp\n * @private\n */\nexport default (Sharp) => {\n  Sharp.prototype.composite = composite;\n  Sharp.blend = blend;\n};\n", "/*!\n  Copyright 2013 Lovell Fuller and others.\n  SPDX-License-Identifier: Apache-2.0\n*/\n\nimport is from './is.mjs';\n\n/**\n * How accurate an operation should be.\n * @member\n * @private\n */\nconst vipsPrecision = {\n  integer: 'integer',\n  float: 'float',\n  approximate: 'approximate'\n};\n\n/**\n * Rotate the output image.\n *\n * The provided angle is converted to a valid positive degree rotation.\n * For example, `-450` will produce a 270 degree rotation.\n *\n * When rotating by an angle other than a multiple of 90,\n * the background colour can be provided with the `background` option.\n *\n * For backwards compatibility, if no angle is provided, `.autoOrient()` will be called.\n *\n * Only one rotation can occur per pipeline (aside from an initial call without\n * arguments to orient via EXIF data). Previous calls to `rotate` in the same\n * pipeline will be ignored.\n *\n * Multi-page images can only be rotated by 180 degrees.\n *\n * Method order is important when rotating, resizing and/or extracting regions,\n * for example `.rotate(x).extract(y)` will produce a different result to `.extract(y).rotate(x)`.\n *\n * @example\n * const rotateThenResize = await sharp(input)\n *   .rotate(90)\n *   .resize({ width: 16, height: 8, fit: 'fill' })\n *   .toBuffer();\n * const resizeThenRotate = await sharp(input)\n *   .resize({ width: 16, height: 8, fit: 'fill' })\n *   .rotate(90)\n *   .toBuffer();\n *\n * @param {number} [angle=auto] angle of rotation.\n * @param {Object} [options] - if present, is an Object with optional attributes.\n * @param {string|Object} [options.background=\"#000000\"] parsed by the [color](https://www.npmjs.org/package/color) module to extract values for red, green, blue and alpha.\n * @returns {Sharp}\n * @throws {Error} Invalid parameters\n */\nfunction rotate (angle, options) {\n  if (!is.defined(angle)) {\n    return this.autoOrient();\n  }\n  if (this.options.angle || this.options.rotationAngle) {\n    this.options.debuglog('ignoring previous rotate options');\n    this.options.angle = 0;\n    this.options.rotationAngle = 0;\n  }\n  if (is.integer(angle) && !(angle % 90)) {\n    this.options.angle = angle;\n  } else if (is.number(angle)) {\n    this.options.rotationAngle = angle;\n    if (is.object(options) && options.background) {\n      this._setBackgroundColourOption('rotationBackground', options.background);\n    }\n  } else {\n    throw is.invalidParameterError('angle', 'numeric', angle);\n  }\n  return this;\n}\n\n/**\n * Auto-orient based on the EXIF `Orientation` tag, then remove the tag.\n * Mirroring is supported and may infer the use of a flip operation.\n *\n * Only the EXIF `Orientation` tag is considered; orientation carried in other\n * places, such as an XMP `tiff:Orientation` element, is left untouched and\n * remains the responsibility of the consumer.\n *\n * Previous or subsequent use of `rotate(angle)` and either `flip()` or `flop()`\n * will logically occur after auto-orientation, regardless of call order.\n *\n * @example\n * const output = await sharp(input).autoOrient().toBuffer();\n *\n * @example\n * const pipeline = sharp()\n *   .autoOrient()\n *   .resize(null, 200)\n *   .toBuffer(function (err, outputBuffer, info) {\n *     // outputBuffer contains 200px high JPEG image data,\n *     // auto-oriented using EXIF Orientation tag\n *     // info.width and info.height contain the dimensions of the resized image\n *   });\n * readableStream.pipe(pipeline);\n *\n * @returns {Sharp}\n */\nfunction autoOrient () {\n  this.options.input.autoOrient = true;\n  return this;\n}\n\n/**\n * Mirror the image vertically (up-down) about the x-axis.\n * This always occurs before rotation, if any.\n *\n * This operation does not work correctly with multi-page images.\n *\n * @example\n * const output = await sharp(input).flip().toBuffer();\n *\n * @param {Boolean} [flip=true]\n * @returns {Sharp}\n */\nfunction flip (flip) {\n  this.options.flip = is.bool(flip) ? flip : true;\n  return this;\n}\n\n/**\n * Mirror the image horizontally (left-right) about the y-axis.\n * This always occurs before rotation, if any.\n *\n * @example\n * const output = await sharp(input).flop().toBuffer();\n *\n * @param {Boolean} [flop=true]\n * @returns {Sharp}\n */\nfunction flop (flop) {\n  this.options.flop = is.bool(flop) ? flop : true;\n  return this;\n}\n\n/**\n * Perform an affine transform on an image. This operation will always occur after resizing, extraction and rotation, if any.\n *\n * You must provide an array of length 4 or a 2x2 affine transformation matrix.\n * By default, new pixels are filled with a black background. You can provide a background colour with the `background` option.\n * A particular interpolator may also be specified. Set the `interpolator` option to an attribute of the `sharp.interpolators` Object e.g. `sharp.interpolators.nohalo`.\n *\n * In the case of a 2x2 matrix, the transform is:\n * - X = `matrix[0, 0]` \\* (x + `idx`) + `matrix[0, 1]` \\* (y + `idy`) + `odx`\n * - Y = `matrix[1, 0]` \\* (x + `idx`) + `matrix[1, 1]` \\* (y + `idy`) + `ody`\n *\n * where:\n * - x and y are the coordinates in input image.\n * - X and Y are the coordinates in output image.\n * - (0,0) is the upper left corner.\n *\n * @since 0.27.0\n *\n * @example\n * const pipeline = sharp()\n *   .affine([[1, 0.3], [0.1, 0.7]], {\n *      background: 'white',\n *      interpolator: sharp.interpolators.nohalo\n *   })\n *   .toBuffer((err, outputBuffer, info) => {\n *      // outputBuffer contains the transformed image\n *      // info.width and info.height contain the new dimensions\n *   });\n *\n * inputStream\n *   .pipe(pipeline);\n *\n * @param {Array<Array<number>>|Array<number>} matrix - affine transformation matrix\n * @param {Object} [options] - if present, is an Object with optional attributes.\n * @param {String|Object} [options.background=\"#000000\"] - parsed by the [color](https://www.npmjs.org/package/color) module to extract values for red, green, blue and alpha.\n * @param {Number} [options.idx=0] - input horizontal offset\n * @param {Number} [options.idy=0] - input vertical offset\n * @param {Number} [options.odx=0] - output horizontal offset\n * @param {Number} [options.ody=0] - output vertical offset\n * @param {String} [options.interpolator=sharp.interpolators.bicubic] - interpolator\n * @returns {Sharp}\n * @throws {Error} Invalid parameters\n */\nfunction affine (matrix, options) {\n  const isValidShape = Array.isArray(matrix) && (\n    // 1x4 array of numbers\n    (matrix.length === 4 && matrix.every(is.number)) ||\n    // 2x2 array of arrays of numbers\n    (matrix.length === 2 && matrix.every((row) => Array.isArray(row) && row.length === 2))\n  );\n  const flatMatrix = isValidShape ? matrix.flat() : [];\n  if (flatMatrix.length === 4 && flatMatrix.every(is.number)) {\n    this.options.affineMatrix = flatMatrix;\n  } else {\n    throw is.invalidParameterError('matrix', '1x4 or 2x2 array', matrix);\n  }\n\n  if (is.defined(options)) {\n    if (is.object(options)) {\n      this._setBackgroundColourOption('affineBackground', options.background);\n      if (is.defined(options.idx)) {\n        if (is.number(options.idx)) {\n          this.options.affineIdx = options.idx;\n        } else {\n          throw is.invalidParameterError('options.idx', 'number', options.idx);\n        }\n      }\n      if (is.defined(options.idy)) {\n        if (is.number(options.idy)) {\n          this.options.affineIdy = options.idy;\n        } else {\n          throw is.invalidParameterError('options.idy', 'number', options.idy);\n        }\n      }\n      if (is.defined(options.odx)) {\n        if (is.number(options.odx)) {\n          this.options.affineOdx = options.odx;\n        } else {\n          throw is.invalidParameterError('options.odx', 'number', options.odx);\n        }\n      }\n      if (is.defined(options.ody)) {\n        if (is.number(options.ody)) {\n          this.options.affineOdy = options.ody;\n        } else {\n          throw is.invalidParameterError('options.ody', 'number', options.ody);\n        }\n      }\n      if (is.defined(options.interpolator)) {\n        if (is.inArray(options.interpolator, Object.values(this.constructor.interpolators))) {\n          this.options.affineInterpolator = options.interpolator;\n        } else {\n          throw is.invalidParameterError('options.interpolator', 'valid interpolator name', options.interpolator);\n        }\n      }\n    } else {\n      throw is.invalidParameterError('options', 'object', options);\n    }\n  }\n\n  return this;\n}\n\n/**\n * Sharpen the image.\n *\n * When used without parameters, performs a fast, mild sharpen of the output image.\n *\n * When a `sigma` is provided, performs a slower, more accurate sharpen of the L channel in the LAB colour space.\n * Fine-grained control over the level of sharpening in \"flat\" (m1) and \"jagged\" (m2) areas is available.\n *\n * See {@link https://www.libvips.org/API/current/method.Image.sharpen.html libvips sharpen} operation.\n *\n * @example\n * const data = await sharp(input).sharpen().toBuffer();\n *\n * @example\n * const data = await sharp(input).sharpen({ sigma: 2 }).toBuffer();\n *\n * @example\n * const data = await sharp(input)\n *   .sharpen({\n *     sigma: 2,\n *     m1: 0,\n *     m2: 3,\n *     x1: 3,\n *     y2: 15,\n *     y3: 15,\n *   })\n *   .toBuffer();\n *\n * @param {Object} [options] - if present, is an Object with attributes\n * @param {number} [options.sigma] - the sigma of the Gaussian mask, where `sigma = 1 + radius / 2`, between 0.000001 and 10\n * @param {number} [options.m1=1.0] - the level of sharpening to apply to \"flat\" areas, between 0 and 1000000\n * @param {number} [options.m2=2.0] - the level of sharpening to apply to \"jagged\" areas, between 0 and 1000000\n * @param {number} [options.x1=2.0] - threshold between \"flat\" and \"jagged\", between 0 and 1000000\n * @param {number} [options.y2=10.0] - maximum amount of brightening, between 0 and 1000000\n * @param {number} [options.y3=20.0] - maximum amount of darkening, between 0 and 1000000\n * @returns {Sharp}\n * @throws {Error} Invalid parameters\n */\nfunction sharpen (options) {\n  if (is.plainObject(options)) {\n    if (is.number(options.sigma) && is.inRange(options.sigma, 0.000001, 10)) {\n      this.options.sharpenSigma = options.sigma;\n    } else {\n      throw is.invalidParameterError('options.sigma', 'number between 0.000001 and 10', options.sigma);\n    }\n    if (is.defined(options.m1)) {\n      if (is.number(options.m1) && is.inRange(options.m1, 0, 1000000)) {\n        this.options.sharpenM1 = options.m1;\n      } else {\n        throw is.invalidParameterError('options.m1', 'number between 0 and 1000000', options.m1);\n      }\n    }\n    if (is.defined(options.m2)) {\n      if (is.number(options.m2) && is.inRange(options.m2, 0, 1000000)) {\n        this.options.sharpenM2 = options.m2;\n      } else {\n        throw is.invalidParameterError('options.m2', 'number between 0 and 1000000', options.m2);\n      }\n    }\n    if (is.defined(options.x1)) {\n      if (is.number(options.x1) && is.inRange(options.x1, 0, 1000000)) {\n        this.options.sharpenX1 = options.x1;\n      } else {\n        throw is.invalidParameterError('options.x1', 'number between 0 and 1000000', options.x1);\n      }\n    }\n    if (is.defined(options.y2)) {\n      if (is.number(options.y2) && is.inRange(options.y2, 0, 1000000)) {\n        this.options.sharpenY2 = options.y2;\n      } else {\n        throw is.invalidParameterError('options.y2', 'number between 0 and 1000000', options.y2);\n      }\n    }\n    if (is.defined(options.y3)) {\n      if (is.number(options.y3) && is.inRange(options.y3, 0, 1000000)) {\n        this.options.sharpenY3 = options.y3;\n      } else {\n        throw is.invalidParameterError('options.y3', 'number between 0 and 1000000', options.y3);\n      }\n    }\n  } else {\n    this.options.sharpenSigma = -1;\n  }\n  return this;\n}\n\n/**\n * Apply median filter.\n * When used without parameters the default window is 3x3.\n *\n * @example\n * const output = await sharp(input).median().toBuffer();\n *\n * @example\n * const output = await sharp(input).median(5).toBuffer();\n *\n * @param {number} [size=3] square mask size: size x size\n * @returns {Sharp}\n * @throws {Error} Invalid parameters\n */\nfunction median (size) {\n  if (!is.defined(size)) {\n    // No arguments: default to 3x3\n    this.options.medianSize = 3;\n  } else if (is.integer(size) && is.inRange(size, 1, 1000)) {\n    // Numeric argument: specific sigma\n    this.options.medianSize = size;\n  } else {\n    throw is.invalidParameterError('size', 'integer between 1 and 1000', size);\n  }\n  return this;\n}\n\n/**\n * Blur the image.\n *\n * When used without parameters, performs a fast 3x3 box blur (equivalent to a box linear filter).\n *\n * When a `sigma` is provided, performs a slower, more accurate Gaussian blur.\n *\n * @example\n * const boxBlurred = await sharp(input)\n *   .blur()\n *   .toBuffer();\n *\n * @example\n * const gaussianBlurred = await sharp(input)\n *   .blur(5)\n *   .toBuffer();\n *\n * @param {Object|number|Boolean} [options]\n * @param {number} [options.sigma] a value between 0.3 and 1000 representing the sigma of the Gaussian mask, where `sigma = 1 + radius / 2`.\n * @param {string} [options.precision='integer'] How accurate the operation should be, one of: integer, float, approximate.\n * @param {number} [options.minAmplitude=0.2] A value between 0.001 and 1. A smaller value will generate a larger, more accurate mask.\n * @returns {Sharp}\n * @throws {Error} Invalid parameters\n */\nfunction blur (options) {\n  let sigma;\n  if (is.number(options)) {\n    sigma = options;\n  } else if (is.plainObject(options)) {\n    if (!is.number(options.sigma)) {\n      throw is.invalidParameterError('options.sigma', 'number between 0.3 and 1000', sigma);\n    }\n    sigma = options.sigma;\n    if ('precision' in options) {\n      if (is.string(vipsPrecision[options.precision])) {\n        this.options.precision = vipsPrecision[options.precision];\n      } else {\n        throw is.invalidParameterError('precision', 'one of: integer, float, approximate', options.precision);\n      }\n    }\n    if ('minAmplitude' in options) {\n      if (is.number(options.minAmplitude) && is.inRange(options.minAmplitude, 0.001, 1)) {\n        this.options.minAmpl = options.minAmplitude;\n      } else {\n        throw is.invalidParameterError('minAmplitude', 'number between 0.001 and 1', options.minAmplitude);\n      }\n    }\n  }\n\n  if (!is.defined(options)) {\n    // No arguments: default to mild blur\n    this.options.blurSigma = -1;\n  } else if (is.bool(options)) {\n    // Boolean argument: apply mild blur?\n    this.options.blurSigma = options ? -1 : 0;\n  } else if (is.number(sigma) && is.inRange(sigma, 0.3, 1000)) {\n    // Numeric argument: specific sigma\n    this.options.blurSigma = sigma;\n  } else {\n    throw is.invalidParameterError('sigma', 'number between 0.3 and 1000', sigma);\n  }\n\n  return this;\n}\n\n/**\n * Expand foreground objects using the dilate morphological operator.\n *\n * @example\n * const output = await sharp(input)\n *   .dilate()\n *   .toBuffer();\n *\n * @param {Number} [width=1] dilation width in pixels.\n * @returns {Sharp}\n * @throws {Error} Invalid parameters\n */\nfunction dilate (width) {\n  if (!is.defined(width)) {\n    this.options.dilateWidth = 1;\n  } else if (is.integer(width) && is.inRange(width, 1, 65536)) {\n    this.options.dilateWidth = width;\n  } else {\n    throw is.invalidParameterError('width', 'integer between 1 and 65536', width);\n  }\n  return this;\n}\n\n/**\n * Shrink foreground objects using the erode morphological operator.\n *\n * @example\n * const output = await sharp(input)\n *   .erode()\n *   .toBuffer();\n *\n * @param {Number} [width=1] erosion width in pixels.\n * @returns {Sharp}\n * @throws {Error} Invalid parameters\n */\nfunction erode (width) {\n  if (!is.defined(width)) {\n    this.options.erodeWidth = 1;\n  } else if (is.integer(width) && is.inRange(width, 1, 65536)) {\n    this.options.erodeWidth = width;\n  } else {\n    throw is.invalidParameterError('width', 'integer between 1 and 65536', width);\n  }\n  return this;\n}\n\n/**\n * Merge alpha transparency channel, if any, with a background, then remove the alpha channel.\n *\n * See also {@link /api-channel#removealpha removeAlpha}.\n *\n * @example\n * await sharp(rgbaInput)\n *   .flatten({ background: '#F0A703' })\n *   .toBuffer();\n *\n * @param {Object} [options]\n * @param {string|Object} [options.background={r: 0, g: 0, b: 0}] - background colour, parsed by the [color](https://www.npmjs.org/package/color) module, defaults to black.\n * @returns {Sharp}\n */\nfunction flatten (options) {\n  this.options.flatten = is.bool(options) ? options : true;\n  if (is.object(options)) {\n    this._setBackgroundColourOption('flattenBackground', options.background);\n  }\n  return this;\n}\n\n/**\n * Ensure the image has an alpha channel\n * with all white pixel values made fully transparent.\n *\n * Existing alpha channel values for non-white pixels remain unchanged.\n *\n * @since 0.32.1\n *\n * @example\n * await sharp(rgbInput)\n *   .unflatten()\n *   .toBuffer();\n *\n * @example\n * await sharp(rgbInput)\n *   .threshold(128, { grayscale: false }) // converter bright pixels to white\n *   .unflatten()\n *   .toBuffer();\n */\nfunction unflatten () {\n  this.options.unflatten = true;\n  return this;\n}\n\n/**\n * Apply a gamma correction by reducing the encoding (darken) pre-resize at a factor of `1/gamma`\n * then increasing the encoding (brighten) post-resize at a factor of `gamma`.\n * This can improve the perceived brightness of a resized image in non-linear colour spaces.\n * JPEG and WebP input images will not take advantage of the shrink-on-load performance optimisation\n * when applying a gamma correction.\n *\n * Supply a second argument to use a different output gamma value, otherwise the first value is used in both cases.\n *\n * @param {number} [gamma=2.2] value between 1.0 and 3.0.\n * @param {number} [gammaOut] value between 1.0 and 3.0. (optional, defaults to same as `gamma`)\n * @returns {Sharp}\n * @throws {Error} Invalid parameters\n */\nfunction gamma (gamma, gammaOut) {\n  if (!is.defined(gamma)) {\n    // Default gamma correction of 2.2 (sRGB)\n    this.options.gamma = 2.2;\n  } else if (is.number(gamma) && is.inRange(gamma, 1, 3)) {\n    this.options.gamma = gamma;\n  } else {\n    throw is.invalidParameterError('gamma', 'number between 1.0 and 3.0', gamma);\n  }\n  if (!is.defined(gammaOut)) {\n    // Default gamma correction for output is same as input\n    this.options.gammaOut = this.options.gamma;\n  } else if (is.number(gammaOut) && is.inRange(gammaOut, 1, 3)) {\n    this.options.gammaOut = gammaOut;\n  } else {\n    throw is.invalidParameterError('gammaOut', 'number between 1.0 and 3.0', gammaOut);\n  }\n  return this;\n}\n\n/**\n * Produce the \"negative\" of the image.\n *\n * @example\n * const output = await sharp(input)\n *   .negate()\n *   .toBuffer();\n *\n * @example\n * const output = await sharp(input)\n *   .negate({ alpha: false })\n *   .toBuffer();\n *\n * @param {Object} [options]\n * @param {Boolean} [options.alpha=true] Whether or not to negate any alpha channel\n * @returns {Sharp}\n */\nfunction negate (options) {\n  this.options.negate = is.bool(options) ? options : true;\n  if (is.plainObject(options) && 'alpha' in options) {\n    if (!is.bool(options.alpha)) {\n      throw is.invalidParameterError('alpha', 'should be boolean value', options.alpha);\n    } else {\n      this.options.negateAlpha = options.alpha;\n    }\n  }\n  return this;\n}\n\n/**\n * Enhance output image contrast by stretching its luminance to cover a full dynamic range.\n *\n * Uses a histogram-based approach, taking a default range of 1% to 99% to reduce sensitivity to noise at the extremes.\n *\n * Luminance values below the `lower` percentile will be underexposed by clipping to zero.\n * Luminance values above the `upper` percentile will be overexposed by clipping to the max pixel value.\n *\n * @example\n * const output = await sharp(input)\n *   .normalise()\n *   .toBuffer();\n *\n * @example\n * const output = await sharp(input)\n *   .normalise({ lower: 0, upper: 100 })\n *   .toBuffer();\n *\n * @param {Object} [options]\n * @param {number} [options.lower=1] - Percentile below which luminance values will be underexposed.\n * @param {number} [options.upper=99] - Percentile above which luminance values will be overexposed.\n * @returns {Sharp}\n */\nfunction normalise (options) {\n  if (is.plainObject(options)) {\n    if (is.defined(options.lower)) {\n      if (is.number(options.lower) && is.inRange(options.lower, 0, 99)) {\n        this.options.normaliseLower = options.lower;\n      } else {\n        throw is.invalidParameterError('lower', 'number between 0 and 99', options.lower);\n      }\n    }\n    if (is.defined(options.upper)) {\n      if (is.number(options.upper) && is.inRange(options.upper, 1, 100)) {\n        this.options.normaliseUpper = options.upper;\n      } else {\n        throw is.invalidParameterError('upper', 'number between 1 and 100', options.upper);\n      }\n    }\n  }\n  if (this.options.normaliseLower >= this.options.normaliseUpper) {\n    throw is.invalidParameterError('range', 'lower to be less than upper',\n      `${this.options.normaliseLower} >= ${this.options.normaliseUpper}`);\n  }\n  this.options.normalise = true;\n  return this;\n}\n\n/**\n * Alternative spelling of normalise.\n *\n * @example\n * const output = await sharp(input)\n *   .normalize()\n *   .toBuffer();\n *\n * @param {Object} [options]\n * @param {number} [options.lower=1] - Percentile below which luminance values will be underexposed.\n * @param {number} [options.upper=99] - Percentile above which luminance values will be overexposed.\n * @returns {Sharp}\n */\nfunction normalize (options) {\n  return this.normalise(options);\n}\n\n/**\n * Perform contrast limiting adaptive histogram equalization\n * {@link https://en.wikipedia.org/wiki/Adaptive_histogram_equalization#Contrast_Limited_AHE CLAHE}.\n *\n * This will, in general, enhance the clarity of the image by bringing out darker details.\n *\n * @since 0.28.3\n *\n * @example\n * const output = await sharp(input)\n *   .clahe({\n *     width: 3,\n *     height: 3,\n *   })\n *   .toBuffer();\n *\n * @param {Object} options\n * @param {number} options.width - Integral width of the search window, in pixels, between 1 and 65536.\n * @param {number} options.height - Integral height of the search window, in pixels, between 1 and 65536.\n * @param {number} [options.maxSlope=3] - Integral level of brightening, between 0 and 100, where 0 disables contrast limiting.\n * @returns {Sharp}\n * @throws {Error} Invalid parameters\n */\nfunction clahe (options) {\n  if (is.plainObject(options)) {\n    if (is.integer(options.width) && is.inRange(options.width, 1, 65536)) {\n      this.options.claheWidth = options.width;\n    } else {\n      throw is.invalidParameterError('width', 'integer between 1 and 65536', options.width);\n    }\n    if (is.integer(options.height) && is.inRange(options.height, 1, 65536)) {\n      this.options.claheHeight = options.height;\n    } else {\n      throw is.invalidParameterError('height', 'integer between 1 and 65536', options.height);\n    }\n    if (is.defined(options.maxSlope)) {\n      if (is.integer(options.maxSlope) && is.inRange(options.maxSlope, 0, 100)) {\n        this.options.claheMaxSlope = options.maxSlope;\n      } else {\n        throw is.invalidParameterError('maxSlope', 'integer between 0 and 100', options.maxSlope);\n      }\n    }\n  } else {\n    throw is.invalidParameterError('options', 'plain object', options);\n  }\n  return this;\n}\n\n/**\n * Convolve the image with the specified kernel.\n *\n * @example\n * sharp(input)\n *   .convolve({\n *     width: 3,\n *     height: 3,\n *     kernel: [-1, 0, 1, -2, 0, 2, -1, 0, 1]\n *   })\n *   .raw()\n *   .toBuffer(function(err, data, info) {\n *     // data contains the raw pixel data representing the convolution\n *     // of the input image with the horizontal Sobel operator\n *   });\n *\n * @param {Object} kernel\n * @param {number} kernel.width - width of the kernel in pixels.\n * @param {number} kernel.height - height of the kernel in pixels.\n * @param {Array<number>} kernel.kernel - Array of length `width*height` containing the kernel values.\n * @param {number} [kernel.scale=sum] - the scale of the kernel in pixels.\n * @param {number} [kernel.offset=0] - the offset of the kernel in pixels.\n * @returns {Sharp}\n * @throws {Error} Invalid parameters\n */\nfunction convolve (kernel) {\n  if (!is.object(kernel) || !Array.isArray(kernel.kernel) ||\n      !is.integer(kernel.width) || !is.integer(kernel.height) ||\n      !is.inRange(kernel.width, 3, 1001) || !is.inRange(kernel.height, 3, 1001) ||\n      kernel.height * kernel.width !== kernel.kernel.length ||\n      !kernel.kernel.every(is.number)\n  ) {\n    // must pass in a kernel\n    throw new Error('Invalid convolution kernel');\n  }\n  // Default scale is sum of kernel values\n  if (!is.integer(kernel.scale)) {\n    kernel.scale = kernel.kernel.reduce((a, b) => a + b, 0);\n  }\n  // Clip scale to a minimum value of 1\n  if (kernel.scale < 1) {\n    kernel.scale = 1;\n  }\n  if (!is.integer(kernel.offset)) {\n    kernel.offset = 0;\n  }\n  this.options.convKernel = kernel;\n  return this;\n}\n\n/**\n * Any pixel value greater than or equal to the threshold value will be set to 255, otherwise it will be set to 0.\n * @param {number} [threshold=128] - a value in the range 0-255 representing the level at which the threshold will be applied.\n * @param {Object} [options]\n * @param {Boolean} [options.greyscale=true] - convert to single channel greyscale.\n * @param {Boolean} [options.grayscale=true] - alternative spelling for greyscale.\n * @returns {Sharp}\n * @throws {Error} Invalid parameters\n */\nfunction threshold (threshold, options) {\n  if (!is.defined(threshold)) {\n    this.options.threshold = 128;\n  } else if (is.bool(threshold)) {\n    this.options.threshold = threshold ? 128 : 0;\n  } else if (is.integer(threshold) && is.inRange(threshold, 0, 255)) {\n    this.options.threshold = threshold;\n  } else {\n    throw is.invalidParameterError('threshold', 'integer between 0 and 255', threshold);\n  }\n  if (!is.object(options) || options.greyscale === true || options.grayscale === true) {\n    this.options.thresholdGrayscale = true;\n  } else {\n    this.options.thresholdGrayscale = false;\n  }\n  return this;\n}\n\n/**\n * Perform a bitwise boolean operation with operand image.\n *\n * This operation creates an output image where each pixel is the result of\n * the selected bitwise boolean `operation` between the corresponding pixels of the input images.\n *\n * @param {Buffer|string} operand - Buffer containing image data or string containing the path to an image file.\n * @param {string} operator - one of `and`, `or` or `eor` to perform that bitwise operation, like the C logic operators `&`, `|` and `^` respectively.\n * @param {Object} [options]\n * @param {Object} [options.raw] - describes operand when using raw pixel data.\n * @param {number} [options.raw.width]\n * @param {number} [options.raw.height]\n * @param {number} [options.raw.channels]\n * @returns {Sharp}\n * @throws {Error} Invalid parameters\n */\nfunction boolean (operand, operator, options) {\n  this.options.boolean = this._createInputDescriptor(operand, options);\n  if (is.string(operator) && is.inArray(operator, ['and', 'or', 'eor'])) {\n    this.options.booleanOp = operator;\n  } else {\n    throw is.invalidParameterError('operator', 'one of: and, or, eor', operator);\n  }\n  return this;\n}\n\n/**\n * Apply the linear formula `a` * input + `b` to the image to adjust image levels.\n *\n * When a single number is provided, it will be used for all image channels.\n * When an array of numbers is provided, the array length must match the number of channels.\n *\n * @example\n * await sharp(input)\n *   .linear(0.5, 2)\n *   .toBuffer();\n *\n * @example\n * await sharp(rgbInput)\n *   .linear(\n *     [0.25, 0.5, 0.75],\n *     [150, 100, 50]\n *   )\n *   .toBuffer();\n *\n * @param {(number|number[])} [a=[]] multiplier\n * @param {(number|number[])} [b=[]] offset\n * @returns {Sharp}\n * @throws {Error} Invalid parameters\n */\nfunction linear (a, b) {\n  if (!is.defined(a) && is.number(b)) {\n    a = 1.0;\n  } else if (is.number(a) && !is.defined(b)) {\n    b = 0.0;\n  }\n  if (!is.defined(a)) {\n    this.options.linearA = [];\n  } else if (is.number(a)) {\n    this.options.linearA = [a];\n  } else if (Array.isArray(a) && a.length && a.every(is.number)) {\n    this.options.linearA = a;\n  } else {\n    throw is.invalidParameterError('a', 'number or array of numbers', a);\n  }\n  if (!is.defined(b)) {\n    this.options.linearB = [];\n  } else if (is.number(b)) {\n    this.options.linearB = [b];\n  } else if (Array.isArray(b) && b.length && b.every(is.number)) {\n    this.options.linearB = b;\n  } else {\n    throw is.invalidParameterError('b', 'number or array of numbers', b);\n  }\n  if (this.options.linearA.length !== this.options.linearB.length) {\n    throw new Error('Expected a and b to be arrays of the same length');\n  }\n  return this;\n}\n\n/**\n * Recombine the image with the specified matrix.\n *\n * @since 0.21.1\n *\n * @example\n * sharp(input)\n *   .recomb([\n *    [0.3588, 0.7044, 0.1368],\n *    [0.2990, 0.5870, 0.1140],\n *    [0.2392, 0.4696, 0.0912],\n *   ])\n *   .raw()\n *   .toBuffer(function(err, data, info) {\n *     // data contains the raw pixel data after applying the matrix\n *     // With this example input, a sepia filter has been applied\n *   });\n *\n * @param {Array<Array<number>>} inputMatrix - 3x3 or 4x4 Recombination matrix\n * @returns {Sharp}\n * @throws {Error} Invalid parameters\n */\nfunction recomb (inputMatrix) {\n  if (!Array.isArray(inputMatrix)) {\n    throw is.invalidParameterError('inputMatrix', 'array', inputMatrix);\n  }\n  const dimensions = inputMatrix.length;\n  if (dimensions !== 3 && dimensions !== 4) {\n    throw is.invalidParameterError('inputMatrix', '3x3 or 4x4 array', dimensions);\n  }\n  if (!inputMatrix.every((row) => Array.isArray(row) && row.length === dimensions)) {\n    throw is.invalidParameterError('inputMatrix', `array of ${dimensions} arrays of length ${dimensions}`, inputMatrix);\n  }\n  const recombMatrix = inputMatrix.flat();\n  if (!recombMatrix.every(is.number)) {\n    throw is.invalidParameterError('inputMatrix', 'array of numbers', recombMatrix);\n  }\n  this.options.recombMatrix = recombMatrix;\n  return this;\n}\n\n/**\n * Transforms the image using brightness, saturation, hue rotation, and lightness.\n * Brightness and lightness both operate on luminance, with the difference being that\n * brightness is multiplicative whereas lightness is additive.\n *\n * @since 0.22.1\n *\n * @example\n * // increase brightness by a factor of 2\n * const output = await sharp(input)\n *   .modulate({\n *     brightness: 2\n *   })\n *   .toBuffer();\n *\n * @example\n * // hue-rotate by 180 degrees\n * const output = await sharp(input)\n *   .modulate({\n *     hue: 180\n *   })\n *   .toBuffer();\n *\n * @example\n * // increase lightness by +50\n * const output = await sharp(input)\n *   .modulate({\n *     lightness: 50\n *   })\n *   .toBuffer();\n *\n * @example\n * // decrease brightness and saturation while also hue-rotating by 90 degrees\n * const output = await sharp(input)\n *   .modulate({\n *     brightness: 0.5,\n *     saturation: 0.5,\n *     hue: 90,\n *   })\n *   .toBuffer();\n *\n * @param {Object} [options]\n * @param {number} [options.brightness] Brightness multiplier\n * @param {number} [options.saturation] Saturation multiplier\n * @param {number} [options.hue] Degrees for hue rotation\n * @param {number} [options.lightness] Lightness addend\n * @returns {Sharp}\n */\nfunction modulate (options) {\n  if (!is.plainObject(options)) {\n    throw is.invalidParameterError('options', 'plain object', options);\n  }\n  if ('brightness' in options) {\n    if (is.number(options.brightness) && options.brightness >= 0) {\n      this.options.brightness = options.brightness;\n    } else {\n      throw is.invalidParameterError('brightness', 'number above zero', options.brightness);\n    }\n  }\n  if ('saturation' in options) {\n    if (is.number(options.saturation) && options.saturation >= 0) {\n      this.options.saturation = options.saturation;\n    } else {\n      throw is.invalidParameterError('saturation', 'number above zero', options.saturation);\n    }\n  }\n  if ('hue' in options) {\n    if (is.integer(options.hue)) {\n      this.options.hue = options.hue % 360;\n    } else {\n      throw is.invalidParameterError('hue', 'number', options.hue);\n    }\n  }\n  if ('lightness' in options) {\n    if (is.number(options.lightness)) {\n      this.options.lightness = options.lightness;\n    } else {\n      throw is.invalidParameterError('lightness', 'number', options.lightness);\n    }\n  }\n  return this;\n}\n\n/**\n * Decorate the Sharp prototype with operation-related functions.\n * @module Sharp\n * @private\n */\nexport default (Sharp) => {\n  Object.assign(Sharp.prototype, {\n    autoOrient,\n    rotate,\n    flip,\n    flop,\n    affine,\n    sharpen,\n    erode,\n    dilate,\n    median,\n    blur,\n    flatten,\n    unflatten,\n    gamma,\n    negate,\n    normalise,\n    normalize,\n    clahe,\n    convolve,\n    threshold,\n    boolean,\n    linear,\n    recomb,\n    modulate\n  });\n};\n", "var __defProp = Object.defineProperty;\nvar __getOwnPropDesc = Object.getOwnPropertyDescriptor;\nvar __getOwnPropNames = Object.getOwnPropertyNames;\nvar __hasOwnProp = Object.prototype.hasOwnProperty;\nvar __export = (target, all) => {\n  for (var name in all)\n    __defProp(target, name, { get: all[name], enumerable: true });\n};\nvar __copyProps = (to, from, except, desc) => {\n  if (from && typeof from === \"object\" || typeof from === \"function\") {\n    for (let key of __getOwnPropNames(from))\n      if (!__hasOwnProp.call(to, key) && key !== except)\n        __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });\n  }\n  return to;\n};\nvar __toCommonJS = (mod) => __copyProps(__defProp({}, \"__esModule\", { value: true }), mod);\n\n// node_modules/color/index.js\nvar index_exports = {};\n__export(index_exports, {\n  default: () => index_default\n});\nmodule.exports = __toCommonJS(index_exports);\n\n// node_modules/color-name/index.js\nvar colors = {\n  aliceblue: [240, 248, 255],\n  antiquewhite: [250, 235, 215],\n  aqua: [0, 255, 255],\n  aquamarine: [127, 255, 212],\n  azure: [240, 255, 255],\n  beige: [245, 245, 220],\n  bisque: [255, 228, 196],\n  black: [0, 0, 0],\n  blanchedalmond: [255, 235, 205],\n  blue: [0, 0, 255],\n  blueviolet: [138, 43, 226],\n  brown: [165, 42, 42],\n  burlywood: [222, 184, 135],\n  cadetblue: [95, 158, 160],\n  chartreuse: [127, 255, 0],\n  chocolate: [210, 105, 30],\n  coral: [255, 127, 80],\n  cornflowerblue: [100, 149, 237],\n  cornsilk: [255, 248, 220],\n  crimson: [220, 20, 60],\n  cyan: [0, 255, 255],\n  darkblue: [0, 0, 139],\n  darkcyan: [0, 139, 139],\n  darkgoldenrod: [184, 134, 11],\n  darkgray: [169, 169, 169],\n  darkgreen: [0, 100, 0],\n  darkgrey: [169, 169, 169],\n  darkkhaki: [189, 183, 107],\n  darkmagenta: [139, 0, 139],\n  darkolivegreen: [85, 107, 47],\n  darkorange: [255, 140, 0],\n  darkorchid: [153, 50, 204],\n  darkred: [139, 0, 0],\n  darksalmon: [233, 150, 122],\n  darkseagreen: [143, 188, 143],\n  darkslateblue: [72, 61, 139],\n  darkslategray: [47, 79, 79],\n  darkslategrey: [47, 79, 79],\n  darkturquoise: [0, 206, 209],\n  darkviolet: [148, 0, 211],\n  deeppink: [255, 20, 147],\n  deepskyblue: [0, 191, 255],\n  dimgray: [105, 105, 105],\n  dimgrey: [105, 105, 105],\n  dodgerblue: [30, 144, 255],\n  firebrick: [178, 34, 34],\n  floralwhite: [255, 250, 240],\n  forestgreen: [34, 139, 34],\n  fuchsia: [255, 0, 255],\n  gainsboro: [220, 220, 220],\n  ghostwhite: [248, 248, 255],\n  gold: [255, 215, 0],\n  goldenrod: [218, 165, 32],\n  gray: [128, 128, 128],\n  green: [0, 128, 0],\n  greenyellow: [173, 255, 47],\n  grey: [128, 128, 128],\n  honeydew: [240, 255, 240],\n  hotpink: [255, 105, 180],\n  indianred: [205, 92, 92],\n  indigo: [75, 0, 130],\n  ivory: [255, 255, 240],\n  khaki: [240, 230, 140],\n  lavender: [230, 230, 250],\n  lavenderblush: [255, 240, 245],\n  lawngreen: [124, 252, 0],\n  lemonchiffon: [255, 250, 205],\n  lightblue: [173, 216, 230],\n  lightcoral: [240, 128, 128],\n  lightcyan: [224, 255, 255],\n  lightgoldenrodyellow: [250, 250, 210],\n  lightgray: [211, 211, 211],\n  lightgreen: [144, 238, 144],\n  lightgrey: [211, 211, 211],\n  lightpink: [255, 182, 193],\n  lightsalmon: [255, 160, 122],\n  lightseagreen: [32, 178, 170],\n  lightskyblue: [135, 206, 250],\n  lightslategray: [119, 136, 153],\n  lightslategrey: [119, 136, 153],\n  lightsteelblue: [176, 196, 222],\n  lightyellow: [255, 255, 224],\n  lime: [0, 255, 0],\n  limegreen: [50, 205, 50],\n  linen: [250, 240, 230],\n  magenta: [255, 0, 255],\n  maroon: [128, 0, 0],\n  mediumaquamarine: [102, 205, 170],\n  mediumblue: [0, 0, 205],\n  mediumorchid: [186, 85, 211],\n  mediumpurple: [147, 112, 219],\n  mediumseagreen: [60, 179, 113],\n  mediumslateblue: [123, 104, 238],\n  mediumspringgreen: [0, 250, 154],\n  mediumturquoise: [72, 209, 204],\n  mediumvioletred: [199, 21, 133],\n  midnightblue: [25, 25, 112],\n  mintcream: [245, 255, 250],\n  mistyrose: [255, 228, 225],\n  moccasin: [255, 228, 181],\n  navajowhite: [255, 222, 173],\n  navy: [0, 0, 128],\n  oldlace: [253, 245, 230],\n  olive: [128, 128, 0],\n  olivedrab: [107, 142, 35],\n  orange: [255, 165, 0],\n  orangered: [255, 69, 0],\n  orchid: [218, 112, 214],\n  palegoldenrod: [238, 232, 170],\n  palegreen: [152, 251, 152],\n  paleturquoise: [175, 238, 238],\n  palevioletred: [219, 112, 147],\n  papayawhip: [255, 239, 213],\n  peachpuff: [255, 218, 185],\n  peru: [205, 133, 63],\n  pink: [255, 192, 203],\n  plum: [221, 160, 221],\n  powderblue: [176, 224, 230],\n  purple: [128, 0, 128],\n  rebeccapurple: [102, 51, 153],\n  red: [255, 0, 0],\n  rosybrown: [188, 143, 143],\n  royalblue: [65, 105, 225],\n  saddlebrown: [139, 69, 19],\n  salmon: [250, 128, 114],\n  sandybrown: [244, 164, 96],\n  seagreen: [46, 139, 87],\n  seashell: [255, 245, 238],\n  sienna: [160, 82, 45],\n  silver: [192, 192, 192],\n  skyblue: [135, 206, 235],\n  slateblue: [106, 90, 205],\n  slategray: [112, 128, 144],\n  slategrey: [112, 128, 144],\n  snow: [255, 250, 250],\n  springgreen: [0, 255, 127],\n  steelblue: [70, 130, 180],\n  tan: [210, 180, 140],\n  teal: [0, 128, 128],\n  thistle: [216, 191, 216],\n  tomato: [255, 99, 71],\n  turquoise: [64, 224, 208],\n  violet: [238, 130, 238],\n  wheat: [245, 222, 179],\n  white: [255, 255, 255],\n  whitesmoke: [245, 245, 245],\n  yellow: [255, 255, 0],\n  yellowgreen: [154, 205, 50]\n};\nfor (const key in colors) Object.freeze(colors[key]);\nvar color_name_default = Object.freeze(colors);\n\n// node_modules/color-string/index.js\nvar reverseNames = /* @__PURE__ */ Object.create(null);\nfor (const name in color_name_default) {\n  if (Object.hasOwn(color_name_default, name)) {\n    reverseNames[color_name_default[name]] = name;\n  }\n}\nvar cs = {\n  to: {},\n  get: {}\n};\ncs.get = function(string) {\n  const prefix = string.slice(0, 3).toLowerCase();\n  let value;\n  let model;\n  switch (prefix) {\n    case \"hsl\": {\n      value = cs.get.hsl(string);\n      model = \"hsl\";\n      break;\n    }\n    case \"hwb\": {\n      value = cs.get.hwb(string);\n      model = \"hwb\";\n      break;\n    }\n    default: {\n      value = cs.get.rgb(string);\n      model = \"rgb\";\n      break;\n    }\n  }\n  if (!value) {\n    return null;\n  }\n  return { model, value };\n};\ncs.get.rgb = function(string) {\n  if (!string) {\n    return null;\n  }\n  const abbr = /^#([a-f\\d]{3,4})$/i;\n  const hex = /^#([a-f\\d]{6})([a-f\\d]{2})?$/i;\n  const rgba = /^rgba?\\(\\s*([+-]?(?:\\d*\\.)?\\d+(?:e\\d+)?)(?=[\\s,])\\s*(?:,\\s*)?([+-]?(?:\\d*\\.)?\\d+(?:e\\d+)?)(?=[\\s,])\\s*(?:,\\s*)?([+-]?(?:\\d*\\.)?\\d+(?:e\\d+)?)\\s*(?:[\\s,|/]\\s*([+-]?(?:\\d*\\.)?\\d+(?:e\\d+)?)(%?)\\s*)?\\)$/i;\n  const per = /^rgba?\\(\\s*([+-]?[\\d.]+)%\\s*,?\\s*([+-]?[\\d.]+)%\\s*,?\\s*([+-]?[\\d.]+)%\\s*(?:[\\s,|/]\\s*([+-]?[\\d.]+)(%?)\\s*)?\\)$/i;\n  const keyword = /^(\\w+)$/;\n  let rgb = [0, 0, 0, 1];\n  let match;\n  let i;\n  let hexAlpha;\n  if (match = string.match(hex)) {\n    hexAlpha = match[2];\n    match = match[1];\n    for (i = 0; i < 3; i++) {\n      const i2 = i * 2;\n      rgb[i] = Number.parseInt(match.slice(i2, i2 + 2), 16);\n    }\n    if (hexAlpha) {\n      rgb[3] = Number.parseInt(hexAlpha, 16) / 255;\n    }\n  } else if (match = string.match(abbr)) {\n    match = match[1];\n    hexAlpha = match[3];\n    for (i = 0; i < 3; i++) {\n      rgb[i] = Number.parseInt(match[i] + match[i], 16);\n    }\n    if (hexAlpha) {\n      rgb[3] = Number.parseInt(hexAlpha + hexAlpha, 16) / 255;\n    }\n  } else if (match = string.match(rgba)) {\n    for (i = 0; i < 3; i++) {\n      rgb[i] = Number.parseFloat(match[i + 1]);\n    }\n    if (match[4]) {\n      rgb[3] = match[5] ? Number.parseFloat(match[4]) * 0.01 : Number.parseFloat(match[4]);\n    }\n  } else if (match = string.match(per)) {\n    for (i = 0; i < 3; i++) {\n      rgb[i] = Math.round(Number.parseFloat(match[i + 1]) * 2.55);\n    }\n    if (match[4]) {\n      rgb[3] = match[5] ? Number.parseFloat(match[4]) * 0.01 : Number.parseFloat(match[4]);\n    }\n  } else if (match = string.toLowerCase().match(keyword)) {\n    if (match[1] === \"transparent\") {\n      return [0, 0, 0, 0];\n    }\n    if (!Object.hasOwn(color_name_default, match[1])) {\n      return null;\n    }\n    rgb = color_name_default[match[1]].slice();\n    rgb[3] = 1;\n    return rgb;\n  } else {\n    return null;\n  }\n  for (i = 0; i < 3; i++) {\n    rgb[i] = clamp(rgb[i], 0, 255);\n  }\n  rgb[3] = clamp(rgb[3], 0, 1);\n  return rgb;\n};\ncs.get.hsl = function(string) {\n  if (!string) {\n    return null;\n  }\n  const hsl = /^hsla?\\(\\s*([+-]?(?:\\d{0,3}\\.)?\\d+)(?:deg)?\\s*,?\\s*([+-]?[\\d.]+)%\\s*,?\\s*([+-]?[\\d.]+)%\\s*(?:[,|/]\\s*([+-]?(?=\\.\\d|\\d)(?:0|[1-9]\\d*)?(?:\\.\\d*)?(?:e[+-]?\\d+)?)\\s*)?\\)$/i;\n  const match = string.match(hsl);\n  if (match) {\n    const alpha = Number.parseFloat(match[4]);\n    const h = (Number.parseFloat(match[1]) % 360 + 360) % 360;\n    const s = clamp(Number.parseFloat(match[2]), 0, 100);\n    const l = clamp(Number.parseFloat(match[3]), 0, 100);\n    const a = clamp(Number.isNaN(alpha) ? 1 : alpha, 0, 1);\n    return [h, s, l, a];\n  }\n  return null;\n};\ncs.get.hwb = function(string) {\n  if (!string) {\n    return null;\n  }\n  const hwb = /^hwb\\(\\s*([+-]?\\d{0,3}(?:\\.\\d+)?)(?:deg)?\\s*[\\s,]\\s*([+-]?[\\d.]+)%\\s*[\\s,]\\s*([+-]?[\\d.]+)%\\s*(?:[\\s,]\\s*([+-]?(?=\\.\\d|\\d)(?:0|[1-9]\\d*)?(?:\\.\\d*)?(?:e[+-]?\\d+)?)\\s*)?\\)$/i;\n  const match = string.match(hwb);\n  if (match) {\n    const alpha = Number.parseFloat(match[4]);\n    const h = (Number.parseFloat(match[1]) % 360 + 360) % 360;\n    const w = clamp(Number.parseFloat(match[2]), 0, 100);\n    const b = clamp(Number.parseFloat(match[3]), 0, 100);\n    const a = clamp(Number.isNaN(alpha) ? 1 : alpha, 0, 1);\n    return [h, w, b, a];\n  }\n  return null;\n};\ncs.to.hex = function(...rgba) {\n  return \"#\" + hexDouble(rgba[0]) + hexDouble(rgba[1]) + hexDouble(rgba[2]) + (rgba[3] < 1 ? hexDouble(Math.round(rgba[3] * 255)) : \"\");\n};\ncs.to.rgb = function(...rgba) {\n  return rgba.length < 4 || rgba[3] === 1 ? \"rgb(\" + Math.round(rgba[0]) + \", \" + Math.round(rgba[1]) + \", \" + Math.round(rgba[2]) + \")\" : \"rgba(\" + Math.round(rgba[0]) + \", \" + Math.round(rgba[1]) + \", \" + Math.round(rgba[2]) + \", \" + rgba[3] + \")\";\n};\ncs.to.rgb.percent = function(...rgba) {\n  const r = Math.round(rgba[0] / 255 * 100);\n  const g = Math.round(rgba[1] / 255 * 100);\n  const b = Math.round(rgba[2] / 255 * 100);\n  return rgba.length < 4 || rgba[3] === 1 ? \"rgb(\" + r + \"%, \" + g + \"%, \" + b + \"%)\" : \"rgba(\" + r + \"%, \" + g + \"%, \" + b + \"%, \" + rgba[3] + \")\";\n};\ncs.to.hsl = function(...hsla) {\n  return hsla.length < 4 || hsla[3] === 1 ? \"hsl(\" + hsla[0] + \", \" + hsla[1] + \"%, \" + hsla[2] + \"%)\" : \"hsla(\" + hsla[0] + \", \" + hsla[1] + \"%, \" + hsla[2] + \"%, \" + hsla[3] + \")\";\n};\ncs.to.hwb = function(...hwba) {\n  let a = \"\";\n  if (hwba.length >= 4 && hwba[3] !== 1) {\n    a = \", \" + hwba[3];\n  }\n  return \"hwb(\" + hwba[0] + \", \" + hwba[1] + \"%, \" + hwba[2] + \"%\" + a + \")\";\n};\ncs.to.keyword = function(...rgb) {\n  return reverseNames[rgb.slice(0, 3)];\n};\nfunction clamp(number_, min, max) {\n  return Math.min(Math.max(min, number_), max);\n}\nfunction hexDouble(number_) {\n  const string_ = Math.round(number_).toString(16).toUpperCase();\n  return string_.length < 2 ? \"0\" + string_ : string_;\n}\nvar color_string_default = cs;\n\n// node_modules/color-convert/conversions.js\nvar reverseKeywords = {};\nfor (const key of Object.keys(color_name_default)) {\n  reverseKeywords[color_name_default[key]] = key;\n}\nvar convert = {\n  rgb: { channels: 3, labels: \"rgb\" },\n  hsl: { channels: 3, labels: \"hsl\" },\n  hsv: { channels: 3, labels: \"hsv\" },\n  hwb: { channels: 3, labels: \"hwb\" },\n  cmyk: { channels: 4, labels: \"cmyk\" },\n  xyz: { channels: 3, labels: \"xyz\" },\n  lab: { channels: 3, labels: \"lab\" },\n  oklab: { channels: 3, labels: [\"okl\", \"oka\", \"okb\"] },\n  lch: { channels: 3, labels: \"lch\" },\n  oklch: { channels: 3, labels: [\"okl\", \"okc\", \"okh\"] },\n  hex: { channels: 1, labels: [\"hex\"] },\n  keyword: { channels: 1, labels: [\"keyword\"] },\n  ansi16: { channels: 1, labels: [\"ansi16\"] },\n  ansi256: { channels: 1, labels: [\"ansi256\"] },\n  hcg: { channels: 3, labels: [\"h\", \"c\", \"g\"] },\n  apple: { channels: 3, labels: [\"r16\", \"g16\", \"b16\"] },\n  gray: { channels: 1, labels: [\"gray\"] }\n};\nvar conversions_default = convert;\nvar LAB_FT = (6 / 29) ** 3;\nfunction srgbNonlinearTransform(c) {\n  const cc = c > 31308e-7 ? 1.055 * c ** (1 / 2.4) - 0.055 : c * 12.92;\n  return Math.min(Math.max(0, cc), 1);\n}\nfunction srgbNonlinearTransformInv(c) {\n  return c > 0.04045 ? ((c + 0.055) / 1.055) ** 2.4 : c / 12.92;\n}\nfor (const model of Object.keys(convert)) {\n  if (!(\"channels\" in convert[model])) {\n    throw new Error(\"missing channels property: \" + model);\n  }\n  if (!(\"labels\" in convert[model])) {\n    throw new Error(\"missing channel labels property: \" + model);\n  }\n  if (convert[model].labels.length !== convert[model].channels) {\n    throw new Error(\"channel and label counts mismatch: \" + model);\n  }\n  const { channels, labels } = convert[model];\n  delete convert[model].channels;\n  delete convert[model].labels;\n  Object.defineProperty(convert[model], \"channels\", { value: channels });\n  Object.defineProperty(convert[model], \"labels\", { value: labels });\n}\nconvert.rgb.hsl = function(rgb) {\n  const r = rgb[0] / 255;\n  const g = rgb[1] / 255;\n  const b = rgb[2] / 255;\n  const min = Math.min(r, g, b);\n  const max = Math.max(r, g, b);\n  const delta = max - min;\n  let h;\n  let s;\n  switch (max) {\n    case min: {\n      h = 0;\n      break;\n    }\n    case r: {\n      h = (g - b) / delta;\n      break;\n    }\n    case g: {\n      h = 2 + (b - r) / delta;\n      break;\n    }\n    case b: {\n      h = 4 + (r - g) / delta;\n      break;\n    }\n  }\n  h = Math.min(h * 60, 360);\n  if (h < 0) {\n    h += 360;\n  }\n  const l = (min + max) / 2;\n  if (max === min) {\n    s = 0;\n  } else if (l <= 0.5) {\n    s = delta / (max + min);\n  } else {\n    s = delta / (2 - max - min);\n  }\n  return [h, s * 100, l * 100];\n};\nconvert.rgb.hsv = function(rgb) {\n  let rdif;\n  let gdif;\n  let bdif;\n  let h;\n  let s;\n  const r = rgb[0] / 255;\n  const g = rgb[1] / 255;\n  const b = rgb[2] / 255;\n  const v = Math.max(r, g, b);\n  const diff = v - Math.min(r, g, b);\n  const diffc = function(c) {\n    return (v - c) / 6 / diff + 1 / 2;\n  };\n  if (diff === 0) {\n    h = 0;\n    s = 0;\n  } else {\n    s = diff / v;\n    rdif = diffc(r);\n    gdif = diffc(g);\n    bdif = diffc(b);\n    switch (v) {\n      case r: {\n        h = bdif - gdif;\n        break;\n      }\n      case g: {\n        h = 1 / 3 + rdif - bdif;\n        break;\n      }\n      case b: {\n        h = 2 / 3 + gdif - rdif;\n        break;\n      }\n    }\n    if (h < 0) {\n      h += 1;\n    } else if (h > 1) {\n      h -= 1;\n    }\n  }\n  return [\n    h * 360,\n    s * 100,\n    v * 100\n  ];\n};\nconvert.rgb.hwb = function(rgb) {\n  const r = rgb[0];\n  const g = rgb[1];\n  let b = rgb[2];\n  const h = convert.rgb.hsl(rgb)[0];\n  const w = 1 / 255 * Math.min(r, Math.min(g, b));\n  b = 1 - 1 / 255 * Math.max(r, Math.max(g, b));\n  return [h, w * 100, b * 100];\n};\nconvert.rgb.oklab = function(rgb) {\n  const r = srgbNonlinearTransformInv(rgb[0] / 255);\n  const g = srgbNonlinearTransformInv(rgb[1] / 255);\n  const b = srgbNonlinearTransformInv(rgb[2] / 255);\n  const lp = Math.cbrt(0.4122214708 * r + 0.5363325363 * g + 0.0514459929 * b);\n  const mp = Math.cbrt(0.2119034982 * r + 0.6806995451 * g + 0.1073969566 * b);\n  const sp = Math.cbrt(0.0883024619 * r + 0.2817188376 * g + 0.6299787005 * b);\n  const l = 0.2104542553 * lp + 0.793617785 * mp - 0.0040720468 * sp;\n  const aa = 1.9779984951 * lp - 2.428592205 * mp + 0.4505937099 * sp;\n  const bb = 0.0259040371 * lp + 0.7827717662 * mp - 0.808675766 * sp;\n  return [l * 100, aa * 100, bb * 100];\n};\nconvert.rgb.cmyk = function(rgb) {\n  const r = rgb[0] / 255;\n  const g = rgb[1] / 255;\n  const b = rgb[2] / 255;\n  const k = Math.min(1 - r, 1 - g, 1 - b);\n  const c = (1 - r - k) / (1 - k) || 0;\n  const m = (1 - g - k) / (1 - k) || 0;\n  const y = (1 - b - k) / (1 - k) || 0;\n  return [c * 100, m * 100, y * 100, k * 100];\n};\nfunction comparativeDistance(x, y) {\n  return (x[0] - y[0]) ** 2 + (x[1] - y[1]) ** 2 + (x[2] - y[2]) ** 2;\n}\nconvert.rgb.keyword = function(rgb) {\n  const reversed = reverseKeywords[rgb];\n  if (reversed) {\n    return reversed;\n  }\n  let currentClosestDistance = Number.POSITIVE_INFINITY;\n  let currentClosestKeyword;\n  for (const keyword of Object.keys(color_name_default)) {\n    const value = color_name_default[keyword];\n    const distance = comparativeDistance(rgb, value);\n    if (distance < currentClosestDistance) {\n      currentClosestDistance = distance;\n      currentClosestKeyword = keyword;\n    }\n  }\n  return currentClosestKeyword;\n};\nconvert.keyword.rgb = function(keyword) {\n  return [...color_name_default[keyword]];\n};\nconvert.rgb.xyz = function(rgb) {\n  const r = srgbNonlinearTransformInv(rgb[0] / 255);\n  const g = srgbNonlinearTransformInv(rgb[1] / 255);\n  const b = srgbNonlinearTransformInv(rgb[2] / 255);\n  const x = r * 0.4124564 + g * 0.3575761 + b * 0.1804375;\n  const y = r * 0.2126729 + g * 0.7151522 + b * 0.072175;\n  const z = r * 0.0193339 + g * 0.119192 + b * 0.9503041;\n  return [x * 100, y * 100, z * 100];\n};\nconvert.rgb.lab = function(rgb) {\n  const xyz = convert.rgb.xyz(rgb);\n  let x = xyz[0];\n  let y = xyz[1];\n  let z = xyz[2];\n  x /= 95.047;\n  y /= 100;\n  z /= 108.883;\n  x = x > LAB_FT ? x ** (1 / 3) : 7.787 * x + 16 / 116;\n  y = y > LAB_FT ? y ** (1 / 3) : 7.787 * y + 16 / 116;\n  z = z > LAB_FT ? z ** (1 / 3) : 7.787 * z + 16 / 116;\n  const l = 116 * y - 16;\n  const a = 500 * (x - y);\n  const b = 200 * (y - z);\n  return [l, a, b];\n};\nconvert.hsl.rgb = function(hsl) {\n  const h = hsl[0] / 360;\n  const s = hsl[1] / 100;\n  const l = hsl[2] / 100;\n  let t3;\n  let value;\n  if (s === 0) {\n    value = l * 255;\n    return [value, value, value];\n  }\n  const t2 = l < 0.5 ? l * (1 + s) : l + s - l * s;\n  const t1 = 2 * l - t2;\n  const rgb = [0, 0, 0];\n  for (let i = 0; i < 3; i++) {\n    t3 = h + 1 / 3 * -(i - 1);\n    if (t3 < 0) {\n      t3++;\n    }\n    if (t3 > 1) {\n      t3--;\n    }\n    if (6 * t3 < 1) {\n      value = t1 + (t2 - t1) * 6 * t3;\n    } else if (2 * t3 < 1) {\n      value = t2;\n    } else if (3 * t3 < 2) {\n      value = t1 + (t2 - t1) * (2 / 3 - t3) * 6;\n    } else {\n      value = t1;\n    }\n    rgb[i] = value * 255;\n  }\n  return rgb;\n};\nconvert.hsl.hsv = function(hsl) {\n  const h = hsl[0];\n  let s = hsl[1] / 100;\n  let l = hsl[2] / 100;\n  let smin = s;\n  const lmin = Math.max(l, 0.01);\n  l *= 2;\n  s *= l <= 1 ? l : 2 - l;\n  smin *= lmin <= 1 ? lmin : 2 - lmin;\n  const v = (l + s) / 2;\n  const sv = l === 0 ? 2 * smin / (lmin + smin) : 2 * s / (l + s);\n  return [h, sv * 100, v * 100];\n};\nconvert.hsv.rgb = function(hsv) {\n  const h = hsv[0] / 60;\n  const s = hsv[1] / 100;\n  let v = hsv[2] / 100;\n  const hi = Math.floor(h) % 6;\n  const f = h - Math.floor(h);\n  const p = 255 * v * (1 - s);\n  const q = 255 * v * (1 - s * f);\n  const t = 255 * v * (1 - s * (1 - f));\n  v *= 255;\n  switch (hi) {\n    case 0: {\n      return [v, t, p];\n    }\n    case 1: {\n      return [q, v, p];\n    }\n    case 2: {\n      return [p, v, t];\n    }\n    case 3: {\n      return [p, q, v];\n    }\n    case 4: {\n      return [t, p, v];\n    }\n    case 5: {\n      return [v, p, q];\n    }\n  }\n};\nconvert.hsv.hsl = function(hsv) {\n  const h = hsv[0];\n  const s = hsv[1] / 100;\n  const v = hsv[2] / 100;\n  const vmin = Math.max(v, 0.01);\n  let sl;\n  let l;\n  l = (2 - s) * v;\n  const lmin = (2 - s) * vmin;\n  sl = s * vmin;\n  sl /= lmin <= 1 ? lmin : 2 - lmin;\n  sl = sl || 0;\n  l /= 2;\n  return [h, sl * 100, l * 100];\n};\nconvert.hwb.rgb = function(hwb) {\n  const h = hwb[0] / 360;\n  let wh = hwb[1] / 100;\n  let bl = hwb[2] / 100;\n  const ratio = wh + bl;\n  let f;\n  if (ratio > 1) {\n    wh /= ratio;\n    bl /= ratio;\n  }\n  const i = Math.floor(6 * h);\n  const v = 1 - bl;\n  f = 6 * h - i;\n  if ((i & 1) !== 0) {\n    f = 1 - f;\n  }\n  const n = wh + f * (v - wh);\n  let r;\n  let g;\n  let b;\n  switch (i) {\n    default:\n    case 6:\n    case 0: {\n      r = v;\n      g = n;\n      b = wh;\n      break;\n    }\n    case 1: {\n      r = n;\n      g = v;\n      b = wh;\n      break;\n    }\n    case 2: {\n      r = wh;\n      g = v;\n      b = n;\n      break;\n    }\n    case 3: {\n      r = wh;\n      g = n;\n      b = v;\n      break;\n    }\n    case 4: {\n      r = n;\n      g = wh;\n      b = v;\n      break;\n    }\n    case 5: {\n      r = v;\n      g = wh;\n      b = n;\n      break;\n    }\n  }\n  return [r * 255, g * 255, b * 255];\n};\nconvert.cmyk.rgb = function(cmyk) {\n  const c = cmyk[0] / 100;\n  const m = cmyk[1] / 100;\n  const y = cmyk[2] / 100;\n  const k = cmyk[3] / 100;\n  const r = 1 - Math.min(1, c * (1 - k) + k);\n  const g = 1 - Math.min(1, m * (1 - k) + k);\n  const b = 1 - Math.min(1, y * (1 - k) + k);\n  return [r * 255, g * 255, b * 255];\n};\nconvert.xyz.rgb = function(xyz) {\n  const x = xyz[0] / 100;\n  const y = xyz[1] / 100;\n  const z = xyz[2] / 100;\n  let r;\n  let g;\n  let b;\n  r = x * 3.2404542 + y * -1.5371385 + z * -0.4985314;\n  g = x * -0.969266 + y * 1.8760108 + z * 0.041556;\n  b = x * 0.0556434 + y * -0.2040259 + z * 1.0572252;\n  r = srgbNonlinearTransform(r);\n  g = srgbNonlinearTransform(g);\n  b = srgbNonlinearTransform(b);\n  return [r * 255, g * 255, b * 255];\n};\nconvert.xyz.lab = function(xyz) {\n  let x = xyz[0];\n  let y = xyz[1];\n  let z = xyz[2];\n  x /= 95.047;\n  y /= 100;\n  z /= 108.883;\n  x = x > LAB_FT ? x ** (1 / 3) : 7.787 * x + 16 / 116;\n  y = y > LAB_FT ? y ** (1 / 3) : 7.787 * y + 16 / 116;\n  z = z > LAB_FT ? z ** (1 / 3) : 7.787 * z + 16 / 116;\n  const l = 116 * y - 16;\n  const a = 500 * (x - y);\n  const b = 200 * (y - z);\n  return [l, a, b];\n};\nconvert.xyz.oklab = function(xyz) {\n  const x = xyz[0] / 100;\n  const y = xyz[1] / 100;\n  const z = xyz[2] / 100;\n  const lp = Math.cbrt(0.8189330101 * x + 0.3618667424 * y - 0.1288597137 * z);\n  const mp = Math.cbrt(0.0329845436 * x + 0.9293118715 * y + 0.0361456387 * z);\n  const sp = Math.cbrt(0.0482003018 * x + 0.2643662691 * y + 0.633851707 * z);\n  const l = 0.2104542553 * lp + 0.793617785 * mp - 0.0040720468 * sp;\n  const a = 1.9779984951 * lp - 2.428592205 * mp + 0.4505937099 * sp;\n  const b = 0.0259040371 * lp + 0.7827717662 * mp - 0.808675766 * sp;\n  return [l * 100, a * 100, b * 100];\n};\nconvert.oklab.oklch = function(oklab) {\n  return convert.lab.lch(oklab);\n};\nconvert.oklab.xyz = function(oklab) {\n  const ll = oklab[0] / 100;\n  const a = oklab[1] / 100;\n  const b = oklab[2] / 100;\n  const l = (0.999999998 * ll + 0.396337792 * a + 0.215803758 * b) ** 3;\n  const m = (1.000000008 * ll - 0.105561342 * a - 0.063854175 * b) ** 3;\n  const s = (1.000000055 * ll - 0.089484182 * a - 1.291485538 * b) ** 3;\n  const x = 1.227013851 * l - 0.55779998 * m + 0.281256149 * s;\n  const y = -0.040580178 * l + 1.11225687 * m - 0.071676679 * s;\n  const z = -0.076381285 * l - 0.421481978 * m + 1.58616322 * s;\n  return [x * 100, y * 100, z * 100];\n};\nconvert.oklab.rgb = function(oklab) {\n  const ll = oklab[0] / 100;\n  const aa = oklab[1] / 100;\n  const bb = oklab[2] / 100;\n  const l = (ll + 0.3963377774 * aa + 0.2158037573 * bb) ** 3;\n  const m = (ll - 0.1055613458 * aa - 0.0638541728 * bb) ** 3;\n  const s = (ll - 0.0894841775 * aa - 1.291485548 * bb) ** 3;\n  const r = srgbNonlinearTransform(4.0767416621 * l - 3.3077115913 * m + 0.2309699292 * s);\n  const g = srgbNonlinearTransform(-1.2684380046 * l + 2.6097574011 * m - 0.3413193965 * s);\n  const b = srgbNonlinearTransform(-0.0041960863 * l - 0.7034186147 * m + 1.707614701 * s);\n  return [r * 255, g * 255, b * 255];\n};\nconvert.oklch.oklab = function(oklch) {\n  return convert.lch.lab(oklch);\n};\nconvert.lab.xyz = function(lab) {\n  const l = lab[0];\n  const a = lab[1];\n  const b = lab[2];\n  let x;\n  let y;\n  let z;\n  y = (l + 16) / 116;\n  x = a / 500 + y;\n  z = y - b / 200;\n  const y2 = y ** 3;\n  const x2 = x ** 3;\n  const z2 = z ** 3;\n  y = y2 > LAB_FT ? y2 : (y - 16 / 116) / 7.787;\n  x = x2 > LAB_FT ? x2 : (x - 16 / 116) / 7.787;\n  z = z2 > LAB_FT ? z2 : (z - 16 / 116) / 7.787;\n  x *= 95.047;\n  y *= 100;\n  z *= 108.883;\n  return [x, y, z];\n};\nconvert.lab.lch = function(lab) {\n  const l = lab[0];\n  const a = lab[1];\n  const b = lab[2];\n  let h;\n  const hr = Math.atan2(b, a);\n  h = hr * 360 / 2 / Math.PI;\n  if (h < 0) {\n    h += 360;\n  }\n  const c = Math.sqrt(a * a + b * b);\n  return [l, c, h];\n};\nconvert.lch.lab = function(lch) {\n  const l = lch[0];\n  const c = lch[1];\n  const h = lch[2];\n  const hr = h / 360 * 2 * Math.PI;\n  const a = c * Math.cos(hr);\n  const b = c * Math.sin(hr);\n  return [l, a, b];\n};\nconvert.rgb.ansi16 = function(args, saturation = null) {\n  const [r, g, b] = args;\n  let value = saturation === null ? convert.rgb.hsv(args)[2] : saturation;\n  value = Math.round(value / 50);\n  if (value === 0) {\n    return 30;\n  }\n  let ansi = 30 + (Math.round(b / 255) << 2 | Math.round(g / 255) << 1 | Math.round(r / 255));\n  if (value === 2) {\n    ansi += 60;\n  }\n  return ansi;\n};\nconvert.hsv.ansi16 = function(args) {\n  return convert.rgb.ansi16(convert.hsv.rgb(args), args[2]);\n};\nconvert.rgb.ansi256 = function(args) {\n  const r = args[0];\n  const g = args[1];\n  const b = args[2];\n  if (r >> 4 === g >> 4 && g >> 4 === b >> 4) {\n    if (r < 8) {\n      return 16;\n    }\n    if (r > 248) {\n      return 231;\n    }\n    return Math.round((r - 8) / 247 * 24) + 232;\n  }\n  const ansi = 16 + 36 * Math.round(r / 255 * 5) + 6 * Math.round(g / 255 * 5) + Math.round(b / 255 * 5);\n  return ansi;\n};\nconvert.ansi16.rgb = function(args) {\n  args = args[0];\n  let color = args % 10;\n  if (color === 0 || color === 7) {\n    if (args > 50) {\n      color += 3.5;\n    }\n    color = color / 10.5 * 255;\n    return [color, color, color];\n  }\n  const mult = (Math.trunc(args > 50) + 1) * 0.5;\n  const r = (color & 1) * mult * 255;\n  const g = (color >> 1 & 1) * mult * 255;\n  const b = (color >> 2 & 1) * mult * 255;\n  return [r, g, b];\n};\nconvert.ansi256.rgb = function(args) {\n  args = args[0];\n  if (args >= 232) {\n    const c = (args - 232) * 10 + 8;\n    return [c, c, c];\n  }\n  args -= 16;\n  let rem;\n  const r = Math.floor(args / 36) / 5 * 255;\n  const g = Math.floor((rem = args % 36) / 6) / 5 * 255;\n  const b = rem % 6 / 5 * 255;\n  return [r, g, b];\n};\nconvert.rgb.hex = function(args) {\n  const integer = ((Math.round(args[0]) & 255) << 16) + ((Math.round(args[1]) & 255) << 8) + (Math.round(args[2]) & 255);\n  const string = integer.toString(16).toUpperCase();\n  return \"000000\".slice(string.length) + string;\n};\nconvert.hex.rgb = function(args) {\n  const match = args.toString(16).match(/[a-f\\d]{6}|[a-f\\d]{3}/i);\n  if (!match) {\n    return [0, 0, 0];\n  }\n  let colorString = match[0];\n  if (match[0].length === 3) {\n    colorString = [...colorString].map((char) => char + char).join(\"\");\n  }\n  const integer = Number.parseInt(colorString, 16);\n  const r = integer >> 16 & 255;\n  const g = integer >> 8 & 255;\n  const b = integer & 255;\n  return [r, g, b];\n};\nconvert.rgb.hcg = function(rgb) {\n  const r = rgb[0] / 255;\n  const g = rgb[1] / 255;\n  const b = rgb[2] / 255;\n  const max = Math.max(Math.max(r, g), b);\n  const min = Math.min(Math.min(r, g), b);\n  const chroma = max - min;\n  let hue;\n  const grayscale = chroma < 1 ? min / (1 - chroma) : 0;\n  if (chroma <= 0) {\n    hue = 0;\n  } else if (max === r) {\n    hue = (g - b) / chroma % 6;\n  } else if (max === g) {\n    hue = 2 + (b - r) / chroma;\n  } else {\n    hue = 4 + (r - g) / chroma;\n  }\n  hue /= 6;\n  hue %= 1;\n  return [hue * 360, chroma * 100, grayscale * 100];\n};\nconvert.hsl.hcg = function(hsl) {\n  const s = hsl[1] / 100;\n  const l = hsl[2] / 100;\n  const c = l < 0.5 ? 2 * s * l : 2 * s * (1 - l);\n  let f = 0;\n  if (c < 1) {\n    f = (l - 0.5 * c) / (1 - c);\n  }\n  return [hsl[0], c * 100, f * 100];\n};\nconvert.hsv.hcg = function(hsv) {\n  const s = hsv[1] / 100;\n  const v = hsv[2] / 100;\n  const c = s * v;\n  let f = 0;\n  if (c < 1) {\n    f = (v - c) / (1 - c);\n  }\n  return [hsv[0], c * 100, f * 100];\n};\nconvert.hcg.rgb = function(hcg) {\n  const h = hcg[0] / 360;\n  const c = hcg[1] / 100;\n  const g = hcg[2] / 100;\n  if (c === 0) {\n    return [g * 255, g * 255, g * 255];\n  }\n  const pure = [0, 0, 0];\n  const hi = h % 1 * 6;\n  const v = hi % 1;\n  const w = 1 - v;\n  let mg = 0;\n  switch (Math.floor(hi)) {\n    case 0: {\n      pure[0] = 1;\n      pure[1] = v;\n      pure[2] = 0;\n      break;\n    }\n    case 1: {\n      pure[0] = w;\n      pure[1] = 1;\n      pure[2] = 0;\n      break;\n    }\n    case 2: {\n      pure[0] = 0;\n      pure[1] = 1;\n      pure[2] = v;\n      break;\n    }\n    case 3: {\n      pure[0] = 0;\n      pure[1] = w;\n      pure[2] = 1;\n      break;\n    }\n    case 4: {\n      pure[0] = v;\n      pure[1] = 0;\n      pure[2] = 1;\n      break;\n    }\n    default: {\n      pure[0] = 1;\n      pure[1] = 0;\n      pure[2] = w;\n    }\n  }\n  mg = (1 - c) * g;\n  return [\n    (c * pure[0] + mg) * 255,\n    (c * pure[1] + mg) * 255,\n    (c * pure[2] + mg) * 255\n  ];\n};\nconvert.hcg.hsv = function(hcg) {\n  const c = hcg[1] / 100;\n  const g = hcg[2] / 100;\n  const v = c + g * (1 - c);\n  let f = 0;\n  if (v > 0) {\n    f = c / v;\n  }\n  return [hcg[0], f * 100, v * 100];\n};\nconvert.hcg.hsl = function(hcg) {\n  const c = hcg[1] / 100;\n  const g = hcg[2] / 100;\n  const l = g * (1 - c) + 0.5 * c;\n  let s = 0;\n  if (l > 0 && l < 0.5) {\n    s = c / (2 * l);\n  } else if (l >= 0.5 && l < 1) {\n    s = c / (2 * (1 - l));\n  }\n  return [hcg[0], s * 100, l * 100];\n};\nconvert.hcg.hwb = function(hcg) {\n  const c = hcg[1] / 100;\n  const g = hcg[2] / 100;\n  const v = c + g * (1 - c);\n  return [hcg[0], (v - c) * 100, (1 - v) * 100];\n};\nconvert.hwb.hcg = function(hwb) {\n  const w = hwb[1] / 100;\n  const b = hwb[2] / 100;\n  const v = 1 - b;\n  const c = v - w;\n  let g = 0;\n  if (c < 1) {\n    g = (v - c) / (1 - c);\n  }\n  return [hwb[0], c * 100, g * 100];\n};\nconvert.apple.rgb = function(apple) {\n  return [apple[0] / 65535 * 255, apple[1] / 65535 * 255, apple[2] / 65535 * 255];\n};\nconvert.rgb.apple = function(rgb) {\n  return [rgb[0] / 255 * 65535, rgb[1] / 255 * 65535, rgb[2] / 255 * 65535];\n};\nconvert.gray.rgb = function(args) {\n  return [args[0] / 100 * 255, args[0] / 100 * 255, args[0] / 100 * 255];\n};\nconvert.gray.hsl = function(args) {\n  return [0, 0, args[0]];\n};\nconvert.gray.hsv = convert.gray.hsl;\nconvert.gray.hwb = function(gray) {\n  return [0, 100, gray[0]];\n};\nconvert.gray.cmyk = function(gray) {\n  return [0, 0, 0, gray[0]];\n};\nconvert.gray.lab = function(gray) {\n  return [gray[0], 0, 0];\n};\nconvert.gray.hex = function(gray) {\n  const value = Math.round(gray[0] / 100 * 255) & 255;\n  const integer = (value << 16) + (value << 8) + value;\n  const string = integer.toString(16).toUpperCase();\n  return \"000000\".slice(string.length) + string;\n};\nconvert.rgb.gray = function(rgb) {\n  const value = (rgb[0] + rgb[1] + rgb[2]) / 3;\n  return [value / 255 * 100];\n};\n\n// node_modules/color-convert/route.js\nfunction buildGraph() {\n  const graph = {};\n  const models2 = Object.keys(conversions_default);\n  for (let { length } = models2, i = 0; i < length; i++) {\n    graph[models2[i]] = {\n      // http://jsperf.com/1-vs-infinity\n      // micro-opt, but this is simple.\n      distance: -1,\n      parent: null\n    };\n  }\n  return graph;\n}\nfunction deriveBFS(fromModel) {\n  const graph = buildGraph();\n  const queue = [fromModel];\n  graph[fromModel].distance = 0;\n  while (queue.length > 0) {\n    const current = queue.pop();\n    const adjacents = Object.keys(conversions_default[current]);\n    for (let { length } = adjacents, i = 0; i < length; i++) {\n      const adjacent = adjacents[i];\n      const node = graph[adjacent];\n      if (node.distance === -1) {\n        node.distance = graph[current].distance + 1;\n        node.parent = current;\n        queue.unshift(adjacent);\n      }\n    }\n  }\n  return graph;\n}\nfunction link(from, to) {\n  return function(args) {\n    return to(from(args));\n  };\n}\nfunction wrapConversion(toModel, graph) {\n  const path = [graph[toModel].parent, toModel];\n  let fn = conversions_default[graph[toModel].parent][toModel];\n  let cur = graph[toModel].parent;\n  while (graph[cur].parent) {\n    path.unshift(graph[cur].parent);\n    fn = link(conversions_default[graph[cur].parent][cur], fn);\n    cur = graph[cur].parent;\n  }\n  fn.conversion = path;\n  return fn;\n}\nfunction route(fromModel) {\n  const graph = deriveBFS(fromModel);\n  const conversion = {};\n  const models2 = Object.keys(graph);\n  for (let { length } = models2, i = 0; i < length; i++) {\n    const toModel = models2[i];\n    const node = graph[toModel];\n    if (node.parent === null) {\n      continue;\n    }\n    conversion[toModel] = wrapConversion(toModel, graph);\n  }\n  return conversion;\n}\nvar route_default = route;\n\n// node_modules/color-convert/index.js\nvar convert2 = {};\nvar models = Object.keys(conversions_default);\nfunction wrapRaw(fn) {\n  const wrappedFn = function(...args) {\n    const arg0 = args[0];\n    if (arg0 === void 0 || arg0 === null) {\n      return arg0;\n    }\n    if (arg0.length > 1) {\n      args = arg0;\n    }\n    return fn(args);\n  };\n  if (\"conversion\" in fn) {\n    wrappedFn.conversion = fn.conversion;\n  }\n  return wrappedFn;\n}\nfunction wrapRounded(fn) {\n  const wrappedFn = function(...args) {\n    const arg0 = args[0];\n    if (arg0 === void 0 || arg0 === null) {\n      return arg0;\n    }\n    if (arg0.length > 1) {\n      args = arg0;\n    }\n    const result = fn(args);\n    if (typeof result === \"object\") {\n      for (let { length } = result, i = 0; i < length; i++) {\n        result[i] = Math.round(result[i]);\n      }\n    }\n    return result;\n  };\n  if (\"conversion\" in fn) {\n    wrappedFn.conversion = fn.conversion;\n  }\n  return wrappedFn;\n}\nfor (const fromModel of models) {\n  convert2[fromModel] = {};\n  Object.defineProperty(convert2[fromModel], \"channels\", { value: conversions_default[fromModel].channels });\n  Object.defineProperty(convert2[fromModel], \"labels\", { value: conversions_default[fromModel].labels });\n  const routes = route_default(fromModel);\n  const routeModels = Object.keys(routes);\n  for (const toModel of routeModels) {\n    const fn = routes[toModel];\n    convert2[fromModel][toModel] = wrapRounded(fn);\n    convert2[fromModel][toModel].raw = wrapRaw(fn);\n  }\n}\nvar color_convert_default = convert2;\n\n// node_modules/color/index.js\nvar skippedModels = [\n  // To be honest, I don't really feel like keyword belongs in color convert, but eh.\n  \"keyword\",\n  // Gray conflicts with some method names, and has its own method defined.\n  \"gray\",\n  // Shouldn't really be in color-convert either...\n  \"hex\"\n];\nvar hashedModelKeys = {};\nfor (const model of Object.keys(color_convert_default)) {\n  hashedModelKeys[[...color_convert_default[model].labels].sort().join(\"\")] = model;\n}\nvar limiters = {};\nfunction Color(object, model) {\n  if (!(this instanceof Color)) {\n    return new Color(object, model);\n  }\n  if (model && model in skippedModels) {\n    model = null;\n  }\n  if (model && !(model in color_convert_default)) {\n    throw new Error(\"Unknown model: \" + model);\n  }\n  let i;\n  let channels;\n  if (object == null) {\n    this.model = \"rgb\";\n    this.color = [0, 0, 0];\n    this.valpha = 1;\n  } else if (object instanceof Color) {\n    this.model = object.model;\n    this.color = [...object.color];\n    this.valpha = object.valpha;\n  } else if (typeof object === \"string\") {\n    const result = color_string_default.get(object);\n    if (result === null) {\n      throw new Error(\"Unable to parse color from string: \" + object);\n    }\n    this.model = result.model;\n    channels = color_convert_default[this.model].channels;\n    this.color = result.value.slice(0, channels);\n    this.valpha = typeof result.value[channels] === \"number\" ? result.value[channels] : 1;\n  } else if (object.length > 0) {\n    this.model = model || \"rgb\";\n    channels = color_convert_default[this.model].channels;\n    const newArray = Array.prototype.slice.call(object, 0, channels);\n    this.color = zeroArray(newArray, channels);\n    this.valpha = typeof object[channels] === \"number\" ? object[channels] : 1;\n  } else if (typeof object === \"number\") {\n    this.model = \"rgb\";\n    this.color = [\n      object >> 16 & 255,\n      object >> 8 & 255,\n      object & 255\n    ];\n    this.valpha = 1;\n  } else {\n    this.valpha = 1;\n    const keys = Object.keys(object);\n    if (\"alpha\" in object) {\n      keys.splice(keys.indexOf(\"alpha\"), 1);\n      this.valpha = typeof object.alpha === \"number\" ? object.alpha : 0;\n    }\n    const hashedKeys = keys.sort().join(\"\");\n    if (!(hashedKeys in hashedModelKeys)) {\n      throw new Error(\"Unable to parse color from object: \" + JSON.stringify(object));\n    }\n    this.model = hashedModelKeys[hashedKeys];\n    const { labels } = color_convert_default[this.model];\n    const color = [];\n    for (i = 0; i < labels.length; i++) {\n      color.push(object[labels[i]]);\n    }\n    this.color = zeroArray(color);\n  }\n  if (limiters[this.model]) {\n    channels = color_convert_default[this.model].channels;\n    for (i = 0; i < channels; i++) {\n      const limit = limiters[this.model][i];\n      if (limit) {\n        this.color[i] = limit(this.color[i]);\n      }\n    }\n  }\n  this.valpha = Math.max(0, Math.min(1, this.valpha));\n  if (Object.freeze) {\n    Object.freeze(this);\n  }\n}\nColor.prototype = {\n  toString() {\n    return this.string();\n  },\n  toJSON() {\n    return this[this.model]();\n  },\n  string(places) {\n    let self = this.model in color_string_default.to ? this : this.rgb();\n    self = self.round(typeof places === \"number\" ? places : 1);\n    const arguments_ = self.valpha === 1 ? self.color : [...self.color, this.valpha];\n    return color_string_default.to[self.model](...arguments_);\n  },\n  percentString(places) {\n    const self = this.rgb().round(typeof places === \"number\" ? places : 1);\n    const arguments_ = self.valpha === 1 ? self.color : [...self.color, this.valpha];\n    return color_string_default.to.rgb.percent(...arguments_);\n  },\n  array() {\n    return this.valpha === 1 ? [...this.color] : [...this.color, this.valpha];\n  },\n  object() {\n    const result = {};\n    const { channels } = color_convert_default[this.model];\n    const { labels } = color_convert_default[this.model];\n    for (let i = 0; i < channels; i++) {\n      result[labels[i]] = this.color[i];\n    }\n    if (this.valpha !== 1) {\n      result.alpha = this.valpha;\n    }\n    return result;\n  },\n  unitArray() {\n    const rgb = this.rgb().color;\n    rgb[0] /= 255;\n    rgb[1] /= 255;\n    rgb[2] /= 255;\n    if (this.valpha !== 1) {\n      rgb.push(this.valpha);\n    }\n    return rgb;\n  },\n  unitObject() {\n    const rgb = this.rgb().object();\n    rgb.r /= 255;\n    rgb.g /= 255;\n    rgb.b /= 255;\n    if (this.valpha !== 1) {\n      rgb.alpha = this.valpha;\n    }\n    return rgb;\n  },\n  round(places) {\n    places = Math.max(places || 0, 0);\n    return new Color([...this.color.map(roundToPlace(places)), this.valpha], this.model);\n  },\n  alpha(value) {\n    if (value !== void 0) {\n      return new Color([...this.color, Math.max(0, Math.min(1, value))], this.model);\n    }\n    return this.valpha;\n  },\n  // Rgb\n  red: getset(\"rgb\", 0, maxfn(255)),\n  green: getset(\"rgb\", 1, maxfn(255)),\n  blue: getset(\"rgb\", 2, maxfn(255)),\n  hue: getset([\"hsl\", \"hsv\", \"hsl\", \"hwb\", \"hcg\"], 0, (value) => (value % 360 + 360) % 360),\n  saturationl: getset(\"hsl\", 1, maxfn(100)),\n  lightness: getset(\"hsl\", 2, maxfn(100)),\n  saturationv: getset(\"hsv\", 1, maxfn(100)),\n  value: getset(\"hsv\", 2, maxfn(100)),\n  chroma: getset(\"hcg\", 1, maxfn(100)),\n  gray: getset(\"hcg\", 2, maxfn(100)),\n  white: getset(\"hwb\", 1, maxfn(100)),\n  wblack: getset(\"hwb\", 2, maxfn(100)),\n  cyan: getset(\"cmyk\", 0, maxfn(100)),\n  magenta: getset(\"cmyk\", 1, maxfn(100)),\n  yellow: getset(\"cmyk\", 2, maxfn(100)),\n  black: getset(\"cmyk\", 3, maxfn(100)),\n  x: getset(\"xyz\", 0, maxfn(95.047)),\n  y: getset(\"xyz\", 1, maxfn(100)),\n  z: getset(\"xyz\", 2, maxfn(108.833)),\n  l: getset(\"lab\", 0, maxfn(100)),\n  a: getset(\"lab\", 1),\n  b: getset(\"lab\", 2),\n  keyword(value) {\n    if (value !== void 0) {\n      return new Color(value);\n    }\n    return color_convert_default[this.model].keyword(this.color);\n  },\n  hex(value) {\n    if (value !== void 0) {\n      return new Color(value);\n    }\n    return color_string_default.to.hex(...this.rgb().round().color);\n  },\n  hexa(value) {\n    if (value !== void 0) {\n      return new Color(value);\n    }\n    const rgbArray = this.rgb().round().color;\n    let alphaHex = Math.round(this.valpha * 255).toString(16).toUpperCase();\n    if (alphaHex.length === 1) {\n      alphaHex = \"0\" + alphaHex;\n    }\n    return color_string_default.to.hex(...rgbArray) + alphaHex;\n  },\n  rgbNumber() {\n    const rgb = this.rgb().color;\n    return (rgb[0] & 255) << 16 | (rgb[1] & 255) << 8 | rgb[2] & 255;\n  },\n  luminosity() {\n    const rgb = this.rgb().color;\n    const lum = [];\n    for (const [i, element] of rgb.entries()) {\n      const chan = element / 255;\n      lum[i] = chan <= 0.04045 ? chan / 12.92 : ((chan + 0.055) / 1.055) ** 2.4;\n    }\n    return 0.2126 * lum[0] + 0.7152 * lum[1] + 0.0722 * lum[2];\n  },\n  contrast(color2) {\n    const lum1 = this.luminosity();\n    const lum2 = color2.luminosity();\n    if (lum1 > lum2) {\n      return (lum1 + 0.05) / (lum2 + 0.05);\n    }\n    return (lum2 + 0.05) / (lum1 + 0.05);\n  },\n  level(color2) {\n    const contrastRatio = this.contrast(color2);\n    if (contrastRatio >= 7) {\n      return \"AAA\";\n    }\n    return contrastRatio >= 4.5 ? \"AA\" : \"\";\n  },\n  isDark() {\n    const rgb = this.rgb().color;\n    const yiq = (rgb[0] * 2126 + rgb[1] * 7152 + rgb[2] * 722) / 1e4;\n    return yiq < 128;\n  },\n  isLight() {\n    return !this.isDark();\n  },\n  negate() {\n    const rgb = this.rgb();\n    for (let i = 0; i < 3; i++) {\n      rgb.color[i] = 255 - rgb.color[i];\n    }\n    return rgb;\n  },\n  lighten(ratio) {\n    const hsl = this.hsl();\n    hsl.color[2] += hsl.color[2] * ratio;\n    return hsl;\n  },\n  darken(ratio) {\n    const hsl = this.hsl();\n    hsl.color[2] -= hsl.color[2] * ratio;\n    return hsl;\n  },\n  saturate(ratio) {\n    const hsl = this.hsl();\n    hsl.color[1] += hsl.color[1] * ratio;\n    return hsl;\n  },\n  desaturate(ratio) {\n    const hsl = this.hsl();\n    hsl.color[1] -= hsl.color[1] * ratio;\n    return hsl;\n  },\n  whiten(ratio) {\n    const hwb = this.hwb();\n    hwb.color[1] += hwb.color[1] * ratio;\n    return hwb;\n  },\n  blacken(ratio) {\n    const hwb = this.hwb();\n    hwb.color[2] += hwb.color[2] * ratio;\n    return hwb;\n  },\n  grayscale() {\n    const rgb = this.rgb().color;\n    const value = rgb[0] * 0.3 + rgb[1] * 0.59 + rgb[2] * 0.11;\n    return Color.rgb(value, value, value);\n  },\n  fade(ratio) {\n    return this.alpha(this.valpha - this.valpha * ratio);\n  },\n  opaquer(ratio) {\n    return this.alpha(this.valpha + this.valpha * ratio);\n  },\n  rotate(degrees) {\n    const hsl = this.hsl();\n    let hue = hsl.color[0];\n    hue = (hue + degrees) % 360;\n    hue = hue < 0 ? 360 + hue : hue;\n    hsl.color[0] = hue;\n    return hsl;\n  },\n  mix(mixinColor, weight) {\n    if (!mixinColor || !mixinColor.rgb) {\n      throw new Error('Argument to \"mix\" was not a Color instance, but rather an instance of ' + typeof mixinColor);\n    }\n    const color1 = mixinColor.rgb();\n    const color2 = this.rgb();\n    const p = weight === void 0 ? 0.5 : weight;\n    const w = 2 * p - 1;\n    const a = color1.alpha() - color2.alpha();\n    const w1 = ((w * a === -1 ? w : (w + a) / (1 + w * a)) + 1) / 2;\n    const w2 = 1 - w1;\n    return Color.rgb(\n      w1 * color1.red() + w2 * color2.red(),\n      w1 * color1.green() + w2 * color2.green(),\n      w1 * color1.blue() + w2 * color2.blue(),\n      color1.alpha() * p + color2.alpha() * (1 - p)\n    );\n  }\n};\nfor (const model of Object.keys(color_convert_default)) {\n  if (skippedModels.includes(model)) {\n    continue;\n  }\n  const { channels } = color_convert_default[model];\n  Color.prototype[model] = function(...arguments_) {\n    if (this.model === model) {\n      return new Color(this);\n    }\n    if (arguments_.length > 0) {\n      return new Color(arguments_, model);\n    }\n    return new Color([...assertArray(color_convert_default[this.model][model].raw(this.color)), this.valpha], model);\n  };\n  Color[model] = function(...arguments_) {\n    let color = arguments_[0];\n    if (typeof color === \"number\") {\n      color = zeroArray(arguments_, channels);\n    }\n    return new Color(color, model);\n  };\n}\nfunction roundTo(number, places) {\n  return Number(number.toFixed(places));\n}\nfunction roundToPlace(places) {\n  return function(number) {\n    return roundTo(number, places);\n  };\n}\nfunction getset(model, channel, modifier) {\n  model = Array.isArray(model) ? model : [model];\n  for (const m of model) {\n    (limiters[m] ||= [])[channel] = modifier;\n  }\n  model = model[0];\n  return function(value) {\n    let result;\n    if (value !== void 0) {\n      if (modifier) {\n        value = modifier(value);\n      }\n      result = this[model]();\n      result.color[channel] = value;\n      return result;\n    }\n    result = this[model]().color[channel];\n    if (modifier) {\n      result = modifier(result);\n    }\n    return result;\n  };\n}\nfunction maxfn(max) {\n  return function(v) {\n    return Math.max(0, Math.min(max, v));\n  };\n}\nfunction assertArray(value) {\n  return Array.isArray(value) ? value : [value];\n}\nfunction zeroArray(array, length) {\n  for (let i = 0; i < length; i++) {\n    if (typeof array[i] !== \"number\") {\n      array[i] = 0;\n    }\n  }\n  return array;\n}\nvar index_default = Color;\n", "module.exports = require(\"./color.cjs\").default;\n", "/*!\n  Copyright 2013 Lovell Fuller and others.\n  SPDX-License-Identifier: Apache-2.0\n*/\n\nimport color from '@img/colour';\nimport is from './is.mjs';\n\n/**\n * Colourspaces.\n * @private\n */\nconst colourspace = {\n  multiband: 'multiband',\n  'b-w': 'b-w',\n  bw: 'b-w',\n  cmyk: 'cmyk',\n  srgb: 'srgb'\n};\n\n/**\n * Tint the image using the provided colour.\n * An alpha channel may be present and will be unchanged by the operation.\n *\n * @example\n * const output = await sharp(input)\n *   .tint({ r: 255, g: 240, b: 16 })\n *   .toBuffer();\n *\n * @param {string|Object} tint - Parsed by the [color](https://www.npmjs.org/package/color) module.\n * @returns {Sharp}\n * @throws {Error} Invalid parameter\n */\nfunction tint (tint) {\n  this._setBackgroundColourOption('tint', tint);\n  return this;\n}\n\n/**\n * Convert to 8-bit greyscale; 256 shades of grey.\n * This is a linear operation. If the input image is in a non-linear colour space such as sRGB, use `gamma()` with `greyscale()` for the best results.\n * By default the output image will be web-friendly sRGB and contain three (identical) colour channels.\n * This may be overridden by other sharp operations such as `toColourspace('b-w')`,\n * which will produce an output image containing one colour channel.\n * An alpha channel may be present, and will be unchanged by the operation.\n *\n * @example\n * const output = await sharp(input).greyscale().toBuffer();\n *\n * @param {Boolean} [greyscale=true]\n * @returns {Sharp}\n */\nfunction greyscale (greyscale) {\n  this.options.greyscale = is.bool(greyscale) ? greyscale : true;\n  return this;\n}\n\n/**\n * Alternative spelling of `greyscale`.\n * @param {Boolean} [grayscale=true]\n * @returns {Sharp}\n */\nfunction grayscale (grayscale) {\n  return this.greyscale(grayscale);\n}\n\n/**\n * Set the pipeline colourspace.\n *\n * The input image will be converted to the provided colourspace at the start of the pipeline.\n * All operations will use this colourspace before converting to the output colourspace,\n * as defined by {@link #tocolourspace toColourspace}.\n *\n * @since 0.29.0\n *\n * @example\n * // Run pipeline in 16 bits per channel RGB while converting final result to 8 bits per channel sRGB.\n * await sharp(input)\n *  .pipelineColourspace('rgb16')\n *  .toColourspace('srgb')\n *  .toFile('16bpc-pipeline-to-8bpc-output.png')\n *\n * @param {string} [colourspace] - pipeline colourspace e.g. `rgb16`, `scrgb`, `lab`, `grey16` [...](https://www.libvips.org/API/current/enum.Interpretation.html)\n * @returns {Sharp}\n * @throws {Error} Invalid parameters\n */\nfunction pipelineColourspace (colourspace) {\n  if (!is.string(colourspace)) {\n    throw is.invalidParameterError('colourspace', 'string', colourspace);\n  }\n  this.options.colourspacePipeline = colourspace;\n  return this;\n}\n\n/**\n * Alternative spelling of `pipelineColourspace`.\n * @param {string} [colorspace] - pipeline colorspace.\n * @returns {Sharp}\n * @throws {Error} Invalid parameters\n */\nfunction pipelineColorspace (colorspace) {\n  return this.pipelineColourspace(colorspace);\n}\n\n/**\n * Set the output colourspace.\n * By default output image will be web-friendly sRGB, with additional channels interpreted as alpha channels.\n *\n * @example\n * // Output 16 bits per pixel RGB\n * await sharp(input)\n *  .toColourspace('rgb16')\n *  .toFile('16-bpp.png')\n *\n * @param {string} [colourspace] - output colourspace e.g. `srgb`, `rgb`, `cmyk`, `lab`, `b-w` [...](https://www.libvips.org/API/current/enum.Interpretation.html)\n * @returns {Sharp}\n * @throws {Error} Invalid parameters\n */\nfunction toColourspace (colourspace) {\n  if (!is.string(colourspace)) {\n    throw is.invalidParameterError('colourspace', 'string', colourspace);\n  }\n  this.options.colourspace = colourspace;\n  return this;\n}\n\n/**\n * Alternative spelling of `toColourspace`.\n * @param {string} [colorspace] - output colorspace.\n * @returns {Sharp}\n * @throws {Error} Invalid parameters\n */\nfunction toColorspace (colorspace) {\n  return this.toColourspace(colorspace);\n}\n\n/**\n * Create a RGBA colour array from a given value.\n * @private\n * @param {string|Object} value\n * @throws {Error} Invalid value\n */\nfunction _getBackgroundColourOption (value) {\n  if (\n    is.object(value) ||\n    (is.string(value) && value.length >= 3 && value.length <= 200)\n  ) {\n    const colour = color(value);\n    const red = colour.red();\n    const green = colour.green();\n    const blue = colour.blue();\n    const alpha = Math.round(colour.alpha() * 255);\n    for (const [channel, component] of [['red', red], ['green', green], ['blue', blue], ['alpha', alpha]]) {\n      if (!is.number(component)) {\n        throw is.invalidParameterError(`background.${channel}`, 'number', component);\n      }\n    }\n    return [red, green, blue, alpha];\n  } else {\n    throw is.invalidParameterError('background', 'object or string', value);\n  }\n}\n\n/**\n * Update a colour attribute of the this.options Object.\n * @private\n * @param {string} key\n * @param {string|Object} value\n * @throws {Error} Invalid value\n */\nfunction _setBackgroundColourOption (key, value) {\n  if (is.defined(value)) {\n    this.options[key] = _getBackgroundColourOption(value);\n  }\n}\n\n/**\n * Decorate the Sharp prototype with colour-related functions.\n * @module Sharp\n * @private\n */\nexport default (Sharp) => {\n  Object.assign(Sharp.prototype, {\n    // Public\n    tint,\n    greyscale,\n    grayscale,\n    pipelineColourspace,\n    pipelineColorspace,\n    toColourspace,\n    toColorspace,\n    // Private\n    _getBackgroundColourOption,\n    _setBackgroundColourOption\n  });\n  // Class attributes\n  Sharp.colourspace = colourspace;\n  Sharp.colorspace = colourspace;\n};\n", "/*!\n  Copyright 2013 Lovell Fuller and others.\n  SPDX-License-Identifier: Apache-2.0\n*/\n\nimport is from './is.mjs';\n\n/**\n * Boolean operations for bandbool.\n * @private\n */\nconst bool = {\n  and: 'and',\n  or: 'or',\n  eor: 'eor'\n};\n\n/**\n * Remove alpha channels, if any. This is a no-op if the image does not have an alpha channel.\n *\n * See also {@link /api-operation/#flatten flatten}.\n *\n * @example\n * sharp('rgba.png')\n *   .removeAlpha()\n *   .toFile('rgb.png', function(err, info) {\n *     // rgb.png is a 3 channel image without an alpha channel\n *   });\n *\n * @returns {Sharp}\n */\nfunction removeAlpha () {\n  this.options.removeAlpha = true;\n  return this;\n}\n\n/**\n * Ensure the output image has an alpha transparency channel.\n * If missing, the added alpha channel will have the specified\n * transparency level, defaulting to fully-opaque (1).\n * This is a no-op if the image already has an alpha channel.\n *\n * @since 0.21.2\n *\n * @example\n * // rgba.png will be a 4 channel image with a fully-opaque alpha channel\n * await sharp('rgb.jpg')\n *   .ensureAlpha()\n *   .toFile('rgba.png')\n *\n * @example\n * // rgba is a 4 channel image with a fully-transparent alpha channel\n * const rgba = await sharp(rgb)\n *   .ensureAlpha(0)\n *   .toBuffer();\n *\n * @param {number} [alpha=1] - alpha transparency level (0=fully-transparent, 1=fully-opaque)\n * @returns {Sharp}\n * @throws {Error} Invalid alpha transparency level\n */\nfunction ensureAlpha (alpha) {\n  if (is.defined(alpha)) {\n    if (is.number(alpha) && is.inRange(alpha, 0, 1)) {\n      this.options.ensureAlpha = alpha;\n    } else {\n      throw is.invalidParameterError('alpha', 'number between 0 and 1', alpha);\n    }\n  } else {\n    this.options.ensureAlpha = 1;\n  }\n  return this;\n}\n\n/**\n * Extract a single channel from a multi-channel image.\n *\n * The output colourspace will be either `b-w` (8-bit) or `grey16` (16-bit).\n *\n * @example\n * // green.jpg is a greyscale image containing the green channel of the input\n * await sharp(input)\n *   .extractChannel('green')\n *   .toFile('green.jpg');\n *\n * @example\n * // red1 is the red value of the first pixel, red2 the second pixel etc.\n * const [red1, red2, ...] = await sharp(input)\n *   .extractChannel(0)\n *   .raw()\n *   .toBuffer();\n *\n * @param {number|string} channel - zero-indexed channel/band number to extract, or `red`, `green`, `blue` or `alpha`.\n * @returns {Sharp}\n * @throws {Error} Invalid channel\n */\nfunction extractChannel (channel) {\n  const channelMap = { red: 0, green: 1, blue: 2, alpha: 3 };\n  if (Object.keys(channelMap).includes(channel)) {\n    channel = channelMap[channel];\n  }\n  if (is.integer(channel) && is.inRange(channel, 0, 4)) {\n    this.options.extractChannel = channel;\n  } else {\n    throw is.invalidParameterError('channel', 'integer or one of: red, green, blue, alpha', channel);\n  }\n  return this;\n}\n\n/**\n * Join one or more channels to the image.\n * The meaning of the added channels depends on the output colourspace, set with `toColourspace()`.\n * By default the output image will be web-friendly sRGB, with additional channels interpreted as alpha channels.\n * Channel ordering follows vips convention:\n * - sRGB: 0: Red, 1: Green, 2: Blue, 3: Alpha.\n * - CMYK: 0: Magenta, 1: Cyan, 2: Yellow, 3: Black, 4: Alpha.\n *\n * Buffers may be any of the image formats supported by sharp.\n * For raw pixel input, the `options` object should contain a `raw` attribute, which follows the format of the attribute of the same name in the `sharp()` constructor.\n *\n * @param {Array<string|Buffer>|string|Buffer} images - one or more images (file paths, Buffers).\n * @param {Object} options - image options, see `sharp()` constructor.\n * @returns {Sharp}\n * @throws {Error} Invalid parameters\n */\nfunction joinChannel (images, options) {\n  if (Array.isArray(images)) {\n    images.forEach(function (image) {\n      this.options.joinChannelIn.push(this._createInputDescriptor(image, options));\n    }, this);\n  } else {\n    this.options.joinChannelIn.push(this._createInputDescriptor(images, options));\n  }\n  return this;\n}\n\n/**\n * Perform a bitwise boolean operation on all input image channels (bands) to produce a single channel output image.\n *\n * @example\n * sharp('3-channel-rgb-input.png')\n *   .bandbool(sharp.bool.and)\n *   .toFile('1-channel-output.png', function (err, info) {\n *     // The output will be a single channel image where each pixel `P = R & G & B`.\n *     // If `I(1,1) = [247, 170, 14] = [0b11110111, 0b10101010, 0b00001111]`\n *     // then `O(1,1) = 0b11110111 & 0b10101010 & 0b00001111 = 0b00000010 = 2`.\n *   });\n *\n * @param {string} boolOp - one of `and`, `or` or `eor` to perform that bitwise operation, like the C logic operators `&`, `|` and `^` respectively.\n * @returns {Sharp}\n * @throws {Error} Invalid parameters\n */\nfunction bandbool (boolOp) {\n  if (is.string(boolOp) && is.inArray(boolOp, ['and', 'or', 'eor'])) {\n    this.options.bandBoolOp = boolOp;\n  } else {\n    throw is.invalidParameterError('boolOp', 'one of: and, or, eor', boolOp);\n  }\n  return this;\n}\n\n/**\n * Decorate the Sharp prototype with channel-related functions.\n * @module Sharp\n * @private\n */\nexport default (Sharp) => {\n  Object.assign(Sharp.prototype, {\n    // Public instance functions\n    removeAlpha,\n    ensureAlpha,\n    extractChannel,\n    joinChannel,\n    bandbool\n  });\n  // Class attributes\n  Sharp.bool = bool;\n};\n", "/*!\n  Copyright 2013 Lovell Fuller and others.\n  SPDX-License-Identifier: Apache-2.0\n*/\n\nimport path from 'node:path';\nimport is from './is.mjs';\nimport sharp from './sharp.mjs';\n\nconst formats = new Map([\n  ['heic', 'heif'],\n  ['heif', 'heif'],\n  ['avif', 'avif'],\n  ['jpeg', 'jpeg'],\n  ['jpg', 'jpeg'],\n  ['jpe', 'jpeg'],\n  ['tile', 'tile'],\n  ['dz', 'tile'],\n  ['png', 'png'],\n  ['raw', 'raw'],\n  ['tiff', 'tiff'],\n  ['tif', 'tiff'],\n  ['webp', 'webp'],\n  ['gif', 'gif'],\n  ['jp2', 'jp2'],\n  ['jpx', 'jp2'],\n  ['j2k', 'jp2'],\n  ['j2c', 'jp2'],\n  ['jxl', 'jxl']\n]);\n\nconst jp2Regex = /\\.(jp[2x]|j2[kc])$/i;\n\nconst errJp2Save = () => new Error('JP2 output requires libvips with support for OpenJPEG');\n\nconst bitdepthFromColourCount = (colours) => 1 << 32 - Math.clz32(Math.ceil(Math.log2(colours)) - 1);\n\n/**\n * Write output image data to a file.\n *\n * If an explicit output format is not selected, it will be inferred from the extension,\n * with JPEG, PNG, WebP, AVIF, TIFF, GIF, DZI, and libvips' V format supported.\n * Note that raw pixel data is only supported for buffer output.\n *\n * By default all metadata will be removed, which includes EXIF-based orientation.\n * See {@link #withmetadata withMetadata} for control over this.\n *\n * The caller is responsible for ensuring directory structures and permissions exist.\n *\n * A `Promise` is returned when `callback` is not provided.\n *\n * @example\n * sharp(input)\n *   .toFile('output.png', (err, info) => { ... });\n *\n * @example\n * sharp(input)\n *   .toFile('output.png')\n *   .then(info => { ... })\n *   .catch(err => { ... });\n *\n * @param {string} fileOut - the path to write the image data to.\n * @param {Function} [callback] - called on completion with two arguments `(err, info)`.\n * `info` contains the output image `format`, `size` (bytes), `width`, `height`,\n * `channels` and `premultiplied` (indicating if premultiplication was used).\n * When using a crop strategy also contains `cropOffsetLeft` and `cropOffsetTop`.\n * When using the attention crop strategy also contains `attentionX` and `attentionY`, the focal point of the cropped region.\n * Animated output will also contain `pageHeight` and `pages`.\n * May also contain `textAutofitDpi` (dpi the font was rendered at) if image was created from text.\n * @returns {Promise<Object>} - when no callback is provided\n * @throws {Error} Invalid parameters\n */\nfunction toFile (fileOut, callback) {\n  let err;\n  if (!is.string(fileOut)) {\n    err = new Error('Missing output file path');\n  } else if (is.string(this.options.input.file) && path.resolve(this.options.input.file) === path.resolve(fileOut)) {\n    err = new Error('Cannot use same file for input and output');\n  } else if (jp2Regex.test(path.extname(fileOut)) && !this.constructor.format.jp2.output.file) {\n    err = errJp2Save();\n  }\n  if (err) {\n    if (is.fn(callback)) {\n      callback(err);\n    } else {\n      return Promise.reject(err);\n    }\n  } else {\n    this.options.fileOut = fileOut;\n    const stack = Error();\n    return this._pipeline(callback, stack);\n  }\n  return this;\n}\n\n/**\n * Write output to a Buffer.\n * JPEG, PNG, WebP, AVIF, TIFF, GIF and raw pixel data output are supported.\n *\n * Use {@link #toformat toFormat} or one of the format-specific functions such as {@link #jpeg jpeg}, {@link #png png} etc. to set the output format.\n *\n * If no explicit format is set, the output format will match the input image, except SVG input which becomes PNG output.\n *\n * By default all metadata will be removed, which includes EXIF-based orientation.\n * See {@link #withmetadata withMetadata} for control over this.\n *\n * `callback`, if present, gets three arguments `(err, data, info)` where:\n * - `err` is an error, if any.\n * - `data` is the output image data.\n * - `info` contains the output image `format`, `size` (bytes), `width`, `height`,\n * `channels` and `premultiplied` (indicating if premultiplication was used).\n * When using a crop strategy also contains `cropOffsetLeft` and `cropOffsetTop`.\n * Animated output will also contain `pageHeight` and `pages`.\n * May also contain `textAutofitDpi` (dpi the font was rendered at) if image was created from text.\n *\n * The underlying `ArrayBuffer` may be marked as non-transferable by some JavaScript runtimes.\n * Use {@link #touint8array toUint8Array} for a guaranteed transferable `ArrayBuffer`.\n *\n * A `Promise` is returned when `callback` is not provided.\n *\n * @example\n * const data = await sharp(input)\n *   .png()\n *   .toBuffer();\n *\n * @example\n * const { data, info } = await sharp(input)\n *   .png()\n *   .toBuffer({ resolveWithObject: true });\n *\n * @example\n * const { data, info } = await sharp('my-image.jpg')\n *   // output the raw pixels\n *   .raw()\n *   .toBuffer({ resolveWithObject: true });\n *\n * // create a more type safe way to work with the raw pixel data\n * // this will not copy the data, instead it will change `data`s underlying ArrayBuffer\n * // so `data` and `pixelArray` point to the same memory location\n * const pixelArray = new Uint8ClampedArray(data.buffer);\n *\n * // When you are done changing the pixelArray, sharp takes the `pixelArray` as an input\n * const { width, height, channels } = info;\n * await sharp(pixelArray, { raw: { width, height, channels } })\n *   .toFile('my-changed-image.jpg');\n *\n * @param {Object} [options]\n * @param {boolean} [options.resolveWithObject] Resolve the Promise with an Object containing `data` and `info` properties instead of resolving only with `data`.\n * @param {Function} [callback]\n * @returns {Promise<Buffer>} - when no callback is provided\n */\nfunction toBuffer (options, callback) {\n  if (is.object(options)) {\n    this._setBooleanOption('resolveWithObject', options.resolveWithObject);\n  } else if (this.options.resolveWithObject) {\n    this.options.resolveWithObject = false;\n  }\n  this.options.fileOut = '';\n  const stack = Error();\n  return this._pipeline(is.fn(options) ? options : callback, stack);\n}\n\n/**\n * Write output to a `Uint8Array` backed by a transferable `ArrayBuffer`.\n * JPEG, PNG, WebP, AVIF, TIFF, GIF and raw pixel data output are supported.\n *\n * Use {@link #toformat toFormat} or one of the format-specific functions such as {@link #jpeg jpeg}, {@link #png png} etc. to set the output format.\n *\n * If no explicit format is set, the output format will match the input image, except SVG input which becomes PNG output.\n *\n * By default all metadata will be removed, which includes EXIF-based orientation.\n * See {@link #keepexif keepExif} and similar methods for control over this.\n *\n * Resolves with an `Object` containing:\n * - `data` is the output image as a `Uint8Array` backed by a transferable `ArrayBuffer`.\n * - `info` contains properties relating to the output image such as `width` and `height`.\n *\n * @since v0.35.0\n *\n * @example\n * const { data, info } = await sharp(input).toUint8Array();\n *\n * @example\n * const { data } = await sharp(input)\n *   .avif()\n *   .toUint8Array();\n * const base64String = data.toBase64();\n *\n * @returns {Promise<{ data: Uint8Array, info: Object }>}\n */\nfunction toUint8Array () {\n  this.options.resolveWithObject = true;\n  this.options.typedArrayOut = true;\n  const stack = Error();\n  return this._pipeline(null, stack);\n}\n\n/**\n * Set output density (DPI) in EXIF metadata.\n *\n * @since 0.35.0\n *\n * @example\n * const data = await sharp(input)\n *   .withDensity(96)\n *   .toBuffer();\n *\n * @param {number} density Number of pixels per inch (DPI).\n * @returns {Sharp}\n * @throws {Error} Invalid parameters\n */\nfunction withDensity (density) {\n  if (is.number(density) && density > 0) {\n    this.options.withMetadataDensity = density;\n  } else {\n    throw is.invalidParameterError('density', 'positive number', density);\n  }\n  return this.keepExif();\n}\n\n/**\n * Keep all EXIF metadata from the input image in the output image.\n *\n * EXIF metadata is unsupported for TIFF output.\n *\n * @since 0.33.0\n *\n * @example\n * const outputWithExif = await sharp(inputWithExif)\n *   .keepExif()\n *   .toBuffer();\n *\n * @returns {Sharp}\n */\nfunction keepExif () {\n  this.options.keepMetadata |= 0b00001;\n  return this;\n}\n\n/**\n * Set EXIF metadata in the output image, ignoring any EXIF in the input image.\n *\n * @since 0.33.0\n *\n * @example\n * const dataWithExif = await sharp(input)\n *   .withExif({\n *     IFD0: {\n *       Copyright: 'The National Gallery'\n *     },\n *     IFD3: {\n *       GPSLatitudeRef: 'N',\n *       GPSLatitude: '51/1 30/1 3230/100',\n *       GPSLongitudeRef: 'W',\n *       GPSLongitude: '0/1 7/1 4366/100'\n *     }\n *   })\n *   .toBuffer();\n *\n * @param {Object<string, Object<string, string>>} exif Object keyed by IFD0, IFD1 etc. of key/value string pairs to write as EXIF data.\n * @returns {Sharp}\n * @throws {Error} Invalid parameters\n */\nfunction withExif (exif) {\n  if (is.object(exif)) {\n    for (const [ifd, entries] of Object.entries(exif)) {\n      if (is.object(entries)) {\n        for (const [k, v] of Object.entries(entries)) {\n          if (is.string(v)) {\n            this.options.withExif[`exif-${ifd.toLowerCase()}-${k}`] = v;\n          } else {\n            throw is.invalidParameterError(`${ifd}.${k}`, 'string', v);\n          }\n        }\n      } else {\n        throw is.invalidParameterError(ifd, 'object', entries);\n      }\n    }\n  } else {\n    throw is.invalidParameterError('exif', 'object', exif);\n  }\n  this.options.withExifMerge = false;\n  return this.keepExif();\n}\n\n/**\n * Update EXIF metadata from the input image in the output image.\n *\n * @since 0.33.0\n *\n * @example\n * const dataWithMergedExif = await sharp(inputWithExif)\n *   .withExifMerge({\n *     IFD0: {\n *       Copyright: 'The National Gallery'\n *     }\n *   })\n *   .toBuffer();\n *\n * @param {Object<string, Object<string, string>>} exif Object keyed by IFD0, IFD1 etc. of key/value string pairs to write as EXIF data.\n * @returns {Sharp}\n * @throws {Error} Invalid parameters\n */\nfunction withExifMerge (exif) {\n  this.withExif(exif);\n  this.options.withExifMerge = true;\n  return this;\n}\n\n/**\n * Keep ICC profile from the input image in the output image.\n *\n * When input and output colour spaces differ, use with {@link /api-colour/#tocolourspace toColourspace} and optionally {@link /api-colour/#pipelinecolourspace pipelineColourspace}.\n *\n * @since 0.33.0\n *\n * @example\n * const outputWithIccProfile = await sharp(inputWithIccProfile)\n *   .keepIccProfile()\n *   .toBuffer();\n *\n * @example\n * const cmykOutputWithIccProfile = await sharp(cmykInputWithIccProfile)\n *   .pipelineColourspace('cmyk')\n *   .toColourspace('cmyk')\n *   .keepIccProfile()\n *   .toBuffer();\n *\n * @returns {Sharp}\n */\nfunction keepIccProfile () {\n  this.options.keepMetadata |= 0b01000;\n  return this;\n}\n\n/**\n * Transform using an ICC profile and attach to the output image.\n *\n * This can either be an absolute filesystem path or\n * built-in profile name (`srgb`, `p3`, `cmyk`).\n *\n * @since 0.33.0\n *\n * @example\n * const outputWithP3 = await sharp(input)\n *   .withIccProfile('p3')\n *   .toBuffer();\n *\n * @param {string} icc - Absolute filesystem path to output ICC profile or built-in profile name (srgb, p3, cmyk).\n * @param {Object} [options]\n * @param {number} [options.attach=true] Should the ICC profile be included in the output image metadata?\n * @returns {Sharp}\n * @throws {Error} Invalid parameters\n */\nfunction withIccProfile (icc, options) {\n  if (is.string(icc)) {\n    this.options.withIccProfile = icc;\n  } else {\n    throw is.invalidParameterError('icc', 'string', icc);\n  }\n  this.keepIccProfile();\n  if (is.object(options)) {\n    if (is.defined(options.attach)) {\n      if (is.bool(options.attach)) {\n        if (!options.attach) {\n          this.options.keepMetadata &= ~0b01000;\n        }\n      } else {\n        throw is.invalidParameterError('attach', 'boolean', options.attach);\n      }\n    }\n  }\n  return this;\n}\n\n/**\n * If the input contains gain map metadata, attempt to process the image and gain map separately,\n * recombining them into a single output image.\n *\n * This approach is faster and should produce better results than {@link #withgainmap withGainMap},\n * however not all operations are supported.\n *\n * Only JPEG input and output are supported.\n * JPEG output options other than `quality` are ignored.\n *\n * This feature is experimental and the API may change.\n *\n * @since 0.35.0\n *\n * @example\n * const outputWithResizedGainMap = await sharp(inputWithGainMap)\n *   .keepGainMap()\n *   .resize({ width: 64 })\n *   .toBuffer();\n *\n * @returns {Sharp}\n */\nfunction keepGainMap() {\n  this.options.keepGainMap = true;\n  this.options.withGainMap = false;\n  this.options.keepMetadata |= 0b100000;\n  return this;\n}\n\n/**\n * If the input contains gain map metadata, use it to convert the main image to HDR (High Dynamic Range) before further processing.\n * The input gain map is discarded.\n *\n * If the output is JPEG, generate and attach a new ISO 21496-1 gain map.\n * JPEG output options other than `quality` are ignored.\n *\n * This feature is experimental and the API may change.\n *\n * @since 0.35.0\n *\n * @example\n * const outputWithRegeneratedGainMap = await sharp(inputWithGainMap)\n *   .withGainMap()\n *   .toBuffer();\n *\n * @returns {Sharp}\n */\nfunction withGainMap() {\n  this.options.withGainMap = true;\n  this.options.keepGainMap = false;\n  this.options.colourspace = 'scrgb';\n  return this;\n}\n\n/**\n * Keep XMP metadata from the input image in the output image.\n *\n * @since 0.34.3\n *\n * @example\n * const outputWithXmp = await sharp(inputWithXmp)\n *   .keepXmp()\n *   .toBuffer();\n *\n * @returns {Sharp}\n */\nfunction keepXmp () {\n  this.options.keepMetadata |= 0b00010;\n  return this;\n}\n\n/**\n * Set XMP metadata in the output image.\n *\n * Supported by PNG, JPEG, WebP, and TIFF output.\n *\n * @since 0.34.3\n *\n * @example\n * const xmpString = `\n *   <?xml version=\"1.0\"?>\n *   <x:xmpmeta xmlns:x=\"adobe:ns:meta/\">\n *     <rdf:RDF xmlns:rdf=\"http://www.w3.org/1999/02/22-rdf-syntax-ns#\">\n *       <rdf:Description rdf:about=\"\" xmlns:dc=\"http://purl.org/dc/elements/1.1/\">\n *         <dc:creator><rdf:Seq><rdf:li>John Doe</rdf:li></rdf:Seq></dc:creator>\n *       </rdf:Description>\n *     </rdf:RDF>\n *   </x:xmpmeta>`;\n *\n * const data = await sharp(input)\n *   .withXmp(xmpString)\n *   .toBuffer();\n *\n * @param {string} xmp String containing XMP metadata to be embedded in the output image.\n * @returns {Sharp}\n * @throws {Error} Invalid parameters\n */\nfunction withXmp (xmp) {\n  if (is.string(xmp) && xmp.length > 0) {\n    this.options.withXmp = xmp;\n    this.options.keepMetadata |= 0b00010;\n  } else {\n    throw is.invalidParameterError('xmp', 'non-empty string', xmp);\n  }\n  return this;\n}\n\n/**\n * Keep all metadata (EXIF, ICC, XMP, IPTC) from the input image in the output image.\n *\n * The default behaviour, when `keepMetadata` is not used, is to convert to the device-independent\n * sRGB colour space and strip all metadata, including the removal of any ICC profile.\n *\n * @since 0.33.0\n *\n * @example\n * const outputWithMetadata = await sharp(inputWithMetadata)\n *   .keepMetadata()\n *   .toBuffer();\n *\n * @returns {Sharp}\n */\nfunction keepMetadata () {\n  this.options.keepMetadata |= 0b11111;\n  return this;\n}\n\n/**\n * Keep most metadata (EXIF, XMP, IPTC) from the input image in the output image.\n *\n * This will also convert to and add a web-friendly sRGB ICC profile if appropriate.\n *\n * Allows orientation and density to be set or updated.\n *\n * @example\n * const outputSrgbWithMetadata = await sharp(inputRgbWithMetadata)\n *   .withMetadata()\n *   .toBuffer();\n *\n * @example\n * // Set output metadata to 96 DPI\n * const data = await sharp(input)\n *   .withMetadata({ density: 96 })\n *   .toBuffer();\n *\n * @param {Object} [options]\n * @param {number} [options.orientation] Used to update the EXIF `Orientation` tag, integer between 1 and 8.\n * @param {number} [options.density] Number of pixels per inch (DPI).\n * @returns {Sharp}\n * @throws {Error} Invalid parameters\n */\nfunction withMetadata (options) {\n  this.keepMetadata();\n  this.withIccProfile('srgb');\n  if (is.object(options)) {\n    if (is.defined(options.orientation)) {\n      if (is.integer(options.orientation) && is.inRange(options.orientation, 1, 8)) {\n        this.options.withMetadataOrientation = options.orientation;\n      } else {\n        throw is.invalidParameterError('orientation', 'integer between 1 and 8', options.orientation);\n      }\n    }\n    if (is.defined(options.density)) {\n      if (is.number(options.density) && options.density > 0) {\n        this.options.withMetadataDensity = options.density;\n      } else {\n        throw is.invalidParameterError('density', 'positive number', options.density);\n      }\n    }\n    if (is.defined(options.icc)) {\n      this.withIccProfile(options.icc);\n    }\n    if (is.defined(options.exif)) {\n      this.withExifMerge(options.exif);\n    }\n  }\n  return this;\n}\n\n/**\n * Force output to a given format.\n *\n * @example\n * // Convert any input to PNG output\n * const data = await sharp(input)\n *   .toFormat('png')\n *   .toBuffer();\n *\n * @param {(string|Object)} format - as a string or an Object with an 'id' attribute\n * @param {Object} options - output options\n * @returns {Sharp}\n * @throws {Error} unsupported format or options\n */\nfunction toFormat (format, options) {\n  const actualFormat = formats.get((is.object(format) && is.string(format.id) ? format.id : format).toLowerCase());\n  if (!actualFormat) {\n    throw is.invalidParameterError('format', `one of: ${[...formats.keys()].join(', ')}`, format);\n  }\n  return this[actualFormat](options);\n}\n\n/**\n * Use these JPEG options for output image.\n *\n * @example\n * // Convert any input to very high quality JPEG output\n * const data = await sharp(input)\n *   .jpeg({\n *     quality: 100,\n *     chromaSubsampling: '4:4:4'\n *   })\n *   .toBuffer();\n *\n * @example\n * // Use mozjpeg to reduce output JPEG file size (slower)\n * const data = await sharp(input)\n *   .jpeg({ mozjpeg: true })\n *   .toBuffer();\n *\n * @param {Object} [options] - output options\n * @param {number} [options.quality=80] - quality, integer 1-100\n * @param {boolean} [options.progressive=false] - use progressive (interlace) scan\n * @param {string} [options.chromaSubsampling='4:2:0'] - set to '4:4:4' to prevent chroma subsampling otherwise defaults to '4:2:0' chroma subsampling\n * @param {boolean} [options.optimiseCoding=true] - optimise Huffman coding tables\n * @param {boolean} [options.optimizeCoding=true] - alternative spelling of optimiseCoding\n * @param {boolean} [options.mozjpeg=false] - use mozjpeg defaults, equivalent to `{ trellisQuantisation: true, overshootDeringing: true, optimiseScans: true, quantisationTable: 3 }`\n * @param {boolean} [options.trellisQuantisation=false] - apply trellis quantisation\n * @param {boolean} [options.overshootDeringing=false] - apply overshoot deringing\n * @param {boolean} [options.optimiseScans=false] - optimise progressive scans, forces progressive\n * @param {boolean} [options.optimizeScans=false] - alternative spelling of optimiseScans\n * @param {number} [options.quantisationTable=0] - quantization table to use, integer 0-8\n * @param {number} [options.quantizationTable=0] - alternative spelling of quantisationTable\n * @param {boolean} [options.force=true] - force JPEG output, otherwise attempt to use input format\n * @returns {Sharp}\n * @throws {Error} Invalid options\n */\nfunction jpeg (options) {\n  if (is.object(options)) {\n    if (is.defined(options.quality)) {\n      if (is.integer(options.quality) && is.inRange(options.quality, 1, 100)) {\n        this.options.jpegQuality = options.quality;\n      } else {\n        throw is.invalidParameterError('quality', 'integer between 1 and 100', options.quality);\n      }\n    }\n    if (is.defined(options.progressive)) {\n      this._setBooleanOption('jpegProgressive', options.progressive);\n    }\n    if (is.defined(options.chromaSubsampling)) {\n      if (is.string(options.chromaSubsampling) && is.inArray(options.chromaSubsampling, ['4:2:0', '4:4:4'])) {\n        this.options.jpegChromaSubsampling = options.chromaSubsampling;\n      } else {\n        throw is.invalidParameterError('chromaSubsampling', 'one of: 4:2:0, 4:4:4', options.chromaSubsampling);\n      }\n    }\n    const optimiseCoding = is.bool(options.optimizeCoding) ? options.optimizeCoding : options.optimiseCoding;\n    if (is.defined(optimiseCoding)) {\n      this._setBooleanOption('jpegOptimiseCoding', optimiseCoding);\n    }\n    if (is.defined(options.mozjpeg)) {\n      if (is.bool(options.mozjpeg)) {\n        if (options.mozjpeg) {\n          this.options.jpegTrellisQuantisation = true;\n          this.options.jpegOvershootDeringing = true;\n          this.options.jpegOptimiseScans = true;\n          this.options.jpegProgressive = true;\n          this.options.jpegQuantisationTable = 3;\n        }\n      } else {\n        throw is.invalidParameterError('mozjpeg', 'boolean', options.mozjpeg);\n      }\n    }\n    const trellisQuantisation = is.bool(options.trellisQuantization) ? options.trellisQuantization : options.trellisQuantisation;\n    if (is.defined(trellisQuantisation)) {\n      this._setBooleanOption('jpegTrellisQuantisation', trellisQuantisation);\n    }\n    if (is.defined(options.overshootDeringing)) {\n      this._setBooleanOption('jpegOvershootDeringing', options.overshootDeringing);\n    }\n    const optimiseScans = is.bool(options.optimizeScans) ? options.optimizeScans : options.optimiseScans;\n    if (is.defined(optimiseScans)) {\n      this._setBooleanOption('jpegOptimiseScans', optimiseScans);\n      if (optimiseScans) {\n        this.options.jpegProgressive = true;\n      }\n    }\n    const quantisationTable = is.number(options.quantizationTable) ? options.quantizationTable : options.quantisationTable;\n    if (is.defined(quantisationTable)) {\n      if (is.integer(quantisationTable) && is.inRange(quantisationTable, 0, 8)) {\n        this.options.jpegQuantisationTable = quantisationTable;\n      } else {\n        throw is.invalidParameterError('quantisationTable', 'integer between 0 and 8', quantisationTable);\n      }\n    }\n  }\n  return this._updateFormatOut('jpeg', options);\n}\n\n/**\n * Use these PNG options for output image.\n *\n * By default, PNG output is full colour at 8 bits per pixel.\n *\n * Indexed PNG input at 1, 2 or 4 bits per pixel is converted to 8 bits per pixel.\n * Set `palette` to `true` for slower, indexed PNG output.\n *\n * For 16 bits per pixel output, convert to `rgb16` via\n * {@link /api-colour/#tocolourspace toColourspace}.\n *\n * @example\n * // Convert any input to full colour PNG output\n * const data = await sharp(input)\n *   .png()\n *   .toBuffer();\n *\n * @example\n * // Convert any input to indexed PNG output (slower)\n * const data = await sharp(input)\n *   .png({ palette: true })\n *   .toBuffer();\n *\n * @example\n * // Output 16 bits per pixel RGB(A)\n * const data = await sharp(input)\n *  .toColourspace('rgb16')\n *  .png()\n *  .toBuffer();\n *\n * @param {Object} [options]\n * @param {boolean} [options.progressive=false] - use progressive (interlace) scan\n * @param {number} [options.compressionLevel=6] - zlib compression level, 0 (fastest, largest) to 9 (slowest, smallest)\n * @param {boolean} [options.adaptiveFiltering=false] - use adaptive row filtering\n * @param {boolean} [options.palette=false] - quantise to a palette-based image with alpha transparency support\n * @param {number} [options.quality=100] - use the lowest number of colours needed to achieve given quality, sets `palette` to `true`\n * @param {number} [options.effort=7] - CPU effort, between 1 (fastest) and 10 (slowest), sets `palette` to `true`\n * @param {number} [options.colours=256] - maximum number of palette entries, sets `palette` to `true`\n * @param {number} [options.colors=256] - alternative spelling of `options.colours`, sets `palette` to `true`\n * @param {number} [options.dither=1.0] - level of Floyd-Steinberg error diffusion, sets `palette` to `true`\n * @param {boolean} [options.force=true] - force PNG output, otherwise attempt to use input format\n * @returns {Sharp}\n * @throws {Error} Invalid options\n */\nfunction png (options) {\n  if (is.object(options)) {\n    if (is.defined(options.progressive)) {\n      this._setBooleanOption('pngProgressive', options.progressive);\n    }\n    if (is.defined(options.compressionLevel)) {\n      if (is.integer(options.compressionLevel) && is.inRange(options.compressionLevel, 0, 9)) {\n        this.options.pngCompressionLevel = options.compressionLevel;\n      } else {\n        throw is.invalidParameterError('compressionLevel', 'integer between 0 and 9', options.compressionLevel);\n      }\n    }\n    if (is.defined(options.adaptiveFiltering)) {\n      this._setBooleanOption('pngAdaptiveFiltering', options.adaptiveFiltering);\n    }\n    const colours = options.colours || options.colors;\n    if (is.defined(colours)) {\n      if (is.integer(colours) && is.inRange(colours, 2, 256)) {\n        this.options.pngBitdepth = bitdepthFromColourCount(colours);\n      } else {\n        throw is.invalidParameterError('colours', 'integer between 2 and 256', colours);\n      }\n    }\n    if (is.defined(options.palette)) {\n      this._setBooleanOption('pngPalette', options.palette);\n    } else if ([options.quality, options.effort, options.colours, options.colors, options.dither].some(is.defined)) {\n      this._setBooleanOption('pngPalette', true);\n    }\n    if (this.options.pngPalette) {\n      if (is.defined(options.quality)) {\n        if (is.integer(options.quality) && is.inRange(options.quality, 0, 100)) {\n          this.options.pngQuality = options.quality;\n        } else {\n          throw is.invalidParameterError('quality', 'integer between 0 and 100', options.quality);\n        }\n      }\n      if (is.defined(options.effort)) {\n        if (is.integer(options.effort) && is.inRange(options.effort, 1, 10)) {\n          this.options.pngEffort = options.effort;\n        } else {\n          throw is.invalidParameterError('effort', 'integer between 1 and 10', options.effort);\n        }\n      }\n      if (is.defined(options.dither)) {\n        if (is.number(options.dither) && is.inRange(options.dither, 0, 1)) {\n          this.options.pngDither = options.dither;\n        } else {\n          throw is.invalidParameterError('dither', 'number between 0.0 and 1.0', options.dither);\n        }\n      }\n    }\n  }\n  return this._updateFormatOut('png', options);\n}\n\n/**\n * Use these WebP options for output image.\n *\n * @example\n * // Convert any input to lossless WebP output\n * const data = await sharp(input)\n *   .webp({ lossless: true })\n *   .toBuffer();\n *\n * @example\n * // Optimise the file size of an animated WebP\n * const outputWebp = await sharp(inputWebp, { animated: true })\n *   .webp({ effort: 6 })\n *   .toBuffer();\n *\n * @param {Object} [options] - output options\n * @param {number} [options.quality=80] - quality, integer 1-100\n * @param {number} [options.alphaQuality=100] - quality of alpha layer, integer 0-100\n * @param {boolean} [options.lossless=false] - use lossless compression mode\n * @param {boolean} [options.nearLossless=false] - use near_lossless compression mode\n * @param {boolean} [options.smartSubsample=false] - use high quality chroma subsampling\n * @param {boolean} [options.smartDeblock=false] - auto-adjust the deblocking filter, can improve low contrast edges (slow)\n * @param {string} [options.preset='default'] - named preset for preprocessing/filtering, one of: default, photo, picture, drawing, icon, text\n * @param {number} [options.effort=4] - CPU effort, between 0 (fastest) and 6 (slowest)\n * @param {number} [options.loop=0] - number of animation iterations, use 0 for infinite animation\n * @param {number|number[]} [options.delay] - delay(s) between animation frames (in milliseconds)\n * @param {boolean} [options.minSize=false] - prevent use of animation key frames to minimise file size (slow)\n * @param {boolean} [options.mixed=false] - allow mixture of lossy and lossless animation frames (slow)\n * @param {boolean} [options.exact=false] - preserve the colour data in transparent pixels\n * @param {boolean} [options.force=true] - force WebP output, otherwise attempt to use input format\n * @returns {Sharp}\n * @throws {Error} Invalid options\n */\nfunction webp (options) {\n  if (is.object(options)) {\n    if (is.defined(options.quality)) {\n      if (is.integer(options.quality) && is.inRange(options.quality, 1, 100)) {\n        this.options.webpQuality = options.quality;\n      } else {\n        throw is.invalidParameterError('quality', 'integer between 1 and 100', options.quality);\n      }\n    }\n    if (is.defined(options.alphaQuality)) {\n      if (is.integer(options.alphaQuality) && is.inRange(options.alphaQuality, 0, 100)) {\n        this.options.webpAlphaQuality = options.alphaQuality;\n      } else {\n        throw is.invalidParameterError('alphaQuality', 'integer between 0 and 100', options.alphaQuality);\n      }\n    }\n    if (is.defined(options.lossless)) {\n      this._setBooleanOption('webpLossless', options.lossless);\n    }\n    if (is.defined(options.nearLossless)) {\n      this._setBooleanOption('webpNearLossless', options.nearLossless);\n    }\n    if (is.defined(options.smartSubsample)) {\n      this._setBooleanOption('webpSmartSubsample', options.smartSubsample);\n    }\n    if (is.defined(options.smartDeblock)) {\n      this._setBooleanOption('webpSmartDeblock', options.smartDeblock);\n    }\n    if (is.defined(options.preset)) {\n      if (is.string(options.preset) && is.inArray(options.preset, ['default', 'photo', 'picture', 'drawing', 'icon', 'text'])) {\n        this.options.webpPreset = options.preset;\n      } else {\n        throw is.invalidParameterError('preset', 'one of: default, photo, picture, drawing, icon, text', options.preset);\n      }\n    }\n    if (is.defined(options.effort)) {\n      if (is.integer(options.effort) && is.inRange(options.effort, 0, 6)) {\n        this.options.webpEffort = options.effort;\n      } else {\n        throw is.invalidParameterError('effort', 'integer between 0 and 6', options.effort);\n      }\n    }\n    if (is.defined(options.minSize)) {\n      this._setBooleanOption('webpMinSize', options.minSize);\n    }\n    if (is.defined(options.mixed)) {\n      this._setBooleanOption('webpMixed', options.mixed);\n    }\n    if (is.defined(options.exact)) {\n      this._setBooleanOption('webpExact', options.exact);\n    }\n  }\n  trySetAnimationOptions(options, this.options);\n  return this._updateFormatOut('webp', options);\n}\n\n/**\n * Use these GIF options for the output image.\n *\n * The first entry in the palette is reserved for transparency.\n *\n * The palette of the input image will be re-used if possible.\n *\n * @since 0.30.0\n *\n * @example\n * // Convert PNG to GIF\n * await sharp(pngBuffer)\n *   .gif()\n *   .toBuffer();\n *\n * @example\n * // Convert animated WebP to animated GIF\n * await sharp('animated.webp', { animated: true })\n *   .toFile('animated.gif');\n *\n * @example\n * // Create a 128x128, cropped, non-dithered, animated thumbnail of an animated GIF\n * const out = await sharp('in.gif', { animated: true })\n *   .resize({ width: 128, height: 128 })\n *   .gif({ dither: 0 })\n *   .toBuffer();\n *\n * @example\n * // Lossy file size reduction of animated GIF\n * await sharp('in.gif', { animated: true })\n *   .gif({ interFrameMaxError: 8 })\n *   .toFile('optim.gif');\n *\n * @param {Object} [options] - output options\n * @param {boolean} [options.reuse=true] - re-use existing palette, otherwise generate new (slow)\n * @param {boolean} [options.progressive=false] - use progressive (interlace) scan\n * @param {number} [options.colours=256] - maximum number of palette entries, including transparency, between 2 and 256\n * @param {number} [options.colors=256] - alternative spelling of `options.colours`\n * @param {number} [options.effort=7] - CPU effort, between 1 (fastest) and 10 (slowest)\n * @param {number} [options.dither=1.0] - level of Floyd-Steinberg error diffusion, between 0 (least) and 1 (most)\n * @param {number} [options.interFrameMaxError=0] - maximum inter-frame error for transparency, between 0 (lossless) and 32\n * @param {number} [options.interPaletteMaxError=3] - maximum inter-palette error for palette reuse, between 0 and 256\n * @param {boolean} [options.keepDuplicateFrames=false] - keep duplicate frames in the output instead of combining them\n * @param {number} [options.loop=0] - number of animation iterations, use 0 for infinite animation\n * @param {number|number[]} [options.delay] - delay(s) between animation frames (in milliseconds)\n * @param {boolean} [options.force=true] - force GIF output, otherwise attempt to use input format\n * @returns {Sharp}\n * @throws {Error} Invalid options\n */\nfunction gif (options) {\n  if (is.object(options)) {\n    if (is.defined(options.reuse)) {\n      this._setBooleanOption('gifReuse', options.reuse);\n    }\n    if (is.defined(options.progressive)) {\n      this._setBooleanOption('gifProgressive', options.progressive);\n    }\n    const colours = options.colours || options.colors;\n    if (is.defined(colours)) {\n      if (is.integer(colours) && is.inRange(colours, 2, 256)) {\n        this.options.gifBitdepth = bitdepthFromColourCount(colours);\n      } else {\n        throw is.invalidParameterError('colours', 'integer between 2 and 256', colours);\n      }\n    }\n    if (is.defined(options.effort)) {\n      if (is.integer(options.effort) && is.inRange(options.effort, 1, 10)) {\n        this.options.gifEffort = options.effort;\n      } else {\n        throw is.invalidParameterError('effort', 'integer between 1 and 10', options.effort);\n      }\n    }\n    if (is.defined(options.dither)) {\n      if (is.number(options.dither) && is.inRange(options.dither, 0, 1)) {\n        this.options.gifDither = options.dither;\n      } else {\n        throw is.invalidParameterError('dither', 'number between 0.0 and 1.0', options.dither);\n      }\n    }\n    if (is.defined(options.interFrameMaxError)) {\n      if (is.number(options.interFrameMaxError) && is.inRange(options.interFrameMaxError, 0, 32)) {\n        this.options.gifInterFrameMaxError = options.interFrameMaxError;\n      } else {\n        throw is.invalidParameterError('interFrameMaxError', 'number between 0.0 and 32.0', options.interFrameMaxError);\n      }\n    }\n    if (is.defined(options.interPaletteMaxError)) {\n      if (is.number(options.interPaletteMaxError) && is.inRange(options.interPaletteMaxError, 0, 256)) {\n        this.options.gifInterPaletteMaxError = options.interPaletteMaxError;\n      } else {\n        throw is.invalidParameterError('interPaletteMaxError', 'number between 0.0 and 256.0', options.interPaletteMaxError);\n      }\n    }\n    if (is.defined(options.keepDuplicateFrames)) {\n      if (is.bool(options.keepDuplicateFrames)) {\n        this._setBooleanOption('gifKeepDuplicateFrames', options.keepDuplicateFrames);\n      } else {\n        throw is.invalidParameterError('keepDuplicateFrames', 'boolean', options.keepDuplicateFrames);\n      }\n    }\n  }\n  trySetAnimationOptions(options, this.options);\n  return this._updateFormatOut('gif', options);\n}\n\n/**\n * Use these JP2 options for output image.\n *\n * Requires libvips compiled with support for OpenJPEG.\n * The prebuilt binaries do not include this - see\n * {@link /install#custom-libvips installing a custom libvips}.\n *\n * @example\n * // Convert any input to lossless JP2 output\n * const data = await sharp(input)\n *   .jp2({ lossless: true })\n *   .toBuffer();\n *\n * @example\n * // Convert any input to very high quality JP2 output\n * const data = await sharp(input)\n *   .jp2({\n *     quality: 100,\n *     chromaSubsampling: '4:4:4'\n *   })\n *   .toBuffer();\n *\n * @since 0.29.1\n *\n * @param {Object} [options] - output options\n * @param {number} [options.quality=80] - quality, integer 1-100\n * @param {boolean} [options.lossless=false] - use lossless compression mode\n * @param {number} [options.tileWidth=512] - horizontal tile size\n * @param {number} [options.tileHeight=512] - vertical tile size\n * @param {string} [options.chromaSubsampling='4:4:4'] - set to '4:2:0' to use chroma subsampling\n * @returns {Sharp}\n * @throws {Error} Invalid options\n */\nfunction jp2 (options) {\n  /* node:coverage ignore next 41 */\n  if (!this.constructor.format.jp2.output.buffer) {\n    throw errJp2Save();\n  }\n  if (is.object(options)) {\n    if (is.defined(options.quality)) {\n      if (is.integer(options.quality) && is.inRange(options.quality, 1, 100)) {\n        this.options.jp2Quality = options.quality;\n      } else {\n        throw is.invalidParameterError('quality', 'integer between 1 and 100', options.quality);\n      }\n    }\n    if (is.defined(options.lossless)) {\n      if (is.bool(options.lossless)) {\n        this.options.jp2Lossless = options.lossless;\n      } else {\n        throw is.invalidParameterError('lossless', 'boolean', options.lossless);\n      }\n    }\n    if (is.defined(options.tileWidth)) {\n      if (is.integer(options.tileWidth) && is.inRange(options.tileWidth, 1, 32768)) {\n        this.options.jp2TileWidth = options.tileWidth;\n      } else {\n        throw is.invalidParameterError('tileWidth', 'integer between 1 and 32768', options.tileWidth);\n      }\n    }\n    if (is.defined(options.tileHeight)) {\n      if (is.integer(options.tileHeight) && is.inRange(options.tileHeight, 1, 32768)) {\n        this.options.jp2TileHeight = options.tileHeight;\n      } else {\n        throw is.invalidParameterError('tileHeight', 'integer between 1 and 32768', options.tileHeight);\n      }\n    }\n    if (is.defined(options.chromaSubsampling)) {\n      if (is.string(options.chromaSubsampling) && is.inArray(options.chromaSubsampling, ['4:2:0', '4:4:4'])) {\n        this.options.jp2ChromaSubsampling = options.chromaSubsampling;\n      } else {\n        throw is.invalidParameterError('chromaSubsampling', 'one of: 4:2:0, 4:4:4', options.chromaSubsampling);\n      }\n    }\n  }\n  return this._updateFormatOut('jp2', options);\n}\n\n/**\n * Set animation options if available.\n * @private\n *\n * @param {Object} [source] - output options\n * @param {number} [source.loop=0] - number of animation iterations, use 0 for infinite animation\n * @param {number[]} [source.delay] - list of delays between animation frames (in milliseconds)\n * @param {Object} [target] - target object for valid options\n * @throws {Error} Invalid options\n */\nfunction trySetAnimationOptions (source, target) {\n  if (is.object(source) && is.defined(source.loop)) {\n    if (is.integer(source.loop) && is.inRange(source.loop, 0, 65535)) {\n      target.loop = source.loop;\n    } else {\n      throw is.invalidParameterError('loop', 'integer between 0 and 65535', source.loop);\n    }\n  }\n  if (is.object(source) && is.defined(source.delay)) {\n    // We allow singular values as well\n    if (is.integer(source.delay) && is.inRange(source.delay, 0, 65535)) {\n      target.delay = [source.delay];\n    } else if (\n      Array.isArray(source.delay) &&\n      source.delay.every(is.integer) &&\n      source.delay.every(v => is.inRange(v, 0, 65535))) {\n      target.delay = source.delay;\n    } else {\n      throw is.invalidParameterError('delay', 'integer or an array of integers between 0 and 65535', source.delay);\n    }\n  }\n}\n\n/**\n * Use these TIFF options for output image.\n *\n * The `density` can be set in pixels/inch via {@link #withmetadata withMetadata}\n * instead of providing `xres` and `yres` in pixels/mm.\n *\n * @example\n * // Convert SVG input to LZW-compressed, 1 bit per pixel TIFF output\n * sharp('input.svg')\n *   .tiff({\n *     compression: 'lzw',\n *     bitdepth: 1\n *   })\n *   .toFile('1-bpp-output.tiff')\n *   .then(info => { ... });\n *\n * @param {Object} [options] - output options\n * @param {number} [options.quality=80] - quality, integer 1-100\n * @param {boolean} [options.force=true] - force TIFF output, otherwise attempt to use input format\n * @param {string} [options.compression='jpeg'] - compression options: none, jpeg, deflate, packbits, ccittfax4, lzw, webp, zstd, jp2k\n * @param {boolean} [options.bigtiff=false] - use BigTIFF variant (has no effect when compression is none)\n * @param {string} [options.predictor='horizontal'] - compression predictor options: none, horizontal, float\n * @param {boolean} [options.pyramid=false] - write an image pyramid\n * @param {boolean} [options.tile=false] - write a tiled tiff\n * @param {number} [options.tileWidth=256] - horizontal tile size, valid values are integers in the range 1-32768\n * @param {number} [options.tileHeight=256] - vertical tile size, valid values are integers in the range 1-32768\n * @param {number} [options.xres=1.0] - horizontal resolution in pixels/mm, valid values are numbers in the range 0.001-1000000\n * @param {number} [options.yres=1.0] - vertical resolution in pixels/mm, valid values are numbers in the range 0.001-1000000\n * @param {string} [options.resolutionUnit='inch'] - resolution unit options: inch, cm\n * @param {number} [options.bitdepth=0] - reduce bitdepth to 1, 2 or 4 bit\n * @param {boolean} [options.miniswhite=false] - write 1-bit images as miniswhite\n * @returns {Sharp}\n * @throws {Error} Invalid options\n */\nfunction tiff (options) {\n  if (is.object(options)) {\n    if (is.defined(options.quality)) {\n      if (is.integer(options.quality) && is.inRange(options.quality, 1, 100)) {\n        this.options.tiffQuality = options.quality;\n      } else {\n        throw is.invalidParameterError('quality', 'integer between 1 and 100', options.quality);\n      }\n    }\n    if (is.defined(options.bitdepth)) {\n      if (is.integer(options.bitdepth) && is.inArray(options.bitdepth, [1, 2, 4])) {\n        this.options.tiffBitdepth = options.bitdepth;\n      } else {\n        throw is.invalidParameterError('bitdepth', '1, 2 or 4', options.bitdepth);\n      }\n    }\n    // tiling\n    if (is.defined(options.tile)) {\n      this._setBooleanOption('tiffTile', options.tile);\n    }\n    if (is.defined(options.tileWidth)) {\n      if (is.integer(options.tileWidth) && is.inRange(options.tileWidth, 1, 32768)) {\n        this.options.tiffTileWidth = options.tileWidth;\n      } else {\n        throw is.invalidParameterError('tileWidth', 'integer between 1 and 32768', options.tileWidth);\n      }\n    }\n    if (is.defined(options.tileHeight)) {\n      if (is.integer(options.tileHeight) && is.inRange(options.tileHeight, 1, 32768)) {\n        this.options.tiffTileHeight = options.tileHeight;\n      } else {\n        throw is.invalidParameterError('tileHeight', 'integer between 1 and 32768', options.tileHeight);\n      }\n    }\n    // miniswhite\n    if (is.defined(options.miniswhite)) {\n      this._setBooleanOption('tiffMiniswhite', options.miniswhite);\n    }\n    // pyramid\n    if (is.defined(options.pyramid)) {\n      this._setBooleanOption('tiffPyramid', options.pyramid);\n    }\n    // resolution\n    if (is.defined(options.xres)) {\n      if (is.number(options.xres) && is.inRange(options.xres, 0.001, 1000000)) {\n        this.options.tiffXres = options.xres;\n      } else {\n        throw is.invalidParameterError('xres', 'number between 0.001 and 1000000', options.xres);\n      }\n    }\n    if (is.defined(options.yres)) {\n      if (is.number(options.yres) && is.inRange(options.yres, 0.001, 1000000)) {\n        this.options.tiffYres = options.yres;\n      } else {\n        throw is.invalidParameterError('yres', 'number between 0.001 and 1000000', options.yres);\n      }\n    }\n    // compression\n    if (is.defined(options.compression)) {\n      if (is.string(options.compression) && is.inArray(options.compression, ['none', 'jpeg', 'deflate', 'packbits', 'ccittfax4', 'lzw', 'webp', 'zstd', 'jp2k'])) {\n        this.options.tiffCompression = options.compression;\n      } else {\n        throw is.invalidParameterError('compression', 'one of: none, jpeg, deflate, packbits, ccittfax4, lzw, webp, zstd, jp2k', options.compression);\n      }\n    }\n    // bigtiff\n    if (is.defined(options.bigtiff)) {\n      this._setBooleanOption('tiffBigtiff', options.bigtiff);\n    }\n    // predictor\n    if (is.defined(options.predictor)) {\n      if (is.string(options.predictor) && is.inArray(options.predictor, ['none', 'horizontal', 'float'])) {\n        this.options.tiffPredictor = options.predictor;\n      } else {\n        throw is.invalidParameterError('predictor', 'one of: none, horizontal, float', options.predictor);\n      }\n    }\n    // resolutionUnit\n    if (is.defined(options.resolutionUnit)) {\n      if (is.string(options.resolutionUnit) && is.inArray(options.resolutionUnit, ['inch', 'cm'])) {\n        this.options.tiffResolutionUnit = options.resolutionUnit;\n      } else {\n        throw is.invalidParameterError('resolutionUnit', 'one of: inch, cm', options.resolutionUnit);\n      }\n    }\n  }\n  return this._updateFormatOut('tiff', options);\n}\n\n/**\n * Use these AVIF options for output image.\n *\n * AVIF image sequences are not supported.\n *\n * @example\n * const data = await sharp(input)\n *   .avif({ effort: 2 })\n *   .toBuffer();\n *\n * @example\n * const data = await sharp(input)\n *   .avif({ lossless: true })\n *   .toBuffer();\n *\n * @since 0.27.0\n *\n * @param {Object} [options] - output options\n * @param {number} [options.quality=50] - quality, integer 1-100\n * @param {boolean} [options.lossless=false] - use lossless compression\n * @param {number} [options.effort=4] - CPU effort, between 0 (fastest) and 9 (slowest)\n * @param {string} [options.chromaSubsampling='4:4:4'] - set to '4:2:0' to use chroma subsampling\n * @param {number} [options.bitdepth=8] - set bitdepth to 8, 10 or 12 bit\n * @param {string} [options.tune='auto'] - tune output for a quality metric, one of 'auto' (default), 'iq', 'psnr' or 'ssim'\n * @returns {Sharp}\n * @throws {Error} Invalid options\n */\nfunction avif (options) {\n  return this.heif({ ...options, compression: 'av1' });\n}\n\n/**\n * Use these HEIF options for output image.\n *\n * Support for patent-encumbered HEIC images using `hevc` compression requires the use of a\n * globally-installed libvips compiled with support for libheif, libde265 and x265.\n *\n * @example\n * const data = await sharp(input)\n *   .heif({ compression: 'hevc' })\n *   .toBuffer();\n *\n * @since 0.23.0\n *\n * @param {Object} options - output options\n * @param {string} options.compression - compression format: av1, hevc\n * @param {number} [options.quality=50] - quality, integer 1-100\n * @param {boolean} [options.lossless=false] - use lossless compression\n * @param {number} [options.effort=4] - CPU effort, between 0 (fastest) and 9 (slowest)\n * @param {string} [options.chromaSubsampling='4:4:4'] - set to '4:2:0' to use chroma subsampling\n * @param {number} [options.bitdepth=8] - set bitdepth to 8, 10 or 12 bit\n * @param {string} [options.tune='auto'] - tune output for a quality metric, one of 'auto' (default), 'iq', 'psnr' or 'ssim'\n * @returns {Sharp}\n * @throws {Error} Invalid options\n */\nfunction heif (options) {\n  if (is.object(options)) {\n    if (is.string(options.compression) && is.inArray(options.compression, ['av1', 'hevc'])) {\n      this.options.heifCompression = options.compression;\n    } else {\n      throw is.invalidParameterError('compression', 'one of: av1, hevc', options.compression);\n    }\n    if (is.defined(options.quality)) {\n      if (is.integer(options.quality) && is.inRange(options.quality, 1, 100)) {\n        this.options.heifQuality = options.quality;\n      } else {\n        throw is.invalidParameterError('quality', 'integer between 1 and 100', options.quality);\n      }\n    }\n    if (is.defined(options.lossless)) {\n      if (is.bool(options.lossless)) {\n        this.options.heifLossless = options.lossless;\n      } else {\n        throw is.invalidParameterError('lossless', 'boolean', options.lossless);\n      }\n    }\n    if (is.defined(options.effort)) {\n      if (is.integer(options.effort) && is.inRange(options.effort, 0, 9)) {\n        this.options.heifEffort = options.effort;\n      } else {\n        throw is.invalidParameterError('effort', 'integer between 0 and 9', options.effort);\n      }\n    }\n    if (is.defined(options.chromaSubsampling)) {\n      if (is.string(options.chromaSubsampling) && is.inArray(options.chromaSubsampling, ['4:2:0', '4:4:4'])) {\n        this.options.heifChromaSubsampling = options.chromaSubsampling;\n      } else {\n        throw is.invalidParameterError('chromaSubsampling', 'one of: 4:2:0, 4:4:4', options.chromaSubsampling);\n      }\n    }\n    if (is.defined(options.bitdepth)) {\n      if (is.integer(options.bitdepth) && is.inArray(options.bitdepth, [8, 10, 12])) {\n        this.options.heifBitdepth = options.bitdepth;\n      } else {\n        throw is.invalidParameterError('bitdepth', '8, 10 or 12', options.bitdepth);\n      }\n    }\n    if (is.defined(options.tune)) {\n      if (is.string(options.tune) && is.inArray(options.tune, ['auto', 'iq', 'psnr', 'ssim'])) {\n        if (this.options.heifLossless && options.tune === 'iq') {\n          this.options.heifTune = 'ssim';\n        } else {\n          this.options.heifTune = options.tune;\n        }\n      } else {\n        throw is.invalidParameterError('tune', 'one of: auto, iq, psnr, ssim', options.tune);\n      }\n    }\n  } else {\n    throw is.invalidParameterError('options', 'Object', options);\n  }\n  return this._updateFormatOut('heif', options);\n}\n\n/**\n * Use these JPEG-XL (JXL) options for output image.\n *\n * This feature is experimental, please do not use in production systems.\n *\n * Requires libvips compiled with support for libjxl.\n * The prebuilt binaries do not include this - see\n * {@link /install/#custom-libvips installing a custom libvips}.\n *\n * @since 0.31.3\n *\n * @param {Object} [options] - output options\n * @param {number} [options.distance=1.0] - maximum encoding error, between 0 (highest quality) and 15 (lowest quality)\n * @param {number} [options.quality] - calculate `distance` based on JPEG-like quality, between 1 and 100, overrides distance if specified\n * @param {number} [options.decodingTier=0] - target decode speed tier, between 0 (highest quality) and 4 (lowest quality)\n * @param {boolean} [options.lossless=false] - use lossless compression\n * @param {number} [options.effort=7] - CPU effort, between 1 (fastest) and 9 (slowest)\n * @param {number} [options.loop=0] - number of animation iterations, use 0 for infinite animation\n * @param {number|number[]} [options.delay] - delay(s) between animation frames (in milliseconds)\n * @returns {Sharp}\n * @throws {Error} Invalid options\n */\nfunction jxl (options) {\n  if (is.object(options)) {\n    if (is.defined(options.quality)) {\n      if (is.integer(options.quality) && is.inRange(options.quality, 1, 100)) {\n        // https://github.com/libjxl/libjxl/blob/0aeea7f180bafd6893c1db8072dcb67d2aa5b03d/tools/cjxl_main.cc#L640-L644\n        this.options.jxlDistance = options.quality >= 30\n          ? 0.1 + (100 - options.quality) * 0.09\n          : 53 / 3000 * options.quality * options.quality - 23 / 20 * options.quality + 25;\n      } else {\n        throw is.invalidParameterError('quality', 'integer between 1 and 100', options.quality);\n      }\n    } else if (is.defined(options.distance)) {\n      if (is.number(options.distance) && is.inRange(options.distance, 0, 15)) {\n        this.options.jxlDistance = options.distance;\n      } else {\n        throw is.invalidParameterError('distance', 'number between 0.0 and 15.0', options.distance);\n      }\n    }\n    if (is.defined(options.decodingTier)) {\n      if (is.integer(options.decodingTier) && is.inRange(options.decodingTier, 0, 4)) {\n        this.options.jxlDecodingTier = options.decodingTier;\n      } else {\n        throw is.invalidParameterError('decodingTier', 'integer between 0 and 4', options.decodingTier);\n      }\n    }\n    if (is.defined(options.lossless)) {\n      if (is.bool(options.lossless)) {\n        this.options.jxlLossless = options.lossless;\n      } else {\n        throw is.invalidParameterError('lossless', 'boolean', options.lossless);\n      }\n    }\n    if (is.defined(options.effort)) {\n      if (is.integer(options.effort) && is.inRange(options.effort, 1, 9)) {\n        this.options.jxlEffort = options.effort;\n      } else {\n        throw is.invalidParameterError('effort', 'integer between 1 and 9', options.effort);\n      }\n    }\n  }\n  trySetAnimationOptions(options, this.options);\n  return this._updateFormatOut('jxl', options);\n}\n\n/**\n * Force output to be raw, uncompressed pixel data.\n * Pixel ordering is left-to-right, top-to-bottom, without padding.\n * Channel ordering will be RGB or RGBA for non-greyscale colourspaces.\n *\n * @example\n * // Extract raw, unsigned 8-bit RGB pixel data from JPEG input\n * const { data, info } = await sharp('input.jpg')\n *   .raw()\n *   .toBuffer({ resolveWithObject: true });\n *\n * @example\n * // Extract alpha channel as raw, unsigned 16-bit pixel data from PNG input\n * const data = await sharp('input.png')\n *   .ensureAlpha()\n *   .extractChannel(3)\n *   .toColourspace('b-w')\n *   .raw({ depth: 'ushort' })\n *   .toBuffer();\n *\n * @param {Object} [options] - output options\n * @param {string} [options.depth='uchar'] - bit depth, one of: char, uchar (default), short, ushort, int, uint, float, complex, double, dpcomplex\n * @returns {Sharp}\n * @throws {Error} Invalid options\n */\nfunction raw (options) {\n  if (is.object(options)) {\n    if (is.defined(options.depth)) {\n      if (is.string(options.depth) && is.inArray(options.depth,\n        ['char', 'uchar', 'short', 'ushort', 'int', 'uint', 'float', 'complex', 'double', 'dpcomplex']\n      )) {\n        this.options.rawDepth = options.depth;\n      } else {\n        throw is.invalidParameterError('depth', 'one of: char, uchar, short, ushort, int, uint, float, complex, double, dpcomplex', options.depth);\n      }\n    }\n  }\n  return this._updateFormatOut('raw');\n}\n\n/**\n * Use tile-based deep zoom (image pyramid) output.\n *\n * Set the format and options for tile images via the `toFormat`, `jpeg`, `png` or `webp` functions.\n * Use a `.zip` or `.szi` file extension with `toFile` to write to a compressed archive file format.\n *\n * The container will be set to `zip` when the output is a Buffer or Stream, otherwise it will default to `fs`.\n *\n * @example\n *  sharp('input.tiff')\n *   .png()\n *   .tile({\n *     size: 512\n *   })\n *   .toFile('output.dz', function(err, info) {\n *     // output.dzi is the Deep Zoom XML definition\n *     // output_files contains 512x512 tiles grouped by zoom level\n *   });\n *\n * @example\n * const zipFileWithTiles = await sharp(input)\n *   .tile({ basename: \"tiles\" })\n *   .toBuffer();\n *\n * @example\n * const iiififier = sharp().tile({ layout: \"iiif\" });\n * readableStream\n *   .pipe(iiififier)\n *   .pipe(writeableStream);\n *\n * @param {Object} [options]\n * @param {number} [options.size=256] tile size in pixels, a value between 1 and 8192.\n * @param {number} [options.overlap=0] tile overlap in pixels, a value between 0 and 8192.\n * @param {number} [options.angle=0] tile angle of rotation, must be a multiple of 90.\n * @param {string|Object} [options.background={r: 255, g: 255, b: 255, alpha: 1}] - background colour, parsed by the [color](https://www.npmjs.org/package/color) module, defaults to white without transparency.\n * @param {string} [options.depth] how deep to make the pyramid, possible values are `onepixel`, `onetile` or `one`, default based on layout.\n * @param {number} [options.skipBlanks=-1] Threshold to skip tile generation. Range is 0-255 for 8-bit images, 0-65535 for 16-bit images. Default is 5 for `google` layout, -1 (no skip) otherwise.\n * @param {string} [options.container='fs'] tile container, with value `fs` (filesystem) or `zip` (compressed file).\n * @param {string} [options.layout='dz'] filesystem layout, possible values are `dz`, `iiif`, `iiif3`, `zoomify` or `google`.\n * @param {boolean} [options.centre=false] centre image in tile.\n * @param {boolean} [options.center=false] alternative spelling of centre.\n * @param {string} [options.id='https://example.com/iiif'] when `layout` is `iiif`/`iiif3`, sets the `@id`/`id` attribute of `info.json`\n * @param {string} [options.basename] the name of the directory within the zip file when container is `zip`.\n * @returns {Sharp}\n * @throws {Error} Invalid parameters\n */\nfunction tile (options) {\n  if (is.object(options)) {\n    // Size of square tiles, in pixels\n    if (is.defined(options.size)) {\n      if (is.integer(options.size) && is.inRange(options.size, 1, 8192)) {\n        this.options.tileSize = options.size;\n      } else {\n        throw is.invalidParameterError('size', 'integer between 1 and 8192', options.size);\n      }\n    }\n    // Overlap of tiles, in pixels\n    if (is.defined(options.overlap)) {\n      if (is.integer(options.overlap) && is.inRange(options.overlap, 0, 8192)) {\n        if (options.overlap > this.options.tileSize) {\n          throw is.invalidParameterError('overlap', `<= size (${this.options.tileSize})`, options.overlap);\n        }\n        this.options.tileOverlap = options.overlap;\n      } else {\n        throw is.invalidParameterError('overlap', 'integer between 0 and 8192', options.overlap);\n      }\n    }\n    // Container\n    if (is.defined(options.container)) {\n      if (is.string(options.container) && is.inArray(options.container, ['fs', 'zip'])) {\n        this.options.tileContainer = options.container;\n      } else {\n        throw is.invalidParameterError('container', 'one of: fs, zip', options.container);\n      }\n    }\n    // Layout\n    if (is.defined(options.layout)) {\n      if (is.string(options.layout) && is.inArray(options.layout, ['dz', 'google', 'iiif', 'iiif3', 'zoomify'])) {\n        this.options.tileLayout = options.layout;\n      } else {\n        throw is.invalidParameterError('layout', 'one of: dz, google, iiif, iiif3, zoomify', options.layout);\n      }\n    }\n    // Angle of rotation,\n    if (is.defined(options.angle)) {\n      if (is.integer(options.angle) && !(options.angle % 90)) {\n        this.options.tileAngle = options.angle;\n      } else {\n        throw is.invalidParameterError('angle', 'positive/negative multiple of 90', options.angle);\n      }\n    }\n    // Background colour\n    this._setBackgroundColourOption('tileBackground', options.background);\n    // Depth of tiles\n    if (is.defined(options.depth)) {\n      if (is.string(options.depth) && is.inArray(options.depth, ['onepixel', 'onetile', 'one'])) {\n        this.options.tileDepth = options.depth;\n      } else {\n        throw is.invalidParameterError('depth', 'one of: onepixel, onetile, one', options.depth);\n      }\n    }\n    // Threshold to skip blank tiles\n    if (is.defined(options.skipBlanks)) {\n      if (is.integer(options.skipBlanks) && is.inRange(options.skipBlanks, -1, 65535)) {\n        this.options.tileSkipBlanks = options.skipBlanks;\n      } else {\n        throw is.invalidParameterError('skipBlanks', 'integer between -1 and 255/65535', options.skipBlanks);\n      }\n    } else if (is.defined(options.layout) && options.layout === 'google') {\n      this.options.tileSkipBlanks = 5;\n    }\n    // Center image in tile\n    const centre = is.bool(options.center) ? options.center : options.centre;\n    if (is.defined(centre)) {\n      this._setBooleanOption('tileCentre', centre);\n    }\n    // @id attribute for IIIF layout\n    if (is.defined(options.id)) {\n      if (is.string(options.id)) {\n        this.options.tileId = options.id;\n      } else {\n        throw is.invalidParameterError('id', 'string', options.id);\n      }\n    }\n    // Basename for zip container\n    if (is.defined(options.basename)) {\n      if (is.string(options.basename)) {\n        this.options.tileBasename = options.basename;\n      } else {\n        throw is.invalidParameterError('basename', 'string', options.basename);\n      }\n    }\n  }\n  // Format\n  if (is.inArray(this.options.formatOut, ['jpeg', 'png', 'webp'])) {\n    this.options.tileFormat = this.options.formatOut;\n  } else if (this.options.formatOut !== 'input') {\n    throw is.invalidParameterError('format', 'one of: jpeg, png, webp', this.options.formatOut);\n  }\n  return this._updateFormatOut('dz');\n}\n\n/**\n * Set a timeout for processing, in seconds.\n * Use a value of zero to continue processing indefinitely, the default behaviour.\n *\n * The clock starts when libvips opens an input image for processing.\n * Time spent waiting for a libuv thread to become available is not included.\n *\n * @example\n * // Ensure processing takes no longer than 3 seconds\n * try {\n *   const data = await sharp(input)\n *     .blur(1000)\n *     .timeout({ seconds: 3 })\n *     .toBuffer();\n * } catch (err) {\n *   if (err.message.includes('timeout')) { ... }\n * }\n *\n * @since 0.29.2\n *\n * @param {Object} options\n * @param {number} options.seconds - Number of seconds after which processing will be stopped\n * @returns {Sharp}\n */\nfunction timeout (options) {\n  if (!is.plainObject(options)) {\n    throw is.invalidParameterError('options', 'object', options);\n  }\n  if (is.integer(options.seconds) && is.inRange(options.seconds, 0, 3600)) {\n    this.options.timeoutSeconds = options.seconds;\n  } else {\n    throw is.invalidParameterError('seconds', 'integer between 0 and 3600', options.seconds);\n  }\n  return this;\n}\n\n/**\n * Update the output format unless options.force is false,\n * in which case revert to input format.\n * @private\n * @param {string} formatOut\n * @param {Object} [options]\n * @param {boolean} [options.force=true] - force output format, otherwise attempt to use input format\n * @returns {Sharp}\n */\nfunction _updateFormatOut (formatOut, options) {\n  if (!(is.object(options) && options.force === false)) {\n    this.options.formatOut = formatOut;\n  }\n  return this;\n}\n\n/**\n * Update a boolean attribute of the this.options Object.\n * @private\n * @param {string} key\n * @param {boolean} val\n * @throws {Error} Invalid key\n */\nfunction _setBooleanOption (key, val) {\n  if (is.bool(val)) {\n    this.options[key] = val;\n  } else {\n    throw is.invalidParameterError(key, 'boolean', val);\n  }\n}\n\n/**\n * Called by a WriteableStream to notify us it is ready for data.\n * @private\n */\nfunction _read () {\n  if (!this.options.streamOut) {\n    this.options.streamOut = true;\n    const stack = Error();\n    this._pipeline(undefined, stack);\n  }\n}\n\n/**\n * Invoke the C++ image processing pipeline\n * Supports callback, stream and promise variants\n * @private\n */\nfunction _pipeline (callback, stack) {\n  if (typeof callback === 'function') {\n    // output=file/buffer\n    if (this._isStreamInput()) {\n      // output=file/buffer, input=stream\n      this._whenStreamInFinished(() => {\n        this._flattenBufferIn();\n        sharp.pipeline(this.options, (err, data, info) => {\n          if (err) {\n            callback(is.nativeError(err, stack));\n          } else {\n            callback(null, data, info);\n          }\n        });\n      });\n    } else {\n      // output=file/buffer, input=file/buffer\n      sharp.pipeline(this.options, (err, data, info) => {\n        if (err) {\n          callback(is.nativeError(err, stack));\n        } else {\n          callback(null, data, info);\n        }\n      });\n    }\n    return this;\n  } else if (this.options.streamOut) {\n    // output=stream\n    if (this._isStreamInput()) {\n      // output=stream, input=stream\n      this._whenStreamInFinished(() => {\n        this._flattenBufferIn();\n        sharp.pipeline(this.options, (err, data, info) => {\n          if (err) {\n            this.emit('error', is.nativeError(err, stack));\n          } else {\n            this.emit('info', info);\n            this.push(data);\n          }\n          this.push(null);\n          this.on('end', () => this.emit('close'));\n        });\n      });\n    } else {\n      // output=stream, input=file/buffer\n      sharp.pipeline(this.options, (err, data, info) => {\n        if (err) {\n          this.emit('error', is.nativeError(err, stack));\n        } else {\n          this.emit('info', info);\n          this.push(data);\n        }\n        this.push(null);\n        this.on('end', () => this.emit('close'));\n      });\n    }\n    return this;\n  } else {\n    // output=promise\n    if (this._isStreamInput()) {\n      // output=promise, input=stream\n      return new Promise((resolve, reject) => {\n        this._whenStreamInFinished(() => {\n          this._flattenBufferIn();\n          sharp.pipeline(this.options, (err, data, info) => {\n            if (err) {\n              reject(is.nativeError(err, stack));\n            } else {\n              if (this.options.resolveWithObject) {\n                resolve({ data, info });\n              } else {\n                resolve(data);\n              }\n            }\n          });\n        });\n      });\n    } else {\n      // output=promise, input=file/buffer\n      return new Promise((resolve, reject) => {\n        sharp.pipeline(this.options, (err, data, info) => {\n          if (err) {\n            reject(is.nativeError(err, stack));\n          } else {\n            if (this.options.resolveWithObject) {\n              resolve({ data, info });\n            } else {\n              resolve(data);\n            }\n          }\n        });\n      });\n    }\n  }\n}\n\n/**\n * Decorate the Sharp prototype with output-related functions.\n * @module Sharp\n * @private\n */\nexport default (Sharp) => {\n  Object.assign(Sharp.prototype, {\n    // Public\n    toFile,\n    toBuffer,\n    toUint8Array,\n    withDensity,\n    keepExif,\n    withExif,\n    withExifMerge,\n    keepIccProfile,\n    withIccProfile,\n    keepGainMap,\n    withGainMap,\n    keepXmp,\n    withXmp,\n    keepMetadata,\n    withMetadata,\n    toFormat,\n    jpeg,\n    jp2,\n    png,\n    webp,\n    tiff,\n    avif,\n    heif,\n    jxl,\n    gif,\n    raw,\n    tile,\n    timeout,\n    // Private\n    _updateFormatOut,\n    _setBooleanOption,\n    _read,\n    _pipeline\n  });\n};\n", "/*!\n  Copyright 2013 Lovell Fuller and others.\n  SPDX-License-Identifier: Apache-2.0\n*/\n\nimport events from 'node:events';\nimport { createRequire } from \"node:module\";\nimport { availableParallelism } from \"node:os\";\nimport detectLibc from 'detect-libc';\n\nimport is from './is.mjs';\nimport libvips from './libvips.mjs';\nimport sharp from './sharp.mjs';\nimport pkg from \"../package.json\" with { type: \"json\" };\n\nconst require = createRequire(import.meta.url);\nconst runtimePlatform = libvips.runtimePlatformArch();\nconst libvipsVersion = sharp.libvipsVersion();\n\n/**\n * An Object containing nested boolean values representing the available input and output formats/methods.\n * @member\n * @example\n * console.log(sharp.format);\n * @returns {Object}\n */\nconst format = sharp.format();\nformat.heif.output.alias = ['avif', 'heic'];\nformat.jpeg.output.alias = ['jpe', 'jpg'];\nformat.tiff.output.alias = ['tif'];\nformat.jp2.output.alias = ['j2c', 'j2k', 'jp2', 'jpx'];\n\n/**\n * An Object containing the available interpolators and their proper values\n * @readonly\n * @enum {string}\n */\nconst interpolators = {\n  /** [Nearest neighbour interpolation](http://en.wikipedia.org/wiki/Nearest-neighbor_interpolation). Suitable for image enlargement only. */\n  nearest: 'nearest',\n  /** [Bilinear interpolation](http://en.wikipedia.org/wiki/Bilinear_interpolation). Faster than bicubic but with less smooth results. */\n  bilinear: 'bilinear',\n  /** [Bicubic interpolation](http://en.wikipedia.org/wiki/Bicubic_interpolation) (the default). */\n  bicubic: 'bicubic',\n  /** [LBB interpolation](https://github.com/libvips/libvips/blob/master/libvips/resample/lbb.cpp#L100). Prevents some \"[acutance](http://en.wikipedia.org/wiki/Acutance)\" but typically reduces performance by a factor of 2. */\n  locallyBoundedBicubic: 'lbb',\n  /** [Nohalo interpolation](http://eprints.soton.ac.uk/268086/). Prevents acutance but typically reduces performance by a factor of 3. */\n  nohalo: 'nohalo',\n  /** [VSQBS interpolation](https://github.com/libvips/libvips/blob/master/libvips/resample/vsqbs.cpp#L48). Prevents \"staircasing\" when enlarging. */\n  vertexSplitQuadraticBasisSpline: 'vsqbs'\n};\n\n/**\n * An Object containing the version numbers of sharp, libvips\n * and (when using prebuilt binaries) its dependencies.\n *\n * @member\n * @example\n * console.log(sharp.versions);\n */\nlet versions = {\n  vips: libvipsVersion.semver\n};\n/* node:coverage ignore next 15 */\nif (!libvipsVersion.isGlobal) {\n  if (!libvipsVersion.isWasm) {\n    try {\n      versions = require(`@img/sharp-${runtimePlatform}/versions`);\n    } catch (_) {\n      try {\n        versions = require(`@img/sharp-libvips-${runtimePlatform}/versions`);\n      } catch (_) {}\n    }\n  } else {\n    try {\n      versions = require('@img/sharp-wasm32/versions');\n    } catch (_) {}\n  }\n}\nversions.sharp = pkg.version;\n\n/* node:coverage ignore next 5 */\nif (versions.heif && format.heif) {\n  // Prebuilt binaries provide AV1\n  format.heif.input.fileSuffix = ['.avif'];\n  format.heif.output.alias = ['avif'];\n}\n\n/**\n * Gets or, when options are provided, sets the limits of _libvips'_ operation cache.\n * Existing entries in the cache will be trimmed after any change in limits.\n * This method always returns cache statistics,\n * useful for determining how much working memory is required for a particular task.\n *\n * @example\n * const stats = sharp.cache();\n * @example\n * sharp.cache( { items: 200 } );\n * sharp.cache( { files: 0 } );\n * sharp.cache(false);\n *\n * @param {Object|boolean} [options=true] - Object with the following attributes, or boolean where true uses default cache settings and false removes all caching\n * @param {number} [options.memory=50] - is the maximum memory in MB to use for this cache\n * @param {number} [options.files=20] - is the maximum number of files to hold open\n * @param {number} [options.items=100] - is the maximum number of operations to cache\n * @returns {Object}\n */\nfunction cache (options) {\n  if (is.bool(options)) {\n    if (options) {\n      // Default cache settings of 50MB, 20 files, 100 items\n      return sharp.cache(50, 20, 100);\n    } else {\n      return sharp.cache(0, 0, 0);\n    }\n  } else if (is.object(options)) {\n    for (const property of ['memory', 'files', 'items']) {\n      const value = options[property];\n      if (is.defined(value) && !(is.integer(value) && value >= 0)) {\n        throw is.invalidParameterError(property, 'a positive integer', value);\n      }\n    }\n    return sharp.cache(options.memory, options.files, options.items);\n  } else {\n    return sharp.cache();\n  }\n}\ncache(true);\n\n/**\n * Gets or, when a concurrency is provided, sets\n * the maximum number of threads _libvips_ should use to process _each image_.\n * These are from a thread pool managed by glib,\n * which helps avoid the overhead of creating new threads.\n *\n * This method always returns the current concurrency.\n *\n * The default value is the number of CPU cores,\n * except when using glibc-based Linux without jemalloc,\n * where the default is `1` to help reduce memory fragmentation.\n *\n * A value of `0` will reset this to the number of CPU cores.\n *\n * Some image format libraries spawn additional threads,\n * e.g. libaom manages its own 4 threads when encoding AVIF images,\n * and these are independent of the value set here.\n *\n * :::note\n * Further {@link /performance/ control over performance} is available.\n * :::\n *\n * @example\n * const threads = sharp.concurrency(); // 4\n * sharp.concurrency(2); // 2\n * sharp.concurrency(0); // 4\n *\n * @param {number} [concurrency]\n * @returns {number} concurrency\n */\nfunction concurrency (concurrency) {\n  return sharp.concurrency(is.integer(concurrency) ? concurrency : null);\n}\n/* node:coverage ignore next 7 */\nif (!process.env.MALLOC_ARENA_MAX && detectLibc.familySync() === detectLibc.GLIBC && !sharp._isUsingJemalloc()) {\n  // Reduce default concurrency to 1 when using glibc memory allocator\n  sharp.concurrency(1);\n} else if (detectLibc.familySync() === detectLibc.MUSL && sharp.concurrency() === 1024) {\n  // Reduce default concurrency when musl thread over-subscription detected\n  sharp.concurrency(availableParallelism());\n}\n\n/**\n * An EventEmitter that emits a `change` event when a task is either:\n * - queued, waiting for _libuv_ to provide a worker thread\n * - complete\n * @member\n * @example\n * sharp.queue.on('change', function(queueLength) {\n *   console.log('Queue contains ' + queueLength + ' task(s)');\n * });\n */\nconst queue = new events.EventEmitter();\n\n/**\n * Provides access to internal task counters.\n * - queue is the number of tasks this module has queued waiting for _libuv_ to provide a worker thread from its pool.\n * - process is the number of resize tasks currently being processed.\n *\n * @example\n * const counters = sharp.counters(); // { queue: 2, process: 4 }\n *\n * @returns {Object}\n */\nfunction counters () {\n  return sharp.counters();\n}\n\n/**\n * Get and set use of SIMD vector unit instructions.\n * Requires libvips to have been compiled with highway support.\n *\n * Improves the performance of `resize`, `blur` and `sharpen` operations\n * by taking advantage of the SIMD vector unit of the CPU, e.g. Intel SSE and ARM NEON.\n *\n * @example\n * const simd = sharp.simd();\n * // simd is `true` if the runtime use of highway is currently enabled\n * @example\n * const simd = sharp.simd(false);\n * // prevent libvips from using highway at runtime\n *\n * @param {boolean} [simd=true]\n * @returns {boolean}\n */\nfunction simd (simd) {\n  return sharp.simd(is.bool(simd) ? simd : null);\n}\n\n/**\n * Block libvips operations at runtime.\n *\n * This is in addition to the `VIPS_BLOCK_UNTRUSTED` environment variable,\n * which when set will block all \"untrusted\" operations.\n *\n * @since 0.32.4\n *\n * @example <caption>Block all TIFF input.</caption>\n * sharp.block({\n *   operation: ['VipsForeignLoadTiff']\n * });\n *\n * @param {Object} options\n * @param {Array<string>} options.operation - List of libvips low-level operation names to block.\n */\nfunction block (options) {\n  if (is.object(options)) {\n    if (Array.isArray(options.operation) && options.operation.every(is.string)) {\n      sharp.block(options.operation, true);\n    } else {\n      throw is.invalidParameterError('operation', 'Array<string>', options.operation);\n    }\n  } else {\n    throw is.invalidParameterError('options', 'object', options);\n  }\n}\n\n/**\n * Unblock libvips operations at runtime.\n *\n * This is useful for defining a list of allowed operations.\n *\n * @since 0.32.4\n *\n * @example <caption>Block all input except WebP from the filesystem.</caption>\n * sharp.block({\n *   operation: ['VipsForeignLoad']\n * });\n * sharp.unblock({\n *   operation: ['VipsForeignLoadWebpFile']\n * });\n *\n * @example <caption>Block all input except JPEG and PNG from a Buffer or Stream.</caption>\n * sharp.block({\n *   operation: ['VipsForeignLoad']\n * });\n * sharp.unblock({\n *   operation: ['VipsForeignLoadJpegBuffer', 'VipsForeignLoadPngBuffer']\n * });\n *\n * @param {Object} options\n * @param {Array<string>} options.operation - List of libvips low-level operation names to unblock.\n */\nfunction unblock (options) {\n  if (is.object(options)) {\n    if (Array.isArray(options.operation) && options.operation.every(is.string)) {\n      sharp.block(options.operation, false);\n    } else {\n      throw is.invalidParameterError('operation', 'Array<string>', options.operation);\n    }\n  } else {\n    throw is.invalidParameterError('options', 'object', options);\n  }\n}\n\n/**\n * Decorate the Sharp class with utility-related functions.\n * @module Sharp\n * @private\n */\nexport default (Sharp) => {\n  Sharp.cache = cache;\n  Sharp.concurrency = concurrency;\n  Sharp.counters = counters;\n  Sharp.simd = simd;\n  Sharp.format = format;\n  Sharp.interpolators = interpolators;\n  Sharp.versions = versions;\n  Sharp.queue = queue;\n  Sharp.block = block;\n  Sharp.unblock = unblock;\n};\n", "/*!\n  Copyright 2013 Lovell Fuller and others.\n  SPDX-License-Identifier: Apache-2.0\n*/\n\nimport Sharp from './constructor.mjs';\nimport input from './input.mjs';\nimport resize from './resize.mjs';\nimport composite from './composite.mjs';\nimport operation from './operation.mjs';\nimport colour from './colour.mjs';\nimport channel from './channel.mjs';\nimport output from './output.mjs';\nimport utility from './utility.mjs';\n\ninput(Sharp);\nresize(Sharp);\ncomposite(Sharp);\noperation(Sharp);\ncolour(Sharp);\nchannel(Sharp);\noutput(Sharp);\nutility(Sharp);\n\nexport default Sharp;\n", "import { CoreApiClient } from 'twenty-client-sdk/core';\nimport { defineLogicFunction } from 'twenty-sdk/define';\n\nimport { PENDING_CALL_RECORDING_REQUESTS_LOGIC_FUNCTION_UNIVERSAL_IDENTIFIER } from 'src/constants/universal-identifiers';\nimport { PENDING_CALL_RECORDING_REQUESTS_CRON_PATTERN } from 'src/logic-functions/constants/pending-call-recording-requests-cron-pattern';\nimport {\n  retryFailedRecallCancellations,\n  type RetryFailedRecallCancellationsResult,\n} from 'src/logic-functions/flows/retry-failed-recall-cancellations.util';\nimport {\n  scheduleRecallBotsForPendingCallRecordings,\n  type ScheduleRecallBotsForPendingCallRecordingsResult,\n} from 'src/logic-functions/flows/schedule-recall-bots-for-pending-call-recordings.util';\nimport {\n  buildStepFailure,\n  type StepFailure,\n} from 'src/logic-functions/utils/build-step-failure.util';\n\nconst processPendingCallRecordingRequestsHandler =\n  async (): Promise<object> => {\n    const now = new Date();\n    const client = new CoreApiClient();\n\n    const pendingCallRecordingScheduleResult =\n      await scheduleRecallBotsForPendingCallRecordingsSafely(client, now);\n    const failedCancellationResult = await retryFailedRecallCancellationsSafely(\n      client,\n      now,\n    );\n\n    return {\n      pendingCallRecordingScheduleResult,\n      failedCancellationResult,\n    };\n  };\n\nconst scheduleRecallBotsForPendingCallRecordingsSafely = async (\n  client: CoreApiClient,\n  now: Date,\n): Promise<ScheduleRecallBotsForPendingCallRecordingsResult | StepFailure> => {\n  try {\n    return await scheduleRecallBotsForPendingCallRecordings({ client, now });\n  } catch (error) {\n    return buildStepFailure('pending Recall bot scheduling', error);\n  }\n};\n\nconst retryFailedRecallCancellationsSafely = async (\n  client: CoreApiClient,\n  now: Date,\n): Promise<RetryFailedRecallCancellationsResult | StepFailure> => {\n  try {\n    return await retryFailedRecallCancellations({ client, now });\n  } catch (error) {\n    return buildStepFailure('failed cancellation retry', error);\n  }\n};\n\nexport default defineLogicFunction({\n  universalIdentifier:\n    PENDING_CALL_RECORDING_REQUESTS_LOGIC_FUNCTION_UNIVERSAL_IDENTIFIER,\n  name: 'process-pending-call-recording-requests',\n  description:\n    'Processes pending CallRecording requests by attaching or scheduling missing Recall bots and retrying incomplete cancellations.',\n  timeoutSeconds: 250,\n  handler: processPendingCallRecordingRequestsHandler,\n  cronTriggerSettings: {\n    pattern: PENDING_CALL_RECORDING_REQUESTS_CRON_PATTERN,\n  },\n});\n", "\n// Auto-generated stub for twenty-sdk/define injected by the SDK CLI build.\n// Real implementations would pull in zod, twenty-shared and ~1MB of code; at\n// runtime only `default.config.handler` is consumed, so tiny no-ops suffice.\nconst __defineFactoryStub = (config) => ({\n  success: true,\n  config,\n  errors: [],\n});\n\nconst __anyHandler = {\n  get(_target, prop) {\n    if (prop === '__esModule') return true;\n    if (prop === Symbol.toPrimitive) return () => '';\n    if (typeof prop === 'symbol') return undefined;\n    return new Proxy(() => undefined, __anyHandler);\n  },\n  apply() {\n    return new Proxy(() => undefined, __anyHandler);\n  },\n};\nconst __anyStub = new Proxy(() => undefined, __anyHandler);\n\nexport const createValidationResult = __defineFactoryStub;\nexport const defineAgent = __defineFactoryStub;\nexport const defineApplication = __defineFactoryStub;\nexport const defineApplicationRole = __defineFactoryStub;\nexport const defineCommandMenuItem = __defineFactoryStub;\nexport const defineConnectionProvider = __defineFactoryStub;\nexport const defineField = __defineFactoryStub;\nexport const defineFrontComponent = __defineFactoryStub;\nexport const defineIndex = __defineFactoryStub;\nexport const defineLogicFunction = __defineFactoryStub;\nexport const defineNavigationMenuItem = __defineFactoryStub;\nexport const defineObject = __defineFactoryStub;\nexport const definePageLayout = __defineFactoryStub;\nexport const definePageLayoutTab = __defineFactoryStub;\nexport const definePermissionFlag = __defineFactoryStub;\nexport const definePostInstallLogicFunction = __defineFactoryStub;\nexport const definePreInstallLogicFunction = __defineFactoryStub;\nexport const defineRole = __defineFactoryStub;\nexport const defineSettingsFrontComponent = __defineFactoryStub;\nexport const defineSkill = __defineFactoryStub;\nexport const defineTimelineActivityType = __defineFactoryStub;\nexport const defineUninstallLogicFunction = __defineFactoryStub;\nexport const defineView = __defineFactoryStub;\nexport const defineViewField = __defineFactoryStub;\nexport const AggregateOperations = __anyStub;\nexport const CommandMenuItemAvailabilityType = __anyStub;\nexport const DateDisplayFormat = __anyStub;\nexport const FieldMetadataSettingsOnClickAction = __anyStub;\nexport const FieldType = __anyStub;\nexport const HTTPMethod = __anyStub;\nexport const IndexType = __anyStub;\nexport const MetadataWritability = __anyStub;\nexport const NavigationMenuItemType = __anyStub;\nexport const NumberDataType = __anyStub;\nexport const ObjectOpenRecordIn = __anyStub;\nexport const ObjectRecordGroupByDateGranularity = __anyStub;\nexport const OnDeleteAction = __anyStub;\nexport const PageLayoutTabLayoutMode = __anyStub;\nexport const PageLayoutType = __anyStub;\nexport const RelationType = __anyStub;\nexport const RowLevelPermissionPredicateGroupLogicalOperator = __anyStub;\nexport const RowLevelPermissionPredicateOperand = __anyStub;\nexport const STANDARD_OBJECT = __anyStub;\nexport const STANDARD_OBJECT_UNIVERSAL_IDENTIFIERS = __anyStub;\nexport const STANDARD_PAGE_LAYOUT = __anyStub;\nexport const STANDARD_PAGE_LAYOUT_UNIVERSAL_IDENTIFIERS = __anyStub;\nexport const SYSTEM_VIEW_KEYS = __anyStub;\nexport const SystemPermissionFlag = __anyStub;\nexport const ViewCalendarLayout = __anyStub;\nexport const ViewFilterGroupLogicalOperator = __anyStub;\nexport const ViewFilterOperand = __anyStub;\nexport const ViewKey = __anyStub;\nexport const ViewOpenRecordIn = __anyStub;\nexport const ViewSortDirection = __anyStub;\nexport const ViewType = __anyStub;\nexport const ViewVisibility = __anyStub;\nexport const WidgetType = __anyStub;\nexport const canAccessFullAdminPanel = __anyStub;\nexport const canImpersonate = __anyStub;\nexport const every = __anyStub;\nexport const everyDefined = __anyStub;\nexport const everyEquals = __anyStub;\nexport const favoriteRecordIds = __anyStub;\nexport const featureFlags = __anyStub;\nexport const getFieldUniversalIdentifier = __anyStub;\nexport const getSystemRelationFieldUniversalIdentifier = __anyStub;\nexport const getSystemViewFieldUniversalIdentifier = __anyStub;\nexport const getSystemViewUniversalIdentifier = __anyStub;\nexport const hasAnySoftDeleteFilterOnView = __anyStub;\nexport const includes = __anyStub;\nexport const includesEvery = __anyStub;\nexport const isDashboardPageLayoutInEditMode = __anyStub;\nexport const isDefined = __anyStub;\nexport const isInSidePanel = __anyStub;\nexport const isLayoutCustomizationModeEnabled = __anyStub;\nexport const isNonEmptyString = __anyStub;\nexport const isSelectAll = __anyStub;\nexport const none = __anyStub;\nexport const noneDefined = __anyStub;\nexport const noneEquals = __anyStub;\nexport const numberOfSelectedRecords = __anyStub;\nexport const objectMetadataItem = __anyStub;\nexport const objectMetadataLabel = __anyStub;\nexport const objectPermissions = __anyStub;\nexport const pageType = __anyStub;\nexport const selectedRecords = __anyStub;\nexport const some = __anyStub;\nexport const someDefined = __anyStub;\nexport const someEquals = __anyStub;\nexport const someNonEmptyString = __anyStub;\nexport const targetObjectReadPermissions = __anyStub;\nexport const targetObjectWritePermissions = __anyStub;\nexport const validateFields = __anyStub;\n", "export const APPLICATION_UNIVERSAL_IDENTIFIER =\n  '8da4b8b5-5edf-4880-b51f-ab6e679ec617';\n\nexport const BOT_SCHEDULE_ATTEMPTED_AT_FIELD_UNIVERSAL_IDENTIFIER =\n  'ca1d0179-f611-46bd-ba8a-b503ea9d024e';\n\nexport const BOT_SCHEDULE_IDEMPOTENCY_KEY_FIELD_UNIVERSAL_IDENTIFIER =\n  '6f00ea4d-1c5a-47ac-8c18-baacf5ee7c3f';\n\nexport const CALENDAR_EVENT_RECONCILIATION_LOGIC_FUNCTION_UNIVERSAL_IDENTIFIER =\n  '1f28c477-6423-4911-85bf-2296ef112be9';\n\nexport const CALL_RECORDER_ADDITIONAL_SUMMARY_PROMPT_APP_VARIABLE_UNIVERSAL_IDENTIFIER =\n  '587ead10-c514-468c-944f-17050c88dcc1';\n\nexport const CALL_RECORDER_BOT_IMAGE_BACKGROUND_APP_VARIABLE_UNIVERSAL_IDENTIFIER =\n  'fd0d9495-29ae-443e-84f9-4ec4d1f2d16a';\n\nexport const CALL_RECORDER_CALENDAR_BOT_SCHEDULING_ENABLED_APP_VARIABLE_UNIVERSAL_IDENTIFIER =\n  'e1cf956b-356f-468d-b5d9-044ed5fd9e5b';\n\nexport const CALL_RECORDER_EVERYONE_LEFT_TIMEOUT_SECONDS_APP_VARIABLE_UNIVERSAL_IDENTIFIER =\n  'c866ddd4-fb7b-4cb4-8ad1-5599755e495c';\n\nexport const CALL_RECORDER_FAILURE_REASON_ON_CALL_RECORDING_FIELD_UNIVERSAL_IDENTIFIER =\n  '33a577e4-02f5-48bd-8bed-d365949caa72';\n\nexport const CALL_RECORDER_JOIN_EARLY_MINUTES_APP_VARIABLE_UNIVERSAL_IDENTIFIER =\n  '0568ebb2-3f64-47de-8c0d-d367dfbb7462';\n\nexport const CALL_RECORDER_NAME_APP_VARIABLE_UNIVERSAL_IDENTIFIER =\n  'c54cbacd-ad10-40b4-9056-7aaf23846d64';\n\nexport const CALL_RECORDER_NOONE_JOINED_TIMEOUT_SECONDS_APP_VARIABLE_UNIVERSAL_IDENTIFIER =\n  '241180e8-d864-4160-ad02-db44a9e8d395';\n\nexport const CALL_RECORDER_PREFERENCE_ON_CALENDAR_EVENT_FIELD_UNIVERSAL_IDENTIFIER =\n  '8ee9444a-2437-4def-8e61-6e493862a4fd';\n\nexport const CALL_RECORDER_RECORDING_NOTICE_ENABLED_APP_VARIABLE_UNIVERSAL_IDENTIFIER =\n  'fbf5f1ef-34c7-4411-b392-e314f6d064d0';\n\nexport const CALL_RECORDER_RECORDING_NOTICE_MESSAGE_APP_VARIABLE_UNIVERSAL_IDENTIFIER =\n  '7103451a-2c46-4c16-bc2c-a9f28b329ee5';\n\nexport const CALL_RECORDER_SUMMARY_ENABLED_APP_VARIABLE_UNIVERSAL_IDENTIFIER =\n  '1d7bf052-4338-44da-b373-23f6d291a50c';\n\nexport const CALL_RECORDER_TRANSCRIPT_PROVIDER_APP_VARIABLE_UNIVERSAL_IDENTIFIER =\n  '598c1003-2767-4ccf-bc95-c251e6b92189';\n\nexport const CALL_RECORDER_USE_WORKSPACE_LOGO_APP_VARIABLE_UNIVERSAL_IDENTIFIER =\n  'fc06a41c-d1f3-4c51-a64b-d71ed77374c1';\n\nexport const CALL_RECORDER_WAITING_ROOM_TIMEOUT_SECONDS_APP_VARIABLE_UNIVERSAL_IDENTIFIER =\n  '12e4e14d-d539-4d07-b477-4773539dd20b';\n\nexport const CALL_RECORDING_AUDIO_FIELD_UNIVERSAL_IDENTIFIER =\n  '2eafc2d0-8fec-430c-a939-65ca5fbc0f08';\n\nexport const CALL_RECORDING_SUMMARIZER_AGENT_UNIVERSAL_IDENTIFIER =\n  '388543f3-ec85-4905-ad7d-99801337ed5c';\n\nexport const CALL_RECORDING_VIDEO_FIELD_UNIVERSAL_IDENTIFIER =\n  'bb9523d3-457e-4f4b-8c79-27a77afb87da';\n\nexport const CANCEL_SCHEDULED_RECALL_BOTS_LOGIC_FUNCTION_UNIVERSAL_IDENTIFIER =\n  'a1b0f097-edeb-45a3-a53e-bf666cbfe3a4';\n\nexport const CANCEL_RECALL_BOT_ON_CALL_RECORDING_DELETE_LOGIC_FUNCTION_UNIVERSAL_IDENTIFIER =\n  '84981386-881f-4123-a2dd-82e0932ba663';\n\nexport const CANCEL_RECALL_BOTS_ON_UNINSTALL_LOGIC_FUNCTION_UNIVERSAL_IDENTIFIER =\n  '8f00ec95-38f0-4dc7-816a-78374affa32a';\n\nexport const CHECK_CREDITS_BEFORE_RECALL_BOT_JOIN_LOGIC_FUNCTION_UNIVERSAL_IDENTIFIER =\n  'bf482989-973e-48be-994e-050431686994';\n\nexport const CLEANUP_ORPHANED_RECALL_BOTS_LOGIC_FUNCTION_UNIVERSAL_IDENTIFIER =\n  'fa394597-dc73-4fee-9758-dea7401b0b8f';\n\nexport const DEFAULT_ROLE_UNIVERSAL_IDENTIFIER =\n  '5fcf4d3a-0aca-42d9-9beb-7387f43ec180';\n\nexport const ENQUEUE_CALL_RECORDING_RECOVERY_LOGIC_FUNCTION_UNIVERSAL_IDENTIFIER =\n  'e93a646b-31bd-45e6-86e3-9a54f4f7d141';\n\nexport const ENQUEUE_ORPHANED_RECALL_BOT_CLEANUP_LOGIC_FUNCTION_UNIVERSAL_IDENTIFIER =\n  '455458ce-bbc3-4b39-a3f2-950540c9eda7';\n\nexport const GENERATE_CALL_RECORDING_SUMMARIES_LOGIC_FUNCTION_UNIVERSAL_IDENTIFIER =\n  '3467c68d-5d81-4f16-8234-b4182cb17f19';\n\nexport const GENERATE_CALL_RECORDING_SUMMARY_COMMAND_MENU_ITEM_UNIVERSAL_IDENTIFIER =\n  '6b7b0989-2946-413b-9b6a-08336b418788';\n\nexport const GENERATE_CALL_RECORDING_SUMMARY_FRONT_COMPONENT_UNIVERSAL_IDENTIFIER =\n  '4b81fd8f-5626-4d5a-a97e-0543436bb555';\n\nexport const IMPORT_CALL_RECORDING_ARTIFACTS_LOGIC_FUNCTION_UNIVERSAL_IDENTIFIER =\n  '6b975429-7f0d-4a08-8e5e-5a830e6dc621';\n\nexport const PENDING_CALL_RECORDING_REQUESTS_LOGIC_FUNCTION_UNIVERSAL_IDENTIFIER =\n  'd7d1170f-abb1-4c9b-8258-13219a611b03';\n\nexport const PROCESS_RECALL_WEBHOOK_LOGIC_FUNCTION_UNIVERSAL_IDENTIFIER =\n  '13d9c427-447e-494a-8d3c-1af5d0bacb82';\n\nexport const RECALL_WEBHOOK_LOGIC_FUNCTION_UNIVERSAL_IDENTIFIER =\n  '9215afe6-1497-4149-a49d-e608e239bbaf';\n\nexport const RECONCILE_UPCOMING_CALENDAR_EVENTS_LOGIC_FUNCTION_UNIVERSAL_IDENTIFIER =\n  '06fafff7-c722-41d1-869d-9554736f4c53';\n\nexport const SCHEDULE_RECALL_BOT_ON_CALL_RECORDING_UPDATE_LOGIC_FUNCTION_UNIVERSAL_IDENTIFIER =\n  'fad4b1b5-8b6e-48c7-a8c7-3aecae2672c1';\n\nexport const STALE_BOT_STATE_LOGIC_FUNCTION_UNIVERSAL_IDENTIFIER =\n  'e362aa9b-52c6-4b7e-bb20-927e0e8d7cbe';\n\nexport const START_POST_INSTALL_BACKFILLS_LOGIC_FUNCTION_UNIVERSAL_IDENTIFIER =\n  '53e0acb4-b761-40c9-8aaf-554d2a5da00f';\n\nexport const SUMMARIZE_CALL_RECORDING_LOGIC_FUNCTION_UNIVERSAL_IDENTIFIER =\n  'c7a59e9c-935d-45ae-ae95-ded8d327f581';\n\nexport const SWEEP_UPCOMING_CALENDAR_EVENTS_LOGIC_FUNCTION_UNIVERSAL_IDENTIFIER =\n  '05ab984e-c6ad-4b1c-800f-8f029dc7aac8';\n\nexport const SYNC_CALENDAR_BOT_SCHEDULING_LOGIC_FUNCTION_UNIVERSAL_IDENTIFIER =\n  '1ec45adf-8521-4a53-833f-3b9bc20f0e9d';\n", "// The callRecording.updated trigger resumes most stuck rows within seconds;\n// this cron is the backstop for crashed creations and missed events.\nexport const PENDING_CALL_RECORDING_REQUESTS_CRON_PATTERN = '0 3 * * *';\n", "import { isUndefined } from '@sniptt/guards';\nimport { type CoreApiClient } from 'twenty-client-sdk/core';\n\nimport { CallRecordingRequestStatus } from 'src/logic-functions/constants/call-recording-request-status';\nimport { hasMeetingEnded } from 'src/logic-functions/domain/has-meeting-ended.util';\nimport { NON_TERMINAL_CALL_RECORDING_STATUSES } from 'src/logic-functions/constants/non-terminal-call-recording-statuses';\nimport { fetchCalendarEventsByIds } from 'src/logic-functions/data/fetch-calendar-events-by-ids.util';\nimport { findCallRecordingsByFilter } from 'src/logic-functions/data/find-call-recordings-by-filter.util';\nimport { replaceCanceledCallRecordingExternalBotId } from 'src/logic-functions/data/replace-canceled-call-recording-external-bot-id.util';\nimport { cancelRecallBotForCanceledCallRecording } from 'src/logic-functions/flows/cancel-recall-bot-for-canceled-call-recording.util';\nimport { findScheduledRecallBotIdsByCallRecordingId } from 'src/logic-functions/recall-api/find-scheduled-recall-bot-ids-by-call-recording-id.util';\nimport { type CalendarEventRecord } from 'src/logic-functions/types/calendar-event-record.type';\nimport { type CallRecordingRecord } from 'src/logic-functions/types/call-recording-record.type';\nimport { getUniqueSortedIds } from 'src/logic-functions/utils/get-unique-sorted-ids.util';\n\nexport type RetryFailedRecallCancellationsResult = {\n  canceledExternalBotCallRecordingIds: string[];\n};\n\nconst CANCELED_BOT_RECOVERY_AFTER_START_HOURS = 24;\nconst CANCELED_BOT_RECOVERY_MAX_AGE_HOURS = 24;\n\n// Retries the Recall half of cancelCallRecordingRequest when its bot cancel failed; the recording keeps its bot id until the bot is confirmed gone.\nexport const retryFailedRecallCancellations = async ({\n  client,\n  now,\n}: {\n  client: CoreApiClient;\n  now: Date;\n}): Promise<RetryFailedRecallCancellationsResult> => {\n  const canceledCallRecordings = await findCallRecordingsByFilter(client, {\n    recordingRequestStatus: { eq: CallRecordingRequestStatus.CANCELED },\n    status: { in: NON_TERMINAL_CALL_RECORDING_STATUSES },\n  });\n  const botlessCanceledCallRecordings = canceledCallRecordings.filter(\n    (callRecording) => isUndefined(callRecording.externalBotId),\n  );\n  const calendarEventsById = new Map(\n    (\n      await fetchCalendarEventsByIds(\n        client,\n        getUniqueSortedIds(\n          botlessCanceledCallRecordings.map(\n            (callRecording) => callRecording.calendarEventId,\n          ),\n        ),\n      )\n    ).map((calendarEvent) => [calendarEvent.id, calendarEvent]),\n  );\n  const recoverableCallRecordingIds = new Set(\n    canceledCallRecordings\n      .filter(\n        (callRecording) =>\n          isUndefined(callRecording.externalBotId) &&\n          isWithinCanceledBotRecoveryWindow({\n            callRecording,\n            calendarEvent: isUndefined(callRecording.calendarEventId)\n              ? undefined\n              : calendarEventsById.get(callRecording.calendarEventId),\n            now,\n          }),\n      )\n      .map((callRecording) => callRecording.id),\n  );\n  const externalBotIdByCallRecordingId =\n    await lookupRecoverableExternalBotIds(recoverableCallRecordingIds);\n  const canceledExternalBotCallRecordingIds: string[] = [];\n\n  for (const callRecording of canceledCallRecordings) {\n    const externalBotId = await recoverRecallBotIdForCanceledCallRecording({\n      client,\n      callRecording,\n      listedExternalBotId: recoverableCallRecordingIds.has(callRecording.id)\n        ? externalBotIdByCallRecordingId?.get(callRecording.id)\n        : undefined,\n    });\n\n    if (isUndefined(externalBotId)) {\n      continue;\n    }\n\n    const outcome = await cancelRecallBotForCanceledCallRecording({\n      client,\n      callRecordingId: callRecording.id,\n      externalBotId,\n    });\n\n    if (outcome !== 'canceled') {\n      continue;\n    }\n\n    canceledExternalBotCallRecordingIds.push(callRecording.id);\n  }\n\n  return { canceledExternalBotCallRecordingIds };\n};\n\n// One workspace-wide list request covers every recoverable row; undefined\n// means the lookup failed and recovery must wait for the next run.\nconst lookupRecoverableExternalBotIds = async (\n  recoverableCallRecordingIds: Set<string>,\n): Promise<Map<string, string> | undefined> => {\n  if (recoverableCallRecordingIds.size === 0) {\n    return new Map();\n  }\n\n  const lookupResult = await findScheduledRecallBotIdsByCallRecordingId();\n\n  return lookupResult.ok\n    ? lookupResult.externalBotIdByCallRecordingId\n    : undefined;\n};\n\nconst isWithinCanceledBotRecoveryWindow = ({\n  callRecording,\n  calendarEvent,\n  now,\n}: {\n  callRecording: CallRecordingRecord;\n  calendarEvent: CalendarEventRecord | undefined;\n  now: Date;\n}): boolean => {\n  if (\n    !isUndefined(calendarEvent) &&\n    hasMeetingEnded({\n      startsAt: calendarEvent.startsAt,\n      endsAt: calendarEvent.endsAt,\n      now,\n      startGraceHours: CANCELED_BOT_RECOVERY_AFTER_START_HOURS,\n    })\n  ) {\n    return false;\n  }\n\n  // Recovery only closes the crash window right after cancellation; once a row ages out the daily cleanup sweep owns it, so stop the per-run Recall lookup instead of listing forever (notably for rows whose calendar event was deleted and can no longer bound the retry).\n  // updatedAt tracks the cancellation write, so a request scheduled far ahead but canceled recently still gets its window; createdAt would age it out from scheduling time.\n  return !hasCanceledRecoveryWindowElapsed({\n    canceledAt: callRecording.updatedAt ?? callRecording.createdAt,\n    now,\n  });\n};\n\nconst hasCanceledRecoveryWindowElapsed = ({\n  canceledAt,\n  now,\n}: {\n  canceledAt: string | undefined;\n  now: Date;\n}): boolean => {\n  if (isUndefined(canceledAt)) {\n    return false;\n  }\n\n  const canceledTime = new Date(canceledAt).getTime();\n\n  return (\n    !Number.isNaN(canceledTime) &&\n    canceledTime + CANCELED_BOT_RECOVERY_MAX_AGE_HOURS * 60 * 60 * 1000 <=\n      now.getTime()\n  );\n};\n\nconst recoverRecallBotIdForCanceledCallRecording = async ({\n  client,\n  callRecording,\n  listedExternalBotId,\n}: {\n  client: CoreApiClient;\n  callRecording: CallRecordingRecord;\n  listedExternalBotId: string | undefined;\n}): Promise<string | undefined> => {\n  if (!isUndefined(callRecording.externalBotId)) {\n    return callRecording.externalBotId;\n  }\n\n  if (isUndefined(listedExternalBotId)) {\n    return undefined;\n  }\n\n  const didClaimRecoveredBot = await replaceCanceledCallRecordingExternalBotId(\n    client,\n    {\n      id: callRecording.id,\n      expectedExternalBotId: null,\n      nextExternalBotId: listedExternalBotId,\n    },\n  );\n\n  return didClaimRecoveredBot ? listedExternalBotId : undefined;\n};\n", "import { isUndefined } from '@sniptt/guards';\n\nexport const hasMeetingEnded = ({\n  startsAt,\n  endsAt,\n  now,\n  startGraceHours = 0,\n}: {\n  startsAt: string | undefined;\n  endsAt: string | undefined;\n  now: Date;\n  startGraceHours?: number;\n}): boolean => {\n  if (!isUndefined(endsAt)) {\n    const meetingEndTime = new Date(endsAt).getTime();\n\n    if (!Number.isNaN(meetingEndTime)) {\n      return meetingEndTime <= now.getTime();\n    }\n  }\n\n  if (isUndefined(startsAt)) {\n    return false;\n  }\n\n  const meetingStartTime = new Date(startsAt).getTime();\n\n  return (\n    !Number.isNaN(meetingStartTime) &&\n    meetingStartTime + startGraceHours * 60 * 60 * 1000 <= now.getTime()\n  );\n};\n", "import { CallRecordingStatus } from 'src/logic-functions/constants/call-recording-status';\n\nexport const NON_TERMINAL_CALL_RECORDING_STATUSES = [\n  CallRecordingStatus.SCHEDULED,\n  CallRecordingStatus.JOINING,\n  CallRecordingStatus.RECORDING,\n  CallRecordingStatus.PROCESSING,\n] satisfies CallRecordingStatus[];\n", "import { isString, isUndefined } from '@sniptt/guards';\nimport { type CoreApiClient } from 'twenty-client-sdk/core';\n\nimport { TWENTY_PAGE_SIZE } from 'src/logic-functions/constants/twenty-page-size';\nimport { type CalendarEventRecord } from 'src/logic-functions/types/calendar-event-record.type';\nimport {\n  fetchAllNodes,\n  type ConnectionPage,\n} from 'src/logic-functions/data/fetch-all-nodes.util';\nimport { resolveConferenceLinkUrl } from 'src/logic-functions/domain/resolve-conference-link-url.util';\nimport { stripRestrictedFieldValue } from 'src/logic-functions/data/strip-restricted-field-value.util';\n\ntype CalendarEventNode = {\n  id: string;\n  title?: string | null;\n  isCanceled?: boolean | null;\n  startsAt?: string | null;\n  endsAt?: string | null;\n  iCalUid?: string | null;\n  conferenceLink?: { primaryLinkUrl?: string | null } | null;\n  location?: string | null;\n  description?: string | null;\n  callRecorderPreference?: string | null;\n};\n\nexport const fetchCalendarEventsByFilter = async (\n  client: CoreApiClient,\n  filter: Record<string, unknown>,\n): Promise<CalendarEventRecord[]> => {\n  const calendarEventNodes = await fetchAllNodes<CalendarEventNode>(\n    async (afterCursor) => {\n      const queryResult = await client.query({\n        calendarEvents: {\n          __args: {\n            filter,\n            first: TWENTY_PAGE_SIZE,\n            ...(isUndefined(afterCursor) ? {} : { after: afterCursor }),\n          },\n          pageInfo: {\n            hasNextPage: true,\n            endCursor: true,\n          },\n          edges: {\n            node: {\n              id: true,\n              title: true,\n              isCanceled: true,\n              startsAt: true,\n              endsAt: true,\n              iCalUid: true,\n              conferenceLink: {\n                primaryLinkUrl: true,\n              },\n              location: true,\n              description: true,\n              callRecorderPreference: true,\n            },\n          },\n        },\n      });\n\n      return queryResult.calendarEvents as\n        | ConnectionPage<CalendarEventNode>\n        | undefined;\n    },\n  );\n\n  return calendarEventNodes.map((calendarEvent) => ({\n    id: calendarEvent.id,\n    title: stripRestrictedFieldValue(calendarEvent.title ?? undefined),\n    isCanceled: calendarEvent.isCanceled ?? false,\n    startsAt: calendarEvent.startsAt ?? undefined,\n    endsAt: calendarEvent.endsAt ?? undefined,\n    iCalUid: calendarEvent.iCalUid ?? undefined,\n    conferenceLinkUrl: resolveConferenceLinkUrl({\n      conferenceLinkUrl: calendarEvent.conferenceLink?.primaryLinkUrl,\n      location: stripRestrictedFieldValue(calendarEvent.location ?? undefined),\n      description: stripRestrictedFieldValue(\n        calendarEvent.description ?? undefined,\n      ),\n    }),\n    callRecorderPreference: isString(calendarEvent.callRecorderPreference)\n      ? calendarEvent.callRecorderPreference\n      : undefined,\n  }));\n};\n", "export const TWENTY_PAGE_SIZE = 100;\n", "import { isString, isUndefined } from '@sniptt/guards';\n\nexport type ConnectionPage<TNode> = {\n  pageInfo?: {\n    hasNextPage?: boolean | null;\n    endCursor?: string | null;\n  } | null;\n  edges?: Array<{ node: TNode }> | null;\n};\n\nexport const fetchAllNodes = async <TNode>(\n  fetchPage: (\n    afterCursor: string | undefined,\n  ) => Promise<ConnectionPage<TNode> | undefined>,\n  shouldStartPageRequest: () => boolean = () => true,\n): Promise<TNode[]> => {\n  const nodes: TNode[] = [];\n  let hasNextPage = true;\n  let afterCursor: string | undefined;\n\n  while (hasNextPage && shouldStartPageRequest()) {\n    const connection = await fetchPage(afterCursor);\n\n    if (isUndefined(connection)) {\n      throw new Error('Pagination query returned no connection');\n    }\n\n    for (const edge of connection.edges ?? []) {\n      nodes.push(edge.node);\n    }\n\n    hasNextPage = connection.pageInfo?.hasNextPage === true;\n    const endCursor = connection.pageInfo?.endCursor;\n\n    if (hasNextPage && !isString(endCursor)) {\n      throw new Error(\n        'Inconsistent pagination state: hasNextPage is true without an endCursor',\n      );\n    }\n\n    afterCursor = isString(endCursor) ? endCursor : undefined;\n  }\n\n  return nodes;\n};\n", "// Meeting platforms a Recall bot can join. Anything else (Around, Whereby,\n// ro.am, Daily, plain dial-in, etc.) cannot be recorded and is ignored.\n// See https://docs.recall.ai/docs/meeting-platforms\n// Ordered by provider precedence: the first matching provider wins (e.g. a\n// pasted Zoom invitation beats an auto-added Meet link).\nexport const SUPPORTED_MEETING_PLATFORM_URL_PATTERNS: RegExp[] = [\n  /https:\\/\\/(?:[\\w-]+\\.)*(?:zoom\\.us|zoomgov\\.com)\\/(?:j|my|s|w|wc\\/join)\\/[^\\s\"'<>\\\\]+/i,\n  /https:\\/\\/meet\\.google\\.com\\/[^\\s\"'<>\\\\]+/i,\n  /https:\\/\\/teams\\.(?:microsoft|live)\\.com\\/(?:l\\/meetup-join|meet)\\/[^\\s\"'<>\\\\]+/i,\n  /https:\\/\\/(?:[\\w-]+\\.)*webex\\.com\\/(?:meet\\/|join\\/|[\\w-]+\\/j\\.php\\?)[^\\s\"'<>\\\\]+/i,\n  /https:\\/\\/(?:[\\w-]+\\.)*(?:gotomeeting\\.com\\/join|gotomeet\\.me)\\/[^\\s\"'<>\\\\]+/i,\n];\n", "import { isString } from '@sniptt/guards';\n\n// Trimming variant of @sniptt/guards isNonEmptyString, for normalizing at read boundaries.\nexport const isNonEmptyString = (value: unknown): value is string =>\n  isString(value) && value.trim() !== '';\n", "import { SUPPORTED_MEETING_PLATFORM_URL_PATTERNS } from 'src/logic-functions/constants/supported-meeting-platform-url-patterns';\nimport { isNonEmptyString } from 'src/logic-functions/utils/is-non-empty-string.util';\n\n// Outlook HTML bodies encode ampersands; plain-text links can end mid-sentence.\nconst cleanExtractedConferenceLinkUrl = (url: string): string =>\n  url.replace(/&amp;/gi, '&').replace(/[.,;:!?)\\]]+$/, '');\n\nexport const extractConferenceLinkUrlFromText = (\n  text: string | null | undefined,\n): string | undefined => {\n  if (!isNonEmptyString(text)) {\n    return undefined;\n  }\n\n  for (const pattern of SUPPORTED_MEETING_PLATFORM_URL_PATTERNS) {\n    const match = text.match(pattern);\n\n    if (match !== null) {\n      return cleanExtractedConferenceLinkUrl(match[0]);\n    }\n  }\n\n  return undefined;\n};\n", "import { extractConferenceLinkUrlFromText } from 'src/logic-functions/domain/extract-conference-link-url-from-text.util';\nimport { isNonEmptyString } from 'src/logic-functions/utils/is-non-empty-string.util';\n\ntype ResolveConferenceLinkUrlInput = {\n  conferenceLinkUrl: string | null | undefined;\n  location: string | null | undefined;\n  description: string | null | undefined;\n};\n\n// The server only fills conferenceLink from structured provider data; Zoom and\n// other third-party links often exist only as text in location/description.\nexport const resolveConferenceLinkUrl = ({\n  conferenceLinkUrl,\n  location,\n  description,\n}: ResolveConferenceLinkUrlInput): string | undefined => {\n  if (isNonEmptyString(conferenceLinkUrl)) {\n    return conferenceLinkUrl;\n  }\n\n  return (\n    extractConferenceLinkUrlFromText(location) ??\n    extractConferenceLinkUrlFromText(description)\n  );\n};\n", "// Mirrors twenty-shared; calendar restrictions write it over title/description.\nexport const RESTRICTED_FIELD_PLACEHOLDER =\n  'FIELD_RESTRICTED_ADDITIONAL_PERMISSIONS_REQUIRED';\n", "import { RESTRICTED_FIELD_PLACEHOLDER } from 'src/logic-functions/constants/restricted-field-placeholder';\n\nexport const stripRestrictedFieldValue = (\n  value: string | undefined,\n): string | undefined =>\n  value === RESTRICTED_FIELD_PLACEHOLDER ? undefined : value;\n", "import { isString } from '@sniptt/guards';\n\nexport const getUniqueSortedIds = (\n  ids: Array<string | null | undefined>,\n): string[] =>\n  [...new Set(ids.filter(isString))].sort((firstId, secondId) =>\n    firstId.localeCompare(secondId),\n  );\n", "import { type CoreApiClient } from 'twenty-client-sdk/core';\n\nimport { type CalendarEventRecord } from 'src/logic-functions/types/calendar-event-record.type';\nimport { fetchCalendarEventsByFilter } from 'src/logic-functions/data/fetch-calendar-events-by-filter.util';\nimport { getUniqueSortedIds } from 'src/logic-functions/utils/get-unique-sorted-ids.util';\n\nexport const fetchCalendarEventsByIds = async (\n  client: CoreApiClient,\n  calendarEventIds: string[],\n): Promise<CalendarEventRecord[]> => {\n  const uniqueCalendarEventIds = getUniqueSortedIds(calendarEventIds);\n\n  if (uniqueCalendarEventIds.length === 0) {\n    return [];\n  }\n\n  return fetchCalendarEventsByFilter(client, {\n    id: { in: uniqueCalendarEventIds },\n  });\n};\n", "import { isUndefined } from '@sniptt/guards';\nimport { type CoreApiClient } from 'twenty-client-sdk/core';\n\nimport { CallRecordingRequestStatus } from 'src/logic-functions/constants/call-recording-request-status';\nimport { TWENTY_PAGE_SIZE } from 'src/logic-functions/constants/twenty-page-size';\nimport { type CallRecordingRecord } from 'src/logic-functions/types/call-recording-record.type';\nimport {\n  fetchAllNodes,\n  type ConnectionPage,\n} from 'src/logic-functions/data/fetch-all-nodes.util';\nimport { normalizeOptionalString } from 'src/logic-functions/utils/normalize-optional-string.util';\n\ntype CallRecordingNode = {\n  id: string;\n  title?: string | null;\n  status?: string | null;\n  recordingRequestStatus?: unknown;\n  createdAt?: string | null;\n  updatedAt?: string | null;\n  startedAt?: string | null;\n  endedAt?: string | null;\n  calendarEventId?: string | null;\n  externalBotId?: string | null;\n  botScheduleAttemptedAt?: string | null;\n  botScheduleIdempotencyKey?: string | null;\n  externalRecordingId?: string | null;\n  callRecorderFailureReason?: string | null;\n};\n\nexport const findCallRecordingsByFilter = async (\n  client: CoreApiClient,\n  filter: Record<string, unknown>,\n  shouldStartPageRequest: () => boolean = () => true,\n): Promise<CallRecordingRecord[]> => {\n  const callRecordingNodes = await fetchAllNodes<CallRecordingNode>(\n    async (afterCursor) => {\n      const queryResult = await client.query({\n        callRecordings: {\n          __args: {\n            filter,\n            first: TWENTY_PAGE_SIZE,\n            ...(isUndefined(afterCursor) ? {} : { after: afterCursor }),\n          },\n          pageInfo: {\n            hasNextPage: true,\n            endCursor: true,\n          },\n          edges: {\n            node: {\n              id: true,\n              title: true,\n              status: true,\n              recordingRequestStatus: true,\n              createdAt: true,\n              updatedAt: true,\n              startedAt: true,\n              endedAt: true,\n              calendarEventId: true,\n              externalBotId: true,\n              botScheduleAttemptedAt: true,\n              botScheduleIdempotencyKey: true,\n              externalRecordingId: true,\n              callRecorderFailureReason: true,\n            },\n          },\n        },\n      });\n\n      return queryResult.callRecordings as\n        | ConnectionPage<CallRecordingNode>\n        | undefined;\n    },\n    shouldStartPageRequest,\n  );\n\n  return callRecordingNodes.map((callRecording) => ({\n    id: callRecording.id,\n    title: callRecording.title ?? undefined,\n    status: callRecording.status ?? undefined,\n    recordingRequestStatus: normalizeCallRecordingRequestStatus(\n      callRecording.recordingRequestStatus,\n    ),\n    createdAt: callRecording.createdAt ?? undefined,\n    updatedAt: callRecording.updatedAt ?? undefined,\n    startedAt: callRecording.startedAt ?? undefined,\n    endedAt: callRecording.endedAt ?? undefined,\n    calendarEventId: callRecording.calendarEventId ?? undefined,\n    externalBotId: normalizeOptionalString(callRecording.externalBotId),\n    botScheduleAttemptedAt: normalizeOptionalString(\n      callRecording.botScheduleAttemptedAt,\n    ),\n    botScheduleIdempotencyKey: normalizeOptionalString(\n      callRecording.botScheduleIdempotencyKey,\n    ),\n    externalRecordingId: normalizeOptionalString(\n      callRecording.externalRecordingId,\n    ),\n    callRecorderFailureReason: normalizeOptionalString(\n      callRecording.callRecorderFailureReason,\n    ),\n  }));\n};\n\nconst normalizeCallRecordingRequestStatus = (\n  recordingRequestStatus: unknown,\n): CallRecordingRequestStatus | undefined => {\n  if (recordingRequestStatus === CallRecordingRequestStatus.REQUESTED) {\n    return recordingRequestStatus;\n  }\n\n  if (recordingRequestStatus === CallRecordingRequestStatus.CANCELED) {\n    return recordingRequestStatus;\n  }\n\n  return undefined;\n};\n", "import { isNonEmptyString } from 'src/logic-functions/utils/is-non-empty-string.util';\n\nexport const normalizeOptionalString = (\n  value: string | null | undefined,\n): string | undefined => (isNonEmptyString(value) ? value : undefined);\n", "import { type CoreApiClient } from 'twenty-client-sdk/core';\n\nimport { CallRecordingRequestStatus } from 'src/logic-functions/constants/call-recording-request-status';\nimport { NON_TERMINAL_CALL_RECORDING_STATUSES } from 'src/logic-functions/constants/non-terminal-call-recording-statuses';\n\nexport const replaceCanceledCallRecordingExternalBotId = async (\n  client: CoreApiClient,\n  {\n    id,\n    expectedExternalBotId,\n    nextExternalBotId,\n  }: {\n    id: string;\n    expectedExternalBotId: string | null;\n    nextExternalBotId: string | null;\n  },\n): Promise<boolean> => {\n  const result = await client.mutation({\n    updateCallRecordings: {\n      __args: {\n        filter: {\n          id: { eq: id },\n          recordingRequestStatus: {\n            eq: CallRecordingRequestStatus.CANCELED,\n          },\n          status: { in: NON_TERMINAL_CALL_RECORDING_STATUSES },\n          externalBotId:\n            expectedExternalBotId === null\n              ? { is: 'NULL' }\n              : { eq: expectedExternalBotId },\n        },\n        data: { externalBotId: nextExternalBotId },\n      },\n      id: true,\n    },\n  });\n\n  return (result.updateCallRecordings ?? []).length > 0;\n};\n", "import { isUndefined } from '@sniptt/guards';\nimport { type CoreApiClient } from 'twenty-client-sdk/core';\n\nimport { CallRecordingRequestStatus } from 'src/logic-functions/constants/call-recording-request-status';\nimport { findCallRecordingsByIds } from 'src/logic-functions/data/find-call-recordings-by-ids.util';\nimport { replaceCanceledCallRecordingExternalBotId } from 'src/logic-functions/data/replace-canceled-call-recording-external-bot-id.util';\nimport { cancelOrEjectRecallBot } from 'src/logic-functions/recall-api/cancel-or-eject-recall-bot.util';\n\nexport type CancelRecallBotForCanceledCallRecordingOutcome =\n  | 'canceled'\n  | 'skipped'\n  | 'failed';\n\nexport const cancelRecallBotForCanceledCallRecording = async ({\n  client,\n  callRecordingId,\n  externalBotId,\n}: {\n  client: CoreApiClient;\n  callRecordingId: string;\n  externalBotId: string;\n}): Promise<CancelRecallBotForCanceledCallRecordingOutcome> => {\n  const latestCallRecording = (\n    await findCallRecordingsByIds(client, [callRecordingId])\n  )[0];\n\n  if (\n    latestCallRecording?.recordingRequestStatus !==\n      CallRecordingRequestStatus.CANCELED ||\n    (!isUndefined(latestCallRecording.externalBotId) &&\n      latestCallRecording.externalBotId !== externalBotId)\n  ) {\n    return 'skipped';\n  }\n\n  if (!(await cancelOrEjectRecallBot(externalBotId))) {\n    return 'failed';\n  }\n\n  if (latestCallRecording.externalBotId === externalBotId) {\n    await replaceCanceledCallRecordingExternalBotId(client, {\n      id: callRecordingId,\n      expectedExternalBotId: externalBotId,\n      nextExternalBotId: null,\n    });\n  }\n\n  return 'canceled';\n};\n", "import { type CoreApiClient } from 'twenty-client-sdk/core';\n\nimport { type CallRecordingRecord } from 'src/logic-functions/types/call-recording-record.type';\nimport { findCallRecordingsByFilter } from 'src/logic-functions/data/find-call-recordings-by-filter.util';\n\nexport const findCallRecordingsByIds = async (\n  client: CoreApiClient,\n  callRecordingIds: string[],\n): Promise<CallRecordingRecord[]> => {\n  if (callRecordingIds.length === 0) {\n    return [];\n  }\n\n  return findCallRecordingsByFilter(client, {\n    id: { in: callRecordingIds },\n  });\n};\n", "import { isNull } from '@sniptt/guards';\n\nimport { cancelRecallBot } from 'src/logic-functions/recall-api/cancel-recall-bot.util';\nimport { ejectRecallBot } from 'src/logic-functions/recall-api/eject-recall-bot.util';\n\nexport const cancelOrEjectRecallBot = async (\n  externalBotId: string,\n): Promise<boolean> => {\n  const cancelResult = await cancelRecallBot({ externalBotId });\n\n  if (cancelResult.ok) {\n    return true;\n  }\n\n  let failureMessage = cancelResult.errorMessage;\n\n  // Deleting only works for not-yet-joined bots; eject the ones already in a call.\n  if (!isNull(cancelResult.status)) {\n    const ejectResult = await ejectRecallBot({ externalBotId });\n\n    if (ejectResult.ok) {\n      return true;\n    }\n\n    failureMessage = ejectResult.errorMessage;\n  }\n\n  console.warn(\n    `[call-recorder] failed to cancel or eject Recall bot ${externalBotId}: ${failureMessage}`,\n  );\n\n  return false;\n};\n", "import { isUndefined } from '@sniptt/guards';\n\nimport { CALL_RECORDER_NAME_ENV_VAR_NAME } from 'src/logic-functions/constants/call-recorder-name-env-var-name';\nimport { DEFAULT_CALL_RECORDER_NAME } from 'src/logic-functions/constants/default-call-recorder-name';\nimport { DEFAULT_RECALL_REGION } from 'src/logic-functions/constants/default-recall-region';\nimport { RECALL_API_KEY_ENV_VAR_NAME } from 'src/logic-functions/constants/recall-api-key-env-var-name';\nimport { RECALL_REGION_ENV_VAR_NAME } from 'src/logic-functions/constants/recall-region-env-var-name';\nimport { getApplicationVariableValue } from 'src/logic-functions/utils/get-application-variable-value.util';\nimport { normalizeOptionalString } from 'src/logic-functions/utils/normalize-optional-string.util';\n\nexport type RecallApiConfig = {\n  apiKey: string;\n  baseUrl: string;\n  botName: string;\n};\n\nexport const getRecallApiConfig = ():\n  | {\n      success: true;\n      config: RecallApiConfig;\n    }\n  | {\n      success: false;\n      error: string;\n    } => {\n  const apiKey = normalizeOptionalString(\n    getApplicationVariableValue(RECALL_API_KEY_ENV_VAR_NAME)?.trim(),\n  );\n\n  if (isUndefined(apiKey)) {\n    return {\n      success: false,\n      error:\n        'RECALL_API_KEY server variable is not set. A server admin must set it on the Call Recorder application registration before scheduling bots.',\n    };\n  }\n\n  const region =\n    normalizeOptionalString(\n      getApplicationVariableValue(RECALL_REGION_ENV_VAR_NAME)?.trim(),\n    ) ?? DEFAULT_RECALL_REGION;\n  const botName =\n    normalizeOptionalString(\n      getApplicationVariableValue(CALL_RECORDER_NAME_ENV_VAR_NAME)?.trim(),\n    ) ?? DEFAULT_CALL_RECORDER_NAME;\n\n  return {\n    success: true,\n    config: {\n      apiKey,\n      baseUrl: `https://${region}.recall.ai/api/v1`,\n      botName,\n    },\n  };\n};\n", "export const CALL_RECORDER_NAME_ENV_VAR_NAME = 'CALL_RECORDER_NAME';\n", "export const DEFAULT_CALL_RECORDER_NAME = 'Twenty.com';\n", "export const DEFAULT_RECALL_REGION = 'eu-central-1';\n", "export const RECALL_API_KEY_ENV_VAR_NAME = 'RECALL_API_KEY';\n", "export const RECALL_REGION_ENV_VAR_NAME = 'RECALL_REGION';\n", "// Application and server variables are injected into process.env on every execution.\nexport const getApplicationVariableValue = (key: string): string | undefined =>\n  process.env[key];\n", "import { isUndefined } from '@sniptt/guards';\n\nimport { RECALL_API_MAX_IN_PROCESS_RETRY_WAIT_MS } from 'src/logic-functions/constants/recall-api-max-in-process-retry-wait-ms';\nimport { RECALL_API_MAX_ATTEMPTS } from 'src/logic-functions/constants/recall-api-max-attempts';\nimport { RECALL_API_NOT_FOUND_STATUS } from 'src/logic-functions/constants/recall-api-not-found-status';\nimport { type RecallApiConfig } from 'src/logic-functions/recall-api/get-recall-api-config.util';\nimport { parseRecallRetryAfterMs } from 'src/logic-functions/recall-api/parse-recall-retry-after.util';\nimport {\n  isRetryableRecallApiStatus,\n  resolveRecallApiRetryDelayMs,\n} from 'src/logic-functions/recall-api/recall-api-retry-policy.util';\nimport { fetchWithTimeout } from 'src/logic-functions/utils/fetch-with-timeout.util';\n\ntype RecallBotApiRequestArgs = {\n  config: RecallApiConfig;\n  path: string;\n  method: 'GET' | 'POST' | 'PATCH' | 'DELETE';\n  body?: unknown;\n  idempotencyKey?: string;\n  allowNotFound?: boolean;\n  signal?: AbortSignal;\n};\n\ntype RecallBotApiRequestResult<TData> =\n  | {\n      ok: true;\n      status: number;\n      data: TData;\n    }\n  | {\n      ok: false;\n      status: number | null;\n      errorMessage: string;\n    };\n\n// Retried creates provide an idempotency key so ambiguous attempts cannot\n// create duplicates.\nexport const recallBotApiRequest = async <TData>(\n  requestArgs: RecallBotApiRequestArgs,\n): Promise<RecallBotApiRequestResult<TData>> => {\n  let totalRetryWaitMs = 0;\n\n  for (let attemptNumber = 1; ; attemptNumber++) {\n    requestArgs.signal?.throwIfAborted();\n    const { result, isRetryable, retryAfterMs } =\n      await performRecallBotApiRequestAttempt<TData>(requestArgs);\n\n    if (!isRetryable || attemptNumber >= RECALL_API_MAX_ATTEMPTS) {\n      return result;\n    }\n\n    const retryDelayMs = resolveRecallApiRetryDelayMs({\n      retryAfterMs,\n      status: result.status,\n      attemptNumber,\n    });\n\n    // Sleeping past the invocation budget would hit the timeout kill; defer to the reconcilers.\n    if (\n      totalRetryWaitMs + retryDelayMs >=\n      RECALL_API_MAX_IN_PROCESS_RETRY_WAIT_MS\n    ) {\n      return result;\n    }\n\n    totalRetryWaitMs += retryDelayMs;\n    await sleep(retryDelayMs);\n  }\n};\n\nconst performRecallBotApiRequestAttempt = async <TData>({\n  config,\n  path,\n  method,\n  body,\n  idempotencyKey,\n  allowNotFound = false,\n  signal,\n}: RecallBotApiRequestArgs): Promise<{\n  result: RecallBotApiRequestResult<TData>;\n  isRetryable: boolean;\n  retryAfterMs?: number;\n}> => {\n  let response: Response;\n\n  try {\n    response = await fetchWithTimeout(`${config.baseUrl}${path}`, {\n      method,\n      signal,\n      headers: {\n        Authorization: buildRecallApiAuthorizationHeader(config.apiKey),\n        ...(isUndefined(idempotencyKey)\n          ? {}\n          : { 'Idempotency-Key': idempotencyKey }),\n        ...(isUndefined(body) ? {} : { 'Content-Type': 'application/json' }),\n      },\n      ...(isUndefined(body) ? {} : { body: JSON.stringify(body) }),\n    });\n  } catch (error) {\n    if (signal?.aborted) {\n      throw error;\n    }\n\n    return {\n      isRetryable: true,\n      result: {\n        ok: false,\n        status: null,\n        errorMessage: `Recall API request failed: ${\n          error instanceof Error ? error.message : String(error)\n        }`,\n      },\n    };\n  }\n\n  if (allowNotFound && response.status === RECALL_API_NOT_FOUND_STATUS) {\n    return {\n      isRetryable: false,\n      result: {\n        ok: true,\n        status: response.status,\n        data: undefined as TData,\n      },\n    };\n  }\n\n  if (response.status === 204) {\n    return {\n      isRetryable: false,\n      result: {\n        ok: true,\n        status: response.status,\n        data: undefined as TData,\n      },\n    };\n  }\n\n  if (!response.ok) {\n    return {\n      isRetryable: isRetryableRecallApiStatus(response.status),\n      retryAfterMs: parseRecallRetryAfterMs(\n        response.headers?.get('retry-after') ?? null,\n        Date.now(),\n      ),\n      result: {\n        ok: false,\n        status: response.status,\n        errorMessage: await extractRecallApiErrorMessage(response),\n      },\n    };\n  }\n\n  try {\n    return {\n      isRetryable: false,\n      result: {\n        ok: true,\n        status: response.status,\n        data: (await response.json()) as TData,\n      },\n    };\n  } catch (error) {\n    const isAborted =\n      error instanceof Error &&\n      (error.name === 'TimeoutError' || error.name === 'AbortError');\n\n    return {\n      isRetryable: isAborted,\n      result: {\n        ok: false,\n        status: isAborted ? null : response.status,\n        errorMessage: `Recall API returned a non-JSON response: ${\n          error instanceof Error ? error.message : String(error)\n        }`,\n      },\n    };\n  }\n};\n\nconst sleep = (delayMs: number): Promise<void> =>\n  new Promise((resolve) => {\n    setTimeout(resolve, delayMs);\n  });\n\nconst buildRecallApiAuthorizationHeader = (apiKey: string): string => {\n  const trimmedApiKey = apiKey.trim();\n\n  return trimmedApiKey.toLowerCase().startsWith('token ')\n    ? trimmedApiKey\n    : `Token ${trimmedApiKey}`;\n};\n\nconst extractRecallApiErrorMessage = async (\n  response: Response,\n): Promise<string> => {\n  const fallback = `Recall API responded with HTTP ${response.status}`;\n\n  try {\n    const body = (await response.json()) as unknown;\n\n    return `${fallback}: ${JSON.stringify(body)}`;\n  } catch {\n    return fallback;\n  }\n};\n", "export const RECALL_API_MAX_IN_PROCESS_RETRY_WAIT_MS = 10_000;\n", "export const RECALL_API_MAX_ATTEMPTS = 3;\n", "export const RECALL_API_NOT_FOUND_STATUS = 404;\n", "export const RECALL_API_MAX_RETRY_AFTER_MS = 60_000;\n", "import { RECALL_API_MAX_RETRY_AFTER_MS } from 'src/logic-functions/constants/recall-api-max-retry-after-ms';\n\nexport const parseRecallRetryAfterMs = (\n  retryAfterHeader: string | null,\n  nowMs: number,\n): number | undefined => {\n  if (retryAfterHeader === null) {\n    return undefined;\n  }\n\n  const trimmedRetryAfterHeader = retryAfterHeader.trim();\n\n  if (trimmedRetryAfterHeader.length === 0) {\n    return undefined;\n  }\n\n  if (/^\\d+$/.test(trimmedRetryAfterHeader)) {\n    return capRecallRetryAfterMs(Number(trimmedRetryAfterHeader) * 1000);\n  }\n\n  // Malformed numeric forms (1.5, 1e2, 0x10) would be misread as dates by Date.parse.\n  if (!Number.isNaN(Number(trimmedRetryAfterHeader))) {\n    return undefined;\n  }\n\n  const retryAfterDateMs = Date.parse(trimmedRetryAfterHeader);\n\n  if (Number.isNaN(retryAfterDateMs)) {\n    return undefined;\n  }\n\n  return capRecallRetryAfterMs(Math.max(0, retryAfterDateMs - nowMs));\n};\n\nconst capRecallRetryAfterMs = (retryAfterMs: number): number =>\n  Math.min(retryAfterMs, RECALL_API_MAX_RETRY_AFTER_MS);\n", "export const RECALL_API_ADHOC_POOL_RETRY_DELAY_MS = 10_000;\n", "export const RECALL_API_RETRY_DELAY_MS = 500;\n", "import { RECALL_API_ADHOC_POOL_RETRY_DELAY_MS } from 'src/logic-functions/constants/recall-api-adhoc-pool-retry-delay-ms';\nimport { RECALL_API_RETRY_DELAY_MS } from 'src/logic-functions/constants/recall-api-retry-delay-ms';\n\nconst RECALL_STATUS_UNAUTHORIZED = 401;\nconst RECALL_STATUS_PAYMENT_REQUIRED = 402;\nconst RECALL_STATUS_FORBIDDEN = 403;\nconst RECALL_STATUS_RATE_LIMITED = 429;\nconst RECALL_STATUS_CONFLICT = 409;\nconst RECALL_STATUS_ADHOC_POOL_EXHAUSTED = 507;\n\nconst isRecallServerError = (status: number): boolean => status >= 500;\n\nexport const isRetryableRecallApiStatus = (status: number): boolean =>\n  status === RECALL_STATUS_RATE_LIMITED ||\n  status === RECALL_STATUS_CONFLICT ||\n  isRecallServerError(status);\n\nexport const isRecallAccountStatus = (status: number): boolean =>\n  status === RECALL_STATUS_UNAUTHORIZED ||\n  status === RECALL_STATUS_PAYMENT_REQUIRED ||\n  status === RECALL_STATUS_FORBIDDEN;\n\nexport const resolveRecallApiRetryDelayMs = ({\n  retryAfterMs,\n  status,\n  attemptNumber,\n  random = Math.random,\n}: {\n  retryAfterMs: number | undefined;\n  status: number | null;\n  attemptNumber: number;\n  random?: () => number;\n}): number => {\n  if (retryAfterMs !== undefined) {\n    return retryAfterMs;\n  }\n\n  if (status === RECALL_STATUS_ADHOC_POOL_EXHAUSTED) {\n    return RECALL_API_ADHOC_POOL_RETRY_DELAY_MS;\n  }\n\n  // Equal jitter so retries sharing a failure instant do not re-collide.\n  const baseDelayMs = RECALL_API_RETRY_DELAY_MS * attemptNumber;\n\n  return Math.round((baseDelayMs * (1 + random())) / 2);\n};\n", "import { isUndefined } from '@sniptt/guards';\n\nexport const buildAbortSignalWithTimeout = ({\n  timeoutMs,\n  signal,\n}: {\n  timeoutMs: number;\n  signal: AbortSignal | undefined;\n}): AbortSignal =>\n  AbortSignal.any([\n    AbortSignal.timeout(timeoutMs),\n    ...(isUndefined(signal) ? [] : [signal]),\n  ]);\n", "import { buildAbortSignalWithTimeout } from 'src/logic-functions/utils/build-abort-signal-with-timeout.util';\n\nconst REQUEST_TIMEOUT_MS = 10_000;\n\nexport const fetchWithTimeout: typeof fetch = (input, options) => {\n  const signal =\n    options?.signal ?? (input instanceof Request ? input.signal : undefined);\n\n  return fetch(input, {\n    ...options,\n    signal: buildAbortSignalWithTimeout({\n      timeoutMs: REQUEST_TIMEOUT_MS,\n      signal,\n    }),\n  });\n};\n", "import { type RecallBotRemovalResult } from 'src/logic-functions/types/recall-bot-operation-result.type';\nimport { getRecallApiConfig } from 'src/logic-functions/recall-api/get-recall-api-config.util';\nimport { recallBotApiRequest } from 'src/logic-functions/recall-api/recall-bot-api-request.util';\n\nexport const cancelRecallBot = async ({\n  externalBotId,\n}: {\n  externalBotId: string;\n}): Promise<RecallBotRemovalResult> => {\n  const configResult = getRecallApiConfig();\n\n  if (!configResult.success) {\n    return { ok: false, status: null, errorMessage: configResult.error };\n  }\n\n  const result = await recallBotApiRequest<undefined>({\n    config: configResult.config,\n    path: `/bot/${externalBotId}/`,\n    method: 'DELETE',\n    allowNotFound: true,\n  });\n\n  if (!result.ok) {\n    return result;\n  }\n\n  return { ok: true };\n};\n", "import { type RecallBotRemovalResult } from 'src/logic-functions/types/recall-bot-operation-result.type';\nimport { getRecallApiConfig } from 'src/logic-functions/recall-api/get-recall-api-config.util';\nimport { recallBotApiRequest } from 'src/logic-functions/recall-api/recall-bot-api-request.util';\n\nexport const ejectRecallBot = async ({\n  externalBotId,\n}: {\n  externalBotId: string;\n}): Promise<RecallBotRemovalResult> => {\n  const configResult = getRecallApiConfig();\n\n  if (!configResult.success) {\n    return { ok: false, status: null, errorMessage: configResult.error };\n  }\n\n  const result = await recallBotApiRequest<undefined>({\n    config: configResult.config,\n    path: `/bot/${externalBotId}/leave_call/`,\n    method: 'POST',\n    allowNotFound: true,\n  });\n\n  if (!result.ok) {\n    return result;\n  }\n\n  return { ok: true };\n};\n", "import { isUndefined } from '@sniptt/guards';\n\nimport { ACTIVE_RECALL_BOT_STATUSES } from 'src/logic-functions/constants/active-recall-bot-statuses';\nimport { getCurrentWorkspaceId } from 'src/logic-functions/data/get-current-workspace-id.util';\nimport { listScheduledRecallBots } from 'src/logic-functions/recall-api/list-scheduled-recall-bots.util';\nimport { isNonEmptyString } from 'src/logic-functions/utils/is-non-empty-string.util';\n\nexport type FindScheduledRecallBotIdsByCallRecordingIdResult =\n  | { ok: true; externalBotIdByCallRecordingId: Map<string, string> }\n  | { ok: false };\n\n// One workspace-wide list request covers every pending recording; Recall's\n// list endpoint has the tightest rate budget, so per-recording lookups must\n// not fan out.\nexport const findScheduledRecallBotIdsByCallRecordingId =\n  async (): Promise<FindScheduledRecallBotIdsByCallRecordingIdResult> => {\n    const workspaceId = getCurrentWorkspaceId();\n\n    if (isUndefined(workspaceId)) {\n      return { ok: true, externalBotIdByCallRecordingId: new Map() };\n    }\n\n    const listResult = await listScheduledRecallBots({\n      metadata: { twentyWorkspaceId: workspaceId },\n      statuses: ACTIVE_RECALL_BOT_STATUSES,\n    });\n\n    if (!listResult.ok) {\n      console.warn(\n        `[call-recorder] failed to look up existing Recall bots for pending call recordings: ${listResult.errorMessage}`,\n      );\n\n      return { ok: false };\n    }\n\n    // A truncated list can hide existing bots; callers treat a map miss as\n    // permission to create, so an incomplete map must read as a failed lookup.\n    if (listResult.truncated) {\n      console.warn(\n        '[call-recorder] Recall bot list was truncated; deferring bot recovery to the next run',\n      );\n\n      return { ok: false };\n    }\n\n    const externalBotIdByCallRecordingId = new Map<string, string>();\n\n    for (const bot of listResult.bots) {\n      const callRecordingId = bot.metadata.twentyCallRecordingId;\n\n      if (\n        !isNonEmptyString(callRecordingId) ||\n        externalBotIdByCallRecordingId.has(callRecordingId)\n      ) {\n        continue;\n      }\n\n      externalBotIdByCallRecordingId.set(callRecordingId, bot.id);\n    }\n\n    return { ok: true, externalBotIdByCallRecordingId };\n  };\n", "export const ACTIVE_RECALL_BOT_STATUSES = [\n  'ready',\n  'joining_call',\n  'in_waiting_room',\n  'in_call_not_recording',\n  'recording_permission_allowed',\n  'recording_permission_denied',\n  'in_call_recording',\n];\n", "import { isUndefined } from '@sniptt/guards';\n\nimport { asRecord } from 'src/logic-functions/utils/as-record.util';\nimport { getString } from 'src/logic-functions/utils/get-string.util';\n\nconst APP_ACCESS_TOKEN_ENV_VAR_NAME = 'TWENTY_APP_ACCESS_TOKEN';\n\nexport const getCurrentWorkspaceId = (): string | undefined => {\n  const accessToken = getString(process.env[APP_ACCESS_TOKEN_ENV_VAR_NAME]);\n\n  if (isUndefined(accessToken)) {\n    return undefined;\n  }\n\n  return getWorkspaceIdFromAccessToken(accessToken);\n};\n\nconst getWorkspaceIdFromAccessToken = (\n  accessToken: string,\n): string | undefined => {\n  const encodedPayload = accessToken.split('.')[1];\n\n  if (isUndefined(encodedPayload)) {\n    return undefined;\n  }\n\n  try {\n    const payload = asRecord(\n      JSON.parse(Buffer.from(encodedPayload, 'base64url').toString('utf8')),\n    );\n\n    return getString(payload?.workspaceId);\n  } catch {\n    return undefined;\n  }\n};\n", "import { isArray, isObject } from '@sniptt/guards';\n\nexport const asRecord = (value: unknown): Record<string, unknown> | undefined =>\n  isObject(value) && !isArray(value)\n    ? (value as Record<string, unknown>)\n    : undefined;\n", "import { isNonEmptyString } from 'src/logic-functions/utils/is-non-empty-string.util';\n\nexport const getString = (value: unknown): string | undefined =>\n  isNonEmptyString(value) ? value : undefined;\n", "import { isUndefined } from '@sniptt/guards';\n\nimport { type RecallBotOperationFailure } from 'src/logic-functions/types/recall-bot-operation-result.type';\nimport { asRecord } from 'src/logic-functions/utils/as-record.util';\nimport {\n  fetchRecallListPages,\n  type RecallListResponse,\n} from 'src/logic-functions/recall-api/fetch-recall-list-pages.util';\nimport { getRecallApiConfig } from 'src/logic-functions/recall-api/get-recall-api-config.util';\nimport { parseRecallBotSnapshot } from 'src/logic-functions/recall-api/parse-recall-bot-snapshot.util';\nimport { type RecallBotSnapshot } from 'src/logic-functions/recall-api/recall-bot-snapshot.type';\n\nexport type RecallScheduledBot = RecallBotSnapshot & {\n  id: string;\n};\n\ntype ListScheduledRecallBotsResult =\n  | { ok: true; bots: RecallScheduledBot[]; truncated: boolean }\n  | RecallBotOperationFailure;\n\nconst RECALL_BOT_LIST_MAX_PAGES = 10;\n\ntype ListScheduledRecallBotsArguments = {\n  joinAtAfter?: string;\n  joinAtBefore?: string;\n  metadata?: Record<string, string>;\n  statuses?: string[];\n};\n\nexport const listScheduledRecallBots = async (\n  listScheduledRecallBotsArguments: ListScheduledRecallBotsArguments,\n): Promise<ListScheduledRecallBotsResult> =>\n  listScheduledRecallBotsWithPageRequestPolicy({\n    listScheduledRecallBotsArguments,\n    shouldStartPageRequest: () => true,\n  });\n\nexport const listScheduledRecallBotsBeforeRequestCutoff = async ({\n  requestStartCutoffEpochMs,\n  ...listScheduledRecallBotsArguments\n}: ListScheduledRecallBotsArguments & {\n  requestStartCutoffEpochMs: number;\n}): Promise<ListScheduledRecallBotsResult> =>\n  listScheduledRecallBotsWithPageRequestPolicy({\n    listScheduledRecallBotsArguments,\n    shouldStartPageRequest: () => Date.now() < requestStartCutoffEpochMs,\n  });\n\nconst listScheduledRecallBotsWithPageRequestPolicy = async ({\n  listScheduledRecallBotsArguments: {\n    joinAtAfter,\n    joinAtBefore,\n    metadata,\n    statuses,\n  },\n  shouldStartPageRequest,\n}: {\n  listScheduledRecallBotsArguments: ListScheduledRecallBotsArguments;\n  shouldStartPageRequest: () => boolean;\n}): Promise<ListScheduledRecallBotsResult> => {\n  const configResult = getRecallApiConfig();\n\n  if (!configResult.success) {\n    return { ok: false, status: null, errorMessage: configResult.error };\n  }\n\n  const searchParameters = new URLSearchParams();\n\n  if (!isUndefined(joinAtAfter)) {\n    searchParameters.set('join_at_after', joinAtAfter);\n  }\n\n  if (!isUndefined(joinAtBefore)) {\n    searchParameters.set('join_at_before', joinAtBefore);\n  }\n\n  Object.entries(metadata ?? {}).forEach(([key, value]) => {\n    searchParameters.set(`metadata__${key}`, value);\n  });\n\n  statuses?.forEach((status) => {\n    searchParameters.append('status', status);\n  });\n\n  const result = await fetchRecallListPages({\n    config: configResult.config,\n    initialPath: `/bot/?${searchParameters.toString()}`,\n    maxPages: RECALL_BOT_LIST_MAX_PAGES,\n    shouldStartPageRequest,\n    extractPageItems: extractRecallBots,\n    malformedErrorMessage: 'Recall API returned malformed bot list',\n  });\n\n  if (!result.ok) {\n    return result;\n  }\n\n  if (result.truncated && process.env.NODE_ENV !== 'test') {\n    console.warn(\n      `[call-recorder] Recall bot list exceeded ${RECALL_BOT_LIST_MAX_PAGES} pages; continuing with ${result.items.length} fetched bots`,\n    );\n  }\n\n  return { ok: true, bots: result.items, truncated: result.truncated };\n};\n\nconst extractRecallBots = (\n  response: RecallListResponse | undefined,\n): RecallScheduledBot[] => {\n  if (!Array.isArray(response?.results)) {\n    return [];\n  }\n\n  return response.results.flatMap((candidate: unknown) => {\n    const bot = asRecord(candidate);\n\n    if (isUndefined(bot)) {\n      return [];\n    }\n\n    const snapshot = parseRecallBotSnapshot(bot);\n\n    if (isUndefined(snapshot.id)) {\n      return [];\n    }\n\n    return [{ ...snapshot, id: snapshot.id }];\n  });\n};\n", "import { isString, isUndefined } from '@sniptt/guards';\n\nimport { type RecallBotOperationFailure } from 'src/logic-functions/types/recall-bot-operation-result.type';\nimport { type RecallApiConfig } from 'src/logic-functions/recall-api/get-recall-api-config.util';\nimport { recallBotApiRequest } from 'src/logic-functions/recall-api/recall-bot-api-request.util';\n\nexport type RecallListResponse = {\n  next?: unknown;\n  results?: unknown;\n};\n\nexport const fetchRecallListPages = async <TItem>({\n  config,\n  initialPath,\n  maxPages,\n  shouldStartPageRequest,\n  extractPageItems,\n  malformedErrorMessage,\n  signal,\n}: {\n  config: RecallApiConfig;\n  initialPath: string;\n  maxPages: number;\n  shouldStartPageRequest: () => boolean;\n  extractPageItems: (\n    response: RecallListResponse | undefined,\n  ) => TItem[] | undefined;\n  malformedErrorMessage: string;\n  signal?: AbortSignal;\n}): Promise<\n  { ok: true; items: TItem[]; truncated: boolean } | RecallBotOperationFailure\n> => {\n  const items: TItem[] = [];\n  let path: string | undefined = initialPath;\n\n  for (\n    let pageIndex = 0;\n    !isUndefined(path) && pageIndex < maxPages;\n    pageIndex++\n  ) {\n    if (!shouldStartPageRequest()) {\n      break;\n    }\n\n    const result = await recallBotApiRequest<RecallListResponse>({\n      config,\n      path,\n      method: 'GET',\n      signal,\n    });\n\n    if (!result.ok) {\n      return result;\n    }\n\n    const pageItems = extractPageItems(result.data);\n\n    if (isUndefined(pageItems)) {\n      return {\n        ok: false,\n        status: result.status,\n        errorMessage: malformedErrorMessage,\n      };\n    }\n\n    items.push(...pageItems);\n    path = extractNextPath(result.data, config.baseUrl);\n  }\n\n  return { ok: true, items, truncated: !isUndefined(path) };\n};\n\nconst extractNextPath = (\n  response: RecallListResponse | undefined,\n  baseUrl: string,\n): string | undefined => {\n  const next = response?.next;\n\n  if (!isString(next) || !next.startsWith(baseUrl)) {\n    return undefined;\n  }\n\n  return next.slice(baseUrl.length);\n};\n", "import { isArray, isUndefined } from '@sniptt/guards';\n\nimport {\n  type RecallBotRecording,\n  type RecallBotSnapshot,\n  type RecallBotStatusChange,\n} from 'src/logic-functions/recall-api/recall-bot-snapshot.type';\nimport { asRecord } from 'src/logic-functions/utils/as-record.util';\nimport { getString } from 'src/logic-functions/utils/get-string.util';\n\nexport const parseRecallBotSnapshot = (\n  payload: Record<string, unknown>,\n): RecallBotSnapshot => ({\n  id: getString(payload.id),\n  metadata: asRecord(payload.metadata) ?? {},\n  statusChanges: parseStatusChanges(payload.status_changes),\n  recordings: parseRecordings(payload.recordings),\n});\n\nconst parseStatusChanges = (value: unknown): RecallBotStatusChange[] => {\n  if (!isArray(value)) {\n    return [];\n  }\n\n  return value.flatMap((statusChange: unknown) => {\n    const code = getString(asRecord(statusChange)?.code);\n\n    if (isUndefined(code)) {\n      return [];\n    }\n\n    return [\n      {\n        code,\n        subCode: getString(asRecord(statusChange)?.sub_code),\n        createdAt: getString(asRecord(statusChange)?.created_at),\n      },\n    ];\n  });\n};\n\nconst parseRecordings = (value: unknown): RecallBotRecording[] => {\n  if (!isArray(value)) {\n    return [];\n  }\n\n  return value.flatMap((recording: unknown) => {\n    const recordingRecord = asRecord(recording);\n\n    if (isUndefined(recordingRecord)) {\n      return [];\n    }\n\n    return [\n      {\n        id: getString(recordingRecord.id),\n        startedAt: getString(recordingRecord.started_at),\n        completedAt: getString(recordingRecord.completed_at),\n      },\n    ];\n  });\n};\n", "import { isUndefined } from '@sniptt/guards';\nimport { type CoreApiClient } from 'twenty-client-sdk/core';\n\nimport { CallRecordingStatus } from 'src/logic-functions/constants/call-recording-status';\nimport { type CalendarEventRecord } from 'src/logic-functions/types/calendar-event-record.type';\nimport { type CallRecordingRecord } from 'src/logic-functions/types/call-recording-record.type';\nimport { canRescheduleCallRecordingWithoutRecallLookup } from 'src/logic-functions/domain/can-reschedule-call-recording-without-recall-lookup.util';\nimport { computeRecallBotJoinAt } from 'src/logic-functions/domain/compute-recall-bot-join-at.util';\nimport { enqueuePreJoinCreditCheck } from 'src/logic-functions/data/enqueue-pre-join-credit-check.util';\nimport { getCurrentWorkspaceId } from 'src/logic-functions/data/get-current-workspace-id.util';\nimport { hasMeetingEnded } from 'src/logic-functions/domain/has-meeting-ended.util';\nimport { scheduleRecallBotForCallRecording } from 'src/logic-functions/flows/schedule-recall-bot-for-call-recording.util';\nimport { fetchCalendarEventsByIds } from 'src/logic-functions/data/fetch-calendar-events-by-ids.util';\nimport { findOpenScheduledCallRecordings } from 'src/logic-functions/data/find-open-scheduled-call-recordings.util';\nimport { findScheduledRecallBotIdsByCallRecordingId } from 'src/logic-functions/recall-api/find-scheduled-recall-bot-ids-by-call-recording-id.util';\nimport { getUniqueSortedIds } from 'src/logic-functions/utils/get-unique-sorted-ids.util';\nimport { updateCallRecording } from 'src/logic-functions/data/update-call-recording.util';\n\nexport const BOT_NEVER_SCHEDULED_FAILURE_REASON = 'bot_never_scheduled';\nexport const BOT_SCHEDULE_OUTCOME_UNKNOWN_FAILURE_REASON =\n  'bot_schedule_outcome_unknown';\n\n// Mirrors the stale-state convergence lookback: past it no automatic pull\n// pass will resolve the row anymore, so keeping it pending only wastes runs.\nconst UNRESOLVED_ATTEMPT_MAX_AGE_DAYS = 7;\n\nexport type ScheduleRecallBotsForPendingCallRecordingsResult = {\n  attachedCallRecordingIds: string[];\n  scheduledCallRecordingIds: string[];\n  markedFailedCallRecordingIds: string[];\n};\n\ntype ResumableCallRecording = {\n  callRecording: CallRecordingRecord;\n  calendarEvent: CalendarEventRecord;\n};\n\n// Resumes a CallRecording inserted before its Recall bot was scheduled.\nexport const scheduleRecallBotsForPendingCallRecordings = async ({\n  client,\n  now,\n}: {\n  client: CoreApiClient;\n  now: Date;\n}): Promise<ScheduleRecallBotsForPendingCallRecordingsResult> => {\n  const result: ScheduleRecallBotsForPendingCallRecordingsResult = {\n    attachedCallRecordingIds: [],\n    scheduledCallRecordingIds: [],\n    markedFailedCallRecordingIds: [],\n  };\n  const pendingCallRecordings = (\n    await findOpenScheduledCallRecordings(client)\n  ).filter((callRecording) => isUndefined(callRecording.externalBotId));\n\n  if (pendingCallRecordings.length === 0) {\n    return result;\n  }\n\n  const calendarEventsById = new Map(\n    (\n      await fetchCalendarEventsByIds(\n        client,\n        getUniqueSortedIds(\n          pendingCallRecordings.map(\n            (callRecording) => callRecording.calendarEventId,\n          ),\n        ),\n      )\n    ).map((calendarEvent) => [calendarEvent.id, calendarEvent]),\n  );\n  const resumableCallRecordings: ResumableCallRecording[] = [];\n\n  for (const callRecording of pendingCallRecordings) {\n    const calendarEvent = isUndefined(callRecording.calendarEventId)\n      ? undefined\n      : calendarEventsById.get(callRecording.calendarEventId);\n\n    if (isUndefined(calendarEvent)) {\n      continue;\n    }\n\n    if (\n      hasMeetingEnded({\n        startsAt: calendarEvent.startsAt,\n        endsAt: calendarEvent.endsAt,\n        now,\n      })\n    ) {\n      await resolveEndedPendingCallRecording({\n        client,\n        callRecording,\n        calendarEvent,\n        now,\n        result,\n      });\n      continue;\n    }\n\n    resumableCallRecordings.push({ callRecording, calendarEvent });\n  }\n\n  if (resumableCallRecordings.length === 0) {\n    return result;\n  }\n\n  // Rows without a schedule-attempt marker never reached Recall, so no bot\n  // can exist for them. Rows whose stored idempotency key still matches the\n  // current scheduling inputs can re-send the creation and let Recall dedupe\n  // it. Only attempts whose inputs drifted since the attempt pay for a\n  // Recall lookup.\n  const workspaceId = getCurrentWorkspaceId();\n  const ambiguousCallRecordings = resumableCallRecordings.filter(\n    ({ callRecording, calendarEvent }) =>\n      !canRescheduleCallRecordingWithoutRecallLookup({\n        callRecording,\n        calendarEvent,\n        workspaceId,\n        now,\n      }),\n  );\n  const unambiguousCallRecordings = resumableCallRecordings.filter(\n    ({ callRecording, calendarEvent }) =>\n      canRescheduleCallRecordingWithoutRecallLookup({\n        callRecording,\n        calendarEvent,\n        workspaceId,\n        now,\n      }),\n  );\n\n  for (const { callRecording, calendarEvent } of unambiguousCallRecordings) {\n    await scheduleBotForResumableCallRecording({\n      client,\n      callRecording,\n      calendarEvent,\n      result,\n    });\n  }\n\n  if (ambiguousCallRecordings.length === 0) {\n    return result;\n  }\n\n  // A run that POSTed a bot but died before the id write-back leaves the bot\n  // claimable by metadata; one workspace-wide lookup finds them all without a\n  // per-recording list call.\n  const lookupResult = await findScheduledRecallBotIdsByCallRecordingId();\n\n  // A failed lookup can hide existing bots; creating one now could duplicate\n  // them, so defer to the next run.\n  if (!lookupResult.ok) {\n    return result;\n  }\n\n  for (const { callRecording, calendarEvent } of ambiguousCallRecordings) {\n    const existingExternalBotId =\n      lookupResult.externalBotIdByCallRecordingId.get(callRecording.id);\n\n    if (!isUndefined(existingExternalBotId)) {\n      await updateCallRecording(client, {\n        id: callRecording.id,\n        data: { externalBotId: existingExternalBotId },\n      });\n      result.attachedCallRecordingIds.push(callRecording.id);\n\n      if (!isUndefined(calendarEvent.startsAt)) {\n        await enqueuePreJoinCreditCheck({\n          callRecordingId: callRecording.id,\n          externalBotId: existingExternalBotId,\n          joinAt: computeRecallBotJoinAt(calendarEvent.startsAt),\n        });\n      }\n      continue;\n    }\n\n    await scheduleBotForResumableCallRecording({\n      client,\n      callRecording,\n      calendarEvent,\n      result,\n    });\n  }\n\n  return result;\n};\n\nconst scheduleBotForResumableCallRecording = async ({\n  client,\n  callRecording,\n  calendarEvent,\n  result,\n}: {\n  client: CoreApiClient;\n  callRecording: CallRecordingRecord;\n  calendarEvent: CalendarEventRecord;\n  result: ScheduleRecallBotsForPendingCallRecordingsResult;\n}): Promise<void> => {\n  const scheduleResult = await scheduleRecallBotForCallRecording(client, {\n    callRecording,\n    calendarEvent,\n  });\n\n  if (scheduleResult.status === 'scheduled') {\n    result.scheduledCallRecordingIds.push(callRecording.id);\n  }\n};\n\n// Only an absent attempt marker proves no POST reached Recall; a marked row\n// may have a bot that joined and recorded before the id write-back was lost,\n// so it keeps its recovery chance until the convergence lookback has passed.\nconst resolveEndedPendingCallRecording = async ({\n  client,\n  callRecording,\n  calendarEvent,\n  now,\n  result,\n}: {\n  client: CoreApiClient;\n  callRecording: CallRecordingRecord;\n  calendarEvent: CalendarEventRecord;\n  now: Date;\n  result: ScheduleRecallBotsForPendingCallRecordingsResult;\n}): Promise<void> => {\n  if (isUndefined(callRecording.botScheduleAttemptedAt)) {\n    await markCallRecordingFailed({\n      client,\n      callRecording,\n      failureReason: BOT_NEVER_SCHEDULED_FAILURE_REASON,\n      logMessage: `call recording ${callRecording.id} never got a Recall bot and its meeting has ended; marking it failed`,\n    });\n    result.markedFailedCallRecordingIds.push(callRecording.id);\n\n    return;\n  }\n\n  if (!hasUnresolvedAttemptAgedOut({ calendarEvent, now })) {\n    console.warn(\n      `[call-recorder] call recording ${callRecording.id} has an unresolved Recall bot creation attempt and its meeting has ended; waiting for convergence`,\n    );\n\n    return;\n  }\n\n  await markCallRecordingFailed({\n    client,\n    callRecording,\n    failureReason: BOT_SCHEDULE_OUTCOME_UNKNOWN_FAILURE_REASON,\n    logMessage: `call recording ${callRecording.id} has an unresolved Recall bot creation attempt older than the convergence lookback; marking it failed`,\n  });\n  result.markedFailedCallRecordingIds.push(callRecording.id);\n};\n\nconst hasUnresolvedAttemptAgedOut = ({\n  calendarEvent,\n  now,\n}: {\n  calendarEvent: CalendarEventRecord;\n  now: Date;\n}): boolean => {\n  // Mirrors hasMeetingEnded: an unparseable end time falls back to the start\n  // time so these rows still age out of the pending sweep eventually.\n  const meetingEndTime = [calendarEvent.endsAt, calendarEvent.startsAt]\n    .filter((candidate) => !isUndefined(candidate))\n    .map((candidate) => new Date(candidate).getTime())\n    .find((candidateTime) => !Number.isNaN(candidateTime));\n\n  return (\n    !isUndefined(meetingEndTime) &&\n    meetingEndTime + UNRESOLVED_ATTEMPT_MAX_AGE_DAYS * 24 * 60 * 60 * 1000 <=\n      now.getTime()\n  );\n};\n\nconst markCallRecordingFailed = async ({\n  client,\n  callRecording,\n  failureReason,\n  logMessage,\n}: {\n  client: CoreApiClient;\n  callRecording: CallRecordingRecord;\n  failureReason: string;\n  logMessage: string;\n}): Promise<void> => {\n  console.warn(`[call-recorder] ${logMessage}`);\n\n  await updateCallRecording(client, {\n    id: callRecording.id,\n    data: {\n      status: CallRecordingStatus.FAILED,\n      callRecorderFailureReason: failureReason,\n    },\n  });\n};\n", "import { isUndefined } from '@sniptt/guards';\n\nimport { type CalendarEventRecord } from 'src/logic-functions/types/calendar-event-record.type';\nimport { type CallRecordingRecord } from 'src/logic-functions/types/call-recording-record.type';\nimport { hasUnchangedBotScheduleIdempotencyKey } from 'src/logic-functions/domain/has-unchanged-bot-schedule-idempotency-key.util';\n\n// Recall does not document how long idempotency keys are retained (24h is\n// the industry minimum), so re-sends are only trusted while the recorded\n// attempt is clearly fresh; a stale key would create a twin bot instead of\n// deduping. Recovery normally runs within minutes of the attempt.\nconst IDEMPOTENT_RESEND_WINDOW_HOURS = 12;\n\n// Rows without a schedule-attempt marker never reached Recall, so no bot can\n// exist for them. Rows whose stored idempotency key still matches the current\n// scheduling inputs can re-send the creation and let Recall dedupe it.\nexport const canRescheduleCallRecordingWithoutRecallLookup = ({\n  callRecording,\n  calendarEvent,\n  workspaceId,\n  now,\n}: {\n  callRecording: CallRecordingRecord;\n  calendarEvent: CalendarEventRecord;\n  workspaceId: string | undefined;\n  now: Date;\n}): boolean =>\n  isUndefined(callRecording.botScheduleAttemptedAt) ||\n  (isWithinIdempotentResendWindow(callRecording.botScheduleAttemptedAt, now) &&\n    !isUndefined(workspaceId) &&\n    hasUnchangedBotScheduleIdempotencyKey({\n      callRecording,\n      calendarEvent,\n      workspaceId,\n    }));\n\nconst isWithinIdempotentResendWindow = (\n  botScheduleAttemptedAt: string,\n  now: Date,\n): boolean => {\n  const attemptedTime = new Date(botScheduleAttemptedAt).getTime();\n\n  if (Number.isNaN(attemptedTime)) {\n    return false;\n  }\n\n  const elapsedMilliseconds = now.getTime() - attemptedTime;\n\n  // A future timestamp means clock skew or corrupt data; treat it as\n  // untrustworthy rather than fresh.\n  return (\n    elapsedMilliseconds >= 0 &&\n    elapsedMilliseconds < IDEMPOTENT_RESEND_WINDOW_HOURS * 60 * 60 * 1000\n  );\n};\n", "import { isUndefined } from '@sniptt/guards';\n\nimport { type CalendarEventRecord } from 'src/logic-functions/types/calendar-event-record.type';\nimport { type CallRecordingRecord } from 'src/logic-functions/types/call-recording-record.type';\nimport { buildRecallRoutingMetadata } from 'src/logic-functions/domain/build-recall-routing-metadata.util';\nimport { computeRecallBotJoinAt } from 'src/logic-functions/domain/compute-recall-bot-join-at.util';\nimport { computeRecallBotCreationIdempotencyKey } from 'src/logic-functions/recall-api/schedule-recall-bot.util';\n\n// True when re-sending the bot creation would carry the same idempotency key\n// as the recorded attempt, so Recall dedupes it instead of creating a twin.\n// A moved meeting, changed conference link, or changed join-early setting\n// drifts the key and recovery must fall back to a bot lookup.\nexport const hasUnchangedBotScheduleIdempotencyKey = ({\n  callRecording,\n  calendarEvent,\n  workspaceId,\n}: {\n  callRecording: CallRecordingRecord;\n  calendarEvent: CalendarEventRecord;\n  workspaceId: string;\n}): boolean => {\n  const storedIdempotencyKey = callRecording.botScheduleIdempotencyKey;\n  const meetingUrl = calendarEvent.conferenceLinkUrl;\n  const meetingStartsAt = calendarEvent.startsAt;\n\n  if (\n    isUndefined(storedIdempotencyKey) ||\n    isUndefined(meetingUrl) ||\n    isUndefined(meetingStartsAt)\n  ) {\n    return false;\n  }\n\n  return (\n    storedIdempotencyKey ===\n    computeRecallBotCreationIdempotencyKey({\n      meetingUrl,\n      joinAt: computeRecallBotJoinAt(meetingStartsAt),\n      metadata: buildRecallRoutingMetadata({\n        callRecordingId: callRecording.id,\n        workspaceId,\n      }),\n    })\n  );\n};\n", "import { type RecallRoutingMetadata } from 'src/logic-functions/types/recall-routing-metadata.type';\n\nexport const buildRecallRoutingMetadata = ({\n  callRecordingId,\n  workspaceId,\n}: {\n  callRecordingId: string;\n  workspaceId: string;\n}): RecallRoutingMetadata => ({\n  twentyWorkspaceId: workspaceId,\n  twentyCallRecordingId: callRecordingId,\n});\n", "export const DEFAULT_CALL_RECORDER_JOIN_EARLY_MINUTES = 1;\n", "export const MILLISECONDS_PER_MINUTE = 60_000;\n", "export const CALL_RECORDER_JOIN_EARLY_MINUTES_ENV_VAR_NAME =\n  'CALL_RECORDER_JOIN_EARLY_MINUTES';\n", "import { DEFAULT_CALL_RECORDER_JOIN_EARLY_MINUTES } from 'src/logic-functions/constants/default-call-recorder-join-early-minutes';\nimport { MILLISECONDS_PER_MINUTE } from 'src/logic-functions/constants/milliseconds-per-minute';\nimport { CALL_RECORDER_JOIN_EARLY_MINUTES_ENV_VAR_NAME } from 'src/logic-functions/constants/call-recorder-join-early-minutes-env-var-name';\nimport { getApplicationVariableValue } from 'src/logic-functions/utils/get-application-variable-value.util';\nimport { isNonEmptyString } from 'src/logic-functions/utils/is-non-empty-string.util';\n\nexport const computeRecallBotJoinAt = (meetingStartsAt: string): string => {\n  const meetingStartTimeInMilliseconds = new Date(meetingStartsAt).getTime();\n\n  if (Number.isNaN(meetingStartTimeInMilliseconds)) {\n    return meetingStartsAt;\n  }\n\n  return new Date(\n    meetingStartTimeInMilliseconds -\n      getRecallBotJoinEarlyMinutes() * MILLISECONDS_PER_MINUTE,\n  ).toISOString();\n};\n\nconst getRecallBotJoinEarlyMinutes = (): number => {\n  const rawValue = getApplicationVariableValue(\n    CALL_RECORDER_JOIN_EARLY_MINUTES_ENV_VAR_NAME,\n  );\n\n  if (!isNonEmptyString(rawValue)) {\n    return DEFAULT_CALL_RECORDER_JOIN_EARLY_MINUTES;\n  }\n\n  const joinEarlyMinutes = Number(rawValue.trim());\n\n  return Number.isInteger(joinEarlyMinutes) && joinEarlyMinutes >= 0\n    ? joinEarlyMinutes\n    : DEFAULT_CALL_RECORDER_JOIN_EARLY_MINUTES;\n};\n", "import { createHash } from 'crypto';\n\nimport { isUndefined } from '@sniptt/guards';\n\nimport { getRecallBotAutomaticLeave } from 'src/logic-functions/constants/recall-bot-automatic-leave';\nimport { getRecallBotRecordingConfig } from 'src/logic-functions/constants/recall-bot-recording-config';\nimport { type RecallBotAutomaticVideoOutput } from 'src/logic-functions/types/recall-bot-automatic-video-output.type';\nimport { type RecallRoutingMetadata } from 'src/logic-functions/types/recall-routing-metadata.type';\nimport { type RecallBotScheduleResult } from 'src/logic-functions/types/recall-bot-operation-result.type';\nimport {\n  extractRecallBotId,\n  type RecallBotResponse,\n} from 'src/logic-functions/recall-api/extract-recall-bot-id.util';\nimport { computeRecallBotDetectionActivateAfterSeconds } from 'src/logic-functions/domain/compute-recall-bot-detection-activate-after-seconds.util';\nimport { getRecallApiConfig } from 'src/logic-functions/recall-api/get-recall-api-config.util';\nimport { getRecallBotChatConfig } from 'src/logic-functions/recall-api/get-recall-bot-chat-config.util';\nimport { recallBotApiRequest } from 'src/logic-functions/recall-api/recall-bot-api-request.util';\nimport { computeMaximumJoinAt } from 'src/logic-functions/recall-api/compute-maximum-join-at.utils';\n\nexport type ScheduleRecallBotArgs = {\n  meetingUrl: string;\n  meetingStartsAt: string;\n  joinAt: string;\n  metadata: RecallRoutingMetadata;\n  automaticVideoOutput?: RecallBotAutomaticVideoOutput;\n  idempotencyKey?: string;\n};\n\nexport const scheduleRecallBot = async ({\n  meetingUrl,\n  meetingStartsAt,\n  joinAt,\n  metadata,\n  automaticVideoOutput,\n  idempotencyKey = computeRecallBotCreationIdempotencyKey({\n    meetingUrl,\n    joinAt,\n    metadata,\n  }),\n}: ScheduleRecallBotArgs): Promise<RecallBotScheduleResult> => {\n  const configResult = getRecallApiConfig();\n\n  if (!configResult.success) {\n    return { ok: false, status: null, errorMessage: configResult.error };\n  }\n\n  const effectiveJoinAt = computeMaximumJoinAt(joinAt);\n  const automaticLeave = getRecallBotAutomaticLeave({\n    botDetectionActivateAfterSeconds:\n      computeRecallBotDetectionActivateAfterSeconds({\n        botJoinsAt: effectiveJoinAt,\n        meetingStartsAt,\n      }),\n    botName: configResult.config.botName,\n  });\n  const chat = getRecallBotChatConfig();\n\n  const result = await recallBotApiRequest<RecallBotResponse>({\n    config: configResult.config,\n    path: '/bot/',\n    method: 'POST',\n    idempotencyKey,\n    body: {\n      meeting_url: meetingUrl,\n      join_at: effectiveJoinAt,\n      bot_name: configResult.config.botName,\n      automatic_leave: automaticLeave,\n      ...(isUndefined(chat) ? {} : { chat }),\n      ...(isUndefined(automaticVideoOutput)\n        ? {}\n        : { automatic_video_output: automaticVideoOutput }),\n      recording_config: getRecallBotRecordingConfig(),\n      metadata,\n    },\n  });\n\n  if (!result.ok) {\n    return result;\n  }\n\n  const externalBotId = extractRecallBotId(result.data);\n\n  if (isUndefined(externalBotId)) {\n    return {\n      ok: false,\n      status: null,\n      errorMessage:\n        'Recall API created a bot but the response did not include a bot id',\n    };\n  }\n\n  return {\n    ok: true,\n    externalBotId,\n  };\n};\n\nexport const computeRecallBotCreationIdempotencyKey = ({\n  meetingUrl,\n  joinAt,\n  metadata,\n}: Pick<ScheduleRecallBotArgs, 'meetingUrl' | 'joinAt' | 'metadata'>): string =>\n  createHash('sha256')\n    .update(\n      JSON.stringify({\n        workspaceId: metadata.twentyWorkspaceId,\n        callRecordingId: metadata.twentyCallRecordingId,\n        meetingUrl,\n        joinAt,\n      }),\n    )\n    .digest('hex');\n", "import { isUndefined } from '@sniptt/guards';\n\nimport { CALL_RECORDER_EVERYONE_LEFT_TIMEOUT_SECONDS_ENV_VAR_NAME } from 'src/logic-functions/constants/call-recorder-everyone-left-timeout-seconds-env-var-name';\nimport { CALL_RECORDER_NOONE_JOINED_TIMEOUT_SECONDS_ENV_VAR_NAME } from 'src/logic-functions/constants/call-recorder-noone-joined-timeout-seconds-env-var-name';\nimport { CALL_RECORDER_WAITING_ROOM_TIMEOUT_SECONDS_ENV_VAR_NAME } from 'src/logic-functions/constants/call-recorder-waiting-room-timeout-seconds-env-var-name';\nimport { RECALL_BOT_EVERYONE_LEFT_MIN_ACTIVATE_AFTER_SECONDS } from 'src/logic-functions/constants/recall-bot-everyone-left-min-activate-after-seconds';\nimport {\n  RECALL_BOT_DETECTION_USING_PARTICIPANT_EVENTS_TIMEOUT_SECONDS,\n  RECALL_BOT_DETECTION_USING_PARTICIPANT_NAMES_MIN_TIMEOUT_SECONDS,\n} from 'src/logic-functions/constants/recall-bot-detection-timeouts';\nimport { RECALL_BOT_SILENCE_DETECTION_ACTIVATE_AFTER_SECONDS } from 'src/logic-functions/constants/recall-bot-silence-detection-activate-after-seconds';\nimport { RECALL_BOT_SILENCE_DETECTION_TIMEOUT_SECONDS } from 'src/logic-functions/constants/recall-bot-silence-detection-timeout-seconds';\nimport { getApplicationVariableValue } from 'src/logic-functions/utils/get-application-variable-value.util';\nimport { getCallRecorderBotDetectionNameMatches } from 'src/logic-functions/utils/get-call-recorder-bot-detection-name-matches.util';\nimport { isNonEmptyString } from 'src/logic-functions/utils/is-non-empty-string.util';\n\ntype RecallBotDetection = {\n  using_participant_names: {\n    matches: string[];\n    activate_after: number;\n    timeout: number;\n  };\n  using_participant_events: {\n    activate_after: number;\n    timeout: number;\n  };\n};\n\ntype RecallBotAutomaticLeave = {\n  waiting_room_timeout?: number;\n  noone_joined_timeout?: number;\n  everyone_left_timeout?: {\n    timeout: number;\n    activate_after: number;\n  };\n  bot_detection: RecallBotDetection;\n  silence_detection: {\n    activate_after: number;\n    timeout: number;\n  };\n};\n\nexport const getRecallBotAutomaticLeave = ({\n  botDetectionActivateAfterSeconds,\n  botName,\n}: {\n  botDetectionActivateAfterSeconds: number;\n  botName?: string;\n}): RecallBotAutomaticLeave => {\n  const waitingRoomTimeoutSeconds = getOptionalPositiveIntegerVariable(\n    CALL_RECORDER_WAITING_ROOM_TIMEOUT_SECONDS_ENV_VAR_NAME,\n  );\n  const nooneJoinedTimeoutSeconds = getOptionalPositiveIntegerVariable(\n    CALL_RECORDER_NOONE_JOINED_TIMEOUT_SECONDS_ENV_VAR_NAME,\n  );\n  const everyoneLeftTimeoutSeconds = getOptionalPositiveIntegerVariable(\n    CALL_RECORDER_EVERYONE_LEFT_TIMEOUT_SECONDS_ENV_VAR_NAME,\n  );\n\n  const automaticLeave: RecallBotAutomaticLeave = {\n    bot_detection: getRecallBotDetection({\n      botDetectionActivateAfterSeconds,\n      botName,\n    }),\n    silence_detection: {\n      activate_after: RECALL_BOT_SILENCE_DETECTION_ACTIVATE_AFTER_SECONDS,\n      timeout: RECALL_BOT_SILENCE_DETECTION_TIMEOUT_SECONDS,\n    },\n  };\n\n  if (!isUndefined(waitingRoomTimeoutSeconds)) {\n    automaticLeave.waiting_room_timeout = waitingRoomTimeoutSeconds;\n  }\n\n  if (!isUndefined(nooneJoinedTimeoutSeconds)) {\n    automaticLeave.noone_joined_timeout = nooneJoinedTimeoutSeconds;\n  }\n\n  if (!isUndefined(everyoneLeftTimeoutSeconds)) {\n    automaticLeave.everyone_left_timeout = {\n      timeout: everyoneLeftTimeoutSeconds,\n      activate_after: RECALL_BOT_EVERYONE_LEFT_MIN_ACTIVATE_AFTER_SECONDS,\n    };\n  }\n\n  return automaticLeave;\n};\n\nconst getRecallBotDetection = ({\n  botDetectionActivateAfterSeconds,\n  botName,\n}: {\n  botDetectionActivateAfterSeconds: number;\n  botName?: string;\n}): RecallBotDetection => ({\n  using_participant_names: {\n    matches: getCallRecorderBotDetectionNameMatches(botName),\n    activate_after: botDetectionActivateAfterSeconds,\n    timeout: RECALL_BOT_DETECTION_USING_PARTICIPANT_NAMES_MIN_TIMEOUT_SECONDS,\n  },\n  using_participant_events: {\n    activate_after: botDetectionActivateAfterSeconds,\n    timeout: RECALL_BOT_DETECTION_USING_PARTICIPANT_EVENTS_TIMEOUT_SECONDS,\n  },\n});\n\nconst getOptionalPositiveIntegerVariable = (\n  variableName: string,\n): number | undefined => {\n  const rawValue = normalizeOptionalString(\n    getApplicationVariableValue(variableName),\n  );\n\n  if (isUndefined(rawValue)) {\n    return undefined;\n  }\n\n  const timeoutSeconds = Number(rawValue);\n\n  if (!Number.isInteger(timeoutSeconds) || timeoutSeconds <= 0) {\n    return undefined;\n  }\n\n  return timeoutSeconds;\n};\n\nconst normalizeOptionalString = (\n  value: string | undefined,\n): string | undefined => (isNonEmptyString(value) ? value.trim() : undefined);\n", "export const CALL_RECORDER_EVERYONE_LEFT_TIMEOUT_SECONDS_ENV_VAR_NAME =\n  'CALL_RECORDER_EVERYONE_LEFT_TIMEOUT_SECONDS';\n", "export const CALL_RECORDER_NOONE_JOINED_TIMEOUT_SECONDS_ENV_VAR_NAME =\n  'CALL_RECORDER_NOONE_JOINED_TIMEOUT_SECONDS';\n", "export const CALL_RECORDER_WAITING_ROOM_TIMEOUT_SECONDS_ENV_VAR_NAME =\n  'CALL_RECORDER_WAITING_ROOM_TIMEOUT_SECONDS';\n", "export const RECALL_BOT_EVERYONE_LEFT_MIN_ACTIVATE_AFTER_SECONDS = 1;\n", "export const RECALL_BOT_DETECTION_GRACE_AFTER_MEETING_START_SECONDS = 300;\nexport const RECALL_BOT_DETECTION_USING_PARTICIPANT_NAMES_MIN_TIMEOUT_SECONDS = 10;\nexport const RECALL_BOT_DETECTION_USING_PARTICIPANT_EVENTS_TIMEOUT_SECONDS = 10;\n", "export const RECALL_BOT_SILENCE_DETECTION_ACTIVATE_AFTER_SECONDS = 1200;\n", "export const RECALL_BOT_SILENCE_DETECTION_TIMEOUT_SECONDS = 300;\n", "// Substrings Recall matches (case-insensitive) against participant names to\n// classify them as recording bots rather than humans. Covers our own bot plus\n// common third-party notetakers so a call full of bots is treated as empty.\nexport const RECALL_BOT_DETECTION_DEFAULT_NAME_MATCHES = [\n  'notetaker',\n  'note taker',\n  'recorder',\n  'recording',\n  'transcriber',\n  'otter',\n  'fireflies',\n  'tl;dv',\n  'tldv',\n  'grain',\n  'read.ai',\n  'fathom',\n  'fellow',\n  'avoma',\n  'sembly',\n  'nyota',\n];\n", "import { RECALL_BOT_DETECTION_DEFAULT_NAME_MATCHES } from 'src/logic-functions/constants/recall-bot-detection-name-matches';\nimport { isNonEmptyString } from 'src/logic-functions/utils/is-non-empty-string.util';\n\nexport const getCallRecorderBotDetectionNameMatches = (\n  botName?: string,\n): string[] => [\n  ...(isNonEmptyString(botName) ? [botName.trim()] : []),\n  ...RECALL_BOT_DETECTION_DEFAULT_NAME_MATCHES,\n];\n", "export const CALL_RECORDER_RECORDING_RETENTION_HOURS_ENV_VAR_NAME =\n  'CALL_RECORDER_RECORDING_RETENTION_HOURS';\n", "// Twenty stores imported recording artifacts, so Recall.ai media is temporary. Keep the default below Recall.ai's 168-hour free storage window.\nexport const DEFAULT_CALL_RECORDER_RECORDING_RETENTION_HOURS = 166;\n", "import { CALL_RECORDER_RECORDING_RETENTION_HOURS_ENV_VAR_NAME } from 'src/logic-functions/constants/call-recorder-recording-retention-hours-env-var-name';\nimport { DEFAULT_CALL_RECORDER_RECORDING_RETENTION_HOURS } from 'src/logic-functions/constants/default-call-recorder-recording-retention-hours';\nimport { getApplicationVariableValue } from 'src/logic-functions/utils/get-application-variable-value.util';\nimport { isNonEmptyString } from 'src/logic-functions/utils/is-non-empty-string.util';\n\ntype RecallBotRecordingConfig = {\n  video_mixed_mp4: Record<string, never>;\n  audio_mixed_mp3: Record<string, never>;\n  retention: { type: 'timed'; hours: number };\n};\n\n// Recall only produces artifacts declared at bot creation; both gate COMPLETED.\nexport const getRecallBotRecordingConfig = (): RecallBotRecordingConfig => {\n  const configuredRecordingRetentionHours = getApplicationVariableValue(\n    CALL_RECORDER_RECORDING_RETENTION_HOURS_ENV_VAR_NAME,\n  );\n\n  const recordingRetentionHours = isNonEmptyString(\n    configuredRecordingRetentionHours,\n  )\n    ? Number(configuredRecordingRetentionHours.trim())\n    : NaN;\n\n  const resolvedRecordingRetentionHours =\n    Number.isInteger(recordingRetentionHours) && recordingRetentionHours > 0\n      ? recordingRetentionHours\n      : DEFAULT_CALL_RECORDER_RECORDING_RETENTION_HOURS;\n\n  return {\n    video_mixed_mp4: {},\n    audio_mixed_mp3: {},\n    retention: { type: 'timed', hours: resolvedRecordingRetentionHours },\n  };\n};\n", "import { getString } from 'src/logic-functions/utils/get-string.util';\n\nexport type RecallBotResponse = {\n  id?: unknown;\n  bot_id?: unknown;\n};\n\nexport const extractRecallBotId = (\n  response: RecallBotResponse | undefined,\n): string | undefined => getString(response?.id) ?? getString(response?.bot_id);\n", "import { RECALL_BOT_DETECTION_GRACE_AFTER_MEETING_START_SECONDS } from 'src/logic-functions/constants/recall-bot-detection-timeouts';\n\nconst MILLISECONDS_PER_SECOND = 1_000;\n\nexport const computeRecallBotDetectionActivateAfterSeconds = ({\n  botJoinsAt,\n  meetingStartsAt,\n}: {\n  botJoinsAt: string;\n  meetingStartsAt: string;\n}): number => {\n  const millisecondsUntilMeetingStarts =\n    new Date(meetingStartsAt).getTime() - new Date(botJoinsAt).getTime();\n\n  const secondsUntilMeetingStarts = Math.max(\n    0,\n    Math.ceil(millisecondsUntilMeetingStarts / MILLISECONDS_PER_SECOND),\n  );\n\n  return (\n    secondsUntilMeetingStarts +\n    RECALL_BOT_DETECTION_GRACE_AFTER_MEETING_START_SECONDS\n  );\n};\n", "export const CALL_RECORDER_RECORDING_NOTICE_ENABLED_ENV_VAR_NAME =\n  'CALL_RECORDER_RECORDING_NOTICE_ENABLED';\n", "export const CALL_RECORDER_RECORDING_NOTICE_MESSAGE_ENV_VAR_NAME =\n  'CALL_RECORDER_RECORDING_NOTICE_MESSAGE';\n", "export const DEFAULT_CALL_RECORDER_RECORDING_NOTICE_ENABLED = true;\n", "export const DEFAULT_CALL_RECORDER_RECORDING_NOTICE_MESSAGE =\n  '\uD83D\uDC4B This meeting is being recorded and transcribed to create notes and a summary. If you prefer not to be recorded, please tell the host now. Powered by Twenty \u00B7 twenty.com';\n", "import { getApplicationVariableValue } from 'src/logic-functions/utils/get-application-variable-value.util';\nimport { isNonEmptyString } from 'src/logic-functions/utils/is-non-empty-string.util';\n\nconst TRUTHY_VALUES = new Set(['true', '1', 'yes', 'on']);\nconst FALSY_VALUES = new Set(['false', '0', 'no', 'off']);\n\nexport const getBooleanApplicationVariableValue = ({\n  applicationVariableName,\n  defaultValue,\n}: {\n  applicationVariableName: string;\n  defaultValue: boolean;\n}): boolean => {\n  const rawValue = getApplicationVariableValue(applicationVariableName);\n\n  if (!isNonEmptyString(rawValue)) {\n    return defaultValue;\n  }\n\n  const normalizedValue = rawValue.trim().toLowerCase();\n\n  if (TRUTHY_VALUES.has(normalizedValue)) {\n    return true;\n  }\n\n  if (FALSY_VALUES.has(normalizedValue)) {\n    return false;\n  }\n\n  return defaultValue;\n};\n", "export const CALL_RECORDER_RECORDING_NOTICE_MAX_LENGTH = 500;\n", "import { CALL_RECORDER_RECORDING_NOTICE_MAX_LENGTH } from 'src/logic-functions/constants/call-recorder-recording-notice-max-length';\n\nconst recordingNoticeGraphemeSegmenter = new Intl.Segmenter(undefined, {\n  granularity: 'grapheme',\n});\n\nexport const truncateRecordingNoticeMessage = (message: string): string => {\n  let truncatedMessage = '';\n  let unicodeCodePointCount = 0;\n\n  for (const { segment } of recordingNoticeGraphemeSegmenter.segment(message)) {\n    const segmentUnicodeCodePointCount = Array.from(segment).length;\n\n    if (\n      unicodeCodePointCount + segmentUnicodeCodePointCount >\n      CALL_RECORDER_RECORDING_NOTICE_MAX_LENGTH\n    ) {\n      break;\n    }\n\n    truncatedMessage += segment;\n    unicodeCodePointCount += segmentUnicodeCodePointCount;\n  }\n\n  return truncatedMessage;\n};\n", "import { CALL_RECORDER_RECORDING_NOTICE_ENABLED_ENV_VAR_NAME } from 'src/logic-functions/constants/call-recorder-recording-notice-enabled-env-var-name';\nimport { CALL_RECORDER_RECORDING_NOTICE_MESSAGE_ENV_VAR_NAME } from 'src/logic-functions/constants/call-recorder-recording-notice-message-env-var-name';\nimport { DEFAULT_CALL_RECORDER_RECORDING_NOTICE_ENABLED } from 'src/logic-functions/constants/default-call-recorder-recording-notice-enabled';\nimport { DEFAULT_CALL_RECORDER_RECORDING_NOTICE_MESSAGE } from 'src/logic-functions/constants/default-call-recorder-recording-notice-message';\nimport { getApplicationVariableValue } from 'src/logic-functions/utils/get-application-variable-value.util';\nimport { getBooleanApplicationVariableValue } from 'src/logic-functions/utils/get-boolean-application-variable-value.util';\nimport { isNonEmptyString } from 'src/logic-functions/utils/is-non-empty-string.util';\nimport { truncateRecordingNoticeMessage } from 'src/logic-functions/utils/truncate-recording-notice-message.util';\n\ntype RecallBotChatConfig = {\n  on_bot_join: {\n    send_to: 'everyone';\n    message: string;\n  };\n};\n\nexport const getRecallBotChatConfig = (): RecallBotChatConfig | undefined => {\n  if (!isRecordingNoticeEnabled()) {\n    return undefined;\n  }\n\n  const message = getRecordingNoticeMessage();\n\n  return {\n    on_bot_join: {\n      send_to: 'everyone',\n      message,\n    },\n  };\n};\n\nconst isRecordingNoticeEnabled = (): boolean =>\n  getBooleanApplicationVariableValue({\n    applicationVariableName:\n      CALL_RECORDER_RECORDING_NOTICE_ENABLED_ENV_VAR_NAME,\n    defaultValue: DEFAULT_CALL_RECORDER_RECORDING_NOTICE_ENABLED,\n  });\n\nconst getRecordingNoticeMessage = (): string => {\n  const configuredMessage = getApplicationVariableValue(\n    CALL_RECORDER_RECORDING_NOTICE_MESSAGE_ENV_VAR_NAME,\n  )?.trim();\n  const message = isNonEmptyString(configuredMessage)\n    ? configuredMessage\n    : DEFAULT_CALL_RECORDER_RECORDING_NOTICE_MESSAGE;\n\n  return truncateRecordingNoticeMessage(message);\n};\n", "export const computeMaximumJoinAt = (joinAt: string): string => {\n  const joinAtDate = new Date(joinAt);\n  const nowPlusOneSecond = new Date(Date.now() + 1_000);\n\n  return new Date(\n    Math.max(joinAtDate.getTime(), nowPlusOneSecond.getTime()),\n  ).toISOString();\n};\n", "import validate from './validate.js';\nconst byteToHex = [];\nfor (let i = 0; i < 256; ++i) {\n    byteToHex.push((i + 0x100).toString(16).slice(1));\n}\nexport function unsafeStringify(arr, offset = 0) {\n    return (byteToHex[arr[offset + 0]] +\n        byteToHex[arr[offset + 1]] +\n        byteToHex[arr[offset + 2]] +\n        byteToHex[arr[offset + 3]] +\n        '-' +\n        byteToHex[arr[offset + 4]] +\n        byteToHex[arr[offset + 5]] +\n        '-' +\n        byteToHex[arr[offset + 6]] +\n        byteToHex[arr[offset + 7]] +\n        '-' +\n        byteToHex[arr[offset + 8]] +\n        byteToHex[arr[offset + 9]] +\n        '-' +\n        byteToHex[arr[offset + 10]] +\n        byteToHex[arr[offset + 11]] +\n        byteToHex[arr[offset + 12]] +\n        byteToHex[arr[offset + 13]] +\n        byteToHex[arr[offset + 14]] +\n        byteToHex[arr[offset + 15]]).toLowerCase();\n}\nfunction stringify(arr, offset = 0) {\n    const uuid = unsafeStringify(arr, offset);\n    if (!validate(uuid)) {\n        throw TypeError('Stringified UUID is invalid');\n    }\n    return uuid;\n}\nexport default stringify;\n", "import { randomFillSync } from 'node:crypto';\nconst rnds8Pool = new Uint8Array(256);\nlet poolPtr = rnds8Pool.length;\nexport default function rng() {\n    if (poolPtr > rnds8Pool.length - 16) {\n        randomFillSync(rnds8Pool);\n        poolPtr = 0;\n    }\n    return rnds8Pool.slice(poolPtr, (poolPtr += 16));\n}\n", "import { randomUUID } from 'node:crypto';\nexport default { randomUUID };\n", "import native from './native.js';\nimport rng from './rng.js';\nimport { unsafeStringify } from './stringify.js';\nfunction _v4(options, buf, offset) {\n    options = options || {};\n    const rnds = options.random ?? options.rng?.() ?? rng();\n    if (rnds.length < 16) {\n        throw new Error('Random bytes length must be >= 16');\n    }\n    rnds[6] = (rnds[6] & 0x0f) | 0x40;\n    rnds[8] = (rnds[8] & 0x3f) | 0x80;\n    if (buf) {\n        offset = offset || 0;\n        if (offset < 0 || offset + 16 > buf.length) {\n            throw new RangeError(`UUID byte range ${offset}:${offset + 15} is out of buffer bounds`);\n        }\n        for (let i = 0; i < 16; ++i) {\n            buf[offset + i] = rnds[i];\n        }\n        return buf;\n    }\n    return unsafeStringify(rnds);\n}\nfunction v4(options, buf, offset) {\n    if (native.randomUUID && !buf && !options) {\n        return native.randomUUID();\n    }\n    return _v4(options, buf, offset);\n}\nexport default v4;\n", "import { isNonEmptyString as e } from \"@sniptt/guards\";\n//#region src/logic-function/is-record-object-schema.ts\nvar t = (t) => (t?.type === \"record\" || t?.type === \"object\") && e(t.objectUniversalIdentifier);\n//#endregion\nexport { t };\n", "import { t as e } from \"./isDefined-Dtu5EYqP.mjs\";\nimport { t } from \"./is-record-object-schema-CwzshFdt.mjs\";\nimport { isNonEmptyString as n, isObject as r } from \"@sniptt/guards\";\n//#region src/logic-function/build-tool-input-json-schema.ts\nvar i = (e, t) => {\n\tlet r = n(e) ? t?.(e) : void 0;\n\treturn `Id of the ${n(r) ? r : \"linked\"} record`;\n}, a = (n, o) => {\n\tif (t(n)) return {\n\t\ttype: \"string\",\n\t\tdescription: i(n.objectUniversalIdentifier, o)\n\t};\n\tif (n.type === \"records\") return {\n\t\ttype: \"array\",\n\t\titems: {\n\t\t\ttype: \"string\",\n\t\t\tdescription: i(n.objectUniversalIdentifier, o)\n\t\t}\n\t};\n\tlet { objectUniversalIdentifier: s, multiline: c, label: l, items: u, properties: d, additionalProperties: f, ...p } = n, m = { ...p };\n\treturn e(u) && (m.items = a(u, o)), e(d) && (m.properties = Object.fromEntries(Object.entries(d).map(([e, t]) => [e, a(t, o)]))), e(f) && (m.additionalProperties = r(f) ? a(f, o) : f), m;\n}, o = {\n\ttype: \"object\",\n\tproperties: {}\n}, s = (e) => {\n\tlet t = { type: \"unknown\" };\n\tswitch (e.type) {\n\t\tcase \"string\":\n\t\t\tt.type = \"string\";\n\t\t\tbreak;\n\t\tcase \"number\":\n\t\tcase \"integer\":\n\t\t\tt.type = \"number\";\n\t\t\tbreak;\n\t\tcase \"boolean\":\n\t\t\tt.type = \"boolean\";\n\t\t\tbreak;\n\t\tcase \"array\":\n\t\t\tt.type = \"array\", e.items && (t.items = s(e.items));\n\t\t\tbreak;\n\t\tcase \"object\":\n\t\t\tt.type = \"object\", e.properties && (t.properties = Object.fromEntries(Object.entries(e.properties).map(([e, t]) => [e, s(t)])));\n\t\t\tbreak;\n\t\tcase \"record\":\n\t\t\tt.type = \"record\";\n\t\t\tbreak;\n\t\tcase \"records\":\n\t\t\tt.type = \"records\";\n\t\t\tbreak;\n\t\tdefault: t.type = \"unknown\";\n\t}\n\treturn Array.isArray(e.enum) && (t.enum = e.enum.filter((e) => typeof e == \"string\")), e.multiline === !0 && (t.multiline = !0), n(e.label) && (t.label = e.label), n(e.objectUniversalIdentifier) && (t.objectUniversalIdentifier = e.objectUniversalIdentifier), t;\n}, c = (e) => [s(e)], l = { inputSchema: c({\n\ttype: \"object\",\n\tproperties: {\n\t\ta: { type: \"string\" },\n\t\tb: { type: \"number\" }\n\t}\n}) }, u = async (t) => {\n\tlet { getFunctionInputSchema: n } = await import(\"./get-function-input-schema-GNk3NRLJ.mjs\"), r = n(t)[0];\n\treturn r?.type === \"object\" && e(r.properties) ? {\n\t\ttype: \"object\",\n\t\tproperties: r.properties\n\t} : o;\n}, d = (t) => !e(t) || t === null ? \"unknown\" : typeof t == \"string\" ? \"string\" : typeof t == \"number\" ? \"number\" : typeof t == \"boolean\" ? \"boolean\" : Array.isArray(t) ? \"array\" : \"unknown\", f = (e) => e ? Object.entries(e).reduce((e, [t, n]) => (r(n) && !Array.isArray(n) ? e[t] = {\n\tisLeaf: !1,\n\ttype: \"object\",\n\tlabel: t,\n\tvalue: f(n)\n} : e[t] = {\n\tisLeaf: !0,\n\tvalue: n,\n\ttype: d(n),\n\tlabel: t\n}, e), {}) : {}, p = (e, t) => e ? `${e}.${t}` : t, m = (t, n, r = \"\") => {\n\tlet i = [];\n\tfor (let [a, o] of Object.entries(n)) {\n\t\tlet n = p(r, a), s = t[a];\n\t\tif (!e(s)) {\n\t\t\ti.push(`Missing key \"${n}\" in declared output schema.`);\n\t\t\tcontinue;\n\t\t}\n\t\tif (o.isLeaf !== s.isLeaf) {\n\t\t\ti.push(`Type mismatch at \"${n}\": expected ${o.isLeaf ? o.type : \"object\"} but declared ${s.isLeaf ? s.type : \"object\"}.`);\n\t\t\tcontinue;\n\t\t}\n\t\tif (!o.isLeaf && !s.isLeaf) {\n\t\t\ti.push(...m(s.value, o.value, n));\n\t\t\tcontinue;\n\t\t}\n\t\to.isLeaf && s.isLeaf && o.type !== \"unknown\" && s.type !== \"unknown\" && o.type !== s.type && i.push(`Type mismatch at \"${n}\": expected ${o.type} but declared ${s.type}.`);\n\t}\n\treturn i;\n}, h = [\n\t\"string\",\n\t\"number\",\n\t\"boolean\",\n\t\"array\",\n\t\"unknown\"\n], g = (e) => h.includes(e), _ = (e, t) => {\n\tlet n = t.label ?? e;\n\treturn t.type === \"record\" ? {\n\t\tisLeaf: !0,\n\t\ttype: \"string\",\n\t\tlabel: n,\n\t\tvalue: null\n\t} : t.type === \"records\" ? {\n\t\tisLeaf: !0,\n\t\ttype: \"array\",\n\t\tlabel: n,\n\t\tvalue: null\n\t} : t.type === \"object\" ? {\n\t\tisLeaf: !1,\n\t\ttype: \"object\",\n\t\tlabel: n,\n\t\tvalue: r(t.properties) ? v(t.properties) : {}\n\t} : {\n\t\tisLeaf: !0,\n\t\ttype: g(t.type) ? t.type : \"unknown\",\n\t\tlabel: n,\n\t\tvalue: null\n\t};\n}, v = (e) => Object.entries(e).reduce((e, [t, n]) => (e[t] = _(t, n), e), {}), y = (e) => {\n\tlet t = e[0];\n\treturn t?.type !== \"object\" || !r(t.properties) ? {} : v(t.properties);\n}, b = (e) => e?.type === \"records\" && n(e.objectUniversalIdentifier) || e?.type === \"array\" && t(e?.items), x = \"RetryableLogicFunctionError\", S = class extends Error {\n\tconstructor(e) {\n\t\tsuper(e), this.name = x;\n\t}\n};\n//#endregion\nexport { o as DEFAULT_TOOL_INPUT_SCHEMA, x as RETRYABLE_LOGIC_FUNCTION_ERROR_NAME, S as RetryableLogicFunctionError, l as SEED_WORKFLOW_ACTION_TRIGGER_SETTINGS, a as buildToolInputJsonSchema, u as getInputSchemaFromSourceCode, f as getOutputSchemaFromValue, m as getOutputSchemaMismatchIssues, y as inputSchemaToOutputSchema, b as isRecordArraySchema, t as isRecordObjectSchema, c as jsonSchemaToInputSchema };\n", "// Thrown when the platform asks the SDK to operate on a connection whose\n// OAuth refresh failed permanently (`authFailedAt` is set). The end user\n// must reconnect from the app's settings tab — the app cannot recover on\n// its own.\n//\n// `listConnections` filters these out by default (the user can't act on\n// them anyway). `getConnection` throws this when the looked-up connection\n// is in this state, so a stored connection id can be safely retried until\n// it works again.\nexport class AppConnectionAuthFailedError extends Error {\n  readonly connectionId: string;\n\n  constructor(connectionId: string) {\n    super(\n      `App connection ${connectionId} requires the user to reconnect ` +\n        `(authFailedAt is set). Surface a \"Reconnect\" prompt in your UI.`,\n    );\n    this.name = 'AppConnectionAuthFailedError';\n    this.connectionId = connectionId;\n  }\n}\n", "/** A special constant with type `never` */\nexport const NEVER = Object.freeze({\n    status: \"aborted\",\n});\nexport /*@__NO_SIDE_EFFECTS__*/ function $constructor(name, initializer, params) {\n    function init(inst, def) {\n        var _a;\n        Object.defineProperty(inst, \"_zod\", {\n            value: inst._zod ?? {},\n            enumerable: false,\n        });\n        (_a = inst._zod).traits ?? (_a.traits = new Set());\n        inst._zod.traits.add(name);\n        initializer(inst, def);\n        // support prototype modifications\n        for (const k in _.prototype) {\n            if (!(k in inst))\n                Object.defineProperty(inst, k, { value: _.prototype[k].bind(inst) });\n        }\n        inst._zod.constr = _;\n        inst._zod.def = def;\n    }\n    // doesn't work if Parent has a constructor with arguments\n    const Parent = params?.Parent ?? Object;\n    class Definition extends Parent {\n    }\n    Object.defineProperty(Definition, \"name\", { value: name });\n    function _(def) {\n        var _a;\n        const inst = params?.Parent ? new Definition() : this;\n        init(inst, def);\n        (_a = inst._zod).deferred ?? (_a.deferred = []);\n        for (const fn of inst._zod.deferred) {\n            fn();\n        }\n        return inst;\n    }\n    Object.defineProperty(_, \"init\", { value: init });\n    Object.defineProperty(_, Symbol.hasInstance, {\n        value: (inst) => {\n            if (params?.Parent && inst instanceof params.Parent)\n                return true;\n            return inst?._zod?.traits?.has(name);\n        },\n    });\n    Object.defineProperty(_, \"name\", { value: name });\n    return _;\n}\n//////////////////////////////   UTILITIES   ///////////////////////////////////////\nexport const $brand = Symbol(\"zod_brand\");\nexport class $ZodAsyncError extends Error {\n    constructor() {\n        super(`Encountered Promise during synchronous parse. Use .parseAsync() instead.`);\n    }\n}\nexport class $ZodEncodeError extends Error {\n    constructor(name) {\n        super(`Encountered unidirectional transform during encode: ${name}`);\n        this.name = \"ZodEncodeError\";\n    }\n}\nexport const globalConfig = {};\nexport function config(newConfig) {\n    if (newConfig)\n        Object.assign(globalConfig, newConfig);\n    return globalConfig;\n}\n", "// functions\nexport function assertEqual(val) {\n    return val;\n}\nexport function assertNotEqual(val) {\n    return val;\n}\nexport function assertIs(_arg) { }\nexport function assertNever(_x) {\n    throw new Error();\n}\nexport function assert(_) { }\nexport function getEnumValues(entries) {\n    const numericValues = Object.values(entries).filter((v) => typeof v === \"number\");\n    const values = Object.entries(entries)\n        .filter(([k, _]) => numericValues.indexOf(+k) === -1)\n        .map(([_, v]) => v);\n    return values;\n}\nexport function joinValues(array, separator = \"|\") {\n    return array.map((val) => stringifyPrimitive(val)).join(separator);\n}\nexport function jsonStringifyReplacer(_, value) {\n    if (typeof value === \"bigint\")\n        return value.toString();\n    return value;\n}\nexport function cached(getter) {\n    const set = false;\n    return {\n        get value() {\n            if (!set) {\n                const value = getter();\n                Object.defineProperty(this, \"value\", { value });\n                return value;\n            }\n            throw new Error(\"cached value already set\");\n        },\n    };\n}\nexport function nullish(input) {\n    return input === null || input === undefined;\n}\nexport function cleanRegex(source) {\n    const start = source.startsWith(\"^\") ? 1 : 0;\n    const end = source.endsWith(\"$\") ? source.length - 1 : source.length;\n    return source.slice(start, end);\n}\nexport function floatSafeRemainder(val, step) {\n    const valDecCount = (val.toString().split(\".\")[1] || \"\").length;\n    const stepString = step.toString();\n    let stepDecCount = (stepString.split(\".\")[1] || \"\").length;\n    if (stepDecCount === 0 && /\\d?e-\\d?/.test(stepString)) {\n        const match = stepString.match(/\\d?e-(\\d?)/);\n        if (match?.[1]) {\n            stepDecCount = Number.parseInt(match[1]);\n        }\n    }\n    const decCount = valDecCount > stepDecCount ? valDecCount : stepDecCount;\n    const valInt = Number.parseInt(val.toFixed(decCount).replace(\".\", \"\"));\n    const stepInt = Number.parseInt(step.toFixed(decCount).replace(\".\", \"\"));\n    return (valInt % stepInt) / 10 ** decCount;\n}\nconst EVALUATING = Symbol(\"evaluating\");\nexport function defineLazy(object, key, getter) {\n    let value = undefined;\n    Object.defineProperty(object, key, {\n        get() {\n            if (value === EVALUATING) {\n                // Circular reference detected, return undefined to break the cycle\n                return undefined;\n            }\n            if (value === undefined) {\n                value = EVALUATING;\n                value = getter();\n            }\n            return value;\n        },\n        set(v) {\n            Object.defineProperty(object, key, {\n                value: v,\n                // configurable: true,\n            });\n            // object[key] = v;\n        },\n        configurable: true,\n    });\n}\nexport function objectClone(obj) {\n    return Object.create(Object.getPrototypeOf(obj), Object.getOwnPropertyDescriptors(obj));\n}\nexport function assignProp(target, prop, value) {\n    Object.defineProperty(target, prop, {\n        value,\n        writable: true,\n        enumerable: true,\n        configurable: true,\n    });\n}\nexport function mergeDefs(...defs) {\n    const mergedDescriptors = {};\n    for (const def of defs) {\n        const descriptors = Object.getOwnPropertyDescriptors(def);\n        Object.assign(mergedDescriptors, descriptors);\n    }\n    return Object.defineProperties({}, mergedDescriptors);\n}\nexport function cloneDef(schema) {\n    return mergeDefs(schema._zod.def);\n}\nexport function getElementAtPath(obj, path) {\n    if (!path)\n        return obj;\n    return path.reduce((acc, key) => acc?.[key], obj);\n}\nexport function promiseAllObject(promisesObj) {\n    const keys = Object.keys(promisesObj);\n    const promises = keys.map((key) => promisesObj[key]);\n    return Promise.all(promises).then((results) => {\n        const resolvedObj = {};\n        for (let i = 0; i < keys.length; i++) {\n            resolvedObj[keys[i]] = results[i];\n        }\n        return resolvedObj;\n    });\n}\nexport function randomString(length = 10) {\n    const chars = \"abcdefghijklmnopqrstuvwxyz\";\n    let str = \"\";\n    for (let i = 0; i < length; i++) {\n        str += chars[Math.floor(Math.random() * chars.length)];\n    }\n    return str;\n}\nexport function esc(str) {\n    return JSON.stringify(str);\n}\nexport const captureStackTrace = (\"captureStackTrace\" in Error ? Error.captureStackTrace : (..._args) => { });\nexport function isObject(data) {\n    return typeof data === \"object\" && data !== null && !Array.isArray(data);\n}\nexport const allowsEval = cached(() => {\n    // @ts-ignore\n    if (typeof navigator !== \"undefined\" && navigator?.userAgent?.includes(\"Cloudflare\")) {\n        return false;\n    }\n    try {\n        const F = Function;\n        new F(\"\");\n        return true;\n    }\n    catch (_) {\n        return false;\n    }\n});\nexport function isPlainObject(o) {\n    if (isObject(o) === false)\n        return false;\n    // modified constructor\n    const ctor = o.constructor;\n    if (ctor === undefined)\n        return true;\n    // modified prototype\n    const prot = ctor.prototype;\n    if (isObject(prot) === false)\n        return false;\n    // ctor doesn't have static `isPrototypeOf`\n    if (Object.prototype.hasOwnProperty.call(prot, \"isPrototypeOf\") === false) {\n        return false;\n    }\n    return true;\n}\nexport function shallowClone(o) {\n    if (isPlainObject(o))\n        return { ...o };\n    if (Array.isArray(o))\n        return [...o];\n    return o;\n}\nexport function numKeys(data) {\n    let keyCount = 0;\n    for (const key in data) {\n        if (Object.prototype.hasOwnProperty.call(data, key)) {\n            keyCount++;\n        }\n    }\n    return keyCount;\n}\nexport const getParsedType = (data) => {\n    const t = typeof data;\n    switch (t) {\n        case \"undefined\":\n            return \"undefined\";\n        case \"string\":\n            return \"string\";\n        case \"number\":\n            return Number.isNaN(data) ? \"nan\" : \"number\";\n        case \"boolean\":\n            return \"boolean\";\n        case \"function\":\n            return \"function\";\n        case \"bigint\":\n            return \"bigint\";\n        case \"symbol\":\n            return \"symbol\";\n        case \"object\":\n            if (Array.isArray(data)) {\n                return \"array\";\n            }\n            if (data === null) {\n                return \"null\";\n            }\n            if (data.then && typeof data.then === \"function\" && data.catch && typeof data.catch === \"function\") {\n                return \"promise\";\n            }\n            if (typeof Map !== \"undefined\" && data instanceof Map) {\n                return \"map\";\n            }\n            if (typeof Set !== \"undefined\" && data instanceof Set) {\n                return \"set\";\n            }\n            if (typeof Date !== \"undefined\" && data instanceof Date) {\n                return \"date\";\n            }\n            // @ts-ignore\n            if (typeof File !== \"undefined\" && data instanceof File) {\n                return \"file\";\n            }\n            return \"object\";\n        default:\n            throw new Error(`Unknown data type: ${t}`);\n    }\n};\nexport const propertyKeyTypes = new Set([\"string\", \"number\", \"symbol\"]);\nexport const primitiveTypes = new Set([\"string\", \"number\", \"bigint\", \"boolean\", \"symbol\", \"undefined\"]);\nexport function escapeRegex(str) {\n    return str.replace(/[.*+?^${}()|[\\]\\\\]/g, \"\\\\$&\");\n}\n// zod-specific utils\nexport function clone(inst, def, params) {\n    const cl = new inst._zod.constr(def ?? inst._zod.def);\n    if (!def || params?.parent)\n        cl._zod.parent = inst;\n    return cl;\n}\nexport function normalizeParams(_params) {\n    const params = _params;\n    if (!params)\n        return {};\n    if (typeof params === \"string\")\n        return { error: () => params };\n    if (params?.message !== undefined) {\n        if (params?.error !== undefined)\n            throw new Error(\"Cannot specify both `message` and `error` params\");\n        params.error = params.message;\n    }\n    delete params.message;\n    if (typeof params.error === \"string\")\n        return { ...params, error: () => params.error };\n    return params;\n}\nexport function createTransparentProxy(getter) {\n    let target;\n    return new Proxy({}, {\n        get(_, prop, receiver) {\n            target ?? (target = getter());\n            return Reflect.get(target, prop, receiver);\n        },\n        set(_, prop, value, receiver) {\n            target ?? (target = getter());\n            return Reflect.set(target, prop, value, receiver);\n        },\n        has(_, prop) {\n            target ?? (target = getter());\n            return Reflect.has(target, prop);\n        },\n        deleteProperty(_, prop) {\n            target ?? (target = getter());\n            return Reflect.deleteProperty(target, prop);\n        },\n        ownKeys(_) {\n            target ?? (target = getter());\n            return Reflect.ownKeys(target);\n        },\n        getOwnPropertyDescriptor(_, prop) {\n            target ?? (target = getter());\n            return Reflect.getOwnPropertyDescriptor(target, prop);\n        },\n        defineProperty(_, prop, descriptor) {\n            target ?? (target = getter());\n            return Reflect.defineProperty(target, prop, descriptor);\n        },\n    });\n}\nexport function stringifyPrimitive(value) {\n    if (typeof value === \"bigint\")\n        return value.toString() + \"n\";\n    if (typeof value === \"string\")\n        return `\"${value}\"`;\n    return `${value}`;\n}\nexport function optionalKeys(shape) {\n    return Object.keys(shape).filter((k) => {\n        return shape[k]._zod.optin === \"optional\" && shape[k]._zod.optout === \"optional\";\n    });\n}\nexport const NUMBER_FORMAT_RANGES = {\n    safeint: [Number.MIN_SAFE_INTEGER, Number.MAX_SAFE_INTEGER],\n    int32: [-2147483648, 2147483647],\n    uint32: [0, 4294967295],\n    float32: [-3.4028234663852886e38, 3.4028234663852886e38],\n    float64: [-Number.MAX_VALUE, Number.MAX_VALUE],\n};\nexport const BIGINT_FORMAT_RANGES = {\n    int64: [/* @__PURE__*/ BigInt(\"-9223372036854775808\"), /* @__PURE__*/ BigInt(\"9223372036854775807\")],\n    uint64: [/* @__PURE__*/ BigInt(0), /* @__PURE__*/ BigInt(\"18446744073709551615\")],\n};\nexport function pick(schema, mask) {\n    const currDef = schema._zod.def;\n    const def = mergeDefs(schema._zod.def, {\n        get shape() {\n            const newShape = {};\n            for (const key in mask) {\n                if (!(key in currDef.shape)) {\n                    throw new Error(`Unrecognized key: \"${key}\"`);\n                }\n                if (!mask[key])\n                    continue;\n                newShape[key] = currDef.shape[key];\n            }\n            assignProp(this, \"shape\", newShape); // self-caching\n            return newShape;\n        },\n        checks: [],\n    });\n    return clone(schema, def);\n}\nexport function omit(schema, mask) {\n    const currDef = schema._zod.def;\n    const def = mergeDefs(schema._zod.def, {\n        get shape() {\n            const newShape = { ...schema._zod.def.shape };\n            for (const key in mask) {\n                if (!(key in currDef.shape)) {\n                    throw new Error(`Unrecognized key: \"${key}\"`);\n                }\n                if (!mask[key])\n                    continue;\n                delete newShape[key];\n            }\n            assignProp(this, \"shape\", newShape); // self-caching\n            return newShape;\n        },\n        checks: [],\n    });\n    return clone(schema, def);\n}\nexport function extend(schema, shape) {\n    if (!isPlainObject(shape)) {\n        throw new Error(\"Invalid input to extend: expected a plain object\");\n    }\n    const checks = schema._zod.def.checks;\n    const hasChecks = checks && checks.length > 0;\n    if (hasChecks) {\n        throw new Error(\"Object schemas containing refinements cannot be extended. Use `.safeExtend()` instead.\");\n    }\n    const def = mergeDefs(schema._zod.def, {\n        get shape() {\n            const _shape = { ...schema._zod.def.shape, ...shape };\n            assignProp(this, \"shape\", _shape); // self-caching\n            return _shape;\n        },\n        checks: [],\n    });\n    return clone(schema, def);\n}\nexport function safeExtend(schema, shape) {\n    if (!isPlainObject(shape)) {\n        throw new Error(\"Invalid input to safeExtend: expected a plain object\");\n    }\n    const def = {\n        ...schema._zod.def,\n        get shape() {\n            const _shape = { ...schema._zod.def.shape, ...shape };\n            assignProp(this, \"shape\", _shape); // self-caching\n            return _shape;\n        },\n        checks: schema._zod.def.checks,\n    };\n    return clone(schema, def);\n}\nexport function merge(a, b) {\n    const def = mergeDefs(a._zod.def, {\n        get shape() {\n            const _shape = { ...a._zod.def.shape, ...b._zod.def.shape };\n            assignProp(this, \"shape\", _shape); // self-caching\n            return _shape;\n        },\n        get catchall() {\n            return b._zod.def.catchall;\n        },\n        checks: [], // delete existing checks\n    });\n    return clone(a, def);\n}\nexport function partial(Class, schema, mask) {\n    const def = mergeDefs(schema._zod.def, {\n        get shape() {\n            const oldShape = schema._zod.def.shape;\n            const shape = { ...oldShape };\n            if (mask) {\n                for (const key in mask) {\n                    if (!(key in oldShape)) {\n                        throw new Error(`Unrecognized key: \"${key}\"`);\n                    }\n                    if (!mask[key])\n                        continue;\n                    // if (oldShape[key]!._zod.optin === \"optional\") continue;\n                    shape[key] = Class\n                        ? new Class({\n                            type: \"optional\",\n                            innerType: oldShape[key],\n                        })\n                        : oldShape[key];\n                }\n            }\n            else {\n                for (const key in oldShape) {\n                    // if (oldShape[key]!._zod.optin === \"optional\") continue;\n                    shape[key] = Class\n                        ? new Class({\n                            type: \"optional\",\n                            innerType: oldShape[key],\n                        })\n                        : oldShape[key];\n                }\n            }\n            assignProp(this, \"shape\", shape); // self-caching\n            return shape;\n        },\n        checks: [],\n    });\n    return clone(schema, def);\n}\nexport function required(Class, schema, mask) {\n    const def = mergeDefs(schema._zod.def, {\n        get shape() {\n            const oldShape = schema._zod.def.shape;\n            const shape = { ...oldShape };\n            if (mask) {\n                for (const key in mask) {\n                    if (!(key in shape)) {\n                        throw new Error(`Unrecognized key: \"${key}\"`);\n                    }\n                    if (!mask[key])\n                        continue;\n                    // overwrite with non-optional\n                    shape[key] = new Class({\n                        type: \"nonoptional\",\n                        innerType: oldShape[key],\n                    });\n                }\n            }\n            else {\n                for (const key in oldShape) {\n                    // overwrite with non-optional\n                    shape[key] = new Class({\n                        type: \"nonoptional\",\n                        innerType: oldShape[key],\n                    });\n                }\n            }\n            assignProp(this, \"shape\", shape); // self-caching\n            return shape;\n        },\n        checks: [],\n    });\n    return clone(schema, def);\n}\n// invalid_type | too_big | too_small | invalid_format | not_multiple_of | unrecognized_keys | invalid_union | invalid_key | invalid_element | invalid_value | custom\nexport function aborted(x, startIndex = 0) {\n    if (x.aborted === true)\n        return true;\n    for (let i = startIndex; i < x.issues.length; i++) {\n        if (x.issues[i]?.continue !== true) {\n            return true;\n        }\n    }\n    return false;\n}\nexport function prefixIssues(path, issues) {\n    return issues.map((iss) => {\n        var _a;\n        (_a = iss).path ?? (_a.path = []);\n        iss.path.unshift(path);\n        return iss;\n    });\n}\nexport function unwrapMessage(message) {\n    return typeof message === \"string\" ? message : message?.message;\n}\nexport function finalizeIssue(iss, ctx, config) {\n    const full = { ...iss, path: iss.path ?? [] };\n    // for backwards compatibility\n    if (!iss.message) {\n        const message = unwrapMessage(iss.inst?._zod.def?.error?.(iss)) ??\n            unwrapMessage(ctx?.error?.(iss)) ??\n            unwrapMessage(config.customError?.(iss)) ??\n            unwrapMessage(config.localeError?.(iss)) ??\n            \"Invalid input\";\n        full.message = message;\n    }\n    // delete (full as any).def;\n    delete full.inst;\n    delete full.continue;\n    if (!ctx?.reportInput) {\n        delete full.input;\n    }\n    return full;\n}\nexport function getSizableOrigin(input) {\n    if (input instanceof Set)\n        return \"set\";\n    if (input instanceof Map)\n        return \"map\";\n    // @ts-ignore\n    if (input instanceof File)\n        return \"file\";\n    return \"unknown\";\n}\nexport function getLengthableOrigin(input) {\n    if (Array.isArray(input))\n        return \"array\";\n    if (typeof input === \"string\")\n        return \"string\";\n    return \"unknown\";\n}\nexport function issue(...args) {\n    const [iss, input, inst] = args;\n    if (typeof iss === \"string\") {\n        return {\n            message: iss,\n            code: \"custom\",\n            input,\n            inst,\n        };\n    }\n    return { ...iss };\n}\nexport function cleanEnum(obj) {\n    return Object.entries(obj)\n        .filter(([k, _]) => {\n        // return true if NaN, meaning it's not a number, thus a string key\n        return Number.isNaN(Number.parseInt(k, 10));\n    })\n        .map((el) => el[1]);\n}\n// Codec utility functions\nexport function base64ToUint8Array(base64) {\n    const binaryString = atob(base64);\n    const bytes = new Uint8Array(binaryString.length);\n    for (let i = 0; i < binaryString.length; i++) {\n        bytes[i] = binaryString.charCodeAt(i);\n    }\n    return bytes;\n}\nexport function uint8ArrayToBase64(bytes) {\n    let binaryString = \"\";\n    for (let i = 0; i < bytes.length; i++) {\n        binaryString += String.fromCharCode(bytes[i]);\n    }\n    return btoa(binaryString);\n}\nexport function base64urlToUint8Array(base64url) {\n    const base64 = base64url.replace(/-/g, \"+\").replace(/_/g, \"/\");\n    const padding = \"=\".repeat((4 - (base64.length % 4)) % 4);\n    return base64ToUint8Array(base64 + padding);\n}\nexport function uint8ArrayToBase64url(bytes) {\n    return uint8ArrayToBase64(bytes).replace(/\\+/g, \"-\").replace(/\\//g, \"_\").replace(/=/g, \"\");\n}\nexport function hexToUint8Array(hex) {\n    const cleanHex = hex.replace(/^0x/, \"\");\n    if (cleanHex.length % 2 !== 0) {\n        throw new Error(\"Invalid hex string length\");\n    }\n    const bytes = new Uint8Array(cleanHex.length / 2);\n    for (let i = 0; i < cleanHex.length; i += 2) {\n        bytes[i / 2] = Number.parseInt(cleanHex.slice(i, i + 2), 16);\n    }\n    return bytes;\n}\nexport function uint8ArrayToHex(bytes) {\n    return Array.from(bytes)\n        .map((b) => b.toString(16).padStart(2, \"0\"))\n        .join(\"\");\n}\n// instanceof\nexport class Class {\n    constructor(..._args) { }\n}\n", "import { $constructor } from \"./core.js\";\nimport * as util from \"./util.js\";\nconst initializer = (inst, def) => {\n    inst.name = \"$ZodError\";\n    Object.defineProperty(inst, \"_zod\", {\n        value: inst._zod,\n        enumerable: false,\n    });\n    Object.defineProperty(inst, \"issues\", {\n        value: def,\n        enumerable: false,\n    });\n    inst.message = JSON.stringify(def, util.jsonStringifyReplacer, 2);\n    Object.defineProperty(inst, \"toString\", {\n        value: () => inst.message,\n        enumerable: false,\n    });\n};\nexport const $ZodError = $constructor(\"$ZodError\", initializer);\nexport const $ZodRealError = $constructor(\"$ZodError\", initializer, { Parent: Error });\nexport function flattenError(error, mapper = (issue) => issue.message) {\n    const fieldErrors = {};\n    const formErrors = [];\n    for (const sub of error.issues) {\n        if (sub.path.length > 0) {\n            fieldErrors[sub.path[0]] = fieldErrors[sub.path[0]] || [];\n            fieldErrors[sub.path[0]].push(mapper(sub));\n        }\n        else {\n            formErrors.push(mapper(sub));\n        }\n    }\n    return { formErrors, fieldErrors };\n}\nexport function formatError(error, _mapper) {\n    const mapper = _mapper ||\n        function (issue) {\n            return issue.message;\n        };\n    const fieldErrors = { _errors: [] };\n    const processError = (error) => {\n        for (const issue of error.issues) {\n            if (issue.code === \"invalid_union\" && issue.errors.length) {\n                issue.errors.map((issues) => processError({ issues }));\n            }\n            else if (issue.code === \"invalid_key\") {\n                processError({ issues: issue.issues });\n            }\n            else if (issue.code === \"invalid_element\") {\n                processError({ issues: issue.issues });\n            }\n            else if (issue.path.length === 0) {\n                fieldErrors._errors.push(mapper(issue));\n            }\n            else {\n                let curr = fieldErrors;\n                let i = 0;\n                while (i < issue.path.length) {\n                    const el = issue.path[i];\n                    const terminal = i === issue.path.length - 1;\n                    if (!terminal) {\n                        curr[el] = curr[el] || { _errors: [] };\n                    }\n                    else {\n                        curr[el] = curr[el] || { _errors: [] };\n                        curr[el]._errors.push(mapper(issue));\n                    }\n                    curr = curr[el];\n                    i++;\n                }\n            }\n        }\n    };\n    processError(error);\n    return fieldErrors;\n}\nexport function treeifyError(error, _mapper) {\n    const mapper = _mapper ||\n        function (issue) {\n            return issue.message;\n        };\n    const result = { errors: [] };\n    const processError = (error, path = []) => {\n        var _a, _b;\n        for (const issue of error.issues) {\n            if (issue.code === \"invalid_union\" && issue.errors.length) {\n                // regular union error\n                issue.errors.map((issues) => processError({ issues }, issue.path));\n            }\n            else if (issue.code === \"invalid_key\") {\n                processError({ issues: issue.issues }, issue.path);\n            }\n            else if (issue.code === \"invalid_element\") {\n                processError({ issues: issue.issues }, issue.path);\n            }\n            else {\n                const fullpath = [...path, ...issue.path];\n                if (fullpath.length === 0) {\n                    result.errors.push(mapper(issue));\n                    continue;\n                }\n                let curr = result;\n                let i = 0;\n                while (i < fullpath.length) {\n                    const el = fullpath[i];\n                    const terminal = i === fullpath.length - 1;\n                    if (typeof el === \"string\") {\n                        curr.properties ?? (curr.properties = {});\n                        (_a = curr.properties)[el] ?? (_a[el] = { errors: [] });\n                        curr = curr.properties[el];\n                    }\n                    else {\n                        curr.items ?? (curr.items = []);\n                        (_b = curr.items)[el] ?? (_b[el] = { errors: [] });\n                        curr = curr.items[el];\n                    }\n                    if (terminal) {\n                        curr.errors.push(mapper(issue));\n                    }\n                    i++;\n                }\n            }\n        }\n    };\n    processError(error);\n    return result;\n}\n/** Format a ZodError as a human-readable string in the following form.\n *\n * From\n *\n * ```ts\n * ZodError {\n *   issues: [\n *     {\n *       expected: 'string',\n *       code: 'invalid_type',\n *       path: [ 'username' ],\n *       message: 'Invalid input: expected string'\n *     },\n *     {\n *       expected: 'number',\n *       code: 'invalid_type',\n *       path: [ 'favoriteNumbers', 1 ],\n *       message: 'Invalid input: expected number'\n *     }\n *   ];\n * }\n * ```\n *\n * to\n *\n * ```\n * username\n *   ✖ Expected number, received string at \"username\n * favoriteNumbers[0]\n *   ✖ Invalid input: expected number\n * ```\n */\nexport function toDotPath(_path) {\n    const segs = [];\n    const path = _path.map((seg) => (typeof seg === \"object\" ? seg.key : seg));\n    for (const seg of path) {\n        if (typeof seg === \"number\")\n            segs.push(`[${seg}]`);\n        else if (typeof seg === \"symbol\")\n            segs.push(`[${JSON.stringify(String(seg))}]`);\n        else if (/[^\\w$]/.test(seg))\n            segs.push(`[${JSON.stringify(seg)}]`);\n        else {\n            if (segs.length)\n                segs.push(\".\");\n            segs.push(seg);\n        }\n    }\n    return segs.join(\"\");\n}\nexport function prettifyError(error) {\n    const lines = [];\n    // sort by path length\n    const issues = [...error.issues].sort((a, b) => (a.path ?? []).length - (b.path ?? []).length);\n    // Process each issue\n    for (const issue of issues) {\n        lines.push(`✖ ${issue.message}`);\n        if (issue.path?.length)\n            lines.push(`  → at ${toDotPath(issue.path)}`);\n    }\n    // Convert Map to formatted string\n    return lines.join(\"\\n\");\n}\n", "import * as core from \"./core.js\";\nimport * as errors from \"./errors.js\";\nimport * as util from \"./util.js\";\nexport const _parse = (_Err) => (schema, value, _ctx, _params) => {\n    const ctx = _ctx ? Object.assign(_ctx, { async: false }) : { async: false };\n    const result = schema._zod.run({ value, issues: [] }, ctx);\n    if (result instanceof Promise) {\n        throw new core.$ZodAsyncError();\n    }\n    if (result.issues.length) {\n        const e = new (_params?.Err ?? _Err)(result.issues.map((iss) => util.finalizeIssue(iss, ctx, core.config())));\n        util.captureStackTrace(e, _params?.callee);\n        throw e;\n    }\n    return result.value;\n};\nexport const parse = /* @__PURE__*/ _parse(errors.$ZodRealError);\nexport const _parseAsync = (_Err) => async (schema, value, _ctx, params) => {\n    const ctx = _ctx ? Object.assign(_ctx, { async: true }) : { async: true };\n    let result = schema._zod.run({ value, issues: [] }, ctx);\n    if (result instanceof Promise)\n        result = await result;\n    if (result.issues.length) {\n        const e = new (params?.Err ?? _Err)(result.issues.map((iss) => util.finalizeIssue(iss, ctx, core.config())));\n        util.captureStackTrace(e, params?.callee);\n        throw e;\n    }\n    return result.value;\n};\nexport const parseAsync = /* @__PURE__*/ _parseAsync(errors.$ZodRealError);\nexport const _safeParse = (_Err) => (schema, value, _ctx) => {\n    const ctx = _ctx ? { ..._ctx, async: false } : { async: false };\n    const result = schema._zod.run({ value, issues: [] }, ctx);\n    if (result instanceof Promise) {\n        throw new core.$ZodAsyncError();\n    }\n    return result.issues.length\n        ? {\n            success: false,\n            error: new (_Err ?? errors.$ZodError)(result.issues.map((iss) => util.finalizeIssue(iss, ctx, core.config()))),\n        }\n        : { success: true, data: result.value };\n};\nexport const safeParse = /* @__PURE__*/ _safeParse(errors.$ZodRealError);\nexport const _safeParseAsync = (_Err) => async (schema, value, _ctx) => {\n    const ctx = _ctx ? Object.assign(_ctx, { async: true }) : { async: true };\n    let result = schema._zod.run({ value, issues: [] }, ctx);\n    if (result instanceof Promise)\n        result = await result;\n    return result.issues.length\n        ? {\n            success: false,\n            error: new _Err(result.issues.map((iss) => util.finalizeIssue(iss, ctx, core.config()))),\n        }\n        : { success: true, data: result.value };\n};\nexport const safeParseAsync = /* @__PURE__*/ _safeParseAsync(errors.$ZodRealError);\nexport const _encode = (_Err) => (schema, value, _ctx) => {\n    const ctx = _ctx ? Object.assign(_ctx, { direction: \"backward\" }) : { direction: \"backward\" };\n    return _parse(_Err)(schema, value, ctx);\n};\nexport const encode = /* @__PURE__*/ _encode(errors.$ZodRealError);\nexport const _decode = (_Err) => (schema, value, _ctx) => {\n    return _parse(_Err)(schema, value, _ctx);\n};\nexport const decode = /* @__PURE__*/ _decode(errors.$ZodRealError);\nexport const _encodeAsync = (_Err) => async (schema, value, _ctx) => {\n    const ctx = _ctx ? Object.assign(_ctx, { direction: \"backward\" }) : { direction: \"backward\" };\n    return _parseAsync(_Err)(schema, value, ctx);\n};\nexport const encodeAsync = /* @__PURE__*/ _encodeAsync(errors.$ZodRealError);\nexport const _decodeAsync = (_Err) => async (schema, value, _ctx) => {\n    return _parseAsync(_Err)(schema, value, _ctx);\n};\nexport const decodeAsync = /* @__PURE__*/ _decodeAsync(errors.$ZodRealError);\nexport const _safeEncode = (_Err) => (schema, value, _ctx) => {\n    const ctx = _ctx ? Object.assign(_ctx, { direction: \"backward\" }) : { direction: \"backward\" };\n    return _safeParse(_Err)(schema, value, ctx);\n};\nexport const safeEncode = /* @__PURE__*/ _safeEncode(errors.$ZodRealError);\nexport const _safeDecode = (_Err) => (schema, value, _ctx) => {\n    return _safeParse(_Err)(schema, value, _ctx);\n};\nexport const safeDecode = /* @__PURE__*/ _safeDecode(errors.$ZodRealError);\nexport const _safeEncodeAsync = (_Err) => async (schema, value, _ctx) => {\n    const ctx = _ctx ? Object.assign(_ctx, { direction: \"backward\" }) : { direction: \"backward\" };\n    return _safeParseAsync(_Err)(schema, value, ctx);\n};\nexport const safeEncodeAsync = /* @__PURE__*/ _safeEncodeAsync(errors.$ZodRealError);\nexport const _safeDecodeAsync = (_Err) => async (schema, value, _ctx) => {\n    return _safeParseAsync(_Err)(schema, value, _ctx);\n};\nexport const safeDecodeAsync = /* @__PURE__*/ _safeDecodeAsync(errors.$ZodRealError);\n", "export const cuid = /^[cC][^\\s-]{8,}$/;\nexport const cuid2 = /^[0-9a-z]+$/;\nexport const ulid = /^[0-9A-HJKMNP-TV-Za-hjkmnp-tv-z]{26}$/;\nexport const xid = /^[0-9a-vA-V]{20}$/;\nexport const ksuid = /^[A-Za-z0-9]{27}$/;\nexport const nanoid = /^[a-zA-Z0-9_-]{21}$/;\n/** ISO 8601-1 duration regex. Does not support the 8601-2 extensions like negative durations or fractional/negative components. */\nexport const duration = /^P(?:(\\d+W)|(?!.*W)(?=\\d|T\\d)(\\d+Y)?(\\d+M)?(\\d+D)?(T(?=\\d)(\\d+H)?(\\d+M)?(\\d+([.,]\\d+)?S)?)?)$/;\n/** Implements ISO 8601-2 extensions like explicit +- prefixes, mixing weeks with other units, and fractional/negative components. */\nexport const 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)?)??$/;\n/** A regex for any UUID-like identifier: 8-4-4-4-12 hex pattern */\nexport const 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})$/;\n/** Returns a regex for validating an RFC 9562/4122 UUID.\n *\n * @param version Optionally specify a version 1-8. If no version is specified, all versions are supported. */\nexport const uuid = (version) => {\n    if (!version)\n        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)$/;\n    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})$`);\n};\nexport const uuid4 = /*@__PURE__*/ uuid(4);\nexport const uuid6 = /*@__PURE__*/ uuid(6);\nexport const uuid7 = /*@__PURE__*/ uuid(7);\n/** Practical email validation */\nexport const email = /^(?!\\.)(?!.*\\.\\.)([A-Za-z0-9_'+\\-\\.]*)[A-Za-z0-9_+-]@([A-Za-z0-9][A-Za-z0-9\\-]*\\.)+[A-Za-z]{2,}$/;\n/** Equivalent to the HTML5 input[type=email] validation implemented by browsers. Source: https://developer.mozilla.org/en-US/docs/Web/HTML/Element/input/email */\nexport const 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])?)*$/;\n/** The classic emailregex.com regex for RFC 5322-compliant emails */\nexport const 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,}))$/;\n/** A loose regex that allows Unicode characters, enforces length limits, and that's about it. */\nexport const unicodeEmail = /^[^\\s@\"]{1,64}@[^\\s@]{1,255}$/u;\nexport const idnEmail = unicodeEmail;\nexport const 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])?)*$/;\n// from https://thekevinscott.com/emojis-in-javascript/#writing-a-regular-expression\nconst _emoji = `^(\\\\p{Extended_Pictographic}|\\\\p{Emoji_Component})+$`;\nexport function emoji() {\n    return new RegExp(_emoji, \"u\");\n}\nexport const 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])$/;\nexport const 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}|:))$/;\nexport const 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])$/;\nexport const cidrv6 = /^(([0-9a-fA-F]{1,4}:){7}[0-9a-fA-F]{1,4}|::|([0-9a-fA-F]{1,4})?::([0-9a-fA-F]{1,4}:?){0,6})\\/(12[0-8]|1[01][0-9]|[1-9]?[0-9])$/;\n// https://stackoverflow.com/questions/7860392/determine-if-string-is-in-base64-using-javascript\nexport const base64 = /^$|^(?:[0-9a-zA-Z+/]{4})*(?:(?:[0-9a-zA-Z+/]{2}==)|(?:[0-9a-zA-Z+/]{3}=))?$/;\nexport const base64url = /^[A-Za-z0-9_-]*$/;\n// based on https://stackoverflow.com/questions/106179/regular-expression-to-match-dns-hostname-or-ip-address\n// export const hostname: RegExp = /^([a-zA-Z0-9-]+\\.)*[a-zA-Z0-9-]+$/;\nexport const hostname = /^(?=.{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])?)*\\.?$/;\nexport const domain = /^([a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?\\.)+[a-zA-Z]{2,}$/;\n// https://blog.stevenlevithan.com/archives/validate-phone-number#r4-3 (regex sans spaces)\nexport const e164 = /^\\+(?:[0-9]){6,14}[0-9]$/;\n// const 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])))`;\nconst 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])))`;\nexport const date = /*@__PURE__*/ new RegExp(`^${dateSource}$`);\nfunction timeSource(args) {\n    const hhmm = `(?:[01]\\\\d|2[0-3]):[0-5]\\\\d`;\n    const regex = typeof args.precision === \"number\"\n        ? args.precision === -1\n            ? `${hhmm}`\n            : args.precision === 0\n                ? `${hhmm}:[0-5]\\\\d`\n                : `${hhmm}:[0-5]\\\\d\\\\.\\\\d{${args.precision}}`\n        : `${hhmm}(?::[0-5]\\\\d(?:\\\\.\\\\d+)?)?`;\n    return regex;\n}\nexport function time(args) {\n    return new RegExp(`^${timeSource(args)}$`);\n}\n// Adapted from https://stackoverflow.com/a/3143231\nexport function datetime(args) {\n    const time = timeSource({ precision: args.precision });\n    const opts = [\"Z\"];\n    if (args.local)\n        opts.push(\"\");\n    // if (args.offset) opts.push(`([+-]\\\\d{2}:\\\\d{2})`);\n    if (args.offset)\n        opts.push(`([+-](?:[01]\\\\d|2[0-3]):[0-5]\\\\d)`);\n    const timeRegex = `${time}(?:${opts.join(\"|\")})`;\n    return new RegExp(`^${dateSource}T(?:${timeRegex})$`);\n}\nexport const string = (params) => {\n    const regex = params ? `[\\\\s\\\\S]{${params?.minimum ?? 0},${params?.maximum ?? \"\"}}` : `[\\\\s\\\\S]*`;\n    return new RegExp(`^${regex}$`);\n};\nexport const bigint = /^-?\\d+n?$/;\nexport const integer = /^-?\\d+$/;\nexport const number = /^-?\\d+(?:\\.\\d+)?/;\nexport const boolean = /^(?:true|false)$/i;\nconst _null = /^null$/i;\nexport { _null as null };\nconst _undefined = /^undefined$/i;\nexport { _undefined as undefined };\n// regex for string with no uppercase letters\nexport const lowercase = /^[^A-Z]*$/;\n// regex for string with no lowercase letters\nexport const uppercase = /^[^a-z]*$/;\n// regex for hexadecimal strings (any length)\nexport const hex = /^[0-9a-fA-F]*$/;\n// Hash regexes for different algorithms and encodings\n// Helper function to create base64 regex with exact length and padding\nfunction fixedBase64(bodyLength, padding) {\n    return new RegExp(`^[A-Za-z0-9+/]{${bodyLength}}${padding}$`);\n}\n// Helper function to create base64url regex with exact length (no padding)\nfunction fixedBase64url(length) {\n    return new RegExp(`^[A-Za-z0-9_-]{${length}}$`);\n}\n// MD5 (16 bytes): base64 = 24 chars total (22 + \"==\")\nexport const md5_hex = /^[0-9a-fA-F]{32}$/;\nexport const md5_base64 = /*@__PURE__*/ fixedBase64(22, \"==\");\nexport const md5_base64url = /*@__PURE__*/ fixedBase64url(22);\n// SHA1 (20 bytes): base64 = 28 chars total (27 + \"=\")\nexport const sha1_hex = /^[0-9a-fA-F]{40}$/;\nexport const sha1_base64 = /*@__PURE__*/ fixedBase64(27, \"=\");\nexport const sha1_base64url = /*@__PURE__*/ fixedBase64url(27);\n// SHA256 (32 bytes): base64 = 44 chars total (43 + \"=\")\nexport const sha256_hex = /^[0-9a-fA-F]{64}$/;\nexport const sha256_base64 = /*@__PURE__*/ fixedBase64(43, \"=\");\nexport const sha256_base64url = /*@__PURE__*/ fixedBase64url(43);\n// SHA384 (48 bytes): base64 = 64 chars total (no padding)\nexport const sha384_hex = /^[0-9a-fA-F]{96}$/;\nexport const sha384_base64 = /*@__PURE__*/ fixedBase64(64, \"\");\nexport const sha384_base64url = /*@__PURE__*/ fixedBase64url(64);\n// SHA512 (64 bytes): base64 = 88 chars total (86 + \"==\")\nexport const sha512_hex = /^[0-9a-fA-F]{128}$/;\nexport const sha512_base64 = /*@__PURE__*/ fixedBase64(86, \"==\");\nexport const sha512_base64url = /*@__PURE__*/ fixedBase64url(86);\n", "// import { $ZodType } from \"./schemas.js\";\nimport * as core from \"./core.js\";\nimport * as regexes from \"./regexes.js\";\nimport * as util from \"./util.js\";\nexport const $ZodCheck = /*@__PURE__*/ core.$constructor(\"$ZodCheck\", (inst, def) => {\n    var _a;\n    inst._zod ?? (inst._zod = {});\n    inst._zod.def = def;\n    (_a = inst._zod).onattach ?? (_a.onattach = []);\n});\nconst numericOriginMap = {\n    number: \"number\",\n    bigint: \"bigint\",\n    object: \"date\",\n};\nexport const $ZodCheckLessThan = /*@__PURE__*/ core.$constructor(\"$ZodCheckLessThan\", (inst, def) => {\n    $ZodCheck.init(inst, def);\n    const origin = numericOriginMap[typeof def.value];\n    inst._zod.onattach.push((inst) => {\n        const bag = inst._zod.bag;\n        const curr = (def.inclusive ? bag.maximum : bag.exclusiveMaximum) ?? Number.POSITIVE_INFINITY;\n        if (def.value < curr) {\n            if (def.inclusive)\n                bag.maximum = def.value;\n            else\n                bag.exclusiveMaximum = def.value;\n        }\n    });\n    inst._zod.check = (payload) => {\n        if (def.inclusive ? payload.value <= def.value : payload.value < def.value) {\n            return;\n        }\n        payload.issues.push({\n            origin,\n            code: \"too_big\",\n            maximum: def.value,\n            input: payload.value,\n            inclusive: def.inclusive,\n            inst,\n            continue: !def.abort,\n        });\n    };\n});\nexport const $ZodCheckGreaterThan = /*@__PURE__*/ core.$constructor(\"$ZodCheckGreaterThan\", (inst, def) => {\n    $ZodCheck.init(inst, def);\n    const origin = numericOriginMap[typeof def.value];\n    inst._zod.onattach.push((inst) => {\n        const bag = inst._zod.bag;\n        const curr = (def.inclusive ? bag.minimum : bag.exclusiveMinimum) ?? Number.NEGATIVE_INFINITY;\n        if (def.value > curr) {\n            if (def.inclusive)\n                bag.minimum = def.value;\n            else\n                bag.exclusiveMinimum = def.value;\n        }\n    });\n    inst._zod.check = (payload) => {\n        if (def.inclusive ? payload.value >= def.value : payload.value > def.value) {\n            return;\n        }\n        payload.issues.push({\n            origin,\n            code: \"too_small\",\n            minimum: def.value,\n            input: payload.value,\n            inclusive: def.inclusive,\n            inst,\n            continue: !def.abort,\n        });\n    };\n});\nexport const $ZodCheckMultipleOf = \n/*@__PURE__*/ core.$constructor(\"$ZodCheckMultipleOf\", (inst, def) => {\n    $ZodCheck.init(inst, def);\n    inst._zod.onattach.push((inst) => {\n        var _a;\n        (_a = inst._zod.bag).multipleOf ?? (_a.multipleOf = def.value);\n    });\n    inst._zod.check = (payload) => {\n        if (typeof payload.value !== typeof def.value)\n            throw new Error(\"Cannot mix number and bigint in multiple_of check.\");\n        const isMultiple = typeof payload.value === \"bigint\"\n            ? payload.value % def.value === BigInt(0)\n            : util.floatSafeRemainder(payload.value, def.value) === 0;\n        if (isMultiple)\n            return;\n        payload.issues.push({\n            origin: typeof payload.value,\n            code: \"not_multiple_of\",\n            divisor: def.value,\n            input: payload.value,\n            inst,\n            continue: !def.abort,\n        });\n    };\n});\nexport const $ZodCheckNumberFormat = /*@__PURE__*/ core.$constructor(\"$ZodCheckNumberFormat\", (inst, def) => {\n    $ZodCheck.init(inst, def); // no format checks\n    def.format = def.format || \"float64\";\n    const isInt = def.format?.includes(\"int\");\n    const origin = isInt ? \"int\" : \"number\";\n    const [minimum, maximum] = util.NUMBER_FORMAT_RANGES[def.format];\n    inst._zod.onattach.push((inst) => {\n        const bag = inst._zod.bag;\n        bag.format = def.format;\n        bag.minimum = minimum;\n        bag.maximum = maximum;\n        if (isInt)\n            bag.pattern = regexes.integer;\n    });\n    inst._zod.check = (payload) => {\n        const input = payload.value;\n        if (isInt) {\n            if (!Number.isInteger(input)) {\n                // invalid_format issue\n                // payload.issues.push({\n                //   expected: def.format,\n                //   format: def.format,\n                //   code: \"invalid_format\",\n                //   input,\n                //   inst,\n                // });\n                // invalid_type issue\n                payload.issues.push({\n                    expected: origin,\n                    format: def.format,\n                    code: \"invalid_type\",\n                    continue: false,\n                    input,\n                    inst,\n                });\n                return;\n                // not_multiple_of issue\n                // payload.issues.push({\n                //   code: \"not_multiple_of\",\n                //   origin: \"number\",\n                //   input,\n                //   inst,\n                //   divisor: 1,\n                // });\n            }\n            if (!Number.isSafeInteger(input)) {\n                if (input > 0) {\n                    // too_big\n                    payload.issues.push({\n                        input,\n                        code: \"too_big\",\n                        maximum: Number.MAX_SAFE_INTEGER,\n                        note: \"Integers must be within the safe integer range.\",\n                        inst,\n                        origin,\n                        continue: !def.abort,\n                    });\n                }\n                else {\n                    // too_small\n                    payload.issues.push({\n                        input,\n                        code: \"too_small\",\n                        minimum: Number.MIN_SAFE_INTEGER,\n                        note: \"Integers must be within the safe integer range.\",\n                        inst,\n                        origin,\n                        continue: !def.abort,\n                    });\n                }\n                return;\n            }\n        }\n        if (input < minimum) {\n            payload.issues.push({\n                origin: \"number\",\n                input,\n                code: \"too_small\",\n                minimum,\n                inclusive: true,\n                inst,\n                continue: !def.abort,\n            });\n        }\n        if (input > maximum) {\n            payload.issues.push({\n                origin: \"number\",\n                input,\n                code: \"too_big\",\n                maximum,\n                inst,\n            });\n        }\n    };\n});\nexport const $ZodCheckBigIntFormat = /*@__PURE__*/ core.$constructor(\"$ZodCheckBigIntFormat\", (inst, def) => {\n    $ZodCheck.init(inst, def); // no format checks\n    const [minimum, maximum] = util.BIGINT_FORMAT_RANGES[def.format];\n    inst._zod.onattach.push((inst) => {\n        const bag = inst._zod.bag;\n        bag.format = def.format;\n        bag.minimum = minimum;\n        bag.maximum = maximum;\n    });\n    inst._zod.check = (payload) => {\n        const input = payload.value;\n        if (input < minimum) {\n            payload.issues.push({\n                origin: \"bigint\",\n                input,\n                code: \"too_small\",\n                minimum: minimum,\n                inclusive: true,\n                inst,\n                continue: !def.abort,\n            });\n        }\n        if (input > maximum) {\n            payload.issues.push({\n                origin: \"bigint\",\n                input,\n                code: \"too_big\",\n                maximum,\n                inst,\n            });\n        }\n    };\n});\nexport const $ZodCheckMaxSize = /*@__PURE__*/ core.$constructor(\"$ZodCheckMaxSize\", (inst, def) => {\n    var _a;\n    $ZodCheck.init(inst, def);\n    (_a = inst._zod.def).when ?? (_a.when = (payload) => {\n        const val = payload.value;\n        return !util.nullish(val) && val.size !== undefined;\n    });\n    inst._zod.onattach.push((inst) => {\n        const curr = (inst._zod.bag.maximum ?? Number.POSITIVE_INFINITY);\n        if (def.maximum < curr)\n            inst._zod.bag.maximum = def.maximum;\n    });\n    inst._zod.check = (payload) => {\n        const input = payload.value;\n        const size = input.size;\n        if (size <= def.maximum)\n            return;\n        payload.issues.push({\n            origin: util.getSizableOrigin(input),\n            code: \"too_big\",\n            maximum: def.maximum,\n            inclusive: true,\n            input,\n            inst,\n            continue: !def.abort,\n        });\n    };\n});\nexport const $ZodCheckMinSize = /*@__PURE__*/ core.$constructor(\"$ZodCheckMinSize\", (inst, def) => {\n    var _a;\n    $ZodCheck.init(inst, def);\n    (_a = inst._zod.def).when ?? (_a.when = (payload) => {\n        const val = payload.value;\n        return !util.nullish(val) && val.size !== undefined;\n    });\n    inst._zod.onattach.push((inst) => {\n        const curr = (inst._zod.bag.minimum ?? Number.NEGATIVE_INFINITY);\n        if (def.minimum > curr)\n            inst._zod.bag.minimum = def.minimum;\n    });\n    inst._zod.check = (payload) => {\n        const input = payload.value;\n        const size = input.size;\n        if (size >= def.minimum)\n            return;\n        payload.issues.push({\n            origin: util.getSizableOrigin(input),\n            code: \"too_small\",\n            minimum: def.minimum,\n            inclusive: true,\n            input,\n            inst,\n            continue: !def.abort,\n        });\n    };\n});\nexport const $ZodCheckSizeEquals = /*@__PURE__*/ core.$constructor(\"$ZodCheckSizeEquals\", (inst, def) => {\n    var _a;\n    $ZodCheck.init(inst, def);\n    (_a = inst._zod.def).when ?? (_a.when = (payload) => {\n        const val = payload.value;\n        return !util.nullish(val) && val.size !== undefined;\n    });\n    inst._zod.onattach.push((inst) => {\n        const bag = inst._zod.bag;\n        bag.minimum = def.size;\n        bag.maximum = def.size;\n        bag.size = def.size;\n    });\n    inst._zod.check = (payload) => {\n        const input = payload.value;\n        const size = input.size;\n        if (size === def.size)\n            return;\n        const tooBig = size > def.size;\n        payload.issues.push({\n            origin: util.getSizableOrigin(input),\n            ...(tooBig ? { code: \"too_big\", maximum: def.size } : { code: \"too_small\", minimum: def.size }),\n            inclusive: true,\n            exact: true,\n            input: payload.value,\n            inst,\n            continue: !def.abort,\n        });\n    };\n});\nexport const $ZodCheckMaxLength = /*@__PURE__*/ core.$constructor(\"$ZodCheckMaxLength\", (inst, def) => {\n    var _a;\n    $ZodCheck.init(inst, def);\n    (_a = inst._zod.def).when ?? (_a.when = (payload) => {\n        const val = payload.value;\n        return !util.nullish(val) && val.length !== undefined;\n    });\n    inst._zod.onattach.push((inst) => {\n        const curr = (inst._zod.bag.maximum ?? Number.POSITIVE_INFINITY);\n        if (def.maximum < curr)\n            inst._zod.bag.maximum = def.maximum;\n    });\n    inst._zod.check = (payload) => {\n        const input = payload.value;\n        const length = input.length;\n        if (length <= def.maximum)\n            return;\n        const origin = util.getLengthableOrigin(input);\n        payload.issues.push({\n            origin,\n            code: \"too_big\",\n            maximum: def.maximum,\n            inclusive: true,\n            input,\n            inst,\n            continue: !def.abort,\n        });\n    };\n});\nexport const $ZodCheckMinLength = /*@__PURE__*/ core.$constructor(\"$ZodCheckMinLength\", (inst, def) => {\n    var _a;\n    $ZodCheck.init(inst, def);\n    (_a = inst._zod.def).when ?? (_a.when = (payload) => {\n        const val = payload.value;\n        return !util.nullish(val) && val.length !== undefined;\n    });\n    inst._zod.onattach.push((inst) => {\n        const curr = (inst._zod.bag.minimum ?? Number.NEGATIVE_INFINITY);\n        if (def.minimum > curr)\n            inst._zod.bag.minimum = def.minimum;\n    });\n    inst._zod.check = (payload) => {\n        const input = payload.value;\n        const length = input.length;\n        if (length >= def.minimum)\n            return;\n        const origin = util.getLengthableOrigin(input);\n        payload.issues.push({\n            origin,\n            code: \"too_small\",\n            minimum: def.minimum,\n            inclusive: true,\n            input,\n            inst,\n            continue: !def.abort,\n        });\n    };\n});\nexport const $ZodCheckLengthEquals = /*@__PURE__*/ core.$constructor(\"$ZodCheckLengthEquals\", (inst, def) => {\n    var _a;\n    $ZodCheck.init(inst, def);\n    (_a = inst._zod.def).when ?? (_a.when = (payload) => {\n        const val = payload.value;\n        return !util.nullish(val) && val.length !== undefined;\n    });\n    inst._zod.onattach.push((inst) => {\n        const bag = inst._zod.bag;\n        bag.minimum = def.length;\n        bag.maximum = def.length;\n        bag.length = def.length;\n    });\n    inst._zod.check = (payload) => {\n        const input = payload.value;\n        const length = input.length;\n        if (length === def.length)\n            return;\n        const origin = util.getLengthableOrigin(input);\n        const tooBig = length > def.length;\n        payload.issues.push({\n            origin,\n            ...(tooBig ? { code: \"too_big\", maximum: def.length } : { code: \"too_small\", minimum: def.length }),\n            inclusive: true,\n            exact: true,\n            input: payload.value,\n            inst,\n            continue: !def.abort,\n        });\n    };\n});\nexport const $ZodCheckStringFormat = /*@__PURE__*/ core.$constructor(\"$ZodCheckStringFormat\", (inst, def) => {\n    var _a, _b;\n    $ZodCheck.init(inst, def);\n    inst._zod.onattach.push((inst) => {\n        const bag = inst._zod.bag;\n        bag.format = def.format;\n        if (def.pattern) {\n            bag.patterns ?? (bag.patterns = new Set());\n            bag.patterns.add(def.pattern);\n        }\n    });\n    if (def.pattern)\n        (_a = inst._zod).check ?? (_a.check = (payload) => {\n            def.pattern.lastIndex = 0;\n            if (def.pattern.test(payload.value))\n                return;\n            payload.issues.push({\n                origin: \"string\",\n                code: \"invalid_format\",\n                format: def.format,\n                input: payload.value,\n                ...(def.pattern ? { pattern: def.pattern.toString() } : {}),\n                inst,\n                continue: !def.abort,\n            });\n        });\n    else\n        (_b = inst._zod).check ?? (_b.check = () => { });\n});\nexport const $ZodCheckRegex = /*@__PURE__*/ core.$constructor(\"$ZodCheckRegex\", (inst, def) => {\n    $ZodCheckStringFormat.init(inst, def);\n    inst._zod.check = (payload) => {\n        def.pattern.lastIndex = 0;\n        if (def.pattern.test(payload.value))\n            return;\n        payload.issues.push({\n            origin: \"string\",\n            code: \"invalid_format\",\n            format: \"regex\",\n            input: payload.value,\n            pattern: def.pattern.toString(),\n            inst,\n            continue: !def.abort,\n        });\n    };\n});\nexport const $ZodCheckLowerCase = /*@__PURE__*/ core.$constructor(\"$ZodCheckLowerCase\", (inst, def) => {\n    def.pattern ?? (def.pattern = regexes.lowercase);\n    $ZodCheckStringFormat.init(inst, def);\n});\nexport const $ZodCheckUpperCase = /*@__PURE__*/ core.$constructor(\"$ZodCheckUpperCase\", (inst, def) => {\n    def.pattern ?? (def.pattern = regexes.uppercase);\n    $ZodCheckStringFormat.init(inst, def);\n});\nexport const $ZodCheckIncludes = /*@__PURE__*/ core.$constructor(\"$ZodCheckIncludes\", (inst, def) => {\n    $ZodCheck.init(inst, def);\n    const escapedRegex = util.escapeRegex(def.includes);\n    const pattern = new RegExp(typeof def.position === \"number\" ? `^.{${def.position}}${escapedRegex}` : escapedRegex);\n    def.pattern = pattern;\n    inst._zod.onattach.push((inst) => {\n        const bag = inst._zod.bag;\n        bag.patterns ?? (bag.patterns = new Set());\n        bag.patterns.add(pattern);\n    });\n    inst._zod.check = (payload) => {\n        if (payload.value.includes(def.includes, def.position))\n            return;\n        payload.issues.push({\n            origin: \"string\",\n            code: \"invalid_format\",\n            format: \"includes\",\n            includes: def.includes,\n            input: payload.value,\n            inst,\n            continue: !def.abort,\n        });\n    };\n});\nexport const $ZodCheckStartsWith = /*@__PURE__*/ core.$constructor(\"$ZodCheckStartsWith\", (inst, def) => {\n    $ZodCheck.init(inst, def);\n    const pattern = new RegExp(`^${util.escapeRegex(def.prefix)}.*`);\n    def.pattern ?? (def.pattern = pattern);\n    inst._zod.onattach.push((inst) => {\n        const bag = inst._zod.bag;\n        bag.patterns ?? (bag.patterns = new Set());\n        bag.patterns.add(pattern);\n    });\n    inst._zod.check = (payload) => {\n        if (payload.value.startsWith(def.prefix))\n            return;\n        payload.issues.push({\n            origin: \"string\",\n            code: \"invalid_format\",\n            format: \"starts_with\",\n            prefix: def.prefix,\n            input: payload.value,\n            inst,\n            continue: !def.abort,\n        });\n    };\n});\nexport const $ZodCheckEndsWith = /*@__PURE__*/ core.$constructor(\"$ZodCheckEndsWith\", (inst, def) => {\n    $ZodCheck.init(inst, def);\n    const pattern = new RegExp(`.*${util.escapeRegex(def.suffix)}$`);\n    def.pattern ?? (def.pattern = pattern);\n    inst._zod.onattach.push((inst) => {\n        const bag = inst._zod.bag;\n        bag.patterns ?? (bag.patterns = new Set());\n        bag.patterns.add(pattern);\n    });\n    inst._zod.check = (payload) => {\n        if (payload.value.endsWith(def.suffix))\n            return;\n        payload.issues.push({\n            origin: \"string\",\n            code: \"invalid_format\",\n            format: \"ends_with\",\n            suffix: def.suffix,\n            input: payload.value,\n            inst,\n            continue: !def.abort,\n        });\n    };\n});\n///////////////////////////////////\n/////    $ZodCheckProperty    /////\n///////////////////////////////////\nfunction handleCheckPropertyResult(result, payload, property) {\n    if (result.issues.length) {\n        payload.issues.push(...util.prefixIssues(property, result.issues));\n    }\n}\nexport const $ZodCheckProperty = /*@__PURE__*/ core.$constructor(\"$ZodCheckProperty\", (inst, def) => {\n    $ZodCheck.init(inst, def);\n    inst._zod.check = (payload) => {\n        const result = def.schema._zod.run({\n            value: payload.value[def.property],\n            issues: [],\n        }, {});\n        if (result instanceof Promise) {\n            return result.then((result) => handleCheckPropertyResult(result, payload, def.property));\n        }\n        handleCheckPropertyResult(result, payload, def.property);\n        return;\n    };\n});\nexport const $ZodCheckMimeType = /*@__PURE__*/ core.$constructor(\"$ZodCheckMimeType\", (inst, def) => {\n    $ZodCheck.init(inst, def);\n    const mimeSet = new Set(def.mime);\n    inst._zod.onattach.push((inst) => {\n        inst._zod.bag.mime = def.mime;\n    });\n    inst._zod.check = (payload) => {\n        if (mimeSet.has(payload.value.type))\n            return;\n        payload.issues.push({\n            code: \"invalid_value\",\n            values: def.mime,\n            input: payload.value.type,\n            inst,\n            continue: !def.abort,\n        });\n    };\n});\nexport const $ZodCheckOverwrite = /*@__PURE__*/ core.$constructor(\"$ZodCheckOverwrite\", (inst, def) => {\n    $ZodCheck.init(inst, def);\n    inst._zod.check = (payload) => {\n        payload.value = def.tx(payload.value);\n    };\n});\n", "export class Doc {\n    constructor(args = []) {\n        this.content = [];\n        this.indent = 0;\n        if (this)\n            this.args = args;\n    }\n    indented(fn) {\n        this.indent += 1;\n        fn(this);\n        this.indent -= 1;\n    }\n    write(arg) {\n        if (typeof arg === \"function\") {\n            arg(this, { execution: \"sync\" });\n            arg(this, { execution: \"async\" });\n            return;\n        }\n        const content = arg;\n        const lines = content.split(\"\\n\").filter((x) => x);\n        const minIndent = Math.min(...lines.map((x) => x.length - x.trimStart().length));\n        const dedented = lines.map((x) => x.slice(minIndent)).map((x) => \" \".repeat(this.indent * 2) + x);\n        for (const line of dedented) {\n            this.content.push(line);\n        }\n    }\n    compile() {\n        const F = Function;\n        const args = this?.args;\n        const content = this?.content ?? [``];\n        const lines = [...content.map((x) => `  ${x}`)];\n        // console.log(lines.join(\"\\n\"));\n        return new F(...args, lines.join(\"\\n\"));\n    }\n}\n", "export const version = {\n    major: 4,\n    minor: 1,\n    patch: 11,\n};\n", "import * as checks from \"./checks.js\";\nimport * as core from \"./core.js\";\nimport { Doc } from \"./doc.js\";\nimport { parse, parseAsync, safeParse, safeParseAsync } from \"./parse.js\";\nimport * as regexes from \"./regexes.js\";\nimport * as util from \"./util.js\";\nimport { version } from \"./versions.js\";\nexport const $ZodType = /*@__PURE__*/ core.$constructor(\"$ZodType\", (inst, def) => {\n    var _a;\n    inst ?? (inst = {});\n    inst._zod.def = def; // set _def property\n    inst._zod.bag = inst._zod.bag || {}; // initialize _bag object\n    inst._zod.version = version;\n    const checks = [...(inst._zod.def.checks ?? [])];\n    // if inst is itself a checks.$ZodCheck, run it as a check\n    if (inst._zod.traits.has(\"$ZodCheck\")) {\n        checks.unshift(inst);\n    }\n    for (const ch of checks) {\n        for (const fn of ch._zod.onattach) {\n            fn(inst);\n        }\n    }\n    if (checks.length === 0) {\n        // deferred initializer\n        // inst._zod.parse is not yet defined\n        (_a = inst._zod).deferred ?? (_a.deferred = []);\n        inst._zod.deferred?.push(() => {\n            inst._zod.run = inst._zod.parse;\n        });\n    }\n    else {\n        const runChecks = (payload, checks, ctx) => {\n            let isAborted = util.aborted(payload);\n            let asyncResult;\n            for (const ch of checks) {\n                if (ch._zod.def.when) {\n                    const shouldRun = ch._zod.def.when(payload);\n                    if (!shouldRun)\n                        continue;\n                }\n                else if (isAborted) {\n                    continue;\n                }\n                const currLen = payload.issues.length;\n                const _ = ch._zod.check(payload);\n                if (_ instanceof Promise && ctx?.async === false) {\n                    throw new core.$ZodAsyncError();\n                }\n                if (asyncResult || _ instanceof Promise) {\n                    asyncResult = (asyncResult ?? Promise.resolve()).then(async () => {\n                        await _;\n                        const nextLen = payload.issues.length;\n                        if (nextLen === currLen)\n                            return;\n                        if (!isAborted)\n                            isAborted = util.aborted(payload, currLen);\n                    });\n                }\n                else {\n                    const nextLen = payload.issues.length;\n                    if (nextLen === currLen)\n                        continue;\n                    if (!isAborted)\n                        isAborted = util.aborted(payload, currLen);\n                }\n            }\n            if (asyncResult) {\n                return asyncResult.then(() => {\n                    return payload;\n                });\n            }\n            return payload;\n        };\n        // const handleChecksResult = (\n        //   checkResult: ParsePayload,\n        //   originalResult: ParsePayload,\n        //   ctx: ParseContextInternal\n        // ): util.MaybeAsync<ParsePayload> => {\n        //   // if the checks mutated the value && there are no issues, re-parse the result\n        //   if (checkResult.value !== originalResult.value && !checkResult.issues.length)\n        //     return inst._zod.parse(checkResult, ctx);\n        //   return originalResult;\n        // };\n        const handleCanaryResult = (canary, payload, ctx) => {\n            // abort if the canary is aborted\n            if (util.aborted(canary)) {\n                canary.aborted = true;\n                return canary;\n            }\n            // run checks first, then\n            const checkResult = runChecks(payload, checks, ctx);\n            if (checkResult instanceof Promise) {\n                if (ctx.async === false)\n                    throw new core.$ZodAsyncError();\n                return checkResult.then((checkResult) => inst._zod.parse(checkResult, ctx));\n            }\n            return inst._zod.parse(checkResult, ctx);\n        };\n        inst._zod.run = (payload, ctx) => {\n            if (ctx.skipChecks) {\n                return inst._zod.parse(payload, ctx);\n            }\n            if (ctx.direction === \"backward\") {\n                // run canary\n                // initial pass (no checks)\n                const canary = inst._zod.parse({ value: payload.value, issues: [] }, { ...ctx, skipChecks: true });\n                if (canary instanceof Promise) {\n                    return canary.then((canary) => {\n                        return handleCanaryResult(canary, payload, ctx);\n                    });\n                }\n                return handleCanaryResult(canary, payload, ctx);\n            }\n            // forward\n            const result = inst._zod.parse(payload, ctx);\n            if (result instanceof Promise) {\n                if (ctx.async === false)\n                    throw new core.$ZodAsyncError();\n                return result.then((result) => runChecks(result, checks, ctx));\n            }\n            return runChecks(result, checks, ctx);\n        };\n    }\n    inst[\"~standard\"] = {\n        validate: (value) => {\n            try {\n                const r = safeParse(inst, value);\n                return r.success ? { value: r.data } : { issues: r.error?.issues };\n            }\n            catch (_) {\n                return safeParseAsync(inst, value).then((r) => (r.success ? { value: r.data } : { issues: r.error?.issues }));\n            }\n        },\n        vendor: \"zod\",\n        version: 1,\n    };\n});\nexport { clone } from \"./util.js\";\nexport const $ZodString = /*@__PURE__*/ core.$constructor(\"$ZodString\", (inst, def) => {\n    $ZodType.init(inst, def);\n    inst._zod.pattern = [...(inst?._zod.bag?.patterns ?? [])].pop() ?? regexes.string(inst._zod.bag);\n    inst._zod.parse = (payload, _) => {\n        if (def.coerce)\n            try {\n                payload.value = String(payload.value);\n            }\n            catch (_) { }\n        if (typeof payload.value === \"string\")\n            return payload;\n        payload.issues.push({\n            expected: \"string\",\n            code: \"invalid_type\",\n            input: payload.value,\n            inst,\n        });\n        return payload;\n    };\n});\nexport const $ZodStringFormat = /*@__PURE__*/ core.$constructor(\"$ZodStringFormat\", (inst, def) => {\n    // check initialization must come first\n    checks.$ZodCheckStringFormat.init(inst, def);\n    $ZodString.init(inst, def);\n});\nexport const $ZodGUID = /*@__PURE__*/ core.$constructor(\"$ZodGUID\", (inst, def) => {\n    def.pattern ?? (def.pattern = regexes.guid);\n    $ZodStringFormat.init(inst, def);\n});\nexport const $ZodUUID = /*@__PURE__*/ core.$constructor(\"$ZodUUID\", (inst, def) => {\n    if (def.version) {\n        const versionMap = {\n            v1: 1,\n            v2: 2,\n            v3: 3,\n            v4: 4,\n            v5: 5,\n            v6: 6,\n            v7: 7,\n            v8: 8,\n        };\n        const v = versionMap[def.version];\n        if (v === undefined)\n            throw new Error(`Invalid UUID version: \"${def.version}\"`);\n        def.pattern ?? (def.pattern = regexes.uuid(v));\n    }\n    else\n        def.pattern ?? (def.pattern = regexes.uuid());\n    $ZodStringFormat.init(inst, def);\n});\nexport const $ZodEmail = /*@__PURE__*/ core.$constructor(\"$ZodEmail\", (inst, def) => {\n    def.pattern ?? (def.pattern = regexes.email);\n    $ZodStringFormat.init(inst, def);\n});\nexport const $ZodURL = /*@__PURE__*/ core.$constructor(\"$ZodURL\", (inst, def) => {\n    $ZodStringFormat.init(inst, def);\n    inst._zod.check = (payload) => {\n        try {\n            // Trim whitespace from input\n            const trimmed = payload.value.trim();\n            // @ts-ignore\n            const url = new URL(trimmed);\n            if (def.hostname) {\n                def.hostname.lastIndex = 0;\n                if (!def.hostname.test(url.hostname)) {\n                    payload.issues.push({\n                        code: \"invalid_format\",\n                        format: \"url\",\n                        note: \"Invalid hostname\",\n                        pattern: regexes.hostname.source,\n                        input: payload.value,\n                        inst,\n                        continue: !def.abort,\n                    });\n                }\n            }\n            if (def.protocol) {\n                def.protocol.lastIndex = 0;\n                if (!def.protocol.test(url.protocol.endsWith(\":\") ? url.protocol.slice(0, -1) : url.protocol)) {\n                    payload.issues.push({\n                        code: \"invalid_format\",\n                        format: \"url\",\n                        note: \"Invalid protocol\",\n                        pattern: def.protocol.source,\n                        input: payload.value,\n                        inst,\n                        continue: !def.abort,\n                    });\n                }\n            }\n            // Set the output value based on normalize flag\n            if (def.normalize) {\n                // Use normalized URL\n                payload.value = url.href;\n            }\n            else {\n                // Preserve the original input (trimmed)\n                payload.value = trimmed;\n            }\n            return;\n        }\n        catch (_) {\n            payload.issues.push({\n                code: \"invalid_format\",\n                format: \"url\",\n                input: payload.value,\n                inst,\n                continue: !def.abort,\n            });\n        }\n    };\n});\nexport const $ZodEmoji = /*@__PURE__*/ core.$constructor(\"$ZodEmoji\", (inst, def) => {\n    def.pattern ?? (def.pattern = regexes.emoji());\n    $ZodStringFormat.init(inst, def);\n});\nexport const $ZodNanoID = /*@__PURE__*/ core.$constructor(\"$ZodNanoID\", (inst, def) => {\n    def.pattern ?? (def.pattern = regexes.nanoid);\n    $ZodStringFormat.init(inst, def);\n});\nexport const $ZodCUID = /*@__PURE__*/ core.$constructor(\"$ZodCUID\", (inst, def) => {\n    def.pattern ?? (def.pattern = regexes.cuid);\n    $ZodStringFormat.init(inst, def);\n});\nexport const $ZodCUID2 = /*@__PURE__*/ core.$constructor(\"$ZodCUID2\", (inst, def) => {\n    def.pattern ?? (def.pattern = regexes.cuid2);\n    $ZodStringFormat.init(inst, def);\n});\nexport const $ZodULID = /*@__PURE__*/ core.$constructor(\"$ZodULID\", (inst, def) => {\n    def.pattern ?? (def.pattern = regexes.ulid);\n    $ZodStringFormat.init(inst, def);\n});\nexport const $ZodXID = /*@__PURE__*/ core.$constructor(\"$ZodXID\", (inst, def) => {\n    def.pattern ?? (def.pattern = regexes.xid);\n    $ZodStringFormat.init(inst, def);\n});\nexport const $ZodKSUID = /*@__PURE__*/ core.$constructor(\"$ZodKSUID\", (inst, def) => {\n    def.pattern ?? (def.pattern = regexes.ksuid);\n    $ZodStringFormat.init(inst, def);\n});\nexport const $ZodISODateTime = /*@__PURE__*/ core.$constructor(\"$ZodISODateTime\", (inst, def) => {\n    def.pattern ?? (def.pattern = regexes.datetime(def));\n    $ZodStringFormat.init(inst, def);\n});\nexport const $ZodISODate = /*@__PURE__*/ core.$constructor(\"$ZodISODate\", (inst, def) => {\n    def.pattern ?? (def.pattern = regexes.date);\n    $ZodStringFormat.init(inst, def);\n});\nexport const $ZodISOTime = /*@__PURE__*/ core.$constructor(\"$ZodISOTime\", (inst, def) => {\n    def.pattern ?? (def.pattern = regexes.time(def));\n    $ZodStringFormat.init(inst, def);\n});\nexport const $ZodISODuration = /*@__PURE__*/ core.$constructor(\"$ZodISODuration\", (inst, def) => {\n    def.pattern ?? (def.pattern = regexes.duration);\n    $ZodStringFormat.init(inst, def);\n});\nexport const $ZodIPv4 = /*@__PURE__*/ core.$constructor(\"$ZodIPv4\", (inst, def) => {\n    def.pattern ?? (def.pattern = regexes.ipv4);\n    $ZodStringFormat.init(inst, def);\n    inst._zod.onattach.push((inst) => {\n        const bag = inst._zod.bag;\n        bag.format = `ipv4`;\n    });\n});\nexport const $ZodIPv6 = /*@__PURE__*/ core.$constructor(\"$ZodIPv6\", (inst, def) => {\n    def.pattern ?? (def.pattern = regexes.ipv6);\n    $ZodStringFormat.init(inst, def);\n    inst._zod.onattach.push((inst) => {\n        const bag = inst._zod.bag;\n        bag.format = `ipv6`;\n    });\n    inst._zod.check = (payload) => {\n        try {\n            // @ts-ignore\n            new URL(`http://[${payload.value}]`);\n            // return;\n        }\n        catch {\n            payload.issues.push({\n                code: \"invalid_format\",\n                format: \"ipv6\",\n                input: payload.value,\n                inst,\n                continue: !def.abort,\n            });\n        }\n    };\n});\nexport const $ZodCIDRv4 = /*@__PURE__*/ core.$constructor(\"$ZodCIDRv4\", (inst, def) => {\n    def.pattern ?? (def.pattern = regexes.cidrv4);\n    $ZodStringFormat.init(inst, def);\n});\nexport const $ZodCIDRv6 = /*@__PURE__*/ core.$constructor(\"$ZodCIDRv6\", (inst, def) => {\n    def.pattern ?? (def.pattern = regexes.cidrv6); // not used for validation\n    $ZodStringFormat.init(inst, def);\n    inst._zod.check = (payload) => {\n        const parts = payload.value.split(\"/\");\n        try {\n            if (parts.length !== 2)\n                throw new Error();\n            const [address, prefix] = parts;\n            if (!prefix)\n                throw new Error();\n            const prefixNum = Number(prefix);\n            if (`${prefixNum}` !== prefix)\n                throw new Error();\n            if (prefixNum < 0 || prefixNum > 128)\n                throw new Error();\n            // @ts-ignore\n            new URL(`http://[${address}]`);\n        }\n        catch {\n            payload.issues.push({\n                code: \"invalid_format\",\n                format: \"cidrv6\",\n                input: payload.value,\n                inst,\n                continue: !def.abort,\n            });\n        }\n    };\n});\n//////////////////////////////   ZodBase64   //////////////////////////////\nexport function isValidBase64(data) {\n    if (data === \"\")\n        return true;\n    if (data.length % 4 !== 0)\n        return false;\n    try {\n        // @ts-ignore\n        atob(data);\n        return true;\n    }\n    catch {\n        return false;\n    }\n}\nexport const $ZodBase64 = /*@__PURE__*/ core.$constructor(\"$ZodBase64\", (inst, def) => {\n    def.pattern ?? (def.pattern = regexes.base64);\n    $ZodStringFormat.init(inst, def);\n    inst._zod.onattach.push((inst) => {\n        inst._zod.bag.contentEncoding = \"base64\";\n    });\n    inst._zod.check = (payload) => {\n        if (isValidBase64(payload.value))\n            return;\n        payload.issues.push({\n            code: \"invalid_format\",\n            format: \"base64\",\n            input: payload.value,\n            inst,\n            continue: !def.abort,\n        });\n    };\n});\n//////////////////////////////   ZodBase64   //////////////////////////////\nexport function isValidBase64URL(data) {\n    if (!regexes.base64url.test(data))\n        return false;\n    const base64 = data.replace(/[-_]/g, (c) => (c === \"-\" ? \"+\" : \"/\"));\n    const padded = base64.padEnd(Math.ceil(base64.length / 4) * 4, \"=\");\n    return isValidBase64(padded);\n}\nexport const $ZodBase64URL = /*@__PURE__*/ core.$constructor(\"$ZodBase64URL\", (inst, def) => {\n    def.pattern ?? (def.pattern = regexes.base64url);\n    $ZodStringFormat.init(inst, def);\n    inst._zod.onattach.push((inst) => {\n        inst._zod.bag.contentEncoding = \"base64url\";\n    });\n    inst._zod.check = (payload) => {\n        if (isValidBase64URL(payload.value))\n            return;\n        payload.issues.push({\n            code: \"invalid_format\",\n            format: \"base64url\",\n            input: payload.value,\n            inst,\n            continue: !def.abort,\n        });\n    };\n});\nexport const $ZodE164 = /*@__PURE__*/ core.$constructor(\"$ZodE164\", (inst, def) => {\n    def.pattern ?? (def.pattern = regexes.e164);\n    $ZodStringFormat.init(inst, def);\n});\n//////////////////////////////   ZodJWT   //////////////////////////////\nexport function isValidJWT(token, algorithm = null) {\n    try {\n        const tokensParts = token.split(\".\");\n        if (tokensParts.length !== 3)\n            return false;\n        const [header] = tokensParts;\n        if (!header)\n            return false;\n        // @ts-ignore\n        const parsedHeader = JSON.parse(atob(header));\n        if (\"typ\" in parsedHeader && parsedHeader?.typ !== \"JWT\")\n            return false;\n        if (!parsedHeader.alg)\n            return false;\n        if (algorithm && (!(\"alg\" in parsedHeader) || parsedHeader.alg !== algorithm))\n            return false;\n        return true;\n    }\n    catch {\n        return false;\n    }\n}\nexport const $ZodJWT = /*@__PURE__*/ core.$constructor(\"$ZodJWT\", (inst, def) => {\n    $ZodStringFormat.init(inst, def);\n    inst._zod.check = (payload) => {\n        if (isValidJWT(payload.value, def.alg))\n            return;\n        payload.issues.push({\n            code: \"invalid_format\",\n            format: \"jwt\",\n            input: payload.value,\n            inst,\n            continue: !def.abort,\n        });\n    };\n});\nexport const $ZodCustomStringFormat = /*@__PURE__*/ core.$constructor(\"$ZodCustomStringFormat\", (inst, def) => {\n    $ZodStringFormat.init(inst, def);\n    inst._zod.check = (payload) => {\n        if (def.fn(payload.value))\n            return;\n        payload.issues.push({\n            code: \"invalid_format\",\n            format: def.format,\n            input: payload.value,\n            inst,\n            continue: !def.abort,\n        });\n    };\n});\nexport const $ZodNumber = /*@__PURE__*/ core.$constructor(\"$ZodNumber\", (inst, def) => {\n    $ZodType.init(inst, def);\n    inst._zod.pattern = inst._zod.bag.pattern ?? regexes.number;\n    inst._zod.parse = (payload, _ctx) => {\n        if (def.coerce)\n            try {\n                payload.value = Number(payload.value);\n            }\n            catch (_) { }\n        const input = payload.value;\n        if (typeof input === \"number\" && !Number.isNaN(input) && Number.isFinite(input)) {\n            return payload;\n        }\n        const received = typeof input === \"number\"\n            ? Number.isNaN(input)\n                ? \"NaN\"\n                : !Number.isFinite(input)\n                    ? \"Infinity\"\n                    : undefined\n            : undefined;\n        payload.issues.push({\n            expected: \"number\",\n            code: \"invalid_type\",\n            input,\n            inst,\n            ...(received ? { received } : {}),\n        });\n        return payload;\n    };\n});\nexport const $ZodNumberFormat = /*@__PURE__*/ core.$constructor(\"$ZodNumber\", (inst, def) => {\n    checks.$ZodCheckNumberFormat.init(inst, def);\n    $ZodNumber.init(inst, def); // no format checksp\n});\nexport const $ZodBoolean = /*@__PURE__*/ core.$constructor(\"$ZodBoolean\", (inst, def) => {\n    $ZodType.init(inst, def);\n    inst._zod.pattern = regexes.boolean;\n    inst._zod.parse = (payload, _ctx) => {\n        if (def.coerce)\n            try {\n                payload.value = Boolean(payload.value);\n            }\n            catch (_) { }\n        const input = payload.value;\n        if (typeof input === \"boolean\")\n            return payload;\n        payload.issues.push({\n            expected: \"boolean\",\n            code: \"invalid_type\",\n            input,\n            inst,\n        });\n        return payload;\n    };\n});\nexport const $ZodBigInt = /*@__PURE__*/ core.$constructor(\"$ZodBigInt\", (inst, def) => {\n    $ZodType.init(inst, def);\n    inst._zod.pattern = regexes.bigint;\n    inst._zod.parse = (payload, _ctx) => {\n        if (def.coerce)\n            try {\n                payload.value = BigInt(payload.value);\n            }\n            catch (_) { }\n        if (typeof payload.value === \"bigint\")\n            return payload;\n        payload.issues.push({\n            expected: \"bigint\",\n            code: \"invalid_type\",\n            input: payload.value,\n            inst,\n        });\n        return payload;\n    };\n});\nexport const $ZodBigIntFormat = /*@__PURE__*/ core.$constructor(\"$ZodBigInt\", (inst, def) => {\n    checks.$ZodCheckBigIntFormat.init(inst, def);\n    $ZodBigInt.init(inst, def); // no format checks\n});\nexport const $ZodSymbol = /*@__PURE__*/ core.$constructor(\"$ZodSymbol\", (inst, def) => {\n    $ZodType.init(inst, def);\n    inst._zod.parse = (payload, _ctx) => {\n        const input = payload.value;\n        if (typeof input === \"symbol\")\n            return payload;\n        payload.issues.push({\n            expected: \"symbol\",\n            code: \"invalid_type\",\n            input,\n            inst,\n        });\n        return payload;\n    };\n});\nexport const $ZodUndefined = /*@__PURE__*/ core.$constructor(\"$ZodUndefined\", (inst, def) => {\n    $ZodType.init(inst, def);\n    inst._zod.pattern = regexes.undefined;\n    inst._zod.values = new Set([undefined]);\n    inst._zod.optin = \"optional\";\n    inst._zod.optout = \"optional\";\n    inst._zod.parse = (payload, _ctx) => {\n        const input = payload.value;\n        if (typeof input === \"undefined\")\n            return payload;\n        payload.issues.push({\n            expected: \"undefined\",\n            code: \"invalid_type\",\n            input,\n            inst,\n        });\n        return payload;\n    };\n});\nexport const $ZodNull = /*@__PURE__*/ core.$constructor(\"$ZodNull\", (inst, def) => {\n    $ZodType.init(inst, def);\n    inst._zod.pattern = regexes.null;\n    inst._zod.values = new Set([null]);\n    inst._zod.parse = (payload, _ctx) => {\n        const input = payload.value;\n        if (input === null)\n            return payload;\n        payload.issues.push({\n            expected: \"null\",\n            code: \"invalid_type\",\n            input,\n            inst,\n        });\n        return payload;\n    };\n});\nexport const $ZodAny = /*@__PURE__*/ core.$constructor(\"$ZodAny\", (inst, def) => {\n    $ZodType.init(inst, def);\n    inst._zod.parse = (payload) => payload;\n});\nexport const $ZodUnknown = /*@__PURE__*/ core.$constructor(\"$ZodUnknown\", (inst, def) => {\n    $ZodType.init(inst, def);\n    inst._zod.parse = (payload) => payload;\n});\nexport const $ZodNever = /*@__PURE__*/ core.$constructor(\"$ZodNever\", (inst, def) => {\n    $ZodType.init(inst, def);\n    inst._zod.parse = (payload, _ctx) => {\n        payload.issues.push({\n            expected: \"never\",\n            code: \"invalid_type\",\n            input: payload.value,\n            inst,\n        });\n        return payload;\n    };\n});\nexport const $ZodVoid = /*@__PURE__*/ core.$constructor(\"$ZodVoid\", (inst, def) => {\n    $ZodType.init(inst, def);\n    inst._zod.parse = (payload, _ctx) => {\n        const input = payload.value;\n        if (typeof input === \"undefined\")\n            return payload;\n        payload.issues.push({\n            expected: \"void\",\n            code: \"invalid_type\",\n            input,\n            inst,\n        });\n        return payload;\n    };\n});\nexport const $ZodDate = /*@__PURE__*/ core.$constructor(\"$ZodDate\", (inst, def) => {\n    $ZodType.init(inst, def);\n    inst._zod.parse = (payload, _ctx) => {\n        if (def.coerce) {\n            try {\n                payload.value = new Date(payload.value);\n            }\n            catch (_err) { }\n        }\n        const input = payload.value;\n        const isDate = input instanceof Date;\n        const isValidDate = isDate && !Number.isNaN(input.getTime());\n        if (isValidDate)\n            return payload;\n        payload.issues.push({\n            expected: \"date\",\n            code: \"invalid_type\",\n            input,\n            ...(isDate ? { received: \"Invalid Date\" } : {}),\n            inst,\n        });\n        return payload;\n    };\n});\nfunction handleArrayResult(result, final, index) {\n    if (result.issues.length) {\n        final.issues.push(...util.prefixIssues(index, result.issues));\n    }\n    final.value[index] = result.value;\n}\nexport const $ZodArray = /*@__PURE__*/ core.$constructor(\"$ZodArray\", (inst, def) => {\n    $ZodType.init(inst, def);\n    inst._zod.parse = (payload, ctx) => {\n        const input = payload.value;\n        if (!Array.isArray(input)) {\n            payload.issues.push({\n                expected: \"array\",\n                code: \"invalid_type\",\n                input,\n                inst,\n            });\n            return payload;\n        }\n        payload.value = Array(input.length);\n        const proms = [];\n        for (let i = 0; i < input.length; i++) {\n            const item = input[i];\n            const result = def.element._zod.run({\n                value: item,\n                issues: [],\n            }, ctx);\n            if (result instanceof Promise) {\n                proms.push(result.then((result) => handleArrayResult(result, payload, i)));\n            }\n            else {\n                handleArrayResult(result, payload, i);\n            }\n        }\n        if (proms.length) {\n            return Promise.all(proms).then(() => payload);\n        }\n        return payload; //handleArrayResultsAsync(parseResults, final);\n    };\n});\nfunction handlePropertyResult(result, final, key, input) {\n    if (result.issues.length) {\n        final.issues.push(...util.prefixIssues(key, result.issues));\n    }\n    if (result.value === undefined) {\n        if (key in input) {\n            final.value[key] = undefined;\n        }\n    }\n    else {\n        final.value[key] = result.value;\n    }\n}\nfunction normalizeDef(def) {\n    const keys = Object.keys(def.shape);\n    for (const k of keys) {\n        if (!def.shape?.[k]?._zod?.traits?.has(\"$ZodType\")) {\n            throw new Error(`Invalid element at key \"${k}\": expected a Zod schema`);\n        }\n    }\n    const okeys = util.optionalKeys(def.shape);\n    return {\n        ...def,\n        keys,\n        keySet: new Set(keys),\n        numKeys: keys.length,\n        optionalKeys: new Set(okeys),\n    };\n}\nfunction handleCatchall(proms, input, payload, ctx, def, inst) {\n    const unrecognized = [];\n    // iterate over input keys\n    const keySet = def.keySet;\n    const _catchall = def.catchall._zod;\n    const t = _catchall.def.type;\n    for (const key of Object.keys(input)) {\n        if (keySet.has(key))\n            continue;\n        if (t === \"never\") {\n            unrecognized.push(key);\n            continue;\n        }\n        const r = _catchall.run({ value: input[key], issues: [] }, ctx);\n        if (r instanceof Promise) {\n            proms.push(r.then((r) => handlePropertyResult(r, payload, key, input)));\n        }\n        else {\n            handlePropertyResult(r, payload, key, input);\n        }\n    }\n    if (unrecognized.length) {\n        payload.issues.push({\n            code: \"unrecognized_keys\",\n            keys: unrecognized,\n            input,\n            inst,\n        });\n    }\n    if (!proms.length)\n        return payload;\n    return Promise.all(proms).then(() => {\n        return payload;\n    });\n}\nexport const $ZodObject = /*@__PURE__*/ core.$constructor(\"$ZodObject\", (inst, def) => {\n    // requires cast because technically $ZodObject doesn't extend\n    $ZodType.init(inst, def);\n    // const sh = def.shape;\n    const desc = Object.getOwnPropertyDescriptor(def, \"shape\");\n    if (!desc?.get) {\n        const sh = def.shape;\n        Object.defineProperty(def, \"shape\", {\n            get: () => {\n                const newSh = { ...sh };\n                Object.defineProperty(def, \"shape\", {\n                    value: newSh,\n                });\n                return newSh;\n            },\n        });\n    }\n    const _normalized = util.cached(() => normalizeDef(def));\n    util.defineLazy(inst._zod, \"propValues\", () => {\n        const shape = def.shape;\n        const propValues = {};\n        for (const key in shape) {\n            const field = shape[key]._zod;\n            if (field.values) {\n                propValues[key] ?? (propValues[key] = new Set());\n                for (const v of field.values)\n                    propValues[key].add(v);\n            }\n        }\n        return propValues;\n    });\n    const isObject = util.isObject;\n    const catchall = def.catchall;\n    let value;\n    inst._zod.parse = (payload, ctx) => {\n        value ?? (value = _normalized.value);\n        const input = payload.value;\n        if (!isObject(input)) {\n            payload.issues.push({\n                expected: \"object\",\n                code: \"invalid_type\",\n                input,\n                inst,\n            });\n            return payload;\n        }\n        payload.value = {};\n        const proms = [];\n        const shape = value.shape;\n        for (const key of value.keys) {\n            const el = shape[key];\n            const r = el._zod.run({ value: input[key], issues: [] }, ctx);\n            if (r instanceof Promise) {\n                proms.push(r.then((r) => handlePropertyResult(r, payload, key, input)));\n            }\n            else {\n                handlePropertyResult(r, payload, key, input);\n            }\n        }\n        if (!catchall) {\n            return proms.length ? Promise.all(proms).then(() => payload) : payload;\n        }\n        return handleCatchall(proms, input, payload, ctx, _normalized.value, inst);\n    };\n});\nexport const $ZodObjectJIT = /*@__PURE__*/ core.$constructor(\"$ZodObjectJIT\", (inst, def) => {\n    // requires cast because technically $ZodObject doesn't extend\n    $ZodObject.init(inst, def);\n    const superParse = inst._zod.parse;\n    const _normalized = util.cached(() => normalizeDef(def));\n    const generateFastpass = (shape) => {\n        const doc = new Doc([\"shape\", \"payload\", \"ctx\"]);\n        const normalized = _normalized.value;\n        const parseStr = (key) => {\n            const k = util.esc(key);\n            return `shape[${k}]._zod.run({ value: input[${k}], issues: [] }, ctx)`;\n        };\n        doc.write(`const input = payload.value;`);\n        const ids = Object.create(null);\n        let counter = 0;\n        for (const key of normalized.keys) {\n            ids[key] = `key_${counter++}`;\n        }\n        // A: preserve key order {\n        doc.write(`const newResult = {};`);\n        for (const key of normalized.keys) {\n            const id = ids[key];\n            const k = util.esc(key);\n            doc.write(`const ${id} = ${parseStr(key)};`);\n            doc.write(`\n        if (${id}.issues.length) {\n          payload.issues = payload.issues.concat(${id}.issues.map(iss => ({\n            ...iss,\n            path: iss.path ? [${k}, ...iss.path] : [${k}]\n          })));\n        }\n        \n        \n        if (${id}.value === undefined) {\n          if (${k} in input) {\n            newResult[${k}] = undefined;\n          }\n        } else {\n          newResult[${k}] = ${id}.value;\n        }\n        \n      `);\n        }\n        doc.write(`payload.value = newResult;`);\n        doc.write(`return payload;`);\n        const fn = doc.compile();\n        return (payload, ctx) => fn(shape, payload, ctx);\n    };\n    let fastpass;\n    const isObject = util.isObject;\n    const jit = !core.globalConfig.jitless;\n    const allowsEval = util.allowsEval;\n    const fastEnabled = jit && allowsEval.value; // && !def.catchall;\n    const catchall = def.catchall;\n    let value;\n    inst._zod.parse = (payload, ctx) => {\n        value ?? (value = _normalized.value);\n        const input = payload.value;\n        if (!isObject(input)) {\n            payload.issues.push({\n                expected: \"object\",\n                code: \"invalid_type\",\n                input,\n                inst,\n            });\n            return payload;\n        }\n        if (jit && fastEnabled && ctx?.async === false && ctx.jitless !== true) {\n            // always synchronous\n            if (!fastpass)\n                fastpass = generateFastpass(def.shape);\n            payload = fastpass(payload, ctx);\n            if (!catchall)\n                return payload;\n            return handleCatchall([], input, payload, ctx, value, inst);\n        }\n        return superParse(payload, ctx);\n    };\n});\nfunction handleUnionResults(results, final, inst, ctx) {\n    for (const result of results) {\n        if (result.issues.length === 0) {\n            final.value = result.value;\n            return final;\n        }\n    }\n    const nonaborted = results.filter((r) => !util.aborted(r));\n    if (nonaborted.length === 1) {\n        final.value = nonaborted[0].value;\n        return nonaborted[0];\n    }\n    final.issues.push({\n        code: \"invalid_union\",\n        input: final.value,\n        inst,\n        errors: results.map((result) => result.issues.map((iss) => util.finalizeIssue(iss, ctx, core.config()))),\n    });\n    return final;\n}\nexport const $ZodUnion = /*@__PURE__*/ core.$constructor(\"$ZodUnion\", (inst, def) => {\n    $ZodType.init(inst, def);\n    util.defineLazy(inst._zod, \"optin\", () => def.options.some((o) => o._zod.optin === \"optional\") ? \"optional\" : undefined);\n    util.defineLazy(inst._zod, \"optout\", () => def.options.some((o) => o._zod.optout === \"optional\") ? \"optional\" : undefined);\n    util.defineLazy(inst._zod, \"values\", () => {\n        if (def.options.every((o) => o._zod.values)) {\n            return new Set(def.options.flatMap((option) => Array.from(option._zod.values)));\n        }\n        return undefined;\n    });\n    util.defineLazy(inst._zod, \"pattern\", () => {\n        if (def.options.every((o) => o._zod.pattern)) {\n            const patterns = def.options.map((o) => o._zod.pattern);\n            return new RegExp(`^(${patterns.map((p) => util.cleanRegex(p.source)).join(\"|\")})$`);\n        }\n        return undefined;\n    });\n    const single = def.options.length === 1;\n    const first = def.options[0]._zod.run;\n    inst._zod.parse = (payload, ctx) => {\n        if (single) {\n            return first(payload, ctx);\n        }\n        let async = false;\n        const results = [];\n        for (const option of def.options) {\n            const result = option._zod.run({\n                value: payload.value,\n                issues: [],\n            }, ctx);\n            if (result instanceof Promise) {\n                results.push(result);\n                async = true;\n            }\n            else {\n                if (result.issues.length === 0)\n                    return result;\n                results.push(result);\n            }\n        }\n        if (!async)\n            return handleUnionResults(results, payload, inst, ctx);\n        return Promise.all(results).then((results) => {\n            return handleUnionResults(results, payload, inst, ctx);\n        });\n    };\n});\nexport const $ZodDiscriminatedUnion = \n/*@__PURE__*/\ncore.$constructor(\"$ZodDiscriminatedUnion\", (inst, def) => {\n    $ZodUnion.init(inst, def);\n    const _super = inst._zod.parse;\n    util.defineLazy(inst._zod, \"propValues\", () => {\n        const propValues = {};\n        for (const option of def.options) {\n            const pv = option._zod.propValues;\n            if (!pv || Object.keys(pv).length === 0)\n                throw new Error(`Invalid discriminated union option at index \"${def.options.indexOf(option)}\"`);\n            for (const [k, v] of Object.entries(pv)) {\n                if (!propValues[k])\n                    propValues[k] = new Set();\n                for (const val of v) {\n                    propValues[k].add(val);\n                }\n            }\n        }\n        return propValues;\n    });\n    const disc = util.cached(() => {\n        const opts = def.options;\n        const map = new Map();\n        for (const o of opts) {\n            const values = o._zod.propValues?.[def.discriminator];\n            if (!values || values.size === 0)\n                throw new Error(`Invalid discriminated union option at index \"${def.options.indexOf(o)}\"`);\n            for (const v of values) {\n                if (map.has(v)) {\n                    throw new Error(`Duplicate discriminator value \"${String(v)}\"`);\n                }\n                map.set(v, o);\n            }\n        }\n        return map;\n    });\n    inst._zod.parse = (payload, ctx) => {\n        const input = payload.value;\n        if (!util.isObject(input)) {\n            payload.issues.push({\n                code: \"invalid_type\",\n                expected: \"object\",\n                input,\n                inst,\n            });\n            return payload;\n        }\n        const opt = disc.value.get(input?.[def.discriminator]);\n        if (opt) {\n            return opt._zod.run(payload, ctx);\n        }\n        if (def.unionFallback) {\n            return _super(payload, ctx);\n        }\n        // no matching discriminator\n        payload.issues.push({\n            code: \"invalid_union\",\n            errors: [],\n            note: \"No matching discriminator\",\n            discriminator: def.discriminator,\n            input,\n            path: [def.discriminator],\n            inst,\n        });\n        return payload;\n    };\n});\nexport const $ZodIntersection = /*@__PURE__*/ core.$constructor(\"$ZodIntersection\", (inst, def) => {\n    $ZodType.init(inst, def);\n    inst._zod.parse = (payload, ctx) => {\n        const input = payload.value;\n        const left = def.left._zod.run({ value: input, issues: [] }, ctx);\n        const right = def.right._zod.run({ value: input, issues: [] }, ctx);\n        const async = left instanceof Promise || right instanceof Promise;\n        if (async) {\n            return Promise.all([left, right]).then(([left, right]) => {\n                return handleIntersectionResults(payload, left, right);\n            });\n        }\n        return handleIntersectionResults(payload, left, right);\n    };\n});\nfunction mergeValues(a, b) {\n    // const aType = parse.t(a);\n    // const bType = parse.t(b);\n    if (a === b) {\n        return { valid: true, data: a };\n    }\n    if (a instanceof Date && b instanceof Date && +a === +b) {\n        return { valid: true, data: a };\n    }\n    if (util.isPlainObject(a) && util.isPlainObject(b)) {\n        const bKeys = Object.keys(b);\n        const sharedKeys = Object.keys(a).filter((key) => bKeys.indexOf(key) !== -1);\n        const newObj = { ...a, ...b };\n        for (const key of sharedKeys) {\n            const sharedValue = mergeValues(a[key], b[key]);\n            if (!sharedValue.valid) {\n                return {\n                    valid: false,\n                    mergeErrorPath: [key, ...sharedValue.mergeErrorPath],\n                };\n            }\n            newObj[key] = sharedValue.data;\n        }\n        return { valid: true, data: newObj };\n    }\n    if (Array.isArray(a) && Array.isArray(b)) {\n        if (a.length !== b.length) {\n            return { valid: false, mergeErrorPath: [] };\n        }\n        const newArray = [];\n        for (let index = 0; index < a.length; index++) {\n            const itemA = a[index];\n            const itemB = b[index];\n            const sharedValue = mergeValues(itemA, itemB);\n            if (!sharedValue.valid) {\n                return {\n                    valid: false,\n                    mergeErrorPath: [index, ...sharedValue.mergeErrorPath],\n                };\n            }\n            newArray.push(sharedValue.data);\n        }\n        return { valid: true, data: newArray };\n    }\n    return { valid: false, mergeErrorPath: [] };\n}\nfunction handleIntersectionResults(result, left, right) {\n    if (left.issues.length) {\n        result.issues.push(...left.issues);\n    }\n    if (right.issues.length) {\n        result.issues.push(...right.issues);\n    }\n    if (util.aborted(result))\n        return result;\n    const merged = mergeValues(left.value, right.value);\n    if (!merged.valid) {\n        throw new Error(`Unmergable intersection. Error path: ` + `${JSON.stringify(merged.mergeErrorPath)}`);\n    }\n    result.value = merged.data;\n    return result;\n}\nexport const $ZodTuple = /*@__PURE__*/ core.$constructor(\"$ZodTuple\", (inst, def) => {\n    $ZodType.init(inst, def);\n    const items = def.items;\n    const optStart = items.length - [...items].reverse().findIndex((item) => item._zod.optin !== \"optional\");\n    inst._zod.parse = (payload, ctx) => {\n        const input = payload.value;\n        if (!Array.isArray(input)) {\n            payload.issues.push({\n                input,\n                inst,\n                expected: \"tuple\",\n                code: \"invalid_type\",\n            });\n            return payload;\n        }\n        payload.value = [];\n        const proms = [];\n        if (!def.rest) {\n            const tooBig = input.length > items.length;\n            const tooSmall = input.length < optStart - 1;\n            if (tooBig || tooSmall) {\n                payload.issues.push({\n                    ...(tooBig ? { code: \"too_big\", maximum: items.length } : { code: \"too_small\", minimum: items.length }),\n                    input,\n                    inst,\n                    origin: \"array\",\n                });\n                return payload;\n            }\n        }\n        let i = -1;\n        for (const item of items) {\n            i++;\n            if (i >= input.length)\n                if (i >= optStart)\n                    continue;\n            const result = item._zod.run({\n                value: input[i],\n                issues: [],\n            }, ctx);\n            if (result instanceof Promise) {\n                proms.push(result.then((result) => handleTupleResult(result, payload, i)));\n            }\n            else {\n                handleTupleResult(result, payload, i);\n            }\n        }\n        if (def.rest) {\n            const rest = input.slice(items.length);\n            for (const el of rest) {\n                i++;\n                const result = def.rest._zod.run({\n                    value: el,\n                    issues: [],\n                }, ctx);\n                if (result instanceof Promise) {\n                    proms.push(result.then((result) => handleTupleResult(result, payload, i)));\n                }\n                else {\n                    handleTupleResult(result, payload, i);\n                }\n            }\n        }\n        if (proms.length)\n            return Promise.all(proms).then(() => payload);\n        return payload;\n    };\n});\nfunction handleTupleResult(result, final, index) {\n    if (result.issues.length) {\n        final.issues.push(...util.prefixIssues(index, result.issues));\n    }\n    final.value[index] = result.value;\n}\nexport const $ZodRecord = /*@__PURE__*/ core.$constructor(\"$ZodRecord\", (inst, def) => {\n    $ZodType.init(inst, def);\n    inst._zod.parse = (payload, ctx) => {\n        const input = payload.value;\n        if (!util.isPlainObject(input)) {\n            payload.issues.push({\n                expected: \"record\",\n                code: \"invalid_type\",\n                input,\n                inst,\n            });\n            return payload;\n        }\n        const proms = [];\n        if (def.keyType._zod.values) {\n            const values = def.keyType._zod.values;\n            payload.value = {};\n            for (const key of values) {\n                if (typeof key === \"string\" || typeof key === \"number\" || typeof key === \"symbol\") {\n                    const result = def.valueType._zod.run({ value: input[key], issues: [] }, ctx);\n                    if (result instanceof Promise) {\n                        proms.push(result.then((result) => {\n                            if (result.issues.length) {\n                                payload.issues.push(...util.prefixIssues(key, result.issues));\n                            }\n                            payload.value[key] = result.value;\n                        }));\n                    }\n                    else {\n                        if (result.issues.length) {\n                            payload.issues.push(...util.prefixIssues(key, result.issues));\n                        }\n                        payload.value[key] = result.value;\n                    }\n                }\n            }\n            let unrecognized;\n            for (const key in input) {\n                if (!values.has(key)) {\n                    unrecognized = unrecognized ?? [];\n                    unrecognized.push(key);\n                }\n            }\n            if (unrecognized && unrecognized.length > 0) {\n                payload.issues.push({\n                    code: \"unrecognized_keys\",\n                    input,\n                    inst,\n                    keys: unrecognized,\n                });\n            }\n        }\n        else {\n            payload.value = {};\n            for (const key of Reflect.ownKeys(input)) {\n                if (key === \"__proto__\")\n                    continue;\n                const keyResult = def.keyType._zod.run({ value: key, issues: [] }, ctx);\n                if (keyResult instanceof Promise) {\n                    throw new Error(\"Async schemas not supported in object keys currently\");\n                }\n                if (keyResult.issues.length) {\n                    payload.issues.push({\n                        code: \"invalid_key\",\n                        origin: \"record\",\n                        issues: keyResult.issues.map((iss) => util.finalizeIssue(iss, ctx, core.config())),\n                        input: key,\n                        path: [key],\n                        inst,\n                    });\n                    payload.value[keyResult.value] = keyResult.value;\n                    continue;\n                }\n                const result = def.valueType._zod.run({ value: input[key], issues: [] }, ctx);\n                if (result instanceof Promise) {\n                    proms.push(result.then((result) => {\n                        if (result.issues.length) {\n                            payload.issues.push(...util.prefixIssues(key, result.issues));\n                        }\n                        payload.value[keyResult.value] = result.value;\n                    }));\n                }\n                else {\n                    if (result.issues.length) {\n                        payload.issues.push(...util.prefixIssues(key, result.issues));\n                    }\n                    payload.value[keyResult.value] = result.value;\n                }\n            }\n        }\n        if (proms.length) {\n            return Promise.all(proms).then(() => payload);\n        }\n        return payload;\n    };\n});\nexport const $ZodMap = /*@__PURE__*/ core.$constructor(\"$ZodMap\", (inst, def) => {\n    $ZodType.init(inst, def);\n    inst._zod.parse = (payload, ctx) => {\n        const input = payload.value;\n        if (!(input instanceof Map)) {\n            payload.issues.push({\n                expected: \"map\",\n                code: \"invalid_type\",\n                input,\n                inst,\n            });\n            return payload;\n        }\n        const proms = [];\n        payload.value = new Map();\n        for (const [key, value] of input) {\n            const keyResult = def.keyType._zod.run({ value: key, issues: [] }, ctx);\n            const valueResult = def.valueType._zod.run({ value: value, issues: [] }, ctx);\n            if (keyResult instanceof Promise || valueResult instanceof Promise) {\n                proms.push(Promise.all([keyResult, valueResult]).then(([keyResult, valueResult]) => {\n                    handleMapResult(keyResult, valueResult, payload, key, input, inst, ctx);\n                }));\n            }\n            else {\n                handleMapResult(keyResult, valueResult, payload, key, input, inst, ctx);\n            }\n        }\n        if (proms.length)\n            return Promise.all(proms).then(() => payload);\n        return payload;\n    };\n});\nfunction handleMapResult(keyResult, valueResult, final, key, input, inst, ctx) {\n    if (keyResult.issues.length) {\n        if (util.propertyKeyTypes.has(typeof key)) {\n            final.issues.push(...util.prefixIssues(key, keyResult.issues));\n        }\n        else {\n            final.issues.push({\n                code: \"invalid_key\",\n                origin: \"map\",\n                input,\n                inst,\n                issues: keyResult.issues.map((iss) => util.finalizeIssue(iss, ctx, core.config())),\n            });\n        }\n    }\n    if (valueResult.issues.length) {\n        if (util.propertyKeyTypes.has(typeof key)) {\n            final.issues.push(...util.prefixIssues(key, valueResult.issues));\n        }\n        else {\n            final.issues.push({\n                origin: \"map\",\n                code: \"invalid_element\",\n                input,\n                inst,\n                key: key,\n                issues: valueResult.issues.map((iss) => util.finalizeIssue(iss, ctx, core.config())),\n            });\n        }\n    }\n    final.value.set(keyResult.value, valueResult.value);\n}\nexport const $ZodSet = /*@__PURE__*/ core.$constructor(\"$ZodSet\", (inst, def) => {\n    $ZodType.init(inst, def);\n    inst._zod.parse = (payload, ctx) => {\n        const input = payload.value;\n        if (!(input instanceof Set)) {\n            payload.issues.push({\n                input,\n                inst,\n                expected: \"set\",\n                code: \"invalid_type\",\n            });\n            return payload;\n        }\n        const proms = [];\n        payload.value = new Set();\n        for (const item of input) {\n            const result = def.valueType._zod.run({ value: item, issues: [] }, ctx);\n            if (result instanceof Promise) {\n                proms.push(result.then((result) => handleSetResult(result, payload)));\n            }\n            else\n                handleSetResult(result, payload);\n        }\n        if (proms.length)\n            return Promise.all(proms).then(() => payload);\n        return payload;\n    };\n});\nfunction handleSetResult(result, final) {\n    if (result.issues.length) {\n        final.issues.push(...result.issues);\n    }\n    final.value.add(result.value);\n}\nexport const $ZodEnum = /*@__PURE__*/ core.$constructor(\"$ZodEnum\", (inst, def) => {\n    $ZodType.init(inst, def);\n    const values = util.getEnumValues(def.entries);\n    const valuesSet = new Set(values);\n    inst._zod.values = valuesSet;\n    inst._zod.pattern = new RegExp(`^(${values\n        .filter((k) => util.propertyKeyTypes.has(typeof k))\n        .map((o) => (typeof o === \"string\" ? util.escapeRegex(o) : o.toString()))\n        .join(\"|\")})$`);\n    inst._zod.parse = (payload, _ctx) => {\n        const input = payload.value;\n        if (valuesSet.has(input)) {\n            return payload;\n        }\n        payload.issues.push({\n            code: \"invalid_value\",\n            values,\n            input,\n            inst,\n        });\n        return payload;\n    };\n});\nexport const $ZodLiteral = /*@__PURE__*/ core.$constructor(\"$ZodLiteral\", (inst, def) => {\n    $ZodType.init(inst, def);\n    if (def.values.length === 0) {\n        throw new Error(\"Cannot create literal schema with no valid values\");\n    }\n    inst._zod.values = new Set(def.values);\n    inst._zod.pattern = new RegExp(`^(${def.values\n        .map((o) => (typeof o === \"string\" ? util.escapeRegex(o) : o ? util.escapeRegex(o.toString()) : String(o)))\n        .join(\"|\")})$`);\n    inst._zod.parse = (payload, _ctx) => {\n        const input = payload.value;\n        if (inst._zod.values.has(input)) {\n            return payload;\n        }\n        payload.issues.push({\n            code: \"invalid_value\",\n            values: def.values,\n            input,\n            inst,\n        });\n        return payload;\n    };\n});\nexport const $ZodFile = /*@__PURE__*/ core.$constructor(\"$ZodFile\", (inst, def) => {\n    $ZodType.init(inst, def);\n    inst._zod.parse = (payload, _ctx) => {\n        const input = payload.value;\n        // @ts-ignore\n        if (input instanceof File)\n            return payload;\n        payload.issues.push({\n            expected: \"file\",\n            code: \"invalid_type\",\n            input,\n            inst,\n        });\n        return payload;\n    };\n});\nexport const $ZodTransform = /*@__PURE__*/ core.$constructor(\"$ZodTransform\", (inst, def) => {\n    $ZodType.init(inst, def);\n    inst._zod.parse = (payload, ctx) => {\n        if (ctx.direction === \"backward\") {\n            throw new core.$ZodEncodeError(inst.constructor.name);\n        }\n        const _out = def.transform(payload.value, payload);\n        if (ctx.async) {\n            const output = _out instanceof Promise ? _out : Promise.resolve(_out);\n            return output.then((output) => {\n                payload.value = output;\n                return payload;\n            });\n        }\n        if (_out instanceof Promise) {\n            throw new core.$ZodAsyncError();\n        }\n        payload.value = _out;\n        return payload;\n    };\n});\nfunction handleOptionalResult(result, input) {\n    if (result.issues.length && input === undefined) {\n        return { issues: [], value: undefined };\n    }\n    return result;\n}\nexport const $ZodOptional = /*@__PURE__*/ core.$constructor(\"$ZodOptional\", (inst, def) => {\n    $ZodType.init(inst, def);\n    inst._zod.optin = \"optional\";\n    inst._zod.optout = \"optional\";\n    util.defineLazy(inst._zod, \"values\", () => {\n        return def.innerType._zod.values ? new Set([...def.innerType._zod.values, undefined]) : undefined;\n    });\n    util.defineLazy(inst._zod, \"pattern\", () => {\n        const pattern = def.innerType._zod.pattern;\n        return pattern ? new RegExp(`^(${util.cleanRegex(pattern.source)})?$`) : undefined;\n    });\n    inst._zod.parse = (payload, ctx) => {\n        if (def.innerType._zod.optin === \"optional\") {\n            const result = def.innerType._zod.run(payload, ctx);\n            if (result instanceof Promise)\n                return result.then((r) => handleOptionalResult(r, payload.value));\n            return handleOptionalResult(result, payload.value);\n        }\n        if (payload.value === undefined) {\n            return payload;\n        }\n        return def.innerType._zod.run(payload, ctx);\n    };\n});\nexport const $ZodNullable = /*@__PURE__*/ core.$constructor(\"$ZodNullable\", (inst, def) => {\n    $ZodType.init(inst, def);\n    util.defineLazy(inst._zod, \"optin\", () => def.innerType._zod.optin);\n    util.defineLazy(inst._zod, \"optout\", () => def.innerType._zod.optout);\n    util.defineLazy(inst._zod, \"pattern\", () => {\n        const pattern = def.innerType._zod.pattern;\n        return pattern ? new RegExp(`^(${util.cleanRegex(pattern.source)}|null)$`) : undefined;\n    });\n    util.defineLazy(inst._zod, \"values\", () => {\n        return def.innerType._zod.values ? new Set([...def.innerType._zod.values, null]) : undefined;\n    });\n    inst._zod.parse = (payload, ctx) => {\n        // Forward direction (decode): allow null to pass through\n        if (payload.value === null)\n            return payload;\n        return def.innerType._zod.run(payload, ctx);\n    };\n});\nexport const $ZodDefault = /*@__PURE__*/ core.$constructor(\"$ZodDefault\", (inst, def) => {\n    $ZodType.init(inst, def);\n    // inst._zod.qin = \"true\";\n    inst._zod.optin = \"optional\";\n    util.defineLazy(inst._zod, \"values\", () => def.innerType._zod.values);\n    inst._zod.parse = (payload, ctx) => {\n        if (ctx.direction === \"backward\") {\n            return def.innerType._zod.run(payload, ctx);\n        }\n        // Forward direction (decode): apply defaults for undefined input\n        if (payload.value === undefined) {\n            payload.value = def.defaultValue;\n            /**\n             * $ZodDefault returns the default value immediately in forward direction.\n             * It doesn't pass the default value into the validator (\"prefault\"). There's no reason to pass the default value through validation. The validity of the default is enforced by TypeScript statically. Otherwise, it's the responsibility of the user to ensure the default is valid. In the case of pipes with divergent in/out types, you can specify the default on the `in` schema of your ZodPipe to set a \"prefault\" for the pipe.   */\n            return payload;\n        }\n        // Forward direction: continue with default handling\n        const result = def.innerType._zod.run(payload, ctx);\n        if (result instanceof Promise) {\n            return result.then((result) => handleDefaultResult(result, def));\n        }\n        return handleDefaultResult(result, def);\n    };\n});\nfunction handleDefaultResult(payload, def) {\n    if (payload.value === undefined) {\n        payload.value = def.defaultValue;\n    }\n    return payload;\n}\nexport const $ZodPrefault = /*@__PURE__*/ core.$constructor(\"$ZodPrefault\", (inst, def) => {\n    $ZodType.init(inst, def);\n    inst._zod.optin = \"optional\";\n    util.defineLazy(inst._zod, \"values\", () => def.innerType._zod.values);\n    inst._zod.parse = (payload, ctx) => {\n        if (ctx.direction === \"backward\") {\n            return def.innerType._zod.run(payload, ctx);\n        }\n        // Forward direction (decode): apply prefault for undefined input\n        if (payload.value === undefined) {\n            payload.value = def.defaultValue;\n        }\n        return def.innerType._zod.run(payload, ctx);\n    };\n});\nexport const $ZodNonOptional = /*@__PURE__*/ core.$constructor(\"$ZodNonOptional\", (inst, def) => {\n    $ZodType.init(inst, def);\n    util.defineLazy(inst._zod, \"values\", () => {\n        const v = def.innerType._zod.values;\n        return v ? new Set([...v].filter((x) => x !== undefined)) : undefined;\n    });\n    inst._zod.parse = (payload, ctx) => {\n        const result = def.innerType._zod.run(payload, ctx);\n        if (result instanceof Promise) {\n            return result.then((result) => handleNonOptionalResult(result, inst));\n        }\n        return handleNonOptionalResult(result, inst);\n    };\n});\nfunction handleNonOptionalResult(payload, inst) {\n    if (!payload.issues.length && payload.value === undefined) {\n        payload.issues.push({\n            code: \"invalid_type\",\n            expected: \"nonoptional\",\n            input: payload.value,\n            inst,\n        });\n    }\n    return payload;\n}\nexport const $ZodSuccess = /*@__PURE__*/ core.$constructor(\"$ZodSuccess\", (inst, def) => {\n    $ZodType.init(inst, def);\n    inst._zod.parse = (payload, ctx) => {\n        if (ctx.direction === \"backward\") {\n            throw new core.$ZodEncodeError(\"ZodSuccess\");\n        }\n        const result = def.innerType._zod.run(payload, ctx);\n        if (result instanceof Promise) {\n            return result.then((result) => {\n                payload.value = result.issues.length === 0;\n                return payload;\n            });\n        }\n        payload.value = result.issues.length === 0;\n        return payload;\n    };\n});\nexport const $ZodCatch = /*@__PURE__*/ core.$constructor(\"$ZodCatch\", (inst, def) => {\n    $ZodType.init(inst, def);\n    util.defineLazy(inst._zod, \"optin\", () => def.innerType._zod.optin);\n    util.defineLazy(inst._zod, \"optout\", () => def.innerType._zod.optout);\n    util.defineLazy(inst._zod, \"values\", () => def.innerType._zod.values);\n    inst._zod.parse = (payload, ctx) => {\n        if (ctx.direction === \"backward\") {\n            return def.innerType._zod.run(payload, ctx);\n        }\n        // Forward direction (decode): apply catch logic\n        const result = def.innerType._zod.run(payload, ctx);\n        if (result instanceof Promise) {\n            return result.then((result) => {\n                payload.value = result.value;\n                if (result.issues.length) {\n                    payload.value = def.catchValue({\n                        ...payload,\n                        error: {\n                            issues: result.issues.map((iss) => util.finalizeIssue(iss, ctx, core.config())),\n                        },\n                        input: payload.value,\n                    });\n                    payload.issues = [];\n                }\n                return payload;\n            });\n        }\n        payload.value = result.value;\n        if (result.issues.length) {\n            payload.value = def.catchValue({\n                ...payload,\n                error: {\n                    issues: result.issues.map((iss) => util.finalizeIssue(iss, ctx, core.config())),\n                },\n                input: payload.value,\n            });\n            payload.issues = [];\n        }\n        return payload;\n    };\n});\nexport const $ZodNaN = /*@__PURE__*/ core.$constructor(\"$ZodNaN\", (inst, def) => {\n    $ZodType.init(inst, def);\n    inst._zod.parse = (payload, _ctx) => {\n        if (typeof payload.value !== \"number\" || !Number.isNaN(payload.value)) {\n            payload.issues.push({\n                input: payload.value,\n                inst,\n                expected: \"nan\",\n                code: \"invalid_type\",\n            });\n            return payload;\n        }\n        return payload;\n    };\n});\nexport const $ZodPipe = /*@__PURE__*/ core.$constructor(\"$ZodPipe\", (inst, def) => {\n    $ZodType.init(inst, def);\n    util.defineLazy(inst._zod, \"values\", () => def.in._zod.values);\n    util.defineLazy(inst._zod, \"optin\", () => def.in._zod.optin);\n    util.defineLazy(inst._zod, \"optout\", () => def.out._zod.optout);\n    util.defineLazy(inst._zod, \"propValues\", () => def.in._zod.propValues);\n    inst._zod.parse = (payload, ctx) => {\n        if (ctx.direction === \"backward\") {\n            const right = def.out._zod.run(payload, ctx);\n            if (right instanceof Promise) {\n                return right.then((right) => handlePipeResult(right, def.in, ctx));\n            }\n            return handlePipeResult(right, def.in, ctx);\n        }\n        const left = def.in._zod.run(payload, ctx);\n        if (left instanceof Promise) {\n            return left.then((left) => handlePipeResult(left, def.out, ctx));\n        }\n        return handlePipeResult(left, def.out, ctx);\n    };\n});\nfunction handlePipeResult(left, next, ctx) {\n    if (left.issues.length) {\n        // prevent further checks\n        left.aborted = true;\n        return left;\n    }\n    return next._zod.run({ value: left.value, issues: left.issues }, ctx);\n}\nexport const $ZodCodec = /*@__PURE__*/ core.$constructor(\"$ZodCodec\", (inst, def) => {\n    $ZodType.init(inst, def);\n    util.defineLazy(inst._zod, \"values\", () => def.in._zod.values);\n    util.defineLazy(inst._zod, \"optin\", () => def.in._zod.optin);\n    util.defineLazy(inst._zod, \"optout\", () => def.out._zod.optout);\n    util.defineLazy(inst._zod, \"propValues\", () => def.in._zod.propValues);\n    inst._zod.parse = (payload, ctx) => {\n        const direction = ctx.direction || \"forward\";\n        if (direction === \"forward\") {\n            const left = def.in._zod.run(payload, ctx);\n            if (left instanceof Promise) {\n                return left.then((left) => handleCodecAResult(left, def, ctx));\n            }\n            return handleCodecAResult(left, def, ctx);\n        }\n        else {\n            const right = def.out._zod.run(payload, ctx);\n            if (right instanceof Promise) {\n                return right.then((right) => handleCodecAResult(right, def, ctx));\n            }\n            return handleCodecAResult(right, def, ctx);\n        }\n    };\n});\nfunction handleCodecAResult(result, def, ctx) {\n    if (result.issues.length) {\n        // prevent further checks\n        result.aborted = true;\n        return result;\n    }\n    const direction = ctx.direction || \"forward\";\n    if (direction === \"forward\") {\n        const transformed = def.transform(result.value, result);\n        if (transformed instanceof Promise) {\n            return transformed.then((value) => handleCodecTxResult(result, value, def.out, ctx));\n        }\n        return handleCodecTxResult(result, transformed, def.out, ctx);\n    }\n    else {\n        const transformed = def.reverseTransform(result.value, result);\n        if (transformed instanceof Promise) {\n            return transformed.then((value) => handleCodecTxResult(result, value, def.in, ctx));\n        }\n        return handleCodecTxResult(result, transformed, def.in, ctx);\n    }\n}\nfunction handleCodecTxResult(left, value, nextSchema, ctx) {\n    // Check if transform added any issues\n    if (left.issues.length) {\n        left.aborted = true;\n        return left;\n    }\n    return nextSchema._zod.run({ value, issues: left.issues }, ctx);\n}\nexport const $ZodReadonly = /*@__PURE__*/ core.$constructor(\"$ZodReadonly\", (inst, def) => {\n    $ZodType.init(inst, def);\n    util.defineLazy(inst._zod, \"propValues\", () => def.innerType._zod.propValues);\n    util.defineLazy(inst._zod, \"values\", () => def.innerType._zod.values);\n    util.defineLazy(inst._zod, \"optin\", () => def.innerType._zod.optin);\n    util.defineLazy(inst._zod, \"optout\", () => def.innerType._zod.optout);\n    inst._zod.parse = (payload, ctx) => {\n        if (ctx.direction === \"backward\") {\n            return def.innerType._zod.run(payload, ctx);\n        }\n        const result = def.innerType._zod.run(payload, ctx);\n        if (result instanceof Promise) {\n            return result.then(handleReadonlyResult);\n        }\n        return handleReadonlyResult(result);\n    };\n});\nfunction handleReadonlyResult(payload) {\n    payload.value = Object.freeze(payload.value);\n    return payload;\n}\nexport const $ZodTemplateLiteral = /*@__PURE__*/ core.$constructor(\"$ZodTemplateLiteral\", (inst, def) => {\n    $ZodType.init(inst, def);\n    const regexParts = [];\n    for (const part of def.parts) {\n        if (typeof part === \"object\" && part !== null) {\n            // is Zod schema\n            if (!part._zod.pattern) {\n                // if (!source)\n                throw new Error(`Invalid template literal part, no pattern found: ${[...part._zod.traits].shift()}`);\n            }\n            const source = part._zod.pattern instanceof RegExp ? part._zod.pattern.source : part._zod.pattern;\n            if (!source)\n                throw new Error(`Invalid template literal part: ${part._zod.traits}`);\n            const start = source.startsWith(\"^\") ? 1 : 0;\n            const end = source.endsWith(\"$\") ? source.length - 1 : source.length;\n            regexParts.push(source.slice(start, end));\n        }\n        else if (part === null || util.primitiveTypes.has(typeof part)) {\n            regexParts.push(util.escapeRegex(`${part}`));\n        }\n        else {\n            throw new Error(`Invalid template literal part: ${part}`);\n        }\n    }\n    inst._zod.pattern = new RegExp(`^${regexParts.join(\"\")}$`);\n    inst._zod.parse = (payload, _ctx) => {\n        if (typeof payload.value !== \"string\") {\n            payload.issues.push({\n                input: payload.value,\n                inst,\n                expected: \"template_literal\",\n                code: \"invalid_type\",\n            });\n            return payload;\n        }\n        inst._zod.pattern.lastIndex = 0;\n        if (!inst._zod.pattern.test(payload.value)) {\n            payload.issues.push({\n                input: payload.value,\n                inst,\n                code: \"invalid_format\",\n                format: def.format ?? \"template_literal\",\n                pattern: inst._zod.pattern.source,\n            });\n            return payload;\n        }\n        return payload;\n    };\n});\nexport const $ZodFunction = /*@__PURE__*/ core.$constructor(\"$ZodFunction\", (inst, def) => {\n    $ZodType.init(inst, def);\n    inst._def = def;\n    inst._zod.def = def;\n    inst.implement = (func) => {\n        if (typeof func !== \"function\") {\n            throw new Error(\"implement() must be called with a function\");\n        }\n        return function (...args) {\n            const parsedArgs = inst._def.input ? parse(inst._def.input, args) : args;\n            const result = Reflect.apply(func, this, parsedArgs);\n            if (inst._def.output) {\n                return parse(inst._def.output, result);\n            }\n            return result;\n        };\n    };\n    inst.implementAsync = (func) => {\n        if (typeof func !== \"function\") {\n            throw new Error(\"implementAsync() must be called with a function\");\n        }\n        return async function (...args) {\n            const parsedArgs = inst._def.input ? await parseAsync(inst._def.input, args) : args;\n            const result = await Reflect.apply(func, this, parsedArgs);\n            if (inst._def.output) {\n                return await parseAsync(inst._def.output, result);\n            }\n            return result;\n        };\n    };\n    inst._zod.parse = (payload, _ctx) => {\n        if (typeof payload.value !== \"function\") {\n            payload.issues.push({\n                code: \"invalid_type\",\n                expected: \"function\",\n                input: payload.value,\n                inst,\n            });\n            return payload;\n        }\n        // Check if output is a promise type to determine if we should use async implementation\n        const hasPromiseOutput = inst._def.output && inst._def.output._zod.def.type === \"promise\";\n        if (hasPromiseOutput) {\n            payload.value = inst.implementAsync(payload.value);\n        }\n        else {\n            payload.value = inst.implement(payload.value);\n        }\n        return payload;\n    };\n    inst.input = (...args) => {\n        const F = inst.constructor;\n        if (Array.isArray(args[0])) {\n            return new F({\n                type: \"function\",\n                input: new $ZodTuple({\n                    type: \"tuple\",\n                    items: args[0],\n                    rest: args[1],\n                }),\n                output: inst._def.output,\n            });\n        }\n        return new F({\n            type: \"function\",\n            input: args[0],\n            output: inst._def.output,\n        });\n    };\n    inst.output = (output) => {\n        const F = inst.constructor;\n        return new F({\n            type: \"function\",\n            input: inst._def.input,\n            output,\n        });\n    };\n    return inst;\n});\nexport const $ZodPromise = /*@__PURE__*/ core.$constructor(\"$ZodPromise\", (inst, def) => {\n    $ZodType.init(inst, def);\n    inst._zod.parse = (payload, ctx) => {\n        return Promise.resolve(payload.value).then((inner) => def.innerType._zod.run({ value: inner, issues: [] }, ctx));\n    };\n});\nexport const $ZodLazy = /*@__PURE__*/ core.$constructor(\"$ZodLazy\", (inst, def) => {\n    $ZodType.init(inst, def);\n    // let _innerType!: any;\n    // util.defineLazy(def, \"getter\", () => {\n    //   if (!_innerType) {\n    //     _innerType = def.getter();\n    //   }\n    //   return () => _innerType;\n    // });\n    util.defineLazy(inst._zod, \"innerType\", () => def.getter());\n    util.defineLazy(inst._zod, \"pattern\", () => inst._zod.innerType._zod.pattern);\n    util.defineLazy(inst._zod, \"propValues\", () => inst._zod.innerType._zod.propValues);\n    util.defineLazy(inst._zod, \"optin\", () => inst._zod.innerType._zod.optin ?? undefined);\n    util.defineLazy(inst._zod, \"optout\", () => inst._zod.innerType._zod.optout ?? undefined);\n    inst._zod.parse = (payload, ctx) => {\n        const inner = inst._zod.innerType;\n        return inner._zod.run(payload, ctx);\n    };\n});\nexport const $ZodCustom = /*@__PURE__*/ core.$constructor(\"$ZodCustom\", (inst, def) => {\n    checks.$ZodCheck.init(inst, def);\n    $ZodType.init(inst, def);\n    inst._zod.parse = (payload, _) => {\n        return payload;\n    };\n    inst._zod.check = (payload) => {\n        const input = payload.value;\n        const r = def.fn(input);\n        if (r instanceof Promise) {\n            return r.then((r) => handleRefineResult(r, payload, input, inst));\n        }\n        handleRefineResult(r, payload, input, inst);\n        return;\n    };\n});\nfunction handleRefineResult(result, payload, input, inst) {\n    if (!result) {\n        const _iss = {\n            code: \"custom\",\n            input,\n            inst, // incorporates params.error into issue reporting\n            path: [...(inst._zod.def.path ?? [])], // incorporates params.error into issue reporting\n            continue: !inst._zod.def.abort,\n            // params: inst._zod.def.params,\n        };\n        if (inst._zod.def.params)\n            _iss.params = inst._zod.def.params;\n        payload.issues.push(util.issue(_iss));\n    }\n}\n", "export const $output = Symbol(\"ZodOutput\");\nexport const $input = Symbol(\"ZodInput\");\nexport class $ZodRegistry {\n    constructor() {\n        this._map = new WeakMap();\n        this._idmap = new Map();\n    }\n    add(schema, ..._meta) {\n        const meta = _meta[0];\n        this._map.set(schema, meta);\n        if (meta && typeof meta === \"object\" && \"id\" in meta) {\n            if (this._idmap.has(meta.id)) {\n                throw new Error(`ID ${meta.id} already exists in the registry`);\n            }\n            this._idmap.set(meta.id, schema);\n        }\n        return this;\n    }\n    clear() {\n        this._map = new WeakMap();\n        this._idmap = new Map();\n        return this;\n    }\n    remove(schema) {\n        const meta = this._map.get(schema);\n        if (meta && typeof meta === \"object\" && \"id\" in meta) {\n            this._idmap.delete(meta.id);\n        }\n        this._map.delete(schema);\n        return this;\n    }\n    get(schema) {\n        // return this._map.get(schema) as any;\n        // inherit metadata\n        const p = schema._zod.parent;\n        if (p) {\n            const pm = { ...(this.get(p) ?? {}) };\n            delete pm.id; // do not inherit id\n            const f = { ...pm, ...this._map.get(schema) };\n            return Object.keys(f).length ? f : undefined;\n        }\n        return this._map.get(schema);\n    }\n    has(schema) {\n        return this._map.has(schema);\n    }\n}\n// registries\nexport function registry() {\n    return new $ZodRegistry();\n}\nexport const globalRegistry = /*@__PURE__*/ registry();\n", "import * as checks from \"./checks.js\";\nimport * as schemas from \"./schemas.js\";\nimport * as util from \"./util.js\";\nexport function _string(Class, params) {\n    return new Class({\n        type: \"string\",\n        ...util.normalizeParams(params),\n    });\n}\nexport function _coercedString(Class, params) {\n    return new Class({\n        type: \"string\",\n        coerce: true,\n        ...util.normalizeParams(params),\n    });\n}\nexport function _email(Class, params) {\n    return new Class({\n        type: \"string\",\n        format: \"email\",\n        check: \"string_format\",\n        abort: false,\n        ...util.normalizeParams(params),\n    });\n}\nexport function _guid(Class, params) {\n    return new Class({\n        type: \"string\",\n        format: \"guid\",\n        check: \"string_format\",\n        abort: false,\n        ...util.normalizeParams(params),\n    });\n}\nexport function _uuid(Class, params) {\n    return new Class({\n        type: \"string\",\n        format: \"uuid\",\n        check: \"string_format\",\n        abort: false,\n        ...util.normalizeParams(params),\n    });\n}\nexport function _uuidv4(Class, params) {\n    return new Class({\n        type: \"string\",\n        format: \"uuid\",\n        check: \"string_format\",\n        abort: false,\n        version: \"v4\",\n        ...util.normalizeParams(params),\n    });\n}\nexport function _uuidv6(Class, params) {\n    return new Class({\n        type: \"string\",\n        format: \"uuid\",\n        check: \"string_format\",\n        abort: false,\n        version: \"v6\",\n        ...util.normalizeParams(params),\n    });\n}\nexport function _uuidv7(Class, params) {\n    return new Class({\n        type: \"string\",\n        format: \"uuid\",\n        check: \"string_format\",\n        abort: false,\n        version: \"v7\",\n        ...util.normalizeParams(params),\n    });\n}\nexport function _url(Class, params) {\n    return new Class({\n        type: \"string\",\n        format: \"url\",\n        check: \"string_format\",\n        abort: false,\n        ...util.normalizeParams(params),\n    });\n}\nexport function _emoji(Class, params) {\n    return new Class({\n        type: \"string\",\n        format: \"emoji\",\n        check: \"string_format\",\n        abort: false,\n        ...util.normalizeParams(params),\n    });\n}\nexport function _nanoid(Class, params) {\n    return new Class({\n        type: \"string\",\n        format: \"nanoid\",\n        check: \"string_format\",\n        abort: false,\n        ...util.normalizeParams(params),\n    });\n}\nexport function _cuid(Class, params) {\n    return new Class({\n        type: \"string\",\n        format: \"cuid\",\n        check: \"string_format\",\n        abort: false,\n        ...util.normalizeParams(params),\n    });\n}\nexport function _cuid2(Class, params) {\n    return new Class({\n        type: \"string\",\n        format: \"cuid2\",\n        check: \"string_format\",\n        abort: false,\n        ...util.normalizeParams(params),\n    });\n}\nexport function _ulid(Class, params) {\n    return new Class({\n        type: \"string\",\n        format: \"ulid\",\n        check: \"string_format\",\n        abort: false,\n        ...util.normalizeParams(params),\n    });\n}\nexport function _xid(Class, params) {\n    return new Class({\n        type: \"string\",\n        format: \"xid\",\n        check: \"string_format\",\n        abort: false,\n        ...util.normalizeParams(params),\n    });\n}\nexport function _ksuid(Class, params) {\n    return new Class({\n        type: \"string\",\n        format: \"ksuid\",\n        check: \"string_format\",\n        abort: false,\n        ...util.normalizeParams(params),\n    });\n}\nexport function _ipv4(Class, params) {\n    return new Class({\n        type: \"string\",\n        format: \"ipv4\",\n        check: \"string_format\",\n        abort: false,\n        ...util.normalizeParams(params),\n    });\n}\nexport function _ipv6(Class, params) {\n    return new Class({\n        type: \"string\",\n        format: \"ipv6\",\n        check: \"string_format\",\n        abort: false,\n        ...util.normalizeParams(params),\n    });\n}\nexport function _cidrv4(Class, params) {\n    return new Class({\n        type: \"string\",\n        format: \"cidrv4\",\n        check: \"string_format\",\n        abort: false,\n        ...util.normalizeParams(params),\n    });\n}\nexport function _cidrv6(Class, params) {\n    return new Class({\n        type: \"string\",\n        format: \"cidrv6\",\n        check: \"string_format\",\n        abort: false,\n        ...util.normalizeParams(params),\n    });\n}\nexport function _base64(Class, params) {\n    return new Class({\n        type: \"string\",\n        format: \"base64\",\n        check: \"string_format\",\n        abort: false,\n        ...util.normalizeParams(params),\n    });\n}\nexport function _base64url(Class, params) {\n    return new Class({\n        type: \"string\",\n        format: \"base64url\",\n        check: \"string_format\",\n        abort: false,\n        ...util.normalizeParams(params),\n    });\n}\nexport function _e164(Class, params) {\n    return new Class({\n        type: \"string\",\n        format: \"e164\",\n        check: \"string_format\",\n        abort: false,\n        ...util.normalizeParams(params),\n    });\n}\nexport function _jwt(Class, params) {\n    return new Class({\n        type: \"string\",\n        format: \"jwt\",\n        check: \"string_format\",\n        abort: false,\n        ...util.normalizeParams(params),\n    });\n}\nexport const TimePrecision = {\n    Any: null,\n    Minute: -1,\n    Second: 0,\n    Millisecond: 3,\n    Microsecond: 6,\n};\nexport function _isoDateTime(Class, params) {\n    return new Class({\n        type: \"string\",\n        format: \"datetime\",\n        check: \"string_format\",\n        offset: false,\n        local: false,\n        precision: null,\n        ...util.normalizeParams(params),\n    });\n}\nexport function _isoDate(Class, params) {\n    return new Class({\n        type: \"string\",\n        format: \"date\",\n        check: \"string_format\",\n        ...util.normalizeParams(params),\n    });\n}\nexport function _isoTime(Class, params) {\n    return new Class({\n        type: \"string\",\n        format: \"time\",\n        check: \"string_format\",\n        precision: null,\n        ...util.normalizeParams(params),\n    });\n}\nexport function _isoDuration(Class, params) {\n    return new Class({\n        type: \"string\",\n        format: \"duration\",\n        check: \"string_format\",\n        ...util.normalizeParams(params),\n    });\n}\nexport function _number(Class, params) {\n    return new Class({\n        type: \"number\",\n        checks: [],\n        ...util.normalizeParams(params),\n    });\n}\nexport function _coercedNumber(Class, params) {\n    return new Class({\n        type: \"number\",\n        coerce: true,\n        checks: [],\n        ...util.normalizeParams(params),\n    });\n}\nexport function _int(Class, params) {\n    return new Class({\n        type: \"number\",\n        check: \"number_format\",\n        abort: false,\n        format: \"safeint\",\n        ...util.normalizeParams(params),\n    });\n}\nexport function _float32(Class, params) {\n    return new Class({\n        type: \"number\",\n        check: \"number_format\",\n        abort: false,\n        format: \"float32\",\n        ...util.normalizeParams(params),\n    });\n}\nexport function _float64(Class, params) {\n    return new Class({\n        type: \"number\",\n        check: \"number_format\",\n        abort: false,\n        format: \"float64\",\n        ...util.normalizeParams(params),\n    });\n}\nexport function _int32(Class, params) {\n    return new Class({\n        type: \"number\",\n        check: \"number_format\",\n        abort: false,\n        format: \"int32\",\n        ...util.normalizeParams(params),\n    });\n}\nexport function _uint32(Class, params) {\n    return new Class({\n        type: \"number\",\n        check: \"number_format\",\n        abort: false,\n        format: \"uint32\",\n        ...util.normalizeParams(params),\n    });\n}\nexport function _boolean(Class, params) {\n    return new Class({\n        type: \"boolean\",\n        ...util.normalizeParams(params),\n    });\n}\nexport function _coercedBoolean(Class, params) {\n    return new Class({\n        type: \"boolean\",\n        coerce: true,\n        ...util.normalizeParams(params),\n    });\n}\nexport function _bigint(Class, params) {\n    return new Class({\n        type: \"bigint\",\n        ...util.normalizeParams(params),\n    });\n}\nexport function _coercedBigint(Class, params) {\n    return new Class({\n        type: \"bigint\",\n        coerce: true,\n        ...util.normalizeParams(params),\n    });\n}\nexport function _int64(Class, params) {\n    return new Class({\n        type: \"bigint\",\n        check: \"bigint_format\",\n        abort: false,\n        format: \"int64\",\n        ...util.normalizeParams(params),\n    });\n}\nexport function _uint64(Class, params) {\n    return new Class({\n        type: \"bigint\",\n        check: \"bigint_format\",\n        abort: false,\n        format: \"uint64\",\n        ...util.normalizeParams(params),\n    });\n}\nexport function _symbol(Class, params) {\n    return new Class({\n        type: \"symbol\",\n        ...util.normalizeParams(params),\n    });\n}\nexport function _undefined(Class, params) {\n    return new Class({\n        type: \"undefined\",\n        ...util.normalizeParams(params),\n    });\n}\nexport function _null(Class, params) {\n    return new Class({\n        type: \"null\",\n        ...util.normalizeParams(params),\n    });\n}\nexport function _any(Class) {\n    return new Class({\n        type: \"any\",\n    });\n}\nexport function _unknown(Class) {\n    return new Class({\n        type: \"unknown\",\n    });\n}\nexport function _never(Class, params) {\n    return new Class({\n        type: \"never\",\n        ...util.normalizeParams(params),\n    });\n}\nexport function _void(Class, params) {\n    return new Class({\n        type: \"void\",\n        ...util.normalizeParams(params),\n    });\n}\nexport function _date(Class, params) {\n    return new Class({\n        type: \"date\",\n        ...util.normalizeParams(params),\n    });\n}\nexport function _coercedDate(Class, params) {\n    return new Class({\n        type: \"date\",\n        coerce: true,\n        ...util.normalizeParams(params),\n    });\n}\nexport function _nan(Class, params) {\n    return new Class({\n        type: \"nan\",\n        ...util.normalizeParams(params),\n    });\n}\nexport function _lt(value, params) {\n    return new checks.$ZodCheckLessThan({\n        check: \"less_than\",\n        ...util.normalizeParams(params),\n        value,\n        inclusive: false,\n    });\n}\nexport function _lte(value, params) {\n    return new checks.$ZodCheckLessThan({\n        check: \"less_than\",\n        ...util.normalizeParams(params),\n        value,\n        inclusive: true,\n    });\n}\nexport { \n/** @deprecated Use `z.lte()` instead. */\n_lte as _max, };\nexport function _gt(value, params) {\n    return new checks.$ZodCheckGreaterThan({\n        check: \"greater_than\",\n        ...util.normalizeParams(params),\n        value,\n        inclusive: false,\n    });\n}\nexport function _gte(value, params) {\n    return new checks.$ZodCheckGreaterThan({\n        check: \"greater_than\",\n        ...util.normalizeParams(params),\n        value,\n        inclusive: true,\n    });\n}\nexport { \n/** @deprecated Use `z.gte()` instead. */\n_gte as _min, };\nexport function _positive(params) {\n    return _gt(0, params);\n}\n// negative\nexport function _negative(params) {\n    return _lt(0, params);\n}\n// nonpositive\nexport function _nonpositive(params) {\n    return _lte(0, params);\n}\n// nonnegative\nexport function _nonnegative(params) {\n    return _gte(0, params);\n}\nexport function _multipleOf(value, params) {\n    return new checks.$ZodCheckMultipleOf({\n        check: \"multiple_of\",\n        ...util.normalizeParams(params),\n        value,\n    });\n}\nexport function _maxSize(maximum, params) {\n    return new checks.$ZodCheckMaxSize({\n        check: \"max_size\",\n        ...util.normalizeParams(params),\n        maximum,\n    });\n}\nexport function _minSize(minimum, params) {\n    return new checks.$ZodCheckMinSize({\n        check: \"min_size\",\n        ...util.normalizeParams(params),\n        minimum,\n    });\n}\nexport function _size(size, params) {\n    return new checks.$ZodCheckSizeEquals({\n        check: \"size_equals\",\n        ...util.normalizeParams(params),\n        size,\n    });\n}\nexport function _maxLength(maximum, params) {\n    const ch = new checks.$ZodCheckMaxLength({\n        check: \"max_length\",\n        ...util.normalizeParams(params),\n        maximum,\n    });\n    return ch;\n}\nexport function _minLength(minimum, params) {\n    return new checks.$ZodCheckMinLength({\n        check: \"min_length\",\n        ...util.normalizeParams(params),\n        minimum,\n    });\n}\nexport function _length(length, params) {\n    return new checks.$ZodCheckLengthEquals({\n        check: \"length_equals\",\n        ...util.normalizeParams(params),\n        length,\n    });\n}\nexport function _regex(pattern, params) {\n    return new checks.$ZodCheckRegex({\n        check: \"string_format\",\n        format: \"regex\",\n        ...util.normalizeParams(params),\n        pattern,\n    });\n}\nexport function _lowercase(params) {\n    return new checks.$ZodCheckLowerCase({\n        check: \"string_format\",\n        format: \"lowercase\",\n        ...util.normalizeParams(params),\n    });\n}\nexport function _uppercase(params) {\n    return new checks.$ZodCheckUpperCase({\n        check: \"string_format\",\n        format: \"uppercase\",\n        ...util.normalizeParams(params),\n    });\n}\nexport function _includes(includes, params) {\n    return new checks.$ZodCheckIncludes({\n        check: \"string_format\",\n        format: \"includes\",\n        ...util.normalizeParams(params),\n        includes,\n    });\n}\nexport function _startsWith(prefix, params) {\n    return new checks.$ZodCheckStartsWith({\n        check: \"string_format\",\n        format: \"starts_with\",\n        ...util.normalizeParams(params),\n        prefix,\n    });\n}\nexport function _endsWith(suffix, params) {\n    return new checks.$ZodCheckEndsWith({\n        check: \"string_format\",\n        format: \"ends_with\",\n        ...util.normalizeParams(params),\n        suffix,\n    });\n}\nexport function _property(property, schema, params) {\n    return new checks.$ZodCheckProperty({\n        check: \"property\",\n        property,\n        schema,\n        ...util.normalizeParams(params),\n    });\n}\nexport function _mime(types, params) {\n    return new checks.$ZodCheckMimeType({\n        check: \"mime_type\",\n        mime: types,\n        ...util.normalizeParams(params),\n    });\n}\nexport function _overwrite(tx) {\n    return new checks.$ZodCheckOverwrite({\n        check: \"overwrite\",\n        tx,\n    });\n}\n// normalize\nexport function _normalize(form) {\n    return _overwrite((input) => input.normalize(form));\n}\n// trim\nexport function _trim() {\n    return _overwrite((input) => input.trim());\n}\n// toLowerCase\nexport function _toLowerCase() {\n    return _overwrite((input) => input.toLowerCase());\n}\n// toUpperCase\nexport function _toUpperCase() {\n    return _overwrite((input) => input.toUpperCase());\n}\nexport function _array(Class, element, params) {\n    return new Class({\n        type: \"array\",\n        element,\n        // get element() {\n        //   return element;\n        // },\n        ...util.normalizeParams(params),\n    });\n}\nexport function _union(Class, options, params) {\n    return new Class({\n        type: \"union\",\n        options,\n        ...util.normalizeParams(params),\n    });\n}\nexport function _discriminatedUnion(Class, discriminator, options, params) {\n    return new Class({\n        type: \"union\",\n        options,\n        discriminator,\n        ...util.normalizeParams(params),\n    });\n}\nexport function _intersection(Class, left, right) {\n    return new Class({\n        type: \"intersection\",\n        left,\n        right,\n    });\n}\n// export function _tuple(\n//   Class: util.SchemaClass<schemas.$ZodTuple>,\n//   items: [],\n//   params?: string | $ZodTupleParams\n// ): schemas.$ZodTuple<[], null>;\nexport function _tuple(Class, items, _paramsOrRest, _params) {\n    const hasRest = _paramsOrRest instanceof schemas.$ZodType;\n    const params = hasRest ? _params : _paramsOrRest;\n    const rest = hasRest ? _paramsOrRest : null;\n    return new Class({\n        type: \"tuple\",\n        items,\n        rest,\n        ...util.normalizeParams(params),\n    });\n}\nexport function _record(Class, keyType, valueType, params) {\n    return new Class({\n        type: \"record\",\n        keyType,\n        valueType,\n        ...util.normalizeParams(params),\n    });\n}\nexport function _map(Class, keyType, valueType, params) {\n    return new Class({\n        type: \"map\",\n        keyType,\n        valueType,\n        ...util.normalizeParams(params),\n    });\n}\nexport function _set(Class, valueType, params) {\n    return new Class({\n        type: \"set\",\n        valueType,\n        ...util.normalizeParams(params),\n    });\n}\nexport function _enum(Class, values, params) {\n    const entries = Array.isArray(values) ? Object.fromEntries(values.map((v) => [v, v])) : values;\n    // if (Array.isArray(values)) {\n    //   for (const value of values) {\n    //     entries[value] = value;\n    //   }\n    // } else {\n    //   Object.assign(entries, values);\n    // }\n    // const entries: util.EnumLike = {};\n    // for (const val of values) {\n    //   entries[val] = val;\n    // }\n    return new Class({\n        type: \"enum\",\n        entries,\n        ...util.normalizeParams(params),\n    });\n}\n/** @deprecated This API has been merged into `z.enum()`. Use `z.enum()` instead.\n *\n * ```ts\n * enum Colors { red, green, blue }\n * z.enum(Colors);\n * ```\n */\nexport function _nativeEnum(Class, entries, params) {\n    return new Class({\n        type: \"enum\",\n        entries,\n        ...util.normalizeParams(params),\n    });\n}\nexport function _literal(Class, value, params) {\n    return new Class({\n        type: \"literal\",\n        values: Array.isArray(value) ? value : [value],\n        ...util.normalizeParams(params),\n    });\n}\nexport function _file(Class, params) {\n    return new Class({\n        type: \"file\",\n        ...util.normalizeParams(params),\n    });\n}\nexport function _transform(Class, fn) {\n    return new Class({\n        type: \"transform\",\n        transform: fn,\n    });\n}\nexport function _optional(Class, innerType) {\n    return new Class({\n        type: \"optional\",\n        innerType,\n    });\n}\nexport function _nullable(Class, innerType) {\n    return new Class({\n        type: \"nullable\",\n        innerType,\n    });\n}\nexport function _default(Class, innerType, defaultValue) {\n    return new Class({\n        type: \"default\",\n        innerType,\n        get defaultValue() {\n            return typeof defaultValue === \"function\" ? defaultValue() : util.shallowClone(defaultValue);\n        },\n    });\n}\nexport function _nonoptional(Class, innerType, params) {\n    return new Class({\n        type: \"nonoptional\",\n        innerType,\n        ...util.normalizeParams(params),\n    });\n}\nexport function _success(Class, innerType) {\n    return new Class({\n        type: \"success\",\n        innerType,\n    });\n}\nexport function _catch(Class, innerType, catchValue) {\n    return new Class({\n        type: \"catch\",\n        innerType,\n        catchValue: (typeof catchValue === \"function\" ? catchValue : () => catchValue),\n    });\n}\nexport function _pipe(Class, in_, out) {\n    return new Class({\n        type: \"pipe\",\n        in: in_,\n        out,\n    });\n}\nexport function _readonly(Class, innerType) {\n    return new Class({\n        type: \"readonly\",\n        innerType,\n    });\n}\nexport function _templateLiteral(Class, parts, params) {\n    return new Class({\n        type: \"template_literal\",\n        parts,\n        ...util.normalizeParams(params),\n    });\n}\nexport function _lazy(Class, getter) {\n    return new Class({\n        type: \"lazy\",\n        getter,\n    });\n}\nexport function _promise(Class, innerType) {\n    return new Class({\n        type: \"promise\",\n        innerType,\n    });\n}\nexport function _custom(Class, fn, _params) {\n    const norm = util.normalizeParams(_params);\n    norm.abort ?? (norm.abort = true); // default to abort:false\n    const schema = new Class({\n        type: \"custom\",\n        check: \"custom\",\n        fn: fn,\n        ...norm,\n    });\n    return schema;\n}\n// same as _custom but defaults to abort:false\nexport function _refine(Class, fn, _params) {\n    const schema = new Class({\n        type: \"custom\",\n        check: \"custom\",\n        fn: fn,\n        ...util.normalizeParams(_params),\n    });\n    return schema;\n}\nexport function _superRefine(fn) {\n    const ch = _check((payload) => {\n        payload.addIssue = (issue) => {\n            if (typeof issue === \"string\") {\n                payload.issues.push(util.issue(issue, payload.value, ch._zod.def));\n            }\n            else {\n                // for Zod 3 backwards compatibility\n                const _issue = issue;\n                if (_issue.fatal)\n                    _issue.continue = false;\n                _issue.code ?? (_issue.code = \"custom\");\n                _issue.input ?? (_issue.input = payload.value);\n                _issue.inst ?? (_issue.inst = ch);\n                _issue.continue ?? (_issue.continue = !ch._zod.def.abort); // abort is always undefined, so this is always true...\n                payload.issues.push(util.issue(_issue));\n            }\n        };\n        return fn(payload.value, payload);\n    });\n    return ch;\n}\nexport function _check(fn, params) {\n    const ch = new checks.$ZodCheck({\n        check: \"custom\",\n        ...util.normalizeParams(params),\n    });\n    ch._zod.check = fn;\n    return ch;\n}\nexport function _stringbool(Classes, _params) {\n    const params = util.normalizeParams(_params);\n    let truthyArray = params.truthy ?? [\"true\", \"1\", \"yes\", \"on\", \"y\", \"enabled\"];\n    let falsyArray = params.falsy ?? [\"false\", \"0\", \"no\", \"off\", \"n\", \"disabled\"];\n    if (params.case !== \"sensitive\") {\n        truthyArray = truthyArray.map((v) => (typeof v === \"string\" ? v.toLowerCase() : v));\n        falsyArray = falsyArray.map((v) => (typeof v === \"string\" ? v.toLowerCase() : v));\n    }\n    const truthySet = new Set(truthyArray);\n    const falsySet = new Set(falsyArray);\n    const _Codec = Classes.Codec ?? schemas.$ZodCodec;\n    const _Boolean = Classes.Boolean ?? schemas.$ZodBoolean;\n    const _String = Classes.String ?? schemas.$ZodString;\n    const stringSchema = new _String({ type: \"string\", error: params.error });\n    const booleanSchema = new _Boolean({ type: \"boolean\", error: params.error });\n    const codec = new _Codec({\n        type: \"pipe\",\n        in: stringSchema,\n        out: booleanSchema,\n        transform: ((input, payload) => {\n            let data = input;\n            if (params.case !== \"sensitive\")\n                data = data.toLowerCase();\n            if (truthySet.has(data)) {\n                return true;\n            }\n            else if (falsySet.has(data)) {\n                return false;\n            }\n            else {\n                payload.issues.push({\n                    code: \"invalid_value\",\n                    expected: \"stringbool\",\n                    values: [...truthySet, ...falsySet],\n                    input: payload.value,\n                    inst: codec,\n                    continue: false,\n                });\n                return {};\n            }\n        }),\n        reverseTransform: ((input, _payload) => {\n            if (input === true) {\n                return truthyArray[0] || \"true\";\n            }\n            else {\n                return falsyArray[0] || \"false\";\n            }\n        }),\n        error: params.error,\n    });\n    return codec;\n}\nexport function _stringFormat(Class, format, fnOrRegex, _params = {}) {\n    const params = util.normalizeParams(_params);\n    const def = {\n        ...util.normalizeParams(_params),\n        check: \"string_format\",\n        type: \"string\",\n        format,\n        fn: typeof fnOrRegex === \"function\" ? fnOrRegex : (val) => fnOrRegex.test(val),\n        ...params,\n    };\n    if (fnOrRegex instanceof RegExp) {\n        def.pattern = fnOrRegex;\n    }\n    const inst = new Class(def);\n    return inst;\n}\n", "import * as core from \"../core/index.js\";\nimport * as schemas from \"./schemas.js\";\nexport const ZodISODateTime = /*@__PURE__*/ core.$constructor(\"ZodISODateTime\", (inst, def) => {\n    core.$ZodISODateTime.init(inst, def);\n    schemas.ZodStringFormat.init(inst, def);\n});\nexport function datetime(params) {\n    return core._isoDateTime(ZodISODateTime, params);\n}\nexport const ZodISODate = /*@__PURE__*/ core.$constructor(\"ZodISODate\", (inst, def) => {\n    core.$ZodISODate.init(inst, def);\n    schemas.ZodStringFormat.init(inst, def);\n});\nexport function date(params) {\n    return core._isoDate(ZodISODate, params);\n}\nexport const ZodISOTime = /*@__PURE__*/ core.$constructor(\"ZodISOTime\", (inst, def) => {\n    core.$ZodISOTime.init(inst, def);\n    schemas.ZodStringFormat.init(inst, def);\n});\nexport function time(params) {\n    return core._isoTime(ZodISOTime, params);\n}\nexport const ZodISODuration = /*@__PURE__*/ core.$constructor(\"ZodISODuration\", (inst, def) => {\n    core.$ZodISODuration.init(inst, def);\n    schemas.ZodStringFormat.init(inst, def);\n});\nexport function duration(params) {\n    return core._isoDuration(ZodISODuration, params);\n}\n", "import * as core from \"../core/index.js\";\nimport { $ZodError } from \"../core/index.js\";\nimport * as util from \"../core/util.js\";\nconst initializer = (inst, issues) => {\n    $ZodError.init(inst, issues);\n    inst.name = \"ZodError\";\n    Object.defineProperties(inst, {\n        format: {\n            value: (mapper) => core.formatError(inst, mapper),\n            // enumerable: false,\n        },\n        flatten: {\n            value: (mapper) => core.flattenError(inst, mapper),\n            // enumerable: false,\n        },\n        addIssue: {\n            value: (issue) => {\n                inst.issues.push(issue);\n                inst.message = JSON.stringify(inst.issues, util.jsonStringifyReplacer, 2);\n            },\n            // enumerable: false,\n        },\n        addIssues: {\n            value: (issues) => {\n                inst.issues.push(...issues);\n                inst.message = JSON.stringify(inst.issues, util.jsonStringifyReplacer, 2);\n            },\n            // enumerable: false,\n        },\n        isEmpty: {\n            get() {\n                return inst.issues.length === 0;\n            },\n            // enumerable: false,\n        },\n    });\n    // Object.defineProperty(inst, \"isEmpty\", {\n    //   get() {\n    //     return inst.issues.length === 0;\n    //   },\n    // });\n};\nexport const ZodError = core.$constructor(\"ZodError\", initializer);\nexport const ZodRealError = core.$constructor(\"ZodError\", initializer, {\n    Parent: Error,\n});\n// /** @deprecated Use `z.core.$ZodErrorMapCtx` instead. */\n// export type ErrorMapCtx = core.$ZodErrorMapCtx;\n", "import * as core from \"../core/index.js\";\nimport { ZodRealError } from \"./errors.js\";\nexport const parse = /* @__PURE__ */ core._parse(ZodRealError);\nexport const parseAsync = /* @__PURE__ */ core._parseAsync(ZodRealError);\nexport const safeParse = /* @__PURE__ */ core._safeParse(ZodRealError);\nexport const safeParseAsync = /* @__PURE__ */ core._safeParseAsync(ZodRealError);\n// Codec functions\nexport const encode = /* @__PURE__ */ core._encode(ZodRealError);\nexport const decode = /* @__PURE__ */ core._decode(ZodRealError);\nexport const encodeAsync = /* @__PURE__ */ core._encodeAsync(ZodRealError);\nexport const decodeAsync = /* @__PURE__ */ core._decodeAsync(ZodRealError);\nexport const safeEncode = /* @__PURE__ */ core._safeEncode(ZodRealError);\nexport const safeDecode = /* @__PURE__ */ core._safeDecode(ZodRealError);\nexport const safeEncodeAsync = /* @__PURE__ */ core._safeEncodeAsync(ZodRealError);\nexport const safeDecodeAsync = /* @__PURE__ */ core._safeDecodeAsync(ZodRealError);\n", "import * as core from \"../core/index.js\";\nimport { util } from \"../core/index.js\";\nimport * as checks from \"./checks.js\";\nimport * as iso from \"./iso.js\";\nimport * as parse from \"./parse.js\";\nexport const ZodType = /*@__PURE__*/ core.$constructor(\"ZodType\", (inst, def) => {\n    core.$ZodType.init(inst, def);\n    inst.def = def;\n    inst.type = def.type;\n    Object.defineProperty(inst, \"_def\", { value: def });\n    // base methods\n    inst.check = (...checks) => {\n        return inst.clone(util.mergeDefs(def, {\n            checks: [\n                ...(def.checks ?? []),\n                ...checks.map((ch) => typeof ch === \"function\" ? { _zod: { check: ch, def: { check: \"custom\" }, onattach: [] } } : ch),\n            ],\n        }));\n    };\n    inst.clone = (def, params) => core.clone(inst, def, params);\n    inst.brand = () => inst;\n    inst.register = ((reg, meta) => {\n        reg.add(inst, meta);\n        return inst;\n    });\n    // parsing\n    inst.parse = (data, params) => parse.parse(inst, data, params, { callee: inst.parse });\n    inst.safeParse = (data, params) => parse.safeParse(inst, data, params);\n    inst.parseAsync = async (data, params) => parse.parseAsync(inst, data, params, { callee: inst.parseAsync });\n    inst.safeParseAsync = async (data, params) => parse.safeParseAsync(inst, data, params);\n    inst.spa = inst.safeParseAsync;\n    // encoding/decoding\n    inst.encode = (data, params) => parse.encode(inst, data, params);\n    inst.decode = (data, params) => parse.decode(inst, data, params);\n    inst.encodeAsync = async (data, params) => parse.encodeAsync(inst, data, params);\n    inst.decodeAsync = async (data, params) => parse.decodeAsync(inst, data, params);\n    inst.safeEncode = (data, params) => parse.safeEncode(inst, data, params);\n    inst.safeDecode = (data, params) => parse.safeDecode(inst, data, params);\n    inst.safeEncodeAsync = async (data, params) => parse.safeEncodeAsync(inst, data, params);\n    inst.safeDecodeAsync = async (data, params) => parse.safeDecodeAsync(inst, data, params);\n    // refinements\n    inst.refine = (check, params) => inst.check(refine(check, params));\n    inst.superRefine = (refinement) => inst.check(superRefine(refinement));\n    inst.overwrite = (fn) => inst.check(checks.overwrite(fn));\n    // wrappers\n    inst.optional = () => optional(inst);\n    inst.nullable = () => nullable(inst);\n    inst.nullish = () => optional(nullable(inst));\n    inst.nonoptional = (params) => nonoptional(inst, params);\n    inst.array = () => array(inst);\n    inst.or = (arg) => union([inst, arg]);\n    inst.and = (arg) => intersection(inst, arg);\n    inst.transform = (tx) => pipe(inst, transform(tx));\n    inst.default = (def) => _default(inst, def);\n    inst.prefault = (def) => prefault(inst, def);\n    // inst.coalesce = (def, params) => coalesce(inst, def, params);\n    inst.catch = (params) => _catch(inst, params);\n    inst.pipe = (target) => pipe(inst, target);\n    inst.readonly = () => readonly(inst);\n    // meta\n    inst.describe = (description) => {\n        const cl = inst.clone();\n        core.globalRegistry.add(cl, { description });\n        return cl;\n    };\n    Object.defineProperty(inst, \"description\", {\n        get() {\n            return core.globalRegistry.get(inst)?.description;\n        },\n        configurable: true,\n    });\n    inst.meta = (...args) => {\n        if (args.length === 0) {\n            return core.globalRegistry.get(inst);\n        }\n        const cl = inst.clone();\n        core.globalRegistry.add(cl, args[0]);\n        return cl;\n    };\n    // helpers\n    inst.isOptional = () => inst.safeParse(undefined).success;\n    inst.isNullable = () => inst.safeParse(null).success;\n    return inst;\n});\n/** @internal */\nexport const _ZodString = /*@__PURE__*/ core.$constructor(\"_ZodString\", (inst, def) => {\n    core.$ZodString.init(inst, def);\n    ZodType.init(inst, def);\n    const bag = inst._zod.bag;\n    inst.format = bag.format ?? null;\n    inst.minLength = bag.minimum ?? null;\n    inst.maxLength = bag.maximum ?? null;\n    // validations\n    inst.regex = (...args) => inst.check(checks.regex(...args));\n    inst.includes = (...args) => inst.check(checks.includes(...args));\n    inst.startsWith = (...args) => inst.check(checks.startsWith(...args));\n    inst.endsWith = (...args) => inst.check(checks.endsWith(...args));\n    inst.min = (...args) => inst.check(checks.minLength(...args));\n    inst.max = (...args) => inst.check(checks.maxLength(...args));\n    inst.length = (...args) => inst.check(checks.length(...args));\n    inst.nonempty = (...args) => inst.check(checks.minLength(1, ...args));\n    inst.lowercase = (params) => inst.check(checks.lowercase(params));\n    inst.uppercase = (params) => inst.check(checks.uppercase(params));\n    // transforms\n    inst.trim = () => inst.check(checks.trim());\n    inst.normalize = (...args) => inst.check(checks.normalize(...args));\n    inst.toLowerCase = () => inst.check(checks.toLowerCase());\n    inst.toUpperCase = () => inst.check(checks.toUpperCase());\n});\nexport const ZodString = /*@__PURE__*/ core.$constructor(\"ZodString\", (inst, def) => {\n    core.$ZodString.init(inst, def);\n    _ZodString.init(inst, def);\n    inst.email = (params) => inst.check(core._email(ZodEmail, params));\n    inst.url = (params) => inst.check(core._url(ZodURL, params));\n    inst.jwt = (params) => inst.check(core._jwt(ZodJWT, params));\n    inst.emoji = (params) => inst.check(core._emoji(ZodEmoji, params));\n    inst.guid = (params) => inst.check(core._guid(ZodGUID, params));\n    inst.uuid = (params) => inst.check(core._uuid(ZodUUID, params));\n    inst.uuidv4 = (params) => inst.check(core._uuidv4(ZodUUID, params));\n    inst.uuidv6 = (params) => inst.check(core._uuidv6(ZodUUID, params));\n    inst.uuidv7 = (params) => inst.check(core._uuidv7(ZodUUID, params));\n    inst.nanoid = (params) => inst.check(core._nanoid(ZodNanoID, params));\n    inst.guid = (params) => inst.check(core._guid(ZodGUID, params));\n    inst.cuid = (params) => inst.check(core._cuid(ZodCUID, params));\n    inst.cuid2 = (params) => inst.check(core._cuid2(ZodCUID2, params));\n    inst.ulid = (params) => inst.check(core._ulid(ZodULID, params));\n    inst.base64 = (params) => inst.check(core._base64(ZodBase64, params));\n    inst.base64url = (params) => inst.check(core._base64url(ZodBase64URL, params));\n    inst.xid = (params) => inst.check(core._xid(ZodXID, params));\n    inst.ksuid = (params) => inst.check(core._ksuid(ZodKSUID, params));\n    inst.ipv4 = (params) => inst.check(core._ipv4(ZodIPv4, params));\n    inst.ipv6 = (params) => inst.check(core._ipv6(ZodIPv6, params));\n    inst.cidrv4 = (params) => inst.check(core._cidrv4(ZodCIDRv4, params));\n    inst.cidrv6 = (params) => inst.check(core._cidrv6(ZodCIDRv6, params));\n    inst.e164 = (params) => inst.check(core._e164(ZodE164, params));\n    // iso\n    inst.datetime = (params) => inst.check(iso.datetime(params));\n    inst.date = (params) => inst.check(iso.date(params));\n    inst.time = (params) => inst.check(iso.time(params));\n    inst.duration = (params) => inst.check(iso.duration(params));\n});\nexport function string(params) {\n    return core._string(ZodString, params);\n}\nexport const ZodStringFormat = /*@__PURE__*/ core.$constructor(\"ZodStringFormat\", (inst, def) => {\n    core.$ZodStringFormat.init(inst, def);\n    _ZodString.init(inst, def);\n});\nexport const ZodEmail = /*@__PURE__*/ core.$constructor(\"ZodEmail\", (inst, def) => {\n    // ZodStringFormat.init(inst, def);\n    core.$ZodEmail.init(inst, def);\n    ZodStringFormat.init(inst, def);\n});\nexport function email(params) {\n    return core._email(ZodEmail, params);\n}\nexport const ZodGUID = /*@__PURE__*/ core.$constructor(\"ZodGUID\", (inst, def) => {\n    // ZodStringFormat.init(inst, def);\n    core.$ZodGUID.init(inst, def);\n    ZodStringFormat.init(inst, def);\n});\nexport function guid(params) {\n    return core._guid(ZodGUID, params);\n}\nexport const ZodUUID = /*@__PURE__*/ core.$constructor(\"ZodUUID\", (inst, def) => {\n    // ZodStringFormat.init(inst, def);\n    core.$ZodUUID.init(inst, def);\n    ZodStringFormat.init(inst, def);\n});\nexport function uuid(params) {\n    return core._uuid(ZodUUID, params);\n}\nexport function uuidv4(params) {\n    return core._uuidv4(ZodUUID, params);\n}\n// ZodUUIDv6\nexport function uuidv6(params) {\n    return core._uuidv6(ZodUUID, params);\n}\n// ZodUUIDv7\nexport function uuidv7(params) {\n    return core._uuidv7(ZodUUID, params);\n}\nexport const ZodURL = /*@__PURE__*/ core.$constructor(\"ZodURL\", (inst, def) => {\n    // ZodStringFormat.init(inst, def);\n    core.$ZodURL.init(inst, def);\n    ZodStringFormat.init(inst, def);\n});\nexport function url(params) {\n    return core._url(ZodURL, params);\n}\nexport function httpUrl(params) {\n    return core._url(ZodURL, {\n        protocol: /^https?$/,\n        hostname: core.regexes.domain,\n        ...util.normalizeParams(params),\n    });\n}\nexport const ZodEmoji = /*@__PURE__*/ core.$constructor(\"ZodEmoji\", (inst, def) => {\n    // ZodStringFormat.init(inst, def);\n    core.$ZodEmoji.init(inst, def);\n    ZodStringFormat.init(inst, def);\n});\nexport function emoji(params) {\n    return core._emoji(ZodEmoji, params);\n}\nexport const ZodNanoID = /*@__PURE__*/ core.$constructor(\"ZodNanoID\", (inst, def) => {\n    // ZodStringFormat.init(inst, def);\n    core.$ZodNanoID.init(inst, def);\n    ZodStringFormat.init(inst, def);\n});\nexport function nanoid(params) {\n    return core._nanoid(ZodNanoID, params);\n}\nexport const ZodCUID = /*@__PURE__*/ core.$constructor(\"ZodCUID\", (inst, def) => {\n    // ZodStringFormat.init(inst, def);\n    core.$ZodCUID.init(inst, def);\n    ZodStringFormat.init(inst, def);\n});\nexport function cuid(params) {\n    return core._cuid(ZodCUID, params);\n}\nexport const ZodCUID2 = /*@__PURE__*/ core.$constructor(\"ZodCUID2\", (inst, def) => {\n    // ZodStringFormat.init(inst, def);\n    core.$ZodCUID2.init(inst, def);\n    ZodStringFormat.init(inst, def);\n});\nexport function cuid2(params) {\n    return core._cuid2(ZodCUID2, params);\n}\nexport const ZodULID = /*@__PURE__*/ core.$constructor(\"ZodULID\", (inst, def) => {\n    // ZodStringFormat.init(inst, def);\n    core.$ZodULID.init(inst, def);\n    ZodStringFormat.init(inst, def);\n});\nexport function ulid(params) {\n    return core._ulid(ZodULID, params);\n}\nexport const ZodXID = /*@__PURE__*/ core.$constructor(\"ZodXID\", (inst, def) => {\n    // ZodStringFormat.init(inst, def);\n    core.$ZodXID.init(inst, def);\n    ZodStringFormat.init(inst, def);\n});\nexport function xid(params) {\n    return core._xid(ZodXID, params);\n}\nexport const ZodKSUID = /*@__PURE__*/ core.$constructor(\"ZodKSUID\", (inst, def) => {\n    // ZodStringFormat.init(inst, def);\n    core.$ZodKSUID.init(inst, def);\n    ZodStringFormat.init(inst, def);\n});\nexport function ksuid(params) {\n    return core._ksuid(ZodKSUID, params);\n}\nexport const ZodIPv4 = /*@__PURE__*/ core.$constructor(\"ZodIPv4\", (inst, def) => {\n    // ZodStringFormat.init(inst, def);\n    core.$ZodIPv4.init(inst, def);\n    ZodStringFormat.init(inst, def);\n});\nexport function ipv4(params) {\n    return core._ipv4(ZodIPv4, params);\n}\nexport const ZodIPv6 = /*@__PURE__*/ core.$constructor(\"ZodIPv6\", (inst, def) => {\n    // ZodStringFormat.init(inst, def);\n    core.$ZodIPv6.init(inst, def);\n    ZodStringFormat.init(inst, def);\n});\nexport function ipv6(params) {\n    return core._ipv6(ZodIPv6, params);\n}\nexport const ZodCIDRv4 = /*@__PURE__*/ core.$constructor(\"ZodCIDRv4\", (inst, def) => {\n    core.$ZodCIDRv4.init(inst, def);\n    ZodStringFormat.init(inst, def);\n});\nexport function cidrv4(params) {\n    return core._cidrv4(ZodCIDRv4, params);\n}\nexport const ZodCIDRv6 = /*@__PURE__*/ core.$constructor(\"ZodCIDRv6\", (inst, def) => {\n    core.$ZodCIDRv6.init(inst, def);\n    ZodStringFormat.init(inst, def);\n});\nexport function cidrv6(params) {\n    return core._cidrv6(ZodCIDRv6, params);\n}\nexport const ZodBase64 = /*@__PURE__*/ core.$constructor(\"ZodBase64\", (inst, def) => {\n    // ZodStringFormat.init(inst, def);\n    core.$ZodBase64.init(inst, def);\n    ZodStringFormat.init(inst, def);\n});\nexport function base64(params) {\n    return core._base64(ZodBase64, params);\n}\nexport const ZodBase64URL = /*@__PURE__*/ core.$constructor(\"ZodBase64URL\", (inst, def) => {\n    // ZodStringFormat.init(inst, def);\n    core.$ZodBase64URL.init(inst, def);\n    ZodStringFormat.init(inst, def);\n});\nexport function base64url(params) {\n    return core._base64url(ZodBase64URL, params);\n}\nexport const ZodE164 = /*@__PURE__*/ core.$constructor(\"ZodE164\", (inst, def) => {\n    // ZodStringFormat.init(inst, def);\n    core.$ZodE164.init(inst, def);\n    ZodStringFormat.init(inst, def);\n});\nexport function e164(params) {\n    return core._e164(ZodE164, params);\n}\nexport const ZodJWT = /*@__PURE__*/ core.$constructor(\"ZodJWT\", (inst, def) => {\n    // ZodStringFormat.init(inst, def);\n    core.$ZodJWT.init(inst, def);\n    ZodStringFormat.init(inst, def);\n});\nexport function jwt(params) {\n    return core._jwt(ZodJWT, params);\n}\nexport const ZodCustomStringFormat = /*@__PURE__*/ core.$constructor(\"ZodCustomStringFormat\", (inst, def) => {\n    // ZodStringFormat.init(inst, def);\n    core.$ZodCustomStringFormat.init(inst, def);\n    ZodStringFormat.init(inst, def);\n});\nexport function stringFormat(format, fnOrRegex, _params = {}) {\n    return core._stringFormat(ZodCustomStringFormat, format, fnOrRegex, _params);\n}\nexport function hostname(_params) {\n    return core._stringFormat(ZodCustomStringFormat, \"hostname\", core.regexes.hostname, _params);\n}\nexport function hex(_params) {\n    return core._stringFormat(ZodCustomStringFormat, \"hex\", core.regexes.hex, _params);\n}\nexport function hash(alg, params) {\n    const enc = params?.enc ?? \"hex\";\n    const format = `${alg}_${enc}`;\n    const regex = core.regexes[format];\n    if (!regex)\n        throw new Error(`Unrecognized hash format: ${format}`);\n    return core._stringFormat(ZodCustomStringFormat, format, regex, params);\n}\nexport const ZodNumber = /*@__PURE__*/ core.$constructor(\"ZodNumber\", (inst, def) => {\n    core.$ZodNumber.init(inst, def);\n    ZodType.init(inst, def);\n    inst.gt = (value, params) => inst.check(checks.gt(value, params));\n    inst.gte = (value, params) => inst.check(checks.gte(value, params));\n    inst.min = (value, params) => inst.check(checks.gte(value, params));\n    inst.lt = (value, params) => inst.check(checks.lt(value, params));\n    inst.lte = (value, params) => inst.check(checks.lte(value, params));\n    inst.max = (value, params) => inst.check(checks.lte(value, params));\n    inst.int = (params) => inst.check(int(params));\n    inst.safe = (params) => inst.check(int(params));\n    inst.positive = (params) => inst.check(checks.gt(0, params));\n    inst.nonnegative = (params) => inst.check(checks.gte(0, params));\n    inst.negative = (params) => inst.check(checks.lt(0, params));\n    inst.nonpositive = (params) => inst.check(checks.lte(0, params));\n    inst.multipleOf = (value, params) => inst.check(checks.multipleOf(value, params));\n    inst.step = (value, params) => inst.check(checks.multipleOf(value, params));\n    // inst.finite = (params) => inst.check(core.finite(params));\n    inst.finite = () => inst;\n    const bag = inst._zod.bag;\n    inst.minValue =\n        Math.max(bag.minimum ?? Number.NEGATIVE_INFINITY, bag.exclusiveMinimum ?? Number.NEGATIVE_INFINITY) ?? null;\n    inst.maxValue =\n        Math.min(bag.maximum ?? Number.POSITIVE_INFINITY, bag.exclusiveMaximum ?? Number.POSITIVE_INFINITY) ?? null;\n    inst.isInt = (bag.format ?? \"\").includes(\"int\") || Number.isSafeInteger(bag.multipleOf ?? 0.5);\n    inst.isFinite = true;\n    inst.format = bag.format ?? null;\n});\nexport function number(params) {\n    return core._number(ZodNumber, params);\n}\nexport const ZodNumberFormat = /*@__PURE__*/ core.$constructor(\"ZodNumberFormat\", (inst, def) => {\n    core.$ZodNumberFormat.init(inst, def);\n    ZodNumber.init(inst, def);\n});\nexport function int(params) {\n    return core._int(ZodNumberFormat, params);\n}\nexport function float32(params) {\n    return core._float32(ZodNumberFormat, params);\n}\nexport function float64(params) {\n    return core._float64(ZodNumberFormat, params);\n}\nexport function int32(params) {\n    return core._int32(ZodNumberFormat, params);\n}\nexport function uint32(params) {\n    return core._uint32(ZodNumberFormat, params);\n}\nexport const ZodBoolean = /*@__PURE__*/ core.$constructor(\"ZodBoolean\", (inst, def) => {\n    core.$ZodBoolean.init(inst, def);\n    ZodType.init(inst, def);\n});\nexport function boolean(params) {\n    return core._boolean(ZodBoolean, params);\n}\nexport const ZodBigInt = /*@__PURE__*/ core.$constructor(\"ZodBigInt\", (inst, def) => {\n    core.$ZodBigInt.init(inst, def);\n    ZodType.init(inst, def);\n    inst.gte = (value, params) => inst.check(checks.gte(value, params));\n    inst.min = (value, params) => inst.check(checks.gte(value, params));\n    inst.gt = (value, params) => inst.check(checks.gt(value, params));\n    inst.gte = (value, params) => inst.check(checks.gte(value, params));\n    inst.min = (value, params) => inst.check(checks.gte(value, params));\n    inst.lt = (value, params) => inst.check(checks.lt(value, params));\n    inst.lte = (value, params) => inst.check(checks.lte(value, params));\n    inst.max = (value, params) => inst.check(checks.lte(value, params));\n    inst.positive = (params) => inst.check(checks.gt(BigInt(0), params));\n    inst.negative = (params) => inst.check(checks.lt(BigInt(0), params));\n    inst.nonpositive = (params) => inst.check(checks.lte(BigInt(0), params));\n    inst.nonnegative = (params) => inst.check(checks.gte(BigInt(0), params));\n    inst.multipleOf = (value, params) => inst.check(checks.multipleOf(value, params));\n    const bag = inst._zod.bag;\n    inst.minValue = bag.minimum ?? null;\n    inst.maxValue = bag.maximum ?? null;\n    inst.format = bag.format ?? null;\n});\nexport function bigint(params) {\n    return core._bigint(ZodBigInt, params);\n}\nexport const ZodBigIntFormat = /*@__PURE__*/ core.$constructor(\"ZodBigIntFormat\", (inst, def) => {\n    core.$ZodBigIntFormat.init(inst, def);\n    ZodBigInt.init(inst, def);\n});\n// int64\nexport function int64(params) {\n    return core._int64(ZodBigIntFormat, params);\n}\n// uint64\nexport function uint64(params) {\n    return core._uint64(ZodBigIntFormat, params);\n}\nexport const ZodSymbol = /*@__PURE__*/ core.$constructor(\"ZodSymbol\", (inst, def) => {\n    core.$ZodSymbol.init(inst, def);\n    ZodType.init(inst, def);\n});\nexport function symbol(params) {\n    return core._symbol(ZodSymbol, params);\n}\nexport const ZodUndefined = /*@__PURE__*/ core.$constructor(\"ZodUndefined\", (inst, def) => {\n    core.$ZodUndefined.init(inst, def);\n    ZodType.init(inst, def);\n});\nfunction _undefined(params) {\n    return core._undefined(ZodUndefined, params);\n}\nexport { _undefined as undefined };\nexport const ZodNull = /*@__PURE__*/ core.$constructor(\"ZodNull\", (inst, def) => {\n    core.$ZodNull.init(inst, def);\n    ZodType.init(inst, def);\n});\nfunction _null(params) {\n    return core._null(ZodNull, params);\n}\nexport { _null as null };\nexport const ZodAny = /*@__PURE__*/ core.$constructor(\"ZodAny\", (inst, def) => {\n    core.$ZodAny.init(inst, def);\n    ZodType.init(inst, def);\n});\nexport function any() {\n    return core._any(ZodAny);\n}\nexport const ZodUnknown = /*@__PURE__*/ core.$constructor(\"ZodUnknown\", (inst, def) => {\n    core.$ZodUnknown.init(inst, def);\n    ZodType.init(inst, def);\n});\nexport function unknown() {\n    return core._unknown(ZodUnknown);\n}\nexport const ZodNever = /*@__PURE__*/ core.$constructor(\"ZodNever\", (inst, def) => {\n    core.$ZodNever.init(inst, def);\n    ZodType.init(inst, def);\n});\nexport function never(params) {\n    return core._never(ZodNever, params);\n}\nexport const ZodVoid = /*@__PURE__*/ core.$constructor(\"ZodVoid\", (inst, def) => {\n    core.$ZodVoid.init(inst, def);\n    ZodType.init(inst, def);\n});\nfunction _void(params) {\n    return core._void(ZodVoid, params);\n}\nexport { _void as void };\nexport const ZodDate = /*@__PURE__*/ core.$constructor(\"ZodDate\", (inst, def) => {\n    core.$ZodDate.init(inst, def);\n    ZodType.init(inst, def);\n    inst.min = (value, params) => inst.check(checks.gte(value, params));\n    inst.max = (value, params) => inst.check(checks.lte(value, params));\n    const c = inst._zod.bag;\n    inst.minDate = c.minimum ? new Date(c.minimum) : null;\n    inst.maxDate = c.maximum ? new Date(c.maximum) : null;\n});\nexport function date(params) {\n    return core._date(ZodDate, params);\n}\nexport const ZodArray = /*@__PURE__*/ core.$constructor(\"ZodArray\", (inst, def) => {\n    core.$ZodArray.init(inst, def);\n    ZodType.init(inst, def);\n    inst.element = def.element;\n    inst.min = (minLength, params) => inst.check(checks.minLength(minLength, params));\n    inst.nonempty = (params) => inst.check(checks.minLength(1, params));\n    inst.max = (maxLength, params) => inst.check(checks.maxLength(maxLength, params));\n    inst.length = (len, params) => inst.check(checks.length(len, params));\n    inst.unwrap = () => inst.element;\n});\nexport function array(element, params) {\n    return core._array(ZodArray, element, params);\n}\n// .keyof\nexport function keyof(schema) {\n    const shape = schema._zod.def.shape;\n    return _enum(Object.keys(shape));\n}\nexport const ZodObject = /*@__PURE__*/ core.$constructor(\"ZodObject\", (inst, def) => {\n    core.$ZodObjectJIT.init(inst, def);\n    ZodType.init(inst, def);\n    util.defineLazy(inst, \"shape\", () => {\n        return def.shape;\n    });\n    inst.keyof = () => _enum(Object.keys(inst._zod.def.shape));\n    inst.catchall = (catchall) => inst.clone({ ...inst._zod.def, catchall: catchall });\n    inst.passthrough = () => inst.clone({ ...inst._zod.def, catchall: unknown() });\n    inst.loose = () => inst.clone({ ...inst._zod.def, catchall: unknown() });\n    inst.strict = () => inst.clone({ ...inst._zod.def, catchall: never() });\n    inst.strip = () => inst.clone({ ...inst._zod.def, catchall: undefined });\n    inst.extend = (incoming) => {\n        return util.extend(inst, incoming);\n    };\n    inst.safeExtend = (incoming) => {\n        return util.safeExtend(inst, incoming);\n    };\n    inst.merge = (other) => util.merge(inst, other);\n    inst.pick = (mask) => util.pick(inst, mask);\n    inst.omit = (mask) => util.omit(inst, mask);\n    inst.partial = (...args) => util.partial(ZodOptional, inst, args[0]);\n    inst.required = (...args) => util.required(ZodNonOptional, inst, args[0]);\n});\nexport function object(shape, params) {\n    const def = {\n        type: \"object\",\n        shape: shape ?? {},\n        ...util.normalizeParams(params),\n    };\n    return new ZodObject(def);\n}\n// strictObject\nexport function strictObject(shape, params) {\n    return new ZodObject({\n        type: \"object\",\n        shape,\n        catchall: never(),\n        ...util.normalizeParams(params),\n    });\n}\n// looseObject\nexport function looseObject(shape, params) {\n    return new ZodObject({\n        type: \"object\",\n        shape,\n        catchall: unknown(),\n        ...util.normalizeParams(params),\n    });\n}\nexport const ZodUnion = /*@__PURE__*/ core.$constructor(\"ZodUnion\", (inst, def) => {\n    core.$ZodUnion.init(inst, def);\n    ZodType.init(inst, def);\n    inst.options = def.options;\n});\nexport function union(options, params) {\n    return new ZodUnion({\n        type: \"union\",\n        options: options,\n        ...util.normalizeParams(params),\n    });\n}\nexport const ZodDiscriminatedUnion = /*@__PURE__*/ core.$constructor(\"ZodDiscriminatedUnion\", (inst, def) => {\n    ZodUnion.init(inst, def);\n    core.$ZodDiscriminatedUnion.init(inst, def);\n});\nexport function discriminatedUnion(discriminator, options, params) {\n    // const [options, params] = args;\n    return new ZodDiscriminatedUnion({\n        type: \"union\",\n        options,\n        discriminator,\n        ...util.normalizeParams(params),\n    });\n}\nexport const ZodIntersection = /*@__PURE__*/ core.$constructor(\"ZodIntersection\", (inst, def) => {\n    core.$ZodIntersection.init(inst, def);\n    ZodType.init(inst, def);\n});\nexport function intersection(left, right) {\n    return new ZodIntersection({\n        type: \"intersection\",\n        left: left,\n        right: right,\n    });\n}\nexport const ZodTuple = /*@__PURE__*/ core.$constructor(\"ZodTuple\", (inst, def) => {\n    core.$ZodTuple.init(inst, def);\n    ZodType.init(inst, def);\n    inst.rest = (rest) => inst.clone({\n        ...inst._zod.def,\n        rest: rest,\n    });\n});\nexport function tuple(items, _paramsOrRest, _params) {\n    const hasRest = _paramsOrRest instanceof core.$ZodType;\n    const params = hasRest ? _params : _paramsOrRest;\n    const rest = hasRest ? _paramsOrRest : null;\n    return new ZodTuple({\n        type: \"tuple\",\n        items: items,\n        rest,\n        ...util.normalizeParams(params),\n    });\n}\nexport const ZodRecord = /*@__PURE__*/ core.$constructor(\"ZodRecord\", (inst, def) => {\n    core.$ZodRecord.init(inst, def);\n    ZodType.init(inst, def);\n    inst.keyType = def.keyType;\n    inst.valueType = def.valueType;\n});\nexport function record(keyType, valueType, params) {\n    return new ZodRecord({\n        type: \"record\",\n        keyType,\n        valueType: valueType,\n        ...util.normalizeParams(params),\n    });\n}\n// type alksjf = core.output<core.$ZodRecordKey>;\nexport function partialRecord(keyType, valueType, params) {\n    const k = core.clone(keyType);\n    k._zod.values = undefined;\n    return new ZodRecord({\n        type: \"record\",\n        keyType: k,\n        valueType: valueType,\n        ...util.normalizeParams(params),\n    });\n}\nexport const ZodMap = /*@__PURE__*/ core.$constructor(\"ZodMap\", (inst, def) => {\n    core.$ZodMap.init(inst, def);\n    ZodType.init(inst, def);\n    inst.keyType = def.keyType;\n    inst.valueType = def.valueType;\n});\nexport function map(keyType, valueType, params) {\n    return new ZodMap({\n        type: \"map\",\n        keyType: keyType,\n        valueType: valueType,\n        ...util.normalizeParams(params),\n    });\n}\nexport const ZodSet = /*@__PURE__*/ core.$constructor(\"ZodSet\", (inst, def) => {\n    core.$ZodSet.init(inst, def);\n    ZodType.init(inst, def);\n    inst.min = (...args) => inst.check(core._minSize(...args));\n    inst.nonempty = (params) => inst.check(core._minSize(1, params));\n    inst.max = (...args) => inst.check(core._maxSize(...args));\n    inst.size = (...args) => inst.check(core._size(...args));\n});\nexport function set(valueType, params) {\n    return new ZodSet({\n        type: \"set\",\n        valueType: valueType,\n        ...util.normalizeParams(params),\n    });\n}\nexport const ZodEnum = /*@__PURE__*/ core.$constructor(\"ZodEnum\", (inst, def) => {\n    core.$ZodEnum.init(inst, def);\n    ZodType.init(inst, def);\n    inst.enum = def.entries;\n    inst.options = Object.values(def.entries);\n    const keys = new Set(Object.keys(def.entries));\n    inst.extract = (values, params) => {\n        const newEntries = {};\n        for (const value of values) {\n            if (keys.has(value)) {\n                newEntries[value] = def.entries[value];\n            }\n            else\n                throw new Error(`Key ${value} not found in enum`);\n        }\n        return new ZodEnum({\n            ...def,\n            checks: [],\n            ...util.normalizeParams(params),\n            entries: newEntries,\n        });\n    };\n    inst.exclude = (values, params) => {\n        const newEntries = { ...def.entries };\n        for (const value of values) {\n            if (keys.has(value)) {\n                delete newEntries[value];\n            }\n            else\n                throw new Error(`Key ${value} not found in enum`);\n        }\n        return new ZodEnum({\n            ...def,\n            checks: [],\n            ...util.normalizeParams(params),\n            entries: newEntries,\n        });\n    };\n});\nfunction _enum(values, params) {\n    const entries = Array.isArray(values) ? Object.fromEntries(values.map((v) => [v, v])) : values;\n    return new ZodEnum({\n        type: \"enum\",\n        entries,\n        ...util.normalizeParams(params),\n    });\n}\nexport { _enum as enum };\n/** @deprecated This API has been merged into `z.enum()`. Use `z.enum()` instead.\n *\n * ```ts\n * enum Colors { red, green, blue }\n * z.enum(Colors);\n * ```\n */\nexport function nativeEnum(entries, params) {\n    return new ZodEnum({\n        type: \"enum\",\n        entries,\n        ...util.normalizeParams(params),\n    });\n}\nexport const ZodLiteral = /*@__PURE__*/ core.$constructor(\"ZodLiteral\", (inst, def) => {\n    core.$ZodLiteral.init(inst, def);\n    ZodType.init(inst, def);\n    inst.values = new Set(def.values);\n    Object.defineProperty(inst, \"value\", {\n        get() {\n            if (def.values.length > 1) {\n                throw new Error(\"This schema contains multiple valid literal values. Use `.values` instead.\");\n            }\n            return def.values[0];\n        },\n    });\n});\nexport function literal(value, params) {\n    return new ZodLiteral({\n        type: \"literal\",\n        values: Array.isArray(value) ? value : [value],\n        ...util.normalizeParams(params),\n    });\n}\nexport const ZodFile = /*@__PURE__*/ core.$constructor(\"ZodFile\", (inst, def) => {\n    core.$ZodFile.init(inst, def);\n    ZodType.init(inst, def);\n    inst.min = (size, params) => inst.check(core._minSize(size, params));\n    inst.max = (size, params) => inst.check(core._maxSize(size, params));\n    inst.mime = (types, params) => inst.check(core._mime(Array.isArray(types) ? types : [types], params));\n});\nexport function file(params) {\n    return core._file(ZodFile, params);\n}\nexport const ZodTransform = /*@__PURE__*/ core.$constructor(\"ZodTransform\", (inst, def) => {\n    core.$ZodTransform.init(inst, def);\n    ZodType.init(inst, def);\n    inst._zod.parse = (payload, _ctx) => {\n        if (_ctx.direction === \"backward\") {\n            throw new core.$ZodEncodeError(inst.constructor.name);\n        }\n        payload.addIssue = (issue) => {\n            if (typeof issue === \"string\") {\n                payload.issues.push(util.issue(issue, payload.value, def));\n            }\n            else {\n                // for Zod 3 backwards compatibility\n                const _issue = issue;\n                if (_issue.fatal)\n                    _issue.continue = false;\n                _issue.code ?? (_issue.code = \"custom\");\n                _issue.input ?? (_issue.input = payload.value);\n                _issue.inst ?? (_issue.inst = inst);\n                // _issue.continue ??= true;\n                payload.issues.push(util.issue(_issue));\n            }\n        };\n        const output = def.transform(payload.value, payload);\n        if (output instanceof Promise) {\n            return output.then((output) => {\n                payload.value = output;\n                return payload;\n            });\n        }\n        payload.value = output;\n        return payload;\n    };\n});\nexport function transform(fn) {\n    return new ZodTransform({\n        type: \"transform\",\n        transform: fn,\n    });\n}\nexport const ZodOptional = /*@__PURE__*/ core.$constructor(\"ZodOptional\", (inst, def) => {\n    core.$ZodOptional.init(inst, def);\n    ZodType.init(inst, def);\n    inst.unwrap = () => inst._zod.def.innerType;\n});\nexport function optional(innerType) {\n    return new ZodOptional({\n        type: \"optional\",\n        innerType: innerType,\n    });\n}\nexport const ZodNullable = /*@__PURE__*/ core.$constructor(\"ZodNullable\", (inst, def) => {\n    core.$ZodNullable.init(inst, def);\n    ZodType.init(inst, def);\n    inst.unwrap = () => inst._zod.def.innerType;\n});\nexport function nullable(innerType) {\n    return new ZodNullable({\n        type: \"nullable\",\n        innerType: innerType,\n    });\n}\n// nullish\nexport function nullish(innerType) {\n    return optional(nullable(innerType));\n}\nexport const ZodDefault = /*@__PURE__*/ core.$constructor(\"ZodDefault\", (inst, def) => {\n    core.$ZodDefault.init(inst, def);\n    ZodType.init(inst, def);\n    inst.unwrap = () => inst._zod.def.innerType;\n    inst.removeDefault = inst.unwrap;\n});\nexport function _default(innerType, defaultValue) {\n    return new ZodDefault({\n        type: \"default\",\n        innerType: innerType,\n        get defaultValue() {\n            return typeof defaultValue === \"function\" ? defaultValue() : util.shallowClone(defaultValue);\n        },\n    });\n}\nexport const ZodPrefault = /*@__PURE__*/ core.$constructor(\"ZodPrefault\", (inst, def) => {\n    core.$ZodPrefault.init(inst, def);\n    ZodType.init(inst, def);\n    inst.unwrap = () => inst._zod.def.innerType;\n});\nexport function prefault(innerType, defaultValue) {\n    return new ZodPrefault({\n        type: \"prefault\",\n        innerType: innerType,\n        get defaultValue() {\n            return typeof defaultValue === \"function\" ? defaultValue() : util.shallowClone(defaultValue);\n        },\n    });\n}\nexport const ZodNonOptional = /*@__PURE__*/ core.$constructor(\"ZodNonOptional\", (inst, def) => {\n    core.$ZodNonOptional.init(inst, def);\n    ZodType.init(inst, def);\n    inst.unwrap = () => inst._zod.def.innerType;\n});\nexport function nonoptional(innerType, params) {\n    return new ZodNonOptional({\n        type: \"nonoptional\",\n        innerType: innerType,\n        ...util.normalizeParams(params),\n    });\n}\nexport const ZodSuccess = /*@__PURE__*/ core.$constructor(\"ZodSuccess\", (inst, def) => {\n    core.$ZodSuccess.init(inst, def);\n    ZodType.init(inst, def);\n    inst.unwrap = () => inst._zod.def.innerType;\n});\nexport function success(innerType) {\n    return new ZodSuccess({\n        type: \"success\",\n        innerType: innerType,\n    });\n}\nexport const ZodCatch = /*@__PURE__*/ core.$constructor(\"ZodCatch\", (inst, def) => {\n    core.$ZodCatch.init(inst, def);\n    ZodType.init(inst, def);\n    inst.unwrap = () => inst._zod.def.innerType;\n    inst.removeCatch = inst.unwrap;\n});\nfunction _catch(innerType, catchValue) {\n    return new ZodCatch({\n        type: \"catch\",\n        innerType: innerType,\n        catchValue: (typeof catchValue === \"function\" ? catchValue : () => catchValue),\n    });\n}\nexport { _catch as catch };\nexport const ZodNaN = /*@__PURE__*/ core.$constructor(\"ZodNaN\", (inst, def) => {\n    core.$ZodNaN.init(inst, def);\n    ZodType.init(inst, def);\n});\nexport function nan(params) {\n    return core._nan(ZodNaN, params);\n}\nexport const ZodPipe = /*@__PURE__*/ core.$constructor(\"ZodPipe\", (inst, def) => {\n    core.$ZodPipe.init(inst, def);\n    ZodType.init(inst, def);\n    inst.in = def.in;\n    inst.out = def.out;\n});\nexport function pipe(in_, out) {\n    return new ZodPipe({\n        type: \"pipe\",\n        in: in_,\n        out: out,\n        // ...util.normalizeParams(params),\n    });\n}\nexport const ZodCodec = /*@__PURE__*/ core.$constructor(\"ZodCodec\", (inst, def) => {\n    ZodPipe.init(inst, def);\n    core.$ZodCodec.init(inst, def);\n});\nexport function codec(in_, out, params) {\n    return new ZodCodec({\n        type: \"pipe\",\n        in: in_,\n        out: out,\n        transform: params.decode,\n        reverseTransform: params.encode,\n    });\n}\nexport const ZodReadonly = /*@__PURE__*/ core.$constructor(\"ZodReadonly\", (inst, def) => {\n    core.$ZodReadonly.init(inst, def);\n    ZodType.init(inst, def);\n    inst.unwrap = () => inst._zod.def.innerType;\n});\nexport function readonly(innerType) {\n    return new ZodReadonly({\n        type: \"readonly\",\n        innerType: innerType,\n    });\n}\nexport const ZodTemplateLiteral = /*@__PURE__*/ core.$constructor(\"ZodTemplateLiteral\", (inst, def) => {\n    core.$ZodTemplateLiteral.init(inst, def);\n    ZodType.init(inst, def);\n});\nexport function templateLiteral(parts, params) {\n    return new ZodTemplateLiteral({\n        type: \"template_literal\",\n        parts,\n        ...util.normalizeParams(params),\n    });\n}\nexport const ZodLazy = /*@__PURE__*/ core.$constructor(\"ZodLazy\", (inst, def) => {\n    core.$ZodLazy.init(inst, def);\n    ZodType.init(inst, def);\n    inst.unwrap = () => inst._zod.def.getter();\n});\nexport function lazy(getter) {\n    return new ZodLazy({\n        type: \"lazy\",\n        getter: getter,\n    });\n}\nexport const ZodPromise = /*@__PURE__*/ core.$constructor(\"ZodPromise\", (inst, def) => {\n    core.$ZodPromise.init(inst, def);\n    ZodType.init(inst, def);\n    inst.unwrap = () => inst._zod.def.innerType;\n});\nexport function promise(innerType) {\n    return new ZodPromise({\n        type: \"promise\",\n        innerType: innerType,\n    });\n}\nexport const ZodFunction = /*@__PURE__*/ core.$constructor(\"ZodFunction\", (inst, def) => {\n    core.$ZodFunction.init(inst, def);\n    ZodType.init(inst, def);\n});\nexport function _function(params) {\n    return new ZodFunction({\n        type: \"function\",\n        input: Array.isArray(params?.input) ? tuple(params?.input) : (params?.input ?? array(unknown())),\n        output: params?.output ?? unknown(),\n    });\n}\nexport { _function as function };\nexport const ZodCustom = /*@__PURE__*/ core.$constructor(\"ZodCustom\", (inst, def) => {\n    core.$ZodCustom.init(inst, def);\n    ZodType.init(inst, def);\n});\n// custom checks\nexport function check(fn) {\n    const ch = new core.$ZodCheck({\n        check: \"custom\",\n        // ...util.normalizeParams(params),\n    });\n    ch._zod.check = fn;\n    return ch;\n}\nexport function custom(fn, _params) {\n    return core._custom(ZodCustom, fn ?? (() => true), _params);\n}\nexport function refine(fn, _params = {}) {\n    return core._refine(ZodCustom, fn, _params);\n}\n// superRefine\nexport function superRefine(fn) {\n    return core._superRefine(fn);\n}\nfunction _instanceof(cls, params = {\n    error: `Input not instance of ${cls.name}`,\n}) {\n    const inst = new ZodCustom({\n        type: \"custom\",\n        check: \"custom\",\n        fn: (data) => data instanceof cls,\n        abort: true,\n        ...util.normalizeParams(params),\n    });\n    inst._zod.bag.Class = cls;\n    return inst;\n}\nexport { _instanceof as instanceof };\n// stringbool\nexport const stringbool = (...args) => core._stringbool({\n    Codec: ZodCodec,\n    Boolean: ZodBoolean,\n    String: ZodString,\n}, ...args);\nexport function json(params) {\n    const jsonSchema = lazy(() => {\n        return union([string(params), number(), boolean(), _null(), array(jsonSchema), record(string(), jsonSchema)]);\n    });\n    return jsonSchema;\n}\n// preprocess\n// /** @deprecated Use `z.pipe()` and `z.transform()` instead. */\nexport function preprocess(fn, schema) {\n    return pipe(transform(fn), schema);\n}\n", "/**\n * This metadata contains validation rules.\n */\nvar ValidationMetadata = /** @class */ (function () {\n    // -------------------------------------------------------------------------\n    // Constructor\n    // -------------------------------------------------------------------------\n    function ValidationMetadata(args) {\n        /**\n         * Validation groups used for this validation.\n         */\n        this.groups = [];\n        /**\n         * Specifies if validated value is an array and each of its item must be validated.\n         */\n        this.each = false;\n        /*\n         * A transient set of data passed through to the validation result for response mapping\n         */\n        this.context = undefined;\n        this.type = args.type;\n        this.name = args.name;\n        this.target = args.target;\n        this.propertyName = args.propertyName;\n        this.constraints = args === null || args === void 0 ? void 0 : args.constraints;\n        this.constraintCls = args.constraintCls;\n        this.validationTypeOptions = args.validationTypeOptions;\n        if (args.validationOptions) {\n            this.message = args.validationOptions.message;\n            this.groups = args.validationOptions.groups;\n            this.always = args.validationOptions.always;\n            this.each = args.validationOptions.each;\n            this.context = args.validationOptions.context;\n        }\n    }\n    return ValidationMetadata;\n}());\nexport { ValidationMetadata };\n//# sourceMappingURL=ValidationMetadata.js.map", "import { ValidationMetadata } from '../metadata/ValidationMetadata';\n/**\n * Used to transform validation schemas to validation metadatas.\n */\nvar ValidationSchemaToMetadataTransformer = /** @class */ (function () {\n    function ValidationSchemaToMetadataTransformer() {\n    }\n    ValidationSchemaToMetadataTransformer.prototype.transform = function (schema) {\n        var metadatas = [];\n        Object.keys(schema.properties).forEach(function (property) {\n            schema.properties[property].forEach(function (validation) {\n                var validationOptions = {\n                    message: validation.message,\n                    groups: validation.groups,\n                    always: validation.always,\n                    each: validation.each,\n                };\n                var args = {\n                    type: validation.type,\n                    name: validation.name,\n                    target: schema.name,\n                    propertyName: property,\n                    constraints: validation.constraints,\n                    validationTypeOptions: validation.options,\n                    validationOptions: validationOptions,\n                };\n                metadatas.push(new ValidationMetadata(args));\n            });\n        });\n        return metadatas;\n    };\n    return ValidationSchemaToMetadataTransformer;\n}());\nexport { ValidationSchemaToMetadataTransformer };\n//# sourceMappingURL=ValidationSchemaToMetadataTransformer.js.map", "/**\n * This function returns the global object across Node and browsers.\n *\n * Note: `globalThis` is the standardized approach however it has been added to\n * Node.js in version 12. We need to include this snippet until Node 12 EOL.\n */\nexport function getGlobal() {\n    if (typeof globalThis !== 'undefined') {\n        return globalThis;\n    }\n    if (typeof global !== 'undefined') {\n        return global;\n    }\n    // eslint-disable-next-line @typescript-eslint/ban-ts-comment\n    // @ts-ignore: Cannot find name 'window'.\n    if (typeof window !== 'undefined') {\n        // eslint-disable-next-line @typescript-eslint/ban-ts-comment\n        // @ts-ignore: Cannot find name 'window'.\n        return window;\n    }\n    // eslint-disable-next-line @typescript-eslint/ban-ts-comment\n    // @ts-ignore: Cannot find name 'self'.\n    if (typeof self !== 'undefined') {\n        // eslint-disable-next-line @typescript-eslint/ban-ts-comment\n        // @ts-ignore: Cannot find name 'self'.\n        return self;\n    }\n}\n//# sourceMappingURL=get-global.util.js.map", "var __values = (this && this.__values) || function(o) {\n    var s = typeof Symbol === \"function\" && Symbol.iterator, m = s && o[s], i = 0;\n    if (m) return m.call(o);\n    if (o && typeof o.length === \"number\") return {\n        next: function () {\n            if (o && i >= o.length) o = void 0;\n            return { value: o && o[i++], done: !o };\n        }\n    };\n    throw new TypeError(s ? \"Object is not iterable.\" : \"Symbol.iterator is not defined.\");\n};\nvar __read = (this && this.__read) || function (o, n) {\n    var m = typeof Symbol === \"function\" && o[Symbol.iterator];\n    if (!m) return o;\n    var i = m.call(o), r, ar = [], e;\n    try {\n        while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\n    }\n    catch (error) { e = { error: error }; }\n    finally {\n        try {\n            if (r && !r.done && (m = i[\"return\"])) m.call(i);\n        }\n        finally { if (e) throw e.error; }\n    }\n    return ar;\n};\nvar __spreadArray = (this && this.__spreadArray) || function (to, from, pack) {\n    if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {\n        if (ar || !(i in from)) {\n            if (!ar) ar = Array.prototype.slice.call(from, 0, i);\n            ar[i] = from[i];\n        }\n    }\n    return to.concat(ar || Array.prototype.slice.call(from));\n};\nimport { ValidationSchemaToMetadataTransformer } from '../validation-schema/ValidationSchemaToMetadataTransformer';\nimport { getGlobal } from '../utils';\n/**\n * Storage all metadatas.\n */\nvar MetadataStorage = /** @class */ (function () {\n    function MetadataStorage() {\n        // -------------------------------------------------------------------------\n        // Private properties\n        // -------------------------------------------------------------------------\n        this.validationMetadatas = new Map();\n        this.constraintMetadatas = new Map();\n    }\n    Object.defineProperty(MetadataStorage.prototype, \"hasValidationMetaData\", {\n        get: function () {\n            return !!this.validationMetadatas.size;\n        },\n        enumerable: false,\n        configurable: true\n    });\n    // -------------------------------------------------------------------------\n    // Public Methods\n    // -------------------------------------------------------------------------\n    /**\n     * Adds a new validation metadata.\n     */\n    MetadataStorage.prototype.addValidationSchema = function (schema) {\n        var _this = this;\n        var validationMetadatas = new ValidationSchemaToMetadataTransformer().transform(schema);\n        validationMetadatas.forEach(function (validationMetadata) { return _this.addValidationMetadata(validationMetadata); });\n    };\n    /**\n     * Adds a new validation metadata.\n     */\n    MetadataStorage.prototype.addValidationMetadata = function (metadata) {\n        var existingMetadata = this.validationMetadatas.get(metadata.target);\n        if (existingMetadata) {\n            existingMetadata.push(metadata);\n        }\n        else {\n            this.validationMetadatas.set(metadata.target, [metadata]);\n        }\n    };\n    /**\n     * Adds a new constraint metadata.\n     */\n    MetadataStorage.prototype.addConstraintMetadata = function (metadata) {\n        var existingMetadata = this.constraintMetadatas.get(metadata.target);\n        if (existingMetadata) {\n            existingMetadata.push(metadata);\n        }\n        else {\n            this.constraintMetadatas.set(metadata.target, [metadata]);\n        }\n    };\n    /**\n     * Groups metadata by their property names.\n     */\n    MetadataStorage.prototype.groupByPropertyName = function (metadata) {\n        var grouped = {};\n        metadata.forEach(function (metadata) {\n            if (!grouped[metadata.propertyName])\n                grouped[metadata.propertyName] = [];\n            grouped[metadata.propertyName].push(metadata);\n        });\n        return grouped;\n    };\n    /**\n     * Gets all validation metadatas for the given object with the given groups.\n     */\n    MetadataStorage.prototype.getTargetValidationMetadatas = function (targetConstructor, targetSchema, always, strictGroups, groups) {\n        var e_1, _a;\n        var includeMetadataBecauseOfAlwaysOption = function (metadata) {\n            // `metadata.always` overrides global default.\n            if (typeof metadata.always !== 'undefined')\n                return metadata.always;\n            // `metadata.groups` overrides global default.\n            if (metadata.groups && metadata.groups.length)\n                return false;\n            // Use global default.\n            return always;\n        };\n        var excludeMetadataBecauseOfStrictGroupsOption = function (metadata) {\n            if (strictGroups) {\n                // Validation is not using groups.\n                if (!groups || !groups.length) {\n                    // `metadata.groups` has at least one group.\n                    if (metadata.groups && metadata.groups.length)\n                        return true;\n                }\n            }\n            return false;\n        };\n        // get directly related to a target metadatas\n        var filteredForOriginalMetadatasSearch = this.validationMetadatas.get(targetConstructor) || [];\n        var originalMetadatas = filteredForOriginalMetadatasSearch.filter(function (metadata) {\n            if (metadata.target !== targetConstructor && metadata.target !== targetSchema)\n                return false;\n            if (includeMetadataBecauseOfAlwaysOption(metadata))\n                return true;\n            if (excludeMetadataBecauseOfStrictGroupsOption(metadata))\n                return false;\n            if (groups && groups.length > 0)\n                return metadata.groups && !!metadata.groups.find(function (group) { return groups.indexOf(group) !== -1; });\n            return true;\n        });\n        // get metadatas for inherited classes\n        var filteredForInheritedMetadatasSearch = [];\n        try {\n            for (var _b = __values(this.validationMetadatas.entries()), _c = _b.next(); !_c.done; _c = _b.next()) {\n                var _d = __read(_c.value, 2), key = _d[0], value = _d[1];\n                if (targetConstructor.prototype instanceof key) {\n                    filteredForInheritedMetadatasSearch.push.apply(filteredForInheritedMetadatasSearch, __spreadArray([], __read(value), false));\n                }\n            }\n        }\n        catch (e_1_1) { e_1 = { error: e_1_1 }; }\n        finally {\n            try {\n                if (_c && !_c.done && (_a = _b.return)) _a.call(_b);\n            }\n            finally { if (e_1) throw e_1.error; }\n        }\n        var inheritedMetadatas = filteredForInheritedMetadatasSearch.filter(function (metadata) {\n            // if target is a string it's means we validate against a schema, and there is no inheritance support for schemas\n            if (typeof metadata.target === 'string')\n                return false;\n            if (metadata.target === targetConstructor)\n                return false;\n            if (metadata.target instanceof Function && !(targetConstructor.prototype instanceof metadata.target))\n                return false;\n            if (includeMetadataBecauseOfAlwaysOption(metadata))\n                return true;\n            if (excludeMetadataBecauseOfStrictGroupsOption(metadata))\n                return false;\n            if (groups && groups.length > 0)\n                return metadata.groups && !!metadata.groups.find(function (group) { return groups.indexOf(group) !== -1; });\n            return true;\n        });\n        // filter out duplicate metadatas, prefer original metadatas instead of inherited metadatas\n        var uniqueInheritedMetadatas = inheritedMetadatas.filter(function (inheritedMetadata) {\n            return !originalMetadatas.find(function (originalMetadata) {\n                return (originalMetadata.propertyName === inheritedMetadata.propertyName &&\n                    originalMetadata.type === inheritedMetadata.type);\n            });\n        });\n        return originalMetadatas.concat(uniqueInheritedMetadatas);\n    };\n    /**\n     * Gets all validator constraints for the given object.\n     */\n    MetadataStorage.prototype.getTargetValidatorConstraints = function (target) {\n        return this.constraintMetadatas.get(target) || [];\n    };\n    return MetadataStorage;\n}());\nexport { MetadataStorage };\n/**\n * Gets metadata storage.\n * Metadata storage follows the best practices and stores metadata in a global variable.\n */\nexport function getMetadataStorage() {\n    var global = getGlobal();\n    if (!global.classValidatorMetadataStorage) {\n        global.classValidatorMetadataStorage = new MetadataStorage();\n    }\n    return global.classValidatorMetadataStorage;\n}\n//# sourceMappingURL=MetadataStorage.js.map", "/**\n * Validation types.\n */\nvar ValidationTypes = /** @class */ (function () {\n    function ValidationTypes() {\n    }\n    /**\n     * Checks if validation type is valid.\n     */\n    ValidationTypes.isValid = function (type) {\n        var _this = this;\n        return (type !== 'isValid' &&\n            type !== 'getMessage' &&\n            Object.keys(this)\n                .map(function (key) { return _this[key]; })\n                .indexOf(type) !== -1);\n    };\n    /* system */\n    ValidationTypes.CUSTOM_VALIDATION = 'customValidation'; // done\n    ValidationTypes.NESTED_VALIDATION = 'nestedValidation'; // done\n    ValidationTypes.PROMISE_VALIDATION = 'promiseValidation'; // done\n    ValidationTypes.CONDITIONAL_VALIDATION = 'conditionalValidation'; // done\n    ValidationTypes.WHITELIST = 'whitelistValidation'; // done\n    ValidationTypes.IS_DEFINED = 'isDefined'; // done\n    return ValidationTypes;\n}());\nexport { ValidationTypes };\n//# sourceMappingURL=ValidationTypes.js.map", "/**\n * Container to be used by this library for inversion control. If container was not implicitly set then by default\n * container simply creates a new instance of the given class.\n */\nvar defaultContainer = new (/** @class */ (function () {\n    function class_1() {\n        this.instances = [];\n    }\n    class_1.prototype.get = function (someClass) {\n        var instance = this.instances.find(function (instance) { return instance.type === someClass; });\n        if (!instance) {\n            instance = { type: someClass, object: new someClass() };\n            this.instances.push(instance);\n        }\n        return instance.object;\n    };\n    return class_1;\n}()))();\nvar userContainer;\nvar userContainerOptions;\n/**\n * Sets container to be used by this library.\n */\nexport function useContainer(iocContainer, options) {\n    userContainer = iocContainer;\n    userContainerOptions = options;\n}\n/**\n * Gets the IOC container used by this library.\n */\nexport function getFromContainer(someClass) {\n    if (userContainer) {\n        try {\n            var instance = userContainer.get(someClass);\n            if (instance)\n                return instance;\n            if (!userContainerOptions || !userContainerOptions.fallback)\n                return instance;\n        }\n        catch (error) {\n            if (!userContainerOptions || !userContainerOptions.fallbackOnErrors)\n                throw error;\n        }\n    }\n    return defaultContainer.get(someClass);\n}\n//# sourceMappingURL=container.js.map", "import { getFromContainer } from '../container';\n/**\n * This metadata interface contains information for custom validators.\n */\nvar ConstraintMetadata = /** @class */ (function () {\n    // -------------------------------------------------------------------------\n    // Constructor\n    // -------------------------------------------------------------------------\n    function ConstraintMetadata(target, name, async) {\n        if (async === void 0) { async = false; }\n        this.target = target;\n        this.name = name;\n        this.async = async;\n    }\n    Object.defineProperty(ConstraintMetadata.prototype, \"instance\", {\n        // -------------------------------------------------------------------------\n        // Accessors\n        // -------------------------------------------------------------------------\n        /**\n         * Instance of the target custom validation class which performs validation.\n         */\n        get: function () {\n            return getFromContainer(this.target);\n        },\n        enumerable: false,\n        configurable: true\n    });\n    return ConstraintMetadata;\n}());\nexport { ConstraintMetadata };\n//# sourceMappingURL=ConstraintMetadata.js.map", "import { ConstraintMetadata } from './metadata/ConstraintMetadata';\nimport { ValidationMetadata } from './metadata/ValidationMetadata';\nimport { ValidationTypes } from './validation/ValidationTypes';\nimport { getFromContainer } from './container';\nimport { MetadataStorage, getMetadataStorage } from './metadata/MetadataStorage';\n/**\n * Registers a custom validation decorator.\n */\nexport function registerDecorator(options) {\n    var constraintCls;\n    if (options.validator instanceof Function) {\n        constraintCls = options.validator;\n        var constraintClasses = getFromContainer(MetadataStorage).getTargetValidatorConstraints(options.validator);\n        if (constraintClasses.length > 1) {\n            throw \"More than one implementation of ValidatorConstraintInterface found for validator on: \".concat(options.target.name, \":\").concat(options.propertyName);\n        }\n    }\n    else {\n        var validator_1 = options.validator;\n        constraintCls = /** @class */ (function () {\n            function CustomConstraint() {\n            }\n            CustomConstraint.prototype.validate = function (value, validationArguments) {\n                return validator_1.validate(value, validationArguments);\n            };\n            CustomConstraint.prototype.defaultMessage = function (validationArguments) {\n                if (validator_1.defaultMessage) {\n                    return validator_1.defaultMessage(validationArguments);\n                }\n                return '';\n            };\n            return CustomConstraint;\n        }());\n        getMetadataStorage().addConstraintMetadata(new ConstraintMetadata(constraintCls, options.name, options.async));\n    }\n    var validationMetadataArgs = {\n        type: options.name && ValidationTypes.isValid(options.name) ? options.name : ValidationTypes.CUSTOM_VALIDATION,\n        name: options.name,\n        target: options.target,\n        propertyName: options.propertyName,\n        validationOptions: options.options,\n        constraintCls: constraintCls,\n        constraints: options.constraints,\n    };\n    getMetadataStorage().addValidationMetadata(new ValidationMetadata(validationMetadataArgs));\n}\n//# sourceMappingURL=register-decorator.js.map", "import { v4 as e } from \"uuid\";\nimport { z as t } from \"zod\";\nimport { registerDecorator as n } from \"class-validator\";\n//#region src/types/FieldMetadataType.ts\nvar r = /* @__PURE__ */ function(e) {\n\treturn e.ACTOR = \"ACTOR\", e.ADDRESS = \"ADDRESS\", e.ARRAY = \"ARRAY\", e.BOOLEAN = \"BOOLEAN\", e.CURRENCY = \"CURRENCY\", e.DATE = \"DATE\", e.DATE_TIME = \"DATE_TIME\", e.EMAILS = \"EMAILS\", e.FILES = \"FILES\", e.FULL_NAME = \"FULL_NAME\", e.LINKS = \"LINKS\", e.MORPH_RELATION = \"MORPH_RELATION\", e.MULTI_SELECT = \"MULTI_SELECT\", e.NUMBER = \"NUMBER\", e.NUMERIC = \"NUMERIC\", e.PHONES = \"PHONES\", e.POSITION = \"POSITION\", e.RATING = \"RATING\", e.RAW_JSON = \"RAW_JSON\", e.RELATION = \"RELATION\", e.RICH_TEXT = \"RICH_TEXT\", e.SELECT = \"SELECT\", e.TEXT = \"TEXT\", e.TS_VECTOR = \"TS_VECTOR\", e.UUID = \"UUID\", e;\n}({}), ee = [\n\t\"addressStreet1\",\n\t\"addressStreet2\",\n\t\"addressCity\",\n\t\"addressState\",\n\t\"addressPostcode\",\n\t\"addressCountry\",\n\t\"addressLat\",\n\t\"addressLng\"\n], te = /* @__PURE__ */ function(e) {\n\treturn e.MIN = \"MIN\", e.MAX = \"MAX\", e.AVG = \"AVG\", e.SUM = \"SUM\", e.COUNT = \"COUNT\", e.COUNT_UNIQUE_VALUES = \"COUNT_UNIQUE_VALUES\", e.COUNT_EMPTY = \"COUNT_EMPTY\", e.COUNT_NOT_EMPTY = \"COUNT_NOT_EMPTY\", e.COUNT_TRUE = \"COUNT_TRUE\", e.COUNT_FALSE = \"COUNT_FALSE\", e.PERCENTAGE_EMPTY = \"PERCENTAGE_EMPTY\", e.PERCENTAGE_NOT_EMPTY = \"PERCENTAGE_NOT_EMPTY\", e;\n}({}), i = /* @__PURE__ */ function(e) {\n\treturn e.AdminPanel = \"admin-panel\", e.App = \"app\", e.ApplicationRegistrationClaim = \"application-registration-claim\", e.Apps = \"apps\", e.Auth = \"auth\", e.ClientConfig = \"client-config\", e.Cloudflare = \"cloudflare\", e.Emailing = \"emailing\", e.File = \"file\", e.FileUpload = \"file-upload\", e.Files = \"files\", e.GraphQL = \"graphql\", e.Health = \"healthz\", e.Mcp = \"mcp\", e.Metadata = \"metadata\", e.OAuth = \"oauth\", e.OpenApi = \"open-api\", e.PublicAssets = \"public-assets\", e.Rest = \"rest\", e.RouteTrigger = \"s\", e.Webhooks = \"webhooks\", e.WellKnown = \".well-known\", e;\n}({}), a = /* @__PURE__ */ function(e) {\n\treturn e.Settings = \"/settings\", e.Root = \"/\", e;\n}({}), o = /* @__PURE__ */ function(e) {\n\treturn e.Verify = \"/verify\", e.VerifyEmail = \"/verify-email\", e.SignInUp = \"/welcome\", e.Invite = \"/invite/:workspaceInviteHash\", e.ResetPassword = \"/reset-password/:passwordResetToken\", e.WorkspaceActivation = \"/workspace-activation\", e.CreateProfile = \"/create/profile\", e.SyncEmails = \"/sync/emails\", e.InstallApps = \"/install-apps\", e.InviteTeam = \"/invite-team\", e.PlanRequired = \"/plan-required\", e.PlanRequiredSuccess = \"/plan-required/payment-success\", e.BookCall = \"/book-call\", e.AiChat = \"/chat/:threadId?\", e.Index = \"/\", e.Home = \"/home\", e.TasksPage = \"/objects/tasks\", e.OpportunitiesPage = \"/objects/opportunities\", e.RecordIndexPage = \"/objects/:objectNamePlural\", e.RecordShowPage = \"/object/:objectNameSingular/:objectRecordId\", e.PageLayoutPage = \"/page/:pageLayoutId\", e.WorkflowCoreIndexPage = \"/workflow-core\", e.Settings = \"settings\", e.SettingsCatchAll = \"/settings/*\", e.Developers = \"developers\", e.DevelopersCatchAll = \"/developers/*\", e.Authorize = \"/authorize\", e.Dpa = \"/dpa\", e.NotFoundWildcard = \"*\", e.NotFound = \"/not-found\", e;\n}({}), s = /* @__PURE__ */ function(e) {\n\treturn e.WORKSPACE_MEMBER = \"WORKSPACE_MEMBER\", e.WORKSPACE = \"WORKSPACE\", e;\n}({}), c = /* @__PURE__ */ function(e) {\n\treturn e.AS_PARTICIPANT_AND_ORGANIZER = \"AS_PARTICIPANT_AND_ORGANIZER\", e.AS_PARTICIPANT = \"AS_PARTICIPANT\", e.AS_ORGANIZER = \"AS_ORGANIZER\", e.NONE = \"NONE\", e;\n}({}), l = /* @__PURE__ */ function(e) {\n\treturn e.PENDING_CONFIGURATION = \"PENDING_CONFIGURATION\", e.CALENDAR_EVENT_LIST_FETCH_PENDING = \"CALENDAR_EVENT_LIST_FETCH_PENDING\", e.CALENDAR_EVENT_LIST_FETCH_SCHEDULED = \"CALENDAR_EVENT_LIST_FETCH_SCHEDULED\", e.CALENDAR_EVENT_LIST_FETCH_ONGOING = \"CALENDAR_EVENT_LIST_FETCH_ONGOING\", e.CALENDAR_EVENTS_IMPORT_PENDING = \"CALENDAR_EVENTS_IMPORT_PENDING\", e.CALENDAR_EVENTS_IMPORT_SCHEDULED = \"CALENDAR_EVENTS_IMPORT_SCHEDULED\", e.CALENDAR_EVENTS_IMPORT_ONGOING = \"CALENDAR_EVENTS_IMPORT_ONGOING\", e.FAILED = \"FAILED\", e;\n}({}), u = /* @__PURE__ */ function(e) {\n\treturn e.NOT_SYNCED = \"NOT_SYNCED\", e.ONGOING = \"ONGOING\", e.ACTIVE = \"ACTIVE\", e.FAILED_INSUFFICIENT_PERMISSIONS = \"FAILED_INSUFFICIENT_PERMISSIONS\", e.FAILED_UNKNOWN = \"FAILED_UNKNOWN\", e;\n}({}), d = /* @__PURE__ */ function(e) {\n\treturn e.METADATA = \"METADATA\", e.SHARE_EVERYTHING = \"SHARE_EVERYTHING\", e;\n}({}), f = /* @__PURE__ */ function(e) {\n\treturn e.GLOBAL = \"GLOBAL\", e.GLOBAL_OBJECT_CONTEXT = \"GLOBAL_OBJECT_CONTEXT\", e.RECORD_SELECTION = \"RECORD_SELECTION\", e.FALLBACK = \"FALLBACK\", e;\n}({}), p = /* @__PURE__ */ function(e) {\n\treturn e.GLOBAL = \"GLOBAL\", e.INDEX_PAGE_BULK_SELECTION = \"INDEX_PAGE_BULK_SELECTION\", e.INDEX_PAGE_SINGLE_RECORD_SELECTION = \"INDEX_PAGE_SINGLE_RECORD_SELECTION\", e.INDEX_PAGE_NO_SELECTION = \"INDEX_PAGE_NO_SELECTION\", e.SHOW_PAGE = \"SHOW_PAGE\", e.PAGE_EDIT_MODE = \"PAGE_EDIT_MODE\", e;\n}({}), m = /* @__PURE__ */ function(e) {\n\treturn e.EMAIL = \"EMAIL\", e.CALENDAR = \"CALENDAR\", e.WORKFLOW = \"WORKFLOW\", e.AGENT = \"AGENT\", e.API = \"API\", e.IMPORT = \"IMPORT\", e.MANUAL = \"MANUAL\", e.SYSTEM = \"SYSTEM\", e.WEBHOOK = \"WEBHOOK\", e.APPLICATION = \"APPLICATION\", e;\n}({}), h = {\n\ttype: r.ACTOR,\n\tproperties: [\n\t\t{\n\t\t\tname: \"source\",\n\t\t\ttype: r.SELECT,\n\t\t\thidden: !1,\n\t\t\tisRequired: !0,\n\t\t\toptions: Object.keys(m).map((t, n) => ({\n\t\t\t\tid: e(),\n\t\t\t\tlabel: `${m[t].toLowerCase()}`,\n\t\t\t\tvalue: t,\n\t\t\t\tposition: n\n\t\t\t}))\n\t\t},\n\t\t{\n\t\t\tname: \"workspaceMemberId\",\n\t\t\ttype: r.UUID,\n\t\t\thidden: \"input\",\n\t\t\tisRequired: !1\n\t\t},\n\t\t{\n\t\t\tname: \"name\",\n\t\t\ttype: r.TEXT,\n\t\t\thidden: \"input\",\n\t\t\tisRequired: !0\n\t\t},\n\t\t{\n\t\t\tname: \"context\",\n\t\t\ttype: r.RAW_JSON,\n\t\t\thidden: !1,\n\t\t\tisRequired: !1\n\t\t}\n\t]\n}, g = {\n\ttype: r.ADDRESS,\n\tproperties: [\n\t\t{\n\t\t\tname: \"addressStreet1\",\n\t\t\ttype: r.TEXT,\n\t\t\thidden: !1,\n\t\t\tisRequired: !1\n\t\t},\n\t\t{\n\t\t\tname: \"addressStreet2\",\n\t\t\ttype: r.TEXT,\n\t\t\thidden: !1,\n\t\t\tisRequired: !1\n\t\t},\n\t\t{\n\t\t\tname: \"addressCity\",\n\t\t\ttype: r.TEXT,\n\t\t\thidden: !1,\n\t\t\tisRequired: !1\n\t\t},\n\t\t{\n\t\t\tname: \"addressPostcode\",\n\t\t\ttype: r.TEXT,\n\t\t\thidden: !1,\n\t\t\tisRequired: !1\n\t\t},\n\t\t{\n\t\t\tname: \"addressState\",\n\t\t\ttype: r.TEXT,\n\t\t\thidden: !1,\n\t\t\tisRequired: !1\n\t\t},\n\t\t{\n\t\t\tname: \"addressCountry\",\n\t\t\ttype: r.TEXT,\n\t\t\thidden: !1,\n\t\t\tisRequired: !1\n\t\t},\n\t\t{\n\t\t\tname: \"addressLat\",\n\t\t\ttype: r.NUMERIC,\n\t\t\thidden: !1,\n\t\t\tisRequired: !1\n\t\t},\n\t\t{\n\t\t\tname: \"addressLng\",\n\t\t\ttype: r.NUMERIC,\n\t\t\thidden: !1,\n\t\t\tisRequired: !1\n\t\t}\n\t]\n}, _ = {\n\ttype: r.CURRENCY,\n\tproperties: [{\n\t\tname: \"amountMicros\",\n\t\ttype: r.NUMERIC,\n\t\thidden: !1,\n\t\tisRequired: !1\n\t}, {\n\t\tname: \"currencyCode\",\n\t\ttype: r.TEXT,\n\t\thidden: !1,\n\t\tisRequired: !1\n\t}]\n}, v = {\n\ttype: r.EMAILS,\n\tproperties: [{\n\t\tname: \"primaryEmail\",\n\t\ttype: r.TEXT,\n\t\thidden: !1,\n\t\tisRequired: !1,\n\t\tisIncludedInUniqueConstraint: !0\n\t}, {\n\t\tname: \"additionalEmails\",\n\t\ttype: r.RAW_JSON,\n\t\thidden: !1,\n\t\tisRequired: !1\n\t}]\n}, y = {\n\ttype: r.FULL_NAME,\n\tproperties: [{\n\t\tname: \"firstName\",\n\t\ttype: r.TEXT,\n\t\thidden: !1,\n\t\tisRequired: !1,\n\t\tisIncludedInUniqueConstraint: !1\n\t}, {\n\t\tname: \"lastName\",\n\t\ttype: r.TEXT,\n\t\thidden: !1,\n\t\tisRequired: !1,\n\t\tisIncludedInUniqueConstraint: !1\n\t}]\n}, b = {\n\ttype: r.LINKS,\n\tproperties: [\n\t\t{\n\t\t\tname: \"primaryLinkLabel\",\n\t\t\ttype: r.TEXT,\n\t\t\thidden: !1,\n\t\t\tisRequired: !1\n\t\t},\n\t\t{\n\t\t\tname: \"primaryLinkUrl\",\n\t\t\ttype: r.TEXT,\n\t\t\thidden: !1,\n\t\t\tisRequired: !1,\n\t\t\tisIncludedInUniqueConstraint: !0\n\t\t},\n\t\t{\n\t\t\tname: \"secondaryLinks\",\n\t\t\ttype: r.RAW_JSON,\n\t\t\thidden: !1,\n\t\t\tisRequired: !1\n\t\t}\n\t]\n}, x = {\n\ttype: r.PHONES,\n\tproperties: [\n\t\t{\n\t\t\tname: \"primaryPhoneNumber\",\n\t\t\ttype: r.TEXT,\n\t\t\thidden: !1,\n\t\t\tisRequired: !1,\n\t\t\tisIncludedInUniqueConstraint: !0\n\t\t},\n\t\t{\n\t\t\tname: \"primaryPhoneCountryCode\",\n\t\t\ttype: r.TEXT,\n\t\t\thidden: !1,\n\t\t\tisRequired: !1,\n\t\t\tisIncludedInUniqueConstraint: !0\n\t\t},\n\t\t{\n\t\t\tname: \"primaryPhoneCallingCode\",\n\t\t\ttype: r.TEXT,\n\t\t\thidden: !1,\n\t\t\tisRequired: !1,\n\t\t\tisIncludedInUniqueConstraint: !0\n\t\t},\n\t\t{\n\t\t\tname: \"additionalPhones\",\n\t\t\ttype: r.RAW_JSON,\n\t\t\thidden: !1,\n\t\t\tisRequired: !1\n\t\t}\n\t]\n}, S = {\n\ttype: r.RICH_TEXT,\n\tproperties: [{\n\t\tname: \"blocknote\",\n\t\ttype: r.TEXT,\n\t\thidden: !1,\n\t\tisRequired: !1\n\t}, {\n\t\tname: \"markdown\",\n\t\ttype: r.TEXT,\n\t\thidden: !1,\n\t\tisRequired: !1\n\t}]\n}, C = t.object({\n\tblocknote: t.string().nullable().optional(),\n\tmarkdown: t.string().nullable()\n}), w = new Map([\n\t[r.LINKS, b],\n\t[r.CURRENCY, _],\n\t[r.FULL_NAME, y],\n\t[r.ADDRESS, g],\n\t[r.ACTOR, h],\n\t[r.EMAILS, v],\n\t[r.PHONES, x],\n\t[r.RICH_TEXT, S]\n]), T = /* @__PURE__ */ function(e) {\n\treturn e.GOOGLE = \"google\", e.MICROSOFT = \"microsoft\", e.IMAP_SMTP_CALDAV = \"imap_smtp_caldav\", e.OIDC = \"oidc\", e.SAML = \"saml\", e.EMAIL_GROUP = \"email_group\", e.APP = \"app\", e;\n}({}), E = /* @__PURE__ */ function(e) {\n\treturn e.Index = \"INDEX_PAGE\", e.Record = \"RECORD_PAGE\", e.Standalone = \"STANDALONE_PAGE\", e.Settings = \"SETTINGS_PAGE\", e;\n}({}), D = /* @__PURE__ */ function(e) {\n\treturn e.Activity = \"activity\", e.ActivityTarget = \"activityTarget\", e.ApiKey = \"apiKey\", e.Attachment = \"attachment\", e.Blocklist = \"blocklist\", e.CalendarChannel = \"calendarChannel\", e.CalendarEvent = \"calendarEvent\", e.CalendarEventTarget = \"calendarEventTarget\", e.CallRecording = \"callRecording\", e.Comment = \"comment\", e.Company = \"company\", e.Dashboard = \"dashboard\", e.TimelineActivity = \"timelineActivity\", e.Message = \"message\", e.MessageCampaign = \"messageCampaign\", e.MessageChannel = \"messageChannel\", e.MessageList = \"messageList\", e.MessageParticipant = \"messageParticipant\", e.MessageFolder = \"messageFolder\", e.MessageThread = \"messageThread\", e.MessageThreadTarget = \"messageThreadTarget\", e.Note = \"note\", e.NoteTarget = \"noteTarget\", e.Opportunity = \"opportunity\", e.Person = \"person\", e.Task = \"task\", e.TaskTarget = \"taskTarget\", e.Webhook = \"webhook\", e.WorkspaceMember = \"workspaceMember\", e.MessageThreadSubscriber = \"messageThreadSubscriber\", e.Workflow = \"workflow\", e.MessageChannelMessageAssociation = \"messageChannelMessageAssociation\", e.WorkflowVersion = \"workflowVersion\", e.WorkflowRun = \"workflowRun\", e;\n}({}), O = /* @__PURE__ */ function(e) {\n\treturn e.CREATE = \"CREATE\", e.UPDATE = \"UPDATE\", e.DELETE = \"DELETE\", e.RESTORE = \"RESTORE\", e.DESTROY = \"DESTROY\", e;\n}({}), k = /* @__PURE__ */ function(e) {\n\treturn e.WORKSPACE_EVENT = \"WORKSPACE_EVENT\", e.PAGEVIEW = \"PAGEVIEW\", e.OBJECT_EVENT = \"OBJECT_EVENT\", e.USAGE_EVENT = \"USAGE_EVENT\", e.APPLICATION_LOG = \"APPLICATION_LOG\", e;\n}({}), A = /* @__PURE__ */ function(e) {\n\treturn e.IS_APP_CLAIMING_ENABLED = \"IS_APP_CLAIMING_ENABLED\", e.IS_UNIQUE_INDEXES_ENABLED = \"IS_UNIQUE_INDEXES_ENABLED\", e.IS_JSON_FILTER_ENABLED = \"IS_JSON_FILTER_ENABLED\", e.IS_EMAIL_GROUP_ENABLED = \"IS_EMAIL_GROUP_ENABLED\", e.IS_JUNCTION_RELATIONS_ENABLED = \"IS_JUNCTION_RELATIONS_ENABLED\", e.IS_REST_METADATA_API_NEW_FORMAT_DIRECT = \"IS_REST_METADATA_API_NEW_FORMAT_DIRECT\", e.IS_LOGIC_FUNCTION_PREBUILT_MODE_ENABLED = \"IS_LOGIC_FUNCTION_PREBUILT_MODE_ENABLED\", e.IS_WORKFLOW_VERSION_IN_CORE_ENABLED = \"IS_WORKFLOW_VERSION_IN_CORE_ENABLED\", e.IS_WORKFLOW_CORE_INDEX_PAGE_ENABLED = \"IS_WORKFLOW_CORE_INDEX_PAGE_ENABLED\", e.IS_WORKFLOW_DISPATCH_FROM_CORE_ENABLED = \"IS_WORKFLOW_DISPATCH_FROM_CORE_ENABLED\", e.IS_API_RATE_LIMIT_V2_ENABLED = \"IS_API_RATE_LIMIT_V2_ENABLED\", e.IS_MESSAGE_CALENDAR_TARGET_READ_ENABLED = \"IS_MESSAGE_CALENDAR_TARGET_READ_ENABLED\", e;\n}({}), j = {\n\tUUID: \"uuid\",\n\tNOW: \"now\"\n}, M = [\n\tr.RELATION,\n\tr.MORPH_RELATION,\n\tr.FILES,\n\tr.TS_VECTOR\n], N = (e) => !M.includes(e), P = /* @__PURE__ */ function(e) {\n\treturn e.COPY = \"COPY\", e.OPEN_LINK = \"OPEN_LINK\", e.OPEN_IN_APP = \"OPEN_IN_APP\", e;\n}({}), F = class {}, I = class extends F {}, L = /* @__PURE__ */ function(e) {\n\treturn e.FLOAT = \"float\", e.INT = \"int\", e.BIGINT = \"bigint\", e;\n}({}), R = /* @__PURE__ */ function(e) {\n\treturn e.RELATIVE = \"RELATIVE\", e.USER_SETTINGS = \"USER_SETTINGS\", e.CUSTOM = \"CUSTOM\", e;\n}({}), z = [\"url\", \"domain\"], B = {\n\tARCHIVE: \"ARCHIVE\",\n\tAUDIO: \"AUDIO\",\n\tIMAGE: \"IMAGE\",\n\tPRESENTATION: \"PRESENTATION\",\n\tSPREADSHEET: \"SPREADSHEET\",\n\tTEXT_DOCUMENT: \"TEXT_DOCUMENT\",\n\tVIDEO: \"VIDEO\",\n\tOTHER: \"OTHER\"\n}, V = /* @__PURE__ */ function(e) {\n\treturn e.CorePicture = \"core-picture\", e.AgentChat = \"agent-chat\", e.BuiltLogicFunction = \"built-logic-function\", e.BuiltFrontComponent = \"built-front-component\", e.PublicAsset = \"public-asset\", e.Source = \"source\", e.FilesField = \"files-field\", e.Dependencies = \"dependencies\", e.Workflow = \"workflow\", e.EmailAttachment = \"email-attachment\", e.EmailImage = \"email-image\", e.AppTarball = \"app-tarball\", e.GeneratedSdkClient = \"generated-sdk-client\", e.Dpa = \"dpa\", e;\n}({}), H = [\n\t\"TEXT\",\n\t\"PHONES\",\n\t\"EMAILS\",\n\t\"DATE_TIME\",\n\t\"DATE\",\n\t\"NUMBER\",\n\t\"CURRENCY\",\n\t\"FULL_NAME\",\n\t\"LINKS\",\n\t\"RELATION\",\n\t\"ADDRESS\",\n\t\"SELECT\",\n\t\"RATING\",\n\t\"MULTI_SELECT\",\n\t\"ACTOR\",\n\t\"ARRAY\",\n\t\"RAW_JSON\",\n\t\"FILES\",\n\t\"BOOLEAN\",\n\t\"UUID\"\n], U = /* @__PURE__ */ function(e) {\n\treturn e.MONDAY = \"MONDAY\", e.SUNDAY = \"SUNDAY\", e.SATURDAY = \"SATURDAY\", e;\n}({}), W = /* @__PURE__ */ function(e) {\n\treturn e.GET = \"GET\", e.POST = \"POST\", e.PUT = \"PUT\", e.PATCH = \"PATCH\", e.DELETE = \"DELETE\", e;\n}({}), G = /* @__PURE__ */ function(e) {\n\treturn e.BTREE = \"BTREE\", e.GIN = \"GIN\", e;\n}({}), K = \"__twentyHttpResponse\", q = (e) => typeof e == \"number\" && Number.isInteger(e) && e >= 100 && e <= 599, J = (e) => typeof e == \"object\" && !!e && !Array.isArray(e) && Object.values(e).every((e) => typeof e == \"string\"), Y = (e) => {\n\tif (typeof e != \"object\" || !e) return !1;\n\tlet t = e;\n\treturn t.__twentyHttpResponse === !0 && (t.status === void 0 || q(t.status)) && (t.headers === void 0 || J(t.headers));\n}, X = /* @__PURE__ */ function(e) {\n\treturn e.DRAFT = \"DRAFT\", e.SCHEDULED = \"SCHEDULED\", e.SENDING = \"SENDING\", e.SENT = \"SENT\", e.SENT_WITH_ERRORS = \"SENT_WITH_ERRORS\", e.CANCELED = \"CANCELED\", e;\n}({}), Z = /* @__PURE__ */ function(e) {\n\treturn e.SENT_AND_RECEIVED = \"SENT_AND_RECEIVED\", e.SENT = \"SENT\", e.NONE = \"NONE\", e;\n}({}), Q = /* @__PURE__ */ function(e) {\n\treturn e.GROUP_EMAILS_DELETION = \"GROUP_EMAILS_DELETION\", e.GROUP_EMAILS_IMPORT = \"GROUP_EMAILS_IMPORT\", e.NONE = \"NONE\", e;\n}({}), ne = /* @__PURE__ */ function(e) {\n\treturn e.PENDING_CONFIGURATION = \"PENDING_CONFIGURATION\", e.MESSAGE_LIST_FETCH_PENDING = \"MESSAGE_LIST_FETCH_PENDING\", e.MESSAGE_LIST_FETCH_SCHEDULED = \"MESSAGE_LIST_FETCH_SCHEDULED\", e.MESSAGE_LIST_FETCH_ONGOING = \"MESSAGE_LIST_FETCH_ONGOING\", e.MESSAGES_IMPORT_PENDING = \"MESSAGES_IMPORT_PENDING\", e.MESSAGES_IMPORT_SCHEDULED = \"MESSAGES_IMPORT_SCHEDULED\", e.MESSAGES_IMPORT_ONGOING = \"MESSAGES_IMPORT_ONGOING\", e.FAILED = \"FAILED\", e;\n}({}), re = /* @__PURE__ */ function(e) {\n\treturn e.NOT_SYNCED = \"NOT_SYNCED\", e.ONGOING = \"ONGOING\", e.ACTIVE = \"ACTIVE\", e.FAILED_INSUFFICIENT_PERMISSIONS = \"FAILED_INSUFFICIENT_PERMISSIONS\", e.FAILED_UNKNOWN = \"FAILED_UNKNOWN\", e;\n}({}), ie = /* @__PURE__ */ function(e) {\n\treturn e.EMAIL = \"EMAIL\", e.SMS = \"SMS\", e.EMAIL_GROUP = \"EMAIL_GROUP\", e;\n}({}), ae = /* @__PURE__ */ function(e) {\n\treturn e.METADATA = \"METADATA\", e.SUBJECT = \"SUBJECT\", e.SHARE_EVERYTHING = \"SHARE_EVERYTHING\", e;\n}({}), oe = /* @__PURE__ */ function(e) {\n\treturn e.ALL_FOLDERS = \"ALL_FOLDERS\", e.SELECTED_FOLDERS = \"SELECTED_FOLDERS\", e;\n}({}), se = /* @__PURE__ */ function(e) {\n\treturn e.FOLDER_DELETION = \"FOLDER_DELETION\", e.FOLDER_IMPORT = \"FOLDER_IMPORT\", e.NONE = \"NONE\", e;\n}({}), ce = /* @__PURE__ */ function(e) {\n\treturn e.FROM = \"FROM\", e.TO = \"TO\", e.CC = \"CC\", e.BCC = \"BCC\", e.REPLY_TO = \"REPLY_TO\", e;\n}({}), le = /* @__PURE__ */ function(e) {\n\treturn e.OPEN = \"OPEN\", e.APPLICATION = \"APPLICATION\", e.SYSTEM = \"SYSTEM\", e;\n}({}), ue = /* @__PURE__ */ function(e) {\n\treturn e.VIEW = \"VIEW\", e.FOLDER = \"FOLDER\", e.LINK = \"LINK\", e.OBJECT = \"OBJECT\", e.RECORD = \"RECORD\", e.PAGE_LAYOUT = \"PAGE_LAYOUT\", e;\n}({}), de = /* @__PURE__ */ function(e) {\n\treturn e.SIDE_PANEL = \"SIDE_PANEL\", e.RECORD_PAGE = \"RECORD_PAGE\", e.USER_CHOICE = \"USER_CHOICE\", e;\n}({}), fe = /* @__PURE__ */ function(e) {\n\treturn e.AscNullsFirst = \"AscNullsFirst\", e.AscNullsLast = \"AscNullsLast\", e.DescNullsFirst = \"DescNullsFirst\", e.DescNullsLast = \"DescNullsLast\", e;\n}({}), pe = /* @__PURE__ */ function(e) {\n\treturn e.DAY = \"DAY\", e.MONTH = \"MONTH\", e.QUARTER = \"QUARTER\", e.YEAR = \"YEAR\", e.WEEK = \"WEEK\", e.DAY_OF_THE_WEEK = \"DAY_OF_THE_WEEK\", e.MONTH_OF_THE_YEAR = \"MONTH_OF_THE_YEAR\", e.QUARTER_OF_THE_YEAR = \"QUARTER_OF_THE_YEAR\", e.NONE = \"NONE\", e;\n}({}), me = /* @__PURE__ */ function(e) {\n\treturn e.SIDE_PANEL = \"SIDE_PANEL\", e.RECORD_PAGE = \"RECORD_PAGE\", e;\n}({}), he = [\n\t\"AGGREGATE_CHART\",\n\t\"PIE_CHART\",\n\t\"BAR_CHART\",\n\t\"LINE_CHART\"\n], ge = /* @__PURE__ */ function(e) {\n\treturn e.GRID = \"GRID\", e.VERTICAL_LIST = \"VERTICAL_LIST\", e.CANVAS = \"CANVAS\", e;\n}({}), _e = /* @__PURE__ */ function(e) {\n\treturn e.RECORD_INDEX = \"RECORD_INDEX\", e.RECORD_PAGE = \"RECORD_PAGE\", e.DASHBOARD = \"DASHBOARD\", e.STANDALONE_PAGE = \"STANDALONE_PAGE\", e.RECORD_FORM = \"RECORD_FORM\", e;\n}({}), ve = /* @__PURE__ */ function(e) {\n\treturn e.VIEW = \"VIEW\", e.IFRAME = \"IFRAME\", e.FIELD = \"FIELD\", e.FIELDS = \"FIELDS\", e.GRAPH = \"GRAPH\", e.STANDALONE_RICH_TEXT = \"STANDALONE_RICH_TEXT\", e.TIMELINE = \"TIMELINE\", e.TASKS = \"TASKS\", e.NOTES = \"NOTES\", e.FILES = \"FILES\", e.EMAILS = \"EMAILS\", e.CALENDAR = \"CALENDAR\", e.FIELD_RICH_TEXT = \"FIELD_RICH_TEXT\", e.WORKFLOW = \"WORKFLOW\", e.WORKFLOW_VERSION = \"WORKFLOW_VERSION\", e.WORKFLOW_RUN = \"WORKFLOW_RUN\", e.FRONT_COMPONENT = \"FRONT_COMPONENT\", e.RECORD_TABLE = \"RECORD_TABLE\", e.EMAIL_THREAD = \"EMAIL_THREAD\", e.CALL_RECORDING_SUMMARY = \"CALL_RECORDING_SUMMARY\", e.CALL_RECORDING_TRANSCRIPT = \"CALL_RECORDING_TRANSCRIPT\", e.MESSAGE_CAMPAIGN_BODY = \"MESSAGE_CAMPAIGN_BODY\", e.MESSAGE_CAMPAIGN_DETAILS = \"MESSAGE_CAMPAIGN_DETAILS\", e.FORM_FIELD = \"FORM_FIELD\", e;\n}({}), ye = /* @__PURE__ */ function(e) {\n\treturn e.AND = \"AND\", e.OR = \"OR\", e;\n}({}), be = /* @__PURE__ */ function(e) {\n\treturn e.CASCADE = \"CASCADE\", e.RESTRICT = \"RESTRICT\", e.SET_NULL = \"SET_NULL\", e.NO_ACTION = \"NO_ACTION\", e;\n}({}), xe = /* @__PURE__ */ function(e) {\n\treturn e.MANY_TO_ONE = \"MANY_TO_ONE\", e.ONE_TO_MANY = \"ONE_TO_MANY\", e;\n}({}), Se = /* @__PURE__ */ function(e) {\n\treturn e.AND = \"AND\", e.OR = \"OR\", e;\n}({}), Ce = /* @__PURE__ */ function(e) {\n\treturn e.IS = \"IS\", e.IS_NOT_NULL = \"IS_NOT_NULL\", e.IS_NOT = \"IS_NOT\", e.LESS_THAN_OR_EQUAL = \"LESS_THAN_OR_EQUAL\", e.GREATER_THAN_OR_EQUAL = \"GREATER_THAN_OR_EQUAL\", e.IS_BEFORE = \"IS_BEFORE\", e.IS_AFTER = \"IS_AFTER\", e.CONTAINS = \"CONTAINS\", e.DOES_NOT_CONTAIN = \"DOES_NOT_CONTAIN\", e.IS_EMPTY = \"IS_EMPTY\", e.IS_NOT_EMPTY = \"IS_NOT_EMPTY\", e.IS_RELATIVE = \"IS_RELATIVE\", e.IS_IN_PAST = \"IS_IN_PAST\", e.IS_IN_FUTURE = \"IS_IN_FUTURE\", e.IS_TODAY = \"IS_TODAY\", e.VECTOR_SEARCH = \"VECTOR_SEARCH\", e;\n}({}), we = \"__SerializedRelationBrand__\", Te = /* @__PURE__ */ function(e) {\n\treturn e.ApplicationRegistration = \"application-registration\", e;\n}({}), Ee = /* @__PURE__ */ function(e) {\n\treturn e.ProfilePage = \"profile\", e.TwoFactorAuthenticationStrategyConfig = \"profile/two-factor-authentication/:twoFactorAuthenticationStrategy\", e.Experience = \"experience\", e.Accounts = \"accounts\", e.NewAccount = \"accounts/new\", e.AccountsConfiguration = \"accounts/configuration/:connectedAccountId\", e.AccountsCalendars = \"accounts/calendars\", e.AccountsEmails = \"accounts/emails\", e.NewImapSmtpCaldavConnection = \"accounts/new-imap-smtp-caldav-connection\", e.EditImapSmtpCaldavConnection = \"accounts/edit-imap-smtp-caldav-connection/:connectedAccountId\", e.Billing = \"billing\", e.BillingPlans = \"billing/plans\", e.Usage = \"billing/usage\", e.UsageUserDetail = \"billing/usage/user/:userWorkspaceId\", e.Enterprise = \"enterprise\", e.Objects = \"objects\", e.ObjectOverview = \"objects/overview\", e.ObjectDetail = \"objects/:objectNamePlural\", e.ObjectNewFieldSelect = \"objects/:objectNamePlural/new-field/select\", e.ObjectNewFieldConfigure = \"objects/:objectNamePlural/new-field/configure\", e.ObjectNewIndex = \"objects/:objectNamePlural/new-index\", e.ObjectFieldEdit = \"objects/:objectNamePlural/:fieldName\", e.NewObject = \"objects/new\", e.Layout = \"layout\", e.WorkspaceMembersPage = \"members\", e.WorkspaceMemberPage = \"members/:workspaceMemberId\", e.General = \"general\", e.Subdomain = \"general/subdomain\", e.CustomDomain = \"general/custom-domain\", e.WorkspaceCommunications = \"communications\", e.EmailGroupChannelDetail = \"email/email-group/:messageChannelId\", e.NewEmailGroupChannel = \"email/new-email-group\", e.NewUnsubscribeTopic = \"email/new-unsubscribe-topic\", e.UnsubscribeTopicDetail = \"email/unsubscribe-topic/:unsubscribeTopicId\", e.Unsubscribe = \"communications/unsubscribe\", e.PublicDomain = \"applications/public-domain\", e.NewApprovedAccessDomain = \"security/approved-access-domain/new\", e.Community = \"community\", e.AI = \"ai\", e.AiUsageUserDetail = \"ai/usage/user/:userWorkspaceId\", e.AiPrompts = \"ai/prompts\", e.AiNewAgent = \"ai/new-agent\", e.AiAgentDetail = \"ai/agents/:agentId\", e.AiAgentTurnDetail = \"ai/agents/:agentId/turns/:turnId\", e.AiNewSkill = \"ai/new-skill\", e.AiSkillDetail = \"ai/skills/:skillId\", e.AiToolDetail = \"ai/tools/:toolIdentifier\", e.Applications = \"applications\", e.ApplicationDetail = \"applications/:applicationId\", e.ApplicationConnectionDetail = \"applications/:applicationId/connections/:connectedAccountId\", e.ApplicationLogicFunctionDetail = \"applications/:applicationId/logicFunctions/:logicFunctionId\", e.ApplicationFrontComponentDetail = \"applications/:applicationId/frontComponents/:frontComponentId\", e.ApplicationCommandMenuItemDetail = \"applications/:applicationId/commandMenuItems/:commandMenuItemId\", e.ApplicationTimelineActivityTypeDetail = \"applications/:applicationId/timelineActivityTypes/:timelineActivityTypeId\", e.ApplicationViewDetail = \"applications/:applicationId/views/:viewUniversalIdentifier\", e.ApplicationPageLayoutDetail = \"applications/:applicationId/pageLayouts/:pageLayoutUniversalIdentifier\", e.AvailableApplicationDetail = \"applications/available/:availableApplicationId\", e.ApplicationRegistrationDetail = \"applications/registrations/:applicationRegistrationId\", e.LogicFunctions = \"functions\", e.NewLogicFunction = \"functions/new\", e.LogicFunctionDetail = \"functions/:logicFunctionId\", e.ApiWebhooks = \"mcp-apis\", e.RestPlayground = \"playground/rest/:schema\", e.GraphQLPlayground = \"playground/graphql/:schema\", e.NewApiKey = \"mcp-apis/apis/new\", e.ApiKeyDetail = \"mcp-apis/apis/:apiKeyId\", e.NewWebhook = \"mcp-apis/webhooks/new\", e.WebhookDetail = \"mcp-apis/webhooks/:webhookId\", e.Integrations = \"integrations\", e.Security = \"general#security\", e.Logs = \"general#logs\", e.NewSsoIdentityProvider = \"security/sso/new\", e.AdminPanel = \"admin-panel\", e.AdminPanelEnterprise = \"admin-panel#enterprise\", e.AdminPanelHealthStatus = \"admin-panel#health-status\", e.AdminPanelIndicatorHealthStatus = \"admin-panel/health-status/:indicatorId\", e.AdminPanelInferredVersion = \"admin-panel/health-status/inferred-version\", e.AdminPanelInstanceStatus = \"admin-panel/health-status/instance-status\", e.AdminPanelWorkspacesStatus = \"admin-panel/health-status/workspaces-status\", e.AdminPanelQueueDetail = \"admin-panel/health-status/queue/:queueName\", e.AdminPanelConfigVariableDetails = \"admin-panel/config-variables/:variableName\", e.AdminPanelNewAiProvider = \"admin-panel/ai/new-provider\", e.AdminPanelAiProviderDetail = \"admin-panel/ai/providers/:providerName\", e.AdminPanelNewAiModel = \"admin-panel/ai/providers/:providerName/new-model\", e.AdminPanelUserDetail = \"admin-panel/users/:userId\", e.AdminPanelWorkspaceDetail = \"admin-panel/workspaces/:workspaceId\", e.AdminPanelApplicationRegistrationDetail = \"admin-panel/applications/registrations/:applicationRegistrationId\", e.AdminPanelWorkspaceChatThread = \"admin-panel/workspaces/:workspaceId/threads/:threadId\", e.AdminPanelChats = \"admin-panel/chats\", e.Roles = \"members/roles\", e.RoleCreate = \"members/roles/create\", e.RoleDetail = \"members/roles/:roleId\", e.RoleObjectLevel = \"members/roles/:roleId/object/:objectMetadataId\", e.RoleAddObjectLevel = \"members/roles/:roleId/add-object-permission\", e.Legal = \"legal\", e.LegalDpa = \"legal/dpa\", e.LegalDpaNew = \"legal/dpa/new\", e;\n}({}), De = /* @__PURE__ */ function(e) {\n\treturn e.CommandMenuDisplay = \"command-menu-display\", e.ViewRecord = \"view-record\", e.ViewRecords = \"view-records\", e.MergeRecords = \"merge-records\", e.UpdateRecords = \"update-records\", e.EditRichText = \"edit-rich-text\", e.Copilot = \"copilot\", e.WorkflowTriggerSelectType = \"workflow-trigger-select-type\", e.WorkflowStepCreate = \"workflow-step-create\", e.WorkflowStepEditType = \"workflow-step-edit-type\", e.WorkflowStepView = \"workflow-step-view\", e.WorkflowStepEdit = \"workflow-step-edit\", e.WorkflowRunStepView = \"workflow-run-step-view\", e.SearchRecords = \"search-records\", e.AskAI = \"ask-ai\", e.PageLayoutDashboardWidgetTypeSelect = \"page-layout-dashboard-widget-type-select\", e.PageLayoutTabSettings = \"page-layout-tab-settings\", e.PageLayoutWidgetSettings = \"page-layout-widget-settings\", e.DashboardChartSettings = \"dashboard-chart-settings\", e.DashboardIframeSettings = \"dashboard-iframe-settings\", e.DashboardRecordTableSettings = \"dashboard-record-table-settings\", e.RecordPageFieldsSettings = \"record-page-fields-settings\", e.RecordPageFieldSettings = \"record-page-field-settings\", e.ViewFrontComponent = \"view-front-component\", e.NavigationMenuItemEdit = \"navigation-menu-item-edit\", e.NavigationMenuAddItem = \"navigation-menu-add-item\", e.CommandMenuEdit = \"command-menu-edit\", e.PageLayoutRecordPageWidgetTypeSelect = \"page-layout-record-page-widget-type-select\", e.ComposeEmail = \"compose-email\", e.ComposeCalendarEvent = \"compose-calendar-event\", e.CreateRelatedRecord = \"create-related-record\", e.SendCampaignTest = \"send-campaign-test\", e.WorkflowVersions = \"workflow-versions\", e.WorkflowVersion = \"workflow-version\", e.EmailBlockSettings = \"email-block-settings\", e.SettingsMetadataTranslations = \"settings-metadata-translations\", e.RoutedPage = \"routed-page\", e.WorkflowCoreFilters = \"workflow-core-filters\", e;\n}({}), Oe = /* @__PURE__ */ function(e) {\n\treturn e.AND = \"AND\", e.OR = \"OR\", e;\n}({}), ke = /* @__PURE__ */ function(e) {\n\treturn e.TOTP = \"TOTP\", e;\n}({}), Ae = /* @__PURE__ */ function(e) {\n\treturn e.UP_TO_DATE = \"UP_TO_DATE\", e.BEHIND = \"BEHIND\", e.FAILED = \"FAILED\", e;\n}({}), $ = /^[_A-Za-z][_0-9A-Za-z]*$/, je = (e) => (t, r) => {\n\tn({\n\t\tname: \"isValidGraphQLEnumName\",\n\t\ttarget: t.constructor,\n\t\tpropertyName: r,\n\t\toptions: e,\n\t\tvalidator: {\n\t\t\tvalidate: (e) => typeof e == \"string\" && $.test(e),\n\t\t\tdefaultMessage: (e) => `${e.property} must match the ${$} format`\n\t\t}\n\t});\n}, Me = /* @__PURE__ */ function(e) {\n\treturn e.DAY = \"DAY\", e.WEEK = \"WEEK\", e.MONTH = \"MONTH\", e;\n}({}), Ne = /* @__PURE__ */ function(e) {\n\treturn e.AND = \"AND\", e.OR = \"OR\", e.NOT = \"NOT\", e;\n}({}), Pe = /* @__PURE__ */ function(e) {\n\treturn e.IS = \"IS\", e.IS_NOT_NULL = \"IS_NOT_NULL\", e.IS_NOT = \"IS_NOT\", e.LESS_THAN_OR_EQUAL = \"LESS_THAN_OR_EQUAL\", e.GREATER_THAN_OR_EQUAL = \"GREATER_THAN_OR_EQUAL\", e.IS_BEFORE = \"IS_BEFORE\", e.IS_AFTER = \"IS_AFTER\", e.CONTAINS = \"CONTAINS\", e.DOES_NOT_CONTAIN = \"DOES_NOT_CONTAIN\", e.IS_EMPTY = \"IS_EMPTY\", e.IS_NOT_EMPTY = \"IS_NOT_EMPTY\", e.IS_RELATIVE = \"IS_RELATIVE\", e.IS_IN_PAST = \"IS_IN_PAST\", e.IS_IN_FUTURE = \"IS_IN_FUTURE\", e.IS_TODAY = \"IS_TODAY\", e.VECTOR_SEARCH = \"VECTOR_SEARCH\", e;\n}({}), Fe = /* @__PURE__ */ function(e) {\n\treturn e.Is = \"is\", e.IsNotNull = \"isNotNull\", e.IsNot = \"isNot\", e.LessThanOrEqual = \"lessThan\", e.GreaterThanOrEqual = \"greaterThan\", e.IsBefore = \"isBefore\", e.IsAfter = \"isAfter\", e.Contains = \"contains\", e.DoesNotContain = \"doesNotContain\", e.IsEmpty = \"isEmpty\", e.IsNotEmpty = \"isNotEmpty\", e.IsRelative = \"isRelative\", e.IsInPast = \"isInPast\", e.IsInFuture = \"isInFuture\", e.IsToday = \"isToday\", e;\n}({}), Ie = /* @__PURE__ */ function(e) {\n\treturn e.INDEX = \"INDEX\", e;\n}({}), Le = /* @__PURE__ */ function(e) {\n\treturn e.SIDE_PANEL = \"SIDE_PANEL\", e.RECORD_PAGE = \"RECORD_PAGE\", e;\n}({}), Re = /* @__PURE__ */ function(e) {\n\treturn e.ASC = \"ASC\", e.DESC = \"DESC\", e;\n}({}), ze = /* @__PURE__ */ function(e) {\n\treturn e.TABLE = \"TABLE\", e.KANBAN = \"KANBAN\", e.CALENDAR = \"CALENDAR\", e.LIST = \"LIST\", e.FIELDS_WIDGET = \"FIELDS_WIDGET\", e.TABLE_WIDGET = \"TABLE_WIDGET\", e.KANBAN_WIDGET = \"KANBAN_WIDGET\", e.LIST_WIDGET = \"LIST_WIDGET\", e.CALENDAR_WIDGET = \"CALENDAR_WIDGET\", e;\n}({}), Be = /* @__PURE__ */ function(e) {\n\treturn e.WORKSPACE = \"WORKSPACE\", e.UNLISTED = \"UNLISTED\", e;\n}({}), Ve = /* @__PURE__ */ function(e) {\n\treturn e.MESSAGING = \"messaging\", e.CALENDAR = \"calendar\", e;\n}({}), He = /* @__PURE__ */ function(e) {\n\treturn e.PENDING = \"PENDING\", e.ACTIVE = \"ACTIVE\", e.FAILED = \"FAILED\", e.EXPIRED = \"EXPIRED\", e;\n}({});\n//#endregion\nexport { R as $, pe as A, c as At, re as B, be as C, m as Ct, ge as D, d as Dt, _e as E, f as Et, ce as F, te as Ft, K as G, Q as H, se as I, ee as It, W as J, Y as K, oe as L, r as Lt, de as M, o as Mt, ue as N, a as Nt, he as O, u as Ot, le as P, i as Pt, B as Q, ae as R, xe as S, g as St, ve as T, p as Tt, Z as U, ne as V, X as W, H as X, U as Y, V as Z, Ee as _, x as _t, Re as a, M as at, Ce as b, v as bt, Fe as c, A as ct, Me as d, D as dt, z as et, je as f, E as ft, De as g, C as gt, Oe as h, S as ht, ze as i, P as it, fe as j, s as jt, me as k, l as kt, Pe as l, k as lt, ke as m, w as mt, Ve as n, I as nt, Le as o, j as ot, Ae as p, T as pt, G as q, Be as r, F as rt, Ie as s, N as st, He as t, L as tt, Ne as u, O as ut, Te as v, b as vt, ye as w, h as wt, Se as x, _ as xt, we as y, y as yt, ie as z };\n", "import { E as e } from \"./types-BPwZbSNY.mjs\";\nimport { v5 as t } from \"uuid\";\n//#region src/application/constants/TwentyStandardApplicationUniversalIdentifier.ts\nvar n = \"20202020-64aa-4b6f-b003-9c74b97cee20\", r = ({ entityNamespace: e, value: n, applicationUniversalIdentifier: r }) => t(`${e}:${n}`, r), i = ({ applicationUniversalIdentifier: e, objectUniversalIdentifier: t, name: n }) => r({\n\tentityNamespace: \"fieldMetadata\",\n\tvalue: `${t}:${n}`,\n\tapplicationUniversalIdentifier: e\n}), a = ({ applicationUniversalIdentifier: e, objectUniversalIdentifier: t, name: n }) => r({\n\tentityNamespace: \"pageLayout\",\n\tvalue: t ? `${t}:${n}` : n,\n\tapplicationUniversalIdentifier: e\n}), o = ({ objectMetadataApplicationUniversalIdentifier: e, pageLayoutUniversalIdentifier: t, title: n }) => r({\n\tentityNamespace: \"pageLayoutTab\",\n\tvalue: `${t}:${n}`,\n\tapplicationUniversalIdentifier: e\n}), s = ({ objectMetadataApplicationUniversalIdentifier: e, pageLayoutTabUniversalIdentifier: t, title: n }) => r({\n\tentityNamespace: \"pageLayoutWidget\",\n\tvalue: `${t}:${n}`,\n\tapplicationUniversalIdentifier: e\n}), c = ({ objectMetadataApplicationUniversalIdentifier: t, objectUniversalIdentifier: n }) => a({\n\tapplicationUniversalIdentifier: t,\n\tobjectUniversalIdentifier: n,\n\tname: e.RECORD_PAGE\n}), l = ({ applicationUniversalIdentifier: e, objectUniversalIdentifier: t, relationTargetObjectUniversalIdentifier: n }) => r({\n\tentityNamespace: \"fieldMetadata\",\n\tvalue: `${t}:systemRelation:${n}`,\n\tapplicationUniversalIdentifier: e\n}), u = ({ objectMetadataApplicationUniversalIdentifier: e, viewUniversalIdentifier: t, name: n }) => r({\n\tentityNamespace: \"viewFieldGroup\",\n\tvalue: `${t}:${n}`,\n\tapplicationUniversalIdentifier: e\n}), d = ({ fieldMetadataApplicationUniversalIdentifier: e, viewUniversalIdentifier: t, fieldMetadataUniversalIdentifier: n }) => r({\n\tentityNamespace: \"viewField\",\n\tvalue: `${t}:${n}`,\n\tapplicationUniversalIdentifier: e\n}), f = {\n\tINDEX: \"INDEX\",\n\tFIELDS_WIDGET: \"FIELDS_WIDGET\"\n}, p = ({ objectMetadataApplicationUniversalIdentifier: e, objectUniversalIdentifier: t, viewKey: n }) => r({\n\tentityNamespace: \"view\",\n\tvalue: `${t}:${n}`,\n\tapplicationUniversalIdentifier: e\n});\n//#endregion\nexport { l as a, o as c, r as d, n as f, u as i, a as l, p as n, c as o, d as r, s, f as t, i as u };\n", "import { Lt as e } from \"./types-BPwZbSNY.mjs\";\nimport { a as t, c as n, d as r, f as i, i as a, l as ee, n as o, o as s, r as c, s as l, t as u, u as te } from \"./get-system-view-universal-identifier.util-DET35GTV.mjs\";\n//#region src/application/applicationBillingType.ts\nvar d = [\"MONTH\"], f = (e) => d.includes(e), p = [\"WORKSPACE_MEMBER\"], m = (e) => p.includes(e), h = 1e8, g = 1e9, _ = (e) => typeof e == \"number\" && Number.isSafeInteger(e) && e > 0 && e <= 1e8, v = (e) => {\n\tif (typeof e != \"object\" || !e) return !1;\n\tlet { period: t, amountMicroCredits: n, per: r, label: i } = e;\n\treturn f(t) && _(n) && (r === void 0 || m(r)) && typeof i == \"string\" && i.trim().length > 0;\n}, y = [\n\t\"Communication\",\n\t\"Productivity\",\n\t\"Product management\",\n\t\"Sales\",\n\t\"Marketing\",\n\t\"Enrichment\",\n\t\"Data\",\n\t\"Search\",\n\t\"Other\"\n], b = (e) => y.includes(e), x = [\n\te.TEXT,\n\te.ARRAY,\n\te.BOOLEAN,\n\te.DATE,\n\te.DATE_TIME,\n\te.NUMBER,\n\te.NUMERIC,\n\te.RAW_JSON,\n\te.RICH_TEXT,\n\te.SELECT,\n\te.MULTI_SELECT\n], S = 100, C = \"public\", w = \"TWENTY_API_KEY\", T = \"TWENTY_API_URL\", E = \"TWENTY_APP_ACCESS_TOKEN\", D = \"TWENTY_APP_APPLICATION_ACCESS_TOKEN\", O = \"TWENTY_FUNCTIONS_URL\", k = \"front-component-shared-dependencies.mjs\", A = \"twenty:front-component-shared-dependencies\", j = \"generated\", M = { js: \"import { createRequire as __createRequire } from 'module';\\nconst require = __createRequire(import.meta.url);\" }, N = \".twenty/output\", P = \"Standard\", F = [\n\t\"workspace-suspended\",\n\t\"no-subscription\",\n\t\"no-credits\"\n], I = ({ applicationUniversalIdentifier: e, name: t }) => r({\n\tentityNamespace: \"agent\",\n\tvalue: t,\n\tapplicationUniversalIdentifier: e\n}), L = ({ applicationUniversalIdentifier: e, key: t }) => r({\n\tentityNamespace: \"applicationVariable\",\n\tvalue: t,\n\tapplicationUniversalIdentifier: e\n}), R = ({ applicationUniversalIdentifier: e, name: t }) => r({\n\tentityNamespace: \"connectionProvider\",\n\tvalue: t,\n\tapplicationUniversalIdentifier: e\n}), z = ({ applicationUniversalIdentifier: e, roleUniversalIdentifier: t, fieldUniversalIdentifier: n }) => r({\n\tentityNamespace: \"fieldPermission\",\n\tvalue: `${t}:${n}`,\n\tapplicationUniversalIdentifier: e\n}), ne = ({ applicationUniversalIdentifier: e, componentName: t }) => r({\n\tentityNamespace: \"frontComponent\",\n\tvalue: t,\n\tapplicationUniversalIdentifier: e\n}), B = ({ applicationUniversalIdentifier: e, objectUniversalIdentifier: t, name: n }) => r({\n\tentityNamespace: \"index\",\n\tvalue: `${t}:${n}`,\n\tapplicationUniversalIdentifier: e\n}), V = ({ applicationUniversalIdentifier: e, name: t }) => r({\n\tentityNamespace: \"logicFunction\",\n\tvalue: t,\n\tapplicationUniversalIdentifier: e\n}), H = ({ applicationUniversalIdentifier: e, name: t }) => r({\n\tentityNamespace: \"navigationMenuItem\",\n\tvalue: `FOLDER:${t}`,\n\tapplicationUniversalIdentifier: e\n}), U = ({ applicationUniversalIdentifier: e, objectUniversalIdentifier: t }) => r({\n\tentityNamespace: \"navigationMenuItem\",\n\tvalue: `OBJECT:${t}`,\n\tapplicationUniversalIdentifier: e\n}), W = ({ applicationUniversalIdentifier: e, viewUniversalIdentifier: t }) => r({\n\tentityNamespace: \"navigationMenuItem\",\n\tvalue: `VIEW:${t}`,\n\tapplicationUniversalIdentifier: e\n}), G = ({ applicationUniversalIdentifier: e, link: t }) => r({\n\tentityNamespace: \"navigationMenuItem\",\n\tvalue: `LINK:${t}`,\n\tapplicationUniversalIdentifier: e\n}), K = ({ applicationUniversalIdentifier: e, roleUniversalIdentifier: t, objectUniversalIdentifier: n }) => r({\n\tentityNamespace: \"objectPermission\",\n\tvalue: `${t}:${n}`,\n\tapplicationUniversalIdentifier: e\n}), q = ({ applicationUniversalIdentifier: e, nameSingular: t }) => r({\n\tentityNamespace: \"objectMetadata\",\n\tvalue: t,\n\tapplicationUniversalIdentifier: e\n}), J = ({ applicationUniversalIdentifier: e, key: t }) => r({\n\tentityNamespace: \"permissionFlag\",\n\tvalue: t,\n\tapplicationUniversalIdentifier: e\n}), Y = ({ applicationUniversalIdentifier: e, roleUniversalIdentifier: t, permissionFlagUniversalIdentifier: n }) => r({\n\tentityNamespace: \"rolePermissionFlag\",\n\tvalue: `${t}:${n}`,\n\tapplicationUniversalIdentifier: e\n}), X = ({ applicationUniversalIdentifier: e, agentUniversalIdentifier: t }) => r({\n\tentityNamespace: \"roleTarget\",\n\tvalue: t,\n\tapplicationUniversalIdentifier: e\n}), Z = ({ applicationUniversalIdentifier: e, label: t }) => r({\n\tentityNamespace: \"role\",\n\tvalue: t,\n\tapplicationUniversalIdentifier: e\n}), re = ({ applicationUniversalIdentifier: e, fieldMetadataUniversalIdentifier: t }) => r({\n\tentityNamespace: \"searchFieldMetadata\",\n\tvalue: t,\n\tapplicationUniversalIdentifier: e\n}), ie = ({ applicationUniversalIdentifier: e, fieldUniversalIdentifier: t, value: n }) => r({\n\tentityNamespace: \"selectOption\",\n\tvalue: `${t}:${n}`,\n\tapplicationUniversalIdentifier: e\n}), ae = ({ applicationUniversalIdentifier: e, name: t }) => r({\n\tentityNamespace: \"skill\",\n\tvalue: t,\n\tapplicationUniversalIdentifier: e\n}), oe = \"navigation\", se = ({ objectMetadataApplicationUniversalIdentifier: e, objectUniversalIdentifier: t }) => r({\n\tentityNamespace: \"commandMenuItem\",\n\tvalue: `${t}:${oe}`,\n\tapplicationUniversalIdentifier: e\n}), Q = ({ applicationUniversalIdentifier: e, viewUniversalIdentifier: t, fieldMetadataUniversalIdentifier: n }) => r({\n\tentityNamespace: \"viewField\",\n\tvalue: `${t}:${n}`,\n\tapplicationUniversalIdentifier: e\n}), ce = ({ applicationUniversalIdentifier: e, viewUniversalIdentifier: t, fieldMetadataUniversalIdentifier: n, operand: i, subFieldName: a }) => r({\n\tentityNamespace: \"viewFilter\",\n\tvalue: `${t}:${n}:${i}:${a ?? \"\"}`,\n\tapplicationUniversalIdentifier: e\n}), le = ({ applicationUniversalIdentifier: e, viewUniversalIdentifier: t, fieldValue: n }) => r({\n\tentityNamespace: \"viewGroup\",\n\tvalue: `${t}:${n}`,\n\tapplicationUniversalIdentifier: e\n}), ue = ({ applicationUniversalIdentifier: e, viewUniversalIdentifier: t, fieldMetadataUniversalIdentifier: n }) => r({\n\tentityNamespace: \"viewSort\",\n\tvalue: `${t}:${n}`,\n\tapplicationUniversalIdentifier: e\n}), de = ({ applicationUniversalIdentifier: e, objectUniversalIdentifier: t, name: n }) => r({\n\tentityNamespace: \"view\",\n\tvalue: `${t}:${n}`,\n\tapplicationUniversalIdentifier: e\n}), fe = /* @__PURE__ */ function(e) {\n\treturn e.Object = \"object\", e.Field = \"field\", e.LogicFunction = \"logicFunction\", e.FrontComponent = \"frontComponent\", e.Role = \"role\", e.Skill = \"skill\", e.Agent = \"agent\", e.ConnectionProvider = \"connectionProvider\", e.View = \"view\", e.ViewField = \"viewField\", e.NavigationMenuItem = \"navigationMenuItem\", e.PageLayout = \"pageLayout\", e.PageLayoutTab = \"pageLayoutTab\", e.CommandMenuItem = \"commandMenuItem\", e.TimelineActivityType = \"timelineActivityType\", e;\n}({}), $ = [\n\t\"AI_CHAT_TOKEN\",\n\t\"AI_WORKFLOW_TOKEN\",\n\t\"WORKFLOW_EXECUTION\",\n\t\"CODE_EXECUTION\",\n\t\"WEB_SEARCH\",\n\t\"CALL_RECORDING\",\n\t\"EMAIL_SEND\"\n], pe = (e) => $.includes(e), me = (t, n = e.TEXT) => {\n\tif (t == null) return \"\";\n\tswitch (n) {\n\t\tcase e.BOOLEAN: return String(t) === \"true\" ? \"true\" : \"false\";\n\t\tcase e.NUMBER:\n\t\tcase e.NUMERIC: return String(t);\n\t\tcase e.ARRAY:\n\t\tcase e.MULTI_SELECT:\n\t\t\tif (Array.isArray(t)) return JSON.stringify(t);\n\t\t\tif (typeof t == \"string\") {\n\t\t\t\ttry {\n\t\t\t\t\tlet e = JSON.parse(t);\n\t\t\t\t\tif (Array.isArray(e)) return t;\n\t\t\t\t} catch {}\n\t\t\t\treturn JSON.stringify([t]);\n\t\t\t}\n\t\t\treturn JSON.stringify(t);\n\t\tcase e.RAW_JSON:\n\t\tcase e.RICH_TEXT: return typeof t == \"string\" ? t : JSON.stringify(t);\n\t\tdefault: return typeof t == \"string\" ? t : String(t);\n\t}\n}, he = (t, n = e.TEXT) => {\n\tif (t === \"\") return n === e.ARRAY || n === e.MULTI_SELECT ? [] : \"\";\n\tswitch (n) {\n\t\tcase e.BOOLEAN: return t === \"true\";\n\t\tcase e.NUMBER:\n\t\tcase e.NUMERIC: {\n\t\t\tlet e = Number(t);\n\t\t\treturn Number.isNaN(e) ? t : e;\n\t\t}\n\t\tcase e.ARRAY:\n\t\tcase e.MULTI_SELECT: try {\n\t\t\tlet e = JSON.parse(t);\n\t\t\treturn Array.isArray(e) ? e : [];\n\t\t} catch {\n\t\t\treturn [];\n\t\t}\n\t\tcase e.RAW_JSON:\n\t\tcase e.RICH_TEXT: try {\n\t\t\treturn JSON.parse(t);\n\t\t} catch {\n\t\t\treturn t;\n\t\t}\n\t\tdefault: return t;\n\t}\n};\n//#endregion\nexport { y as APPLICATION_CATEGORIES, S as APPLICATION_FILE_UPLOAD_BATCH_SIZE, x as APPLICATION_VARIABLE_FIELD_METADATA_TYPES, C as ASSETS_DIR, F as CREDIT_UNAVAILABLE_REASONS, w as DEFAULT_API_KEY_NAME, T as DEFAULT_API_URL_NAME, E as DEFAULT_APP_ACCESS_TOKEN_NAME, D as DEFAULT_APP_APPLICATION_ACCESS_TOKEN_NAME, O as DEFAULT_FUNCTIONS_URL_NAME, k as FRONT_COMPONENT_SHARED_DEPENDENCIES_BUILT_PATH, A as FRONT_COMPONENT_SHARED_DEPENDENCIES_IMPORT_SPECIFIER, j as GENERATED_DIR, g as MAX_RECURRING_CHARGE_MICRO_CREDITS_PER_PERIOD, h as MAX_RECURRING_CHARGE_MICRO_CREDITS_PER_UNIT, M as NODE_ESM_CJS_BANNER, N as OUTPUT_DIR, d as RECURRING_CHARGE_PERIODS, p as RECURRING_CHARGE_UNITS, u as SYSTEM_VIEW_KEYS, fe as SyncableEntity, P as TWENTY_STANDARD_APPLICATION_NAME, i as TWENTY_STANDARD_APPLICATION_UNIVERSAL_IDENTIFIER, $ as USAGE_OPERATION_TYPES, r as computeDeterministicUuid, he as deserializeApplicationVariableValue, I as getAgentUniversalIdentifier, L as getApplicationVariableUniversalIdentifier, R as getConnectionProviderUniversalIdentifier, z as getFieldPermissionUniversalIdentifier, te as getFieldUniversalIdentifier, H as getFolderNavigationMenuItemUniversalIdentifier, ne as getFrontComponentUniversalIdentifier, B as getIndexUniversalIdentifier, G as getLinkNavigationMenuItemUniversalIdentifier, V as getLogicFunctionUniversalIdentifier, U as getObjectNavigationMenuItemUniversalIdentifier, K as getObjectPermissionUniversalIdentifier, q as getObjectUniversalIdentifier, ee as getPageLayoutUniversalIdentifier, J as getPermissionFlagUniversalIdentifier, Y as getRolePermissionFlagUniversalIdentifier, X as getRoleTargetUniversalIdentifier, Z as getRoleUniversalIdentifier, re as getSearchFieldUniversalIdentifier, ie as getSelectOptionUniversalIdentifier, ae as getSkillUniversalIdentifier, se as getSystemNavigationCommandMenuItemUniversalIdentifier, n as getSystemPageLayoutTabUniversalIdentifier, l as getSystemPageLayoutWidgetUniversalIdentifier, s as getSystemRecordPageLayoutUniversalIdentifier, t as getSystemRelationFieldUniversalIdentifier, a as getSystemViewFieldGroupUniversalIdentifier, c as getSystemViewFieldUniversalIdentifier, o as getSystemViewUniversalIdentifier, Q as getViewFieldUniversalIdentifier, ce as getViewFilterUniversalIdentifier, le as getViewGroupUniversalIdentifier, W as getViewNavigationMenuItemUniversalIdentifier, ue as getViewSortUniversalIdentifier, de as getViewUniversalIdentifier, b as isKnownApplicationCategory, v as isRecurringCharge, _ as isRecurringChargeAmount, f as isRecurringChargePeriod, m as isRecurringChargeUnit, pe as isUsageOperationTypeValue, me as serializeApplicationVariableValue };\n", "import {\n  DEFAULT_APP_ACCESS_TOKEN_NAME,\n  DEFAULT_APP_APPLICATION_ACCESS_TOKEN_NAME,\n} from 'twenty-shared/application';\n\n// These calls reach the application's own resources rather than acting for\n// whoever triggered the run, so they take the application token whenever the\n// logic function runtime injects one. Front components only ever get the other.\nexport const getApplicationAccessToken = (): string | undefined =>\n  process.env[DEFAULT_APP_APPLICATION_ACCESS_TOKEN_NAME] ??\n  process.env[DEFAULT_APP_ACCESS_TOKEN_NAME];\n", "import {\n  DEFAULT_API_URL_NAME,\n  DEFAULT_APP_APPLICATION_ACCESS_TOKEN_NAME,\n} from 'twenty-shared/application';\n\nimport { getApplicationAccessToken } from '@/sdk/utils/get-application-access-token';\n\nexport const postGraphqlRequest = async <TVariables, TData>({\n  query,\n  variables,\n  caller,\n}: {\n  query: string;\n  variables: TVariables;\n  caller: string;\n}): Promise<TData> => {\n  const apiUrl = process.env[DEFAULT_API_URL_NAME];\n  const accessToken = getApplicationAccessToken();\n\n  if (!apiUrl || !accessToken) {\n    throw new Error(\n      `${caller}() requires the app runtime env vars ` +\n        `${DEFAULT_API_URL_NAME} and ${DEFAULT_APP_APPLICATION_ACCESS_TOKEN_NAME}.`,\n    );\n  }\n\n  const response = await fetch(`${apiUrl}/metadata`, {\n    method: 'POST',\n    headers: {\n      'Content-Type': 'application/json',\n      Authorization: `Bearer ${accessToken}`,\n    },\n    body: JSON.stringify({ query, variables }),\n  });\n\n  if (!response.ok) {\n    throw new Error(\n      `${caller}() failed: HTTP ${response.status} ${response.statusText}`,\n    );\n  }\n\n  const body = (await response.json()) as {\n    data?: TData;\n    errors?: { message: string }[];\n  };\n\n  if (body.errors && body.errors.length > 0) {\n    throw new Error(\n      `${caller}() failed: ${body.errors.map((error) => error.message).join(', ')}`,\n    );\n  }\n\n  if (!body.data) {\n    throw new Error(`${caller}() failed: response contained no data.`);\n  }\n\n  return body.data;\n};\n", "import { AppConnectionAuthFailedError } from '@/sdk/logic-function/connections/errors/app-connection-auth-failed.error';\nimport { type AppConnection } from '@/sdk/logic-function/connections/types/app-connection.type';\nimport { postGraphqlRequest } from '@/sdk/logic-function/utils/post-graphql-request.util';\n\nconst GET_APP_CONNECTION_QUERY = `\n  query GetAppConnection($id: ID!) {\n    appConnection(id: $id) {\n      id\n      providerName\n      name\n      handle\n      visibility\n      userWorkspaceId\n      workspaceMemberId\n      accessToken\n      scopes\n      authFailedAt\n    }\n  }\n`;\n\nexport const getConnection = async (id: string): Promise<AppConnection> => {\n  const { appConnection } = await postGraphqlRequest<\n    { id: string },\n    { appConnection: AppConnection }\n  >({\n    query: GET_APP_CONNECTION_QUERY,\n    variables: { id },\n    caller: 'getConnection',\n  });\n\n  if (appConnection.authFailedAt !== null) {\n    throw new AppConnectionAuthFailedError(appConnection.id);\n  }\n\n  return appConnection;\n};\n", "import { type AppConnection } from '@/sdk/logic-function/connections/types/app-connection.type';\nimport { postGraphqlRequest } from '@/sdk/logic-function/utils/post-graphql-request.util';\n\nconst LIST_APP_CONNECTIONS_QUERY = `\n  query ListAppConnections($filter: ListAppConnectionsInput) {\n    appConnections(filter: $filter) {\n      id\n      providerName\n      name\n      handle\n      visibility\n      userWorkspaceId\n      workspaceMemberId\n      accessToken\n      scopes\n      authFailedAt\n    }\n  }\n`;\n\nexport type ListConnectionsFilter = {\n  providerName?: string;\n  userWorkspaceId?: string;\n  visibility?: 'user' | 'workspace';\n};\n\nexport const listConnections = async (\n  filter: ListConnectionsFilter = {},\n): Promise<AppConnection[]> => {\n  const { appConnections } = await postGraphqlRequest<\n    { filter: ListConnectionsFilter },\n    { appConnections: AppConnection[] }\n  >({\n    query: LIST_APP_CONNECTIONS_QUERY,\n    variables: { filter },\n    caller: 'listConnections',\n  });\n\n  return appConnections;\n};\n", "import { type AppConnection } from '@/sdk/logic-function/connections/types/app-connection.type';\n\nexport const findConnectionForRequest = (\n  connections: AppConnection[],\n  event: { userWorkspaceId: string | null },\n): AppConnection | null => {\n  if (event.userWorkspaceId !== null) {\n    const personal = connections.find(\n      (connection) =>\n        connection.visibility === 'user' &&\n        connection.userWorkspaceId === event.userWorkspaceId,\n    );\n\n    if (personal) {\n      return personal;\n    }\n  }\n\n  const workspaceShared = connections.find(\n    (connection) => connection.visibility === 'workspace',\n  );\n\n  return workspaceShared ?? null;\n};\n", "import {\n  type RunAgentInput,\n  type RunAgentResult,\n} from 'twenty-shared/application';\n\nimport { postGraphqlRequest } from '@/sdk/logic-function/utils/post-graphql-request.util';\n\nconst RUN_AGENT_MUTATION = `\n  mutation RunAgent($input: RunAgentInput!) {\n    runAgent(input: $input) {\n      result\n      error\n      success\n    }\n  }\n`;\n\nexport const runAgent = async (\n  input: RunAgentInput,\n): Promise<RunAgentResult> => {\n  const { runAgent: result } = await postGraphqlRequest<\n    { input: RunAgentInput },\n    { runAgent: RunAgentResult }\n  >({\n    query: RUN_AGENT_MUTATION,\n    variables: { input },\n    caller: 'runAgent',\n  });\n\n  return result;\n};\n", "import { MetadataApiClient } from 'twenty-client-sdk/metadata';\nimport {\n  type EnqueueJobInput,\n  type EnqueueJobResult,\n} from 'twenty-shared/application';\n\n/**\n * @deprecated Use `enqueueJobs` instead.\n */\nexport const enqueueJob = async (\n  input: EnqueueJobInput,\n): Promise<EnqueueJobResult> => {\n  const client = new MetadataApiClient();\n\n  const { enqueueJob: result } = await client.mutation({\n    enqueueJob: {\n      __args: { input },\n      enqueued: true,\n      logicFunctionUniversalIdentifier: true,\n      jobId: true,\n    },\n  });\n\n  return result;\n};\n", "import { MetadataApiClient } from 'twenty-client-sdk/metadata';\nimport {\n  type EnqueueJobsInput,\n  type EnqueueJobsResult,\n} from 'twenty-shared/application';\n\nexport const enqueueJobs = async (\n  input: EnqueueJobsInput,\n): Promise<EnqueueJobsResult> => {\n  const client = new MetadataApiClient();\n\n  const { enqueueJobs: result } = await client.mutation({\n    enqueueJobs: {\n      __args: { input },\n      enqueued: true,\n      logicFunctionUniversalIdentifier: true,\n      enqueuedJobsCount: true,\n      jobIds: true,\n    },\n  });\n\n  return result;\n};\n", "import { MetadataApiClient } from 'twenty-client-sdk/metadata';\nimport { type JobStatusResult } from 'twenty-shared/application';\n\nexport const getJobs = async (jobIds: string[]): Promise<JobStatusResult[]> => {\n  const client = new MetadataApiClient();\n\n  const { getJobs: result } = await client.query({\n    getJobs: {\n      __args: { jobIds },\n      jobId: true,\n      state: true,\n      attemptsMade: true,\n      failedReason: true,\n      enqueuedAt: true,\n      startedAt: true,\n      finishedAt: true,\n    },\n  });\n\n  return result;\n};\n", "import { isNonEmptyString as e } from \"@sniptt/guards\";\n//#region src/utils/strings/capitalize.ts\nvar t = (t) => e(t) ? t[0].toUpperCase() + t.slice(1) : \"\";\n//#endregion\nexport { t };\n", "import { MetadataApiClient } from 'twenty-client-sdk/metadata';\nimport { RestApiClient } from 'twenty-client-sdk/rest';\nimport { capitalize, isDefined } from 'twenty-shared/utils';\nimport { type TimelineActivityTypeSnapshot } from 'twenty-shared/timeline';\n\ntype CreateTimelineActivityBaseInput = {\n  timelineActivityTypeUniversalIdentifier: string;\n  targetObjectUniversalIdentifier: string;\n  targetRecordId: string;\n  happensAt?: string;\n  properties?: Record<string, unknown>;\n};\n\ntype CreateTimelineActivityLinkedRecordInput =\n  | {\n      linkedRecordId: string;\n      linkedObjectMetadataUniversalIdentifier: string;\n    }\n  | {\n      linkedRecordId?: never;\n      linkedObjectMetadataUniversalIdentifier?: never;\n    };\n\nexport type CreateTimelineActivityInput = CreateTimelineActivityBaseInput &\n  CreateTimelineActivityLinkedRecordInput;\n\nexport type CreatedTimelineActivity = {\n  id: string;\n  timelineActivityTypeId: string;\n  timelineActivityTypeSnapshot: TimelineActivityTypeSnapshot;\n};\n\nconst getObjectMetadataSelection = (universalIdentifiers: string[]) => ({\n  __args: {\n    paging: {\n      first: universalIdentifiers.length,\n    },\n    filter: {\n      universalIdentifier: {\n        in: universalIdentifiers,\n      },\n    },\n  },\n  edges: {\n    node: {\n      id: true,\n      universalIdentifier: true,\n      nameSingular: true,\n    },\n  },\n});\n\n// App code addresses manifest entities by their stable universal identifier;\n// the workspace row deliberately stores the installation-specific metadata ID.\nexport const createTimelineActivity = async ({\n  timelineActivityTypeUniversalIdentifier,\n  targetObjectUniversalIdentifier,\n  linkedObjectMetadataUniversalIdentifier,\n  targetRecordId,\n  ...input\n}: CreateTimelineActivityInput): Promise<CreatedTimelineActivity> => {\n  const requiredObjectUniversalIdentifiers = [\n    ...new Set(\n      [\n        targetObjectUniversalIdentifier,\n        linkedObjectMetadataUniversalIdentifier,\n      ].filter(isDefined),\n    ),\n  ];\n  const metadataClient = new MetadataApiClient();\n  const { timelineActivityTypes, objects } = await metadataClient.query({\n    timelineActivityTypes: {\n      id: true,\n      universalIdentifier: true,\n      isActive: true,\n    },\n    objects: getObjectMetadataSelection(requiredObjectUniversalIdentifiers),\n  });\n\n  const timelineActivityType = timelineActivityTypes.find(\n    ({ universalIdentifier }) =>\n      universalIdentifier === timelineActivityTypeUniversalIdentifier,\n  );\n\n  if (!isDefined(timelineActivityType)) {\n    throw new Error(\n      `Timeline activity type ${timelineActivityTypeUniversalIdentifier} is not installed`,\n    );\n  }\n\n  if (!timelineActivityType.isActive) {\n    throw new Error(\n      `Timeline activity type ${timelineActivityTypeUniversalIdentifier} is inactive`,\n    );\n  }\n\n  const objectMetadataByUniversalIdentifier = new Map(\n    objects.edges.map(({ node }) => [node.universalIdentifier, node]),\n  );\n\n  const targetObject = objectMetadataByUniversalIdentifier.get(\n    targetObjectUniversalIdentifier,\n  );\n\n  if (!isDefined(targetObject)) {\n    throw new Error(\n      `Timeline activity target object ${targetObjectUniversalIdentifier} is not installed`,\n    );\n  }\n\n  const targetFieldName = `target${capitalize(targetObject.nameSingular)}Id`;\n  const linkedObject = isDefined(linkedObjectMetadataUniversalIdentifier)\n    ? objectMetadataByUniversalIdentifier.get(\n        linkedObjectMetadataUniversalIdentifier,\n      )\n    : undefined;\n\n  if (\n    isDefined(linkedObjectMetadataUniversalIdentifier) &&\n    !isDefined(linkedObject)\n  ) {\n    throw new Error(\n      `Timeline activity linked object ${linkedObjectMetadataUniversalIdentifier} is not installed`,\n    );\n  }\n\n  const response = await new RestApiClient().post<{\n    data: { createTimelineActivity: CreatedTimelineActivity };\n  }>('/rest/timelineActivities', {\n    ...input,\n    timelineActivityTypeId: timelineActivityType.id,\n    linkedObjectMetadataId: linkedObject?.id,\n    [targetFieldName]: targetRecordId,\n  });\n\n  return response.data.createTimelineActivity;\n};\n", "import {\n  type AppKeyValue,\n  type AppKeyValueScope,\n} from 'twenty-shared/application';\n\nimport { postGraphqlRequest } from '@/sdk/logic-function/utils/post-graphql-request.util';\n\nconst GET_APP_KEY_VALUE_QUERY = `\n  query GetAppKeyValue($key: String!, $scope: AppKeyValueScope) {\n    appKeyValue(key: $key, scope: $scope) {\n      key\n      value\n      scope\n    }\n  }\n`;\n\nconst SET_APP_KEY_VALUE_MUTATION = `\n  mutation SetAppKeyValue($input: SetAppKeyValueInput!) {\n    setAppKeyValue(input: $input) {\n      key\n      value\n      scope\n    }\n  }\n`;\n\nconst DELETE_APP_KEY_VALUE_MUTATION = `\n  mutation DeleteAppKeyValue($key: String!, $scope: AppKeyValueScope) {\n    deleteAppKeyValue(key: $key, scope: $scope)\n  }\n`;\n\nconst DEFAULT_APP_KEY_VALUE_SCOPE: AppKeyValueScope = 'WORKSPACE';\n\ntype KvOptions = {\n  scope?: AppKeyValueScope;\n};\n\nexport const kv = {\n  async get<TValue = unknown>(\n    key: string,\n    options?: KvOptions,\n  ): Promise<TValue | null> {\n    const { appKeyValue } = await postGraphqlRequest<\n      { key: string; scope: AppKeyValueScope },\n      { appKeyValue: AppKeyValue | null }\n    >({\n      query: GET_APP_KEY_VALUE_QUERY,\n      variables: { key, scope: options?.scope ?? DEFAULT_APP_KEY_VALUE_SCOPE },\n      caller: 'kv.get',\n    });\n\n    return (appKeyValue?.value ?? null) as TValue | null;\n  },\n\n  async set<TValue>(\n    key: string,\n    value: TValue,\n    options?: KvOptions,\n  ): Promise<void> {\n    await postGraphqlRequest<\n      {\n        input: { key: string; value: TValue; scope: AppKeyValueScope };\n      },\n      { setAppKeyValue: AppKeyValue }\n    >({\n      query: SET_APP_KEY_VALUE_MUTATION,\n      variables: {\n        input: {\n          key,\n          value,\n          scope: options?.scope ?? DEFAULT_APP_KEY_VALUE_SCOPE,\n        },\n      },\n      caller: 'kv.set',\n    });\n  },\n\n  async delete(key: string, options?: KvOptions): Promise<boolean> {\n    const { deleteAppKeyValue } = await postGraphqlRequest<\n      { key: string; scope: AppKeyValueScope },\n      { deleteAppKeyValue: boolean }\n    >({\n      query: DELETE_APP_KEY_VALUE_MUTATION,\n      variables: { key, scope: options?.scope ?? DEFAULT_APP_KEY_VALUE_SCOPE },\n      caller: 'kv.delete',\n    });\n\n    return deleteAppKeyValue;\n  },\n};\n", "import { type LogicFunctionHttpResponse } from 'twenty-shared/types';\n\nexport type ResponseInit = {\n  status?: number;\n  headers?: Record<string, string>;\n};\n\nexport class Response implements LogicFunctionHttpResponse {\n  readonly __twentyHttpResponse = true as const;\n  readonly body: unknown;\n  readonly status?: number;\n  readonly headers?: Record<string, string>;\n\n  constructor(body: unknown, init?: ResponseInit) {\n    this.body = body;\n    this.status = init?.status;\n    this.headers = init?.headers;\n  }\n}\n", "// Redelivery is safe only because every enqueued handler is idempotent.\nexport const ENQUEUED_JOB_RETRY_LIMIT = 2;\n", "// Late enough for a top-up to count, early enough for the queue retries of a failed cancellation.\nexport const PRE_JOIN_CREDIT_CHECK_LEAD_MINUTES = 10;\n", "import { enqueueJobs } from 'twenty-sdk/logic-function';\n\nimport { CHECK_CREDITS_BEFORE_RECALL_BOT_JOIN_LOGIC_FUNCTION_UNIVERSAL_IDENTIFIER } from 'src/constants/universal-identifiers';\nimport { ENQUEUED_JOB_RETRY_LIMIT } from 'src/logic-functions/constants/enqueued-job-retry-limit';\nimport { MILLISECONDS_PER_MINUTE } from 'src/logic-functions/constants/milliseconds-per-minute';\nimport { PRE_JOIN_CREDIT_CHECK_LEAD_MINUTES } from 'src/logic-functions/constants/pre-join-credit-check-lead-minutes';\n\nexport const enqueuePreJoinCreditCheck = async ({\n  callRecordingId,\n  externalBotId,\n  joinAt,\n}: {\n  callRecordingId: string;\n  externalBotId: string;\n  joinAt: string;\n}): Promise<void> => {\n  const joinAtMilliseconds = new Date(joinAt).getTime();\n  const checkAtMilliseconds =\n    joinAtMilliseconds -\n    PRE_JOIN_CREDIT_CHECK_LEAD_MINUTES * MILLISECONDS_PER_MINUTE;\n\n  try {\n    await enqueueJobs({\n      logicFunctionUniversalIdentifier:\n        CHECK_CREDITS_BEFORE_RECALL_BOT_JOIN_LOGIC_FUNCTION_UNIVERSAL_IDENTIFIER,\n      jobs: [\n        {\n          // A re-created or rescheduled bot gets its own check; the queue keeps a completed id for hours.\n          jobId: `credit-check.${callRecordingId}.${externalBotId}.${joinAtMilliseconds}`,\n          payload: { callRecordingId },\n        },\n      ],\n      retryLimit: ENQUEUED_JOB_RETRY_LIMIT,\n      // The server rejects a negative delay.\n      delayMs: Math.max(0, checkAtMilliseconds - Date.now()),\n    });\n  } catch (error) {\n    // Fail open: a missed check means a charged recording, not a failed schedule.\n    console.warn(\n      `[call-recorder] failed to enqueue the pre-join credit check for callRecording ${callRecordingId}: ${\n        error instanceof Error ? error.message : String(error)\n      }`,\n    );\n  }\n};\n", "import { isUndefined } from '@sniptt/guards';\nimport { type CoreApiClient } from 'twenty-client-sdk/core';\n\nimport { CallRecordingRequestStatus } from 'src/logic-functions/constants/call-recording-request-status';\nimport { CallRecordingStatus } from 'src/logic-functions/constants/call-recording-status';\nimport { type MeetingRecording } from 'src/logic-functions/types/meeting-recording.type';\nimport { buildRecallBotAutomaticVideoOutput } from 'src/logic-functions/domain/build-recall-bot-automatic-video-output.util';\nimport { buildRecallRoutingMetadata } from 'src/logic-functions/domain/build-recall-routing-metadata.util';\nimport { computeRecallBotJoinAt } from 'src/logic-functions/domain/compute-recall-bot-join-at.util';\nimport { isRecallBotJoinWithinCreditCheckLead } from 'src/logic-functions/domain/is-recall-bot-join-within-credit-check-lead.util';\nimport { enqueuePreJoinCreditCheck } from 'src/logic-functions/data/enqueue-pre-join-credit-check.util';\nimport { findCallRecordingsByIds } from 'src/logic-functions/data/find-call-recordings-by-ids.util';\nimport { getCreditsUnavailableFailureReason } from 'src/logic-functions/data/get-credits-unavailable-failure-reason.util';\nimport { getCurrentWorkspaceId } from 'src/logic-functions/data/get-current-workspace-id.util';\nimport { markCallRecordingNotRecorded } from 'src/logic-functions/data/mark-call-recording-not-recorded.util';\nimport { isCalendarBotSchedulingEnabled } from 'src/logic-functions/utils/is-calendar-bot-scheduling-enabled.util';\nimport {\n  computeRecallBotCreationIdempotencyKey,\n  scheduleRecallBot,\n} from 'src/logic-functions/recall-api/schedule-recall-bot.util';\nimport { updateCallRecording } from 'src/logic-functions/data/update-call-recording.util';\n\nexport type ScheduleRecallBotForCallRecordingResult =\n  | { status: 'scheduled' }\n  | { status: 'skipped'; reason: string }\n  | { status: 'blocked'; failureReason: string }\n  | { status: 'failed'; reason: string };\n\n// The sole place a Recall bot is created. Only the deterministic-create winner and the stale-state cron call it, so one writer per meeting POSTs exactly one bot.\nexport const scheduleRecallBotForCallRecording = async (\n  client: CoreApiClient,\n  { callRecording, calendarEvent }: MeetingRecording,\n): Promise<ScheduleRecallBotForCallRecordingResult> => {\n  const meetingUrl = calendarEvent.conferenceLinkUrl;\n  const meetingStartsAt = calendarEvent.startsAt;\n\n  if (isUndefined(meetingUrl) || isUndefined(meetingStartsAt)) {\n    return { status: 'skipped', reason: 'meeting has no link or start time' };\n  }\n\n  if (!isCalendarBotSchedulingEnabled()) {\n    return { status: 'skipped', reason: 'calendar bot scheduling is off' };\n  }\n\n  const joinAt = computeRecallBotJoinAt(meetingStartsAt);\n\n  const freshCallRecording = (\n    await findCallRecordingsByIds(client, [callRecording.id])\n  )[0];\n\n  if (\n    isUndefined(freshCallRecording) ||\n    freshCallRecording.recordingRequestStatus !==\n      CallRecordingRequestStatus.REQUESTED ||\n    freshCallRecording.status !== CallRecordingStatus.SCHEDULED ||\n    !isUndefined(freshCallRecording.externalBotId)\n  ) {\n    return {\n      status: 'skipped',\n      reason: 'call recording no longer awaits a bot',\n    };\n  }\n\n  // A bot created this close to the join starts joining at once, so the verdict comes first.\n  const isJoinWithinCreditCheckLead = isRecallBotJoinWithinCreditCheckLead({\n    joinAt,\n    now: new Date(),\n  });\n  const creditsUnavailableFailureReason = isJoinWithinCreditCheckLead\n    ? await getCreditsUnavailableFailureReason()\n    : undefined;\n\n  if (!isUndefined(creditsUnavailableFailureReason)) {\n    await markCallRecordingNotRecorded(client, {\n      callRecordingId: callRecording.id,\n      failureReason: creditsUnavailableFailureReason,\n    });\n\n    return {\n      status: 'blocked',\n      failureReason: creditsUnavailableFailureReason,\n    };\n  }\n\n  const workspaceId = getCurrentWorkspaceId();\n\n  if (isUndefined(workspaceId)) {\n    console.error(\n      `[call-recorder] cannot schedule Recall bot for callRecording ${callRecording.id}: workspace id unavailable, the shared webhook could not be routed back`,\n    );\n\n    return { status: 'failed', reason: 'workspace id unavailable' };\n  }\n\n  const automaticVideoOutput = await buildRecallBotAutomaticVideoOutput();\n  const metadata = buildRecallRoutingMetadata({\n    callRecordingId: callRecording.id,\n    workspaceId,\n  });\n  const idempotencyKey = computeRecallBotCreationIdempotencyKey({\n    meetingUrl,\n    joinAt,\n    metadata,\n  });\n\n  // Persisted before the POST so a crash leaves proof that a bot creation may\n  // have reached Recall; while the stored key still matches the scheduling\n  // inputs, recovery can re-send the creation idempotently instead of asking\n  // Recall whether a bot already exists. Re-sends of the same key keep the\n  // first attempt's timestamp so repeated unknown outcomes age out of the\n  // resend window instead of staying trusted forever.\n  const recordedAttemptTimestamp =\n    freshCallRecording.botScheduleIdempotencyKey === idempotencyKey\n      ? freshCallRecording.botScheduleAttemptedAt\n      : undefined;\n\n  await updateCallRecording(client, {\n    id: callRecording.id,\n    data: {\n      botScheduleAttemptedAt:\n        recordedAttemptTimestamp ?? new Date().toISOString(),\n      botScheduleIdempotencyKey: idempotencyKey,\n    },\n  });\n\n  const scheduleResult = await scheduleRecallBot({\n    meetingUrl,\n    meetingStartsAt,\n    joinAt,\n    metadata,\n    automaticVideoOutput,\n    idempotencyKey,\n  });\n\n  if (!scheduleResult.ok) {\n    console.warn(\n      `[call-recorder] failed to schedule Recall bot for callRecording ${callRecording.id}: ${scheduleResult.errorMessage}`,\n    );\n\n    return { status: 'failed', reason: scheduleResult.errorMessage };\n  }\n\n  await updateCallRecording(client, {\n    id: callRecording.id,\n    data: { externalBotId: scheduleResult.externalBotId },\n  });\n\n  if (!isJoinWithinCreditCheckLead) {\n    await enqueuePreJoinCreditCheck({\n      callRecordingId: callRecording.id,\n      externalBotId: scheduleResult.externalBotId,\n      joinAt,\n    });\n  }\n\n  return { status: 'scheduled' };\n};\n", "import { isUndefined } from '@sniptt/guards';\n\nimport { getBotImageBackground } from 'src/logic-functions/constants/get-bot-image-background';\nimport { isWorkspaceLogoBotImageEnabled } from 'src/logic-functions/constants/is-workspace-logo-bot-image-enabled';\nimport { getWorkspaceLogo } from 'src/logic-functions/data/get-workspace-logo.util';\nimport { buildBotImage } from 'src/logic-functions/domain/build-bot-image.util';\nimport { type RecallBotAutomaticVideoOutput } from 'src/logic-functions/types/recall-bot-automatic-video-output.type';\n\nexport const buildRecallBotAutomaticVideoOutput = async (): Promise<\n  RecallBotAutomaticVideoOutput | undefined\n> => {\n  if (!isWorkspaceLogoBotImageEnabled()) {\n    return undefined;\n  }\n\n  const logoBuffer = await getWorkspaceLogo();\n\n  if (isUndefined(logoBuffer)) {\n    return undefined;\n  }\n\n  const background = getBotImageBackground();\n\n  const notRecordingImage = await buildBotImage({ logoBuffer, background });\n\n  if (isUndefined(notRecordingImage)) {\n    return undefined;\n  }\n\n  const recordingImage =\n    (await buildBotImage({\n      logoBuffer,\n      background,\n      withRecordingStatusBadge: true,\n    })) ?? notRecordingImage;\n\n  return {\n    in_call_recording: { kind: 'jpeg', b64_data: recordingImage },\n    in_call_not_recording: { kind: 'jpeg', b64_data: notRecordingImage },\n  };\n};\n", "export const CALL_RECORDER_BOT_IMAGE_BACKGROUND_ENV_VAR_NAME =\n  'CALL_RECORDER_BOT_IMAGE_BACKGROUND';\n", "export const DEFAULT_CALL_RECORDER_BOT_IMAGE_BACKGROUND = '#1d1d1d';\n", "import { CALL_RECORDER_BOT_IMAGE_BACKGROUND_ENV_VAR_NAME } from 'src/logic-functions/constants/call-recorder-bot-image-background-env-var-name';\nimport { DEFAULT_CALL_RECORDER_BOT_IMAGE_BACKGROUND } from 'src/logic-functions/constants/default-call-recorder-bot-image-background';\nimport { getApplicationVariableValue } from 'src/logic-functions/utils/get-application-variable-value.util';\nimport { isNonEmptyString } from 'src/logic-functions/utils/is-non-empty-string.util';\n\nconst HEX_COLOR_PATTERN = /^#(?:[0-9a-fA-F]{3}|[0-9a-fA-F]{6})$/;\n\nexport const getBotImageBackground = (): string => {\n  const rawValue = getApplicationVariableValue(\n    CALL_RECORDER_BOT_IMAGE_BACKGROUND_ENV_VAR_NAME,\n  );\n\n  if (!isNonEmptyString(rawValue)) {\n    return DEFAULT_CALL_RECORDER_BOT_IMAGE_BACKGROUND;\n  }\n\n  const normalizedValue = rawValue.trim();\n\n  return HEX_COLOR_PATTERN.test(normalizedValue)\n    ? normalizedValue\n    : DEFAULT_CALL_RECORDER_BOT_IMAGE_BACKGROUND;\n};\n", "export const CALL_RECORDER_USE_WORKSPACE_LOGO_ENV_VAR_NAME =\n  'CALL_RECORDER_USE_WORKSPACE_LOGO';\n", "export const DEFAULT_CALL_RECORDER_USE_WORKSPACE_LOGO = true;\n", "import { CALL_RECORDER_USE_WORKSPACE_LOGO_ENV_VAR_NAME } from 'src/logic-functions/constants/call-recorder-use-workspace-logo-env-var-name';\nimport { DEFAULT_CALL_RECORDER_USE_WORKSPACE_LOGO } from 'src/logic-functions/constants/default-call-recorder-use-workspace-logo';\nimport { getBooleanApplicationVariableValue } from 'src/logic-functions/utils/get-boolean-application-variable-value.util';\n\nexport const isWorkspaceLogoBotImageEnabled = (): boolean =>\n  getBooleanApplicationVariableValue({\n    applicationVariableName: CALL_RECORDER_USE_WORKSPACE_LOGO_ENV_VAR_NAME,\n    defaultValue: DEFAULT_CALL_RECORDER_USE_WORKSPACE_LOGO,\n  });\n", "import { MetadataApiClient } from 'twenty-client-sdk/metadata';\n\nimport { isNonEmptyString } from 'src/logic-functions/utils/is-non-empty-string.util';\n\nconst LOGO_DOWNLOAD_TIMEOUT_MS = 30_000;\n\n// `currentWorkspace.logo` resolves to a signed, expiring file URL that we then download.\nexport const getWorkspaceLogo = async (): Promise<Buffer | undefined> => {\n  try {\n    const metadataClient = new MetadataApiClient();\n\n    const queryResult = await metadataClient.query({\n      currentWorkspace: { logo: true },\n    });\n\n    const logoUrl = queryResult.currentWorkspace?.logo;\n\n    if (!isNonEmptyString(logoUrl)) {\n      return undefined;\n    }\n\n    const response = await fetch(logoUrl, {\n      signal: AbortSignal.timeout(LOGO_DOWNLOAD_TIMEOUT_MS),\n    });\n\n    if (!response.ok) {\n      console.warn(\n        `[call-recorder] failed to download workspace logo: status ${response.status}`,\n      );\n\n      return undefined;\n    }\n\n    return Buffer.from(await response.arrayBuffer());\n  } catch (error) {\n    console.warn(\n      `[call-recorder] failed to read workspace logo: ${error instanceof Error ? error.message : String(error)}`,\n    );\n\n    return undefined;\n  }\n};\n", "// Meeting platforms cap the bot's camera output at 1280x720; the logo box stays\n// within a centered safezone so it survives adaptive participant tile cropping.\nexport const RECALL_BOT_IMAGE_WIDTH = 1280;\nexport const RECALL_BOT_IMAGE_HEIGHT = 720;\nexport const RECALL_BOT_IMAGE_LOGO_MAX_WIDTH = 760;\nexport const RECALL_BOT_IMAGE_LOGO_MAX_HEIGHT = 420;\nexport const RECALL_BOT_IMAGE_JPEG_QUALITY = 90;\nexport const RECALL_BOT_IMAGE_MIN_JPEG_QUALITY = 40;\n// Recall rejects images above 1.3MB; stay just under it.\nexport const RECALL_BOT_IMAGE_MAX_BYTES = 1_300_000;\n", "export const RECORDING_STATUS_BADGE_HEIGHT = 48;\nexport const RECORDING_STATUS_BADGE_INSET = 56;\nexport const RECORDING_STATUS_BADGE_PADDING = 18;\nexport const RECORDING_STATUS_BADGE_DOT_DIAMETER = 12;\nexport const RECORDING_STATUS_BADGE_DOT_LABEL_GAP = 12;\nexport const RECORDING_STATUS_BADGE_BACKGROUND = '#feebec';\nexport const RECORDING_STATUS_BADGE_BACKGROUND_OPACITY = 0.96;\nexport const RECORDING_STATUS_BADGE_COLOR = '#ce2c31';\nexport const RECORDING_STATUS_BADGE_LABEL_CAP_HEIGHT = 14;\n\n// \"REC\" outlined from Inter SemiBold (14px cap height, 2px tracking); the app runtimes ship no fonts, so SVG <text> renders as boxes.\nexport const RECORDING_STATUS_BADGE_LABEL_PATH =\n  'M3.92 14L1.38 14L1.38 0L6.63 0Q8.24 0 9.34 0.56Q10.44 1.12 11.00 2.13Q11.57 3.14 11.57 4.48L11.57 4.48Q11.57 5.82 11.00 6.81Q10.42 7.80 9.32 8.34Q8.21 8.87 6.60 8.87L6.60 8.87L2.86 8.87L2.86 6.77L6.25 6.77Q7.20 6.77 7.80 6.50Q8.40 6.24 8.69 5.73Q8.98 5.22 8.98 4.48L8.98 4.48Q8.98 3.73 8.69 3.20Q8.39 2.67 7.79 2.40Q7.19 2.12 6.24 2.12L6.24 2.12L3.92 2.12L3.92 14Z' +\n  'M5.84 7.66L8.61 7.66L12.08 14L9.25 14L5.84 7.66Z' +\n  'M25.06 14L15.90 14L15.90 0L25.01 0L25.01 2.13L18.44 2.13L18.44 5.93L24.54 5.93L24.54 8.05L18.44 8.05L18.44 11.87L25.06 11.87L25.06 14Z' +\n  'M41.58 4.72L41.58 4.72L39.03 4.72Q38.92 4.09 38.62 3.61Q38.33 3.12 37.89 2.78Q37.46 2.43 36.90 2.26Q36.34 2.08 35.70 2.08L35.70 2.08Q34.56 2.08 33.67 2.66Q32.79 3.23 32.29 4.32Q31.79 5.42 31.79 7L31.79 7Q31.79 8.61 32.30 9.70Q32.80 10.80 33.68 11.36Q34.56 11.92 35.69 11.92L35.69 11.92Q36.32 11.92 36.87 11.75Q37.42 11.58 37.86 11.25Q38.30 10.92 38.61 10.45Q38.91 9.97 39.03 9.35L39.03 9.35L41.58 9.37Q41.44 10.36 40.97 11.24Q40.49 12.11 39.72 12.78Q38.96 13.45 37.93 13.82Q36.91 14.19 35.66 14.19L35.66 14.19Q33.81 14.19 32.36 13.34Q30.91 12.48 30.08 10.87Q29.25 9.26 29.25 7L29.25 7Q29.25 4.74 30.09 3.13Q30.93 1.52 32.38 0.66Q33.83-0.19 35.66-0.19L35.66-0.19Q36.83-0.19 37.83 0.14Q38.84 0.46 39.62 1.10Q40.41 1.73 40.92 2.64Q41.43 3.55 41.58 4.72Z';\n\nexport const RECORDING_STATUS_BADGE_LABEL_WIDTH = 42.53;\n\nexport const RECORDING_STATUS_BADGE_LABEL_LEFT =\n  RECORDING_STATUS_BADGE_PADDING +\n  RECORDING_STATUS_BADGE_DOT_DIAMETER +\n  RECORDING_STATUS_BADGE_DOT_LABEL_GAP;\n\nexport const RECORDING_STATUS_BADGE_LABEL_TOP =\n  (RECORDING_STATUS_BADGE_HEIGHT - RECORDING_STATUS_BADGE_LABEL_CAP_HEIGHT) / 2;\n\nexport const RECORDING_STATUS_BADGE_WIDTH = Math.round(\n  RECORDING_STATUS_BADGE_LABEL_LEFT +\n    RECORDING_STATUS_BADGE_LABEL_WIDTH +\n    RECORDING_STATUS_BADGE_PADDING,\n);\n", "import {\n  RECORDING_STATUS_BADGE_BACKGROUND,\n  RECORDING_STATUS_BADGE_BACKGROUND_OPACITY,\n  RECORDING_STATUS_BADGE_COLOR,\n  RECORDING_STATUS_BADGE_DOT_DIAMETER,\n  RECORDING_STATUS_BADGE_HEIGHT,\n  RECORDING_STATUS_BADGE_LABEL_LEFT,\n  RECORDING_STATUS_BADGE_LABEL_PATH,\n  RECORDING_STATUS_BADGE_LABEL_TOP,\n  RECORDING_STATUS_BADGE_PADDING,\n  RECORDING_STATUS_BADGE_WIDTH,\n} from 'src/logic-functions/constants/recording-status-badge-config';\n\ntype SharpFactory = typeof import('sharp').default;\n\nexport const buildRecordingStatusBadgeSvg = (): string => {\n  const dotRadius = RECORDING_STATUS_BADGE_DOT_DIAMETER / 2;\n\n  return [\n    `<svg xmlns=\"http://www.w3.org/2000/svg\" width=\"${RECORDING_STATUS_BADGE_WIDTH}\" height=\"${RECORDING_STATUS_BADGE_HEIGHT}\">`,\n    `<rect width=\"${RECORDING_STATUS_BADGE_WIDTH}\" height=\"${RECORDING_STATUS_BADGE_HEIGHT}\" rx=\"${RECORDING_STATUS_BADGE_HEIGHT / 2}\" fill=\"${RECORDING_STATUS_BADGE_BACKGROUND}\" fill-opacity=\"${RECORDING_STATUS_BADGE_BACKGROUND_OPACITY}\" />`,\n    `<circle cx=\"${RECORDING_STATUS_BADGE_PADDING + dotRadius}\" cy=\"${RECORDING_STATUS_BADGE_HEIGHT / 2}\" r=\"${dotRadius}\" fill=\"${RECORDING_STATUS_BADGE_COLOR}\" />`,\n    `<path d=\"${RECORDING_STATUS_BADGE_LABEL_PATH}\" transform=\"translate(${RECORDING_STATUS_BADGE_LABEL_LEFT} ${RECORDING_STATUS_BADGE_LABEL_TOP})\" fill=\"${RECORDING_STATUS_BADGE_COLOR}\" />`,\n    '</svg>',\n  ].join('');\n};\n\nexport const buildRecordingStatusBadge = (\n  sharp: SharpFactory,\n): Promise<Buffer> =>\n  sharp(Buffer.from(buildRecordingStatusBadgeSvg())).png().toBuffer();\n", "import type { OverlayOptions } from 'sharp';\n\nimport {\n  RECALL_BOT_IMAGE_HEIGHT,\n  RECALL_BOT_IMAGE_JPEG_QUALITY,\n  RECALL_BOT_IMAGE_LOGO_MAX_HEIGHT,\n  RECALL_BOT_IMAGE_LOGO_MAX_WIDTH,\n  RECALL_BOT_IMAGE_MAX_BYTES,\n  RECALL_BOT_IMAGE_MIN_JPEG_QUALITY,\n  RECALL_BOT_IMAGE_WIDTH,\n} from 'src/logic-functions/constants/recall-bot-image-config';\nimport { RECORDING_STATUS_BADGE_INSET } from 'src/logic-functions/constants/recording-status-badge-config';\nimport { buildRecordingStatusBadge } from 'src/logic-functions/domain/build-recording-status-badge.util';\n\nconst JPEG_QUALITY_STEP = 10;\n\ntype SharpFactory = typeof import('sharp').default;\n\nexport const buildBotImage = async ({\n  logoBuffer,\n  background,\n  withRecordingStatusBadge = false,\n}: {\n  logoBuffer: Buffer;\n  background: string;\n  withRecordingStatusBadge?: boolean;\n}): Promise<string | undefined> => {\n  try {\n    // Loaded on use so the native module isn't required when the manifest build\n    // merely imports this module.\n    const sharp = await loadSharp();\n\n    // Animated sources collapse to their first frame, which is the intended tile.\n    const logo = await sharp(logoBuffer)\n      .resize(\n        RECALL_BOT_IMAGE_LOGO_MAX_WIDTH,\n        RECALL_BOT_IMAGE_LOGO_MAX_HEIGHT,\n        { fit: 'inside', withoutEnlargement: true },\n      )\n      .png()\n      .toBuffer();\n\n    const composites: OverlayOptions[] = [{ input: logo, gravity: 'center' }];\n\n    if (withRecordingStatusBadge) {\n      composites.push({\n        input: await buildRecordingStatusBadge(sharp),\n        top: RECORDING_STATUS_BADGE_INSET,\n        left: RECORDING_STATUS_BADGE_INSET,\n      });\n    }\n\n    let quality = RECALL_BOT_IMAGE_JPEG_QUALITY;\n    let jpeg = await composeJpeg({ sharp, composites, background, quality });\n\n    while (\n      jpeg.byteLength > RECALL_BOT_IMAGE_MAX_BYTES &&\n      quality - JPEG_QUALITY_STEP >= RECALL_BOT_IMAGE_MIN_JPEG_QUALITY\n    ) {\n      quality -= JPEG_QUALITY_STEP;\n      jpeg = await composeJpeg({ sharp, composites, background, quality });\n    }\n\n    if (jpeg.byteLength > RECALL_BOT_IMAGE_MAX_BYTES) {\n      console.warn(\n        '[call-recorder] workspace logo could not be encoded under the Recall image size limit',\n      );\n\n      return undefined;\n    }\n\n    return jpeg.toString('base64');\n  } catch (error) {\n    console.warn(\n      `[call-recorder] failed to build bot image from workspace logo: ${error instanceof Error ? error.message : String(error)}`,\n    );\n\n    return undefined;\n  }\n};\n\nconst composeJpeg = ({\n  sharp,\n  composites,\n  background,\n  quality,\n}: {\n  sharp: SharpFactory;\n  composites: OverlayOptions[];\n  background: string;\n  quality: number;\n}): Promise<Buffer> =>\n  sharp({\n    create: {\n      width: RECALL_BOT_IMAGE_WIDTH,\n      height: RECALL_BOT_IMAGE_HEIGHT,\n      channels: 3,\n      background,\n    },\n  })\n    .composite(composites)\n    .jpeg({ quality, mozjpeg: true })\n    .toBuffer();\n\nconst loadSharp = async (): Promise<SharpFactory> => {\n  const sharpModule = await import('sharp');\n\n  return ((sharpModule.default as unknown as { default?: SharpFactory })\n    .default ?? sharpModule.default) as SharpFactory;\n};\n", "import { MILLISECONDS_PER_MINUTE } from 'src/logic-functions/constants/milliseconds-per-minute';\nimport { PRE_JOIN_CREDIT_CHECK_LEAD_MINUTES } from 'src/logic-functions/constants/pre-join-credit-check-lead-minutes';\n\nexport const isRecallBotJoinWithinCreditCheckLead = ({\n  joinAt,\n  now,\n}: {\n  joinAt: string;\n  now: Date;\n}): boolean =>\n  new Date(joinAt).getTime() - now.getTime() <=\n  PRE_JOIN_CREDIT_CHECK_LEAD_MINUTES * MILLISECONDS_PER_MINUTE;\n", "/** A special constant with type `never` */\nexport const NEVER = Object.freeze({\n    status: \"aborted\",\n});\nexport /*@__NO_SIDE_EFFECTS__*/ function $constructor(name, initializer, params) {\n    function init(inst, def) {\n        var _a;\n        Object.defineProperty(inst, \"_zod\", {\n            value: inst._zod ?? {},\n            enumerable: false,\n        });\n        (_a = inst._zod).traits ?? (_a.traits = new Set());\n        inst._zod.traits.add(name);\n        initializer(inst, def);\n        // support prototype modifications\n        for (const k in _.prototype) {\n            if (!(k in inst))\n                Object.defineProperty(inst, k, { value: _.prototype[k].bind(inst) });\n        }\n        inst._zod.constr = _;\n        inst._zod.def = def;\n    }\n    // doesn't work if Parent has a constructor with arguments\n    const Parent = params?.Parent ?? Object;\n    class Definition extends Parent {\n    }\n    Object.defineProperty(Definition, \"name\", { value: name });\n    function _(def) {\n        var _a;\n        const inst = params?.Parent ? new Definition() : this;\n        init(inst, def);\n        (_a = inst._zod).deferred ?? (_a.deferred = []);\n        for (const fn of inst._zod.deferred) {\n            fn();\n        }\n        return inst;\n    }\n    Object.defineProperty(_, \"init\", { value: init });\n    Object.defineProperty(_, Symbol.hasInstance, {\n        value: (inst) => {\n            if (params?.Parent && inst instanceof params.Parent)\n                return true;\n            return inst?._zod?.traits?.has(name);\n        },\n    });\n    Object.defineProperty(_, \"name\", { value: name });\n    return _;\n}\n//////////////////////////////   UTILITIES   ///////////////////////////////////////\nexport const $brand = Symbol(\"zod_brand\");\nexport class $ZodAsyncError extends Error {\n    constructor() {\n        super(`Encountered Promise during synchronous parse. Use .parseAsync() instead.`);\n    }\n}\nexport class $ZodEncodeError extends Error {\n    constructor(name) {\n        super(`Encountered unidirectional transform during encode: ${name}`);\n        this.name = \"ZodEncodeError\";\n    }\n}\nexport const globalConfig = {};\nexport function config(newConfig) {\n    if (newConfig)\n        Object.assign(globalConfig, newConfig);\n    return globalConfig;\n}\n", "// functions\nexport function assertEqual(val) {\n    return val;\n}\nexport function assertNotEqual(val) {\n    return val;\n}\nexport function assertIs(_arg) { }\nexport function assertNever(_x) {\n    throw new Error();\n}\nexport function assert(_) { }\nexport function getEnumValues(entries) {\n    const numericValues = Object.values(entries).filter((v) => typeof v === \"number\");\n    const values = Object.entries(entries)\n        .filter(([k, _]) => numericValues.indexOf(+k) === -1)\n        .map(([_, v]) => v);\n    return values;\n}\nexport function joinValues(array, separator = \"|\") {\n    return array.map((val) => stringifyPrimitive(val)).join(separator);\n}\nexport function jsonStringifyReplacer(_, value) {\n    if (typeof value === \"bigint\")\n        return value.toString();\n    return value;\n}\nexport function cached(getter) {\n    const set = false;\n    return {\n        get value() {\n            if (!set) {\n                const value = getter();\n                Object.defineProperty(this, \"value\", { value });\n                return value;\n            }\n            throw new Error(\"cached value already set\");\n        },\n    };\n}\nexport function nullish(input) {\n    return input === null || input === undefined;\n}\nexport function cleanRegex(source) {\n    const start = source.startsWith(\"^\") ? 1 : 0;\n    const end = source.endsWith(\"$\") ? source.length - 1 : source.length;\n    return source.slice(start, end);\n}\nexport function floatSafeRemainder(val, step) {\n    const valDecCount = (val.toString().split(\".\")[1] || \"\").length;\n    const stepString = step.toString();\n    let stepDecCount = (stepString.split(\".\")[1] || \"\").length;\n    if (stepDecCount === 0 && /\\d?e-\\d?/.test(stepString)) {\n        const match = stepString.match(/\\d?e-(\\d?)/);\n        if (match?.[1]) {\n            stepDecCount = Number.parseInt(match[1]);\n        }\n    }\n    const decCount = valDecCount > stepDecCount ? valDecCount : stepDecCount;\n    const valInt = Number.parseInt(val.toFixed(decCount).replace(\".\", \"\"));\n    const stepInt = Number.parseInt(step.toFixed(decCount).replace(\".\", \"\"));\n    return (valInt % stepInt) / 10 ** decCount;\n}\nconst EVALUATING = Symbol(\"evaluating\");\nexport function defineLazy(object, key, getter) {\n    let value = undefined;\n    Object.defineProperty(object, key, {\n        get() {\n            if (value === EVALUATING) {\n                // Circular reference detected, return undefined to break the cycle\n                return undefined;\n            }\n            if (value === undefined) {\n                value = EVALUATING;\n                value = getter();\n            }\n            return value;\n        },\n        set(v) {\n            Object.defineProperty(object, key, {\n                value: v,\n                // configurable: true,\n            });\n            // object[key] = v;\n        },\n        configurable: true,\n    });\n}\nexport function objectClone(obj) {\n    return Object.create(Object.getPrototypeOf(obj), Object.getOwnPropertyDescriptors(obj));\n}\nexport function assignProp(target, prop, value) {\n    Object.defineProperty(target, prop, {\n        value,\n        writable: true,\n        enumerable: true,\n        configurable: true,\n    });\n}\nexport function mergeDefs(...defs) {\n    const mergedDescriptors = {};\n    for (const def of defs) {\n        const descriptors = Object.getOwnPropertyDescriptors(def);\n        Object.assign(mergedDescriptors, descriptors);\n    }\n    return Object.defineProperties({}, mergedDescriptors);\n}\nexport function cloneDef(schema) {\n    return mergeDefs(schema._zod.def);\n}\nexport function getElementAtPath(obj, path) {\n    if (!path)\n        return obj;\n    return path.reduce((acc, key) => acc?.[key], obj);\n}\nexport function promiseAllObject(promisesObj) {\n    const keys = Object.keys(promisesObj);\n    const promises = keys.map((key) => promisesObj[key]);\n    return Promise.all(promises).then((results) => {\n        const resolvedObj = {};\n        for (let i = 0; i < keys.length; i++) {\n            resolvedObj[keys[i]] = results[i];\n        }\n        return resolvedObj;\n    });\n}\nexport function randomString(length = 10) {\n    const chars = \"abcdefghijklmnopqrstuvwxyz\";\n    let str = \"\";\n    for (let i = 0; i < length; i++) {\n        str += chars[Math.floor(Math.random() * chars.length)];\n    }\n    return str;\n}\nexport function esc(str) {\n    return JSON.stringify(str);\n}\nexport const captureStackTrace = (\"captureStackTrace\" in Error ? Error.captureStackTrace : (..._args) => { });\nexport function isObject(data) {\n    return typeof data === \"object\" && data !== null && !Array.isArray(data);\n}\nexport const allowsEval = cached(() => {\n    // @ts-ignore\n    if (typeof navigator !== \"undefined\" && navigator?.userAgent?.includes(\"Cloudflare\")) {\n        return false;\n    }\n    try {\n        const F = Function;\n        new F(\"\");\n        return true;\n    }\n    catch (_) {\n        return false;\n    }\n});\nexport function isPlainObject(o) {\n    if (isObject(o) === false)\n        return false;\n    // modified constructor\n    const ctor = o.constructor;\n    if (ctor === undefined)\n        return true;\n    // modified prototype\n    const prot = ctor.prototype;\n    if (isObject(prot) === false)\n        return false;\n    // ctor doesn't have static `isPrototypeOf`\n    if (Object.prototype.hasOwnProperty.call(prot, \"isPrototypeOf\") === false) {\n        return false;\n    }\n    return true;\n}\nexport function shallowClone(o) {\n    if (isPlainObject(o))\n        return { ...o };\n    if (Array.isArray(o))\n        return [...o];\n    return o;\n}\nexport function numKeys(data) {\n    let keyCount = 0;\n    for (const key in data) {\n        if (Object.prototype.hasOwnProperty.call(data, key)) {\n            keyCount++;\n        }\n    }\n    return keyCount;\n}\nexport const getParsedType = (data) => {\n    const t = typeof data;\n    switch (t) {\n        case \"undefined\":\n            return \"undefined\";\n        case \"string\":\n            return \"string\";\n        case \"number\":\n            return Number.isNaN(data) ? \"nan\" : \"number\";\n        case \"boolean\":\n            return \"boolean\";\n        case \"function\":\n            return \"function\";\n        case \"bigint\":\n            return \"bigint\";\n        case \"symbol\":\n            return \"symbol\";\n        case \"object\":\n            if (Array.isArray(data)) {\n                return \"array\";\n            }\n            if (data === null) {\n                return \"null\";\n            }\n            if (data.then && typeof data.then === \"function\" && data.catch && typeof data.catch === \"function\") {\n                return \"promise\";\n            }\n            if (typeof Map !== \"undefined\" && data instanceof Map) {\n                return \"map\";\n            }\n            if (typeof Set !== \"undefined\" && data instanceof Set) {\n                return \"set\";\n            }\n            if (typeof Date !== \"undefined\" && data instanceof Date) {\n                return \"date\";\n            }\n            // @ts-ignore\n            if (typeof File !== \"undefined\" && data instanceof File) {\n                return \"file\";\n            }\n            return \"object\";\n        default:\n            throw new Error(`Unknown data type: ${t}`);\n    }\n};\nexport const propertyKeyTypes = new Set([\"string\", \"number\", \"symbol\"]);\nexport const primitiveTypes = new Set([\"string\", \"number\", \"bigint\", \"boolean\", \"symbol\", \"undefined\"]);\nexport function escapeRegex(str) {\n    return str.replace(/[.*+?^${}()|[\\]\\\\]/g, \"\\\\$&\");\n}\n// zod-specific utils\nexport function clone(inst, def, params) {\n    const cl = new inst._zod.constr(def ?? inst._zod.def);\n    if (!def || params?.parent)\n        cl._zod.parent = inst;\n    return cl;\n}\nexport function normalizeParams(_params) {\n    const params = _params;\n    if (!params)\n        return {};\n    if (typeof params === \"string\")\n        return { error: () => params };\n    if (params?.message !== undefined) {\n        if (params?.error !== undefined)\n            throw new Error(\"Cannot specify both `message` and `error` params\");\n        params.error = params.message;\n    }\n    delete params.message;\n    if (typeof params.error === \"string\")\n        return { ...params, error: () => params.error };\n    return params;\n}\nexport function createTransparentProxy(getter) {\n    let target;\n    return new Proxy({}, {\n        get(_, prop, receiver) {\n            target ?? (target = getter());\n            return Reflect.get(target, prop, receiver);\n        },\n        set(_, prop, value, receiver) {\n            target ?? (target = getter());\n            return Reflect.set(target, prop, value, receiver);\n        },\n        has(_, prop) {\n            target ?? (target = getter());\n            return Reflect.has(target, prop);\n        },\n        deleteProperty(_, prop) {\n            target ?? (target = getter());\n            return Reflect.deleteProperty(target, prop);\n        },\n        ownKeys(_) {\n            target ?? (target = getter());\n            return Reflect.ownKeys(target);\n        },\n        getOwnPropertyDescriptor(_, prop) {\n            target ?? (target = getter());\n            return Reflect.getOwnPropertyDescriptor(target, prop);\n        },\n        defineProperty(_, prop, descriptor) {\n            target ?? (target = getter());\n            return Reflect.defineProperty(target, prop, descriptor);\n        },\n    });\n}\nexport function stringifyPrimitive(value) {\n    if (typeof value === \"bigint\")\n        return value.toString() + \"n\";\n    if (typeof value === \"string\")\n        return `\"${value}\"`;\n    return `${value}`;\n}\nexport function optionalKeys(shape) {\n    return Object.keys(shape).filter((k) => {\n        return shape[k]._zod.optin === \"optional\" && shape[k]._zod.optout === \"optional\";\n    });\n}\nexport const NUMBER_FORMAT_RANGES = {\n    safeint: [Number.MIN_SAFE_INTEGER, Number.MAX_SAFE_INTEGER],\n    int32: [-2147483648, 2147483647],\n    uint32: [0, 4294967295],\n    float32: [-3.4028234663852886e38, 3.4028234663852886e38],\n    float64: [-Number.MAX_VALUE, Number.MAX_VALUE],\n};\nexport const BIGINT_FORMAT_RANGES = {\n    int64: [/* @__PURE__*/ BigInt(\"-9223372036854775808\"), /* @__PURE__*/ BigInt(\"9223372036854775807\")],\n    uint64: [/* @__PURE__*/ BigInt(0), /* @__PURE__*/ BigInt(\"18446744073709551615\")],\n};\nexport function pick(schema, mask) {\n    const currDef = schema._zod.def;\n    const def = mergeDefs(schema._zod.def, {\n        get shape() {\n            const newShape = {};\n            for (const key in mask) {\n                if (!(key in currDef.shape)) {\n                    throw new Error(`Unrecognized key: \"${key}\"`);\n                }\n                if (!mask[key])\n                    continue;\n                newShape[key] = currDef.shape[key];\n            }\n            assignProp(this, \"shape\", newShape); // self-caching\n            return newShape;\n        },\n        checks: [],\n    });\n    return clone(schema, def);\n}\nexport function omit(schema, mask) {\n    const currDef = schema._zod.def;\n    const def = mergeDefs(schema._zod.def, {\n        get shape() {\n            const newShape = { ...schema._zod.def.shape };\n            for (const key in mask) {\n                if (!(key in currDef.shape)) {\n                    throw new Error(`Unrecognized key: \"${key}\"`);\n                }\n                if (!mask[key])\n                    continue;\n                delete newShape[key];\n            }\n            assignProp(this, \"shape\", newShape); // self-caching\n            return newShape;\n        },\n        checks: [],\n    });\n    return clone(schema, def);\n}\nexport function extend(schema, shape) {\n    if (!isPlainObject(shape)) {\n        throw new Error(\"Invalid input to extend: expected a plain object\");\n    }\n    const checks = schema._zod.def.checks;\n    const hasChecks = checks && checks.length > 0;\n    if (hasChecks) {\n        throw new Error(\"Object schemas containing refinements cannot be extended. Use `.safeExtend()` instead.\");\n    }\n    const def = mergeDefs(schema._zod.def, {\n        get shape() {\n            const _shape = { ...schema._zod.def.shape, ...shape };\n            assignProp(this, \"shape\", _shape); // self-caching\n            return _shape;\n        },\n        checks: [],\n    });\n    return clone(schema, def);\n}\nexport function safeExtend(schema, shape) {\n    if (!isPlainObject(shape)) {\n        throw new Error(\"Invalid input to safeExtend: expected a plain object\");\n    }\n    const def = {\n        ...schema._zod.def,\n        get shape() {\n            const _shape = { ...schema._zod.def.shape, ...shape };\n            assignProp(this, \"shape\", _shape); // self-caching\n            return _shape;\n        },\n        checks: schema._zod.def.checks,\n    };\n    return clone(schema, def);\n}\nexport function merge(a, b) {\n    const def = mergeDefs(a._zod.def, {\n        get shape() {\n            const _shape = { ...a._zod.def.shape, ...b._zod.def.shape };\n            assignProp(this, \"shape\", _shape); // self-caching\n            return _shape;\n        },\n        get catchall() {\n            return b._zod.def.catchall;\n        },\n        checks: [], // delete existing checks\n    });\n    return clone(a, def);\n}\nexport function partial(Class, schema, mask) {\n    const def = mergeDefs(schema._zod.def, {\n        get shape() {\n            const oldShape = schema._zod.def.shape;\n            const shape = { ...oldShape };\n            if (mask) {\n                for (const key in mask) {\n                    if (!(key in oldShape)) {\n                        throw new Error(`Unrecognized key: \"${key}\"`);\n                    }\n                    if (!mask[key])\n                        continue;\n                    // if (oldShape[key]!._zod.optin === \"optional\") continue;\n                    shape[key] = Class\n                        ? new Class({\n                            type: \"optional\",\n                            innerType: oldShape[key],\n                        })\n                        : oldShape[key];\n                }\n            }\n            else {\n                for (const key in oldShape) {\n                    // if (oldShape[key]!._zod.optin === \"optional\") continue;\n                    shape[key] = Class\n                        ? new Class({\n                            type: \"optional\",\n                            innerType: oldShape[key],\n                        })\n                        : oldShape[key];\n                }\n            }\n            assignProp(this, \"shape\", shape); // self-caching\n            return shape;\n        },\n        checks: [],\n    });\n    return clone(schema, def);\n}\nexport function required(Class, schema, mask) {\n    const def = mergeDefs(schema._zod.def, {\n        get shape() {\n            const oldShape = schema._zod.def.shape;\n            const shape = { ...oldShape };\n            if (mask) {\n                for (const key in mask) {\n                    if (!(key in shape)) {\n                        throw new Error(`Unrecognized key: \"${key}\"`);\n                    }\n                    if (!mask[key])\n                        continue;\n                    // overwrite with non-optional\n                    shape[key] = new Class({\n                        type: \"nonoptional\",\n                        innerType: oldShape[key],\n                    });\n                }\n            }\n            else {\n                for (const key in oldShape) {\n                    // overwrite with non-optional\n                    shape[key] = new Class({\n                        type: \"nonoptional\",\n                        innerType: oldShape[key],\n                    });\n                }\n            }\n            assignProp(this, \"shape\", shape); // self-caching\n            return shape;\n        },\n        checks: [],\n    });\n    return clone(schema, def);\n}\n// invalid_type | too_big | too_small | invalid_format | not_multiple_of | unrecognized_keys | invalid_union | invalid_key | invalid_element | invalid_value | custom\nexport function aborted(x, startIndex = 0) {\n    if (x.aborted === true)\n        return true;\n    for (let i = startIndex; i < x.issues.length; i++) {\n        if (x.issues[i]?.continue !== true) {\n            return true;\n        }\n    }\n    return false;\n}\nexport function prefixIssues(path, issues) {\n    return issues.map((iss) => {\n        var _a;\n        (_a = iss).path ?? (_a.path = []);\n        iss.path.unshift(path);\n        return iss;\n    });\n}\nexport function unwrapMessage(message) {\n    return typeof message === \"string\" ? message : message?.message;\n}\nexport function finalizeIssue(iss, ctx, config) {\n    const full = { ...iss, path: iss.path ?? [] };\n    // for backwards compatibility\n    if (!iss.message) {\n        const message = unwrapMessage(iss.inst?._zod.def?.error?.(iss)) ??\n            unwrapMessage(ctx?.error?.(iss)) ??\n            unwrapMessage(config.customError?.(iss)) ??\n            unwrapMessage(config.localeError?.(iss)) ??\n            \"Invalid input\";\n        full.message = message;\n    }\n    // delete (full as any).def;\n    delete full.inst;\n    delete full.continue;\n    if (!ctx?.reportInput) {\n        delete full.input;\n    }\n    return full;\n}\nexport function getSizableOrigin(input) {\n    if (input instanceof Set)\n        return \"set\";\n    if (input instanceof Map)\n        return \"map\";\n    // @ts-ignore\n    if (input instanceof File)\n        return \"file\";\n    return \"unknown\";\n}\nexport function getLengthableOrigin(input) {\n    if (Array.isArray(input))\n        return \"array\";\n    if (typeof input === \"string\")\n        return \"string\";\n    return \"unknown\";\n}\nexport function issue(...args) {\n    const [iss, input, inst] = args;\n    if (typeof iss === \"string\") {\n        return {\n            message: iss,\n            code: \"custom\",\n            input,\n            inst,\n        };\n    }\n    return { ...iss };\n}\nexport function cleanEnum(obj) {\n    return Object.entries(obj)\n        .filter(([k, _]) => {\n        // return true if NaN, meaning it's not a number, thus a string key\n        return Number.isNaN(Number.parseInt(k, 10));\n    })\n        .map((el) => el[1]);\n}\n// Codec utility functions\nexport function base64ToUint8Array(base64) {\n    const binaryString = atob(base64);\n    const bytes = new Uint8Array(binaryString.length);\n    for (let i = 0; i < binaryString.length; i++) {\n        bytes[i] = binaryString.charCodeAt(i);\n    }\n    return bytes;\n}\nexport function uint8ArrayToBase64(bytes) {\n    let binaryString = \"\";\n    for (let i = 0; i < bytes.length; i++) {\n        binaryString += String.fromCharCode(bytes[i]);\n    }\n    return btoa(binaryString);\n}\nexport function base64urlToUint8Array(base64url) {\n    const base64 = base64url.replace(/-/g, \"+\").replace(/_/g, \"/\");\n    const padding = \"=\".repeat((4 - (base64.length % 4)) % 4);\n    return base64ToUint8Array(base64 + padding);\n}\nexport function uint8ArrayToBase64url(bytes) {\n    return uint8ArrayToBase64(bytes).replace(/\\+/g, \"-\").replace(/\\//g, \"_\").replace(/=/g, \"\");\n}\nexport function hexToUint8Array(hex) {\n    const cleanHex = hex.replace(/^0x/, \"\");\n    if (cleanHex.length % 2 !== 0) {\n        throw new Error(\"Invalid hex string length\");\n    }\n    const bytes = new Uint8Array(cleanHex.length / 2);\n    for (let i = 0; i < cleanHex.length; i += 2) {\n        bytes[i / 2] = Number.parseInt(cleanHex.slice(i, i + 2), 16);\n    }\n    return bytes;\n}\nexport function uint8ArrayToHex(bytes) {\n    return Array.from(bytes)\n        .map((b) => b.toString(16).padStart(2, \"0\"))\n        .join(\"\");\n}\n// instanceof\nexport class Class {\n    constructor(..._args) { }\n}\n", "import { $constructor } from \"./core.js\";\nimport * as util from \"./util.js\";\nconst initializer = (inst, def) => {\n    inst.name = \"$ZodError\";\n    Object.defineProperty(inst, \"_zod\", {\n        value: inst._zod,\n        enumerable: false,\n    });\n    Object.defineProperty(inst, \"issues\", {\n        value: def,\n        enumerable: false,\n    });\n    inst.message = JSON.stringify(def, util.jsonStringifyReplacer, 2);\n    Object.defineProperty(inst, \"toString\", {\n        value: () => inst.message,\n        enumerable: false,\n    });\n};\nexport const $ZodError = $constructor(\"$ZodError\", initializer);\nexport const $ZodRealError = $constructor(\"$ZodError\", initializer, { Parent: Error });\nexport function flattenError(error, mapper = (issue) => issue.message) {\n    const fieldErrors = {};\n    const formErrors = [];\n    for (const sub of error.issues) {\n        if (sub.path.length > 0) {\n            fieldErrors[sub.path[0]] = fieldErrors[sub.path[0]] || [];\n            fieldErrors[sub.path[0]].push(mapper(sub));\n        }\n        else {\n            formErrors.push(mapper(sub));\n        }\n    }\n    return { formErrors, fieldErrors };\n}\nexport function formatError(error, _mapper) {\n    const mapper = _mapper ||\n        function (issue) {\n            return issue.message;\n        };\n    const fieldErrors = { _errors: [] };\n    const processError = (error) => {\n        for (const issue of error.issues) {\n            if (issue.code === \"invalid_union\" && issue.errors.length) {\n                issue.errors.map((issues) => processError({ issues }));\n            }\n            else if (issue.code === \"invalid_key\") {\n                processError({ issues: issue.issues });\n            }\n            else if (issue.code === \"invalid_element\") {\n                processError({ issues: issue.issues });\n            }\n            else if (issue.path.length === 0) {\n                fieldErrors._errors.push(mapper(issue));\n            }\n            else {\n                let curr = fieldErrors;\n                let i = 0;\n                while (i < issue.path.length) {\n                    const el = issue.path[i];\n                    const terminal = i === issue.path.length - 1;\n                    if (!terminal) {\n                        curr[el] = curr[el] || { _errors: [] };\n                    }\n                    else {\n                        curr[el] = curr[el] || { _errors: [] };\n                        curr[el]._errors.push(mapper(issue));\n                    }\n                    curr = curr[el];\n                    i++;\n                }\n            }\n        }\n    };\n    processError(error);\n    return fieldErrors;\n}\nexport function treeifyError(error, _mapper) {\n    const mapper = _mapper ||\n        function (issue) {\n            return issue.message;\n        };\n    const result = { errors: [] };\n    const processError = (error, path = []) => {\n        var _a, _b;\n        for (const issue of error.issues) {\n            if (issue.code === \"invalid_union\" && issue.errors.length) {\n                // regular union error\n                issue.errors.map((issues) => processError({ issues }, issue.path));\n            }\n            else if (issue.code === \"invalid_key\") {\n                processError({ issues: issue.issues }, issue.path);\n            }\n            else if (issue.code === \"invalid_element\") {\n                processError({ issues: issue.issues }, issue.path);\n            }\n            else {\n                const fullpath = [...path, ...issue.path];\n                if (fullpath.length === 0) {\n                    result.errors.push(mapper(issue));\n                    continue;\n                }\n                let curr = result;\n                let i = 0;\n                while (i < fullpath.length) {\n                    const el = fullpath[i];\n                    const terminal = i === fullpath.length - 1;\n                    if (typeof el === \"string\") {\n                        curr.properties ?? (curr.properties = {});\n                        (_a = curr.properties)[el] ?? (_a[el] = { errors: [] });\n                        curr = curr.properties[el];\n                    }\n                    else {\n                        curr.items ?? (curr.items = []);\n                        (_b = curr.items)[el] ?? (_b[el] = { errors: [] });\n                        curr = curr.items[el];\n                    }\n                    if (terminal) {\n                        curr.errors.push(mapper(issue));\n                    }\n                    i++;\n                }\n            }\n        }\n    };\n    processError(error);\n    return result;\n}\n/** Format a ZodError as a human-readable string in the following form.\n *\n * From\n *\n * ```ts\n * ZodError {\n *   issues: [\n *     {\n *       expected: 'string',\n *       code: 'invalid_type',\n *       path: [ 'username' ],\n *       message: 'Invalid input: expected string'\n *     },\n *     {\n *       expected: 'number',\n *       code: 'invalid_type',\n *       path: [ 'favoriteNumbers', 1 ],\n *       message: 'Invalid input: expected number'\n *     }\n *   ];\n * }\n * ```\n *\n * to\n *\n * ```\n * username\n *   ✖ Expected number, received string at \"username\n * favoriteNumbers[0]\n *   ✖ Invalid input: expected number\n * ```\n */\nexport function toDotPath(_path) {\n    const segs = [];\n    const path = _path.map((seg) => (typeof seg === \"object\" ? seg.key : seg));\n    for (const seg of path) {\n        if (typeof seg === \"number\")\n            segs.push(`[${seg}]`);\n        else if (typeof seg === \"symbol\")\n            segs.push(`[${JSON.stringify(String(seg))}]`);\n        else if (/[^\\w$]/.test(seg))\n            segs.push(`[${JSON.stringify(seg)}]`);\n        else {\n            if (segs.length)\n                segs.push(\".\");\n            segs.push(seg);\n        }\n    }\n    return segs.join(\"\");\n}\nexport function prettifyError(error) {\n    const lines = [];\n    // sort by path length\n    const issues = [...error.issues].sort((a, b) => (a.path ?? []).length - (b.path ?? []).length);\n    // Process each issue\n    for (const issue of issues) {\n        lines.push(`✖ ${issue.message}`);\n        if (issue.path?.length)\n            lines.push(`  → at ${toDotPath(issue.path)}`);\n    }\n    // Convert Map to formatted string\n    return lines.join(\"\\n\");\n}\n", "import * as core from \"./core.js\";\nimport * as errors from \"./errors.js\";\nimport * as util from \"./util.js\";\nexport const _parse = (_Err) => (schema, value, _ctx, _params) => {\n    const ctx = _ctx ? Object.assign(_ctx, { async: false }) : { async: false };\n    const result = schema._zod.run({ value, issues: [] }, ctx);\n    if (result instanceof Promise) {\n        throw new core.$ZodAsyncError();\n    }\n    if (result.issues.length) {\n        const e = new (_params?.Err ?? _Err)(result.issues.map((iss) => util.finalizeIssue(iss, ctx, core.config())));\n        util.captureStackTrace(e, _params?.callee);\n        throw e;\n    }\n    return result.value;\n};\nexport const parse = /* @__PURE__*/ _parse(errors.$ZodRealError);\nexport const _parseAsync = (_Err) => async (schema, value, _ctx, params) => {\n    const ctx = _ctx ? Object.assign(_ctx, { async: true }) : { async: true };\n    let result = schema._zod.run({ value, issues: [] }, ctx);\n    if (result instanceof Promise)\n        result = await result;\n    if (result.issues.length) {\n        const e = new (params?.Err ?? _Err)(result.issues.map((iss) => util.finalizeIssue(iss, ctx, core.config())));\n        util.captureStackTrace(e, params?.callee);\n        throw e;\n    }\n    return result.value;\n};\nexport const parseAsync = /* @__PURE__*/ _parseAsync(errors.$ZodRealError);\nexport const _safeParse = (_Err) => (schema, value, _ctx) => {\n    const ctx = _ctx ? { ..._ctx, async: false } : { async: false };\n    const result = schema._zod.run({ value, issues: [] }, ctx);\n    if (result instanceof Promise) {\n        throw new core.$ZodAsyncError();\n    }\n    return result.issues.length\n        ? {\n            success: false,\n            error: new (_Err ?? errors.$ZodError)(result.issues.map((iss) => util.finalizeIssue(iss, ctx, core.config()))),\n        }\n        : { success: true, data: result.value };\n};\nexport const safeParse = /* @__PURE__*/ _safeParse(errors.$ZodRealError);\nexport const _safeParseAsync = (_Err) => async (schema, value, _ctx) => {\n    const ctx = _ctx ? Object.assign(_ctx, { async: true }) : { async: true };\n    let result = schema._zod.run({ value, issues: [] }, ctx);\n    if (result instanceof Promise)\n        result = await result;\n    return result.issues.length\n        ? {\n            success: false,\n            error: new _Err(result.issues.map((iss) => util.finalizeIssue(iss, ctx, core.config()))),\n        }\n        : { success: true, data: result.value };\n};\nexport const safeParseAsync = /* @__PURE__*/ _safeParseAsync(errors.$ZodRealError);\nexport const _encode = (_Err) => (schema, value, _ctx) => {\n    const ctx = _ctx ? Object.assign(_ctx, { direction: \"backward\" }) : { direction: \"backward\" };\n    return _parse(_Err)(schema, value, ctx);\n};\nexport const encode = /* @__PURE__*/ _encode(errors.$ZodRealError);\nexport const _decode = (_Err) => (schema, value, _ctx) => {\n    return _parse(_Err)(schema, value, _ctx);\n};\nexport const decode = /* @__PURE__*/ _decode(errors.$ZodRealError);\nexport const _encodeAsync = (_Err) => async (schema, value, _ctx) => {\n    const ctx = _ctx ? Object.assign(_ctx, { direction: \"backward\" }) : { direction: \"backward\" };\n    return _parseAsync(_Err)(schema, value, ctx);\n};\nexport const encodeAsync = /* @__PURE__*/ _encodeAsync(errors.$ZodRealError);\nexport const _decodeAsync = (_Err) => async (schema, value, _ctx) => {\n    return _parseAsync(_Err)(schema, value, _ctx);\n};\nexport const decodeAsync = /* @__PURE__*/ _decodeAsync(errors.$ZodRealError);\nexport const _safeEncode = (_Err) => (schema, value, _ctx) => {\n    const ctx = _ctx ? Object.assign(_ctx, { direction: \"backward\" }) : { direction: \"backward\" };\n    return _safeParse(_Err)(schema, value, ctx);\n};\nexport const safeEncode = /* @__PURE__*/ _safeEncode(errors.$ZodRealError);\nexport const _safeDecode = (_Err) => (schema, value, _ctx) => {\n    return _safeParse(_Err)(schema, value, _ctx);\n};\nexport const safeDecode = /* @__PURE__*/ _safeDecode(errors.$ZodRealError);\nexport const _safeEncodeAsync = (_Err) => async (schema, value, _ctx) => {\n    const ctx = _ctx ? Object.assign(_ctx, { direction: \"backward\" }) : { direction: \"backward\" };\n    return _safeParseAsync(_Err)(schema, value, ctx);\n};\nexport const safeEncodeAsync = /* @__PURE__*/ _safeEncodeAsync(errors.$ZodRealError);\nexport const _safeDecodeAsync = (_Err) => async (schema, value, _ctx) => {\n    return _safeParseAsync(_Err)(schema, value, _ctx);\n};\nexport const safeDecodeAsync = /* @__PURE__*/ _safeDecodeAsync(errors.$ZodRealError);\n", "export const cuid = /^[cC][^\\s-]{8,}$/;\nexport const cuid2 = /^[0-9a-z]+$/;\nexport const ulid = /^[0-9A-HJKMNP-TV-Za-hjkmnp-tv-z]{26}$/;\nexport const xid = /^[0-9a-vA-V]{20}$/;\nexport const ksuid = /^[A-Za-z0-9]{27}$/;\nexport const nanoid = /^[a-zA-Z0-9_-]{21}$/;\n/** ISO 8601-1 duration regex. Does not support the 8601-2 extensions like negative durations or fractional/negative components. */\nexport const duration = /^P(?:(\\d+W)|(?!.*W)(?=\\d|T\\d)(\\d+Y)?(\\d+M)?(\\d+D)?(T(?=\\d)(\\d+H)?(\\d+M)?(\\d+([.,]\\d+)?S)?)?)$/;\n/** Implements ISO 8601-2 extensions like explicit +- prefixes, mixing weeks with other units, and fractional/negative components. */\nexport const 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)?)??$/;\n/** A regex for any UUID-like identifier: 8-4-4-4-12 hex pattern */\nexport const 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})$/;\n/** Returns a regex for validating an RFC 9562/4122 UUID.\n *\n * @param version Optionally specify a version 1-8. If no version is specified, all versions are supported. */\nexport const uuid = (version) => {\n    if (!version)\n        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)$/;\n    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})$`);\n};\nexport const uuid4 = /*@__PURE__*/ uuid(4);\nexport const uuid6 = /*@__PURE__*/ uuid(6);\nexport const uuid7 = /*@__PURE__*/ uuid(7);\n/** Practical email validation */\nexport const email = /^(?!\\.)(?!.*\\.\\.)([A-Za-z0-9_'+\\-\\.]*)[A-Za-z0-9_+-]@([A-Za-z0-9][A-Za-z0-9\\-]*\\.)+[A-Za-z]{2,}$/;\n/** Equivalent to the HTML5 input[type=email] validation implemented by browsers. Source: https://developer.mozilla.org/en-US/docs/Web/HTML/Element/input/email */\nexport const 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])?)*$/;\n/** The classic emailregex.com regex for RFC 5322-compliant emails */\nexport const 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,}))$/;\n/** A loose regex that allows Unicode characters, enforces length limits, and that's about it. */\nexport const unicodeEmail = /^[^\\s@\"]{1,64}@[^\\s@]{1,255}$/u;\nexport const idnEmail = unicodeEmail;\nexport const 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])?)*$/;\n// from https://thekevinscott.com/emojis-in-javascript/#writing-a-regular-expression\nconst _emoji = `^(\\\\p{Extended_Pictographic}|\\\\p{Emoji_Component})+$`;\nexport function emoji() {\n    return new RegExp(_emoji, \"u\");\n}\nexport const 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])$/;\nexport const 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}|:))$/;\nexport const 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])$/;\nexport const cidrv6 = /^(([0-9a-fA-F]{1,4}:){7}[0-9a-fA-F]{1,4}|::|([0-9a-fA-F]{1,4})?::([0-9a-fA-F]{1,4}:?){0,6})\\/(12[0-8]|1[01][0-9]|[1-9]?[0-9])$/;\n// https://stackoverflow.com/questions/7860392/determine-if-string-is-in-base64-using-javascript\nexport const base64 = /^$|^(?:[0-9a-zA-Z+/]{4})*(?:(?:[0-9a-zA-Z+/]{2}==)|(?:[0-9a-zA-Z+/]{3}=))?$/;\nexport const base64url = /^[A-Za-z0-9_-]*$/;\n// based on https://stackoverflow.com/questions/106179/regular-expression-to-match-dns-hostname-or-ip-address\n// export const hostname: RegExp = /^([a-zA-Z0-9-]+\\.)*[a-zA-Z0-9-]+$/;\nexport const hostname = /^(?=.{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])?)*\\.?$/;\nexport const domain = /^([a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?\\.)+[a-zA-Z]{2,}$/;\n// https://blog.stevenlevithan.com/archives/validate-phone-number#r4-3 (regex sans spaces)\nexport const e164 = /^\\+(?:[0-9]){6,14}[0-9]$/;\n// const 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])))`;\nconst 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])))`;\nexport const date = /*@__PURE__*/ new RegExp(`^${dateSource}$`);\nfunction timeSource(args) {\n    const hhmm = `(?:[01]\\\\d|2[0-3]):[0-5]\\\\d`;\n    const regex = typeof args.precision === \"number\"\n        ? args.precision === -1\n            ? `${hhmm}`\n            : args.precision === 0\n                ? `${hhmm}:[0-5]\\\\d`\n                : `${hhmm}:[0-5]\\\\d\\\\.\\\\d{${args.precision}}`\n        : `${hhmm}(?::[0-5]\\\\d(?:\\\\.\\\\d+)?)?`;\n    return regex;\n}\nexport function time(args) {\n    return new RegExp(`^${timeSource(args)}$`);\n}\n// Adapted from https://stackoverflow.com/a/3143231\nexport function datetime(args) {\n    const time = timeSource({ precision: args.precision });\n    const opts = [\"Z\"];\n    if (args.local)\n        opts.push(\"\");\n    // if (args.offset) opts.push(`([+-]\\\\d{2}:\\\\d{2})`);\n    if (args.offset)\n        opts.push(`([+-](?:[01]\\\\d|2[0-3]):[0-5]\\\\d)`);\n    const timeRegex = `${time}(?:${opts.join(\"|\")})`;\n    return new RegExp(`^${dateSource}T(?:${timeRegex})$`);\n}\nexport const string = (params) => {\n    const regex = params ? `[\\\\s\\\\S]{${params?.minimum ?? 0},${params?.maximum ?? \"\"}}` : `[\\\\s\\\\S]*`;\n    return new RegExp(`^${regex}$`);\n};\nexport const bigint = /^-?\\d+n?$/;\nexport const integer = /^-?\\d+$/;\nexport const number = /^-?\\d+(?:\\.\\d+)?/;\nexport const boolean = /^(?:true|false)$/i;\nconst _null = /^null$/i;\nexport { _null as null };\nconst _undefined = /^undefined$/i;\nexport { _undefined as undefined };\n// regex for string with no uppercase letters\nexport const lowercase = /^[^A-Z]*$/;\n// regex for string with no lowercase letters\nexport const uppercase = /^[^a-z]*$/;\n// regex for hexadecimal strings (any length)\nexport const hex = /^[0-9a-fA-F]*$/;\n// Hash regexes for different algorithms and encodings\n// Helper function to create base64 regex with exact length and padding\nfunction fixedBase64(bodyLength, padding) {\n    return new RegExp(`^[A-Za-z0-9+/]{${bodyLength}}${padding}$`);\n}\n// Helper function to create base64url regex with exact length (no padding)\nfunction fixedBase64url(length) {\n    return new RegExp(`^[A-Za-z0-9_-]{${length}}$`);\n}\n// MD5 (16 bytes): base64 = 24 chars total (22 + \"==\")\nexport const md5_hex = /^[0-9a-fA-F]{32}$/;\nexport const md5_base64 = /*@__PURE__*/ fixedBase64(22, \"==\");\nexport const md5_base64url = /*@__PURE__*/ fixedBase64url(22);\n// SHA1 (20 bytes): base64 = 28 chars total (27 + \"=\")\nexport const sha1_hex = /^[0-9a-fA-F]{40}$/;\nexport const sha1_base64 = /*@__PURE__*/ fixedBase64(27, \"=\");\nexport const sha1_base64url = /*@__PURE__*/ fixedBase64url(27);\n// SHA256 (32 bytes): base64 = 44 chars total (43 + \"=\")\nexport const sha256_hex = /^[0-9a-fA-F]{64}$/;\nexport const sha256_base64 = /*@__PURE__*/ fixedBase64(43, \"=\");\nexport const sha256_base64url = /*@__PURE__*/ fixedBase64url(43);\n// SHA384 (48 bytes): base64 = 64 chars total (no padding)\nexport const sha384_hex = /^[0-9a-fA-F]{96}$/;\nexport const sha384_base64 = /*@__PURE__*/ fixedBase64(64, \"\");\nexport const sha384_base64url = /*@__PURE__*/ fixedBase64url(64);\n// SHA512 (64 bytes): base64 = 88 chars total (86 + \"==\")\nexport const sha512_hex = /^[0-9a-fA-F]{128}$/;\nexport const sha512_base64 = /*@__PURE__*/ fixedBase64(86, \"==\");\nexport const sha512_base64url = /*@__PURE__*/ fixedBase64url(86);\n", "// import { $ZodType } from \"./schemas.js\";\nimport * as core from \"./core.js\";\nimport * as regexes from \"./regexes.js\";\nimport * as util from \"./util.js\";\nexport const $ZodCheck = /*@__PURE__*/ core.$constructor(\"$ZodCheck\", (inst, def) => {\n    var _a;\n    inst._zod ?? (inst._zod = {});\n    inst._zod.def = def;\n    (_a = inst._zod).onattach ?? (_a.onattach = []);\n});\nconst numericOriginMap = {\n    number: \"number\",\n    bigint: \"bigint\",\n    object: \"date\",\n};\nexport const $ZodCheckLessThan = /*@__PURE__*/ core.$constructor(\"$ZodCheckLessThan\", (inst, def) => {\n    $ZodCheck.init(inst, def);\n    const origin = numericOriginMap[typeof def.value];\n    inst._zod.onattach.push((inst) => {\n        const bag = inst._zod.bag;\n        const curr = (def.inclusive ? bag.maximum : bag.exclusiveMaximum) ?? Number.POSITIVE_INFINITY;\n        if (def.value < curr) {\n            if (def.inclusive)\n                bag.maximum = def.value;\n            else\n                bag.exclusiveMaximum = def.value;\n        }\n    });\n    inst._zod.check = (payload) => {\n        if (def.inclusive ? payload.value <= def.value : payload.value < def.value) {\n            return;\n        }\n        payload.issues.push({\n            origin,\n            code: \"too_big\",\n            maximum: def.value,\n            input: payload.value,\n            inclusive: def.inclusive,\n            inst,\n            continue: !def.abort,\n        });\n    };\n});\nexport const $ZodCheckGreaterThan = /*@__PURE__*/ core.$constructor(\"$ZodCheckGreaterThan\", (inst, def) => {\n    $ZodCheck.init(inst, def);\n    const origin = numericOriginMap[typeof def.value];\n    inst._zod.onattach.push((inst) => {\n        const bag = inst._zod.bag;\n        const curr = (def.inclusive ? bag.minimum : bag.exclusiveMinimum) ?? Number.NEGATIVE_INFINITY;\n        if (def.value > curr) {\n            if (def.inclusive)\n                bag.minimum = def.value;\n            else\n                bag.exclusiveMinimum = def.value;\n        }\n    });\n    inst._zod.check = (payload) => {\n        if (def.inclusive ? payload.value >= def.value : payload.value > def.value) {\n            return;\n        }\n        payload.issues.push({\n            origin,\n            code: \"too_small\",\n            minimum: def.value,\n            input: payload.value,\n            inclusive: def.inclusive,\n            inst,\n            continue: !def.abort,\n        });\n    };\n});\nexport const $ZodCheckMultipleOf = \n/*@__PURE__*/ core.$constructor(\"$ZodCheckMultipleOf\", (inst, def) => {\n    $ZodCheck.init(inst, def);\n    inst._zod.onattach.push((inst) => {\n        var _a;\n        (_a = inst._zod.bag).multipleOf ?? (_a.multipleOf = def.value);\n    });\n    inst._zod.check = (payload) => {\n        if (typeof payload.value !== typeof def.value)\n            throw new Error(\"Cannot mix number and bigint in multiple_of check.\");\n        const isMultiple = typeof payload.value === \"bigint\"\n            ? payload.value % def.value === BigInt(0)\n            : util.floatSafeRemainder(payload.value, def.value) === 0;\n        if (isMultiple)\n            return;\n        payload.issues.push({\n            origin: typeof payload.value,\n            code: \"not_multiple_of\",\n            divisor: def.value,\n            input: payload.value,\n            inst,\n            continue: !def.abort,\n        });\n    };\n});\nexport const $ZodCheckNumberFormat = /*@__PURE__*/ core.$constructor(\"$ZodCheckNumberFormat\", (inst, def) => {\n    $ZodCheck.init(inst, def); // no format checks\n    def.format = def.format || \"float64\";\n    const isInt = def.format?.includes(\"int\");\n    const origin = isInt ? \"int\" : \"number\";\n    const [minimum, maximum] = util.NUMBER_FORMAT_RANGES[def.format];\n    inst._zod.onattach.push((inst) => {\n        const bag = inst._zod.bag;\n        bag.format = def.format;\n        bag.minimum = minimum;\n        bag.maximum = maximum;\n        if (isInt)\n            bag.pattern = regexes.integer;\n    });\n    inst._zod.check = (payload) => {\n        const input = payload.value;\n        if (isInt) {\n            if (!Number.isInteger(input)) {\n                // invalid_format issue\n                // payload.issues.push({\n                //   expected: def.format,\n                //   format: def.format,\n                //   code: \"invalid_format\",\n                //   input,\n                //   inst,\n                // });\n                // invalid_type issue\n                payload.issues.push({\n                    expected: origin,\n                    format: def.format,\n                    code: \"invalid_type\",\n                    continue: false,\n                    input,\n                    inst,\n                });\n                return;\n                // not_multiple_of issue\n                // payload.issues.push({\n                //   code: \"not_multiple_of\",\n                //   origin: \"number\",\n                //   input,\n                //   inst,\n                //   divisor: 1,\n                // });\n            }\n            if (!Number.isSafeInteger(input)) {\n                if (input > 0) {\n                    // too_big\n                    payload.issues.push({\n                        input,\n                        code: \"too_big\",\n                        maximum: Number.MAX_SAFE_INTEGER,\n                        note: \"Integers must be within the safe integer range.\",\n                        inst,\n                        origin,\n                        continue: !def.abort,\n                    });\n                }\n                else {\n                    // too_small\n                    payload.issues.push({\n                        input,\n                        code: \"too_small\",\n                        minimum: Number.MIN_SAFE_INTEGER,\n                        note: \"Integers must be within the safe integer range.\",\n                        inst,\n                        origin,\n                        continue: !def.abort,\n                    });\n                }\n                return;\n            }\n        }\n        if (input < minimum) {\n            payload.issues.push({\n                origin: \"number\",\n                input,\n                code: \"too_small\",\n                minimum,\n                inclusive: true,\n                inst,\n                continue: !def.abort,\n            });\n        }\n        if (input > maximum) {\n            payload.issues.push({\n                origin: \"number\",\n                input,\n                code: \"too_big\",\n                maximum,\n                inst,\n            });\n        }\n    };\n});\nexport const $ZodCheckBigIntFormat = /*@__PURE__*/ core.$constructor(\"$ZodCheckBigIntFormat\", (inst, def) => {\n    $ZodCheck.init(inst, def); // no format checks\n    const [minimum, maximum] = util.BIGINT_FORMAT_RANGES[def.format];\n    inst._zod.onattach.push((inst) => {\n        const bag = inst._zod.bag;\n        bag.format = def.format;\n        bag.minimum = minimum;\n        bag.maximum = maximum;\n    });\n    inst._zod.check = (payload) => {\n        const input = payload.value;\n        if (input < minimum) {\n            payload.issues.push({\n                origin: \"bigint\",\n                input,\n                code: \"too_small\",\n                minimum: minimum,\n                inclusive: true,\n                inst,\n                continue: !def.abort,\n            });\n        }\n        if (input > maximum) {\n            payload.issues.push({\n                origin: \"bigint\",\n                input,\n                code: \"too_big\",\n                maximum,\n                inst,\n            });\n        }\n    };\n});\nexport const $ZodCheckMaxSize = /*@__PURE__*/ core.$constructor(\"$ZodCheckMaxSize\", (inst, def) => {\n    var _a;\n    $ZodCheck.init(inst, def);\n    (_a = inst._zod.def).when ?? (_a.when = (payload) => {\n        const val = payload.value;\n        return !util.nullish(val) && val.size !== undefined;\n    });\n    inst._zod.onattach.push((inst) => {\n        const curr = (inst._zod.bag.maximum ?? Number.POSITIVE_INFINITY);\n        if (def.maximum < curr)\n            inst._zod.bag.maximum = def.maximum;\n    });\n    inst._zod.check = (payload) => {\n        const input = payload.value;\n        const size = input.size;\n        if (size <= def.maximum)\n            return;\n        payload.issues.push({\n            origin: util.getSizableOrigin(input),\n            code: \"too_big\",\n            maximum: def.maximum,\n            inclusive: true,\n            input,\n            inst,\n            continue: !def.abort,\n        });\n    };\n});\nexport const $ZodCheckMinSize = /*@__PURE__*/ core.$constructor(\"$ZodCheckMinSize\", (inst, def) => {\n    var _a;\n    $ZodCheck.init(inst, def);\n    (_a = inst._zod.def).when ?? (_a.when = (payload) => {\n        const val = payload.value;\n        return !util.nullish(val) && val.size !== undefined;\n    });\n    inst._zod.onattach.push((inst) => {\n        const curr = (inst._zod.bag.minimum ?? Number.NEGATIVE_INFINITY);\n        if (def.minimum > curr)\n            inst._zod.bag.minimum = def.minimum;\n    });\n    inst._zod.check = (payload) => {\n        const input = payload.value;\n        const size = input.size;\n        if (size >= def.minimum)\n            return;\n        payload.issues.push({\n            origin: util.getSizableOrigin(input),\n            code: \"too_small\",\n            minimum: def.minimum,\n            inclusive: true,\n            input,\n            inst,\n            continue: !def.abort,\n        });\n    };\n});\nexport const $ZodCheckSizeEquals = /*@__PURE__*/ core.$constructor(\"$ZodCheckSizeEquals\", (inst, def) => {\n    var _a;\n    $ZodCheck.init(inst, def);\n    (_a = inst._zod.def).when ?? (_a.when = (payload) => {\n        const val = payload.value;\n        return !util.nullish(val) && val.size !== undefined;\n    });\n    inst._zod.onattach.push((inst) => {\n        const bag = inst._zod.bag;\n        bag.minimum = def.size;\n        bag.maximum = def.size;\n        bag.size = def.size;\n    });\n    inst._zod.check = (payload) => {\n        const input = payload.value;\n        const size = input.size;\n        if (size === def.size)\n            return;\n        const tooBig = size > def.size;\n        payload.issues.push({\n            origin: util.getSizableOrigin(input),\n            ...(tooBig ? { code: \"too_big\", maximum: def.size } : { code: \"too_small\", minimum: def.size }),\n            inclusive: true,\n            exact: true,\n            input: payload.value,\n            inst,\n            continue: !def.abort,\n        });\n    };\n});\nexport const $ZodCheckMaxLength = /*@__PURE__*/ core.$constructor(\"$ZodCheckMaxLength\", (inst, def) => {\n    var _a;\n    $ZodCheck.init(inst, def);\n    (_a = inst._zod.def).when ?? (_a.when = (payload) => {\n        const val = payload.value;\n        return !util.nullish(val) && val.length !== undefined;\n    });\n    inst._zod.onattach.push((inst) => {\n        const curr = (inst._zod.bag.maximum ?? Number.POSITIVE_INFINITY);\n        if (def.maximum < curr)\n            inst._zod.bag.maximum = def.maximum;\n    });\n    inst._zod.check = (payload) => {\n        const input = payload.value;\n        const length = input.length;\n        if (length <= def.maximum)\n            return;\n        const origin = util.getLengthableOrigin(input);\n        payload.issues.push({\n            origin,\n            code: \"too_big\",\n            maximum: def.maximum,\n            inclusive: true,\n            input,\n            inst,\n            continue: !def.abort,\n        });\n    };\n});\nexport const $ZodCheckMinLength = /*@__PURE__*/ core.$constructor(\"$ZodCheckMinLength\", (inst, def) => {\n    var _a;\n    $ZodCheck.init(inst, def);\n    (_a = inst._zod.def).when ?? (_a.when = (payload) => {\n        const val = payload.value;\n        return !util.nullish(val) && val.length !== undefined;\n    });\n    inst._zod.onattach.push((inst) => {\n        const curr = (inst._zod.bag.minimum ?? Number.NEGATIVE_INFINITY);\n        if (def.minimum > curr)\n            inst._zod.bag.minimum = def.minimum;\n    });\n    inst._zod.check = (payload) => {\n        const input = payload.value;\n        const length = input.length;\n        if (length >= def.minimum)\n            return;\n        const origin = util.getLengthableOrigin(input);\n        payload.issues.push({\n            origin,\n            code: \"too_small\",\n            minimum: def.minimum,\n            inclusive: true,\n            input,\n            inst,\n            continue: !def.abort,\n        });\n    };\n});\nexport const $ZodCheckLengthEquals = /*@__PURE__*/ core.$constructor(\"$ZodCheckLengthEquals\", (inst, def) => {\n    var _a;\n    $ZodCheck.init(inst, def);\n    (_a = inst._zod.def).when ?? (_a.when = (payload) => {\n        const val = payload.value;\n        return !util.nullish(val) && val.length !== undefined;\n    });\n    inst._zod.onattach.push((inst) => {\n        const bag = inst._zod.bag;\n        bag.minimum = def.length;\n        bag.maximum = def.length;\n        bag.length = def.length;\n    });\n    inst._zod.check = (payload) => {\n        const input = payload.value;\n        const length = input.length;\n        if (length === def.length)\n            return;\n        const origin = util.getLengthableOrigin(input);\n        const tooBig = length > def.length;\n        payload.issues.push({\n            origin,\n            ...(tooBig ? { code: \"too_big\", maximum: def.length } : { code: \"too_small\", minimum: def.length }),\n            inclusive: true,\n            exact: true,\n            input: payload.value,\n            inst,\n            continue: !def.abort,\n        });\n    };\n});\nexport const $ZodCheckStringFormat = /*@__PURE__*/ core.$constructor(\"$ZodCheckStringFormat\", (inst, def) => {\n    var _a, _b;\n    $ZodCheck.init(inst, def);\n    inst._zod.onattach.push((inst) => {\n        const bag = inst._zod.bag;\n        bag.format = def.format;\n        if (def.pattern) {\n            bag.patterns ?? (bag.patterns = new Set());\n            bag.patterns.add(def.pattern);\n        }\n    });\n    if (def.pattern)\n        (_a = inst._zod).check ?? (_a.check = (payload) => {\n            def.pattern.lastIndex = 0;\n            if (def.pattern.test(payload.value))\n                return;\n            payload.issues.push({\n                origin: \"string\",\n                code: \"invalid_format\",\n                format: def.format,\n                input: payload.value,\n                ...(def.pattern ? { pattern: def.pattern.toString() } : {}),\n                inst,\n                continue: !def.abort,\n            });\n        });\n    else\n        (_b = inst._zod).check ?? (_b.check = () => { });\n});\nexport const $ZodCheckRegex = /*@__PURE__*/ core.$constructor(\"$ZodCheckRegex\", (inst, def) => {\n    $ZodCheckStringFormat.init(inst, def);\n    inst._zod.check = (payload) => {\n        def.pattern.lastIndex = 0;\n        if (def.pattern.test(payload.value))\n            return;\n        payload.issues.push({\n            origin: \"string\",\n            code: \"invalid_format\",\n            format: \"regex\",\n            input: payload.value,\n            pattern: def.pattern.toString(),\n            inst,\n            continue: !def.abort,\n        });\n    };\n});\nexport const $ZodCheckLowerCase = /*@__PURE__*/ core.$constructor(\"$ZodCheckLowerCase\", (inst, def) => {\n    def.pattern ?? (def.pattern = regexes.lowercase);\n    $ZodCheckStringFormat.init(inst, def);\n});\nexport const $ZodCheckUpperCase = /*@__PURE__*/ core.$constructor(\"$ZodCheckUpperCase\", (inst, def) => {\n    def.pattern ?? (def.pattern = regexes.uppercase);\n    $ZodCheckStringFormat.init(inst, def);\n});\nexport const $ZodCheckIncludes = /*@__PURE__*/ core.$constructor(\"$ZodCheckIncludes\", (inst, def) => {\n    $ZodCheck.init(inst, def);\n    const escapedRegex = util.escapeRegex(def.includes);\n    const pattern = new RegExp(typeof def.position === \"number\" ? `^.{${def.position}}${escapedRegex}` : escapedRegex);\n    def.pattern = pattern;\n    inst._zod.onattach.push((inst) => {\n        const bag = inst._zod.bag;\n        bag.patterns ?? (bag.patterns = new Set());\n        bag.patterns.add(pattern);\n    });\n    inst._zod.check = (payload) => {\n        if (payload.value.includes(def.includes, def.position))\n            return;\n        payload.issues.push({\n            origin: \"string\",\n            code: \"invalid_format\",\n            format: \"includes\",\n            includes: def.includes,\n            input: payload.value,\n            inst,\n            continue: !def.abort,\n        });\n    };\n});\nexport const $ZodCheckStartsWith = /*@__PURE__*/ core.$constructor(\"$ZodCheckStartsWith\", (inst, def) => {\n    $ZodCheck.init(inst, def);\n    const pattern = new RegExp(`^${util.escapeRegex(def.prefix)}.*`);\n    def.pattern ?? (def.pattern = pattern);\n    inst._zod.onattach.push((inst) => {\n        const bag = inst._zod.bag;\n        bag.patterns ?? (bag.patterns = new Set());\n        bag.patterns.add(pattern);\n    });\n    inst._zod.check = (payload) => {\n        if (payload.value.startsWith(def.prefix))\n            return;\n        payload.issues.push({\n            origin: \"string\",\n            code: \"invalid_format\",\n            format: \"starts_with\",\n            prefix: def.prefix,\n            input: payload.value,\n            inst,\n            continue: !def.abort,\n        });\n    };\n});\nexport const $ZodCheckEndsWith = /*@__PURE__*/ core.$constructor(\"$ZodCheckEndsWith\", (inst, def) => {\n    $ZodCheck.init(inst, def);\n    const pattern = new RegExp(`.*${util.escapeRegex(def.suffix)}$`);\n    def.pattern ?? (def.pattern = pattern);\n    inst._zod.onattach.push((inst) => {\n        const bag = inst._zod.bag;\n        bag.patterns ?? (bag.patterns = new Set());\n        bag.patterns.add(pattern);\n    });\n    inst._zod.check = (payload) => {\n        if (payload.value.endsWith(def.suffix))\n            return;\n        payload.issues.push({\n            origin: \"string\",\n            code: \"invalid_format\",\n            format: \"ends_with\",\n            suffix: def.suffix,\n            input: payload.value,\n            inst,\n            continue: !def.abort,\n        });\n    };\n});\n///////////////////////////////////\n/////    $ZodCheckProperty    /////\n///////////////////////////////////\nfunction handleCheckPropertyResult(result, payload, property) {\n    if (result.issues.length) {\n        payload.issues.push(...util.prefixIssues(property, result.issues));\n    }\n}\nexport const $ZodCheckProperty = /*@__PURE__*/ core.$constructor(\"$ZodCheckProperty\", (inst, def) => {\n    $ZodCheck.init(inst, def);\n    inst._zod.check = (payload) => {\n        const result = def.schema._zod.run({\n            value: payload.value[def.property],\n            issues: [],\n        }, {});\n        if (result instanceof Promise) {\n            return result.then((result) => handleCheckPropertyResult(result, payload, def.property));\n        }\n        handleCheckPropertyResult(result, payload, def.property);\n        return;\n    };\n});\nexport const $ZodCheckMimeType = /*@__PURE__*/ core.$constructor(\"$ZodCheckMimeType\", (inst, def) => {\n    $ZodCheck.init(inst, def);\n    const mimeSet = new Set(def.mime);\n    inst._zod.onattach.push((inst) => {\n        inst._zod.bag.mime = def.mime;\n    });\n    inst._zod.check = (payload) => {\n        if (mimeSet.has(payload.value.type))\n            return;\n        payload.issues.push({\n            code: \"invalid_value\",\n            values: def.mime,\n            input: payload.value.type,\n            inst,\n            continue: !def.abort,\n        });\n    };\n});\nexport const $ZodCheckOverwrite = /*@__PURE__*/ core.$constructor(\"$ZodCheckOverwrite\", (inst, def) => {\n    $ZodCheck.init(inst, def);\n    inst._zod.check = (payload) => {\n        payload.value = def.tx(payload.value);\n    };\n});\n", "export class Doc {\n    constructor(args = []) {\n        this.content = [];\n        this.indent = 0;\n        if (this)\n            this.args = args;\n    }\n    indented(fn) {\n        this.indent += 1;\n        fn(this);\n        this.indent -= 1;\n    }\n    write(arg) {\n        if (typeof arg === \"function\") {\n            arg(this, { execution: \"sync\" });\n            arg(this, { execution: \"async\" });\n            return;\n        }\n        const content = arg;\n        const lines = content.split(\"\\n\").filter((x) => x);\n        const minIndent = Math.min(...lines.map((x) => x.length - x.trimStart().length));\n        const dedented = lines.map((x) => x.slice(minIndent)).map((x) => \" \".repeat(this.indent * 2) + x);\n        for (const line of dedented) {\n            this.content.push(line);\n        }\n    }\n    compile() {\n        const F = Function;\n        const args = this?.args;\n        const content = this?.content ?? [``];\n        const lines = [...content.map((x) => `  ${x}`)];\n        // console.log(lines.join(\"\\n\"));\n        return new F(...args, lines.join(\"\\n\"));\n    }\n}\n", "export const version = {\n    major: 4,\n    minor: 1,\n    patch: 11,\n};\n", "import * as checks from \"./checks.js\";\nimport * as core from \"./core.js\";\nimport { Doc } from \"./doc.js\";\nimport { parse, parseAsync, safeParse, safeParseAsync } from \"./parse.js\";\nimport * as regexes from \"./regexes.js\";\nimport * as util from \"./util.js\";\nimport { version } from \"./versions.js\";\nexport const $ZodType = /*@__PURE__*/ core.$constructor(\"$ZodType\", (inst, def) => {\n    var _a;\n    inst ?? (inst = {});\n    inst._zod.def = def; // set _def property\n    inst._zod.bag = inst._zod.bag || {}; // initialize _bag object\n    inst._zod.version = version;\n    const checks = [...(inst._zod.def.checks ?? [])];\n    // if inst is itself a checks.$ZodCheck, run it as a check\n    if (inst._zod.traits.has(\"$ZodCheck\")) {\n        checks.unshift(inst);\n    }\n    for (const ch of checks) {\n        for (const fn of ch._zod.onattach) {\n            fn(inst);\n        }\n    }\n    if (checks.length === 0) {\n        // deferred initializer\n        // inst._zod.parse is not yet defined\n        (_a = inst._zod).deferred ?? (_a.deferred = []);\n        inst._zod.deferred?.push(() => {\n            inst._zod.run = inst._zod.parse;\n        });\n    }\n    else {\n        const runChecks = (payload, checks, ctx) => {\n            let isAborted = util.aborted(payload);\n            let asyncResult;\n            for (const ch of checks) {\n                if (ch._zod.def.when) {\n                    const shouldRun = ch._zod.def.when(payload);\n                    if (!shouldRun)\n                        continue;\n                }\n                else if (isAborted) {\n                    continue;\n                }\n                const currLen = payload.issues.length;\n                const _ = ch._zod.check(payload);\n                if (_ instanceof Promise && ctx?.async === false) {\n                    throw new core.$ZodAsyncError();\n                }\n                if (asyncResult || _ instanceof Promise) {\n                    asyncResult = (asyncResult ?? Promise.resolve()).then(async () => {\n                        await _;\n                        const nextLen = payload.issues.length;\n                        if (nextLen === currLen)\n                            return;\n                        if (!isAborted)\n                            isAborted = util.aborted(payload, currLen);\n                    });\n                }\n                else {\n                    const nextLen = payload.issues.length;\n                    if (nextLen === currLen)\n                        continue;\n                    if (!isAborted)\n                        isAborted = util.aborted(payload, currLen);\n                }\n            }\n            if (asyncResult) {\n                return asyncResult.then(() => {\n                    return payload;\n                });\n            }\n            return payload;\n        };\n        // const handleChecksResult = (\n        //   checkResult: ParsePayload,\n        //   originalResult: ParsePayload,\n        //   ctx: ParseContextInternal\n        // ): util.MaybeAsync<ParsePayload> => {\n        //   // if the checks mutated the value && there are no issues, re-parse the result\n        //   if (checkResult.value !== originalResult.value && !checkResult.issues.length)\n        //     return inst._zod.parse(checkResult, ctx);\n        //   return originalResult;\n        // };\n        const handleCanaryResult = (canary, payload, ctx) => {\n            // abort if the canary is aborted\n            if (util.aborted(canary)) {\n                canary.aborted = true;\n                return canary;\n            }\n            // run checks first, then\n            const checkResult = runChecks(payload, checks, ctx);\n            if (checkResult instanceof Promise) {\n                if (ctx.async === false)\n                    throw new core.$ZodAsyncError();\n                return checkResult.then((checkResult) => inst._zod.parse(checkResult, ctx));\n            }\n            return inst._zod.parse(checkResult, ctx);\n        };\n        inst._zod.run = (payload, ctx) => {\n            if (ctx.skipChecks) {\n                return inst._zod.parse(payload, ctx);\n            }\n            if (ctx.direction === \"backward\") {\n                // run canary\n                // initial pass (no checks)\n                const canary = inst._zod.parse({ value: payload.value, issues: [] }, { ...ctx, skipChecks: true });\n                if (canary instanceof Promise) {\n                    return canary.then((canary) => {\n                        return handleCanaryResult(canary, payload, ctx);\n                    });\n                }\n                return handleCanaryResult(canary, payload, ctx);\n            }\n            // forward\n            const result = inst._zod.parse(payload, ctx);\n            if (result instanceof Promise) {\n                if (ctx.async === false)\n                    throw new core.$ZodAsyncError();\n                return result.then((result) => runChecks(result, checks, ctx));\n            }\n            return runChecks(result, checks, ctx);\n        };\n    }\n    inst[\"~standard\"] = {\n        validate: (value) => {\n            try {\n                const r = safeParse(inst, value);\n                return r.success ? { value: r.data } : { issues: r.error?.issues };\n            }\n            catch (_) {\n                return safeParseAsync(inst, value).then((r) => (r.success ? { value: r.data } : { issues: r.error?.issues }));\n            }\n        },\n        vendor: \"zod\",\n        version: 1,\n    };\n});\nexport { clone } from \"./util.js\";\nexport const $ZodString = /*@__PURE__*/ core.$constructor(\"$ZodString\", (inst, def) => {\n    $ZodType.init(inst, def);\n    inst._zod.pattern = [...(inst?._zod.bag?.patterns ?? [])].pop() ?? regexes.string(inst._zod.bag);\n    inst._zod.parse = (payload, _) => {\n        if (def.coerce)\n            try {\n                payload.value = String(payload.value);\n            }\n            catch (_) { }\n        if (typeof payload.value === \"string\")\n            return payload;\n        payload.issues.push({\n            expected: \"string\",\n            code: \"invalid_type\",\n            input: payload.value,\n            inst,\n        });\n        return payload;\n    };\n});\nexport const $ZodStringFormat = /*@__PURE__*/ core.$constructor(\"$ZodStringFormat\", (inst, def) => {\n    // check initialization must come first\n    checks.$ZodCheckStringFormat.init(inst, def);\n    $ZodString.init(inst, def);\n});\nexport const $ZodGUID = /*@__PURE__*/ core.$constructor(\"$ZodGUID\", (inst, def) => {\n    def.pattern ?? (def.pattern = regexes.guid);\n    $ZodStringFormat.init(inst, def);\n});\nexport const $ZodUUID = /*@__PURE__*/ core.$constructor(\"$ZodUUID\", (inst, def) => {\n    if (def.version) {\n        const versionMap = {\n            v1: 1,\n            v2: 2,\n            v3: 3,\n            v4: 4,\n            v5: 5,\n            v6: 6,\n            v7: 7,\n            v8: 8,\n        };\n        const v = versionMap[def.version];\n        if (v === undefined)\n            throw new Error(`Invalid UUID version: \"${def.version}\"`);\n        def.pattern ?? (def.pattern = regexes.uuid(v));\n    }\n    else\n        def.pattern ?? (def.pattern = regexes.uuid());\n    $ZodStringFormat.init(inst, def);\n});\nexport const $ZodEmail = /*@__PURE__*/ core.$constructor(\"$ZodEmail\", (inst, def) => {\n    def.pattern ?? (def.pattern = regexes.email);\n    $ZodStringFormat.init(inst, def);\n});\nexport const $ZodURL = /*@__PURE__*/ core.$constructor(\"$ZodURL\", (inst, def) => {\n    $ZodStringFormat.init(inst, def);\n    inst._zod.check = (payload) => {\n        try {\n            // Trim whitespace from input\n            const trimmed = payload.value.trim();\n            // @ts-ignore\n            const url = new URL(trimmed);\n            if (def.hostname) {\n                def.hostname.lastIndex = 0;\n                if (!def.hostname.test(url.hostname)) {\n                    payload.issues.push({\n                        code: \"invalid_format\",\n                        format: \"url\",\n                        note: \"Invalid hostname\",\n                        pattern: regexes.hostname.source,\n                        input: payload.value,\n                        inst,\n                        continue: !def.abort,\n                    });\n                }\n            }\n            if (def.protocol) {\n                def.protocol.lastIndex = 0;\n                if (!def.protocol.test(url.protocol.endsWith(\":\") ? url.protocol.slice(0, -1) : url.protocol)) {\n                    payload.issues.push({\n                        code: \"invalid_format\",\n                        format: \"url\",\n                        note: \"Invalid protocol\",\n                        pattern: def.protocol.source,\n                        input: payload.value,\n                        inst,\n                        continue: !def.abort,\n                    });\n                }\n            }\n            // Set the output value based on normalize flag\n            if (def.normalize) {\n                // Use normalized URL\n                payload.value = url.href;\n            }\n            else {\n                // Preserve the original input (trimmed)\n                payload.value = trimmed;\n            }\n            return;\n        }\n        catch (_) {\n            payload.issues.push({\n                code: \"invalid_format\",\n                format: \"url\",\n                input: payload.value,\n                inst,\n                continue: !def.abort,\n            });\n        }\n    };\n});\nexport const $ZodEmoji = /*@__PURE__*/ core.$constructor(\"$ZodEmoji\", (inst, def) => {\n    def.pattern ?? (def.pattern = regexes.emoji());\n    $ZodStringFormat.init(inst, def);\n});\nexport const $ZodNanoID = /*@__PURE__*/ core.$constructor(\"$ZodNanoID\", (inst, def) => {\n    def.pattern ?? (def.pattern = regexes.nanoid);\n    $ZodStringFormat.init(inst, def);\n});\nexport const $ZodCUID = /*@__PURE__*/ core.$constructor(\"$ZodCUID\", (inst, def) => {\n    def.pattern ?? (def.pattern = regexes.cuid);\n    $ZodStringFormat.init(inst, def);\n});\nexport const $ZodCUID2 = /*@__PURE__*/ core.$constructor(\"$ZodCUID2\", (inst, def) => {\n    def.pattern ?? (def.pattern = regexes.cuid2);\n    $ZodStringFormat.init(inst, def);\n});\nexport const $ZodULID = /*@__PURE__*/ core.$constructor(\"$ZodULID\", (inst, def) => {\n    def.pattern ?? (def.pattern = regexes.ulid);\n    $ZodStringFormat.init(inst, def);\n});\nexport const $ZodXID = /*@__PURE__*/ core.$constructor(\"$ZodXID\", (inst, def) => {\n    def.pattern ?? (def.pattern = regexes.xid);\n    $ZodStringFormat.init(inst, def);\n});\nexport const $ZodKSUID = /*@__PURE__*/ core.$constructor(\"$ZodKSUID\", (inst, def) => {\n    def.pattern ?? (def.pattern = regexes.ksuid);\n    $ZodStringFormat.init(inst, def);\n});\nexport const $ZodISODateTime = /*@__PURE__*/ core.$constructor(\"$ZodISODateTime\", (inst, def) => {\n    def.pattern ?? (def.pattern = regexes.datetime(def));\n    $ZodStringFormat.init(inst, def);\n});\nexport const $ZodISODate = /*@__PURE__*/ core.$constructor(\"$ZodISODate\", (inst, def) => {\n    def.pattern ?? (def.pattern = regexes.date);\n    $ZodStringFormat.init(inst, def);\n});\nexport const $ZodISOTime = /*@__PURE__*/ core.$constructor(\"$ZodISOTime\", (inst, def) => {\n    def.pattern ?? (def.pattern = regexes.time(def));\n    $ZodStringFormat.init(inst, def);\n});\nexport const $ZodISODuration = /*@__PURE__*/ core.$constructor(\"$ZodISODuration\", (inst, def) => {\n    def.pattern ?? (def.pattern = regexes.duration);\n    $ZodStringFormat.init(inst, def);\n});\nexport const $ZodIPv4 = /*@__PURE__*/ core.$constructor(\"$ZodIPv4\", (inst, def) => {\n    def.pattern ?? (def.pattern = regexes.ipv4);\n    $ZodStringFormat.init(inst, def);\n    inst._zod.onattach.push((inst) => {\n        const bag = inst._zod.bag;\n        bag.format = `ipv4`;\n    });\n});\nexport const $ZodIPv6 = /*@__PURE__*/ core.$constructor(\"$ZodIPv6\", (inst, def) => {\n    def.pattern ?? (def.pattern = regexes.ipv6);\n    $ZodStringFormat.init(inst, def);\n    inst._zod.onattach.push((inst) => {\n        const bag = inst._zod.bag;\n        bag.format = `ipv6`;\n    });\n    inst._zod.check = (payload) => {\n        try {\n            // @ts-ignore\n            new URL(`http://[${payload.value}]`);\n            // return;\n        }\n        catch {\n            payload.issues.push({\n                code: \"invalid_format\",\n                format: \"ipv6\",\n                input: payload.value,\n                inst,\n                continue: !def.abort,\n            });\n        }\n    };\n});\nexport const $ZodCIDRv4 = /*@__PURE__*/ core.$constructor(\"$ZodCIDRv4\", (inst, def) => {\n    def.pattern ?? (def.pattern = regexes.cidrv4);\n    $ZodStringFormat.init(inst, def);\n});\nexport const $ZodCIDRv6 = /*@__PURE__*/ core.$constructor(\"$ZodCIDRv6\", (inst, def) => {\n    def.pattern ?? (def.pattern = regexes.cidrv6); // not used for validation\n    $ZodStringFormat.init(inst, def);\n    inst._zod.check = (payload) => {\n        const parts = payload.value.split(\"/\");\n        try {\n            if (parts.length !== 2)\n                throw new Error();\n            const [address, prefix] = parts;\n            if (!prefix)\n                throw new Error();\n            const prefixNum = Number(prefix);\n            if (`${prefixNum}` !== prefix)\n                throw new Error();\n            if (prefixNum < 0 || prefixNum > 128)\n                throw new Error();\n            // @ts-ignore\n            new URL(`http://[${address}]`);\n        }\n        catch {\n            payload.issues.push({\n                code: \"invalid_format\",\n                format: \"cidrv6\",\n                input: payload.value,\n                inst,\n                continue: !def.abort,\n            });\n        }\n    };\n});\n//////////////////////////////   ZodBase64   //////////////////////////////\nexport function isValidBase64(data) {\n    if (data === \"\")\n        return true;\n    if (data.length % 4 !== 0)\n        return false;\n    try {\n        // @ts-ignore\n        atob(data);\n        return true;\n    }\n    catch {\n        return false;\n    }\n}\nexport const $ZodBase64 = /*@__PURE__*/ core.$constructor(\"$ZodBase64\", (inst, def) => {\n    def.pattern ?? (def.pattern = regexes.base64);\n    $ZodStringFormat.init(inst, def);\n    inst._zod.onattach.push((inst) => {\n        inst._zod.bag.contentEncoding = \"base64\";\n    });\n    inst._zod.check = (payload) => {\n        if (isValidBase64(payload.value))\n            return;\n        payload.issues.push({\n            code: \"invalid_format\",\n            format: \"base64\",\n            input: payload.value,\n            inst,\n            continue: !def.abort,\n        });\n    };\n});\n//////////////////////////////   ZodBase64   //////////////////////////////\nexport function isValidBase64URL(data) {\n    if (!regexes.base64url.test(data))\n        return false;\n    const base64 = data.replace(/[-_]/g, (c) => (c === \"-\" ? \"+\" : \"/\"));\n    const padded = base64.padEnd(Math.ceil(base64.length / 4) * 4, \"=\");\n    return isValidBase64(padded);\n}\nexport const $ZodBase64URL = /*@__PURE__*/ core.$constructor(\"$ZodBase64URL\", (inst, def) => {\n    def.pattern ?? (def.pattern = regexes.base64url);\n    $ZodStringFormat.init(inst, def);\n    inst._zod.onattach.push((inst) => {\n        inst._zod.bag.contentEncoding = \"base64url\";\n    });\n    inst._zod.check = (payload) => {\n        if (isValidBase64URL(payload.value))\n            return;\n        payload.issues.push({\n            code: \"invalid_format\",\n            format: \"base64url\",\n            input: payload.value,\n            inst,\n            continue: !def.abort,\n        });\n    };\n});\nexport const $ZodE164 = /*@__PURE__*/ core.$constructor(\"$ZodE164\", (inst, def) => {\n    def.pattern ?? (def.pattern = regexes.e164);\n    $ZodStringFormat.init(inst, def);\n});\n//////////////////////////////   ZodJWT   //////////////////////////////\nexport function isValidJWT(token, algorithm = null) {\n    try {\n        const tokensParts = token.split(\".\");\n        if (tokensParts.length !== 3)\n            return false;\n        const [header] = tokensParts;\n        if (!header)\n            return false;\n        // @ts-ignore\n        const parsedHeader = JSON.parse(atob(header));\n        if (\"typ\" in parsedHeader && parsedHeader?.typ !== \"JWT\")\n            return false;\n        if (!parsedHeader.alg)\n            return false;\n        if (algorithm && (!(\"alg\" in parsedHeader) || parsedHeader.alg !== algorithm))\n            return false;\n        return true;\n    }\n    catch {\n        return false;\n    }\n}\nexport const $ZodJWT = /*@__PURE__*/ core.$constructor(\"$ZodJWT\", (inst, def) => {\n    $ZodStringFormat.init(inst, def);\n    inst._zod.check = (payload) => {\n        if (isValidJWT(payload.value, def.alg))\n            return;\n        payload.issues.push({\n            code: \"invalid_format\",\n            format: \"jwt\",\n            input: payload.value,\n            inst,\n            continue: !def.abort,\n        });\n    };\n});\nexport const $ZodCustomStringFormat = /*@__PURE__*/ core.$constructor(\"$ZodCustomStringFormat\", (inst, def) => {\n    $ZodStringFormat.init(inst, def);\n    inst._zod.check = (payload) => {\n        if (def.fn(payload.value))\n            return;\n        payload.issues.push({\n            code: \"invalid_format\",\n            format: def.format,\n            input: payload.value,\n            inst,\n            continue: !def.abort,\n        });\n    };\n});\nexport const $ZodNumber = /*@__PURE__*/ core.$constructor(\"$ZodNumber\", (inst, def) => {\n    $ZodType.init(inst, def);\n    inst._zod.pattern = inst._zod.bag.pattern ?? regexes.number;\n    inst._zod.parse = (payload, _ctx) => {\n        if (def.coerce)\n            try {\n                payload.value = Number(payload.value);\n            }\n            catch (_) { }\n        const input = payload.value;\n        if (typeof input === \"number\" && !Number.isNaN(input) && Number.isFinite(input)) {\n            return payload;\n        }\n        const received = typeof input === \"number\"\n            ? Number.isNaN(input)\n                ? \"NaN\"\n                : !Number.isFinite(input)\n                    ? \"Infinity\"\n                    : undefined\n            : undefined;\n        payload.issues.push({\n            expected: \"number\",\n            code: \"invalid_type\",\n            input,\n            inst,\n            ...(received ? { received } : {}),\n        });\n        return payload;\n    };\n});\nexport const $ZodNumberFormat = /*@__PURE__*/ core.$constructor(\"$ZodNumber\", (inst, def) => {\n    checks.$ZodCheckNumberFormat.init(inst, def);\n    $ZodNumber.init(inst, def); // no format checksp\n});\nexport const $ZodBoolean = /*@__PURE__*/ core.$constructor(\"$ZodBoolean\", (inst, def) => {\n    $ZodType.init(inst, def);\n    inst._zod.pattern = regexes.boolean;\n    inst._zod.parse = (payload, _ctx) => {\n        if (def.coerce)\n            try {\n                payload.value = Boolean(payload.value);\n            }\n            catch (_) { }\n        const input = payload.value;\n        if (typeof input === \"boolean\")\n            return payload;\n        payload.issues.push({\n            expected: \"boolean\",\n            code: \"invalid_type\",\n            input,\n            inst,\n        });\n        return payload;\n    };\n});\nexport const $ZodBigInt = /*@__PURE__*/ core.$constructor(\"$ZodBigInt\", (inst, def) => {\n    $ZodType.init(inst, def);\n    inst._zod.pattern = regexes.bigint;\n    inst._zod.parse = (payload, _ctx) => {\n        if (def.coerce)\n            try {\n                payload.value = BigInt(payload.value);\n            }\n            catch (_) { }\n        if (typeof payload.value === \"bigint\")\n            return payload;\n        payload.issues.push({\n            expected: \"bigint\",\n            code: \"invalid_type\",\n            input: payload.value,\n            inst,\n        });\n        return payload;\n    };\n});\nexport const $ZodBigIntFormat = /*@__PURE__*/ core.$constructor(\"$ZodBigInt\", (inst, def) => {\n    checks.$ZodCheckBigIntFormat.init(inst, def);\n    $ZodBigInt.init(inst, def); // no format checks\n});\nexport const $ZodSymbol = /*@__PURE__*/ core.$constructor(\"$ZodSymbol\", (inst, def) => {\n    $ZodType.init(inst, def);\n    inst._zod.parse = (payload, _ctx) => {\n        const input = payload.value;\n        if (typeof input === \"symbol\")\n            return payload;\n        payload.issues.push({\n            expected: \"symbol\",\n            code: \"invalid_type\",\n            input,\n            inst,\n        });\n        return payload;\n    };\n});\nexport const $ZodUndefined = /*@__PURE__*/ core.$constructor(\"$ZodUndefined\", (inst, def) => {\n    $ZodType.init(inst, def);\n    inst._zod.pattern = regexes.undefined;\n    inst._zod.values = new Set([undefined]);\n    inst._zod.optin = \"optional\";\n    inst._zod.optout = \"optional\";\n    inst._zod.parse = (payload, _ctx) => {\n        const input = payload.value;\n        if (typeof input === \"undefined\")\n            return payload;\n        payload.issues.push({\n            expected: \"undefined\",\n            code: \"invalid_type\",\n            input,\n            inst,\n        });\n        return payload;\n    };\n});\nexport const $ZodNull = /*@__PURE__*/ core.$constructor(\"$ZodNull\", (inst, def) => {\n    $ZodType.init(inst, def);\n    inst._zod.pattern = regexes.null;\n    inst._zod.values = new Set([null]);\n    inst._zod.parse = (payload, _ctx) => {\n        const input = payload.value;\n        if (input === null)\n            return payload;\n        payload.issues.push({\n            expected: \"null\",\n            code: \"invalid_type\",\n            input,\n            inst,\n        });\n        return payload;\n    };\n});\nexport const $ZodAny = /*@__PURE__*/ core.$constructor(\"$ZodAny\", (inst, def) => {\n    $ZodType.init(inst, def);\n    inst._zod.parse = (payload) => payload;\n});\nexport const $ZodUnknown = /*@__PURE__*/ core.$constructor(\"$ZodUnknown\", (inst, def) => {\n    $ZodType.init(inst, def);\n    inst._zod.parse = (payload) => payload;\n});\nexport const $ZodNever = /*@__PURE__*/ core.$constructor(\"$ZodNever\", (inst, def) => {\n    $ZodType.init(inst, def);\n    inst._zod.parse = (payload, _ctx) => {\n        payload.issues.push({\n            expected: \"never\",\n            code: \"invalid_type\",\n            input: payload.value,\n            inst,\n        });\n        return payload;\n    };\n});\nexport const $ZodVoid = /*@__PURE__*/ core.$constructor(\"$ZodVoid\", (inst, def) => {\n    $ZodType.init(inst, def);\n    inst._zod.parse = (payload, _ctx) => {\n        const input = payload.value;\n        if (typeof input === \"undefined\")\n            return payload;\n        payload.issues.push({\n            expected: \"void\",\n            code: \"invalid_type\",\n            input,\n            inst,\n        });\n        return payload;\n    };\n});\nexport const $ZodDate = /*@__PURE__*/ core.$constructor(\"$ZodDate\", (inst, def) => {\n    $ZodType.init(inst, def);\n    inst._zod.parse = (payload, _ctx) => {\n        if (def.coerce) {\n            try {\n                payload.value = new Date(payload.value);\n            }\n            catch (_err) { }\n        }\n        const input = payload.value;\n        const isDate = input instanceof Date;\n        const isValidDate = isDate && !Number.isNaN(input.getTime());\n        if (isValidDate)\n            return payload;\n        payload.issues.push({\n            expected: \"date\",\n            code: \"invalid_type\",\n            input,\n            ...(isDate ? { received: \"Invalid Date\" } : {}),\n            inst,\n        });\n        return payload;\n    };\n});\nfunction handleArrayResult(result, final, index) {\n    if (result.issues.length) {\n        final.issues.push(...util.prefixIssues(index, result.issues));\n    }\n    final.value[index] = result.value;\n}\nexport const $ZodArray = /*@__PURE__*/ core.$constructor(\"$ZodArray\", (inst, def) => {\n    $ZodType.init(inst, def);\n    inst._zod.parse = (payload, ctx) => {\n        const input = payload.value;\n        if (!Array.isArray(input)) {\n            payload.issues.push({\n                expected: \"array\",\n                code: \"invalid_type\",\n                input,\n                inst,\n            });\n            return payload;\n        }\n        payload.value = Array(input.length);\n        const proms = [];\n        for (let i = 0; i < input.length; i++) {\n            const item = input[i];\n            const result = def.element._zod.run({\n                value: item,\n                issues: [],\n            }, ctx);\n            if (result instanceof Promise) {\n                proms.push(result.then((result) => handleArrayResult(result, payload, i)));\n            }\n            else {\n                handleArrayResult(result, payload, i);\n            }\n        }\n        if (proms.length) {\n            return Promise.all(proms).then(() => payload);\n        }\n        return payload; //handleArrayResultsAsync(parseResults, final);\n    };\n});\nfunction handlePropertyResult(result, final, key, input) {\n    if (result.issues.length) {\n        final.issues.push(...util.prefixIssues(key, result.issues));\n    }\n    if (result.value === undefined) {\n        if (key in input) {\n            final.value[key] = undefined;\n        }\n    }\n    else {\n        final.value[key] = result.value;\n    }\n}\nfunction normalizeDef(def) {\n    const keys = Object.keys(def.shape);\n    for (const k of keys) {\n        if (!def.shape?.[k]?._zod?.traits?.has(\"$ZodType\")) {\n            throw new Error(`Invalid element at key \"${k}\": expected a Zod schema`);\n        }\n    }\n    const okeys = util.optionalKeys(def.shape);\n    return {\n        ...def,\n        keys,\n        keySet: new Set(keys),\n        numKeys: keys.length,\n        optionalKeys: new Set(okeys),\n    };\n}\nfunction handleCatchall(proms, input, payload, ctx, def, inst) {\n    const unrecognized = [];\n    // iterate over input keys\n    const keySet = def.keySet;\n    const _catchall = def.catchall._zod;\n    const t = _catchall.def.type;\n    for (const key of Object.keys(input)) {\n        if (keySet.has(key))\n            continue;\n        if (t === \"never\") {\n            unrecognized.push(key);\n            continue;\n        }\n        const r = _catchall.run({ value: input[key], issues: [] }, ctx);\n        if (r instanceof Promise) {\n            proms.push(r.then((r) => handlePropertyResult(r, payload, key, input)));\n        }\n        else {\n            handlePropertyResult(r, payload, key, input);\n        }\n    }\n    if (unrecognized.length) {\n        payload.issues.push({\n            code: \"unrecognized_keys\",\n            keys: unrecognized,\n            input,\n            inst,\n        });\n    }\n    if (!proms.length)\n        return payload;\n    return Promise.all(proms).then(() => {\n        return payload;\n    });\n}\nexport const $ZodObject = /*@__PURE__*/ core.$constructor(\"$ZodObject\", (inst, def) => {\n    // requires cast because technically $ZodObject doesn't extend\n    $ZodType.init(inst, def);\n    // const sh = def.shape;\n    const desc = Object.getOwnPropertyDescriptor(def, \"shape\");\n    if (!desc?.get) {\n        const sh = def.shape;\n        Object.defineProperty(def, \"shape\", {\n            get: () => {\n                const newSh = { ...sh };\n                Object.defineProperty(def, \"shape\", {\n                    value: newSh,\n                });\n                return newSh;\n            },\n        });\n    }\n    const _normalized = util.cached(() => normalizeDef(def));\n    util.defineLazy(inst._zod, \"propValues\", () => {\n        const shape = def.shape;\n        const propValues = {};\n        for (const key in shape) {\n            const field = shape[key]._zod;\n            if (field.values) {\n                propValues[key] ?? (propValues[key] = new Set());\n                for (const v of field.values)\n                    propValues[key].add(v);\n            }\n        }\n        return propValues;\n    });\n    const isObject = util.isObject;\n    const catchall = def.catchall;\n    let value;\n    inst._zod.parse = (payload, ctx) => {\n        value ?? (value = _normalized.value);\n        const input = payload.value;\n        if (!isObject(input)) {\n            payload.issues.push({\n                expected: \"object\",\n                code: \"invalid_type\",\n                input,\n                inst,\n            });\n            return payload;\n        }\n        payload.value = {};\n        const proms = [];\n        const shape = value.shape;\n        for (const key of value.keys) {\n            const el = shape[key];\n            const r = el._zod.run({ value: input[key], issues: [] }, ctx);\n            if (r instanceof Promise) {\n                proms.push(r.then((r) => handlePropertyResult(r, payload, key, input)));\n            }\n            else {\n                handlePropertyResult(r, payload, key, input);\n            }\n        }\n        if (!catchall) {\n            return proms.length ? Promise.all(proms).then(() => payload) : payload;\n        }\n        return handleCatchall(proms, input, payload, ctx, _normalized.value, inst);\n    };\n});\nexport const $ZodObjectJIT = /*@__PURE__*/ core.$constructor(\"$ZodObjectJIT\", (inst, def) => {\n    // requires cast because technically $ZodObject doesn't extend\n    $ZodObject.init(inst, def);\n    const superParse = inst._zod.parse;\n    const _normalized = util.cached(() => normalizeDef(def));\n    const generateFastpass = (shape) => {\n        const doc = new Doc([\"shape\", \"payload\", \"ctx\"]);\n        const normalized = _normalized.value;\n        const parseStr = (key) => {\n            const k = util.esc(key);\n            return `shape[${k}]._zod.run({ value: input[${k}], issues: [] }, ctx)`;\n        };\n        doc.write(`const input = payload.value;`);\n        const ids = Object.create(null);\n        let counter = 0;\n        for (const key of normalized.keys) {\n            ids[key] = `key_${counter++}`;\n        }\n        // A: preserve key order {\n        doc.write(`const newResult = {};`);\n        for (const key of normalized.keys) {\n            const id = ids[key];\n            const k = util.esc(key);\n            doc.write(`const ${id} = ${parseStr(key)};`);\n            doc.write(`\n        if (${id}.issues.length) {\n          payload.issues = payload.issues.concat(${id}.issues.map(iss => ({\n            ...iss,\n            path: iss.path ? [${k}, ...iss.path] : [${k}]\n          })));\n        }\n        \n        \n        if (${id}.value === undefined) {\n          if (${k} in input) {\n            newResult[${k}] = undefined;\n          }\n        } else {\n          newResult[${k}] = ${id}.value;\n        }\n        \n      `);\n        }\n        doc.write(`payload.value = newResult;`);\n        doc.write(`return payload;`);\n        const fn = doc.compile();\n        return (payload, ctx) => fn(shape, payload, ctx);\n    };\n    let fastpass;\n    const isObject = util.isObject;\n    const jit = !core.globalConfig.jitless;\n    const allowsEval = util.allowsEval;\n    const fastEnabled = jit && allowsEval.value; // && !def.catchall;\n    const catchall = def.catchall;\n    let value;\n    inst._zod.parse = (payload, ctx) => {\n        value ?? (value = _normalized.value);\n        const input = payload.value;\n        if (!isObject(input)) {\n            payload.issues.push({\n                expected: \"object\",\n                code: \"invalid_type\",\n                input,\n                inst,\n            });\n            return payload;\n        }\n        if (jit && fastEnabled && ctx?.async === false && ctx.jitless !== true) {\n            // always synchronous\n            if (!fastpass)\n                fastpass = generateFastpass(def.shape);\n            payload = fastpass(payload, ctx);\n            if (!catchall)\n                return payload;\n            return handleCatchall([], input, payload, ctx, value, inst);\n        }\n        return superParse(payload, ctx);\n    };\n});\nfunction handleUnionResults(results, final, inst, ctx) {\n    for (const result of results) {\n        if (result.issues.length === 0) {\n            final.value = result.value;\n            return final;\n        }\n    }\n    const nonaborted = results.filter((r) => !util.aborted(r));\n    if (nonaborted.length === 1) {\n        final.value = nonaborted[0].value;\n        return nonaborted[0];\n    }\n    final.issues.push({\n        code: \"invalid_union\",\n        input: final.value,\n        inst,\n        errors: results.map((result) => result.issues.map((iss) => util.finalizeIssue(iss, ctx, core.config()))),\n    });\n    return final;\n}\nexport const $ZodUnion = /*@__PURE__*/ core.$constructor(\"$ZodUnion\", (inst, def) => {\n    $ZodType.init(inst, def);\n    util.defineLazy(inst._zod, \"optin\", () => def.options.some((o) => o._zod.optin === \"optional\") ? \"optional\" : undefined);\n    util.defineLazy(inst._zod, \"optout\", () => def.options.some((o) => o._zod.optout === \"optional\") ? \"optional\" : undefined);\n    util.defineLazy(inst._zod, \"values\", () => {\n        if (def.options.every((o) => o._zod.values)) {\n            return new Set(def.options.flatMap((option) => Array.from(option._zod.values)));\n        }\n        return undefined;\n    });\n    util.defineLazy(inst._zod, \"pattern\", () => {\n        if (def.options.every((o) => o._zod.pattern)) {\n            const patterns = def.options.map((o) => o._zod.pattern);\n            return new RegExp(`^(${patterns.map((p) => util.cleanRegex(p.source)).join(\"|\")})$`);\n        }\n        return undefined;\n    });\n    const single = def.options.length === 1;\n    const first = def.options[0]._zod.run;\n    inst._zod.parse = (payload, ctx) => {\n        if (single) {\n            return first(payload, ctx);\n        }\n        let async = false;\n        const results = [];\n        for (const option of def.options) {\n            const result = option._zod.run({\n                value: payload.value,\n                issues: [],\n            }, ctx);\n            if (result instanceof Promise) {\n                results.push(result);\n                async = true;\n            }\n            else {\n                if (result.issues.length === 0)\n                    return result;\n                results.push(result);\n            }\n        }\n        if (!async)\n            return handleUnionResults(results, payload, inst, ctx);\n        return Promise.all(results).then((results) => {\n            return handleUnionResults(results, payload, inst, ctx);\n        });\n    };\n});\nexport const $ZodDiscriminatedUnion = \n/*@__PURE__*/\ncore.$constructor(\"$ZodDiscriminatedUnion\", (inst, def) => {\n    $ZodUnion.init(inst, def);\n    const _super = inst._zod.parse;\n    util.defineLazy(inst._zod, \"propValues\", () => {\n        const propValues = {};\n        for (const option of def.options) {\n            const pv = option._zod.propValues;\n            if (!pv || Object.keys(pv).length === 0)\n                throw new Error(`Invalid discriminated union option at index \"${def.options.indexOf(option)}\"`);\n            for (const [k, v] of Object.entries(pv)) {\n                if (!propValues[k])\n                    propValues[k] = new Set();\n                for (const val of v) {\n                    propValues[k].add(val);\n                }\n            }\n        }\n        return propValues;\n    });\n    const disc = util.cached(() => {\n        const opts = def.options;\n        const map = new Map();\n        for (const o of opts) {\n            const values = o._zod.propValues?.[def.discriminator];\n            if (!values || values.size === 0)\n                throw new Error(`Invalid discriminated union option at index \"${def.options.indexOf(o)}\"`);\n            for (const v of values) {\n                if (map.has(v)) {\n                    throw new Error(`Duplicate discriminator value \"${String(v)}\"`);\n                }\n                map.set(v, o);\n            }\n        }\n        return map;\n    });\n    inst._zod.parse = (payload, ctx) => {\n        const input = payload.value;\n        if (!util.isObject(input)) {\n            payload.issues.push({\n                code: \"invalid_type\",\n                expected: \"object\",\n                input,\n                inst,\n            });\n            return payload;\n        }\n        const opt = disc.value.get(input?.[def.discriminator]);\n        if (opt) {\n            return opt._zod.run(payload, ctx);\n        }\n        if (def.unionFallback) {\n            return _super(payload, ctx);\n        }\n        // no matching discriminator\n        payload.issues.push({\n            code: \"invalid_union\",\n            errors: [],\n            note: \"No matching discriminator\",\n            discriminator: def.discriminator,\n            input,\n            path: [def.discriminator],\n            inst,\n        });\n        return payload;\n    };\n});\nexport const $ZodIntersection = /*@__PURE__*/ core.$constructor(\"$ZodIntersection\", (inst, def) => {\n    $ZodType.init(inst, def);\n    inst._zod.parse = (payload, ctx) => {\n        const input = payload.value;\n        const left = def.left._zod.run({ value: input, issues: [] }, ctx);\n        const right = def.right._zod.run({ value: input, issues: [] }, ctx);\n        const async = left instanceof Promise || right instanceof Promise;\n        if (async) {\n            return Promise.all([left, right]).then(([left, right]) => {\n                return handleIntersectionResults(payload, left, right);\n            });\n        }\n        return handleIntersectionResults(payload, left, right);\n    };\n});\nfunction mergeValues(a, b) {\n    // const aType = parse.t(a);\n    // const bType = parse.t(b);\n    if (a === b) {\n        return { valid: true, data: a };\n    }\n    if (a instanceof Date && b instanceof Date && +a === +b) {\n        return { valid: true, data: a };\n    }\n    if (util.isPlainObject(a) && util.isPlainObject(b)) {\n        const bKeys = Object.keys(b);\n        const sharedKeys = Object.keys(a).filter((key) => bKeys.indexOf(key) !== -1);\n        const newObj = { ...a, ...b };\n        for (const key of sharedKeys) {\n            const sharedValue = mergeValues(a[key], b[key]);\n            if (!sharedValue.valid) {\n                return {\n                    valid: false,\n                    mergeErrorPath: [key, ...sharedValue.mergeErrorPath],\n                };\n            }\n            newObj[key] = sharedValue.data;\n        }\n        return { valid: true, data: newObj };\n    }\n    if (Array.isArray(a) && Array.isArray(b)) {\n        if (a.length !== b.length) {\n            return { valid: false, mergeErrorPath: [] };\n        }\n        const newArray = [];\n        for (let index = 0; index < a.length; index++) {\n            const itemA = a[index];\n            const itemB = b[index];\n            const sharedValue = mergeValues(itemA, itemB);\n            if (!sharedValue.valid) {\n                return {\n                    valid: false,\n                    mergeErrorPath: [index, ...sharedValue.mergeErrorPath],\n                };\n            }\n            newArray.push(sharedValue.data);\n        }\n        return { valid: true, data: newArray };\n    }\n    return { valid: false, mergeErrorPath: [] };\n}\nfunction handleIntersectionResults(result, left, right) {\n    if (left.issues.length) {\n        result.issues.push(...left.issues);\n    }\n    if (right.issues.length) {\n        result.issues.push(...right.issues);\n    }\n    if (util.aborted(result))\n        return result;\n    const merged = mergeValues(left.value, right.value);\n    if (!merged.valid) {\n        throw new Error(`Unmergable intersection. Error path: ` + `${JSON.stringify(merged.mergeErrorPath)}`);\n    }\n    result.value = merged.data;\n    return result;\n}\nexport const $ZodTuple = /*@__PURE__*/ core.$constructor(\"$ZodTuple\", (inst, def) => {\n    $ZodType.init(inst, def);\n    const items = def.items;\n    const optStart = items.length - [...items].reverse().findIndex((item) => item._zod.optin !== \"optional\");\n    inst._zod.parse = (payload, ctx) => {\n        const input = payload.value;\n        if (!Array.isArray(input)) {\n            payload.issues.push({\n                input,\n                inst,\n                expected: \"tuple\",\n                code: \"invalid_type\",\n            });\n            return payload;\n        }\n        payload.value = [];\n        const proms = [];\n        if (!def.rest) {\n            const tooBig = input.length > items.length;\n            const tooSmall = input.length < optStart - 1;\n            if (tooBig || tooSmall) {\n                payload.issues.push({\n                    ...(tooBig ? { code: \"too_big\", maximum: items.length } : { code: \"too_small\", minimum: items.length }),\n                    input,\n                    inst,\n                    origin: \"array\",\n                });\n                return payload;\n            }\n        }\n        let i = -1;\n        for (const item of items) {\n            i++;\n            if (i >= input.length)\n                if (i >= optStart)\n                    continue;\n            const result = item._zod.run({\n                value: input[i],\n                issues: [],\n            }, ctx);\n            if (result instanceof Promise) {\n                proms.push(result.then((result) => handleTupleResult(result, payload, i)));\n            }\n            else {\n                handleTupleResult(result, payload, i);\n            }\n        }\n        if (def.rest) {\n            const rest = input.slice(items.length);\n            for (const el of rest) {\n                i++;\n                const result = def.rest._zod.run({\n                    value: el,\n                    issues: [],\n                }, ctx);\n                if (result instanceof Promise) {\n                    proms.push(result.then((result) => handleTupleResult(result, payload, i)));\n                }\n                else {\n                    handleTupleResult(result, payload, i);\n                }\n            }\n        }\n        if (proms.length)\n            return Promise.all(proms).then(() => payload);\n        return payload;\n    };\n});\nfunction handleTupleResult(result, final, index) {\n    if (result.issues.length) {\n        final.issues.push(...util.prefixIssues(index, result.issues));\n    }\n    final.value[index] = result.value;\n}\nexport const $ZodRecord = /*@__PURE__*/ core.$constructor(\"$ZodRecord\", (inst, def) => {\n    $ZodType.init(inst, def);\n    inst._zod.parse = (payload, ctx) => {\n        const input = payload.value;\n        if (!util.isPlainObject(input)) {\n            payload.issues.push({\n                expected: \"record\",\n                code: \"invalid_type\",\n                input,\n                inst,\n            });\n            return payload;\n        }\n        const proms = [];\n        if (def.keyType._zod.values) {\n            const values = def.keyType._zod.values;\n            payload.value = {};\n            for (const key of values) {\n                if (typeof key === \"string\" || typeof key === \"number\" || typeof key === \"symbol\") {\n                    const result = def.valueType._zod.run({ value: input[key], issues: [] }, ctx);\n                    if (result instanceof Promise) {\n                        proms.push(result.then((result) => {\n                            if (result.issues.length) {\n                                payload.issues.push(...util.prefixIssues(key, result.issues));\n                            }\n                            payload.value[key] = result.value;\n                        }));\n                    }\n                    else {\n                        if (result.issues.length) {\n                            payload.issues.push(...util.prefixIssues(key, result.issues));\n                        }\n                        payload.value[key] = result.value;\n                    }\n                }\n            }\n            let unrecognized;\n            for (const key in input) {\n                if (!values.has(key)) {\n                    unrecognized = unrecognized ?? [];\n                    unrecognized.push(key);\n                }\n            }\n            if (unrecognized && unrecognized.length > 0) {\n                payload.issues.push({\n                    code: \"unrecognized_keys\",\n                    input,\n                    inst,\n                    keys: unrecognized,\n                });\n            }\n        }\n        else {\n            payload.value = {};\n            for (const key of Reflect.ownKeys(input)) {\n                if (key === \"__proto__\")\n                    continue;\n                const keyResult = def.keyType._zod.run({ value: key, issues: [] }, ctx);\n                if (keyResult instanceof Promise) {\n                    throw new Error(\"Async schemas not supported in object keys currently\");\n                }\n                if (keyResult.issues.length) {\n                    payload.issues.push({\n                        code: \"invalid_key\",\n                        origin: \"record\",\n                        issues: keyResult.issues.map((iss) => util.finalizeIssue(iss, ctx, core.config())),\n                        input: key,\n                        path: [key],\n                        inst,\n                    });\n                    payload.value[keyResult.value] = keyResult.value;\n                    continue;\n                }\n                const result = def.valueType._zod.run({ value: input[key], issues: [] }, ctx);\n                if (result instanceof Promise) {\n                    proms.push(result.then((result) => {\n                        if (result.issues.length) {\n                            payload.issues.push(...util.prefixIssues(key, result.issues));\n                        }\n                        payload.value[keyResult.value] = result.value;\n                    }));\n                }\n                else {\n                    if (result.issues.length) {\n                        payload.issues.push(...util.prefixIssues(key, result.issues));\n                    }\n                    payload.value[keyResult.value] = result.value;\n                }\n            }\n        }\n        if (proms.length) {\n            return Promise.all(proms).then(() => payload);\n        }\n        return payload;\n    };\n});\nexport const $ZodMap = /*@__PURE__*/ core.$constructor(\"$ZodMap\", (inst, def) => {\n    $ZodType.init(inst, def);\n    inst._zod.parse = (payload, ctx) => {\n        const input = payload.value;\n        if (!(input instanceof Map)) {\n            payload.issues.push({\n                expected: \"map\",\n                code: \"invalid_type\",\n                input,\n                inst,\n            });\n            return payload;\n        }\n        const proms = [];\n        payload.value = new Map();\n        for (const [key, value] of input) {\n            const keyResult = def.keyType._zod.run({ value: key, issues: [] }, ctx);\n            const valueResult = def.valueType._zod.run({ value: value, issues: [] }, ctx);\n            if (keyResult instanceof Promise || valueResult instanceof Promise) {\n                proms.push(Promise.all([keyResult, valueResult]).then(([keyResult, valueResult]) => {\n                    handleMapResult(keyResult, valueResult, payload, key, input, inst, ctx);\n                }));\n            }\n            else {\n                handleMapResult(keyResult, valueResult, payload, key, input, inst, ctx);\n            }\n        }\n        if (proms.length)\n            return Promise.all(proms).then(() => payload);\n        return payload;\n    };\n});\nfunction handleMapResult(keyResult, valueResult, final, key, input, inst, ctx) {\n    if (keyResult.issues.length) {\n        if (util.propertyKeyTypes.has(typeof key)) {\n            final.issues.push(...util.prefixIssues(key, keyResult.issues));\n        }\n        else {\n            final.issues.push({\n                code: \"invalid_key\",\n                origin: \"map\",\n                input,\n                inst,\n                issues: keyResult.issues.map((iss) => util.finalizeIssue(iss, ctx, core.config())),\n            });\n        }\n    }\n    if (valueResult.issues.length) {\n        if (util.propertyKeyTypes.has(typeof key)) {\n            final.issues.push(...util.prefixIssues(key, valueResult.issues));\n        }\n        else {\n            final.issues.push({\n                origin: \"map\",\n                code: \"invalid_element\",\n                input,\n                inst,\n                key: key,\n                issues: valueResult.issues.map((iss) => util.finalizeIssue(iss, ctx, core.config())),\n            });\n        }\n    }\n    final.value.set(keyResult.value, valueResult.value);\n}\nexport const $ZodSet = /*@__PURE__*/ core.$constructor(\"$ZodSet\", (inst, def) => {\n    $ZodType.init(inst, def);\n    inst._zod.parse = (payload, ctx) => {\n        const input = payload.value;\n        if (!(input instanceof Set)) {\n            payload.issues.push({\n                input,\n                inst,\n                expected: \"set\",\n                code: \"invalid_type\",\n            });\n            return payload;\n        }\n        const proms = [];\n        payload.value = new Set();\n        for (const item of input) {\n            const result = def.valueType._zod.run({ value: item, issues: [] }, ctx);\n            if (result instanceof Promise) {\n                proms.push(result.then((result) => handleSetResult(result, payload)));\n            }\n            else\n                handleSetResult(result, payload);\n        }\n        if (proms.length)\n            return Promise.all(proms).then(() => payload);\n        return payload;\n    };\n});\nfunction handleSetResult(result, final) {\n    if (result.issues.length) {\n        final.issues.push(...result.issues);\n    }\n    final.value.add(result.value);\n}\nexport const $ZodEnum = /*@__PURE__*/ core.$constructor(\"$ZodEnum\", (inst, def) => {\n    $ZodType.init(inst, def);\n    const values = util.getEnumValues(def.entries);\n    const valuesSet = new Set(values);\n    inst._zod.values = valuesSet;\n    inst._zod.pattern = new RegExp(`^(${values\n        .filter((k) => util.propertyKeyTypes.has(typeof k))\n        .map((o) => (typeof o === \"string\" ? util.escapeRegex(o) : o.toString()))\n        .join(\"|\")})$`);\n    inst._zod.parse = (payload, _ctx) => {\n        const input = payload.value;\n        if (valuesSet.has(input)) {\n            return payload;\n        }\n        payload.issues.push({\n            code: \"invalid_value\",\n            values,\n            input,\n            inst,\n        });\n        return payload;\n    };\n});\nexport const $ZodLiteral = /*@__PURE__*/ core.$constructor(\"$ZodLiteral\", (inst, def) => {\n    $ZodType.init(inst, def);\n    if (def.values.length === 0) {\n        throw new Error(\"Cannot create literal schema with no valid values\");\n    }\n    inst._zod.values = new Set(def.values);\n    inst._zod.pattern = new RegExp(`^(${def.values\n        .map((o) => (typeof o === \"string\" ? util.escapeRegex(o) : o ? util.escapeRegex(o.toString()) : String(o)))\n        .join(\"|\")})$`);\n    inst._zod.parse = (payload, _ctx) => {\n        const input = payload.value;\n        if (inst._zod.values.has(input)) {\n            return payload;\n        }\n        payload.issues.push({\n            code: \"invalid_value\",\n            values: def.values,\n            input,\n            inst,\n        });\n        return payload;\n    };\n});\nexport const $ZodFile = /*@__PURE__*/ core.$constructor(\"$ZodFile\", (inst, def) => {\n    $ZodType.init(inst, def);\n    inst._zod.parse = (payload, _ctx) => {\n        const input = payload.value;\n        // @ts-ignore\n        if (input instanceof File)\n            return payload;\n        payload.issues.push({\n            expected: \"file\",\n            code: \"invalid_type\",\n            input,\n            inst,\n        });\n        return payload;\n    };\n});\nexport const $ZodTransform = /*@__PURE__*/ core.$constructor(\"$ZodTransform\", (inst, def) => {\n    $ZodType.init(inst, def);\n    inst._zod.parse = (payload, ctx) => {\n        if (ctx.direction === \"backward\") {\n            throw new core.$ZodEncodeError(inst.constructor.name);\n        }\n        const _out = def.transform(payload.value, payload);\n        if (ctx.async) {\n            const output = _out instanceof Promise ? _out : Promise.resolve(_out);\n            return output.then((output) => {\n                payload.value = output;\n                return payload;\n            });\n        }\n        if (_out instanceof Promise) {\n            throw new core.$ZodAsyncError();\n        }\n        payload.value = _out;\n        return payload;\n    };\n});\nfunction handleOptionalResult(result, input) {\n    if (result.issues.length && input === undefined) {\n        return { issues: [], value: undefined };\n    }\n    return result;\n}\nexport const $ZodOptional = /*@__PURE__*/ core.$constructor(\"$ZodOptional\", (inst, def) => {\n    $ZodType.init(inst, def);\n    inst._zod.optin = \"optional\";\n    inst._zod.optout = \"optional\";\n    util.defineLazy(inst._zod, \"values\", () => {\n        return def.innerType._zod.values ? new Set([...def.innerType._zod.values, undefined]) : undefined;\n    });\n    util.defineLazy(inst._zod, \"pattern\", () => {\n        const pattern = def.innerType._zod.pattern;\n        return pattern ? new RegExp(`^(${util.cleanRegex(pattern.source)})?$`) : undefined;\n    });\n    inst._zod.parse = (payload, ctx) => {\n        if (def.innerType._zod.optin === \"optional\") {\n            const result = def.innerType._zod.run(payload, ctx);\n            if (result instanceof Promise)\n                return result.then((r) => handleOptionalResult(r, payload.value));\n            return handleOptionalResult(result, payload.value);\n        }\n        if (payload.value === undefined) {\n            return payload;\n        }\n        return def.innerType._zod.run(payload, ctx);\n    };\n});\nexport const $ZodNullable = /*@__PURE__*/ core.$constructor(\"$ZodNullable\", (inst, def) => {\n    $ZodType.init(inst, def);\n    util.defineLazy(inst._zod, \"optin\", () => def.innerType._zod.optin);\n    util.defineLazy(inst._zod, \"optout\", () => def.innerType._zod.optout);\n    util.defineLazy(inst._zod, \"pattern\", () => {\n        const pattern = def.innerType._zod.pattern;\n        return pattern ? new RegExp(`^(${util.cleanRegex(pattern.source)}|null)$`) : undefined;\n    });\n    util.defineLazy(inst._zod, \"values\", () => {\n        return def.innerType._zod.values ? new Set([...def.innerType._zod.values, null]) : undefined;\n    });\n    inst._zod.parse = (payload, ctx) => {\n        // Forward direction (decode): allow null to pass through\n        if (payload.value === null)\n            return payload;\n        return def.innerType._zod.run(payload, ctx);\n    };\n});\nexport const $ZodDefault = /*@__PURE__*/ core.$constructor(\"$ZodDefault\", (inst, def) => {\n    $ZodType.init(inst, def);\n    // inst._zod.qin = \"true\";\n    inst._zod.optin = \"optional\";\n    util.defineLazy(inst._zod, \"values\", () => def.innerType._zod.values);\n    inst._zod.parse = (payload, ctx) => {\n        if (ctx.direction === \"backward\") {\n            return def.innerType._zod.run(payload, ctx);\n        }\n        // Forward direction (decode): apply defaults for undefined input\n        if (payload.value === undefined) {\n            payload.value = def.defaultValue;\n            /**\n             * $ZodDefault returns the default value immediately in forward direction.\n             * It doesn't pass the default value into the validator (\"prefault\"). There's no reason to pass the default value through validation. The validity of the default is enforced by TypeScript statically. Otherwise, it's the responsibility of the user to ensure the default is valid. In the case of pipes with divergent in/out types, you can specify the default on the `in` schema of your ZodPipe to set a \"prefault\" for the pipe.   */\n            return payload;\n        }\n        // Forward direction: continue with default handling\n        const result = def.innerType._zod.run(payload, ctx);\n        if (result instanceof Promise) {\n            return result.then((result) => handleDefaultResult(result, def));\n        }\n        return handleDefaultResult(result, def);\n    };\n});\nfunction handleDefaultResult(payload, def) {\n    if (payload.value === undefined) {\n        payload.value = def.defaultValue;\n    }\n    return payload;\n}\nexport const $ZodPrefault = /*@__PURE__*/ core.$constructor(\"$ZodPrefault\", (inst, def) => {\n    $ZodType.init(inst, def);\n    inst._zod.optin = \"optional\";\n    util.defineLazy(inst._zod, \"values\", () => def.innerType._zod.values);\n    inst._zod.parse = (payload, ctx) => {\n        if (ctx.direction === \"backward\") {\n            return def.innerType._zod.run(payload, ctx);\n        }\n        // Forward direction (decode): apply prefault for undefined input\n        if (payload.value === undefined) {\n            payload.value = def.defaultValue;\n        }\n        return def.innerType._zod.run(payload, ctx);\n    };\n});\nexport const $ZodNonOptional = /*@__PURE__*/ core.$constructor(\"$ZodNonOptional\", (inst, def) => {\n    $ZodType.init(inst, def);\n    util.defineLazy(inst._zod, \"values\", () => {\n        const v = def.innerType._zod.values;\n        return v ? new Set([...v].filter((x) => x !== undefined)) : undefined;\n    });\n    inst._zod.parse = (payload, ctx) => {\n        const result = def.innerType._zod.run(payload, ctx);\n        if (result instanceof Promise) {\n            return result.then((result) => handleNonOptionalResult(result, inst));\n        }\n        return handleNonOptionalResult(result, inst);\n    };\n});\nfunction handleNonOptionalResult(payload, inst) {\n    if (!payload.issues.length && payload.value === undefined) {\n        payload.issues.push({\n            code: \"invalid_type\",\n            expected: \"nonoptional\",\n            input: payload.value,\n            inst,\n        });\n    }\n    return payload;\n}\nexport const $ZodSuccess = /*@__PURE__*/ core.$constructor(\"$ZodSuccess\", (inst, def) => {\n    $ZodType.init(inst, def);\n    inst._zod.parse = (payload, ctx) => {\n        if (ctx.direction === \"backward\") {\n            throw new core.$ZodEncodeError(\"ZodSuccess\");\n        }\n        const result = def.innerType._zod.run(payload, ctx);\n        if (result instanceof Promise) {\n            return result.then((result) => {\n                payload.value = result.issues.length === 0;\n                return payload;\n            });\n        }\n        payload.value = result.issues.length === 0;\n        return payload;\n    };\n});\nexport const $ZodCatch = /*@__PURE__*/ core.$constructor(\"$ZodCatch\", (inst, def) => {\n    $ZodType.init(inst, def);\n    util.defineLazy(inst._zod, \"optin\", () => def.innerType._zod.optin);\n    util.defineLazy(inst._zod, \"optout\", () => def.innerType._zod.optout);\n    util.defineLazy(inst._zod, \"values\", () => def.innerType._zod.values);\n    inst._zod.parse = (payload, ctx) => {\n        if (ctx.direction === \"backward\") {\n            return def.innerType._zod.run(payload, ctx);\n        }\n        // Forward direction (decode): apply catch logic\n        const result = def.innerType._zod.run(payload, ctx);\n        if (result instanceof Promise) {\n            return result.then((result) => {\n                payload.value = result.value;\n                if (result.issues.length) {\n                    payload.value = def.catchValue({\n                        ...payload,\n                        error: {\n                            issues: result.issues.map((iss) => util.finalizeIssue(iss, ctx, core.config())),\n                        },\n                        input: payload.value,\n                    });\n                    payload.issues = [];\n                }\n                return payload;\n            });\n        }\n        payload.value = result.value;\n        if (result.issues.length) {\n            payload.value = def.catchValue({\n                ...payload,\n                error: {\n                    issues: result.issues.map((iss) => util.finalizeIssue(iss, ctx, core.config())),\n                },\n                input: payload.value,\n            });\n            payload.issues = [];\n        }\n        return payload;\n    };\n});\nexport const $ZodNaN = /*@__PURE__*/ core.$constructor(\"$ZodNaN\", (inst, def) => {\n    $ZodType.init(inst, def);\n    inst._zod.parse = (payload, _ctx) => {\n        if (typeof payload.value !== \"number\" || !Number.isNaN(payload.value)) {\n            payload.issues.push({\n                input: payload.value,\n                inst,\n                expected: \"nan\",\n                code: \"invalid_type\",\n            });\n            return payload;\n        }\n        return payload;\n    };\n});\nexport const $ZodPipe = /*@__PURE__*/ core.$constructor(\"$ZodPipe\", (inst, def) => {\n    $ZodType.init(inst, def);\n    util.defineLazy(inst._zod, \"values\", () => def.in._zod.values);\n    util.defineLazy(inst._zod, \"optin\", () => def.in._zod.optin);\n    util.defineLazy(inst._zod, \"optout\", () => def.out._zod.optout);\n    util.defineLazy(inst._zod, \"propValues\", () => def.in._zod.propValues);\n    inst._zod.parse = (payload, ctx) => {\n        if (ctx.direction === \"backward\") {\n            const right = def.out._zod.run(payload, ctx);\n            if (right instanceof Promise) {\n                return right.then((right) => handlePipeResult(right, def.in, ctx));\n            }\n            return handlePipeResult(right, def.in, ctx);\n        }\n        const left = def.in._zod.run(payload, ctx);\n        if (left instanceof Promise) {\n            return left.then((left) => handlePipeResult(left, def.out, ctx));\n        }\n        return handlePipeResult(left, def.out, ctx);\n    };\n});\nfunction handlePipeResult(left, next, ctx) {\n    if (left.issues.length) {\n        // prevent further checks\n        left.aborted = true;\n        return left;\n    }\n    return next._zod.run({ value: left.value, issues: left.issues }, ctx);\n}\nexport const $ZodCodec = /*@__PURE__*/ core.$constructor(\"$ZodCodec\", (inst, def) => {\n    $ZodType.init(inst, def);\n    util.defineLazy(inst._zod, \"values\", () => def.in._zod.values);\n    util.defineLazy(inst._zod, \"optin\", () => def.in._zod.optin);\n    util.defineLazy(inst._zod, \"optout\", () => def.out._zod.optout);\n    util.defineLazy(inst._zod, \"propValues\", () => def.in._zod.propValues);\n    inst._zod.parse = (payload, ctx) => {\n        const direction = ctx.direction || \"forward\";\n        if (direction === \"forward\") {\n            const left = def.in._zod.run(payload, ctx);\n            if (left instanceof Promise) {\n                return left.then((left) => handleCodecAResult(left, def, ctx));\n            }\n            return handleCodecAResult(left, def, ctx);\n        }\n        else {\n            const right = def.out._zod.run(payload, ctx);\n            if (right instanceof Promise) {\n                return right.then((right) => handleCodecAResult(right, def, ctx));\n            }\n            return handleCodecAResult(right, def, ctx);\n        }\n    };\n});\nfunction handleCodecAResult(result, def, ctx) {\n    if (result.issues.length) {\n        // prevent further checks\n        result.aborted = true;\n        return result;\n    }\n    const direction = ctx.direction || \"forward\";\n    if (direction === \"forward\") {\n        const transformed = def.transform(result.value, result);\n        if (transformed instanceof Promise) {\n            return transformed.then((value) => handleCodecTxResult(result, value, def.out, ctx));\n        }\n        return handleCodecTxResult(result, transformed, def.out, ctx);\n    }\n    else {\n        const transformed = def.reverseTransform(result.value, result);\n        if (transformed instanceof Promise) {\n            return transformed.then((value) => handleCodecTxResult(result, value, def.in, ctx));\n        }\n        return handleCodecTxResult(result, transformed, def.in, ctx);\n    }\n}\nfunction handleCodecTxResult(left, value, nextSchema, ctx) {\n    // Check if transform added any issues\n    if (left.issues.length) {\n        left.aborted = true;\n        return left;\n    }\n    return nextSchema._zod.run({ value, issues: left.issues }, ctx);\n}\nexport const $ZodReadonly = /*@__PURE__*/ core.$constructor(\"$ZodReadonly\", (inst, def) => {\n    $ZodType.init(inst, def);\n    util.defineLazy(inst._zod, \"propValues\", () => def.innerType._zod.propValues);\n    util.defineLazy(inst._zod, \"values\", () => def.innerType._zod.values);\n    util.defineLazy(inst._zod, \"optin\", () => def.innerType._zod.optin);\n    util.defineLazy(inst._zod, \"optout\", () => def.innerType._zod.optout);\n    inst._zod.parse = (payload, ctx) => {\n        if (ctx.direction === \"backward\") {\n            return def.innerType._zod.run(payload, ctx);\n        }\n        const result = def.innerType._zod.run(payload, ctx);\n        if (result instanceof Promise) {\n            return result.then(handleReadonlyResult);\n        }\n        return handleReadonlyResult(result);\n    };\n});\nfunction handleReadonlyResult(payload) {\n    payload.value = Object.freeze(payload.value);\n    return payload;\n}\nexport const $ZodTemplateLiteral = /*@__PURE__*/ core.$constructor(\"$ZodTemplateLiteral\", (inst, def) => {\n    $ZodType.init(inst, def);\n    const regexParts = [];\n    for (const part of def.parts) {\n        if (typeof part === \"object\" && part !== null) {\n            // is Zod schema\n            if (!part._zod.pattern) {\n                // if (!source)\n                throw new Error(`Invalid template literal part, no pattern found: ${[...part._zod.traits].shift()}`);\n            }\n            const source = part._zod.pattern instanceof RegExp ? part._zod.pattern.source : part._zod.pattern;\n            if (!source)\n                throw new Error(`Invalid template literal part: ${part._zod.traits}`);\n            const start = source.startsWith(\"^\") ? 1 : 0;\n            const end = source.endsWith(\"$\") ? source.length - 1 : source.length;\n            regexParts.push(source.slice(start, end));\n        }\n        else if (part === null || util.primitiveTypes.has(typeof part)) {\n            regexParts.push(util.escapeRegex(`${part}`));\n        }\n        else {\n            throw new Error(`Invalid template literal part: ${part}`);\n        }\n    }\n    inst._zod.pattern = new RegExp(`^${regexParts.join(\"\")}$`);\n    inst._zod.parse = (payload, _ctx) => {\n        if (typeof payload.value !== \"string\") {\n            payload.issues.push({\n                input: payload.value,\n                inst,\n                expected: \"template_literal\",\n                code: \"invalid_type\",\n            });\n            return payload;\n        }\n        inst._zod.pattern.lastIndex = 0;\n        if (!inst._zod.pattern.test(payload.value)) {\n            payload.issues.push({\n                input: payload.value,\n                inst,\n                code: \"invalid_format\",\n                format: def.format ?? \"template_literal\",\n                pattern: inst._zod.pattern.source,\n            });\n            return payload;\n        }\n        return payload;\n    };\n});\nexport const $ZodFunction = /*@__PURE__*/ core.$constructor(\"$ZodFunction\", (inst, def) => {\n    $ZodType.init(inst, def);\n    inst._def = def;\n    inst._zod.def = def;\n    inst.implement = (func) => {\n        if (typeof func !== \"function\") {\n            throw new Error(\"implement() must be called with a function\");\n        }\n        return function (...args) {\n            const parsedArgs = inst._def.input ? parse(inst._def.input, args) : args;\n            const result = Reflect.apply(func, this, parsedArgs);\n            if (inst._def.output) {\n                return parse(inst._def.output, result);\n            }\n            return result;\n        };\n    };\n    inst.implementAsync = (func) => {\n        if (typeof func !== \"function\") {\n            throw new Error(\"implementAsync() must be called with a function\");\n        }\n        return async function (...args) {\n            const parsedArgs = inst._def.input ? await parseAsync(inst._def.input, args) : args;\n            const result = await Reflect.apply(func, this, parsedArgs);\n            if (inst._def.output) {\n                return await parseAsync(inst._def.output, result);\n            }\n            return result;\n        };\n    };\n    inst._zod.parse = (payload, _ctx) => {\n        if (typeof payload.value !== \"function\") {\n            payload.issues.push({\n                code: \"invalid_type\",\n                expected: \"function\",\n                input: payload.value,\n                inst,\n            });\n            return payload;\n        }\n        // Check if output is a promise type to determine if we should use async implementation\n        const hasPromiseOutput = inst._def.output && inst._def.output._zod.def.type === \"promise\";\n        if (hasPromiseOutput) {\n            payload.value = inst.implementAsync(payload.value);\n        }\n        else {\n            payload.value = inst.implement(payload.value);\n        }\n        return payload;\n    };\n    inst.input = (...args) => {\n        const F = inst.constructor;\n        if (Array.isArray(args[0])) {\n            return new F({\n                type: \"function\",\n                input: new $ZodTuple({\n                    type: \"tuple\",\n                    items: args[0],\n                    rest: args[1],\n                }),\n                output: inst._def.output,\n            });\n        }\n        return new F({\n            type: \"function\",\n            input: args[0],\n            output: inst._def.output,\n        });\n    };\n    inst.output = (output) => {\n        const F = inst.constructor;\n        return new F({\n            type: \"function\",\n            input: inst._def.input,\n            output,\n        });\n    };\n    return inst;\n});\nexport const $ZodPromise = /*@__PURE__*/ core.$constructor(\"$ZodPromise\", (inst, def) => {\n    $ZodType.init(inst, def);\n    inst._zod.parse = (payload, ctx) => {\n        return Promise.resolve(payload.value).then((inner) => def.innerType._zod.run({ value: inner, issues: [] }, ctx));\n    };\n});\nexport const $ZodLazy = /*@__PURE__*/ core.$constructor(\"$ZodLazy\", (inst, def) => {\n    $ZodType.init(inst, def);\n    // let _innerType!: any;\n    // util.defineLazy(def, \"getter\", () => {\n    //   if (!_innerType) {\n    //     _innerType = def.getter();\n    //   }\n    //   return () => _innerType;\n    // });\n    util.defineLazy(inst._zod, \"innerType\", () => def.getter());\n    util.defineLazy(inst._zod, \"pattern\", () => inst._zod.innerType._zod.pattern);\n    util.defineLazy(inst._zod, \"propValues\", () => inst._zod.innerType._zod.propValues);\n    util.defineLazy(inst._zod, \"optin\", () => inst._zod.innerType._zod.optin ?? undefined);\n    util.defineLazy(inst._zod, \"optout\", () => inst._zod.innerType._zod.optout ?? undefined);\n    inst._zod.parse = (payload, ctx) => {\n        const inner = inst._zod.innerType;\n        return inner._zod.run(payload, ctx);\n    };\n});\nexport const $ZodCustom = /*@__PURE__*/ core.$constructor(\"$ZodCustom\", (inst, def) => {\n    checks.$ZodCheck.init(inst, def);\n    $ZodType.init(inst, def);\n    inst._zod.parse = (payload, _) => {\n        return payload;\n    };\n    inst._zod.check = (payload) => {\n        const input = payload.value;\n        const r = def.fn(input);\n        if (r instanceof Promise) {\n            return r.then((r) => handleRefineResult(r, payload, input, inst));\n        }\n        handleRefineResult(r, payload, input, inst);\n        return;\n    };\n});\nfunction handleRefineResult(result, payload, input, inst) {\n    if (!result) {\n        const _iss = {\n            code: \"custom\",\n            input,\n            inst, // incorporates params.error into issue reporting\n            path: [...(inst._zod.def.path ?? [])], // incorporates params.error into issue reporting\n            continue: !inst._zod.def.abort,\n            // params: inst._zod.def.params,\n        };\n        if (inst._zod.def.params)\n            _iss.params = inst._zod.def.params;\n        payload.issues.push(util.issue(_iss));\n    }\n}\n", "export const $output = Symbol(\"ZodOutput\");\nexport const $input = Symbol(\"ZodInput\");\nexport class $ZodRegistry {\n    constructor() {\n        this._map = new WeakMap();\n        this._idmap = new Map();\n    }\n    add(schema, ..._meta) {\n        const meta = _meta[0];\n        this._map.set(schema, meta);\n        if (meta && typeof meta === \"object\" && \"id\" in meta) {\n            if (this._idmap.has(meta.id)) {\n                throw new Error(`ID ${meta.id} already exists in the registry`);\n            }\n            this._idmap.set(meta.id, schema);\n        }\n        return this;\n    }\n    clear() {\n        this._map = new WeakMap();\n        this._idmap = new Map();\n        return this;\n    }\n    remove(schema) {\n        const meta = this._map.get(schema);\n        if (meta && typeof meta === \"object\" && \"id\" in meta) {\n            this._idmap.delete(meta.id);\n        }\n        this._map.delete(schema);\n        return this;\n    }\n    get(schema) {\n        // return this._map.get(schema) as any;\n        // inherit metadata\n        const p = schema._zod.parent;\n        if (p) {\n            const pm = { ...(this.get(p) ?? {}) };\n            delete pm.id; // do not inherit id\n            const f = { ...pm, ...this._map.get(schema) };\n            return Object.keys(f).length ? f : undefined;\n        }\n        return this._map.get(schema);\n    }\n    has(schema) {\n        return this._map.has(schema);\n    }\n}\n// registries\nexport function registry() {\n    return new $ZodRegistry();\n}\nexport const globalRegistry = /*@__PURE__*/ registry();\n", "import * as checks from \"./checks.js\";\nimport * as schemas from \"./schemas.js\";\nimport * as util from \"./util.js\";\nexport function _string(Class, params) {\n    return new Class({\n        type: \"string\",\n        ...util.normalizeParams(params),\n    });\n}\nexport function _coercedString(Class, params) {\n    return new Class({\n        type: \"string\",\n        coerce: true,\n        ...util.normalizeParams(params),\n    });\n}\nexport function _email(Class, params) {\n    return new Class({\n        type: \"string\",\n        format: \"email\",\n        check: \"string_format\",\n        abort: false,\n        ...util.normalizeParams(params),\n    });\n}\nexport function _guid(Class, params) {\n    return new Class({\n        type: \"string\",\n        format: \"guid\",\n        check: \"string_format\",\n        abort: false,\n        ...util.normalizeParams(params),\n    });\n}\nexport function _uuid(Class, params) {\n    return new Class({\n        type: \"string\",\n        format: \"uuid\",\n        check: \"string_format\",\n        abort: false,\n        ...util.normalizeParams(params),\n    });\n}\nexport function _uuidv4(Class, params) {\n    return new Class({\n        type: \"string\",\n        format: \"uuid\",\n        check: \"string_format\",\n        abort: false,\n        version: \"v4\",\n        ...util.normalizeParams(params),\n    });\n}\nexport function _uuidv6(Class, params) {\n    return new Class({\n        type: \"string\",\n        format: \"uuid\",\n        check: \"string_format\",\n        abort: false,\n        version: \"v6\",\n        ...util.normalizeParams(params),\n    });\n}\nexport function _uuidv7(Class, params) {\n    return new Class({\n        type: \"string\",\n        format: \"uuid\",\n        check: \"string_format\",\n        abort: false,\n        version: \"v7\",\n        ...util.normalizeParams(params),\n    });\n}\nexport function _url(Class, params) {\n    return new Class({\n        type: \"string\",\n        format: \"url\",\n        check: \"string_format\",\n        abort: false,\n        ...util.normalizeParams(params),\n    });\n}\nexport function _emoji(Class, params) {\n    return new Class({\n        type: \"string\",\n        format: \"emoji\",\n        check: \"string_format\",\n        abort: false,\n        ...util.normalizeParams(params),\n    });\n}\nexport function _nanoid(Class, params) {\n    return new Class({\n        type: \"string\",\n        format: \"nanoid\",\n        check: \"string_format\",\n        abort: false,\n        ...util.normalizeParams(params),\n    });\n}\nexport function _cuid(Class, params) {\n    return new Class({\n        type: \"string\",\n        format: \"cuid\",\n        check: \"string_format\",\n        abort: false,\n        ...util.normalizeParams(params),\n    });\n}\nexport function _cuid2(Class, params) {\n    return new Class({\n        type: \"string\",\n        format: \"cuid2\",\n        check: \"string_format\",\n        abort: false,\n        ...util.normalizeParams(params),\n    });\n}\nexport function _ulid(Class, params) {\n    return new Class({\n        type: \"string\",\n        format: \"ulid\",\n        check: \"string_format\",\n        abort: false,\n        ...util.normalizeParams(params),\n    });\n}\nexport function _xid(Class, params) {\n    return new Class({\n        type: \"string\",\n        format: \"xid\",\n        check: \"string_format\",\n        abort: false,\n        ...util.normalizeParams(params),\n    });\n}\nexport function _ksuid(Class, params) {\n    return new Class({\n        type: \"string\",\n        format: \"ksuid\",\n        check: \"string_format\",\n        abort: false,\n        ...util.normalizeParams(params),\n    });\n}\nexport function _ipv4(Class, params) {\n    return new Class({\n        type: \"string\",\n        format: \"ipv4\",\n        check: \"string_format\",\n        abort: false,\n        ...util.normalizeParams(params),\n    });\n}\nexport function _ipv6(Class, params) {\n    return new Class({\n        type: \"string\",\n        format: \"ipv6\",\n        check: \"string_format\",\n        abort: false,\n        ...util.normalizeParams(params),\n    });\n}\nexport function _cidrv4(Class, params) {\n    return new Class({\n        type: \"string\",\n        format: \"cidrv4\",\n        check: \"string_format\",\n        abort: false,\n        ...util.normalizeParams(params),\n    });\n}\nexport function _cidrv6(Class, params) {\n    return new Class({\n        type: \"string\",\n        format: \"cidrv6\",\n        check: \"string_format\",\n        abort: false,\n        ...util.normalizeParams(params),\n    });\n}\nexport function _base64(Class, params) {\n    return new Class({\n        type: \"string\",\n        format: \"base64\",\n        check: \"string_format\",\n        abort: false,\n        ...util.normalizeParams(params),\n    });\n}\nexport function _base64url(Class, params) {\n    return new Class({\n        type: \"string\",\n        format: \"base64url\",\n        check: \"string_format\",\n        abort: false,\n        ...util.normalizeParams(params),\n    });\n}\nexport function _e164(Class, params) {\n    return new Class({\n        type: \"string\",\n        format: \"e164\",\n        check: \"string_format\",\n        abort: false,\n        ...util.normalizeParams(params),\n    });\n}\nexport function _jwt(Class, params) {\n    return new Class({\n        type: \"string\",\n        format: \"jwt\",\n        check: \"string_format\",\n        abort: false,\n        ...util.normalizeParams(params),\n    });\n}\nexport const TimePrecision = {\n    Any: null,\n    Minute: -1,\n    Second: 0,\n    Millisecond: 3,\n    Microsecond: 6,\n};\nexport function _isoDateTime(Class, params) {\n    return new Class({\n        type: \"string\",\n        format: \"datetime\",\n        check: \"string_format\",\n        offset: false,\n        local: false,\n        precision: null,\n        ...util.normalizeParams(params),\n    });\n}\nexport function _isoDate(Class, params) {\n    return new Class({\n        type: \"string\",\n        format: \"date\",\n        check: \"string_format\",\n        ...util.normalizeParams(params),\n    });\n}\nexport function _isoTime(Class, params) {\n    return new Class({\n        type: \"string\",\n        format: \"time\",\n        check: \"string_format\",\n        precision: null,\n        ...util.normalizeParams(params),\n    });\n}\nexport function _isoDuration(Class, params) {\n    return new Class({\n        type: \"string\",\n        format: \"duration\",\n        check: \"string_format\",\n        ...util.normalizeParams(params),\n    });\n}\nexport function _number(Class, params) {\n    return new Class({\n        type: \"number\",\n        checks: [],\n        ...util.normalizeParams(params),\n    });\n}\nexport function _coercedNumber(Class, params) {\n    return new Class({\n        type: \"number\",\n        coerce: true,\n        checks: [],\n        ...util.normalizeParams(params),\n    });\n}\nexport function _int(Class, params) {\n    return new Class({\n        type: \"number\",\n        check: \"number_format\",\n        abort: false,\n        format: \"safeint\",\n        ...util.normalizeParams(params),\n    });\n}\nexport function _float32(Class, params) {\n    return new Class({\n        type: \"number\",\n        check: \"number_format\",\n        abort: false,\n        format: \"float32\",\n        ...util.normalizeParams(params),\n    });\n}\nexport function _float64(Class, params) {\n    return new Class({\n        type: \"number\",\n        check: \"number_format\",\n        abort: false,\n        format: \"float64\",\n        ...util.normalizeParams(params),\n    });\n}\nexport function _int32(Class, params) {\n    return new Class({\n        type: \"number\",\n        check: \"number_format\",\n        abort: false,\n        format: \"int32\",\n        ...util.normalizeParams(params),\n    });\n}\nexport function _uint32(Class, params) {\n    return new Class({\n        type: \"number\",\n        check: \"number_format\",\n        abort: false,\n        format: \"uint32\",\n        ...util.normalizeParams(params),\n    });\n}\nexport function _boolean(Class, params) {\n    return new Class({\n        type: \"boolean\",\n        ...util.normalizeParams(params),\n    });\n}\nexport function _coercedBoolean(Class, params) {\n    return new Class({\n        type: \"boolean\",\n        coerce: true,\n        ...util.normalizeParams(params),\n    });\n}\nexport function _bigint(Class, params) {\n    return new Class({\n        type: \"bigint\",\n        ...util.normalizeParams(params),\n    });\n}\nexport function _coercedBigint(Class, params) {\n    return new Class({\n        type: \"bigint\",\n        coerce: true,\n        ...util.normalizeParams(params),\n    });\n}\nexport function _int64(Class, params) {\n    return new Class({\n        type: \"bigint\",\n        check: \"bigint_format\",\n        abort: false,\n        format: \"int64\",\n        ...util.normalizeParams(params),\n    });\n}\nexport function _uint64(Class, params) {\n    return new Class({\n        type: \"bigint\",\n        check: \"bigint_format\",\n        abort: false,\n        format: \"uint64\",\n        ...util.normalizeParams(params),\n    });\n}\nexport function _symbol(Class, params) {\n    return new Class({\n        type: \"symbol\",\n        ...util.normalizeParams(params),\n    });\n}\nexport function _undefined(Class, params) {\n    return new Class({\n        type: \"undefined\",\n        ...util.normalizeParams(params),\n    });\n}\nexport function _null(Class, params) {\n    return new Class({\n        type: \"null\",\n        ...util.normalizeParams(params),\n    });\n}\nexport function _any(Class) {\n    return new Class({\n        type: \"any\",\n    });\n}\nexport function _unknown(Class) {\n    return new Class({\n        type: \"unknown\",\n    });\n}\nexport function _never(Class, params) {\n    return new Class({\n        type: \"never\",\n        ...util.normalizeParams(params),\n    });\n}\nexport function _void(Class, params) {\n    return new Class({\n        type: \"void\",\n        ...util.normalizeParams(params),\n    });\n}\nexport function _date(Class, params) {\n    return new Class({\n        type: \"date\",\n        ...util.normalizeParams(params),\n    });\n}\nexport function _coercedDate(Class, params) {\n    return new Class({\n        type: \"date\",\n        coerce: true,\n        ...util.normalizeParams(params),\n    });\n}\nexport function _nan(Class, params) {\n    return new Class({\n        type: \"nan\",\n        ...util.normalizeParams(params),\n    });\n}\nexport function _lt(value, params) {\n    return new checks.$ZodCheckLessThan({\n        check: \"less_than\",\n        ...util.normalizeParams(params),\n        value,\n        inclusive: false,\n    });\n}\nexport function _lte(value, params) {\n    return new checks.$ZodCheckLessThan({\n        check: \"less_than\",\n        ...util.normalizeParams(params),\n        value,\n        inclusive: true,\n    });\n}\nexport { \n/** @deprecated Use `z.lte()` instead. */\n_lte as _max, };\nexport function _gt(value, params) {\n    return new checks.$ZodCheckGreaterThan({\n        check: \"greater_than\",\n        ...util.normalizeParams(params),\n        value,\n        inclusive: false,\n    });\n}\nexport function _gte(value, params) {\n    return new checks.$ZodCheckGreaterThan({\n        check: \"greater_than\",\n        ...util.normalizeParams(params),\n        value,\n        inclusive: true,\n    });\n}\nexport { \n/** @deprecated Use `z.gte()` instead. */\n_gte as _min, };\nexport function _positive(params) {\n    return _gt(0, params);\n}\n// negative\nexport function _negative(params) {\n    return _lt(0, params);\n}\n// nonpositive\nexport function _nonpositive(params) {\n    return _lte(0, params);\n}\n// nonnegative\nexport function _nonnegative(params) {\n    return _gte(0, params);\n}\nexport function _multipleOf(value, params) {\n    return new checks.$ZodCheckMultipleOf({\n        check: \"multiple_of\",\n        ...util.normalizeParams(params),\n        value,\n    });\n}\nexport function _maxSize(maximum, params) {\n    return new checks.$ZodCheckMaxSize({\n        check: \"max_size\",\n        ...util.normalizeParams(params),\n        maximum,\n    });\n}\nexport function _minSize(minimum, params) {\n    return new checks.$ZodCheckMinSize({\n        check: \"min_size\",\n        ...util.normalizeParams(params),\n        minimum,\n    });\n}\nexport function _size(size, params) {\n    return new checks.$ZodCheckSizeEquals({\n        check: \"size_equals\",\n        ...util.normalizeParams(params),\n        size,\n    });\n}\nexport function _maxLength(maximum, params) {\n    const ch = new checks.$ZodCheckMaxLength({\n        check: \"max_length\",\n        ...util.normalizeParams(params),\n        maximum,\n    });\n    return ch;\n}\nexport function _minLength(minimum, params) {\n    return new checks.$ZodCheckMinLength({\n        check: \"min_length\",\n        ...util.normalizeParams(params),\n        minimum,\n    });\n}\nexport function _length(length, params) {\n    return new checks.$ZodCheckLengthEquals({\n        check: \"length_equals\",\n        ...util.normalizeParams(params),\n        length,\n    });\n}\nexport function _regex(pattern, params) {\n    return new checks.$ZodCheckRegex({\n        check: \"string_format\",\n        format: \"regex\",\n        ...util.normalizeParams(params),\n        pattern,\n    });\n}\nexport function _lowercase(params) {\n    return new checks.$ZodCheckLowerCase({\n        check: \"string_format\",\n        format: \"lowercase\",\n        ...util.normalizeParams(params),\n    });\n}\nexport function _uppercase(params) {\n    return new checks.$ZodCheckUpperCase({\n        check: \"string_format\",\n        format: \"uppercase\",\n        ...util.normalizeParams(params),\n    });\n}\nexport function _includes(includes, params) {\n    return new checks.$ZodCheckIncludes({\n        check: \"string_format\",\n        format: \"includes\",\n        ...util.normalizeParams(params),\n        includes,\n    });\n}\nexport function _startsWith(prefix, params) {\n    return new checks.$ZodCheckStartsWith({\n        check: \"string_format\",\n        format: \"starts_with\",\n        ...util.normalizeParams(params),\n        prefix,\n    });\n}\nexport function _endsWith(suffix, params) {\n    return new checks.$ZodCheckEndsWith({\n        check: \"string_format\",\n        format: \"ends_with\",\n        ...util.normalizeParams(params),\n        suffix,\n    });\n}\nexport function _property(property, schema, params) {\n    return new checks.$ZodCheckProperty({\n        check: \"property\",\n        property,\n        schema,\n        ...util.normalizeParams(params),\n    });\n}\nexport function _mime(types, params) {\n    return new checks.$ZodCheckMimeType({\n        check: \"mime_type\",\n        mime: types,\n        ...util.normalizeParams(params),\n    });\n}\nexport function _overwrite(tx) {\n    return new checks.$ZodCheckOverwrite({\n        check: \"overwrite\",\n        tx,\n    });\n}\n// normalize\nexport function _normalize(form) {\n    return _overwrite((input) => input.normalize(form));\n}\n// trim\nexport function _trim() {\n    return _overwrite((input) => input.trim());\n}\n// toLowerCase\nexport function _toLowerCase() {\n    return _overwrite((input) => input.toLowerCase());\n}\n// toUpperCase\nexport function _toUpperCase() {\n    return _overwrite((input) => input.toUpperCase());\n}\nexport function _array(Class, element, params) {\n    return new Class({\n        type: \"array\",\n        element,\n        // get element() {\n        //   return element;\n        // },\n        ...util.normalizeParams(params),\n    });\n}\nexport function _union(Class, options, params) {\n    return new Class({\n        type: \"union\",\n        options,\n        ...util.normalizeParams(params),\n    });\n}\nexport function _discriminatedUnion(Class, discriminator, options, params) {\n    return new Class({\n        type: \"union\",\n        options,\n        discriminator,\n        ...util.normalizeParams(params),\n    });\n}\nexport function _intersection(Class, left, right) {\n    return new Class({\n        type: \"intersection\",\n        left,\n        right,\n    });\n}\n// export function _tuple(\n//   Class: util.SchemaClass<schemas.$ZodTuple>,\n//   items: [],\n//   params?: string | $ZodTupleParams\n// ): schemas.$ZodTuple<[], null>;\nexport function _tuple(Class, items, _paramsOrRest, _params) {\n    const hasRest = _paramsOrRest instanceof schemas.$ZodType;\n    const params = hasRest ? _params : _paramsOrRest;\n    const rest = hasRest ? _paramsOrRest : null;\n    return new Class({\n        type: \"tuple\",\n        items,\n        rest,\n        ...util.normalizeParams(params),\n    });\n}\nexport function _record(Class, keyType, valueType, params) {\n    return new Class({\n        type: \"record\",\n        keyType,\n        valueType,\n        ...util.normalizeParams(params),\n    });\n}\nexport function _map(Class, keyType, valueType, params) {\n    return new Class({\n        type: \"map\",\n        keyType,\n        valueType,\n        ...util.normalizeParams(params),\n    });\n}\nexport function _set(Class, valueType, params) {\n    return new Class({\n        type: \"set\",\n        valueType,\n        ...util.normalizeParams(params),\n    });\n}\nexport function _enum(Class, values, params) {\n    const entries = Array.isArray(values) ? Object.fromEntries(values.map((v) => [v, v])) : values;\n    // if (Array.isArray(values)) {\n    //   for (const value of values) {\n    //     entries[value] = value;\n    //   }\n    // } else {\n    //   Object.assign(entries, values);\n    // }\n    // const entries: util.EnumLike = {};\n    // for (const val of values) {\n    //   entries[val] = val;\n    // }\n    return new Class({\n        type: \"enum\",\n        entries,\n        ...util.normalizeParams(params),\n    });\n}\n/** @deprecated This API has been merged into `z.enum()`. Use `z.enum()` instead.\n *\n * ```ts\n * enum Colors { red, green, blue }\n * z.enum(Colors);\n * ```\n */\nexport function _nativeEnum(Class, entries, params) {\n    return new Class({\n        type: \"enum\",\n        entries,\n        ...util.normalizeParams(params),\n    });\n}\nexport function _literal(Class, value, params) {\n    return new Class({\n        type: \"literal\",\n        values: Array.isArray(value) ? value : [value],\n        ...util.normalizeParams(params),\n    });\n}\nexport function _file(Class, params) {\n    return new Class({\n        type: \"file\",\n        ...util.normalizeParams(params),\n    });\n}\nexport function _transform(Class, fn) {\n    return new Class({\n        type: \"transform\",\n        transform: fn,\n    });\n}\nexport function _optional(Class, innerType) {\n    return new Class({\n        type: \"optional\",\n        innerType,\n    });\n}\nexport function _nullable(Class, innerType) {\n    return new Class({\n        type: \"nullable\",\n        innerType,\n    });\n}\nexport function _default(Class, innerType, defaultValue) {\n    return new Class({\n        type: \"default\",\n        innerType,\n        get defaultValue() {\n            return typeof defaultValue === \"function\" ? defaultValue() : util.shallowClone(defaultValue);\n        },\n    });\n}\nexport function _nonoptional(Class, innerType, params) {\n    return new Class({\n        type: \"nonoptional\",\n        innerType,\n        ...util.normalizeParams(params),\n    });\n}\nexport function _success(Class, innerType) {\n    return new Class({\n        type: \"success\",\n        innerType,\n    });\n}\nexport function _catch(Class, innerType, catchValue) {\n    return new Class({\n        type: \"catch\",\n        innerType,\n        catchValue: (typeof catchValue === \"function\" ? catchValue : () => catchValue),\n    });\n}\nexport function _pipe(Class, in_, out) {\n    return new Class({\n        type: \"pipe\",\n        in: in_,\n        out,\n    });\n}\nexport function _readonly(Class, innerType) {\n    return new Class({\n        type: \"readonly\",\n        innerType,\n    });\n}\nexport function _templateLiteral(Class, parts, params) {\n    return new Class({\n        type: \"template_literal\",\n        parts,\n        ...util.normalizeParams(params),\n    });\n}\nexport function _lazy(Class, getter) {\n    return new Class({\n        type: \"lazy\",\n        getter,\n    });\n}\nexport function _promise(Class, innerType) {\n    return new Class({\n        type: \"promise\",\n        innerType,\n    });\n}\nexport function _custom(Class, fn, _params) {\n    const norm = util.normalizeParams(_params);\n    norm.abort ?? (norm.abort = true); // default to abort:false\n    const schema = new Class({\n        type: \"custom\",\n        check: \"custom\",\n        fn: fn,\n        ...norm,\n    });\n    return schema;\n}\n// same as _custom but defaults to abort:false\nexport function _refine(Class, fn, _params) {\n    const schema = new Class({\n        type: \"custom\",\n        check: \"custom\",\n        fn: fn,\n        ...util.normalizeParams(_params),\n    });\n    return schema;\n}\nexport function _superRefine(fn) {\n    const ch = _check((payload) => {\n        payload.addIssue = (issue) => {\n            if (typeof issue === \"string\") {\n                payload.issues.push(util.issue(issue, payload.value, ch._zod.def));\n            }\n            else {\n                // for Zod 3 backwards compatibility\n                const _issue = issue;\n                if (_issue.fatal)\n                    _issue.continue = false;\n                _issue.code ?? (_issue.code = \"custom\");\n                _issue.input ?? (_issue.input = payload.value);\n                _issue.inst ?? (_issue.inst = ch);\n                _issue.continue ?? (_issue.continue = !ch._zod.def.abort); // abort is always undefined, so this is always true...\n                payload.issues.push(util.issue(_issue));\n            }\n        };\n        return fn(payload.value, payload);\n    });\n    return ch;\n}\nexport function _check(fn, params) {\n    const ch = new checks.$ZodCheck({\n        check: \"custom\",\n        ...util.normalizeParams(params),\n    });\n    ch._zod.check = fn;\n    return ch;\n}\nexport function _stringbool(Classes, _params) {\n    const params = util.normalizeParams(_params);\n    let truthyArray = params.truthy ?? [\"true\", \"1\", \"yes\", \"on\", \"y\", \"enabled\"];\n    let falsyArray = params.falsy ?? [\"false\", \"0\", \"no\", \"off\", \"n\", \"disabled\"];\n    if (params.case !== \"sensitive\") {\n        truthyArray = truthyArray.map((v) => (typeof v === \"string\" ? v.toLowerCase() : v));\n        falsyArray = falsyArray.map((v) => (typeof v === \"string\" ? v.toLowerCase() : v));\n    }\n    const truthySet = new Set(truthyArray);\n    const falsySet = new Set(falsyArray);\n    const _Codec = Classes.Codec ?? schemas.$ZodCodec;\n    const _Boolean = Classes.Boolean ?? schemas.$ZodBoolean;\n    const _String = Classes.String ?? schemas.$ZodString;\n    const stringSchema = new _String({ type: \"string\", error: params.error });\n    const booleanSchema = new _Boolean({ type: \"boolean\", error: params.error });\n    const codec = new _Codec({\n        type: \"pipe\",\n        in: stringSchema,\n        out: booleanSchema,\n        transform: ((input, payload) => {\n            let data = input;\n            if (params.case !== \"sensitive\")\n                data = data.toLowerCase();\n            if (truthySet.has(data)) {\n                return true;\n            }\n            else if (falsySet.has(data)) {\n                return false;\n            }\n            else {\n                payload.issues.push({\n                    code: \"invalid_value\",\n                    expected: \"stringbool\",\n                    values: [...truthySet, ...falsySet],\n                    input: payload.value,\n                    inst: codec,\n                    continue: false,\n                });\n                return {};\n            }\n        }),\n        reverseTransform: ((input, _payload) => {\n            if (input === true) {\n                return truthyArray[0] || \"true\";\n            }\n            else {\n                return falsyArray[0] || \"false\";\n            }\n        }),\n        error: params.error,\n    });\n    return codec;\n}\nexport function _stringFormat(Class, format, fnOrRegex, _params = {}) {\n    const params = util.normalizeParams(_params);\n    const def = {\n        ...util.normalizeParams(_params),\n        check: \"string_format\",\n        type: \"string\",\n        format,\n        fn: typeof fnOrRegex === \"function\" ? fnOrRegex : (val) => fnOrRegex.test(val),\n        ...params,\n    };\n    if (fnOrRegex instanceof RegExp) {\n        def.pattern = fnOrRegex;\n    }\n    const inst = new Class(def);\n    return inst;\n}\n", "import * as core from \"../core/index.js\";\nimport * as schemas from \"./schemas.js\";\nexport const ZodISODateTime = /*@__PURE__*/ core.$constructor(\"ZodISODateTime\", (inst, def) => {\n    core.$ZodISODateTime.init(inst, def);\n    schemas.ZodStringFormat.init(inst, def);\n});\nexport function datetime(params) {\n    return core._isoDateTime(ZodISODateTime, params);\n}\nexport const ZodISODate = /*@__PURE__*/ core.$constructor(\"ZodISODate\", (inst, def) => {\n    core.$ZodISODate.init(inst, def);\n    schemas.ZodStringFormat.init(inst, def);\n});\nexport function date(params) {\n    return core._isoDate(ZodISODate, params);\n}\nexport const ZodISOTime = /*@__PURE__*/ core.$constructor(\"ZodISOTime\", (inst, def) => {\n    core.$ZodISOTime.init(inst, def);\n    schemas.ZodStringFormat.init(inst, def);\n});\nexport function time(params) {\n    return core._isoTime(ZodISOTime, params);\n}\nexport const ZodISODuration = /*@__PURE__*/ core.$constructor(\"ZodISODuration\", (inst, def) => {\n    core.$ZodISODuration.init(inst, def);\n    schemas.ZodStringFormat.init(inst, def);\n});\nexport function duration(params) {\n    return core._isoDuration(ZodISODuration, params);\n}\n", "import * as core from \"../core/index.js\";\nimport { $ZodError } from \"../core/index.js\";\nimport * as util from \"../core/util.js\";\nconst initializer = (inst, issues) => {\n    $ZodError.init(inst, issues);\n    inst.name = \"ZodError\";\n    Object.defineProperties(inst, {\n        format: {\n            value: (mapper) => core.formatError(inst, mapper),\n            // enumerable: false,\n        },\n        flatten: {\n            value: (mapper) => core.flattenError(inst, mapper),\n            // enumerable: false,\n        },\n        addIssue: {\n            value: (issue) => {\n                inst.issues.push(issue);\n                inst.message = JSON.stringify(inst.issues, util.jsonStringifyReplacer, 2);\n            },\n            // enumerable: false,\n        },\n        addIssues: {\n            value: (issues) => {\n                inst.issues.push(...issues);\n                inst.message = JSON.stringify(inst.issues, util.jsonStringifyReplacer, 2);\n            },\n            // enumerable: false,\n        },\n        isEmpty: {\n            get() {\n                return inst.issues.length === 0;\n            },\n            // enumerable: false,\n        },\n    });\n    // Object.defineProperty(inst, \"isEmpty\", {\n    //   get() {\n    //     return inst.issues.length === 0;\n    //   },\n    // });\n};\nexport const ZodError = core.$constructor(\"ZodError\", initializer);\nexport const ZodRealError = core.$constructor(\"ZodError\", initializer, {\n    Parent: Error,\n});\n// /** @deprecated Use `z.core.$ZodErrorMapCtx` instead. */\n// export type ErrorMapCtx = core.$ZodErrorMapCtx;\n", "import * as core from \"../core/index.js\";\nimport { ZodRealError } from \"./errors.js\";\nexport const parse = /* @__PURE__ */ core._parse(ZodRealError);\nexport const parseAsync = /* @__PURE__ */ core._parseAsync(ZodRealError);\nexport const safeParse = /* @__PURE__ */ core._safeParse(ZodRealError);\nexport const safeParseAsync = /* @__PURE__ */ core._safeParseAsync(ZodRealError);\n// Codec functions\nexport const encode = /* @__PURE__ */ core._encode(ZodRealError);\nexport const decode = /* @__PURE__ */ core._decode(ZodRealError);\nexport const encodeAsync = /* @__PURE__ */ core._encodeAsync(ZodRealError);\nexport const decodeAsync = /* @__PURE__ */ core._decodeAsync(ZodRealError);\nexport const safeEncode = /* @__PURE__ */ core._safeEncode(ZodRealError);\nexport const safeDecode = /* @__PURE__ */ core._safeDecode(ZodRealError);\nexport const safeEncodeAsync = /* @__PURE__ */ core._safeEncodeAsync(ZodRealError);\nexport const safeDecodeAsync = /* @__PURE__ */ core._safeDecodeAsync(ZodRealError);\n", "import * as core from \"../core/index.js\";\nimport { util } from \"../core/index.js\";\nimport * as checks from \"./checks.js\";\nimport * as iso from \"./iso.js\";\nimport * as parse from \"./parse.js\";\nexport const ZodType = /*@__PURE__*/ core.$constructor(\"ZodType\", (inst, def) => {\n    core.$ZodType.init(inst, def);\n    inst.def = def;\n    inst.type = def.type;\n    Object.defineProperty(inst, \"_def\", { value: def });\n    // base methods\n    inst.check = (...checks) => {\n        return inst.clone(util.mergeDefs(def, {\n            checks: [\n                ...(def.checks ?? []),\n                ...checks.map((ch) => typeof ch === \"function\" ? { _zod: { check: ch, def: { check: \"custom\" }, onattach: [] } } : ch),\n            ],\n        }));\n    };\n    inst.clone = (def, params) => core.clone(inst, def, params);\n    inst.brand = () => inst;\n    inst.register = ((reg, meta) => {\n        reg.add(inst, meta);\n        return inst;\n    });\n    // parsing\n    inst.parse = (data, params) => parse.parse(inst, data, params, { callee: inst.parse });\n    inst.safeParse = (data, params) => parse.safeParse(inst, data, params);\n    inst.parseAsync = async (data, params) => parse.parseAsync(inst, data, params, { callee: inst.parseAsync });\n    inst.safeParseAsync = async (data, params) => parse.safeParseAsync(inst, data, params);\n    inst.spa = inst.safeParseAsync;\n    // encoding/decoding\n    inst.encode = (data, params) => parse.encode(inst, data, params);\n    inst.decode = (data, params) => parse.decode(inst, data, params);\n    inst.encodeAsync = async (data, params) => parse.encodeAsync(inst, data, params);\n    inst.decodeAsync = async (data, params) => parse.decodeAsync(inst, data, params);\n    inst.safeEncode = (data, params) => parse.safeEncode(inst, data, params);\n    inst.safeDecode = (data, params) => parse.safeDecode(inst, data, params);\n    inst.safeEncodeAsync = async (data, params) => parse.safeEncodeAsync(inst, data, params);\n    inst.safeDecodeAsync = async (data, params) => parse.safeDecodeAsync(inst, data, params);\n    // refinements\n    inst.refine = (check, params) => inst.check(refine(check, params));\n    inst.superRefine = (refinement) => inst.check(superRefine(refinement));\n    inst.overwrite = (fn) => inst.check(checks.overwrite(fn));\n    // wrappers\n    inst.optional = () => optional(inst);\n    inst.nullable = () => nullable(inst);\n    inst.nullish = () => optional(nullable(inst));\n    inst.nonoptional = (params) => nonoptional(inst, params);\n    inst.array = () => array(inst);\n    inst.or = (arg) => union([inst, arg]);\n    inst.and = (arg) => intersection(inst, arg);\n    inst.transform = (tx) => pipe(inst, transform(tx));\n    inst.default = (def) => _default(inst, def);\n    inst.prefault = (def) => prefault(inst, def);\n    // inst.coalesce = (def, params) => coalesce(inst, def, params);\n    inst.catch = (params) => _catch(inst, params);\n    inst.pipe = (target) => pipe(inst, target);\n    inst.readonly = () => readonly(inst);\n    // meta\n    inst.describe = (description) => {\n        const cl = inst.clone();\n        core.globalRegistry.add(cl, { description });\n        return cl;\n    };\n    Object.defineProperty(inst, \"description\", {\n        get() {\n            return core.globalRegistry.get(inst)?.description;\n        },\n        configurable: true,\n    });\n    inst.meta = (...args) => {\n        if (args.length === 0) {\n            return core.globalRegistry.get(inst);\n        }\n        const cl = inst.clone();\n        core.globalRegistry.add(cl, args[0]);\n        return cl;\n    };\n    // helpers\n    inst.isOptional = () => inst.safeParse(undefined).success;\n    inst.isNullable = () => inst.safeParse(null).success;\n    return inst;\n});\n/** @internal */\nexport const _ZodString = /*@__PURE__*/ core.$constructor(\"_ZodString\", (inst, def) => {\n    core.$ZodString.init(inst, def);\n    ZodType.init(inst, def);\n    const bag = inst._zod.bag;\n    inst.format = bag.format ?? null;\n    inst.minLength = bag.minimum ?? null;\n    inst.maxLength = bag.maximum ?? null;\n    // validations\n    inst.regex = (...args) => inst.check(checks.regex(...args));\n    inst.includes = (...args) => inst.check(checks.includes(...args));\n    inst.startsWith = (...args) => inst.check(checks.startsWith(...args));\n    inst.endsWith = (...args) => inst.check(checks.endsWith(...args));\n    inst.min = (...args) => inst.check(checks.minLength(...args));\n    inst.max = (...args) => inst.check(checks.maxLength(...args));\n    inst.length = (...args) => inst.check(checks.length(...args));\n    inst.nonempty = (...args) => inst.check(checks.minLength(1, ...args));\n    inst.lowercase = (params) => inst.check(checks.lowercase(params));\n    inst.uppercase = (params) => inst.check(checks.uppercase(params));\n    // transforms\n    inst.trim = () => inst.check(checks.trim());\n    inst.normalize = (...args) => inst.check(checks.normalize(...args));\n    inst.toLowerCase = () => inst.check(checks.toLowerCase());\n    inst.toUpperCase = () => inst.check(checks.toUpperCase());\n});\nexport const ZodString = /*@__PURE__*/ core.$constructor(\"ZodString\", (inst, def) => {\n    core.$ZodString.init(inst, def);\n    _ZodString.init(inst, def);\n    inst.email = (params) => inst.check(core._email(ZodEmail, params));\n    inst.url = (params) => inst.check(core._url(ZodURL, params));\n    inst.jwt = (params) => inst.check(core._jwt(ZodJWT, params));\n    inst.emoji = (params) => inst.check(core._emoji(ZodEmoji, params));\n    inst.guid = (params) => inst.check(core._guid(ZodGUID, params));\n    inst.uuid = (params) => inst.check(core._uuid(ZodUUID, params));\n    inst.uuidv4 = (params) => inst.check(core._uuidv4(ZodUUID, params));\n    inst.uuidv6 = (params) => inst.check(core._uuidv6(ZodUUID, params));\n    inst.uuidv7 = (params) => inst.check(core._uuidv7(ZodUUID, params));\n    inst.nanoid = (params) => inst.check(core._nanoid(ZodNanoID, params));\n    inst.guid = (params) => inst.check(core._guid(ZodGUID, params));\n    inst.cuid = (params) => inst.check(core._cuid(ZodCUID, params));\n    inst.cuid2 = (params) => inst.check(core._cuid2(ZodCUID2, params));\n    inst.ulid = (params) => inst.check(core._ulid(ZodULID, params));\n    inst.base64 = (params) => inst.check(core._base64(ZodBase64, params));\n    inst.base64url = (params) => inst.check(core._base64url(ZodBase64URL, params));\n    inst.xid = (params) => inst.check(core._xid(ZodXID, params));\n    inst.ksuid = (params) => inst.check(core._ksuid(ZodKSUID, params));\n    inst.ipv4 = (params) => inst.check(core._ipv4(ZodIPv4, params));\n    inst.ipv6 = (params) => inst.check(core._ipv6(ZodIPv6, params));\n    inst.cidrv4 = (params) => inst.check(core._cidrv4(ZodCIDRv4, params));\n    inst.cidrv6 = (params) => inst.check(core._cidrv6(ZodCIDRv6, params));\n    inst.e164 = (params) => inst.check(core._e164(ZodE164, params));\n    // iso\n    inst.datetime = (params) => inst.check(iso.datetime(params));\n    inst.date = (params) => inst.check(iso.date(params));\n    inst.time = (params) => inst.check(iso.time(params));\n    inst.duration = (params) => inst.check(iso.duration(params));\n});\nexport function string(params) {\n    return core._string(ZodString, params);\n}\nexport const ZodStringFormat = /*@__PURE__*/ core.$constructor(\"ZodStringFormat\", (inst, def) => {\n    core.$ZodStringFormat.init(inst, def);\n    _ZodString.init(inst, def);\n});\nexport const ZodEmail = /*@__PURE__*/ core.$constructor(\"ZodEmail\", (inst, def) => {\n    // ZodStringFormat.init(inst, def);\n    core.$ZodEmail.init(inst, def);\n    ZodStringFormat.init(inst, def);\n});\nexport function email(params) {\n    return core._email(ZodEmail, params);\n}\nexport const ZodGUID = /*@__PURE__*/ core.$constructor(\"ZodGUID\", (inst, def) => {\n    // ZodStringFormat.init(inst, def);\n    core.$ZodGUID.init(inst, def);\n    ZodStringFormat.init(inst, def);\n});\nexport function guid(params) {\n    return core._guid(ZodGUID, params);\n}\nexport const ZodUUID = /*@__PURE__*/ core.$constructor(\"ZodUUID\", (inst, def) => {\n    // ZodStringFormat.init(inst, def);\n    core.$ZodUUID.init(inst, def);\n    ZodStringFormat.init(inst, def);\n});\nexport function uuid(params) {\n    return core._uuid(ZodUUID, params);\n}\nexport function uuidv4(params) {\n    return core._uuidv4(ZodUUID, params);\n}\n// ZodUUIDv6\nexport function uuidv6(params) {\n    return core._uuidv6(ZodUUID, params);\n}\n// ZodUUIDv7\nexport function uuidv7(params) {\n    return core._uuidv7(ZodUUID, params);\n}\nexport const ZodURL = /*@__PURE__*/ core.$constructor(\"ZodURL\", (inst, def) => {\n    // ZodStringFormat.init(inst, def);\n    core.$ZodURL.init(inst, def);\n    ZodStringFormat.init(inst, def);\n});\nexport function url(params) {\n    return core._url(ZodURL, params);\n}\nexport function httpUrl(params) {\n    return core._url(ZodURL, {\n        protocol: /^https?$/,\n        hostname: core.regexes.domain,\n        ...util.normalizeParams(params),\n    });\n}\nexport const ZodEmoji = /*@__PURE__*/ core.$constructor(\"ZodEmoji\", (inst, def) => {\n    // ZodStringFormat.init(inst, def);\n    core.$ZodEmoji.init(inst, def);\n    ZodStringFormat.init(inst, def);\n});\nexport function emoji(params) {\n    return core._emoji(ZodEmoji, params);\n}\nexport const ZodNanoID = /*@__PURE__*/ core.$constructor(\"ZodNanoID\", (inst, def) => {\n    // ZodStringFormat.init(inst, def);\n    core.$ZodNanoID.init(inst, def);\n    ZodStringFormat.init(inst, def);\n});\nexport function nanoid(params) {\n    return core._nanoid(ZodNanoID, params);\n}\nexport const ZodCUID = /*@__PURE__*/ core.$constructor(\"ZodCUID\", (inst, def) => {\n    // ZodStringFormat.init(inst, def);\n    core.$ZodCUID.init(inst, def);\n    ZodStringFormat.init(inst, def);\n});\nexport function cuid(params) {\n    return core._cuid(ZodCUID, params);\n}\nexport const ZodCUID2 = /*@__PURE__*/ core.$constructor(\"ZodCUID2\", (inst, def) => {\n    // ZodStringFormat.init(inst, def);\n    core.$ZodCUID2.init(inst, def);\n    ZodStringFormat.init(inst, def);\n});\nexport function cuid2(params) {\n    return core._cuid2(ZodCUID2, params);\n}\nexport const ZodULID = /*@__PURE__*/ core.$constructor(\"ZodULID\", (inst, def) => {\n    // ZodStringFormat.init(inst, def);\n    core.$ZodULID.init(inst, def);\n    ZodStringFormat.init(inst, def);\n});\nexport function ulid(params) {\n    return core._ulid(ZodULID, params);\n}\nexport const ZodXID = /*@__PURE__*/ core.$constructor(\"ZodXID\", (inst, def) => {\n    // ZodStringFormat.init(inst, def);\n    core.$ZodXID.init(inst, def);\n    ZodStringFormat.init(inst, def);\n});\nexport function xid(params) {\n    return core._xid(ZodXID, params);\n}\nexport const ZodKSUID = /*@__PURE__*/ core.$constructor(\"ZodKSUID\", (inst, def) => {\n    // ZodStringFormat.init(inst, def);\n    core.$ZodKSUID.init(inst, def);\n    ZodStringFormat.init(inst, def);\n});\nexport function ksuid(params) {\n    return core._ksuid(ZodKSUID, params);\n}\nexport const ZodIPv4 = /*@__PURE__*/ core.$constructor(\"ZodIPv4\", (inst, def) => {\n    // ZodStringFormat.init(inst, def);\n    core.$ZodIPv4.init(inst, def);\n    ZodStringFormat.init(inst, def);\n});\nexport function ipv4(params) {\n    return core._ipv4(ZodIPv4, params);\n}\nexport const ZodIPv6 = /*@__PURE__*/ core.$constructor(\"ZodIPv6\", (inst, def) => {\n    // ZodStringFormat.init(inst, def);\n    core.$ZodIPv6.init(inst, def);\n    ZodStringFormat.init(inst, def);\n});\nexport function ipv6(params) {\n    return core._ipv6(ZodIPv6, params);\n}\nexport const ZodCIDRv4 = /*@__PURE__*/ core.$constructor(\"ZodCIDRv4\", (inst, def) => {\n    core.$ZodCIDRv4.init(inst, def);\n    ZodStringFormat.init(inst, def);\n});\nexport function cidrv4(params) {\n    return core._cidrv4(ZodCIDRv4, params);\n}\nexport const ZodCIDRv6 = /*@__PURE__*/ core.$constructor(\"ZodCIDRv6\", (inst, def) => {\n    core.$ZodCIDRv6.init(inst, def);\n    ZodStringFormat.init(inst, def);\n});\nexport function cidrv6(params) {\n    return core._cidrv6(ZodCIDRv6, params);\n}\nexport const ZodBase64 = /*@__PURE__*/ core.$constructor(\"ZodBase64\", (inst, def) => {\n    // ZodStringFormat.init(inst, def);\n    core.$ZodBase64.init(inst, def);\n    ZodStringFormat.init(inst, def);\n});\nexport function base64(params) {\n    return core._base64(ZodBase64, params);\n}\nexport const ZodBase64URL = /*@__PURE__*/ core.$constructor(\"ZodBase64URL\", (inst, def) => {\n    // ZodStringFormat.init(inst, def);\n    core.$ZodBase64URL.init(inst, def);\n    ZodStringFormat.init(inst, def);\n});\nexport function base64url(params) {\n    return core._base64url(ZodBase64URL, params);\n}\nexport const ZodE164 = /*@__PURE__*/ core.$constructor(\"ZodE164\", (inst, def) => {\n    // ZodStringFormat.init(inst, def);\n    core.$ZodE164.init(inst, def);\n    ZodStringFormat.init(inst, def);\n});\nexport function e164(params) {\n    return core._e164(ZodE164, params);\n}\nexport const ZodJWT = /*@__PURE__*/ core.$constructor(\"ZodJWT\", (inst, def) => {\n    // ZodStringFormat.init(inst, def);\n    core.$ZodJWT.init(inst, def);\n    ZodStringFormat.init(inst, def);\n});\nexport function jwt(params) {\n    return core._jwt(ZodJWT, params);\n}\nexport const ZodCustomStringFormat = /*@__PURE__*/ core.$constructor(\"ZodCustomStringFormat\", (inst, def) => {\n    // ZodStringFormat.init(inst, def);\n    core.$ZodCustomStringFormat.init(inst, def);\n    ZodStringFormat.init(inst, def);\n});\nexport function stringFormat(format, fnOrRegex, _params = {}) {\n    return core._stringFormat(ZodCustomStringFormat, format, fnOrRegex, _params);\n}\nexport function hostname(_params) {\n    return core._stringFormat(ZodCustomStringFormat, \"hostname\", core.regexes.hostname, _params);\n}\nexport function hex(_params) {\n    return core._stringFormat(ZodCustomStringFormat, \"hex\", core.regexes.hex, _params);\n}\nexport function hash(alg, params) {\n    const enc = params?.enc ?? \"hex\";\n    const format = `${alg}_${enc}`;\n    const regex = core.regexes[format];\n    if (!regex)\n        throw new Error(`Unrecognized hash format: ${format}`);\n    return core._stringFormat(ZodCustomStringFormat, format, regex, params);\n}\nexport const ZodNumber = /*@__PURE__*/ core.$constructor(\"ZodNumber\", (inst, def) => {\n    core.$ZodNumber.init(inst, def);\n    ZodType.init(inst, def);\n    inst.gt = (value, params) => inst.check(checks.gt(value, params));\n    inst.gte = (value, params) => inst.check(checks.gte(value, params));\n    inst.min = (value, params) => inst.check(checks.gte(value, params));\n    inst.lt = (value, params) => inst.check(checks.lt(value, params));\n    inst.lte = (value, params) => inst.check(checks.lte(value, params));\n    inst.max = (value, params) => inst.check(checks.lte(value, params));\n    inst.int = (params) => inst.check(int(params));\n    inst.safe = (params) => inst.check(int(params));\n    inst.positive = (params) => inst.check(checks.gt(0, params));\n    inst.nonnegative = (params) => inst.check(checks.gte(0, params));\n    inst.negative = (params) => inst.check(checks.lt(0, params));\n    inst.nonpositive = (params) => inst.check(checks.lte(0, params));\n    inst.multipleOf = (value, params) => inst.check(checks.multipleOf(value, params));\n    inst.step = (value, params) => inst.check(checks.multipleOf(value, params));\n    // inst.finite = (params) => inst.check(core.finite(params));\n    inst.finite = () => inst;\n    const bag = inst._zod.bag;\n    inst.minValue =\n        Math.max(bag.minimum ?? Number.NEGATIVE_INFINITY, bag.exclusiveMinimum ?? Number.NEGATIVE_INFINITY) ?? null;\n    inst.maxValue =\n        Math.min(bag.maximum ?? Number.POSITIVE_INFINITY, bag.exclusiveMaximum ?? Number.POSITIVE_INFINITY) ?? null;\n    inst.isInt = (bag.format ?? \"\").includes(\"int\") || Number.isSafeInteger(bag.multipleOf ?? 0.5);\n    inst.isFinite = true;\n    inst.format = bag.format ?? null;\n});\nexport function number(params) {\n    return core._number(ZodNumber, params);\n}\nexport const ZodNumberFormat = /*@__PURE__*/ core.$constructor(\"ZodNumberFormat\", (inst, def) => {\n    core.$ZodNumberFormat.init(inst, def);\n    ZodNumber.init(inst, def);\n});\nexport function int(params) {\n    return core._int(ZodNumberFormat, params);\n}\nexport function float32(params) {\n    return core._float32(ZodNumberFormat, params);\n}\nexport function float64(params) {\n    return core._float64(ZodNumberFormat, params);\n}\nexport function int32(params) {\n    return core._int32(ZodNumberFormat, params);\n}\nexport function uint32(params) {\n    return core._uint32(ZodNumberFormat, params);\n}\nexport const ZodBoolean = /*@__PURE__*/ core.$constructor(\"ZodBoolean\", (inst, def) => {\n    core.$ZodBoolean.init(inst, def);\n    ZodType.init(inst, def);\n});\nexport function boolean(params) {\n    return core._boolean(ZodBoolean, params);\n}\nexport const ZodBigInt = /*@__PURE__*/ core.$constructor(\"ZodBigInt\", (inst, def) => {\n    core.$ZodBigInt.init(inst, def);\n    ZodType.init(inst, def);\n    inst.gte = (value, params) => inst.check(checks.gte(value, params));\n    inst.min = (value, params) => inst.check(checks.gte(value, params));\n    inst.gt = (value, params) => inst.check(checks.gt(value, params));\n    inst.gte = (value, params) => inst.check(checks.gte(value, params));\n    inst.min = (value, params) => inst.check(checks.gte(value, params));\n    inst.lt = (value, params) => inst.check(checks.lt(value, params));\n    inst.lte = (value, params) => inst.check(checks.lte(value, params));\n    inst.max = (value, params) => inst.check(checks.lte(value, params));\n    inst.positive = (params) => inst.check(checks.gt(BigInt(0), params));\n    inst.negative = (params) => inst.check(checks.lt(BigInt(0), params));\n    inst.nonpositive = (params) => inst.check(checks.lte(BigInt(0), params));\n    inst.nonnegative = (params) => inst.check(checks.gte(BigInt(0), params));\n    inst.multipleOf = (value, params) => inst.check(checks.multipleOf(value, params));\n    const bag = inst._zod.bag;\n    inst.minValue = bag.minimum ?? null;\n    inst.maxValue = bag.maximum ?? null;\n    inst.format = bag.format ?? null;\n});\nexport function bigint(params) {\n    return core._bigint(ZodBigInt, params);\n}\nexport const ZodBigIntFormat = /*@__PURE__*/ core.$constructor(\"ZodBigIntFormat\", (inst, def) => {\n    core.$ZodBigIntFormat.init(inst, def);\n    ZodBigInt.init(inst, def);\n});\n// int64\nexport function int64(params) {\n    return core._int64(ZodBigIntFormat, params);\n}\n// uint64\nexport function uint64(params) {\n    return core._uint64(ZodBigIntFormat, params);\n}\nexport const ZodSymbol = /*@__PURE__*/ core.$constructor(\"ZodSymbol\", (inst, def) => {\n    core.$ZodSymbol.init(inst, def);\n    ZodType.init(inst, def);\n});\nexport function symbol(params) {\n    return core._symbol(ZodSymbol, params);\n}\nexport const ZodUndefined = /*@__PURE__*/ core.$constructor(\"ZodUndefined\", (inst, def) => {\n    core.$ZodUndefined.init(inst, def);\n    ZodType.init(inst, def);\n});\nfunction _undefined(params) {\n    return core._undefined(ZodUndefined, params);\n}\nexport { _undefined as undefined };\nexport const ZodNull = /*@__PURE__*/ core.$constructor(\"ZodNull\", (inst, def) => {\n    core.$ZodNull.init(inst, def);\n    ZodType.init(inst, def);\n});\nfunction _null(params) {\n    return core._null(ZodNull, params);\n}\nexport { _null as null };\nexport const ZodAny = /*@__PURE__*/ core.$constructor(\"ZodAny\", (inst, def) => {\n    core.$ZodAny.init(inst, def);\n    ZodType.init(inst, def);\n});\nexport function any() {\n    return core._any(ZodAny);\n}\nexport const ZodUnknown = /*@__PURE__*/ core.$constructor(\"ZodUnknown\", (inst, def) => {\n    core.$ZodUnknown.init(inst, def);\n    ZodType.init(inst, def);\n});\nexport function unknown() {\n    return core._unknown(ZodUnknown);\n}\nexport const ZodNever = /*@__PURE__*/ core.$constructor(\"ZodNever\", (inst, def) => {\n    core.$ZodNever.init(inst, def);\n    ZodType.init(inst, def);\n});\nexport function never(params) {\n    return core._never(ZodNever, params);\n}\nexport const ZodVoid = /*@__PURE__*/ core.$constructor(\"ZodVoid\", (inst, def) => {\n    core.$ZodVoid.init(inst, def);\n    ZodType.init(inst, def);\n});\nfunction _void(params) {\n    return core._void(ZodVoid, params);\n}\nexport { _void as void };\nexport const ZodDate = /*@__PURE__*/ core.$constructor(\"ZodDate\", (inst, def) => {\n    core.$ZodDate.init(inst, def);\n    ZodType.init(inst, def);\n    inst.min = (value, params) => inst.check(checks.gte(value, params));\n    inst.max = (value, params) => inst.check(checks.lte(value, params));\n    const c = inst._zod.bag;\n    inst.minDate = c.minimum ? new Date(c.minimum) : null;\n    inst.maxDate = c.maximum ? new Date(c.maximum) : null;\n});\nexport function date(params) {\n    return core._date(ZodDate, params);\n}\nexport const ZodArray = /*@__PURE__*/ core.$constructor(\"ZodArray\", (inst, def) => {\n    core.$ZodArray.init(inst, def);\n    ZodType.init(inst, def);\n    inst.element = def.element;\n    inst.min = (minLength, params) => inst.check(checks.minLength(minLength, params));\n    inst.nonempty = (params) => inst.check(checks.minLength(1, params));\n    inst.max = (maxLength, params) => inst.check(checks.maxLength(maxLength, params));\n    inst.length = (len, params) => inst.check(checks.length(len, params));\n    inst.unwrap = () => inst.element;\n});\nexport function array(element, params) {\n    return core._array(ZodArray, element, params);\n}\n// .keyof\nexport function keyof(schema) {\n    const shape = schema._zod.def.shape;\n    return _enum(Object.keys(shape));\n}\nexport const ZodObject = /*@__PURE__*/ core.$constructor(\"ZodObject\", (inst, def) => {\n    core.$ZodObjectJIT.init(inst, def);\n    ZodType.init(inst, def);\n    util.defineLazy(inst, \"shape\", () => {\n        return def.shape;\n    });\n    inst.keyof = () => _enum(Object.keys(inst._zod.def.shape));\n    inst.catchall = (catchall) => inst.clone({ ...inst._zod.def, catchall: catchall });\n    inst.passthrough = () => inst.clone({ ...inst._zod.def, catchall: unknown() });\n    inst.loose = () => inst.clone({ ...inst._zod.def, catchall: unknown() });\n    inst.strict = () => inst.clone({ ...inst._zod.def, catchall: never() });\n    inst.strip = () => inst.clone({ ...inst._zod.def, catchall: undefined });\n    inst.extend = (incoming) => {\n        return util.extend(inst, incoming);\n    };\n    inst.safeExtend = (incoming) => {\n        return util.safeExtend(inst, incoming);\n    };\n    inst.merge = (other) => util.merge(inst, other);\n    inst.pick = (mask) => util.pick(inst, mask);\n    inst.omit = (mask) => util.omit(inst, mask);\n    inst.partial = (...args) => util.partial(ZodOptional, inst, args[0]);\n    inst.required = (...args) => util.required(ZodNonOptional, inst, args[0]);\n});\nexport function object(shape, params) {\n    const def = {\n        type: \"object\",\n        shape: shape ?? {},\n        ...util.normalizeParams(params),\n    };\n    return new ZodObject(def);\n}\n// strictObject\nexport function strictObject(shape, params) {\n    return new ZodObject({\n        type: \"object\",\n        shape,\n        catchall: never(),\n        ...util.normalizeParams(params),\n    });\n}\n// looseObject\nexport function looseObject(shape, params) {\n    return new ZodObject({\n        type: \"object\",\n        shape,\n        catchall: unknown(),\n        ...util.normalizeParams(params),\n    });\n}\nexport const ZodUnion = /*@__PURE__*/ core.$constructor(\"ZodUnion\", (inst, def) => {\n    core.$ZodUnion.init(inst, def);\n    ZodType.init(inst, def);\n    inst.options = def.options;\n});\nexport function union(options, params) {\n    return new ZodUnion({\n        type: \"union\",\n        options: options,\n        ...util.normalizeParams(params),\n    });\n}\nexport const ZodDiscriminatedUnion = /*@__PURE__*/ core.$constructor(\"ZodDiscriminatedUnion\", (inst, def) => {\n    ZodUnion.init(inst, def);\n    core.$ZodDiscriminatedUnion.init(inst, def);\n});\nexport function discriminatedUnion(discriminator, options, params) {\n    // const [options, params] = args;\n    return new ZodDiscriminatedUnion({\n        type: \"union\",\n        options,\n        discriminator,\n        ...util.normalizeParams(params),\n    });\n}\nexport const ZodIntersection = /*@__PURE__*/ core.$constructor(\"ZodIntersection\", (inst, def) => {\n    core.$ZodIntersection.init(inst, def);\n    ZodType.init(inst, def);\n});\nexport function intersection(left, right) {\n    return new ZodIntersection({\n        type: \"intersection\",\n        left: left,\n        right: right,\n    });\n}\nexport const ZodTuple = /*@__PURE__*/ core.$constructor(\"ZodTuple\", (inst, def) => {\n    core.$ZodTuple.init(inst, def);\n    ZodType.init(inst, def);\n    inst.rest = (rest) => inst.clone({\n        ...inst._zod.def,\n        rest: rest,\n    });\n});\nexport function tuple(items, _paramsOrRest, _params) {\n    const hasRest = _paramsOrRest instanceof core.$ZodType;\n    const params = hasRest ? _params : _paramsOrRest;\n    const rest = hasRest ? _paramsOrRest : null;\n    return new ZodTuple({\n        type: \"tuple\",\n        items: items,\n        rest,\n        ...util.normalizeParams(params),\n    });\n}\nexport const ZodRecord = /*@__PURE__*/ core.$constructor(\"ZodRecord\", (inst, def) => {\n    core.$ZodRecord.init(inst, def);\n    ZodType.init(inst, def);\n    inst.keyType = def.keyType;\n    inst.valueType = def.valueType;\n});\nexport function record(keyType, valueType, params) {\n    return new ZodRecord({\n        type: \"record\",\n        keyType,\n        valueType: valueType,\n        ...util.normalizeParams(params),\n    });\n}\n// type alksjf = core.output<core.$ZodRecordKey>;\nexport function partialRecord(keyType, valueType, params) {\n    const k = core.clone(keyType);\n    k._zod.values = undefined;\n    return new ZodRecord({\n        type: \"record\",\n        keyType: k,\n        valueType: valueType,\n        ...util.normalizeParams(params),\n    });\n}\nexport const ZodMap = /*@__PURE__*/ core.$constructor(\"ZodMap\", (inst, def) => {\n    core.$ZodMap.init(inst, def);\n    ZodType.init(inst, def);\n    inst.keyType = def.keyType;\n    inst.valueType = def.valueType;\n});\nexport function map(keyType, valueType, params) {\n    return new ZodMap({\n        type: \"map\",\n        keyType: keyType,\n        valueType: valueType,\n        ...util.normalizeParams(params),\n    });\n}\nexport const ZodSet = /*@__PURE__*/ core.$constructor(\"ZodSet\", (inst, def) => {\n    core.$ZodSet.init(inst, def);\n    ZodType.init(inst, def);\n    inst.min = (...args) => inst.check(core._minSize(...args));\n    inst.nonempty = (params) => inst.check(core._minSize(1, params));\n    inst.max = (...args) => inst.check(core._maxSize(...args));\n    inst.size = (...args) => inst.check(core._size(...args));\n});\nexport function set(valueType, params) {\n    return new ZodSet({\n        type: \"set\",\n        valueType: valueType,\n        ...util.normalizeParams(params),\n    });\n}\nexport const ZodEnum = /*@__PURE__*/ core.$constructor(\"ZodEnum\", (inst, def) => {\n    core.$ZodEnum.init(inst, def);\n    ZodType.init(inst, def);\n    inst.enum = def.entries;\n    inst.options = Object.values(def.entries);\n    const keys = new Set(Object.keys(def.entries));\n    inst.extract = (values, params) => {\n        const newEntries = {};\n        for (const value of values) {\n            if (keys.has(value)) {\n                newEntries[value] = def.entries[value];\n            }\n            else\n                throw new Error(`Key ${value} not found in enum`);\n        }\n        return new ZodEnum({\n            ...def,\n            checks: [],\n            ...util.normalizeParams(params),\n            entries: newEntries,\n        });\n    };\n    inst.exclude = (values, params) => {\n        const newEntries = { ...def.entries };\n        for (const value of values) {\n            if (keys.has(value)) {\n                delete newEntries[value];\n            }\n            else\n                throw new Error(`Key ${value} not found in enum`);\n        }\n        return new ZodEnum({\n            ...def,\n            checks: [],\n            ...util.normalizeParams(params),\n            entries: newEntries,\n        });\n    };\n});\nfunction _enum(values, params) {\n    const entries = Array.isArray(values) ? Object.fromEntries(values.map((v) => [v, v])) : values;\n    return new ZodEnum({\n        type: \"enum\",\n        entries,\n        ...util.normalizeParams(params),\n    });\n}\nexport { _enum as enum };\n/** @deprecated This API has been merged into `z.enum()`. Use `z.enum()` instead.\n *\n * ```ts\n * enum Colors { red, green, blue }\n * z.enum(Colors);\n * ```\n */\nexport function nativeEnum(entries, params) {\n    return new ZodEnum({\n        type: \"enum\",\n        entries,\n        ...util.normalizeParams(params),\n    });\n}\nexport const ZodLiteral = /*@__PURE__*/ core.$constructor(\"ZodLiteral\", (inst, def) => {\n    core.$ZodLiteral.init(inst, def);\n    ZodType.init(inst, def);\n    inst.values = new Set(def.values);\n    Object.defineProperty(inst, \"value\", {\n        get() {\n            if (def.values.length > 1) {\n                throw new Error(\"This schema contains multiple valid literal values. Use `.values` instead.\");\n            }\n            return def.values[0];\n        },\n    });\n});\nexport function literal(value, params) {\n    return new ZodLiteral({\n        type: \"literal\",\n        values: Array.isArray(value) ? value : [value],\n        ...util.normalizeParams(params),\n    });\n}\nexport const ZodFile = /*@__PURE__*/ core.$constructor(\"ZodFile\", (inst, def) => {\n    core.$ZodFile.init(inst, def);\n    ZodType.init(inst, def);\n    inst.min = (size, params) => inst.check(core._minSize(size, params));\n    inst.max = (size, params) => inst.check(core._maxSize(size, params));\n    inst.mime = (types, params) => inst.check(core._mime(Array.isArray(types) ? types : [types], params));\n});\nexport function file(params) {\n    return core._file(ZodFile, params);\n}\nexport const ZodTransform = /*@__PURE__*/ core.$constructor(\"ZodTransform\", (inst, def) => {\n    core.$ZodTransform.init(inst, def);\n    ZodType.init(inst, def);\n    inst._zod.parse = (payload, _ctx) => {\n        if (_ctx.direction === \"backward\") {\n            throw new core.$ZodEncodeError(inst.constructor.name);\n        }\n        payload.addIssue = (issue) => {\n            if (typeof issue === \"string\") {\n                payload.issues.push(util.issue(issue, payload.value, def));\n            }\n            else {\n                // for Zod 3 backwards compatibility\n                const _issue = issue;\n                if (_issue.fatal)\n                    _issue.continue = false;\n                _issue.code ?? (_issue.code = \"custom\");\n                _issue.input ?? (_issue.input = payload.value);\n                _issue.inst ?? (_issue.inst = inst);\n                // _issue.continue ??= true;\n                payload.issues.push(util.issue(_issue));\n            }\n        };\n        const output = def.transform(payload.value, payload);\n        if (output instanceof Promise) {\n            return output.then((output) => {\n                payload.value = output;\n                return payload;\n            });\n        }\n        payload.value = output;\n        return payload;\n    };\n});\nexport function transform(fn) {\n    return new ZodTransform({\n        type: \"transform\",\n        transform: fn,\n    });\n}\nexport const ZodOptional = /*@__PURE__*/ core.$constructor(\"ZodOptional\", (inst, def) => {\n    core.$ZodOptional.init(inst, def);\n    ZodType.init(inst, def);\n    inst.unwrap = () => inst._zod.def.innerType;\n});\nexport function optional(innerType) {\n    return new ZodOptional({\n        type: \"optional\",\n        innerType: innerType,\n    });\n}\nexport const ZodNullable = /*@__PURE__*/ core.$constructor(\"ZodNullable\", (inst, def) => {\n    core.$ZodNullable.init(inst, def);\n    ZodType.init(inst, def);\n    inst.unwrap = () => inst._zod.def.innerType;\n});\nexport function nullable(innerType) {\n    return new ZodNullable({\n        type: \"nullable\",\n        innerType: innerType,\n    });\n}\n// nullish\nexport function nullish(innerType) {\n    return optional(nullable(innerType));\n}\nexport const ZodDefault = /*@__PURE__*/ core.$constructor(\"ZodDefault\", (inst, def) => {\n    core.$ZodDefault.init(inst, def);\n    ZodType.init(inst, def);\n    inst.unwrap = () => inst._zod.def.innerType;\n    inst.removeDefault = inst.unwrap;\n});\nexport function _default(innerType, defaultValue) {\n    return new ZodDefault({\n        type: \"default\",\n        innerType: innerType,\n        get defaultValue() {\n            return typeof defaultValue === \"function\" ? defaultValue() : util.shallowClone(defaultValue);\n        },\n    });\n}\nexport const ZodPrefault = /*@__PURE__*/ core.$constructor(\"ZodPrefault\", (inst, def) => {\n    core.$ZodPrefault.init(inst, def);\n    ZodType.init(inst, def);\n    inst.unwrap = () => inst._zod.def.innerType;\n});\nexport function prefault(innerType, defaultValue) {\n    return new ZodPrefault({\n        type: \"prefault\",\n        innerType: innerType,\n        get defaultValue() {\n            return typeof defaultValue === \"function\" ? defaultValue() : util.shallowClone(defaultValue);\n        },\n    });\n}\nexport const ZodNonOptional = /*@__PURE__*/ core.$constructor(\"ZodNonOptional\", (inst, def) => {\n    core.$ZodNonOptional.init(inst, def);\n    ZodType.init(inst, def);\n    inst.unwrap = () => inst._zod.def.innerType;\n});\nexport function nonoptional(innerType, params) {\n    return new ZodNonOptional({\n        type: \"nonoptional\",\n        innerType: innerType,\n        ...util.normalizeParams(params),\n    });\n}\nexport const ZodSuccess = /*@__PURE__*/ core.$constructor(\"ZodSuccess\", (inst, def) => {\n    core.$ZodSuccess.init(inst, def);\n    ZodType.init(inst, def);\n    inst.unwrap = () => inst._zod.def.innerType;\n});\nexport function success(innerType) {\n    return new ZodSuccess({\n        type: \"success\",\n        innerType: innerType,\n    });\n}\nexport const ZodCatch = /*@__PURE__*/ core.$constructor(\"ZodCatch\", (inst, def) => {\n    core.$ZodCatch.init(inst, def);\n    ZodType.init(inst, def);\n    inst.unwrap = () => inst._zod.def.innerType;\n    inst.removeCatch = inst.unwrap;\n});\nfunction _catch(innerType, catchValue) {\n    return new ZodCatch({\n        type: \"catch\",\n        innerType: innerType,\n        catchValue: (typeof catchValue === \"function\" ? catchValue : () => catchValue),\n    });\n}\nexport { _catch as catch };\nexport const ZodNaN = /*@__PURE__*/ core.$constructor(\"ZodNaN\", (inst, def) => {\n    core.$ZodNaN.init(inst, def);\n    ZodType.init(inst, def);\n});\nexport function nan(params) {\n    return core._nan(ZodNaN, params);\n}\nexport const ZodPipe = /*@__PURE__*/ core.$constructor(\"ZodPipe\", (inst, def) => {\n    core.$ZodPipe.init(inst, def);\n    ZodType.init(inst, def);\n    inst.in = def.in;\n    inst.out = def.out;\n});\nexport function pipe(in_, out) {\n    return new ZodPipe({\n        type: \"pipe\",\n        in: in_,\n        out: out,\n        // ...util.normalizeParams(params),\n    });\n}\nexport const ZodCodec = /*@__PURE__*/ core.$constructor(\"ZodCodec\", (inst, def) => {\n    ZodPipe.init(inst, def);\n    core.$ZodCodec.init(inst, def);\n});\nexport function codec(in_, out, params) {\n    return new ZodCodec({\n        type: \"pipe\",\n        in: in_,\n        out: out,\n        transform: params.decode,\n        reverseTransform: params.encode,\n    });\n}\nexport const ZodReadonly = /*@__PURE__*/ core.$constructor(\"ZodReadonly\", (inst, def) => {\n    core.$ZodReadonly.init(inst, def);\n    ZodType.init(inst, def);\n    inst.unwrap = () => inst._zod.def.innerType;\n});\nexport function readonly(innerType) {\n    return new ZodReadonly({\n        type: \"readonly\",\n        innerType: innerType,\n    });\n}\nexport const ZodTemplateLiteral = /*@__PURE__*/ core.$constructor(\"ZodTemplateLiteral\", (inst, def) => {\n    core.$ZodTemplateLiteral.init(inst, def);\n    ZodType.init(inst, def);\n});\nexport function templateLiteral(parts, params) {\n    return new ZodTemplateLiteral({\n        type: \"template_literal\",\n        parts,\n        ...util.normalizeParams(params),\n    });\n}\nexport const ZodLazy = /*@__PURE__*/ core.$constructor(\"ZodLazy\", (inst, def) => {\n    core.$ZodLazy.init(inst, def);\n    ZodType.init(inst, def);\n    inst.unwrap = () => inst._zod.def.getter();\n});\nexport function lazy(getter) {\n    return new ZodLazy({\n        type: \"lazy\",\n        getter: getter,\n    });\n}\nexport const ZodPromise = /*@__PURE__*/ core.$constructor(\"ZodPromise\", (inst, def) => {\n    core.$ZodPromise.init(inst, def);\n    ZodType.init(inst, def);\n    inst.unwrap = () => inst._zod.def.innerType;\n});\nexport function promise(innerType) {\n    return new ZodPromise({\n        type: \"promise\",\n        innerType: innerType,\n    });\n}\nexport const ZodFunction = /*@__PURE__*/ core.$constructor(\"ZodFunction\", (inst, def) => {\n    core.$ZodFunction.init(inst, def);\n    ZodType.init(inst, def);\n});\nexport function _function(params) {\n    return new ZodFunction({\n        type: \"function\",\n        input: Array.isArray(params?.input) ? tuple(params?.input) : (params?.input ?? array(unknown())),\n        output: params?.output ?? unknown(),\n    });\n}\nexport { _function as function };\nexport const ZodCustom = /*@__PURE__*/ core.$constructor(\"ZodCustom\", (inst, def) => {\n    core.$ZodCustom.init(inst, def);\n    ZodType.init(inst, def);\n});\n// custom checks\nexport function check(fn) {\n    const ch = new core.$ZodCheck({\n        check: \"custom\",\n        // ...util.normalizeParams(params),\n    });\n    ch._zod.check = fn;\n    return ch;\n}\nexport function custom(fn, _params) {\n    return core._custom(ZodCustom, fn ?? (() => true), _params);\n}\nexport function refine(fn, _params = {}) {\n    return core._refine(ZodCustom, fn, _params);\n}\n// superRefine\nexport function superRefine(fn) {\n    return core._superRefine(fn);\n}\nfunction _instanceof(cls, params = {\n    error: `Input not instance of ${cls.name}`,\n}) {\n    const inst = new ZodCustom({\n        type: \"custom\",\n        check: \"custom\",\n        fn: (data) => data instanceof cls,\n        abort: true,\n        ...util.normalizeParams(params),\n    });\n    inst._zod.bag.Class = cls;\n    return inst;\n}\nexport { _instanceof as instanceof };\n// stringbool\nexport const stringbool = (...args) => core._stringbool({\n    Codec: ZodCodec,\n    Boolean: ZodBoolean,\n    String: ZodString,\n}, ...args);\nexport function json(params) {\n    const jsonSchema = lazy(() => {\n        return union([string(params), number(), boolean(), _null(), array(jsonSchema), record(string(), jsonSchema)]);\n    });\n    return jsonSchema;\n}\n// preprocess\n// /** @deprecated Use `z.pipe()` and `z.transform()` instead. */\nexport function preprocess(fn, schema) {\n    return pipe(transform(fn), schema);\n}\n", "/**\n * This metadata contains validation rules.\n */\nvar ValidationMetadata = /** @class */ (function () {\n    // -------------------------------------------------------------------------\n    // Constructor\n    // -------------------------------------------------------------------------\n    function ValidationMetadata(args) {\n        /**\n         * Validation groups used for this validation.\n         */\n        this.groups = [];\n        /**\n         * Specifies if validated value is an array and each of its item must be validated.\n         */\n        this.each = false;\n        /*\n         * A transient set of data passed through to the validation result for response mapping\n         */\n        this.context = undefined;\n        this.type = args.type;\n        this.name = args.name;\n        this.target = args.target;\n        this.propertyName = args.propertyName;\n        this.constraints = args === null || args === void 0 ? void 0 : args.constraints;\n        this.constraintCls = args.constraintCls;\n        this.validationTypeOptions = args.validationTypeOptions;\n        if (args.validationOptions) {\n            this.message = args.validationOptions.message;\n            this.groups = args.validationOptions.groups;\n            this.always = args.validationOptions.always;\n            this.each = args.validationOptions.each;\n            this.context = args.validationOptions.context;\n        }\n    }\n    return ValidationMetadata;\n}());\nexport { ValidationMetadata };\n//# sourceMappingURL=ValidationMetadata.js.map", "import { ValidationMetadata } from '../metadata/ValidationMetadata';\n/**\n * Used to transform validation schemas to validation metadatas.\n */\nvar ValidationSchemaToMetadataTransformer = /** @class */ (function () {\n    function ValidationSchemaToMetadataTransformer() {\n    }\n    ValidationSchemaToMetadataTransformer.prototype.transform = function (schema) {\n        var metadatas = [];\n        Object.keys(schema.properties).forEach(function (property) {\n            schema.properties[property].forEach(function (validation) {\n                var validationOptions = {\n                    message: validation.message,\n                    groups: validation.groups,\n                    always: validation.always,\n                    each: validation.each,\n                };\n                var args = {\n                    type: validation.type,\n                    name: validation.name,\n                    target: schema.name,\n                    propertyName: property,\n                    constraints: validation.constraints,\n                    validationTypeOptions: validation.options,\n                    validationOptions: validationOptions,\n                };\n                metadatas.push(new ValidationMetadata(args));\n            });\n        });\n        return metadatas;\n    };\n    return ValidationSchemaToMetadataTransformer;\n}());\nexport { ValidationSchemaToMetadataTransformer };\n//# sourceMappingURL=ValidationSchemaToMetadataTransformer.js.map", "/**\n * This function returns the global object across Node and browsers.\n *\n * Note: `globalThis` is the standardized approach however it has been added to\n * Node.js in version 12. We need to include this snippet until Node 12 EOL.\n */\nexport function getGlobal() {\n    if (typeof globalThis !== 'undefined') {\n        return globalThis;\n    }\n    if (typeof global !== 'undefined') {\n        return global;\n    }\n    // eslint-disable-next-line @typescript-eslint/ban-ts-comment\n    // @ts-ignore: Cannot find name 'window'.\n    if (typeof window !== 'undefined') {\n        // eslint-disable-next-line @typescript-eslint/ban-ts-comment\n        // @ts-ignore: Cannot find name 'window'.\n        return window;\n    }\n    // eslint-disable-next-line @typescript-eslint/ban-ts-comment\n    // @ts-ignore: Cannot find name 'self'.\n    if (typeof self !== 'undefined') {\n        // eslint-disable-next-line @typescript-eslint/ban-ts-comment\n        // @ts-ignore: Cannot find name 'self'.\n        return self;\n    }\n}\n//# sourceMappingURL=get-global.util.js.map", "var __values = (this && this.__values) || function(o) {\n    var s = typeof Symbol === \"function\" && Symbol.iterator, m = s && o[s], i = 0;\n    if (m) return m.call(o);\n    if (o && typeof o.length === \"number\") return {\n        next: function () {\n            if (o && i >= o.length) o = void 0;\n            return { value: o && o[i++], done: !o };\n        }\n    };\n    throw new TypeError(s ? \"Object is not iterable.\" : \"Symbol.iterator is not defined.\");\n};\nvar __read = (this && this.__read) || function (o, n) {\n    var m = typeof Symbol === \"function\" && o[Symbol.iterator];\n    if (!m) return o;\n    var i = m.call(o), r, ar = [], e;\n    try {\n        while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\n    }\n    catch (error) { e = { error: error }; }\n    finally {\n        try {\n            if (r && !r.done && (m = i[\"return\"])) m.call(i);\n        }\n        finally { if (e) throw e.error; }\n    }\n    return ar;\n};\nvar __spreadArray = (this && this.__spreadArray) || function (to, from, pack) {\n    if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {\n        if (ar || !(i in from)) {\n            if (!ar) ar = Array.prototype.slice.call(from, 0, i);\n            ar[i] = from[i];\n        }\n    }\n    return to.concat(ar || Array.prototype.slice.call(from));\n};\nimport { ValidationSchemaToMetadataTransformer } from '../validation-schema/ValidationSchemaToMetadataTransformer';\nimport { getGlobal } from '../utils';\n/**\n * Storage all metadatas.\n */\nvar MetadataStorage = /** @class */ (function () {\n    function MetadataStorage() {\n        // -------------------------------------------------------------------------\n        // Private properties\n        // -------------------------------------------------------------------------\n        this.validationMetadatas = new Map();\n        this.constraintMetadatas = new Map();\n    }\n    Object.defineProperty(MetadataStorage.prototype, \"hasValidationMetaData\", {\n        get: function () {\n            return !!this.validationMetadatas.size;\n        },\n        enumerable: false,\n        configurable: true\n    });\n    // -------------------------------------------------------------------------\n    // Public Methods\n    // -------------------------------------------------------------------------\n    /**\n     * Adds a new validation metadata.\n     */\n    MetadataStorage.prototype.addValidationSchema = function (schema) {\n        var _this = this;\n        var validationMetadatas = new ValidationSchemaToMetadataTransformer().transform(schema);\n        validationMetadatas.forEach(function (validationMetadata) { return _this.addValidationMetadata(validationMetadata); });\n    };\n    /**\n     * Adds a new validation metadata.\n     */\n    MetadataStorage.prototype.addValidationMetadata = function (metadata) {\n        var existingMetadata = this.validationMetadatas.get(metadata.target);\n        if (existingMetadata) {\n            existingMetadata.push(metadata);\n        }\n        else {\n            this.validationMetadatas.set(metadata.target, [metadata]);\n        }\n    };\n    /**\n     * Adds a new constraint metadata.\n     */\n    MetadataStorage.prototype.addConstraintMetadata = function (metadata) {\n        var existingMetadata = this.constraintMetadatas.get(metadata.target);\n        if (existingMetadata) {\n            existingMetadata.push(metadata);\n        }\n        else {\n            this.constraintMetadatas.set(metadata.target, [metadata]);\n        }\n    };\n    /**\n     * Groups metadata by their property names.\n     */\n    MetadataStorage.prototype.groupByPropertyName = function (metadata) {\n        var grouped = {};\n        metadata.forEach(function (metadata) {\n            if (!grouped[metadata.propertyName])\n                grouped[metadata.propertyName] = [];\n            grouped[metadata.propertyName].push(metadata);\n        });\n        return grouped;\n    };\n    /**\n     * Gets all validation metadatas for the given object with the given groups.\n     */\n    MetadataStorage.prototype.getTargetValidationMetadatas = function (targetConstructor, targetSchema, always, strictGroups, groups) {\n        var e_1, _a;\n        var includeMetadataBecauseOfAlwaysOption = function (metadata) {\n            // `metadata.always` overrides global default.\n            if (typeof metadata.always !== 'undefined')\n                return metadata.always;\n            // `metadata.groups` overrides global default.\n            if (metadata.groups && metadata.groups.length)\n                return false;\n            // Use global default.\n            return always;\n        };\n        var excludeMetadataBecauseOfStrictGroupsOption = function (metadata) {\n            if (strictGroups) {\n                // Validation is not using groups.\n                if (!groups || !groups.length) {\n                    // `metadata.groups` has at least one group.\n                    if (metadata.groups && metadata.groups.length)\n                        return true;\n                }\n            }\n            return false;\n        };\n        // get directly related to a target metadatas\n        var filteredForOriginalMetadatasSearch = this.validationMetadatas.get(targetConstructor) || [];\n        var originalMetadatas = filteredForOriginalMetadatasSearch.filter(function (metadata) {\n            if (metadata.target !== targetConstructor && metadata.target !== targetSchema)\n                return false;\n            if (includeMetadataBecauseOfAlwaysOption(metadata))\n                return true;\n            if (excludeMetadataBecauseOfStrictGroupsOption(metadata))\n                return false;\n            if (groups && groups.length > 0)\n                return metadata.groups && !!metadata.groups.find(function (group) { return groups.indexOf(group) !== -1; });\n            return true;\n        });\n        // get metadatas for inherited classes\n        var filteredForInheritedMetadatasSearch = [];\n        try {\n            for (var _b = __values(this.validationMetadatas.entries()), _c = _b.next(); !_c.done; _c = _b.next()) {\n                var _d = __read(_c.value, 2), key = _d[0], value = _d[1];\n                if (targetConstructor.prototype instanceof key) {\n                    filteredForInheritedMetadatasSearch.push.apply(filteredForInheritedMetadatasSearch, __spreadArray([], __read(value), false));\n                }\n            }\n        }\n        catch (e_1_1) { e_1 = { error: e_1_1 }; }\n        finally {\n            try {\n                if (_c && !_c.done && (_a = _b.return)) _a.call(_b);\n            }\n            finally { if (e_1) throw e_1.error; }\n        }\n        var inheritedMetadatas = filteredForInheritedMetadatasSearch.filter(function (metadata) {\n            // if target is a string it's means we validate against a schema, and there is no inheritance support for schemas\n            if (typeof metadata.target === 'string')\n                return false;\n            if (metadata.target === targetConstructor)\n                return false;\n            if (metadata.target instanceof Function && !(targetConstructor.prototype instanceof metadata.target))\n                return false;\n            if (includeMetadataBecauseOfAlwaysOption(metadata))\n                return true;\n            if (excludeMetadataBecauseOfStrictGroupsOption(metadata))\n                return false;\n            if (groups && groups.length > 0)\n                return metadata.groups && !!metadata.groups.find(function (group) { return groups.indexOf(group) !== -1; });\n            return true;\n        });\n        // filter out duplicate metadatas, prefer original metadatas instead of inherited metadatas\n        var uniqueInheritedMetadatas = inheritedMetadatas.filter(function (inheritedMetadata) {\n            return !originalMetadatas.find(function (originalMetadata) {\n                return (originalMetadata.propertyName === inheritedMetadata.propertyName &&\n                    originalMetadata.type === inheritedMetadata.type);\n            });\n        });\n        return originalMetadatas.concat(uniqueInheritedMetadatas);\n    };\n    /**\n     * Gets all validator constraints for the given object.\n     */\n    MetadataStorage.prototype.getTargetValidatorConstraints = function (target) {\n        return this.constraintMetadatas.get(target) || [];\n    };\n    return MetadataStorage;\n}());\nexport { MetadataStorage };\n/**\n * Gets metadata storage.\n * Metadata storage follows the best practices and stores metadata in a global variable.\n */\nexport function getMetadataStorage() {\n    var global = getGlobal();\n    if (!global.classValidatorMetadataStorage) {\n        global.classValidatorMetadataStorage = new MetadataStorage();\n    }\n    return global.classValidatorMetadataStorage;\n}\n//# sourceMappingURL=MetadataStorage.js.map", "/**\n * Validation types.\n */\nvar ValidationTypes = /** @class */ (function () {\n    function ValidationTypes() {\n    }\n    /**\n     * Checks if validation type is valid.\n     */\n    ValidationTypes.isValid = function (type) {\n        var _this = this;\n        return (type !== 'isValid' &&\n            type !== 'getMessage' &&\n            Object.keys(this)\n                .map(function (key) { return _this[key]; })\n                .indexOf(type) !== -1);\n    };\n    /* system */\n    ValidationTypes.CUSTOM_VALIDATION = 'customValidation'; // done\n    ValidationTypes.NESTED_VALIDATION = 'nestedValidation'; // done\n    ValidationTypes.PROMISE_VALIDATION = 'promiseValidation'; // done\n    ValidationTypes.CONDITIONAL_VALIDATION = 'conditionalValidation'; // done\n    ValidationTypes.WHITELIST = 'whitelistValidation'; // done\n    ValidationTypes.IS_DEFINED = 'isDefined'; // done\n    return ValidationTypes;\n}());\nexport { ValidationTypes };\n//# sourceMappingURL=ValidationTypes.js.map", "/**\n * Container to be used by this library for inversion control. If container was not implicitly set then by default\n * container simply creates a new instance of the given class.\n */\nvar defaultContainer = new (/** @class */ (function () {\n    function class_1() {\n        this.instances = [];\n    }\n    class_1.prototype.get = function (someClass) {\n        var instance = this.instances.find(function (instance) { return instance.type === someClass; });\n        if (!instance) {\n            instance = { type: someClass, object: new someClass() };\n            this.instances.push(instance);\n        }\n        return instance.object;\n    };\n    return class_1;\n}()))();\nvar userContainer;\nvar userContainerOptions;\n/**\n * Sets container to be used by this library.\n */\nexport function useContainer(iocContainer, options) {\n    userContainer = iocContainer;\n    userContainerOptions = options;\n}\n/**\n * Gets the IOC container used by this library.\n */\nexport function getFromContainer(someClass) {\n    if (userContainer) {\n        try {\n            var instance = userContainer.get(someClass);\n            if (instance)\n                return instance;\n            if (!userContainerOptions || !userContainerOptions.fallback)\n                return instance;\n        }\n        catch (error) {\n            if (!userContainerOptions || !userContainerOptions.fallbackOnErrors)\n                throw error;\n        }\n    }\n    return defaultContainer.get(someClass);\n}\n//# sourceMappingURL=container.js.map", "import { getFromContainer } from '../container';\n/**\n * This metadata interface contains information for custom validators.\n */\nvar ConstraintMetadata = /** @class */ (function () {\n    // -------------------------------------------------------------------------\n    // Constructor\n    // -------------------------------------------------------------------------\n    function ConstraintMetadata(target, name, async) {\n        if (async === void 0) { async = false; }\n        this.target = target;\n        this.name = name;\n        this.async = async;\n    }\n    Object.defineProperty(ConstraintMetadata.prototype, \"instance\", {\n        // -------------------------------------------------------------------------\n        // Accessors\n        // -------------------------------------------------------------------------\n        /**\n         * Instance of the target custom validation class which performs validation.\n         */\n        get: function () {\n            return getFromContainer(this.target);\n        },\n        enumerable: false,\n        configurable: true\n    });\n    return ConstraintMetadata;\n}());\nexport { ConstraintMetadata };\n//# sourceMappingURL=ConstraintMetadata.js.map", "import { ConstraintMetadata } from './metadata/ConstraintMetadata';\nimport { ValidationMetadata } from './metadata/ValidationMetadata';\nimport { ValidationTypes } from './validation/ValidationTypes';\nimport { getFromContainer } from './container';\nimport { MetadataStorage, getMetadataStorage } from './metadata/MetadataStorage';\n/**\n * Registers a custom validation decorator.\n */\nexport function registerDecorator(options) {\n    var constraintCls;\n    if (options.validator instanceof Function) {\n        constraintCls = options.validator;\n        var constraintClasses = getFromContainer(MetadataStorage).getTargetValidatorConstraints(options.validator);\n        if (constraintClasses.length > 1) {\n            throw \"More than one implementation of ValidatorConstraintInterface found for validator on: \".concat(options.target.name, \":\").concat(options.propertyName);\n        }\n    }\n    else {\n        var validator_1 = options.validator;\n        constraintCls = /** @class */ (function () {\n            function CustomConstraint() {\n            }\n            CustomConstraint.prototype.validate = function (value, validationArguments) {\n                return validator_1.validate(value, validationArguments);\n            };\n            CustomConstraint.prototype.defaultMessage = function (validationArguments) {\n                if (validator_1.defaultMessage) {\n                    return validator_1.defaultMessage(validationArguments);\n                }\n                return '';\n            };\n            return CustomConstraint;\n        }());\n        getMetadataStorage().addConstraintMetadata(new ConstraintMetadata(constraintCls, options.name, options.async));\n    }\n    var validationMetadataArgs = {\n        type: options.name && ValidationTypes.isValid(options.name) ? options.name : ValidationTypes.CUSTOM_VALIDATION,\n        name: options.name,\n        target: options.target,\n        propertyName: options.propertyName,\n        validationOptions: options.options,\n        constraintCls: constraintCls,\n        constraints: options.constraints,\n    };\n    getMetadataStorage().addValidationMetadata(new ValidationMetadata(validationMetadataArgs));\n}\n//# sourceMappingURL=register-decorator.js.map", "import { v4 as e } from \"uuid\";\nimport { z as t } from \"zod\";\nimport { registerDecorator as n } from \"class-validator\";\n//#region src/types/FieldMetadataType.ts\nvar r = /* @__PURE__ */ function(e) {\n\treturn e.ACTOR = \"ACTOR\", e.ADDRESS = \"ADDRESS\", e.ARRAY = \"ARRAY\", e.BOOLEAN = \"BOOLEAN\", e.CURRENCY = \"CURRENCY\", e.DATE = \"DATE\", e.DATE_TIME = \"DATE_TIME\", e.EMAILS = \"EMAILS\", e.FILES = \"FILES\", e.FULL_NAME = \"FULL_NAME\", e.LINKS = \"LINKS\", e.MORPH_RELATION = \"MORPH_RELATION\", e.MULTI_SELECT = \"MULTI_SELECT\", e.NUMBER = \"NUMBER\", e.NUMERIC = \"NUMERIC\", e.PHONES = \"PHONES\", e.POSITION = \"POSITION\", e.RATING = \"RATING\", e.RAW_JSON = \"RAW_JSON\", e.RELATION = \"RELATION\", e.RICH_TEXT = \"RICH_TEXT\", e.SELECT = \"SELECT\", e.TEXT = \"TEXT\", e.TS_VECTOR = \"TS_VECTOR\", e.UUID = \"UUID\", e;\n}({}), ee = [\n\t\"addressStreet1\",\n\t\"addressStreet2\",\n\t\"addressCity\",\n\t\"addressState\",\n\t\"addressPostcode\",\n\t\"addressCountry\",\n\t\"addressLat\",\n\t\"addressLng\"\n], te = /* @__PURE__ */ function(e) {\n\treturn e.MIN = \"MIN\", e.MAX = \"MAX\", e.AVG = \"AVG\", e.SUM = \"SUM\", e.COUNT = \"COUNT\", e.COUNT_UNIQUE_VALUES = \"COUNT_UNIQUE_VALUES\", e.COUNT_EMPTY = \"COUNT_EMPTY\", e.COUNT_NOT_EMPTY = \"COUNT_NOT_EMPTY\", e.COUNT_TRUE = \"COUNT_TRUE\", e.COUNT_FALSE = \"COUNT_FALSE\", e.PERCENTAGE_EMPTY = \"PERCENTAGE_EMPTY\", e.PERCENTAGE_NOT_EMPTY = \"PERCENTAGE_NOT_EMPTY\", e;\n}({}), i = /* @__PURE__ */ function(e) {\n\treturn e.AdminPanel = \"admin-panel\", e.App = \"app\", e.ApplicationRegistrationClaim = \"application-registration-claim\", e.Apps = \"apps\", e.Auth = \"auth\", e.ClientConfig = \"client-config\", e.Cloudflare = \"cloudflare\", e.Emailing = \"emailing\", e.File = \"file\", e.FileUpload = \"file-upload\", e.Files = \"files\", e.GraphQL = \"graphql\", e.Health = \"healthz\", e.Mcp = \"mcp\", e.Metadata = \"metadata\", e.OAuth = \"oauth\", e.OpenApi = \"open-api\", e.PublicAssets = \"public-assets\", e.Rest = \"rest\", e.RouteTrigger = \"s\", e.Webhooks = \"webhooks\", e.WellKnown = \".well-known\", e;\n}({}), a = /* @__PURE__ */ function(e) {\n\treturn e.Settings = \"/settings\", e.Root = \"/\", e;\n}({}), o = /* @__PURE__ */ function(e) {\n\treturn e.Verify = \"/verify\", e.VerifyEmail = \"/verify-email\", e.SignInUp = \"/welcome\", e.Invite = \"/invite/:workspaceInviteHash\", e.ResetPassword = \"/reset-password/:passwordResetToken\", e.WorkspaceActivation = \"/workspace-activation\", e.CreateProfile = \"/create/profile\", e.SyncEmails = \"/sync/emails\", e.InstallApps = \"/install-apps\", e.InviteTeam = \"/invite-team\", e.PlanRequired = \"/plan-required\", e.PlanRequiredSuccess = \"/plan-required/payment-success\", e.BookCall = \"/book-call\", e.AiChat = \"/chat/:threadId?\", e.Index = \"/\", e.Home = \"/home\", e.TasksPage = \"/objects/tasks\", e.OpportunitiesPage = \"/objects/opportunities\", e.RecordIndexPage = \"/objects/:objectNamePlural\", e.RecordShowPage = \"/object/:objectNameSingular/:objectRecordId\", e.PageLayoutPage = \"/page/:pageLayoutId\", e.WorkflowCoreIndexPage = \"/workflow-core\", e.Settings = \"settings\", e.SettingsCatchAll = \"/settings/*\", e.Developers = \"developers\", e.DevelopersCatchAll = \"/developers/*\", e.Authorize = \"/authorize\", e.Dpa = \"/dpa\", e.NotFoundWildcard = \"*\", e.NotFound = \"/not-found\", e;\n}({}), s = /* @__PURE__ */ function(e) {\n\treturn e.WORKSPACE_MEMBER = \"WORKSPACE_MEMBER\", e.WORKSPACE = \"WORKSPACE\", e;\n}({}), c = /* @__PURE__ */ function(e) {\n\treturn e.AS_PARTICIPANT_AND_ORGANIZER = \"AS_PARTICIPANT_AND_ORGANIZER\", e.AS_PARTICIPANT = \"AS_PARTICIPANT\", e.AS_ORGANIZER = \"AS_ORGANIZER\", e.NONE = \"NONE\", e;\n}({}), l = /* @__PURE__ */ function(e) {\n\treturn e.PENDING_CONFIGURATION = \"PENDING_CONFIGURATION\", e.CALENDAR_EVENT_LIST_FETCH_PENDING = \"CALENDAR_EVENT_LIST_FETCH_PENDING\", e.CALENDAR_EVENT_LIST_FETCH_SCHEDULED = \"CALENDAR_EVENT_LIST_FETCH_SCHEDULED\", e.CALENDAR_EVENT_LIST_FETCH_ONGOING = \"CALENDAR_EVENT_LIST_FETCH_ONGOING\", e.CALENDAR_EVENTS_IMPORT_PENDING = \"CALENDAR_EVENTS_IMPORT_PENDING\", e.CALENDAR_EVENTS_IMPORT_SCHEDULED = \"CALENDAR_EVENTS_IMPORT_SCHEDULED\", e.CALENDAR_EVENTS_IMPORT_ONGOING = \"CALENDAR_EVENTS_IMPORT_ONGOING\", e.FAILED = \"FAILED\", e;\n}({}), u = /* @__PURE__ */ function(e) {\n\treturn e.NOT_SYNCED = \"NOT_SYNCED\", e.ONGOING = \"ONGOING\", e.ACTIVE = \"ACTIVE\", e.FAILED_INSUFFICIENT_PERMISSIONS = \"FAILED_INSUFFICIENT_PERMISSIONS\", e.FAILED_UNKNOWN = \"FAILED_UNKNOWN\", e;\n}({}), d = /* @__PURE__ */ function(e) {\n\treturn e.METADATA = \"METADATA\", e.SHARE_EVERYTHING = \"SHARE_EVERYTHING\", e;\n}({}), f = /* @__PURE__ */ function(e) {\n\treturn e.GLOBAL = \"GLOBAL\", e.GLOBAL_OBJECT_CONTEXT = \"GLOBAL_OBJECT_CONTEXT\", e.RECORD_SELECTION = \"RECORD_SELECTION\", e.FALLBACK = \"FALLBACK\", e;\n}({}), p = /* @__PURE__ */ function(e) {\n\treturn e.GLOBAL = \"GLOBAL\", e.INDEX_PAGE_BULK_SELECTION = \"INDEX_PAGE_BULK_SELECTION\", e.INDEX_PAGE_SINGLE_RECORD_SELECTION = \"INDEX_PAGE_SINGLE_RECORD_SELECTION\", e.INDEX_PAGE_NO_SELECTION = \"INDEX_PAGE_NO_SELECTION\", e.SHOW_PAGE = \"SHOW_PAGE\", e.PAGE_EDIT_MODE = \"PAGE_EDIT_MODE\", e;\n}({}), m = /* @__PURE__ */ function(e) {\n\treturn e.EMAIL = \"EMAIL\", e.CALENDAR = \"CALENDAR\", e.WORKFLOW = \"WORKFLOW\", e.AGENT = \"AGENT\", e.API = \"API\", e.IMPORT = \"IMPORT\", e.MANUAL = \"MANUAL\", e.SYSTEM = \"SYSTEM\", e.WEBHOOK = \"WEBHOOK\", e.APPLICATION = \"APPLICATION\", e;\n}({}), h = {\n\ttype: r.ACTOR,\n\tproperties: [\n\t\t{\n\t\t\tname: \"source\",\n\t\t\ttype: r.SELECT,\n\t\t\thidden: !1,\n\t\t\tisRequired: !0,\n\t\t\toptions: Object.keys(m).map((t, n) => ({\n\t\t\t\tid: e(),\n\t\t\t\tlabel: `${m[t].toLowerCase()}`,\n\t\t\t\tvalue: t,\n\t\t\t\tposition: n\n\t\t\t}))\n\t\t},\n\t\t{\n\t\t\tname: \"workspaceMemberId\",\n\t\t\ttype: r.UUID,\n\t\t\thidden: \"input\",\n\t\t\tisRequired: !1\n\t\t},\n\t\t{\n\t\t\tname: \"name\",\n\t\t\ttype: r.TEXT,\n\t\t\thidden: \"input\",\n\t\t\tisRequired: !0\n\t\t},\n\t\t{\n\t\t\tname: \"context\",\n\t\t\ttype: r.RAW_JSON,\n\t\t\thidden: !1,\n\t\t\tisRequired: !1\n\t\t}\n\t]\n}, g = {\n\ttype: r.ADDRESS,\n\tproperties: [\n\t\t{\n\t\t\tname: \"addressStreet1\",\n\t\t\ttype: r.TEXT,\n\t\t\thidden: !1,\n\t\t\tisRequired: !1\n\t\t},\n\t\t{\n\t\t\tname: \"addressStreet2\",\n\t\t\ttype: r.TEXT,\n\t\t\thidden: !1,\n\t\t\tisRequired: !1\n\t\t},\n\t\t{\n\t\t\tname: \"addressCity\",\n\t\t\ttype: r.TEXT,\n\t\t\thidden: !1,\n\t\t\tisRequired: !1\n\t\t},\n\t\t{\n\t\t\tname: \"addressPostcode\",\n\t\t\ttype: r.TEXT,\n\t\t\thidden: !1,\n\t\t\tisRequired: !1\n\t\t},\n\t\t{\n\t\t\tname: \"addressState\",\n\t\t\ttype: r.TEXT,\n\t\t\thidden: !1,\n\t\t\tisRequired: !1\n\t\t},\n\t\t{\n\t\t\tname: \"addressCountry\",\n\t\t\ttype: r.TEXT,\n\t\t\thidden: !1,\n\t\t\tisRequired: !1\n\t\t},\n\t\t{\n\t\t\tname: \"addressLat\",\n\t\t\ttype: r.NUMERIC,\n\t\t\thidden: !1,\n\t\t\tisRequired: !1\n\t\t},\n\t\t{\n\t\t\tname: \"addressLng\",\n\t\t\ttype: r.NUMERIC,\n\t\t\thidden: !1,\n\t\t\tisRequired: !1\n\t\t}\n\t]\n}, _ = {\n\ttype: r.CURRENCY,\n\tproperties: [{\n\t\tname: \"amountMicros\",\n\t\ttype: r.NUMERIC,\n\t\thidden: !1,\n\t\tisRequired: !1\n\t}, {\n\t\tname: \"currencyCode\",\n\t\ttype: r.TEXT,\n\t\thidden: !1,\n\t\tisRequired: !1\n\t}]\n}, v = {\n\ttype: r.EMAILS,\n\tproperties: [{\n\t\tname: \"primaryEmail\",\n\t\ttype: r.TEXT,\n\t\thidden: !1,\n\t\tisRequired: !1,\n\t\tisIncludedInUniqueConstraint: !0\n\t}, {\n\t\tname: \"additionalEmails\",\n\t\ttype: r.RAW_JSON,\n\t\thidden: !1,\n\t\tisRequired: !1\n\t}]\n}, y = {\n\ttype: r.FULL_NAME,\n\tproperties: [{\n\t\tname: \"firstName\",\n\t\ttype: r.TEXT,\n\t\thidden: !1,\n\t\tisRequired: !1,\n\t\tisIncludedInUniqueConstraint: !1\n\t}, {\n\t\tname: \"lastName\",\n\t\ttype: r.TEXT,\n\t\thidden: !1,\n\t\tisRequired: !1,\n\t\tisIncludedInUniqueConstraint: !1\n\t}]\n}, b = {\n\ttype: r.LINKS,\n\tproperties: [\n\t\t{\n\t\t\tname: \"primaryLinkLabel\",\n\t\t\ttype: r.TEXT,\n\t\t\thidden: !1,\n\t\t\tisRequired: !1\n\t\t},\n\t\t{\n\t\t\tname: \"primaryLinkUrl\",\n\t\t\ttype: r.TEXT,\n\t\t\thidden: !1,\n\t\t\tisRequired: !1,\n\t\t\tisIncludedInUniqueConstraint: !0\n\t\t},\n\t\t{\n\t\t\tname: \"secondaryLinks\",\n\t\t\ttype: r.RAW_JSON,\n\t\t\thidden: !1,\n\t\t\tisRequired: !1\n\t\t}\n\t]\n}, x = {\n\ttype: r.PHONES,\n\tproperties: [\n\t\t{\n\t\t\tname: \"primaryPhoneNumber\",\n\t\t\ttype: r.TEXT,\n\t\t\thidden: !1,\n\t\t\tisRequired: !1,\n\t\t\tisIncludedInUniqueConstraint: !0\n\t\t},\n\t\t{\n\t\t\tname: \"primaryPhoneCountryCode\",\n\t\t\ttype: r.TEXT,\n\t\t\thidden: !1,\n\t\t\tisRequired: !1,\n\t\t\tisIncludedInUniqueConstraint: !0\n\t\t},\n\t\t{\n\t\t\tname: \"primaryPhoneCallingCode\",\n\t\t\ttype: r.TEXT,\n\t\t\thidden: !1,\n\t\t\tisRequired: !1,\n\t\t\tisIncludedInUniqueConstraint: !0\n\t\t},\n\t\t{\n\t\t\tname: \"additionalPhones\",\n\t\t\ttype: r.RAW_JSON,\n\t\t\thidden: !1,\n\t\t\tisRequired: !1\n\t\t}\n\t]\n}, S = {\n\ttype: r.RICH_TEXT,\n\tproperties: [{\n\t\tname: \"blocknote\",\n\t\ttype: r.TEXT,\n\t\thidden: !1,\n\t\tisRequired: !1\n\t}, {\n\t\tname: \"markdown\",\n\t\ttype: r.TEXT,\n\t\thidden: !1,\n\t\tisRequired: !1\n\t}]\n}, C = t.object({\n\tblocknote: t.string().nullable().optional(),\n\tmarkdown: t.string().nullable()\n}), w = new Map([\n\t[r.LINKS, b],\n\t[r.CURRENCY, _],\n\t[r.FULL_NAME, y],\n\t[r.ADDRESS, g],\n\t[r.ACTOR, h],\n\t[r.EMAILS, v],\n\t[r.PHONES, x],\n\t[r.RICH_TEXT, S]\n]), T = /* @__PURE__ */ function(e) {\n\treturn e.GOOGLE = \"google\", e.MICROSOFT = \"microsoft\", e.IMAP_SMTP_CALDAV = \"imap_smtp_caldav\", e.OIDC = \"oidc\", e.SAML = \"saml\", e.EMAIL_GROUP = \"email_group\", e.APP = \"app\", e;\n}({}), E = /* @__PURE__ */ function(e) {\n\treturn e.Index = \"INDEX_PAGE\", e.Record = \"RECORD_PAGE\", e.Standalone = \"STANDALONE_PAGE\", e.Settings = \"SETTINGS_PAGE\", e;\n}({}), D = /* @__PURE__ */ function(e) {\n\treturn e.Activity = \"activity\", e.ActivityTarget = \"activityTarget\", e.ApiKey = \"apiKey\", e.Attachment = \"attachment\", e.Blocklist = \"blocklist\", e.CalendarChannel = \"calendarChannel\", e.CalendarEvent = \"calendarEvent\", e.CalendarEventTarget = \"calendarEventTarget\", e.CallRecording = \"callRecording\", e.Comment = \"comment\", e.Company = \"company\", e.Dashboard = \"dashboard\", e.TimelineActivity = \"timelineActivity\", e.Message = \"message\", e.MessageCampaign = \"messageCampaign\", e.MessageChannel = \"messageChannel\", e.MessageList = \"messageList\", e.MessageParticipant = \"messageParticipant\", e.MessageFolder = \"messageFolder\", e.MessageThread = \"messageThread\", e.MessageThreadTarget = \"messageThreadTarget\", e.Note = \"note\", e.NoteTarget = \"noteTarget\", e.Opportunity = \"opportunity\", e.Person = \"person\", e.Task = \"task\", e.TaskTarget = \"taskTarget\", e.Webhook = \"webhook\", e.WorkspaceMember = \"workspaceMember\", e.MessageThreadSubscriber = \"messageThreadSubscriber\", e.Workflow = \"workflow\", e.MessageChannelMessageAssociation = \"messageChannelMessageAssociation\", e.WorkflowVersion = \"workflowVersion\", e.WorkflowRun = \"workflowRun\", e;\n}({}), O = /* @__PURE__ */ function(e) {\n\treturn e.CREATE = \"CREATE\", e.UPDATE = \"UPDATE\", e.DELETE = \"DELETE\", e.RESTORE = \"RESTORE\", e.DESTROY = \"DESTROY\", e;\n}({}), k = /* @__PURE__ */ function(e) {\n\treturn e.WORKSPACE_EVENT = \"WORKSPACE_EVENT\", e.PAGEVIEW = \"PAGEVIEW\", e.OBJECT_EVENT = \"OBJECT_EVENT\", e.USAGE_EVENT = \"USAGE_EVENT\", e.APPLICATION_LOG = \"APPLICATION_LOG\", e;\n}({}), A = /* @__PURE__ */ function(e) {\n\treturn e.IS_APP_CLAIMING_ENABLED = \"IS_APP_CLAIMING_ENABLED\", e.IS_UNIQUE_INDEXES_ENABLED = \"IS_UNIQUE_INDEXES_ENABLED\", e.IS_JSON_FILTER_ENABLED = \"IS_JSON_FILTER_ENABLED\", e.IS_EMAIL_GROUP_ENABLED = \"IS_EMAIL_GROUP_ENABLED\", e.IS_JUNCTION_RELATIONS_ENABLED = \"IS_JUNCTION_RELATIONS_ENABLED\", e.IS_REST_METADATA_API_NEW_FORMAT_DIRECT = \"IS_REST_METADATA_API_NEW_FORMAT_DIRECT\", e.IS_LOGIC_FUNCTION_PREBUILT_MODE_ENABLED = \"IS_LOGIC_FUNCTION_PREBUILT_MODE_ENABLED\", e.IS_WORKFLOW_VERSION_IN_CORE_ENABLED = \"IS_WORKFLOW_VERSION_IN_CORE_ENABLED\", e.IS_WORKFLOW_CORE_INDEX_PAGE_ENABLED = \"IS_WORKFLOW_CORE_INDEX_PAGE_ENABLED\", e.IS_WORKFLOW_DISPATCH_FROM_CORE_ENABLED = \"IS_WORKFLOW_DISPATCH_FROM_CORE_ENABLED\", e.IS_API_RATE_LIMIT_V2_ENABLED = \"IS_API_RATE_LIMIT_V2_ENABLED\", e.IS_MESSAGE_CALENDAR_TARGET_READ_ENABLED = \"IS_MESSAGE_CALENDAR_TARGET_READ_ENABLED\", e;\n}({}), j = {\n\tUUID: \"uuid\",\n\tNOW: \"now\"\n}, M = [\n\tr.RELATION,\n\tr.MORPH_RELATION,\n\tr.FILES,\n\tr.TS_VECTOR\n], N = (e) => !M.includes(e), P = /* @__PURE__ */ function(e) {\n\treturn e.COPY = \"COPY\", e.OPEN_LINK = \"OPEN_LINK\", e.OPEN_IN_APP = \"OPEN_IN_APP\", e;\n}({}), F = class {}, I = class extends F {}, L = /* @__PURE__ */ function(e) {\n\treturn e.FLOAT = \"float\", e.INT = \"int\", e.BIGINT = \"bigint\", e;\n}({}), R = /* @__PURE__ */ function(e) {\n\treturn e.RELATIVE = \"RELATIVE\", e.USER_SETTINGS = \"USER_SETTINGS\", e.CUSTOM = \"CUSTOM\", e;\n}({}), z = [\"url\", \"domain\"], B = {\n\tARCHIVE: \"ARCHIVE\",\n\tAUDIO: \"AUDIO\",\n\tIMAGE: \"IMAGE\",\n\tPRESENTATION: \"PRESENTATION\",\n\tSPREADSHEET: \"SPREADSHEET\",\n\tTEXT_DOCUMENT: \"TEXT_DOCUMENT\",\n\tVIDEO: \"VIDEO\",\n\tOTHER: \"OTHER\"\n}, V = /* @__PURE__ */ function(e) {\n\treturn e.CorePicture = \"core-picture\", e.AgentChat = \"agent-chat\", e.BuiltLogicFunction = \"built-logic-function\", e.BuiltFrontComponent = \"built-front-component\", e.PublicAsset = \"public-asset\", e.Source = \"source\", e.FilesField = \"files-field\", e.Dependencies = \"dependencies\", e.Workflow = \"workflow\", e.EmailAttachment = \"email-attachment\", e.EmailImage = \"email-image\", e.AppTarball = \"app-tarball\", e.GeneratedSdkClient = \"generated-sdk-client\", e.Dpa = \"dpa\", e;\n}({}), H = [\n\t\"TEXT\",\n\t\"PHONES\",\n\t\"EMAILS\",\n\t\"DATE_TIME\",\n\t\"DATE\",\n\t\"NUMBER\",\n\t\"CURRENCY\",\n\t\"FULL_NAME\",\n\t\"LINKS\",\n\t\"RELATION\",\n\t\"ADDRESS\",\n\t\"SELECT\",\n\t\"RATING\",\n\t\"MULTI_SELECT\",\n\t\"ACTOR\",\n\t\"ARRAY\",\n\t\"RAW_JSON\",\n\t\"FILES\",\n\t\"BOOLEAN\",\n\t\"UUID\"\n], U = /* @__PURE__ */ function(e) {\n\treturn e.MONDAY = \"MONDAY\", e.SUNDAY = \"SUNDAY\", e.SATURDAY = \"SATURDAY\", e;\n}({}), W = /* @__PURE__ */ function(e) {\n\treturn e.GET = \"GET\", e.POST = \"POST\", e.PUT = \"PUT\", e.PATCH = \"PATCH\", e.DELETE = \"DELETE\", e;\n}({}), G = /* @__PURE__ */ function(e) {\n\treturn e.BTREE = \"BTREE\", e.GIN = \"GIN\", e;\n}({}), K = \"__twentyHttpResponse\", q = (e) => typeof e == \"number\" && Number.isInteger(e) && e >= 100 && e <= 599, J = (e) => typeof e == \"object\" && !!e && !Array.isArray(e) && Object.values(e).every((e) => typeof e == \"string\"), Y = (e) => {\n\tif (typeof e != \"object\" || !e) return !1;\n\tlet t = e;\n\treturn t.__twentyHttpResponse === !0 && (t.status === void 0 || q(t.status)) && (t.headers === void 0 || J(t.headers));\n}, X = /* @__PURE__ */ function(e) {\n\treturn e.DRAFT = \"DRAFT\", e.SCHEDULED = \"SCHEDULED\", e.SENDING = \"SENDING\", e.SENT = \"SENT\", e.SENT_WITH_ERRORS = \"SENT_WITH_ERRORS\", e.CANCELED = \"CANCELED\", e;\n}({}), Z = /* @__PURE__ */ function(e) {\n\treturn e.SENT_AND_RECEIVED = \"SENT_AND_RECEIVED\", e.SENT = \"SENT\", e.NONE = \"NONE\", e;\n}({}), Q = /* @__PURE__ */ function(e) {\n\treturn e.GROUP_EMAILS_DELETION = \"GROUP_EMAILS_DELETION\", e.GROUP_EMAILS_IMPORT = \"GROUP_EMAILS_IMPORT\", e.NONE = \"NONE\", e;\n}({}), ne = /* @__PURE__ */ function(e) {\n\treturn e.PENDING_CONFIGURATION = \"PENDING_CONFIGURATION\", e.MESSAGE_LIST_FETCH_PENDING = \"MESSAGE_LIST_FETCH_PENDING\", e.MESSAGE_LIST_FETCH_SCHEDULED = \"MESSAGE_LIST_FETCH_SCHEDULED\", e.MESSAGE_LIST_FETCH_ONGOING = \"MESSAGE_LIST_FETCH_ONGOING\", e.MESSAGES_IMPORT_PENDING = \"MESSAGES_IMPORT_PENDING\", e.MESSAGES_IMPORT_SCHEDULED = \"MESSAGES_IMPORT_SCHEDULED\", e.MESSAGES_IMPORT_ONGOING = \"MESSAGES_IMPORT_ONGOING\", e.FAILED = \"FAILED\", e;\n}({}), re = /* @__PURE__ */ function(e) {\n\treturn e.NOT_SYNCED = \"NOT_SYNCED\", e.ONGOING = \"ONGOING\", e.ACTIVE = \"ACTIVE\", e.FAILED_INSUFFICIENT_PERMISSIONS = \"FAILED_INSUFFICIENT_PERMISSIONS\", e.FAILED_UNKNOWN = \"FAILED_UNKNOWN\", e;\n}({}), ie = /* @__PURE__ */ function(e) {\n\treturn e.EMAIL = \"EMAIL\", e.SMS = \"SMS\", e.EMAIL_GROUP = \"EMAIL_GROUP\", e;\n}({}), ae = /* @__PURE__ */ function(e) {\n\treturn e.METADATA = \"METADATA\", e.SUBJECT = \"SUBJECT\", e.SHARE_EVERYTHING = \"SHARE_EVERYTHING\", e;\n}({}), oe = /* @__PURE__ */ function(e) {\n\treturn e.ALL_FOLDERS = \"ALL_FOLDERS\", e.SELECTED_FOLDERS = \"SELECTED_FOLDERS\", e;\n}({}), se = /* @__PURE__ */ function(e) {\n\treturn e.FOLDER_DELETION = \"FOLDER_DELETION\", e.FOLDER_IMPORT = \"FOLDER_IMPORT\", e.NONE = \"NONE\", e;\n}({}), ce = /* @__PURE__ */ function(e) {\n\treturn e.FROM = \"FROM\", e.TO = \"TO\", e.CC = \"CC\", e.BCC = \"BCC\", e.REPLY_TO = \"REPLY_TO\", e;\n}({}), le = /* @__PURE__ */ function(e) {\n\treturn e.OPEN = \"OPEN\", e.APPLICATION = \"APPLICATION\", e.SYSTEM = \"SYSTEM\", e;\n}({}), ue = /* @__PURE__ */ function(e) {\n\treturn e.VIEW = \"VIEW\", e.FOLDER = \"FOLDER\", e.LINK = \"LINK\", e.OBJECT = \"OBJECT\", e.RECORD = \"RECORD\", e.PAGE_LAYOUT = \"PAGE_LAYOUT\", e;\n}({}), de = /* @__PURE__ */ function(e) {\n\treturn e.SIDE_PANEL = \"SIDE_PANEL\", e.RECORD_PAGE = \"RECORD_PAGE\", e.USER_CHOICE = \"USER_CHOICE\", e;\n}({}), fe = /* @__PURE__ */ function(e) {\n\treturn e.AscNullsFirst = \"AscNullsFirst\", e.AscNullsLast = \"AscNullsLast\", e.DescNullsFirst = \"DescNullsFirst\", e.DescNullsLast = \"DescNullsLast\", e;\n}({}), pe = /* @__PURE__ */ function(e) {\n\treturn e.DAY = \"DAY\", e.MONTH = \"MONTH\", e.QUARTER = \"QUARTER\", e.YEAR = \"YEAR\", e.WEEK = \"WEEK\", e.DAY_OF_THE_WEEK = \"DAY_OF_THE_WEEK\", e.MONTH_OF_THE_YEAR = \"MONTH_OF_THE_YEAR\", e.QUARTER_OF_THE_YEAR = \"QUARTER_OF_THE_YEAR\", e.NONE = \"NONE\", e;\n}({}), me = /* @__PURE__ */ function(e) {\n\treturn e.SIDE_PANEL = \"SIDE_PANEL\", e.RECORD_PAGE = \"RECORD_PAGE\", e;\n}({}), he = [\n\t\"AGGREGATE_CHART\",\n\t\"PIE_CHART\",\n\t\"BAR_CHART\",\n\t\"LINE_CHART\"\n], ge = /* @__PURE__ */ function(e) {\n\treturn e.GRID = \"GRID\", e.VERTICAL_LIST = \"VERTICAL_LIST\", e.CANVAS = \"CANVAS\", e;\n}({}), _e = /* @__PURE__ */ function(e) {\n\treturn e.RECORD_INDEX = \"RECORD_INDEX\", e.RECORD_PAGE = \"RECORD_PAGE\", e.DASHBOARD = \"DASHBOARD\", e.STANDALONE_PAGE = \"STANDALONE_PAGE\", e.RECORD_FORM = \"RECORD_FORM\", e;\n}({}), ve = /* @__PURE__ */ function(e) {\n\treturn e.VIEW = \"VIEW\", e.IFRAME = \"IFRAME\", e.FIELD = \"FIELD\", e.FIELDS = \"FIELDS\", e.GRAPH = \"GRAPH\", e.STANDALONE_RICH_TEXT = \"STANDALONE_RICH_TEXT\", e.TIMELINE = \"TIMELINE\", e.TASKS = \"TASKS\", e.NOTES = \"NOTES\", e.FILES = \"FILES\", e.EMAILS = \"EMAILS\", e.CALENDAR = \"CALENDAR\", e.FIELD_RICH_TEXT = \"FIELD_RICH_TEXT\", e.WORKFLOW = \"WORKFLOW\", e.WORKFLOW_VERSION = \"WORKFLOW_VERSION\", e.WORKFLOW_RUN = \"WORKFLOW_RUN\", e.FRONT_COMPONENT = \"FRONT_COMPONENT\", e.RECORD_TABLE = \"RECORD_TABLE\", e.EMAIL_THREAD = \"EMAIL_THREAD\", e.CALL_RECORDING_SUMMARY = \"CALL_RECORDING_SUMMARY\", e.CALL_RECORDING_TRANSCRIPT = \"CALL_RECORDING_TRANSCRIPT\", e.MESSAGE_CAMPAIGN_BODY = \"MESSAGE_CAMPAIGN_BODY\", e.MESSAGE_CAMPAIGN_DETAILS = \"MESSAGE_CAMPAIGN_DETAILS\", e.FORM_FIELD = \"FORM_FIELD\", e;\n}({}), ye = /* @__PURE__ */ function(e) {\n\treturn e.AND = \"AND\", e.OR = \"OR\", e;\n}({}), be = /* @__PURE__ */ function(e) {\n\treturn e.CASCADE = \"CASCADE\", e.RESTRICT = \"RESTRICT\", e.SET_NULL = \"SET_NULL\", e.NO_ACTION = \"NO_ACTION\", e;\n}({}), xe = /* @__PURE__ */ function(e) {\n\treturn e.MANY_TO_ONE = \"MANY_TO_ONE\", e.ONE_TO_MANY = \"ONE_TO_MANY\", e;\n}({}), Se = /* @__PURE__ */ function(e) {\n\treturn e.AND = \"AND\", e.OR = \"OR\", e;\n}({}), Ce = /* @__PURE__ */ function(e) {\n\treturn e.IS = \"IS\", e.IS_NOT_NULL = \"IS_NOT_NULL\", e.IS_NOT = \"IS_NOT\", e.LESS_THAN_OR_EQUAL = \"LESS_THAN_OR_EQUAL\", e.GREATER_THAN_OR_EQUAL = \"GREATER_THAN_OR_EQUAL\", e.IS_BEFORE = \"IS_BEFORE\", e.IS_AFTER = \"IS_AFTER\", e.CONTAINS = \"CONTAINS\", e.DOES_NOT_CONTAIN = \"DOES_NOT_CONTAIN\", e.IS_EMPTY = \"IS_EMPTY\", e.IS_NOT_EMPTY = \"IS_NOT_EMPTY\", e.IS_RELATIVE = \"IS_RELATIVE\", e.IS_IN_PAST = \"IS_IN_PAST\", e.IS_IN_FUTURE = \"IS_IN_FUTURE\", e.IS_TODAY = \"IS_TODAY\", e.VECTOR_SEARCH = \"VECTOR_SEARCH\", e;\n}({}), we = \"__SerializedRelationBrand__\", Te = /* @__PURE__ */ function(e) {\n\treturn e.ApplicationRegistration = \"application-registration\", e;\n}({}), Ee = /* @__PURE__ */ function(e) {\n\treturn e.ProfilePage = \"profile\", e.TwoFactorAuthenticationStrategyConfig = \"profile/two-factor-authentication/:twoFactorAuthenticationStrategy\", e.Experience = \"experience\", e.Accounts = \"accounts\", e.NewAccount = \"accounts/new\", e.AccountsConfiguration = \"accounts/configuration/:connectedAccountId\", e.AccountsCalendars = \"accounts/calendars\", e.AccountsEmails = \"accounts/emails\", e.NewImapSmtpCaldavConnection = \"accounts/new-imap-smtp-caldav-connection\", e.EditImapSmtpCaldavConnection = \"accounts/edit-imap-smtp-caldav-connection/:connectedAccountId\", e.Billing = \"billing\", e.BillingPlans = \"billing/plans\", e.Usage = \"billing/usage\", e.UsageUserDetail = \"billing/usage/user/:userWorkspaceId\", e.Enterprise = \"enterprise\", e.Objects = \"objects\", e.ObjectOverview = \"objects/overview\", e.ObjectDetail = \"objects/:objectNamePlural\", e.ObjectNewFieldSelect = \"objects/:objectNamePlural/new-field/select\", e.ObjectNewFieldConfigure = \"objects/:objectNamePlural/new-field/configure\", e.ObjectNewIndex = \"objects/:objectNamePlural/new-index\", e.ObjectFieldEdit = \"objects/:objectNamePlural/:fieldName\", e.NewObject = \"objects/new\", e.Layout = \"layout\", e.WorkspaceMembersPage = \"members\", e.WorkspaceMemberPage = \"members/:workspaceMemberId\", e.General = \"general\", e.Subdomain = \"general/subdomain\", e.CustomDomain = \"general/custom-domain\", e.WorkspaceCommunications = \"communications\", e.EmailGroupChannelDetail = \"email/email-group/:messageChannelId\", e.NewEmailGroupChannel = \"email/new-email-group\", e.NewUnsubscribeTopic = \"email/new-unsubscribe-topic\", e.UnsubscribeTopicDetail = \"email/unsubscribe-topic/:unsubscribeTopicId\", e.Unsubscribe = \"communications/unsubscribe\", e.PublicDomain = \"applications/public-domain\", e.NewApprovedAccessDomain = \"security/approved-access-domain/new\", e.Community = \"community\", e.AI = \"ai\", e.AiUsageUserDetail = \"ai/usage/user/:userWorkspaceId\", e.AiPrompts = \"ai/prompts\", e.AiNewAgent = \"ai/new-agent\", e.AiAgentDetail = \"ai/agents/:agentId\", e.AiAgentTurnDetail = \"ai/agents/:agentId/turns/:turnId\", e.AiNewSkill = \"ai/new-skill\", e.AiSkillDetail = \"ai/skills/:skillId\", e.AiToolDetail = \"ai/tools/:toolIdentifier\", e.Applications = \"applications\", e.ApplicationDetail = \"applications/:applicationId\", e.ApplicationConnectionDetail = \"applications/:applicationId/connections/:connectedAccountId\", e.ApplicationLogicFunctionDetail = \"applications/:applicationId/logicFunctions/:logicFunctionId\", e.ApplicationFrontComponentDetail = \"applications/:applicationId/frontComponents/:frontComponentId\", e.ApplicationCommandMenuItemDetail = \"applications/:applicationId/commandMenuItems/:commandMenuItemId\", e.ApplicationTimelineActivityTypeDetail = \"applications/:applicationId/timelineActivityTypes/:timelineActivityTypeId\", e.ApplicationViewDetail = \"applications/:applicationId/views/:viewUniversalIdentifier\", e.ApplicationPageLayoutDetail = \"applications/:applicationId/pageLayouts/:pageLayoutUniversalIdentifier\", e.AvailableApplicationDetail = \"applications/available/:availableApplicationId\", e.ApplicationRegistrationDetail = \"applications/registrations/:applicationRegistrationId\", e.LogicFunctions = \"functions\", e.NewLogicFunction = \"functions/new\", e.LogicFunctionDetail = \"functions/:logicFunctionId\", e.ApiWebhooks = \"mcp-apis\", e.RestPlayground = \"playground/rest/:schema\", e.GraphQLPlayground = \"playground/graphql/:schema\", e.NewApiKey = \"mcp-apis/apis/new\", e.ApiKeyDetail = \"mcp-apis/apis/:apiKeyId\", e.NewWebhook = \"mcp-apis/webhooks/new\", e.WebhookDetail = \"mcp-apis/webhooks/:webhookId\", e.Integrations = \"integrations\", e.Security = \"general#security\", e.Logs = \"general#logs\", e.NewSsoIdentityProvider = \"security/sso/new\", e.AdminPanel = \"admin-panel\", e.AdminPanelEnterprise = \"admin-panel#enterprise\", e.AdminPanelHealthStatus = \"admin-panel#health-status\", e.AdminPanelIndicatorHealthStatus = \"admin-panel/health-status/:indicatorId\", e.AdminPanelInferredVersion = \"admin-panel/health-status/inferred-version\", e.AdminPanelInstanceStatus = \"admin-panel/health-status/instance-status\", e.AdminPanelWorkspacesStatus = \"admin-panel/health-status/workspaces-status\", e.AdminPanelQueueDetail = \"admin-panel/health-status/queue/:queueName\", e.AdminPanelConfigVariableDetails = \"admin-panel/config-variables/:variableName\", e.AdminPanelNewAiProvider = \"admin-panel/ai/new-provider\", e.AdminPanelAiProviderDetail = \"admin-panel/ai/providers/:providerName\", e.AdminPanelNewAiModel = \"admin-panel/ai/providers/:providerName/new-model\", e.AdminPanelUserDetail = \"admin-panel/users/:userId\", e.AdminPanelWorkspaceDetail = \"admin-panel/workspaces/:workspaceId\", e.AdminPanelApplicationRegistrationDetail = \"admin-panel/applications/registrations/:applicationRegistrationId\", e.AdminPanelWorkspaceChatThread = \"admin-panel/workspaces/:workspaceId/threads/:threadId\", e.AdminPanelChats = \"admin-panel/chats\", e.Roles = \"members/roles\", e.RoleCreate = \"members/roles/create\", e.RoleDetail = \"members/roles/:roleId\", e.RoleObjectLevel = \"members/roles/:roleId/object/:objectMetadataId\", e.RoleAddObjectLevel = \"members/roles/:roleId/add-object-permission\", e.Legal = \"legal\", e.LegalDpa = \"legal/dpa\", e.LegalDpaNew = \"legal/dpa/new\", e;\n}({}), De = /* @__PURE__ */ function(e) {\n\treturn e.CommandMenuDisplay = \"command-menu-display\", e.ViewRecord = \"view-record\", e.ViewRecords = \"view-records\", e.MergeRecords = \"merge-records\", e.UpdateRecords = \"update-records\", e.EditRichText = \"edit-rich-text\", e.Copilot = \"copilot\", e.WorkflowTriggerSelectType = \"workflow-trigger-select-type\", e.WorkflowStepCreate = \"workflow-step-create\", e.WorkflowStepEditType = \"workflow-step-edit-type\", e.WorkflowStepView = \"workflow-step-view\", e.WorkflowStepEdit = \"workflow-step-edit\", e.WorkflowRunStepView = \"workflow-run-step-view\", e.SearchRecords = \"search-records\", e.AskAI = \"ask-ai\", e.PageLayoutDashboardWidgetTypeSelect = \"page-layout-dashboard-widget-type-select\", e.PageLayoutTabSettings = \"page-layout-tab-settings\", e.PageLayoutWidgetSettings = \"page-layout-widget-settings\", e.DashboardChartSettings = \"dashboard-chart-settings\", e.DashboardIframeSettings = \"dashboard-iframe-settings\", e.DashboardRecordTableSettings = \"dashboard-record-table-settings\", e.RecordPageFieldsSettings = \"record-page-fields-settings\", e.RecordPageFieldSettings = \"record-page-field-settings\", e.ViewFrontComponent = \"view-front-component\", e.NavigationMenuItemEdit = \"navigation-menu-item-edit\", e.NavigationMenuAddItem = \"navigation-menu-add-item\", e.CommandMenuEdit = \"command-menu-edit\", e.PageLayoutRecordPageWidgetTypeSelect = \"page-layout-record-page-widget-type-select\", e.ComposeEmail = \"compose-email\", e.ComposeCalendarEvent = \"compose-calendar-event\", e.CreateRelatedRecord = \"create-related-record\", e.SendCampaignTest = \"send-campaign-test\", e.WorkflowVersions = \"workflow-versions\", e.WorkflowVersion = \"workflow-version\", e.EmailBlockSettings = \"email-block-settings\", e.SettingsMetadataTranslations = \"settings-metadata-translations\", e.RoutedPage = \"routed-page\", e.WorkflowCoreFilters = \"workflow-core-filters\", e;\n}({}), Oe = /* @__PURE__ */ function(e) {\n\treturn e.AND = \"AND\", e.OR = \"OR\", e;\n}({}), ke = /* @__PURE__ */ function(e) {\n\treturn e.TOTP = \"TOTP\", e;\n}({}), Ae = /* @__PURE__ */ function(e) {\n\treturn e.UP_TO_DATE = \"UP_TO_DATE\", e.BEHIND = \"BEHIND\", e.FAILED = \"FAILED\", e;\n}({}), $ = /^[_A-Za-z][_0-9A-Za-z]*$/, je = (e) => (t, r) => {\n\tn({\n\t\tname: \"isValidGraphQLEnumName\",\n\t\ttarget: t.constructor,\n\t\tpropertyName: r,\n\t\toptions: e,\n\t\tvalidator: {\n\t\t\tvalidate: (e) => typeof e == \"string\" && $.test(e),\n\t\t\tdefaultMessage: (e) => `${e.property} must match the ${$} format`\n\t\t}\n\t});\n}, Me = /* @__PURE__ */ function(e) {\n\treturn e.DAY = \"DAY\", e.WEEK = \"WEEK\", e.MONTH = \"MONTH\", e;\n}({}), Ne = /* @__PURE__ */ function(e) {\n\treturn e.AND = \"AND\", e.OR = \"OR\", e.NOT = \"NOT\", e;\n}({}), Pe = /* @__PURE__ */ function(e) {\n\treturn e.IS = \"IS\", e.IS_NOT_NULL = \"IS_NOT_NULL\", e.IS_NOT = \"IS_NOT\", e.LESS_THAN_OR_EQUAL = \"LESS_THAN_OR_EQUAL\", e.GREATER_THAN_OR_EQUAL = \"GREATER_THAN_OR_EQUAL\", e.IS_BEFORE = \"IS_BEFORE\", e.IS_AFTER = \"IS_AFTER\", e.CONTAINS = \"CONTAINS\", e.DOES_NOT_CONTAIN = \"DOES_NOT_CONTAIN\", e.IS_EMPTY = \"IS_EMPTY\", e.IS_NOT_EMPTY = \"IS_NOT_EMPTY\", e.IS_RELATIVE = \"IS_RELATIVE\", e.IS_IN_PAST = \"IS_IN_PAST\", e.IS_IN_FUTURE = \"IS_IN_FUTURE\", e.IS_TODAY = \"IS_TODAY\", e.VECTOR_SEARCH = \"VECTOR_SEARCH\", e;\n}({}), Fe = /* @__PURE__ */ function(e) {\n\treturn e.Is = \"is\", e.IsNotNull = \"isNotNull\", e.IsNot = \"isNot\", e.LessThanOrEqual = \"lessThan\", e.GreaterThanOrEqual = \"greaterThan\", e.IsBefore = \"isBefore\", e.IsAfter = \"isAfter\", e.Contains = \"contains\", e.DoesNotContain = \"doesNotContain\", e.IsEmpty = \"isEmpty\", e.IsNotEmpty = \"isNotEmpty\", e.IsRelative = \"isRelative\", e.IsInPast = \"isInPast\", e.IsInFuture = \"isInFuture\", e.IsToday = \"isToday\", e;\n}({}), Ie = /* @__PURE__ */ function(e) {\n\treturn e.INDEX = \"INDEX\", e;\n}({}), Le = /* @__PURE__ */ function(e) {\n\treturn e.SIDE_PANEL = \"SIDE_PANEL\", e.RECORD_PAGE = \"RECORD_PAGE\", e;\n}({}), Re = /* @__PURE__ */ function(e) {\n\treturn e.ASC = \"ASC\", e.DESC = \"DESC\", e;\n}({}), ze = /* @__PURE__ */ function(e) {\n\treturn e.TABLE = \"TABLE\", e.KANBAN = \"KANBAN\", e.CALENDAR = \"CALENDAR\", e.LIST = \"LIST\", e.FIELDS_WIDGET = \"FIELDS_WIDGET\", e.TABLE_WIDGET = \"TABLE_WIDGET\", e.KANBAN_WIDGET = \"KANBAN_WIDGET\", e.LIST_WIDGET = \"LIST_WIDGET\", e.CALENDAR_WIDGET = \"CALENDAR_WIDGET\", e;\n}({}), Be = /* @__PURE__ */ function(e) {\n\treturn e.WORKSPACE = \"WORKSPACE\", e.UNLISTED = \"UNLISTED\", e;\n}({}), Ve = /* @__PURE__ */ function(e) {\n\treturn e.MESSAGING = \"messaging\", e.CALENDAR = \"calendar\", e;\n}({}), He = /* @__PURE__ */ function(e) {\n\treturn e.PENDING = \"PENDING\", e.ACTIVE = \"ACTIVE\", e.FAILED = \"FAILED\", e.EXPIRED = \"EXPIRED\", e;\n}({});\n//#endregion\nexport { R as $, pe as A, c as At, re as B, be as C, m as Ct, ge as D, d as Dt, _e as E, f as Et, ce as F, te as Ft, K as G, Q as H, se as I, ee as It, W as J, Y as K, oe as L, r as Lt, de as M, o as Mt, ue as N, a as Nt, he as O, u as Ot, le as P, i as Pt, B as Q, ae as R, xe as S, g as St, ve as T, p as Tt, Z as U, ne as V, X as W, H as X, U as Y, V as Z, Ee as _, x as _t, Re as a, M as at, Ce as b, v as bt, Fe as c, A as ct, Me as d, D as dt, z as et, je as f, E as ft, De as g, C as gt, Oe as h, S as ht, ze as i, P as it, fe as j, s as jt, me as k, l as kt, Pe as l, k as lt, ke as m, w as mt, Ve as n, I as nt, Le as o, j as ot, Ae as p, T as pt, G as q, Be as r, F as rt, Ie as s, N as st, He as t, L as tt, Ne as u, O as ut, Te as v, b as vt, ye as w, h as wt, Se as x, _ as xt, we as y, y as yt, ie as z };\n", "import { E as e } from \"./types-BPwZbSNY.mjs\";\nimport { v5 as t } from \"uuid\";\n//#region src/application/constants/TwentyStandardApplicationUniversalIdentifier.ts\nvar n = \"20202020-64aa-4b6f-b003-9c74b97cee20\", r = ({ entityNamespace: e, value: n, applicationUniversalIdentifier: r }) => t(`${e}:${n}`, r), i = ({ applicationUniversalIdentifier: e, objectUniversalIdentifier: t, name: n }) => r({\n\tentityNamespace: \"fieldMetadata\",\n\tvalue: `${t}:${n}`,\n\tapplicationUniversalIdentifier: e\n}), a = ({ applicationUniversalIdentifier: e, objectUniversalIdentifier: t, name: n }) => r({\n\tentityNamespace: \"pageLayout\",\n\tvalue: t ? `${t}:${n}` : n,\n\tapplicationUniversalIdentifier: e\n}), o = ({ objectMetadataApplicationUniversalIdentifier: e, pageLayoutUniversalIdentifier: t, title: n }) => r({\n\tentityNamespace: \"pageLayoutTab\",\n\tvalue: `${t}:${n}`,\n\tapplicationUniversalIdentifier: e\n}), s = ({ objectMetadataApplicationUniversalIdentifier: e, pageLayoutTabUniversalIdentifier: t, title: n }) => r({\n\tentityNamespace: \"pageLayoutWidget\",\n\tvalue: `${t}:${n}`,\n\tapplicationUniversalIdentifier: e\n}), c = ({ objectMetadataApplicationUniversalIdentifier: t, objectUniversalIdentifier: n }) => a({\n\tapplicationUniversalIdentifier: t,\n\tobjectUniversalIdentifier: n,\n\tname: e.RECORD_PAGE\n}), l = ({ applicationUniversalIdentifier: e, objectUniversalIdentifier: t, relationTargetObjectUniversalIdentifier: n }) => r({\n\tentityNamespace: \"fieldMetadata\",\n\tvalue: `${t}:systemRelation:${n}`,\n\tapplicationUniversalIdentifier: e\n}), u = ({ objectMetadataApplicationUniversalIdentifier: e, viewUniversalIdentifier: t, name: n }) => r({\n\tentityNamespace: \"viewFieldGroup\",\n\tvalue: `${t}:${n}`,\n\tapplicationUniversalIdentifier: e\n}), d = ({ fieldMetadataApplicationUniversalIdentifier: e, viewUniversalIdentifier: t, fieldMetadataUniversalIdentifier: n }) => r({\n\tentityNamespace: \"viewField\",\n\tvalue: `${t}:${n}`,\n\tapplicationUniversalIdentifier: e\n}), f = {\n\tINDEX: \"INDEX\",\n\tFIELDS_WIDGET: \"FIELDS_WIDGET\"\n}, p = ({ objectMetadataApplicationUniversalIdentifier: e, objectUniversalIdentifier: t, viewKey: n }) => r({\n\tentityNamespace: \"view\",\n\tvalue: `${t}:${n}`,\n\tapplicationUniversalIdentifier: e\n});\n//#endregion\nexport { l as a, o as c, r as d, n as f, u as i, a as l, p as n, c as o, d as r, s, f as t, i as u };\n", "import { Lt as e } from \"./types-BPwZbSNY.mjs\";\nimport { a as t, c as n, d as r, f as i, i as a, l as ee, n as o, o as s, r as c, s as l, t as u, u as te } from \"./get-system-view-universal-identifier.util-DET35GTV.mjs\";\n//#region src/application/applicationBillingType.ts\nvar d = [\"MONTH\"], f = (e) => d.includes(e), p = [\"WORKSPACE_MEMBER\"], m = (e) => p.includes(e), h = 1e8, g = 1e9, _ = (e) => typeof e == \"number\" && Number.isSafeInteger(e) && e > 0 && e <= 1e8, v = (e) => {\n\tif (typeof e != \"object\" || !e) return !1;\n\tlet { period: t, amountMicroCredits: n, per: r, label: i } = e;\n\treturn f(t) && _(n) && (r === void 0 || m(r)) && typeof i == \"string\" && i.trim().length > 0;\n}, y = [\n\t\"Communication\",\n\t\"Productivity\",\n\t\"Product management\",\n\t\"Sales\",\n\t\"Marketing\",\n\t\"Enrichment\",\n\t\"Data\",\n\t\"Search\",\n\t\"Other\"\n], b = (e) => y.includes(e), x = [\n\te.TEXT,\n\te.ARRAY,\n\te.BOOLEAN,\n\te.DATE,\n\te.DATE_TIME,\n\te.NUMBER,\n\te.NUMERIC,\n\te.RAW_JSON,\n\te.RICH_TEXT,\n\te.SELECT,\n\te.MULTI_SELECT\n], S = 100, C = \"public\", w = \"TWENTY_API_KEY\", T = \"TWENTY_API_URL\", E = \"TWENTY_APP_ACCESS_TOKEN\", D = \"TWENTY_APP_APPLICATION_ACCESS_TOKEN\", O = \"TWENTY_FUNCTIONS_URL\", k = \"front-component-shared-dependencies.mjs\", A = \"twenty:front-component-shared-dependencies\", j = \"generated\", M = { js: \"import { createRequire as __createRequire } from 'module';\\nconst require = __createRequire(import.meta.url);\" }, N = \".twenty/output\", P = \"Standard\", F = [\n\t\"workspace-suspended\",\n\t\"no-subscription\",\n\t\"no-credits\"\n], I = ({ applicationUniversalIdentifier: e, name: t }) => r({\n\tentityNamespace: \"agent\",\n\tvalue: t,\n\tapplicationUniversalIdentifier: e\n}), L = ({ applicationUniversalIdentifier: e, key: t }) => r({\n\tentityNamespace: \"applicationVariable\",\n\tvalue: t,\n\tapplicationUniversalIdentifier: e\n}), R = ({ applicationUniversalIdentifier: e, name: t }) => r({\n\tentityNamespace: \"connectionProvider\",\n\tvalue: t,\n\tapplicationUniversalIdentifier: e\n}), z = ({ applicationUniversalIdentifier: e, roleUniversalIdentifier: t, fieldUniversalIdentifier: n }) => r({\n\tentityNamespace: \"fieldPermission\",\n\tvalue: `${t}:${n}`,\n\tapplicationUniversalIdentifier: e\n}), ne = ({ applicationUniversalIdentifier: e, componentName: t }) => r({\n\tentityNamespace: \"frontComponent\",\n\tvalue: t,\n\tapplicationUniversalIdentifier: e\n}), B = ({ applicationUniversalIdentifier: e, objectUniversalIdentifier: t, name: n }) => r({\n\tentityNamespace: \"index\",\n\tvalue: `${t}:${n}`,\n\tapplicationUniversalIdentifier: e\n}), V = ({ applicationUniversalIdentifier: e, name: t }) => r({\n\tentityNamespace: \"logicFunction\",\n\tvalue: t,\n\tapplicationUniversalIdentifier: e\n}), H = ({ applicationUniversalIdentifier: e, name: t }) => r({\n\tentityNamespace: \"navigationMenuItem\",\n\tvalue: `FOLDER:${t}`,\n\tapplicationUniversalIdentifier: e\n}), U = ({ applicationUniversalIdentifier: e, objectUniversalIdentifier: t }) => r({\n\tentityNamespace: \"navigationMenuItem\",\n\tvalue: `OBJECT:${t}`,\n\tapplicationUniversalIdentifier: e\n}), W = ({ applicationUniversalIdentifier: e, viewUniversalIdentifier: t }) => r({\n\tentityNamespace: \"navigationMenuItem\",\n\tvalue: `VIEW:${t}`,\n\tapplicationUniversalIdentifier: e\n}), G = ({ applicationUniversalIdentifier: e, link: t }) => r({\n\tentityNamespace: \"navigationMenuItem\",\n\tvalue: `LINK:${t}`,\n\tapplicationUniversalIdentifier: e\n}), K = ({ applicationUniversalIdentifier: e, roleUniversalIdentifier: t, objectUniversalIdentifier: n }) => r({\n\tentityNamespace: \"objectPermission\",\n\tvalue: `${t}:${n}`,\n\tapplicationUniversalIdentifier: e\n}), q = ({ applicationUniversalIdentifier: e, nameSingular: t }) => r({\n\tentityNamespace: \"objectMetadata\",\n\tvalue: t,\n\tapplicationUniversalIdentifier: e\n}), J = ({ applicationUniversalIdentifier: e, key: t }) => r({\n\tentityNamespace: \"permissionFlag\",\n\tvalue: t,\n\tapplicationUniversalIdentifier: e\n}), Y = ({ applicationUniversalIdentifier: e, roleUniversalIdentifier: t, permissionFlagUniversalIdentifier: n }) => r({\n\tentityNamespace: \"rolePermissionFlag\",\n\tvalue: `${t}:${n}`,\n\tapplicationUniversalIdentifier: e\n}), X = ({ applicationUniversalIdentifier: e, agentUniversalIdentifier: t }) => r({\n\tentityNamespace: \"roleTarget\",\n\tvalue: t,\n\tapplicationUniversalIdentifier: e\n}), Z = ({ applicationUniversalIdentifier: e, label: t }) => r({\n\tentityNamespace: \"role\",\n\tvalue: t,\n\tapplicationUniversalIdentifier: e\n}), re = ({ applicationUniversalIdentifier: e, fieldMetadataUniversalIdentifier: t }) => r({\n\tentityNamespace: \"searchFieldMetadata\",\n\tvalue: t,\n\tapplicationUniversalIdentifier: e\n}), ie = ({ applicationUniversalIdentifier: e, fieldUniversalIdentifier: t, value: n }) => r({\n\tentityNamespace: \"selectOption\",\n\tvalue: `${t}:${n}`,\n\tapplicationUniversalIdentifier: e\n}), ae = ({ applicationUniversalIdentifier: e, name: t }) => r({\n\tentityNamespace: \"skill\",\n\tvalue: t,\n\tapplicationUniversalIdentifier: e\n}), oe = \"navigation\", se = ({ objectMetadataApplicationUniversalIdentifier: e, objectUniversalIdentifier: t }) => r({\n\tentityNamespace: \"commandMenuItem\",\n\tvalue: `${t}:${oe}`,\n\tapplicationUniversalIdentifier: e\n}), Q = ({ applicationUniversalIdentifier: e, viewUniversalIdentifier: t, fieldMetadataUniversalIdentifier: n }) => r({\n\tentityNamespace: \"viewField\",\n\tvalue: `${t}:${n}`,\n\tapplicationUniversalIdentifier: e\n}), ce = ({ applicationUniversalIdentifier: e, viewUniversalIdentifier: t, fieldMetadataUniversalIdentifier: n, operand: i, subFieldName: a }) => r({\n\tentityNamespace: \"viewFilter\",\n\tvalue: `${t}:${n}:${i}:${a ?? \"\"}`,\n\tapplicationUniversalIdentifier: e\n}), le = ({ applicationUniversalIdentifier: e, viewUniversalIdentifier: t, fieldValue: n }) => r({\n\tentityNamespace: \"viewGroup\",\n\tvalue: `${t}:${n}`,\n\tapplicationUniversalIdentifier: e\n}), ue = ({ applicationUniversalIdentifier: e, viewUniversalIdentifier: t, fieldMetadataUniversalIdentifier: n }) => r({\n\tentityNamespace: \"viewSort\",\n\tvalue: `${t}:${n}`,\n\tapplicationUniversalIdentifier: e\n}), de = ({ applicationUniversalIdentifier: e, objectUniversalIdentifier: t, name: n }) => r({\n\tentityNamespace: \"view\",\n\tvalue: `${t}:${n}`,\n\tapplicationUniversalIdentifier: e\n}), fe = /* @__PURE__ */ function(e) {\n\treturn e.Object = \"object\", e.Field = \"field\", e.LogicFunction = \"logicFunction\", e.FrontComponent = \"frontComponent\", e.Role = \"role\", e.Skill = \"skill\", e.Agent = \"agent\", e.ConnectionProvider = \"connectionProvider\", e.View = \"view\", e.ViewField = \"viewField\", e.NavigationMenuItem = \"navigationMenuItem\", e.PageLayout = \"pageLayout\", e.PageLayoutTab = \"pageLayoutTab\", e.CommandMenuItem = \"commandMenuItem\", e.TimelineActivityType = \"timelineActivityType\", e;\n}({}), $ = [\n\t\"AI_CHAT_TOKEN\",\n\t\"AI_WORKFLOW_TOKEN\",\n\t\"WORKFLOW_EXECUTION\",\n\t\"CODE_EXECUTION\",\n\t\"WEB_SEARCH\",\n\t\"CALL_RECORDING\",\n\t\"EMAIL_SEND\"\n], pe = (e) => $.includes(e), me = (t, n = e.TEXT) => {\n\tif (t == null) return \"\";\n\tswitch (n) {\n\t\tcase e.BOOLEAN: return String(t) === \"true\" ? \"true\" : \"false\";\n\t\tcase e.NUMBER:\n\t\tcase e.NUMERIC: return String(t);\n\t\tcase e.ARRAY:\n\t\tcase e.MULTI_SELECT:\n\t\t\tif (Array.isArray(t)) return JSON.stringify(t);\n\t\t\tif (typeof t == \"string\") {\n\t\t\t\ttry {\n\t\t\t\t\tlet e = JSON.parse(t);\n\t\t\t\t\tif (Array.isArray(e)) return t;\n\t\t\t\t} catch {}\n\t\t\t\treturn JSON.stringify([t]);\n\t\t\t}\n\t\t\treturn JSON.stringify(t);\n\t\tcase e.RAW_JSON:\n\t\tcase e.RICH_TEXT: return typeof t == \"string\" ? t : JSON.stringify(t);\n\t\tdefault: return typeof t == \"string\" ? t : String(t);\n\t}\n}, he = (t, n = e.TEXT) => {\n\tif (t === \"\") return n === e.ARRAY || n === e.MULTI_SELECT ? [] : \"\";\n\tswitch (n) {\n\t\tcase e.BOOLEAN: return t === \"true\";\n\t\tcase e.NUMBER:\n\t\tcase e.NUMERIC: {\n\t\t\tlet e = Number(t);\n\t\t\treturn Number.isNaN(e) ? t : e;\n\t\t}\n\t\tcase e.ARRAY:\n\t\tcase e.MULTI_SELECT: try {\n\t\t\tlet e = JSON.parse(t);\n\t\t\treturn Array.isArray(e) ? e : [];\n\t\t} catch {\n\t\t\treturn [];\n\t\t}\n\t\tcase e.RAW_JSON:\n\t\tcase e.RICH_TEXT: try {\n\t\t\treturn JSON.parse(t);\n\t\t} catch {\n\t\t\treturn t;\n\t\t}\n\t\tdefault: return t;\n\t}\n};\n//#endregion\nexport { y as APPLICATION_CATEGORIES, S as APPLICATION_FILE_UPLOAD_BATCH_SIZE, x as APPLICATION_VARIABLE_FIELD_METADATA_TYPES, C as ASSETS_DIR, F as CREDIT_UNAVAILABLE_REASONS, w as DEFAULT_API_KEY_NAME, T as DEFAULT_API_URL_NAME, E as DEFAULT_APP_ACCESS_TOKEN_NAME, D as DEFAULT_APP_APPLICATION_ACCESS_TOKEN_NAME, O as DEFAULT_FUNCTIONS_URL_NAME, k as FRONT_COMPONENT_SHARED_DEPENDENCIES_BUILT_PATH, A as FRONT_COMPONENT_SHARED_DEPENDENCIES_IMPORT_SPECIFIER, j as GENERATED_DIR, g as MAX_RECURRING_CHARGE_MICRO_CREDITS_PER_PERIOD, h as MAX_RECURRING_CHARGE_MICRO_CREDITS_PER_UNIT, M as NODE_ESM_CJS_BANNER, N as OUTPUT_DIR, d as RECURRING_CHARGE_PERIODS, p as RECURRING_CHARGE_UNITS, u as SYSTEM_VIEW_KEYS, fe as SyncableEntity, P as TWENTY_STANDARD_APPLICATION_NAME, i as TWENTY_STANDARD_APPLICATION_UNIVERSAL_IDENTIFIER, $ as USAGE_OPERATION_TYPES, r as computeDeterministicUuid, he as deserializeApplicationVariableValue, I as getAgentUniversalIdentifier, L as getApplicationVariableUniversalIdentifier, R as getConnectionProviderUniversalIdentifier, z as getFieldPermissionUniversalIdentifier, te as getFieldUniversalIdentifier, H as getFolderNavigationMenuItemUniversalIdentifier, ne as getFrontComponentUniversalIdentifier, B as getIndexUniversalIdentifier, G as getLinkNavigationMenuItemUniversalIdentifier, V as getLogicFunctionUniversalIdentifier, U as getObjectNavigationMenuItemUniversalIdentifier, K as getObjectPermissionUniversalIdentifier, q as getObjectUniversalIdentifier, ee as getPageLayoutUniversalIdentifier, J as getPermissionFlagUniversalIdentifier, Y as getRolePermissionFlagUniversalIdentifier, X as getRoleTargetUniversalIdentifier, Z as getRoleUniversalIdentifier, re as getSearchFieldUniversalIdentifier, ie as getSelectOptionUniversalIdentifier, ae as getSkillUniversalIdentifier, se as getSystemNavigationCommandMenuItemUniversalIdentifier, n as getSystemPageLayoutTabUniversalIdentifier, l as getSystemPageLayoutWidgetUniversalIdentifier, s as getSystemRecordPageLayoutUniversalIdentifier, t as getSystemRelationFieldUniversalIdentifier, a as getSystemViewFieldGroupUniversalIdentifier, c as getSystemViewFieldUniversalIdentifier, o as getSystemViewUniversalIdentifier, Q as getViewFieldUniversalIdentifier, ce as getViewFilterUniversalIdentifier, le as getViewGroupUniversalIdentifier, W as getViewNavigationMenuItemUniversalIdentifier, ue as getViewSortUniversalIdentifier, de as getViewUniversalIdentifier, b as isKnownApplicationCategory, v as isRecurringCharge, _ as isRecurringChargeAmount, f as isRecurringChargePeriod, m as isRecurringChargeUnit, pe as isUsageOperationTypeValue, me as serializeApplicationVariableValue };\n", "import {\n  DEFAULT_APP_ACCESS_TOKEN_NAME,\n  DEFAULT_APP_APPLICATION_ACCESS_TOKEN_NAME,\n} from 'twenty-shared/application';\n\n// These calls reach the application's own resources rather than acting for\n// whoever triggered the run, so they take the application token whenever the\n// logic function runtime injects one. Front components only ever get the other.\nexport const getApplicationAccessToken = (): string | undefined =>\n  process.env[DEFAULT_APP_APPLICATION_ACCESS_TOKEN_NAME] ??\n  process.env[DEFAULT_APP_ACCESS_TOKEN_NAME];\n", "import {\n  DEFAULT_API_URL_NAME,\n  type UsageOperationTypeValue,\n} from 'twenty-shared/application';\n\nimport { getApplicationAccessToken } from '@/sdk/utils/get-application-access-token';\n\nconst BILLING_CHARGE_TIMEOUT_MS = 5_000;\n\nexport type ChargeCreditsParams = {\n  creditsUsedMicro: number;\n  quantity?: number;\n  // Who the spend belongs to, for runs with no triggering user (a webhook, a\n  // cron). Ignored otherwise: the token already names them.\n  userWorkspaceId?: string;\n} & (\n  | {\n      // An operation name declared in `billing.operations` on the application\n      // manifest. The platform resolves its billing category and its label.\n      operation: string;\n      operationType?: never;\n      resourceContext?: never;\n    }\n  | {\n      // For applications that declare no billable operations: name the\n      // platform billing category directly, unlabelled.\n      operationType: UsageOperationTypeValue;\n      operation?: never;\n      resourceContext?: string;\n    }\n);\n\n// Records credit usage against the running application via the Twenty\n// server's `/app/billing/charge` endpoint. Reads `TWENTY_API_URL` and the\n// application access token from the execution env (injected by the\n// logic-function runtime). No-ops silently when either is missing so\n// local/test runs don't crash. Failures are non-fatal — a billing error\n// never surfaces as a tool failure.\nexport const chargeCredits = async ({\n  creditsUsedMicro,\n  quantity = 1,\n  operation,\n  operationType,\n  resourceContext,\n  userWorkspaceId,\n}: ChargeCreditsParams): Promise<void> => {\n  const apiUrl = process.env[DEFAULT_API_URL_NAME];\n  const token = getApplicationAccessToken();\n\n  if (!apiUrl || !token) {\n    return;\n  }\n\n  try {\n    const response = await fetch(\n      `${apiUrl.replace(/\\/$/, '')}/app/billing/charge`,\n      {\n        method: 'POST',\n        headers: {\n          Authorization: `Bearer ${token}`,\n          'Content-Type': 'application/json',\n        },\n        body: JSON.stringify({\n          creditsUsedMicro,\n          quantity,\n          operation,\n          operationType,\n          resourceContext,\n          userWorkspaceId,\n        }),\n        signal: AbortSignal.timeout(BILLING_CHARGE_TIMEOUT_MS),\n      },\n    );\n\n    if (!response.ok) {\n      const body = await response.text().catch(() => '');\n\n      console.error(\n        `chargeCredits: ${response.status} ${response.statusText}: ${body}`,\n      );\n    }\n  } catch (error) {\n    console.error(\n      `chargeCredits: ${error instanceof Error ? error.message : String(error)}`,\n    );\n  }\n};\n", "import {\n  CREDIT_UNAVAILABLE_REASONS,\n  type CreditAvailability,\n  type CreditUnavailableReason,\n  DEFAULT_API_URL_NAME,\n} from 'twenty-shared/application';\n\nimport { getApplicationAccessToken } from '@/sdk/utils/get-application-access-token';\n\nconst CREDIT_AVAILABILITY_TIMEOUT_MS = 5_000;\n\n// A fresh object per call: the returned value is handed to app code, and a\n// shared constant could be mutated by one caller and observed by the next.\nconst available = (): CreditAvailability => ({ hasAvailableCredits: true });\n\nconst parseCreditAvailability = (body: unknown): CreditAvailability | null => {\n  if (typeof body !== 'object' || body === null) {\n    return null;\n  }\n\n  const { hasAvailableCredits, reason } = body as {\n    hasAvailableCredits?: unknown;\n    reason?: unknown;\n  };\n\n  if (hasAvailableCredits === true) {\n    return { hasAvailableCredits: true };\n  }\n\n  if (\n    hasAvailableCredits === false &&\n    CREDIT_UNAVAILABLE_REASONS.includes(reason as CreditUnavailableReason)\n  ) {\n    return {\n      hasAvailableCredits: false,\n      reason: reason as CreditUnavailableReason,\n    };\n  }\n\n  return null;\n};\n\n// Asks whether the workspace can still spend, so an app can stop before doing\n// expensive work rather than finding out when a downstream call it did not\n// write throws. Mirrors the gate the platform applies to AI work and outbound\n// email.\n//\n// Fails open, like the platform's own usage read: a timeout, an unreachable\n// server or an unparseable body reports credits available rather than stopping\n// an app over an infrastructure hiccup. An app must not treat this as an\n// authorization decision, only as a hint worth honouring.\nexport const getCreditAvailability = async (): Promise<CreditAvailability> => {\n  const apiUrl = process.env[DEFAULT_API_URL_NAME];\n  const token = getApplicationAccessToken();\n\n  if (!apiUrl || !token) {\n    return available();\n  }\n\n  try {\n    const response = await fetch(\n      `${apiUrl.replace(/\\/$/, '')}/app/billing/credits`,\n      {\n        method: 'GET',\n        headers: {\n          Authorization: `Bearer ${token}`,\n          Accept: 'application/json',\n        },\n        signal: AbortSignal.timeout(CREDIT_AVAILABILITY_TIMEOUT_MS),\n      },\n    );\n\n    if (!response.ok) {\n      console.error(\n        `getCreditAvailability: ${response.status} ${response.statusText}`,\n      );\n\n      return available();\n    }\n\n    const creditAvailability = parseCreditAvailability(await response.json());\n\n    if (creditAvailability === null) {\n      console.error('getCreditAvailability: unexpected response shape');\n\n      return available();\n    }\n\n    return creditAvailability;\n  } catch (error) {\n    console.error(\n      `getCreditAvailability: ${error instanceof Error ? error.message : String(error)}`,\n    );\n\n    return available();\n  }\n};\n", "import { type CreditUnavailableReason } from 'src/logic-functions/types/credit-unavailable-reason.type';\n\nexport const FAILURE_REASON_BY_CREDIT_UNAVAILABLE_REASON: Record<\n  CreditUnavailableReason,\n  string\n> = {\n  'no-credits': 'workspace_out_of_credits',\n  'no-subscription': 'workspace_without_subscription',\n  'workspace-suspended': 'workspace_suspended',\n};\n", "import { getCreditAvailability } from 'twenty-sdk/billing';\n\nimport { FAILURE_REASON_BY_CREDIT_UNAVAILABLE_REASON } from 'src/logic-functions/constants/failure-reason-by-credit-unavailable-reason';\n\nexport const getCreditsUnavailableFailureReason = async (): Promise<\n  string | undefined\n> => {\n  const creditAvailability = await getCreditAvailability();\n\n  return creditAvailability.hasAvailableCredits\n    ? undefined\n    : FAILURE_REASON_BY_CREDIT_UNAVAILABLE_REASON[creditAvailability.reason];\n};\n", "import { isNonEmptyArray } from '@sniptt/guards';\nimport { type CoreApiClient } from 'twenty-client-sdk/core';\n\nimport { NON_TERMINAL_CALL_RECORDING_STATUSES } from 'src/logic-functions/constants/non-terminal-call-recording-statuses';\nimport { type CallRecordingUpdateFields } from 'src/logic-functions/types/call-recording-update-fields.type';\n\ntype CallRecordingStateUpdate = Pick<\n  CallRecordingUpdateFields,\n  | 'status'\n  | 'callRecorderFailureReason'\n  | 'externalBotId'\n  | 'botScheduleAttemptedAt'\n  | 'botScheduleIdempotencyKey'\n>;\n\nexport const updateNonTerminalCallRecordingState = async (\n  client: CoreApiClient,\n  {\n    callRecordingId,\n    data,\n  }: { callRecordingId: string; data: CallRecordingStateUpdate },\n): Promise<boolean> => {\n  const updateResult = await client.mutation({\n    updateCallRecordings: {\n      __args: {\n        filter: {\n          id: { eq: callRecordingId },\n          status: { in: NON_TERMINAL_CALL_RECORDING_STATUSES },\n        },\n        data,\n      },\n      id: true,\n    },\n  });\n\n  return isNonEmptyArray(updateResult.updateCallRecordings);\n};\n", "import { type CoreApiClient } from 'twenty-client-sdk/core';\n\nimport { CallRecordingStatus } from 'src/logic-functions/constants/call-recording-status';\nimport { updateNonTerminalCallRecordingState } from 'src/logic-functions/data/update-non-terminal-call-recording-state.util';\n\nexport const markCallRecordingNotRecorded = async (\n  client: CoreApiClient,\n  {\n    callRecordingId,\n    failureReason,\n  }: {\n    callRecordingId: string;\n    failureReason: string;\n  },\n): Promise<boolean> => {\n  const didUpdate = await updateNonTerminalCallRecordingState(client, {\n    callRecordingId,\n    data: {\n      status: CallRecordingStatus.NOT_RECORDED,\n      callRecorderFailureReason: failureReason,\n      externalBotId: null,\n      botScheduleAttemptedAt: null,\n      botScheduleIdempotencyKey: null,\n    },\n  });\n\n  if (didUpdate) {\n    console.warn(\n      `[call-recorder] callRecording ${callRecordingId} will not be recorded: ${failureReason}`,\n    );\n  }\n\n  return didUpdate;\n};\n", "export const CALL_RECORDER_CALENDAR_BOT_SCHEDULING_ENABLED_ENV_VAR_NAME =\n  'CALL_RECORDER_CALENDAR_BOT_SCHEDULING_ENABLED';\n", "export const DEFAULT_CALL_RECORDER_CALENDAR_BOT_SCHEDULING_ENABLED = true;\n", "import { CALL_RECORDER_CALENDAR_BOT_SCHEDULING_ENABLED_ENV_VAR_NAME } from 'src/logic-functions/constants/call-recorder-calendar-bot-scheduling-enabled-env-var-name';\nimport { DEFAULT_CALL_RECORDER_CALENDAR_BOT_SCHEDULING_ENABLED } from 'src/logic-functions/constants/default-call-recorder-calendar-bot-scheduling-enabled';\nimport { getBooleanApplicationVariableValue } from 'src/logic-functions/utils/get-boolean-application-variable-value.util';\n\nexport const isCalendarBotSchedulingEnabled = (): boolean =>\n  getBooleanApplicationVariableValue({\n    applicationVariableName:\n      CALL_RECORDER_CALENDAR_BOT_SCHEDULING_ENABLED_ENV_VAR_NAME,\n    defaultValue: DEFAULT_CALL_RECORDER_CALENDAR_BOT_SCHEDULING_ENABLED,\n  });\n", "import { type CoreApiClient } from 'twenty-client-sdk/core';\n\nimport { type CallRecordingUpdateFields } from 'src/logic-functions/types/call-recording-update-fields.type';\n\nexport const updateCallRecording = async (\n  client: CoreApiClient,\n  {\n    id,\n    data,\n  }: {\n    id: string;\n    data: CallRecordingUpdateFields;\n  },\n): Promise<void> => {\n  await client.mutation({\n    updateCallRecording: {\n      __args: {\n        id,\n        data,\n      },\n      id: true,\n    },\n  });\n};\n", "import { type CoreApiClient } from 'twenty-client-sdk/core';\n\nimport { CallRecordingRequestStatus } from 'src/logic-functions/constants/call-recording-request-status';\nimport { CallRecordingStatus } from 'src/logic-functions/constants/call-recording-status';\nimport { type CallRecordingRecord } from 'src/logic-functions/types/call-recording-record.type';\nimport { findCallRecordingsByFilter } from 'src/logic-functions/data/find-call-recordings-by-filter.util';\n\nexport const findOpenScheduledCallRecordings = async (\n  client: CoreApiClient,\n  shouldStartPageRequest: () => boolean = () => true,\n): Promise<CallRecordingRecord[]> =>\n  findCallRecordingsByFilter(\n    client,\n    {\n      recordingRequestStatus: { eq: CallRecordingRequestStatus.REQUESTED },\n      status: { eq: CallRecordingStatus.SCHEDULED },\n    },\n    shouldStartPageRequest,\n  );\n", "import { RetryableLogicFunctionError } from 'twenty-sdk/logic-function';\n\nexport type StepFailure = { error: string };\n\nconst formatStepFailureMessage = (stepLabel: string, error: unknown): string =>\n  `[call-recorder] ${stepLabel} failed: ${\n    error instanceof Error ? error.message : String(error)\n  }`;\n\nexport const buildStepFailure = (\n  stepLabel: string,\n  error: unknown,\n): StepFailure => {\n  if (process.env.NODE_ENV !== 'test') {\n    console.error(formatStepFailureMessage(stepLabel, error));\n  }\n\n  return { error: `${stepLabel} failed` };\n};\n\n// Only RetryableLogicFunctionError makes the job runner redeliver an enqueued job.\nexport const buildRetryableStepFailure = (\n  stepLabel: string,\n  error: unknown,\n): RetryableLogicFunctionError =>\n  new RetryableLogicFunctionError(formatStepFailureMessage(stepLabel, error));\n"],
  "mappings": "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",
  "names": ["isUndefined", "isString", "isNull", "isObject", "isArray", "isNonEmptyArray", "isNonEmptyString", "fn", "path", "buffer", "_", "i", "f", "path", "family", "familySync", "s", "version", "versionSync", "re", "t", "R", "a", "b", "re", "t", "i", "version", "m", "a", "b", "version", "er", "version", "v", "version", "s", "version", "er", "v2", "a", "a", "a", "version", "a", "b", "a", "b", "a", "b", "a", "b", "a", "b", "a", "b", "gt", "a", "b", "lt", "a", "b", "a", "b", "a", "b", "a", "b", "a", "b", "gt", "lt", "a", "b", "re", "t", "version", "version", "r", "c", "i", "k", "cache", "hr", "re", "t", "version", "er", "M", "m", "p", "z", "_", "pr", "r", "re", "t", "m", "version", "er", "version", "er", "c", "versions", "er", "v", "versions", "er", "v", "gt", "i", "require_valid", "er", "gt", "lt", "version", "i", "version", "version", "versions", "v", "a", "b", "version", "gt", "lt", "c", "a", "b", "require_semver", "gt", "lt", "createHash", "semver", "detectLibc", "s", "globalLibvipsVersion", "pkgConfigPath", "import_detect_libc", "require", "runtimePlatformArch", "isUnsupportedNodeRuntime", "prebuiltPlatforms", "minimumLibvipsVersion", "clone", "debuglog", "queueListener", "p", "i", "fn", "metadata", "stats", "Sharp", "extend", "Sharp", "composite", "Sharp", "flip", "flop", "gamma", "kernel", "a", "b", "threshold", "Sharp", "__defProp", "__getOwnPropDesc", "__getOwnPropNames", "__hasOwnProp", "__export", "__copyProps", "string", "i", "i2", "h", "s", "l", "a", "w", "b", "r", "g", "c", "v", "aa", "k", "m", "y", "x", "z", "t2", "hi", "f", "p", "q", "t", "n", "y2", "x2", "z2", "hr", "color", "integer", "grayscale", "queue", "path", "fn", "object", "w2", "number", "tint", "greyscale", "grayscale", "colourspace", "color", "Sharp", "bool", "Sharp", "k", "v", "format", "Sharp", "createRequire", "concurrency", "simd", "import_detect_libc", "require", "runtimePlatform", "_", "detectLibc", "Sharp", "import_guards", "import_guards", "import_guards", "import_guards", "import_guards", "import_guards", "import_guards", "import_guards", "import_guards", "import_guards", "import_guards", "path", "import_guards", "import_guards", "import_guards", "import_guards", "import_guards", "path", "import_guards", "metadata", "import_guards", "import_guards", "import_guards", "import_guards", "import_guards", "normalizeOptionalString", "metadata", "i", "i", "s", "n", "e", "t", "t", "n", "r", "i", "e", "o", "a", "isObject", "F", "initializer", "util.jsonStringifyReplacer", "core.$ZodAsyncError", "util.finalizeIssue", "core.config", "errors.$ZodError", "safeParse", "errors.$ZodRealError", "safeParseAsync", "duration", "_emoji", "date", "time", "datetime", "string", "util.nullish", "util.getLengthableOrigin", "regexes.lowercase", "regexes.uppercase", "util.escapeRegex", "content", "util.aborted", "regexes.string", "regexes.guid", "regexes.uuid", "regexes.email", "regexes.emoji", "regexes.nanoid", "regexes.cuid", "regexes.cuid2", "regexes.ulid", "regexes.xid", "regexes.ksuid", "regexes.datetime", "regexes.date", "regexes.time", "regexes.duration", "regexes.ipv4", "regexes.ipv6", "regexes.cidrv4", "regexes.cidrv6", "regexes.base64", "regexes.base64url", "regexes.e164", "util.prefixIssues", "s", "util.optionalKeys", "c", "l", "util.cached", "util.isObject", "util.esc", "allowsEval", "u", "d", "f", "p", "util.cleanRegex", "util.isPlainObject", "util.getEnumValues", "core.$ZodEncodeError", "util.issue", "util.normalizeParams", "checks.$ZodCheckMaxLength", "checks.$ZodCheckMinLength", "checks.$ZodCheckLengthEquals", "checks.$ZodCheckRegex", "checks.$ZodCheckLowerCase", "checks.$ZodCheckUpperCase", "checks.$ZodCheckIncludes", "checks.$ZodCheckStartsWith", "checks.$ZodCheckEndsWith", "checks.$ZodCheckOverwrite", "issue", "checks.$ZodCheck", "core._isoDateTime", "core._isoDate", "core._isoTime", "core._isoDuration", "core.formatError", "core.flattenError", "core.$constructor", "util.mergeDefs", "core.clone", "parse.parse", "parse.safeParse", "parse.parseAsync", "parse.safeParseAsync", "parse.encode", "parse.decode", "parse.encodeAsync", "parse.decodeAsync", "parse.safeEncode", "parse.safeDecode", "parse.safeEncodeAsync", "parse.safeDecodeAsync", "checks.overwrite", "checks.regex", "checks.includes", "checks.startsWith", "checks.endsWith", "checks.minLength", "checks.maxLength", "checks.length", "checks.lowercase", "checks.uppercase", "checks.trim", "checks.normalize", "checks.toLowerCase", "checks.toUpperCase", "core._email", "core._url", "core._jwt", "core._emoji", "core._guid", "core._uuid", "core._uuidv4", "core._uuidv6", "core._uuidv7", "core._nanoid", "core._cuid", "core._cuid2", "core._ulid", "core._base64", "core._base64url", "core._xid", "core._ksuid", "core._ipv4", "core._ipv6", "core._cidrv4", "core._cidrv6", "core._e164", "iso.datetime", "iso.date", "iso.time", "iso.duration", "core._string", "core._unknown", "core._never", "core._array", "util.extend", "util.safeExtend", "util.merge", "util.pick", "util.omit", "util.partial", "util.required", "util.shallowClone", "core._refine", "core._superRefine", "m", "h", "ee", "g", "_", "v", "y", "b", "x", "S", "t.object", "t.string", "t", "import_guards", "import_guards", "sharp", "sharp", "jpeg", "t", "n", "r", "i", "e", "o", "a", "l", "u", "g", "_", "F", "v", "y", "b", "x", "oe", "se", "ce", "le", "ue", "S", "de", "C", "w", "T", "E", "initializer", "util.jsonStringifyReplacer", "pe", "me", "he", "ge", "D", "s", "c", "core.$ZodAsyncError", "util.finalizeIssue", "core.config", "O", "k", "errors.$ZodError", "safeParse", "errors.$ZodRealError", "A", "safeParseAsync", "ye", "be", "xe", "Se", "Ce", "we", "Te", "Ee", "De", "Oe", "ke", "Ae", "je", "Me", "duration", "Pe", "j", "Fe", "_emoji", "Le", "Re", "ze", "Be", "Ve", "He", "M", "Ue", "We", "N", "date", "Ke", "time", "datetime", "string", "Xe", "Ze", "P", "Qe", "util.nullish", "util.getLengthableOrigin", "$e", "et", "tt", "nt", "regexes.lowercase", "rt", "regexes.uppercase", "it", "util.escapeRegex", "at", "ot", "st", "ct", "content", "lt", "I", "util.aborted", "L", "regexes.string", "R", "ut", "regexes.guid", "dt", "regexes.uuid", "ft", "regexes.email", "pt", "mt", "regexes.emoji", "ht", "regexes.nanoid", "gt", "regexes.cuid", "_t", "regexes.cuid2", "vt", "regexes.ulid", "yt", "regexes.xid", "bt", "regexes.ksuid", "xt", "regexes.datetime", "St", "regexes.date", "Ct", "regexes.time", "wt", "regexes.duration", "Tt", "regexes.ipv4", "Et", "regexes.ipv6", "Dt", "regexes.cidrv4", "Ot", "regexes.cidrv6", "kt", "At", "regexes.base64", "jt", "Mt", "regexes.base64url", "Nt", "regexes.e164", "Pt", "Ft", "It", "Lt", "Rt", "util.prefixIssues", "zt", "z", "Bt", "util.optionalKeys", "Vt", "Ht", "util.cached", "isObject", "util.isObject", "Ut", "util.esc", "allowsEval", "d", "f", "p", "Wt", "Gt", "util.cleanRegex", "Kt", "qt", "B", "util.isPlainObject", "Jt", "util.getEnumValues", "Yt", "core.$ZodEncodeError", "Xt", "Zt", "Qt", "$t", "en", "tn", "nn", "rn", "an", "on", "V", "sn", "cn", "ln", "un", "util.issue", "dn", "fn", "H", "pn", "util.normalizeParams", "mn", "hn", "gn", "_n", "vn", "yn", "bn", "xn", "Sn", "Cn", "wn", "Tn", "En", "Dn", "On", "kn", "An", "jn", "Mn", "Nn", "Pn", "Fn", "In", "Ln", "Rn", "zn", "Bn", "Vn", "Hn", "checks.$ZodCheckMaxLength", "U", "checks.$ZodCheckMinLength", "Un", "checks.$ZodCheckLengthEquals", "Wn", "checks.$ZodCheckRegex", "Gn", "checks.$ZodCheckLowerCase", "Kn", "checks.$ZodCheckUpperCase", "qn", "checks.$ZodCheckIncludes", "Jn", "checks.$ZodCheckStartsWith", "Yn", "checks.$ZodCheckEndsWith", "W", "checks.$ZodCheckOverwrite", "Xn", "Zn", "Qn", "$n", "er", "tr", "nr", "rr", "issue", "checks.$ZodCheck", "ir", "q", "ar", "core._isoDateTime", "or", "sr", "core._isoDate", "cr", "lr", "core._isoTime", "ur", "dr", "core._isoDuration", "fr", "core.formatError", "core.flattenError", "core.$constructor", "G", "pr", "mr", "hr", "gr", "_r", "vr", "yr", "br", "xr", "Sr", "Cr", "wr", "K", "util.mergeDefs", "core.clone", "parse.parse", "parse.safeParse", "parse.parseAsync", "parse.safeParseAsync", "parse.encode", "parse.decode", "parse.encodeAsync", "parse.decodeAsync", "parse.safeEncode", "parse.safeDecode", "parse.safeEncodeAsync", "parse.safeDecodeAsync", "Ci", "wi", "checks.overwrite", "X", "li", "hi", "Zr", "ti", "ri", "yi", "oi", "di", "pi", "_i", "xi", "Tr", "checks.regex", "checks.includes", "checks.startsWith", "checks.endsWith", "checks.minLength", "checks.maxLength", "checks.length", "checks.lowercase", "checks.uppercase", "checks.trim", "checks.normalize", "checks.toLowerCase", "checks.toUpperCase", "Er", "core._email", "Or", "core._url", "Ar", "core._jwt", "Gr", "core._emoji", "jr", "core._guid", "kr", "core._uuid", "J", "core._uuidv4", "core._uuidv6", "core._uuidv7", "core._nanoid", "Mr", "core._cuid", "Nr", "core._cuid2", "Pr", "core._ulid", "Fr", "core._base64", "Hr", "core._base64url", "Ur", "core._xid", "Ir", "core._ksuid", "Lr", "core._ipv4", "Rr", "core._ipv6", "zr", "core._cidrv4", "Br", "core._cidrv6", "Vr", "core._e164", "Wr", "iso.datetime", "iso.date", "iso.time", "iso.duration", "Dr", "core._string", "Kr", "qr", "core._unknown", "Jr", "Yr", "core._never", "Xr", "core._array", "Qr", "ii", "util.extend", "util.safeExtend", "util.merge", "util.pick", "util.omit", "util.partial", "si", "util.required", "mi", "$r", "ei", "ni", "Y", "ai", "ci", "ui", "util.shallowClone", "fi", "gi", "vi", "bi", "Si", "core._refine", "core._superRefine", "Ti", "Ei", "Di", "Oi", "ki", "m", "h", "Ai", "ji", "Z", "Mi", "t.object", "t.string", "Hi", "Ui", "Wi", "qi", "Ji", "t", "n", "Ui", "Yi", "Hi", "Wi", "r", "e", "Yi", "import_guards", "metadata"]
}
