{"version":3,"file":"module.js","mappings":"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","sources":["webpack://grafana-ml-app/webpack/runtime/create fake namespace object","webpack://grafana-ml-app/webpack/runtime/load script","webpack://grafana-ml-app/../../node_modules/fp-ts/lib/Apply.js","webpack://grafana-ml-app/../../node_modules/rxjs/dist/esm5/internal/operators/OperatorSubscriber.js","webpack://grafana-ml-app/../../node_modules/semver/index.js","webpack://grafana-ml-app/../../node_modules/rxjs/dist/esm5/internal/util/noop.js","webpack://grafana-ml-app/../../node_modules/rxjs/dist/esm5/internal/NotificationFactories.js","webpack://grafana-ml-app/../../node_modules/rxjs/dist/esm5/internal/Subscriber.js","webpack://grafana-ml-app/../../node_modules/semver/functions/compare-build.js","webpack://grafana-ml-app/../../node_modules/fp-ts/lib/internal.js","webpack://grafana-ml-app/./utils/utils.jobs.tsx","webpack://grafana-ml-app/../../node_modules/fp-ts/lib/FromEither.js","webpack://grafana-ml-app/../../node_modules/rxjs/dist/esm5/internal/util/errorContext.js","webpack://grafana-ml-app/../../node_modules/fp-ts/lib/ReadonlyArray.js","webpack://grafana-ml-app/../../node_modules/fp-ts/lib/Semigroup.js","webpack://grafana-ml-app/../../node_modules/semver/internal/parse-options.js","webpack://grafana-ml-app/../../node_modules/rxjs/dist/esm5/internal/util/isFunction.js","webpack://grafana-ml-app/../../node_modules/fp-ts/lib/Functor.js","webpack://grafana-ml-app/../../node_modules/rxjs/dist/esm5/internal/operators/map.js","webpack://grafana-ml-app/external amd \"@grafana/runtime\"","webpack://grafana-ml-app/../../node_modules/semver/ranges/intersects.js","webpack://grafana-ml-app/./utils/utils.forms.ts","webpack://grafana-ml-app/../../node_modules/rxjs/dist/esm5/internal/scheduler/timeoutProvider.js","webpack://grafana-ml-app/external amd \"app/core/core\"","webpack://grafana-ml-app/../../node_modules/rxjs/dist/esm5/internal/util/lift.js","webpack://grafana-ml-app/../../node_modules/fp-ts/lib/Ord.js","webpack://grafana-ml-app/../../node_modules/semver/classes/semver.js","webpack://grafana-ml-app/./utils/timeConversion.ts","webpack://grafana-ml-app/../../node_modules/fp-ts/lib/Magma.js","webpack://grafana-ml-app/../../node_modules/semver/ranges/to-comparators.js","webpack://grafana-ml-app/../../node_modules/semver/functions/major.js","webpack://grafana-ml-app/../../node_modules/semver/ranges/gtr.js","webpack://grafana-ml-app/../../node_modules/semver/functions/satisfies.js","webpack://grafana-ml-app/../../node_modules/semver/functions/neq.js","webpack://grafana-ml-app/../../node_modules/semver/functions/valid.js","webpack://grafana-ml-app/../../node_modules/semver/functions/eq.js","webpack://grafana-ml-app/../../node_modules/rxjs/dist/esm5/internal/config.js","webpack://grafana-ml-app/external amd \"rxjs\"","webpack://grafana-ml-app/../../node_modules/semver/functions/minor.js","webpack://grafana-ml-app/../../node_modules/fp-ts/lib/Applicative.js","webpack://grafana-ml-app/../../node_modules/semver/functions/sort.js","webpack://grafana-ml-app/../../node_modules/semver/ranges/ltr.js","webpack://grafana-ml-app/../../node_modules/semver/ranges/valid.js","webpack://grafana-ml-app/../../node_modules/semver/classes/range.js","webpack://grafana-ml-app/../../node_modules/semver/functions/inc.js","webpack://grafana-ml-app/./extensions/types.ts","webpack://grafana-ml-app/../../node_modules/semver/ranges/subset.js","webpack://grafana-ml-app/external amd \"module\"","webpack://grafana-ml-app/../../node_modules/semver/internal/debug.js","webpack://grafana-ml-app/../../node_modules/fp-ts/lib/function.js","webpack://grafana-ml-app/../../node_modules/rxjs/dist/esm5/internal/util/reportUnhandledError.js","webpack://grafana-ml-app/../../node_modules/rxjs/dist/esm5/internal/util/UnsubscriptionError.js","webpack://grafana-ml-app/../../node_modules/rxjs/dist/esm5/internal/util/createErrorClass.js","webpack://grafana-ml-app/../../node_modules/rxjs/dist/esm5/internal/util/arrRemove.js","webpack://grafana-ml-app/../../node_modules/rxjs/dist/esm5/internal/Subscription.js","webpack://grafana-ml-app/external amd \"@emotion/css\"","webpack://grafana-ml-app/external amd \"react-dom\"","webpack://grafana-ml-app/./utils/utils.timeZone.ts","webpack://grafana-ml-app/../../node_modules/semver/functions/lt.js","webpack://grafana-ml-app/../../node_modules/semver/classes/comparator.js","webpack://grafana-ml-app/../../node_modules/semver/functions/compare-loose.js","webpack://grafana-ml-app/../../node_modules/zod/lib/index.mjs","webpack://grafana-ml-app/./types/sift.gen.ts","webpack://grafana-ml-app/../../node_modules/semver/functions/cmp.js","webpack://grafana-ml-app/../../node_modules/semver/ranges/max-satisfying.js","webpack://grafana-ml-app/../../node_modules/semver/ranges/min-satisfying.js","webpack://grafana-ml-app/./utils/utils.sparklines.ts","webpack://grafana-ml-app/../../node_modules/semver/functions/coerce.js","webpack://grafana-ml-app/../../node_modules/semver/ranges/outside.js","webpack://grafana-ml-app/../../node_modules/semver/internal/lrucache.js","webpack://grafana-ml-app/../../node_modules/fp-ts/lib/Eq.js","webpack://grafana-ml-app/../../node_modules/fp-ts/lib/Chain.js","webpack://grafana-ml-app/./utils/utils.plugin.ts","webpack://grafana-ml-app/../../node_modules/fp-ts/lib/number.js","webpack://grafana-ml-app/../../node_modules/fp-ts/lib/Predicate.js","webpack://grafana-ml-app/../../node_modules/semver/functions/prerelease.js","webpack://grafana-ml-app/./utils/dataframeHelpers.ts","webpack://grafana-ml-app/./utils/prophetHelpers.ts","webpack://grafana-ml-app/./utils/utils.models.tsx","webpack://grafana-ml-app/./utils/utils.outlierColors.ts","webpack://grafana-ml-app/./utils/utils.scenes.transformation.ts","webpack://grafana-ml-app/./utils/utils.styling.ts","webpack://grafana-ml-app/../../node_modules/semver/ranges/min-version.js","webpack://grafana-ml-app/../../node_modules/semver/functions/gte.js","webpack://grafana-ml-app/../../node_modules/semver/internal/re.js","webpack://grafana-ml-app/./utils/timeRange.ts","webpack://grafana-ml-app/../../node_modules/semver/functions/diff.js","webpack://grafana-ml-app/../../node_modules/fp-ts/lib/Option.js","webpack://grafana-ml-app/../../node_modules/fp-ts/lib/Separated.js","webpack://grafana-ml-app/./consts.ts","webpack://grafana-ml-app/../../node_modules/semver/ranges/simplify.js","webpack://grafana-ml-app/../../node_modules/fp-ts/lib/Zero.js","webpack://grafana-ml-app/../../node_modules/semver/internal/constants.js","webpack://grafana-ml-app/external amd \"react-router\"","webpack://grafana-ml-app/external amd \"@grafana/ui\"","webpack://grafana-ml-app/./utils/utils.general.ts","webpack://grafana-ml-app/../../grafana-ml-common/types/index.ts","webpack://grafana-ml-app/../../node_modules/tslib/tslib.es6.mjs","webpack://grafana-ml-app/external amd \"react\"","webpack://grafana-ml-app/../../node_modules/semver/functions/rcompare.js","webpack://grafana-ml-app/external amd \"@grafana/data\"","webpack://grafana-ml-app/../../node_modules/semver/functions/compare.js","webpack://grafana-ml-app/../../node_modules/semver/functions/lte.js","webpack://grafana-ml-app/../../node_modules/semver/functions/gt.js","webpack://grafana-ml-app/../../node_modules/semver/functions/clean.js","webpack://grafana-ml-app/external amd \"lodash\"","webpack://grafana-ml-app/../../node_modules/semver/internal/identifiers.js","webpack://grafana-ml-app/../../node_modules/semver/functions/rsort.js","webpack://grafana-ml-app/../../node_modules/semver/functions/parse.js","webpack://grafana-ml-app/./utils/utils.outlierContent.ts","webpack://grafana-ml-app/../../node_modules/semver/functions/patch.js","webpack://grafana-ml-app/./extensions/utils.ts","webpack://grafana-ml-app/../../node_modules/fp-ts/lib/ReadonlyNonEmptyArray.js","webpack://grafana-ml-app/../../node_modules/fp-ts/lib/Witherable.js","webpack://grafana-ml-app/webpack/bootstrap","webpack://grafana-ml-app/webpack/runtime/compat get default export","webpack://grafana-ml-app/webpack/runtime/define property getters","webpack://grafana-ml-app/webpack/runtime/ensure chunk","webpack://grafana-ml-app/webpack/runtime/get javascript chunk filename","webpack://grafana-ml-app/webpack/runtime/global","webpack://grafana-ml-app/webpack/runtime/hasOwnProperty shorthand","webpack://grafana-ml-app/webpack/runtime/make namespace object","webpack://grafana-ml-app/webpack/runtime/publicPath","webpack://grafana-ml-app/webpack/runtime/compat","webpack://grafana-ml-app/webpack/runtime/jsonp chunk loading","webpack://grafana-ml-app/webpack/runtime/nonce","webpack://grafana-ml-app/./node_modules/grafana-public-path.js","webpack://grafana-ml-app/./utils/utils.lazy.tsx","webpack://grafana-ml-app/./extensions/alerting.ts","webpack://grafana-ml-app/./extensions/guards.ts","webpack://grafana-ml-app/./extensions/configureLink.ts","webpack://grafana-ml-app/./extensions/ml.tsx","webpack://grafana-ml-app/./extensions/sift.ts","webpack://grafana-ml-app/./extensions/configureApp.tsx","webpack://grafana-ml-app/./module.tsx"],"sourcesContent":["var getProto = Object.getPrototypeOf ? (obj) => (Object.getPrototypeOf(obj)) : (obj) => (obj.__proto__);\nvar leafPrototypes;\n// create a fake namespace object\n// mode & 1: value is a module id, require it\n// mode & 2: merge all properties of value into the ns\n// mode & 4: return value when already ns object\n// mode & 16: return value when it's Promise-like\n// mode & 8|1: behave like require\n__webpack_require__.t = function(value, mode) {\n\tif(mode & 1) value = this(value);\n\tif(mode & 8) return value;\n\tif(typeof value === 'object' && value) {\n\t\tif((mode & 4) && value.__esModule) return value;\n\t\tif((mode & 16) && typeof value.then === 'function') return value;\n\t}\n\tvar ns = Object.create(null);\n\t__webpack_require__.r(ns);\n\tvar def = {};\n\tleafPrototypes = leafPrototypes || [null, getProto({}), getProto([]), getProto(getProto)];\n\tfor(var current = mode & 2 && value; typeof current == 'object' && !~leafPrototypes.indexOf(current); current = getProto(current)) {\n\t\tObject.getOwnPropertyNames(current).forEach((key) => (def[key] = () => (value[key])));\n\t}\n\tdef['default'] = () => (value);\n\t__webpack_require__.d(ns, def);\n\treturn ns;\n};","var inProgress = {};\nvar dataWebpackPrefix = \"grafana-ml-app:\";\n// loadScript function to load a script via script tag\n__webpack_require__.l = (url, done, key, chunkId) => {\n\tif(inProgress[url]) { inProgress[url].push(done); return; }\n\tvar script, needAttach;\n\tif(key !== undefined) {\n\t\tvar scripts = document.getElementsByTagName(\"script\");\n\t\tfor(var i = 0; i < scripts.length; i++) {\n\t\t\tvar s = scripts[i];\n\t\t\tif(s.getAttribute(\"src\") == url || s.getAttribute(\"data-webpack\") == dataWebpackPrefix + key) { script = s; break; }\n\t\t}\n\t}\n\tif(!script) {\n\t\tneedAttach = true;\n\t\tscript = document.createElement('script');\n\n\t\tscript.charset = 'utf-8';\n\t\tscript.timeout = 120;\n\t\tif (__webpack_require__.nc) {\n\t\t\tscript.setAttribute(\"nonce\", __webpack_require__.nc);\n\t\t}\n\t\tscript.setAttribute(\"data-webpack\", dataWebpackPrefix + key);\n\n\t\tscript.src = url;\n\t\tif (script.src.indexOf(window.location.origin + '/') !== 0) {\n\t\t\tscript.crossOrigin = \"anonymous\";\n\t\t}\n\t\tscript.integrity = __webpack_require__.sriHashes[chunkId];\n\t\tscript.crossOrigin = \"anonymous\";\n\t}\n\tinProgress[url] = [done];\n\tvar onScriptComplete = (prev, event) => {\n\t\t// avoid mem leaks in IE.\n\t\tscript.onerror = script.onload = null;\n\t\tclearTimeout(timeout);\n\t\tvar doneFns = inProgress[url];\n\t\tdelete inProgress[url];\n\t\tscript.parentNode && script.parentNode.removeChild(script);\n\t\tdoneFns && doneFns.forEach((fn) => (fn(event)));\n\t\tif(prev) return prev(event);\n\t}\n\tvar timeout = setTimeout(onScriptComplete.bind(null, undefined, { type: 'timeout', target: script }), 120000);\n\tscript.onerror = onScriptComplete.bind(null, script.onerror);\n\tscript.onload = onScriptComplete.bind(null, script.onload);\n\tneedAttach && document.head.appendChild(script);\n};","\"use strict\";\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n var desc = Object.getOwnPropertyDescriptor(m, k);\n if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\n desc = { enumerable: true, get: function() { return m[k]; } };\n }\n Object.defineProperty(o, k2, desc);\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n}));\nvar __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\n}) : function(o, v) {\n o[\"default\"] = v;\n});\nvar __importStar = (this && this.__importStar) || function (mod) {\n if (mod && mod.__esModule) return mod;\n var result = {};\n if (mod != null) for (var k in mod) if (k !== \"default\" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\n __setModuleDefault(result, mod);\n return result;\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.ap = ap;\nexports.apFirst = apFirst;\nexports.apSecond = apSecond;\nexports.apS = apS;\nexports.getApplySemigroup = getApplySemigroup;\nexports.sequenceT = sequenceT;\nexports.sequenceS = sequenceS;\n/**\n * The `Apply` class provides the `ap` which is used to apply a function to an argument under a type constructor.\n *\n * `Apply` can be used to lift functions of two or more arguments to work on values wrapped with the type constructor\n * `f`.\n *\n * Instances must satisfy the following law in addition to the `Functor` laws:\n *\n * 1. Associative composition: `F.ap(F.ap(F.map(fbc, bc => ab => a => bc(ab(a))), fab), fa) <-> F.ap(fbc, F.ap(fab, fa))`\n *\n * Formally, `Apply` represents a strong lax semi-monoidal endofunctor.\n *\n * @example\n * import * as O from 'fp-ts/Option'\n * import { pipe } from 'fp-ts/function'\n *\n * const f = (a: string) => (b: number) => (c: boolean) => a + String(b) + String(c)\n * const fa: O.Option = O.some('s')\n * const fb: O.Option = O.some(1)\n * const fc: O.Option = O.some(true)\n *\n * assert.deepStrictEqual(\n * pipe(\n * // lift a function\n * O.some(f),\n * // apply the first argument\n * O.ap(fa),\n * // apply the second argument\n * O.ap(fb),\n * // apply the third argument\n * O.ap(fc)\n * ),\n * O.some('s1true')\n * )\n *\n * @since 2.0.0\n */\nvar function_1 = require(\"./function\");\nvar _ = __importStar(require(\"./internal\"));\nfunction ap(F, G) {\n return function (fa) {\n return function (fab) {\n return F.ap(F.map(fab, function (gab) { return function (ga) { return G.ap(gab, ga); }; }), fa);\n };\n };\n}\nfunction apFirst(A) {\n return function (second) { return function (first) {\n return A.ap(A.map(first, function (a) { return function () { return a; }; }), second);\n }; };\n}\nfunction apSecond(A) {\n return function (second) {\n return function (first) {\n return A.ap(A.map(first, function () { return function (b) { return b; }; }), second);\n };\n };\n}\nfunction apS(F) {\n return function (name, fb) {\n return function (fa) {\n return F.ap(F.map(fa, function (a) { return function (b) {\n var _a;\n return Object.assign({}, a, (_a = {}, _a[name] = b, _a));\n }; }), fb);\n };\n };\n}\nfunction getApplySemigroup(F) {\n return function (S) { return ({\n concat: function (first, second) {\n return F.ap(F.map(first, function (x) { return function (y) { return S.concat(x, y); }; }), second);\n }\n }); };\n}\nfunction curried(f, n, acc) {\n return function (x) {\n var combined = Array(acc.length + 1);\n for (var i = 0; i < acc.length; i++) {\n combined[i] = acc[i];\n }\n combined[acc.length] = x;\n return n === 0 ? f.apply(null, combined) : curried(f, n - 1, combined);\n };\n}\nvar tupleConstructors = {\n 1: function (a) { return [a]; },\n 2: function (a) { return function (b) { return [a, b]; }; },\n 3: function (a) { return function (b) { return function (c) { return [a, b, c]; }; }; },\n 4: function (a) { return function (b) { return function (c) { return function (d) { return [a, b, c, d]; }; }; }; },\n 5: function (a) { return function (b) { return function (c) { return function (d) { return function (e) { return [a, b, c, d, e]; }; }; }; }; }\n};\nfunction getTupleConstructor(len) {\n if (!_.has.call(tupleConstructors, len)) {\n tupleConstructors[len] = curried(function_1.tuple, len - 1, []);\n }\n return tupleConstructors[len];\n}\nfunction sequenceT(F) {\n return function () {\n var args = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n args[_i] = arguments[_i];\n }\n var len = args.length;\n var f = getTupleConstructor(len);\n var fas = F.map(args[0], f);\n for (var i = 1; i < len; i++) {\n fas = F.ap(fas, args[i]);\n }\n return fas;\n };\n}\nfunction getRecordConstructor(keys) {\n var len = keys.length;\n switch (len) {\n case 1:\n return function (a) {\n var _a;\n return (_a = {}, _a[keys[0]] = a, _a);\n };\n case 2:\n return function (a) { return function (b) {\n var _a;\n return (_a = {}, _a[keys[0]] = a, _a[keys[1]] = b, _a);\n }; };\n case 3:\n return function (a) { return function (b) { return function (c) {\n var _a;\n return (_a = {}, _a[keys[0]] = a, _a[keys[1]] = b, _a[keys[2]] = c, _a);\n }; }; };\n case 4:\n return function (a) { return function (b) { return function (c) { return function (d) {\n var _a;\n return (_a = {},\n _a[keys[0]] = a,\n _a[keys[1]] = b,\n _a[keys[2]] = c,\n _a[keys[3]] = d,\n _a);\n }; }; }; };\n case 5:\n return function (a) { return function (b) { return function (c) { return function (d) { return function (e) {\n var _a;\n return (_a = {},\n _a[keys[0]] = a,\n _a[keys[1]] = b,\n _a[keys[2]] = c,\n _a[keys[3]] = d,\n _a[keys[4]] = e,\n _a);\n }; }; }; }; };\n default:\n return curried(function () {\n var args = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n args[_i] = arguments[_i];\n }\n var r = {};\n for (var i = 0; i < len; i++) {\n r[keys[i]] = args[i];\n }\n return r;\n }, len - 1, []);\n }\n}\nfunction sequenceS(F) {\n return function (r) {\n var keys = Object.keys(r);\n var len = keys.length;\n var f = getRecordConstructor(keys);\n var fr = F.map(r[keys[0]], f);\n for (var i = 1; i < len; i++) {\n fr = F.ap(fr, r[keys[i]]);\n }\n return fr;\n };\n}\n","import { __extends } from \"tslib\";\nimport { Subscriber } from '../Subscriber';\nexport function createOperatorSubscriber(destination, onNext, onComplete, onError, onFinalize) {\n return new OperatorSubscriber(destination, onNext, onComplete, onError, onFinalize);\n}\nvar OperatorSubscriber = (function (_super) {\n __extends(OperatorSubscriber, _super);\n function OperatorSubscriber(destination, onNext, onComplete, onError, onFinalize, shouldUnsubscribe) {\n var _this = _super.call(this, destination) || this;\n _this.onFinalize = onFinalize;\n _this.shouldUnsubscribe = shouldUnsubscribe;\n _this._next = onNext\n ? function (value) {\n try {\n onNext(value);\n }\n catch (err) {\n destination.error(err);\n }\n }\n : _super.prototype._next;\n _this._error = onError\n ? function (err) {\n try {\n onError(err);\n }\n catch (err) {\n destination.error(err);\n }\n finally {\n this.unsubscribe();\n }\n }\n : _super.prototype._error;\n _this._complete = onComplete\n ? function () {\n try {\n onComplete();\n }\n catch (err) {\n destination.error(err);\n }\n finally {\n this.unsubscribe();\n }\n }\n : _super.prototype._complete;\n return _this;\n }\n OperatorSubscriber.prototype.unsubscribe = function () {\n var _a;\n if (!this.shouldUnsubscribe || this.shouldUnsubscribe()) {\n var closed_1 = this.closed;\n _super.prototype.unsubscribe.call(this);\n !closed_1 && ((_a = this.onFinalize) === null || _a === void 0 ? void 0 : _a.call(this));\n }\n };\n return OperatorSubscriber;\n}(Subscriber));\nexport { OperatorSubscriber };\n//# sourceMappingURL=OperatorSubscriber.js.map","// 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 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 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","export function noop() { }\n//# sourceMappingURL=noop.js.map","export var COMPLETE_NOTIFICATION = (function () { return createNotification('C', undefined, undefined); })();\nexport function errorNotification(error) {\n return createNotification('E', undefined, error);\n}\nexport function nextNotification(value) {\n return createNotification('N', value, undefined);\n}\nexport function createNotification(kind, value, error) {\n return {\n kind: kind,\n value: value,\n error: error,\n };\n}\n//# sourceMappingURL=NotificationFactories.js.map","import { __extends } from \"tslib\";\nimport { isFunction } from './util/isFunction';\nimport { isSubscription, Subscription } from './Subscription';\nimport { config } from './config';\nimport { reportUnhandledError } from './util/reportUnhandledError';\nimport { noop } from './util/noop';\nimport { nextNotification, errorNotification, COMPLETE_NOTIFICATION } from './NotificationFactories';\nimport { timeoutProvider } from './scheduler/timeoutProvider';\nimport { captureError } from './util/errorContext';\nvar Subscriber = (function (_super) {\n __extends(Subscriber, _super);\n function Subscriber(destination) {\n var _this = _super.call(this) || this;\n _this.isStopped = false;\n if (destination) {\n _this.destination = destination;\n if (isSubscription(destination)) {\n destination.add(_this);\n }\n }\n else {\n _this.destination = EMPTY_OBSERVER;\n }\n return _this;\n }\n Subscriber.create = function (next, error, complete) {\n return new SafeSubscriber(next, error, complete);\n };\n Subscriber.prototype.next = function (value) {\n if (this.isStopped) {\n handleStoppedNotification(nextNotification(value), this);\n }\n else {\n this._next(value);\n }\n };\n Subscriber.prototype.error = function (err) {\n if (this.isStopped) {\n handleStoppedNotification(errorNotification(err), this);\n }\n else {\n this.isStopped = true;\n this._error(err);\n }\n };\n Subscriber.prototype.complete = function () {\n if (this.isStopped) {\n handleStoppedNotification(COMPLETE_NOTIFICATION, this);\n }\n else {\n this.isStopped = true;\n this._complete();\n }\n };\n Subscriber.prototype.unsubscribe = function () {\n if (!this.closed) {\n this.isStopped = true;\n _super.prototype.unsubscribe.call(this);\n this.destination = null;\n }\n };\n Subscriber.prototype._next = function (value) {\n this.destination.next(value);\n };\n Subscriber.prototype._error = function (err) {\n try {\n this.destination.error(err);\n }\n finally {\n this.unsubscribe();\n }\n };\n Subscriber.prototype._complete = function () {\n try {\n this.destination.complete();\n }\n finally {\n this.unsubscribe();\n }\n };\n return Subscriber;\n}(Subscription));\nexport { Subscriber };\nvar _bind = Function.prototype.bind;\nfunction bind(fn, thisArg) {\n return _bind.call(fn, thisArg);\n}\nvar ConsumerObserver = (function () {\n function ConsumerObserver(partialObserver) {\n this.partialObserver = partialObserver;\n }\n ConsumerObserver.prototype.next = function (value) {\n var partialObserver = this.partialObserver;\n if (partialObserver.next) {\n try {\n partialObserver.next(value);\n }\n catch (error) {\n handleUnhandledError(error);\n }\n }\n };\n ConsumerObserver.prototype.error = function (err) {\n var partialObserver = this.partialObserver;\n if (partialObserver.error) {\n try {\n partialObserver.error(err);\n }\n catch (error) {\n handleUnhandledError(error);\n }\n }\n else {\n handleUnhandledError(err);\n }\n };\n ConsumerObserver.prototype.complete = function () {\n var partialObserver = this.partialObserver;\n if (partialObserver.complete) {\n try {\n partialObserver.complete();\n }\n catch (error) {\n handleUnhandledError(error);\n }\n }\n };\n return ConsumerObserver;\n}());\nvar SafeSubscriber = (function (_super) {\n __extends(SafeSubscriber, _super);\n function SafeSubscriber(observerOrNext, error, complete) {\n var _this = _super.call(this) || this;\n var partialObserver;\n if (isFunction(observerOrNext) || !observerOrNext) {\n partialObserver = {\n next: (observerOrNext !== null && observerOrNext !== void 0 ? observerOrNext : undefined),\n error: error !== null && error !== void 0 ? error : undefined,\n complete: complete !== null && complete !== void 0 ? complete : undefined,\n };\n }\n else {\n var context_1;\n if (_this && config.useDeprecatedNextContext) {\n context_1 = Object.create(observerOrNext);\n context_1.unsubscribe = function () { return _this.unsubscribe(); };\n partialObserver = {\n next: observerOrNext.next && bind(observerOrNext.next, context_1),\n error: observerOrNext.error && bind(observerOrNext.error, context_1),\n complete: observerOrNext.complete && bind(observerOrNext.complete, context_1),\n };\n }\n else {\n partialObserver = observerOrNext;\n }\n }\n _this.destination = new ConsumerObserver(partialObserver);\n return _this;\n }\n return SafeSubscriber;\n}(Subscriber));\nexport { SafeSubscriber };\nfunction handleUnhandledError(error) {\n if (config.useDeprecatedSynchronousErrorHandling) {\n captureError(error);\n }\n else {\n reportUnhandledError(error);\n }\n}\nfunction defaultErrorHandler(err) {\n throw err;\n}\nfunction handleStoppedNotification(notification, subscriber) {\n var onStoppedNotification = config.onStoppedNotification;\n onStoppedNotification && timeoutProvider.setTimeout(function () { return onStoppedNotification(notification, subscriber); });\n}\nexport var EMPTY_OBSERVER = {\n closed: true,\n next: noop,\n error: defaultErrorHandler,\n complete: noop,\n};\n//# sourceMappingURL=Subscriber.js.map","const 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\";\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};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.flatMapReader = exports.flatMapTask = exports.flatMapIO = exports.flatMapEither = exports.flatMapOption = exports.flatMapNullable = exports.liftOption = exports.liftNullable = exports.fromReadonlyNonEmptyArray = exports.has = exports.emptyRecord = exports.emptyReadonlyArray = exports.tail = exports.head = exports.isNonEmpty = exports.singleton = exports.right = exports.left = exports.isRight = exports.isLeft = exports.some = exports.none = exports.isSome = exports.isNone = void 0;\nvar function_1 = require(\"./function\");\n// -------------------------------------------------------------------------------------\n// Option\n// -------------------------------------------------------------------------------------\n/** @internal */\nvar isNone = function (fa) { return fa._tag === 'None'; };\nexports.isNone = isNone;\n/** @internal */\nvar isSome = function (fa) { return fa._tag === 'Some'; };\nexports.isSome = isSome;\n/** @internal */\nexports.none = { _tag: 'None' };\n/** @internal */\nvar some = function (a) { return ({ _tag: 'Some', value: a }); };\nexports.some = some;\n// -------------------------------------------------------------------------------------\n// Either\n// -------------------------------------------------------------------------------------\n/** @internal */\nvar isLeft = function (ma) { return ma._tag === 'Left'; };\nexports.isLeft = isLeft;\n/** @internal */\nvar isRight = function (ma) { return ma._tag === 'Right'; };\nexports.isRight = isRight;\n/** @internal */\nvar left = function (e) { return ({ _tag: 'Left', left: e }); };\nexports.left = left;\n/** @internal */\nvar right = function (a) { return ({ _tag: 'Right', right: a }); };\nexports.right = right;\n// -------------------------------------------------------------------------------------\n// ReadonlyNonEmptyArray\n// -------------------------------------------------------------------------------------\n/** @internal */\nvar singleton = function (a) { return [a]; };\nexports.singleton = singleton;\n/** @internal */\nvar isNonEmpty = function (as) { return as.length > 0; };\nexports.isNonEmpty = isNonEmpty;\n/** @internal */\nvar head = function (as) { return as[0]; };\nexports.head = head;\n/** @internal */\nvar tail = function (as) { return as.slice(1); };\nexports.tail = tail;\n// -------------------------------------------------------------------------------------\n// empty\n// -------------------------------------------------------------------------------------\n/** @internal */\nexports.emptyReadonlyArray = [];\n/** @internal */\nexports.emptyRecord = {};\n// -------------------------------------------------------------------------------------\n// Record\n// -------------------------------------------------------------------------------------\n/** @internal */\nexports.has = Object.prototype.hasOwnProperty;\n// -------------------------------------------------------------------------------------\n// NonEmptyArray\n// -------------------------------------------------------------------------------------\n/** @internal */\nvar fromReadonlyNonEmptyArray = function (as) { return __spreadArray([as[0]], as.slice(1), true); };\nexports.fromReadonlyNonEmptyArray = fromReadonlyNonEmptyArray;\n/** @internal */\nvar liftNullable = function (F) {\n return function (f, onNullable) {\n return function () {\n var a = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n a[_i] = arguments[_i];\n }\n var o = f.apply(void 0, a);\n return F.fromEither(o == null ? (0, exports.left)(onNullable.apply(void 0, a)) : (0, exports.right)(o));\n };\n };\n};\nexports.liftNullable = liftNullable;\n/** @internal */\nvar liftOption = function (F) {\n return function (f, onNone) {\n return function () {\n var a = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n a[_i] = arguments[_i];\n }\n var o = f.apply(void 0, a);\n return F.fromEither((0, exports.isNone)(o) ? (0, exports.left)(onNone.apply(void 0, a)) : (0, exports.right)(o.value));\n };\n };\n};\nexports.liftOption = liftOption;\n/** @internal */\nvar flatMapNullable = function (F, M) {\n return /*#__PURE__*/ (0, function_1.dual)(3, function (self, f, onNullable) {\n return M.flatMap(self, (0, exports.liftNullable)(F)(f, onNullable));\n });\n};\nexports.flatMapNullable = flatMapNullable;\n/** @internal */\nvar flatMapOption = function (F, M) {\n return /*#__PURE__*/ (0, function_1.dual)(3, function (self, f, onNone) { return M.flatMap(self, (0, exports.liftOption)(F)(f, onNone)); });\n};\nexports.flatMapOption = flatMapOption;\n/** @internal */\nvar flatMapEither = function (F, M) {\n return /*#__PURE__*/ (0, function_1.dual)(2, function (self, f) {\n return M.flatMap(self, function (a) { return F.fromEither(f(a)); });\n });\n};\nexports.flatMapEither = flatMapEither;\n/** @internal */\nvar flatMapIO = function (F, M) {\n return /*#__PURE__*/ (0, function_1.dual)(2, function (self, f) {\n return M.flatMap(self, function (a) { return F.fromIO(f(a)); });\n });\n};\nexports.flatMapIO = flatMapIO;\n/** @internal */\nvar flatMapTask = function (F, M) {\n return /*#__PURE__*/ (0, function_1.dual)(2, function (self, f) {\n return M.flatMap(self, function (a) { return F.fromTask(f(a)); });\n });\n};\nexports.flatMapTask = flatMapTask;\n/** @internal */\nvar flatMapReader = function (F, M) {\n return /*#__PURE__*/ (0, function_1.dual)(2, function (self, f) {\n return M.flatMap(self, function (a) { return F.fromReader(f(a)); });\n });\n};\nexports.flatMapReader = flatMapReader;\n","import { ConfigOverrideRule, DataFrame, Field, Labels, PanelData } from '@grafana/data';\nimport { DataQuery } from '@grafana/schema';\n\nimport { isString } from 'lodash';\n\nimport { MAX_SAMPLES_PER_TRAINING, ONE_DAY_IN_SECONDS, ONE_YEAR_IN_SECONDS, PLUGIN_ROOT } from 'consts';\nimport {\n DatadogSLO,\n ForecastLabelValue,\n Job,\n JobMetricQueries,\n JobSeriesInfo,\n JobSeriesNames,\n LabelValues,\n NameToLabels,\n NameToType,\n TimeUnit,\n} from 'types';\n\nimport { timeUnitToSeconds } from './timeConversion';\n\n/**\n * Get the query string specified for a job.\n */\nexport const getJobQueryString = (job: Job): string | undefined => getQueryString(job.datasourceType, job.queryParams);\n\ninterface HasQueryString {\n target?: string;\n expr?: string;\n metric?: string;\n slo?: DatadogSLO;\n query?: string;\n rawSql?: string;\n}\n\n/**\n * Get the populated query string for a given datasource type.\n */\nexport const getQueryString = (\n datasourceType?: string,\n queryParams?: DataQuery & HasQueryString\n): string | undefined => {\n if (queryParams == null) {\n return undefined;\n }\n switch (datasourceType) {\n case 'grafana-graphite-datasource':\n case 'graphite':\n if (isString(queryParams.target)) {\n return queryParams.target;\n }\n break;\n case 'grafana-prometheus-datasource':\n case 'grafana-amazonprometheus-datasource':\n case 'prometheus':\n if (isString(queryParams.expr)) {\n return queryParams.expr;\n }\n break;\n case 'grafana-loki-datasource':\n case 'loki':\n if (isString(queryParams.expr)) {\n return queryParams.expr;\n }\n break;\n case 'grafana-datadog-datasource':\n if (isString(queryParams.metric)) {\n return queryParams.metric;\n }\n if (queryParams.slo !== undefined) {\n return queryParams.slo.name;\n }\n break;\n case 'grafana-influxdb-datasource':\n case 'influxdb':\n if (isString(queryParams.query)) {\n return queryParams.query;\n }\n break;\n case 'postgres':\n case 'grafana-postgresql-datasource':\n case 'doitintl-bigquery-datasource':\n case 'grafana-bigquery-datasource':\n case 'grafana-snowflake-datasource':\n if (isString(queryParams.rawSql)) {\n return queryParams.rawSql;\n }\n break;\n default:\n }\n return undefined;\n};\n\n/**\n * Get the unfiltered actual and predicted queries for a job.\n *\n * Additional selectors can be added by including them in the `extraLabels`\n * argument.\n *\n * @param {Job} job\n * @param {Labels} extraLabels Any additional selectors to be added to the\n * query.\n * @return JobMetricQueries The actual and predicted metric queries.\n */\nexport const getJobMetricQueries = (job: Job, extraLabels?: Labels): JobMetricQueries => {\n // eslint-disable-next-line camelcase\n const selector = getSeriesSelector(extraLabels ?? {});\n return {\n actual: `${job.metric}:actual${selector}`,\n predicted: `${job.metric}:predicted${selector}`,\n };\n};\n\n/**\n * Get a string suitable for use as a Prometheus selector for a set of labels.\n *\n * If the `labels` object is empty, this returns the empty string. Otherwise\n * it returns a comma separated list of label matchers in curly braces.\n *\n * @example\n * // returns ''\n * getSeriesSelector({})\n * @example\n * // returns '{job=\"prometheus\", instance=\"demo.robustperception.io:9090\"}'\n * getSeriesSelector({ job: 'prometheus', instance: 'demo.robustperception.io:9090' })\n */\nexport const getSeriesSelector = (labels: Labels): string => {\n const keys = Object.keys(labels);\n if (keys.length === 0) {\n return '';\n } else {\n const promLabels = keys\n .slice(1)\n .reduce(\n (acc: string, curr: string) => `${acc}, ${curr}=\"${labels[curr]!}\"`,\n `${keys[0]!}=\"${labels[keys[0]!] ?? ''}\"`\n );\n return `{${promLabels}}`;\n }\n};\n\n/**\n * Get the queries for the 'predicted' and 'actual' series of a job.\n */\nexport const getSelectedJobQueries = (job: Job, serieses: JobSeriesInfo[]): DataQuery[] => {\n const queries: DataQuery[] = [];\n let i = 1;\n for (const series of serieses) {\n const jobMetricQueries = getJobMetricQueries(job, series.labels);\n queries.push(\n { refId: `P${i}`, expr: jobMetricQueries.predicted, queryType: 'metric' } as DataQuery,\n { refId: `A${i}`, expr: jobMetricQueries.actual, queryType: 'metric' } as DataQuery\n );\n i += 1;\n }\n return queries;\n};\n\nexport const getMinimumUniqueUnderlyingSeriesLabels = (data: PanelData | undefined): Labels[] => {\n // Mapping from label name to observed label values.\n const labelValues: LabelValues = {};\n // List of label combinations.\n const labelCombinations: Labels[] = [];\n\n const excludedLabels = ['ml_forecast', '__name__'];\n\n for (const series of data?.series ?? []) {\n // There should always be one 'time' field and one non-'time' field in the returned\n // series, since we control their format.\n const valueField = series.fields.find((f: Field) => f.type !== 'time');\n if (valueField != null) {\n // Add all the current labels to the list of observed values.\n for (const label in valueField.labels) {\n if (!excludedLabels.includes(label)) {\n const labelVal = valueField.labels[label]!;\n if (Object.keys(labelValues).includes(label)) {\n if (!labelValues[label]!.includes(labelVal)) {\n labelValues[label]!.push(labelVal);\n }\n } else {\n labelValues[label] = [labelVal];\n }\n }\n }\n\n const valueFieldLabels = valueField.labels ?? {};\n\n // Filter out the excluded labels before adding them to the label combinations.\n labelCombinations.push(\n Object.fromEntries(Object.entries(valueFieldLabels).filter(([k, _]) => !excludedLabels.includes(k)))\n );\n }\n }\n\n // Determine the unique label mappings across all returned series.\n const uniqueLabels = labelCombinations.reduce((acc: Labels[], current: Labels) => {\n const x = acc.find((item) => JSON.stringify(item) === JSON.stringify(current));\n return Boolean(x) ? acc : acc.concat([current]);\n }, []);\n\n // Remove any label/value pairs which only have one unique value across all series.\n // Each of these will represent one 'JobSeries', and will have four series associated with it.\n const minimumUniqueLabels = uniqueLabels.map((l) =>\n Object.fromEntries(Object.entries(l).filter(([k, _]) => labelValues[k]!.length > 1))\n );\n return minimumUniqueLabels;\n};\n\n/**\n * Get a list of JobSeriesInfo given the data returned by the MLAPI.\n *\n * This handles organising the multiple series returned from the MLAPI into\n * data structures which can be used to format plots nicely. Generally this\n * means digging into the returned 'predicted' and 'actual' series', linking\n * together those which refer to the same underlying source series,\n * and determining which labels actually differ between those underlying source\n * series.\n */\nexport const getJobSeriesInfo = (data: PanelData): JobSeriesInfo[] => {\n // Mapping from series name to column type.\n const seriesTypes: NameToType = {};\n // Mapping from series name to labels.\n const seriesLabels: NameToLabels = {};\n\n // Populate the above objects/arrays from the data.\n data.series.forEach((series: DataFrame) => {\n // There should always be one 'time' field and one non-'time' field in the returned\n // series, since we control their format.\n const valueField = series.fields.find((f: Field) => f.type !== 'time') as Field | undefined;\n // Prior to the dataplane adapter, this was on the series name.\n // Since then, it's on the first non-time field.\n // See https://github.com/grafana/grafana/pull/65237 for details.\n const seriesName = series.name ?? valueField?.config?.displayNameFromDS;\n // eslint-disable-next-line @typescript-eslint/strict-boolean-expressions\n if (!seriesName || !valueField || !valueField.labels) {\n // This error was causing problems and crashing the whole page\n // Might be worth uncommenting when and if we have better error catching\n // We may also want to put logging here.\n //throw new Error(data.errors?.toString() ?? \"Query returned invalid data\");\n return;\n }\n\n const seriesType = valueField.labels['ml_forecast'] as ForecastLabelValue;\n seriesTypes[seriesName] = seriesType;\n seriesLabels[seriesName] = valueField.labels;\n });\n\n // List of label combinations.\n const minimumUniqueLabels: Labels[] = getMinimumUniqueUnderlyingSeriesLabels(data);\n\n const jobSeriesInfos = [];\n for (const labelCombination of minimumUniqueLabels) {\n // Find the names of the 4 series which have this combination of labels.\n const validSeriesNames = Object.entries(seriesLabels)\n .filter(([_, labels]) => Object.keys(labelCombination).every((key) => labels[key] === labelCombination[key]))\n .map(([name, _]) => name);\n\n const actual = validSeriesNames.find((n) => seriesTypes[n] === 'y') as string;\n const predicted = validSeriesNames.find((n) => seriesTypes[n] === 'yhat') as string;\n const lower = validSeriesNames.find((n) => seriesTypes[n] === 'yhat_lower') as string;\n const upper = validSeriesNames.find((n) => seriesTypes[n] === 'yhat_upper') as string;\n jobSeriesInfos.push({\n names: {\n actual,\n predicted,\n lower,\n upper,\n },\n labels: labelCombination,\n });\n }\n return jobSeriesInfos;\n};\n\nconst createNewNames = ({ labels }: JobSeriesInfo): JobSeriesNames => {\n const suffix = Object.keys(labels).length > 0 ? ` - ${getSeriesSelector(labels)}` : '';\n return {\n actual: `Actual${suffix}`,\n predicted: `Predicted${suffix}`,\n upper: `Predicted (upper)${suffix}`,\n lower: `Predicted (lower)${suffix}`,\n };\n};\n\n/**\n * Create the fieldOverrides for a JobSeries.\n */\nexport const createFieldOverrides = (info: JobSeriesInfo): ConfigOverrideRule[] => {\n const { names } = info;\n const newNames = createNewNames(info);\n return [\n {\n matcher: { id: 'byName', options: names.predicted },\n properties: [\n { id: 'displayName', value: newNames.predicted },\n { id: 'color', value: { fixedColor: 'blue', mode: 'fixed' } },\n ],\n },\n {\n matcher: { id: 'byName', options: names.lower },\n properties: [\n { id: 'displayName', value: newNames.lower },\n { id: 'color', value: { fixedColor: 'blue', mode: 'fixed' } },\n { id: 'custom.lineWidth', value: 0 },\n { id: 'custom.hideFrom', value: { legend: true } },\n ],\n },\n {\n matcher: { id: 'byName', options: names.upper },\n properties: [\n { id: 'displayName', value: newNames.upper },\n { id: 'color', value: { fixedColor: 'blue', mode: 'fixed' } },\n { id: 'custom.lineWidth', value: 0 },\n { id: 'custom.fillBelowTo', value: newNames.lower },\n { id: 'custom.hideFrom', value: { legend: true } },\n ],\n },\n {\n matcher: { id: 'byName', options: names.actual },\n properties: [\n { id: 'displayName', value: newNames.actual },\n { id: 'color', value: { fixedColor: 'green', mode: 'fixed' } },\n ],\n },\n ];\n};\n\n/**\n * Check whether any series labels are duplicated across the input series.\n */\nexport function hasDuplicateSeriesLabels(series: DataFrame[]): boolean {\n return series\n .map((df) => {\n let labels = df.fields[1]?.labels ?? {};\n // If there are no labels, we should use the frame name to disambiguate\n // the value field from other frames. This happens in Elasticsearch, for example.\n if (series.length > 1 && Object.keys(labels).length === 0) {\n // We can only do that if the frame has a name. Otherwise, just\n // exit early with a stringified empty object.\n if (df.name === undefined) {\n return '{}';\n }\n labels = { __metric__: df.name };\n }\n return JSON.stringify(labels, Object.keys(labels).sort());\n })\n .some((name, index, arr) => arr.indexOf(name) !== index);\n}\n\n/** Return an absolute URL for the 'view job' page of a job.\n *\n * This should work regardless of whether Grafana is running in a sub-path.\n *\n * `currentLocation` will default to `window.location.href` if left at its default\n * undefined value; this will generally be sufficient.\n */\nexport function absoluteUrlForJob(jobId: string, currentLocation?: string): string {\n const loc = currentLocation ?? window.location.href;\n const root = loc.substring(0, loc.indexOf(PLUGIN_ROOT));\n return `${root}${PLUGIN_ROOT}/metric-forecast/${jobId}`;\n}\n\n/**\n * Return a slugified version of a job name, suitable for a metric.\n */\nexport function slugifyName(name: string): string {\n return name\n .normalize('NFD')\n .replace(/\\p{Diacritic}/gu, '')\n .toLocaleLowerCase()\n .replace(/[^a-z0-9:_]+/g, '_');\n}\n\n/**\n * Calculate the minimum interval we can use for a given range,\n * without exceeding the maximum number of samples per series permitted\n * by the API (found in consts.ts).\n */\nexport function calculateMinInterval(\n range: number,\n rangeUnit: TimeUnit\n): { intervalValue: number; intervalUnit: TimeUnit } {\n const options = [\n { value: 1, unit: TimeUnit.Minutes },\n { value: 5, unit: TimeUnit.Minutes },\n { value: 10, unit: TimeUnit.Minutes },\n { value: 15, unit: TimeUnit.Minutes },\n { value: 30, unit: TimeUnit.Minutes },\n { value: 1, unit: TimeUnit.Hours },\n { value: 2, unit: TimeUnit.Hours },\n ];\n const rangeInSeconds = timeUnitToSeconds(range, rangeUnit)!;\n let intervalValue = 1;\n let intervalUnit = TimeUnit.Minutes;\n for (const option of options) {\n const optionInSeconds = timeUnitToSeconds(option.value, option.unit)!;\n if (optionInSeconds <= rangeInSeconds && optionInSeconds * MAX_SAMPLES_PER_TRAINING >= rangeInSeconds) {\n intervalValue = option.value;\n intervalUnit = option.unit;\n break;\n }\n }\n\n return {\n intervalValue,\n intervalUnit,\n };\n}\n\n/**\n * Historical data limits per datasource.\n *\n * These limits are purely based on hunches, based on likelhood of the datasource returning within the timeout.\n *\n * Returns the amount of history to fetch in seconds.\n */\nexport function historyLimitedInSeconds(\n range: number,\n rangeUnit: TimeUnit,\n datasourceType: string | undefined\n): number {\n let days = 28;\n\n switch (datasourceType) {\n case 'prometheus':\n case 'grafana-prometheus-datasource':\n case 'grafana-amazonprometheus-datasource':\n days = 90;\n break;\n\n case 'loki':\n case 'grafana-loki-datasource':\n // avoid forcing loki to do too much work, even 7 days is a lot\n days = 7;\n break;\n\n case 'graphite':\n case 'grafana-graphite-datasource':\n // try to avoid the default rollup period which changes the data returned significantly\n days = 14;\n break;\n\n // following should be performant enough for longer history\n case 'grafana-datadog-datasource':\n case 'postgres':\n case 'grafana-postgresql-datasource':\n case 'grafana-snowflake-datasource':\n case 'influxdb':\n case 'grafana-influxdb-datasource':\n days = 90;\n break;\n\n // Being pessimistic with these\n case 'grafana-bigquery-datasource':\n case 'doitintl-bigquery-datasource':\n case 'grafana-splunk-datasource':\n case 'elasticsearch':\n case 'grafana-elasticsearch-datasource':\n case 'grafana-mongodb-datasource':\n days = 28;\n break;\n }\n const rangeSeconds = timeUnitToSeconds(range, rangeUnit) ?? ONE_YEAR_IN_SECONDS;\n return Math.min(rangeSeconds, days * ONE_DAY_IN_SECONDS);\n}\n","\"use strict\";\n/**\n * The `FromEither` type class represents those data types which support errors.\n *\n * @since 2.10.0\n */\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n var desc = Object.getOwnPropertyDescriptor(m, k);\n if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\n desc = { enumerable: true, get: function() { return m[k]; } };\n }\n Object.defineProperty(o, k2, desc);\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n}));\nvar __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\n}) : function(o, v) {\n o[\"default\"] = v;\n});\nvar __importStar = (this && this.__importStar) || function (mod) {\n if (mod && mod.__esModule) return mod;\n var result = {};\n if (mod != null) for (var k in mod) if (k !== \"default\" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\n __setModuleDefault(result, mod);\n return result;\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.fromOption = fromOption;\nexports.fromPredicate = fromPredicate;\nexports.fromOptionK = fromOptionK;\nexports.chainOptionK = chainOptionK;\nexports.fromEitherK = fromEitherK;\nexports.chainEitherK = chainEitherK;\nexports.chainFirstEitherK = chainFirstEitherK;\nexports.filterOrElse = filterOrElse;\nexports.tapEither = tapEither;\nvar Chain_1 = require(\"./Chain\");\nvar function_1 = require(\"./function\");\nvar _ = __importStar(require(\"./internal\"));\nfunction fromOption(F) {\n return function (onNone) { return function (ma) { return F.fromEither(_.isNone(ma) ? _.left(onNone()) : _.right(ma.value)); }; };\n}\nfunction fromPredicate(F) {\n return function (predicate, onFalse) {\n return function (a) {\n return F.fromEither(predicate(a) ? _.right(a) : _.left(onFalse(a)));\n };\n };\n}\nfunction fromOptionK(F) {\n var fromOptionF = fromOption(F);\n return function (onNone) {\n var from = fromOptionF(onNone);\n return function (f) { return (0, function_1.flow)(f, from); };\n };\n}\nfunction chainOptionK(F, M) {\n var fromOptionKF = fromOptionK(F);\n return function (onNone) {\n var from = fromOptionKF(onNone);\n return function (f) { return function (ma) { return M.chain(ma, from(f)); }; };\n };\n}\nfunction fromEitherK(F) {\n return function (f) { return (0, function_1.flow)(f, F.fromEither); };\n}\nfunction chainEitherK(F, M) {\n var fromEitherKF = fromEitherK(F);\n return function (f) { return function (ma) { return M.chain(ma, fromEitherKF(f)); }; };\n}\nfunction chainFirstEitherK(F, M) {\n var tapEitherM = tapEither(F, M);\n return function (f) { return function (ma) { return tapEitherM(ma, f); }; };\n}\nfunction filterOrElse(F, M) {\n return function (predicate, onFalse) {\n return function (ma) {\n return M.chain(ma, function (a) { return F.fromEither(predicate(a) ? _.right(a) : _.left(onFalse(a))); });\n };\n };\n}\n/** @internal */\nfunction tapEither(F, M) {\n var fromEither = fromEitherK(F);\n var tapM = (0, Chain_1.tap)(M);\n return function (self, f) { return tapM(self, fromEither(f)); };\n}\n","import { config } from '../config';\nvar context = null;\nexport function errorContext(cb) {\n if (config.useDeprecatedSynchronousErrorHandling) {\n var isRoot = !context;\n if (isRoot) {\n context = { errorThrown: false, error: null };\n }\n cb();\n if (isRoot) {\n var _a = context, errorThrown = _a.errorThrown, error = _a.error;\n context = null;\n if (errorThrown) {\n throw error;\n }\n }\n }\n else {\n cb();\n }\n}\nexport function captureError(err) {\n if (config.useDeprecatedSynchronousErrorHandling && context) {\n context.errorThrown = true;\n context.error = err;\n }\n}\n//# sourceMappingURL=errorContext.js.map","\"use strict\";\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n var desc = Object.getOwnPropertyDescriptor(m, k);\n if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\n desc = { enumerable: true, get: function() { return m[k]; } };\n }\n Object.defineProperty(o, k2, desc);\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n}));\nvar __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\n}) : function(o, v) {\n o[\"default\"] = v;\n});\nvar __importStar = (this && this.__importStar) || function (mod) {\n if (mod && mod.__esModule) return mod;\n var result = {};\n if (mod != null) for (var k in mod) if (k !== \"default\" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\n __setModuleDefault(result, mod);\n return result;\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};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.sortBy = exports.uniq = exports.rotate = exports.intersperse = exports.prependAll = exports.unzip = exports.zipWith = exports.sort = exports.lefts = exports.rights = exports.reverse = exports.modifyAt = exports.deleteAt = exports.updateAt = exports.insertAt = exports.findLastIndex = exports.findLastMap = exports.findFirstMap = exports.findIndex = exports.dropRight = exports.dropLeft = exports.takeRight = exports.takeLeft = exports.init = exports.tail = exports.last = exports.head = exports.isOutOfBound = exports.size = exports.scanRight = exports.scanLeft = exports.chainWithIndex = exports.foldRight = exports.matchRight = exports.matchRightW = exports.foldLeft = exports.matchLeft = exports.matchLeftW = exports.match = exports.matchW = exports.fromEither = exports.fromOption = exports.replicate = exports.makeBy = exports.appendW = exports.append = exports.prependW = exports.prepend = exports.isNonEmpty = exports.isEmpty = void 0;\nexports.getIntersectionSemigroup = exports.getUnionMonoid = exports.getUnionSemigroup = exports.getOrd = exports.getEq = exports.getMonoid = exports.getSemigroup = exports.getShow = exports.URI = exports.unfold = exports.wilt = exports.wither = exports.traverseWithIndex = exports.sequence = exports.traverse = exports.reduceRightWithIndex = exports.reduceRight = exports.reduceWithIndex = exports.foldMap = exports.reduce = exports.foldMapWithIndex = exports.duplicate = exports.extend = exports.filterWithIndex = exports.partitionMapWithIndex = exports.partitionMap = exports.partitionWithIndex = exports.partition = exports.compact = exports.filterMap = exports.filterMapWithIndex = exports.filter = exports.separate = exports.mapWithIndex = exports.map = exports.flatten = exports.flatMap = exports.ap = exports.alt = exports.altW = exports.zero = exports.of = exports._chainRecBreadthFirst = exports._chainRecDepthFirst = exports.concat = exports.concatW = exports.fromOptionK = exports.chunksOf = exports.splitAt = exports.chop = void 0;\nexports.cons = exports.range = exports.chain = exports.apS = exports.bind = exports.let = exports.bindTo = exports.Do = exports.intercalate = exports.exists = exports.some = exports.empty = exports.fromArray = exports.toArray = exports.unsafeDeleteAt = exports.unsafeUpdateAt = exports.unsafeInsertAt = exports.fromEitherK = exports.FromEither = exports.filterE = exports.Witherable = exports.ChainRecBreadthFirst = exports.chainRecBreadthFirst = exports.ChainRecDepthFirst = exports.chainRecDepthFirst = exports.TraversableWithIndex = exports.Traversable = exports.FoldableWithIndex = exports.Foldable = exports.FilterableWithIndex = exports.Filterable = exports.Compactable = exports.Extend = exports.Alternative = exports.guard = exports.Zero = exports.Alt = exports.Unfoldable = exports.chainFirst = exports.Monad = exports.Chain = exports.Applicative = exports.apSecond = exports.apFirst = exports.Apply = exports.FunctorWithIndex = exports.Pointed = exports.flap = exports.Functor = exports.getDifferenceMagma = void 0;\nexports.readonlyArray = exports.prependToAll = exports.snoc = void 0;\nexports.fromPredicate = fromPredicate;\nexports.lookup = lookup;\nexports.takeLeftWhile = takeLeftWhile;\nexports.spanLeft = spanLeft;\nexports.dropLeftWhile = dropLeftWhile;\nexports.findFirst = findFirst;\nexports.findLast = findLast;\nexports.zip = zip;\nexports.elem = elem;\nexports.comprehension = comprehension;\nexports.union = union;\nexports.intersection = intersection;\nexports.difference = difference;\nexports.every = every;\nvar Apply_1 = require(\"./Apply\");\nvar Chain_1 = require(\"./Chain\");\nvar Eq_1 = require(\"./Eq\");\nvar FromEither_1 = require(\"./FromEither\");\nvar function_1 = require(\"./function\");\nvar Functor_1 = require(\"./Functor\");\nvar _ = __importStar(require(\"./internal\"));\nvar N = __importStar(require(\"./number\"));\nvar Ord_1 = require(\"./Ord\");\nvar RNEA = __importStar(require(\"./ReadonlyNonEmptyArray\"));\nvar Separated_1 = require(\"./Separated\");\nvar Witherable_1 = require(\"./Witherable\");\nvar Zero_1 = require(\"./Zero\");\n// -------------------------------------------------------------------------------------\n// refinements\n// -------------------------------------------------------------------------------------\n/**\n * Test whether a `ReadonlyArray` is empty.\n *\n * @example\n * import { isEmpty } from 'fp-ts/ReadonlyArray'\n *\n * assert.strictEqual(isEmpty([]), true)\n *\n * @category refinements\n * @since 2.5.0\n */\nvar isEmpty = function (as) { return as.length === 0; };\nexports.isEmpty = isEmpty;\n/**\n * Test whether a `ReadonlyArray` is non empty.\n *\n * @category refinements\n * @since 2.5.0\n */\nexports.isNonEmpty = RNEA.isNonEmpty;\n// -------------------------------------------------------------------------------------\n// constructors\n// -------------------------------------------------------------------------------------\n/**\n * Prepend an element to the front of a `ReadonlyArray`, creating a new `ReadonlyNonEmptyArray`.\n *\n * @example\n * import { prepend } from 'fp-ts/ReadonlyArray'\n * import { pipe } from 'fp-ts/function'\n *\n * assert.deepStrictEqual(pipe([2, 3, 4], prepend(1)), [1, 2, 3, 4])\n *\n * @since 2.10.0\n */\nexports.prepend = RNEA.prepend;\n/**\n * Less strict version of [`prepend`](#prepend).\n *\n * @since 2.11.0\n */\nexports.prependW = RNEA.prependW;\n/**\n * Append an element to the end of a `ReadonlyArray`, creating a new `ReadonlyNonEmptyArray`.\n *\n * @example\n * import { append } from 'fp-ts/ReadonlyArray'\n * import { pipe } from 'fp-ts/function'\n *\n * assert.deepStrictEqual(pipe([1, 2, 3], append(4)), [1, 2, 3, 4])\n *\n * @since 2.10.0\n */\nexports.append = RNEA.append;\n/**\n * Less strict version of [`append`](#append).\n *\n * @since 2.11.0\n */\nexports.appendW = RNEA.appendW;\n/**\n * Return a `ReadonlyArray` of length `n` with element `i` initialized with `f(i)`.\n *\n * **Note**. `n` is normalized to a non negative integer.\n *\n * @example\n * import { makeBy } from 'fp-ts/ReadonlyArray'\n *\n * const double = (n: number): number => n * 2\n * assert.deepStrictEqual(makeBy(5, double), [0, 2, 4, 6, 8])\n *\n * @category constructors\n * @since 2.5.0\n */\nvar makeBy = function (n, f) { return (n <= 0 ? exports.empty : RNEA.makeBy(f)(n)); };\nexports.makeBy = makeBy;\n/**\n * Create a `ReadonlyArray` containing a value repeated the specified number of times.\n *\n * **Note**. `n` is normalized to a non negative integer.\n *\n * @example\n * import { replicate } from 'fp-ts/ReadonlyArray'\n *\n * assert.deepStrictEqual(replicate(3, 'a'), ['a', 'a', 'a'])\n *\n * @category constructors\n * @since 2.5.0\n */\nvar replicate = function (n, a) { return (0, exports.makeBy)(n, function () { return a; }); };\nexports.replicate = replicate;\nfunction fromPredicate(predicate) {\n return function (a) { return (predicate(a) ? [a] : exports.empty); };\n}\n// -------------------------------------------------------------------------------------\n// conversions\n// -------------------------------------------------------------------------------------\n/**\n * @category conversions\n * @since 2.11.0\n */\nvar fromOption = function (ma) { return (_.isNone(ma) ? exports.empty : [ma.value]); };\nexports.fromOption = fromOption;\n/**\n * Transforms an `Either` to a `ReadonlyArray`.\n *\n * @category conversions\n * @since 2.11.0\n */\nvar fromEither = function (e) { return (_.isLeft(e) ? exports.empty : [e.right]); };\nexports.fromEither = fromEither;\n/**\n * Less strict version of [`match`](#match).\n *\n * The `W` suffix (short for **W**idening) means that the handler return types will be merged.\n *\n * @category pattern matching\n * @since 2.11.0\n */\nvar matchW = function (onEmpty, onNonEmpty) {\n return function (as) {\n return (0, exports.isNonEmpty)(as) ? onNonEmpty(as) : onEmpty();\n };\n};\nexports.matchW = matchW;\n/**\n * @category pattern matching\n * @since 2.11.0\n */\nexports.match = exports.matchW;\n/**\n * Less strict version of [`matchLeft`](#matchleft).\n *\n * @category pattern matching\n * @since 2.11.0\n */\nvar matchLeftW = function (onEmpty, onNonEmpty) {\n return function (as) {\n return (0, exports.isNonEmpty)(as) ? onNonEmpty(RNEA.head(as), RNEA.tail(as)) : onEmpty();\n };\n};\nexports.matchLeftW = matchLeftW;\n/**\n * Break a `ReadonlyArray` into its first element and remaining elements.\n *\n * @example\n * import { matchLeft } from 'fp-ts/ReadonlyArray'\n *\n * const len: (as: ReadonlyArray) => number = matchLeft(() => 0, (_, tail) => 1 + len(tail))\n * assert.strictEqual(len([1, 2, 3]), 3)\n *\n * @category pattern matching\n * @since 2.10.0\n */\nexports.matchLeft = exports.matchLeftW;\n/**\n * Alias of [`matchLeft`](#matchleft).\n *\n * @category pattern matching\n * @since 2.5.0\n */\nexports.foldLeft = exports.matchLeft;\n/**\n * Less strict version of [`matchRight`](#matchright).\n *\n * @category pattern matching\n * @since 2.11.0\n */\nvar matchRightW = function (onEmpty, onNonEmpty) {\n return function (as) {\n return (0, exports.isNonEmpty)(as) ? onNonEmpty(RNEA.init(as), RNEA.last(as)) : onEmpty();\n };\n};\nexports.matchRightW = matchRightW;\n/**\n * Break a `ReadonlyArray` into its initial elements and the last element.\n *\n * @category pattern matching\n * @since 2.10.0\n */\nexports.matchRight = exports.matchRightW;\n/**\n * Alias of [`matchRight`](#matchright).\n *\n * @category pattern matching\n * @since 2.5.0\n */\nexports.foldRight = exports.matchRight;\n// -------------------------------------------------------------------------------------\n// combinators\n// -------------------------------------------------------------------------------------\n/**\n * @category sequencing\n * @since 2.7.0\n */\nvar chainWithIndex = function (f) {\n return function (as) {\n if ((0, exports.isEmpty)(as)) {\n return exports.empty;\n }\n var out = [];\n for (var i = 0; i < as.length; i++) {\n var bs = f(i, as[i]);\n for (var j = 0; j < bs.length; j++) {\n out.push(bs[j]);\n }\n }\n return out;\n };\n};\nexports.chainWithIndex = chainWithIndex;\n/**\n * Same as `reduce` but it carries over the intermediate steps.\n *\n * @example\n * import { scanLeft } from 'fp-ts/ReadonlyArray'\n *\n * assert.deepStrictEqual(scanLeft(10, (b, a: number) => b - a)([1, 2, 3]), [10, 9, 7, 4])\n *\n * @since 2.5.0\n */\nvar scanLeft = function (b, f) {\n return function (as) {\n var len = as.length;\n var out = new Array(len + 1);\n out[0] = b;\n for (var i = 0; i < len; i++) {\n out[i + 1] = f(out[i], as[i]);\n }\n return out;\n };\n};\nexports.scanLeft = scanLeft;\n/**\n * Fold an array from the right, keeping all intermediate results instead of only the final result\n *\n * @example\n * import { scanRight } from 'fp-ts/ReadonlyArray'\n *\n * assert.deepStrictEqual(scanRight(10, (a: number, b) => b - a)([1, 2, 3]), [4, 5, 7, 10])\n *\n * @since 2.5.0\n */\nvar scanRight = function (b, f) {\n return function (as) {\n var len = as.length;\n var out = new Array(len + 1);\n out[len] = b;\n for (var i = len - 1; i >= 0; i--) {\n out[i] = f(as[i], out[i + 1]);\n }\n return out;\n };\n};\nexports.scanRight = scanRight;\n/**\n * Calculate the number of elements in a `ReadonlyArray`.\n *\n * @since 2.10.0\n */\nvar size = function (as) { return as.length; };\nexports.size = size;\n/**\n * Test whether an array contains a particular index\n *\n * @since 2.5.0\n */\nexports.isOutOfBound = RNEA.isOutOfBound;\nfunction lookup(i, as) {\n return as === undefined ? function (as) { return lookup(i, as); } : (0, exports.isOutOfBound)(i, as) ? _.none : _.some(as[i]);\n}\n/**\n * Get the first element in an array, or `None` if the array is empty\n *\n * @example\n * import { head } from 'fp-ts/ReadonlyArray'\n * import { some, none } from 'fp-ts/Option'\n *\n * assert.deepStrictEqual(head([1, 2, 3]), some(1))\n * assert.deepStrictEqual(head([]), none)\n *\n * @since 2.5.0\n */\nvar head = function (as) { return ((0, exports.isNonEmpty)(as) ? _.some(RNEA.head(as)) : _.none); };\nexports.head = head;\n/**\n * Get the last element in an array, or `None` if the array is empty\n *\n * @example\n * import { last } from 'fp-ts/ReadonlyArray'\n * import { some, none } from 'fp-ts/Option'\n *\n * assert.deepStrictEqual(last([1, 2, 3]), some(3))\n * assert.deepStrictEqual(last([]), none)\n *\n * @since 2.5.0\n */\nvar last = function (as) { return ((0, exports.isNonEmpty)(as) ? _.some(RNEA.last(as)) : _.none); };\nexports.last = last;\n/**\n * Get all but the first element of an array, creating a new array, or `None` if the array is empty\n *\n * @example\n * import { tail } from 'fp-ts/ReadonlyArray'\n * import { some, none } from 'fp-ts/Option'\n *\n * assert.deepStrictEqual(tail([1, 2, 3]), some([2, 3]))\n * assert.deepStrictEqual(tail([]), none)\n *\n * @since 2.5.0\n */\nvar tail = function (as) {\n return (0, exports.isNonEmpty)(as) ? _.some(RNEA.tail(as)) : _.none;\n};\nexports.tail = tail;\n/**\n * Get all but the last element of an array, creating a new array, or `None` if the array is empty\n *\n * @example\n * import { init } from 'fp-ts/ReadonlyArray'\n * import { some, none } from 'fp-ts/Option'\n *\n * assert.deepStrictEqual(init([1, 2, 3]), some([1, 2]))\n * assert.deepStrictEqual(init([]), none)\n *\n * @since 2.5.0\n */\nvar init = function (as) {\n return (0, exports.isNonEmpty)(as) ? _.some(RNEA.init(as)) : _.none;\n};\nexports.init = init;\n/**\n * Keep only a max number of elements from the start of an `ReadonlyArray`, creating a new `ReadonlyArray`.\n *\n * **Note**. `n` is normalized to a non negative integer.\n *\n * @example\n * import * as RA from 'fp-ts/ReadonlyArray'\n * import { pipe } from 'fp-ts/function'\n *\n * const input: ReadonlyArray = [1, 2, 3]\n * assert.deepStrictEqual(pipe(input, RA.takeLeft(2)), [1, 2])\n *\n * // out of bounds\n * assert.strictEqual(pipe(input, RA.takeLeft(4)), input)\n * assert.strictEqual(pipe(input, RA.takeLeft(-1)), input)\n *\n * @since 2.5.0\n */\nvar takeLeft = function (n) {\n return function (as) {\n return (0, exports.isOutOfBound)(n, as) ? as : n === 0 ? exports.empty : as.slice(0, n);\n };\n};\nexports.takeLeft = takeLeft;\n/**\n * Keep only a max number of elements from the end of an `ReadonlyArray`, creating a new `ReadonlyArray`.\n *\n * **Note**. `n` is normalized to a non negative integer.\n *\n * @example\n * import * as RA from 'fp-ts/ReadonlyArray'\n * import { pipe } from 'fp-ts/function'\n *\n * const input: ReadonlyArray = [1, 2, 3]\n * assert.deepStrictEqual(pipe(input, RA.takeRight(2)), [2, 3])\n *\n * // out of bounds\n * assert.strictEqual(pipe(input, RA.takeRight(4)), input)\n * assert.strictEqual(pipe(input, RA.takeRight(-1)), input)\n *\n * @since 2.5.0\n */\nvar takeRight = function (n) {\n return function (as) {\n return (0, exports.isOutOfBound)(n, as) ? as : n === 0 ? exports.empty : as.slice(-n);\n };\n};\nexports.takeRight = takeRight;\nfunction takeLeftWhile(predicate) {\n return function (as) {\n var out = [];\n for (var _i = 0, as_1 = as; _i < as_1.length; _i++) {\n var a = as_1[_i];\n if (!predicate(a)) {\n break;\n }\n out.push(a);\n }\n var len = out.length;\n return len === as.length ? as : len === 0 ? exports.empty : out;\n };\n}\nvar spanLeftIndex = function (as, predicate) {\n var l = as.length;\n var i = 0;\n for (; i < l; i++) {\n if (!predicate(as[i])) {\n break;\n }\n }\n return i;\n};\nfunction spanLeft(predicate) {\n return function (as) {\n var _a = (0, exports.splitAt)(spanLeftIndex(as, predicate))(as), init = _a[0], rest = _a[1];\n return { init: init, rest: rest };\n };\n}\n/**\n * Drop a max number of elements from the start of an `ReadonlyArray`, creating a new `ReadonlyArray`.\n *\n * **Note**. `n` is normalized to a non negative integer.\n *\n * @example\n * import * as RA from 'fp-ts/ReadonlyArray'\n * import { pipe } from 'fp-ts/function'\n *\n * const input: ReadonlyArray = [1, 2, 3]\n * assert.deepStrictEqual(pipe(input, RA.dropLeft(2)), [3])\n * assert.strictEqual(pipe(input, RA.dropLeft(0)), input)\n * assert.strictEqual(pipe(input, RA.dropLeft(-1)), input)\n *\n * @since 2.5.0\n */\nvar dropLeft = function (n) {\n return function (as) {\n return n <= 0 || (0, exports.isEmpty)(as) ? as : n >= as.length ? exports.empty : as.slice(n, as.length);\n };\n};\nexports.dropLeft = dropLeft;\n/**\n * Drop a max number of elements from the end of an `ReadonlyArray`, creating a new `ReadonlyArray`.\n *\n * **Note**. `n` is normalized to a non negative integer.\n *\n * @example\n * import * as RA from 'fp-ts/ReadonlyArray'\n * import { pipe } from 'fp-ts/function'\n *\n * const input: ReadonlyArray = [1, 2, 3]\n * assert.deepStrictEqual(pipe(input, RA.dropRight(2)), [1])\n * assert.strictEqual(pipe(input, RA.dropRight(0)), input)\n * assert.strictEqual(pipe(input, RA.dropRight(-1)), input)\n *\n * @since 2.5.0\n */\nvar dropRight = function (n) {\n return function (as) {\n return n <= 0 || (0, exports.isEmpty)(as) ? as : n >= as.length ? exports.empty : as.slice(0, as.length - n);\n };\n};\nexports.dropRight = dropRight;\nfunction dropLeftWhile(predicate) {\n return function (as) {\n var i = spanLeftIndex(as, predicate);\n return i === 0 ? as : i === as.length ? exports.empty : as.slice(i);\n };\n}\n/**\n * Find the first index for which a predicate holds\n *\n * @example\n * import { findIndex } from 'fp-ts/ReadonlyArray'\n * import { some, none } from 'fp-ts/Option'\n *\n * assert.deepStrictEqual(findIndex((n: number) => n === 2)([1, 2, 3]), some(1))\n * assert.deepStrictEqual(findIndex((n: number) => n === 2)([]), none)\n *\n * @since 2.5.0\n */\nvar findIndex = function (predicate) {\n return function (as) {\n for (var i = 0; i < as.length; i++) {\n if (predicate(as[i])) {\n return _.some(i);\n }\n }\n return _.none;\n };\n};\nexports.findIndex = findIndex;\nfunction findFirst(predicate) {\n return function (as) {\n for (var i = 0; i < as.length; i++) {\n if (predicate(as[i])) {\n return _.some(as[i]);\n }\n }\n return _.none;\n };\n}\n/**\n * Find the first element returned by an option based selector function\n *\n * @example\n * import { findFirstMap } from 'fp-ts/ReadonlyArray'\n * import { some, none } from 'fp-ts/Option'\n *\n * interface Person {\n * readonly name: string\n * readonly age?: number\n * }\n *\n * const persons: ReadonlyArray = [{ name: 'John' }, { name: 'Mary', age: 45 }, { name: 'Joey', age: 28 }]\n *\n * // returns the name of the first person that has an age\n * assert.deepStrictEqual(findFirstMap((p: Person) => (p.age === undefined ? none : some(p.name)))(persons), some('Mary'))\n *\n * @since 2.5.0\n */\nvar findFirstMap = function (f) {\n return function (as) {\n for (var i = 0; i < as.length; i++) {\n var out = f(as[i]);\n if (_.isSome(out)) {\n return out;\n }\n }\n return _.none;\n };\n};\nexports.findFirstMap = findFirstMap;\nfunction findLast(predicate) {\n return function (as) {\n for (var i = as.length - 1; i >= 0; i--) {\n if (predicate(as[i])) {\n return _.some(as[i]);\n }\n }\n return _.none;\n };\n}\n/**\n * Find the last element returned by an option based selector function\n *\n * @example\n * import { findLastMap } from 'fp-ts/ReadonlyArray'\n * import { some, none } from 'fp-ts/Option'\n *\n * interface Person {\n * readonly name: string\n * readonly age?: number\n * }\n *\n * const persons: ReadonlyArray = [{ name: 'John' }, { name: 'Mary', age: 45 }, { name: 'Joey', age: 28 }]\n *\n * // returns the name of the last person that has an age\n * assert.deepStrictEqual(findLastMap((p: Person) => (p.age === undefined ? none : some(p.name)))(persons), some('Joey'))\n *\n * @since 2.5.0\n */\nvar findLastMap = function (f) {\n return function (as) {\n for (var i = as.length - 1; i >= 0; i--) {\n var out = f(as[i]);\n if (_.isSome(out)) {\n return out;\n }\n }\n return _.none;\n };\n};\nexports.findLastMap = findLastMap;\n/**\n * Returns the index of the last element of the list which matches the predicate\n *\n * @example\n * import { findLastIndex } from 'fp-ts/ReadonlyArray'\n * import { some, none } from 'fp-ts/Option'\n *\n * interface X {\n * readonly a: number\n * readonly b: number\n * }\n * const xs: ReadonlyArray = [{ a: 1, b: 0 }, { a: 1, b: 1 }]\n * assert.deepStrictEqual(findLastIndex((x: { readonly a: number }) => x.a === 1)(xs), some(1))\n * assert.deepStrictEqual(findLastIndex((x: { readonly a: number }) => x.a === 4)(xs), none)\n *\n *\n * @since 2.5.0\n */\nvar findLastIndex = function (predicate) {\n return function (as) {\n for (var i = as.length - 1; i >= 0; i--) {\n if (predicate(as[i])) {\n return _.some(i);\n }\n }\n return _.none;\n };\n};\nexports.findLastIndex = findLastIndex;\n/**\n * Insert an element at the specified index, creating a new array, or returning `None` if the index is out of bounds\n *\n * @example\n * import { insertAt } from 'fp-ts/ReadonlyArray'\n * import { some } from 'fp-ts/Option'\n *\n * assert.deepStrictEqual(insertAt(2, 5)([1, 2, 3, 4]), some([1, 2, 5, 3, 4]))\n *\n * @since 2.5.0\n */\nvar insertAt = function (i, a) {\n return function (as) {\n return i < 0 || i > as.length ? _.none : _.some(RNEA.unsafeInsertAt(i, a, as));\n };\n};\nexports.insertAt = insertAt;\n/**\n * Change the element at the specified index, creating a new array, or returning `None` if the index is out of bounds\n *\n * @example\n * import { updateAt } from 'fp-ts/ReadonlyArray'\n * import { some, none } from 'fp-ts/Option'\n *\n * assert.deepStrictEqual(updateAt(1, 1)([1, 2, 3]), some([1, 1, 3]))\n * assert.deepStrictEqual(updateAt(1, 1)([]), none)\n *\n * @since 2.5.0\n */\nvar updateAt = function (i, a) {\n return (0, exports.modifyAt)(i, function () { return a; });\n};\nexports.updateAt = updateAt;\n/**\n * Delete the element at the specified index, creating a new array, or returning `None` if the index is out of bounds\n *\n * @example\n * import { deleteAt } from 'fp-ts/ReadonlyArray'\n * import { some, none } from 'fp-ts/Option'\n *\n * assert.deepStrictEqual(deleteAt(0)([1, 2, 3]), some([2, 3]))\n * assert.deepStrictEqual(deleteAt(1)([]), none)\n *\n * @since 2.5.0\n */\nvar deleteAt = function (i) {\n return function (as) {\n return (0, exports.isOutOfBound)(i, as) ? _.none : _.some((0, exports.unsafeDeleteAt)(i, as));\n };\n};\nexports.deleteAt = deleteAt;\n/**\n * Apply a function to the element at the specified index, creating a new array, or returning `None` if the index is out\n * of bounds\n *\n * @example\n * import { modifyAt } from 'fp-ts/ReadonlyArray'\n * import { some, none } from 'fp-ts/Option'\n *\n * const double = (x: number): number => x * 2\n * assert.deepStrictEqual(modifyAt(1, double)([1, 2, 3]), some([1, 4, 3]))\n * assert.deepStrictEqual(modifyAt(1, double)([]), none)\n *\n * @since 2.5.0\n */\nvar modifyAt = function (i, f) {\n return function (as) {\n return (0, exports.isOutOfBound)(i, as) ? _.none : _.some((0, exports.unsafeUpdateAt)(i, f(as[i]), as));\n };\n};\nexports.modifyAt = modifyAt;\n/**\n * Reverse an array, creating a new array\n *\n * @example\n * import { reverse } from 'fp-ts/ReadonlyArray'\n *\n * assert.deepStrictEqual(reverse([1, 2, 3]), [3, 2, 1])\n *\n * @since 2.5.0\n */\nvar reverse = function (as) { return (as.length <= 1 ? as : as.slice().reverse()); };\nexports.reverse = reverse;\n/**\n * Extracts from an array of `Either` all the `Right` elements. All the `Right` elements are extracted in order\n *\n * @example\n * import { rights } from 'fp-ts/ReadonlyArray'\n * import { right, left } from 'fp-ts/Either'\n *\n * assert.deepStrictEqual(rights([right(1), left('foo'), right(2)]), [1, 2])\n *\n * @since 2.5.0\n */\nvar rights = function (as) {\n var r = [];\n for (var i = 0; i < as.length; i++) {\n var a = as[i];\n if (a._tag === 'Right') {\n r.push(a.right);\n }\n }\n return r;\n};\nexports.rights = rights;\n/**\n * Extracts from an array of `Either` all the `Left` elements. All the `Left` elements are extracted in order\n *\n * @example\n * import { lefts } from 'fp-ts/ReadonlyArray'\n * import { left, right } from 'fp-ts/Either'\n *\n * assert.deepStrictEqual(lefts([right(1), left('foo'), right(2)]), ['foo'])\n *\n * @since 2.5.0\n */\nvar lefts = function (as) {\n var r = [];\n for (var i = 0; i < as.length; i++) {\n var a = as[i];\n if (a._tag === 'Left') {\n r.push(a.left);\n }\n }\n return r;\n};\nexports.lefts = lefts;\n/**\n * Sort the elements of an array in increasing order, creating a new array\n *\n * @example\n * import { sort } from 'fp-ts/ReadonlyArray'\n * import * as N from 'fp-ts/number'\n *\n * assert.deepStrictEqual(sort(N.Ord)([3, 2, 1]), [1, 2, 3])\n *\n * @since 2.5.0\n */\nvar sort = function (O) {\n return function (as) {\n return as.length <= 1 ? as : as.slice().sort(O.compare);\n };\n};\nexports.sort = sort;\n// TODO: curry and make data-last in v3\n/**\n * Apply a function to pairs of elements at the same index in two arrays, collecting the results in a new array. If one\n * input array is short, excess elements of the longer array are discarded.\n *\n * @example\n * import { zipWith } from 'fp-ts/ReadonlyArray'\n *\n * assert.deepStrictEqual(zipWith([1, 2, 3], ['a', 'b', 'c', 'd'], (n, s) => s + n), ['a1', 'b2', 'c3'])\n *\n * @since 2.5.0\n */\nvar zipWith = function (fa, fb, f) {\n var fc = [];\n var len = Math.min(fa.length, fb.length);\n for (var i = 0; i < len; i++) {\n fc[i] = f(fa[i], fb[i]);\n }\n return fc;\n};\nexports.zipWith = zipWith;\nfunction zip(as, bs) {\n if (bs === undefined) {\n return function (bs) { return zip(bs, as); };\n }\n return (0, exports.zipWith)(as, bs, function (a, b) { return [a, b]; });\n}\n/**\n * The function is reverse of `zip`. Takes an array of pairs and return two corresponding arrays\n *\n * @example\n * import { unzip } from 'fp-ts/ReadonlyArray'\n *\n * assert.deepStrictEqual(unzip([[1, 'a'], [2, 'b'], [3, 'c']]), [[1, 2, 3], ['a', 'b', 'c']])\n *\n * @since 2.5.0\n */\nvar unzip = function (as) {\n var fa = [];\n var fb = [];\n for (var i = 0; i < as.length; i++) {\n fa[i] = as[i][0];\n fb[i] = as[i][1];\n }\n return [fa, fb];\n};\nexports.unzip = unzip;\n/**\n * Prepend an element to every member of an array\n *\n * @example\n * import { prependAll } from 'fp-ts/ReadonlyArray'\n *\n * assert.deepStrictEqual(prependAll(9)([1, 2, 3, 4]), [9, 1, 9, 2, 9, 3, 9, 4])\n *\n * @since 2.10.0\n */\nvar prependAll = function (middle) {\n var f = RNEA.prependAll(middle);\n return function (as) { return ((0, exports.isNonEmpty)(as) ? f(as) : as); };\n};\nexports.prependAll = prependAll;\n/**\n * Places an element in between members of an array\n *\n * @example\n * import { intersperse } from 'fp-ts/ReadonlyArray'\n *\n * assert.deepStrictEqual(intersperse(9)([1, 2, 3, 4]), [1, 9, 2, 9, 3, 9, 4])\n *\n * @since 2.9.0\n */\nvar intersperse = function (middle) {\n var f = RNEA.intersperse(middle);\n return function (as) { return ((0, exports.isNonEmpty)(as) ? f(as) : as); };\n};\nexports.intersperse = intersperse;\n/**\n * Rotate a `ReadonlyArray` by `n` steps.\n *\n * @example\n * import { rotate } from 'fp-ts/ReadonlyArray'\n *\n * assert.deepStrictEqual(rotate(2)([1, 2, 3, 4, 5]), [4, 5, 1, 2, 3])\n *\n * @since 2.5.0\n */\nvar rotate = function (n) {\n var f = RNEA.rotate(n);\n return function (as) { return ((0, exports.isNonEmpty)(as) ? f(as) : as); };\n};\nexports.rotate = rotate;\nfunction elem(E) {\n return function (a, as) {\n if (as === undefined) {\n var elemE_1 = elem(E);\n return function (as) { return elemE_1(a, as); };\n }\n var predicate = function (element) { return E.equals(element, a); };\n var i = 0;\n for (; i < as.length; i++) {\n if (predicate(as[i])) {\n return true;\n }\n }\n return false;\n };\n}\n/**\n * Remove duplicates from an array, keeping the first occurrence of an element.\n *\n * @example\n * import { uniq } from 'fp-ts/ReadonlyArray'\n * import * as N from 'fp-ts/number'\n *\n * assert.deepStrictEqual(uniq(N.Eq)([1, 2, 1]), [1, 2])\n *\n * @since 2.5.0\n */\nvar uniq = function (E) {\n var f = RNEA.uniq(E);\n return function (as) { return ((0, exports.isNonEmpty)(as) ? f(as) : as); };\n};\nexports.uniq = uniq;\n/**\n * Sort the elements of an array in increasing order, where elements are compared using first `ords[0]`, then `ords[1]`,\n * etc...\n *\n * @example\n * import { sortBy } from 'fp-ts/ReadonlyArray'\n * import { contramap } from 'fp-ts/Ord'\n * import * as S from 'fp-ts/string'\n * import * as N from 'fp-ts/number'\n * import { pipe } from 'fp-ts/function'\n *\n * interface Person {\n * readonly name: string\n * readonly age: number\n * }\n * const byName = pipe(S.Ord, contramap((p: Person) => p.name))\n * const byAge = pipe(N.Ord, contramap((p: Person) => p.age))\n *\n * const sortByNameByAge = sortBy([byName, byAge])\n *\n * const persons = [{ name: 'a', age: 1 }, { name: 'b', age: 3 }, { name: 'c', age: 2 }, { name: 'b', age: 2 }]\n * assert.deepStrictEqual(sortByNameByAge(persons), [\n * { name: 'a', age: 1 },\n * { name: 'b', age: 2 },\n * { name: 'b', age: 3 },\n * { name: 'c', age: 2 }\n * ])\n *\n * @since 2.5.0\n */\nvar sortBy = function (ords) {\n var f = RNEA.sortBy(ords);\n return function (as) { return ((0, exports.isNonEmpty)(as) ? f(as) : as); };\n};\nexports.sortBy = sortBy;\n/**\n * A useful recursion pattern for processing a `ReadonlyArray` to produce a new `ReadonlyArray`, often used for \"chopping\" up the input\n * `ReadonlyArray`. Typically `chop` is called with some function that will consume an initial prefix of the `ReadonlyArray` and produce a\n * value and the tail of the `ReadonlyArray`.\n *\n * @example\n * import { Eq } from 'fp-ts/Eq'\n * import * as RA from 'fp-ts/ReadonlyArray'\n * import * as N from 'fp-ts/number'\n * import { pipe } from 'fp-ts/function'\n *\n * const group = (S: Eq): ((as: ReadonlyArray) => ReadonlyArray>) => {\n * return RA.chop(as => {\n * const { init, rest } = pipe(as, RA.spanLeft((a: A) => S.equals(a, as[0])))\n * return [init, rest]\n * })\n * }\n * assert.deepStrictEqual(group(N.Eq)([1, 1, 2, 3, 3, 4]), [[1, 1], [2], [3, 3], [4]])\n *\n * @since 2.5.0\n */\nvar chop = function (f) {\n var g = RNEA.chop(f);\n return function (as) { return ((0, exports.isNonEmpty)(as) ? g(as) : exports.empty); };\n};\nexports.chop = chop;\n/**\n * Splits a `ReadonlyArray` into two pieces, the first piece has max `n` elements.\n *\n * @example\n * import { splitAt } from 'fp-ts/ReadonlyArray'\n *\n * assert.deepStrictEqual(splitAt(2)([1, 2, 3, 4, 5]), [[1, 2], [3, 4, 5]])\n *\n * @since 2.5.0\n */\nvar splitAt = function (n) {\n return function (as) {\n return n >= 1 && (0, exports.isNonEmpty)(as) ? RNEA.splitAt(n)(as) : (0, exports.isEmpty)(as) ? [as, exports.empty] : [exports.empty, as];\n };\n};\nexports.splitAt = splitAt;\n/**\n * Splits a `ReadonlyArray` into length-`n` pieces. The last piece will be shorter if `n` does not evenly divide the length of\n * the `ReadonlyArray`. Note that `chunksOf(n)([])` is `[]`, not `[[]]`. This is intentional, and is consistent with a recursive\n * definition of `chunksOf`; it satisfies the property that:\n *\n * ```ts\n * chunksOf(n)(xs).concat(chunksOf(n)(ys)) == chunksOf(n)(xs.concat(ys)))\n * ```\n *\n * whenever `n` evenly divides the length of `as`.\n *\n * @example\n * import { chunksOf } from 'fp-ts/ReadonlyArray'\n *\n * assert.deepStrictEqual(chunksOf(2)([1, 2, 3, 4, 5]), [[1, 2], [3, 4], [5]])\n *\n * @since 2.5.0\n */\nvar chunksOf = function (n) {\n var f = RNEA.chunksOf(n);\n return function (as) { return ((0, exports.isNonEmpty)(as) ? f(as) : exports.empty); };\n};\nexports.chunksOf = chunksOf;\n/**\n * @category lifting\n * @since 2.11.0\n */\nvar fromOptionK = function (f) {\n return function () {\n var a = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n a[_i] = arguments[_i];\n }\n return (0, exports.fromOption)(f.apply(void 0, a));\n };\n};\nexports.fromOptionK = fromOptionK;\nfunction comprehension(input, f, g) {\n if (g === void 0) { g = function () { return true; }; }\n var go = function (scope, input) {\n return (0, exports.isNonEmpty)(input)\n ? (0, exports.flatMap)(RNEA.head(input), function (a) { return go((0, function_1.pipe)(scope, (0, exports.append)(a)), RNEA.tail(input)); })\n : g.apply(void 0, scope) ? [f.apply(void 0, scope)]\n : exports.empty;\n };\n return go(exports.empty, input);\n}\n/**\n * @since 2.11.0\n */\nvar concatW = function (second) {\n return function (first) {\n return (0, exports.isEmpty)(first) ? second : (0, exports.isEmpty)(second) ? first : first.concat(second);\n };\n};\nexports.concatW = concatW;\n/**\n * @since 2.11.0\n */\nexports.concat = exports.concatW;\nfunction union(E) {\n var unionE = RNEA.union(E);\n return function (first, second) {\n if (second === undefined) {\n var unionE_1 = union(E);\n return function (second) { return unionE_1(second, first); };\n }\n return (0, exports.isNonEmpty)(first) && (0, exports.isNonEmpty)(second) ? unionE(second)(first) : (0, exports.isNonEmpty)(first) ? first : second;\n };\n}\nfunction intersection(E) {\n var elemE = elem(E);\n return function (xs, ys) {\n if (ys === undefined) {\n var intersectionE_1 = intersection(E);\n return function (ys) { return intersectionE_1(ys, xs); };\n }\n return xs.filter(function (a) { return elemE(a, ys); });\n };\n}\nfunction difference(E) {\n var elemE = elem(E);\n return function (xs, ys) {\n if (ys === undefined) {\n var differenceE_1 = difference(E);\n return function (ys) { return differenceE_1(ys, xs); };\n }\n return xs.filter(function (a) { return !elemE(a, ys); });\n };\n}\nvar _map = function (fa, f) { return (0, function_1.pipe)(fa, (0, exports.map)(f)); };\nvar _mapWithIndex = function (fa, f) { return (0, function_1.pipe)(fa, (0, exports.mapWithIndex)(f)); };\nvar _ap = function (fab, fa) { return (0, function_1.pipe)(fab, (0, exports.ap)(fa)); };\nvar _filter = function (fa, predicate) {\n return (0, function_1.pipe)(fa, (0, exports.filter)(predicate));\n};\nvar _filterMap = function (fa, f) { return (0, function_1.pipe)(fa, (0, exports.filterMap)(f)); };\nvar _partition = function (fa, predicate) {\n return (0, function_1.pipe)(fa, (0, exports.partition)(predicate));\n};\nvar _partitionMap = function (fa, f) { return (0, function_1.pipe)(fa, (0, exports.partitionMap)(f)); };\nvar _partitionWithIndex = function (fa, predicateWithIndex) { return (0, function_1.pipe)(fa, (0, exports.partitionWithIndex)(predicateWithIndex)); };\nvar _partitionMapWithIndex = function (fa, f) { return (0, function_1.pipe)(fa, (0, exports.partitionMapWithIndex)(f)); };\nvar _alt = function (fa, that) { return (0, function_1.pipe)(fa, (0, exports.alt)(that)); };\nvar _reduce = function (fa, b, f) { return (0, function_1.pipe)(fa, (0, exports.reduce)(b, f)); };\nvar _foldMap = function (M) {\n var foldMapM = (0, exports.foldMap)(M);\n return function (fa, f) { return (0, function_1.pipe)(fa, foldMapM(f)); };\n};\nvar _reduceRight = function (fa, b, f) { return (0, function_1.pipe)(fa, (0, exports.reduceRight)(b, f)); };\nvar _reduceWithIndex = function (fa, b, f) {\n return (0, function_1.pipe)(fa, (0, exports.reduceWithIndex)(b, f));\n};\nvar _foldMapWithIndex = function (M) {\n var foldMapWithIndexM = (0, exports.foldMapWithIndex)(M);\n return function (fa, f) { return (0, function_1.pipe)(fa, foldMapWithIndexM(f)); };\n};\nvar _reduceRightWithIndex = function (fa, b, f) {\n return (0, function_1.pipe)(fa, (0, exports.reduceRightWithIndex)(b, f));\n};\nvar _filterMapWithIndex = function (fa, f) { return (0, function_1.pipe)(fa, (0, exports.filterMapWithIndex)(f)); };\nvar _filterWithIndex = function (fa, predicateWithIndex) { return (0, function_1.pipe)(fa, (0, exports.filterWithIndex)(predicateWithIndex)); };\nvar _extend = function (fa, f) { return (0, function_1.pipe)(fa, (0, exports.extend)(f)); };\nvar _traverse = function (F) {\n var traverseF = (0, exports.traverse)(F);\n return function (ta, f) { return (0, function_1.pipe)(ta, traverseF(f)); };\n};\n/* istanbul ignore next */\nvar _traverseWithIndex = function (F) {\n var traverseWithIndexF = (0, exports.traverseWithIndex)(F);\n return function (ta, f) { return (0, function_1.pipe)(ta, traverseWithIndexF(f)); };\n};\n/** @internal */\nvar _chainRecDepthFirst = function (a, f) { return (0, function_1.pipe)(a, (0, exports.chainRecDepthFirst)(f)); };\nexports._chainRecDepthFirst = _chainRecDepthFirst;\n/** @internal */\nvar _chainRecBreadthFirst = function (a, f) { return (0, function_1.pipe)(a, (0, exports.chainRecBreadthFirst)(f)); };\nexports._chainRecBreadthFirst = _chainRecBreadthFirst;\n/**\n * @category constructors\n * @since 2.5.0\n */\nexports.of = RNEA.of;\n/**\n * @since 2.7.0\n */\nvar zero = function () { return exports.empty; };\nexports.zero = zero;\n/**\n * Less strict version of [`alt`](#alt).\n *\n * The `W` suffix (short for **W**idening) means that the return types will be merged.\n *\n * @example\n * import * as RA from 'fp-ts/ReadonlyArray'\n * import { pipe } from 'fp-ts/function'\n *\n * assert.deepStrictEqual(\n * pipe(\n * [1, 2, 3],\n * RA.altW(() => ['a', 'b'])\n * ),\n * [1, 2, 3, 'a', 'b']\n * )\n *\n * @category error handling\n * @since 2.9.0\n */\nvar altW = function (that) {\n return function (fa) {\n return fa.concat(that());\n };\n};\nexports.altW = altW;\n/**\n * Identifies an associative operation on a type constructor. It is similar to `Semigroup`, except that it applies to\n * types of kind `* -> *`.\n *\n * In case of `ReadonlyArray` concatenates the inputs into a single array.\n *\n * @example\n * import * as RA from 'fp-ts/ReadonlyArray'\n * import { pipe } from 'fp-ts/function'\n *\n * assert.deepStrictEqual(\n * pipe(\n * [1, 2, 3],\n * RA.alt(() => [4, 5])\n * ),\n * [1, 2, 3, 4, 5]\n * )\n *\n * @category error handling\n * @since 2.5.0\n */\nexports.alt = exports.altW;\n/**\n * @since 2.5.0\n */\nvar ap = function (fa) {\n return (0, exports.flatMap)(function (f) { return (0, function_1.pipe)(fa, (0, exports.map)(f)); });\n};\nexports.ap = ap;\n/**\n * Composes computations in sequence, using the return value of one computation to determine the next computation.\n *\n * @example\n * import * as RA from 'fp-ts/ReadonlyArray'\n * import { pipe } from 'fp-ts/function'\n *\n * assert.deepStrictEqual(\n * pipe(\n * [1, 2, 3],\n * RA.flatMap((n) => [`a${n}`, `b${n}`])\n * ),\n * ['a1', 'b1', 'a2', 'b2', 'a3', 'b3']\n * )\n * assert.deepStrictEqual(\n * pipe(\n * [1, 2, 3],\n * RA.flatMap(() => [])\n * ),\n * []\n * )\n *\n * @category sequencing\n * @since 2.14.0\n */\nexports.flatMap = (0, function_1.dual)(2, function (ma, f) {\n return (0, function_1.pipe)(ma, (0, exports.chainWithIndex)(function (i, a) { return f(a, i); }));\n});\n/**\n * @category sequencing\n * @since 2.5.0\n */\nexports.flatten = (0, exports.flatMap)(function_1.identity);\n/**\n * `map` can be used to turn functions `(a: A) => B` into functions `(fa: F) => F` whose argument and return types\n * use the type constructor `F` to represent some computational context.\n *\n * @category mapping\n * @since 2.5.0\n */\nvar map = function (f) { return function (fa) {\n return fa.map(function (a) { return f(a); });\n}; };\nexports.map = map;\n/**\n * @category mapping\n * @since 2.5.0\n */\nvar mapWithIndex = function (f) { return function (fa) {\n return fa.map(function (a, i) { return f(i, a); });\n}; };\nexports.mapWithIndex = mapWithIndex;\n/**\n * @category filtering\n * @since 2.5.0\n */\nvar separate = function (fa) {\n var left = [];\n var right = [];\n for (var _i = 0, fa_1 = fa; _i < fa_1.length; _i++) {\n var e = fa_1[_i];\n if (e._tag === 'Left') {\n left.push(e.left);\n }\n else {\n right.push(e.right);\n }\n }\n return (0, Separated_1.separated)(left, right);\n};\nexports.separate = separate;\n/**\n * @category filtering\n * @since 2.5.0\n */\nvar filter = function (predicate) {\n return function (as) {\n return as.filter(predicate);\n };\n};\nexports.filter = filter;\n/**\n * @category filtering\n * @since 2.5.0\n */\nvar filterMapWithIndex = function (f) {\n return function (fa) {\n var out = [];\n for (var i = 0; i < fa.length; i++) {\n var optionB = f(i, fa[i]);\n if (_.isSome(optionB)) {\n out.push(optionB.value);\n }\n }\n return out;\n };\n};\nexports.filterMapWithIndex = filterMapWithIndex;\n/**\n * @category filtering\n * @since 2.5.0\n */\nvar filterMap = function (f) {\n return (0, exports.filterMapWithIndex)(function (_, a) { return f(a); });\n};\nexports.filterMap = filterMap;\n/**\n * @category filtering\n * @since 2.5.0\n */\nexports.compact = (0, exports.filterMap)(function_1.identity);\n/**\n * @category filtering\n * @since 2.5.0\n */\nvar partition = function (predicate) {\n return (0, exports.partitionWithIndex)(function (_, a) { return predicate(a); });\n};\nexports.partition = partition;\n/**\n * @category filtering\n * @since 2.5.0\n */\nvar partitionWithIndex = function (predicateWithIndex) {\n return function (as) {\n var left = [];\n var right = [];\n for (var i = 0; i < as.length; i++) {\n var a = as[i];\n if (predicateWithIndex(i, a)) {\n right.push(a);\n }\n else {\n left.push(a);\n }\n }\n return (0, Separated_1.separated)(left, right);\n };\n};\nexports.partitionWithIndex = partitionWithIndex;\n/**\n * @category filtering\n * @since 2.5.0\n */\nvar partitionMap = function (f) {\n return (0, exports.partitionMapWithIndex)(function (_, a) { return f(a); });\n};\nexports.partitionMap = partitionMap;\n/**\n * @category filtering\n * @since 2.5.0\n */\nvar partitionMapWithIndex = function (f) {\n return function (fa) {\n var left = [];\n var right = [];\n for (var i = 0; i < fa.length; i++) {\n var e = f(i, fa[i]);\n if (e._tag === 'Left') {\n left.push(e.left);\n }\n else {\n right.push(e.right);\n }\n }\n return (0, Separated_1.separated)(left, right);\n };\n};\nexports.partitionMapWithIndex = partitionMapWithIndex;\n/**\n * @category filtering\n * @since 2.5.0\n */\nvar filterWithIndex = function (predicateWithIndex) {\n return function (as) {\n return as.filter(function (a, i) { return predicateWithIndex(i, a); });\n };\n};\nexports.filterWithIndex = filterWithIndex;\n/**\n * @since 2.5.0\n */\nvar extend = function (f) { return function (wa) {\n return wa.map(function (_, i) { return f(wa.slice(i)); });\n}; };\nexports.extend = extend;\n/**\n * @since 2.5.0\n */\nexports.duplicate = (0, exports.extend)(function_1.identity);\n/**\n * @category folding\n * @since 2.5.0\n */\nvar foldMapWithIndex = function (M) {\n return function (f) {\n return function (fa) {\n return fa.reduce(function (b, a, i) { return M.concat(b, f(i, a)); }, M.empty);\n };\n };\n};\nexports.foldMapWithIndex = foldMapWithIndex;\n/**\n * @category folding\n * @since 2.5.0\n */\nvar reduce = function (b, f) {\n return (0, exports.reduceWithIndex)(b, function (_, b, a) { return f(b, a); });\n};\nexports.reduce = reduce;\n/**\n * @category folding\n * @since 2.5.0\n */\nvar foldMap = function (M) {\n var foldMapWithIndexM = (0, exports.foldMapWithIndex)(M);\n return function (f) { return foldMapWithIndexM(function (_, a) { return f(a); }); };\n};\nexports.foldMap = foldMap;\n/**\n * @category folding\n * @since 2.5.0\n */\nvar reduceWithIndex = function (b, f) { return function (fa) {\n var len = fa.length;\n var out = b;\n for (var i = 0; i < len; i++) {\n out = f(i, out, fa[i]);\n }\n return out;\n}; };\nexports.reduceWithIndex = reduceWithIndex;\n/**\n * @category folding\n * @since 2.5.0\n */\nvar reduceRight = function (b, f) {\n return (0, exports.reduceRightWithIndex)(b, function (_, a, b) { return f(a, b); });\n};\nexports.reduceRight = reduceRight;\n/**\n * @category folding\n * @since 2.5.0\n */\nvar reduceRightWithIndex = function (b, f) { return function (fa) {\n return fa.reduceRight(function (b, a, i) { return f(i, a, b); }, b);\n}; };\nexports.reduceRightWithIndex = reduceRightWithIndex;\n/**\n * @category traversing\n * @since 2.6.3\n */\nvar traverse = function (F) {\n var traverseWithIndexF = (0, exports.traverseWithIndex)(F);\n return function (f) { return traverseWithIndexF(function (_, a) { return f(a); }); };\n};\nexports.traverse = traverse;\n/**\n * @category traversing\n * @since 2.6.3\n */\nvar sequence = function (F) {\n return function (ta) {\n return _reduce(ta, F.of((0, exports.zero)()), function (fas, fa) {\n return F.ap(F.map(fas, function (as) { return function (a) { return (0, function_1.pipe)(as, (0, exports.append)(a)); }; }), fa);\n });\n };\n};\nexports.sequence = sequence;\n/**\n * @category sequencing\n * @since 2.6.3\n */\nvar traverseWithIndex = function (F) {\n return function (f) {\n return (0, exports.reduceWithIndex)(F.of((0, exports.zero)()), function (i, fbs, a) {\n return F.ap(F.map(fbs, function (bs) { return function (b) { return (0, function_1.pipe)(bs, (0, exports.append)(b)); }; }), f(i, a));\n });\n };\n};\nexports.traverseWithIndex = traverseWithIndex;\n/**\n * @category filtering\n * @since 2.6.5\n */\nvar wither = function (F) {\n var _witherF = _wither(F);\n return function (f) { return function (fa) { return _witherF(fa, f); }; };\n};\nexports.wither = wither;\n/**\n * @category filtering\n * @since 2.6.5\n */\nvar wilt = function (F) {\n var _wiltF = _wilt(F);\n return function (f) { return function (fa) { return _wiltF(fa, f); }; };\n};\nexports.wilt = wilt;\n/**\n * @since 2.6.6\n */\nvar unfold = function (b, f) {\n var out = [];\n var bb = b;\n // eslint-disable-next-line no-constant-condition\n while (true) {\n var mt = f(bb);\n if (_.isSome(mt)) {\n var _a = mt.value, a = _a[0], b_1 = _a[1];\n out.push(a);\n bb = b_1;\n }\n else {\n break;\n }\n }\n return out;\n};\nexports.unfold = unfold;\n/**\n * @category type lambdas\n * @since 2.5.0\n */\nexports.URI = 'ReadonlyArray';\n/**\n * @category instances\n * @since 2.5.0\n */\nvar getShow = function (S) { return ({\n show: function (as) { return \"[\".concat(as.map(S.show).join(', '), \"]\"); }\n}); };\nexports.getShow = getShow;\n/**\n * @category instances\n * @since 2.5.0\n */\nvar getSemigroup = function () { return ({\n concat: function (first, second) { return ((0, exports.isEmpty)(first) ? second : (0, exports.isEmpty)(second) ? first : first.concat(second)); }\n}); };\nexports.getSemigroup = getSemigroup;\n/**\n * Returns a `Monoid` for `ReadonlyArray`.\n *\n * @example\n * import { getMonoid } from 'fp-ts/ReadonlyArray'\n *\n * const M = getMonoid()\n * assert.deepStrictEqual(M.concat([1, 2], [3, 4]), [1, 2, 3, 4])\n *\n * @category instances\n * @since 2.5.0\n */\nvar getMonoid = function () { return ({\n concat: (0, exports.getSemigroup)().concat,\n empty: exports.empty\n}); };\nexports.getMonoid = getMonoid;\n/**\n * Derives an `Eq` over the `ReadonlyArray` of a given element type from the `Eq` of that type. The derived `Eq` defines two\n * arrays as equal if all elements of both arrays are compared equal pairwise with the given `E`. In case of arrays of\n * different lengths, the result is non equality.\n *\n * @example\n * import * as S from 'fp-ts/string'\n * import { getEq } from 'fp-ts/ReadonlyArray'\n *\n * const E = getEq(S.Eq)\n * assert.strictEqual(E.equals(['a', 'b'], ['a', 'b']), true)\n * assert.strictEqual(E.equals(['a'], []), false)\n *\n * @category instances\n * @since 2.5.0\n */\nvar getEq = function (E) {\n return (0, Eq_1.fromEquals)(function (xs, ys) { return xs.length === ys.length && xs.every(function (x, i) { return E.equals(x, ys[i]); }); });\n};\nexports.getEq = getEq;\n/**\n * Derives an `Ord` over the `ReadonlyArray` of a given element type from the `Ord` of that type. The ordering between two such\n * arrays is equal to: the first non equal comparison of each arrays elements taken pairwise in increasing order, in\n * case of equality over all the pairwise elements; the longest array is considered the greatest, if both arrays have\n * the same length, the result is equality.\n *\n * @example\n * import { getOrd } from 'fp-ts/ReadonlyArray'\n * import * as S from 'fp-ts/string'\n *\n * const O = getOrd(S.Ord)\n * assert.strictEqual(O.compare(['b'], ['a']), 1)\n * assert.strictEqual(O.compare(['a'], ['a']), 0)\n * assert.strictEqual(O.compare(['a'], ['b']), -1)\n *\n *\n * @category instances\n * @since 2.5.0\n */\nvar getOrd = function (O) {\n return (0, Ord_1.fromCompare)(function (a, b) {\n var aLen = a.length;\n var bLen = b.length;\n var len = Math.min(aLen, bLen);\n for (var i = 0; i < len; i++) {\n var ordering = O.compare(a[i], b[i]);\n if (ordering !== 0) {\n return ordering;\n }\n }\n return N.Ord.compare(aLen, bLen);\n });\n};\nexports.getOrd = getOrd;\n/**\n * @category instances\n * @since 2.11.0\n */\nvar getUnionSemigroup = function (E) {\n var unionE = union(E);\n return {\n concat: function (first, second) { return unionE(second)(first); }\n };\n};\nexports.getUnionSemigroup = getUnionSemigroup;\n/**\n * @category instances\n * @since 2.11.0\n */\nvar getUnionMonoid = function (E) { return ({\n concat: (0, exports.getUnionSemigroup)(E).concat,\n empty: exports.empty\n}); };\nexports.getUnionMonoid = getUnionMonoid;\n/**\n * @category instances\n * @since 2.11.0\n */\nvar getIntersectionSemigroup = function (E) {\n var intersectionE = intersection(E);\n return {\n concat: function (first, second) { return intersectionE(second)(first); }\n };\n};\nexports.getIntersectionSemigroup = getIntersectionSemigroup;\n/**\n * @category instances\n * @since 2.11.0\n */\nvar getDifferenceMagma = function (E) {\n var differenceE = difference(E);\n return {\n concat: function (first, second) { return differenceE(second)(first); }\n };\n};\nexports.getDifferenceMagma = getDifferenceMagma;\n/**\n * @category instances\n * @since 2.7.0\n */\nexports.Functor = {\n URI: exports.URI,\n map: _map\n};\n/**\n * @category mapping\n * @since 2.10.0\n */\nexports.flap = (0, Functor_1.flap)(exports.Functor);\n/**\n * @category instances\n * @since 2.10.0\n */\nexports.Pointed = {\n URI: exports.URI,\n of: exports.of\n};\n/**\n * @category instances\n * @since 2.7.0\n */\nexports.FunctorWithIndex = {\n URI: exports.URI,\n map: _map,\n mapWithIndex: _mapWithIndex\n};\n/**\n * @category instances\n * @since 2.10.0\n */\nexports.Apply = {\n URI: exports.URI,\n map: _map,\n ap: _ap\n};\n/**\n * Combine two effectful actions, keeping only the result of the first.\n *\n * @since 2.5.0\n */\nexports.apFirst = (0, Apply_1.apFirst)(exports.Apply);\n/**\n * Combine two effectful actions, keeping only the result of the second.\n *\n * @since 2.5.0\n */\nexports.apSecond = (0, Apply_1.apSecond)(exports.Apply);\n/**\n * @category instances\n * @since 2.7.0\n */\nexports.Applicative = {\n URI: exports.URI,\n map: _map,\n ap: _ap,\n of: exports.of\n};\n/**\n * @category instances\n * @since 2.10.0\n */\nexports.Chain = {\n URI: exports.URI,\n map: _map,\n ap: _ap,\n chain: exports.flatMap\n};\n/**\n * @category instances\n * @since 2.7.0\n */\nexports.Monad = {\n URI: exports.URI,\n map: _map,\n ap: _ap,\n of: exports.of,\n chain: exports.flatMap\n};\n/**\n * Composes computations in sequence, using the return value of one computation to determine the next computation and\n * keeping only the result of the first.\n *\n * @example\n * import * as RA from 'fp-ts/ReadonlyArray'\n * import { pipe } from 'fp-ts/function'\n *\n * assert.deepStrictEqual(\n * pipe(\n * [1, 2, 3],\n * RA.chainFirst(() => ['a', 'b'])\n * ),\n * [1, 1, 2, 2, 3, 3]\n * )\n * assert.deepStrictEqual(\n * pipe(\n * [1, 2, 3],\n * RA.chainFirst(() => [])\n * ),\n * []\n * )\n *\n * @category sequencing\n * @since 2.5.0\n */\nexports.chainFirst = \n/*#__PURE__*/ (0, Chain_1.chainFirst)(exports.Chain);\n/**\n * @category instances\n * @since 2.7.0\n */\nexports.Unfoldable = {\n URI: exports.URI,\n unfold: exports.unfold\n};\n/**\n * @category instances\n * @since 2.7.0\n */\nexports.Alt = {\n URI: exports.URI,\n map: _map,\n alt: _alt\n};\n/**\n * @category instances\n * @since 2.11.0\n */\nexports.Zero = {\n URI: exports.URI,\n zero: exports.zero\n};\n/**\n * @category do notation\n * @since 2.11.0\n */\nexports.guard = (0, Zero_1.guard)(exports.Zero, exports.Pointed);\n/**\n * @category instances\n * @since 2.7.0\n */\nexports.Alternative = {\n URI: exports.URI,\n map: _map,\n ap: _ap,\n of: exports.of,\n alt: _alt,\n zero: exports.zero\n};\n/**\n * @category instances\n * @since 2.7.0\n */\nexports.Extend = {\n URI: exports.URI,\n map: _map,\n extend: _extend\n};\n/**\n * @category instances\n * @since 2.7.0\n */\nexports.Compactable = {\n URI: exports.URI,\n compact: exports.compact,\n separate: exports.separate\n};\n/**\n * @category instances\n * @since 2.7.0\n */\nexports.Filterable = {\n URI: exports.URI,\n map: _map,\n compact: exports.compact,\n separate: exports.separate,\n filter: _filter,\n filterMap: _filterMap,\n partition: _partition,\n partitionMap: _partitionMap\n};\n/**\n * @category instances\n * @since 2.7.0\n */\nexports.FilterableWithIndex = {\n URI: exports.URI,\n map: _map,\n mapWithIndex: _mapWithIndex,\n compact: exports.compact,\n separate: exports.separate,\n filter: _filter,\n filterMap: _filterMap,\n partition: _partition,\n partitionMap: _partitionMap,\n partitionMapWithIndex: _partitionMapWithIndex,\n partitionWithIndex: _partitionWithIndex,\n filterMapWithIndex: _filterMapWithIndex,\n filterWithIndex: _filterWithIndex\n};\n/**\n * @category instances\n * @since 2.7.0\n */\nexports.Foldable = {\n URI: exports.URI,\n reduce: _reduce,\n foldMap: _foldMap,\n reduceRight: _reduceRight\n};\n/**\n * @category instances\n * @since 2.7.0\n */\nexports.FoldableWithIndex = {\n URI: exports.URI,\n reduce: _reduce,\n foldMap: _foldMap,\n reduceRight: _reduceRight,\n reduceWithIndex: _reduceWithIndex,\n foldMapWithIndex: _foldMapWithIndex,\n reduceRightWithIndex: _reduceRightWithIndex\n};\n/**\n * @category instances\n * @since 2.7.0\n */\nexports.Traversable = {\n URI: exports.URI,\n map: _map,\n reduce: _reduce,\n foldMap: _foldMap,\n reduceRight: _reduceRight,\n traverse: _traverse,\n sequence: exports.sequence\n};\n/**\n * @category instances\n * @since 2.7.0\n */\nexports.TraversableWithIndex = {\n URI: exports.URI,\n map: _map,\n mapWithIndex: _mapWithIndex,\n reduce: _reduce,\n foldMap: _foldMap,\n reduceRight: _reduceRight,\n reduceWithIndex: _reduceWithIndex,\n foldMapWithIndex: _foldMapWithIndex,\n reduceRightWithIndex: _reduceRightWithIndex,\n traverse: _traverse,\n sequence: exports.sequence,\n traverseWithIndex: _traverseWithIndex\n};\n/**\n * @category sequencing\n * @since 2.11.0\n */\nvar chainRecDepthFirst = function (f) {\n return function (a) {\n var todo = __spreadArray([], f(a), true);\n var out = [];\n while (todo.length > 0) {\n var e = todo.shift();\n if (_.isLeft(e)) {\n todo.unshift.apply(todo, f(e.left));\n }\n else {\n out.push(e.right);\n }\n }\n return out;\n };\n};\nexports.chainRecDepthFirst = chainRecDepthFirst;\n/**\n * @category instances\n * @since 2.11.0\n */\nexports.ChainRecDepthFirst = {\n URI: exports.URI,\n map: _map,\n ap: _ap,\n chain: exports.flatMap,\n chainRec: exports._chainRecDepthFirst\n};\n/**\n * @category sequencing\n * @since 2.11.0\n */\nvar chainRecBreadthFirst = function (f) {\n return function (a) {\n var initial = f(a);\n var todo = [];\n var out = [];\n function go(e) {\n if (_.isLeft(e)) {\n f(e.left).forEach(function (v) { return todo.push(v); });\n }\n else {\n out.push(e.right);\n }\n }\n for (var _i = 0, initial_1 = initial; _i < initial_1.length; _i++) {\n var e = initial_1[_i];\n go(e);\n }\n while (todo.length > 0) {\n go(todo.shift());\n }\n return out;\n };\n};\nexports.chainRecBreadthFirst = chainRecBreadthFirst;\n/**\n * @category instances\n * @since 2.11.0\n */\nexports.ChainRecBreadthFirst = {\n URI: exports.URI,\n map: _map,\n ap: _ap,\n chain: exports.flatMap,\n chainRec: exports._chainRecBreadthFirst\n};\nvar _wither = /*#__PURE__*/ (0, Witherable_1.witherDefault)(exports.Traversable, exports.Compactable);\nvar _wilt = /*#__PURE__*/ (0, Witherable_1.wiltDefault)(exports.Traversable, exports.Compactable);\n/**\n * @category instances\n * @since 2.7.0\n */\nexports.Witherable = {\n URI: exports.URI,\n map: _map,\n compact: exports.compact,\n separate: exports.separate,\n filter: _filter,\n filterMap: _filterMap,\n partition: _partition,\n partitionMap: _partitionMap,\n reduce: _reduce,\n foldMap: _foldMap,\n reduceRight: _reduceRight,\n traverse: _traverse,\n sequence: exports.sequence,\n wither: _wither,\n wilt: _wilt\n};\n/**\n * Filter values inside a context.\n *\n * @example\n * import { pipe } from 'fp-ts/function'\n * import * as RA from 'fp-ts/ReadonlyArray'\n * import * as T from 'fp-ts/Task'\n *\n * const filterE = RA.filterE(T.ApplicativePar)\n * async function test() {\n * assert.deepStrictEqual(\n * await pipe(\n * [-1, 2, 3],\n * filterE((n) => T.of(n > 0))\n * )(),\n * [2, 3]\n * )\n * }\n * test()\n *\n * @since 2.11.0\n */\nexports.filterE = (0, Witherable_1.filterE)(exports.Witherable);\n/**\n * @category instances\n * @since 2.11.0\n */\nexports.FromEither = {\n URI: exports.URI,\n fromEither: exports.fromEither\n};\n/**\n * @category lifting\n * @since 2.11.0\n */\nexports.fromEitherK = (0, FromEither_1.fromEitherK)(exports.FromEither);\n// -------------------------------------------------------------------------------------\n// unsafe\n// -------------------------------------------------------------------------------------\n/**\n * @category unsafe\n * @since 2.5.0\n */\nexports.unsafeInsertAt = RNEA.unsafeInsertAt;\n/**\n * @category unsafe\n * @since 2.5.0\n */\nvar unsafeUpdateAt = function (i, a, as) {\n return (0, exports.isNonEmpty)(as) ? RNEA.unsafeUpdateAt(i, a, as) : as;\n};\nexports.unsafeUpdateAt = unsafeUpdateAt;\n/**\n * @category unsafe\n * @since 2.5.0\n */\nvar unsafeDeleteAt = function (i, as) {\n var xs = as.slice();\n xs.splice(i, 1);\n return xs;\n};\nexports.unsafeDeleteAt = unsafeDeleteAt;\n/**\n * @category conversions\n * @since 2.5.0\n */\nvar toArray = function (as) { return as.slice(); };\nexports.toArray = toArray;\n/**\n * @category conversions\n * @since 2.5.0\n */\nvar fromArray = function (as) { return ((0, exports.isEmpty)(as) ? exports.empty : as.slice()); };\nexports.fromArray = fromArray;\n// -------------------------------------------------------------------------------------\n// utils\n// -------------------------------------------------------------------------------------\n/**\n * An empty array\n *\n * @since 2.5.0\n */\nexports.empty = RNEA.empty;\nfunction every(predicate) {\n return function (as) { return as.every(predicate); };\n}\n/**\n * Check if a predicate holds true for any array member.\n *\n * @example\n * import { some } from 'fp-ts/ReadonlyArray'\n * import { pipe } from 'fp-ts/function'\n *\n * const isPositive = (n: number): boolean => n > 0\n *\n * assert.deepStrictEqual(pipe([-1, -2, 3], some(isPositive)), true)\n * assert.deepStrictEqual(pipe([-1, -2, -3], some(isPositive)), false)\n *\n * @since 2.9.0\n */\nvar some = function (predicate) {\n return function (as) {\n return as.some(predicate);\n };\n};\nexports.some = some;\n/**\n * Alias of [`some`](#some)\n *\n * @since 2.11.0\n */\nexports.exists = exports.some;\n/**\n * Places an element in between members of a `ReadonlyArray`, then folds the results using the provided `Monoid`.\n *\n * @example\n * import * as S from 'fp-ts/string'\n * import { intercalate } from 'fp-ts/ReadonlyArray'\n *\n * assert.deepStrictEqual(intercalate(S.Monoid)('-')(['a', 'b', 'c']), 'a-b-c')\n *\n * @since 2.12.0\n */\nvar intercalate = function (M) {\n var intercalateM = RNEA.intercalate(M);\n return function (middle) { return (0, exports.match)(function () { return M.empty; }, intercalateM(middle)); };\n};\nexports.intercalate = intercalate;\n// -------------------------------------------------------------------------------------\n// do notation\n// -------------------------------------------------------------------------------------\n/**\n * @category do notation\n * @since 2.9.0\n */\nexports.Do = (0, exports.of)(_.emptyRecord);\n/**\n * @category do notation\n * @since 2.8.0\n */\nexports.bindTo = (0, Functor_1.bindTo)(exports.Functor);\nvar let_ = /*#__PURE__*/ (0, Functor_1.let)(exports.Functor);\nexports.let = let_;\n/**\n * @category do notation\n * @since 2.8.0\n */\nexports.bind = (0, Chain_1.bind)(exports.Chain);\n/**\n * @category do notation\n * @since 2.8.0\n */\nexports.apS = (0, Apply_1.apS)(exports.Apply);\n// -------------------------------------------------------------------------------------\n// legacy\n// -------------------------------------------------------------------------------------\n/**\n * Alias of `flatMap`.\n *\n * @category legacy\n * @since 2.5.0\n */\nexports.chain = exports.flatMap;\n// -------------------------------------------------------------------------------------\n// deprecated\n// -------------------------------------------------------------------------------------\n/**\n * Use `ReadonlyNonEmptyArray` module instead.\n *\n * @category zone of death\n * @since 2.5.0\n * @deprecated\n */\nexports.range = RNEA.range;\n/**\n * Use [`prepend`](#prepend) instead.\n *\n * @category zone of death\n * @since 2.5.0\n * @deprecated\n */\nexports.cons = RNEA.cons;\n/**\n * Use [`append`](#append) instead.\n *\n * @category zone of death\n * @since 2.5.0\n * @deprecated\n */\nexports.snoc = RNEA.snoc;\n/**\n * Use [`prependAll`](#prependall) instead.\n *\n * @category zone of death\n * @since 2.9.0\n * @deprecated\n */\nexports.prependToAll = exports.prependAll;\n/**\n * This instance is deprecated, use small, specific instances instead.\n * For example if a function needs a `Functor` instance, pass `RA.Functor` instead of `RA.readonlyArray`\n * (where `RA` is from `import RA from 'fp-ts/ReadonlyArray'`)\n *\n * @category zone of death\n * @since 2.5.0\n * @deprecated\n */\nexports.readonlyArray = {\n URI: exports.URI,\n compact: exports.compact,\n separate: exports.separate,\n map: _map,\n ap: _ap,\n of: exports.of,\n chain: exports.flatMap,\n filter: _filter,\n filterMap: _filterMap,\n partition: _partition,\n partitionMap: _partitionMap,\n mapWithIndex: _mapWithIndex,\n partitionMapWithIndex: _partitionMapWithIndex,\n partitionWithIndex: _partitionWithIndex,\n filterMapWithIndex: _filterMapWithIndex,\n filterWithIndex: _filterWithIndex,\n alt: _alt,\n zero: exports.zero,\n unfold: exports.unfold,\n reduce: _reduce,\n foldMap: _foldMap,\n reduceRight: _reduceRight,\n traverse: _traverse,\n sequence: exports.sequence,\n reduceWithIndex: _reduceWithIndex,\n foldMapWithIndex: _foldMapWithIndex,\n reduceRightWithIndex: _reduceRightWithIndex,\n traverseWithIndex: _traverseWithIndex,\n extend: _extend,\n wither: _wither,\n wilt: _wilt\n};\n","\"use strict\";\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n var desc = Object.getOwnPropertyDescriptor(m, k);\n if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\n desc = { enumerable: true, get: function() { return m[k]; } };\n }\n Object.defineProperty(o, k2, desc);\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n}));\nvar __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\n}) : function(o, v) {\n o[\"default\"] = v;\n});\nvar __importStar = (this && this.__importStar) || function (mod) {\n if (mod && mod.__esModule) return mod;\n var result = {};\n if (mod != null) for (var k in mod) if (k !== \"default\" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\n __setModuleDefault(result, mod);\n return result;\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.semigroupProduct = exports.semigroupSum = exports.semigroupString = exports.getFunctionSemigroup = exports.semigroupAny = exports.semigroupAll = exports.getIntercalateSemigroup = exports.getMeetSemigroup = exports.getJoinSemigroup = exports.getDualSemigroup = exports.getStructSemigroup = exports.getTupleSemigroup = exports.getFirstSemigroup = exports.getLastSemigroup = exports.getObjectSemigroup = exports.semigroupVoid = exports.concatAll = exports.last = exports.first = exports.intercalate = exports.tuple = exports.struct = exports.reverse = exports.constant = exports.max = exports.min = void 0;\nexports.fold = fold;\n/**\n * If a type `A` can form a `Semigroup` it has an **associative** binary operation.\n *\n * ```ts\n * interface Semigroup {\n * readonly concat: (x: A, y: A) => A\n * }\n * ```\n *\n * Associativity means the following equality must hold for any choice of `x`, `y`, and `z`.\n *\n * ```ts\n * concat(x, concat(y, z)) = concat(concat(x, y), z)\n * ```\n *\n * A common example of a semigroup is the type `string` with the operation `+`.\n *\n * ```ts\n * import { Semigroup } from 'fp-ts/Semigroup'\n *\n * const semigroupString: Semigroup = {\n * concat: (x, y) => x + y\n * }\n *\n * const x = 'x'\n * const y = 'y'\n * const z = 'z'\n *\n * semigroupString.concat(x, y) // 'xy'\n *\n * semigroupString.concat(x, semigroupString.concat(y, z)) // 'xyz'\n *\n * semigroupString.concat(semigroupString.concat(x, y), z) // 'xyz'\n * ```\n *\n * *Adapted from https://typelevel.org/cats*\n *\n * @since 2.0.0\n */\nvar function_1 = require(\"./function\");\nvar _ = __importStar(require(\"./internal\"));\nvar M = __importStar(require(\"./Magma\"));\nvar Or = __importStar(require(\"./Ord\"));\n// -------------------------------------------------------------------------------------\n// constructors\n// -------------------------------------------------------------------------------------\n/**\n * Get a semigroup where `concat` will return the minimum, based on the provided order.\n *\n * @example\n * import * as N from 'fp-ts/number'\n * import * as S from 'fp-ts/Semigroup'\n *\n * const S1 = S.min(N.Ord)\n *\n * assert.deepStrictEqual(S1.concat(1, 2), 1)\n *\n * @category constructors\n * @since 2.10.0\n */\nvar min = function (O) { return ({\n concat: Or.min(O)\n}); };\nexports.min = min;\n/**\n * Get a semigroup where `concat` will return the maximum, based on the provided order.\n *\n * @example\n * import * as N from 'fp-ts/number'\n * import * as S from 'fp-ts/Semigroup'\n *\n * const S1 = S.max(N.Ord)\n *\n * assert.deepStrictEqual(S1.concat(1, 2), 2)\n *\n * @category constructors\n * @since 2.10.0\n */\nvar max = function (O) { return ({\n concat: Or.max(O)\n}); };\nexports.max = max;\n/**\n * @category constructors\n * @since 2.10.0\n */\nvar constant = function (a) { return ({\n concat: function () { return a; }\n}); };\nexports.constant = constant;\n// -------------------------------------------------------------------------------------\n// combinators\n// -------------------------------------------------------------------------------------\n/**\n * The dual of a `Semigroup`, obtained by swapping the arguments of `concat`.\n *\n * @example\n * import { reverse } from 'fp-ts/Semigroup'\n * import * as S from 'fp-ts/string'\n *\n * assert.deepStrictEqual(reverse(S.Semigroup).concat('a', 'b'), 'ba')\n *\n * @since 2.10.0\n */\nexports.reverse = M.reverse;\n/**\n * Given a struct of semigroups returns a semigroup for the struct.\n *\n * @example\n * import { struct } from 'fp-ts/Semigroup'\n * import * as N from 'fp-ts/number'\n *\n * interface Point {\n * readonly x: number\n * readonly y: number\n * }\n *\n * const S = struct({\n * x: N.SemigroupSum,\n * y: N.SemigroupSum\n * })\n *\n * assert.deepStrictEqual(S.concat({ x: 1, y: 2 }, { x: 3, y: 4 }), { x: 4, y: 6 })\n *\n * @since 2.10.0\n */\nvar struct = function (semigroups) { return ({\n concat: function (first, second) {\n var r = {};\n for (var k in semigroups) {\n if (_.has.call(semigroups, k)) {\n r[k] = semigroups[k].concat(first[k], second[k]);\n }\n }\n return r;\n }\n}); };\nexports.struct = struct;\n/**\n * Given a tuple of semigroups returns a semigroup for the tuple.\n *\n * @example\n * import { tuple } from 'fp-ts/Semigroup'\n * import * as B from 'fp-ts/boolean'\n * import * as N from 'fp-ts/number'\n * import * as S from 'fp-ts/string'\n *\n * const S1 = tuple(S.Semigroup, N.SemigroupSum)\n * assert.deepStrictEqual(S1.concat(['a', 1], ['b', 2]), ['ab', 3])\n *\n * const S2 = tuple(S.Semigroup, N.SemigroupSum, B.SemigroupAll)\n * assert.deepStrictEqual(S2.concat(['a', 1, true], ['b', 2, false]), ['ab', 3, false])\n *\n * @since 2.10.0\n */\nvar tuple = function () {\n var semigroups = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n semigroups[_i] = arguments[_i];\n }\n return ({\n concat: function (first, second) { return semigroups.map(function (s, i) { return s.concat(first[i], second[i]); }); }\n });\n};\nexports.tuple = tuple;\n/**\n * Between each pair of elements insert `middle`.\n *\n * @example\n * import { intercalate } from 'fp-ts/Semigroup'\n * import * as S from 'fp-ts/string'\n * import { pipe } from 'fp-ts/function'\n *\n * const S1 = pipe(S.Semigroup, intercalate(' + '))\n *\n * assert.strictEqual(S1.concat('a', 'b'), 'a + b')\n *\n * @since 2.10.0\n */\nvar intercalate = function (middle) {\n return function (S) { return ({\n concat: function (x, y) { return S.concat(x, S.concat(middle, y)); }\n }); };\n};\nexports.intercalate = intercalate;\n// -------------------------------------------------------------------------------------\n// instances\n// -------------------------------------------------------------------------------------\n/**\n * Always return the first argument.\n *\n * @example\n * import * as S from 'fp-ts/Semigroup'\n *\n * assert.deepStrictEqual(S.first().concat(1, 2), 1)\n *\n * @category instances\n * @since 2.10.0\n */\nvar first = function () { return ({ concat: function_1.identity }); };\nexports.first = first;\n/**\n * Always return the last argument.\n *\n * @example\n * import * as S from 'fp-ts/Semigroup'\n *\n * assert.deepStrictEqual(S.last().concat(1, 2), 2)\n *\n * @category instances\n * @since 2.10.0\n */\nvar last = function () { return ({ concat: function (_, y) { return y; } }); };\nexports.last = last;\n// -------------------------------------------------------------------------------------\n// utils\n// -------------------------------------------------------------------------------------\n/**\n * Given a sequence of `as`, concat them and return the total.\n *\n * If `as` is empty, return the provided `startWith` value.\n *\n * @example\n * import { concatAll } from 'fp-ts/Semigroup'\n * import * as N from 'fp-ts/number'\n *\n * const sum = concatAll(N.SemigroupSum)(0)\n *\n * assert.deepStrictEqual(sum([1, 2, 3]), 6)\n * assert.deepStrictEqual(sum([]), 0)\n *\n * @since 2.10.0\n */\nexports.concatAll = M.concatAll;\n// -------------------------------------------------------------------------------------\n// deprecated\n// -------------------------------------------------------------------------------------\n/**\n * Use `void` module instead.\n *\n * @category zone of death\n * @since 2.0.0\n * @deprecated\n */\nexports.semigroupVoid = (0, exports.constant)(undefined);\n/**\n * Use [`getAssignSemigroup`](./struct.ts.html#getAssignSemigroup) instead.\n *\n * @category zone of death\n * @since 2.0.0\n * @deprecated\n */\nvar getObjectSemigroup = function () { return ({\n concat: function (first, second) { return Object.assign({}, first, second); }\n}); };\nexports.getObjectSemigroup = getObjectSemigroup;\n/**\n * Use [`last`](#last) instead.\n *\n * @category zone of death\n * @since 2.0.0\n * @deprecated\n */\nexports.getLastSemigroup = exports.last;\n/**\n * Use [`first`](#first) instead.\n *\n * @category zone of death\n * @since 2.0.0\n * @deprecated\n */\nexports.getFirstSemigroup = exports.first;\n/**\n * Use [`tuple`](#tuple) instead.\n *\n * @category zone of death\n * @since 2.0.0\n * @deprecated\n */\nexports.getTupleSemigroup = exports.tuple;\n/**\n * Use [`struct`](#struct) instead.\n *\n * @category zone of death\n * @since 2.0.0\n * @deprecated\n */\nexports.getStructSemigroup = exports.struct;\n/**\n * Use [`reverse`](#reverse) instead.\n *\n * @category zone of death\n * @since 2.0.0\n * @deprecated\n */\nexports.getDualSemigroup = exports.reverse;\n/**\n * Use [`max`](#max) instead.\n *\n * @category zone of death\n * @since 2.0.0\n * @deprecated\n */\nexports.getJoinSemigroup = exports.max;\n/**\n * Use [`min`](#min) instead.\n *\n * @category zone of death\n * @since 2.0.0\n * @deprecated\n */\nexports.getMeetSemigroup = exports.min;\n/**\n * Use [`intercalate`](#intercalate) instead.\n *\n * @category zone of death\n * @since 2.5.0\n * @deprecated\n */\nexports.getIntercalateSemigroup = exports.intercalate;\nfunction fold(S) {\n var concatAllS = (0, exports.concatAll)(S);\n return function (startWith, as) { return (as === undefined ? concatAllS(startWith) : concatAllS(startWith)(as)); };\n}\n/**\n * Use [`SemigroupAll`](./boolean.ts.html#SemigroupAll) instead.\n *\n * @category zone of death\n * @since 2.0.0\n * @deprecated\n */\nexports.semigroupAll = {\n concat: function (x, y) { return x && y; }\n};\n/**\n * Use [`SemigroupAny`](./boolean.ts.html#SemigroupAny) instead.\n *\n * @category zone of death\n * @since 2.0.0\n * @deprecated\n */\nexports.semigroupAny = {\n concat: function (x, y) { return x || y; }\n};\n/**\n * Use [`getSemigroup`](./function.ts.html#getSemigroup) instead.\n *\n * @category zone of death\n * @since 2.0.0\n * @deprecated\n */\nexports.getFunctionSemigroup = function_1.getSemigroup;\n/**\n * Use [`Semigroup`](./string.ts.html#Semigroup) instead.\n *\n * @category zone of death\n * @since 2.0.0\n * @deprecated\n */\nexports.semigroupString = {\n concat: function (x, y) { return x + y; }\n};\n/**\n * Use [`SemigroupSum`](./number.ts.html#SemigroupSum) instead.\n *\n * @category zone of death\n * @since 2.0.0\n * @deprecated\n */\nexports.semigroupSum = {\n concat: function (x, y) { return x + y; }\n};\n/**\n * Use [`SemigroupProduct`](./number.ts.html#SemigroupProduct) instead.\n *\n * @category zone of death\n * @since 2.0.0\n * @deprecated\n */\nexports.semigroupProduct = {\n concat: function (x, y) { return x * y; }\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","export function isFunction(value) {\n return typeof value === 'function';\n}\n//# sourceMappingURL=isFunction.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.map = map;\nexports.flap = flap;\nexports.bindTo = bindTo;\nexports.let = let_;\nexports.getFunctorComposition = getFunctorComposition;\nexports.as = as;\nexports.asUnit = asUnit;\n/**\n * A `Functor` is a type constructor which supports a mapping operation `map`.\n *\n * `map` can be used to turn functions `a -> b` into functions `f a -> f b` whose argument and return types use the type\n * constructor `f` to represent some computational context.\n *\n * Instances must satisfy the following laws:\n *\n * 1. Identity: `F.map(fa, a => a) <-> fa`\n * 2. Composition: `F.map(fa, a => bc(ab(a))) <-> F.map(F.map(fa, ab), bc)`\n *\n * @since 2.0.0\n */\nvar function_1 = require(\"./function\");\nfunction map(F, G) {\n return function (f) { return function (fa) { return F.map(fa, function (ga) { return G.map(ga, f); }); }; };\n}\nfunction flap(F) {\n return function (a) { return function (fab) { return F.map(fab, function (f) { return f(a); }); }; };\n}\nfunction bindTo(F) {\n return function (name) { return function (fa) { return F.map(fa, function (a) {\n var _a;\n return (_a = {}, _a[name] = a, _a);\n }); }; };\n}\nfunction let_(F) {\n return function (name, f) { return function (fa) { return F.map(fa, function (a) {\n var _a;\n return Object.assign({}, a, (_a = {}, _a[name] = f(a), _a));\n }); }; };\n}\n/** @deprecated */\nfunction getFunctorComposition(F, G) {\n var _map = map(F, G);\n return {\n map: function (fga, f) { return (0, function_1.pipe)(fga, _map(f)); }\n };\n}\n/** @internal */\nfunction as(F) {\n return function (self, b) { return F.map(self, function () { return b; }); };\n}\n/** @internal */\nfunction asUnit(F) {\n var asM = as(F);\n return function (self) { return asM(self, undefined); };\n}\n","import { operate } from '../util/lift';\nimport { createOperatorSubscriber } from './OperatorSubscriber';\nexport function map(project, thisArg) {\n return operate(function (source, subscriber) {\n var index = 0;\n source.subscribe(createOperatorSubscriber(subscriber, function (value) {\n subscriber.next(project.call(thisArg, value, index++));\n }));\n });\n}\n//# sourceMappingURL=map.js.map","module.exports = __WEBPACK_EXTERNAL_MODULE__18531__;","const 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","import { SyntheticEvent } from 'react';\nimport { FieldErrors, FieldValues } from 'react-hook-form';\n\n// Wrapper to turn useForm handleSubmit function into a response that satisfies typescript\nexport function onFormSubmit(promise: (event: SyntheticEvent) => Promise) {\n return (event: SyntheticEvent): void => {\n if (promise !== undefined && promise !== null) {\n promise(event).catch(() => null);\n }\n };\n}\n\n// handler wrapper\nexport function onHandler(promise: () => Promise) {\n return (): void => {\n if (promise !== undefined && promise !== null) {\n promise().catch(() => null);\n }\n };\n}\n\n// Combine multiple errors into a single string\nexport function errorsToString(errors: FieldErrors): string | null {\n if (Object.keys(errors).length === 0) {\n return null;\n }\n return Object.values(errors)\n .map((e) => e?.message)\n .join(', ');\n}\n","import { __read, __spreadArray } from \"tslib\";\nexport var timeoutProvider = {\n setTimeout: function (handler, timeout) {\n var args = [];\n for (var _i = 2; _i < arguments.length; _i++) {\n args[_i - 2] = arguments[_i];\n }\n var delegate = timeoutProvider.delegate;\n if (delegate === null || delegate === void 0 ? void 0 : delegate.setTimeout) {\n return delegate.setTimeout.apply(delegate, __spreadArray([handler, timeout], __read(args)));\n }\n return setTimeout.apply(void 0, __spreadArray([handler, timeout], __read(args)));\n },\n clearTimeout: function (handle) {\n var delegate = timeoutProvider.delegate;\n return ((delegate === null || delegate === void 0 ? void 0 : delegate.clearTimeout) || clearTimeout)(handle);\n },\n delegate: undefined,\n};\n//# sourceMappingURL=timeoutProvider.js.map","module.exports = __WEBPACK_EXTERNAL_MODULE__20819__;","import { isFunction } from './isFunction';\nexport function hasLift(source) {\n return isFunction(source === null || source === void 0 ? void 0 : source.lift);\n}\nexport function operate(init) {\n return function (source) {\n if (hasLift(source)) {\n return source.lift(function (liftedSource) {\n try {\n return init(liftedSource, this);\n }\n catch (err) {\n this.error(err);\n }\n });\n }\n throw new TypeError('Unable to lift unknown Observable type');\n };\n}\n//# sourceMappingURL=lift.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.ordDate = exports.ordNumber = exports.ordString = exports.ordBoolean = exports.ord = exports.getDualOrd = exports.getTupleOrd = exports.between = exports.clamp = exports.max = exports.min = exports.geq = exports.leq = exports.gt = exports.lt = exports.equals = exports.trivial = exports.Contravariant = exports.getMonoid = exports.getSemigroup = exports.URI = exports.contramap = exports.reverse = exports.tuple = exports.fromCompare = exports.equalsDefault = void 0;\nvar Eq_1 = require(\"./Eq\");\nvar function_1 = require(\"./function\");\n// -------------------------------------------------------------------------------------\n// defaults\n// -------------------------------------------------------------------------------------\n/**\n * @category defaults\n * @since 2.10.0\n */\nvar equalsDefault = function (compare) {\n return function (first, second) {\n return first === second || compare(first, second) === 0;\n };\n};\nexports.equalsDefault = equalsDefault;\n// -------------------------------------------------------------------------------------\n// constructors\n// -------------------------------------------------------------------------------------\n/**\n * @category constructors\n * @since 2.0.0\n */\nvar fromCompare = function (compare) { return ({\n equals: (0, exports.equalsDefault)(compare),\n compare: function (first, second) { return (first === second ? 0 : compare(first, second)); }\n}); };\nexports.fromCompare = fromCompare;\n// -------------------------------------------------------------------------------------\n// combinators\n// -------------------------------------------------------------------------------------\n/**\n * Given a tuple of `Ord`s returns an `Ord` for the tuple.\n *\n * @example\n * import { tuple } from 'fp-ts/Ord'\n * import * as B from 'fp-ts/boolean'\n * import * as S from 'fp-ts/string'\n * import * as N from 'fp-ts/number'\n *\n * const O = tuple(S.Ord, N.Ord, B.Ord)\n * assert.strictEqual(O.compare(['a', 1, true], ['b', 2, true]), -1)\n * assert.strictEqual(O.compare(['a', 1, true], ['a', 2, true]), -1)\n * assert.strictEqual(O.compare(['a', 1, true], ['a', 1, false]), 1)\n *\n * @since 2.10.0\n */\nvar tuple = function () {\n var ords = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n ords[_i] = arguments[_i];\n }\n return (0, exports.fromCompare)(function (first, second) {\n var i = 0;\n for (; i < ords.length - 1; i++) {\n var r = ords[i].compare(first[i], second[i]);\n if (r !== 0) {\n return r;\n }\n }\n return ords[i].compare(first[i], second[i]);\n });\n};\nexports.tuple = tuple;\n/**\n * @since 2.10.0\n */\nvar reverse = function (O) { return (0, exports.fromCompare)(function (first, second) { return O.compare(second, first); }); };\nexports.reverse = reverse;\n/* istanbul ignore next */\nvar contramap_ = function (fa, f) { return (0, function_1.pipe)(fa, (0, exports.contramap)(f)); };\n/**\n * A typical use case for `contramap` would be like, given some `User` type, to construct an `Ord`.\n *\n * We can do so with a function from `User -> X` where `X` is some value that we know how to compare\n * for ordering (meaning we have an `Ord`)\n *\n * For example, given the following `User` type, there are lots of possible choices for `X`,\n * but let's say we want to sort a list of users by `lastName`.\n *\n * If we have a way of comparing `lastName`s for ordering (`ordLastName: Ord`) and we know how to go from `User -> string`,\n * using `contramap` we can do this\n *\n * @example\n * import { pipe } from 'fp-ts/function'\n * import { contramap, Ord } from 'fp-ts/Ord'\n * import * as RA from 'fp-ts/ReadonlyArray'\n * import * as S from 'fp-ts/string'\n *\n * interface User {\n * readonly firstName: string\n * readonly lastName: string\n * }\n *\n * const ordLastName: Ord = S.Ord\n *\n * const ordByLastName: Ord = pipe(\n * ordLastName,\n * contramap((user) => user.lastName)\n * )\n *\n * assert.deepStrictEqual(\n * RA.sort(ordByLastName)([\n * { firstName: 'a', lastName: 'd' },\n * { firstName: 'c', lastName: 'b' }\n * ]),\n * [\n * { firstName: 'c', lastName: 'b' },\n * { firstName: 'a', lastName: 'd' }\n * ]\n * )\n *\n * @since 2.0.0\n */\nvar contramap = function (f) { return function (fa) {\n return (0, exports.fromCompare)(function (first, second) { return fa.compare(f(first), f(second)); });\n}; };\nexports.contramap = contramap;\n/**\n * @category type lambdas\n * @since 2.0.0\n */\nexports.URI = 'Ord';\n/**\n * A typical use case for the `Semigroup` instance of `Ord` is merging two or more orderings.\n *\n * For example the following snippet builds an `Ord` for a type `User` which\n * sorts by `created` date descending, and **then** `lastName`\n *\n * @example\n * import * as D from 'fp-ts/Date'\n * import { pipe } from 'fp-ts/function'\n * import { contramap, getSemigroup, Ord, reverse } from 'fp-ts/Ord'\n * import * as RA from 'fp-ts/ReadonlyArray'\n * import * as S from 'fp-ts/string'\n *\n * interface User {\n * readonly id: string\n * readonly lastName: string\n * readonly created: Date\n * }\n *\n * const ordByLastName: Ord = pipe(\n * S.Ord,\n * contramap((user) => user.lastName)\n * )\n *\n * const ordByCreated: Ord = pipe(\n * D.Ord,\n * contramap((user) => user.created)\n * )\n *\n * const ordUserByCreatedDescThenLastName = getSemigroup().concat(\n * reverse(ordByCreated),\n * ordByLastName\n * )\n *\n * assert.deepStrictEqual(\n * RA.sort(ordUserByCreatedDescThenLastName)([\n * { id: 'c', lastName: 'd', created: new Date(1973, 10, 30) },\n * { id: 'a', lastName: 'b', created: new Date(1973, 10, 30) },\n * { id: 'e', lastName: 'f', created: new Date(1980, 10, 30) }\n * ]),\n * [\n * { id: 'e', lastName: 'f', created: new Date(1980, 10, 30) },\n * { id: 'a', lastName: 'b', created: new Date(1973, 10, 30) },\n * { id: 'c', lastName: 'd', created: new Date(1973, 10, 30) }\n * ]\n * )\n *\n * @category instances\n * @since 2.0.0\n */\nvar getSemigroup = function () { return ({\n concat: function (first, second) {\n return (0, exports.fromCompare)(function (a, b) {\n var ox = first.compare(a, b);\n return ox !== 0 ? ox : second.compare(a, b);\n });\n }\n}); };\nexports.getSemigroup = getSemigroup;\n/**\n * Returns a `Monoid` such that:\n *\n * - its `concat(ord1, ord2)` operation will order first by `ord1`, and then by `ord2`\n * - its `empty` value is an `Ord` that always considers compared elements equal\n *\n * @example\n * import { sort } from 'fp-ts/Array'\n * import { contramap, reverse, getMonoid } from 'fp-ts/Ord'\n * import * as S from 'fp-ts/string'\n * import * as B from 'fp-ts/boolean'\n * import { pipe } from 'fp-ts/function'\n * import { concatAll } from 'fp-ts/Monoid'\n * import * as N from 'fp-ts/number'\n *\n * interface User {\n * readonly id: number\n * readonly name: string\n * readonly age: number\n * readonly rememberMe: boolean\n * }\n *\n * const byName = pipe(\n * S.Ord,\n * contramap((p: User) => p.name)\n * )\n *\n * const byAge = pipe(\n * N.Ord,\n * contramap((p: User) => p.age)\n * )\n *\n * const byRememberMe = pipe(\n * B.Ord,\n * contramap((p: User) => p.rememberMe)\n * )\n *\n * const M = getMonoid()\n *\n * const users: Array = [\n * { id: 1, name: 'Guido', age: 47, rememberMe: false },\n * { id: 2, name: 'Guido', age: 46, rememberMe: true },\n * { id: 3, name: 'Giulio', age: 44, rememberMe: false },\n * { id: 4, name: 'Giulio', age: 44, rememberMe: true }\n * ]\n *\n * // sort by name, then by age, then by `rememberMe`\n * const O1 = concatAll(M)([byName, byAge, byRememberMe])\n * assert.deepStrictEqual(sort(O1)(users), [\n * { id: 3, name: 'Giulio', age: 44, rememberMe: false },\n * { id: 4, name: 'Giulio', age: 44, rememberMe: true },\n * { id: 2, name: 'Guido', age: 46, rememberMe: true },\n * { id: 1, name: 'Guido', age: 47, rememberMe: false }\n * ])\n *\n * // now `rememberMe = true` first, then by name, then by age\n * const O2 = concatAll(M)([reverse(byRememberMe), byName, byAge])\n * assert.deepStrictEqual(sort(O2)(users), [\n * { id: 4, name: 'Giulio', age: 44, rememberMe: true },\n * { id: 2, name: 'Guido', age: 46, rememberMe: true },\n * { id: 3, name: 'Giulio', age: 44, rememberMe: false },\n * { id: 1, name: 'Guido', age: 47, rememberMe: false }\n * ])\n *\n * @category instances\n * @since 2.4.0\n */\nvar getMonoid = function () { return ({\n concat: (0, exports.getSemigroup)().concat,\n empty: (0, exports.fromCompare)(function () { return 0; })\n}); };\nexports.getMonoid = getMonoid;\n/**\n * @category instances\n * @since 2.7.0\n */\nexports.Contravariant = {\n URI: exports.URI,\n contramap: contramap_\n};\n// -------------------------------------------------------------------------------------\n// utils\n// -------------------------------------------------------------------------------------\n/**\n * @since 2.11.0\n */\nexports.trivial = {\n equals: function_1.constTrue,\n compare: /*#__PURE__*/ (0, function_1.constant)(0)\n};\n/**\n * @since 2.11.0\n */\nvar equals = function (O) {\n return function (second) {\n return function (first) {\n return first === second || O.compare(first, second) === 0;\n };\n };\n};\nexports.equals = equals;\n// TODO: curry in v3\n/**\n * Test whether one value is _strictly less than_ another\n *\n * @since 2.0.0\n */\nvar lt = function (O) {\n return function (first, second) {\n return O.compare(first, second) === -1;\n };\n};\nexports.lt = lt;\n// TODO: curry in v3\n/**\n * Test whether one value is _strictly greater than_ another\n *\n * @since 2.0.0\n */\nvar gt = function (O) {\n return function (first, second) {\n return O.compare(first, second) === 1;\n };\n};\nexports.gt = gt;\n// TODO: curry in v3\n/**\n * Test whether one value is _non-strictly less than_ another\n *\n * @since 2.0.0\n */\nvar leq = function (O) {\n return function (first, second) {\n return O.compare(first, second) !== 1;\n };\n};\nexports.leq = leq;\n// TODO: curry in v3\n/**\n * Test whether one value is _non-strictly greater than_ another\n *\n * @since 2.0.0\n */\nvar geq = function (O) {\n return function (first, second) {\n return O.compare(first, second) !== -1;\n };\n};\nexports.geq = geq;\n// TODO: curry in v3\n/**\n * Take the minimum of two values. If they are considered equal, the first argument is chosen\n *\n * @since 2.0.0\n */\nvar min = function (O) {\n return function (first, second) {\n return first === second || O.compare(first, second) < 1 ? first : second;\n };\n};\nexports.min = min;\n// TODO: curry in v3\n/**\n * Take the maximum of two values. If they are considered equal, the first argument is chosen\n *\n * @since 2.0.0\n */\nvar max = function (O) {\n return function (first, second) {\n return first === second || O.compare(first, second) > -1 ? first : second;\n };\n};\nexports.max = max;\n/**\n * Clamp a value between a minimum and a maximum\n *\n * @since 2.0.0\n */\nvar clamp = function (O) {\n var minO = (0, exports.min)(O);\n var maxO = (0, exports.max)(O);\n return function (low, hi) { return function (a) { return maxO(minO(a, hi), low); }; };\n};\nexports.clamp = clamp;\n/**\n * Test whether a value is between a minimum and a maximum (inclusive)\n *\n * @since 2.0.0\n */\nvar between = function (O) {\n var ltO = (0, exports.lt)(O);\n var gtO = (0, exports.gt)(O);\n return function (low, hi) { return function (a) { return ltO(a, low) || gtO(a, hi) ? false : true; }; };\n};\nexports.between = between;\n// -------------------------------------------------------------------------------------\n// deprecated\n// -------------------------------------------------------------------------------------\n/**\n * Use [`tuple`](#tuple) instead.\n *\n * @category zone of death\n * @since 2.0.0\n * @deprecated\n */\nexports.getTupleOrd = exports.tuple;\n/**\n * Use [`reverse`](#reverse) instead.\n *\n * @category zone of death\n * @since 2.0.0\n * @deprecated\n */\nexports.getDualOrd = exports.reverse;\n/**\n * Use [`Contravariant`](#contravariant) instead.\n *\n * @category zone of death\n * @since 2.0.0\n * @deprecated\n */\nexports.ord = exports.Contravariant;\n// default compare for primitive types\nfunction compare(first, second) {\n return first < second ? -1 : first > second ? 1 : 0;\n}\nvar strictOrd = {\n equals: Eq_1.eqStrict.equals,\n compare: compare\n};\n/**\n * Use [`Ord`](./boolean.ts.html#ord) instead.\n *\n * @category zone of death\n * @since 2.0.0\n * @deprecated\n */\nexports.ordBoolean = strictOrd;\n/**\n * Use [`Ord`](./string.ts.html#ord) instead.\n *\n * @category zone of death\n * @since 2.0.0\n * @deprecated\n */\nexports.ordString = strictOrd;\n/**\n * Use [`Ord`](./number.ts.html#ord) instead.\n *\n * @category zone of death\n * @since 2.0.0\n * @deprecated\n */\nexports.ordNumber = strictOrd;\n/**\n * Use [`Ord`](./Date.ts.html#ord) instead.\n *\n * @category zone of death\n * @since 2.0.0\n * @deprecated\n */\nexports.ordDate = (0, function_1.pipe)(exports.ordNumber, \n/*#__PURE__*/\n(0, exports.contramap)(function (date) { return date.valueOf(); }));\n","const debug = require('../internal/debug')\nconst { MAX_LENGTH, MAX_SAFE_INTEGER } = require('../internal/constants')\nconst { safeRe: re, safeSrc: src, t } = require('../internal/re')\n\nconst parseOptions = require('../internal/parse-options')\nconst { compareIdentifiers } = require('../internal/identifiers')\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 return (\n compareIdentifiers(this.major, other.major) ||\n compareIdentifiers(this.minor, other.minor) ||\n compareIdentifiers(this.patch, other.patch)\n )\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 r = new RegExp(`^${this.options.loose ? src[t.PRERELEASELOOSE] : src[t.PRERELEASE]}$`)\n const match = `-${identifier}`.match(r)\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 (compareIdentifiers(this.prerelease[0], identifier) === 0) {\n if (isNaN(this.prerelease[1])) {\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","import * as C from 'consts';\nimport { TimeUnit } from 'types';\n\nexport function timeUnitToSeconds(time: number | string | undefined, unit: TimeUnit): number | undefined {\n const numTime = parseFloat((time ?? '').toString());\n if (isNaN(numTime)) {\n return undefined;\n }\n\n switch (unit) {\n case TimeUnit.Minutes:\n return numTime * C.ONE_MINUTE_IN_SECONDS;\n case TimeUnit.Hours:\n return numTime * C.ONE_HOUR_IN_SECONDS;\n case TimeUnit.Days:\n return numTime * C.ONE_DAY_IN_SECONDS;\n case TimeUnit.Years:\n return numTime * C.ONE_YEAR_IN_SECONDS;\n default:\n throw Error(`Unrecognised TimeUnit: ${unit as string}`);\n }\n}\n\nfunction getTimeUnit(valueInSeconds: number): TimeUnit {\n if (valueInSeconds >= C.ONE_YEAR_IN_SECONDS) {\n return TimeUnit.Years;\n } else if (valueInSeconds >= C.ONE_DAY_IN_SECONDS) {\n return TimeUnit.Days;\n } else if (valueInSeconds >= C.ONE_HOUR_IN_SECONDS) {\n return TimeUnit.Hours;\n } else {\n return TimeUnit.Minutes;\n }\n}\n\nfunction getValueInTimeUnit(valueInSeconds: number, unit: TimeUnit): number {\n switch (unit) {\n case TimeUnit.Minutes:\n return valueInSeconds / C.ONE_MINUTE_IN_SECONDS;\n case TimeUnit.Hours:\n return valueInSeconds / C.ONE_HOUR_IN_SECONDS;\n case TimeUnit.Days:\n return valueInSeconds / C.ONE_DAY_IN_SECONDS;\n case TimeUnit.Years:\n return valueInSeconds / C.ONE_YEAR_IN_SECONDS;\n default:\n throw Error(`Unrecognised TimeUnit: ${unit as string}`);\n }\n}\n\nexport function secondsToTimeUnit(value: number): [number, TimeUnit] {\n const unit = getTimeUnit(value);\n const valueInSeconds = getValueInTimeUnit(value, unit);\n return [valueInSeconds, unit];\n}\n","\"use strict\";\n/**\n * A `Magma` is a pair `(A, concat)` in which `A` is a non-empty set and `concat` is a binary operation on `A`\n *\n * See [Semigroup](https://gcanti.github.io/fp-ts/modules/Semigroup.ts.html) for some instances.\n *\n * @since 2.0.0\n */\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.concatAll = exports.endo = exports.filterSecond = exports.filterFirst = exports.reverse = void 0;\n// -------------------------------------------------------------------------------------\n// combinators\n// -------------------------------------------------------------------------------------\n/**\n * The dual of a `Magma`, obtained by swapping the arguments of `concat`.\n *\n * @example\n * import { reverse, concatAll } from 'fp-ts/Magma'\n * import * as N from 'fp-ts/number'\n *\n * const subAll = concatAll(reverse(N.MagmaSub))(0)\n *\n * assert.deepStrictEqual(subAll([1, 2, 3]), 2)\n *\n * @since 2.11.0\n */\nvar reverse = function (M) { return ({\n concat: function (first, second) { return M.concat(second, first); }\n}); };\nexports.reverse = reverse;\n/**\n * @since 2.11.0\n */\nvar filterFirst = function (predicate) {\n return function (M) { return ({\n concat: function (first, second) { return (predicate(first) ? M.concat(first, second) : second); }\n }); };\n};\nexports.filterFirst = filterFirst;\n/**\n * @since 2.11.0\n */\nvar filterSecond = function (predicate) {\n return function (M) { return ({\n concat: function (first, second) { return (predicate(second) ? M.concat(first, second) : first); }\n }); };\n};\nexports.filterSecond = filterSecond;\n/**\n * @since 2.11.0\n */\nvar endo = function (f) {\n return function (M) { return ({\n concat: function (first, second) { return M.concat(f(first), f(second)); }\n }); };\n};\nexports.endo = endo;\n// -------------------------------------------------------------------------------------\n// utils\n// -------------------------------------------------------------------------------------\n/**\n * Given a sequence of `as`, concat them and return the total.\n *\n * If `as` is empty, return the provided `startWith` value.\n *\n * @example\n * import { concatAll } from 'fp-ts/Magma'\n * import * as N from 'fp-ts/number'\n *\n * const subAll = concatAll(N.MagmaSub)(0)\n *\n * assert.deepStrictEqual(subAll([1, 2, 3]), -6)\n *\n * @since 2.11.0\n */\nvar concatAll = function (M) {\n return function (startWith) {\n return function (as) {\n return as.reduce(function (a, acc) { return M.concat(a, acc); }, startWith);\n };\n };\n};\nexports.concatAll = concatAll;\n","const 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","const SemVer = require('../classes/semver')\nconst major = (a, loose) => new SemVer(a, loose).major\nmodule.exports = major\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","const 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","const compare = require('./compare')\nconst neq = (a, b, loose) => compare(a, b, loose) !== 0\nmodule.exports = neq\n","const parse = require('./parse')\nconst valid = (version, options) => {\n const v = parse(version, options)\n return v ? v.version : null\n}\nmodule.exports = valid\n","const compare = require('./compare')\nconst eq = (a, b, loose) => compare(a, b, loose) === 0\nmodule.exports = eq\n","export var config = {\n onUnhandledError: null,\n onStoppedNotification: null,\n Promise: undefined,\n useDeprecatedSynchronousErrorHandling: false,\n useDeprecatedNextContext: false,\n};\n//# sourceMappingURL=config.js.map","module.exports = __WEBPACK_EXTERNAL_MODULE__31269__;","const SemVer = require('../classes/semver')\nconst minor = (a, loose) => new SemVer(a, loose).minor\nmodule.exports = minor\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.getApplicativeMonoid = getApplicativeMonoid;\nexports.getApplicativeComposition = getApplicativeComposition;\n/**\n * The `Applicative` type class extends the `Apply` type class with a `of` function, which can be used to create values\n * of type `f a` from values of type `a`.\n *\n * Where `Apply` provides the ability to lift functions of two or more arguments to functions whose arguments are\n * wrapped using `f`, and `Functor` provides the ability to lift functions of one argument, `pure` can be seen as the\n * function which lifts functions of _zero_ arguments. That is, `Applicative` functors support a lifting operation for\n * any number of function arguments.\n *\n * Instances must satisfy the following laws in addition to the `Apply` laws:\n *\n * 1. Identity: `A.ap(A.of(a => a), fa) <-> fa`\n * 2. Homomorphism: `A.ap(A.of(ab), A.of(a)) <-> A.of(ab(a))`\n * 3. Interchange: `A.ap(fab, A.of(a)) <-> A.ap(A.of(ab => ab(a)), fab)`\n *\n * Note. `Functor`'s `map` can be derived: `A.map(x, f) = A.ap(A.of(f), x)`\n *\n * @since 2.0.0\n */\nvar Apply_1 = require(\"./Apply\");\nvar function_1 = require(\"./function\");\nvar Functor_1 = require(\"./Functor\");\nfunction getApplicativeMonoid(F) {\n var f = (0, Apply_1.getApplySemigroup)(F);\n return function (M) { return ({\n concat: f(M).concat,\n empty: F.of(M.empty)\n }); };\n}\n/** @deprecated */\nfunction getApplicativeComposition(F, G) {\n var map = (0, Functor_1.getFunctorComposition)(F, G).map;\n var _ap = (0, Apply_1.ap)(F, G);\n return {\n map: map,\n of: function (a) { return F.of(G.of(a)); },\n ap: function (fgab, fga) { return (0, function_1.pipe)(fgab, _ap(fga)); }\n };\n}\n","const compareBuild = require('./compare-build')\nconst sort = (list, loose) => list.sort((a, b) => compareBuild(a, b, loose))\nmodule.exports = sort\n","const 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","const 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","const 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 // 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 t,\n comparatorTrimReplace,\n tildeTrimReplace,\n caretTrimReplace,\n} = require('../internal/re')\nconst { FLAG_INCLUDE_PRERELEASE, FLAG_LOOSE } = require('../internal/constants')\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 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\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 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 <${+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 <${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 }${z} <${M}.${m}.${+p + 1}-0`\n } else {\n ret = `>=${M}.${m}.${p\n }${z} <${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 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","const 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","import {\n IconName,\n PanelData,\n PluginExtensionComponentConfig,\n PluginExtensionLinkConfig,\n PluginExtensionPanelContext,\n RawTimeRange,\n TimeRange,\n} from '@grafana/data';\nimport { DataQuery, TimeZone } from '@grafana/schema';\n\nimport { AlertInstance, Label, OnCallAlertGroup } from 'types';\n\nexport type ExtensionComponentConfig = {\n targets: string | string[];\n} & Omit;\nexport type ExtensionLinkConfig = {\n targets: string | string[];\n} & Omit, 'type' | 'extensionPointId'>;\nexport type ExtensionLinkParams = Omit & {\n title?: string;\n description?: string;\n icon?: IconName;\n category?: string;\n};\n\nexport enum ExtensionPointIds {\n DashboardPanelMenu = 'grafana/dashboard/panel/menu',\n ExploreToolbarAction = 'grafana/explore/toolbar/action',\n}\n\n// NOTE: this is an unfortunate workaround to enable our plugin to be backward-compatible\n// with versions of Grafana < 9.5.0. Once we drop support for older versions, we can\n// remove this and import it directly from @grafana/data.\nexport enum PluginExtensionPoints {\n DashboardPanelMenu = 'grafana/dashboard/panel/menu',\n ExploreToolbarAction = 'grafana/explore/toolbar/action',\n}\n// These extension points are in Grafana but not in a released\n// version of @grafana/data, so we define them here for now.\nexport enum NewPluginExtensionPoints {\n AlertInstanceAction = 'grafana/alerting/instance/action',\n CommandPalette = 'grafana/commandpalette/action',\n OnCallAlertGroupAction = 'plugins/grafana-oncall-app/alert-group/action',\n IncidentRunSiftModal = 'plugins/grafana-incident-app/run-sift-modal',\n IncidentAnalysisModal = 'plugins/grafana-incident-app/sift-analysis-modal',\n IRMOnCallAlertGroupAction = 'plugins/grafana-irm-app/alert-group/action',\n IRMIncidentRunSiftModal = 'plugins/grafana-irm-app/run-sift-modal',\n IRMIncidentAnalysisModal = 'plugins/grafana-irm-app/sift-analysis-modal',\n AssertsAnalysisModal = 'plugins/grafana-asserts-app/sift-analysis-modal',\n K8sClusterAction = 'plugins/grafana-k8s-app/cluster/action',\n K8sNamespaceAction = 'plugins/grafana-k8s-app/namespace/action',\n K8sWorkloadAction = 'plugins/grafana-k8s-app/workload/action',\n K8sPodAction = 'plugins/grafana-k8s-app/pod/action',\n SiftPanelRunInvestigation = 'plugins/grafana-sift-panel/run-investigation',\n AppO11yServiceAction = 'plugins/grafana-app-observability-app/service/action',\n AppO11yOperationAction = 'plugins/grafana-app-observability-app/operation/action',\n}\n\nexport type AnyExtensionPoint = NewPluginExtensionPoints | PluginExtensionPoints;\n\nexport interface ExtensionParams {\n title: string;\n description: string;\n category?: string;\n icon?: IconName;\n}\n\nexport interface PluginExtensionPanelContextWrapper {\n context?: PluginExtensionPanelContext;\n type: PluginExtensionPoints.DashboardPanelMenu;\n}\n\n// The type of the context passed to a plugin extension from the Explore page.\n// This type is not yet available in @grafana/data, so we define it here.\nexport type PluginExtensionExploreContext = {\n exploreId: string;\n targets: DataQuery[];\n data: PanelData;\n timeRange: RawTimeRange;\n timeZone: TimeZone;\n};\nexport interface PluginExtensionExploreContextWrapper {\n context?: PluginExtensionExploreContext;\n type: PluginExtensionPoints.ExploreToolbarAction;\n}\n\n// The type of the context passed to a plugin extension from an alert instance.\n// This type is not yet available in @grafana/data, so we define it here.\nexport type PluginExtensionAlertInstanceContext = {\n instance: AlertInstance;\n};\nexport interface PluginExtensionAlertInstanceContextWrapper {\n context?: PluginExtensionAlertInstanceContext;\n type: NewPluginExtensionPoints.AlertInstanceAction;\n}\n\n// The type of context passed to a plugin extension from the command palette.\n// This is effectively empty since there's no context to pass.\nexport type PluginExtensionCommandPaletteContext = {};\nexport interface PluginExtensionCommandPaletteContextWrapper {\n context?: PluginExtensionCommandPaletteContext;\n type: NewPluginExtensionPoints.CommandPalette;\n}\n\n// The type of the context passed to a plugin extension from an alert instance.\n// This type is defined in the OnCall plugin so we'll need to copy it here since\n// we can't import it.\nexport type PluginExtensionOnCallAlertGroupContext = {\n alertGroup: OnCallAlertGroup;\n};\nexport interface PluginExtensionOnCallAlertGroupContextWrapper {\n context?: PluginExtensionOnCallAlertGroupContext;\n type: NewPluginExtensionPoints.OnCallAlertGroupAction | NewPluginExtensionPoints.IRMOnCallAlertGroupAction;\n}\n\nexport interface PluginExtensionIncidentRunSiftContextWrapper {\n type: NewPluginExtensionPoints.IncidentRunSiftModal | NewPluginExtensionPoints.IRMIncidentRunSiftModal;\n}\n\n// Types for the K8s plugin extensions.\ninterface K8sDatasource {\n name: string;\n uid: string;\n}\ninterface K8sDatasources {\n prometheus: K8sDatasource;\n loki: K8sDatasource;\n}\nexport interface PluginExtensionK8sClusterContext {\n timeRange: RawTimeRange;\n cluster: string;\n datasources?: K8sDatasources;\n}\nexport interface PluginExtensionK8sClusterContextWrapper {\n type: NewPluginExtensionPoints.K8sClusterAction;\n context?: PluginExtensionK8sClusterContext;\n}\nexport interface PluginExtensionK8sNamespaceContext {\n timeRange: RawTimeRange;\n cluster: string;\n namespace: string;\n datasources?: K8sDatasources;\n}\nexport interface PluginExtensionK8sNamespaceContextWrapper {\n type: NewPluginExtensionPoints.K8sNamespaceAction;\n context?: PluginExtensionK8sNamespaceContext;\n}\nexport type WorkloadTypes = '' | 'replicaset' | 'deployment' | 'daemonset' | 'statefulset' | 'job';\nexport interface PluginExtensionK8sWorkloadContext {\n timeRange: RawTimeRange;\n cluster: string;\n namespace: string;\n workload: string;\n workloadType: WorkloadTypes;\n datasources?: K8sDatasources;\n}\nexport interface PluginExtensionK8sWorkloadContextWrapper {\n type: NewPluginExtensionPoints.K8sWorkloadAction;\n context?: PluginExtensionK8sWorkloadContext;\n}\nexport interface PluginExtensionK8sPodContext {\n timeRange: RawTimeRange;\n cluster: string;\n namespace: string;\n workload: string;\n workloadType?: string;\n pod: string;\n datasources?: K8sDatasources;\n}\nexport interface PluginExtensionK8sPodContextWrapper {\n type: NewPluginExtensionPoints.K8sPodAction;\n context?: PluginExtensionK8sPodContext;\n}\n\n// Types for the Sift panel.\nexport interface PluginExtensionSiftPanelContext {\n timeRange: TimeRange;\n labels: Label[];\n}\nexport interface PluginExtensionSiftPanelContextWrapper {\n type: NewPluginExtensionPoints.SiftPanelRunInvestigation;\n context?: PluginExtensionSiftPanelContext;\n}\n\nexport interface PluginExtensionAppO11yServiceContext {\n timeRange: RawTimeRange;\n datasources: {\n prometheus?: { name: string };\n loki?: { name: string };\n tempo?: { name: string };\n };\n service: {\n // The service name.\n name: string;\n // The service namespace.\n namespace: string;\n // The job, i.e. the combination of service namespace and name.\n job: string;\n };\n k8s?: Array>;\n cloud?: Array>;\n}\nexport interface PluginExtensionAppO11yServiceContextWrapper {\n type: NewPluginExtensionPoints.AppO11yServiceAction;\n context?: PluginExtensionAppO11yServiceContext;\n}\nexport type PluginExtensionAppO11yOperationContext = PluginExtensionAppO11yServiceContext & {\n operation: string;\n};\nexport interface PluginExtensionAppO11yOperationContextWrapper {\n type: NewPluginExtensionPoints.AppO11yOperationAction;\n context?: PluginExtensionAppO11yOperationContext;\n}\n\nexport type PluginExtensionContextWrapper =\n | PluginExtensionPanelContextWrapper\n | PluginExtensionAlertInstanceContextWrapper\n | PluginExtensionCommandPaletteContextWrapper\n | PluginExtensionExploreContextWrapper\n | PluginExtensionOnCallAlertGroupContextWrapper\n | PluginExtensionIncidentRunSiftContextWrapper\n | PluginExtensionK8sClusterContextWrapper\n | PluginExtensionK8sNamespaceContextWrapper\n | PluginExtensionK8sWorkloadContextWrapper\n | PluginExtensionK8sPodContextWrapper\n | PluginExtensionSiftPanelContextWrapper\n | PluginExtensionAppO11yServiceContextWrapper\n | PluginExtensionAppO11yOperationContextWrapper;\n\n// Convenience type for plugin link config with some kind of context.\nexport type PluginLinkConfig = Omit, 'type'>;\n// Type for plugin link config with Panel context. Associates the correct extensionPointId for type safety.\nexport interface AlertInstancePluginLinkConfig\n extends Omit, 'extensionPointId'> {\n targets: [NewPluginExtensionPoints.AlertInstanceAction];\n}\n// Type for plugin link config with CommandPalette context. Associates the correct extensionPointId for type safety.\nexport interface CommandPalettePluginLinkConfig\n extends Omit, 'extensionPointId'> {\n targets: [NewPluginExtensionPoints.CommandPalette];\n}\n// Type for plugin link config with Explore context. Associates the correct extensionPointId for type safety.\nexport interface ExplorePluginLinkConfig\n extends Omit, 'extensionPointId'> {\n targets: [PluginExtensionPoints.ExploreToolbarAction];\n}\n// Type for plugin link config with OnCall context. Associates the correct extensionPointId for type safety.\nexport interface OnCallPluginLinkConfig\n extends Omit, 'extensionPointId'> {\n targets: [NewPluginExtensionPoints.OnCallAlertGroupAction | NewPluginExtensionPoints.IRMOnCallAlertGroupAction];\n}\n// Type for plugin link config with Panel context. Associates the correct extensionPointId for type safety.\nexport interface PanelPluginLinkConfig extends Omit, 'extensionPointId'> {\n targets: [PluginExtensionPoints.DashboardPanelMenu];\n}\nexport interface K8sClusterPluginLinkConfig\n extends Omit, 'extensionPointId'> {\n targets: [NewPluginExtensionPoints.K8sClusterAction];\n}\nexport interface K8sNamespacePluginLinkConfig\n extends Omit, 'extensionPointId'> {\n targets: [NewPluginExtensionPoints.K8sNamespaceAction];\n}\nexport interface K8sWorkloadPluginLinkConfig\n extends Omit, 'extensionPointId'> {\n targets: [NewPluginExtensionPoints.K8sWorkloadAction];\n}\nexport interface K8sPodPluginLinkConfig\n extends Omit, 'extensionPointId'> {\n targets: [NewPluginExtensionPoints.K8sPodAction];\n}\nexport interface SiftPanelPluginLinkConfig\n extends Omit, 'extensionPointId'> {\n targets: [NewPluginExtensionPoints.SiftPanelRunInvestigation];\n}\nexport interface AppO11yServicePluginLinkConfig\n extends Omit, 'extensionPointId'> {\n targets: [NewPluginExtensionPoints.AppO11yServiceAction];\n}\nexport interface AppO11yOperationPluginLinkConfig\n extends Omit, 'extensionPointId'> {\n targets: [NewPluginExtensionPoints.AppO11yOperationAction];\n}\n","const 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 GT.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 === '>=' && !satisfies(gt.semver, String(c), options)) {\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 === '<=' && !satisfies(lt.semver, String(c), options)) {\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","module.exports = __WEBPACK_EXTERNAL_MODULE__41308__;","const 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\";\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};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.dual = exports.getEndomorphismMonoid = exports.SK = exports.hole = exports.constVoid = exports.constUndefined = exports.constNull = exports.constFalse = exports.constTrue = exports.unsafeCoerce = exports.apply = exports.getRing = exports.getSemiring = exports.getMonoid = exports.getSemigroup = exports.getBooleanAlgebra = void 0;\nexports.identity = identity;\nexports.constant = constant;\nexports.flip = flip;\nexports.flow = flow;\nexports.tuple = tuple;\nexports.increment = increment;\nexports.decrement = decrement;\nexports.absurd = absurd;\nexports.tupled = tupled;\nexports.untupled = untupled;\nexports.pipe = pipe;\nexports.not = not;\n// -------------------------------------------------------------------------------------\n// instances\n// -------------------------------------------------------------------------------------\n/**\n * @category instances\n * @since 2.10.0\n */\nvar getBooleanAlgebra = function (B) {\n return function () { return ({\n meet: function (x, y) { return function (a) { return B.meet(x(a), y(a)); }; },\n join: function (x, y) { return function (a) { return B.join(x(a), y(a)); }; },\n zero: function () { return B.zero; },\n one: function () { return B.one; },\n implies: function (x, y) { return function (a) { return B.implies(x(a), y(a)); }; },\n not: function (x) { return function (a) { return B.not(x(a)); }; }\n }); };\n};\nexports.getBooleanAlgebra = getBooleanAlgebra;\n/**\n * Unary functions form a semigroup as long as you can provide a semigroup for the codomain.\n *\n * @example\n * import { Predicate, getSemigroup } from 'fp-ts/function'\n * import * as B from 'fp-ts/boolean'\n *\n * const f: Predicate = (n) => n <= 2\n * const g: Predicate = (n) => n >= 0\n *\n * const S1 = getSemigroup(B.SemigroupAll)()\n *\n * assert.deepStrictEqual(S1.concat(f, g)(1), true)\n * assert.deepStrictEqual(S1.concat(f, g)(3), false)\n *\n * const S2 = getSemigroup(B.SemigroupAny)()\n *\n * assert.deepStrictEqual(S2.concat(f, g)(1), true)\n * assert.deepStrictEqual(S2.concat(f, g)(3), true)\n *\n * @category instances\n * @since 2.10.0\n */\nvar getSemigroup = function (S) {\n return function () { return ({\n concat: function (f, g) { return function (a) { return S.concat(f(a), g(a)); }; }\n }); };\n};\nexports.getSemigroup = getSemigroup;\n/**\n * Unary functions form a monoid as long as you can provide a monoid for the codomain.\n *\n * @example\n * import { Predicate } from 'fp-ts/Predicate'\n * import { getMonoid } from 'fp-ts/function'\n * import * as B from 'fp-ts/boolean'\n *\n * const f: Predicate = (n) => n <= 2\n * const g: Predicate = (n) => n >= 0\n *\n * const M1 = getMonoid(B.MonoidAll)()\n *\n * assert.deepStrictEqual(M1.concat(f, g)(1), true)\n * assert.deepStrictEqual(M1.concat(f, g)(3), false)\n *\n * const M2 = getMonoid(B.MonoidAny)()\n *\n * assert.deepStrictEqual(M2.concat(f, g)(1), true)\n * assert.deepStrictEqual(M2.concat(f, g)(3), true)\n *\n * @category instances\n * @since 2.10.0\n */\nvar getMonoid = function (M) {\n var getSemigroupM = (0, exports.getSemigroup)(M);\n return function () { return ({\n concat: getSemigroupM().concat,\n empty: function () { return M.empty; }\n }); };\n};\nexports.getMonoid = getMonoid;\n/**\n * @category instances\n * @since 2.10.0\n */\nvar getSemiring = function (S) { return ({\n add: function (f, g) { return function (x) { return S.add(f(x), g(x)); }; },\n zero: function () { return S.zero; },\n mul: function (f, g) { return function (x) { return S.mul(f(x), g(x)); }; },\n one: function () { return S.one; }\n}); };\nexports.getSemiring = getSemiring;\n/**\n * @category instances\n * @since 2.10.0\n */\nvar getRing = function (R) {\n var S = (0, exports.getSemiring)(R);\n return {\n add: S.add,\n mul: S.mul,\n one: S.one,\n zero: S.zero,\n sub: function (f, g) { return function (x) { return R.sub(f(x), g(x)); }; }\n };\n};\nexports.getRing = getRing;\n// -------------------------------------------------------------------------------------\n// utils\n// -------------------------------------------------------------------------------------\n/**\n * @since 2.11.0\n */\nvar apply = function (a) {\n return function (f) {\n return f(a);\n };\n};\nexports.apply = apply;\n/**\n * @since 2.0.0\n */\nfunction identity(a) {\n return a;\n}\n/**\n * @since 2.0.0\n */\nexports.unsafeCoerce = identity;\n/**\n * @since 2.0.0\n */\nfunction constant(a) {\n return function () { return a; };\n}\n/**\n * A thunk that returns always `true`.\n *\n * @since 2.0.0\n */\nexports.constTrue = constant(true);\n/**\n * A thunk that returns always `false`.\n *\n * @since 2.0.0\n */\nexports.constFalse = constant(false);\n/**\n * A thunk that returns always `null`.\n *\n * @since 2.0.0\n */\nexports.constNull = constant(null);\n/**\n * A thunk that returns always `undefined`.\n *\n * @since 2.0.0\n */\nexports.constUndefined = constant(undefined);\n/**\n * A thunk that returns always `void`.\n *\n * @since 2.0.0\n */\nexports.constVoid = exports.constUndefined;\nfunction flip(f) {\n return function () {\n var args = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n args[_i] = arguments[_i];\n }\n if (args.length > 1) {\n return f(args[1], args[0]);\n }\n return function (a) { return f(a)(args[0]); };\n };\n}\nfunction flow(ab, bc, cd, de, ef, fg, gh, hi, ij) {\n switch (arguments.length) {\n case 1:\n return ab;\n case 2:\n return function () {\n return bc(ab.apply(this, arguments));\n };\n case 3:\n return function () {\n return cd(bc(ab.apply(this, arguments)));\n };\n case 4:\n return function () {\n return de(cd(bc(ab.apply(this, arguments))));\n };\n case 5:\n return function () {\n return ef(de(cd(bc(ab.apply(this, arguments)))));\n };\n case 6:\n return function () {\n return fg(ef(de(cd(bc(ab.apply(this, arguments))))));\n };\n case 7:\n return function () {\n return gh(fg(ef(de(cd(bc(ab.apply(this, arguments)))))));\n };\n case 8:\n return function () {\n return hi(gh(fg(ef(de(cd(bc(ab.apply(this, arguments))))))));\n };\n case 9:\n return function () {\n return ij(hi(gh(fg(ef(de(cd(bc(ab.apply(this, arguments)))))))));\n };\n }\n return;\n}\n/**\n * @since 2.0.0\n */\nfunction tuple() {\n var t = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n t[_i] = arguments[_i];\n }\n return t;\n}\n/**\n * @since 2.0.0\n */\nfunction increment(n) {\n return n + 1;\n}\n/**\n * @since 2.0.0\n */\nfunction decrement(n) {\n return n - 1;\n}\n/**\n * @since 2.0.0\n */\nfunction absurd(_) {\n throw new Error('Called `absurd` function which should be uncallable');\n}\n/**\n * Creates a tupled version of this function: instead of `n` arguments, it accepts a single tuple argument.\n *\n * @example\n * import { tupled } from 'fp-ts/function'\n *\n * const add = tupled((x: number, y: number): number => x + y)\n *\n * assert.strictEqual(add([1, 2]), 3)\n *\n * @since 2.4.0\n */\nfunction tupled(f) {\n return function (a) { return f.apply(void 0, a); };\n}\n/**\n * Inverse function of `tupled`\n *\n * @since 2.4.0\n */\nfunction untupled(f) {\n return function () {\n var a = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n a[_i] = arguments[_i];\n }\n return f(a);\n };\n}\nfunction pipe(a, ab, bc, cd, de, ef, fg, gh, hi) {\n switch (arguments.length) {\n case 1:\n return a;\n case 2:\n return ab(a);\n case 3:\n return bc(ab(a));\n case 4:\n return cd(bc(ab(a)));\n case 5:\n return de(cd(bc(ab(a))));\n case 6:\n return ef(de(cd(bc(ab(a)))));\n case 7:\n return fg(ef(de(cd(bc(ab(a))))));\n case 8:\n return gh(fg(ef(de(cd(bc(ab(a)))))));\n case 9:\n return hi(gh(fg(ef(de(cd(bc(ab(a))))))));\n default: {\n var ret = arguments[0];\n for (var i = 1; i < arguments.length; i++) {\n ret = arguments[i](ret);\n }\n return ret;\n }\n }\n}\n/**\n * Type hole simulation\n *\n * @since 2.7.0\n */\nexports.hole = absurd;\n/**\n * @since 2.11.0\n */\nvar SK = function (_, b) { return b; };\nexports.SK = SK;\n/**\n * Use `Predicate` module instead.\n *\n * @category zone of death\n * @since 2.0.0\n * @deprecated\n */\nfunction not(predicate) {\n return function (a) { return !predicate(a); };\n}\n/**\n * Use `Endomorphism` module instead.\n *\n * @category zone of death\n * @since 2.10.0\n * @deprecated\n */\nvar getEndomorphismMonoid = function () { return ({\n concat: function (first, second) { return flow(first, second); },\n empty: identity\n}); };\nexports.getEndomorphismMonoid = getEndomorphismMonoid;\n/** @internal */\nvar dual = function (arity, body) {\n var isDataFirst = typeof arity === 'number' ? function (args) { return args.length >= arity; } : arity;\n return function () {\n var args = Array.from(arguments);\n if (isDataFirst(arguments)) {\n return body.apply(this, args);\n }\n return function (self) { return body.apply(void 0, __spreadArray([self], args, false)); };\n };\n};\nexports.dual = dual;\n","import { config } from '../config';\nimport { timeoutProvider } from '../scheduler/timeoutProvider';\nexport function reportUnhandledError(err) {\n timeoutProvider.setTimeout(function () {\n var onUnhandledError = config.onUnhandledError;\n if (onUnhandledError) {\n onUnhandledError(err);\n }\n else {\n throw err;\n }\n });\n}\n//# sourceMappingURL=reportUnhandledError.js.map","import { createErrorClass } from './createErrorClass';\nexport var UnsubscriptionError = createErrorClass(function (_super) {\n return function UnsubscriptionErrorImpl(errors) {\n _super(this);\n this.message = errors\n ? errors.length + \" errors occurred during unsubscription:\\n\" + errors.map(function (err, i) { return i + 1 + \") \" + err.toString(); }).join('\\n ')\n : '';\n this.name = 'UnsubscriptionError';\n this.errors = errors;\n };\n});\n//# sourceMappingURL=UnsubscriptionError.js.map","export function createErrorClass(createImpl) {\n var _super = function (instance) {\n Error.call(instance);\n instance.stack = new Error().stack;\n };\n var ctorFunc = createImpl(_super);\n ctorFunc.prototype = Object.create(Error.prototype);\n ctorFunc.prototype.constructor = ctorFunc;\n return ctorFunc;\n}\n//# sourceMappingURL=createErrorClass.js.map","export function arrRemove(arr, item) {\n if (arr) {\n var index = arr.indexOf(item);\n 0 <= index && arr.splice(index, 1);\n }\n}\n//# sourceMappingURL=arrRemove.js.map","import { __read, __spreadArray, __values } from \"tslib\";\nimport { isFunction } from './util/isFunction';\nimport { UnsubscriptionError } from './util/UnsubscriptionError';\nimport { arrRemove } from './util/arrRemove';\nvar Subscription = (function () {\n function Subscription(initialTeardown) {\n this.initialTeardown = initialTeardown;\n this.closed = false;\n this._parentage = null;\n this._finalizers = null;\n }\n Subscription.prototype.unsubscribe = function () {\n var e_1, _a, e_2, _b;\n var errors;\n if (!this.closed) {\n this.closed = true;\n var _parentage = this._parentage;\n if (_parentage) {\n this._parentage = null;\n if (Array.isArray(_parentage)) {\n try {\n for (var _parentage_1 = __values(_parentage), _parentage_1_1 = _parentage_1.next(); !_parentage_1_1.done; _parentage_1_1 = _parentage_1.next()) {\n var parent_1 = _parentage_1_1.value;\n parent_1.remove(this);\n }\n }\n catch (e_1_1) { e_1 = { error: e_1_1 }; }\n finally {\n try {\n if (_parentage_1_1 && !_parentage_1_1.done && (_a = _parentage_1.return)) _a.call(_parentage_1);\n }\n finally { if (e_1) throw e_1.error; }\n }\n }\n else {\n _parentage.remove(this);\n }\n }\n var initialFinalizer = this.initialTeardown;\n if (isFunction(initialFinalizer)) {\n try {\n initialFinalizer();\n }\n catch (e) {\n errors = e instanceof UnsubscriptionError ? e.errors : [e];\n }\n }\n var _finalizers = this._finalizers;\n if (_finalizers) {\n this._finalizers = null;\n try {\n for (var _finalizers_1 = __values(_finalizers), _finalizers_1_1 = _finalizers_1.next(); !_finalizers_1_1.done; _finalizers_1_1 = _finalizers_1.next()) {\n var finalizer = _finalizers_1_1.value;\n try {\n execFinalizer(finalizer);\n }\n catch (err) {\n errors = errors !== null && errors !== void 0 ? errors : [];\n if (err instanceof UnsubscriptionError) {\n errors = __spreadArray(__spreadArray([], __read(errors)), __read(err.errors));\n }\n else {\n errors.push(err);\n }\n }\n }\n }\n catch (e_2_1) { e_2 = { error: e_2_1 }; }\n finally {\n try {\n if (_finalizers_1_1 && !_finalizers_1_1.done && (_b = _finalizers_1.return)) _b.call(_finalizers_1);\n }\n finally { if (e_2) throw e_2.error; }\n }\n }\n if (errors) {\n throw new UnsubscriptionError(errors);\n }\n }\n };\n Subscription.prototype.add = function (teardown) {\n var _a;\n if (teardown && teardown !== this) {\n if (this.closed) {\n execFinalizer(teardown);\n }\n else {\n if (teardown instanceof Subscription) {\n if (teardown.closed || teardown._hasParent(this)) {\n return;\n }\n teardown._addParent(this);\n }\n (this._finalizers = (_a = this._finalizers) !== null && _a !== void 0 ? _a : []).push(teardown);\n }\n }\n };\n Subscription.prototype._hasParent = function (parent) {\n var _parentage = this._parentage;\n return _parentage === parent || (Array.isArray(_parentage) && _parentage.includes(parent));\n };\n Subscription.prototype._addParent = function (parent) {\n var _parentage = this._parentage;\n this._parentage = Array.isArray(_parentage) ? (_parentage.push(parent), _parentage) : _parentage ? [_parentage, parent] : parent;\n };\n Subscription.prototype._removeParent = function (parent) {\n var _parentage = this._parentage;\n if (_parentage === parent) {\n this._parentage = null;\n }\n else if (Array.isArray(_parentage)) {\n arrRemove(_parentage, parent);\n }\n };\n Subscription.prototype.remove = function (teardown) {\n var _finalizers = this._finalizers;\n _finalizers && arrRemove(_finalizers, teardown);\n if (teardown instanceof Subscription) {\n teardown._removeParent(this);\n }\n };\n Subscription.EMPTY = (function () {\n var empty = new Subscription();\n empty.closed = true;\n return empty;\n })();\n return Subscription;\n}());\nexport { Subscription };\nexport var EMPTY_SUBSCRIPTION = Subscription.EMPTY;\nexport function isSubscription(value) {\n return (value instanceof Subscription ||\n (value && 'closed' in value && isFunction(value.remove) && isFunction(value.add) && isFunction(value.unsubscribe)));\n}\nfunction execFinalizer(finalizer) {\n if (isFunction(finalizer)) {\n finalizer();\n }\n else {\n finalizer.unsubscribe();\n }\n}\n//# sourceMappingURL=Subscription.js.map","module.exports = __WEBPACK_EXTERNAL_MODULE__46089__;","module.exports = __WEBPACK_EXTERNAL_MODULE__48398__;","import { dateTimeFormat, DateTimeInput, getTimeZone } from '@grafana/data';\nimport { TimeZone } from '@grafana/schema';\n\nimport { isEmpty } from 'lodash';\n\nexport function getTimeZoneWithDefault(timeZone?: TimeZone): TimeZone {\n if (!timeZone || isEmpty(timeZone)) {\n return getTimeZone();\n }\n return timeZone;\n}\n\nexport function formatDateTime(input: DateTimeInput): string {\n return dateTimeFormat(input, { timeZone: getTimeZone() });\n}\n","const compare = require('./compare')\nconst lt = (a, b, loose) => compare(a, b, loose) < 0\nmodule.exports = lt\n","const 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","const compare = require('./compare')\nconst compareLoose = (a, b) => compare(a, b, true)\nmodule.exports = compareLoose\n","var util;\n(function (util) {\n util.assertEqual = (val) => val;\n function assertIs(_arg) { }\n util.assertIs = assertIs;\n function assertNever(_x) {\n throw new Error();\n }\n util.assertNever = assertNever;\n util.arrayToEnum = (items) => {\n const obj = {};\n for (const item of items) {\n obj[item] = item;\n }\n return obj;\n };\n util.getValidEnumValues = (obj) => {\n const validKeys = util.objectKeys(obj).filter((k) => typeof obj[obj[k]] !== \"number\");\n const filtered = {};\n for (const k of validKeys) {\n filtered[k] = obj[k];\n }\n return util.objectValues(filtered);\n };\n util.objectValues = (obj) => {\n return util.objectKeys(obj).map(function (e) {\n return obj[e];\n });\n };\n util.objectKeys = typeof Object.keys === \"function\" // eslint-disable-line ban/ban\n ? (obj) => Object.keys(obj) // eslint-disable-line ban/ban\n : (object) => {\n const keys = [];\n for (const key in object) {\n if (Object.prototype.hasOwnProperty.call(object, key)) {\n keys.push(key);\n }\n }\n return keys;\n };\n util.find = (arr, checker) => {\n for (const item of arr) {\n if (checker(item))\n return item;\n }\n return undefined;\n };\n util.isInteger = typeof Number.isInteger === \"function\"\n ? (val) => Number.isInteger(val) // eslint-disable-line ban/ban\n : (val) => typeof val === \"number\" && isFinite(val) && Math.floor(val) === val;\n function joinValues(array, separator = \" | \") {\n return array\n .map((val) => (typeof val === \"string\" ? `'${val}'` : val))\n .join(separator);\n }\n util.joinValues = joinValues;\n util.jsonStringifyReplacer = (_, value) => {\n if (typeof value === \"bigint\") {\n return value.toString();\n }\n return value;\n };\n})(util || (util = {}));\nvar objectUtil;\n(function (objectUtil) {\n objectUtil.mergeShapes = (first, second) => {\n return {\n ...first,\n ...second, // second overwrites first\n };\n };\n})(objectUtil || (objectUtil = {}));\nconst ZodParsedType = util.arrayToEnum([\n \"string\",\n \"nan\",\n \"number\",\n \"integer\",\n \"float\",\n \"boolean\",\n \"date\",\n \"bigint\",\n \"symbol\",\n \"function\",\n \"undefined\",\n \"null\",\n \"array\",\n \"object\",\n \"unknown\",\n \"promise\",\n \"void\",\n \"never\",\n \"map\",\n \"set\",\n]);\nconst getParsedType = (data) => {\n const t = typeof data;\n switch (t) {\n case \"undefined\":\n return ZodParsedType.undefined;\n case \"string\":\n return ZodParsedType.string;\n case \"number\":\n return isNaN(data) ? ZodParsedType.nan : ZodParsedType.number;\n case \"boolean\":\n return ZodParsedType.boolean;\n case \"function\":\n return ZodParsedType.function;\n case \"bigint\":\n return ZodParsedType.bigint;\n case \"symbol\":\n return ZodParsedType.symbol;\n case \"object\":\n if (Array.isArray(data)) {\n return ZodParsedType.array;\n }\n if (data === null) {\n return ZodParsedType.null;\n }\n if (data.then &&\n typeof data.then === \"function\" &&\n data.catch &&\n typeof data.catch === \"function\") {\n return ZodParsedType.promise;\n }\n if (typeof Map !== \"undefined\" && data instanceof Map) {\n return ZodParsedType.map;\n }\n if (typeof Set !== \"undefined\" && data instanceof Set) {\n return ZodParsedType.set;\n }\n if (typeof Date !== \"undefined\" && data instanceof Date) {\n return ZodParsedType.date;\n }\n return ZodParsedType.object;\n default:\n return ZodParsedType.unknown;\n }\n};\n\nconst ZodIssueCode = util.arrayToEnum([\n \"invalid_type\",\n \"invalid_literal\",\n \"custom\",\n \"invalid_union\",\n \"invalid_union_discriminator\",\n \"invalid_enum_value\",\n \"unrecognized_keys\",\n \"invalid_arguments\",\n \"invalid_return_type\",\n \"invalid_date\",\n \"invalid_string\",\n \"too_small\",\n \"too_big\",\n \"invalid_intersection_types\",\n \"not_multiple_of\",\n \"not_finite\",\n]);\nconst quotelessJson = (obj) => {\n const json = JSON.stringify(obj, null, 2);\n return json.replace(/\"([^\"]+)\":/g, \"$1:\");\n};\nclass ZodError extends Error {\n get errors() {\n return this.issues;\n }\n constructor(issues) {\n super();\n this.issues = [];\n this.addIssue = (sub) => {\n this.issues = [...this.issues, sub];\n };\n this.addIssues = (subs = []) => {\n this.issues = [...this.issues, ...subs];\n };\n const actualProto = new.target.prototype;\n if (Object.setPrototypeOf) {\n // eslint-disable-next-line ban/ban\n Object.setPrototypeOf(this, actualProto);\n }\n else {\n this.__proto__ = actualProto;\n }\n this.name = \"ZodError\";\n this.issues = issues;\n }\n format(_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\") {\n issue.unionErrors.map(processError);\n }\n else if (issue.code === \"invalid_return_type\") {\n processError(issue.returnTypeError);\n }\n else if (issue.code === \"invalid_arguments\") {\n processError(issue.argumentsError);\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 // if (typeof el === \"string\") {\n // curr[el] = curr[el] || { _errors: [] };\n // } else if (typeof el === \"number\") {\n // const errorArray: any = [];\n // errorArray._errors = [];\n // curr[el] = curr[el] || errorArray;\n // }\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(this);\n return fieldErrors;\n }\n static assert(value) {\n if (!(value instanceof ZodError)) {\n throw new Error(`Not a ZodError: ${value}`);\n }\n }\n toString() {\n return this.message;\n }\n get message() {\n return JSON.stringify(this.issues, util.jsonStringifyReplacer, 2);\n }\n get isEmpty() {\n return this.issues.length === 0;\n }\n flatten(mapper = (issue) => issue.message) {\n const fieldErrors = {};\n const formErrors = [];\n for (const sub of this.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 }\n get formErrors() {\n return this.flatten();\n }\n}\nZodError.create = (issues) => {\n const error = new ZodError(issues);\n return error;\n};\n\nconst errorMap = (issue, _ctx) => {\n let message;\n switch (issue.code) {\n case ZodIssueCode.invalid_type:\n if (issue.received === ZodParsedType.undefined) {\n message = \"Required\";\n }\n else {\n message = `Expected ${issue.expected}, received ${issue.received}`;\n }\n break;\n case ZodIssueCode.invalid_literal:\n message = `Invalid literal value, expected ${JSON.stringify(issue.expected, util.jsonStringifyReplacer)}`;\n break;\n case ZodIssueCode.unrecognized_keys:\n message = `Unrecognized key(s) in object: ${util.joinValues(issue.keys, \", \")}`;\n break;\n case ZodIssueCode.invalid_union:\n message = `Invalid input`;\n break;\n case ZodIssueCode.invalid_union_discriminator:\n message = `Invalid discriminator value. Expected ${util.joinValues(issue.options)}`;\n break;\n case ZodIssueCode.invalid_enum_value:\n message = `Invalid enum value. Expected ${util.joinValues(issue.options)}, received '${issue.received}'`;\n break;\n case ZodIssueCode.invalid_arguments:\n message = `Invalid function arguments`;\n break;\n case ZodIssueCode.invalid_return_type:\n message = `Invalid function return type`;\n break;\n case ZodIssueCode.invalid_date:\n message = `Invalid date`;\n break;\n case ZodIssueCode.invalid_string:\n if (typeof issue.validation === \"object\") {\n if (\"includes\" in issue.validation) {\n message = `Invalid input: must include \"${issue.validation.includes}\"`;\n if (typeof issue.validation.position === \"number\") {\n message = `${message} at one or more positions greater than or equal to ${issue.validation.position}`;\n }\n }\n else if (\"startsWith\" in issue.validation) {\n message = `Invalid input: must start with \"${issue.validation.startsWith}\"`;\n }\n else if (\"endsWith\" in issue.validation) {\n message = `Invalid input: must end with \"${issue.validation.endsWith}\"`;\n }\n else {\n util.assertNever(issue.validation);\n }\n }\n else if (issue.validation !== \"regex\") {\n message = `Invalid ${issue.validation}`;\n }\n else {\n message = \"Invalid\";\n }\n break;\n case ZodIssueCode.too_small:\n if (issue.type === \"array\")\n message = `Array must contain ${issue.exact ? \"exactly\" : issue.inclusive ? `at least` : `more than`} ${issue.minimum} element(s)`;\n else if (issue.type === \"string\")\n message = `String must contain ${issue.exact ? \"exactly\" : issue.inclusive ? `at least` : `over`} ${issue.minimum} character(s)`;\n else if (issue.type === \"number\")\n message = `Number must be ${issue.exact\n ? `exactly equal to `\n : issue.inclusive\n ? `greater than or equal to `\n : `greater than `}${issue.minimum}`;\n else if (issue.type === \"date\")\n message = `Date must be ${issue.exact\n ? `exactly equal to `\n : issue.inclusive\n ? `greater than or equal to `\n : `greater than `}${new Date(Number(issue.minimum))}`;\n else\n message = \"Invalid input\";\n break;\n case ZodIssueCode.too_big:\n if (issue.type === \"array\")\n message = `Array must contain ${issue.exact ? `exactly` : issue.inclusive ? `at most` : `less than`} ${issue.maximum} element(s)`;\n else if (issue.type === \"string\")\n message = `String must contain ${issue.exact ? `exactly` : issue.inclusive ? `at most` : `under`} ${issue.maximum} character(s)`;\n else if (issue.type === \"number\")\n message = `Number must be ${issue.exact\n ? `exactly`\n : issue.inclusive\n ? `less than or equal to`\n : `less than`} ${issue.maximum}`;\n else if (issue.type === \"bigint\")\n message = `BigInt must be ${issue.exact\n ? `exactly`\n : issue.inclusive\n ? `less than or equal to`\n : `less than`} ${issue.maximum}`;\n else if (issue.type === \"date\")\n message = `Date must be ${issue.exact\n ? `exactly`\n : issue.inclusive\n ? `smaller than or equal to`\n : `smaller than`} ${new Date(Number(issue.maximum))}`;\n else\n message = \"Invalid input\";\n break;\n case ZodIssueCode.custom:\n message = `Invalid input`;\n break;\n case ZodIssueCode.invalid_intersection_types:\n message = `Intersection results could not be merged`;\n break;\n case ZodIssueCode.not_multiple_of:\n message = `Number must be a multiple of ${issue.multipleOf}`;\n break;\n case ZodIssueCode.not_finite:\n message = \"Number must be finite\";\n break;\n default:\n message = _ctx.defaultError;\n util.assertNever(issue);\n }\n return { message };\n};\n\nlet overrideErrorMap = errorMap;\nfunction setErrorMap(map) {\n overrideErrorMap = map;\n}\nfunction getErrorMap() {\n return overrideErrorMap;\n}\n\nconst makeIssue = (params) => {\n const { data, path, errorMaps, issueData } = params;\n const fullPath = [...path, ...(issueData.path || [])];\n const fullIssue = {\n ...issueData,\n path: fullPath,\n };\n if (issueData.message !== undefined) {\n return {\n ...issueData,\n path: fullPath,\n message: issueData.message,\n };\n }\n let errorMessage = \"\";\n const maps = errorMaps\n .filter((m) => !!m)\n .slice()\n .reverse();\n for (const map of maps) {\n errorMessage = map(fullIssue, { data, defaultError: errorMessage }).message;\n }\n return {\n ...issueData,\n path: fullPath,\n message: errorMessage,\n };\n};\nconst EMPTY_PATH = [];\nfunction addIssueToContext(ctx, issueData) {\n const overrideMap = getErrorMap();\n const issue = makeIssue({\n issueData: issueData,\n data: ctx.data,\n path: ctx.path,\n errorMaps: [\n ctx.common.contextualErrorMap, // contextual error map is first priority\n ctx.schemaErrorMap, // then schema-bound map if available\n overrideMap, // then global override map\n overrideMap === errorMap ? undefined : errorMap, // then global default map\n ].filter((x) => !!x),\n });\n ctx.common.issues.push(issue);\n}\nclass ParseStatus {\n constructor() {\n this.value = \"valid\";\n }\n dirty() {\n if (this.value === \"valid\")\n this.value = \"dirty\";\n }\n abort() {\n if (this.value !== \"aborted\")\n this.value = \"aborted\";\n }\n static mergeArray(status, results) {\n const arrayValue = [];\n for (const s of results) {\n if (s.status === \"aborted\")\n return INVALID;\n if (s.status === \"dirty\")\n status.dirty();\n arrayValue.push(s.value);\n }\n return { status: status.value, value: arrayValue };\n }\n static async mergeObjectAsync(status, pairs) {\n const syncPairs = [];\n for (const pair of pairs) {\n const key = await pair.key;\n const value = await pair.value;\n syncPairs.push({\n key,\n value,\n });\n }\n return ParseStatus.mergeObjectSync(status, syncPairs);\n }\n static mergeObjectSync(status, pairs) {\n const finalObject = {};\n for (const pair of pairs) {\n const { key, value } = pair;\n if (key.status === \"aborted\")\n return INVALID;\n if (value.status === \"aborted\")\n return INVALID;\n if (key.status === \"dirty\")\n status.dirty();\n if (value.status === \"dirty\")\n status.dirty();\n if (key.value !== \"__proto__\" &&\n (typeof value.value !== \"undefined\" || pair.alwaysSet)) {\n finalObject[key.value] = value.value;\n }\n }\n return { status: status.value, value: finalObject };\n }\n}\nconst INVALID = Object.freeze({\n status: \"aborted\",\n});\nconst DIRTY = (value) => ({ status: \"dirty\", value });\nconst OK = (value) => ({ status: \"valid\", value });\nconst isAborted = (x) => x.status === \"aborted\";\nconst isDirty = (x) => x.status === \"dirty\";\nconst isValid = (x) => x.status === \"valid\";\nconst isAsync = (x) => typeof Promise !== \"undefined\" && x instanceof Promise;\n\n/******************************************************************************\r\nCopyright (c) Microsoft Corporation.\r\n\r\nPermission to use, copy, modify, and/or distribute this software for any\r\npurpose with or without fee is hereby granted.\r\n\r\nTHE SOFTWARE IS PROVIDED \"AS IS\" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH\r\nREGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY\r\nAND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,\r\nINDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM\r\nLOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR\r\nOTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR\r\nPERFORMANCE OF THIS SOFTWARE.\r\n***************************************************************************** */\r\n\r\nfunction __classPrivateFieldGet(receiver, state, kind, f) {\r\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a getter\");\r\n if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot read private member from an object whose class did not declare it\");\r\n return kind === \"m\" ? f : kind === \"a\" ? f.call(receiver) : f ? f.value : state.get(receiver);\r\n}\r\n\r\nfunction __classPrivateFieldSet(receiver, state, value, kind, f) {\r\n if (kind === \"m\") throw new TypeError(\"Private method is not writable\");\r\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a setter\");\r\n if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot write private member to an object whose class did not declare it\");\r\n return (kind === \"a\" ? f.call(receiver, value) : f ? f.value = value : state.set(receiver, value)), value;\r\n}\r\n\r\ntypeof SuppressedError === \"function\" ? SuppressedError : function (error, suppressed, message) {\r\n var e = new Error(message);\r\n return e.name = \"SuppressedError\", e.error = error, e.suppressed = suppressed, e;\r\n};\n\nvar errorUtil;\n(function (errorUtil) {\n errorUtil.errToObj = (message) => typeof message === \"string\" ? { message } : message || {};\n errorUtil.toString = (message) => typeof message === \"string\" ? message : message === null || message === void 0 ? void 0 : message.message;\n})(errorUtil || (errorUtil = {}));\n\nvar _ZodEnum_cache, _ZodNativeEnum_cache;\nclass ParseInputLazyPath {\n constructor(parent, value, path, key) {\n this._cachedPath = [];\n this.parent = parent;\n this.data = value;\n this._path = path;\n this._key = key;\n }\n get path() {\n if (!this._cachedPath.length) {\n if (this._key instanceof Array) {\n this._cachedPath.push(...this._path, ...this._key);\n }\n else {\n this._cachedPath.push(...this._path, this._key);\n }\n }\n return this._cachedPath;\n }\n}\nconst handleResult = (ctx, result) => {\n if (isValid(result)) {\n return { success: true, data: result.value };\n }\n else {\n if (!ctx.common.issues.length) {\n throw new Error(\"Validation failed but no issues detected.\");\n }\n return {\n success: false,\n get error() {\n if (this._error)\n return this._error;\n const error = new ZodError(ctx.common.issues);\n this._error = error;\n return this._error;\n },\n };\n }\n};\nfunction processCreateParams(params) {\n if (!params)\n return {};\n const { errorMap, invalid_type_error, required_error, description } = params;\n if (errorMap && (invalid_type_error || required_error)) {\n throw new Error(`Can't use \"invalid_type_error\" or \"required_error\" in conjunction with custom error map.`);\n }\n if (errorMap)\n return { errorMap: errorMap, description };\n const customMap = (iss, ctx) => {\n var _a, _b;\n const { message } = params;\n if (iss.code === \"invalid_enum_value\") {\n return { message: message !== null && message !== void 0 ? message : ctx.defaultError };\n }\n if (typeof ctx.data === \"undefined\") {\n return { message: (_a = message !== null && message !== void 0 ? message : required_error) !== null && _a !== void 0 ? _a : ctx.defaultError };\n }\n if (iss.code !== \"invalid_type\")\n return { message: ctx.defaultError };\n return { message: (_b = message !== null && message !== void 0 ? message : invalid_type_error) !== null && _b !== void 0 ? _b : ctx.defaultError };\n };\n return { errorMap: customMap, description };\n}\nclass ZodType {\n get description() {\n return this._def.description;\n }\n _getType(input) {\n return getParsedType(input.data);\n }\n _getOrReturnCtx(input, ctx) {\n return (ctx || {\n common: input.parent.common,\n data: input.data,\n parsedType: getParsedType(input.data),\n schemaErrorMap: this._def.errorMap,\n path: input.path,\n parent: input.parent,\n });\n }\n _processInputParams(input) {\n return {\n status: new ParseStatus(),\n ctx: {\n common: input.parent.common,\n data: input.data,\n parsedType: getParsedType(input.data),\n schemaErrorMap: this._def.errorMap,\n path: input.path,\n parent: input.parent,\n },\n };\n }\n _parseSync(input) {\n const result = this._parse(input);\n if (isAsync(result)) {\n throw new Error(\"Synchronous parse encountered promise.\");\n }\n return result;\n }\n _parseAsync(input) {\n const result = this._parse(input);\n return Promise.resolve(result);\n }\n parse(data, params) {\n const result = this.safeParse(data, params);\n if (result.success)\n return result.data;\n throw result.error;\n }\n safeParse(data, params) {\n var _a;\n const ctx = {\n common: {\n issues: [],\n async: (_a = params === null || params === void 0 ? void 0 : params.async) !== null && _a !== void 0 ? _a : false,\n contextualErrorMap: params === null || params === void 0 ? void 0 : params.errorMap,\n },\n path: (params === null || params === void 0 ? void 0 : params.path) || [],\n schemaErrorMap: this._def.errorMap,\n parent: null,\n data,\n parsedType: getParsedType(data),\n };\n const result = this._parseSync({ data, path: ctx.path, parent: ctx });\n return handleResult(ctx, result);\n }\n \"~validate\"(data) {\n var _a, _b;\n const ctx = {\n common: {\n issues: [],\n async: !!this[\"~standard\"].async,\n },\n path: [],\n schemaErrorMap: this._def.errorMap,\n parent: null,\n data,\n parsedType: getParsedType(data),\n };\n if (!this[\"~standard\"].async) {\n try {\n const result = this._parseSync({ data, path: [], parent: ctx });\n return isValid(result)\n ? {\n value: result.value,\n }\n : {\n issues: ctx.common.issues,\n };\n }\n catch (err) {\n if ((_b = (_a = err === null || err === void 0 ? void 0 : err.message) === null || _a === void 0 ? void 0 : _a.toLowerCase()) === null || _b === void 0 ? void 0 : _b.includes(\"encountered\")) {\n this[\"~standard\"].async = true;\n }\n ctx.common = {\n issues: [],\n async: true,\n };\n }\n }\n return this._parseAsync({ data, path: [], parent: ctx }).then((result) => isValid(result)\n ? {\n value: result.value,\n }\n : {\n issues: ctx.common.issues,\n });\n }\n async parseAsync(data, params) {\n const result = await this.safeParseAsync(data, params);\n if (result.success)\n return result.data;\n throw result.error;\n }\n async safeParseAsync(data, params) {\n const ctx = {\n common: {\n issues: [],\n contextualErrorMap: params === null || params === void 0 ? void 0 : params.errorMap,\n async: true,\n },\n path: (params === null || params === void 0 ? void 0 : params.path) || [],\n schemaErrorMap: this._def.errorMap,\n parent: null,\n data,\n parsedType: getParsedType(data),\n };\n const maybeAsyncResult = this._parse({ data, path: ctx.path, parent: ctx });\n const result = await (isAsync(maybeAsyncResult)\n ? maybeAsyncResult\n : Promise.resolve(maybeAsyncResult));\n return handleResult(ctx, result);\n }\n refine(check, message) {\n const getIssueProperties = (val) => {\n if (typeof message === \"string\" || typeof message === \"undefined\") {\n return { message };\n }\n else if (typeof message === \"function\") {\n return message(val);\n }\n else {\n return message;\n }\n };\n return this._refinement((val, ctx) => {\n const result = check(val);\n const setError = () => ctx.addIssue({\n code: ZodIssueCode.custom,\n ...getIssueProperties(val),\n });\n if (typeof Promise !== \"undefined\" && result instanceof Promise) {\n return result.then((data) => {\n if (!data) {\n setError();\n return false;\n }\n else {\n return true;\n }\n });\n }\n if (!result) {\n setError();\n return false;\n }\n else {\n return true;\n }\n });\n }\n refinement(check, refinementData) {\n return this._refinement((val, ctx) => {\n if (!check(val)) {\n ctx.addIssue(typeof refinementData === \"function\"\n ? refinementData(val, ctx)\n : refinementData);\n return false;\n }\n else {\n return true;\n }\n });\n }\n _refinement(refinement) {\n return new ZodEffects({\n schema: this,\n typeName: ZodFirstPartyTypeKind.ZodEffects,\n effect: { type: \"refinement\", refinement },\n });\n }\n superRefine(refinement) {\n return this._refinement(refinement);\n }\n constructor(def) {\n /** Alias of safeParseAsync */\n this.spa = this.safeParseAsync;\n this._def = def;\n this.parse = this.parse.bind(this);\n this.safeParse = this.safeParse.bind(this);\n this.parseAsync = this.parseAsync.bind(this);\n this.safeParseAsync = this.safeParseAsync.bind(this);\n this.spa = this.spa.bind(this);\n this.refine = this.refine.bind(this);\n this.refinement = this.refinement.bind(this);\n this.superRefine = this.superRefine.bind(this);\n this.optional = this.optional.bind(this);\n this.nullable = this.nullable.bind(this);\n this.nullish = this.nullish.bind(this);\n this.array = this.array.bind(this);\n this.promise = this.promise.bind(this);\n this.or = this.or.bind(this);\n this.and = this.and.bind(this);\n this.transform = this.transform.bind(this);\n this.brand = this.brand.bind(this);\n this.default = this.default.bind(this);\n this.catch = this.catch.bind(this);\n this.describe = this.describe.bind(this);\n this.pipe = this.pipe.bind(this);\n this.readonly = this.readonly.bind(this);\n this.isNullable = this.isNullable.bind(this);\n this.isOptional = this.isOptional.bind(this);\n this[\"~standard\"] = {\n version: 1,\n vendor: \"zod\",\n validate: (data) => this[\"~validate\"](data),\n };\n }\n optional() {\n return ZodOptional.create(this, this._def);\n }\n nullable() {\n return ZodNullable.create(this, this._def);\n }\n nullish() {\n return this.nullable().optional();\n }\n array() {\n return ZodArray.create(this);\n }\n promise() {\n return ZodPromise.create(this, this._def);\n }\n or(option) {\n return ZodUnion.create([this, option], this._def);\n }\n and(incoming) {\n return ZodIntersection.create(this, incoming, this._def);\n }\n transform(transform) {\n return new ZodEffects({\n ...processCreateParams(this._def),\n schema: this,\n typeName: ZodFirstPartyTypeKind.ZodEffects,\n effect: { type: \"transform\", transform },\n });\n }\n default(def) {\n const defaultValueFunc = typeof def === \"function\" ? def : () => def;\n return new ZodDefault({\n ...processCreateParams(this._def),\n innerType: this,\n defaultValue: defaultValueFunc,\n typeName: ZodFirstPartyTypeKind.ZodDefault,\n });\n }\n brand() {\n return new ZodBranded({\n typeName: ZodFirstPartyTypeKind.ZodBranded,\n type: this,\n ...processCreateParams(this._def),\n });\n }\n catch(def) {\n const catchValueFunc = typeof def === \"function\" ? def : () => def;\n return new ZodCatch({\n ...processCreateParams(this._def),\n innerType: this,\n catchValue: catchValueFunc,\n typeName: ZodFirstPartyTypeKind.ZodCatch,\n });\n }\n describe(description) {\n const This = this.constructor;\n return new This({\n ...this._def,\n description,\n });\n }\n pipe(target) {\n return ZodPipeline.create(this, target);\n }\n readonly() {\n return ZodReadonly.create(this);\n }\n isOptional() {\n return this.safeParse(undefined).success;\n }\n isNullable() {\n return this.safeParse(null).success;\n }\n}\nconst cuidRegex = /^c[^\\s-]{8,}$/i;\nconst cuid2Regex = /^[0-9a-z]+$/;\nconst ulidRegex = /^[0-9A-HJKMNP-TV-Z]{26}$/i;\n// const uuidRegex =\n// /^([a-f0-9]{8}-[a-f0-9]{4}-[1-5][a-f0-9]{3}-[a-f0-9]{4}-[a-f0-9]{12}|00000000-0000-0000-0000-000000000000)$/i;\nconst uuidRegex = /^[0-9a-fA-F]{8}\\b-[0-9a-fA-F]{4}\\b-[0-9a-fA-F]{4}\\b-[0-9a-fA-F]{4}\\b-[0-9a-fA-F]{12}$/i;\nconst nanoidRegex = /^[a-z0-9_-]{21}$/i;\nconst jwtRegex = /^[A-Za-z0-9-_]+\\.[A-Za-z0-9-_]+\\.[A-Za-z0-9-_]*$/;\nconst durationRegex = /^[-+]?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// from https://stackoverflow.com/a/46181/1550155\n// old version: too slow, didn't support unicode\n// const emailRegex = /^((([a-z]|\\d|[!#\\$%&'\\*\\+\\-\\/=\\?\\^_`{\\|}~]|[\\u00A0-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF])+(\\.([a-z]|\\d|[!#\\$%&'\\*\\+\\-\\/=\\?\\^_`{\\|}~]|[\\u00A0-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF])+)*)|((\\x22)((((\\x20|\\x09)*(\\x0d\\x0a))?(\\x20|\\x09)+)?(([\\x01-\\x08\\x0b\\x0c\\x0e-\\x1f\\x7f]|\\x21|[\\x23-\\x5b]|[\\x5d-\\x7e]|[\\u00A0-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF])|(\\\\([\\x01-\\x09\\x0b\\x0c\\x0d-\\x7f]|[\\u00A0-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF]))))*(((\\x20|\\x09)*(\\x0d\\x0a))?(\\x20|\\x09)+)?(\\x22)))@((([a-z]|\\d|[\\u00A0-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF])|(([a-z]|\\d|[\\u00A0-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF])([a-z]|\\d|-|\\.|_|~|[\\u00A0-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF])*([a-z]|\\d|[\\u00A0-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF])))\\.)+(([a-z]|[\\u00A0-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF])|(([a-z]|[\\u00A0-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF])([a-z]|\\d|-|\\.|_|~|[\\u00A0-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF])*([a-z]|[\\u00A0-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF])))$/i;\n//old email regex\n// const emailRegex = /^(([^<>()[\\].,;:\\s@\"]+(\\.[^<>()[\\].,;:\\s@\"]+)*)|(\".+\"))@((?!-)([^<>()[\\].,;:\\s@\"]+\\.)+[^<>()[\\].,;:\\s@\"]{1,})[^-<>()[\\].,;:\\s@\"]$/i;\n// eslint-disable-next-line\n// const emailRegex =\n// /^(([^<>()[\\]\\\\.,;:\\s@\\\"]+(\\.[^<>()[\\]\\\\.,;:\\s@\\\"]+)*)|(\\\".+\\\"))@((\\[(((25[0-5])|(2[0-4][0-9])|(1[0-9]{2})|([0-9]{1,2}))\\.){3}((25[0-5])|(2[0-4][0-9])|(1[0-9]{2})|([0-9]{1,2}))\\])|(\\[IPv6:(([a-f0-9]{1,4}:){7}|::([a-f0-9]{1,4}:){0,6}|([a-f0-9]{1,4}:){1}:([a-f0-9]{1,4}:){0,5}|([a-f0-9]{1,4}:){2}:([a-f0-9]{1,4}:){0,4}|([a-f0-9]{1,4}:){3}:([a-f0-9]{1,4}:){0,3}|([a-f0-9]{1,4}:){4}:([a-f0-9]{1,4}:){0,2}|([a-f0-9]{1,4}:){5}:([a-f0-9]{1,4}:){0,1})([a-f0-9]{1,4}|(((25[0-5])|(2[0-4][0-9])|(1[0-9]{2})|([0-9]{1,2}))\\.){3}((25[0-5])|(2[0-4][0-9])|(1[0-9]{2})|([0-9]{1,2})))\\])|([A-Za-z0-9]([A-Za-z0-9-]*[A-Za-z0-9])*(\\.[A-Za-z]{2,})+))$/;\n// const emailRegex =\n// /^[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// const emailRegex =\n// /^(?:[a-z0-9!#$%&'*+/=?^_`{|}~-]+(?:\\.[a-z0-9!#$%&'*+/=?^_`{|}~-]+)*|\"(?:[\\x01-\\x08\\x0b\\x0c\\x0e-\\x1f\\x21\\x23-\\x5b\\x5d-\\x7f]|\\\\[\\x01-\\x09\\x0b\\x0c\\x0e-\\x7f])*\")@(?:(?:[a-z0-9](?:[a-z0-9-]*[a-z0-9])?\\.)+[a-z0-9](?:[a-z0-9-]*[a-z0-9])?|\\[(?:(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\\.){3}(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?|[a-z0-9-]*[a-z0-9]:(?:[\\x01-\\x08\\x0b\\x0c\\x0e-\\x1f\\x21-\\x5a\\x53-\\x7f]|\\\\[\\x01-\\x09\\x0b\\x0c\\x0e-\\x7f])+)\\])$/i;\nconst emailRegex = /^(?!\\.)(?!.*\\.\\.)([A-Z0-9_'+\\-\\.]*)[A-Z0-9_+-]@([A-Z0-9][A-Z0-9\\-]*\\.)+[A-Z]{2,}$/i;\n// const emailRegex =\n// /^[a-z0-9.!#$%&’*+/=?^_`{|}~-]+@[a-z0-9-]+(?:\\.[a-z0-9\\-]+)*$/i;\n// from https://thekevinscott.com/emojis-in-javascript/#writing-a-regular-expression\nconst _emojiRegex = `^(\\\\p{Extended_Pictographic}|\\\\p{Emoji_Component})+$`;\nlet emojiRegex;\n// faster, simpler, safer\nconst ipv4Regex = /^(?:(?: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])$/;\nconst ipv4CidrRegex = /^(?:(?: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])\\/(3[0-2]|[12]?[0-9])$/;\n// const ipv6Regex =\n// /^(([a-f0-9]{1,4}:){7}|::([a-f0-9]{1,4}:){0,6}|([a-f0-9]{1,4}:){1}:([a-f0-9]{1,4}:){0,5}|([a-f0-9]{1,4}:){2}:([a-f0-9]{1,4}:){0,4}|([a-f0-9]{1,4}:){3}:([a-f0-9]{1,4}:){0,3}|([a-f0-9]{1,4}:){4}:([a-f0-9]{1,4}:){0,2}|([a-f0-9]{1,4}:){5}:([a-f0-9]{1,4}:){0,1})([a-f0-9]{1,4}|(((25[0-5])|(2[0-4][0-9])|(1[0-9]{2})|([0-9]{1,2}))\\.){3}((25[0-5])|(2[0-4][0-9])|(1[0-9]{2})|([0-9]{1,2})))$/;\nconst ipv6Regex = /^(([0-9a-fA-F]{1,4}:){7,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}|:)|fe80:(:[0-9a-fA-F]{0,4}){0,4}%[0-9a-zA-Z]{1,}|::(ffff(:0{1,4}){0,1}:){0,1}((25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])\\.){3,3}(25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])|([0-9a-fA-F]{1,4}:){1,4}:((25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])\\.){3,3}(25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9]))$/;\nconst ipv6CidrRegex = /^(([0-9a-fA-F]{1,4}:){7,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}|:)|fe80:(:[0-9a-fA-F]{0,4}){0,4}%[0-9a-zA-Z]{1,}|::(ffff(:0{1,4}){0,1}:){0,1}((25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])\\.){3,3}(25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])|([0-9a-fA-F]{1,4}:){1,4}:((25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])\\.){3,3}(25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9]))\\/(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\nconst base64Regex = /^([0-9a-zA-Z+/]{4})*(([0-9a-zA-Z+/]{2}==)|([0-9a-zA-Z+/]{3}=))?$/;\n// https://base64.guru/standards/base64url\nconst base64urlRegex = /^([0-9a-zA-Z-_]{4})*(([0-9a-zA-Z-_]{2}(==)?)|([0-9a-zA-Z-_]{3}(=)?))?$/;\n// simple\n// const dateRegexSource = `\\\\d{4}-\\\\d{2}-\\\\d{2}`;\n// no leap year validation\n// const dateRegexSource = `\\\\d{4}-((0[13578]|10|12)-31|(0[13-9]|1[0-2])-30|(0[1-9]|1[0-2])-(0[1-9]|1\\\\d|2\\\\d))`;\n// with leap year validation\nconst dateRegexSource = `((\\\\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 dateRegex = new RegExp(`^${dateRegexSource}$`);\nfunction timeRegexSource(args) {\n // let regex = `\\\\d{2}:\\\\d{2}:\\\\d{2}`;\n let regex = `([01]\\\\d|2[0-3]):[0-5]\\\\d:[0-5]\\\\d`;\n if (args.precision) {\n regex = `${regex}\\\\.\\\\d{${args.precision}}`;\n }\n else if (args.precision == null) {\n regex = `${regex}(\\\\.\\\\d+)?`;\n }\n return regex;\n}\nfunction timeRegex(args) {\n return new RegExp(`^${timeRegexSource(args)}$`);\n}\n// Adapted from https://stackoverflow.com/a/3143231\nfunction datetimeRegex(args) {\n let regex = `${dateRegexSource}T${timeRegexSource(args)}`;\n const opts = [];\n opts.push(args.local ? `Z?` : `Z`);\n if (args.offset)\n opts.push(`([+-]\\\\d{2}:?\\\\d{2})`);\n regex = `${regex}(${opts.join(\"|\")})`;\n return new RegExp(`^${regex}$`);\n}\nfunction isValidIP(ip, version) {\n if ((version === \"v4\" || !version) && ipv4Regex.test(ip)) {\n return true;\n }\n if ((version === \"v6\" || !version) && ipv6Regex.test(ip)) {\n return true;\n }\n return false;\n}\nfunction isValidJWT(jwt, alg) {\n if (!jwtRegex.test(jwt))\n return false;\n try {\n const [header] = jwt.split(\".\");\n // Convert base64url to base64\n const base64 = header\n .replace(/-/g, \"+\")\n .replace(/_/g, \"/\")\n .padEnd(header.length + ((4 - (header.length % 4)) % 4), \"=\");\n const decoded = JSON.parse(atob(base64));\n if (typeof decoded !== \"object\" || decoded === null)\n return false;\n if (!decoded.typ || !decoded.alg)\n return false;\n if (alg && decoded.alg !== alg)\n return false;\n return true;\n }\n catch (_a) {\n return false;\n }\n}\nfunction isValidCidr(ip, version) {\n if ((version === \"v4\" || !version) && ipv4CidrRegex.test(ip)) {\n return true;\n }\n if ((version === \"v6\" || !version) && ipv6CidrRegex.test(ip)) {\n return true;\n }\n return false;\n}\nclass ZodString extends ZodType {\n _parse(input) {\n if (this._def.coerce) {\n input.data = String(input.data);\n }\n const parsedType = this._getType(input);\n if (parsedType !== ZodParsedType.string) {\n const ctx = this._getOrReturnCtx(input);\n addIssueToContext(ctx, {\n code: ZodIssueCode.invalid_type,\n expected: ZodParsedType.string,\n received: ctx.parsedType,\n });\n return INVALID;\n }\n const status = new ParseStatus();\n let ctx = undefined;\n for (const check of this._def.checks) {\n if (check.kind === \"min\") {\n if (input.data.length < check.value) {\n ctx = this._getOrReturnCtx(input, ctx);\n addIssueToContext(ctx, {\n code: ZodIssueCode.too_small,\n minimum: check.value,\n type: \"string\",\n inclusive: true,\n exact: false,\n message: check.message,\n });\n status.dirty();\n }\n }\n else if (check.kind === \"max\") {\n if (input.data.length > check.value) {\n ctx = this._getOrReturnCtx(input, ctx);\n addIssueToContext(ctx, {\n code: ZodIssueCode.too_big,\n maximum: check.value,\n type: \"string\",\n inclusive: true,\n exact: false,\n message: check.message,\n });\n status.dirty();\n }\n }\n else if (check.kind === \"length\") {\n const tooBig = input.data.length > check.value;\n const tooSmall = input.data.length < check.value;\n if (tooBig || tooSmall) {\n ctx = this._getOrReturnCtx(input, ctx);\n if (tooBig) {\n addIssueToContext(ctx, {\n code: ZodIssueCode.too_big,\n maximum: check.value,\n type: \"string\",\n inclusive: true,\n exact: true,\n message: check.message,\n });\n }\n else if (tooSmall) {\n addIssueToContext(ctx, {\n code: ZodIssueCode.too_small,\n minimum: check.value,\n type: \"string\",\n inclusive: true,\n exact: true,\n message: check.message,\n });\n }\n status.dirty();\n }\n }\n else if (check.kind === \"email\") {\n if (!emailRegex.test(input.data)) {\n ctx = this._getOrReturnCtx(input, ctx);\n addIssueToContext(ctx, {\n validation: \"email\",\n code: ZodIssueCode.invalid_string,\n message: check.message,\n });\n status.dirty();\n }\n }\n else if (check.kind === \"emoji\") {\n if (!emojiRegex) {\n emojiRegex = new RegExp(_emojiRegex, \"u\");\n }\n if (!emojiRegex.test(input.data)) {\n ctx = this._getOrReturnCtx(input, ctx);\n addIssueToContext(ctx, {\n validation: \"emoji\",\n code: ZodIssueCode.invalid_string,\n message: check.message,\n });\n status.dirty();\n }\n }\n else if (check.kind === \"uuid\") {\n if (!uuidRegex.test(input.data)) {\n ctx = this._getOrReturnCtx(input, ctx);\n addIssueToContext(ctx, {\n validation: \"uuid\",\n code: ZodIssueCode.invalid_string,\n message: check.message,\n });\n status.dirty();\n }\n }\n else if (check.kind === \"nanoid\") {\n if (!nanoidRegex.test(input.data)) {\n ctx = this._getOrReturnCtx(input, ctx);\n addIssueToContext(ctx, {\n validation: \"nanoid\",\n code: ZodIssueCode.invalid_string,\n message: check.message,\n });\n status.dirty();\n }\n }\n else if (check.kind === \"cuid\") {\n if (!cuidRegex.test(input.data)) {\n ctx = this._getOrReturnCtx(input, ctx);\n addIssueToContext(ctx, {\n validation: \"cuid\",\n code: ZodIssueCode.invalid_string,\n message: check.message,\n });\n status.dirty();\n }\n }\n else if (check.kind === \"cuid2\") {\n if (!cuid2Regex.test(input.data)) {\n ctx = this._getOrReturnCtx(input, ctx);\n addIssueToContext(ctx, {\n validation: \"cuid2\",\n code: ZodIssueCode.invalid_string,\n message: check.message,\n });\n status.dirty();\n }\n }\n else if (check.kind === \"ulid\") {\n if (!ulidRegex.test(input.data)) {\n ctx = this._getOrReturnCtx(input, ctx);\n addIssueToContext(ctx, {\n validation: \"ulid\",\n code: ZodIssueCode.invalid_string,\n message: check.message,\n });\n status.dirty();\n }\n }\n else if (check.kind === \"url\") {\n try {\n new URL(input.data);\n }\n catch (_a) {\n ctx = this._getOrReturnCtx(input, ctx);\n addIssueToContext(ctx, {\n validation: \"url\",\n code: ZodIssueCode.invalid_string,\n message: check.message,\n });\n status.dirty();\n }\n }\n else if (check.kind === \"regex\") {\n check.regex.lastIndex = 0;\n const testResult = check.regex.test(input.data);\n if (!testResult) {\n ctx = this._getOrReturnCtx(input, ctx);\n addIssueToContext(ctx, {\n validation: \"regex\",\n code: ZodIssueCode.invalid_string,\n message: check.message,\n });\n status.dirty();\n }\n }\n else if (check.kind === \"trim\") {\n input.data = input.data.trim();\n }\n else if (check.kind === \"includes\") {\n if (!input.data.includes(check.value, check.position)) {\n ctx = this._getOrReturnCtx(input, ctx);\n addIssueToContext(ctx, {\n code: ZodIssueCode.invalid_string,\n validation: { includes: check.value, position: check.position },\n message: check.message,\n });\n status.dirty();\n }\n }\n else if (check.kind === \"toLowerCase\") {\n input.data = input.data.toLowerCase();\n }\n else if (check.kind === \"toUpperCase\") {\n input.data = input.data.toUpperCase();\n }\n else if (check.kind === \"startsWith\") {\n if (!input.data.startsWith(check.value)) {\n ctx = this._getOrReturnCtx(input, ctx);\n addIssueToContext(ctx, {\n code: ZodIssueCode.invalid_string,\n validation: { startsWith: check.value },\n message: check.message,\n });\n status.dirty();\n }\n }\n else if (check.kind === \"endsWith\") {\n if (!input.data.endsWith(check.value)) {\n ctx = this._getOrReturnCtx(input, ctx);\n addIssueToContext(ctx, {\n code: ZodIssueCode.invalid_string,\n validation: { endsWith: check.value },\n message: check.message,\n });\n status.dirty();\n }\n }\n else if (check.kind === \"datetime\") {\n const regex = datetimeRegex(check);\n if (!regex.test(input.data)) {\n ctx = this._getOrReturnCtx(input, ctx);\n addIssueToContext(ctx, {\n code: ZodIssueCode.invalid_string,\n validation: \"datetime\",\n message: check.message,\n });\n status.dirty();\n }\n }\n else if (check.kind === \"date\") {\n const regex = dateRegex;\n if (!regex.test(input.data)) {\n ctx = this._getOrReturnCtx(input, ctx);\n addIssueToContext(ctx, {\n code: ZodIssueCode.invalid_string,\n validation: \"date\",\n message: check.message,\n });\n status.dirty();\n }\n }\n else if (check.kind === \"time\") {\n const regex = timeRegex(check);\n if (!regex.test(input.data)) {\n ctx = this._getOrReturnCtx(input, ctx);\n addIssueToContext(ctx, {\n code: ZodIssueCode.invalid_string,\n validation: \"time\",\n message: check.message,\n });\n status.dirty();\n }\n }\n else if (check.kind === \"duration\") {\n if (!durationRegex.test(input.data)) {\n ctx = this._getOrReturnCtx(input, ctx);\n addIssueToContext(ctx, {\n validation: \"duration\",\n code: ZodIssueCode.invalid_string,\n message: check.message,\n });\n status.dirty();\n }\n }\n else if (check.kind === \"ip\") {\n if (!isValidIP(input.data, check.version)) {\n ctx = this._getOrReturnCtx(input, ctx);\n addIssueToContext(ctx, {\n validation: \"ip\",\n code: ZodIssueCode.invalid_string,\n message: check.message,\n });\n status.dirty();\n }\n }\n else if (check.kind === \"jwt\") {\n if (!isValidJWT(input.data, check.alg)) {\n ctx = this._getOrReturnCtx(input, ctx);\n addIssueToContext(ctx, {\n validation: \"jwt\",\n code: ZodIssueCode.invalid_string,\n message: check.message,\n });\n status.dirty();\n }\n }\n else if (check.kind === \"cidr\") {\n if (!isValidCidr(input.data, check.version)) {\n ctx = this._getOrReturnCtx(input, ctx);\n addIssueToContext(ctx, {\n validation: \"cidr\",\n code: ZodIssueCode.invalid_string,\n message: check.message,\n });\n status.dirty();\n }\n }\n else if (check.kind === \"base64\") {\n if (!base64Regex.test(input.data)) {\n ctx = this._getOrReturnCtx(input, ctx);\n addIssueToContext(ctx, {\n validation: \"base64\",\n code: ZodIssueCode.invalid_string,\n message: check.message,\n });\n status.dirty();\n }\n }\n else if (check.kind === \"base64url\") {\n if (!base64urlRegex.test(input.data)) {\n ctx = this._getOrReturnCtx(input, ctx);\n addIssueToContext(ctx, {\n validation: \"base64url\",\n code: ZodIssueCode.invalid_string,\n message: check.message,\n });\n status.dirty();\n }\n }\n else {\n util.assertNever(check);\n }\n }\n return { status: status.value, value: input.data };\n }\n _regex(regex, validation, message) {\n return this.refinement((data) => regex.test(data), {\n validation,\n code: ZodIssueCode.invalid_string,\n ...errorUtil.errToObj(message),\n });\n }\n _addCheck(check) {\n return new ZodString({\n ...this._def,\n checks: [...this._def.checks, check],\n });\n }\n email(message) {\n return this._addCheck({ kind: \"email\", ...errorUtil.errToObj(message) });\n }\n url(message) {\n return this._addCheck({ kind: \"url\", ...errorUtil.errToObj(message) });\n }\n emoji(message) {\n return this._addCheck({ kind: \"emoji\", ...errorUtil.errToObj(message) });\n }\n uuid(message) {\n return this._addCheck({ kind: \"uuid\", ...errorUtil.errToObj(message) });\n }\n nanoid(message) {\n return this._addCheck({ kind: \"nanoid\", ...errorUtil.errToObj(message) });\n }\n cuid(message) {\n return this._addCheck({ kind: \"cuid\", ...errorUtil.errToObj(message) });\n }\n cuid2(message) {\n return this._addCheck({ kind: \"cuid2\", ...errorUtil.errToObj(message) });\n }\n ulid(message) {\n return this._addCheck({ kind: \"ulid\", ...errorUtil.errToObj(message) });\n }\n base64(message) {\n return this._addCheck({ kind: \"base64\", ...errorUtil.errToObj(message) });\n }\n base64url(message) {\n // base64url encoding is a modification of base64 that can safely be used in URLs and filenames\n return this._addCheck({\n kind: \"base64url\",\n ...errorUtil.errToObj(message),\n });\n }\n jwt(options) {\n return this._addCheck({ kind: \"jwt\", ...errorUtil.errToObj(options) });\n }\n ip(options) {\n return this._addCheck({ kind: \"ip\", ...errorUtil.errToObj(options) });\n }\n cidr(options) {\n return this._addCheck({ kind: \"cidr\", ...errorUtil.errToObj(options) });\n }\n datetime(options) {\n var _a, _b;\n if (typeof options === \"string\") {\n return this._addCheck({\n kind: \"datetime\",\n precision: null,\n offset: false,\n local: false,\n message: options,\n });\n }\n return this._addCheck({\n kind: \"datetime\",\n precision: typeof (options === null || options === void 0 ? void 0 : options.precision) === \"undefined\" ? null : options === null || options === void 0 ? void 0 : options.precision,\n offset: (_a = options === null || options === void 0 ? void 0 : options.offset) !== null && _a !== void 0 ? _a : false,\n local: (_b = options === null || options === void 0 ? void 0 : options.local) !== null && _b !== void 0 ? _b : false,\n ...errorUtil.errToObj(options === null || options === void 0 ? void 0 : options.message),\n });\n }\n date(message) {\n return this._addCheck({ kind: \"date\", message });\n }\n time(options) {\n if (typeof options === \"string\") {\n return this._addCheck({\n kind: \"time\",\n precision: null,\n message: options,\n });\n }\n return this._addCheck({\n kind: \"time\",\n precision: typeof (options === null || options === void 0 ? void 0 : options.precision) === \"undefined\" ? null : options === null || options === void 0 ? void 0 : options.precision,\n ...errorUtil.errToObj(options === null || options === void 0 ? void 0 : options.message),\n });\n }\n duration(message) {\n return this._addCheck({ kind: \"duration\", ...errorUtil.errToObj(message) });\n }\n regex(regex, message) {\n return this._addCheck({\n kind: \"regex\",\n regex: regex,\n ...errorUtil.errToObj(message),\n });\n }\n includes(value, options) {\n return this._addCheck({\n kind: \"includes\",\n value: value,\n position: options === null || options === void 0 ? void 0 : options.position,\n ...errorUtil.errToObj(options === null || options === void 0 ? void 0 : options.message),\n });\n }\n startsWith(value, message) {\n return this._addCheck({\n kind: \"startsWith\",\n value: value,\n ...errorUtil.errToObj(message),\n });\n }\n endsWith(value, message) {\n return this._addCheck({\n kind: \"endsWith\",\n value: value,\n ...errorUtil.errToObj(message),\n });\n }\n min(minLength, message) {\n return this._addCheck({\n kind: \"min\",\n value: minLength,\n ...errorUtil.errToObj(message),\n });\n }\n max(maxLength, message) {\n return this._addCheck({\n kind: \"max\",\n value: maxLength,\n ...errorUtil.errToObj(message),\n });\n }\n length(len, message) {\n return this._addCheck({\n kind: \"length\",\n value: len,\n ...errorUtil.errToObj(message),\n });\n }\n /**\n * Equivalent to `.min(1)`\n */\n nonempty(message) {\n return this.min(1, errorUtil.errToObj(message));\n }\n trim() {\n return new ZodString({\n ...this._def,\n checks: [...this._def.checks, { kind: \"trim\" }],\n });\n }\n toLowerCase() {\n return new ZodString({\n ...this._def,\n checks: [...this._def.checks, { kind: \"toLowerCase\" }],\n });\n }\n toUpperCase() {\n return new ZodString({\n ...this._def,\n checks: [...this._def.checks, { kind: \"toUpperCase\" }],\n });\n }\n get isDatetime() {\n return !!this._def.checks.find((ch) => ch.kind === \"datetime\");\n }\n get isDate() {\n return !!this._def.checks.find((ch) => ch.kind === \"date\");\n }\n get isTime() {\n return !!this._def.checks.find((ch) => ch.kind === \"time\");\n }\n get isDuration() {\n return !!this._def.checks.find((ch) => ch.kind === \"duration\");\n }\n get isEmail() {\n return !!this._def.checks.find((ch) => ch.kind === \"email\");\n }\n get isURL() {\n return !!this._def.checks.find((ch) => ch.kind === \"url\");\n }\n get isEmoji() {\n return !!this._def.checks.find((ch) => ch.kind === \"emoji\");\n }\n get isUUID() {\n return !!this._def.checks.find((ch) => ch.kind === \"uuid\");\n }\n get isNANOID() {\n return !!this._def.checks.find((ch) => ch.kind === \"nanoid\");\n }\n get isCUID() {\n return !!this._def.checks.find((ch) => ch.kind === \"cuid\");\n }\n get isCUID2() {\n return !!this._def.checks.find((ch) => ch.kind === \"cuid2\");\n }\n get isULID() {\n return !!this._def.checks.find((ch) => ch.kind === \"ulid\");\n }\n get isIP() {\n return !!this._def.checks.find((ch) => ch.kind === \"ip\");\n }\n get isCIDR() {\n return !!this._def.checks.find((ch) => ch.kind === \"cidr\");\n }\n get isBase64() {\n return !!this._def.checks.find((ch) => ch.kind === \"base64\");\n }\n get isBase64url() {\n // base64url encoding is a modification of base64 that can safely be used in URLs and filenames\n return !!this._def.checks.find((ch) => ch.kind === \"base64url\");\n }\n get minLength() {\n let min = null;\n for (const ch of this._def.checks) {\n if (ch.kind === \"min\") {\n if (min === null || ch.value > min)\n min = ch.value;\n }\n }\n return min;\n }\n get maxLength() {\n let max = null;\n for (const ch of this._def.checks) {\n if (ch.kind === \"max\") {\n if (max === null || ch.value < max)\n max = ch.value;\n }\n }\n return max;\n }\n}\nZodString.create = (params) => {\n var _a;\n return new ZodString({\n checks: [],\n typeName: ZodFirstPartyTypeKind.ZodString,\n coerce: (_a = params === null || params === void 0 ? void 0 : params.coerce) !== null && _a !== void 0 ? _a : false,\n ...processCreateParams(params),\n });\n};\n// https://stackoverflow.com/questions/3966484/why-does-modulus-operator-return-fractional-number-in-javascript/31711034#31711034\nfunction floatSafeRemainder(val, step) {\n const valDecCount = (val.toString().split(\".\")[1] || \"\").length;\n const stepDecCount = (step.toString().split(\".\")[1] || \"\").length;\n const decCount = valDecCount > stepDecCount ? valDecCount : stepDecCount;\n const valInt = parseInt(val.toFixed(decCount).replace(\".\", \"\"));\n const stepInt = parseInt(step.toFixed(decCount).replace(\".\", \"\"));\n return (valInt % stepInt) / Math.pow(10, decCount);\n}\nclass ZodNumber extends ZodType {\n constructor() {\n super(...arguments);\n this.min = this.gte;\n this.max = this.lte;\n this.step = this.multipleOf;\n }\n _parse(input) {\n if (this._def.coerce) {\n input.data = Number(input.data);\n }\n const parsedType = this._getType(input);\n if (parsedType !== ZodParsedType.number) {\n const ctx = this._getOrReturnCtx(input);\n addIssueToContext(ctx, {\n code: ZodIssueCode.invalid_type,\n expected: ZodParsedType.number,\n received: ctx.parsedType,\n });\n return INVALID;\n }\n let ctx = undefined;\n const status = new ParseStatus();\n for (const check of this._def.checks) {\n if (check.kind === \"int\") {\n if (!util.isInteger(input.data)) {\n ctx = this._getOrReturnCtx(input, ctx);\n addIssueToContext(ctx, {\n code: ZodIssueCode.invalid_type,\n expected: \"integer\",\n received: \"float\",\n message: check.message,\n });\n status.dirty();\n }\n }\n else if (check.kind === \"min\") {\n const tooSmall = check.inclusive\n ? input.data < check.value\n : input.data <= check.value;\n if (tooSmall) {\n ctx = this._getOrReturnCtx(input, ctx);\n addIssueToContext(ctx, {\n code: ZodIssueCode.too_small,\n minimum: check.value,\n type: \"number\",\n inclusive: check.inclusive,\n exact: false,\n message: check.message,\n });\n status.dirty();\n }\n }\n else if (check.kind === \"max\") {\n const tooBig = check.inclusive\n ? input.data > check.value\n : input.data >= check.value;\n if (tooBig) {\n ctx = this._getOrReturnCtx(input, ctx);\n addIssueToContext(ctx, {\n code: ZodIssueCode.too_big,\n maximum: check.value,\n type: \"number\",\n inclusive: check.inclusive,\n exact: false,\n message: check.message,\n });\n status.dirty();\n }\n }\n else if (check.kind === \"multipleOf\") {\n if (floatSafeRemainder(input.data, check.value) !== 0) {\n ctx = this._getOrReturnCtx(input, ctx);\n addIssueToContext(ctx, {\n code: ZodIssueCode.not_multiple_of,\n multipleOf: check.value,\n message: check.message,\n });\n status.dirty();\n }\n }\n else if (check.kind === \"finite\") {\n if (!Number.isFinite(input.data)) {\n ctx = this._getOrReturnCtx(input, ctx);\n addIssueToContext(ctx, {\n code: ZodIssueCode.not_finite,\n message: check.message,\n });\n status.dirty();\n }\n }\n else {\n util.assertNever(check);\n }\n }\n return { status: status.value, value: input.data };\n }\n gte(value, message) {\n return this.setLimit(\"min\", value, true, errorUtil.toString(message));\n }\n gt(value, message) {\n return this.setLimit(\"min\", value, false, errorUtil.toString(message));\n }\n lte(value, message) {\n return this.setLimit(\"max\", value, true, errorUtil.toString(message));\n }\n lt(value, message) {\n return this.setLimit(\"max\", value, false, errorUtil.toString(message));\n }\n setLimit(kind, value, inclusive, message) {\n return new ZodNumber({\n ...this._def,\n checks: [\n ...this._def.checks,\n {\n kind,\n value,\n inclusive,\n message: errorUtil.toString(message),\n },\n ],\n });\n }\n _addCheck(check) {\n return new ZodNumber({\n ...this._def,\n checks: [...this._def.checks, check],\n });\n }\n int(message) {\n return this._addCheck({\n kind: \"int\",\n message: errorUtil.toString(message),\n });\n }\n positive(message) {\n return this._addCheck({\n kind: \"min\",\n value: 0,\n inclusive: false,\n message: errorUtil.toString(message),\n });\n }\n negative(message) {\n return this._addCheck({\n kind: \"max\",\n value: 0,\n inclusive: false,\n message: errorUtil.toString(message),\n });\n }\n nonpositive(message) {\n return this._addCheck({\n kind: \"max\",\n value: 0,\n inclusive: true,\n message: errorUtil.toString(message),\n });\n }\n nonnegative(message) {\n return this._addCheck({\n kind: \"min\",\n value: 0,\n inclusive: true,\n message: errorUtil.toString(message),\n });\n }\n multipleOf(value, message) {\n return this._addCheck({\n kind: \"multipleOf\",\n value: value,\n message: errorUtil.toString(message),\n });\n }\n finite(message) {\n return this._addCheck({\n kind: \"finite\",\n message: errorUtil.toString(message),\n });\n }\n safe(message) {\n return this._addCheck({\n kind: \"min\",\n inclusive: true,\n value: Number.MIN_SAFE_INTEGER,\n message: errorUtil.toString(message),\n })._addCheck({\n kind: \"max\",\n inclusive: true,\n value: Number.MAX_SAFE_INTEGER,\n message: errorUtil.toString(message),\n });\n }\n get minValue() {\n let min = null;\n for (const ch of this._def.checks) {\n if (ch.kind === \"min\") {\n if (min === null || ch.value > min)\n min = ch.value;\n }\n }\n return min;\n }\n get maxValue() {\n let max = null;\n for (const ch of this._def.checks) {\n if (ch.kind === \"max\") {\n if (max === null || ch.value < max)\n max = ch.value;\n }\n }\n return max;\n }\n get isInt() {\n return !!this._def.checks.find((ch) => ch.kind === \"int\" ||\n (ch.kind === \"multipleOf\" && util.isInteger(ch.value)));\n }\n get isFinite() {\n let max = null, min = null;\n for (const ch of this._def.checks) {\n if (ch.kind === \"finite\" ||\n ch.kind === \"int\" ||\n ch.kind === \"multipleOf\") {\n return true;\n }\n else if (ch.kind === \"min\") {\n if (min === null || ch.value > min)\n min = ch.value;\n }\n else if (ch.kind === \"max\") {\n if (max === null || ch.value < max)\n max = ch.value;\n }\n }\n return Number.isFinite(min) && Number.isFinite(max);\n }\n}\nZodNumber.create = (params) => {\n return new ZodNumber({\n checks: [],\n typeName: ZodFirstPartyTypeKind.ZodNumber,\n coerce: (params === null || params === void 0 ? void 0 : params.coerce) || false,\n ...processCreateParams(params),\n });\n};\nclass ZodBigInt extends ZodType {\n constructor() {\n super(...arguments);\n this.min = this.gte;\n this.max = this.lte;\n }\n _parse(input) {\n if (this._def.coerce) {\n try {\n input.data = BigInt(input.data);\n }\n catch (_a) {\n return this._getInvalidInput(input);\n }\n }\n const parsedType = this._getType(input);\n if (parsedType !== ZodParsedType.bigint) {\n return this._getInvalidInput(input);\n }\n let ctx = undefined;\n const status = new ParseStatus();\n for (const check of this._def.checks) {\n if (check.kind === \"min\") {\n const tooSmall = check.inclusive\n ? input.data < check.value\n : input.data <= check.value;\n if (tooSmall) {\n ctx = this._getOrReturnCtx(input, ctx);\n addIssueToContext(ctx, {\n code: ZodIssueCode.too_small,\n type: \"bigint\",\n minimum: check.value,\n inclusive: check.inclusive,\n message: check.message,\n });\n status.dirty();\n }\n }\n else if (check.kind === \"max\") {\n const tooBig = check.inclusive\n ? input.data > check.value\n : input.data >= check.value;\n if (tooBig) {\n ctx = this._getOrReturnCtx(input, ctx);\n addIssueToContext(ctx, {\n code: ZodIssueCode.too_big,\n type: \"bigint\",\n maximum: check.value,\n inclusive: check.inclusive,\n message: check.message,\n });\n status.dirty();\n }\n }\n else if (check.kind === \"multipleOf\") {\n if (input.data % check.value !== BigInt(0)) {\n ctx = this._getOrReturnCtx(input, ctx);\n addIssueToContext(ctx, {\n code: ZodIssueCode.not_multiple_of,\n multipleOf: check.value,\n message: check.message,\n });\n status.dirty();\n }\n }\n else {\n util.assertNever(check);\n }\n }\n return { status: status.value, value: input.data };\n }\n _getInvalidInput(input) {\n const ctx = this._getOrReturnCtx(input);\n addIssueToContext(ctx, {\n code: ZodIssueCode.invalid_type,\n expected: ZodParsedType.bigint,\n received: ctx.parsedType,\n });\n return INVALID;\n }\n gte(value, message) {\n return this.setLimit(\"min\", value, true, errorUtil.toString(message));\n }\n gt(value, message) {\n return this.setLimit(\"min\", value, false, errorUtil.toString(message));\n }\n lte(value, message) {\n return this.setLimit(\"max\", value, true, errorUtil.toString(message));\n }\n lt(value, message) {\n return this.setLimit(\"max\", value, false, errorUtil.toString(message));\n }\n setLimit(kind, value, inclusive, message) {\n return new ZodBigInt({\n ...this._def,\n checks: [\n ...this._def.checks,\n {\n kind,\n value,\n inclusive,\n message: errorUtil.toString(message),\n },\n ],\n });\n }\n _addCheck(check) {\n return new ZodBigInt({\n ...this._def,\n checks: [...this._def.checks, check],\n });\n }\n positive(message) {\n return this._addCheck({\n kind: \"min\",\n value: BigInt(0),\n inclusive: false,\n message: errorUtil.toString(message),\n });\n }\n negative(message) {\n return this._addCheck({\n kind: \"max\",\n value: BigInt(0),\n inclusive: false,\n message: errorUtil.toString(message),\n });\n }\n nonpositive(message) {\n return this._addCheck({\n kind: \"max\",\n value: BigInt(0),\n inclusive: true,\n message: errorUtil.toString(message),\n });\n }\n nonnegative(message) {\n return this._addCheck({\n kind: \"min\",\n value: BigInt(0),\n inclusive: true,\n message: errorUtil.toString(message),\n });\n }\n multipleOf(value, message) {\n return this._addCheck({\n kind: \"multipleOf\",\n value,\n message: errorUtil.toString(message),\n });\n }\n get minValue() {\n let min = null;\n for (const ch of this._def.checks) {\n if (ch.kind === \"min\") {\n if (min === null || ch.value > min)\n min = ch.value;\n }\n }\n return min;\n }\n get maxValue() {\n let max = null;\n for (const ch of this._def.checks) {\n if (ch.kind === \"max\") {\n if (max === null || ch.value < max)\n max = ch.value;\n }\n }\n return max;\n }\n}\nZodBigInt.create = (params) => {\n var _a;\n return new ZodBigInt({\n checks: [],\n typeName: ZodFirstPartyTypeKind.ZodBigInt,\n coerce: (_a = params === null || params === void 0 ? void 0 : params.coerce) !== null && _a !== void 0 ? _a : false,\n ...processCreateParams(params),\n });\n};\nclass ZodBoolean extends ZodType {\n _parse(input) {\n if (this._def.coerce) {\n input.data = Boolean(input.data);\n }\n const parsedType = this._getType(input);\n if (parsedType !== ZodParsedType.boolean) {\n const ctx = this._getOrReturnCtx(input);\n addIssueToContext(ctx, {\n code: ZodIssueCode.invalid_type,\n expected: ZodParsedType.boolean,\n received: ctx.parsedType,\n });\n return INVALID;\n }\n return OK(input.data);\n }\n}\nZodBoolean.create = (params) => {\n return new ZodBoolean({\n typeName: ZodFirstPartyTypeKind.ZodBoolean,\n coerce: (params === null || params === void 0 ? void 0 : params.coerce) || false,\n ...processCreateParams(params),\n });\n};\nclass ZodDate extends ZodType {\n _parse(input) {\n if (this._def.coerce) {\n input.data = new Date(input.data);\n }\n const parsedType = this._getType(input);\n if (parsedType !== ZodParsedType.date) {\n const ctx = this._getOrReturnCtx(input);\n addIssueToContext(ctx, {\n code: ZodIssueCode.invalid_type,\n expected: ZodParsedType.date,\n received: ctx.parsedType,\n });\n return INVALID;\n }\n if (isNaN(input.data.getTime())) {\n const ctx = this._getOrReturnCtx(input);\n addIssueToContext(ctx, {\n code: ZodIssueCode.invalid_date,\n });\n return INVALID;\n }\n const status = new ParseStatus();\n let ctx = undefined;\n for (const check of this._def.checks) {\n if (check.kind === \"min\") {\n if (input.data.getTime() < check.value) {\n ctx = this._getOrReturnCtx(input, ctx);\n addIssueToContext(ctx, {\n code: ZodIssueCode.too_small,\n message: check.message,\n inclusive: true,\n exact: false,\n minimum: check.value,\n type: \"date\",\n });\n status.dirty();\n }\n }\n else if (check.kind === \"max\") {\n if (input.data.getTime() > check.value) {\n ctx = this._getOrReturnCtx(input, ctx);\n addIssueToContext(ctx, {\n code: ZodIssueCode.too_big,\n message: check.message,\n inclusive: true,\n exact: false,\n maximum: check.value,\n type: \"date\",\n });\n status.dirty();\n }\n }\n else {\n util.assertNever(check);\n }\n }\n return {\n status: status.value,\n value: new Date(input.data.getTime()),\n };\n }\n _addCheck(check) {\n return new ZodDate({\n ...this._def,\n checks: [...this._def.checks, check],\n });\n }\n min(minDate, message) {\n return this._addCheck({\n kind: \"min\",\n value: minDate.getTime(),\n message: errorUtil.toString(message),\n });\n }\n max(maxDate, message) {\n return this._addCheck({\n kind: \"max\",\n value: maxDate.getTime(),\n message: errorUtil.toString(message),\n });\n }\n get minDate() {\n let min = null;\n for (const ch of this._def.checks) {\n if (ch.kind === \"min\") {\n if (min === null || ch.value > min)\n min = ch.value;\n }\n }\n return min != null ? new Date(min) : null;\n }\n get maxDate() {\n let max = null;\n for (const ch of this._def.checks) {\n if (ch.kind === \"max\") {\n if (max === null || ch.value < max)\n max = ch.value;\n }\n }\n return max != null ? new Date(max) : null;\n }\n}\nZodDate.create = (params) => {\n return new ZodDate({\n checks: [],\n coerce: (params === null || params === void 0 ? void 0 : params.coerce) || false,\n typeName: ZodFirstPartyTypeKind.ZodDate,\n ...processCreateParams(params),\n });\n};\nclass ZodSymbol extends ZodType {\n _parse(input) {\n const parsedType = this._getType(input);\n if (parsedType !== ZodParsedType.symbol) {\n const ctx = this._getOrReturnCtx(input);\n addIssueToContext(ctx, {\n code: ZodIssueCode.invalid_type,\n expected: ZodParsedType.symbol,\n received: ctx.parsedType,\n });\n return INVALID;\n }\n return OK(input.data);\n }\n}\nZodSymbol.create = (params) => {\n return new ZodSymbol({\n typeName: ZodFirstPartyTypeKind.ZodSymbol,\n ...processCreateParams(params),\n });\n};\nclass ZodUndefined extends ZodType {\n _parse(input) {\n const parsedType = this._getType(input);\n if (parsedType !== ZodParsedType.undefined) {\n const ctx = this._getOrReturnCtx(input);\n addIssueToContext(ctx, {\n code: ZodIssueCode.invalid_type,\n expected: ZodParsedType.undefined,\n received: ctx.parsedType,\n });\n return INVALID;\n }\n return OK(input.data);\n }\n}\nZodUndefined.create = (params) => {\n return new ZodUndefined({\n typeName: ZodFirstPartyTypeKind.ZodUndefined,\n ...processCreateParams(params),\n });\n};\nclass ZodNull extends ZodType {\n _parse(input) {\n const parsedType = this._getType(input);\n if (parsedType !== ZodParsedType.null) {\n const ctx = this._getOrReturnCtx(input);\n addIssueToContext(ctx, {\n code: ZodIssueCode.invalid_type,\n expected: ZodParsedType.null,\n received: ctx.parsedType,\n });\n return INVALID;\n }\n return OK(input.data);\n }\n}\nZodNull.create = (params) => {\n return new ZodNull({\n typeName: ZodFirstPartyTypeKind.ZodNull,\n ...processCreateParams(params),\n });\n};\nclass ZodAny extends ZodType {\n constructor() {\n super(...arguments);\n // to prevent instances of other classes from extending ZodAny. this causes issues with catchall in ZodObject.\n this._any = true;\n }\n _parse(input) {\n return OK(input.data);\n }\n}\nZodAny.create = (params) => {\n return new ZodAny({\n typeName: ZodFirstPartyTypeKind.ZodAny,\n ...processCreateParams(params),\n });\n};\nclass ZodUnknown extends ZodType {\n constructor() {\n super(...arguments);\n // required\n this._unknown = true;\n }\n _parse(input) {\n return OK(input.data);\n }\n}\nZodUnknown.create = (params) => {\n return new ZodUnknown({\n typeName: ZodFirstPartyTypeKind.ZodUnknown,\n ...processCreateParams(params),\n });\n};\nclass ZodNever extends ZodType {\n _parse(input) {\n const ctx = this._getOrReturnCtx(input);\n addIssueToContext(ctx, {\n code: ZodIssueCode.invalid_type,\n expected: ZodParsedType.never,\n received: ctx.parsedType,\n });\n return INVALID;\n }\n}\nZodNever.create = (params) => {\n return new ZodNever({\n typeName: ZodFirstPartyTypeKind.ZodNever,\n ...processCreateParams(params),\n });\n};\nclass ZodVoid extends ZodType {\n _parse(input) {\n const parsedType = this._getType(input);\n if (parsedType !== ZodParsedType.undefined) {\n const ctx = this._getOrReturnCtx(input);\n addIssueToContext(ctx, {\n code: ZodIssueCode.invalid_type,\n expected: ZodParsedType.void,\n received: ctx.parsedType,\n });\n return INVALID;\n }\n return OK(input.data);\n }\n}\nZodVoid.create = (params) => {\n return new ZodVoid({\n typeName: ZodFirstPartyTypeKind.ZodVoid,\n ...processCreateParams(params),\n });\n};\nclass ZodArray extends ZodType {\n _parse(input) {\n const { ctx, status } = this._processInputParams(input);\n const def = this._def;\n if (ctx.parsedType !== ZodParsedType.array) {\n addIssueToContext(ctx, {\n code: ZodIssueCode.invalid_type,\n expected: ZodParsedType.array,\n received: ctx.parsedType,\n });\n return INVALID;\n }\n if (def.exactLength !== null) {\n const tooBig = ctx.data.length > def.exactLength.value;\n const tooSmall = ctx.data.length < def.exactLength.value;\n if (tooBig || tooSmall) {\n addIssueToContext(ctx, {\n code: tooBig ? ZodIssueCode.too_big : ZodIssueCode.too_small,\n minimum: (tooSmall ? def.exactLength.value : undefined),\n maximum: (tooBig ? def.exactLength.value : undefined),\n type: \"array\",\n inclusive: true,\n exact: true,\n message: def.exactLength.message,\n });\n status.dirty();\n }\n }\n if (def.minLength !== null) {\n if (ctx.data.length < def.minLength.value) {\n addIssueToContext(ctx, {\n code: ZodIssueCode.too_small,\n minimum: def.minLength.value,\n type: \"array\",\n inclusive: true,\n exact: false,\n message: def.minLength.message,\n });\n status.dirty();\n }\n }\n if (def.maxLength !== null) {\n if (ctx.data.length > def.maxLength.value) {\n addIssueToContext(ctx, {\n code: ZodIssueCode.too_big,\n maximum: def.maxLength.value,\n type: \"array\",\n inclusive: true,\n exact: false,\n message: def.maxLength.message,\n });\n status.dirty();\n }\n }\n if (ctx.common.async) {\n return Promise.all([...ctx.data].map((item, i) => {\n return def.type._parseAsync(new ParseInputLazyPath(ctx, item, ctx.path, i));\n })).then((result) => {\n return ParseStatus.mergeArray(status, result);\n });\n }\n const result = [...ctx.data].map((item, i) => {\n return def.type._parseSync(new ParseInputLazyPath(ctx, item, ctx.path, i));\n });\n return ParseStatus.mergeArray(status, result);\n }\n get element() {\n return this._def.type;\n }\n min(minLength, message) {\n return new ZodArray({\n ...this._def,\n minLength: { value: minLength, message: errorUtil.toString(message) },\n });\n }\n max(maxLength, message) {\n return new ZodArray({\n ...this._def,\n maxLength: { value: maxLength, message: errorUtil.toString(message) },\n });\n }\n length(len, message) {\n return new ZodArray({\n ...this._def,\n exactLength: { value: len, message: errorUtil.toString(message) },\n });\n }\n nonempty(message) {\n return this.min(1, message);\n }\n}\nZodArray.create = (schema, params) => {\n return new ZodArray({\n type: schema,\n minLength: null,\n maxLength: null,\n exactLength: null,\n typeName: ZodFirstPartyTypeKind.ZodArray,\n ...processCreateParams(params),\n });\n};\nfunction deepPartialify(schema) {\n if (schema instanceof ZodObject) {\n const newShape = {};\n for (const key in schema.shape) {\n const fieldSchema = schema.shape[key];\n newShape[key] = ZodOptional.create(deepPartialify(fieldSchema));\n }\n return new ZodObject({\n ...schema._def,\n shape: () => newShape,\n });\n }\n else if (schema instanceof ZodArray) {\n return new ZodArray({\n ...schema._def,\n type: deepPartialify(schema.element),\n });\n }\n else if (schema instanceof ZodOptional) {\n return ZodOptional.create(deepPartialify(schema.unwrap()));\n }\n else if (schema instanceof ZodNullable) {\n return ZodNullable.create(deepPartialify(schema.unwrap()));\n }\n else if (schema instanceof ZodTuple) {\n return ZodTuple.create(schema.items.map((item) => deepPartialify(item)));\n }\n else {\n return schema;\n }\n}\nclass ZodObject extends ZodType {\n constructor() {\n super(...arguments);\n this._cached = null;\n /**\n * @deprecated In most cases, this is no longer needed - unknown properties are now silently stripped.\n * If you want to pass through unknown properties, use `.passthrough()` instead.\n */\n this.nonstrict = this.passthrough;\n // extend<\n // Augmentation extends ZodRawShape,\n // NewOutput extends util.flatten<{\n // [k in keyof Augmentation | keyof Output]: k extends keyof Augmentation\n // ? Augmentation[k][\"_output\"]\n // : k extends keyof Output\n // ? Output[k]\n // : never;\n // }>,\n // NewInput extends util.flatten<{\n // [k in keyof Augmentation | keyof Input]: k extends keyof Augmentation\n // ? Augmentation[k][\"_input\"]\n // : k extends keyof Input\n // ? Input[k]\n // : never;\n // }>\n // >(\n // augmentation: Augmentation\n // ): ZodObject<\n // extendShape,\n // UnknownKeys,\n // Catchall,\n // NewOutput,\n // NewInput\n // > {\n // return new ZodObject({\n // ...this._def,\n // shape: () => ({\n // ...this._def.shape(),\n // ...augmentation,\n // }),\n // }) as any;\n // }\n /**\n * @deprecated Use `.extend` instead\n * */\n this.augment = this.extend;\n }\n _getCached() {\n if (this._cached !== null)\n return this._cached;\n const shape = this._def.shape();\n const keys = util.objectKeys(shape);\n return (this._cached = { shape, keys });\n }\n _parse(input) {\n const parsedType = this._getType(input);\n if (parsedType !== ZodParsedType.object) {\n const ctx = this._getOrReturnCtx(input);\n addIssueToContext(ctx, {\n code: ZodIssueCode.invalid_type,\n expected: ZodParsedType.object,\n received: ctx.parsedType,\n });\n return INVALID;\n }\n const { status, ctx } = this._processInputParams(input);\n const { shape, keys: shapeKeys } = this._getCached();\n const extraKeys = [];\n if (!(this._def.catchall instanceof ZodNever &&\n this._def.unknownKeys === \"strip\")) {\n for (const key in ctx.data) {\n if (!shapeKeys.includes(key)) {\n extraKeys.push(key);\n }\n }\n }\n const pairs = [];\n for (const key of shapeKeys) {\n const keyValidator = shape[key];\n const value = ctx.data[key];\n pairs.push({\n key: { status: \"valid\", value: key },\n value: keyValidator._parse(new ParseInputLazyPath(ctx, value, ctx.path, key)),\n alwaysSet: key in ctx.data,\n });\n }\n if (this._def.catchall instanceof ZodNever) {\n const unknownKeys = this._def.unknownKeys;\n if (unknownKeys === \"passthrough\") {\n for (const key of extraKeys) {\n pairs.push({\n key: { status: \"valid\", value: key },\n value: { status: \"valid\", value: ctx.data[key] },\n });\n }\n }\n else if (unknownKeys === \"strict\") {\n if (extraKeys.length > 0) {\n addIssueToContext(ctx, {\n code: ZodIssueCode.unrecognized_keys,\n keys: extraKeys,\n });\n status.dirty();\n }\n }\n else if (unknownKeys === \"strip\") ;\n else {\n throw new Error(`Internal ZodObject error: invalid unknownKeys value.`);\n }\n }\n else {\n // run catchall validation\n const catchall = this._def.catchall;\n for (const key of extraKeys) {\n const value = ctx.data[key];\n pairs.push({\n key: { status: \"valid\", value: key },\n value: catchall._parse(new ParseInputLazyPath(ctx, value, ctx.path, key) //, ctx.child(key), value, getParsedType(value)\n ),\n alwaysSet: key in ctx.data,\n });\n }\n }\n if (ctx.common.async) {\n return Promise.resolve()\n .then(async () => {\n const syncPairs = [];\n for (const pair of pairs) {\n const key = await pair.key;\n const value = await pair.value;\n syncPairs.push({\n key,\n value,\n alwaysSet: pair.alwaysSet,\n });\n }\n return syncPairs;\n })\n .then((syncPairs) => {\n return ParseStatus.mergeObjectSync(status, syncPairs);\n });\n }\n else {\n return ParseStatus.mergeObjectSync(status, pairs);\n }\n }\n get shape() {\n return this._def.shape();\n }\n strict(message) {\n errorUtil.errToObj;\n return new ZodObject({\n ...this._def,\n unknownKeys: \"strict\",\n ...(message !== undefined\n ? {\n errorMap: (issue, ctx) => {\n var _a, _b, _c, _d;\n const defaultError = (_c = (_b = (_a = this._def).errorMap) === null || _b === void 0 ? void 0 : _b.call(_a, issue, ctx).message) !== null && _c !== void 0 ? _c : ctx.defaultError;\n if (issue.code === \"unrecognized_keys\")\n return {\n message: (_d = errorUtil.errToObj(message).message) !== null && _d !== void 0 ? _d : defaultError,\n };\n return {\n message: defaultError,\n };\n },\n }\n : {}),\n });\n }\n strip() {\n return new ZodObject({\n ...this._def,\n unknownKeys: \"strip\",\n });\n }\n passthrough() {\n return new ZodObject({\n ...this._def,\n unknownKeys: \"passthrough\",\n });\n }\n // const AugmentFactory =\n // (def: Def) =>\n // (\n // augmentation: Augmentation\n // ): ZodObject<\n // extendShape, Augmentation>,\n // Def[\"unknownKeys\"],\n // Def[\"catchall\"]\n // > => {\n // return new ZodObject({\n // ...def,\n // shape: () => ({\n // ...def.shape(),\n // ...augmentation,\n // }),\n // }) as any;\n // };\n extend(augmentation) {\n return new ZodObject({\n ...this._def,\n shape: () => ({\n ...this._def.shape(),\n ...augmentation,\n }),\n });\n }\n /**\n * Prior to zod@1.0.12 there was a bug in the\n * inferred type of merged objects. Please\n * upgrade if you are experiencing issues.\n */\n merge(merging) {\n const merged = new ZodObject({\n unknownKeys: merging._def.unknownKeys,\n catchall: merging._def.catchall,\n shape: () => ({\n ...this._def.shape(),\n ...merging._def.shape(),\n }),\n typeName: ZodFirstPartyTypeKind.ZodObject,\n });\n return merged;\n }\n // merge<\n // Incoming extends AnyZodObject,\n // Augmentation extends Incoming[\"shape\"],\n // NewOutput extends {\n // [k in keyof Augmentation | keyof Output]: k extends keyof Augmentation\n // ? Augmentation[k][\"_output\"]\n // : k extends keyof Output\n // ? Output[k]\n // : never;\n // },\n // NewInput extends {\n // [k in keyof Augmentation | keyof Input]: k extends keyof Augmentation\n // ? Augmentation[k][\"_input\"]\n // : k extends keyof Input\n // ? Input[k]\n // : never;\n // }\n // >(\n // merging: Incoming\n // ): ZodObject<\n // extendShape>,\n // Incoming[\"_def\"][\"unknownKeys\"],\n // Incoming[\"_def\"][\"catchall\"],\n // NewOutput,\n // NewInput\n // > {\n // const merged: any = new ZodObject({\n // unknownKeys: merging._def.unknownKeys,\n // catchall: merging._def.catchall,\n // shape: () =>\n // objectUtil.mergeShapes(this._def.shape(), merging._def.shape()),\n // typeName: ZodFirstPartyTypeKind.ZodObject,\n // }) as any;\n // return merged;\n // }\n setKey(key, schema) {\n return this.augment({ [key]: schema });\n }\n // merge(\n // merging: Incoming\n // ): //ZodObject = (merging) => {\n // ZodObject<\n // extendShape>,\n // Incoming[\"_def\"][\"unknownKeys\"],\n // Incoming[\"_def\"][\"catchall\"]\n // > {\n // // const mergedShape = objectUtil.mergeShapes(\n // // this._def.shape(),\n // // merging._def.shape()\n // // );\n // const merged: any = new ZodObject({\n // unknownKeys: merging._def.unknownKeys,\n // catchall: merging._def.catchall,\n // shape: () =>\n // objectUtil.mergeShapes(this._def.shape(), merging._def.shape()),\n // typeName: ZodFirstPartyTypeKind.ZodObject,\n // }) as any;\n // return merged;\n // }\n catchall(index) {\n return new ZodObject({\n ...this._def,\n catchall: index,\n });\n }\n pick(mask) {\n const shape = {};\n util.objectKeys(mask).forEach((key) => {\n if (mask[key] && this.shape[key]) {\n shape[key] = this.shape[key];\n }\n });\n return new ZodObject({\n ...this._def,\n shape: () => shape,\n });\n }\n omit(mask) {\n const shape = {};\n util.objectKeys(this.shape).forEach((key) => {\n if (!mask[key]) {\n shape[key] = this.shape[key];\n }\n });\n return new ZodObject({\n ...this._def,\n shape: () => shape,\n });\n }\n /**\n * @deprecated\n */\n deepPartial() {\n return deepPartialify(this);\n }\n partial(mask) {\n const newShape = {};\n util.objectKeys(this.shape).forEach((key) => {\n const fieldSchema = this.shape[key];\n if (mask && !mask[key]) {\n newShape[key] = fieldSchema;\n }\n else {\n newShape[key] = fieldSchema.optional();\n }\n });\n return new ZodObject({\n ...this._def,\n shape: () => newShape,\n });\n }\n required(mask) {\n const newShape = {};\n util.objectKeys(this.shape).forEach((key) => {\n if (mask && !mask[key]) {\n newShape[key] = this.shape[key];\n }\n else {\n const fieldSchema = this.shape[key];\n let newField = fieldSchema;\n while (newField instanceof ZodOptional) {\n newField = newField._def.innerType;\n }\n newShape[key] = newField;\n }\n });\n return new ZodObject({\n ...this._def,\n shape: () => newShape,\n });\n }\n keyof() {\n return createZodEnum(util.objectKeys(this.shape));\n }\n}\nZodObject.create = (shape, params) => {\n return new ZodObject({\n shape: () => shape,\n unknownKeys: \"strip\",\n catchall: ZodNever.create(),\n typeName: ZodFirstPartyTypeKind.ZodObject,\n ...processCreateParams(params),\n });\n};\nZodObject.strictCreate = (shape, params) => {\n return new ZodObject({\n shape: () => shape,\n unknownKeys: \"strict\",\n catchall: ZodNever.create(),\n typeName: ZodFirstPartyTypeKind.ZodObject,\n ...processCreateParams(params),\n });\n};\nZodObject.lazycreate = (shape, params) => {\n return new ZodObject({\n shape,\n unknownKeys: \"strip\",\n catchall: ZodNever.create(),\n typeName: ZodFirstPartyTypeKind.ZodObject,\n ...processCreateParams(params),\n });\n};\nclass ZodUnion extends ZodType {\n _parse(input) {\n const { ctx } = this._processInputParams(input);\n const options = this._def.options;\n function handleResults(results) {\n // return first issue-free validation if it exists\n for (const result of results) {\n if (result.result.status === \"valid\") {\n return result.result;\n }\n }\n for (const result of results) {\n if (result.result.status === \"dirty\") {\n // add issues from dirty option\n ctx.common.issues.push(...result.ctx.common.issues);\n return result.result;\n }\n }\n // return invalid\n const unionErrors = results.map((result) => new ZodError(result.ctx.common.issues));\n addIssueToContext(ctx, {\n code: ZodIssueCode.invalid_union,\n unionErrors,\n });\n return INVALID;\n }\n if (ctx.common.async) {\n return Promise.all(options.map(async (option) => {\n const childCtx = {\n ...ctx,\n common: {\n ...ctx.common,\n issues: [],\n },\n parent: null,\n };\n return {\n result: await option._parseAsync({\n data: ctx.data,\n path: ctx.path,\n parent: childCtx,\n }),\n ctx: childCtx,\n };\n })).then(handleResults);\n }\n else {\n let dirty = undefined;\n const issues = [];\n for (const option of options) {\n const childCtx = {\n ...ctx,\n common: {\n ...ctx.common,\n issues: [],\n },\n parent: null,\n };\n const result = option._parseSync({\n data: ctx.data,\n path: ctx.path,\n parent: childCtx,\n });\n if (result.status === \"valid\") {\n return result;\n }\n else if (result.status === \"dirty\" && !dirty) {\n dirty = { result, ctx: childCtx };\n }\n if (childCtx.common.issues.length) {\n issues.push(childCtx.common.issues);\n }\n }\n if (dirty) {\n ctx.common.issues.push(...dirty.ctx.common.issues);\n return dirty.result;\n }\n const unionErrors = issues.map((issues) => new ZodError(issues));\n addIssueToContext(ctx, {\n code: ZodIssueCode.invalid_union,\n unionErrors,\n });\n return INVALID;\n }\n }\n get options() {\n return this._def.options;\n }\n}\nZodUnion.create = (types, params) => {\n return new ZodUnion({\n options: types,\n typeName: ZodFirstPartyTypeKind.ZodUnion,\n ...processCreateParams(params),\n });\n};\n/////////////////////////////////////////////////////\n/////////////////////////////////////////////////////\n////////// //////////\n////////// ZodDiscriminatedUnion //////////\n////////// //////////\n/////////////////////////////////////////////////////\n/////////////////////////////////////////////////////\nconst getDiscriminator = (type) => {\n if (type instanceof ZodLazy) {\n return getDiscriminator(type.schema);\n }\n else if (type instanceof ZodEffects) {\n return getDiscriminator(type.innerType());\n }\n else if (type instanceof ZodLiteral) {\n return [type.value];\n }\n else if (type instanceof ZodEnum) {\n return type.options;\n }\n else if (type instanceof ZodNativeEnum) {\n // eslint-disable-next-line ban/ban\n return util.objectValues(type.enum);\n }\n else if (type instanceof ZodDefault) {\n return getDiscriminator(type._def.innerType);\n }\n else if (type instanceof ZodUndefined) {\n return [undefined];\n }\n else if (type instanceof ZodNull) {\n return [null];\n }\n else if (type instanceof ZodOptional) {\n return [undefined, ...getDiscriminator(type.unwrap())];\n }\n else if (type instanceof ZodNullable) {\n return [null, ...getDiscriminator(type.unwrap())];\n }\n else if (type instanceof ZodBranded) {\n return getDiscriminator(type.unwrap());\n }\n else if (type instanceof ZodReadonly) {\n return getDiscriminator(type.unwrap());\n }\n else if (type instanceof ZodCatch) {\n return getDiscriminator(type._def.innerType);\n }\n else {\n return [];\n }\n};\nclass ZodDiscriminatedUnion extends ZodType {\n _parse(input) {\n const { ctx } = this._processInputParams(input);\n if (ctx.parsedType !== ZodParsedType.object) {\n addIssueToContext(ctx, {\n code: ZodIssueCode.invalid_type,\n expected: ZodParsedType.object,\n received: ctx.parsedType,\n });\n return INVALID;\n }\n const discriminator = this.discriminator;\n const discriminatorValue = ctx.data[discriminator];\n const option = this.optionsMap.get(discriminatorValue);\n if (!option) {\n addIssueToContext(ctx, {\n code: ZodIssueCode.invalid_union_discriminator,\n options: Array.from(this.optionsMap.keys()),\n path: [discriminator],\n });\n return INVALID;\n }\n if (ctx.common.async) {\n return option._parseAsync({\n data: ctx.data,\n path: ctx.path,\n parent: ctx,\n });\n }\n else {\n return option._parseSync({\n data: ctx.data,\n path: ctx.path,\n parent: ctx,\n });\n }\n }\n get discriminator() {\n return this._def.discriminator;\n }\n get options() {\n return this._def.options;\n }\n get optionsMap() {\n return this._def.optionsMap;\n }\n /**\n * The constructor of the discriminated union schema. Its behaviour is very similar to that of the normal z.union() constructor.\n * However, it only allows a union of objects, all of which need to share a discriminator property. This property must\n * have a different value for each object in the union.\n * @param discriminator the name of the discriminator property\n * @param types an array of object schemas\n * @param params\n */\n static create(discriminator, options, params) {\n // Get all the valid discriminator values\n const optionsMap = new Map();\n // try {\n for (const type of options) {\n const discriminatorValues = getDiscriminator(type.shape[discriminator]);\n if (!discriminatorValues.length) {\n throw new Error(`A discriminator value for key \\`${discriminator}\\` could not be extracted from all schema options`);\n }\n for (const value of discriminatorValues) {\n if (optionsMap.has(value)) {\n throw new Error(`Discriminator property ${String(discriminator)} has duplicate value ${String(value)}`);\n }\n optionsMap.set(value, type);\n }\n }\n return new ZodDiscriminatedUnion({\n typeName: ZodFirstPartyTypeKind.ZodDiscriminatedUnion,\n discriminator,\n options,\n optionsMap,\n ...processCreateParams(params),\n });\n }\n}\nfunction mergeValues(a, b) {\n const aType = getParsedType(a);\n const bType = getParsedType(b);\n if (a === b) {\n return { valid: true, data: a };\n }\n else if (aType === ZodParsedType.object && bType === ZodParsedType.object) {\n const bKeys = util.objectKeys(b);\n const sharedKeys = util\n .objectKeys(a)\n .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 { valid: false };\n }\n newObj[key] = sharedValue.data;\n }\n return { valid: true, data: newObj };\n }\n else if (aType === ZodParsedType.array && bType === ZodParsedType.array) {\n if (a.length !== b.length) {\n return { valid: false };\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 { valid: false };\n }\n newArray.push(sharedValue.data);\n }\n return { valid: true, data: newArray };\n }\n else if (aType === ZodParsedType.date &&\n bType === ZodParsedType.date &&\n +a === +b) {\n return { valid: true, data: a };\n }\n else {\n return { valid: false };\n }\n}\nclass ZodIntersection extends ZodType {\n _parse(input) {\n const { status, ctx } = this._processInputParams(input);\n const handleParsed = (parsedLeft, parsedRight) => {\n if (isAborted(parsedLeft) || isAborted(parsedRight)) {\n return INVALID;\n }\n const merged = mergeValues(parsedLeft.value, parsedRight.value);\n if (!merged.valid) {\n addIssueToContext(ctx, {\n code: ZodIssueCode.invalid_intersection_types,\n });\n return INVALID;\n }\n if (isDirty(parsedLeft) || isDirty(parsedRight)) {\n status.dirty();\n }\n return { status: status.value, value: merged.data };\n };\n if (ctx.common.async) {\n return Promise.all([\n this._def.left._parseAsync({\n data: ctx.data,\n path: ctx.path,\n parent: ctx,\n }),\n this._def.right._parseAsync({\n data: ctx.data,\n path: ctx.path,\n parent: ctx,\n }),\n ]).then(([left, right]) => handleParsed(left, right));\n }\n else {\n return handleParsed(this._def.left._parseSync({\n data: ctx.data,\n path: ctx.path,\n parent: ctx,\n }), this._def.right._parseSync({\n data: ctx.data,\n path: ctx.path,\n parent: ctx,\n }));\n }\n }\n}\nZodIntersection.create = (left, right, params) => {\n return new ZodIntersection({\n left: left,\n right: right,\n typeName: ZodFirstPartyTypeKind.ZodIntersection,\n ...processCreateParams(params),\n });\n};\nclass ZodTuple extends ZodType {\n _parse(input) {\n const { status, ctx } = this._processInputParams(input);\n if (ctx.parsedType !== ZodParsedType.array) {\n addIssueToContext(ctx, {\n code: ZodIssueCode.invalid_type,\n expected: ZodParsedType.array,\n received: ctx.parsedType,\n });\n return INVALID;\n }\n if (ctx.data.length < this._def.items.length) {\n addIssueToContext(ctx, {\n code: ZodIssueCode.too_small,\n minimum: this._def.items.length,\n inclusive: true,\n exact: false,\n type: \"array\",\n });\n return INVALID;\n }\n const rest = this._def.rest;\n if (!rest && ctx.data.length > this._def.items.length) {\n addIssueToContext(ctx, {\n code: ZodIssueCode.too_big,\n maximum: this._def.items.length,\n inclusive: true,\n exact: false,\n type: \"array\",\n });\n status.dirty();\n }\n const items = [...ctx.data]\n .map((item, itemIndex) => {\n const schema = this._def.items[itemIndex] || this._def.rest;\n if (!schema)\n return null;\n return schema._parse(new ParseInputLazyPath(ctx, item, ctx.path, itemIndex));\n })\n .filter((x) => !!x); // filter nulls\n if (ctx.common.async) {\n return Promise.all(items).then((results) => {\n return ParseStatus.mergeArray(status, results);\n });\n }\n else {\n return ParseStatus.mergeArray(status, items);\n }\n }\n get items() {\n return this._def.items;\n }\n rest(rest) {\n return new ZodTuple({\n ...this._def,\n rest,\n });\n }\n}\nZodTuple.create = (schemas, params) => {\n if (!Array.isArray(schemas)) {\n throw new Error(\"You must pass an array of schemas to z.tuple([ ... ])\");\n }\n return new ZodTuple({\n items: schemas,\n typeName: ZodFirstPartyTypeKind.ZodTuple,\n rest: null,\n ...processCreateParams(params),\n });\n};\nclass ZodRecord extends ZodType {\n get keySchema() {\n return this._def.keyType;\n }\n get valueSchema() {\n return this._def.valueType;\n }\n _parse(input) {\n const { status, ctx } = this._processInputParams(input);\n if (ctx.parsedType !== ZodParsedType.object) {\n addIssueToContext(ctx, {\n code: ZodIssueCode.invalid_type,\n expected: ZodParsedType.object,\n received: ctx.parsedType,\n });\n return INVALID;\n }\n const pairs = [];\n const keyType = this._def.keyType;\n const valueType = this._def.valueType;\n for (const key in ctx.data) {\n pairs.push({\n key: keyType._parse(new ParseInputLazyPath(ctx, key, ctx.path, key)),\n value: valueType._parse(new ParseInputLazyPath(ctx, ctx.data[key], ctx.path, key)),\n alwaysSet: key in ctx.data,\n });\n }\n if (ctx.common.async) {\n return ParseStatus.mergeObjectAsync(status, pairs);\n }\n else {\n return ParseStatus.mergeObjectSync(status, pairs);\n }\n }\n get element() {\n return this._def.valueType;\n }\n static create(first, second, third) {\n if (second instanceof ZodType) {\n return new ZodRecord({\n keyType: first,\n valueType: second,\n typeName: ZodFirstPartyTypeKind.ZodRecord,\n ...processCreateParams(third),\n });\n }\n return new ZodRecord({\n keyType: ZodString.create(),\n valueType: first,\n typeName: ZodFirstPartyTypeKind.ZodRecord,\n ...processCreateParams(second),\n });\n }\n}\nclass ZodMap extends ZodType {\n get keySchema() {\n return this._def.keyType;\n }\n get valueSchema() {\n return this._def.valueType;\n }\n _parse(input) {\n const { status, ctx } = this._processInputParams(input);\n if (ctx.parsedType !== ZodParsedType.map) {\n addIssueToContext(ctx, {\n code: ZodIssueCode.invalid_type,\n expected: ZodParsedType.map,\n received: ctx.parsedType,\n });\n return INVALID;\n }\n const keyType = this._def.keyType;\n const valueType = this._def.valueType;\n const pairs = [...ctx.data.entries()].map(([key, value], index) => {\n return {\n key: keyType._parse(new ParseInputLazyPath(ctx, key, ctx.path, [index, \"key\"])),\n value: valueType._parse(new ParseInputLazyPath(ctx, value, ctx.path, [index, \"value\"])),\n };\n });\n if (ctx.common.async) {\n const finalMap = new Map();\n return Promise.resolve().then(async () => {\n for (const pair of pairs) {\n const key = await pair.key;\n const value = await pair.value;\n if (key.status === \"aborted\" || value.status === \"aborted\") {\n return INVALID;\n }\n if (key.status === \"dirty\" || value.status === \"dirty\") {\n status.dirty();\n }\n finalMap.set(key.value, value.value);\n }\n return { status: status.value, value: finalMap };\n });\n }\n else {\n const finalMap = new Map();\n for (const pair of pairs) {\n const key = pair.key;\n const value = pair.value;\n if (key.status === \"aborted\" || value.status === \"aborted\") {\n return INVALID;\n }\n if (key.status === \"dirty\" || value.status === \"dirty\") {\n status.dirty();\n }\n finalMap.set(key.value, value.value);\n }\n return { status: status.value, value: finalMap };\n }\n }\n}\nZodMap.create = (keyType, valueType, params) => {\n return new ZodMap({\n valueType,\n keyType,\n typeName: ZodFirstPartyTypeKind.ZodMap,\n ...processCreateParams(params),\n });\n};\nclass ZodSet extends ZodType {\n _parse(input) {\n const { status, ctx } = this._processInputParams(input);\n if (ctx.parsedType !== ZodParsedType.set) {\n addIssueToContext(ctx, {\n code: ZodIssueCode.invalid_type,\n expected: ZodParsedType.set,\n received: ctx.parsedType,\n });\n return INVALID;\n }\n const def = this._def;\n if (def.minSize !== null) {\n if (ctx.data.size < def.minSize.value) {\n addIssueToContext(ctx, {\n code: ZodIssueCode.too_small,\n minimum: def.minSize.value,\n type: \"set\",\n inclusive: true,\n exact: false,\n message: def.minSize.message,\n });\n status.dirty();\n }\n }\n if (def.maxSize !== null) {\n if (ctx.data.size > def.maxSize.value) {\n addIssueToContext(ctx, {\n code: ZodIssueCode.too_big,\n maximum: def.maxSize.value,\n type: \"set\",\n inclusive: true,\n exact: false,\n message: def.maxSize.message,\n });\n status.dirty();\n }\n }\n const valueType = this._def.valueType;\n function finalizeSet(elements) {\n const parsedSet = new Set();\n for (const element of elements) {\n if (element.status === \"aborted\")\n return INVALID;\n if (element.status === \"dirty\")\n status.dirty();\n parsedSet.add(element.value);\n }\n return { status: status.value, value: parsedSet };\n }\n const elements = [...ctx.data.values()].map((item, i) => valueType._parse(new ParseInputLazyPath(ctx, item, ctx.path, i)));\n if (ctx.common.async) {\n return Promise.all(elements).then((elements) => finalizeSet(elements));\n }\n else {\n return finalizeSet(elements);\n }\n }\n min(minSize, message) {\n return new ZodSet({\n ...this._def,\n minSize: { value: minSize, message: errorUtil.toString(message) },\n });\n }\n max(maxSize, message) {\n return new ZodSet({\n ...this._def,\n maxSize: { value: maxSize, message: errorUtil.toString(message) },\n });\n }\n size(size, message) {\n return this.min(size, message).max(size, message);\n }\n nonempty(message) {\n return this.min(1, message);\n }\n}\nZodSet.create = (valueType, params) => {\n return new ZodSet({\n valueType,\n minSize: null,\n maxSize: null,\n typeName: ZodFirstPartyTypeKind.ZodSet,\n ...processCreateParams(params),\n });\n};\nclass ZodFunction extends ZodType {\n constructor() {\n super(...arguments);\n this.validate = this.implement;\n }\n _parse(input) {\n const { ctx } = this._processInputParams(input);\n if (ctx.parsedType !== ZodParsedType.function) {\n addIssueToContext(ctx, {\n code: ZodIssueCode.invalid_type,\n expected: ZodParsedType.function,\n received: ctx.parsedType,\n });\n return INVALID;\n }\n function makeArgsIssue(args, error) {\n return makeIssue({\n data: args,\n path: ctx.path,\n errorMaps: [\n ctx.common.contextualErrorMap,\n ctx.schemaErrorMap,\n getErrorMap(),\n errorMap,\n ].filter((x) => !!x),\n issueData: {\n code: ZodIssueCode.invalid_arguments,\n argumentsError: error,\n },\n });\n }\n function makeReturnsIssue(returns, error) {\n return makeIssue({\n data: returns,\n path: ctx.path,\n errorMaps: [\n ctx.common.contextualErrorMap,\n ctx.schemaErrorMap,\n getErrorMap(),\n errorMap,\n ].filter((x) => !!x),\n issueData: {\n code: ZodIssueCode.invalid_return_type,\n returnTypeError: error,\n },\n });\n }\n const params = { errorMap: ctx.common.contextualErrorMap };\n const fn = ctx.data;\n if (this._def.returns instanceof ZodPromise) {\n // Would love a way to avoid disabling this rule, but we need\n // an alias (using an arrow function was what caused 2651).\n // eslint-disable-next-line @typescript-eslint/no-this-alias\n const me = this;\n return OK(async function (...args) {\n const error = new ZodError([]);\n const parsedArgs = await me._def.args\n .parseAsync(args, params)\n .catch((e) => {\n error.addIssue(makeArgsIssue(args, e));\n throw error;\n });\n const result = await Reflect.apply(fn, this, parsedArgs);\n const parsedReturns = await me._def.returns._def.type\n .parseAsync(result, params)\n .catch((e) => {\n error.addIssue(makeReturnsIssue(result, e));\n throw error;\n });\n return parsedReturns;\n });\n }\n else {\n // Would love a way to avoid disabling this rule, but we need\n // an alias (using an arrow function was what caused 2651).\n // eslint-disable-next-line @typescript-eslint/no-this-alias\n const me = this;\n return OK(function (...args) {\n const parsedArgs = me._def.args.safeParse(args, params);\n if (!parsedArgs.success) {\n throw new ZodError([makeArgsIssue(args, parsedArgs.error)]);\n }\n const result = Reflect.apply(fn, this, parsedArgs.data);\n const parsedReturns = me._def.returns.safeParse(result, params);\n if (!parsedReturns.success) {\n throw new ZodError([makeReturnsIssue(result, parsedReturns.error)]);\n }\n return parsedReturns.data;\n });\n }\n }\n parameters() {\n return this._def.args;\n }\n returnType() {\n return this._def.returns;\n }\n args(...items) {\n return new ZodFunction({\n ...this._def,\n args: ZodTuple.create(items).rest(ZodUnknown.create()),\n });\n }\n returns(returnType) {\n return new ZodFunction({\n ...this._def,\n returns: returnType,\n });\n }\n implement(func) {\n const validatedFunc = this.parse(func);\n return validatedFunc;\n }\n strictImplement(func) {\n const validatedFunc = this.parse(func);\n return validatedFunc;\n }\n static create(args, returns, params) {\n return new ZodFunction({\n args: (args\n ? args\n : ZodTuple.create([]).rest(ZodUnknown.create())),\n returns: returns || ZodUnknown.create(),\n typeName: ZodFirstPartyTypeKind.ZodFunction,\n ...processCreateParams(params),\n });\n }\n}\nclass ZodLazy extends ZodType {\n get schema() {\n return this._def.getter();\n }\n _parse(input) {\n const { ctx } = this._processInputParams(input);\n const lazySchema = this._def.getter();\n return lazySchema._parse({ data: ctx.data, path: ctx.path, parent: ctx });\n }\n}\nZodLazy.create = (getter, params) => {\n return new ZodLazy({\n getter: getter,\n typeName: ZodFirstPartyTypeKind.ZodLazy,\n ...processCreateParams(params),\n });\n};\nclass ZodLiteral extends ZodType {\n _parse(input) {\n if (input.data !== this._def.value) {\n const ctx = this._getOrReturnCtx(input);\n addIssueToContext(ctx, {\n received: ctx.data,\n code: ZodIssueCode.invalid_literal,\n expected: this._def.value,\n });\n return INVALID;\n }\n return { status: \"valid\", value: input.data };\n }\n get value() {\n return this._def.value;\n }\n}\nZodLiteral.create = (value, params) => {\n return new ZodLiteral({\n value: value,\n typeName: ZodFirstPartyTypeKind.ZodLiteral,\n ...processCreateParams(params),\n });\n};\nfunction createZodEnum(values, params) {\n return new ZodEnum({\n values,\n typeName: ZodFirstPartyTypeKind.ZodEnum,\n ...processCreateParams(params),\n });\n}\nclass ZodEnum extends ZodType {\n constructor() {\n super(...arguments);\n _ZodEnum_cache.set(this, void 0);\n }\n _parse(input) {\n if (typeof input.data !== \"string\") {\n const ctx = this._getOrReturnCtx(input);\n const expectedValues = this._def.values;\n addIssueToContext(ctx, {\n expected: util.joinValues(expectedValues),\n received: ctx.parsedType,\n code: ZodIssueCode.invalid_type,\n });\n return INVALID;\n }\n if (!__classPrivateFieldGet(this, _ZodEnum_cache, \"f\")) {\n __classPrivateFieldSet(this, _ZodEnum_cache, new Set(this._def.values), \"f\");\n }\n if (!__classPrivateFieldGet(this, _ZodEnum_cache, \"f\").has(input.data)) {\n const ctx = this._getOrReturnCtx(input);\n const expectedValues = this._def.values;\n addIssueToContext(ctx, {\n received: ctx.data,\n code: ZodIssueCode.invalid_enum_value,\n options: expectedValues,\n });\n return INVALID;\n }\n return OK(input.data);\n }\n get options() {\n return this._def.values;\n }\n get enum() {\n const enumValues = {};\n for (const val of this._def.values) {\n enumValues[val] = val;\n }\n return enumValues;\n }\n get Values() {\n const enumValues = {};\n for (const val of this._def.values) {\n enumValues[val] = val;\n }\n return enumValues;\n }\n get Enum() {\n const enumValues = {};\n for (const val of this._def.values) {\n enumValues[val] = val;\n }\n return enumValues;\n }\n extract(values, newDef = this._def) {\n return ZodEnum.create(values, {\n ...this._def,\n ...newDef,\n });\n }\n exclude(values, newDef = this._def) {\n return ZodEnum.create(this.options.filter((opt) => !values.includes(opt)), {\n ...this._def,\n ...newDef,\n });\n }\n}\n_ZodEnum_cache = new WeakMap();\nZodEnum.create = createZodEnum;\nclass ZodNativeEnum extends ZodType {\n constructor() {\n super(...arguments);\n _ZodNativeEnum_cache.set(this, void 0);\n }\n _parse(input) {\n const nativeEnumValues = util.getValidEnumValues(this._def.values);\n const ctx = this._getOrReturnCtx(input);\n if (ctx.parsedType !== ZodParsedType.string &&\n ctx.parsedType !== ZodParsedType.number) {\n const expectedValues = util.objectValues(nativeEnumValues);\n addIssueToContext(ctx, {\n expected: util.joinValues(expectedValues),\n received: ctx.parsedType,\n code: ZodIssueCode.invalid_type,\n });\n return INVALID;\n }\n if (!__classPrivateFieldGet(this, _ZodNativeEnum_cache, \"f\")) {\n __classPrivateFieldSet(this, _ZodNativeEnum_cache, new Set(util.getValidEnumValues(this._def.values)), \"f\");\n }\n if (!__classPrivateFieldGet(this, _ZodNativeEnum_cache, \"f\").has(input.data)) {\n const expectedValues = util.objectValues(nativeEnumValues);\n addIssueToContext(ctx, {\n received: ctx.data,\n code: ZodIssueCode.invalid_enum_value,\n options: expectedValues,\n });\n return INVALID;\n }\n return OK(input.data);\n }\n get enum() {\n return this._def.values;\n }\n}\n_ZodNativeEnum_cache = new WeakMap();\nZodNativeEnum.create = (values, params) => {\n return new ZodNativeEnum({\n values: values,\n typeName: ZodFirstPartyTypeKind.ZodNativeEnum,\n ...processCreateParams(params),\n });\n};\nclass ZodPromise extends ZodType {\n unwrap() {\n return this._def.type;\n }\n _parse(input) {\n const { ctx } = this._processInputParams(input);\n if (ctx.parsedType !== ZodParsedType.promise &&\n ctx.common.async === false) {\n addIssueToContext(ctx, {\n code: ZodIssueCode.invalid_type,\n expected: ZodParsedType.promise,\n received: ctx.parsedType,\n });\n return INVALID;\n }\n const promisified = ctx.parsedType === ZodParsedType.promise\n ? ctx.data\n : Promise.resolve(ctx.data);\n return OK(promisified.then((data) => {\n return this._def.type.parseAsync(data, {\n path: ctx.path,\n errorMap: ctx.common.contextualErrorMap,\n });\n }));\n }\n}\nZodPromise.create = (schema, params) => {\n return new ZodPromise({\n type: schema,\n typeName: ZodFirstPartyTypeKind.ZodPromise,\n ...processCreateParams(params),\n });\n};\nclass ZodEffects extends ZodType {\n innerType() {\n return this._def.schema;\n }\n sourceType() {\n return this._def.schema._def.typeName === ZodFirstPartyTypeKind.ZodEffects\n ? this._def.schema.sourceType()\n : this._def.schema;\n }\n _parse(input) {\n const { status, ctx } = this._processInputParams(input);\n const effect = this._def.effect || null;\n const checkCtx = {\n addIssue: (arg) => {\n addIssueToContext(ctx, arg);\n if (arg.fatal) {\n status.abort();\n }\n else {\n status.dirty();\n }\n },\n get path() {\n return ctx.path;\n },\n };\n checkCtx.addIssue = checkCtx.addIssue.bind(checkCtx);\n if (effect.type === \"preprocess\") {\n const processed = effect.transform(ctx.data, checkCtx);\n if (ctx.common.async) {\n return Promise.resolve(processed).then(async (processed) => {\n if (status.value === \"aborted\")\n return INVALID;\n const result = await this._def.schema._parseAsync({\n data: processed,\n path: ctx.path,\n parent: ctx,\n });\n if (result.status === \"aborted\")\n return INVALID;\n if (result.status === \"dirty\")\n return DIRTY(result.value);\n if (status.value === \"dirty\")\n return DIRTY(result.value);\n return result;\n });\n }\n else {\n if (status.value === \"aborted\")\n return INVALID;\n const result = this._def.schema._parseSync({\n data: processed,\n path: ctx.path,\n parent: ctx,\n });\n if (result.status === \"aborted\")\n return INVALID;\n if (result.status === \"dirty\")\n return DIRTY(result.value);\n if (status.value === \"dirty\")\n return DIRTY(result.value);\n return result;\n }\n }\n if (effect.type === \"refinement\") {\n const executeRefinement = (acc) => {\n const result = effect.refinement(acc, checkCtx);\n if (ctx.common.async) {\n return Promise.resolve(result);\n }\n if (result instanceof Promise) {\n throw new Error(\"Async refinement encountered during synchronous parse operation. Use .parseAsync instead.\");\n }\n return acc;\n };\n if (ctx.common.async === false) {\n const inner = this._def.schema._parseSync({\n data: ctx.data,\n path: ctx.path,\n parent: ctx,\n });\n if (inner.status === \"aborted\")\n return INVALID;\n if (inner.status === \"dirty\")\n status.dirty();\n // return value is ignored\n executeRefinement(inner.value);\n return { status: status.value, value: inner.value };\n }\n else {\n return this._def.schema\n ._parseAsync({ data: ctx.data, path: ctx.path, parent: ctx })\n .then((inner) => {\n if (inner.status === \"aborted\")\n return INVALID;\n if (inner.status === \"dirty\")\n status.dirty();\n return executeRefinement(inner.value).then(() => {\n return { status: status.value, value: inner.value };\n });\n });\n }\n }\n if (effect.type === \"transform\") {\n if (ctx.common.async === false) {\n const base = this._def.schema._parseSync({\n data: ctx.data,\n path: ctx.path,\n parent: ctx,\n });\n if (!isValid(base))\n return base;\n const result = effect.transform(base.value, checkCtx);\n if (result instanceof Promise) {\n throw new Error(`Asynchronous transform encountered during synchronous parse operation. Use .parseAsync instead.`);\n }\n return { status: status.value, value: result };\n }\n else {\n return this._def.schema\n ._parseAsync({ data: ctx.data, path: ctx.path, parent: ctx })\n .then((base) => {\n if (!isValid(base))\n return base;\n return Promise.resolve(effect.transform(base.value, checkCtx)).then((result) => ({ status: status.value, value: result }));\n });\n }\n }\n util.assertNever(effect);\n }\n}\nZodEffects.create = (schema, effect, params) => {\n return new ZodEffects({\n schema,\n typeName: ZodFirstPartyTypeKind.ZodEffects,\n effect,\n ...processCreateParams(params),\n });\n};\nZodEffects.createWithPreprocess = (preprocess, schema, params) => {\n return new ZodEffects({\n schema,\n effect: { type: \"preprocess\", transform: preprocess },\n typeName: ZodFirstPartyTypeKind.ZodEffects,\n ...processCreateParams(params),\n });\n};\nclass ZodOptional extends ZodType {\n _parse(input) {\n const parsedType = this._getType(input);\n if (parsedType === ZodParsedType.undefined) {\n return OK(undefined);\n }\n return this._def.innerType._parse(input);\n }\n unwrap() {\n return this._def.innerType;\n }\n}\nZodOptional.create = (type, params) => {\n return new ZodOptional({\n innerType: type,\n typeName: ZodFirstPartyTypeKind.ZodOptional,\n ...processCreateParams(params),\n });\n};\nclass ZodNullable extends ZodType {\n _parse(input) {\n const parsedType = this._getType(input);\n if (parsedType === ZodParsedType.null) {\n return OK(null);\n }\n return this._def.innerType._parse(input);\n }\n unwrap() {\n return this._def.innerType;\n }\n}\nZodNullable.create = (type, params) => {\n return new ZodNullable({\n innerType: type,\n typeName: ZodFirstPartyTypeKind.ZodNullable,\n ...processCreateParams(params),\n });\n};\nclass ZodDefault extends ZodType {\n _parse(input) {\n const { ctx } = this._processInputParams(input);\n let data = ctx.data;\n if (ctx.parsedType === ZodParsedType.undefined) {\n data = this._def.defaultValue();\n }\n return this._def.innerType._parse({\n data,\n path: ctx.path,\n parent: ctx,\n });\n }\n removeDefault() {\n return this._def.innerType;\n }\n}\nZodDefault.create = (type, params) => {\n return new ZodDefault({\n innerType: type,\n typeName: ZodFirstPartyTypeKind.ZodDefault,\n defaultValue: typeof params.default === \"function\"\n ? params.default\n : () => params.default,\n ...processCreateParams(params),\n });\n};\nclass ZodCatch extends ZodType {\n _parse(input) {\n const { ctx } = this._processInputParams(input);\n // newCtx is used to not collect issues from inner types in ctx\n const newCtx = {\n ...ctx,\n common: {\n ...ctx.common,\n issues: [],\n },\n };\n const result = this._def.innerType._parse({\n data: newCtx.data,\n path: newCtx.path,\n parent: {\n ...newCtx,\n },\n });\n if (isAsync(result)) {\n return result.then((result) => {\n return {\n status: \"valid\",\n value: result.status === \"valid\"\n ? result.value\n : this._def.catchValue({\n get error() {\n return new ZodError(newCtx.common.issues);\n },\n input: newCtx.data,\n }),\n };\n });\n }\n else {\n return {\n status: \"valid\",\n value: result.status === \"valid\"\n ? result.value\n : this._def.catchValue({\n get error() {\n return new ZodError(newCtx.common.issues);\n },\n input: newCtx.data,\n }),\n };\n }\n }\n removeCatch() {\n return this._def.innerType;\n }\n}\nZodCatch.create = (type, params) => {\n return new ZodCatch({\n innerType: type,\n typeName: ZodFirstPartyTypeKind.ZodCatch,\n catchValue: typeof params.catch === \"function\" ? params.catch : () => params.catch,\n ...processCreateParams(params),\n });\n};\nclass ZodNaN extends ZodType {\n _parse(input) {\n const parsedType = this._getType(input);\n if (parsedType !== ZodParsedType.nan) {\n const ctx = this._getOrReturnCtx(input);\n addIssueToContext(ctx, {\n code: ZodIssueCode.invalid_type,\n expected: ZodParsedType.nan,\n received: ctx.parsedType,\n });\n return INVALID;\n }\n return { status: \"valid\", value: input.data };\n }\n}\nZodNaN.create = (params) => {\n return new ZodNaN({\n typeName: ZodFirstPartyTypeKind.ZodNaN,\n ...processCreateParams(params),\n });\n};\nconst BRAND = Symbol(\"zod_brand\");\nclass ZodBranded extends ZodType {\n _parse(input) {\n const { ctx } = this._processInputParams(input);\n const data = ctx.data;\n return this._def.type._parse({\n data,\n path: ctx.path,\n parent: ctx,\n });\n }\n unwrap() {\n return this._def.type;\n }\n}\nclass ZodPipeline extends ZodType {\n _parse(input) {\n const { status, ctx } = this._processInputParams(input);\n if (ctx.common.async) {\n const handleAsync = async () => {\n const inResult = await this._def.in._parseAsync({\n data: ctx.data,\n path: ctx.path,\n parent: ctx,\n });\n if (inResult.status === \"aborted\")\n return INVALID;\n if (inResult.status === \"dirty\") {\n status.dirty();\n return DIRTY(inResult.value);\n }\n else {\n return this._def.out._parseAsync({\n data: inResult.value,\n path: ctx.path,\n parent: ctx,\n });\n }\n };\n return handleAsync();\n }\n else {\n const inResult = this._def.in._parseSync({\n data: ctx.data,\n path: ctx.path,\n parent: ctx,\n });\n if (inResult.status === \"aborted\")\n return INVALID;\n if (inResult.status === \"dirty\") {\n status.dirty();\n return {\n status: \"dirty\",\n value: inResult.value,\n };\n }\n else {\n return this._def.out._parseSync({\n data: inResult.value,\n path: ctx.path,\n parent: ctx,\n });\n }\n }\n }\n static create(a, b) {\n return new ZodPipeline({\n in: a,\n out: b,\n typeName: ZodFirstPartyTypeKind.ZodPipeline,\n });\n }\n}\nclass ZodReadonly extends ZodType {\n _parse(input) {\n const result = this._def.innerType._parse(input);\n const freeze = (data) => {\n if (isValid(data)) {\n data.value = Object.freeze(data.value);\n }\n return data;\n };\n return isAsync(result)\n ? result.then((data) => freeze(data))\n : freeze(result);\n }\n unwrap() {\n return this._def.innerType;\n }\n}\nZodReadonly.create = (type, params) => {\n return new ZodReadonly({\n innerType: type,\n typeName: ZodFirstPartyTypeKind.ZodReadonly,\n ...processCreateParams(params),\n });\n};\n////////////////////////////////////////\n////////////////////////////////////////\n////////// //////////\n////////// z.custom //////////\n////////// //////////\n////////////////////////////////////////\n////////////////////////////////////////\nfunction cleanParams(params, data) {\n const p = typeof params === \"function\"\n ? params(data)\n : typeof params === \"string\"\n ? { message: params }\n : params;\n const p2 = typeof p === \"string\" ? { message: p } : p;\n return p2;\n}\nfunction custom(check, _params = {}, \n/**\n * @deprecated\n *\n * Pass `fatal` into the params object instead:\n *\n * ```ts\n * z.string().custom((val) => val.length > 5, { fatal: false })\n * ```\n *\n */\nfatal) {\n if (check)\n return ZodAny.create().superRefine((data, ctx) => {\n var _a, _b;\n const r = check(data);\n if (r instanceof Promise) {\n return r.then((r) => {\n var _a, _b;\n if (!r) {\n const params = cleanParams(_params, data);\n const _fatal = (_b = (_a = params.fatal) !== null && _a !== void 0 ? _a : fatal) !== null && _b !== void 0 ? _b : true;\n ctx.addIssue({ code: \"custom\", ...params, fatal: _fatal });\n }\n });\n }\n if (!r) {\n const params = cleanParams(_params, data);\n const _fatal = (_b = (_a = params.fatal) !== null && _a !== void 0 ? _a : fatal) !== null && _b !== void 0 ? _b : true;\n ctx.addIssue({ code: \"custom\", ...params, fatal: _fatal });\n }\n return;\n });\n return ZodAny.create();\n}\nconst late = {\n object: ZodObject.lazycreate,\n};\nvar ZodFirstPartyTypeKind;\n(function (ZodFirstPartyTypeKind) {\n ZodFirstPartyTypeKind[\"ZodString\"] = \"ZodString\";\n ZodFirstPartyTypeKind[\"ZodNumber\"] = \"ZodNumber\";\n ZodFirstPartyTypeKind[\"ZodNaN\"] = \"ZodNaN\";\n ZodFirstPartyTypeKind[\"ZodBigInt\"] = \"ZodBigInt\";\n ZodFirstPartyTypeKind[\"ZodBoolean\"] = \"ZodBoolean\";\n ZodFirstPartyTypeKind[\"ZodDate\"] = \"ZodDate\";\n ZodFirstPartyTypeKind[\"ZodSymbol\"] = \"ZodSymbol\";\n ZodFirstPartyTypeKind[\"ZodUndefined\"] = \"ZodUndefined\";\n ZodFirstPartyTypeKind[\"ZodNull\"] = \"ZodNull\";\n ZodFirstPartyTypeKind[\"ZodAny\"] = \"ZodAny\";\n ZodFirstPartyTypeKind[\"ZodUnknown\"] = \"ZodUnknown\";\n ZodFirstPartyTypeKind[\"ZodNever\"] = \"ZodNever\";\n ZodFirstPartyTypeKind[\"ZodVoid\"] = \"ZodVoid\";\n ZodFirstPartyTypeKind[\"ZodArray\"] = \"ZodArray\";\n ZodFirstPartyTypeKind[\"ZodObject\"] = \"ZodObject\";\n ZodFirstPartyTypeKind[\"ZodUnion\"] = \"ZodUnion\";\n ZodFirstPartyTypeKind[\"ZodDiscriminatedUnion\"] = \"ZodDiscriminatedUnion\";\n ZodFirstPartyTypeKind[\"ZodIntersection\"] = \"ZodIntersection\";\n ZodFirstPartyTypeKind[\"ZodTuple\"] = \"ZodTuple\";\n ZodFirstPartyTypeKind[\"ZodRecord\"] = \"ZodRecord\";\n ZodFirstPartyTypeKind[\"ZodMap\"] = \"ZodMap\";\n ZodFirstPartyTypeKind[\"ZodSet\"] = \"ZodSet\";\n ZodFirstPartyTypeKind[\"ZodFunction\"] = \"ZodFunction\";\n ZodFirstPartyTypeKind[\"ZodLazy\"] = \"ZodLazy\";\n ZodFirstPartyTypeKind[\"ZodLiteral\"] = \"ZodLiteral\";\n ZodFirstPartyTypeKind[\"ZodEnum\"] = \"ZodEnum\";\n ZodFirstPartyTypeKind[\"ZodEffects\"] = \"ZodEffects\";\n ZodFirstPartyTypeKind[\"ZodNativeEnum\"] = \"ZodNativeEnum\";\n ZodFirstPartyTypeKind[\"ZodOptional\"] = \"ZodOptional\";\n ZodFirstPartyTypeKind[\"ZodNullable\"] = \"ZodNullable\";\n ZodFirstPartyTypeKind[\"ZodDefault\"] = \"ZodDefault\";\n ZodFirstPartyTypeKind[\"ZodCatch\"] = \"ZodCatch\";\n ZodFirstPartyTypeKind[\"ZodPromise\"] = \"ZodPromise\";\n ZodFirstPartyTypeKind[\"ZodBranded\"] = \"ZodBranded\";\n ZodFirstPartyTypeKind[\"ZodPipeline\"] = \"ZodPipeline\";\n ZodFirstPartyTypeKind[\"ZodReadonly\"] = \"ZodReadonly\";\n})(ZodFirstPartyTypeKind || (ZodFirstPartyTypeKind = {}));\nconst instanceOfType = (\n// const instanceOfType = any>(\ncls, params = {\n message: `Input not instance of ${cls.name}`,\n}) => custom((data) => data instanceof cls, params);\nconst stringType = ZodString.create;\nconst numberType = ZodNumber.create;\nconst nanType = ZodNaN.create;\nconst bigIntType = ZodBigInt.create;\nconst booleanType = ZodBoolean.create;\nconst dateType = ZodDate.create;\nconst symbolType = ZodSymbol.create;\nconst undefinedType = ZodUndefined.create;\nconst nullType = ZodNull.create;\nconst anyType = ZodAny.create;\nconst unknownType = ZodUnknown.create;\nconst neverType = ZodNever.create;\nconst voidType = ZodVoid.create;\nconst arrayType = ZodArray.create;\nconst objectType = ZodObject.create;\nconst strictObjectType = ZodObject.strictCreate;\nconst unionType = ZodUnion.create;\nconst discriminatedUnionType = ZodDiscriminatedUnion.create;\nconst intersectionType = ZodIntersection.create;\nconst tupleType = ZodTuple.create;\nconst recordType = ZodRecord.create;\nconst mapType = ZodMap.create;\nconst setType = ZodSet.create;\nconst functionType = ZodFunction.create;\nconst lazyType = ZodLazy.create;\nconst literalType = ZodLiteral.create;\nconst enumType = ZodEnum.create;\nconst nativeEnumType = ZodNativeEnum.create;\nconst promiseType = ZodPromise.create;\nconst effectsType = ZodEffects.create;\nconst optionalType = ZodOptional.create;\nconst nullableType = ZodNullable.create;\nconst preprocessType = ZodEffects.createWithPreprocess;\nconst pipelineType = ZodPipeline.create;\nconst ostring = () => stringType().optional();\nconst onumber = () => numberType().optional();\nconst oboolean = () => booleanType().optional();\nconst coerce = {\n string: ((arg) => ZodString.create({ ...arg, coerce: true })),\n number: ((arg) => ZodNumber.create({ ...arg, coerce: true })),\n boolean: ((arg) => ZodBoolean.create({\n ...arg,\n coerce: true,\n })),\n bigint: ((arg) => ZodBigInt.create({ ...arg, coerce: true })),\n date: ((arg) => ZodDate.create({ ...arg, coerce: true })),\n};\nconst NEVER = INVALID;\n\nvar z = /*#__PURE__*/Object.freeze({\n __proto__: null,\n defaultErrorMap: errorMap,\n setErrorMap: setErrorMap,\n getErrorMap: getErrorMap,\n makeIssue: makeIssue,\n EMPTY_PATH: EMPTY_PATH,\n addIssueToContext: addIssueToContext,\n ParseStatus: ParseStatus,\n INVALID: INVALID,\n DIRTY: DIRTY,\n OK: OK,\n isAborted: isAborted,\n isDirty: isDirty,\n isValid: isValid,\n isAsync: isAsync,\n get util () { return util; },\n get objectUtil () { return objectUtil; },\n ZodParsedType: ZodParsedType,\n getParsedType: getParsedType,\n ZodType: ZodType,\n datetimeRegex: datetimeRegex,\n ZodString: ZodString,\n ZodNumber: ZodNumber,\n ZodBigInt: ZodBigInt,\n ZodBoolean: ZodBoolean,\n ZodDate: ZodDate,\n ZodSymbol: ZodSymbol,\n ZodUndefined: ZodUndefined,\n ZodNull: ZodNull,\n ZodAny: ZodAny,\n ZodUnknown: ZodUnknown,\n ZodNever: ZodNever,\n ZodVoid: ZodVoid,\n ZodArray: ZodArray,\n ZodObject: ZodObject,\n ZodUnion: ZodUnion,\n ZodDiscriminatedUnion: ZodDiscriminatedUnion,\n ZodIntersection: ZodIntersection,\n ZodTuple: ZodTuple,\n ZodRecord: ZodRecord,\n ZodMap: ZodMap,\n ZodSet: ZodSet,\n ZodFunction: ZodFunction,\n ZodLazy: ZodLazy,\n ZodLiteral: ZodLiteral,\n ZodEnum: ZodEnum,\n ZodNativeEnum: ZodNativeEnum,\n ZodPromise: ZodPromise,\n ZodEffects: ZodEffects,\n ZodTransformer: ZodEffects,\n ZodOptional: ZodOptional,\n ZodNullable: ZodNullable,\n ZodDefault: ZodDefault,\n ZodCatch: ZodCatch,\n ZodNaN: ZodNaN,\n BRAND: BRAND,\n ZodBranded: ZodBranded,\n ZodPipeline: ZodPipeline,\n ZodReadonly: ZodReadonly,\n custom: custom,\n Schema: ZodType,\n ZodSchema: ZodType,\n late: late,\n get ZodFirstPartyTypeKind () { return ZodFirstPartyTypeKind; },\n coerce: coerce,\n any: anyType,\n array: arrayType,\n bigint: bigIntType,\n boolean: booleanType,\n date: dateType,\n discriminatedUnion: discriminatedUnionType,\n effect: effectsType,\n 'enum': enumType,\n 'function': functionType,\n 'instanceof': instanceOfType,\n intersection: intersectionType,\n lazy: lazyType,\n literal: literalType,\n map: mapType,\n nan: nanType,\n nativeEnum: nativeEnumType,\n never: neverType,\n 'null': nullType,\n nullable: nullableType,\n number: numberType,\n object: objectType,\n oboolean: oboolean,\n onumber: onumber,\n optional: optionalType,\n ostring: ostring,\n pipeline: pipelineType,\n preprocess: preprocessType,\n promise: promiseType,\n record: recordType,\n set: setType,\n strictObject: strictObjectType,\n string: stringType,\n symbol: symbolType,\n transformer: effectsType,\n tuple: tupleType,\n 'undefined': undefinedType,\n union: unionType,\n unknown: unknownType,\n 'void': voidType,\n NEVER: NEVER,\n ZodIssueCode: ZodIssueCode,\n quotelessJson: quotelessJson,\n ZodError: ZodError\n});\n\nexport { BRAND, DIRTY, EMPTY_PATH, INVALID, NEVER, OK, ParseStatus, ZodType as Schema, ZodAny, ZodArray, ZodBigInt, ZodBoolean, ZodBranded, ZodCatch, ZodDate, ZodDefault, ZodDiscriminatedUnion, ZodEffects, ZodEnum, ZodError, ZodFirstPartyTypeKind, ZodFunction, ZodIntersection, ZodIssueCode, ZodLazy, ZodLiteral, ZodMap, ZodNaN, ZodNativeEnum, ZodNever, ZodNull, ZodNullable, ZodNumber, ZodObject, ZodOptional, ZodParsedType, ZodPipeline, ZodPromise, ZodReadonly, ZodRecord, ZodType as ZodSchema, ZodSet, ZodString, ZodSymbol, ZodEffects as ZodTransformer, ZodTuple, ZodType, ZodUndefined, ZodUnion, ZodUnknown, ZodVoid, addIssueToContext, anyType as any, arrayType as array, bigIntType as bigint, booleanType as boolean, coerce, custom, dateType as date, datetimeRegex, z as default, errorMap as defaultErrorMap, discriminatedUnionType as discriminatedUnion, effectsType as effect, enumType as enum, functionType as function, getErrorMap, getParsedType, instanceOfType as instanceof, intersectionType as intersection, isAborted, isAsync, isDirty, isValid, late, lazyType as lazy, literalType as literal, makeIssue, mapType as map, nanType as nan, nativeEnumType as nativeEnum, neverType as never, nullType as null, nullableType as nullable, numberType as number, objectType as object, objectUtil, oboolean, onumber, optionalType as optional, ostring, pipelineType as pipeline, preprocessType as preprocess, promiseType as promise, quotelessJson, recordType as record, setType as set, setErrorMap, strictObjectType as strictObject, stringType as string, symbolType as symbol, effectsType as transformer, tupleType as tuple, undefinedType as undefined, unionType as union, unknownType as unknown, util, voidType as void, z };\n","// Code generated by mlapi/cmd/gen-sift-schemas/main.go. Do not modify!\nimport { z } from 'zod';\n\nexport const PrometheusConfigSchema = z.object({\n prometheusDatasourceUid: z.string().optional(),\n});\nexport type PrometheusConfig = z.infer;\n\nexport const topologyConfigSchema = z.object({\n edges: z.string().array().length(2).array().optional(),\n});\nexport type topologyConfig = z.infer;\n\nexport const labelPermuterConfigSchema = z.object({\n keepLabels: z.string().array().optional(),\n ignoreLabels: z.string().array().optional(),\n labelAliases: z.string().array().array().optional(),\n maxRemovedLabels: z.number().optional(),\n});\nexport type labelPermuterConfig = z.infer;\n\nexport const kubernetesAggregatorConfigSchema = z.object({\n removeLabels: z.string().array().optional(),\n});\nexport type kubernetesAggregatorConfig = z.infer;\n\nexport const typeAugmentorConfigSchema = z.object({\n range: z.number().gte(60).lte(3600),\n});\nexport type typeAugmentorConfig = z.infer;\n\nexport const correlatedSeriesConfigSchema = z\n .object({\n topology: topologyConfigSchema,\n labelPermuter: labelPermuterConfigSchema,\n kubernetesAggregator: kubernetesAggregatorConfigSchema,\n typeAugmentor: typeAugmentorConfigSchema,\n limit: z.number().gte(1).lte(20),\n lookBehindFactor: z.number().gte(0.0).lte(3.0),\n timeoutSeconds: z.number().gte(10.0).lte(120.0),\n })\n .merge(PrometheusConfigSchema);\nexport type correlatedSeriesConfig = z.infer;\n\nexport const LokiConfigSchema = z.object({\n lokiDatasourceUid: z.string().optional(),\n});\nexport type LokiConfig = z.infer;\n\nexport const ErrorPatternLogsConfigSchema = z\n .object({\n maxExamples: z.number().gte(1).lte(10),\n minCount: z.number().gte(1).lte(10),\n initialQuery: z.string(),\n })\n .merge(LokiConfigSchema);\nexport type ErrorPatternLogsConfig = z.infer;\n\nexport const TempoConfigSchema = z.object({\n tempoDatasourceUid: z.string().optional(),\n});\nexport type TempoConfig = z.infer;\n\nexport const ErrorSpansConfigSchema = z.object({}).merge(TempoConfigSchema);\nexport type ErrorSpansConfig = z.infer;\n\nexport const HTTPErrorSeriesConfigSchema = z\n .object({\n cutOffTimeMinutes: z.number().gte(20).lte(120),\n percentageThreshold: z.number().gte(50),\n })\n .merge(PrometheusConfigSchema);\nexport type HTTPErrorSeriesConfig = z.infer;\n\nexport const PyroscopeConfigSchema = z.object({\n pyroscopeDatasourceUid: z.string().optional(),\n});\nexport type PyroscopeConfig = z.infer;\n\nexport const KubeCrashesConfigSchema = z\n .object({})\n .merge(PrometheusConfigSchema)\n .merge(LokiConfigSchema)\n .merge(PyroscopeConfigSchema);\nexport type KubeCrashesConfig = z.infer;\n\nexport const LogQueryConfigSchema = z\n .object({\n expr: z.string(),\n message: z.string(),\n maxLogLines: z.number(),\n })\n .merge(LokiConfigSchema);\nexport type LogQueryConfig = z.infer;\n\nexport const MetricQueryConfigSchema = z\n .object({\n expr: z.string(),\n message: z.string(),\n })\n .merge(PrometheusConfigSchema);\nexport type MetricQueryConfig = z.infer;\n\nexport const UnhealthyNodesConfigSchema = z\n .object({\n loadThreshold: z.number().gte(0.3).lte(5.0),\n })\n .merge(PrometheusConfigSchema);\nexport type UnhealthyNodesConfig = z.infer;\n\nexport const NoisyNeighborsConfigSchema = z\n .object({\n usageQuantile: z.number().gte(0.5).lte(0.99),\n })\n .merge(UnhealthyNodesConfigSchema);\nexport type NoisyNeighborsConfig = z.infer;\n\nexport const RecentDeploymentsConfigSchema = z.object({}).merge(PrometheusConfigSchema);\nexport type RecentDeploymentsConfig = z.infer;\n\nexport const RelatedAlertsConfigSchema = z.object({}).merge(PrometheusConfigSchema);\nexport type RelatedAlertsConfig = z.infer;\n\nexport const ResourceContentionsConfigSchema = z.object({}).merge(PrometheusConfigSchema).merge(PyroscopeConfigSchema);\nexport type ResourceContentionsConfig = z.infer;\n\nexport const SLEConfigSchema = z.object({});\nexport type SLEConfig = z.infer;\n\nexport const SlowRequestsConfigSchema = z\n .object({\n increaseFactor: z.number().gte(1.1).lte(10.0),\n durationQuantile: z.number().gte(0.5).lte(0.99),\n baselinePeriod: z.number().gte(1).lte(6),\n })\n .merge(TempoConfigSchema);\nexport type SlowRequestsConfig = z.infer;\n\nexport const StatusPageOutagesConfigSchema = z.object({\n cloudProviders: z.string().array().nullable(),\n});\nexport type StatusPageOutagesConfig = z.infer;\n","const 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","const 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","const 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","import { FieldType, PanelData } from '@grafana/data';\n\nimport { OutlierField } from 'api/types';\n\nexport interface SparkRange {\n min: number | null;\n max: number | null;\n}\n\nconst COMPARE_TYPE = {\n MIN: 'min',\n MAX: 'max',\n};\n\n// takes an original value and a current value and returns the one that\n// is either larger or smaller (depends on compareType) and handles nulls\nconst getNextValue = (compareType: string, original: number | null, current: number | null): number | null => {\n // if the original value is not set, use whatever current is\n if (original === null) {\n return current;\n }\n\n // if the current value is not set, keep the original\n if (current === null) {\n return original;\n }\n\n // if we want to return the min value\n if (compareType === COMPARE_TYPE.MIN) {\n return current < original ? current : original;\n }\n\n // otherwise return the max value\n return current > original ? current : original;\n};\n\n// determine the min and max scale for a single series based\n// on the overall scale of the dataset\nexport const getSparkRange = (alignedData: PanelData | undefined): SparkRange =>\n alignedData?.series?.[0] !== undefined\n ? alignedData.series[0].fields.reduce(\n (settings: SparkRange, field: OutlierField) => {\n if (field.type === FieldType.time) {\n return { min: null, max: null };\n }\n\n const cleanedBuffer = field.values.filter(Number.isFinite);\n const minMax = cleanedBuffer.reduce(\n (limits: SparkRange, val: number) => {\n return {\n min: limits.min === null || val < limits.min ? val : limits.min,\n max: limits.max === null || val > limits.max ? val : limits.max,\n };\n },\n { min: null, max: null }\n );\n return {\n min: getNextValue(COMPARE_TYPE.MIN, settings.min, minMax.min),\n max: getNextValue(COMPARE_TYPE.MAX, settings.max, minMax.max),\n };\n },\n { min: null, max: null }\n )\n : { min: 0, max: 0 };\n","const 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","const 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","class 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\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.eqDate = exports.eqNumber = exports.eqString = exports.eqBoolean = exports.eq = exports.strictEqual = exports.getStructEq = exports.getTupleEq = exports.Contravariant = exports.getMonoid = exports.getSemigroup = exports.eqStrict = exports.URI = exports.contramap = exports.tuple = exports.struct = exports.fromEquals = void 0;\nvar function_1 = require(\"./function\");\n// -------------------------------------------------------------------------------------\n// constructors\n// -------------------------------------------------------------------------------------\n/**\n * @category constructors\n * @since 2.0.0\n */\nvar fromEquals = function (equals) { return ({\n equals: function (x, y) { return x === y || equals(x, y); }\n}); };\nexports.fromEquals = fromEquals;\n// -------------------------------------------------------------------------------------\n// combinators\n// -------------------------------------------------------------------------------------\n/**\n * @since 2.10.0\n */\nvar struct = function (eqs) {\n return (0, exports.fromEquals)(function (first, second) {\n for (var key in eqs) {\n if (!eqs[key].equals(first[key], second[key])) {\n return false;\n }\n }\n return true;\n });\n};\nexports.struct = struct;\n/**\n * Given a tuple of `Eq`s returns a `Eq` for the tuple\n *\n * @example\n * import { tuple } from 'fp-ts/Eq'\n * import * as S from 'fp-ts/string'\n * import * as N from 'fp-ts/number'\n * import * as B from 'fp-ts/boolean'\n *\n * const E = tuple(S.Eq, N.Eq, B.Eq)\n * assert.strictEqual(E.equals(['a', 1, true], ['a', 1, true]), true)\n * assert.strictEqual(E.equals(['a', 1, true], ['b', 1, true]), false)\n * assert.strictEqual(E.equals(['a', 1, true], ['a', 2, true]), false)\n * assert.strictEqual(E.equals(['a', 1, true], ['a', 1, false]), false)\n *\n * @since 2.10.0\n */\nvar tuple = function () {\n var eqs = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n eqs[_i] = arguments[_i];\n }\n return (0, exports.fromEquals)(function (first, second) { return eqs.every(function (E, i) { return E.equals(first[i], second[i]); }); });\n};\nexports.tuple = tuple;\n/* istanbul ignore next */\nvar contramap_ = function (fa, f) { return (0, function_1.pipe)(fa, (0, exports.contramap)(f)); };\n/**\n * A typical use case for `contramap` would be like, given some `User` type, to construct an `Eq`.\n *\n * We can do so with a function from `User -> X` where `X` is some value that we know how to compare\n * for equality (meaning we have an `Eq`)\n *\n * For example, given the following `User` type, we want to construct an `Eq` that just looks at the `key` field\n * for each user (since it's known to be unique).\n *\n * If we have a way of comparing `UUID`s for equality (`eqUUID: Eq`) and we know how to go from `User -> UUID`,\n * using `contramap` we can do this\n *\n * @example\n * import { contramap, Eq } from 'fp-ts/Eq'\n * import { pipe } from 'fp-ts/function'\n * import * as S from 'fp-ts/string'\n *\n * type UUID = string\n *\n * interface User {\n * readonly key: UUID\n * readonly firstName: string\n * readonly lastName: string\n * }\n *\n * const eqUUID: Eq = S.Eq\n *\n * const eqUserByKey: Eq = pipe(\n * eqUUID,\n * contramap((user) => user.key)\n * )\n *\n * assert.deepStrictEqual(\n * eqUserByKey.equals(\n * { key: 'k1', firstName: 'a1', lastName: 'b1' },\n * { key: 'k2', firstName: 'a1', lastName: 'b1' }\n * ),\n * false\n * )\n * assert.deepStrictEqual(\n * eqUserByKey.equals(\n * { key: 'k1', firstName: 'a1', lastName: 'b1' },\n * { key: 'k1', firstName: 'a2', lastName: 'b1' }\n * ),\n * true\n * )\n *\n * @since 2.0.0\n */\nvar contramap = function (f) { return function (fa) {\n return (0, exports.fromEquals)(function (x, y) { return fa.equals(f(x), f(y)); });\n}; };\nexports.contramap = contramap;\n/**\n * @category type lambdas\n * @since 2.0.0\n */\nexports.URI = 'Eq';\n/**\n * @category instances\n * @since 2.5.0\n */\nexports.eqStrict = {\n equals: function (a, b) { return a === b; }\n};\nvar empty = {\n equals: function () { return true; }\n};\n/**\n * @category instances\n * @since 2.10.0\n */\nvar getSemigroup = function () { return ({\n concat: function (x, y) { return (0, exports.fromEquals)(function (a, b) { return x.equals(a, b) && y.equals(a, b); }); }\n}); };\nexports.getSemigroup = getSemigroup;\n/**\n * @category instances\n * @since 2.6.0\n */\nvar getMonoid = function () { return ({\n concat: (0, exports.getSemigroup)().concat,\n empty: empty\n}); };\nexports.getMonoid = getMonoid;\n/**\n * @category instances\n * @since 2.7.0\n */\nexports.Contravariant = {\n URI: exports.URI,\n contramap: contramap_\n};\n// -------------------------------------------------------------------------------------\n// deprecated\n// -------------------------------------------------------------------------------------\n/**\n * Use [`tuple`](#tuple) instead.\n *\n * @category zone of death\n * @since 2.0.0\n * @deprecated\n */\nexports.getTupleEq = exports.tuple;\n/**\n * Use [`struct`](#struct) instead.\n *\n * @category zone of death\n * @since 2.0.0\n * @deprecated\n */\nexports.getStructEq = exports.struct;\n/**\n * Use [`eqStrict`](#eqstrict) instead\n *\n * @category zone of death\n * @since 2.0.0\n * @deprecated\n */\nexports.strictEqual = exports.eqStrict.equals;\n/**\n * This instance is deprecated, use small, specific instances instead.\n * For example if a function needs a `Contravariant` instance, pass `E.Contravariant` instead of `E.eq`\n * (where `E` is from `import E from 'fp-ts/Eq'`)\n *\n * @category zone of death\n * @since 2.0.0\n * @deprecated\n */\nexports.eq = exports.Contravariant;\n/**\n * Use [`Eq`](./boolean.ts.html#eq) instead.\n *\n * @category zone of death\n * @since 2.0.0\n * @deprecated\n */\nexports.eqBoolean = exports.eqStrict;\n/**\n * Use [`Eq`](./string.ts.html#eq) instead.\n *\n * @category zone of death\n * @since 2.0.0\n * @deprecated\n */\nexports.eqString = exports.eqStrict;\n/**\n * Use [`Eq`](./number.ts.html#eq) instead.\n *\n * @category zone of death\n * @since 2.0.0\n * @deprecated\n */\nexports.eqNumber = exports.eqStrict;\n/**\n * Use [`Eq`](./Date.ts.html#eq) instead.\n *\n * @category zone of death\n * @since 2.0.0\n * @deprecated\n */\nexports.eqDate = {\n equals: function (first, second) { return first.valueOf() === second.valueOf(); }\n};\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.chainFirst = chainFirst;\nexports.tap = tap;\nexports.bind = bind;\nfunction chainFirst(M) {\n var tapM = tap(M);\n return function (f) { return function (first) { return tapM(first, f); }; };\n}\n/** @internal */\nfunction tap(M) {\n return function (first, f) { return M.chain(first, function (a) { return M.map(f(a), function () { return a; }); }); };\n}\nfunction bind(M) {\n return function (name, f) { return function (ma) { return M.chain(ma, function (a) { return M.map(f(a), function (b) {\n var _a;\n return Object.assign({}, a, (_a = {}, _a[name] = b, _a));\n }); }); }; };\n}\n","import { createContext, useContext } from 'react';\n\nimport { AppPluginMeta } from '@grafana/data';\nimport { config } from '@grafana/runtime';\n\nimport { MlAppSettings } from 'types';\n\nexport const PluginMetaContext = createContext | null>(null);\n\nexport function usePluginMeta(): AppPluginMeta | null {\n return useContext(PluginMetaContext);\n}\n\nexport function getIrmIfPresentOrOnCallPluginId() {\n return 'grafana-irm-app' in config.apps ? 'grafana-irm-app' : 'grafana-oncall-app';\n}\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.Field = exports.MonoidProduct = exports.MonoidSum = exports.SemigroupProduct = exports.SemigroupSum = exports.MagmaSub = exports.Show = exports.Bounded = exports.Ord = exports.Eq = exports.isNumber = void 0;\n// -------------------------------------------------------------------------------------\n// refinements\n// -------------------------------------------------------------------------------------\n/**\n * @category refinements\n * @since 2.11.0\n */\nvar isNumber = function (u) { return typeof u === 'number'; };\nexports.isNumber = isNumber;\n// -------------------------------------------------------------------------------------\n// instances\n// -------------------------------------------------------------------------------------\n/**\n * @category instances\n * @since 2.10.0\n */\nexports.Eq = {\n equals: function (first, second) { return first === second; }\n};\n/**\n * @category instances\n * @since 2.10.0\n */\nexports.Ord = {\n equals: exports.Eq.equals,\n compare: function (first, second) { return (first < second ? -1 : first > second ? 1 : 0); }\n};\n/**\n * @category instances\n * @since 2.10.0\n */\nexports.Bounded = {\n equals: exports.Eq.equals,\n compare: exports.Ord.compare,\n top: Infinity,\n bottom: -Infinity\n};\n/**\n * @category instances\n * @since 2.10.0\n */\nexports.Show = {\n show: function (n) { return JSON.stringify(n); }\n};\n/**\n * @category instances\n * @since 2.11.0\n */\nexports.MagmaSub = {\n concat: function (first, second) { return first - second; }\n};\n/**\n * `number` semigroup under addition.\n *\n * @example\n * import { SemigroupSum } from 'fp-ts/number'\n *\n * assert.deepStrictEqual(SemigroupSum.concat(2, 3), 5)\n *\n * @category instances\n * @since 2.10.0\n */\nexports.SemigroupSum = {\n concat: function (first, second) { return first + second; }\n};\n/**\n * `number` semigroup under multiplication.\n *\n * @example\n * import { SemigroupProduct } from 'fp-ts/number'\n *\n * assert.deepStrictEqual(SemigroupProduct.concat(2, 3), 6)\n *\n * @category instances\n * @since 2.10.0\n */\nexports.SemigroupProduct = {\n concat: function (first, second) { return first * second; }\n};\n/**\n * `number` monoid under addition.\n *\n * The `empty` value is `0`.\n *\n * @example\n * import { MonoidSum } from 'fp-ts/number'\n *\n * assert.deepStrictEqual(MonoidSum.concat(2, MonoidSum.empty), 2)\n *\n * @category instances\n * @since 2.10.0\n */\nexports.MonoidSum = {\n concat: exports.SemigroupSum.concat,\n empty: 0\n};\n/**\n * `number` monoid under multiplication.\n *\n * The `empty` value is `1`.\n *\n * @example\n * import { MonoidProduct } from 'fp-ts/number'\n *\n * assert.deepStrictEqual(MonoidProduct.concat(2, MonoidProduct.empty), 2)\n *\n * @category instances\n * @since 2.10.0\n */\nexports.MonoidProduct = {\n concat: exports.SemigroupProduct.concat,\n empty: 1\n};\n/**\n * @category instances\n * @since 2.10.0\n */\nexports.Field = {\n add: exports.SemigroupSum.concat,\n zero: 0,\n mul: exports.SemigroupProduct.concat,\n one: 1,\n sub: exports.MagmaSub.concat,\n degree: function (_) { return 1; },\n div: function (first, second) { return first / second; },\n mod: function (first, second) { return first % second; }\n};\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.and = exports.or = exports.not = exports.Contravariant = exports.getMonoidAll = exports.getSemigroupAll = exports.getMonoidAny = exports.getSemigroupAny = exports.URI = exports.contramap = void 0;\nvar function_1 = require(\"./function\");\nvar contramap_ = function (predicate, f) { return (0, function_1.pipe)(predicate, (0, exports.contramap)(f)); };\n/**\n * @since 2.11.0\n */\nvar contramap = function (f) {\n return function (predicate) {\n return (0, function_1.flow)(f, predicate);\n };\n};\nexports.contramap = contramap;\n/**\n * @category type lambdas\n * @since 2.11.0\n */\nexports.URI = 'Predicate';\n/**\n * @category instances\n * @since 2.11.0\n */\nvar getSemigroupAny = function () { return ({\n concat: function (first, second) { return (0, function_1.pipe)(first, (0, exports.or)(second)); }\n}); };\nexports.getSemigroupAny = getSemigroupAny;\n/**\n * @category instances\n * @since 2.11.0\n */\nvar getMonoidAny = function () { return ({\n concat: (0, exports.getSemigroupAny)().concat,\n empty: function_1.constFalse\n}); };\nexports.getMonoidAny = getMonoidAny;\n/**\n * @category instances\n * @since 2.11.0\n */\nvar getSemigroupAll = function () { return ({\n concat: function (first, second) { return (0, function_1.pipe)(first, (0, exports.and)(second)); }\n}); };\nexports.getSemigroupAll = getSemigroupAll;\n/**\n * @category instances\n * @since 2.11.0\n */\nvar getMonoidAll = function () { return ({\n concat: (0, exports.getSemigroupAll)().concat,\n empty: function_1.constTrue\n}); };\nexports.getMonoidAll = getMonoidAll;\n/**\n * @category instances\n * @since 2.11.0\n */\nexports.Contravariant = {\n URI: exports.URI,\n contramap: contramap_\n};\n// -------------------------------------------------------------------------------------\n// utils\n// -------------------------------------------------------------------------------------\n/**\n * @since 2.11.0\n */\nvar not = function (predicate) {\n return function (a) {\n return !predicate(a);\n };\n};\nexports.not = not;\n/**\n * @since 2.11.0\n */\nvar or = function (second) {\n return function (first) {\n return function (a) {\n return first(a) || second(a);\n };\n };\n};\nexports.or = or;\n/**\n * @since 2.11.0\n */\nvar and = function (second) {\n return function (first) {\n return function (a) {\n return first(a) && second(a);\n };\n };\n};\nexports.and = and;\n","const 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","import { DataFrame, DataFrameType, FieldType, PanelData } from '@grafana/data';\n\nimport { getMinimumUniqueUnderlyingSeriesLabels } from 'utils';\n\n// Get list of series names from the DataFrame/PanelData. This can deal with any type of DataFrame.\nexport function getSeriesNames(data: PanelData): string[] {\n const names = [];\n // There are 3 different types of dataframe, need to cover each case.\n switch (detectDataframeType(data.series)) {\n case DataFrameType.TimeSeriesWide:\n // TODO: properly implement this, falling back to Multi logic is not correct!\n // It's pretty rare to see this form however!\n case DataFrameType.TimeSeriesMulti:\n // generate series names by consulting the labels\n const options = getMinimumUniqueUnderlyingSeriesLabels(data);\n for (let i = 0; i < options.length; i++) {\n const name = JSON.stringify(options[i]);\n names.push(name);\n }\n break;\n case DataFrameType.TimeSeriesLong:\n // only the name of each frame can be used\n const theField = data.series[0].fields;\n for (let i = 0; i < theField.length; i++) {\n const field = theField[i];\n // first field should be time, which we ignore\n if (field.type === FieldType.time) {\n continue;\n }\n names.push(field.name);\n }\n break;\n }\n return names;\n}\n\n// There are multiple types of DataFrame/PanelData - use heuristics to detect which type\n// Ref: https://grafana.github.io/dataplane/timeseries\nexport function detectDataframeType(data: DataFrame[]): DataFrameType | null {\n if (data.length === 0) {\n return null;\n }\n\n // Long format is the only one that leaves 'labels' property unused\n // It must have at least 2 fields: time & values\n // Typically returned from SQL-ish datasources.\n if (data[0].fields.length >= 2 && data[0].fields[1].labels === undefined) {\n return DataFrameType.TimeSeriesLong;\n }\n\n // Wide format has a single Frame and 3 or more Fields (time & 2+ values)\n if (data.length === 1 && data[0].fields.length > 2) {\n return DataFrameType.TimeSeriesWide;\n }\n // Fallback to Multi (used by timeseries like Prometheus)\n return DataFrameType.TimeSeriesMulti;\n}\n\n// For a TimeSeriesMulti format PanelData (as Prometheus returns), get index of series in the dataframe\nconst getSeriesIndexFromName = (data: PanelData, name: string | undefined): number => {\n // Take series to predict on - this is a bit of a faff\n let seriesIndex = -1;\n const options = getMinimumUniqueUnderlyingSeriesLabels(data);\n for (let i = 0; i < options.length; i++) {\n if (name === JSON.stringify(options[i])) {\n seriesIndex = i;\n }\n }\n return seriesIndex;\n};\n\n// For any type of DataFrame/PanelData, extract a DataFrame for a single series by its name.\n// Names are generated by `getSeriesNames()` above.\nexport function getSingleSeriesFrameByName(data: PanelData, seriesName: string): DataFrame | null {\n let ds, y;\n switch (detectDataframeType(data.series)) {\n case DataFrameType.TimeSeriesWide:\n case DataFrameType.TimeSeriesMulti:\n const seriesIndex = getSeriesIndexFromName(data, seriesName);\n if (seriesIndex < 0) {\n return null;\n }\n\n const frame = data.series[seriesIndex];\n ds = frame.fields.find((x) => x.type === FieldType.time);\n y = frame.fields.find((x) => x.type === FieldType.number);\n break;\n\n case DataFrameType.TimeSeriesLong:\n const theField = data.series[0].fields;\n for (let i = 0; i < theField.length; i++) {\n const field = theField[i];\n if (field.type === FieldType.time) {\n ds = field;\n } else if (field.name === seriesName) {\n y = field;\n }\n }\n }\n if (ds === undefined || y === undefined) {\n return null;\n }\n\n return { fields: [ds, y], length: 2 };\n}\n","/**\n * Cleans array data and validates it to be suitable for Prophet.\n *\n * Replaces any null-ish entries with NaN.\n *\n * Return null & an error message if:\n * - array has less than 100 non-NaN numbers\n * - array contains all NaNs\n * - array consists of a single number repeated.\n * otherwise the clean array returned as a Float64Array\n */\nexport function cleanAndValidateDataForProphet(y: Array): [Float64Array] | [null, string] {\n let nonNanCount = 0;\n let firstNumber: number | null = null;\n let onlyOneNumberFound = true;\n\n for (let i = 0; i < y.length; i++) {\n if (y[i] == null) {\n y[i] = NaN;\n }\n\n if (!isNaN(y[i] as number)) {\n nonNanCount++;\n if (firstNumber === null) {\n firstNumber = y[i] as number;\n } else if (y[i] !== firstNumber) {\n onlyOneNumberFound = false;\n }\n }\n }\n\n if (nonNanCount === 0) {\n return [null, 'Series contains only NaNs, cannot forecast with no numeric data'];\n }\n if (nonNanCount < 100) {\n return [null, 'Series has less than 100 valid datapoints, not enough data to forecast'];\n }\n if (onlyOneNumberFound) {\n return [null, `Series contains only one unique value \"${firstNumber}\", data not suitable for forecasting`];\n }\n\n return [new Float64Array(y as number[])];\n}\n","import { Dispatch, SetStateAction, useMemo, useState } from 'react';\n\nimport { DataSourceInstanceSettings } from '@grafana/data';\nimport { config } from '@grafana/runtime';\n\nimport { pipe } from 'fp-ts/lib/function';\nimport { none, some } from 'fp-ts/lib/Option';\nimport { filterMap } from 'fp-ts/lib/ReadonlyArray';\n\nimport { DEFAULT_MODEL } from 'consts';\nimport {\n ForecastCustomLabels,\n FullFormModel,\n Input,\n InvestigationFormModel,\n Job,\n Model,\n ModelId,\n NewInvestigation,\n NewMetricJob,\n} from 'types';\nimport { timeUnitToSeconds } from 'utils';\n\n/// Search for a model by id, permitting unspecified, in which case will chose the most reasonable default\nexport function findModel(models: readonly Model[], id?: ModelId | null): Model | undefined {\n const bestDefaultModel = (models ?? []).find((f) => DEFAULT_MODEL.test(f.id) && !f.deprecated);\n const searchId = id ?? bestDefaultModel?.id ?? 'grafana_prophet_1_0_1';\n return models.find((x) => x.id === searchId);\n}\n\n/// Convert the FE form into the structure expected by backend for creating a new job\nexport function createJobRequestFromFormModel(\n form: FullFormModel,\n datasource: DataSourceInstanceSettings\n): NewMetricJob {\n const customLabels = form.labels?.reduce((acc, label) => {\n return { ...acc, [label.prop]: label.value };\n }, {});\n\n return {\n name: form.name,\n metric: form.metric,\n description: form.description,\n grafanaUrl: config.appUrl,\n datasourceId: datasource.id,\n datasourceUid: datasource.uid,\n datasourceType: datasource.type,\n queryParams: { ...form.query.value, refId: 'A', queryType: undefined },\n algorithm: form.parameters.id,\n hyperParams: form.parameters.hyperparameters?.[form.parameters.id],\n interval: timeUnitToSeconds(form.parameters.intervalValue, form.parameters.intervalUnit),\n trainingWindow: timeUnitToSeconds(form.parameters.trainingWindowValue, form.parameters.trainingWindowUnit),\n trainingFrequency: timeUnitToSeconds(form.parameters.trainingFrequencyValue, form.parameters.trainingFrequencyUnit),\n holidays: form.holidays,\n customLabels: customLabels,\n };\n}\n\n/// Convert the FE form into the structure expected by backend for editing an existing job\nexport function editJobRequestFromFormModel(\n id: string,\n form: FullFormModel,\n datasource: DataSourceInstanceSettings\n): Job {\n const customLabels = form.labels?.reduce((acc, label) => {\n return { ...acc, [label.prop]: label.value };\n }, {});\n\n return {\n ...createJobRequestFromFormModel(form, datasource),\n id,\n customLabels,\n };\n}\n\nexport function useSelectedModel(\n models: readonly Model[] = []\n): [ModelId | null, Dispatch>, Model | undefined] {\n const [selectedModelId, setSelectedModelId] = useState(null);\n const selectedModel = useMemo(() => findModel(models ?? [], selectedModelId), [models, selectedModelId]);\n return [(selectedModel?.id ?? null) as ModelId | null, setSelectedModelId, selectedModel];\n}\n\n/// @deprecated\nexport function useActiveModels(models: Model[] | undefined, selectedModelId: ModelId | null): readonly Model[] {\n return useMemo(\n () =>\n pipe(\n models ?? [],\n filterMap((model) =>\n model.deprecated && model.id !== selectedModelId\n ? none\n : some(\n model.deprecated\n ? ({ ...model, name: `${model.name} - (${model.version} deprecated)` } as Model)\n : model\n )\n )\n ),\n [models, selectedModelId]\n );\n}\n\nexport function useModelSelectOptions(\n models: readonly Model[] | undefined,\n selectedModelId: ModelId | null | undefined\n): ReadonlyArray<{ label: string; value: ModelId }> {\n return useMemo(\n () =>\n pipe(\n models ?? [],\n filterMap((model) =>\n model.deprecated && model.id !== selectedModelId\n ? none\n : some(\n model.deprecated\n ? { label: `${model.name} - (${model.version} deprecated)`, value: model.id as ModelId }\n : { label: model.name, value: model.id as ModelId }\n )\n )\n ),\n [models, selectedModelId]\n );\n}\n\n/// Convert the FE form into the structure expected by backend for creating a new investigation\nexport function createInvestigationRequestFromFormModel(form: InvestigationFormModel): NewInvestigation {\n const labelInputs: Input[] = form.labels.map(({ name, value, type }) => ({\n type: 'label',\n label: { name, value, type },\n }));\n const metricInputs: Input[] = form.queries.map((metric) => ({\n type: 'metric-query',\n metric,\n }));\n const serviceInputs: Input[] =\n form.services?.map((service) => ({\n type: 'service',\n service,\n })) ?? [];\n const datasourceInputs: Input[] =\n form.datasources?.map((datasource) => ({\n type: 'datasource',\n datasource,\n })) ?? [];\n const sloInputs: Input[] =\n form.slos?.map((slo) => ({\n type: 'slo',\n slo,\n })) ?? [];\n return {\n name: form.name,\n inputs: [...labelInputs, ...metricInputs, ...serviceInputs, ...datasourceInputs, ...sloInputs],\n requestData: {\n start: form.start,\n end: form.end,\n labels: {},\n // We can use any hostname for the URL, as long as the query expression is in the `g0.expr` param.\n queryUrl:\n form.alertQuery !== undefined\n ? `https://grafana.com/?g0.expr=${encodeURIComponent(form.alertQuery)}`\n : undefined,\n\n investigationSource: form.investigationSource,\n },\n grafanaUrl: config.appUrl,\n };\n}\n","interface OutlierColors {\n isOutlier: string;\n notOutlier: string;\n selectedNotOutlier: string;\n selectedIsOutlier: string;\n notOutlierRegion: string;\n}\n\n// Specific Colors for outlier graph in light mode\nconst OutlierColorsLight = {\n isOutlier: '#F5793A',\n notOutlier: '#777777',\n selectedNotOutlier: '#f5b73d',\n selectedIsOutlier: '#f5b73d',\n notOutlierRegion: '#b7cef2',\n};\n\n// Specific Colors for outlier graph in dark mode\nconst OutlierColorsDark = {\n isOutlier: '#f5b73d',\n notOutlier: '#777777',\n selectedNotOutlier: '#ffffff',\n selectedIsOutlier: '#ffffff',\n notOutlierRegion: '#2e4668',\n};\n\n// util function to get the correct color set\nexport const getOutlierColors = (isDark: boolean): OutlierColors => {\n return isDark ? OutlierColorsDark : OutlierColorsLight;\n};\n\n// accepts current color constant and returns line color\nexport const getLineColor = (colors: OutlierColors, isOutlier: boolean, isSelected: boolean): string => {\n const color = isOutlier\n ? isSelected\n ? colors.selectedIsOutlier\n : colors.isOutlier\n : isSelected\n ? colors.selectedNotOutlier\n : colors.notOutlier;\n return color;\n};\n","import { DataFrame } from '@grafana/data';\n\nimport { Observable } from 'rxjs';\nimport { map } from 'rxjs/operators';\n\nimport { Label, LabelInput, MatchType } from 'types';\n\ninterface FilterByLabels {\n [key: string]: LabelInput[];\n}\n\n// Transformation which filters DataFrames to only include those with a specific set of labels.\n//\n// The config is a map from refId to a map of labels to values. If a frame has a refId which is not\n// in the config, it will be passed through unchanged.\n// If a frame has labels that are in the config, but the values do not match, it will be filtered out.\n// If there are labels in the config that are not present in the frame, the label will be ignored.\nexport const filterByLabelsTransformation = (config: FilterByLabels) => () => (source: Observable) =>\n source.pipe(\n map((data: DataFrame[]) =>\n data.filter((frame) => (frame.refId === undefined ? true : filterFrameByLabels(frame, config[frame.refId])))\n )\n );\n\nexport function filterFrameByLabels(frame: DataFrame, labels: LabelInput[] | undefined): boolean {\n if (labels === undefined) {\n return true;\n }\n return (\n frame.fields.find(\n // If the frame field has labels, then we want to check for the presence of target labels.\n (x) =>\n x.labels !== undefined &&\n // Loop through the target labels and check if they exist in the frame field.\n labels.every(({ label }) => {\n const val = x.labels![label.name];\n const exists = val !== undefined;\n // Check for existence of the label first, so we can early exit if not, and\n // avoid unnecessarily compiling the labels regex.\n if (!exists) {\n // If the label doesn't exist, we want to keep this frame.\n return true;\n }\n // If the label does exist and matches the value, then we want to keep this frame.\n const lm = new LabelMatcher(label);\n return lm.matches(val);\n })\n ) !== undefined\n );\n}\n\n/**\n * LabelMatcher is a JavaScript equivalent of the `labels.Matcher` type from Prometheus' Go library.\n * It can be used to determine whether a value should be considered a 'match' for a Prometheus matcher.\n *\n * Note that this just uses the JavaScript regex engine so there may be some subtle differences between\n * this and the Prometheus implementation, but it's unlikely to appear much in day-to-day usage of Sift.\n */\nclass LabelMatcher {\n private value: string;\n private type: MatchType | undefined;\n private re: RegExp | undefined;\n constructor({ value, type }: Label) {\n this.type = type;\n this.value = value;\n if (this.type === MatchType.Regexp || this.type === MatchType.NotRegexp) {\n this.re = new RegExp(value);\n }\n }\n\n /**\n * matches returns whether the matcher matches the given string value.\n */\n public matches(val: string): boolean {\n switch (this.type) {\n case undefined:\n case MatchType.Equal:\n return this.value === val;\n case MatchType.NotEqual:\n return this.value !== val;\n case MatchType.Regexp:\n return this.re!.test(val);\n case MatchType.NotRegexp:\n return !this.re!.test(val);\n }\n }\n}\n","import { GrafanaTheme2 } from '@grafana/data';\nimport { useStyles2 } from '@grafana/ui';\n\nimport { css } from '@emotion/css';\n\nconst size = {\n base: '14px',\n xs: '10px',\n sm: '12px',\n md: '14px',\n lg: '18px',\n};\n\n// Custom colors that we are using in our plugin\nconst colors = {\n black: '#000000',\n white: '#ffffff',\n red100: '#ffc7d0',\n red200: '#ffabb8',\n red300: '#ff8fa1',\n red400: '#FF7389',\n red500: '#ff5670',\n red600: '#b35160',\n red700: '#803a45',\n green100: '#afcfa9',\n green200: '#6bca5a',\n green300: '#21ce00',\n green400: '#388729',\n green500: '#2d6c21',\n green600: '#275f1d',\n green700: '#1c4415',\n yellow100: '#fdf7a4',\n yellow200: '#fbf477',\n yellow400: '#F9EC1C',\n yellow600: '#aea514',\n yellow700: '#7d760e',\n blue100: '#a7bddf',\n blue200: '#7c9dcf',\n blue400: '#245baf',\n blue600: '#19407a',\n blue700: '#122e58',\n gray100: '#e1e3e4',\n gray200: '#d3d4d7',\n gray400: '#b5b8bc',\n gray600: '#7f8184',\n gray700: '#484a4b',\n gray800: '#3c3c3c',\n};\n\n// These values are larger than what we have available in Grafana Core, but they are on the same grid.\nconst spacing2Xl = '40px';\nconst spacing3Xl = '48px';\n\n// eslint-disable-next-line @typescript-eslint/explicit-module-boundary-types\nexport const useUtilityStyles = () => {\n const styles = useStyles2((theme?: GrafanaTheme2) => {\n const isDark = Boolean(theme?.isDark);\n\n /* prettier-ignore */\n return {\n // Colors\n // --------------------------\n colorWhite: css`color: ${colors.white};`,\n colorBlack: css`color: ${colors.black};`,\n colorRed: css`color: ${colors.red400};`,\n colorRed100: css`color: ${colors.red100};`,\n colorRed200: css`color: ${colors.red200};`,\n colorRed300: css`color: ${colors.red300};`,\n colorRed400: css`color: ${colors.red400};`,\n colorRed500: css`color: ${colors.red500};`,\n colorRed600: css`color: ${colors.red600};`,\n colorRed700: css`color: ${colors.red700};`,\n colorGreen: css`color: ${colors.green400};`,\n colorGreen100: css`color: ${colors.green100};`,\n colorGreen200: css`color: ${colors.green200};`,\n colorGreen300: css`color: ${colors.green300};`,\n colorGreen400: css`color: ${colors.green400};`,\n colorGreen500: css`color: ${colors.green500};`,\n colorGreen600: css`color: ${colors.green600};`,\n colorGreen700: css`color: ${colors.green700};`,\n colorYellow: css`color: ${colors.yellow400};`,\n colorYellow100: css`color: ${colors.yellow100};`,\n colorYellow200: css`color: ${colors.yellow200};`,\n colorYellow400: css`color: ${colors.yellow400};`,\n colorYellow600: css`color: ${colors.yellow600};`,\n colorYellow700: css`color: ${colors.yellow700};`,\n colorBlue: css`color: ${colors.blue400};`,\n colorBlue100: css`color: ${colors.blue100};`,\n colorBlue200: css`color: ${colors.blue200};`,\n colorBlue400: css`color: ${colors.blue400};`,\n colorBlue600: css`color: ${colors.blue600};`,\n colorBlue700: css`color: ${colors.blue700};`,\n colorGray: css`color: ${colors.gray400};`,\n colorGray100: css`color: ${colors.gray100};`,\n colorGray200: css`color: ${colors.gray200};`,\n colorGray400: css`color: ${colors.gray400};`,\n colorGray600: css`color: ${colors.gray600};`,\n colorGray700: css`color: ${colors.gray700};`,\n colorGray800: css`color: ${colors.gray800};`,\n colorVeryWeak: css`color: ${isDark ? colors.gray800 : colors.gray100};`,\n colorWeak: css`color: ${theme?.colors.text.secondary};`,\n colorSemiWeak: css`color: ${theme?.colors.text.secondary};`,\n colorStrong: css`color: ${theme?.colors.text.maxContrast};`,\n colorFormDescription: css`color: ${theme?.colors.text.secondary};`,\n colorFormInvalid: css`color: ${theme?.colors.error.border};`,\n\n // Background colors\n // --------------------------\n bgRed: css`background-color: ${colors.red400};`,\n bgRed100: css`background-color: ${colors.red100};`,\n bgRed200: css`background-color: ${colors.red200};`,\n bgRed400: css`background-color: ${colors.red400};`,\n bgRed600: css`background-color: ${colors.red600};`,\n bgRed700: css`background-color: ${colors.red700};`,\n bgGreen: css`background-color: ${colors.green400};`,\n bgGreen100: css`background-color: ${colors.green100};`,\n bgGreen200: css`background-color: ${colors.green200};`,\n bgGreen400: css`background-color: ${colors.green400};`,\n bgGreen600: css`background-color: ${colors.green600};`,\n bgGreen700: css`background-color: ${colors.green700};`,\n bgYellow: css`background-color: ${colors.yellow400};`,\n bgYellow100: css`background-color: ${colors.yellow100};`,\n bgYellow200: css`background-color: ${colors.yellow200};`,\n bgYellow400: css`background-color: ${colors.yellow400};`,\n bgYellow600: css`background-color: ${colors.yellow600};`,\n bgYellow700: css`background-color: ${colors.yellow700};`,\n bgBlue: css`background-color: ${colors.blue400};`,\n bgBlue100: css`background-color: ${colors.blue100};`,\n bgBlue200: css`background-color: ${colors.blue200};`,\n bgBlue400: css`background-color: ${colors.blue400};`,\n bgBlue600: css`background-color: ${colors.blue600};`,\n bgBlue700: css`background-color: ${colors.blue700};`,\n bgGray: css`background-color: ${colors.gray400};`,\n bgGray100: css`background-color: ${colors.gray100};`,\n bgGray200: css`background-color: ${colors.gray200};`,\n bgGray400: css`background-color: ${colors.gray400};`,\n bgGray600: css`background-color: ${colors.gray600};`,\n bgGray700: css`background-color: ${colors.gray700};`,\n bgGray800: css`background-color: ${colors.gray800};`,\n // The smallest the level is the less it differs from the general theme background (dark/light)\n bgLevel1: css`background-color: ${theme?.colors.background.primary};`,\n bgLevel2: css`background-color: ${theme?.colors.background.secondary};`,\n bgLevel3: css`background-color: ${theme?.colors.action.hover};`,\n\n // Background gradients\n // --------------------------\n gradientRed: css`background: linear-gradient(180deg, ${colors.red300} 0%, ${colors.red500} 100%);`,\n gradientGreen: css`background: linear-gradient(270deg, ${colors.green300} 0%, ${colors.green100} 100%);`,\n gradientYellow: css`background: linear-gradient(180deg, ${colors.yellow200} 0%, ${colors.yellow600} 100%);`,\n gradientBlue: css`background: linear-gradient(180deg, ${colors.blue100} 0%, ${colors.blue200} 100%);`,\n\n // Text\n // --------------------------\n textBold: css`font-weight: ${theme?.typography.fontWeightBold};`,\n textSemiBold: css`font-weight: ${theme?.typography.fontWeightMedium};`,\n textNormal: css`font-weight: normal;`,\n textItalic: css`font-style: italic;`,\n textUnderline: css`text-decoration: underline;`,\n textMonospace: css`font-family: monospace;`,\n textXs: css`font-size: ${size.xs};`,\n textSm: css`font-size: ${size.sm};`,\n textMd: css`font-size: ${theme?.typography.fontSize};`,\n textLg: css`font-size: ${size.lg};`,\n textXl: css`font-size: 24px;`,\n textCenter: css`text-align: center;`,\n textLeft: css`text-align: left;`,\n textRight: css`text-align: right;`,\n\n // Line Height\n // --------------------------\n lineHeightXs: css`line-height: ${theme?.typography.bodySmall.lineHeight};`,\n lineHeightSm: css`line-height: ${theme?.typography.bodySmall.lineHeight};`,\n lineHeightMd: css`line-height: ${theme?.typography.body.lineHeight};`,\n lineHeightLg: css`line-height: ${theme?.typography.h2.lineHeight};`,\n\n // Padding\n // --------------------------\n paddingNone: css`padding: 0;`,\n paddingXs: css`padding: ${theme?.spacing(0.5)};`,\n paddingSm: css`padding: ${theme?.spacing(1)};`,\n paddingMd: css`padding: ${theme?.spacing(2)};`,\n paddingLg: css`padding: ${theme?.spacing(3)};`,\n paddingXl: css`padding: ${theme?.spacing(4)};`,\n paddingVerticalXs: css`padding-top: ${theme?.spacing(0.5)};padding-bottom: ${theme?.spacing(0.5)};`,\n paddingVerticalSm: css`padding-top: ${theme?.spacing(1)};padding-bottom: ${theme?.spacing(1)};`,\n paddingVerticalMd: css`padding-top: ${theme?.spacing(2)};padding-bottom: ${theme?.spacing(2)};`,\n paddingVerticalLg: css`padding-top: ${theme?.spacing(3)};padding-bottom: ${theme?.spacing(3)};`,\n paddingVerticalXl: css`padding-top: ${theme?.spacing(4)};padding-bottom: ${theme?.spacing(4)};`,\n paddingHorizontalXs: css`padding-left: ${theme?.spacing(0.5)};padding-right: ${theme?.spacing(0.5)};`,\n paddingHorizontalSm: css`padding-left: ${theme?.spacing(1)};padding-right: ${theme?.spacing(1)};`,\n paddingHorizontalMd: css`padding-left: ${theme?.spacing(2)};padding-right: ${theme?.spacing(2)};`,\n paddingHorizontalLg: css`padding-left: ${theme?.spacing(3)};padding-right: ${theme?.spacing(3)};`,\n paddingHorizontalXl: css`padding-left: ${theme?.spacing(4)};padding-right: ${theme?.spacing(4)};`,\n\n // Margin\n // --------------------------\n marginNone: css`margin: 0 !important;`,\n marginAuto: css`margin: auto auto;`,\n marginXAuto: css`margin: 0 auto;`,\n marginYAuto: css`margin: auto 0;`,\n margin: css`margin: ${theme?.spacing(2)};`,\n marginXs: css`margin: ${theme?.spacing(0.5)};`,\n marginSm: css`margin: ${theme?.spacing(1)};`,\n marginMd: css`margin: ${theme?.spacing(2)};`,\n marginLg: css`margin: ${theme?.spacing(3)};`,\n marginXl: css`margin: ${theme?.spacing(4)};`,\n margin2Xl: css`margin: ${spacing2Xl};`,\n margin3Xl: css`margin: ${spacing3Xl};`,\n marginTop: css`margin-top: ${theme?.spacing(2)};`,\n marginTopXs: css`margin-top: ${theme?.spacing(0.5)};`,\n marginTopSm: css`margin-top: ${theme?.spacing(1)};`,\n marginTopMd: css`margin-top: ${theme?.spacing(2)};`,\n marginTopLg: css`margin-top: ${theme?.spacing(3)};`,\n marginTopXl: css`margin-top: ${theme?.spacing(4)};`,\n marginTop2Xl: css`margin-top: ${spacing2Xl};`,\n marginTop3Xl: css`margin-top: ${spacing3Xl};`,\n marginTopNone: css`margin-top: 0 !important;`,\n marginBottom: css`margin-bottom: ${theme?.spacing(2)};`,\n marginBottomXs: css`margin-bottom: ${theme?.spacing(0.5)};`,\n marginBottomSm: css`margin-bottom: ${theme?.spacing(1)};`,\n marginBottomMd: css`margin-bottom: ${theme?.spacing(2)};`,\n marginBottomLg: css`margin-bottom: ${theme?.spacing(3)};`,\n marginBottomXl: css`margin-bottom: ${theme?.spacing(4)};`,\n marginBottom2Xl: css`margin-bottom: ${spacing2Xl};`,\n marginBottom3Xl: css`margin-bottom: ${spacing3Xl};`,\n marginBottomNone: css`margin-bottom: 0 !important;`,\n marginLeft: css`margin-left: ${theme?.spacing(2)};`,\n marginLeftXs: css`margin-left: ${theme?.spacing(0.5)};`,\n marginLeftSm: css`margin-left: ${theme?.spacing(1)};`,\n marginLeftMd: css`margin-left: ${theme?.spacing(2)};`,\n marginLeftLg: css`margin-left: ${theme?.spacing(3)};`,\n marginLeftXl: css`margin-left: ${theme?.spacing(4)};`,\n marginLeft2Xl: css`margin-left: ${spacing2Xl};`,\n marginLeft3Xl: css`margin-left: ${spacing3Xl};`,\n marginLeftNone: css`margin-left: 0 !important;`,\n marginRight: css`margin-right: ${theme?.spacing(2)};`,\n marginRightXs: css`margin-right: ${theme?.spacing(0.5)};`,\n marginRightSm: css`margin-right: ${theme?.spacing(1)};`,\n marginRightMd: css`margin-right: ${theme?.spacing(1)};`,\n marginRightLg: css`margin-right: ${theme?.spacing(3)};`,\n marginRightXl: css`margin-right: ${theme?.spacing(4)};`,\n marginRight2Xl: css`margin-right: ${spacing2Xl};`,\n marginRight3Xl: css`margin-right: ${spacing3Xl};`,\n marginRightNone: css`margin-right: 0 !important;`,\n\n // Flex\n // --------------------------\n flex: css`display: flex;`,\n flex1: css`flex: 1;`,\n flexRow: css`flex-direction: row;`,\n flexColumn: css`flex-direction: column;`,\n alignCenter: css`align-items: center;`,\n alignStart: css`align-items: flex-start;`,\n alignEnd: css`align-items: flex-end;`,\n justifyCenter: css`justify-content: center;`,\n justifyStart: css`justify-content: flex-start;`,\n justifyEnd: css`justify-content: flex-end;`,\n justifySpaceBetween: css`justify-content: space-between;`,\n spaceBetween: css`align-content: space-between;`,\n\n // Layout\n // --------------------------\n widthFull: css`width: 100%;`,\n width100: css`width: 100px;`,\n width200: css`width: 200px;`,\n width300: css`width: 300px;`,\n width400: css`width: 400px;`,\n width500: css`width: 500px;`,\n heightFull: css`height: 100%;`,\n overflowScroll: css`overflow: scroll;`,\n overflowHidden: css`overflow: hidden;`,\n wrap: css`overflow-wrap: anywhere;`,\n absolute: css`position: absolute;`,\n relative: css`position: relative;`,\n fixed: css`position: fixed;`,\n static: css`position: static;`,\n top0: css`top: 0;`,\n bottom0: css`bottom: 0;`,\n left0: css`left: 0;`,\n right0: css`right: 0;`,\n\n // Borders\n // --------------------------\n borderSolid: css`border-style: solid;`,\n borderDashed: css`border-style: dashed;`,\n border: css`border-width: 1px;`,\n borderNone: css`border-width: 0;`,\n borderTop: css`border-width: 1px 0 0 0;`,\n borderBottom: css`border-width: 0 0 1px 0;`,\n borderLeft: css`border-width: 0 0 0 1px;`,\n borderRight: css`border-width: 0 1px 0 0;`,\n borderRed: css`border-color: ${colors.red400};`,\n borderGreen: css`border-color: ${colors.green400};`,\n borderBlue: css`border-color: ${colors.blue400};`,\n borderYellow: css`border-color: ${colors.yellow400};`,\n borderGray: css`border-color: ${colors.gray400};`,\n borderGray200: css`border-color: ${colors.gray200};`,\n borderGray600: css`border-color: ${colors.gray600};`,\n borderStrong: css`border-color: ${theme?.colors.text.maxContrast};`,\n borderWeak: css`border-color: ${theme?.colors.text.secondary};`,\n borderSemiWeak: css`border-color: ${theme?.colors.text.secondary};`,\n borderVeryWeak: css`border-color: ${isDark ? colors.gray800 : colors.gray100};`,\n borderCurrentColor: css`border-color: currentColor;`,\n\n // Utility\n // --------------------------\n rounded: css`border-radius: 3px;`,\n roundedLg: css`border-radius: 8px;`,\n roundedFull: css`border-radius: 100%;`,\n displayNone: css`display: none;`,\n block: css`display: block;`,\n inline: css`display: inline;`,\n inlineBlock: css`display: inline-block;`,\n pointer: css`cursor: pointer;`,\n outlineNone: css`outline: none;`,\n noFocusOutline: css`&:focus { outline: none; outline-offset: 0; box-shadow: none; }`,\n noTransition: css`transition: none !important;`,\n resizeNone: css`resize: none;`,\n\n // Theme Specific\n themeErrorBg: css`background-color: ${theme?.colors.error.main};`,\n themeErrorColor: css`color: ${theme?.colors.error.contrastText};`,\n themeErrorBorder: css`border-color: ${isDark? colors.red400 : colors.red600};`,\n };\n });\n\n return styles;\n};\n","const 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","const compare = require('./compare')\nconst gte = (a, b, loose) => compare(a, b, loose) >= 0\nmodule.exports = gte\n","const {\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\ncreateToken('PRERELEASEIDENTIFIER', `(?:${src[t.NUMERICIDENTIFIER]\n}|${src[t.NONNUMERICIDENTIFIER]})`)\n\ncreateToken('PRERELEASEIDENTIFIERLOOSE', `(?:${src[t.NUMERICIDENTIFIERLOOSE]\n}|${src[t.NONNUMERICIDENTIFIER]})`)\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 identifer, 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","import {\n AbsoluteTimeRange,\n dateTime,\n DateTime,\n dateTimeFormatISO,\n isDateTime,\n rangeUtil,\n RawTimeRange,\n TimeRange,\n} from '@grafana/data';\nimport { locationService } from '@grafana/runtime';\nimport { TimeZone } from '@grafana/schema';\n\nimport { isDate, isString } from 'lodash';\n\nimport { SerializableTimeRange } from 'types';\n\ntype AnyTimeRange = AbsoluteTimeRange | SerializableTimeRange | TimeRange;\n\nexport function toSerializableTimeRange(range: AnyTimeRange, timeZone: TimeZone): SerializableTimeRange {\n if (isSerializedTimeRange(range)) {\n return range;\n }\n const { from, to } = toTimeRange(range, timeZone);\n return { from: dateTimeFormatISO(from), to: dateTimeFormatISO(to) };\n}\n\nfunction lengthOfTimeRange(range: TimeRange): number {\n return range.to.valueOf() - range.from.valueOf();\n}\n\nexport function getZoomedTimeRange(range: TimeRange, factor: number): TimeRange {\n const timespan = lengthOfTimeRange(range);\n const center = range.to.valueOf() - timespan / 2;\n\n const to = dateTime(center + (timespan * factor) / 2);\n const from = dateTime(center - (timespan * factor) / 2);\n\n return { from, to, raw: { from: dateTimeFormatISO(from), to: dateTimeFormatISO(to) } };\n}\n\nexport function toTimeRange(range: AnyTimeRange, timeZone: TimeZone): TimeRange {\n if (isTimeRange(range)) {\n return range;\n }\n if (isSerializedTimeRange(range)) {\n return rangeUtil.convertRawToRange(range, timeZone);\n }\n return {\n from: dateTime(range.from),\n to: dateTime(range.to),\n raw: { from: dateTimeFormatISO(range.from), to: dateTimeFormatISO(range.to) },\n };\n}\n\nfunction isTimeRange(range: AnyTimeRange): range is TimeRange {\n return typeof (range as TimeRange)?.raw === 'object' && !isString(range.from) && !isString(range.to);\n}\n\nfunction isSerializedTimeRange(range: AnyTimeRange): range is SerializableTimeRange {\n return isString(range.from) && isString(range.to);\n}\n\nexport function defaultCreateJobTimeRange(): SerializableTimeRange {\n const currentSearch = locationService.getSearchObject() ?? {};\n return {\n from: typeof currentSearch.from === 'string' ? currentSearch.from : 'now-1w',\n to: typeof currentSearch.to === 'string' ? currentSearch.to : 'now',\n };\n}\n\nexport function defaultEditJobTimeRange(): SerializableTimeRange {\n return defaultCreateJobTimeRange();\n}\n\nexport function defaultViewJobTimeRange(): SerializableTimeRange {\n const currentSearch = locationService.getSearchObject() ?? {};\n return {\n from: typeof currentSearch.from === 'string' ? currentSearch.from : 'now/1w',\n to: typeof currentSearch.to === 'string' ? currentSearch.to : 'now/1w',\n };\n}\n\nexport function timeRangeToUtc(timeRange: TimeRange): SerializableTimeRange {\n const utcFrom = timeRange.from.utc().toISOString();\n const utcTo = timeRange.to.utc().toISOString();\n\n return {\n from: utcFrom.substring(0, utcFrom.indexOf('.')),\n to: utcTo.substring(0, utcTo.indexOf('.')),\n };\n}\n\nexport function getMutableTimeRange(raw: RawTimeRange): TimeRange {\n // We are cloning the date time values due to a bug being fixed in this PR.\n // https://github.com/grafana/grafana/pull/77238\n return rangeUtil.convertRawToRange({\n from: cloneIfDateTime(raw.from),\n to: cloneIfDateTime(raw.to),\n });\n}\n\nfunction cloneIfDateTime(value: DateTime | string): DateTime | string {\n if (isDateTimeWithInput(value)) {\n return dateTime(value._i);\n }\n return value;\n}\n\nfunction isDateTimeWithInput(value: object | string): value is { _i: string | number | Date } {\n if (!isDateTime(value) || !('_i' in value)) {\n return false;\n }\n return typeof value._i === 'string' || typeof value._i === 'number' || isDate(value._i);\n}\n","const 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 preleases\n return 'prerelease'\n}\n\nmodule.exports = diff\n","\"use strict\";\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n var desc = Object.getOwnPropertyDescriptor(m, k);\n if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\n desc = { enumerable: true, get: function() { return m[k]; } };\n }\n Object.defineProperty(o, k2, desc);\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n}));\nvar __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\n}) : function(o, v) {\n o[\"default\"] = v;\n});\nvar __importStar = (this && this.__importStar) || function (mod) {\n if (mod && mod.__esModule) return mod;\n var result = {};\n if (mod != null) for (var k in mod) if (k !== \"default\" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\n __setModuleDefault(result, mod);\n return result;\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.throwError = exports.Witherable = exports.wilt = exports.wither = exports.Traversable = exports.sequence = exports.traverse = exports.Filterable = exports.partitionMap = exports.partition = exports.filterMap = exports.filter = exports.Compactable = exports.separate = exports.compact = exports.Extend = exports.extend = exports.Alternative = exports.guard = exports.Zero = exports.zero = exports.Alt = exports.alt = exports.altW = exports.orElse = exports.Foldable = exports.reduceRight = exports.foldMap = exports.reduce = exports.Monad = exports.Chain = exports.flatMap = exports.Applicative = exports.Apply = exports.ap = exports.Pointed = exports.of = exports.asUnit = exports.as = exports.Functor = exports.map = exports.getMonoid = exports.getOrd = exports.getEq = exports.getShow = exports.URI = exports.getRight = exports.getLeft = exports.some = exports.none = void 0;\nexports.getLastMonoid = exports.getFirstMonoid = exports.getApplyMonoid = exports.getApplySemigroup = exports.option = exports.mapNullable = exports.chainFirst = exports.chain = exports.sequenceArray = exports.traverseArray = exports.traverseArrayWithIndex = exports.traverseReadonlyArrayWithIndex = exports.traverseReadonlyNonEmptyArrayWithIndex = exports.ApT = exports.apS = exports.bind = exports.let = exports.bindTo = exports.Do = exports.exists = exports.toUndefined = exports.toNullable = exports.chainNullableK = exports.fromNullableK = exports.tryCatchK = exports.tryCatch = exports.fromNullable = exports.chainFirstEitherK = exports.chainEitherK = exports.fromEitherK = exports.duplicate = exports.tapEither = exports.tap = exports.flatten = exports.apSecond = exports.apFirst = exports.flap = exports.getOrElse = exports.getOrElseW = exports.fold = exports.match = exports.foldW = exports.matchW = exports.isNone = exports.isSome = exports.FromEither = exports.fromEither = exports.MonadThrow = void 0;\nexports.fromPredicate = fromPredicate;\nexports.elem = elem;\nexports.getRefinement = getRefinement;\nvar Applicative_1 = require(\"./Applicative\");\nvar Apply_1 = require(\"./Apply\");\nvar chainable = __importStar(require(\"./Chain\"));\nvar FromEither_1 = require(\"./FromEither\");\nvar function_1 = require(\"./function\");\nvar Functor_1 = require(\"./Functor\");\nvar _ = __importStar(require(\"./internal\"));\nvar Predicate_1 = require(\"./Predicate\");\nvar Semigroup_1 = require(\"./Semigroup\");\nvar Separated_1 = require(\"./Separated\");\nvar Witherable_1 = require(\"./Witherable\");\nvar Zero_1 = require(\"./Zero\");\n// -------------------------------------------------------------------------------------\n// constructors\n// -------------------------------------------------------------------------------------\n/**\n * `None` doesn't have a constructor, instead you can use it directly as a value. Represents a missing value.\n *\n * @category constructors\n * @since 2.0.0\n */\nexports.none = _.none;\n/**\n * Constructs a `Some`. Represents an optional value that exists.\n *\n * @category constructors\n * @since 2.0.0\n */\nexports.some = _.some;\nfunction fromPredicate(predicate) {\n return function (a) { return (predicate(a) ? (0, exports.some)(a) : exports.none); };\n}\n/**\n * Returns the `Left` value of an `Either` if possible.\n *\n * @example\n * import { getLeft, none, some } from 'fp-ts/Option'\n * import { right, left } from 'fp-ts/Either'\n *\n * assert.deepStrictEqual(getLeft(right(1)), none)\n * assert.deepStrictEqual(getLeft(left('a')), some('a'))\n *\n * @category constructors\n * @since 2.0.0\n */\nvar getLeft = function (ma) { return (ma._tag === 'Right' ? exports.none : (0, exports.some)(ma.left)); };\nexports.getLeft = getLeft;\n/**\n * Returns the `Right` value of an `Either` if possible.\n *\n * @example\n * import { getRight, none, some } from 'fp-ts/Option'\n * import { right, left } from 'fp-ts/Either'\n *\n * assert.deepStrictEqual(getRight(right(1)), some(1))\n * assert.deepStrictEqual(getRight(left('a')), none)\n *\n * @category constructors\n * @since 2.0.0\n */\nvar getRight = function (ma) { return (ma._tag === 'Left' ? exports.none : (0, exports.some)(ma.right)); };\nexports.getRight = getRight;\nvar _map = function (fa, f) { return (0, function_1.pipe)(fa, (0, exports.map)(f)); };\nvar _ap = function (fab, fa) { return (0, function_1.pipe)(fab, (0, exports.ap)(fa)); };\nvar _reduce = function (fa, b, f) { return (0, function_1.pipe)(fa, (0, exports.reduce)(b, f)); };\nvar _foldMap = function (M) {\n var foldMapM = (0, exports.foldMap)(M);\n return function (fa, f) { return (0, function_1.pipe)(fa, foldMapM(f)); };\n};\nvar _reduceRight = function (fa, b, f) { return (0, function_1.pipe)(fa, (0, exports.reduceRight)(b, f)); };\nvar _traverse = function (F) {\n var traverseF = (0, exports.traverse)(F);\n return function (ta, f) { return (0, function_1.pipe)(ta, traverseF(f)); };\n};\n/* istanbul ignore next */\nvar _alt = function (fa, that) { return (0, function_1.pipe)(fa, (0, exports.alt)(that)); };\nvar _filter = function (fa, predicate) { return (0, function_1.pipe)(fa, (0, exports.filter)(predicate)); };\n/* istanbul ignore next */\nvar _filterMap = function (fa, f) { return (0, function_1.pipe)(fa, (0, exports.filterMap)(f)); };\n/* istanbul ignore next */\nvar _extend = function (wa, f) { return (0, function_1.pipe)(wa, (0, exports.extend)(f)); };\n/* istanbul ignore next */\nvar _partition = function (fa, predicate) {\n return (0, function_1.pipe)(fa, (0, exports.partition)(predicate));\n};\n/* istanbul ignore next */\nvar _partitionMap = function (fa, f) { return (0, function_1.pipe)(fa, (0, exports.partitionMap)(f)); };\n/**\n * @category type lambdas\n * @since 2.0.0\n */\nexports.URI = 'Option';\n/**\n * @category instances\n * @since 2.0.0\n */\nvar getShow = function (S) { return ({\n show: function (ma) { return ((0, exports.isNone)(ma) ? 'none' : \"some(\".concat(S.show(ma.value), \")\")); }\n}); };\nexports.getShow = getShow;\n/**\n * @example\n * import { none, some, getEq } from 'fp-ts/Option'\n * import * as N from 'fp-ts/number'\n *\n * const E = getEq(N.Eq)\n * assert.strictEqual(E.equals(none, none), true)\n * assert.strictEqual(E.equals(none, some(1)), false)\n * assert.strictEqual(E.equals(some(1), none), false)\n * assert.strictEqual(E.equals(some(1), some(2)), false)\n * assert.strictEqual(E.equals(some(1), some(1)), true)\n *\n * @category instances\n * @since 2.0.0\n */\nvar getEq = function (E) { return ({\n equals: function (x, y) { return x === y || ((0, exports.isNone)(x) ? (0, exports.isNone)(y) : (0, exports.isNone)(y) ? false : E.equals(x.value, y.value)); }\n}); };\nexports.getEq = getEq;\n/**\n * The `Ord` instance allows `Option` values to be compared with\n * `compare`, whenever there is an `Ord` instance for\n * the type the `Option` contains.\n *\n * `None` is considered to be less than any `Some` value.\n *\n *\n * @example\n * import { none, some, getOrd } from 'fp-ts/Option'\n * import * as N from 'fp-ts/number'\n *\n * const O = getOrd(N.Ord)\n * assert.strictEqual(O.compare(none, none), 0)\n * assert.strictEqual(O.compare(none, some(1)), -1)\n * assert.strictEqual(O.compare(some(1), none), 1)\n * assert.strictEqual(O.compare(some(1), some(2)), -1)\n * assert.strictEqual(O.compare(some(1), some(1)), 0)\n *\n * @category instances\n * @since 2.0.0\n */\nvar getOrd = function (O) { return ({\n equals: (0, exports.getEq)(O).equals,\n compare: function (x, y) { return (x === y ? 0 : (0, exports.isSome)(x) ? ((0, exports.isSome)(y) ? O.compare(x.value, y.value) : 1) : -1); }\n}); };\nexports.getOrd = getOrd;\n/**\n * Monoid returning the left-most non-`None` value. If both operands are `Some`s then the inner values are\n * concatenated using the provided `Semigroup`\n *\n * | x | y | concat(x, y) |\n * | ------- | ------- | ------------------ |\n * | none | none | none |\n * | some(a) | none | some(a) |\n * | none | some(b) | some(b) |\n * | some(a) | some(b) | some(concat(a, b)) |\n *\n * @example\n * import { getMonoid, some, none } from 'fp-ts/Option'\n * import { SemigroupSum } from 'fp-ts/number'\n *\n * const M = getMonoid(SemigroupSum)\n * assert.deepStrictEqual(M.concat(none, none), none)\n * assert.deepStrictEqual(M.concat(some(1), none), some(1))\n * assert.deepStrictEqual(M.concat(none, some(1)), some(1))\n * assert.deepStrictEqual(M.concat(some(1), some(2)), some(3))\n *\n * @category instances\n * @since 2.0.0\n */\nvar getMonoid = function (S) { return ({\n concat: function (x, y) { return ((0, exports.isNone)(x) ? y : (0, exports.isNone)(y) ? x : (0, exports.some)(S.concat(x.value, y.value))); },\n empty: exports.none\n}); };\nexports.getMonoid = getMonoid;\n/**\n * @category mapping\n * @since 2.0.0\n */\nvar map = function (f) { return function (fa) {\n return (0, exports.isNone)(fa) ? exports.none : (0, exports.some)(f(fa.value));\n}; };\nexports.map = map;\n/**\n * @category instances\n * @since 2.7.0\n */\nexports.Functor = {\n URI: exports.URI,\n map: _map\n};\n/**\n * Maps the `Some` value of this `Option` to the specified constant value.\n *\n * @category mapping\n * @since 2.16.0\n */\nexports.as = (0, function_1.dual)(2, (0, Functor_1.as)(exports.Functor));\n/**\n * Maps the `Some` value of this `Option` to the void constant value.\n *\n * @category mapping\n * @since 2.16.0\n */\nexports.asUnit = (0, Functor_1.asUnit)(exports.Functor);\n/**\n * @category constructors\n * @since 2.7.0\n */\nexports.of = exports.some;\n/**\n * @category instances\n * @since 2.10.0\n */\nexports.Pointed = {\n URI: exports.URI,\n of: exports.of\n};\n/**\n * @since 2.0.0\n */\nvar ap = function (fa) { return function (fab) {\n return (0, exports.isNone)(fab) ? exports.none : (0, exports.isNone)(fa) ? exports.none : (0, exports.some)(fab.value(fa.value));\n}; };\nexports.ap = ap;\n/**\n * @category instances\n * @since 2.10.0\n */\nexports.Apply = {\n URI: exports.URI,\n map: _map,\n ap: _ap\n};\n/**\n * @category instances\n * @since 2.7.0\n */\nexports.Applicative = {\n URI: exports.URI,\n map: _map,\n ap: _ap,\n of: exports.of\n};\n/**\n * @category sequencing\n * @since 2.14.0\n */\nexports.flatMap = (0, function_1.dual)(2, function (ma, f) { return ((0, exports.isNone)(ma) ? exports.none : f(ma.value)); });\n/**\n * @category instances\n * @since 2.10.0\n */\nexports.Chain = {\n URI: exports.URI,\n map: _map,\n ap: _ap,\n chain: exports.flatMap\n};\n/**\n * @category instances\n * @since 2.7.0\n */\nexports.Monad = {\n URI: exports.URI,\n map: _map,\n ap: _ap,\n of: exports.of,\n chain: exports.flatMap\n};\n/**\n * @category folding\n * @since 2.0.0\n */\nvar reduce = function (b, f) { return function (fa) {\n return (0, exports.isNone)(fa) ? b : f(b, fa.value);\n}; };\nexports.reduce = reduce;\n/**\n * @category folding\n * @since 2.0.0\n */\nvar foldMap = function (M) { return function (f) { return function (fa) {\n return (0, exports.isNone)(fa) ? M.empty : f(fa.value);\n}; }; };\nexports.foldMap = foldMap;\n/**\n * @category folding\n * @since 2.0.0\n */\nvar reduceRight = function (b, f) { return function (fa) {\n return (0, exports.isNone)(fa) ? b : f(fa.value, b);\n}; };\nexports.reduceRight = reduceRight;\n/**\n * @category instances\n * @since 2.7.0\n */\nexports.Foldable = {\n URI: exports.URI,\n reduce: _reduce,\n foldMap: _foldMap,\n reduceRight: _reduceRight\n};\n/**\n * Returns the provided `Option` `that` if `self` is `None`, otherwise returns `self`.\n *\n * @param self - The first `Option` to be checked.\n * @param that - The `Option` to return if `self` is `None`.\n *\n * @example\n * import * as O from \"fp-ts/Option\"\n *\n * assert.deepStrictEqual(O.orElse(O.none, () => O.none), O.none)\n * assert.deepStrictEqual(O.orElse(O.some(1), () => O.none), O.some(1))\n * assert.deepStrictEqual(O.orElse(O.none, () => O.some('b')), O.some('b'))\n * assert.deepStrictEqual(O.orElse(O.some(1), () => O.some('b')), O.some(1))\n *\n * @category error handling\n * @since 2.16.0\n */\nexports.orElse = (0, function_1.dual)(2, function (self, that) { return ((0, exports.isNone)(self) ? that() : self); });\n/**\n * Alias of `orElse`.\n *\n * Less strict version of [`alt`](#alt).\n *\n * The `W` suffix (short for **W**idening) means that the return types will be merged.\n *\n * @category legacy\n * @since 2.9.0\n */\nexports.altW = exports.orElse;\n/**\n * Alias of `orElse`.\n *\n * @category legacy\n * @since 2.0.0\n */\nexports.alt = exports.orElse;\n/**\n * @category instances\n * @since 2.7.0\n */\nexports.Alt = {\n URI: exports.URI,\n map: _map,\n alt: _alt\n};\n/**\n * @since 2.7.0\n */\nvar zero = function () { return exports.none; };\nexports.zero = zero;\n/**\n * @category instances\n * @since 2.11.0\n */\nexports.Zero = {\n URI: exports.URI,\n zero: exports.zero\n};\n/**\n * @category do notation\n * @since 2.11.0\n */\nexports.guard = (0, Zero_1.guard)(exports.Zero, exports.Pointed);\n/**\n * @category instances\n * @since 2.7.0\n */\nexports.Alternative = {\n URI: exports.URI,\n map: _map,\n ap: _ap,\n of: exports.of,\n alt: _alt,\n zero: exports.zero\n};\n/**\n * @since 2.0.0\n */\nvar extend = function (f) { return function (wa) {\n return (0, exports.isNone)(wa) ? exports.none : (0, exports.some)(f(wa));\n}; };\nexports.extend = extend;\n/**\n * @category instances\n * @since 2.7.0\n */\nexports.Extend = {\n URI: exports.URI,\n map: _map,\n extend: _extend\n};\n/**\n * @category filtering\n * @since 2.0.0\n */\nexports.compact = (0, exports.flatMap)(function_1.identity);\nvar defaultSeparated = /*#__PURE__*/ (0, Separated_1.separated)(exports.none, exports.none);\n/**\n * @category filtering\n * @since 2.0.0\n */\nvar separate = function (ma) {\n return (0, exports.isNone)(ma) ? defaultSeparated : (0, Separated_1.separated)((0, exports.getLeft)(ma.value), (0, exports.getRight)(ma.value));\n};\nexports.separate = separate;\n/**\n * @category instances\n * @since 2.7.0\n */\nexports.Compactable = {\n URI: exports.URI,\n compact: exports.compact,\n separate: exports.separate\n};\n/**\n * @category filtering\n * @since 2.0.0\n */\nvar filter = function (predicate) {\n return function (fa) {\n return (0, exports.isNone)(fa) ? exports.none : predicate(fa.value) ? fa : exports.none;\n };\n};\nexports.filter = filter;\n/**\n * @category filtering\n * @since 2.0.0\n */\nvar filterMap = function (f) { return function (fa) {\n return (0, exports.isNone)(fa) ? exports.none : f(fa.value);\n}; };\nexports.filterMap = filterMap;\n/**\n * @category filtering\n * @since 2.0.0\n */\nvar partition = function (predicate) {\n return function (fa) {\n return (0, Separated_1.separated)(_filter(fa, (0, Predicate_1.not)(predicate)), _filter(fa, predicate));\n };\n};\nexports.partition = partition;\n/**\n * @category filtering\n * @since 2.0.0\n */\nvar partitionMap = function (f) { return (0, function_1.flow)((0, exports.map)(f), exports.separate); };\nexports.partitionMap = partitionMap;\n/**\n * @category instances\n * @since 2.7.0\n */\nexports.Filterable = {\n URI: exports.URI,\n map: _map,\n compact: exports.compact,\n separate: exports.separate,\n filter: _filter,\n filterMap: _filterMap,\n partition: _partition,\n partitionMap: _partitionMap\n};\n/**\n * @category traversing\n * @since 2.6.3\n */\nvar traverse = function (F) {\n return function (f) {\n return function (ta) {\n return (0, exports.isNone)(ta) ? F.of(exports.none) : F.map(f(ta.value), exports.some);\n };\n };\n};\nexports.traverse = traverse;\n/**\n * @category traversing\n * @since 2.6.3\n */\nvar sequence = function (F) {\n return function (ta) {\n return (0, exports.isNone)(ta) ? F.of(exports.none) : F.map(ta.value, exports.some);\n };\n};\nexports.sequence = sequence;\n/**\n * @category instances\n * @since 2.7.0\n */\nexports.Traversable = {\n URI: exports.URI,\n map: _map,\n reduce: _reduce,\n foldMap: _foldMap,\n reduceRight: _reduceRight,\n traverse: _traverse,\n sequence: exports.sequence\n};\nvar _wither = /*#__PURE__*/ (0, Witherable_1.witherDefault)(exports.Traversable, exports.Compactable);\nvar _wilt = /*#__PURE__*/ (0, Witherable_1.wiltDefault)(exports.Traversable, exports.Compactable);\n/**\n * @category filtering\n * @since 2.6.5\n */\nvar wither = function (F) {\n var _witherF = _wither(F);\n return function (f) { return function (fa) { return _witherF(fa, f); }; };\n};\nexports.wither = wither;\n/**\n * @category filtering\n * @since 2.6.5\n */\nvar wilt = function (F) {\n var _wiltF = _wilt(F);\n return function (f) { return function (fa) { return _wiltF(fa, f); }; };\n};\nexports.wilt = wilt;\n/**\n * @category instances\n * @since 2.7.0\n */\nexports.Witherable = {\n URI: exports.URI,\n map: _map,\n reduce: _reduce,\n foldMap: _foldMap,\n reduceRight: _reduceRight,\n traverse: _traverse,\n sequence: exports.sequence,\n compact: exports.compact,\n separate: exports.separate,\n filter: _filter,\n filterMap: _filterMap,\n partition: _partition,\n partitionMap: _partitionMap,\n wither: _wither,\n wilt: _wilt\n};\n/**\n * @since 2.7.0\n */\nvar throwError = function () { return exports.none; };\nexports.throwError = throwError;\n/**\n * @category instances\n * @since 2.7.0\n */\nexports.MonadThrow = {\n URI: exports.URI,\n map: _map,\n ap: _ap,\n of: exports.of,\n chain: exports.flatMap,\n throwError: exports.throwError\n};\n/**\n * Transforms an `Either` to an `Option` discarding the error.\n *\n * Alias of [getRight](#getright)\n *\n * @category conversions\n * @since 2.0.0\n */\nexports.fromEither = exports.getRight;\n/**\n * @category instances\n * @since 2.11.0\n */\nexports.FromEither = {\n URI: exports.URI,\n fromEither: exports.fromEither\n};\n// -------------------------------------------------------------------------------------\n// refinements\n// -------------------------------------------------------------------------------------\n/**\n * Returns `true` if the option is an instance of `Some`, `false` otherwise.\n *\n * @example\n * import { some, none, isSome } from 'fp-ts/Option'\n *\n * assert.strictEqual(isSome(some(1)), true)\n * assert.strictEqual(isSome(none), false)\n *\n * @category refinements\n * @since 2.0.0\n */\nexports.isSome = _.isSome;\n/**\n * Returns `true` if the option is `None`, `false` otherwise.\n *\n * @example\n * import { some, none, isNone } from 'fp-ts/Option'\n *\n * assert.strictEqual(isNone(some(1)), false)\n * assert.strictEqual(isNone(none), true)\n *\n * @category refinements\n * @since 2.0.0\n */\nvar isNone = function (fa) { return fa._tag === 'None'; };\nexports.isNone = isNone;\n/**\n * Less strict version of [`match`](#match).\n *\n * The `W` suffix (short for **W**idening) means that the handler return types will be merged.\n *\n * @category pattern matching\n * @since 2.10.0\n */\nvar matchW = function (onNone, onSome) {\n return function (ma) {\n return (0, exports.isNone)(ma) ? onNone() : onSome(ma.value);\n };\n};\nexports.matchW = matchW;\n/**\n * Alias of [`matchW`](#matchw).\n *\n * @category pattern matching\n * @since 2.10.0\n */\nexports.foldW = exports.matchW;\n/**\n * Takes a (lazy) default value, a function, and an `Option` value, if the `Option` value is `None` the default value is\n * returned, otherwise the function is applied to the value inside the `Some` and the result is returned.\n *\n * @example\n * import { some, none, match } from 'fp-ts/Option'\n * import { pipe } from 'fp-ts/function'\n *\n * assert.strictEqual(\n * pipe(\n * some(1),\n * match(() => 'a none', a => `a some containing ${a}`)\n * ),\n * 'a some containing 1'\n * )\n *\n * assert.strictEqual(\n * pipe(\n * none,\n * match(() => 'a none', a => `a some containing ${a}`)\n * ),\n * 'a none'\n * )\n *\n * @category pattern matching\n * @since 2.10.0\n */\nexports.match = exports.matchW;\n/**\n * Alias of [`match`](#match).\n *\n * @category pattern matching\n * @since 2.0.0\n */\nexports.fold = exports.match;\n/**\n * Less strict version of [`getOrElse`](#getorelse).\n *\n * The `W` suffix (short for **W**idening) means that the handler return type will be merged.\n *\n * @category error handling\n * @since 2.6.0\n */\nvar getOrElseW = function (onNone) {\n return function (ma) {\n return (0, exports.isNone)(ma) ? onNone() : ma.value;\n };\n};\nexports.getOrElseW = getOrElseW;\n/**\n * Extracts the value out of the structure, if it exists. Otherwise returns the given default value\n *\n * @example\n * import { some, none, getOrElse } from 'fp-ts/Option'\n * import { pipe } from 'fp-ts/function'\n *\n * assert.strictEqual(\n * pipe(\n * some(1),\n * getOrElse(() => 0)\n * ),\n * 1\n * )\n * assert.strictEqual(\n * pipe(\n * none,\n * getOrElse(() => 0)\n * ),\n * 0\n * )\n *\n * @category error handling\n * @since 2.0.0\n */\nexports.getOrElse = exports.getOrElseW;\n/**\n * @category mapping\n * @since 2.10.0\n */\nexports.flap = (0, Functor_1.flap)(exports.Functor);\n/**\n * Combine two effectful actions, keeping only the result of the first.\n *\n * @since 2.0.0\n */\nexports.apFirst = (0, Apply_1.apFirst)(exports.Apply);\n/**\n * Combine two effectful actions, keeping only the result of the second.\n *\n * @since 2.0.0\n */\nexports.apSecond = (0, Apply_1.apSecond)(exports.Apply);\n/**\n * @category sequencing\n * @since 2.0.0\n */\nexports.flatten = exports.compact;\n/**\n * Composes computations in sequence, using the return value of one computation to determine the next computation and\n * keeping only the result of the first.\n *\n * @category combinators\n * @since 2.15.0\n */\nexports.tap = (0, function_1.dual)(2, chainable.tap(exports.Chain));\n/**\n * Composes computations in sequence, using the return value of one computation to determine the next computation and\n * keeping only the result of the first.\n *\n * @example\n * import { pipe } from 'fp-ts/function'\n * import * as O from 'fp-ts/Option'\n * import * as E from 'fp-ts/Either'\n *\n * const compute = (value: number) => pipe(\n * O.of(value),\n * O.tapEither((value) => value > 0 ? E.right('ok') : E.left('error')),\n * )\n *\n * assert.deepStrictEqual(compute(1), O.of(1))\n * assert.deepStrictEqual(compute(-42), O.none)\n *\n * @category combinators\n * @since 2.16.0\n */\nexports.tapEither = (0, function_1.dual)(2, (0, FromEither_1.tapEither)(exports.FromEither, exports.Chain));\n/**\n * @since 2.0.0\n */\nexports.duplicate = (0, exports.extend)(function_1.identity);\n/**\n * @category lifting\n * @since 2.11.0\n */\nexports.fromEitherK = (0, FromEither_1.fromEitherK)(exports.FromEither);\n/**\n * @category sequencing\n * @since 2.11.0\n */\nexports.chainEitherK = \n/*#__PURE__*/ (0, FromEither_1.chainEitherK)(exports.FromEither, exports.Chain);\n/**\n * Alias of `tapEither`.\n *\n * @category legacy\n * @since 2.12.0\n */\nexports.chainFirstEitherK = exports.tapEither;\n/**\n * Constructs a new `Option` from a nullable type. If the value is `null` or `undefined`, returns `None`, otherwise\n * returns the value wrapped in a `Some`.\n *\n * @example\n * import { none, some, fromNullable } from 'fp-ts/Option'\n *\n * assert.deepStrictEqual(fromNullable(undefined), none)\n * assert.deepStrictEqual(fromNullable(null), none)\n * assert.deepStrictEqual(fromNullable(1), some(1))\n *\n * @category conversions\n * @since 2.0.0\n */\nvar fromNullable = function (a) { return (a == null ? exports.none : (0, exports.some)(a)); };\nexports.fromNullable = fromNullable;\n/**\n * Transforms an exception into an `Option`. If `f` throws, returns `None`, otherwise returns the output wrapped in a\n * `Some`.\n *\n * See also [`tryCatchK`](#trycatchk).\n *\n * @example\n * import { none, some, tryCatch } from 'fp-ts/Option'\n *\n * assert.deepStrictEqual(\n * tryCatch(() => {\n * throw new Error()\n * }),\n * none\n * )\n * assert.deepStrictEqual(tryCatch(() => 1), some(1))\n *\n * @category interop\n * @since 2.0.0\n */\nvar tryCatch = function (f) {\n try {\n return (0, exports.some)(f());\n }\n catch (e) {\n return exports.none;\n }\n};\nexports.tryCatch = tryCatch;\n/**\n * Converts a function that may throw to one returning a `Option`.\n *\n * @category interop\n * @since 2.10.0\n */\nvar tryCatchK = function (f) {\n return function () {\n var a = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n a[_i] = arguments[_i];\n }\n return (0, exports.tryCatch)(function () { return f.apply(void 0, a); });\n };\n};\nexports.tryCatchK = tryCatchK;\n/**\n * Returns a *smart constructor* from a function that returns a nullable value.\n *\n * @example\n * import { fromNullableK, none, some } from 'fp-ts/Option'\n *\n * const f = (s: string): number | undefined => {\n * const n = parseFloat(s)\n * return isNaN(n) ? undefined : n\n * }\n *\n * const g = fromNullableK(f)\n *\n * assert.deepStrictEqual(g('1'), some(1))\n * assert.deepStrictEqual(g('a'), none)\n *\n * @category lifting\n * @since 2.9.0\n */\nvar fromNullableK = function (f) { return (0, function_1.flow)(f, exports.fromNullable); };\nexports.fromNullableK = fromNullableK;\n/**\n * This is `chain` + `fromNullable`, useful when working with optional values.\n *\n * @example\n * import { some, none, fromNullable, chainNullableK } from 'fp-ts/Option'\n * import { pipe } from 'fp-ts/function'\n *\n * interface Employee {\n * readonly company?: {\n * readonly address?: {\n * readonly street?: {\n * readonly name?: string\n * }\n * }\n * }\n * }\n *\n * const employee1: Employee = { company: { address: { street: { name: 'high street' } } } }\n *\n * assert.deepStrictEqual(\n * pipe(\n * fromNullable(employee1.company),\n * chainNullableK(company => company.address),\n * chainNullableK(address => address.street),\n * chainNullableK(street => street.name)\n * ),\n * some('high street')\n * )\n *\n * const employee2: Employee = { company: { address: { street: {} } } }\n *\n * assert.deepStrictEqual(\n * pipe(\n * fromNullable(employee2.company),\n * chainNullableK(company => company.address),\n * chainNullableK(address => address.street),\n * chainNullableK(street => street.name)\n * ),\n * none\n * )\n *\n * @category sequencing\n * @since 2.9.0\n */\nvar chainNullableK = function (f) {\n return function (ma) {\n return (0, exports.isNone)(ma) ? exports.none : (0, exports.fromNullable)(f(ma.value));\n };\n};\nexports.chainNullableK = chainNullableK;\n/**\n * Extracts the value out of the structure, if it exists. Otherwise returns `null`.\n *\n * @example\n * import { some, none, toNullable } from 'fp-ts/Option'\n * import { pipe } from 'fp-ts/function'\n *\n * assert.strictEqual(\n * pipe(\n * some(1),\n * toNullable\n * ),\n * 1\n * )\n * assert.strictEqual(\n * pipe(\n * none,\n * toNullable\n * ),\n * null\n * )\n *\n * @category conversions\n * @since 2.0.0\n */\nexports.toNullable = (0, exports.match)(function_1.constNull, function_1.identity);\n/**\n * Extracts the value out of the structure, if it exists. Otherwise returns `undefined`.\n *\n * @example\n * import { some, none, toUndefined } from 'fp-ts/Option'\n * import { pipe } from 'fp-ts/function'\n *\n * assert.strictEqual(\n * pipe(\n * some(1),\n * toUndefined\n * ),\n * 1\n * )\n * assert.strictEqual(\n * pipe(\n * none,\n * toUndefined\n * ),\n * undefined\n * )\n *\n * @category conversions\n * @since 2.0.0\n */\nexports.toUndefined = (0, exports.match)(function_1.constUndefined, function_1.identity);\nfunction elem(E) {\n return function (a, ma) {\n if (ma === undefined) {\n var elemE_1 = elem(E);\n return function (ma) { return elemE_1(a, ma); };\n }\n return (0, exports.isNone)(ma) ? false : E.equals(a, ma.value);\n };\n}\n/**\n * Returns `true` if the predicate is satisfied by the wrapped value\n *\n * @example\n * import { some, none, exists } from 'fp-ts/Option'\n * import { pipe } from 'fp-ts/function'\n *\n * assert.strictEqual(\n * pipe(\n * some(1),\n * exists(n => n > 0)\n * ),\n * true\n * )\n * assert.strictEqual(\n * pipe(\n * some(1),\n * exists(n => n > 1)\n * ),\n * false\n * )\n * assert.strictEqual(\n * pipe(\n * none,\n * exists(n => n > 0)\n * ),\n * false\n * )\n *\n * @since 2.0.0\n */\nvar exists = function (predicate) {\n return function (ma) {\n return (0, exports.isNone)(ma) ? false : predicate(ma.value);\n };\n};\nexports.exists = exists;\n// -------------------------------------------------------------------------------------\n// do notation\n// -------------------------------------------------------------------------------------\n/**\n * @category do notation\n * @since 2.9.0\n */\nexports.Do = (0, exports.of)(_.emptyRecord);\n/**\n * @category do notation\n * @since 2.8.0\n */\nexports.bindTo = (0, Functor_1.bindTo)(exports.Functor);\nvar let_ = /*#__PURE__*/ (0, Functor_1.let)(exports.Functor);\nexports.let = let_;\n/**\n * @category do notation\n * @since 2.8.0\n */\nexports.bind = chainable.bind(exports.Chain);\n/**\n * @category do notation\n * @since 2.8.0\n */\nexports.apS = (0, Apply_1.apS)(exports.Apply);\n/**\n * @since 2.11.0\n */\nexports.ApT = (0, exports.of)(_.emptyReadonlyArray);\n// -------------------------------------------------------------------------------------\n// array utils\n// -------------------------------------------------------------------------------------\n/**\n * Equivalent to `ReadonlyNonEmptyArray#traverseWithIndex(Applicative)`.\n *\n * @category traversing\n * @since 2.11.0\n */\nvar traverseReadonlyNonEmptyArrayWithIndex = function (f) {\n return function (as) {\n var o = f(0, _.head(as));\n if ((0, exports.isNone)(o)) {\n return exports.none;\n }\n var out = [o.value];\n for (var i = 1; i < as.length; i++) {\n var o_1 = f(i, as[i]);\n if ((0, exports.isNone)(o_1)) {\n return exports.none;\n }\n out.push(o_1.value);\n }\n return (0, exports.some)(out);\n };\n};\nexports.traverseReadonlyNonEmptyArrayWithIndex = traverseReadonlyNonEmptyArrayWithIndex;\n/**\n * Equivalent to `ReadonlyArray#traverseWithIndex(Applicative)`.\n *\n * @category traversing\n * @since 2.11.0\n */\nvar traverseReadonlyArrayWithIndex = function (f) {\n var g = (0, exports.traverseReadonlyNonEmptyArrayWithIndex)(f);\n return function (as) { return (_.isNonEmpty(as) ? g(as) : exports.ApT); };\n};\nexports.traverseReadonlyArrayWithIndex = traverseReadonlyArrayWithIndex;\n/**\n * Equivalent to `ReadonlyArray#traverseWithIndex(Applicative)`.\n *\n * @category traversing\n * @since 2.9.0\n */\nexports.traverseArrayWithIndex = exports.traverseReadonlyArrayWithIndex;\n/**\n * Equivalent to `ReadonlyArray#traverse(Applicative)`.\n *\n * @category traversing\n * @since 2.9.0\n */\nvar traverseArray = function (f) {\n return (0, exports.traverseReadonlyArrayWithIndex)(function (_, a) { return f(a); });\n};\nexports.traverseArray = traverseArray;\n/**\n * Equivalent to `ReadonlyArray#sequence(Applicative)`.\n *\n * @category traversing\n * @since 2.9.0\n */\nexports.sequenceArray = \n/*#__PURE__*/ (0, exports.traverseArray)(function_1.identity);\n// -------------------------------------------------------------------------------------\n// legacy\n// -------------------------------------------------------------------------------------\n/**\n * Alias of `flatMap`.\n *\n * @category legacy\n * @since 2.0.0\n */\nexports.chain = exports.flatMap;\n/**\n * Alias of `tap`.\n *\n * @category legacy\n * @since 2.0.0\n */\nexports.chainFirst = exports.tap;\n// -------------------------------------------------------------------------------------\n// deprecated\n// -------------------------------------------------------------------------------------\n/**\n * Use `Refinement` module instead.\n *\n * @category zone of death\n * @since 2.0.0\n * @deprecated\n */\nfunction getRefinement(getOption) {\n return function (a) { return (0, exports.isSome)(getOption(a)); };\n}\n/**\n * Use [`chainNullableK`](#chainnullablek) instead.\n *\n * @category zone of death\n * @since 2.0.0\n * @deprecated\n */\nexports.mapNullable = exports.chainNullableK;\n/**\n * This instance is deprecated, use small, specific instances instead.\n * For example if a function needs a `Functor` instance, pass `O.Functor` instead of `O.option`\n * (where `O` is from `import O from 'fp-ts/Option'`)\n *\n * @category zone of death\n * @since 2.0.0\n * @deprecated\n */\nexports.option = {\n URI: exports.URI,\n map: _map,\n of: exports.of,\n ap: _ap,\n chain: exports.flatMap,\n reduce: _reduce,\n foldMap: _foldMap,\n reduceRight: _reduceRight,\n traverse: _traverse,\n sequence: exports.sequence,\n zero: exports.zero,\n alt: _alt,\n extend: _extend,\n compact: exports.compact,\n separate: exports.separate,\n filter: _filter,\n filterMap: _filterMap,\n partition: _partition,\n partitionMap: _partitionMap,\n wither: _wither,\n wilt: _wilt,\n throwError: exports.throwError\n};\n/**\n * Use [`getApplySemigroup`](./Apply.ts.html#getapplysemigroup) instead.\n *\n * @category zone of death\n * @since 2.0.0\n * @deprecated\n */\nexports.getApplySemigroup = (0, Apply_1.getApplySemigroup)(exports.Apply);\n/**\n * Use [`getApplicativeMonoid`](./Applicative.ts.html#getapplicativemonoid) instead.\n *\n * @category zone of death\n * @since 2.0.0\n * @deprecated\n */\nexports.getApplyMonoid = (0, Applicative_1.getApplicativeMonoid)(exports.Applicative);\n/**\n * Use\n *\n * ```ts\n * import { first } from 'fp-ts/Semigroup'\n * import { getMonoid } from 'fp-ts/Option'\n *\n * getMonoid(first())\n * ```\n *\n * instead.\n *\n * Monoid returning the left-most non-`None` value\n *\n * | x | y | concat(x, y) |\n * | ------- | ------- | ------------ |\n * | none | none | none |\n * | some(a) | none | some(a) |\n * | none | some(b) | some(b) |\n * | some(a) | some(b) | some(a) |\n *\n * @example\n * import { getFirstMonoid, some, none } from 'fp-ts/Option'\n *\n * const M = getFirstMonoid()\n * assert.deepStrictEqual(M.concat(none, none), none)\n * assert.deepStrictEqual(M.concat(some(1), none), some(1))\n * assert.deepStrictEqual(M.concat(none, some(2)), some(2))\n * assert.deepStrictEqual(M.concat(some(1), some(2)), some(1))\n *\n * @category zone of death\n * @since 2.0.0\n * @deprecated\n */\nvar getFirstMonoid = function () { return (0, exports.getMonoid)((0, Semigroup_1.first)()); };\nexports.getFirstMonoid = getFirstMonoid;\n/**\n * Use\n *\n * ```ts\n * import { last } from 'fp-ts/Semigroup'\n * import { getMonoid } from 'fp-ts/Option'\n *\n * getMonoid(last())\n * ```\n *\n * instead.\n *\n * Monoid returning the right-most non-`None` value\n *\n * | x | y | concat(x, y) |\n * | ------- | ------- | ------------ |\n * | none | none | none |\n * | some(a) | none | some(a) |\n * | none | some(b) | some(b) |\n * | some(a) | some(b) | some(b) |\n *\n * @example\n * import { getLastMonoid, some, none } from 'fp-ts/Option'\n *\n * const M = getLastMonoid()\n * assert.deepStrictEqual(M.concat(none, none), none)\n * assert.deepStrictEqual(M.concat(some(1), none), some(1))\n * assert.deepStrictEqual(M.concat(none, some(2)), some(2))\n * assert.deepStrictEqual(M.concat(some(1), some(2)), some(2))\n *\n * @category zone of death\n * @since 2.0.0\n * @deprecated\n */\nvar getLastMonoid = function () { return (0, exports.getMonoid)((0, Semigroup_1.last)()); };\nexports.getLastMonoid = getLastMonoid;\n","\"use strict\";\n/**\n * ```ts\n * interface Separated {\n * readonly left: E\n * readonly right: A\n * }\n * ```\n *\n * Represents a result of separating a whole into two parts.\n *\n * @since 2.10.0\n */\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.right = exports.left = exports.flap = exports.Functor = exports.Bifunctor = exports.URI = exports.bimap = exports.mapLeft = exports.map = exports.separated = void 0;\nvar function_1 = require(\"./function\");\nvar Functor_1 = require(\"./Functor\");\n// -------------------------------------------------------------------------------------\n// constructors\n// -------------------------------------------------------------------------------------\n/**\n * @category constructors\n * @since 2.10.0\n */\nvar separated = function (left, right) { return ({ left: left, right: right }); };\nexports.separated = separated;\nvar _map = function (fa, f) { return (0, function_1.pipe)(fa, (0, exports.map)(f)); };\nvar _mapLeft = function (fa, f) { return (0, function_1.pipe)(fa, (0, exports.mapLeft)(f)); };\nvar _bimap = function (fa, g, f) { return (0, function_1.pipe)(fa, (0, exports.bimap)(g, f)); };\n/**\n * `map` can be used to turn functions `(a: A) => B` into functions `(fa: F) => F` whose argument and return types\n * use the type constructor `F` to represent some computational context.\n *\n * @category mapping\n * @since 2.10.0\n */\nvar map = function (f) {\n return function (fa) {\n return (0, exports.separated)((0, exports.left)(fa), f((0, exports.right)(fa)));\n };\n};\nexports.map = map;\n/**\n * Map a function over the first type argument of a bifunctor.\n *\n * @category error handling\n * @since 2.10.0\n */\nvar mapLeft = function (f) {\n return function (fa) {\n return (0, exports.separated)(f((0, exports.left)(fa)), (0, exports.right)(fa));\n };\n};\nexports.mapLeft = mapLeft;\n/**\n * Map a pair of functions over the two type arguments of the bifunctor.\n *\n * @category mapping\n * @since 2.10.0\n */\nvar bimap = function (f, g) {\n return function (fa) {\n return (0, exports.separated)(f((0, exports.left)(fa)), g((0, exports.right)(fa)));\n };\n};\nexports.bimap = bimap;\n/**\n * @category type lambdas\n * @since 2.10.0\n */\nexports.URI = 'Separated';\n/**\n * @category instances\n * @since 2.10.0\n */\nexports.Bifunctor = {\n URI: exports.URI,\n mapLeft: _mapLeft,\n bimap: _bimap\n};\n/**\n * @category instances\n * @since 2.10.0\n */\nexports.Functor = {\n URI: exports.URI,\n map: _map\n};\n/**\n * @category mapping\n * @since 2.10.0\n */\nexports.flap = (0, Functor_1.flap)(exports.Functor);\n// -------------------------------------------------------------------------------------\n// utils\n// -------------------------------------------------------------------------------------\n/**\n * @since 2.10.0\n */\nvar left = function (s) { return s.left; };\nexports.left = left;\n/**\n * @since 2.10.0\n */\nvar right = function (s) { return s.right; };\nexports.right = right;\n","import { ProphetOptionsWithLimits } from 'projects/Forecasting/InteractiveCreate/useQueryProphetResult';\n// Constants used throughout the plugin.\n\nimport { FullFormModel, TimeUnit } from 'types';\n\nexport const IS_DEV = process.env.NODE_ENV === 'development';\n\nexport const ONE_MINUTE_IN_SECONDS = 60;\nexport const ONE_HOUR_IN_SECONDS = 60 * ONE_MINUTE_IN_SECONDS;\nexport const ONE_DAY_IN_SECONDS = 24 * ONE_HOUR_IN_SECONDS;\nexport const ONE_YEAR_IN_SECONDS = 365 * ONE_DAY_IN_SECONDS;\n\nexport const MAX_SAMPLES_PER_TRAINING = 50_000;\nexport const MAX_FORECAST_TRAINING_RANGE_IN_YEARS = 5;\n\nexport const PLUGIN_ROOT = '/a/grafana-ml-app';\n\nexport const DATASOURCE_NAME = 'grafanacloud-ml-metrics';\nexport const SUPPORTED_DATASOURCE_TYPES = [\n 'grafana-datadog-datasource',\n 'graphite',\n 'grafana-graphite-datasource',\n 'loki',\n 'grafana-loki-datasource',\n 'prometheus',\n 'grafana-prometheus-datasource',\n 'grafana-amazonprometheus-datasource',\n 'postgres',\n 'grafana-postgresql-datasource',\n 'doitintl-bigquery-datasource',\n 'grafana-bigquery-datasource',\n 'grafana-snowflake-datasource',\n 'influxdb',\n 'grafana-influxdb-datasource',\n 'grafana-splunk-datasource',\n 'elasticsearch',\n 'grafana-elasticsearch-datasource',\n 'grafana-mongodb-datasource',\n];\nexport const DEFAULT_MODEL = /^grafana_prophet/;\nexport const DEFAULT_TRAINING_FREQUENCY_SECONDS = ONE_DAY_IN_SECONDS;\nexport const DEFAULT_OUTLIER_ALGORITHM = 'dbscan';\nexport const DEFAULT_SENSITIVITY = 0.5;\n\nexport const DEFAULT_NEW_JOB_FORM: FullFormModel = {\n name: '',\n metric: '',\n description: '',\n query: { key: 'A' },\n parameters: {\n id: 'grafana_prophet_1_0_1',\n trainingWindowUnit: TimeUnit.Days,\n trainingWindowValue: 90,\n trainingFrequencyUnit: TimeUnit.Days,\n trainingFrequencyValue: 1,\n intervalUnit: TimeUnit.Minutes,\n intervalValue: 5,\n hyperparameters: {\n // eslint-disable-next-line camelcase\n grafana_prophet_1_0_1: {\n // eslint-disable-next-line camelcase\n changepoint_prior_scale: 0.05,\n // eslint-disable-next-line camelcase\n changepoint_range: 0.8,\n // eslint-disable-next-line camelcase\n seasonality_prior_scale: 10,\n // eslint-disable-next-line camelcase\n holidays_prior_scale: 10,\n // eslint-disable-next-line camelcase\n seasonality_mode: 'additive',\n growth: 'linear',\n // eslint-disable-next-line camelcase\n interval_width: 0.95,\n // eslint-disable-next-line camelcase\n weekly_seasonality: undefined,\n // eslint-disable-next-line camelcase\n conditional_weekly_seasonality: undefined,\n // eslint-disable-next-line camelcase\n daily_seasonality: undefined,\n // eslint-disable-next-line camelcase\n conditional_daily_seasonality: undefined,\n // eslint-disable-next-line camelcase\n logistic_growth_cap: undefined,\n // eslint-disable-next-line camelcase\n logistic_growth_floor: undefined,\n transformation: undefined,\n },\n },\n },\n};\n\nexport const FORECAST_RENDER_CAP_LIMIT = 20;\nexport const OUTLIER_RENDER_CAP_LIMIT = 100;\n\nexport const FORECAST_STEPS = [\n {\n step: 1,\n title: 'Choose a metric',\n description: 'Create a forecast of this metric',\n },\n {\n step: 2,\n title: 'Preview and tune',\n description: 'Preview forecast of this metric',\n },\n {\n step: 3,\n title: 'Set name and description',\n description: 'Set name and description',\n },\n {\n step: 4,\n title: 'Review',\n description: 'Review details and save forecast',\n },\n];\n\nexport const INITIAL_MODEL_PARAMETERS: ProphetOptionsWithLimits = {\n growth: 'linear',\n changepoints: undefined, // Do not support user specifying raw changepoint timestamps\n nChangepoints: 25,\n yearlySeasonality: { type: 'manual', enabled: false },\n weeklySeasonality: undefined,\n dailySeasonality: undefined,\n holidays: undefined,\n seasonalityMode: undefined,\n holidaysMode: undefined,\n seasonalityPriorScale: undefined,\n holidaysPriorScale: undefined,\n changepointPriorScale: undefined,\n // mcmcSamples: 0,\n intervalWidth: 0.95,\n uncertaintySamples: 500, // what we use on backend\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\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.guard = guard;\nfunction guard(F, P) {\n return function (b) { return (b ? P.of(undefined) : F.zero()); };\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","module.exports = __WEBPACK_EXTERNAL_MODULE__81159__;","module.exports = __WEBPACK_EXTERNAL_MODULE__82007__;","import { gte } from 'semver';\n\nexport const MAX_NAME_LENGTH = 63;\n\n/**\n * Generates a \"name\" from any string that only contains characters accepted by the backend.\n * (we generally use the \"name\" properties as IDs throughout the app)\n */\nexport const generateName = (displayName: string): string => {\n return displayName\n .toLowerCase()\n .trim()\n .replace(/\\s\\s+/g, ' ')\n .replace(/[^a-z0-9.-]/g, '-')\n .slice(0, MAX_NAME_LENGTH);\n};\n\nexport function neverCase(x: never): never {\n // eslint-disable-next-line @typescript-eslint/restrict-template-expressions\n throw new Error(`Non-exhaustive: case ${x} was not handled.`);\n}\n\n/**\n * Wrapper around semver.gte that returns `true` if parsing either argument fails,\n * rather than throwing.\n *\n * The justification for returning `true` instead of `false` is that there has _probably_\n * been an unexpected update to Grafana which has caused it to return invalid version\n * strings for some reason. This automatically means that the running version is newer\n * than anything we've seen before, hence we return `true` indicating that v1 (usually\n * the version of Grafana from config, in this plugin's usage) is greater than v2\n * (usually some statically declared string, used to workaround API differences in this\n * plugin).\n */\nexport function tryGte(v1: string, v2: string): boolean {\n try {\n return gte(v1, v2);\n } catch {\n return true;\n }\n}\n","import { Labels, RawTimeRange, TimeRange } from '@grafana/data';\nimport { DataQuery, DataSourceRef } from '@grafana/schema';\n\nimport { OnCallAlertGroup } from './oncall';\n\nexport * from './oncall';\n\nexport type HyperparameterValues = ProphetFormValues;\n\nexport interface ModelHyperparameters {\n // eslint-disable-next-line camelcase\n grafana_prophet_1_0_1?: ProphetFormValues;\n\n // eslint-disable-next-line camelcase\n grafana_augurs_mstl_0_1_0?: undefined;\n\n // eslint-disable-next-line camelcase\n philwinder_averaging_model_0_0_1?: undefined;\n}\nexport type ModelId = keyof ModelHyperparameters;\n\nexport interface ModelForm {\n id: ModelId;\n intervalValue: number | string;\n intervalUnit: TimeUnit;\n trainingWindowValue: number | string;\n trainingWindowUnit: TimeUnit;\n trainingFrequencyValue: number | string;\n trainingFrequencyUnit: TimeUnit;\n hyperparameters: ModelHyperparameters;\n}\n\nexport interface ProphetFormValues {\n // eslint-disable-next-line camelcase\n changepoint_prior_scale: number | string;\n\n // eslint-disable-next-line camelcase\n changepoint_range: number | undefined;\n\n // eslint-disable-next-line camelcase\n seasonality_prior_scale: number | string;\n\n // eslint-disable-next-line camelcase\n holidays_prior_scale: number | string;\n\n // eslint-disable-next-line camelcase\n seasonality_mode: 'additive' | 'multiplicative';\n\n // eslint-disable-next-line camelcase\n growth: 'flat' | 'linear' | 'logistic';\n\n // eslint-disable-next-line camelcase\n interval_width: number | string;\n\n // eslint-disable-next-line camelcase\n weekly_seasonality: number | string | undefined;\n\n // eslint-disable-next-line camelcase\n conditional_weekly_seasonality: string | undefined;\n\n // eslint-disable-next-line camelcase\n daily_seasonality: number | string | undefined;\n\n // eslint-disable-next-line camelcase\n conditional_daily_seasonality: string | undefined;\n\n // eslint-disable-next-line camelcase\n logistic_growth_cap: number | undefined;\n\n // eslint-disable-next-line camelcase\n logistic_growth_floor: number | undefined;\n\n transformation: Transformation | undefined;\n}\n\nexport interface Transformation {\n id: string;\n parameters?: Record;\n}\n\nexport interface SerializableTimeRange {\n from: string;\n to: string;\n}\n\n// @ts-expect-error - this is a legacy import and doesn't come with types.\ndeclare module 'grafana/app/core/app_events';\n\nexport interface Metadata {\n id: string;\n name: string;\n created?: string;\n modified?: string;\n createdBy?: string;\n modifiedBy?: string;\n tenantId?: string;\n}\n\nexport type UnnamedMetadata = Omit;\n\nexport interface TrainingHistoryItem {\n algorithm: string;\n created: string;\n datasourceId?: number;\n datasourceUid?: string;\n datasourceType: string;\n finished: string;\n hyperParams?: HyperparameterValues;\n error?: string;\n interval: number;\n queryParams: { exemplar: boolean; expr: string; legendFormat: string; refId: string };\n series: Array<{ tags: { instance: string; job: string } }>;\n started: string;\n trainingWindow: number;\n}\n\nexport type JobStatus =\n | 'active'\n | 'error'\n | 'inactive'\n | 'initial training'\n | 'pending'\n | 'ready'\n | 'training'\n | 'unknown';\n\nexport type ErrorKind = 'system' | 'timeout' | 'user';\n\nexport type Job = Metadata & NewMetricJob;\n\n/// Represent a model from the backend\nexport interface Model {\n id: string;\n version: string;\n name: string;\n description: string;\n website?: URL;\n hyperparameters?: unknown;\n deprecated: boolean;\n}\n\n/// Represent a mutation or creation of a metric job\nexport interface NewMetricJob {\n name: string;\n metric: string;\n status?: JobStatus;\n description?: string;\n grafanaUrl?: string;\n grafanaApiKey?: string;\n datasourceId?: number;\n datasourceUid?: string;\n datasourceType?: string;\n queryParams?: DataQuery;\n interval?: number;\n algorithm?: string;\n hyperParams?: HyperparameterValues;\n trainingWindow?: number;\n lastTrainingStatus?: { status: string; error?: string; warnings?: string[]; errorKind?: ErrorKind };\n trainingFrequency?: number;\n nextTrainingAt?: string;\n trainingScheduledAt?: string;\n trainingCompletedAt?: string;\n trainingResult?: string;\n disabled?: boolean;\n disabledReason?: string;\n holidays?: string[];\n customLabels?: { [key: string]: string };\n}\n\nexport interface ValidateNewJob {\n name?: string;\n metric?: string;\n}\n\nexport interface ValidateNewJobResult {\n valid: boolean;\n message: string;\n}\n\nexport interface NewMetricAlert {\n title: string; // at most 190 characters\n anomalyCondition: 'any' | 'high' | 'low';\n for?: string; // duration, e.g. \"5m\"\n threshold?: string; // e.g. '>0.7' alerts if more than 70% of the points in the window are anomalous. Requires \"window\" to be set\n window?: string; // duration, e.g. \"5m\"\n labels?: { [key: string]: string }; // labels to be added to the alert\n annotations?: { [key: string]: string }; // annotations to be added to a firing alert\n noDataCondition?: 'OK' | 'Alerting' | 'NoData'; // default is \"OK\"\n}\n\nexport type MetricAlert = UnnamedMetadata & NewMetricAlert;\n\nexport enum TimeUnit {\n Minutes,\n Hours,\n Days,\n Years,\n}\n\nexport interface FullFormModel {\n name: string;\n metric: string;\n description?: string;\n query: { key: string; value?: DataQuery };\n parameters: ModelForm;\n holidays?: string[];\n}\n\n/**\n * Possible values for the 'ml_forecast' label in series returned by the MLAPI.\n */\nexport type ForecastLabelValue = 'y' | 'yhat_lower' | 'yhat_upper' | 'yhat';\n\n/**\n * The names of the four series required to plot the results of a job for\n * a single underlying series.\n */\nexport interface JobSeriesNames {\n // The name of the 'actual' series (i.e. the series with ml_forecast=\"y\").\n actual: string;\n // The name of the 'predicted' series (i.e. the series with ml_forecast=\"yhat\").\n predicted: string;\n // The name of the series containing the predicted lower bound\n // (i.e. the series with ml_forecast=\"yhat_lower\").\n lower: string;\n // The name of the series containing the predicted upper bound\n // (i.e. the series with ml_forecast=\"yhat_upper\").\n upper: string;\n}\n\n/**\n * The queries which should be used to access the results of a job.\n *\n * These queries will include:\n * - the job name\n * - either `predicted` or `actual`\n * - the `ml_job_id` selector, to guarantee uniqueness.\n * - possibly, additional selectors, to filter down to only one of many series.\n */\nexport interface JobMetricQueries {\n // The 'actual' query.\n actual: string;\n // The 'predicted' query.\n predicted: string;\n}\n\n/**\n * Information about one 'series' underlying a job.\n */\nexport interface JobSeriesInfo {\n // The names of the various actual and predicted series.\n names: JobSeriesNames;\n // The labels common to this series.\n labels: Labels;\n}\n\n/**\n * Mapping from series name to series type.\n */\nexport interface NameToType {\n [index: string]: ForecastLabelValue;\n}\n\n/**\n * Mapping from series name to series labels.\n */\nexport interface NameToLabels {\n [index: string]: Labels;\n}\n\n/**\n * Mapping from label name to all observed label values.\n */\nexport interface LabelValues {\n [index: string]: string[];\n}\n\nexport interface JsonObject {\n [key: string]: Json;\n}\n\ntype JsonArray = Json[];\n\n/**\n * something declared as JSON can not contain non-json things like functions or classes with functions\n */\ntype Json = JsonArray | JsonObject | boolean | number | string | null | undefined;\n\n/*\n **** Helpers that do the right thing for types. commented out since we're not using and i'm cutting unused dependencies, but these might be used in future\nfunction isJsonBool(value: Json): value is boolean {\n return value != null && (value === true || value === false);\n}\n\nfunction isJsonNull(value: Json): value is null {\n return value === null;\n}\n\nfunction isJsonNumber(value: Json): value is number {\n return value != null && typeof value === 'number';\n}\n\nfunction isJsonArray(value: Json): value is Json[] {\n return value != null && value instanceof Array;\n}\n\nfunction isJsonString(value: Json): value is string {\n return value != null && typeof value === 'string';\n}\n\nfunction isJsonObject(value: Json): value is { [key: string]: Json } {\n return !(isJsonBool(value) || isJsonNull(value) || isJsonNumber(value) || isJsonArray(value) || isJsonString(value));\n}\n\nfunction isJsonPrimitive(value: Json): value is boolean | number | string {\n return isJsonBool(value) || isJsonNumber(value) || isJsonString(value);\n}\n\n */\n\nexport interface DatadogSLO {\n name: string;\n}\n\nexport interface FeatureFlags {\n AugursMSTL?: boolean;\n InteractiveProphet?: boolean;\n PowerTransformation?: boolean;\n ShowSiftModalButton?: boolean;\n SIFTDev?: boolean;\n SIFTExperimental?: boolean;\n SIFTDeprecated?: boolean;\n SIFTDummy?: boolean;\n SIFTPreview?: boolean;\n SIFTNewView?: boolean;\n}\n\n/// Tenant information from grafana.com\n///\n/// A 'tenant' is a Hosted Grafana instance with machine learning\n/// enabled, belonging to an org which may or may not have a paying subscription.\n///\n/// The `canAccess` field indicates whether the user should be able to use the\n/// ML functionality, or whether a 'free user' experience should be given instead.\nexport interface TenantInfo {\n /// The ID of the Hosted Grafana instance in grafana.com\n id: number;\n /// The name of the Hosted Grafana instance in grafana.com\n name: string;\n /// Whether the user has access to Grafana ML.\n canAccess: boolean;\n /// The features enabled for this tenant.\n features?: FeatureFlags;\n /// The maximum number of series allowed per forecast for this tenant.\n maxSeriesPerJob: number;\n /// The maximum number of series allowed per outlier for this tenant.\n maxSeriesPerOutlier: number;\n}\n\n/// Annotations added to an alert or alert rule.\ntype Annotations = Record;\n\ninterface AlertRuleDataSource {\n /// The ID of the datasource used for the alerting query.\n id: number;\n /// The type of the datasource used for the alerting query.\n type: string;\n}\n\n/// Common interface shared by all 'model's in alert rules.\ninterface AlertRuleDataModel {\n refId: string;\n datasource?: AlertRuleDataSource;\n intervalMs: number;\n maxDataPoints: number;\n}\n\n/// The model for a Prometheus query in an alert rule.\ninterface PrometheusQueryModel extends AlertRuleDataModel {\n exemplar?: boolean;\n expr: string;\n interval: string;\n legendFormat: string;\n}\n\n/// The model for a 'classic condition' in an alert rule.\ninterface ExpressionModel extends AlertRuleDataModel {\n /// The conditions for this query.\n ///\n /// Currently untyped because I don't think we'll need them and they're complex.\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n conditions: any[];\n /// Whether to hide this query in the UI.\n hide: boolean;\n /// The type of this expression.\n type: string;\n}\n\n/// A time range relative to the current time.\ninterface RelativeTimeRange {\n /// The number of seconds to look back prior to `now()`.\n from: number;\n /// The number of seconds to look forward from `now()`.\n to: number;\n}\n\n/// The main body of a Grafana Alert Rule, defining queries.\ninterface GrafanaAlertRuleData {\n /// The refId of the query. refIds are unique within a rule.\n ///\n /// This will generally be something like 'A' or 'B'.\n refId: string;\n\n /// The type of query.\n ///\n /// This has been \"\" in all examples I have seen so far.\n queryType: string;\n\n /// The time range to use for charts in the UI when editing the query.\n relativeTimeRange: RelativeTimeRange;\n\n /// The UID of the datasource being queried.\n ///\n /// This will be meaningless for 'expression' queries.\n datasourceUid: string;\n\n /// The body of the query. This will differ depending on the selected datasource type.\n model: ExpressionModel | PrometheusQueryModel;\n}\n\n/// A 'Grafana Alerting' alert rule, created using the alerting UI or API.\n///\n/// This is the interface for alerts of type 'grafana_alert'.\ninterface GrafanaAlertRule {\n /// The ID of the rule.\n id: number;\n /// The org ID to which the rule belongs.\n orgId: number;\n /// The title of the rule.\n title: string;\n /// The refId of the queries in `data` which is used as the condition for the alert to fire.\n condition: string;\n /// The queries used to calculate the alert's state.\n data: GrafanaAlertRuleData[];\n /// The time that the rule was last updated.\n updated: string;\n /// How often the alert will be evaluated to see if it fires.\n intervalSeconds: number;\n /// A monotonic integer indicating the version of the alert.\n version: number;\n /// The ID of the alert rule.\n uid: string;\n /// The UID of namespace of the alert rule in the ruler.\n // eslint-disable-next-line camelcase\n namespace_uid: string;\n /// The ID of namespace of the alert rule in the ruler.\n // eslint-disable-next-line camelcase\n namespace_id: string;\n /// The name of the rule group in which this alert rule lives.\n // eslint-disable-next-line camelcase\n rule_group: string;\n /// The state to use if no data can be found or if all values are null.\n // eslint-disable-next-line camelcase\n no_data_state: string;\n /// The state to use if alert execution fails or times out.\n // eslint-disable-next-line camelcase\n exec_err_state: string;\n}\n\n/// An alert rule.\n///\n/// This may have additional possible keys when using non-Grafana alerts,\n/// but we only care about Grafana Alerting.\ninterface AlertRule {\n expr: string;\n /// The duration for which the alert rules must be pending before\n /// the status changes to 'firing'.\n for: string;\n /// Annotations on the alert rule.\n annotations: Annotations;\n /// The Grafana Alert rule.\n // eslint-disable-next-line camelcase\n grafana_alert: GrafanaAlertRule;\n}\n\n/// An alert, consisting of a name and a list of rules.\nexport interface Alert {\n /// The name of this alert.\n name: string;\n /// How often the alert will be evaluated to see if it fires.\n interval: string;\n /// The rules making up this alert.\n rules: AlertRule[];\n}\n\n/// The current state of an alert.\nexport type AlertState = 'firing' | 'Normal' | 'Pending';\n\n/// A live alert instance, matching a single series.\n///\n/// Each alert rule created will result in one `AlertInstance` per matching series,\n/// which will have its own individual state depending on the values of the series.\nexport interface AlertInstance {\n /// The state of this alert instance.\n state: AlertState;\n /// Unknown - seems to be the empty string everywhere.\n value: string;\n /// The timestamp that this alert was last active.\n ///\n /// Equal to '0001-01-01T00:00:00Z' if the alert has never fired.\n activeAt: string;\n /// Annotations, propagated from the alert rule.\n annotations: Annotations;\n /// Labels found on the matching series.\n labels: Record;\n}\n\n/// The current state of an alert _rule_.\nexport type RuleState = 'firing' | 'inactive' | 'pending';\n\n/// A 'live' alert rule instance, comprising a list of live alerts instances and some metadata.\nexport interface RuleInstance {\n /// The state of this rule.\n ///\n /// This will be:\n /// - 'firing' if any contained alert is firing, else\n /// - 'pending' if any contained alert is pending, else\n /// - 'inactive'.\n state: RuleState;\n /// The name of this rule. This generally matches the name of the alert group.\n name: string;\n /// The query used to match series and create AlertInstances.\n query: string;\n /// The number of seconds for which any alert must be pending before it begins firing.\n ///\n /// AKA the 'for' clause on an alert rule.\n duration: number;\n /// The alerts created by this rule.\n alerts: AlertInstance[];\n /// Annotations added to the rule at creation time.\n ///\n /// These will also be added to any alerts.\n annotations?: Annotations;\n labels: unknown;\n /// The health of this rule instance.\n ///\n /// Will be 'ok' if everything is working fine.\n health: string;\n /// The last error returned when trying to evaluate the rule.\n ///\n /// Will be the empty string if no error occurred.\n lastError: string;\n /// The type of this rule.\n ///\n /// This is equal to 'alerting' for alerting rules.\n type: string;\n /// Timestamp that the rule was last evaluated.\n lastEvaluation: string;\n /// The duration, in seconds, that this rule took to evaluate.\n evaluationTime: number;\n}\n\n/// A named group of existing alert rules residing in a folder.\nexport interface AlertGroup {\n /// The name of this alert group.\n ///\n /// This is the name given to the group at creation time.\n name: string;\n /// The name or path to the folder in which this alert lives.\n file: string;\n /// The frequency with which the rules in this group are evaluated, in seconds.\n interval: number;\n /// The timestamp at which this alert group was last evaluated.\n lastEvaluation: string;\n /// The duration, in seconds, that this rule took to evaluate.\n ///\n /// Note that for Grafana alerts this number is not always accurate; use the\n /// 'evaluationTime' on the individual rules instead.\n evaluationTime: number;\n /// The rules comprising this alert group.\n rules: RuleInstance[];\n}\n\nexport interface Holiday {\n id: string;\n name: string;\n description?: string;\n iCalUrl?: string;\n iCalTimeZone?: string;\n customPeriods?: HolidayOccurrence[];\n resolvedDates?: HolidayOccurrence[];\n jobs?: string[];\n}\n\nexport interface HolidayOccurrence {\n startTime: string;\n endTime: string;\n name?: string;\n}\n\nexport interface NewHoliday {\n name: string;\n description?: string;\n iCalUrl?: string;\n iCalTimeZone?: string;\n customPeriods?: HolidayOccurrence[];\n jobs?: string[];\n}\n\nexport interface SiftDatasource {\n uid: string;\n inputs?: LabelInput[];\n}\n\nexport interface DatasourceConfig {\n lokiDatasource: SiftDatasource;\n prometheusDatasource: SiftDatasource;\n tempoDatasource: SiftDatasource;\n pyroscopeDatasource?: SiftDatasource;\n}\n\nexport interface AnalysisCounts {\n total: number;\n pending: number;\n running: number;\n succeeded: number;\n failed: number;\n interesting: number;\n skipped: number;\n}\n\nexport interface ReducedAnalysis {\n id: string;\n name: string;\n status: AnalysisStatus;\n stage: CheckStage;\n interesting: boolean;\n}\n\nexport interface AnalysisMetadata {\n countsByStage: Partial>;\n items: ReducedAnalysis[];\n}\n\ntype InvestigationStatus = 'failed' | 'pending' | 'running' | 'finished';\n\nexport type Investigation = NewInvestigation &\n UnnamedMetadata & {\n datasources: DatasourceConfig;\n analyses: AnalysisMetadata;\n timeRange: TimeRange;\n status: InvestigationStatus;\n retryable?: boolean;\n failureReason?: string;\n };\n\n/// Represent a mutation or creation of a metric job\nexport interface NewInvestigation {\n name: string;\n grafanaUrl?: string;\n requestData: InvestigationRequest;\n inputs?: Input[];\n}\n\nexport enum InvestigationSourceType {\n AlertManager = 'alertmanager',\n AppO11yOperation = 'app-o11y/operation',\n AppO11yService = 'app-o11y/service',\n CommandPalette = 'command-palette',\n Explore = 'explore',\n Incident = 'incident',\n KubernetesCluster = 'kubernetes/cluster',\n KubernetesNamespace = 'kubernetes/namespace',\n KubernetesPod = 'kubernetes/pod',\n KubernetesWorkload = 'kubernetes/workload',\n ML = 'ml',\n OnCallUI = 'oncall-ui',\n OnCallIntegration = 'oncall-integration',\n Panel = 'panel',\n Rerun = 'rerun',\n Unknown = 'unknown',\n}\n\nexport interface InvestigationSource {\n type: InvestigationSourceType;\n id: string;\n url: string;\n}\n\nexport interface InvestigationRequest {\n labels: Record;\n queryUrl?: string;\n\n start: string;\n end: string;\n\n investigationSource: InvestigationSource;\n}\n\nexport interface Label {\n name: string;\n value: string;\n type?: MatchType;\n options?: string[];\n}\n\n// Sift clue/input types.\n\ntype ClueTypeAlert = 'alert';\ntype ClueTypeGrafanaQuery = 'grafana-query';\ntype ClueTypeOnCallAlertGroup = 'on-call-alert-group';\n\ninterface AlertClue {\n type: ClueTypeAlert;\n payload: {\n labels: Record;\n generatorURL?: string;\n };\n}\n\ninterface GrafanaQueryClue {\n type: ClueTypeGrafanaQuery;\n payload: DataQuery;\n}\n\ninterface OnCallAlertGroupClue {\n type: ClueTypeOnCallAlertGroup;\n payload: OnCallAlertGroup;\n}\n\nexport type Clue = AlertClue | GrafanaQueryClue | OnCallAlertGroupClue;\n\nexport enum MatchType {\n Equal = 0,\n NotEqual = 1,\n Regexp = 2,\n NotRegexp = 3,\n}\n\nexport interface Service {\n name: string;\n namespace?: string;\n}\n\nexport interface SLO {\n uuid: string;\n}\n\nexport type InputTypeLabel = 'label';\nexport type InputTypeTimeRange = 'time-range';\nexport type InputTypeMetricQuery = 'metric-query';\nexport type InputTypeService = 'service';\nexport type InputTypeDataSource = 'datasource';\nexport type InputTypeSLO = 'slo';\n// type InputType = InputTypeLabel | InputTypeTimeRange | InputTypeTraceID;\n\nexport interface LabelInput {\n type: InputTypeLabel;\n label: Label;\n}\n\nexport interface TimeRangeInput {\n type: InputTypeTimeRange;\n timeRange: RawTimeRange;\n}\n\nexport interface MetricQueryInput {\n type: InputTypeMetricQuery;\n metric: DataQuery;\n}\n\nexport interface ServiceInput {\n type: InputTypeService;\n service: Service;\n}\n\nexport interface DataSourceInput {\n type: InputTypeDataSource;\n datasource: DataSourceRef;\n}\n\nexport interface SLOInput {\n type: InputTypeSLO;\n slo: SLO;\n}\n\nexport type Input = LabelInput | MetricQueryInput | TimeRangeInput | ServiceInput | DataSourceInput | SLOInput;\n\nexport interface InvestigationFormModel {\n name: string;\n\n start: string;\n end: string;\n\n labels: Label[];\n alertQuery?: string;\n\n queries: DataQuery[];\n\n investigationSource: InvestigationSource;\n\n services?: Service[];\n\n datasources?: DataSourceRef[];\n\n slos?: SLO[];\n}\n\nexport type AnalysisStatus = 'finished' | 'pending' | 'running' | 'skipped';\nexport type AnalysisDisplayStatus = 'interesting' | 'passed' | 'failed' | 'running' | 'skipped' | 'unknown';\nexport type AnalysisDisplayCategory = 'application' | 'infrastructure' | 'internal' | 'custom' | 'other';\n\nexport type CheckStage = 'Experimental' | 'PublicPreview' | 'GeneralAvailability' | 'Deprecated' | 'Dummy';\n\nexport interface AnalysisData {\n investigationId: string;\n name: string;\n status: AnalysisStatus;\n stage: CheckStage;\n title: string;\n result: AnalysisResult;\n config?: Config;\n displayCategory?: AnalysisDisplayCategory;\n displayStatus: AnalysisDisplayStatus;\n steps: AnalysisStep[];\n}\n\nexport interface AnalysisStep {\n id: string;\n created: string;\n analysisId: string;\n state: string;\n exitMessage?: string;\n metadata?: StepMetadata;\n exitMessageMeta?: ExitMessageMetadata;\n stats?: { [key: string]: any };\n}\n\nexport interface StepMetadata {\n state: string;\n title: string;\n description: string;\n docsUrl?: string;\n statFormatting?: {\n [key: string]: {\n template: string;\n };\n };\n}\n\nexport interface ExitMessageMetadata {\n title: string;\n description: string;\n docsUrl?: string;\n}\n\nexport interface Config {\n lokiDatasourceUid?: string;\n prometheusDatasourceUid?: string;\n tempoDatasourceUid?: string;\n pyroscopeDatasourceUid?: string;\n}\n\nexport type Analysis = AnalysisData & Metadata;\n\nexport interface AnalysisEvent {\n startTime: string;\n endTime: string;\n name: string;\n description?: string;\n details: JsonObject | null;\n}\n\nexport interface AnalysisResult {\n successful: boolean;\n interesting: boolean;\n message: string;\n details: Json;\n events?: AnalysisEvent[];\n}\n\nexport interface SiftModalData {\n analysis: Analysis;\n investigation: Investigation;\n datasources: DatasourceConfig;\n}\n\nexport type Query = DataQuery & {\n expr?: string | undefined;\n};\n\nexport interface OutlierBufferValue {\n buffer: number[];\n}\nexport interface OutlierLabels {\n isOutlier: string;\n __name__: string;\n [key: string]: string;\n}\n\nexport interface LabelStats {\n included: boolean;\n}\n\nexport interface InvestigationPreview {\n analyses: AnalysisData[];\n datasources: DatasourceConfig;\n labels: Record;\n warnings: string[];\n errors: string[];\n}\n","/******************************************************************************\nCopyright (c) Microsoft Corporation.\n\nPermission to use, copy, modify, and/or distribute this software for any\npurpose with or without fee is hereby granted.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH\nREGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY\nAND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,\nINDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM\nLOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR\nOTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR\nPERFORMANCE OF THIS SOFTWARE.\n***************************************************************************** */\n/* global Reflect, Promise, SuppressedError, Symbol, Iterator */\n\nvar extendStatics = function(d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n return extendStatics(d, b);\n};\n\nexport function __extends(d, b) {\n if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n}\n\nexport var __assign = function() {\n __assign = Object.assign || function __assign(t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];\n }\n return t;\n }\n return __assign.apply(this, arguments);\n}\n\nexport function __rest(s, e) {\n var t = {};\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\n t[p] = s[p];\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\n for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))\n t[p[i]] = s[p[i]];\n }\n return t;\n}\n\nexport function __decorate(decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n}\n\nexport function __param(paramIndex, decorator) {\n return function (target, key) { decorator(target, key, paramIndex); }\n}\n\nexport function __esDecorate(ctor, descriptorIn, decorators, contextIn, initializers, extraInitializers) {\n function accept(f) { if (f !== void 0 && typeof f !== \"function\") throw new TypeError(\"Function expected\"); return f; }\n var kind = contextIn.kind, key = kind === \"getter\" ? \"get\" : kind === \"setter\" ? \"set\" : \"value\";\n var target = !descriptorIn && ctor ? contextIn[\"static\"] ? ctor : ctor.prototype : null;\n var descriptor = descriptorIn || (target ? Object.getOwnPropertyDescriptor(target, contextIn.name) : {});\n var _, done = false;\n for (var i = decorators.length - 1; i >= 0; i--) {\n var context = {};\n for (var p in contextIn) context[p] = p === \"access\" ? {} : contextIn[p];\n for (var p in contextIn.access) context.access[p] = contextIn.access[p];\n context.addInitializer = function (f) { if (done) throw new TypeError(\"Cannot add initializers after decoration has completed\"); extraInitializers.push(accept(f || null)); };\n var result = (0, decorators[i])(kind === \"accessor\" ? { get: descriptor.get, set: descriptor.set } : descriptor[key], context);\n if (kind === \"accessor\") {\n if (result === void 0) continue;\n if (result === null || typeof result !== \"object\") throw new TypeError(\"Object expected\");\n if (_ = accept(result.get)) descriptor.get = _;\n if (_ = accept(result.set)) descriptor.set = _;\n if (_ = accept(result.init)) initializers.unshift(_);\n }\n else if (_ = accept(result)) {\n if (kind === \"field\") initializers.unshift(_);\n else descriptor[key] = _;\n }\n }\n if (target) Object.defineProperty(target, contextIn.name, descriptor);\n done = true;\n};\n\nexport function __runInitializers(thisArg, initializers, value) {\n var useValue = arguments.length > 2;\n for (var i = 0; i < initializers.length; i++) {\n value = useValue ? initializers[i].call(thisArg, value) : initializers[i].call(thisArg);\n }\n return useValue ? value : void 0;\n};\n\nexport function __propKey(x) {\n return typeof x === \"symbol\" ? x : \"\".concat(x);\n};\n\nexport function __setFunctionName(f, name, prefix) {\n if (typeof name === \"symbol\") name = name.description ? \"[\".concat(name.description, \"]\") : \"\";\n return Object.defineProperty(f, \"name\", { configurable: true, value: prefix ? \"\".concat(prefix, \" \", name) : name });\n};\n\nexport function __metadata(metadataKey, metadataValue) {\n if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(metadataKey, metadataValue);\n}\n\nexport function __awaiter(thisArg, _arguments, P, generator) {\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n}\n\nexport function __generator(thisArg, body) {\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g = Object.create((typeof Iterator === \"function\" ? Iterator : Object).prototype);\n return g.next = verb(0), g[\"throw\"] = verb(1), g[\"return\"] = verb(2), typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\n function verb(n) { return function (v) { return step([n, v]); }; }\n function step(op) {\n if (f) throw new TypeError(\"Generator is already executing.\");\n while (g && (g = 0, op[0] && (_ = 0)), _) try {\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\n if (y = 0, t) op = [op[0] & 2, t.value];\n switch (op[0]) {\n case 0: case 1: t = op; break;\n case 4: _.label++; return { value: op[1], done: false };\n case 5: _.label++; y = op[1]; op = [0]; continue;\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\n default:\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\n if (t[2]) _.ops.pop();\n _.trys.pop(); continue;\n }\n op = body.call(thisArg, _);\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\n }\n}\n\nexport var __createBinding = Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n var desc = Object.getOwnPropertyDescriptor(m, k);\n if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\n desc = { enumerable: true, get: function() { return m[k]; } };\n }\n Object.defineProperty(o, k2, desc);\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n});\n\nexport function __exportStar(m, o) {\n for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(o, p)) __createBinding(o, m, p);\n}\n\nexport function __values(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}\n\nexport function __read(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}\n\n/** @deprecated */\nexport function __spread() {\n for (var ar = [], i = 0; i < arguments.length; i++)\n ar = ar.concat(__read(arguments[i]));\n return ar;\n}\n\n/** @deprecated */\nexport function __spreadArrays() {\n for (var s = 0, i = 0, il = arguments.length; i < il; i++) s += arguments[i].length;\n for (var r = Array(s), k = 0, i = 0; i < il; i++)\n for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++)\n r[k] = a[j];\n return r;\n}\n\nexport function __spreadArray(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}\n\nexport function __await(v) {\n return this instanceof __await ? (this.v = v, this) : new __await(v);\n}\n\nexport function __asyncGenerator(thisArg, _arguments, generator) {\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\n var g = generator.apply(thisArg, _arguments || []), i, q = [];\n return i = Object.create((typeof AsyncIterator === \"function\" ? AsyncIterator : Object).prototype), verb(\"next\"), verb(\"throw\"), verb(\"return\", awaitReturn), i[Symbol.asyncIterator] = function () { return this; }, i;\n function awaitReturn(f) { return function (v) { return Promise.resolve(v).then(f, reject); }; }\n function verb(n, f) { if (g[n]) { i[n] = function (v) { return new Promise(function (a, b) { q.push([n, v, a, b]) > 1 || resume(n, v); }); }; if (f) i[n] = f(i[n]); } }\n function resume(n, v) { try { step(g[n](v)); } catch (e) { settle(q[0][3], e); } }\n function step(r) { r.value instanceof __await ? Promise.resolve(r.value.v).then(fulfill, reject) : settle(q[0][2], r); }\n function fulfill(value) { resume(\"next\", value); }\n function reject(value) { resume(\"throw\", value); }\n function settle(f, v) { if (f(v), q.shift(), q.length) resume(q[0][0], q[0][1]); }\n}\n\nexport function __asyncDelegator(o) {\n var i, p;\n return i = {}, verb(\"next\"), verb(\"throw\", function (e) { throw e; }), verb(\"return\"), i[Symbol.iterator] = function () { return this; }, i;\n function verb(n, f) { i[n] = o[n] ? function (v) { return (p = !p) ? { value: __await(o[n](v)), done: false } : f ? f(v) : v; } : f; }\n}\n\nexport function __asyncValues(o) {\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\n var m = o[Symbol.asyncIterator], i;\n return m ? m.call(o) : (o = typeof __values === \"function\" ? __values(o) : o[Symbol.iterator](), i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i);\n function verb(n) { i[n] = o[n] && function (v) { return new Promise(function (resolve, reject) { v = o[n](v), settle(resolve, reject, v.done, v.value); }); }; }\n function settle(resolve, reject, d, v) { Promise.resolve(v).then(function(v) { resolve({ value: v, done: d }); }, reject); }\n}\n\nexport function __makeTemplateObject(cooked, raw) {\n if (Object.defineProperty) { Object.defineProperty(cooked, \"raw\", { value: raw }); } else { cooked.raw = raw; }\n return cooked;\n};\n\nvar __setModuleDefault = Object.create ? (function(o, v) {\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\n}) : function(o, v) {\n o[\"default\"] = v;\n};\n\nvar ownKeys = function(o) {\n ownKeys = Object.getOwnPropertyNames || function (o) {\n var ar = [];\n for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;\n return ar;\n };\n return ownKeys(o);\n};\n\nexport function __importStar(mod) {\n if (mod && mod.__esModule) return mod;\n var result = {};\n if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== \"default\") __createBinding(result, mod, k[i]);\n __setModuleDefault(result, mod);\n return result;\n}\n\nexport function __importDefault(mod) {\n return (mod && mod.__esModule) ? mod : { default: mod };\n}\n\nexport function __classPrivateFieldGet(receiver, state, kind, f) {\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a getter\");\n if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot read private member from an object whose class did not declare it\");\n return kind === \"m\" ? f : kind === \"a\" ? f.call(receiver) : f ? f.value : state.get(receiver);\n}\n\nexport function __classPrivateFieldSet(receiver, state, value, kind, f) {\n if (kind === \"m\") throw new TypeError(\"Private method is not writable\");\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a setter\");\n if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot write private member to an object whose class did not declare it\");\n return (kind === \"a\" ? f.call(receiver, value) : f ? f.value = value : state.set(receiver, value)), value;\n}\n\nexport function __classPrivateFieldIn(state, receiver) {\n if (receiver === null || (typeof receiver !== \"object\" && typeof receiver !== \"function\")) throw new TypeError(\"Cannot use 'in' operator on non-object\");\n return typeof state === \"function\" ? receiver === state : state.has(receiver);\n}\n\nexport function __addDisposableResource(env, value, async) {\n if (value !== null && value !== void 0) {\n if (typeof value !== \"object\" && typeof value !== \"function\") throw new TypeError(\"Object expected.\");\n var dispose, inner;\n if (async) {\n if (!Symbol.asyncDispose) throw new TypeError(\"Symbol.asyncDispose is not defined.\");\n dispose = value[Symbol.asyncDispose];\n }\n if (dispose === void 0) {\n if (!Symbol.dispose) throw new TypeError(\"Symbol.dispose is not defined.\");\n dispose = value[Symbol.dispose];\n if (async) inner = dispose;\n }\n if (typeof dispose !== \"function\") throw new TypeError(\"Object not disposable.\");\n if (inner) dispose = function() { try { inner.call(this); } catch (e) { return Promise.reject(e); } };\n env.stack.push({ value: value, dispose: dispose, async: async });\n }\n else if (async) {\n env.stack.push({ async: true });\n }\n return value;\n}\n\nvar _SuppressedError = typeof SuppressedError === \"function\" ? SuppressedError : function (error, suppressed, message) {\n var e = new Error(message);\n return e.name = \"SuppressedError\", e.error = error, e.suppressed = suppressed, e;\n};\n\nexport function __disposeResources(env) {\n function fail(e) {\n env.error = env.hasError ? new _SuppressedError(e, env.error, \"An error was suppressed during disposal.\") : e;\n env.hasError = true;\n }\n var r, s = 0;\n function next() {\n while (r = env.stack.pop()) {\n try {\n if (!r.async && s === 1) return s = 0, env.stack.push(r), Promise.resolve().then(next);\n if (r.dispose) {\n var result = r.dispose.call(r.value);\n if (r.async) return s |= 2, Promise.resolve(result).then(next, function(e) { fail(e); return next(); });\n }\n else s |= 1;\n }\n catch (e) {\n fail(e);\n }\n }\n if (s === 1) return env.hasError ? Promise.reject(env.error) : Promise.resolve();\n if (env.hasError) throw env.error;\n }\n return next();\n}\n\nexport function __rewriteRelativeImportExtension(path, preserveJsx) {\n if (typeof path === \"string\" && /^\\.\\.?\\//.test(path)) {\n return path.replace(/\\.(tsx)$|((?:\\.d)?)((?:\\.[^./]+?)?)\\.([cm]?)ts$/i, function (m, tsx, d, ext, cm) {\n return tsx ? preserveJsx ? \".jsx\" : \".js\" : d && (!ext || !cm) ? m : (d + ext + \".\" + cm.toLowerCase() + \"js\");\n });\n }\n return path;\n}\n\nexport default {\n __extends,\n __assign,\n __rest,\n __decorate,\n __param,\n __esDecorate,\n __runInitializers,\n __propKey,\n __setFunctionName,\n __metadata,\n __awaiter,\n __generator,\n __createBinding,\n __exportStar,\n __values,\n __read,\n __spread,\n __spreadArrays,\n __spreadArray,\n __await,\n __asyncGenerator,\n __asyncDelegator,\n __asyncValues,\n __makeTemplateObject,\n __importStar,\n __importDefault,\n __classPrivateFieldGet,\n __classPrivateFieldSet,\n __classPrivateFieldIn,\n __addDisposableResource,\n __disposeResources,\n __rewriteRelativeImportExtension,\n};\n","module.exports = __WEBPACK_EXTERNAL_MODULE__85959__;","const compare = require('./compare')\nconst rcompare = (a, b, loose) => compare(b, a, loose)\nmodule.exports = rcompare\n","module.exports = __WEBPACK_EXTERNAL_MODULE__87781__;","const SemVer = require('../classes/semver')\nconst compare = (a, b, loose) =>\n new SemVer(a, loose).compare(new SemVer(b, loose))\n\nmodule.exports = compare\n","const compare = require('./compare')\nconst lte = (a, b, loose) => compare(a, b, loose) <= 0\nmodule.exports = lte\n","const compare = require('./compare')\nconst gt = (a, b, loose) => compare(a, b, loose) > 0\nmodule.exports = gt\n","const 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","module.exports = __WEBPACK_EXTERNAL_MODULE__93241__;","const numeric = /^[0-9]+$/\nconst compareIdentifiers = (a, b) => {\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","const compareBuild = require('./compare-build')\nconst rsort = (list, loose) => list.sort((a, b) => compareBuild(b, a, loose))\nmodule.exports = rsort\n","const 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","import { DataFrame, DataSourceInstanceSettings, DataSourceJsonData, Field, FieldType, PanelData } from '@grafana/data';\n\nimport { clone } from 'lodash';\n\nimport { Outlier, OutlierField } from 'api/types';\nimport { PLUGIN_ROOT } from 'consts';\n\n// We sort outliers to the end of the list, so those lines will always\n// be placed on top in the graphs.\nexport function sortedOutliersToEnd(panelData: PanelData | undefined): PanelData | undefined {\n return panelData !== undefined\n ? {\n ...panelData,\n state: panelData.state,\n series:\n panelData.series.length > 0\n ? [\n {\n ...panelData?.series[0],\n // clone to leave input untouched\n fields: clone(panelData?.series[0].fields).sort((f) => {\n if (f.type === FieldType.time) {\n // maintain 'time' as first field\n return -1;\n }\n return f !== undefined && f?.labels?.isOutlier === 'True' ? 1 : -1;\n }),\n },\n ]\n : [],\n }\n : panelData;\n}\n\n// For `selectedIndex` to work correctly with Create/ViewOutlierGraph, the `index` needs to match the\n// order of the DataFrame list passed to Create/ViewOutlierGraph.\nexport function sortedOutliersToEndAndReindex(panelData: PanelData | undefined): PanelData | undefined {\n if (panelData?.series?.[0] !== undefined) {\n let i = 1; // helps avoid falsy bugs\n panelData.series[0].fields.forEach((f: OutlierField) => {\n if (f.type !== FieldType.time) {\n f.index = i;\n i += 1;\n }\n });\n }\n\n const sorted = sortedOutliersToEnd(panelData);\n return sorted;\n}\n\nexport function filterDataKeepingOutliersOnly(\n panelData: PanelData | undefined,\n filterNonOutliers = false\n): PanelData | undefined {\n return panelData !== undefined\n ? {\n ...panelData,\n state: panelData.state,\n series:\n panelData.series.length > 0\n ? [\n {\n ...panelData?.series[0],\n fields: panelData?.series[0].fields.reduce((acc: Array>, f: Field) => {\n if (f.type === FieldType.time) {\n return acc;\n }\n\n let filterCondition = f?.labels?.isOutlier === 'True';\n\n if (filterNonOutliers) {\n // Flip the function to only keep non-outliers instead of only outliers\n filterCondition = !filterCondition;\n }\n\n if (filterCondition) {\n return [...acc, f];\n }\n return acc;\n }, []),\n },\n ]\n : [],\n }\n : panelData;\n}\n\nexport function sampleOutlierSeries(dataToSample: PanelData, limit: number): DataFrame[] {\n const sampleOutliers = filterDataKeepingOutliersOnly(dataToSample)?.series.slice(0, limit / 2) ?? [];\n // We might have less outliers than the limit (e.g. <10), so fill the rest with non-outliers.\n const remainingLimit = limit - sampleOutliers.length;\n const sampleNonOutliers = filterDataKeepingOutliersOnly(dataToSample, true)?.series.slice(0, remainingLimit) ?? [];\n return sampleOutliers.concat(sampleNonOutliers);\n}\n\nexport function getlabelColumnValues(panelData: PanelData | undefined): { [key: string]: string[] } {\n const labelFields =\n panelData !== undefined && panelData.series.length > 0\n ? panelData.series[0].fields.filter((f: Field) => f.type !== FieldType.time)\n : [];\n\n // FIXME: the aligned PanelData has an additional 'name' label on the data, which we need to remove only if\n // it contains the same content as the displayName\n const labelColumns = labelFields.reduce((list: string[], f: Field): string[] => {\n Object.keys(f.labels!).map((lbl: string) => {\n if (lbl !== '__name__' && lbl !== 'isOutlier' && !list.includes(lbl)) {\n list.push(lbl);\n }\n });\n return list;\n }, []);\n\n if (labelColumns.length === 0) {\n // Looks like this is a SQL-ish datasource which has no labels, fall back to reading Field `name`\n return { name: labelFields.map((f) => f.name) };\n }\n\n const labelBreakdown = labelColumns.reduce((result: { [key: string]: string[] }, label: string) => {\n if (!Object.keys(result).includes(label)) {\n result[label] = [];\n }\n labelFields.forEach((field: OutlierField) => {\n Object.keys(field.labels ?? {})\n .filter((l: string) => l !== '__name__' && l !== 'isOutlier')\n .forEach((l: string) => {\n const labelValue = field.labels![l];\n if (label === l && labelValue !== undefined && !result[label]!.includes(labelValue)) {\n result[label]!.push(labelValue);\n }\n });\n });\n return result;\n }, {});\n\n return labelBreakdown;\n}\n\n// Generate the relative URL string to a create/edit Outlier page\nexport function linkToOutlier(\n outlier: Outlier,\n edit: boolean,\n supportedDatasources: Array>\n): string {\n const dataSource = supportedDatasources.find((ds) => ds.id === outlier.datasourceId);\n const editDefaults = encodeURIComponent(\n JSON.stringify({\n name: outlier.name,\n description: outlier.description,\n metric: outlier.metric,\n })\n );\n\n let tuningArgument = `&sensitivity=${outlier.algorithm.sensitivity.toString()}`;\n // if DBSCAN, the \"epsilon\" parameter should be used\n if (outlier.algorithm.name === 'dbscan' && outlier.algorithm?.config?.epsilon !== undefined) {\n tuningArgument = `&initial_epsilon=${outlier.algorithm.config.epsilon}`;\n }\n\n const link =\n `${PLUGIN_ROOT}/outlier-detector/create?` +\n `query_params=${encodeURIComponent(JSON.stringify(outlier.queryParams))}` +\n `&algorithm=${outlier.algorithm.name}` +\n `&ds=${dataSource?.uid ?? ''}` +\n tuningArgument +\n (edit ? `&id=${outlier.id}&edit=${editDefaults}` : ``);\n return link;\n}\n","const SemVer = require('../classes/semver')\nconst patch = (a, loose) => new SemVer(a, loose).patch\nmodule.exports = patch\n","import { AppEvents, PluginExtensionPanelContext, urlUtil } from '@grafana/data';\nimport { getAppEvents, getDataSourceSrv, config as grafanaConfig, locationService } from '@grafana/runtime';\nimport { DataQuery } from '@grafana/schema';\n\nimport { DATASOURCE_NAME, SUPPORTED_DATASOURCE_TYPES } from 'consts';\nimport { tryGte } from 'utils/utils.general';\n\nimport {\n ExtensionLinkConfig,\n NewPluginExtensionPoints,\n PluginExtensionAlertInstanceContextWrapper,\n PluginExtensionAppO11yOperationContextWrapper,\n PluginExtensionAppO11yServiceContextWrapper,\n PluginExtensionExploreContext,\n PluginExtensionExploreContextWrapper,\n PluginExtensionK8sNamespaceContextWrapper,\n PluginExtensionK8sPodContextWrapper,\n PluginExtensionK8sWorkloadContextWrapper,\n PluginExtensionOnCallAlertGroupContextWrapper,\n PluginExtensionPanelContextWrapper,\n PluginExtensionPoints,\n PluginExtensionSiftPanelContextWrapper,\n} from './types';\n\nexport function isPanelContextWrapper(wrapper?: any): wrapper is Required {\n return (\n typeof wrapper === 'object' &&\n wrapper.type === PluginExtensionPoints.DashboardPanelMenu &&\n wrapper.context !== undefined\n );\n}\n\nexport function isExploreContextWrapper(wrapper?: any): wrapper is Required {\n return (\n typeof wrapper === 'object' &&\n wrapper?.type === PluginExtensionPoints.ExploreToolbarAction &&\n wrapper.context !== undefined\n );\n}\n\nexport function isAlertingContextWrapper(\n wrapper?: any\n): wrapper is Required {\n return (\n typeof wrapper === 'object' &&\n wrapper?.type === NewPluginExtensionPoints.AlertInstanceAction &&\n wrapper.context !== undefined\n );\n}\n\nexport function isOnCallAlertGroupContextWrapper(\n wrapper?: any\n): wrapper is Required {\n return (\n typeof wrapper === 'object' &&\n (wrapper?.type === NewPluginExtensionPoints.OnCallAlertGroupAction ||\n wrapper?.type === NewPluginExtensionPoints.IRMOnCallAlertGroupAction) &&\n wrapper.context !== undefined\n );\n}\n\nexport function isCommandPaletteContextWrapper(\n wrapper?: any\n): wrapper is Required {\n return (\n typeof wrapper === 'object' &&\n wrapper?.type === NewPluginExtensionPoints.CommandPalette &&\n wrapper.context !== undefined\n );\n}\n\nexport function isK8sClusterContextWrapper(\n wrapper?: any\n): wrapper is Required {\n return (\n typeof wrapper === 'object' &&\n wrapper?.type === NewPluginExtensionPoints.K8sClusterAction &&\n wrapper.context !== undefined\n );\n}\n\nexport function isK8sNamespaceContextWrapper(\n wrapper?: any\n): wrapper is Required {\n return (\n typeof wrapper === 'object' &&\n wrapper?.type === NewPluginExtensionPoints.K8sNamespaceAction &&\n wrapper.context !== undefined\n );\n}\n\nexport function isK8sWorkloadContextWrapper(\n wrapper?: any\n): wrapper is Required {\n return (\n typeof wrapper === 'object' &&\n wrapper?.type === NewPluginExtensionPoints.K8sWorkloadAction &&\n wrapper.context !== undefined\n );\n}\n\nexport function isK8sPodContextWrapper(wrapper?: any): wrapper is Required {\n return (\n typeof wrapper === 'object' &&\n wrapper?.type === NewPluginExtensionPoints.K8sPodAction &&\n wrapper.context !== undefined\n );\n}\n\nexport function isSiftPanelContextWrapper(wrapper?: any): wrapper is Required {\n return (\n typeof wrapper === 'object' &&\n wrapper?.type === NewPluginExtensionPoints.SiftPanelRunInvestigation &&\n wrapper.context !== undefined\n );\n}\n\nexport function isAppO11yServiceContextWrapper(\n wrapper?: any\n): wrapper is Required {\n return (\n typeof wrapper === 'object' &&\n wrapper?.type === NewPluginExtensionPoints.AppO11yServiceAction &&\n wrapper.context !== undefined\n );\n}\nexport function isAppO11yOperationContextWrapper(\n wrapper?: any\n): wrapper is Required {\n return (\n typeof wrapper === 'object' &&\n wrapper?.type === NewPluginExtensionPoints.AppO11yOperationAction &&\n wrapper.context !== undefined\n );\n}\n\n// The type of function returned by configureSupportForLink. This fulfils the requirements of\n// the `configure` property of `PluginExtensionLinkConfig`.\ntype ConfigureFunc = (context?: PluginExtensionPanelContext | PluginExtensionExploreContext) =>\n | Partial<{\n path: string;\n }>\n | undefined;\n\n// Given a path, returns a function that checks whether we should add an extension link for the\n// context passed in by Grafana. The path is used to render the link.\nexport function configureSupportForLink(\n path: string,\n type: PluginExtensionPoints.DashboardPanelMenu | PluginExtensionPoints.ExploreToolbarAction\n): ConfigureFunc {\n return (context) => {\n const wrapper = { type, context };\n if (\n isPanelContextWrapper(wrapper) &&\n wrapper.context?.pluginId !== 'timeseries' &&\n wrapper.context?.pluginId !== 'graph'\n ) {\n return undefined;\n }\n\n const [query] = context?.targets ?? [];\n if (!query || !query.datasource?.uid) {\n return undefined;\n }\n\n const datasourceSettings = getDataSourceSrv().getInstanceSettings(query.datasource);\n if (!datasourceSettings) {\n return undefined;\n }\n\n if (!SUPPORTED_DATASOURCE_TYPES.includes(datasourceSettings.type)) {\n return undefined;\n }\n\n if (datasourceSettings.name === DATASOURCE_NAME) {\n return undefined;\n }\n\n // Override the path and params to include the query and datasource.\n return {\n path: urlUtil.renderUrl(path, {\n ds: query.datasource.uid,\n query_params: JSON.stringify(query),\n }),\n };\n };\n}\n\ntype NavigateOptions = {\n path: string;\n context?: PluginExtensionPanelContext;\n errorMessage: string;\n};\n\nexport async function navigateToPathWithParams(options: NavigateOptions): Promise {\n // It is important that we catch potential errors in this async function\n try {\n const { context, path } = options;\n // @ts-ignore - we need to updated to the version running in main.\n // TODO: remove this once we have updated to @grafana/data v10.\n // Since we have a default value for scopedVars this will still work in Grafana 9.5.\n const { scopedVars = {}, targets } = context;\n const [query] = targets;\n const ds = await getDataSourceSrv().get(query.datasource);\n\n if (!ds.interpolateVariablesInQueries) {\n return locationService.push({\n pathname: path,\n search: urlUtil.toUrlParams({\n ds: query.datasource.uid,\n query_params: JSON.stringify(query),\n }),\n });\n }\n\n const [interpolated] = ds.interpolateVariablesInQueries([query], scopedVars);\n return locationService.push({\n pathname: path,\n search: urlUtil.toUrlParams({\n ds: query.datasource.uid,\n query_params: JSON.stringify(interpolated),\n }),\n });\n } catch (_error) {\n getAppEvents().publish({\n type: AppEvents.alertError.name,\n payload: [options.errorMessage],\n });\n }\n}\n\nexport function createLinkConfig(config: ExtensionLinkConfig): ExtensionLinkConfig {\n const { category, icon, ...rest } = config;\n // Grafana versions prior to 10.0.4 would not show the extension links if any\n // unknown fields appeared in the extension config, and some of these fields\n // were added later, so we only try to set them if Grafana is newer than 10.0.4.\n if (tryGte(grafanaConfig.buildInfo.version, '10.0.4')) {\n return {\n ...rest,\n category,\n // Ignore Typescript errors here: @grafana/data>10.2.0 _does_ include the\n // 'gf-ml' icon, and is bundled in cloud, but we're not building against it yet.\n // See https://github.com/grafana/grafana/pull/73813.\n // If a customer is pinned to <10.2.0, they'll just see a blank icon, the same\n // as if we hadn't overridden this.\n // @ts-ignore\n icon,\n };\n }\n\n return rest;\n}\n\nexport function getQueryCustomParams(query: DataQuery): DataQuery {\n // We only keep the custom values not the default ones.\n // eslint-disable-next-line\n const { datasource, key, queryType, hide, ...custom } = query;\n\n if ('instant' in custom) {\n // If instant is being passed for explore queries we exclude that one.\n // eslint-disable-next-line\n const { instant, ...rest } = custom;\n return rest;\n }\n\n return custom;\n}\n","\"use strict\";\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n var desc = Object.getOwnPropertyDescriptor(m, k);\n if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\n desc = { enumerable: true, get: function() { return m[k]; } };\n }\n Object.defineProperty(o, k2, desc);\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n}));\nvar __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\n}) : function(o, v) {\n o[\"default\"] = v;\n});\nvar __importStar = (this && this.__importStar) || function (mod) {\n if (mod && mod.__esModule) return mod;\n var result = {};\n if (mod != null) for (var k in mod) if (k !== \"default\" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\n __setModuleDefault(result, mod);\n return result;\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};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.traverse = exports.reduceRightWithIndex = exports.foldMapWithIndex = exports.reduceWithIndex = exports.reduceRight = exports.foldMap = exports.reduce = exports.mapWithIndex = exports.map = exports.flatten = exports.duplicate = exports.extend = exports.flatMap = exports.ap = exports.alt = exports.altW = exports.of = exports.chunksOf = exports.splitAt = exports.chop = exports.chainWithIndex = exports.intersperse = exports.prependAll = exports.unzip = exports.zipWith = exports.modifyAt = exports.updateAt = exports.sort = exports.groupBy = exports.reverse = exports.fromArray = exports.unappend = exports.unprepend = exports.range = exports.replicate = exports.makeBy = exports.fromReadonlyArray = exports.rotate = exports.union = exports.sortBy = exports.uniq = exports.unsafeUpdateAt = exports.unsafeInsertAt = exports.append = exports.appendW = exports.prepend = exports.prependW = exports.isOutOfBound = exports.isNonEmpty = exports.empty = void 0;\nexports.insertAt = exports.snoc = exports.unsnoc = exports.uncons = exports.filterWithIndex = exports.chain = exports.intercalate = exports.updateLast = exports.modifyLast = exports.updateHead = exports.modifyHead = exports.matchRight = exports.matchLeft = exports.concatAll = exports.max = exports.min = exports.init = exports.last = exports.tail = exports.head = exports.apS = exports.bind = exports.let = exports.bindTo = exports.Do = exports.Comonad = exports.Alt = exports.TraversableWithIndex = exports.Traversable = exports.FoldableWithIndex = exports.Foldable = exports.Monad = exports.chainFirst = exports.Chain = exports.Applicative = exports.apSecond = exports.apFirst = exports.Apply = exports.FunctorWithIndex = exports.Pointed = exports.flap = exports.Functor = exports.getUnionSemigroup = exports.getEq = exports.getSemigroup = exports.getShow = exports.URI = exports.extract = exports.traverseWithIndex = exports.sequence = void 0;\nexports.readonlyNonEmptyArray = exports.fold = exports.prependToAll = void 0;\nexports.concatW = concatW;\nexports.concat = concat;\nexports.group = group;\nexports.zip = zip;\nexports.groupSort = groupSort;\nexports.filter = filter;\nexports.cons = cons;\nvar Apply_1 = require(\"./Apply\");\nvar Chain_1 = require(\"./Chain\");\nvar Eq_1 = require(\"./Eq\");\nvar function_1 = require(\"./function\");\nvar Functor_1 = require(\"./Functor\");\nvar _ = __importStar(require(\"./internal\"));\nvar Ord_1 = require(\"./Ord\");\nvar Se = __importStar(require(\"./Semigroup\"));\n// -------------------------------------------------------------------------------------\n// internal\n// -------------------------------------------------------------------------------------\n/**\n * @internal\n */\nexports.empty = _.emptyReadonlyArray;\n/**\n * @internal\n */\nexports.isNonEmpty = _.isNonEmpty;\n/**\n * @internal\n */\nvar isOutOfBound = function (i, as) { return i < 0 || i >= as.length; };\nexports.isOutOfBound = isOutOfBound;\n/**\n * @internal\n */\nvar prependW = function (head) {\n return function (tail) {\n return __spreadArray([head], tail, true);\n };\n};\nexports.prependW = prependW;\n/**\n * @internal\n */\nexports.prepend = exports.prependW;\n/**\n * @internal\n */\nvar appendW = function (end) {\n return function (init) {\n return __spreadArray(__spreadArray([], init, true), [end], false);\n };\n};\nexports.appendW = appendW;\n/**\n * @internal\n */\nexports.append = exports.appendW;\n/**\n * @internal\n */\nvar unsafeInsertAt = function (i, a, as) {\n if ((0, exports.isNonEmpty)(as)) {\n var xs = _.fromReadonlyNonEmptyArray(as);\n xs.splice(i, 0, a);\n return xs;\n }\n return [a];\n};\nexports.unsafeInsertAt = unsafeInsertAt;\n/**\n * @internal\n */\nvar unsafeUpdateAt = function (i, a, as) {\n if (as[i] === a) {\n return as;\n }\n else {\n var xs = _.fromReadonlyNonEmptyArray(as);\n xs[i] = a;\n return xs;\n }\n};\nexports.unsafeUpdateAt = unsafeUpdateAt;\n/**\n * Remove duplicates from a `ReadonlyNonEmptyArray`, keeping the first occurrence of an element.\n *\n * @example\n * import { uniq } from 'fp-ts/ReadonlyNonEmptyArray'\n * import * as N from 'fp-ts/number'\n *\n * assert.deepStrictEqual(uniq(N.Eq)([1, 2, 1]), [1, 2])\n *\n * @since 2.11.0\n */\nvar uniq = function (E) {\n return function (as) {\n if (as.length === 1) {\n return as;\n }\n var out = [(0, exports.head)(as)];\n var rest = (0, exports.tail)(as);\n var _loop_1 = function (a) {\n if (out.every(function (o) { return !E.equals(o, a); })) {\n out.push(a);\n }\n };\n for (var _i = 0, rest_1 = rest; _i < rest_1.length; _i++) {\n var a = rest_1[_i];\n _loop_1(a);\n }\n return out;\n };\n};\nexports.uniq = uniq;\n/**\n * Sort the elements of a `ReadonlyNonEmptyArray` in increasing order, where elements are compared using first `ords[0]`, then `ords[1]`,\n * etc...\n *\n * @example\n * import * as RNEA from 'fp-ts/ReadonlyNonEmptyArray'\n * import { contramap } from 'fp-ts/Ord'\n * import * as S from 'fp-ts/string'\n * import * as N from 'fp-ts/number'\n * import { pipe } from 'fp-ts/function'\n *\n * interface Person {\n * name: string\n * age: number\n * }\n *\n * const byName = pipe(S.Ord, contramap((p: Person) => p.name))\n *\n * const byAge = pipe(N.Ord, contramap((p: Person) => p.age))\n *\n * const sortByNameByAge = RNEA.sortBy([byName, byAge])\n *\n * const persons: RNEA.ReadonlyNonEmptyArray = [\n * { name: 'a', age: 1 },\n * { name: 'b', age: 3 },\n * { name: 'c', age: 2 },\n * { name: 'b', age: 2 }\n * ]\n *\n * assert.deepStrictEqual(sortByNameByAge(persons), [\n * { name: 'a', age: 1 },\n * { name: 'b', age: 2 },\n * { name: 'b', age: 3 },\n * { name: 'c', age: 2 }\n * ])\n *\n * @since 2.11.0\n */\nvar sortBy = function (ords) {\n if ((0, exports.isNonEmpty)(ords)) {\n var M = (0, Ord_1.getMonoid)();\n return (0, exports.sort)(ords.reduce(M.concat, M.empty));\n }\n return function_1.identity;\n};\nexports.sortBy = sortBy;\n/**\n * @since 2.11.0\n */\nvar union = function (E) {\n var uniqE = (0, exports.uniq)(E);\n return function (second) { return function (first) { return uniqE((0, function_1.pipe)(first, concat(second))); }; };\n};\nexports.union = union;\n/**\n * Rotate a `ReadonlyNonEmptyArray` by `n` steps.\n *\n * @example\n * import { rotate } from 'fp-ts/ReadonlyNonEmptyArray'\n *\n * assert.deepStrictEqual(rotate(2)([1, 2, 3, 4, 5]), [4, 5, 1, 2, 3])\n * assert.deepStrictEqual(rotate(-2)([1, 2, 3, 4, 5]), [3, 4, 5, 1, 2])\n *\n * @since 2.11.0\n */\nvar rotate = function (n) {\n return function (as) {\n var len = as.length;\n var m = Math.round(n) % len;\n if ((0, exports.isOutOfBound)(Math.abs(m), as) || m === 0) {\n return as;\n }\n if (m < 0) {\n var _a = (0, exports.splitAt)(-m)(as), f = _a[0], s = _a[1];\n return (0, function_1.pipe)(s, concat(f));\n }\n else {\n return (0, exports.rotate)(m - len)(as);\n }\n };\n};\nexports.rotate = rotate;\n// -------------------------------------------------------------------------------------\n// constructors\n// -------------------------------------------------------------------------------------\n/**\n * Return a `ReadonlyNonEmptyArray` from a `ReadonlyArray` returning `none` if the input is empty.\n *\n * @category conversions\n * @since 2.5.0\n */\nvar fromReadonlyArray = function (as) {\n return (0, exports.isNonEmpty)(as) ? _.some(as) : _.none;\n};\nexports.fromReadonlyArray = fromReadonlyArray;\n/**\n * Return a `ReadonlyNonEmptyArray` of length `n` with element `i` initialized with `f(i)`.\n *\n * **Note**. `n` is normalized to a natural number.\n *\n * @example\n * import { makeBy } from 'fp-ts/ReadonlyNonEmptyArray'\n * import { pipe } from 'fp-ts/function'\n *\n * const double = (n: number): number => n * 2\n * assert.deepStrictEqual(pipe(5, makeBy(double)), [0, 2, 4, 6, 8])\n *\n * @category constructors\n * @since 2.11.0\n */\nvar makeBy = function (f) {\n return function (n) {\n var j = Math.max(0, Math.floor(n));\n var out = [f(0)];\n for (var i = 1; i < j; i++) {\n out.push(f(i));\n }\n return out;\n };\n};\nexports.makeBy = makeBy;\n/**\n * Create a `ReadonlyNonEmptyArray` containing a value repeated the specified number of times.\n *\n * **Note**. `n` is normalized to a natural number.\n *\n * @example\n * import { replicate } from 'fp-ts/ReadonlyNonEmptyArray'\n * import { pipe } from 'fp-ts/function'\n *\n * assert.deepStrictEqual(pipe(3, replicate('a')), ['a', 'a', 'a'])\n *\n * @category constructors\n * @since 2.11.0\n */\nvar replicate = function (a) { return (0, exports.makeBy)(function () { return a; }); };\nexports.replicate = replicate;\n/**\n * Create a `ReadonlyNonEmptyArray` containing a range of integers, including both endpoints.\n *\n * @example\n * import { range } from 'fp-ts/ReadonlyNonEmptyArray'\n *\n * assert.deepStrictEqual(range(1, 5), [1, 2, 3, 4, 5])\n *\n * @category constructors\n * @since 2.11.0\n */\nvar range = function (start, end) {\n return start <= end ? (0, exports.makeBy)(function (i) { return start + i; })(end - start + 1) : [start];\n};\nexports.range = range;\n/**\n * Return the tuple of the `head` and the `tail`.\n *\n * @example\n * import { unprepend } from 'fp-ts/ReadonlyNonEmptyArray'\n *\n * assert.deepStrictEqual(unprepend([1, 2, 3, 4]), [1, [2, 3, 4]])\n *\n * @since 2.9.0\n */\nvar unprepend = function (as) { return [(0, exports.head)(as), (0, exports.tail)(as)]; };\nexports.unprepend = unprepend;\n/**\n * Return the tuple of the `init` and the `last`.\n *\n * @example\n * import { unappend } from 'fp-ts/ReadonlyNonEmptyArray'\n *\n * assert.deepStrictEqual(unappend([1, 2, 3, 4]), [[1, 2, 3], 4])\n *\n * @since 2.9.0\n */\nvar unappend = function (as) { return [(0, exports.init)(as), (0, exports.last)(as)]; };\nexports.unappend = unappend;\n/**\n * @category conversions\n * @since 2.5.0\n */\nvar fromArray = function (as) { return (0, exports.fromReadonlyArray)(as.slice()); };\nexports.fromArray = fromArray;\nfunction concatW(second) {\n return function (first) { return first.concat(second); };\n}\nfunction concat(x, y) {\n return y ? x.concat(y) : function (y) { return y.concat(x); };\n}\n/**\n * @since 2.5.0\n */\nvar reverse = function (as) {\n return as.length === 1 ? as : __spreadArray([(0, exports.last)(as)], as.slice(0, -1).reverse(), true);\n};\nexports.reverse = reverse;\nfunction group(E) {\n return function (as) {\n var len = as.length;\n if (len === 0) {\n return exports.empty;\n }\n var out = [];\n var head = as[0];\n var nea = [head];\n for (var i = 1; i < len; i++) {\n var a = as[i];\n if (E.equals(a, head)) {\n nea.push(a);\n }\n else {\n out.push(nea);\n head = a;\n nea = [head];\n }\n }\n out.push(nea);\n return out;\n };\n}\n/**\n * Splits an array into sub-non-empty-arrays stored in an object, based on the result of calling a `string`-returning\n * function on each element, and grouping the results according to values returned\n *\n * @example\n * import { groupBy } from 'fp-ts/ReadonlyNonEmptyArray'\n *\n * assert.deepStrictEqual(groupBy((s: string) => String(s.length))(['a', 'b', 'ab']), {\n * '1': ['a', 'b'],\n * '2': ['ab']\n * })\n *\n * @since 2.5.0\n */\nvar groupBy = function (f) {\n return function (as) {\n var out = {};\n for (var _i = 0, as_1 = as; _i < as_1.length; _i++) {\n var a = as_1[_i];\n var k = f(a);\n if (_.has.call(out, k)) {\n out[k].push(a);\n }\n else {\n out[k] = [a];\n }\n }\n return out;\n };\n};\nexports.groupBy = groupBy;\n/**\n * @since 2.5.0\n */\nvar sort = function (O) {\n return function (as) {\n return as.length === 1 ? as : as.slice().sort(O.compare);\n };\n};\nexports.sort = sort;\n/**\n * @since 2.5.0\n */\nvar updateAt = function (i, a) {\n return (0, exports.modifyAt)(i, function () { return a; });\n};\nexports.updateAt = updateAt;\n/**\n * @since 2.5.0\n */\nvar modifyAt = function (i, f) {\n return function (as) {\n return (0, exports.isOutOfBound)(i, as) ? _.none : _.some((0, exports.unsafeUpdateAt)(i, f(as[i]), as));\n };\n};\nexports.modifyAt = modifyAt;\n/**\n * @since 2.5.1\n */\nvar zipWith = function (as, bs, f) {\n var cs = [f(as[0], bs[0])];\n var len = Math.min(as.length, bs.length);\n for (var i = 1; i < len; i++) {\n cs[i] = f(as[i], bs[i]);\n }\n return cs;\n};\nexports.zipWith = zipWith;\nfunction zip(as, bs) {\n if (bs === undefined) {\n return function (bs) { return zip(bs, as); };\n }\n return (0, exports.zipWith)(as, bs, function (a, b) { return [a, b]; });\n}\n/**\n * @since 2.5.1\n */\nvar unzip = function (abs) {\n var fa = [abs[0][0]];\n var fb = [abs[0][1]];\n for (var i = 1; i < abs.length; i++) {\n fa[i] = abs[i][0];\n fb[i] = abs[i][1];\n }\n return [fa, fb];\n};\nexports.unzip = unzip;\n/**\n * Prepend an element to every member of a `ReadonlyNonEmptyArray`.\n *\n * @example\n * import { prependAll } from 'fp-ts/ReadonlyNonEmptyArray'\n *\n * assert.deepStrictEqual(prependAll(9)([1, 2, 3, 4]), [9, 1, 9, 2, 9, 3, 9, 4])\n *\n * @since 2.10.0\n */\nvar prependAll = function (middle) {\n return function (as) {\n var out = [middle, as[0]];\n for (var i = 1; i < as.length; i++) {\n out.push(middle, as[i]);\n }\n return out;\n };\n};\nexports.prependAll = prependAll;\n/**\n * Places an element in between members of a `ReadonlyNonEmptyArray`.\n *\n * @example\n * import { intersperse } from 'fp-ts/ReadonlyNonEmptyArray'\n *\n * assert.deepStrictEqual(intersperse(9)([1, 2, 3, 4]), [1, 9, 2, 9, 3, 9, 4])\n *\n * @since 2.9.0\n */\nvar intersperse = function (middle) {\n return function (as) {\n var rest = (0, exports.tail)(as);\n return (0, exports.isNonEmpty)(rest) ? (0, function_1.pipe)(rest, (0, exports.prependAll)(middle), (0, exports.prepend)((0, exports.head)(as))) : as;\n };\n};\nexports.intersperse = intersperse;\n/**\n * @category sequencing\n * @since 2.10.0\n */\nvar chainWithIndex = function (f) {\n return function (as) {\n var out = _.fromReadonlyNonEmptyArray(f(0, (0, exports.head)(as)));\n for (var i = 1; i < as.length; i++) {\n var bs = f(i, as[i]);\n for (var j = 0; j < bs.length; j++) {\n out.push(bs[j]);\n }\n }\n return out;\n };\n};\nexports.chainWithIndex = chainWithIndex;\n/**\n * A useful recursion pattern for processing a `ReadonlyNonEmptyArray` to produce a new `ReadonlyNonEmptyArray`, often used for \"chopping\" up the input\n * `ReadonlyNonEmptyArray`. Typically `chop` is called with some function that will consume an initial prefix of the `ReadonlyNonEmptyArray` and produce a\n * value and the tail of the `ReadonlyNonEmptyArray`.\n *\n * @since 2.10.0\n */\nvar chop = function (f) {\n return function (as) {\n var _a = f(as), b = _a[0], rest = _a[1];\n var out = [b];\n var next = rest;\n while ((0, exports.isNonEmpty)(next)) {\n var _b = f(next), b_1 = _b[0], rest_2 = _b[1];\n out.push(b_1);\n next = rest_2;\n }\n return out;\n };\n};\nexports.chop = chop;\n/**\n * Splits a `ReadonlyNonEmptyArray` into two pieces, the first piece has max `n` elements.\n *\n * @since 2.10.0\n */\nvar splitAt = function (n) {\n return function (as) {\n var m = Math.max(1, n);\n return m >= as.length ? [as, exports.empty] : [(0, function_1.pipe)(as.slice(1, m), (0, exports.prepend)((0, exports.head)(as))), as.slice(m)];\n };\n};\nexports.splitAt = splitAt;\n/**\n * Splits a `ReadonlyNonEmptyArray` into length-`n` pieces. The last piece will be shorter if `n` does not evenly divide the length of\n * the `ReadonlyNonEmptyArray`.\n *\n * @since 2.10.0\n */\nvar chunksOf = function (n) { return (0, exports.chop)((0, exports.splitAt)(n)); };\nexports.chunksOf = chunksOf;\nvar _map = function (fa, f) { return (0, function_1.pipe)(fa, (0, exports.map)(f)); };\n/* istanbul ignore next */\nvar _mapWithIndex = function (fa, f) { return (0, function_1.pipe)(fa, (0, exports.mapWithIndex)(f)); };\nvar _ap = function (fab, fa) { return (0, function_1.pipe)(fab, (0, exports.ap)(fa)); };\n/* istanbul ignore next */\nvar _extend = function (wa, f) { return (0, function_1.pipe)(wa, (0, exports.extend)(f)); };\n/* istanbul ignore next */\nvar _reduce = function (fa, b, f) { return (0, function_1.pipe)(fa, (0, exports.reduce)(b, f)); };\n/* istanbul ignore next */\nvar _foldMap = function (M) {\n var foldMapM = (0, exports.foldMap)(M);\n return function (fa, f) { return (0, function_1.pipe)(fa, foldMapM(f)); };\n};\n/* istanbul ignore next */\nvar _reduceRight = function (fa, b, f) { return (0, function_1.pipe)(fa, (0, exports.reduceRight)(b, f)); };\n/* istanbul ignore next */\nvar _traverse = function (F) {\n var traverseF = (0, exports.traverse)(F);\n return function (ta, f) { return (0, function_1.pipe)(ta, traverseF(f)); };\n};\n/* istanbul ignore next */\nvar _alt = function (fa, that) { return (0, function_1.pipe)(fa, (0, exports.alt)(that)); };\n/* istanbul ignore next */\nvar _reduceWithIndex = function (fa, b, f) {\n return (0, function_1.pipe)(fa, (0, exports.reduceWithIndex)(b, f));\n};\n/* istanbul ignore next */\nvar _foldMapWithIndex = function (M) {\n var foldMapWithIndexM = (0, exports.foldMapWithIndex)(M);\n return function (fa, f) { return (0, function_1.pipe)(fa, foldMapWithIndexM(f)); };\n};\n/* istanbul ignore next */\nvar _reduceRightWithIndex = function (fa, b, f) {\n return (0, function_1.pipe)(fa, (0, exports.reduceRightWithIndex)(b, f));\n};\n/* istanbul ignore next */\nvar _traverseWithIndex = function (F) {\n var traverseWithIndexF = (0, exports.traverseWithIndex)(F);\n return function (ta, f) { return (0, function_1.pipe)(ta, traverseWithIndexF(f)); };\n};\n/**\n * @category constructors\n * @since 2.5.0\n */\nexports.of = _.singleton;\n/**\n * Less strict version of [`alt`](#alt).\n *\n * The `W` suffix (short for **W**idening) means that the return types will be merged.\n *\n * @example\n * import * as RNEA from 'fp-ts/ReadonlyNonEmptyArray'\n * import { pipe } from 'fp-ts/function'\n *\n * assert.deepStrictEqual(\n * pipe(\n * [1, 2, 3] as RNEA.ReadonlyNonEmptyArray,\n * RNEA.altW(() => ['a', 'b'])\n * ),\n * [1, 2, 3, 'a', 'b']\n * )\n *\n * @category error handling\n * @since 2.9.0\n */\nvar altW = function (that) {\n return function (as) {\n return (0, function_1.pipe)(as, concatW(that()));\n };\n};\nexports.altW = altW;\n/**\n * Identifies an associative operation on a type constructor. It is similar to `Semigroup`, except that it applies to\n * types of kind `* -> *`.\n *\n * In case of `ReadonlyNonEmptyArray` concatenates the inputs into a single array.\n *\n * @example\n * import * as RNEA from 'fp-ts/ReadonlyNonEmptyArray'\n * import { pipe } from 'fp-ts/function'\n *\n * assert.deepStrictEqual(\n * pipe(\n * [1, 2, 3],\n * RNEA.alt(() => [4, 5])\n * ),\n * [1, 2, 3, 4, 5]\n * )\n *\n * @category error handling\n * @since 2.6.2\n */\nexports.alt = exports.altW;\n/**\n * @since 2.5.0\n */\nvar ap = function (as) { return (0, exports.flatMap)(function (f) { return (0, function_1.pipe)(as, (0, exports.map)(f)); }); };\nexports.ap = ap;\n/**\n * @example\n * import * as RNEA from 'fp-ts/ReadonlyNonEmptyArray'\n * import { pipe } from 'fp-ts/function'\n *\n * assert.deepStrictEqual(\n * pipe(\n * [1, 2, 3],\n * RNEA.flatMap((n) => [`a${n}`, `b${n}`])\n * ),\n * ['a1', 'b1', 'a2', 'b2', 'a3', 'b3']\n * )\n *\n * @category sequencing\n * @since 2.14.0\n */\nexports.flatMap = (0, function_1.dual)(2, function (ma, f) {\n return (0, function_1.pipe)(ma, (0, exports.chainWithIndex)(function (i, a) { return f(a, i); }));\n});\n/**\n * @since 2.5.0\n */\nvar extend = function (f) {\n return function (as) {\n var next = (0, exports.tail)(as);\n var out = [f(as)];\n while ((0, exports.isNonEmpty)(next)) {\n out.push(f(next));\n next = (0, exports.tail)(next);\n }\n return out;\n };\n};\nexports.extend = extend;\n/**\n * @since 2.5.0\n */\nexports.duplicate = \n/*#__PURE__*/ (0, exports.extend)(function_1.identity);\n/**\n * @category sequencing\n * @since 2.5.0\n */\nexports.flatten = \n/*#__PURE__*/ (0, exports.flatMap)(function_1.identity);\n/**\n * `map` can be used to turn functions `(a: A) => B` into functions `(fa: F) => F` whose argument and return types\n * use the type constructor `F` to represent some computational context.\n *\n * @category mapping\n * @since 2.5.0\n */\nvar map = function (f) {\n return (0, exports.mapWithIndex)(function (_, a) { return f(a); });\n};\nexports.map = map;\n/**\n * @category mapping\n * @since 2.5.0\n */\nvar mapWithIndex = function (f) {\n return function (as) {\n var out = [f(0, (0, exports.head)(as))];\n for (var i = 1; i < as.length; i++) {\n out.push(f(i, as[i]));\n }\n return out;\n };\n};\nexports.mapWithIndex = mapWithIndex;\n/**\n * @category folding\n * @since 2.5.0\n */\nvar reduce = function (b, f) {\n return (0, exports.reduceWithIndex)(b, function (_, b, a) { return f(b, a); });\n};\nexports.reduce = reduce;\n/**\n * **Note**. The constraint is relaxed: a `Semigroup` instead of a `Monoid`.\n *\n * @category folding\n * @since 2.5.0\n */\nvar foldMap = function (S) {\n return function (f) {\n return function (as) {\n return as.slice(1).reduce(function (s, a) { return S.concat(s, f(a)); }, f(as[0]));\n };\n };\n};\nexports.foldMap = foldMap;\n/**\n * @category folding\n * @since 2.5.0\n */\nvar reduceRight = function (b, f) {\n return (0, exports.reduceRightWithIndex)(b, function (_, b, a) { return f(b, a); });\n};\nexports.reduceRight = reduceRight;\n/**\n * @category folding\n * @since 2.5.0\n */\nvar reduceWithIndex = function (b, f) {\n return function (as) {\n return as.reduce(function (b, a, i) { return f(i, b, a); }, b);\n };\n};\nexports.reduceWithIndex = reduceWithIndex;\n/**\n * **Note**. The constraint is relaxed: a `Semigroup` instead of a `Monoid`.\n *\n * @category folding\n * @since 2.5.0\n */\nvar foldMapWithIndex = function (S) {\n return function (f) {\n return function (as) {\n return as.slice(1).reduce(function (s, a, i) { return S.concat(s, f(i + 1, a)); }, f(0, as[0]));\n };\n };\n};\nexports.foldMapWithIndex = foldMapWithIndex;\n/**\n * @category folding\n * @since 2.5.0\n */\nvar reduceRightWithIndex = function (b, f) {\n return function (as) {\n return as.reduceRight(function (b, a, i) { return f(i, a, b); }, b);\n };\n};\nexports.reduceRightWithIndex = reduceRightWithIndex;\n/**\n * @category traversing\n * @since 2.6.3\n */\nvar traverse = function (F) {\n var traverseWithIndexF = (0, exports.traverseWithIndex)(F);\n return function (f) { return traverseWithIndexF(function (_, a) { return f(a); }); };\n};\nexports.traverse = traverse;\n/**\n * @category traversing\n * @since 2.6.3\n */\nvar sequence = function (F) { return (0, exports.traverseWithIndex)(F)(function_1.SK); };\nexports.sequence = sequence;\n/**\n * @category sequencing\n * @since 2.6.3\n */\nvar traverseWithIndex = function (F) {\n return function (f) {\n return function (as) {\n var out = F.map(f(0, (0, exports.head)(as)), exports.of);\n for (var i = 1; i < as.length; i++) {\n out = F.ap(F.map(out, function (bs) { return function (b) { return (0, function_1.pipe)(bs, (0, exports.append)(b)); }; }), f(i, as[i]));\n }\n return out;\n };\n };\n};\nexports.traverseWithIndex = traverseWithIndex;\n/**\n * @category Comonad\n * @since 2.6.3\n */\nexports.extract = _.head;\n/**\n * @category type lambdas\n * @since 2.5.0\n */\nexports.URI = 'ReadonlyNonEmptyArray';\n/**\n * @category instances\n * @since 2.5.0\n */\nvar getShow = function (S) { return ({\n show: function (as) { return \"[\".concat(as.map(S.show).join(', '), \"]\"); }\n}); };\nexports.getShow = getShow;\n/**\n * Builds a `Semigroup` instance for `ReadonlyNonEmptyArray`\n *\n * @category instances\n * @since 2.5.0\n */\nvar getSemigroup = function () { return ({\n concat: concat\n}); };\nexports.getSemigroup = getSemigroup;\n/**\n * @example\n * import { getEq } from 'fp-ts/ReadonlyNonEmptyArray'\n * import * as N from 'fp-ts/number'\n *\n * const E = getEq(N.Eq)\n * assert.strictEqual(E.equals([1, 2], [1, 2]), true)\n * assert.strictEqual(E.equals([1, 2], [1, 3]), false)\n *\n * @category instances\n * @since 2.5.0\n */\nvar getEq = function (E) {\n return (0, Eq_1.fromEquals)(function (xs, ys) { return xs.length === ys.length && xs.every(function (x, i) { return E.equals(x, ys[i]); }); });\n};\nexports.getEq = getEq;\n/**\n * @since 2.11.0\n */\nvar getUnionSemigroup = function (E) {\n var unionE = (0, exports.union)(E);\n return {\n concat: function (first, second) { return unionE(second)(first); }\n };\n};\nexports.getUnionSemigroup = getUnionSemigroup;\n/**\n * @category instances\n * @since 2.7.0\n */\nexports.Functor = {\n URI: exports.URI,\n map: _map\n};\n/**\n * @category mapping\n * @since 2.10.0\n */\nexports.flap = (0, Functor_1.flap)(exports.Functor);\n/**\n * @category instances\n * @since 2.10.0\n */\nexports.Pointed = {\n URI: exports.URI,\n of: exports.of\n};\n/**\n * @category instances\n * @since 2.7.0\n */\nexports.FunctorWithIndex = {\n URI: exports.URI,\n map: _map,\n mapWithIndex: _mapWithIndex\n};\n/**\n * @category instances\n * @since 2.10.0\n */\nexports.Apply = {\n URI: exports.URI,\n map: _map,\n ap: _ap\n};\n/**\n * Combine two effectful actions, keeping only the result of the first.\n *\n * @since 2.5.0\n */\nexports.apFirst = (0, Apply_1.apFirst)(exports.Apply);\n/**\n * Combine two effectful actions, keeping only the result of the second.\n *\n * @since 2.5.0\n */\nexports.apSecond = (0, Apply_1.apSecond)(exports.Apply);\n/**\n * @category instances\n * @since 2.7.0\n */\nexports.Applicative = {\n URI: exports.URI,\n map: _map,\n ap: _ap,\n of: exports.of\n};\n/**\n * @category instances\n * @since 2.10.0\n */\nexports.Chain = {\n URI: exports.URI,\n map: _map,\n ap: _ap,\n chain: exports.flatMap\n};\n/**\n * Composes computations in sequence, using the return value of one computation to determine the next computation and\n * keeping only the result of the first.\n *\n * @example\n * import * as RA from 'fp-ts/ReadonlyArray'\n * import { pipe } from 'fp-ts/function'\n *\n * assert.deepStrictEqual(\n * pipe(\n * [1, 2, 3],\n * RA.chainFirst(() => ['a', 'b'])\n * ),\n * [1, 1, 2, 2, 3, 3]\n * )\n *\n * @category sequencing\n * @since 2.5.0\n */\nexports.chainFirst = (0, Chain_1.chainFirst)(exports.Chain);\n/**\n * @category instances\n * @since 2.7.0\n */\nexports.Monad = {\n URI: exports.URI,\n map: _map,\n ap: _ap,\n of: exports.of,\n chain: exports.flatMap\n};\n/**\n * @category instances\n * @since 2.7.0\n */\nexports.Foldable = {\n URI: exports.URI,\n reduce: _reduce,\n foldMap: _foldMap,\n reduceRight: _reduceRight\n};\n/**\n * @category instances\n * @since 2.7.0\n */\nexports.FoldableWithIndex = {\n URI: exports.URI,\n reduce: _reduce,\n foldMap: _foldMap,\n reduceRight: _reduceRight,\n reduceWithIndex: _reduceWithIndex,\n foldMapWithIndex: _foldMapWithIndex,\n reduceRightWithIndex: _reduceRightWithIndex\n};\n/**\n * @category instances\n * @since 2.7.0\n */\nexports.Traversable = {\n URI: exports.URI,\n map: _map,\n reduce: _reduce,\n foldMap: _foldMap,\n reduceRight: _reduceRight,\n traverse: _traverse,\n sequence: exports.sequence\n};\n/**\n * @category instances\n * @since 2.7.0\n */\nexports.TraversableWithIndex = {\n URI: exports.URI,\n map: _map,\n mapWithIndex: _mapWithIndex,\n reduce: _reduce,\n foldMap: _foldMap,\n reduceRight: _reduceRight,\n traverse: _traverse,\n sequence: exports.sequence,\n reduceWithIndex: _reduceWithIndex,\n foldMapWithIndex: _foldMapWithIndex,\n reduceRightWithIndex: _reduceRightWithIndex,\n traverseWithIndex: _traverseWithIndex\n};\n/**\n * @category instances\n * @since 2.7.0\n */\nexports.Alt = {\n URI: exports.URI,\n map: _map,\n alt: _alt\n};\n/**\n * @category instances\n * @since 2.7.0\n */\nexports.Comonad = {\n URI: exports.URI,\n map: _map,\n extend: _extend,\n extract: exports.extract\n};\n// -------------------------------------------------------------------------------------\n// do notation\n// -------------------------------------------------------------------------------------\n/**\n * @category do notation\n * @since 2.9.0\n */\nexports.Do = (0, exports.of)(_.emptyRecord);\n/**\n * @category do notation\n * @since 2.8.0\n */\nexports.bindTo = (0, Functor_1.bindTo)(exports.Functor);\nvar let_ = /*#__PURE__*/ (0, Functor_1.let)(exports.Functor);\nexports.let = let_;\n/**\n * @category do notation\n * @since 2.8.0\n */\nexports.bind = (0, Chain_1.bind)(exports.Chain);\n/**\n * @category do notation\n * @since 2.8.0\n */\nexports.apS = (0, Apply_1.apS)(exports.Apply);\n// -------------------------------------------------------------------------------------\n// utils\n// -------------------------------------------------------------------------------------\n/**\n * @since 2.5.0\n */\nexports.head = exports.extract;\n/**\n * @since 2.5.0\n */\nexports.tail = _.tail;\n/**\n * @since 2.5.0\n */\nvar last = function (as) { return as[as.length - 1]; };\nexports.last = last;\n/**\n * Get all but the last element of a non empty array, creating a new array.\n *\n * @example\n * import { init } from 'fp-ts/ReadonlyNonEmptyArray'\n *\n * assert.deepStrictEqual(init([1, 2, 3]), [1, 2])\n * assert.deepStrictEqual(init([1]), [])\n *\n * @since 2.5.0\n */\nvar init = function (as) { return as.slice(0, -1); };\nexports.init = init;\n/**\n * @since 2.5.0\n */\nvar min = function (O) {\n var S = Se.min(O);\n return function (as) { return as.reduce(S.concat); };\n};\nexports.min = min;\n/**\n * @since 2.5.0\n */\nvar max = function (O) {\n var S = Se.max(O);\n return function (as) { return as.reduce(S.concat); };\n};\nexports.max = max;\n/**\n * @since 2.10.0\n */\nvar concatAll = function (S) {\n return function (as) {\n return as.reduce(S.concat);\n };\n};\nexports.concatAll = concatAll;\n/**\n * Break a `ReadonlyArray` into its first element and remaining elements.\n *\n * @category pattern matching\n * @since 2.11.0\n */\nvar matchLeft = function (f) {\n return function (as) {\n return f((0, exports.head)(as), (0, exports.tail)(as));\n };\n};\nexports.matchLeft = matchLeft;\n/**\n * Break a `ReadonlyArray` into its initial elements and the last element.\n *\n * @category pattern matching\n * @since 2.11.0\n */\nvar matchRight = function (f) {\n return function (as) {\n return f((0, exports.init)(as), (0, exports.last)(as));\n };\n};\nexports.matchRight = matchRight;\n/**\n * Apply a function to the head, creating a new `ReadonlyNonEmptyArray`.\n *\n * @since 2.11.0\n */\nvar modifyHead = function (f) {\n return function (as) {\n return __spreadArray([f((0, exports.head)(as))], (0, exports.tail)(as), true);\n };\n};\nexports.modifyHead = modifyHead;\n/**\n * Change the head, creating a new `ReadonlyNonEmptyArray`.\n *\n * @since 2.11.0\n */\nvar updateHead = function (a) { return (0, exports.modifyHead)(function () { return a; }); };\nexports.updateHead = updateHead;\n/**\n * Apply a function to the last element, creating a new `ReadonlyNonEmptyArray`.\n *\n * @since 2.11.0\n */\nvar modifyLast = function (f) {\n return function (as) {\n return (0, function_1.pipe)((0, exports.init)(as), (0, exports.append)(f((0, exports.last)(as))));\n };\n};\nexports.modifyLast = modifyLast;\n/**\n * Change the last element, creating a new `ReadonlyNonEmptyArray`.\n *\n * @since 2.11.0\n */\nvar updateLast = function (a) { return (0, exports.modifyLast)(function () { return a; }); };\nexports.updateLast = updateLast;\n/**\n * Places an element in between members of a `ReadonlyNonEmptyArray`, then folds the results using the provided `Semigroup`.\n *\n * @example\n * import * as S from 'fp-ts/string'\n * import { intercalate } from 'fp-ts/ReadonlyNonEmptyArray'\n *\n * assert.deepStrictEqual(intercalate(S.Semigroup)('-')(['a', 'b', 'c']), 'a-b-c')\n *\n * @since 2.12.0\n */\nvar intercalate = function (S) {\n var concatAllS = (0, exports.concatAll)(S);\n return function (middle) { return (0, function_1.flow)((0, exports.intersperse)(middle), concatAllS); };\n};\nexports.intercalate = intercalate;\n// -------------------------------------------------------------------------------------\n// legacy\n// -------------------------------------------------------------------------------------\n/**\n * Alias of `flatMap`.\n *\n * @category legacy\n * @since 2.5.0\n */\nexports.chain = exports.flatMap;\nfunction groupSort(O) {\n var sortO = (0, exports.sort)(O);\n var groupO = group(O);\n return function (as) { return ((0, exports.isNonEmpty)(as) ? groupO(sortO(as)) : exports.empty); };\n}\nfunction filter(predicate) {\n return (0, exports.filterWithIndex)(function (_, a) { return predicate(a); });\n}\n/**\n * Use [`filterWithIndex`](./ReadonlyArray.ts.html#filterwithindex) instead.\n *\n * @category zone of death\n * @since 2.5.0\n * @deprecated\n */\nvar filterWithIndex = function (predicate) {\n return function (as) {\n return (0, exports.fromReadonlyArray)(as.filter(function (a, i) { return predicate(i, a); }));\n };\n};\nexports.filterWithIndex = filterWithIndex;\n/**\n * Use [`unprepend`](#unprepend) instead.\n *\n * @category zone of death\n * @since 2.10.0\n * @deprecated\n */\nexports.uncons = exports.unprepend;\n/**\n * Use [`unappend`](#unappend) instead.\n *\n * @category zone of death\n * @since 2.10.0\n * @deprecated\n */\nexports.unsnoc = exports.unappend;\nfunction cons(head, tail) {\n return tail === undefined ? (0, exports.prepend)(head) : (0, function_1.pipe)(tail, (0, exports.prepend)(head));\n}\n/**\n * Use [`append`](./ReadonlyArray.ts.html#append) instead.\n *\n * @category zone of death\n * @since 2.5.0\n * @deprecated\n */\nvar snoc = function (init, end) { return (0, function_1.pipe)(init, concat([end])); };\nexports.snoc = snoc;\n/**\n * Use [`insertAt`](./ReadonlyArray.ts.html#insertat) instead.\n *\n * @category zone of death\n * @since 2.5.0\n * @deprecated\n */\nvar insertAt = function (i, a) {\n return function (as) {\n return i < 0 || i > as.length ? _.none : _.some((0, exports.unsafeInsertAt)(i, a, as));\n };\n};\nexports.insertAt = insertAt;\n/**\n * Use [`prependAll`](#prependall) instead.\n *\n * @category zone of death\n * @since 2.9.0\n * @deprecated\n */\nexports.prependToAll = exports.prependAll;\n/**\n * Use [`concatAll`](#concatall) instead.\n *\n * @category zone of death\n * @since 2.5.0\n * @deprecated\n */\nexports.fold = exports.concatAll;\n/**\n * This instance is deprecated, use small, specific instances instead.\n * For example if a function needs a `Functor` instance, pass `RNEA.Functor` instead of `RNEA.readonlyNonEmptyArray`\n * (where `RNEA` is from `import RNEA from 'fp-ts/ReadonlyNonEmptyArray'`)\n *\n * @category zone of death\n * @since 2.5.0\n * @deprecated\n */\nexports.readonlyNonEmptyArray = {\n URI: exports.URI,\n of: exports.of,\n map: _map,\n mapWithIndex: _mapWithIndex,\n ap: _ap,\n chain: exports.flatMap,\n extend: _extend,\n extract: exports.extract,\n reduce: _reduce,\n foldMap: _foldMap,\n reduceRight: _reduceRight,\n traverse: _traverse,\n sequence: exports.sequence,\n reduceWithIndex: _reduceWithIndex,\n foldMapWithIndex: _foldMapWithIndex,\n reduceRightWithIndex: _reduceRightWithIndex,\n traverseWithIndex: _traverseWithIndex,\n alt: _alt\n};\n","\"use strict\";\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n var desc = Object.getOwnPropertyDescriptor(m, k);\n if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\n desc = { enumerable: true, get: function() { return m[k]; } };\n }\n Object.defineProperty(o, k2, desc);\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n}));\nvar __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\n}) : function(o, v) {\n o[\"default\"] = v;\n});\nvar __importStar = (this && this.__importStar) || function (mod) {\n if (mod && mod.__esModule) return mod;\n var result = {};\n if (mod != null) for (var k in mod) if (k !== \"default\" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\n __setModuleDefault(result, mod);\n return result;\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.wiltDefault = wiltDefault;\nexports.witherDefault = witherDefault;\nexports.filterE = filterE;\nvar _ = __importStar(require(\"./internal\"));\nfunction wiltDefault(T, C) {\n return function (F) {\n var traverseF = T.traverse(F);\n return function (wa, f) { return F.map(traverseF(wa, f), C.separate); };\n };\n}\nfunction witherDefault(T, C) {\n return function (F) {\n var traverseF = T.traverse(F);\n return function (wa, f) { return F.map(traverseF(wa, f), C.compact); };\n };\n}\nfunction filterE(W) {\n return function (F) {\n var witherF = W.wither(F);\n return function (predicate) { return function (ga) { return witherF(ga, function (a) { return F.map(predicate(a), function (b) { return (b ? _.some(a) : _.none); }); }); }; };\n };\n}\n","// The module cache\nvar __webpack_module_cache__ = {};\n\n// The require function\nfunction __webpack_require__(moduleId) {\n\t// Check if module is in cache\n\tvar cachedModule = __webpack_module_cache__[moduleId];\n\tif (cachedModule !== undefined) {\n\t\treturn cachedModule.exports;\n\t}\n\t// Create a new module (and put it into the cache)\n\tvar module = __webpack_module_cache__[moduleId] = {\n\t\tid: moduleId,\n\t\t// no module.loaded needed\n\t\texports: {}\n\t};\n\n\t// Execute the module function\n\t__webpack_modules__[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n\t// Return the exports of the module\n\treturn module.exports;\n}\n\n// expose the modules object (__webpack_modules__)\n__webpack_require__.m = __webpack_modules__;\n\n","// getDefaultExport function for compatibility with non-harmony modules\n__webpack_require__.n = (module) => {\n\tvar getter = module && module.__esModule ?\n\t\t() => (module['default']) :\n\t\t() => (module);\n\t__webpack_require__.d(getter, { a: getter });\n\treturn getter;\n};","// define getter functions for harmony exports\n__webpack_require__.d = (exports, definition) => {\n\tfor(var key in definition) {\n\t\tif(__webpack_require__.o(definition, key) && !__webpack_require__.o(exports, key)) {\n\t\t\tObject.defineProperty(exports, key, { enumerable: true, get: definition[key] });\n\t\t}\n\t}\n};","__webpack_require__.f = {};\n// This file contains only the entry chunk.\n// The chunk loading function for additional chunks\n__webpack_require__.e = (chunkId) => {\n\treturn Promise.all(Object.keys(__webpack_require__.f).reduce((promises, key) => {\n\t\t__webpack_require__.f[key](chunkId, promises);\n\t\treturn promises;\n\t}, []));\n};","// This function allow to reference async chunks\n__webpack_require__.u = (chunkId) => {\n\t// return url for filenames not based on template\n\tif (chunkId === 938) return \"augursWorker.js\";\n\t// return url for filenames based on template\n\treturn \"\" + chunkId + \".js?_cache=\" + {\"22\":\"f637f13cb78939dacb56\",\"26\":\"9b01d8c2597c4bce98c5\",\"38\":\"b0386b5b5a02ea94d1fe\",\"134\":\"9d4376a56921c8346360\",\"185\":\"e2601fa9a069889cfd37\",\"189\":\"82b97cb8dd5c5ae83c4f\",\"323\":\"6242df1fc57a1fd69c76\",\"359\":\"501cdc330d3635b23b65\",\"544\":\"5c5f0a7b9455451519ad\",\"598\":\"b135f4c9ea7213c3c65f\",\"667\":\"f2e5e5bfdab2360798ed\",\"757\":\"f8a523298ccf11e16512\",\"770\":\"c045e3936584695a7e6f\",\"773\":\"e277142ff1c4b1be7b28\",\"779\":\"9a511bb4c590dba8daa4\",\"887\":\"2d8d51f8905205902494\",\"911\":\"450c2e1238e50f32acd7\",\"942\":\"e1efc469797ae25b11fd\",\"982\":\"ba2a6063d0ced2a40ad6\"}[chunkId] + \"\";\n};","__webpack_require__.g = (function() {\n\tif (typeof globalThis === 'object') return globalThis;\n\ttry {\n\t\treturn this || new Function('return this')();\n\t} catch (e) {\n\t\tif (typeof window === 'object') return window;\n\t}\n})();","__webpack_require__.o = (obj, prop) => (Object.prototype.hasOwnProperty.call(obj, prop))","// define __esModule on exports\n__webpack_require__.r = (exports) => {\n\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n\t}\n\tObject.defineProperty(exports, '__esModule', { value: true });\n};","__webpack_require__.p = \"public/plugins/grafana-ml-app/\";","\n__webpack_require__.sriHashes = {\"22\":\"*-*-*-CHUNK-SRI-HASH-II49BRX/td3joH5FuPLBDPqOijMgw=\",\"26\":\"*-*-*-CHUNK-SRI-HASH-Lbf1HS0Ums0gQ0wcDTRgjvqZfMQVQ=\",\"38\":\"*-*-*-CHUNK-SRI-HASH-0CblfKS7jHzknutxUsUprOsRPmFWY=\",\"134\":\"*-*-*-CHUNK-SRI-HASH-2dJK4eX3oGIgg8lXz8WM0fcH9EJOY=\",\"185\":\"*-*-*-CHUNK-SRI-HASH-0dORtfvn+qcOqjWxQzSPxQ4A/QUK8=\",\"189\":\"*-*-*-CHUNK-SRI-HASH-vkbJ7oWCJpShi/8g+W6rEZzs+gJ8g=\",\"323\":\"*-*-*-CHUNK-SRI-HASH-yXi8fn/UIqo5+Ck3a4hOcZUTulWq8=\",\"359\":\"*-*-*-CHUNK-SRI-HASH-5/1A7yW8pakPMZKB5G86UDgEIfQzk=\",\"544\":\"*-*-*-CHUNK-SRI-HASH-jFJlGiTkkIv7AFbM5TjGWztgzBdR0=\",\"598\":\"*-*-*-CHUNK-SRI-HASH-xGp3V9Iv1W051J/sWqf2Biun1dGvk=\",\"667\":\"*-*-*-CHUNK-SRI-HASH-la3ej0PccxFgGG6XixoWEJT5j1234=\",\"757\":\"*-*-*-CHUNK-SRI-HASH-uqrJYJpXTI06oxriFYewqKrZE6WRg=\",\"770\":\"*-*-*-CHUNK-SRI-HASH-8H4gc/q0f6CgzNLP3FI5iYA4I5RCQ=\",\"773\":\"*-*-*-CHUNK-SRI-HASH-Cdu9xJ0SepiHOd9P2OoOW9CpKivzY=\",\"779\":\"*-*-*-CHUNK-SRI-HASH-YGSyy9QmhLaJ0yE6egFAje6stwn1U=\",\"887\":\"*-*-*-CHUNK-SRI-HASH-N9UrmexQjHU95mPLSg55bXkzzzok4=\",\"911\":\"*-*-*-CHUNK-SRI-HASH-pUvQlZrMPBjv59Ky6um79kJDFNdVM=\",\"942\":\"*-*-*-CHUNK-SRI-HASH-a4wc2PM1cN64XcuNuddTTBEGSX8TM=\",\"982\":\"*-*-*-CHUNK-SRI-HASH-THnDzMtq9g2ZFquVdHELoJi+BKb1A=\"};","__webpack_require__.b = document.baseURI || self.location.href;\n\n// object to store loaded and loading chunks\n// undefined = chunk not loaded, null = chunk preloaded/prefetched\n// [resolve, reject, Promise] = chunk loading, 0 = chunk loaded\nvar installedChunks = {\n\t231: 0\n};\n\n__webpack_require__.f.j = (chunkId, promises) => {\n\t\t// JSONP chunk loading for javascript\n\t\tvar installedChunkData = __webpack_require__.o(installedChunks, chunkId) ? installedChunks[chunkId] : undefined;\n\t\tif(installedChunkData !== 0) { // 0 means \"already installed\".\n\n\t\t\t// a Promise means \"currently loading\".\n\t\t\tif(installedChunkData) {\n\t\t\t\tpromises.push(installedChunkData[2]);\n\t\t\t} else {\n\t\t\t\tif(true) { // all chunks have JS\n\t\t\t\t\t// setup Promise in chunk cache\n\t\t\t\t\tvar promise = new Promise((resolve, reject) => (installedChunkData = installedChunks[chunkId] = [resolve, reject]));\n\t\t\t\t\tpromises.push(installedChunkData[2] = promise);\n\n\t\t\t\t\t// start chunk loading\n\t\t\t\t\tvar url = __webpack_require__.p + __webpack_require__.u(chunkId);\n\t\t\t\t\t// create error before stack unwound to get useful stacktrace later\n\t\t\t\t\tvar error = new Error();\n\t\t\t\t\tvar loadingEnded = (event) => {\n\t\t\t\t\t\tif(__webpack_require__.o(installedChunks, chunkId)) {\n\t\t\t\t\t\t\tinstalledChunkData = installedChunks[chunkId];\n\t\t\t\t\t\t\tif(installedChunkData !== 0) installedChunks[chunkId] = undefined;\n\t\t\t\t\t\t\tif(installedChunkData) {\n\t\t\t\t\t\t\t\tvar errorType = event && (event.type === 'load' ? 'missing' : event.type);\n\t\t\t\t\t\t\t\tvar realSrc = event && event.target && event.target.src;\n\t\t\t\t\t\t\t\terror.message = 'Loading chunk ' + chunkId + ' failed.\\n(' + errorType + ': ' + realSrc + ')';\n\t\t\t\t\t\t\t\terror.name = 'ChunkLoadError';\n\t\t\t\t\t\t\t\terror.type = errorType;\n\t\t\t\t\t\t\t\terror.request = realSrc;\n\t\t\t\t\t\t\t\tinstalledChunkData[1](error);\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t};\n\t\t\t\t\t__webpack_require__.l(url, loadingEnded, \"chunk-\" + chunkId, chunkId);\n\t\t\t\t}\n\t\t\t}\n\t\t}\n};\n\n// no prefetching\n\n// no preloaded\n\n// no HMR\n\n// no HMR manifest\n\n// no on chunks loaded\n\n// install a JSONP callback for chunk loading\nvar webpackJsonpCallback = (parentChunkLoadingFunction, data) => {\n\tvar [chunkIds, moreModules, runtime] = data;\n\t// add \"moreModules\" to the modules object,\n\t// then flag all \"chunkIds\" as loaded and fire callback\n\tvar moduleId, chunkId, i = 0;\n\tif(chunkIds.some((id) => (installedChunks[id] !== 0))) {\n\t\tfor(moduleId in moreModules) {\n\t\t\tif(__webpack_require__.o(moreModules, moduleId)) {\n\t\t\t\t__webpack_require__.m[moduleId] = moreModules[moduleId];\n\t\t\t}\n\t\t}\n\t\tif(runtime) var result = runtime(__webpack_require__);\n\t}\n\tif(parentChunkLoadingFunction) parentChunkLoadingFunction(data);\n\tfor(;i < chunkIds.length; i++) {\n\t\tchunkId = chunkIds[i];\n\t\tif(__webpack_require__.o(installedChunks, chunkId) && installedChunks[chunkId]) {\n\t\t\tinstalledChunks[chunkId][0]();\n\t\t}\n\t\tinstalledChunks[chunkId] = 0;\n\t}\n\n}\n\nvar chunkLoadingGlobal = self[\"webpackChunkgrafana_ml_app\"] = self[\"webpackChunkgrafana_ml_app\"] || [];\nchunkLoadingGlobal.forEach(webpackJsonpCallback.bind(null, 0));\nchunkLoadingGlobal.push = webpackJsonpCallback.bind(null, chunkLoadingGlobal.push.bind(chunkLoadingGlobal));","__webpack_require__.nc = undefined;","\nimport amdMetaModule from 'amd-module';\n\n__webpack_public_path__ =\n amdMetaModule && amdMetaModule.uri\n ? amdMetaModule.uri.slice(0, amdMetaModule.uri.lastIndexOf('/') + 1)\n : 'public/plugins/grafana-ml-app/';\n","import React, { ComponentType, PropsWithChildren, Suspense } from 'react';\n\nimport { LoadingPlaceholder, useStyles2 } from '@grafana/ui';\n\nimport { css } from '@emotion/css';\n\nexport function withSuspense(Component: ComponentType) {\n return function SuspendedComponent(props: PropsWithChildren) {\n const styles = useStyles2(getStyles);\n\n return (\n \n \n \n }\n >\n \n \n );\n };\n}\n\nconst getStyles = () => {\n return {\n loadingContainer: css`\n width: 100%;\n text-align: center;\n margin-top: 20px;\n `,\n };\n};\n","import { lazy } from 'react';\n\nimport { withSuspense } from 'utils/utils.lazy';\n\nimport { ExtensionComponentConfig } from './types';\n\nconst LazyAlertingHomepageCallout = lazy(() => import('./components/Alerting/AlertingHomepageCallout'));\nconst AlertingHomepageCallout = withSuspense(LazyAlertingHomepageCallout);\n\nexport const alertingHomePageCallout: ExtensionComponentConfig = {\n targets: ['grafana/alerting/home'],\n title: 'Machine Learning',\n description: 'Machine Learning',\n component: AlertingHomepageCallout,\n};\n","import { PluginExtensionPanelContext } from '@grafana/data';\n\nimport { SiftModalContext } from 'projects/Sift/SiftModal';\n\nimport { PluginExtensionExploreContext } from './types';\n\nexport function isPanelContext(context: object | undefined): context is PluginExtensionPanelContext {\n return Boolean(context && 'pluginId' in context && 'targets' in context);\n}\n\nexport function isExploreContext(context: object | undefined): context is PluginExtensionExploreContext {\n return Boolean(context && 'exploreId' in context && 'targets' in context && 'timeRange' in context);\n}\n\nexport function assertExploreOrPanelContext(\n context: object | undefined\n): asserts context is PluginExtensionExploreContext | PluginExtensionPanelContext {\n if (!isExploreContext(context) && !isPanelContext(context)) {\n throw new Error(\n 'Extension context does not match type: \"PluginExtensionExploreContext\" or \"PluginExtensionPanelContext\"'\n );\n }\n}\n\nexport function isSiftModalContext(context: object | undefined): context is SiftModalContext {\n return Boolean(context && 'analysisId' in context && 'investigationId' in context);\n}\n\nexport function assertSiftModalContext(context: object | undefined): asserts context is SiftModalContext {\n if (!isSiftModalContext(context)) {\n throw new Error('Extension context does not match type: \"SiftModalContext\"');\n }\n}\n","import { getDataSourceSrv } from '@grafana/runtime';\nimport { DataQuery } from '@grafana/schema';\n\nimport { DATASOURCE_NAME, SUPPORTED_DATASOURCE_TYPES } from 'consts';\n\nimport { isExploreContext, isPanelContext } from './guards';\nimport { ExtensionLinkConfig } from './types';\n\n/**\n * Returning undefined will hide the extension.\n * Returning an object will use the provided properties to override the values of the extension.\n */\n\nexport function configurePanelLink(context: object | undefined): Partial | undefined {\n if (!isPanelContext(context)) {\n return undefined;\n }\n\n if (context.pluginId !== 'timeseries' && context.pluginId !== 'graph') {\n return undefined;\n }\n\n const [query] = context?.targets ?? [];\n return configureQueryLink(query);\n}\n\nexport function configureExploreLink(context: object | undefined): Partial | undefined {\n if (!isExploreContext(context)) {\n return undefined;\n }\n\n const [query] = context?.targets ?? [];\n return configureQueryLink(query);\n}\n\nexport function configureExploreOrPanelLink(context: object | undefined): Partial | undefined {\n if (isExploreContext(context)) {\n return configureExploreLink(context);\n }\n\n if (isPanelContext(context)) {\n return configurePanelLink(context);\n }\n\n return undefined;\n}\n\nfunction configureQueryLink(query: DataQuery | undefined): Partial | undefined {\n if (!query || !query.datasource?.uid) {\n return undefined;\n }\n\n const settings = getDataSourceSrv().getInstanceSettings(query.datasource);\n\n if (!settings) {\n return undefined;\n }\n\n if (!SUPPORTED_DATASOURCE_TYPES.includes(settings.type)) {\n return undefined;\n }\n\n if (settings.name === DATASOURCE_NAME) {\n return undefined;\n }\n\n return {};\n}\n","import React, { lazy } from 'react';\n\nimport { getMutableTimeRange } from 'utils/timeRange';\nimport { withSuspense } from 'utils/utils.lazy';\nimport { getTimeZoneWithDefault } from 'utils/utils.timeZone';\n\nimport { configureExploreOrPanelLink } from './configureLink';\nimport { assertExploreOrPanelContext } from './guards';\nimport { ExtensionLinkConfig, ExtensionLinkParams, ExtensionPointIds } from './types';\nimport { createLinkConfig } from './utils';\n\nconst LazyForecastModal = lazy(() => import('./components/ForecastModal/ForecastModal'));\nconst LazyOutlierModal = lazy(() => import('./components/OutlierModal/OutlierModal'));\nconst ForecastModal = withSuspense(LazyForecastModal);\nconst OutlierModal = withSuspense(LazyOutlierModal);\n\nexport const extensionLinks: ExtensionLinkConfig[] = [\n createForecastLinkConfig({\n targets: [ExtensionPointIds.DashboardPanelMenu, ExtensionPointIds.ExploreToolbarAction],\n configure: configureExploreOrPanelLink,\n onClick: (_, helpers) => {\n const { context, openModal } = helpers;\n assertExploreOrPanelContext(context);\n const [query] = context.targets;\n\n openModal({\n title: 'Forecast preview',\n body: (props) => ,\n height: '80%',\n width: '80%',\n });\n },\n }),\n createOutlierLinkConfig({\n targets: [ExtensionPointIds.DashboardPanelMenu, ExtensionPointIds.ExploreToolbarAction],\n configure: configureExploreOrPanelLink,\n onClick: (_, helpers) => {\n const { context, openModal } = helpers;\n assertExploreOrPanelContext(context);\n const [query] = context.targets;\n\n openModal({\n title: `Outlier detection preview`,\n body: (props) => (\n \n ),\n height: '80%',\n width: '80%',\n });\n },\n }),\n];\n\nfunction createForecastLinkConfig(params: ExtensionLinkParams): ExtensionLinkConfig {\n // Applying default values for a forecast link\n const title = params.title ?? 'Create forecast';\n const description = params.description ?? 'Use Machine Learning to forecast this query into the future';\n const category = params.category ?? 'Machine Learning';\n const icon = params.icon ?? 'gf-ml';\n\n return createLinkConfig({ ...params, title, description, category, icon });\n}\n\nfunction createOutlierLinkConfig(params: ExtensionLinkParams): ExtensionLinkConfig {\n // Applying default values for a outlier link\n const title = params.title ?? 'Detect outliers';\n const description = params.description ?? 'Use Machine Learning to detect outlying series in this query';\n const category = params.category ?? 'Machine Learning';\n const icon = params.icon ?? 'gf-ml';\n\n return createLinkConfig({ ...params, title, description, category, icon });\n}\n","import { lazy } from 'react';\n\nimport { PluginExtensionComponentConfig } from '@grafana/data';\nimport { config } from '@grafana/runtime';\n\nimport { type SiftModalProps } from 'projects/Sift/SiftModal';\nimport { tryGte } from 'utils';\nimport { withSuspense } from 'utils/utils.lazy';\n\nimport { type SiftRunModalProps } from '../projects/Sift/RunSiftModal';\nimport {\n AlertInstancePluginLinkConfig,\n AppO11yOperationPluginLinkConfig,\n AppO11yServicePluginLinkConfig,\n CommandPalettePluginLinkConfig,\n ExplorePluginLinkConfig,\n ExtensionParams,\n K8sClusterPluginLinkConfig,\n K8sNamespacePluginLinkConfig,\n K8sPodPluginLinkConfig,\n K8sWorkloadPluginLinkConfig,\n NewPluginExtensionPoints,\n OnCallPluginLinkConfig,\n PanelPluginLinkConfig,\n PluginExtensionPoints,\n SiftPanelPluginLinkConfig,\n} from './types';\n\nconst siftExtensionParams: ExtensionParams = {\n title: 'Run investigation',\n description: 'Investigate using Grafana Sift',\n};\n\nif (tryGte(config.buildInfo.version, '10.0.4')) {\n siftExtensionParams.category = 'Sift';\n siftExtensionParams.icon = 'search';\n}\n\nconst LazyCreateInvestigationModal = lazy(() => import('./components/CreateInvestigation'));\nconst CreateInvestigationModal = withSuspense(LazyCreateInvestigationModal);\n\nexport const panelExtensionLinks: PanelPluginLinkConfig[] = [\n {\n ...siftExtensionParams,\n targets: [PluginExtensionPoints.DashboardPanelMenu],\n onClick: (_, { context, openModal }): void => {\n const contextWrapper = { context, type: PluginExtensionPoints.DashboardPanelMenu } as const;\n openModal({\n title: 'New investigation',\n body: ({ onDismiss }) => CreateInvestigationModal({ contextWrapper, onDismiss }),\n });\n },\n },\n];\n\nexport const exploreExtensionLinks: ExplorePluginLinkConfig[] = [\n {\n ...siftExtensionParams,\n targets: [PluginExtensionPoints.ExploreToolbarAction],\n onClick: (_, { context, openModal }): void => {\n const contextWrapper = { context, type: PluginExtensionPoints.ExploreToolbarAction } as const;\n openModal({\n title: 'New investigation',\n body: ({ onDismiss }) => CreateInvestigationModal({ contextWrapper, onDismiss }),\n });\n },\n },\n];\n\nexport const alertingExtensionLinks: AlertInstancePluginLinkConfig[] = [\n {\n ...siftExtensionParams,\n targets: [NewPluginExtensionPoints.AlertInstanceAction],\n onClick: (_, { context, openModal }): void => {\n const contextWrapper = { context, type: NewPluginExtensionPoints.AlertInstanceAction } as const;\n openModal({\n title: 'New investigation',\n body: ({ onDismiss }) => CreateInvestigationModal({ contextWrapper, onDismiss }),\n });\n },\n },\n];\n\nexport const onCallAlertGroupExtensionLinks: OnCallPluginLinkConfig[] = [\n {\n ...siftExtensionParams,\n targets: [NewPluginExtensionPoints.OnCallAlertGroupAction],\n onClick: (_, { context, openModal }): void => {\n const contextWrapper = { context, type: NewPluginExtensionPoints.OnCallAlertGroupAction } as const;\n openModal({\n title: 'New investigation',\n body: ({ onDismiss }) => CreateInvestigationModal({ contextWrapper, onDismiss }),\n });\n },\n },\n];\n\nexport const IRMOnCallAlertGroupExtensionLinks: OnCallPluginLinkConfig[] = [\n {\n ...siftExtensionParams,\n targets: [NewPluginExtensionPoints.IRMOnCallAlertGroupAction],\n onClick: (_, { context, openModal }): void => {\n const contextWrapper = { context, type: NewPluginExtensionPoints.IRMOnCallAlertGroupAction } as const;\n openModal({\n title: 'New investigation',\n body: ({ onDismiss }) => CreateInvestigationModal({ contextWrapper, onDismiss }),\n });\n },\n },\n];\n\nexport const commandPaletteExtensionLinks: CommandPalettePluginLinkConfig[] = [\n {\n ...siftExtensionParams,\n targets: [NewPluginExtensionPoints.CommandPalette],\n onClick: (_, { openModal }): void => {\n const contextWrapper = { context: {}, type: NewPluginExtensionPoints.CommandPalette } as const;\n openModal({\n title: 'New investigation',\n body: ({ onDismiss }) => CreateInvestigationModal({ contextWrapper, onDismiss }),\n });\n },\n },\n];\n\nconst k8sClusterExtensionLink: K8sClusterPluginLinkConfig = {\n ...siftExtensionParams,\n title: 'Run Sift investigation',\n targets: [NewPluginExtensionPoints.K8sClusterAction],\n onClick: (_, { context, openModal }): void => {\n const contextWrapper = { context, type: NewPluginExtensionPoints.K8sClusterAction } as const;\n openModal({\n title: 'New investigation',\n body: ({ onDismiss }) => CreateInvestigationModal({ contextWrapper, onDismiss }),\n });\n },\n};\nconst k8sNamespaceExtensionLink: K8sNamespacePluginLinkConfig = {\n ...siftExtensionParams,\n title: 'Run Sift investigation',\n targets: [NewPluginExtensionPoints.K8sNamespaceAction],\n onClick: (_, { context, openModal }): void => {\n const contextWrapper = { context, type: NewPluginExtensionPoints.K8sNamespaceAction } as const;\n openModal({\n title: 'New investigation',\n body: ({ onDismiss }) => CreateInvestigationModal({ contextWrapper, onDismiss }),\n });\n },\n};\nconst k8sWorkloadExtensionLink: K8sWorkloadPluginLinkConfig = {\n ...siftExtensionParams,\n title: 'Run Sift investigation',\n targets: [NewPluginExtensionPoints.K8sWorkloadAction],\n onClick: (_, { context, openModal }): void => {\n const contextWrapper = { context, type: NewPluginExtensionPoints.K8sWorkloadAction } as const;\n openModal({\n title: 'New investigation',\n body: ({ onDismiss }) => CreateInvestigationModal({ contextWrapper, onDismiss }),\n });\n },\n};\nconst k8sPodExtensionLink: K8sPodPluginLinkConfig = {\n ...siftExtensionParams,\n title: 'Run Sift investigation',\n targets: [NewPluginExtensionPoints.K8sPodAction],\n onClick: (_, { context, openModal }): void => {\n const contextWrapper = { context, type: NewPluginExtensionPoints.K8sPodAction } as const;\n openModal({\n title: 'New investigation',\n body: ({ onDismiss }) => CreateInvestigationModal({ contextWrapper, onDismiss }),\n });\n },\n};\nexport const k8sExtensionLinks = [\n k8sClusterExtensionLink,\n k8sNamespaceExtensionLink,\n k8sWorkloadExtensionLink,\n k8sPodExtensionLink,\n];\n\nexport const siftPanelLink: SiftPanelPluginLinkConfig = {\n ...siftExtensionParams,\n title: 'Run Sift investigation',\n targets: [NewPluginExtensionPoints.SiftPanelRunInvestigation],\n onClick: (_, { context, openModal }): void => {\n const contextWrapper = { context, type: NewPluginExtensionPoints.SiftPanelRunInvestigation } as const;\n openModal({\n title: 'New investigation',\n body: ({ onDismiss }) => CreateInvestigationModal({ contextWrapper, onDismiss }),\n });\n },\n};\n\nconst appO11yServiceExtensionLink: AppO11yServicePluginLinkConfig = {\n ...siftExtensionParams,\n title: 'Run Sift investigation',\n targets: [NewPluginExtensionPoints.AppO11yServiceAction],\n onClick: (_, { context, openModal }): void => {\n const contextWrapper = { context, type: NewPluginExtensionPoints.AppO11yServiceAction } as const;\n openModal({\n title: 'New investigation',\n body: ({ onDismiss }) => CreateInvestigationModal({ contextWrapper, onDismiss }),\n });\n },\n};\nconst appO11yOperationExtensionLink: AppO11yOperationPluginLinkConfig = {\n ...siftExtensionParams,\n title: 'Run Sift investigation',\n targets: [NewPluginExtensionPoints.AppO11yOperationAction],\n onClick: (_, { context, openModal }): void => {\n const contextWrapper = { context, type: NewPluginExtensionPoints.AppO11yOperationAction } as const;\n openModal({\n title: 'New investigation',\n body: ({ onDismiss }) => CreateInvestigationModal({ contextWrapper, onDismiss }),\n });\n },\n};\nexport const appO11yExtensionLinks = [appO11yServiceExtensionLink, appO11yOperationExtensionLink];\n\nconst LazySiftAnalysisModal = lazy(() => import('./components/SiftAnalysisModal'));\nconst SiftAnalysisModal = withSuspense(LazySiftAnalysisModal);\n\nexport const siftAnalysisModals: Array<\n {\n targets: string | string[];\n } & Omit, 'type' | 'extensionPointId'>\n> = [\n {\n title: 'Sift analysis modal',\n description: 'View details of a Sift analysis',\n targets: [NewPluginExtensionPoints.IncidentAnalysisModal],\n component: SiftAnalysisModal,\n },\n {\n title: 'Sift analysis modal',\n description: 'View details of a Sift analysis',\n targets: [NewPluginExtensionPoints.IRMIncidentAnalysisModal],\n component: SiftAnalysisModal,\n },\n {\n title: 'Sift analysis modal',\n description: 'View details of a Sift analysis',\n targets: [NewPluginExtensionPoints.AssertsAnalysisModal],\n component: SiftAnalysisModal,\n },\n {\n title: 'Sift analysis modal',\n description: 'View details of a Sift analysis',\n targets: ['plugins/grafana-sift-panel/view-analysis'],\n component: SiftAnalysisModal,\n },\n];\n\nconst LazyRunSiftModalWrapper = lazy(() => import('./components/RunSiftModalWrapper'));\nconst RunSiftModalWrapper = withSuspense(LazyRunSiftModalWrapper);\n\nexport const siftRunModal: {\n targets: string | string[];\n} & Omit, 'type' | 'extensionPointId'> = {\n title: 'Start an investigation',\n description: 'Start a Sift investigation',\n targets: [NewPluginExtensionPoints.IncidentRunSiftModal],\n component: RunSiftModalWrapper,\n};\n\nexport const IRMSiftRunModal: {\n targets: string | string[];\n} & Omit, 'type' | 'extensionPointId'> = {\n title: 'Start an investigation',\n description: 'Start a Sift investigation',\n targets: [NewPluginExtensionPoints.IRMIncidentRunSiftModal],\n component: RunSiftModalWrapper,\n};\n","import { AppPlugin } from '@grafana/data';\n\nimport { isFunction } from 'lodash';\n\nimport { withSuspense } from 'utils/utils.lazy';\n\nimport * as alerting from './alerting';\nimport * as ml from './ml';\nimport * as sift from './sift';\nimport { ExtensionComponentConfig, ExtensionLinkConfig } from './types';\n\nconst linkConfigs: ExtensionLinkConfig[] = [\n // Forecast and outlier detection links\n ...ml.extensionLinks,\n\n // Dashboard panel menu\n ...(sift.panelExtensionLinks as ExtensionLinkConfig[]),\n\n // Explore add button\n ...(sift.exploreExtensionLinks as ExtensionLinkConfig[]),\n\n // Alerting\n ...(sift.alertingExtensionLinks as ExtensionLinkConfig[]),\n\n // Command palette action\n ...(sift.commandPaletteExtensionLinks as ExtensionLinkConfig[]),\n\n // On call alert group - to be removed after IRM release\n ...(sift.onCallAlertGroupExtensionLinks as ExtensionLinkConfig[]),\n\n // IRM alert group\n ...(sift.IRMOnCallAlertGroupExtensionLinks as ExtensionLinkConfig[]),\n\n // Kubernetes app\n ...(sift.k8sExtensionLinks as ExtensionLinkConfig[]),\n\n // Sift panel\n sift.siftPanelLink as ExtensionLinkConfig,\n\n // Application Observability app\n ...(sift.appO11yExtensionLinks as ExtensionLinkConfig[]),\n];\n\n// Returns true if the component is a lazy component (i.e. it has\n// been loaded with `React.lazy()`).\nfunction isLazy(component: any): boolean {\n return component?.type?.name === 'Lazy';\n}\n\n// Wraps a plugin extension component in a Suspense component if it's a lazy component.\n// Otherwise, returns the original extension.\n// This is needed because Grafana checks at load-time whether a component is a\n// proper React component, which lazy components are not (they're promises which\n// resolve to components).\nfunction makeComponentExtension(extension: ExtensionComponentConfig): ExtensionComponentConfig {\n if (!isLazy(extension.component)) {\n return extension;\n }\n return {\n ...extension,\n component: withSuspense(extension.component),\n };\n}\n\nconst componentExtensions: ExtensionComponentConfig[] = [\n ...(sift.siftAnalysisModals as ExtensionComponentConfig[]),\n sift.siftRunModal as ExtensionComponentConfig,\n sift.IRMSiftRunModal as ExtensionComponentConfig,\n alerting.alertingHomePageCallout,\n].map(makeComponentExtension);\n\nexport function configureAppExtensions(app: AppPlugin): AppPlugin {\n if (isFunction(app.addComponent)) {\n app = componentExtensions.reduce((app, component) => {\n return app.addComponent(component);\n }, app);\n }\n\n if (isFunction(app.addLink)) {\n app = linkConfigs.reduce((app, link) => {\n return app.addLink(link);\n }, app);\n }\n\n return app;\n}\n","import { lazy } from 'react';\n\nimport { AppPlugin } from '@grafana/data';\n\nimport { MlAppSettings } from 'types';\nimport { withSuspense } from 'utils/utils.lazy';\n\nimport { configureAppExtensions } from './extensions';\n\nconst LazyApp = lazy(() => import('./App'));\nconst App = withSuspense(LazyApp);\n\nexport const plugin = new AppPlugin().setRootPage(App);\nconfigureAppExtensions(plugin);\n"],"names":["leafPrototypes","getProto","inProgress","dataWebpackPrefix","__createBinding","this","Object","create","o","m","k","k2","undefined","desc","getOwnPropertyDescriptor","__esModule","writable","configurable","enumerable","get","defineProperty","__setModuleDefault","v","value","__importStar","mod","result","prototype","hasOwnProperty","call","exports","ap","F","G","fa","fab","map","gab","ga","apFirst","A","second","first","a","apSecond","b","apS","name","fb","_a","assign","getApplySemigroup","S","concat","x","y","sequenceT","args","_i","arguments","length","len","f","_","has","tupleConstructors","curried","function_1","tuple","getTupleConstructor","fas","i","sequenceS","r","keys","c","d","e","getRecordConstructor","fr","n","acc","combined","Array","apply","createOperatorSubscriber","destination","onNext","onComplete","onError","onFinalize","OperatorSubscriber","_super","shouldUnsubscribe","_this","_next","err","error","_error","unsubscribe","_complete","__extends","closed_1","closed","internalRe","constants","SemVer","identifiers","parse","valid","clean","inc","diff","major","minor","patch","prerelease","compare","rcompare","compareLoose","compareBuild","sort","rsort","gt","lt","eq","neq","gte","lte","cmp","coerce","Comparator","Range","satisfies","toComparators","maxSatisfying","minSatisfying","minVersion","validRange","outside","gtr","ltr","intersects","simplifyRange","subset","module","re","src","tokens","t","SEMVER_SPEC_VERSION","RELEASE_TYPES","compareIdentifiers","rcompareIdentifiers","noop","COMPLETE_NOTIFICATION","createNotification","kind","Subscriber","isStopped","add","EMPTY_OBSERVER","next","complete","SafeSubscriber","handleStoppedNotification","nextNotification","Subscription","_bind","Function","bind","fn","thisArg","ConsumerObserver","partialObserver","handleUnhandledError","observerOrNext","context_1","isFunction","config","useDeprecatedNextContext","useDeprecatedSynchronousErrorHandling","reportUnhandledError","notification","subscriber","onStoppedNotification","timeoutProvider","setTimeout","loose","versionA","versionB","__spreadArray","to","from","pack","ar","l","slice","flatMapReader","flatMapTask","flatMapIO","flatMapEither","flatMapOption","flatMapNullable","liftOption","liftNullable","fromReadonlyNonEmptyArray","emptyRecord","emptyReadonlyArray","tail","head","isNonEmpty","singleton","right","left","isRight","isLeft","some","none","isSome","isNone","_tag","ma","as","onNullable","fromEither","onNone","M","dual","self","flatMap","fromIO","fromTask","fromReader","getJobQueryString","job","getQueryString","datasourceType","queryParams","isString","target","expr","metric","slo","query","rawSql","getJobMetricQueries","extraLabels","selector","getSeriesSelector","actual","predicted","labels","reduce","curr","getSelectedJobQueries","serieses","queries","series","jobMetricQueries","push","refId","queryType","getMinimumUniqueUnderlyingSeriesLabels","data","labelValues","labelCombinations","excludedLabels","valueField","fields","find","type","label","includes","labelVal","valueFieldLabels","fromEntries","entries","filter","current","item","JSON","stringify","Boolean","getJobSeriesInfo","seriesTypes","seriesLabels","forEach","seriesName","displayNameFromDS","seriesType","minimumUniqueLabels","jobSeriesInfos","labelCombination","validSeriesNames","every","key","lower","upper","names","createFieldOverrides","info","newNames","suffix","createNewNames","matcher","id","options","properties","fixedColor","mode","legend","hasDuplicateSeriesLabels","df","__metric__","index","arr","indexOf","absoluteUrlForJob","jobId","currentLocation","loc","window","location","href","substring","PLUGIN_ROOT","slugifyName","normalize","replace","toLocaleLowerCase","calculateMinInterval","range","rangeUnit","unit","TimeUnit","Minutes","Hours","rangeInSeconds","timeUnitToSeconds","intervalValue","intervalUnit","option","optionInSeconds","MAX_SAMPLES_PER_TRAINING","historyLimitedInSeconds","days","rangeSeconds","ONE_YEAR_IN_SECONDS","Math","min","ONE_DAY_IN_SECONDS","fromOption","fromPredicate","predicate","onFalse","fromOptionK","chainOptionK","fromOptionKF","chain","fromEitherK","chainEitherK","fromEitherKF","chainFirstEitherK","tapEitherM","tapEither","filterOrElse","Chain_1","fromOptionF","flow","tapM","tap","context","errorContext","cb","isRoot","errorThrown","captureError","sortBy","uniq","rotate","intersperse","prependAll","unzip","zipWith","lefts","rights","reverse","modifyAt","deleteAt","updateAt","insertAt","findLastIndex","findLastMap","findFirstMap","findIndex","dropRight","dropLeft","takeRight","takeLeft","init","last","isOutOfBound","size","scanRight","scanLeft","chainWithIndex","foldRight","matchRight","matchRightW","foldLeft","matchLeft","matchLeftW","match","matchW","replicate","makeBy","appendW","append","prependW","prepend","isEmpty","getIntersectionSemigroup","getUnionMonoid","getUnionSemigroup","getOrd","getEq","getMonoid","getSemigroup","getShow","URI","unfold","wilt","wither","traverseWithIndex","sequence","traverse","reduceRightWithIndex","reduceRight","reduceWithIndex","foldMap","foldMapWithIndex","duplicate","extend","filterWithIndex","partitionMapWithIndex","partitionMap","partitionWithIndex","partition","compact","filterMap","filterMapWithIndex","separate","mapWithIndex","flatten","alt","altW","zero","of","_chainRecBreadthFirst","_chainRecDepthFirst","concatW","chunksOf","splitAt","chop","cons","bindTo","Do","intercalate","exists","empty","fromArray","toArray","unsafeDeleteAt","unsafeUpdateAt","unsafeInsertAt","FromEither","filterE","Witherable","ChainRecBreadthFirst","chainRecBreadthFirst","ChainRecDepthFirst","chainRecDepthFirst","TraversableWithIndex","Traversable","FoldableWithIndex","Foldable","FilterableWithIndex","Filterable","Compactable","Extend","Alternative","guard","Zero","Alt","Unfoldable","chainFirst","Monad","Chain","Applicative","Apply","FunctorWithIndex","Pointed","flap","Functor","getDifferenceMagma","readonlyArray","prependToAll","snoc","lookup","takeLeftWhile","out","as_1","spanLeft","spanLeftIndex","rest","dropLeftWhile","findFirst","findLast","zip","bs","elem","comprehension","input","g","go","scope","RNEA","pipe","union","intersection","difference","Apply_1","Eq_1","FromEither_1","Functor_1","N","Ord_1","Separated_1","Witherable_1","Zero_1","onEmpty","onNonEmpty","j","O","fc","middle","E","elemE_1","element","equals","ords","unionE","unionE_1","elemE","xs","ys","intersectionE_1","differenceE_1","_map","_mapWithIndex","_ap","_filter","_filterMap","_partition","_partitionMap","_partitionWithIndex","predicateWithIndex","_partitionMapWithIndex","_alt","that","_reduce","_foldMap","foldMapM","_reduceRight","_reduceWithIndex","_foldMapWithIndex","foldMapWithIndexM","_reduceRightWithIndex","_filterMapWithIndex","_filterWithIndex","_extend","_traverse","traverseF","ta","_traverseWithIndex","traverseWithIndexF","identity","fa_1","separated","optionB","wa","fbs","_witherF","_wither","_wiltF","_wilt","bb","mt","b_1","show","join","fromEquals","fromCompare","aLen","bLen","ordering","Ord","intersectionE","differenceE","todo","shift","unshift","chainRec","initial","initial_1","witherDefault","wiltDefault","splice","intercalateM","let_","let","semigroupProduct","semigroupSum","semigroupString","getFunctionSemigroup","semigroupAny","semigroupAll","getIntercalateSemigroup","getMeetSemigroup","getJoinSemigroup","getDualSemigroup","getStructSemigroup","getTupleSemigroup","getFirstSemigroup","getLastSemigroup","getObjectSemigroup","semigroupVoid","concatAll","struct","constant","max","fold","concatAllS","startWith","Or","semigroups","s","looseOption","freeze","emptyOpts","getFunctorComposition","fga","asUnit","asM","project","source","subscribe","__WEBPACK_EXTERNAL_MODULE__18531__","r1","r2","onFormSubmit","promise","event","catch","onHandler","errorsToString","errors","values","message","handler","timeout","delegate","__read","clearTimeout","handle","__WEBPACK_EXTERNAL_MODULE__20819__","operate","lift","hasLift","liftedSource","TypeError","ordDate","ordNumber","ordString","ordBoolean","ord","getDualOrd","getTupleOrd","between","clamp","geq","leq","trivial","Contravariant","contramap","equalsDefault","ox","constTrue","minO","maxO","low","hi","ltO","gtO","strictOrd","eqStrict","date","valueOf","debug","MAX_LENGTH","MAX_SAFE_INTEGER","safeRe","safeSrc","parseOptions","constructor","version","includePrerelease","trim","LOOSE","FULL","raw","split","test","num","build","format","toString","other","compareMain","comparePre","release","identifier","identifierBase","startsWith","Error","RegExp","PRERELEASELOOSE","PRERELEASE","base","Number","isNaN","time","numTime","parseFloat","C","Days","Years","secondsToTimeUnit","valueInSeconds","getTimeUnit","getValueInTimeUnit","endo","filterSecond","filterFirst","set","comp","er","onUnhandledError","Promise","__WEBPACK_EXTERNAL_MODULE__31269__","getApplicativeMonoid","getApplicativeComposition","fgab","list","SPACE_CHARACTERS","formatted","parseRange","isNullSet","isAny","comps","memoKey","FLAG_INCLUDE_PRERELEASE","FLAG_LOOSE","cached","cache","hr","HYPHENRANGELOOSE","HYPHENRANGE","hyphenReplace","COMPARATORTRIM","comparatorTrimReplace","TILDETRIM","tildeTrimReplace","CARETTRIM","caretTrimReplace","rangeList","parseComparator","replaceGTE0","COMPARATORLOOSE","rangeMap","Map","comparators","delete","thisComparators","isSatisfiable","rangeComparators","thisComparator","rangeComparator","testSet","remainingComparators","testComparator","pop","otherComparator","replaceCarets","replaceTildes","replaceXRanges","replaceStars","isX","toLowerCase","replaceTilde","TILDELOOSE","TILDE","p","pr","ret","replaceCaret","CARETLOOSE","CARET","z","replaceXRange","XRANGELOOSE","XRANGE","gtlt","xM","xm","xp","anyX","STAR","GTE0PRE","GTE0","incPr","$0","fM","fm","fp","fpr","tM","tm","tp","tpr","semver","ANY","allowed","ExtensionPointIds","PluginExtensionPoints","NewPluginExtensionPoints","minimumVersionWithPreRelease","minimumVersion","simpleSubset","sub","dom","eqSet","Set","gtltComp","higher","hasDomLT","hasDomGT","operator","higherGT","lowerLT","String","needDomLTPre","needDomGTPre","sawNonNull","OUTER","simpleSub","simpleDom","isSub","__WEBPACK_EXTERNAL_MODULE__41308__","process","env","NODE_DEBUG","console","getEndomorphismMonoid","SK","hole","constVoid","constUndefined","constNull","constFalse","unsafeCoerce","getRing","getSemiring","getBooleanAlgebra","flip","increment","decrement","absurd","tupled","untupled","ab","bc","cd","de","ef","fg","gh","not","B","meet","one","implies","getSemigroupM","mul","R","ij","arity","body","isDataFirst","ctorFunc","UnsubscriptionError","createImpl","instance","stack","arrRemove","initialTeardown","_parentage","_finalizers","e_1","e_2","_b","isArray","_parentage_1","__values","_parentage_1_1","done","remove","e_1_1","return","initialFinalizer","_finalizers_1","_finalizers_1_1","finalizer","execFinalizer","e_2_1","teardown","_hasParent","_addParent","parent","_removeParent","EMPTY","isSubscription","__WEBPACK_EXTERNAL_MODULE__46089__","__WEBPACK_EXTERNAL_MODULE__48398__","getTimeZoneWithDefault","timeZone","getTimeZone","formatDateTime","dateTimeFormat","Symbol","COMPARATOR","util","objectUtil","assertEqual","val","assertIs","_arg","assertNever","_x","arrayToEnum","items","obj","getValidEnumValues","validKeys","objectKeys","filtered","objectValues","object","checker","isInteger","isFinite","floor","joinValues","array","separator","jsonStringifyReplacer","mergeShapes","ZodParsedType","getParsedType","string","nan","number","boolean","function","bigint","symbol","null","then","Date","unknown","ZodIssueCode","ZodError","issues","super","addIssue","addIssues","subs","actualProto","setPrototypeOf","__proto__","_mapper","mapper","issue","fieldErrors","_errors","processError","code","unionErrors","returnTypeError","argumentsError","path","el","assert","formErrors","errorMap","_ctx","invalid_type","received","expected","invalid_literal","unrecognized_keys","invalid_union","invalid_union_discriminator","invalid_enum_value","invalid_arguments","invalid_return_type","invalid_date","invalid_string","validation","position","endsWith","too_small","exact","inclusive","minimum","too_big","maximum","custom","invalid_intersection_types","not_multiple_of","multipleOf","not_finite","defaultError","overrideErrorMap","getErrorMap","makeIssue","params","errorMaps","issueData","fullPath","fullIssue","errorMessage","maps","addIssueToContext","ctx","overrideMap","common","contextualErrorMap","schemaErrorMap","ParseStatus","dirty","abort","mergeArray","status","results","arrayValue","INVALID","mergeObjectAsync","pairs","syncPairs","pair","mergeObjectSync","finalObject","alwaysSet","DIRTY","OK","isAborted","isDirty","isValid","isAsync","__classPrivateFieldGet","receiver","state","__classPrivateFieldSet","errorUtil","_ZodEnum_cache","_ZodNativeEnum_cache","SuppressedError","errToObj","ParseInputLazyPath","_cachedPath","_path","_key","handleResult","success","processCreateParams","invalid_type_error","required_error","description","iss","ZodType","_def","_getType","_getOrReturnCtx","parsedType","_processInputParams","_parseSync","_parse","_parseAsync","resolve","safeParse","async","parseAsync","safeParseAsync","maybeAsyncResult","refine","check","getIssueProperties","_refinement","setError","refinement","refinementData","ZodEffects","schema","typeName","ZodFirstPartyTypeKind","effect","superRefine","def","spa","optional","nullable","nullish","or","and","transform","brand","default","describe","readonly","isNullable","isOptional","vendor","validate","ZodOptional","ZodNullable","ZodArray","ZodPromise","ZodUnion","incoming","ZodIntersection","defaultValueFunc","ZodDefault","innerType","defaultValue","ZodBranded","catchValueFunc","ZodCatch","catchValue","This","ZodPipeline","ZodReadonly","cuidRegex","cuid2Regex","ulidRegex","uuidRegex","nanoidRegex","jwtRegex","durationRegex","emailRegex","emojiRegex","ipv4Regex","ipv4CidrRegex","ipv6Regex","ipv6CidrRegex","base64Regex","base64urlRegex","dateRegexSource","dateRegex","timeRegexSource","regex","precision","datetimeRegex","opts","local","offset","isValidJWT","jwt","alg","header","base64","padEnd","decoded","atob","typ","isValidCidr","ip","ZodString","checks","tooBig","tooSmall","URL","lastIndex","toUpperCase","_regex","_addCheck","email","url","emoji","uuid","nanoid","cuid","cuid2","ulid","base64url","cidr","datetime","duration","minLength","maxLength","nonempty","isDatetime","ch","isDate","isTime","isDuration","isEmail","isURL","isEmoji","isUUID","isNANOID","isCUID","isCUID2","isULID","isIP","isCIDR","isBase64","isBase64url","floatSafeRemainder","step","valDecCount","stepDecCount","decCount","parseInt","toFixed","pow","ZodNumber","setLimit","int","positive","negative","nonpositive","nonnegative","finite","safe","MIN_SAFE_INTEGER","minValue","maxValue","isInt","ZodBigInt","BigInt","_getInvalidInput","ZodBoolean","ZodDate","getTime","minDate","maxDate","ZodSymbol","ZodUndefined","ZodNull","ZodAny","_any","ZodUnknown","_unknown","ZodNever","never","ZodVoid","void","exactLength","all","deepPartialify","ZodObject","newShape","shape","fieldSchema","unwrap","ZodTuple","_cached","nonstrict","passthrough","augment","_getCached","shapeKeys","extraKeys","catchall","unknownKeys","keyValidator","strict","_c","_d","strip","augmentation","merge","merging","setKey","pick","mask","omit","deepPartial","partial","required","newField","keyof","createZodEnum","strictCreate","lazycreate","childCtx","types","getDiscriminator","ZodLazy","ZodLiteral","ZodEnum","ZodNativeEnum","enum","ZodDiscriminatedUnion","discriminator","discriminatorValue","optionsMap","discriminatorValues","mergeValues","aType","bType","bKeys","sharedKeys","newObj","sharedValue","newArray","handleParsed","parsedLeft","parsedRight","merged","itemIndex","schemas","ZodRecord","keySchema","keyType","valueSchema","valueType","third","ZodMap","finalMap","ZodSet","minSize","maxSize","finalizeSet","elements","parsedSet","ZodFunction","implement","makeArgsIssue","makeReturnsIssue","returns","me","parsedArgs","Reflect","parsedReturns","parameters","returnType","func","strictImplement","getter","expectedValues","enumValues","Values","Enum","extract","newDef","exclude","opt","WeakMap","nativeEnumValues","promisified","sourceType","checkCtx","arg","fatal","processed","executeRefinement","inner","createWithPreprocess","preprocess","removeDefault","newCtx","removeCatch","ZodNaN","BRAND","inResult","in","handleAsync","cleanParams","_params","_fatal","late","stringType","numberType","nanType","bigIntType","booleanType","dateType","symbolType","undefinedType","nullType","anyType","unknownType","neverType","voidType","arrayType","objectType","strictObjectType","unionType","discriminatedUnionType","intersectionType","tupleType","recordType","mapType","setType","functionType","lazyType","literalType","enumType","nativeEnumType","promiseType","effectsType","optionalType","nullableType","preprocessType","pipelineType","NEVER","defaultErrorMap","setErrorMap","EMPTY_PATH","ZodTransformer","Schema","ZodSchema","any","discriminatedUnion","cls","lazy","literal","nativeEnum","oboolean","onumber","ostring","pipeline","record","strictObject","transformer","quotelessJson","PrometheusConfigSchema","prometheusDatasourceUid","topologyConfigSchema","edges","labelPermuterConfigSchema","keepLabels","ignoreLabels","labelAliases","maxRemovedLabels","kubernetesAggregatorConfigSchema","removeLabels","typeAugmentorConfigSchema","correlatedSeriesConfigSchema","topology","labelPermuter","kubernetesAggregator","typeAugmentor","limit","lookBehindFactor","timeoutSeconds","LokiConfigSchema","lokiDatasourceUid","ErrorPatternLogsConfigSchema","maxExamples","minCount","initialQuery","TempoConfigSchema","tempoDatasourceUid","HTTPErrorSeriesConfigSchema","cutOffTimeMinutes","percentageThreshold","PyroscopeConfigSchema","pyroscopeDatasourceUid","UnhealthyNodesConfigSchema","maxLogLines","loadThreshold","NoisyNeighborsConfigSchema","usageQuantile","SlowRequestsConfigSchema","increaseFactor","durationQuantile","baselinePeriod","cloudProviders","op","versions","maxSV","rangeObj","minSV","COMPARE_TYPE","getNextValue","compareType","original","getSparkRange","alignedData","settings","field","FieldType","minMax","limits","rtl","coerceRtlRegex","COERCERTLFULL","COERCERTL","exec","COERCEFULL","COERCE","hilo","gtfn","ltefn","ltfn","ecomp","high","comparator","firstKey","eqDate","eqNumber","eqString","eqBoolean","strictEqual","getStructEq","getTupleEq","eqs","PluginMetaContext","createContext","getIrmIfPresentOrOnCallPluginId","Field","MonoidProduct","MonoidSum","SemigroupProduct","SemigroupSum","MagmaSub","Show","Bounded","Eq","isNumber","u","top","Infinity","bottom","degree","div","getMonoidAll","getSemigroupAll","getMonoidAny","getSemigroupAny","parsed","getSeriesNames","detectDataframeType","DataFrameType","TimeSeriesWide","TimeSeriesMulti","TimeSeriesLong","theField","getSeriesIndexFromName","seriesIndex","getSingleSeriesFrameByName","ds","frame","cleanAndValidateDataForProphet","nonNanCount","firstNumber","onlyOneNumberFound","NaN","Float64Array","createJobRequestFromFormModel","form","datasource","customLabels","prop","grafanaUrl","appUrl","datasourceId","datasourceUid","uid","algorithm","hyperParams","hyperparameters","interval","trainingWindow","trainingWindowValue","trainingWindowUnit","trainingFrequency","trainingFrequencyValue","trainingFrequencyUnit","holidays","editJobRequestFromFormModel","useSelectedModel","models","selectedModelId","setSelectedModelId","useState","selectedModel","useMemo","bestDefaultModel","DEFAULT_MODEL","deprecated","searchId","findModel","useModelSelectOptions","model","createInvestigationRequestFromFormModel","labelInputs","metricInputs","serviceInputs","services","service","datasourceInputs","datasources","sloInputs","slos","inputs","requestData","start","end","queryUrl","alertQuery","encodeURIComponent","investigationSource","OutlierColorsLight","isOutlier","notOutlier","selectedNotOutlier","selectedIsOutlier","notOutlierRegion","OutlierColorsDark","getOutlierColors","isDark","getLineColor","colors","isSelected","filterByLabelsTransformation","LabelMatcher","matches","filterFrameByLabels","MatchType","Equal","NotEqual","Regexp","NotRegexp","spacing2Xl","spacing3Xl","useUtilityStyles","useStyles2","theme","colorWhite","css","colorBlack","colorRed","colorRed100","colorRed200","colorRed300","colorRed400","colorRed500","colorRed600","colorRed700","colorGreen","colorGreen100","colorGreen200","colorGreen300","colorGreen400","colorGreen500","colorGreen600","colorGreen700","colorYellow","colorYellow100","colorYellow200","colorYellow400","colorYellow600","colorYellow700","colorBlue","colorBlue100","colorBlue200","colorBlue400","colorBlue600","colorBlue700","colorGray","colorGray100","colorGray200","colorGray400","colorGray600","colorGray700","colorGray800","colorVeryWeak","colorWeak","text","secondary","colorSemiWeak","colorStrong","maxContrast","colorFormDescription","colorFormInvalid","border","bgRed","bgRed100","bgRed200","bgRed400","bgRed600","bgRed700","bgGreen","bgGreen100","bgGreen200","bgGreen400","bgGreen600","bgGreen700","bgYellow","bgYellow100","bgYellow200","bgYellow400","bgYellow600","bgYellow700","bgBlue","bgBlue100","bgBlue200","bgBlue400","bgBlue600","bgBlue700","bgGray","bgGray100","bgGray200","bgGray400","bgGray600","bgGray700","bgGray800","bgLevel1","background","primary","bgLevel2","bgLevel3","action","hover","gradientRed","gradientGreen","gradientYellow","gradientBlue","textBold","typography","fontWeightBold","textSemiBold","fontWeightMedium","textNormal","textItalic","textUnderline","textMonospace","textXs","textSm","textMd","fontSize","textLg","textXl","textCenter","textLeft","textRight","lineHeightXs","bodySmall","lineHeight","lineHeightSm","lineHeightMd","lineHeightLg","h2","paddingNone","paddingXs","spacing","paddingSm","paddingMd","paddingLg","paddingXl","paddingVerticalXs","paddingVerticalSm","paddingVerticalMd","paddingVerticalLg","paddingVerticalXl","paddingHorizontalXs","paddingHorizontalSm","paddingHorizontalMd","paddingHorizontalLg","paddingHorizontalXl","marginNone","marginAuto","marginXAuto","marginYAuto","margin","marginXs","marginSm","marginMd","marginLg","marginXl","margin2Xl","margin3Xl","marginTop","marginTopXs","marginTopSm","marginTopMd","marginTopLg","marginTopXl","marginTop2Xl","marginTop3Xl","marginTopNone","marginBottom","marginBottomXs","marginBottomSm","marginBottomMd","marginBottomLg","marginBottomXl","marginBottom2Xl","marginBottom3Xl","marginBottomNone","marginLeft","marginLeftXs","marginLeftSm","marginLeftMd","marginLeftLg","marginLeftXl","marginLeft2Xl","marginLeft3Xl","marginLeftNone","marginRight","marginRightXs","marginRightSm","marginRightMd","marginRightLg","marginRightXl","marginRight2Xl","marginRight3Xl","marginRightNone","flex","flex1","flexRow","flexColumn","alignCenter","alignStart","alignEnd","justifyCenter","justifyStart","justifyEnd","justifySpaceBetween","spaceBetween","widthFull","width100","width200","width300","width400","width500","heightFull","overflowScroll","overflowHidden","wrap","absolute","relative","fixed","static","top0","bottom0","left0","right0","borderSolid","borderDashed","borderNone","borderTop","borderBottom","borderLeft","borderRight","borderRed","borderGreen","borderBlue","borderYellow","borderGray","borderGray200","borderGray600","borderStrong","borderWeak","borderSemiWeak","borderVeryWeak","borderCurrentColor","rounded","roundedLg","roundedFull","displayNone","block","inline","inlineBlock","pointer","outlineNone","noFocusOutline","noTransition","resizeNone","themeErrorBg","main","themeErrorColor","contrastText","themeErrorBorder","minver","setMin","compver","MAX_SAFE_COMPONENT_LENGTH","MAX_SAFE_BUILD_LENGTH","LETTERDASHNUMBER","safeRegexReplacements","createToken","isGlobal","token","makeSafeRegex","NUMERICIDENTIFIER","NUMERICIDENTIFIERLOOSE","NONNUMERICIDENTIFIER","PRERELEASEIDENTIFIER","PRERELEASEIDENTIFIERLOOSE","BUILDIDENTIFIER","MAINVERSION","BUILD","FULLPLAIN","MAINVERSIONLOOSE","LOOSEPLAIN","XRANGEIDENTIFIER","XRANGEIDENTIFIERLOOSE","GTLT","XRANGEPLAIN","XRANGEPLAINLOOSE","COERCEPLAIN","LONETILDE","LONECARET","toSerializableTimeRange","isSerializedTimeRange","toTimeRange","dateTimeFormatISO","getZoomedTimeRange","factor","timespan","lengthOfTimeRange","center","dateTime","isTimeRange","rangeUtil","convertRawToRange","defaultCreateJobTimeRange","locationService","currentSearch","getSearchObject","defaultEditJobTimeRange","defaultViewJobTimeRange","timeRangeToUtc","timeRange","utcFrom","utc","toISOString","utcTo","getMutableTimeRange","cloneIfDateTime","isDateTime","isDateTimeWithInput","version1","version2","v1","v2","comparison","v1Higher","highVersion","lowVersion","highHasPre","prefix","throwError","orElse","getRight","getLeft","getLastMonoid","getFirstMonoid","getApplyMonoid","mapNullable","sequenceArray","traverseArray","traverseArrayWithIndex","traverseReadonlyArrayWithIndex","traverseReadonlyNonEmptyArrayWithIndex","ApT","toUndefined","toNullable","chainNullableK","fromNullableK","tryCatchK","tryCatch","fromNullable","getOrElse","getOrElseW","foldW","MonadThrow","getRefinement","getOption","Applicative_1","chainable","Predicate_1","Semigroup_1","defaultSeparated","onSome","o_1","Bifunctor","bimap","mapLeft","IS_DEV","ONE_MINUTE_IN_SECONDS","ONE_HOUR_IN_SECONDS","MAX_FORECAST_TRAINING_RANGE_IN_YEARS","DATASOURCE_NAME","SUPPORTED_DATASOURCE_TYPES","DEFAULT_OUTLIER_ALGORITHM","DEFAULT_SENSITIVITY","DEFAULT_NEW_JOB_FORM","grafana_prophet_1_0_1","changepoint_prior_scale","changepoint_range","seasonality_prior_scale","holidays_prior_scale","seasonality_mode","growth","interval_width","weekly_seasonality","conditional_weekly_seasonality","daily_seasonality","conditional_daily_seasonality","logistic_growth_cap","logistic_growth_floor","transformation","FORECAST_RENDER_CAP_LIMIT","OUTLIER_RENDER_CAP_LIMIT","FORECAST_STEPS","title","INITIAL_MODEL_PARAMETERS","changepoints","nChangepoints","yearlySeasonality","enabled","weeklySeasonality","dailySeasonality","seasonalityMode","holidaysMode","seasonalityPriorScale","holidaysPriorScale","changepointPriorScale","intervalWidth","uncertaintySamples","prev","ranges","simplified","P","__WEBPACK_EXTERNAL_MODULE__81159__","__WEBPACK_EXTERNAL_MODULE__82007__","neverCase","tryGte","InvestigationSourceType","extendStatics","__","__assign","__rest","getOwnPropertySymbols","propertyIsEnumerable","__decorate","decorators","decorate","__param","paramIndex","decorator","__esDecorate","ctor","descriptorIn","contextIn","initializers","extraInitializers","accept","descriptor","access","addInitializer","__runInitializers","useValue","__propKey","__setFunctionName","__metadata","metadataKey","metadataValue","metadata","__awaiter","_arguments","generator","reject","fulfilled","rejected","__generator","sent","trys","ops","Iterator","verb","iterator","__exportStar","__spread","__spreadArrays","il","jl","__await","__asyncGenerator","asyncIterator","q","AsyncIterator","resume","fulfill","settle","__asyncDelegator","__asyncValues","__makeTemplateObject","cooked","ownKeys","getOwnPropertyNames","__importDefault","__classPrivateFieldIn","__addDisposableResource","dispose","asyncDispose","_SuppressedError","suppressed","__disposeResources","fail","hasError","__rewriteRelativeImportExtension","preserveJsx","tsx","ext","cm","__WEBPACK_EXTERNAL_MODULE__85959__","__WEBPACK_EXTERNAL_MODULE__87781__","__WEBPACK_EXTERNAL_MODULE__93241__","numeric","anum","bnum","throwErrors","sortedOutliersToEndAndReindex","panelData","sorted","clone","sortedOutliersToEnd","filterDataKeepingOutliersOnly","filterNonOutliers","filterCondition","sampleOutlierSeries","dataToSample","sampleOutliers","remainingLimit","sampleNonOutliers","getlabelColumnValues","labelFields","labelColumns","lbl","labelValue","linkToOutlier","outlier","edit","supportedDatasources","dataSource","editDefaults","tuningArgument","sensitivity","epsilon","isPanelContextWrapper","wrapper","DashboardPanelMenu","isExploreContextWrapper","ExploreToolbarAction","isAlertingContextWrapper","AlertInstanceAction","isOnCallAlertGroupContextWrapper","OnCallAlertGroupAction","IRMOnCallAlertGroupAction","isCommandPaletteContextWrapper","CommandPalette","isK8sClusterContextWrapper","K8sClusterAction","isK8sNamespaceContextWrapper","K8sNamespaceAction","isK8sWorkloadContextWrapper","K8sWorkloadAction","isK8sPodContextWrapper","K8sPodAction","isSiftPanelContextWrapper","SiftPanelRunInvestigation","isAppO11yServiceContextWrapper","AppO11yServiceAction","isAppO11yOperationContextWrapper","AppO11yOperationAction","createLinkConfig","category","icon","grafanaConfig","buildInfo","getQueryCustomParams","hide","instant","groupBy","unappend","unprepend","fromReadonlyArray","unsnoc","uncons","updateLast","modifyLast","updateHead","modifyHead","Comonad","readonlyNonEmptyArray","group","groupSort","sortO","groupO","Se","_loop_1","rest_1","uniqE","round","abs","nea","cs","rest_2","T","W","witherF","__webpack_module_cache__","__webpack_require__","moduleId","cachedModule","__webpack_modules__","getPrototypeOf","ns","definition","chunkId","promises","globalThis","script","needAttach","scripts","document","getElementsByTagName","getAttribute","createElement","charset","nc","setAttribute","origin","crossOrigin","integrity","sriHashes","onScriptComplete","onerror","onload","doneFns","parentNode","removeChild","appendChild","toStringTag","baseURI","installedChunks","installedChunkData","errorType","realSrc","request","webpackJsonpCallback","parentChunkLoadingFunction","chunkIds","moreModules","runtime","chunkLoadingGlobal","lastIndexOf","withSuspense","Component","props","styles","getStyles","Suspense","fallback","className","loadingContainer","LoadingPlaceholder","alertingHomePageCallout","targets","component","isPanelContext","isExploreContext","assertExploreOrPanelContext","configureExploreOrPanelLink","configureQueryLink","configureExploreLink","pluginId","configurePanelLink","getDataSourceSrv","getInstanceSettings","LazyForecastModal","LazyOutlierModal","ForecastModal","OutlierModal","extensionLinks","createForecastLinkConfig","configure","onClick","helpers","openModal","height","width","createOutlierLinkConfig","siftExtensionParams","CreateInvestigationModal","panelExtensionLinks","contextWrapper","onDismiss","exploreExtensionLinks","alertingExtensionLinks","onCallAlertGroupExtensionLinks","IRMOnCallAlertGroupExtensionLinks","commandPaletteExtensionLinks","k8sExtensionLinks","siftPanelLink","appO11yExtensionLinks","SiftAnalysisModal","siftAnalysisModals","IncidentAnalysisModal","IRMIncidentAnalysisModal","AssertsAnalysisModal","RunSiftModalWrapper","siftRunModal","IncidentRunSiftModal","IRMSiftRunModal","IRMIncidentRunSiftModal","linkConfigs","ml","sift","componentExtensions","alerting","extension","App","plugin","AppPlugin","setRootPage","app","addComponent","addLink","link"],"sourceRoot":""}