@kylincloud/flamegraph 0.36.1 → 0.36.3
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +15 -0
- package/dist/FlameGraph/FlameGraphComponent/index.d.ts.map +1 -1
- package/dist/flamegraphRenderWorker.js +1 -1
- package/dist/flamegraphRenderWorker.js.map +1 -1
- package/dist/index.cjs.js +4 -4
- package/dist/index.cjs.js.map +1 -1
- package/dist/index.esm.js +4 -4
- package/dist/index.esm.js.map +1 -1
- package/dist/index.node.cjs.js +4 -4
- package/dist/index.node.cjs.js.map +1 -1
- package/dist/index.node.esm.js +4 -4
- package/dist/index.node.esm.js.map +1 -1
- package/dist/workers/createFlamegraphRenderWorker.d.ts.map +1 -1
- package/package.json +1 -1
- package/src/FlameGraph/FlameGraphComponent/index.tsx +32 -6
- package/src/ProfilerTable.tsx +2 -2
- package/src/sass/flamegraph.scss +7 -0
- package/src/workers/createFlamegraphRenderWorker.ts +18 -2
- package/src/workers/flamegraphRenderWorker.ts +75 -45
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"flamegraphRenderWorker.js","sources":["../src/models/spyName.ts","../src/models/units.ts","../src/models/profile.ts","../src/models/flamebearer.ts","../src/models/trace.ts","../src/models/groups.ts","../src/FlameGraph/FlameGraphComponent/constants.ts","../src/format/format.ts","../src/fitMode/fitMode.ts","../src/FlameGraph/FlameGraphComponent/color.ts","../src/FlameGraph/FlameGraphComponent/murmur3.ts","../src/FlameGraph/FlameGraphComponent/Flamegraph_render.ts","../src/FlameGraph/FlameGraphComponent/utils.ts","../src/FlameGraph/FlameGraphComponent/Flamegraph.ts","../src/workers/flamegraphRenderWorker.ts"],"sourcesContent":[null,null,null,null,null,null,null,null,null,null,null,null,null,null,null],"names":["AllSpyNames","SpyNameSchema","z","preprocess","val","includes","enum","default","units","UnitsSchema","u","FlamebearerSchema","object","names","array","n","string","min","levels","number","numTicks","maxSelf","MetadataSchema","appName","optional","name","startTime","endTime","query","maxNodes","format","sampleRate","spyName","version","max","flamebearer","metadata","leftTicks","rightTicks","singleFF","jStep","jName","getBarOffset","level","j","getBarTotal","getBarTotalDiff","getBarSelf","getBarSelfDiff","getBarName","doubleFF","getBarTotalLeft","getBarTotalRght","getBarSelfLeft","getBarSelfRght","createFF","viewType","Error","ReferencesSchema","refType","traceID","spanID","TagsSchema","key","type","value","union","boolean","TraceSpanSchema","flags","operationName","references","duration","tags","logs","timestamp","fields","processID","warnings","any","ProcessSchema","serviceName","spans","processes","record","GroupSchema","watermark","samples","durationDelta","PX_PER_LEVEL","BAR_HEIGHT","localizeDurationString","input","isZh","parsed","unit","hasLessThan","sign","s","String","trim","replace","startsWith","slice","m","match","numStr","parseFloat","Number","isFinite","parseNumericWithUnit","unitZh","toLowerCase","ratioToPercent","ratio","Math","round","DurationFormatter","constructor","maxDur","enableSubsecondPrecision","this","divider","suffix","durations","i","length","console","warn","withUnits","nStr","toFixed","formatPrecise","NanosecondsFormatter","multiplier","ObjectsFormatter","maxObjects","objects","BytesFormatter","maxBytes","bytes","fitToCanvasRect","mode","charSize","rectWidth","fullText","shortText","text","marginLeft","shortTextWidth","diffPercent","leftPercent","rightPercent","result","colorGreyscale","v","a","Color","rgb","alpha","getPackageNameFromStackTrace","stackTrace","regexp","spyToRegex","fullStackGroups","groups","colorBasedOnPackageName","palette","colorIndex","seed","remainder","h1","h1b","c1","c2","k1","charCodeAt","murmurhash3_32_gc","colors","baseClr","NewDiffColor","props","goodColor","neutralColor","badColor","color","scaleLinear","domain","range","toString","formattedValueCacheByCanvas","WeakMap","highlightCacheByNames","colorCacheByNames","barIndexByLevels","defaultCanvasMessages","collapsedLevelsSingular","collapsedLevelsPlural","RenderCanvas","renderStart","performance","now","renderRects","renderText","renderMode","_a","timeBudgetMs","canvas","fitMode","tickToX","pxPerTick","rangeMin","rangeMax","focusedNode","zoom","messages","graphWidth","skipCanvasResize","width","clientWidth","getCanvasWidth","ff","ctx","getContext","selectedLevel","mapOrElse","formatter","getFormatter","isFocused","isJust","topLevel","f","focusOffset","highlightModeOn","highlightQuery","canvasHeight","height","dpr","devicePixelRatio","skipDprScale","scale","textBaseline","font","characterSize","measureText","formattedValueCache","cached","get","next","Map","set","getFormattedValueCache","highlightByNameIndex","cachedByQuery","queryLower","matches","Uint8Array","nextMap","getHighlightByNameIndex","colorByNameIndex","cachedByPalette","Array","packageName","getColorByNameIndexCached","diffColorFn","isHighlightedAt","nameIndex","initialStartI","_b","startI","initialStartJ","_c","startJ","_d","levelStart","beginPath","rect","fillStyle","fill","shortName","levelCount","getCollapsedText","fitCalc","x","y","sh","save","clip","namePosX","fillText","restore","_e","maxLevels","levelEnd","_f","renderStartI","_g","renderStartJ","_h","getColorForBar","collapsed","isHighlighted","common","cfg","getColorCommon","l","undefined","getColorSingle","leftRatio","rightRatio","error","getRatios","colorBasedOnDiffPercent","getColorDouble","barIndex","index","list","push","getBarIndex","highlightNameIndices","entries","k","entry","relativeLevel","numBarTicks","sw","done","nextI","nextJ","getFunctionName","getLongName","cachedValue","formatted","Flamegraph","cachedRange","cachedPxPerTick","getRange","xyToBarPosition","xy","xyToBarIndex","node","posX","xyToBarData","self","offset","total","barTotal","totalLeft","totalRight","totalDiff","isWithinBounds","e","render","options","updateCachedMetrics","highlightQueryOverride","calculatedZoomRange","calculatedFocusRange","Just","fRange","zRange","Nothing","binarySearchLevel","x0","x1","computedY","compensatedFocusedY","compensation","floor","parseXY","Maybe","of","nothing","xyToBar","map","xyWithinBounds","state","rectCanvas","textCanvas","renderState","token","running","firstChunk","payload","flamegraph","toMaybe","just","runChunk","kind","c","buildPalette","setTimeout","onmessage","event","msg","data","renderFlamegraph"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"flamegraphRenderWorker.js","sources":["../node_modules/.pnpm/color-name@2.1.0/node_modules/color-name/index.js","../node_modules/.pnpm/color-string@2.1.4/node_modules/color-string/index.js","../node_modules/.pnpm/color-convert@3.1.3/node_modules/color-convert/conversions.js","../node_modules/.pnpm/color-convert@3.1.3/node_modules/color-convert/route.js","../node_modules/.pnpm/color-convert@3.1.3/node_modules/color-convert/index.js","../node_modules/.pnpm/color@5.0.3/node_modules/color/index.js","../node_modules/.pnpm/true-myth@5.4.0/node_modules/true-myth/dist/unit.js","../node_modules/.pnpm/true-myth@5.4.0/node_modules/true-myth/dist/-private/utils.js","../node_modules/.pnpm/true-myth@5.4.0/node_modules/true-myth/dist/result.js","../node_modules/.pnpm/true-myth@5.4.0/node_modules/true-myth/dist/toolbelt.js","../node_modules/.pnpm/true-myth@5.4.0/node_modules/true-myth/dist/maybe.js","../node_modules/.pnpm/zod@3.25.76/node_modules/zod/v3/helpers/util.js","../node_modules/.pnpm/zod@3.25.76/node_modules/zod/v3/ZodError.js","../node_modules/.pnpm/zod@3.25.76/node_modules/zod/v3/locales/en.js","../node_modules/.pnpm/zod@3.25.76/node_modules/zod/v3/errors.js","../node_modules/.pnpm/zod@3.25.76/node_modules/zod/v3/helpers/parseUtil.js","../node_modules/.pnpm/zod@3.25.76/node_modules/zod/v3/helpers/errorUtil.js","../node_modules/.pnpm/zod@3.25.76/node_modules/zod/v3/types.js","../src/models/spyName.ts","../src/models/units.ts","../src/models/profile.ts","../src/models/flamebearer.ts","../src/models/trace.ts","../src/models/groups.ts","../src/FlameGraph/FlameGraphComponent/constants.ts","../src/format/format.ts","../src/fitMode/fitMode.ts","../node_modules/.pnpm/d3-array@3.2.4/node_modules/d3-array/src/ascending.js","../node_modules/.pnpm/d3-array@3.2.4/node_modules/d3-array/src/descending.js","../node_modules/.pnpm/d3-array@3.2.4/node_modules/d3-array/src/bisector.js","../node_modules/.pnpm/d3-array@3.2.4/node_modules/d3-array/src/bisect.js","../node_modules/.pnpm/d3-array@3.2.4/node_modules/d3-array/src/number.js","../node_modules/.pnpm/d3-array@3.2.4/node_modules/d3-array/src/ticks.js","../node_modules/.pnpm/d3-scale@4.0.2/node_modules/d3-scale/src/init.js","../node_modules/.pnpm/d3-color@3.1.0/node_modules/d3-color/src/define.js","../node_modules/.pnpm/d3-color@3.1.0/node_modules/d3-color/src/color.js","../node_modules/.pnpm/d3-interpolate@3.0.1/node_modules/d3-interpolate/src/constant.js","../node_modules/.pnpm/d3-interpolate@3.0.1/node_modules/d3-interpolate/src/color.js","../node_modules/.pnpm/d3-interpolate@3.0.1/node_modules/d3-interpolate/src/rgb.js","../node_modules/.pnpm/d3-interpolate@3.0.1/node_modules/d3-interpolate/src/numberArray.js","../node_modules/.pnpm/d3-interpolate@3.0.1/node_modules/d3-interpolate/src/array.js","../node_modules/.pnpm/d3-interpolate@3.0.1/node_modules/d3-interpolate/src/date.js","../node_modules/.pnpm/d3-interpolate@3.0.1/node_modules/d3-interpolate/src/number.js","../node_modules/.pnpm/d3-interpolate@3.0.1/node_modules/d3-interpolate/src/object.js","../node_modules/.pnpm/d3-interpolate@3.0.1/node_modules/d3-interpolate/src/string.js","../node_modules/.pnpm/d3-interpolate@3.0.1/node_modules/d3-interpolate/src/value.js","../node_modules/.pnpm/d3-interpolate@3.0.1/node_modules/d3-interpolate/src/round.js","../node_modules/.pnpm/d3-scale@4.0.2/node_modules/d3-scale/src/number.js","../node_modules/.pnpm/d3-scale@4.0.2/node_modules/d3-scale/src/continuous.js","../node_modules/.pnpm/d3-scale@4.0.2/node_modules/d3-scale/src/constant.js","../node_modules/.pnpm/d3-format@3.1.0/node_modules/d3-format/src/formatDecimal.js","../node_modules/.pnpm/d3-format@3.1.0/node_modules/d3-format/src/exponent.js","../node_modules/.pnpm/d3-format@3.1.0/node_modules/d3-format/src/formatSpecifier.js","../node_modules/.pnpm/d3-format@3.1.0/node_modules/d3-format/src/formatPrefixAuto.js","../node_modules/.pnpm/d3-format@3.1.0/node_modules/d3-format/src/formatRounded.js","../node_modules/.pnpm/d3-format@3.1.0/node_modules/d3-format/src/formatTypes.js","../node_modules/.pnpm/d3-format@3.1.0/node_modules/d3-format/src/identity.js","../node_modules/.pnpm/d3-format@3.1.0/node_modules/d3-format/src/locale.js","../node_modules/.pnpm/d3-format@3.1.0/node_modules/d3-format/src/defaultLocale.js","../node_modules/.pnpm/d3-format@3.1.0/node_modules/d3-format/src/formatGroup.js","../node_modules/.pnpm/d3-format@3.1.0/node_modules/d3-format/src/formatNumerals.js","../node_modules/.pnpm/d3-format@3.1.0/node_modules/d3-format/src/formatTrim.js","../node_modules/.pnpm/d3-scale@4.0.2/node_modules/d3-scale/src/tickFormat.js","../node_modules/.pnpm/d3-format@3.1.0/node_modules/d3-format/src/precisionPrefix.js","../node_modules/.pnpm/d3-format@3.1.0/node_modules/d3-format/src/precisionRound.js","../node_modules/.pnpm/d3-format@3.1.0/node_modules/d3-format/src/precisionFixed.js","../node_modules/.pnpm/d3-scale@4.0.2/node_modules/d3-scale/src/linear.js","../src/FlameGraph/FlameGraphComponent/color.ts","../src/FlameGraph/FlameGraphComponent/murmur3.ts","../src/FlameGraph/FlameGraphComponent/Flamegraph_render.ts","../src/FlameGraph/FlameGraphComponent/utils.ts","../src/FlameGraph/FlameGraphComponent/Flamegraph.ts","../src/workers/flamegraphRenderWorker.ts"],"sourcesContent":["const colors = {\n\taliceblue: [240, 248, 255],\n\tantiquewhite: [250, 235, 215],\n\taqua: [0, 255, 255],\n\taquamarine: [127, 255, 212],\n\tazure: [240, 255, 255],\n\tbeige: [245, 245, 220],\n\tbisque: [255, 228, 196],\n\tblack: [0, 0, 0],\n\tblanchedalmond: [255, 235, 205],\n\tblue: [0, 0, 255],\n\tblueviolet: [138, 43, 226],\n\tbrown: [165, 42, 42],\n\tburlywood: [222, 184, 135],\n\tcadetblue: [95, 158, 160],\n\tchartreuse: [127, 255, 0],\n\tchocolate: [210, 105, 30],\n\tcoral: [255, 127, 80],\n\tcornflowerblue: [100, 149, 237],\n\tcornsilk: [255, 248, 220],\n\tcrimson: [220, 20, 60],\n\tcyan: [0, 255, 255],\n\tdarkblue: [0, 0, 139],\n\tdarkcyan: [0, 139, 139],\n\tdarkgoldenrod: [184, 134, 11],\n\tdarkgray: [169, 169, 169],\n\tdarkgreen: [0, 100, 0],\n\tdarkgrey: [169, 169, 169],\n\tdarkkhaki: [189, 183, 107],\n\tdarkmagenta: [139, 0, 139],\n\tdarkolivegreen: [85, 107, 47],\n\tdarkorange: [255, 140, 0],\n\tdarkorchid: [153, 50, 204],\n\tdarkred: [139, 0, 0],\n\tdarksalmon: [233, 150, 122],\n\tdarkseagreen: [143, 188, 143],\n\tdarkslateblue: [72, 61, 139],\n\tdarkslategray: [47, 79, 79],\n\tdarkslategrey: [47, 79, 79],\n\tdarkturquoise: [0, 206, 209],\n\tdarkviolet: [148, 0, 211],\n\tdeeppink: [255, 20, 147],\n\tdeepskyblue: [0, 191, 255],\n\tdimgray: [105, 105, 105],\n\tdimgrey: [105, 105, 105],\n\tdodgerblue: [30, 144, 255],\n\tfirebrick: [178, 34, 34],\n\tfloralwhite: [255, 250, 240],\n\tforestgreen: [34, 139, 34],\n\tfuchsia: [255, 0, 255],\n\tgainsboro: [220, 220, 220],\n\tghostwhite: [248, 248, 255],\n\tgold: [255, 215, 0],\n\tgoldenrod: [218, 165, 32],\n\tgray: [128, 128, 128],\n\tgreen: [0, 128, 0],\n\tgreenyellow: [173, 255, 47],\n\tgrey: [128, 128, 128],\n\thoneydew: [240, 255, 240],\n\thotpink: [255, 105, 180],\n\tindianred: [205, 92, 92],\n\tindigo: [75, 0, 130],\n\tivory: [255, 255, 240],\n\tkhaki: [240, 230, 140],\n\tlavender: [230, 230, 250],\n\tlavenderblush: [255, 240, 245],\n\tlawngreen: [124, 252, 0],\n\tlemonchiffon: [255, 250, 205],\n\tlightblue: [173, 216, 230],\n\tlightcoral: [240, 128, 128],\n\tlightcyan: [224, 255, 255],\n\tlightgoldenrodyellow: [250, 250, 210],\n\tlightgray: [211, 211, 211],\n\tlightgreen: [144, 238, 144],\n\tlightgrey: [211, 211, 211],\n\tlightpink: [255, 182, 193],\n\tlightsalmon: [255, 160, 122],\n\tlightseagreen: [32, 178, 170],\n\tlightskyblue: [135, 206, 250],\n\tlightslategray: [119, 136, 153],\n\tlightslategrey: [119, 136, 153],\n\tlightsteelblue: [176, 196, 222],\n\tlightyellow: [255, 255, 224],\n\tlime: [0, 255, 0],\n\tlimegreen: [50, 205, 50],\n\tlinen: [250, 240, 230],\n\tmagenta: [255, 0, 255],\n\tmaroon: [128, 0, 0],\n\tmediumaquamarine: [102, 205, 170],\n\tmediumblue: [0, 0, 205],\n\tmediumorchid: [186, 85, 211],\n\tmediumpurple: [147, 112, 219],\n\tmediumseagreen: [60, 179, 113],\n\tmediumslateblue: [123, 104, 238],\n\tmediumspringgreen: [0, 250, 154],\n\tmediumturquoise: [72, 209, 204],\n\tmediumvioletred: [199, 21, 133],\n\tmidnightblue: [25, 25, 112],\n\tmintcream: [245, 255, 250],\n\tmistyrose: [255, 228, 225],\n\tmoccasin: [255, 228, 181],\n\tnavajowhite: [255, 222, 173],\n\tnavy: [0, 0, 128],\n\toldlace: [253, 245, 230],\n\tolive: [128, 128, 0],\n\tolivedrab: [107, 142, 35],\n\torange: [255, 165, 0],\n\torangered: [255, 69, 0],\n\torchid: [218, 112, 214],\n\tpalegoldenrod: [238, 232, 170],\n\tpalegreen: [152, 251, 152],\n\tpaleturquoise: [175, 238, 238],\n\tpalevioletred: [219, 112, 147],\n\tpapayawhip: [255, 239, 213],\n\tpeachpuff: [255, 218, 185],\n\tperu: [205, 133, 63],\n\tpink: [255, 192, 203],\n\tplum: [221, 160, 221],\n\tpowderblue: [176, 224, 230],\n\tpurple: [128, 0, 128],\n\trebeccapurple: [102, 51, 153],\n\tred: [255, 0, 0],\n\trosybrown: [188, 143, 143],\n\troyalblue: [65, 105, 225],\n\tsaddlebrown: [139, 69, 19],\n\tsalmon: [250, 128, 114],\n\tsandybrown: [244, 164, 96],\n\tseagreen: [46, 139, 87],\n\tseashell: [255, 245, 238],\n\tsienna: [160, 82, 45],\n\tsilver: [192, 192, 192],\n\tskyblue: [135, 206, 235],\n\tslateblue: [106, 90, 205],\n\tslategray: [112, 128, 144],\n\tslategrey: [112, 128, 144],\n\tsnow: [255, 250, 250],\n\tspringgreen: [0, 255, 127],\n\tsteelblue: [70, 130, 180],\n\ttan: [210, 180, 140],\n\tteal: [0, 128, 128],\n\tthistle: [216, 191, 216],\n\ttomato: [255, 99, 71],\n\tturquoise: [64, 224, 208],\n\tviolet: [238, 130, 238],\n\twheat: [245, 222, 179],\n\twhite: [255, 255, 255],\n\twhitesmoke: [245, 245, 245],\n\tyellow: [255, 255, 0],\n\tyellowgreen: [154, 205, 50],\n}\n\nfor (const key in colors) Object.freeze(colors[key]);\nexport default Object.freeze(colors);","import colorNames from 'color-name';\n\nconst reverseNames = Object.create(null);\n\n// Create a list of reverse color names\nfor (const name in colorNames) {\n\tif (Object.hasOwn(colorNames, name)) {\n\t\treverseNames[colorNames[name]] = name;\n\t}\n}\n\nconst cs = {\n\tto: {},\n\tget: {},\n};\n\ncs.get = function (string) {\n\tconst prefix = string.slice(0, 3).toLowerCase();\n\tlet value;\n\tlet model;\n\tswitch (prefix) {\n\t\tcase 'hsl': {\n\t\t\tvalue = cs.get.hsl(string);\n\t\t\tmodel = 'hsl';\n\t\t\tbreak;\n\t\t}\n\n\t\tcase 'hwb': {\n\t\t\tvalue = cs.get.hwb(string);\n\t\t\tmodel = 'hwb';\n\t\t\tbreak;\n\t\t}\n\n\t\tdefault: {\n\t\t\tvalue = cs.get.rgb(string);\n\t\t\tmodel = 'rgb';\n\t\t\tbreak;\n\t\t}\n\t}\n\n\tif (!value) {\n\t\treturn null;\n\t}\n\n\treturn {model, value};\n};\n\ncs.get.rgb = function (string) {\n\tif (!string) {\n\t\treturn null;\n\t}\n\n\tconst abbr = /^#([a-f\\d]{3,4})$/i;\n\tconst hex = /^#([a-f\\d]{6})([a-f\\d]{2})?$/i;\n\tconst rgba = /^rgba?\\(\\s*([+-]?(?:\\d*\\.)?\\d+(?:e\\d+)?)(?=[\\s,])\\s*(?:,\\s*)?([+-]?(?:\\d*\\.)?\\d+(?:e\\d+)?)(?=[\\s,])\\s*(?:,\\s*)?([+-]?(?:\\d*\\.)?\\d+(?:e\\d+)?)\\s*(?:[\\s,|/]\\s*([+-]?(?:\\d*\\.)?\\d+(?:e\\d+)?)(%?)\\s*)?\\)$/i;\n\tconst per = /^rgba?\\(\\s*([+-]?[\\d.]+)%\\s*,?\\s*([+-]?[\\d.]+)%\\s*,?\\s*([+-]?[\\d.]+)%\\s*(?:[\\s,|/]\\s*([+-]?[\\d.]+)(%?)\\s*)?\\)$/i;\n\tconst keyword = /^(\\w+)$/;\n\n\tlet rgb = [0, 0, 0, 1];\n\tlet match;\n\tlet i;\n\tlet hexAlpha;\n\n\tif (match = string.match(hex)) {\n\t\thexAlpha = match[2];\n\t\tmatch = match[1];\n\n\t\tfor (i = 0; i < 3; i++) {\n\t\t\t// https://jsperf.com/slice-vs-substr-vs-substring-methods-long-string/19\n\t\t\tconst i2 = i * 2;\n\t\t\trgb[i] = Number.parseInt(match.slice(i2, i2 + 2), 16);\n\t\t}\n\n\t\tif (hexAlpha) {\n\t\t\trgb[3] = Number.parseInt(hexAlpha, 16) / 255;\n\t\t}\n\t} else if (match = string.match(abbr)) {\n\t\tmatch = match[1];\n\t\thexAlpha = match[3];\n\n\t\tfor (i = 0; i < 3; i++) {\n\t\t\trgb[i] = Number.parseInt(match[i] + match[i], 16);\n\t\t}\n\n\t\tif (hexAlpha) {\n\t\t\trgb[3] = Number.parseInt(hexAlpha + hexAlpha, 16) / 255;\n\t\t}\n\t} else if (match = string.match(rgba)) {\n\t\tfor (i = 0; i < 3; i++) {\n\t\t\trgb[i] = Number.parseFloat(match[i + 1]);\n\t\t}\n\n\t\tif (match[4]) {\n\t\t\trgb[3] = match[5] ? Number.parseFloat(match[4]) * 0.01 : Number.parseFloat(match[4]);\n\t\t}\n\t} else if (match = string.match(per)) {\n\t\tfor (i = 0; i < 3; i++) {\n\t\t\trgb[i] = Math.round(Number.parseFloat(match[i + 1]) * 2.55);\n\t\t}\n\n\t\tif (match[4]) {\n\t\t\trgb[3] = match[5] ? Number.parseFloat(match[4]) * 0.01 : Number.parseFloat(match[4]);\n\t\t}\n\t} else if (match = string.toLowerCase().match(keyword)) {\n\t\tif (match[1] === 'transparent') {\n\t\t\treturn [0, 0, 0, 0];\n\t\t}\n\n\t\tif (!Object.hasOwn(colorNames, match[1])) {\n\t\t\treturn null;\n\t\t}\n\n\t\t// eslint-disable-next-line unicorn/prefer-spread\n\t\trgb = colorNames[match[1]].slice();\n\t\trgb[3] = 1;\n\n\t\treturn rgb;\n\t} else {\n\t\treturn null;\n\t}\n\n\tfor (i = 0; i < 3; i++) {\n\t\trgb[i] = clamp(rgb[i], 0, 255);\n\t}\n\n\trgb[3] = clamp(rgb[3], 0, 1);\n\n\treturn rgb;\n};\n\ncs.get.hsl = function (string) {\n\tif (!string) {\n\t\treturn null;\n\t}\n\n\tconst hsl = /^hsla?\\(\\s*([+-]?(?:\\d{0,3}\\.)?\\d+)(?:deg)?\\s*,?\\s*([+-]?[\\d.]+)%\\s*,?\\s*([+-]?[\\d.]+)%\\s*(?:[,|/]\\s*([+-]?(?=\\.\\d|\\d)(?:0|[1-9]\\d*)?(?:\\.\\d*)?(?:e[+-]?\\d+)?)\\s*)?\\)$/i;\n\tconst match = string.match(hsl);\n\n\tif (match) {\n\t\tconst alpha = Number.parseFloat(match[4]);\n\t\tconst h = ((Number.parseFloat(match[1]) % 360) + 360) % 360;\n\t\tconst s = clamp(Number.parseFloat(match[2]), 0, 100);\n\t\tconst l = clamp(Number.parseFloat(match[3]), 0, 100);\n\t\tconst a = clamp(Number.isNaN(alpha) ? 1 : alpha, 0, 1);\n\n\t\treturn [h, s, l, a];\n\t}\n\n\treturn null;\n};\n\ncs.get.hwb = function (string) {\n\tif (!string) {\n\t\treturn null;\n\t}\n\n\tconst hwb = /^hwb\\(\\s*([+-]?\\d{0,3}(?:\\.\\d+)?)(?:deg)?\\s*[\\s,]\\s*([+-]?[\\d.]+)%\\s*[\\s,]\\s*([+-]?[\\d.]+)%\\s*(?:[\\s,]\\s*([+-]?(?=\\.\\d|\\d)(?:0|[1-9]\\d*)?(?:\\.\\d*)?(?:e[+-]?\\d+)?)\\s*)?\\)$/i;\n\tconst match = string.match(hwb);\n\n\tif (match) {\n\t\tconst alpha = Number.parseFloat(match[4]);\n\t\tconst h = ((Number.parseFloat(match[1]) % 360) + 360) % 360;\n\t\tconst w = clamp(Number.parseFloat(match[2]), 0, 100);\n\t\tconst b = clamp(Number.parseFloat(match[3]), 0, 100);\n\t\tconst a = clamp(Number.isNaN(alpha) ? 1 : alpha, 0, 1);\n\t\treturn [h, w, b, a];\n\t}\n\n\treturn null;\n};\n\ncs.to.hex = function (...rgba) {\n\treturn (\n\t\t'#' +\n\t\thexDouble(rgba[0]) +\n\t\thexDouble(rgba[1]) +\n\t\thexDouble(rgba[2]) +\n\t\t(rgba[3] < 1\n\t\t\t? (hexDouble(Math.round(rgba[3] * 255)))\n\t\t\t: '')\n\t);\n};\n\ncs.to.rgb = function (...rgba) {\n\treturn rgba.length < 4 || rgba[3] === 1\n\t\t? 'rgb(' + Math.round(rgba[0]) + ', ' + Math.round(rgba[1]) + ', ' + Math.round(rgba[2]) + ')'\n\t\t: 'rgba(' + Math.round(rgba[0]) + ', ' + Math.round(rgba[1]) + ', ' + Math.round(rgba[2]) + ', ' + rgba[3] + ')';\n};\n\ncs.to.rgb.percent = function (...rgba) {\n\tconst r = Math.round(rgba[0] / 255 * 100);\n\tconst g = Math.round(rgba[1] / 255 * 100);\n\tconst b = Math.round(rgba[2] / 255 * 100);\n\n\treturn rgba.length < 4 || rgba[3] === 1\n\t\t? 'rgb(' + r + '%, ' + g + '%, ' + b + '%)'\n\t\t: 'rgba(' + r + '%, ' + g + '%, ' + b + '%, ' + rgba[3] + ')';\n};\n\ncs.to.hsl = function (...hsla) {\n\treturn hsla.length < 4 || hsla[3] === 1\n\t\t? 'hsl(' + hsla[0] + ', ' + hsla[1] + '%, ' + hsla[2] + '%)'\n\t\t: 'hsla(' + hsla[0] + ', ' + hsla[1] + '%, ' + hsla[2] + '%, ' + hsla[3] + ')';\n};\n\n// Hwb is a bit different than rgb(a) & hsl(a) since there is no alpha specific syntax\n// (hwb have alpha optional & 1 is default value)\ncs.to.hwb = function (...hwba) {\n\tlet a = '';\n\tif (hwba.length >= 4 && hwba[3] !== 1) {\n\t\ta = ', ' + hwba[3];\n\t}\n\n\treturn 'hwb(' + hwba[0] + ', ' + hwba[1] + '%, ' + hwba[2] + '%' + a + ')';\n};\n\ncs.to.keyword = function (...rgb) {\n\treturn reverseNames[rgb.slice(0, 3)];\n};\n\n// Helpers\nfunction clamp(number_, min, max) {\n\treturn Math.min(Math.max(min, number_), max);\n}\n\nfunction hexDouble(number_) {\n\tconst string_ = Math.round(number_).toString(16).toUpperCase();\n\treturn (string_.length < 2) ? '0' + string_ : string_;\n}\n\nexport default cs;\n","/* MIT license */\n/* eslint-disable no-mixed-operators */\nimport cssKeywords from 'color-name';\n\n// NOTE: conversions should only return primitive values (i.e. arrays, or\n// values that give correct `typeof` results).\n// do not use box values types (i.e. Number(), String(), etc.)\n\nconst reverseKeywords = {};\nfor (const key of Object.keys(cssKeywords)) {\n\treverseKeywords[cssKeywords[key]] = key;\n}\n\nconst convert = {\n\trgb: {channels: 3, labels: 'rgb'},\n\thsl: {channels: 3, labels: 'hsl'},\n\thsv: {channels: 3, labels: 'hsv'},\n\thwb: {channels: 3, labels: 'hwb'},\n\tcmyk: {channels: 4, labels: 'cmyk'},\n\txyz: {channels: 3, labels: 'xyz'},\n\tlab: {channels: 3, labels: 'lab'},\n\toklab: {channels: 3, labels: ['okl', 'oka', 'okb']},\n\tlch: {channels: 3, labels: 'lch'},\n\toklch: {channels: 3, labels: ['okl', 'okc', 'okh']},\n\thex: {channels: 1, labels: ['hex']},\n\tkeyword: {channels: 1, labels: ['keyword']},\n\tansi16: {channels: 1, labels: ['ansi16']},\n\tansi256: {channels: 1, labels: ['ansi256']},\n\thcg: {channels: 3, labels: ['h', 'c', 'g']},\n\tapple: {channels: 3, labels: ['r16', 'g16', 'b16']},\n\tgray: {channels: 1, labels: ['gray']},\n};\n\nexport default convert;\n\n// LAB f(t) constant\nconst LAB_FT = (6 / 29) ** 3;\n\n// SRGB non-linear transform functions\nfunction srgbNonlinearTransform(c) {\n\tconst cc = c > 0.003_130_8\n\t\t? ((1.055 * (c ** (1 / 2.4))) - 0.055)\n\t\t: c * 12.92;\n\treturn Math.min(Math.max(0, cc), 1);\n}\n\nfunction srgbNonlinearTransformInv(c) {\n\treturn c > 0.040_45 ? (((c + 0.055) / 1.055) ** 2.4) : (c / 12.92);\n}\n\n// Hide .channels and .labels properties\nfor (const model of Object.keys(convert)) {\n\tif (!('channels' in convert[model])) {\n\t\tthrow new Error('missing channels property: ' + model);\n\t}\n\n\tif (!('labels' in convert[model])) {\n\t\tthrow new Error('missing channel labels property: ' + model);\n\t}\n\n\tif (convert[model].labels.length !== convert[model].channels) {\n\t\tthrow new Error('channel and label counts mismatch: ' + model);\n\t}\n\n\tconst {channels, labels} = convert[model];\n\tdelete convert[model].channels;\n\tdelete convert[model].labels;\n\tObject.defineProperty(convert[model], 'channels', {value: channels});\n\tObject.defineProperty(convert[model], 'labels', {value: labels});\n}\n\nconvert.rgb.hsl = function (rgb) {\n\tconst r = rgb[0] / 255;\n\tconst g = rgb[1] / 255;\n\tconst b = rgb[2] / 255;\n\tconst min = Math.min(r, g, b);\n\tconst max = Math.max(r, g, b);\n\tconst delta = max - min;\n\tlet h;\n\tlet s;\n\n\tswitch (max) {\n\t\tcase min: {\n\t\t\th = 0;\n\n\t\t\tbreak;\n\t\t}\n\n\t\tcase r: {\n\t\t\th = (g - b) / delta;\n\n\t\t\tbreak;\n\t\t}\n\n\t\tcase g: {\n\t\t\th = 2 + (b - r) / delta;\n\n\t\t\tbreak;\n\t\t}\n\n\t\tcase b: {\n\t\t\th = 4 + (r - g) / delta;\n\n\t\t\tbreak;\n\t\t}\n\t// No default\n\t}\n\n\th = Math.min(h * 60, 360);\n\n\tif (h < 0) {\n\t\th += 360;\n\t}\n\n\tconst l = (min + max) / 2;\n\n\tif (max === min) {\n\t\ts = 0;\n\t} else if (l <= 0.5) {\n\t\ts = delta / (max + min);\n\t} else {\n\t\ts = delta / (2 - max - min);\n\t}\n\n\treturn [h, s * 100, l * 100];\n};\n\nconvert.rgb.hsv = function (rgb) {\n\tlet rdif;\n\tlet gdif;\n\tlet bdif;\n\tlet h;\n\tlet s;\n\n\tconst r = rgb[0] / 255;\n\tconst g = rgb[1] / 255;\n\tconst b = rgb[2] / 255;\n\tconst v = Math.max(r, g, b);\n\tconst diff = v - Math.min(r, g, b);\n\tconst diffc = function (c) {\n\t\treturn (v - c) / 6 / diff + 1 / 2;\n\t};\n\n\tif (diff === 0) {\n\t\th = 0;\n\t\ts = 0;\n\t} else {\n\t\ts = diff / v;\n\t\trdif = diffc(r);\n\t\tgdif = diffc(g);\n\t\tbdif = diffc(b);\n\n\t\tswitch (v) {\n\t\t\tcase r: {\n\t\t\t\th = bdif - gdif;\n\n\t\t\t\tbreak;\n\t\t\t}\n\n\t\t\tcase g: {\n\t\t\t\th = (1 / 3) + rdif - bdif;\n\n\t\t\t\tbreak;\n\t\t\t}\n\n\t\t\tcase b: {\n\t\t\t\th = (2 / 3) + gdif - rdif;\n\n\t\t\t\tbreak;\n\t\t\t}\n\t\t// No default\n\t\t}\n\n\t\tif (h < 0) {\n\t\t\th += 1;\n\t\t} else if (h > 1) {\n\t\t\th -= 1;\n\t\t}\n\t}\n\n\treturn [\n\t\th * 360,\n\t\ts * 100,\n\t\tv * 100,\n\t];\n};\n\nconvert.rgb.hwb = function (rgb) {\n\tconst r = rgb[0];\n\tconst g = rgb[1];\n\tlet b = rgb[2];\n\tconst h = convert.rgb.hsl(rgb)[0];\n\tconst w = 1 / 255 * Math.min(r, Math.min(g, b));\n\n\tb = 1 - 1 / 255 * Math.max(r, Math.max(g, b));\n\n\treturn [h, w * 100, b * 100];\n};\n\nconvert.rgb.oklab = function (rgb) {\n\t// Assume sRGB\n\tconst r = srgbNonlinearTransformInv(rgb[0] / 255);\n\tconst g = srgbNonlinearTransformInv(rgb[1] / 255);\n\tconst b = srgbNonlinearTransformInv(rgb[2] / 255);\n\n\tconst lp = Math.cbrt(0.412_221_470_8 * r + 0.536_332_536_3 * g + 0.051_445_992_9 * b);\n\tconst mp = Math.cbrt(0.211_903_498_2 * r + 0.680_699_545_1 * g + 0.107_396_956_6 * b);\n\tconst sp = Math.cbrt(0.088_302_461_9 * r + 0.281_718_837_6 * g + 0.629_978_700_5 * b);\n\n\tconst l = 0.210_454_255_3 * lp + 0.793_617_785 * mp - 0.004_072_046_8 * sp;\n\tconst aa = 1.977_998_495_1 * lp - 2.428_592_205 * mp + 0.450_593_709_9 * sp;\n\tconst bb = 0.025_904_037_1 * lp + 0.782_771_766_2 * mp - 0.808_675_766 * sp;\n\n\treturn [l * 100, aa * 100, bb * 100];\n};\n\nconvert.rgb.cmyk = function (rgb) {\n\tconst r = rgb[0] / 255;\n\tconst g = rgb[1] / 255;\n\tconst b = rgb[2] / 255;\n\n\tconst k = Math.min(1 - r, 1 - g, 1 - b);\n\tconst c = (1 - r - k) / (1 - k) || 0;\n\tconst m = (1 - g - k) / (1 - k) || 0;\n\tconst y = (1 - b - k) / (1 - k) || 0;\n\n\treturn [c * 100, m * 100, y * 100, k * 100];\n};\n\nfunction comparativeDistance(x, y) {\n\t/*\n\t\tSee https://en.m.wikipedia.org/wiki/Euclidean_distance#Squared_Euclidean_distance\n\t*/\n\treturn (\n\t\t((x[0] - y[0]) ** 2) +\n\t\t((x[1] - y[1]) ** 2) +\n\t\t((x[2] - y[2]) ** 2)\n\t);\n}\n\nconvert.rgb.keyword = function (rgb) {\n\tconst reversed = reverseKeywords[rgb];\n\tif (reversed) {\n\t\treturn reversed;\n\t}\n\n\tlet currentClosestDistance = Number.POSITIVE_INFINITY;\n\tlet currentClosestKeyword;\n\n\tfor (const keyword of Object.keys(cssKeywords)) {\n\t\tconst value = cssKeywords[keyword];\n\n\t\t// Compute comparative distance\n\t\tconst distance = comparativeDistance(rgb, value);\n\n\t\t// Check if its less, if so set as closest\n\t\tif (distance < currentClosestDistance) {\n\t\t\tcurrentClosestDistance = distance;\n\t\t\tcurrentClosestKeyword = keyword;\n\t\t}\n\t}\n\n\treturn currentClosestKeyword;\n};\n\nconvert.keyword.rgb = function (keyword) {\n\treturn [...cssKeywords[keyword]];\n};\n\nconvert.rgb.xyz = function (rgb) {\n\t// Assume sRGB\n\tconst r = srgbNonlinearTransformInv(rgb[0] / 255);\n\tconst g = srgbNonlinearTransformInv(rgb[1] / 255);\n\tconst b = srgbNonlinearTransformInv(rgb[2] / 255);\n\n\tconst x = (r * 0.412_456_4) + (g * 0.357_576_1) + (b * 0.180_437_5);\n\tconst y = (r * 0.212_672_9) + (g * 0.715_152_2) + (b * 0.072_175);\n\tconst z = (r * 0.019_333_9) + (g * 0.119_192) + (b * 0.950_304_1);\n\n\treturn [x * 100, y * 100, z * 100];\n};\n\nconvert.rgb.lab = function (rgb) {\n\tconst xyz = convert.rgb.xyz(rgb);\n\tlet x = xyz[0];\n\tlet y = xyz[1];\n\tlet z = xyz[2];\n\n\tx /= 95.047;\n\ty /= 100;\n\tz /= 108.883;\n\n\tx = x > LAB_FT ? (x ** (1 / 3)) : (7.787 * x) + (16 / 116);\n\ty = y > LAB_FT ? (y ** (1 / 3)) : (7.787 * y) + (16 / 116);\n\tz = z > LAB_FT ? (z ** (1 / 3)) : (7.787 * z) + (16 / 116);\n\n\tconst l = (116 * y) - 16;\n\tconst a = 500 * (x - y);\n\tconst b = 200 * (y - z);\n\n\treturn [l, a, b];\n};\n\nconvert.hsl.rgb = function (hsl) {\n\tconst h = hsl[0] / 360;\n\tconst s = hsl[1] / 100;\n\tconst l = hsl[2] / 100;\n\tlet t3;\n\tlet value;\n\n\tif (s === 0) {\n\t\tvalue = l * 255;\n\t\treturn [value, value, value];\n\t}\n\n\tconst t2 = l < 0.5 ? l * (1 + s) : l + s - l * s;\n\n\tconst t1 = 2 * l - t2;\n\n\tconst rgb = [0, 0, 0];\n\tfor (let i = 0; i < 3; i++) {\n\t\tt3 = h + 1 / 3 * -(i - 1);\n\t\tif (t3 < 0) {\n\t\t\tt3++;\n\t\t}\n\n\t\tif (t3 > 1) {\n\t\t\tt3--;\n\t\t}\n\n\t\tif (6 * t3 < 1) {\n\t\t\tvalue = t1 + (t2 - t1) * 6 * t3;\n\t\t} else if (2 * t3 < 1) {\n\t\t\tvalue = t2;\n\t\t} else if (3 * t3 < 2) {\n\t\t\tvalue = t1 + (t2 - t1) * (2 / 3 - t3) * 6;\n\t\t} else {\n\t\t\tvalue = t1;\n\t\t}\n\n\t\trgb[i] = value * 255;\n\t}\n\n\treturn rgb;\n};\n\nconvert.hsl.hsv = function (hsl) {\n\tconst h = hsl[0];\n\tlet s = hsl[1] / 100;\n\tlet l = hsl[2] / 100;\n\tlet smin = s;\n\tconst lmin = Math.max(l, 0.01);\n\n\tl *= 2;\n\ts *= (l <= 1) ? l : 2 - l;\n\tsmin *= lmin <= 1 ? lmin : 2 - lmin;\n\tconst v = (l + s) / 2;\n\tconst sv = l === 0 ? (2 * smin) / (lmin + smin) : (2 * s) / (l + s);\n\n\treturn [h, sv * 100, v * 100];\n};\n\nconvert.hsv.rgb = function (hsv) {\n\tconst h = hsv[0] / 60;\n\tconst s = hsv[1] / 100;\n\tlet v = hsv[2] / 100;\n\tconst hi = Math.floor(h) % 6;\n\n\tconst f = h - Math.floor(h);\n\tconst p = 255 * v * (1 - s);\n\tconst q = 255 * v * (1 - (s * f));\n\tconst t = 255 * v * (1 - (s * (1 - f)));\n\tv *= 255;\n\n\tswitch (hi) {\n\t\tcase 0: {\n\t\t\treturn [v, t, p];\n\t\t}\n\n\t\tcase 1: {\n\t\t\treturn [q, v, p];\n\t\t}\n\n\t\tcase 2: {\n\t\t\treturn [p, v, t];\n\t\t}\n\n\t\tcase 3: {\n\t\t\treturn [p, q, v];\n\t\t}\n\n\t\tcase 4: {\n\t\t\treturn [t, p, v];\n\t\t}\n\n\t\tcase 5: {\n\t\t\treturn [v, p, q];\n\t\t}\n\t}\n};\n\nconvert.hsv.hsl = function (hsv) {\n\tconst h = hsv[0];\n\tconst s = hsv[1] / 100;\n\tconst v = hsv[2] / 100;\n\tconst vmin = Math.max(v, 0.01);\n\tlet sl;\n\tlet l;\n\n\tl = (2 - s) * v;\n\tconst lmin = (2 - s) * vmin;\n\tsl = s * vmin;\n\tsl /= (lmin <= 1) ? lmin : 2 - lmin;\n\tsl = sl || 0;\n\tl /= 2;\n\n\treturn [h, sl * 100, l * 100];\n};\n\n// http://dev.w3.org/csswg/css-color/#hwb-to-rgb\nconvert.hwb.rgb = function (hwb) {\n\tconst h = hwb[0] / 360;\n\tlet wh = hwb[1] / 100;\n\tlet bl = hwb[2] / 100;\n\tconst ratio = wh + bl;\n\tlet f;\n\n\t// Wh + bl cant be > 1\n\tif (ratio > 1) {\n\t\twh /= ratio;\n\t\tbl /= ratio;\n\t}\n\n\tconst i = Math.floor(6 * h);\n\tconst v = 1 - bl;\n\tf = 6 * h - i;\n\n\t// eslint-disable-next-line no-bitwise\n\tif ((i & 0x01) !== 0) {\n\t\tf = 1 - f;\n\t}\n\n\tconst n = wh + f * (v - wh); // Linear interpolation\n\n\tlet r;\n\tlet g;\n\tlet b;\n\t/* eslint-disable max-statements-per-line,no-multi-spaces, default-case-last */\n\tswitch (i) {\n\t\tdefault:\n\t\tcase 6:\n\t\tcase 0: { r = v; g = n; b = wh; break;\n\t\t}\n\n\t\tcase 1: { r = n; g = v; b = wh; break;\n\t\t}\n\n\t\tcase 2: { r = wh; g = v; b = n; break;\n\t\t}\n\n\t\tcase 3: { r = wh; g = n; b = v; break;\n\t\t}\n\n\t\tcase 4: { r = n; g = wh; b = v; break;\n\t\t}\n\n\t\tcase 5: { r = v; g = wh; b = n; break;\n\t\t}\n\t}\n\t/* eslint-enable max-statements-per-line,no-multi-spaces, default-case-last */\n\n\treturn [r * 255, g * 255, b * 255];\n};\n\nconvert.cmyk.rgb = function (cmyk) {\n\tconst c = cmyk[0] / 100;\n\tconst m = cmyk[1] / 100;\n\tconst y = cmyk[2] / 100;\n\tconst k = cmyk[3] / 100;\n\n\tconst r = 1 - Math.min(1, c * (1 - k) + k);\n\tconst g = 1 - Math.min(1, m * (1 - k) + k);\n\tconst b = 1 - Math.min(1, y * (1 - k) + k);\n\n\treturn [r * 255, g * 255, b * 255];\n};\n\nconvert.xyz.rgb = function (xyz) {\n\tconst x = xyz[0] / 100;\n\tconst y = xyz[1] / 100;\n\tconst z = xyz[2] / 100;\n\tlet r;\n\tlet g;\n\tlet b;\n\n\tr = (x * 3.240_454_2) + (y * -1.537_138_5) + (z * -0.498_531_4);\n\tg = (x * -0.969_266) + (y * 1.876_010_8) + (z * 0.041_556);\n\tb = (x * 0.055_643_4) + (y * -0.204_025_9) + (z * 1.057_225_2);\n\n\t// Assume sRGB\n\tr = srgbNonlinearTransform(r);\n\tg = srgbNonlinearTransform(g);\n\tb = srgbNonlinearTransform(b);\n\n\treturn [r * 255, g * 255, b * 255];\n};\n\nconvert.xyz.lab = function (xyz) {\n\tlet x = xyz[0];\n\tlet y = xyz[1];\n\tlet z = xyz[2];\n\n\tx /= 95.047;\n\ty /= 100;\n\tz /= 108.883;\n\n\tx = x > LAB_FT ? (x ** (1 / 3)) : (7.787 * x) + (16 / 116);\n\ty = y > LAB_FT ? (y ** (1 / 3)) : (7.787 * y) + (16 / 116);\n\tz = z > LAB_FT ? (z ** (1 / 3)) : (7.787 * z) + (16 / 116);\n\n\tconst l = (116 * y) - 16;\n\tconst a = 500 * (x - y);\n\tconst b = 200 * (y - z);\n\n\treturn [l, a, b];\n};\n\nconvert.xyz.oklab = function (xyz) {\n\tconst x = xyz[0] / 100;\n\tconst y = xyz[1] / 100;\n\tconst z = xyz[2] / 100;\n\n\tconst lp = Math.cbrt(0.818_933_010_1 * x + 0.361_866_742_4 * y - 0.128_859_713_7 * z);\n\tconst mp = Math.cbrt(0.032_984_543_6 * x + 0.929_311_871_5 * y + 0.036_145_638_7 * z);\n\tconst sp = Math.cbrt(0.048_200_301_8 * x + 0.264_366_269_1 * y + 0.633_851_707 * z);\n\n\tconst l = 0.210_454_255_3 * lp + 0.793_617_785 * mp - 0.004_072_046_8 * sp;\n\tconst a = 1.977_998_495_1 * lp - 2.428_592_205 * mp + 0.450_593_709_9 * sp;\n\tconst b = 0.025_904_037_1 * lp + 0.782_771_766_2 * mp - 0.808_675_766 * sp;\n\n\treturn [l * 100, a * 100, b * 100];\n};\n\nconvert.oklab.oklch = function (oklab) {\n\treturn convert.lab.lch(oklab);\n};\n\nconvert.oklab.xyz = function (oklab) {\n\tconst ll = oklab[0] / 100;\n\tconst a = oklab[1] / 100;\n\tconst b = oklab[2] / 100;\n\n\tconst l = (0.999_999_998 * ll + 0.396_337_792 * a + 0.215_803_758 * b) ** 3;\n\tconst m = (1.000_000_008 * ll - 0.105_561_342 * a - 0.063_854_175 * b) ** 3;\n\tconst s = (1.000_000_055 * ll - 0.089_484_182 * a - 1.291_485_538 * b) ** 3;\n\n\tconst x = 1.227_013_851 * l - 0.557_799_98 * m + 0.281_256_149 * s;\n\tconst y = -0.040_580_178 * l + 1.112_256_87 * m - 0.071_676_679 * s;\n\tconst z = -0.076_381_285 * l - 0.421_481_978 * m + 1.586_163_22 * s;\n\n\treturn [x * 100, y * 100, z * 100];\n};\n\nconvert.oklab.rgb = function (oklab) {\n\tconst ll = oklab[0] / 100;\n\tconst aa = oklab[1] / 100;\n\tconst bb = oklab[2] / 100;\n\n\tconst l = (ll + 0.396_337_777_4 * aa + 0.215_803_757_3 * bb) ** 3;\n\tconst m = (ll - 0.105_561_345_8 * aa - 0.063_854_172_8 * bb) ** 3;\n\tconst s = (ll - 0.089_484_177_5 * aa - 1.291_485_548 * bb) ** 3;\n\n\t// Assume sRGB\n\tconst r = srgbNonlinearTransform(4.076_741_662_1 * l - 3.307_711_591_3 * m + 0.230_969_929_2 * s);\n\tconst g = srgbNonlinearTransform(-1.268_438_004_6 * l + 2.609_757_401_1 * m - 0.341_319_396_5 * s);\n\tconst b = srgbNonlinearTransform(-0.004_196_086_3 * l - 0.703_418_614_7 * m + 1.707_614_701 * s);\n\n\treturn [r * 255, g * 255, b * 255];\n};\n\nconvert.oklch.oklab = function (oklch) {\n\treturn convert.lch.lab(oklch);\n};\n\nconvert.lab.xyz = function (lab) {\n\tconst l = lab[0];\n\tconst a = lab[1];\n\tconst b = lab[2];\n\tlet x;\n\tlet y;\n\tlet z;\n\n\ty = (l + 16) / 116;\n\tx = a / 500 + y;\n\tz = y - b / 200;\n\n\tconst y2 = y ** 3;\n\tconst x2 = x ** 3;\n\tconst z2 = z ** 3;\n\ty = y2 > LAB_FT ? y2 : (y - 16 / 116) / 7.787;\n\tx = x2 > LAB_FT ? x2 : (x - 16 / 116) / 7.787;\n\tz = z2 > LAB_FT ? z2 : (z - 16 / 116) / 7.787;\n\n\t// Illuminant D65 XYZ Tristrimulus Values\n\t// https://en.wikipedia.org/wiki/CIE_1931_color_space\n\tx *= 95.047;\n\ty *= 100;\n\tz *= 108.883;\n\n\treturn [x, y, z];\n};\n\nconvert.lab.lch = function (lab) {\n\tconst l = lab[0];\n\tconst a = lab[1];\n\tconst b = lab[2];\n\tlet h;\n\n\tconst hr = Math.atan2(b, a);\n\th = hr * 360 / 2 / Math.PI;\n\n\tif (h < 0) {\n\t\th += 360;\n\t}\n\n\tconst c = Math.sqrt(a * a + b * b);\n\n\treturn [l, c, h];\n};\n\nconvert.lch.lab = function (lch) {\n\tconst l = lch[0];\n\tconst c = lch[1];\n\tconst h = lch[2];\n\n\tconst hr = h / 360 * 2 * Math.PI;\n\tconst a = c * Math.cos(hr);\n\tconst b = c * Math.sin(hr);\n\n\treturn [l, a, b];\n};\n\nconvert.rgb.ansi16 = function (args, saturation = null) {\n\tconst [r, g, b] = args;\n\tlet value = saturation === null ? convert.rgb.hsv(args)[2] : saturation; // Hsv -> ansi16 optimization\n\n\tvalue = Math.round(value / 50);\n\n\tif (value === 0) {\n\t\treturn 30;\n\t}\n\n\tlet ansi = 30\n\t\t/* eslint-disable no-bitwise */\n\t\t+ ((Math.round(b / 255) << 2)\n\t\t| (Math.round(g / 255) << 1)\n\t\t| Math.round(r / 255));\n\t\t/* eslint-enable no-bitwise */\n\n\tif (value === 2) {\n\t\tansi += 60;\n\t}\n\n\treturn ansi;\n};\n\nconvert.hsv.ansi16 = function (args) {\n\t// Optimization here; we already know the value and don't need to get\n\t// it converted for us.\n\treturn convert.rgb.ansi16(convert.hsv.rgb(args), args[2]);\n};\n\nconvert.rgb.ansi256 = function (args) {\n\tconst r = args[0];\n\tconst g = args[1];\n\tconst b = args[2];\n\n\t// We use the extended greyscale palette here, with the exception of\n\t// black and white. normal palette only has 4 greyscale shades.\n\t// eslint-disable-next-line no-bitwise\n\tif (r >> 4 === g >> 4 && g >> 4 === b >> 4) {\n\t\tif (r < 8) {\n\t\t\treturn 16;\n\t\t}\n\n\t\tif (r > 248) {\n\t\t\treturn 231;\n\t\t}\n\n\t\treturn Math.round(((r - 8) / 247) * 24) + 232;\n\t}\n\n\tconst ansi = 16\n\t\t+ (36 * Math.round(r / 255 * 5))\n\t\t+ (6 * Math.round(g / 255 * 5))\n\t\t+ Math.round(b / 255 * 5);\n\n\treturn ansi;\n};\n\nconvert.ansi16.rgb = function (args) {\n\targs = args[0];\n\n\tlet color = args % 10;\n\n\t// Handle greyscale\n\tif (color === 0 || color === 7) {\n\t\tif (args > 50) {\n\t\t\tcolor += 3.5;\n\t\t}\n\n\t\tcolor = color / 10.5 * 255;\n\n\t\treturn [color, color, color];\n\t}\n\n\tconst mult = (Math.trunc(args > 50) + 1) * 0.5;\n\t/* eslint-disable no-bitwise */\n\tconst r = ((color & 1) * mult) * 255;\n\tconst g = (((color >> 1) & 1) * mult) * 255;\n\tconst b = (((color >> 2) & 1) * mult) * 255;\n\t/* eslint-enable no-bitwise */\n\n\treturn [r, g, b];\n};\n\nconvert.ansi256.rgb = function (args) {\n\targs = args[0];\n\n\t// Handle greyscale\n\tif (args >= 232) {\n\t\tconst c = (args - 232) * 10 + 8;\n\t\treturn [c, c, c];\n\t}\n\n\targs -= 16;\n\n\tlet rem;\n\tconst r = Math.floor(args / 36) / 5 * 255;\n\tconst g = Math.floor((rem = args % 36) / 6) / 5 * 255;\n\tconst b = (rem % 6) / 5 * 255;\n\n\treturn [r, g, b];\n};\n\nconvert.rgb.hex = function (args) {\n\t/* eslint-disable no-bitwise */\n\tconst integer = ((Math.round(args[0]) & 0xFF) << 16)\n\t\t+ ((Math.round(args[1]) & 0xFF) << 8)\n\t\t+ (Math.round(args[2]) & 0xFF);\n\t/* eslint-enable no-bitwise */\n\n\tconst string = integer.toString(16).toUpperCase();\n\treturn '000000'.slice(string.length) + string;\n};\n\nconvert.hex.rgb = function (args) {\n\tconst match = args.toString(16).match(/[a-f\\d]{6}|[a-f\\d]{3}/i);\n\tif (!match) {\n\t\treturn [0, 0, 0];\n\t}\n\n\tlet colorString = match[0];\n\n\tif (match[0].length === 3) {\n\t\tcolorString = [...colorString].map(char => char + char).join('');\n\t}\n\n\tconst integer = Number.parseInt(colorString, 16);\n\t/* eslint-disable no-bitwise */\n\tconst r = (integer >> 16) & 0xFF;\n\tconst g = (integer >> 8) & 0xFF;\n\tconst b = integer & 0xFF;\n\t/* eslint-enable no-bitwise */\n\n\treturn [r, g, b];\n};\n\nconvert.rgb.hcg = function (rgb) {\n\tconst r = rgb[0] / 255;\n\tconst g = rgb[1] / 255;\n\tconst b = rgb[2] / 255;\n\tconst max = Math.max(Math.max(r, g), b);\n\tconst min = Math.min(Math.min(r, g), b);\n\tconst chroma = (max - min);\n\tlet hue;\n\n\tconst grayscale = chroma < 1 ? min / (1 - chroma) : 0;\n\n\tif (chroma <= 0) {\n\t\thue = 0;\n\t} else if (max === r) {\n\t\thue = ((g - b) / chroma) % 6;\n\t} else if (max === g) {\n\t\thue = 2 + (b - r) / chroma;\n\t} else {\n\t\thue = 4 + (r - g) / chroma;\n\t}\n\n\thue /= 6;\n\thue %= 1;\n\n\treturn [hue * 360, chroma * 100, grayscale * 100];\n};\n\nconvert.hsl.hcg = function (hsl) {\n\tconst s = hsl[1] / 100;\n\tconst l = hsl[2] / 100;\n\n\tconst c = l < 0.5 ? (2 * s * l) : (2 * s * (1 - l));\n\n\tlet f = 0;\n\tif (c < 1) {\n\t\tf = (l - 0.5 * c) / (1 - c);\n\t}\n\n\treturn [hsl[0], c * 100, f * 100];\n};\n\nconvert.hsv.hcg = function (hsv) {\n\tconst s = hsv[1] / 100;\n\tconst v = hsv[2] / 100;\n\n\tconst c = s * v;\n\tlet f = 0;\n\n\tif (c < 1) {\n\t\tf = (v - c) / (1 - c);\n\t}\n\n\treturn [hsv[0], c * 100, f * 100];\n};\n\nconvert.hcg.rgb = function (hcg) {\n\tconst h = hcg[0] / 360;\n\tconst c = hcg[1] / 100;\n\tconst g = hcg[2] / 100;\n\n\tif (c === 0) {\n\t\treturn [g * 255, g * 255, g * 255];\n\t}\n\n\tconst pure = [0, 0, 0];\n\tconst hi = (h % 1) * 6;\n\tconst v = hi % 1;\n\tconst w = 1 - v;\n\tlet mg = 0;\n\n\t/* eslint-disable max-statements-per-line */\n\tswitch (Math.floor(hi)) {\n\t\tcase 0: {\n\t\t\tpure[0] = 1; pure[1] = v; pure[2] = 0; break;\n\t\t}\n\n\t\tcase 1: {\n\t\t\tpure[0] = w; pure[1] = 1; pure[2] = 0; break;\n\t\t}\n\n\t\tcase 2: {\n\t\t\tpure[0] = 0; pure[1] = 1; pure[2] = v; break;\n\t\t}\n\n\t\tcase 3: {\n\t\t\tpure[0] = 0; pure[1] = w; pure[2] = 1; break;\n\t\t}\n\n\t\tcase 4: {\n\t\t\tpure[0] = v; pure[1] = 0; pure[2] = 1; break;\n\t\t}\n\n\t\tdefault: {\n\t\t\tpure[0] = 1; pure[1] = 0; pure[2] = w;\n\t\t}\n\t}\n\t/* eslint-enable max-statements-per-line */\n\n\tmg = (1 - c) * g;\n\n\treturn [\n\t\t(c * pure[0] + mg) * 255,\n\t\t(c * pure[1] + mg) * 255,\n\t\t(c * pure[2] + mg) * 255,\n\t];\n};\n\nconvert.hcg.hsv = function (hcg) {\n\tconst c = hcg[1] / 100;\n\tconst g = hcg[2] / 100;\n\n\tconst v = c + g * (1 - c);\n\tlet f = 0;\n\n\tif (v > 0) {\n\t\tf = c / v;\n\t}\n\n\treturn [hcg[0], f * 100, v * 100];\n};\n\nconvert.hcg.hsl = function (hcg) {\n\tconst c = hcg[1] / 100;\n\tconst g = hcg[2] / 100;\n\n\tconst l = g * (1 - c) + 0.5 * c;\n\tlet s = 0;\n\n\tif (l > 0 && l < 0.5) {\n\t\ts = c / (2 * l);\n\t} else if (l >= 0.5 && l < 1) {\n\t\ts = c / (2 * (1 - l));\n\t}\n\n\treturn [hcg[0], s * 100, l * 100];\n};\n\nconvert.hcg.hwb = function (hcg) {\n\tconst c = hcg[1] / 100;\n\tconst g = hcg[2] / 100;\n\tconst v = c + g * (1 - c);\n\treturn [hcg[0], (v - c) * 100, (1 - v) * 100];\n};\n\nconvert.hwb.hcg = function (hwb) {\n\tconst w = hwb[1] / 100;\n\tconst b = hwb[2] / 100;\n\tconst v = 1 - b;\n\tconst c = v - w;\n\tlet g = 0;\n\n\tif (c < 1) {\n\t\tg = (v - c) / (1 - c);\n\t}\n\n\treturn [hwb[0], c * 100, g * 100];\n};\n\nconvert.apple.rgb = function (apple) {\n\treturn [(apple[0] / 65_535) * 255, (apple[1] / 65_535) * 255, (apple[2] / 65_535) * 255];\n};\n\nconvert.rgb.apple = function (rgb) {\n\treturn [(rgb[0] / 255) * 65_535, (rgb[1] / 255) * 65_535, (rgb[2] / 255) * 65_535];\n};\n\nconvert.gray.rgb = function (args) {\n\treturn [args[0] / 100 * 255, args[0] / 100 * 255, args[0] / 100 * 255];\n};\n\nconvert.gray.hsl = function (args) {\n\treturn [0, 0, args[0]];\n};\n\nconvert.gray.hsv = convert.gray.hsl;\n\nconvert.gray.hwb = function (gray) {\n\treturn [0, 100, gray[0]];\n};\n\nconvert.gray.cmyk = function (gray) {\n\treturn [0, 0, 0, gray[0]];\n};\n\nconvert.gray.lab = function (gray) {\n\treturn [gray[0], 0, 0];\n};\n\nconvert.gray.hex = function (gray) {\n\t/* eslint-disable no-bitwise */\n\tconst value = Math.round(gray[0] / 100 * 255) & 0xFF;\n\tconst integer = (value << 16) + (value << 8) + value;\n\t/* eslint-enable no-bitwise */\n\n\tconst string = integer.toString(16).toUpperCase();\n\treturn '000000'.slice(string.length) + string;\n};\n\nconvert.rgb.gray = function (rgb) {\n\tconst value = (rgb[0] + rgb[1] + rgb[2]) / 3;\n\treturn [value / 255 * 100];\n};\n","import conversions from './conversions.js';\n\n/*\n\tThis function routes a model to all other models.\n\n\tall functions that are routed have a property `.conversion` attached\n\tto the returned synthetic function. This property is an array\n\tof strings, each with the steps in between the 'from' and 'to'\n\tcolor models (inclusive).\n\n\tconversions that are not possible simply are not included.\n*/\n\nfunction buildGraph() {\n\tconst graph = {};\n\t// https://jsperf.com/object-keys-vs-for-in-with-closure/3\n\tconst models = Object.keys(conversions);\n\n\tfor (let {length} = models, i = 0; i < length; i++) {\n\t\tgraph[models[i]] = {\n\t\t\t// http://jsperf.com/1-vs-infinity\n\t\t\t// micro-opt, but this is simple.\n\t\t\tdistance: -1,\n\t\t\tparent: null,\n\t\t};\n\t}\n\n\treturn graph;\n}\n\n// https://en.wikipedia.org/wiki/Breadth-first_search\nfunction deriveBFS(fromModel) {\n\tconst graph = buildGraph();\n\tconst queue = [fromModel]; // Unshift -> queue -> pop\n\n\tgraph[fromModel].distance = 0;\n\n\twhile (queue.length > 0) {\n\t\tconst current = queue.pop();\n\t\tconst adjacents = Object.keys(conversions[current]);\n\n\t\tfor (let {length} = adjacents, i = 0; i < length; i++) {\n\t\t\tconst adjacent = adjacents[i];\n\t\t\tconst node = graph[adjacent];\n\n\t\t\tif (node.distance === -1) {\n\t\t\t\tnode.distance = graph[current].distance + 1;\n\t\t\t\tnode.parent = current;\n\t\t\t\tqueue.unshift(adjacent);\n\t\t\t}\n\t\t}\n\t}\n\n\treturn graph;\n}\n\nfunction link(from, to) {\n\treturn function (args) {\n\t\treturn to(from(args));\n\t};\n}\n\nfunction wrapConversion(toModel, graph) {\n\tconst path = [graph[toModel].parent, toModel];\n\tlet fn = conversions[graph[toModel].parent][toModel];\n\n\tlet cur = graph[toModel].parent;\n\twhile (graph[cur].parent) {\n\t\tpath.unshift(graph[cur].parent);\n\t\tfn = link(conversions[graph[cur].parent][cur], fn);\n\t\tcur = graph[cur].parent;\n\t}\n\n\tfn.conversion = path;\n\treturn fn;\n}\n\nfunction route(fromModel) {\n\tconst graph = deriveBFS(fromModel);\n\tconst conversion = {};\n\n\tconst models = Object.keys(graph);\n\tfor (let {length} = models, i = 0; i < length; i++) {\n\t\tconst toModel = models[i];\n\t\tconst node = graph[toModel];\n\n\t\tif (node.parent === null) {\n\t\t\t// No possible conversion, or this node is the source model.\n\t\t\tcontinue;\n\t\t}\n\n\t\tconversion[toModel] = wrapConversion(toModel, graph);\n\t}\n\n\treturn conversion;\n}\n\nexport default route;\n","import conversions from './conversions.js';\nimport route from './route.js';\n\nconst convert = {};\n\nconst models = Object.keys(conversions);\n\nfunction wrapRaw(fn) {\n\tconst wrappedFn = function (...args) {\n\t\tconst arg0 = args[0];\n\t\tif (arg0 === undefined || arg0 === null) {\n\t\t\treturn arg0;\n\t\t}\n\n\t\tif (arg0.length > 1) {\n\t\t\targs = arg0;\n\t\t}\n\n\t\treturn fn(args);\n\t};\n\n\t// Preserve .conversion property if there is one\n\tif ('conversion' in fn) {\n\t\twrappedFn.conversion = fn.conversion;\n\t}\n\n\treturn wrappedFn;\n}\n\nfunction wrapRounded(fn) {\n\tconst wrappedFn = function (...args) {\n\t\tconst arg0 = args[0];\n\n\t\tif (arg0 === undefined || arg0 === null) {\n\t\t\treturn arg0;\n\t\t}\n\n\t\tif (arg0.length > 1) {\n\t\t\targs = arg0;\n\t\t}\n\n\t\tconst result = fn(args);\n\n\t\t// We're assuming the result is an array here.\n\t\t// see notice in conversions.js; don't use box types\n\t\t// in conversion functions.\n\t\tif (typeof result === 'object') {\n\t\t\tfor (let {length} = result, i = 0; i < length; i++) {\n\t\t\t\tresult[i] = Math.round(result[i]);\n\t\t\t}\n\t\t}\n\n\t\treturn result;\n\t};\n\n\t// Preserve .conversion property if there is one\n\tif ('conversion' in fn) {\n\t\twrappedFn.conversion = fn.conversion;\n\t}\n\n\treturn wrappedFn;\n}\n\nfor (const fromModel of models) {\n\tconvert[fromModel] = {};\n\n\tObject.defineProperty(convert[fromModel], 'channels', {value: conversions[fromModel].channels});\n\tObject.defineProperty(convert[fromModel], 'labels', {value: conversions[fromModel].labels});\n\n\tconst routes = route(fromModel);\n\tconst routeModels = Object.keys(routes);\n\n\tfor (const toModel of routeModels) {\n\t\tconst fn = routes[toModel];\n\n\t\tconvert[fromModel][toModel] = wrapRounded(fn);\n\t\tconvert[fromModel][toModel].raw = wrapRaw(fn);\n\t}\n}\n\nexport default convert;\n","import colorString from 'color-string';\nimport convert from 'color-convert';\n\nconst skippedModels = [\n\t// To be honest, I don't really feel like keyword belongs in color convert, but eh.\n\t'keyword',\n\n\t// Gray conflicts with some method names, and has its own method defined.\n\t'gray',\n\n\t// Shouldn't really be in color-convert either...\n\t'hex',\n];\n\nconst hashedModelKeys = {};\nfor (const model of Object.keys(convert)) {\n\thashedModelKeys[[...convert[model].labels].sort().join('')] = model;\n}\n\nconst limiters = {};\n\nfunction Color(object, model) {\n\tif (!(this instanceof Color)) {\n\t\treturn new Color(object, model);\n\t}\n\n\tif (model && model in skippedModels) {\n\t\tmodel = null;\n\t}\n\n\tif (model && !(model in convert)) {\n\t\tthrow new Error('Unknown model: ' + model);\n\t}\n\n\tlet i;\n\tlet channels;\n\n\tif (object == null) { // eslint-disable-line no-eq-null,eqeqeq\n\t\tthis.model = 'rgb';\n\t\tthis.color = [0, 0, 0];\n\t\tthis.valpha = 1;\n\t} else if (object instanceof Color) {\n\t\tthis.model = object.model;\n\t\tthis.color = [...object.color];\n\t\tthis.valpha = object.valpha;\n\t} else if (typeof object === 'string') {\n\t\tconst result = colorString.get(object);\n\t\tif (result === null) {\n\t\t\tthrow new Error('Unable to parse color from string: ' + object);\n\t\t}\n\n\t\tthis.model = result.model;\n\t\tchannels = convert[this.model].channels;\n\t\tthis.color = result.value.slice(0, channels);\n\t\tthis.valpha = typeof result.value[channels] === 'number' ? result.value[channels] : 1;\n\t} else if (object.length > 0) {\n\t\tthis.model = model || 'rgb';\n\t\tchannels = convert[this.model].channels;\n\t\tconst newArray = Array.prototype.slice.call(object, 0, channels);\n\t\tthis.color = zeroArray(newArray, channels);\n\t\tthis.valpha = typeof object[channels] === 'number' ? object[channels] : 1;\n\t} else if (typeof object === 'number') {\n\t\t// This is always RGB - can be converted later on.\n\t\tthis.model = 'rgb';\n\t\tthis.color = [\n\t\t\t(object >> 16) & 0xFF,\n\t\t\t(object >> 8) & 0xFF,\n\t\t\tobject & 0xFF,\n\t\t];\n\t\tthis.valpha = 1;\n\t} else {\n\t\tthis.valpha = 1;\n\n\t\tconst keys = Object.keys(object);\n\t\tif ('alpha' in object) {\n\t\t\tkeys.splice(keys.indexOf('alpha'), 1);\n\t\t\tthis.valpha = typeof object.alpha === 'number' ? object.alpha : 0;\n\t\t}\n\n\t\tconst hashedKeys = keys.sort().join('');\n\t\tif (!(hashedKeys in hashedModelKeys)) {\n\t\t\tthrow new Error('Unable to parse color from object: ' + JSON.stringify(object));\n\t\t}\n\n\t\tthis.model = hashedModelKeys[hashedKeys];\n\n\t\tconst {labels} = convert[this.model];\n\t\tconst color = [];\n\t\tfor (i = 0; i < labels.length; i++) {\n\t\t\tcolor.push(object[labels[i]]);\n\t\t}\n\n\t\tthis.color = zeroArray(color);\n\t}\n\n\t// Perform limitations (clamping, etc.)\n\tif (limiters[this.model]) {\n\t\tchannels = convert[this.model].channels;\n\t\tfor (i = 0; i < channels; i++) {\n\t\t\tconst limit = limiters[this.model][i];\n\t\t\tif (limit) {\n\t\t\t\tthis.color[i] = limit(this.color[i]);\n\t\t\t}\n\t\t}\n\t}\n\n\tthis.valpha = Math.max(0, Math.min(1, this.valpha));\n\n\tif (Object.freeze) {\n\t\tObject.freeze(this);\n\t}\n}\n\nColor.prototype = {\n\ttoString() {\n\t\treturn this.string();\n\t},\n\n\ttoJSON() {\n\t\treturn this[this.model]();\n\t},\n\n\tstring(places) {\n\t\tlet self = this.model in colorString.to ? this : this.rgb();\n\t\tself = self.round(typeof places === 'number' ? places : 1);\n\t\tconst arguments_ = self.valpha === 1 ? self.color : [...self.color, this.valpha];\n\t\treturn colorString.to[self.model](...arguments_);\n\t},\n\n\tpercentString(places) {\n\t\tconst self = this.rgb().round(typeof places === 'number' ? places : 1);\n\t\tconst arguments_ = self.valpha === 1 ? self.color : [...self.color, this.valpha];\n\t\treturn colorString.to.rgb.percent(...arguments_);\n\t},\n\n\tarray() {\n\t\treturn this.valpha === 1 ? [...this.color] : [...this.color, this.valpha];\n\t},\n\n\tobject() {\n\t\tconst result = {};\n\t\tconst {channels} = convert[this.model];\n\t\tconst {labels} = convert[this.model];\n\n\t\tfor (let i = 0; i < channels; i++) {\n\t\t\tresult[labels[i]] = this.color[i];\n\t\t}\n\n\t\tif (this.valpha !== 1) {\n\t\t\tresult.alpha = this.valpha;\n\t\t}\n\n\t\treturn result;\n\t},\n\n\tunitArray() {\n\t\tconst rgb = this.rgb().color;\n\t\trgb[0] /= 255;\n\t\trgb[1] /= 255;\n\t\trgb[2] /= 255;\n\n\t\tif (this.valpha !== 1) {\n\t\t\trgb.push(this.valpha);\n\t\t}\n\n\t\treturn rgb;\n\t},\n\n\tunitObject() {\n\t\tconst rgb = this.rgb().object();\n\t\trgb.r /= 255;\n\t\trgb.g /= 255;\n\t\trgb.b /= 255;\n\n\t\tif (this.valpha !== 1) {\n\t\t\trgb.alpha = this.valpha;\n\t\t}\n\n\t\treturn rgb;\n\t},\n\n\tround(places) {\n\t\tplaces = Math.max(places || 0, 0);\n\t\treturn new Color([...this.color.map(roundToPlace(places)), this.valpha], this.model);\n\t},\n\n\talpha(value) {\n\t\tif (value !== undefined) {\n\t\t\treturn new Color([...this.color, Math.max(0, Math.min(1, value))], this.model);\n\t\t}\n\n\t\treturn this.valpha;\n\t},\n\n\t// Rgb\n\tred: getset('rgb', 0, maxfn(255)),\n\tgreen: getset('rgb', 1, maxfn(255)),\n\tblue: getset('rgb', 2, maxfn(255)),\n\n\thue: getset(['hsl', 'hsv', 'hsl', 'hwb', 'hcg'], 0, value => ((value % 360) + 360) % 360),\n\n\tsaturationl: getset('hsl', 1, maxfn(100)),\n\tlightness: getset('hsl', 2, maxfn(100)),\n\n\tsaturationv: getset('hsv', 1, maxfn(100)),\n\tvalue: getset('hsv', 2, maxfn(100)),\n\n\tchroma: getset('hcg', 1, maxfn(100)),\n\tgray: getset('hcg', 2, maxfn(100)),\n\n\twhite: getset('hwb', 1, maxfn(100)),\n\twblack: getset('hwb', 2, maxfn(100)),\n\n\tcyan: getset('cmyk', 0, maxfn(100)),\n\tmagenta: getset('cmyk', 1, maxfn(100)),\n\tyellow: getset('cmyk', 2, maxfn(100)),\n\tblack: getset('cmyk', 3, maxfn(100)),\n\n\tx: getset('xyz', 0, maxfn(95.047)),\n\ty: getset('xyz', 1, maxfn(100)),\n\tz: getset('xyz', 2, maxfn(108.833)),\n\n\tl: getset('lab', 0, maxfn(100)),\n\ta: getset('lab', 1),\n\tb: getset('lab', 2),\n\n\tkeyword(value) {\n\t\tif (value !== undefined) {\n\t\t\treturn new Color(value);\n\t\t}\n\n\t\treturn convert[this.model].keyword(this.color);\n\t},\n\n\thex(value) {\n\t\tif (value !== undefined) {\n\t\t\treturn new Color(value);\n\t\t}\n\n\t\treturn colorString.to.hex(...this.rgb().round().color);\n\t},\n\n\thexa(value) {\n\t\tif (value !== undefined) {\n\t\t\treturn new Color(value);\n\t\t}\n\n\t\tconst rgbArray = this.rgb().round().color;\n\n\t\tlet alphaHex = Math.round(this.valpha * 255).toString(16).toUpperCase();\n\t\tif (alphaHex.length === 1) {\n\t\t\talphaHex = '0' + alphaHex;\n\t\t}\n\n\t\treturn colorString.to.hex(...rgbArray) + alphaHex;\n\t},\n\n\trgbNumber() {\n\t\tconst rgb = this.rgb().color;\n\t\treturn ((rgb[0] & 0xFF) << 16) | ((rgb[1] & 0xFF) << 8) | (rgb[2] & 0xFF);\n\t},\n\n\tluminosity() {\n\t\t// http://www.w3.org/TR/WCAG20/#relativeluminancedef\n\t\tconst rgb = this.rgb().color;\n\n\t\tconst lum = [];\n\t\tfor (const [i, element] of rgb.entries()) {\n\t\t\tconst chan = element / 255;\n\t\t\tlum[i] = (chan <= 0.04045) ? chan / 12.92 : ((chan + 0.055) / 1.055) ** 2.4;\n\t\t}\n\n\t\treturn 0.2126 * lum[0] + 0.7152 * lum[1] + 0.0722 * lum[2];\n\t},\n\n\tcontrast(color2) {\n\t\t// http://www.w3.org/TR/WCAG20/#contrast-ratiodef\n\t\tconst lum1 = this.luminosity();\n\t\tconst lum2 = color2.luminosity();\n\n\t\tif (lum1 > lum2) {\n\t\t\treturn (lum1 + 0.05) / (lum2 + 0.05);\n\t\t}\n\n\t\treturn (lum2 + 0.05) / (lum1 + 0.05);\n\t},\n\n\tlevel(color2) {\n\t\t// https://www.w3.org/TR/WCAG/#contrast-enhanced\n\t\tconst contrastRatio = this.contrast(color2);\n\t\tif (contrastRatio >= 7) {\n\t\t\treturn 'AAA';\n\t\t}\n\n\t\treturn (contrastRatio >= 4.5) ? 'AA' : '';\n\t},\n\n\tisDark() {\n\t\t// YIQ equation from http://24ways.org/2010/calculating-color-contrast\n\t\tconst rgb = this.rgb().color;\n\t\tconst yiq = (rgb[0] * 2126 + rgb[1] * 7152 + rgb[2] * 722) / 10000;\n\t\treturn yiq < 128;\n\t},\n\n\tisLight() {\n\t\treturn !this.isDark();\n\t},\n\n\tnegate() {\n\t\tconst rgb = this.rgb();\n\t\tfor (let i = 0; i < 3; i++) {\n\t\t\trgb.color[i] = 255 - rgb.color[i];\n\t\t}\n\n\t\treturn rgb;\n\t},\n\n\tlighten(ratio) {\n\t\tconst hsl = this.hsl();\n\t\thsl.color[2] += hsl.color[2] * ratio;\n\t\treturn hsl;\n\t},\n\n\tdarken(ratio) {\n\t\tconst hsl = this.hsl();\n\t\thsl.color[2] -= hsl.color[2] * ratio;\n\t\treturn hsl;\n\t},\n\n\tsaturate(ratio) {\n\t\tconst hsl = this.hsl();\n\t\thsl.color[1] += hsl.color[1] * ratio;\n\t\treturn hsl;\n\t},\n\n\tdesaturate(ratio) {\n\t\tconst hsl = this.hsl();\n\t\thsl.color[1] -= hsl.color[1] * ratio;\n\t\treturn hsl;\n\t},\n\n\twhiten(ratio) {\n\t\tconst hwb = this.hwb();\n\t\thwb.color[1] += hwb.color[1] * ratio;\n\t\treturn hwb;\n\t},\n\n\tblacken(ratio) {\n\t\tconst hwb = this.hwb();\n\t\thwb.color[2] += hwb.color[2] * ratio;\n\t\treturn hwb;\n\t},\n\n\tgrayscale() {\n\t\t// http://en.wikipedia.org/wiki/Grayscale#Converting_colour_to_grayscale\n\t\tconst rgb = this.rgb().color;\n\t\tconst value = rgb[0] * 0.3 + rgb[1] * 0.59 + rgb[2] * 0.11;\n\t\treturn Color.rgb(value, value, value);\n\t},\n\n\tfade(ratio) {\n\t\treturn this.alpha(this.valpha - (this.valpha * ratio));\n\t},\n\n\topaquer(ratio) {\n\t\treturn this.alpha(this.valpha + (this.valpha * ratio));\n\t},\n\n\trotate(degrees) {\n\t\tconst hsl = this.hsl();\n\t\tlet hue = hsl.color[0];\n\t\thue = (hue + degrees) % 360;\n\t\thue = hue < 0 ? 360 + hue : hue;\n\t\thsl.color[0] = hue;\n\t\treturn hsl;\n\t},\n\n\tmix(mixinColor, weight) {\n\t\t// Ported from sass implementation in C\n\t\t// https://github.com/sass/libsass/blob/0e6b4a2850092356aa3ece07c6b249f0221caced/functions.cpp#L209\n\t\tif (!mixinColor || !mixinColor.rgb) {\n\t\t\tthrow new Error('Argument to \"mix\" was not a Color instance, but rather an instance of ' + typeof mixinColor);\n\t\t}\n\n\t\tconst color1 = mixinColor.rgb();\n\t\tconst color2 = this.rgb();\n\t\tconst p = weight === undefined ? 0.5 : weight;\n\n\t\tconst w = 2 * p - 1;\n\t\tconst a = color1.alpha() - color2.alpha();\n\n\t\tconst w1 = (((w * a === -1) ? w : (w + a) / (1 + w * a)) + 1) / 2;\n\t\tconst w2 = 1 - w1;\n\n\t\treturn Color.rgb(\n\t\t\tw1 * color1.red() + w2 * color2.red(),\n\t\t\tw1 * color1.green() + w2 * color2.green(),\n\t\t\tw1 * color1.blue() + w2 * color2.blue(),\n\t\t\tcolor1.alpha() * p + color2.alpha() * (1 - p));\n\t},\n};\n\n// Model conversion methods and static constructors\nfor (const model of Object.keys(convert)) {\n\tif (skippedModels.includes(model)) {\n\t\tcontinue;\n\t}\n\n\tconst {channels} = convert[model];\n\n\t// Conversion methods\n\tColor.prototype[model] = function (...arguments_) {\n\t\tif (this.model === model) {\n\t\t\treturn new Color(this);\n\t\t}\n\n\t\tif (arguments_.length > 0) {\n\t\t\treturn new Color(arguments_, model);\n\t\t}\n\n\t\treturn new Color([...assertArray(convert[this.model][model].raw(this.color)), this.valpha], model);\n\t};\n\n\t// 'static' construction methods\n\tColor[model] = function (...arguments_) {\n\t\tlet color = arguments_[0];\n\t\tif (typeof color === 'number') {\n\t\t\tcolor = zeroArray(arguments_, channels);\n\t\t}\n\n\t\treturn new Color(color, model);\n\t};\n}\n\nfunction roundTo(number, places) {\n\treturn Number(number.toFixed(places));\n}\n\nfunction roundToPlace(places) {\n\treturn function (number) {\n\t\treturn roundTo(number, places);\n\t};\n}\n\nfunction getset(model, channel, modifier) {\n\tmodel = Array.isArray(model) ? model : [model];\n\n\tfor (const m of model) {\n\t\t(limiters[m] ||= [])[channel] = modifier;\n\t}\n\n\tmodel = model[0];\n\n\treturn function (value) {\n\t\tlet result;\n\n\t\tif (value !== undefined) {\n\t\t\tif (modifier) {\n\t\t\t\tvalue = modifier(value);\n\t\t\t}\n\n\t\t\tresult = this[model]();\n\t\t\tresult.color[channel] = value;\n\t\t\treturn result;\n\t\t}\n\n\t\tresult = this[model]().color[channel];\n\t\tif (modifier) {\n\t\t\tresult = modifier(result);\n\t\t}\n\n\t\treturn result;\n\t};\n}\n\nfunction maxfn(max) {\n\treturn function (v) {\n\t\treturn Math.max(0, Math.min(max, v));\n\t};\n}\n\nfunction assertArray(value) {\n\treturn Array.isArray(value) ? value : [value];\n}\n\nfunction zeroArray(array, length) {\n\tfor (let i = 0; i < length; i++) {\n\t\tif (typeof array[i] !== 'number') {\n\t\t\tarray[i] = 0;\n\t\t}\n\t}\n\n\treturn array;\n}\n\nexport default Color;\n","const TagSymbol = Symbol('BrandTag');\nclass Brand {\n constructor(tag) {\n this[TagSymbol] = tag;\n }\n}\nexport const Unit = new Brand('unit');\nexport default Unit;\n//# sourceMappingURL=unit.js.map","export const isVoid = (value) => typeof value === 'undefined' || value === null;\nexport function curry1(op, item) {\n return item !== undefined ? op(item) : op;\n}\nfunction has(value, key) {\n return typeof value === 'object' && value !== null && key in value;\n}\nexport function safeToString(value) {\n if (has(value, 'toString') && typeof value['toString'] === 'function') {\n const fnResult = value.toString();\n return typeof fnResult === 'string' ? fnResult : JSON.stringify(value);\n }\n else {\n return JSON.stringify(value);\n }\n}\n//# sourceMappingURL=utils.js.map","import Unit from './unit.js';\nimport { curry1, isVoid, safeToString } from './-private/utils.js';\nimport * as Toolbelt from './toolbelt.js';\nexport const Variant = {\n Ok: 'Ok',\n Err: 'Err',\n};\nclass ResultImpl {\n constructor(repr) {\n this.repr = repr;\n }\n static ok(value) {\n return isVoid(value)\n ? new ResultImpl(['Ok', Unit])\n : new ResultImpl(['Ok', value]);\n }\n static err(error) {\n return isVoid(error)\n ? new ResultImpl(['Err', Unit])\n : new ResultImpl(['Err', error]);\n }\n get variant() {\n return this.repr[0];\n }\n get value() {\n if (this.repr[0] === Variant.Err) {\n throw new Error('Cannot get the value of Err');\n }\n return this.repr[1];\n }\n get error() {\n if (this.repr[0] === Variant.Ok) {\n throw new Error('Cannot get the error of Ok');\n }\n return this.repr[1];\n }\n get isOk() {\n return this.repr[0] === Variant.Ok;\n }\n get isErr() {\n return this.repr[0] === Variant.Err;\n }\n map(mapFn) {\n return map(mapFn, this);\n }\n mapOr(orU, mapFn) {\n return mapOr(orU, mapFn, this);\n }\n mapOrElse(orElseFn, mapFn) {\n return mapOrElse(orElseFn, mapFn, this);\n }\n match(matcher) {\n return match(matcher, this);\n }\n mapErr(mapErrFn) {\n return mapErr(mapErrFn, this);\n }\n or(orResult) {\n return or(orResult, this);\n }\n orElse(orElseFn) {\n return orElse(orElseFn, this);\n }\n and(mAnd) {\n return and(mAnd, this);\n }\n andThen(andThenFn) {\n return andThen(andThenFn, this);\n }\n unwrapOr(defaultValue) {\n return unwrapOr(defaultValue, this);\n }\n unwrapOrElse(elseFn) {\n return unwrapOrElse(elseFn, this);\n }\n toMaybe() {\n return Toolbelt.toMaybe(this);\n }\n toString() {\n return toString(this);\n }\n toJSON() {\n return toJSON(this);\n }\n equals(comparison) {\n return equals(comparison, this);\n }\n ap(r) {\n return ap(this, r);\n }\n}\nexport function tryOr(error, callback) {\n const op = (cb) => {\n try {\n return ok(cb());\n }\n catch {\n return err(error);\n }\n };\n return curry1(op, callback);\n}\nexport const ok = ResultImpl.ok;\nexport function isOk(result) {\n return result.isOk;\n}\nexport function isErr(result) {\n return result.isErr;\n}\nexport const err = ResultImpl.err;\nexport function tryOrElse(onError, callback) {\n const op = (cb) => {\n try {\n return ok(cb());\n }\n catch (e) {\n return err(onError(e));\n }\n };\n return curry1(op, callback);\n}\nexport function map(mapFn, result) {\n const op = (r) => (r.isOk ? ok(mapFn(r.value)) : r);\n return curry1(op, result);\n}\nexport function mapOr(orU, mapFn, result) {\n function fullOp(fn, r) {\n return r.isOk ? fn(r.value) : orU;\n }\n function partialOp(fn, curriedResult) {\n return curriedResult !== undefined\n ? fullOp(fn, curriedResult)\n : (extraCurriedResult) => fullOp(fn, extraCurriedResult);\n }\n return mapFn === undefined\n ? partialOp\n : result === undefined\n ? partialOp(mapFn)\n : partialOp(mapFn, result);\n}\nexport function mapOrElse(orElseFn, mapFn, result) {\n function fullOp(fn, r) {\n return r.isOk ? fn(r.value) : orElseFn(r.error);\n }\n function partialOp(fn, curriedResult) {\n return curriedResult !== undefined\n ? fullOp(fn, curriedResult)\n : (extraCurriedResult) => fullOp(fn, extraCurriedResult);\n }\n return mapFn === undefined\n ? partialOp\n : result === undefined\n ? partialOp(mapFn)\n : partialOp(mapFn, result);\n}\nexport function mapErr(mapErrFn, result) {\n const op = (r) => (r.isOk ? r : err(mapErrFn(r.error)));\n return curry1(op, result);\n}\nexport function and(andResult, result) {\n const op = (r) => (r.isOk ? andResult : err(r.error));\n return curry1(op, result);\n}\nexport function andThen(thenFn, result) {\n const op = (r) => (r.isOk ? thenFn(r.value) : err(r.error));\n return curry1(op, result);\n}\nexport function or(defaultResult, result) {\n const op = (r) => (r.isOk ? ok(r.value) : defaultResult);\n return curry1(op, result);\n}\nexport function orElse(elseFn, result) {\n const op = (r) => (r.isOk ? ok(r.value) : elseFn(r.error));\n return curry1(op, result);\n}\nexport function unwrapOr(defaultValue, result) {\n const op = (r) => (r.isOk ? r.value : defaultValue);\n return curry1(op, result);\n}\nexport function unwrapOrElse(orElseFn, result) {\n const op = (r) => (r.isOk ? r.value : orElseFn(r.error));\n return curry1(op, result);\n}\nexport function fromMaybe(errValue, maybe) {\n const op = (m) => (m.isJust ? ok(m.value) : err(errValue));\n return curry1(op, maybe);\n}\nexport const toString = (result) => {\n const body = result.match({ Ok: safeToString, Err: safeToString });\n return `${result.variant.toString()}(${body})`;\n};\nexport const toJSON = (result) => {\n return result.isOk\n ? { variant: result.variant, value: result.value }\n : { variant: result.variant, error: result.error };\n};\nexport function match(matcher, result) {\n const op = (r) => mapOrElse(matcher.Err, matcher.Ok, r);\n return curry1(op, result);\n}\nexport function equals(resultB, resultA) {\n return resultA !== undefined\n ? resultA.match({\n Err: () => resultB.isErr,\n Ok: (a) => resultB.isOk && resultB.value === a,\n })\n : (curriedResultA) => curriedResultA.match({\n Err: () => resultB.isErr,\n Ok: (a) => resultB.isOk && resultB.value === a,\n });\n}\nexport function ap(resultFn, result) {\n const op = (r) => r.andThen((val) => resultFn.map((fn) => fn(val)));\n return curry1(op, result);\n}\nexport function isInstance(item) {\n return item instanceof ResultImpl;\n}\nexport function transposeMaybe(maybe) {\n return Toolbelt.transposeMaybe(maybe);\n}\nexport function toMaybe(result) {\n return Toolbelt.toMaybe(result);\n}\nexport const Result = ResultImpl;\nexport default Result;\n//# sourceMappingURL=result.js.map","import Result from './result.js';\nimport Maybe from './maybe.js';\nimport { curry1 } from './-private/utils.js';\nexport function transposeResult(result) {\n return result.match({\n Ok: (maybe) => maybe.match({\n Just: (v) => Maybe.just(Result.ok(v)),\n Nothing: () => Maybe.nothing(),\n }),\n Err: (e) => Maybe.just(Result.err(e)),\n });\n}\nexport function toMaybe(result) {\n return result.isOk ? Maybe.just(result.value) : Maybe.nothing();\n}\nexport function fromMaybe(errValue, maybe) {\n const op = (m) => (m.isJust ? Result.ok(m.value) : Result.err(errValue));\n return curry1(op, maybe);\n}\nexport function transposeMaybe(maybe) {\n return maybe.match({\n Just: (result) => result.match({\n Ok: (v) => Result.ok(Maybe.just(v)),\n Err: (e) => Result.err(e),\n }),\n Nothing: () => Result.ok(Maybe.nothing()),\n });\n}\nexport function toOkOrErr(error, maybe) {\n const op = (m) => (m.isJust ? Result.ok(m.value) : Result.err(error));\n return maybe !== undefined ? op(maybe) : op;\n}\nexport function toOkOrElseErr(elseFn, maybe) {\n const op = (m) => (m.isJust ? Result.ok(m.value) : Result.err(elseFn()));\n return curry1(op, maybe);\n}\nexport function fromResult(result) {\n return result.isOk ? Maybe.just(result.value) : Maybe.nothing();\n}\n//# sourceMappingURL=toolbelt.js.map","import Result from './result.js';\nimport { curry1, isVoid, safeToString } from './-private/utils.js';\nimport * as Toolbelt from './toolbelt.js';\nexport const Variant = {\n Just: 'Just',\n Nothing: 'Nothing',\n};\nlet NOTHING;\nclass MaybeImpl {\n constructor(value) {\n if (isVoid(value)) {\n this.repr = [Variant.Nothing];\n if (!NOTHING) {\n NOTHING = this;\n }\n return NOTHING;\n }\n else {\n this.repr = [Variant.Just, value];\n }\n }\n static of(value) {\n return new MaybeImpl(value);\n }\n static just(value) {\n if (isVoid(value)) {\n throw new Error(`attempted to call \"just\" with ${value}`);\n }\n return new MaybeImpl(value);\n }\n static nothing(_) {\n return new MaybeImpl();\n }\n get variant() {\n return this.repr[0];\n }\n get value() {\n if (this.repr[0] === Variant.Nothing) {\n throw new Error('Cannot get the value of `Nothing`');\n }\n return this.repr[1];\n }\n get isJust() {\n return this.repr[0] === Variant.Just;\n }\n get isNothing() {\n return this.repr[0] === Variant.Nothing;\n }\n map(mapFn) {\n return map(mapFn, this);\n }\n mapOr(orU, mapFn) {\n return mapOr(orU, mapFn, this);\n }\n mapOrElse(orElseFn, mapFn) {\n return mapOrElse(orElseFn, mapFn, this);\n }\n match(matcher) {\n return match(matcher, this);\n }\n or(mOr) {\n return or(mOr, this);\n }\n orElse(orElseFn) {\n return orElse(orElseFn, this);\n }\n and(mAnd) {\n return and(mAnd, this);\n }\n andThen(andThenFn) {\n return andThen(andThenFn, this);\n }\n unwrapOr(defaultValue) {\n return unwrapOr(defaultValue, this);\n }\n unwrapOrElse(elseFn) {\n return unwrapOrElse(elseFn, this);\n }\n toOkOrErr(error) {\n return Toolbelt.toOkOrErr(error, this);\n }\n toOkOrElseErr(elseFn) {\n return Toolbelt.toOkOrElseErr(elseFn, this);\n }\n toString() {\n return toString(this);\n }\n toJSON() {\n return toJSON(this);\n }\n equals(comparison) {\n return equals(comparison, this);\n }\n ap(val) {\n return ap(this, val);\n }\n get(key) {\n return get(key, this);\n }\n}\nexport const just = MaybeImpl.just;\nexport function isJust(maybe) {\n return maybe.isJust;\n}\nexport function isNothing(maybe) {\n return maybe.isNothing;\n}\nexport const nothing = MaybeImpl.nothing;\nexport const of = MaybeImpl.of;\nexport function map(mapFn, maybe) {\n const op = (m) => (m.isJust ? just(mapFn(m.value)) : nothing());\n return curry1(op, maybe);\n}\nexport function mapOr(orU, mapFn, maybe) {\n function fullOp(fn, m) {\n return m.isJust ? fn(m.value) : orU;\n }\n function partialOp(fn, curriedMaybe) {\n return curriedMaybe !== undefined\n ? fullOp(fn, curriedMaybe)\n : (extraCurriedMaybe) => fullOp(fn, extraCurriedMaybe);\n }\n return mapFn === undefined\n ? partialOp\n : maybe === undefined\n ? partialOp(mapFn)\n : partialOp(mapFn, maybe);\n}\nexport function mapOrElse(orElseFn, mapFn, maybe) {\n function fullOp(fn, m) {\n return m.isJust ? fn(m.value) : orElseFn();\n }\n function partialOp(fn, curriedMaybe) {\n return curriedMaybe !== undefined\n ? fullOp(fn, curriedMaybe)\n : (extraCurriedMaybe) => fullOp(fn, extraCurriedMaybe);\n }\n if (mapFn === undefined) {\n return partialOp;\n }\n else if (maybe === undefined) {\n return partialOp(mapFn);\n }\n else {\n return partialOp(mapFn, maybe);\n }\n}\nexport function and(andMaybe, maybe) {\n const op = (m) => (m.isJust ? andMaybe : nothing());\n return curry1(op, maybe);\n}\nexport function andThen(thenFn, maybe) {\n const op = (m) => (m.isJust ? thenFn(m.value) : nothing());\n return maybe !== undefined ? op(maybe) : op;\n}\nexport function or(defaultMaybe, maybe) {\n const op = (m) => (m.isJust ? m : defaultMaybe);\n return maybe !== undefined ? op(maybe) : op;\n}\nexport function orElse(elseFn, maybe) {\n const op = (m) => (m.isJust ? m : elseFn());\n return curry1(op, maybe);\n}\nexport function unwrapOr(defaultValue, maybe) {\n const op = (m) => (m.isJust ? m.value : defaultValue);\n return curry1(op, maybe);\n}\nexport function unwrapOrElse(orElseFn, maybe) {\n const op = (m) => (m.isJust ? m.value : orElseFn());\n return curry1(op, maybe);\n}\nexport function fromResult(result) {\n return Toolbelt.fromResult(result);\n}\nexport function toString(maybe) {\n const body = maybe.map((value) => `(${safeToString(value)})`).unwrapOr('');\n return `${maybe.variant}${body}`;\n}\nexport function toJSON(maybe) {\n return maybe.isJust\n ? {\n variant: maybe.variant,\n value: isInstance(maybe.value) ? maybe.value.toJSON() : maybe.value,\n }\n : { variant: maybe.variant };\n}\nexport function match(matcher, maybe) {\n const op = (curriedMaybe) => mapOrElse(matcher.Nothing, matcher.Just, curriedMaybe);\n return curry1(op, maybe);\n}\nexport function equals(mb, ma) {\n const op = (maybeA) => maybeA.match({\n Just: (aVal) => mb.isJust && mb.value === aVal,\n Nothing: () => mb.isNothing,\n });\n return curry1(op, ma);\n}\nexport function ap(maybeFn, maybe) {\n const op = (m) => m.andThen((val) => maybeFn.map((fn) => fn(val)));\n return curry1(op, maybe);\n}\nexport function isInstance(item) {\n return item instanceof Maybe;\n}\nexport function find(predicate, array) {\n const op = (a) => Maybe.of(a.find(predicate));\n return curry1(op, array);\n}\nexport function first(array) {\n return Maybe.of(array[0]);\n}\nexport const head = first;\nexport function last(array) {\n return Maybe.of(array[array.length - 1]);\n}\nexport function transposeArray(maybes) {\n return maybes.reduce((acc, m) => acc.andThen((ms) => m.map((m) => [...ms, m])), just([]));\n}\nexport const all = transposeArray;\nexport const tuple = transposeArray;\nexport function transposeResult(result) {\n return Toolbelt.transposeResult(result);\n}\nexport function toOkOrErr(error, maybe) {\n const op = (m) => (m.isJust ? Result.ok(m.value) : Result.err(error));\n return maybe !== undefined ? op(maybe) : op;\n}\nexport function toOkOrElseErr(elseFn, maybe) {\n const op = (m) => (m.isJust ? Result.ok(m.value) : Result.err(elseFn()));\n return curry1(op, maybe);\n}\nexport function property(key, obj) {\n const op = (a) => Maybe.of(a[key]);\n return curry1(op, obj);\n}\nexport function get(key, maybeObj) {\n return curry1(andThen(property(key)), maybeObj);\n}\nexport function wrapReturn(fn) {\n return (...args) => Maybe.of(fn(...args));\n}\nexport const Maybe = MaybeImpl;\nexport default Maybe;\n//# sourceMappingURL=maybe.js.map","export var util;\n(function (util) {\n util.assertEqual = (_) => { };\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\" && Number.isFinite(val) && Math.floor(val) === val;\n function joinValues(array, separator = \" | \") {\n return array.map((val) => (typeof val === \"string\" ? `'${val}'` : val)).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 = {}));\nexport var objectUtil;\n(function (objectUtil) {\n objectUtil.mergeShapes = (first, second) => {\n return {\n ...first,\n ...second, // second overwrites first\n };\n };\n})(objectUtil || (objectUtil = {}));\nexport const 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]);\nexport const 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 Number.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 && typeof data.then === \"function\" && data.catch && 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","import { util } from \"./helpers/util.js\";\nexport const 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]);\nexport const quotelessJson = (obj) => {\n const json = JSON.stringify(obj, null, 2);\n return json.replace(/\"([^\"]+)\":/g, \"$1:\");\n};\nexport class 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 const firstEl = sub.path[0];\n fieldErrors[firstEl] = fieldErrors[firstEl] || [];\n fieldErrors[firstEl].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","import { ZodIssueCode } from \"../ZodError.js\";\nimport { util, ZodParsedType } from \"../helpers/util.js\";\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 ? `exactly equal to ` : issue.inclusive ? `greater than or equal to ` : `greater than `}${issue.minimum}`;\n else if (issue.type === \"bigint\")\n message = `Number must be ${issue.exact ? `exactly equal to ` : issue.inclusive ? `greater than or equal to ` : `greater than `}${issue.minimum}`;\n else if (issue.type === \"date\")\n message = `Date must be ${issue.exact ? `exactly equal to ` : issue.inclusive ? `greater than or equal to ` : `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 ? `exactly` : issue.inclusive ? `less than or equal to` : `less than`} ${issue.maximum}`;\n else if (issue.type === \"bigint\")\n message = `BigInt must be ${issue.exact ? `exactly` : issue.inclusive ? `less than or equal to` : `less than`} ${issue.maximum}`;\n else if (issue.type === \"date\")\n message = `Date must be ${issue.exact ? `exactly` : issue.inclusive ? `smaller than or equal to` : `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};\nexport default errorMap;\n","import defaultErrorMap from \"./locales/en.js\";\nlet overrideErrorMap = defaultErrorMap;\nexport { defaultErrorMap };\nexport function setErrorMap(map) {\n overrideErrorMap = map;\n}\nexport function getErrorMap() {\n return overrideErrorMap;\n}\n","import { getErrorMap } from \"../errors.js\";\nimport defaultErrorMap from \"../locales/en.js\";\nexport const 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};\nexport const EMPTY_PATH = [];\nexport function 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 === defaultErrorMap ? undefined : defaultErrorMap, // then global default map\n ].filter((x) => !!x),\n });\n ctx.common.issues.push(issue);\n}\nexport class 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__\" && (typeof value.value !== \"undefined\" || pair.alwaysSet)) {\n finalObject[key.value] = value.value;\n }\n }\n return { status: status.value, value: finalObject };\n }\n}\nexport const INVALID = Object.freeze({\n status: \"aborted\",\n});\nexport const DIRTY = (value) => ({ status: \"dirty\", value });\nexport const OK = (value) => ({ status: \"valid\", value });\nexport const isAborted = (x) => x.status === \"aborted\";\nexport const isDirty = (x) => x.status === \"dirty\";\nexport const isValid = (x) => x.status === \"valid\";\nexport const isAsync = (x) => typeof Promise !== \"undefined\" && x instanceof Promise;\n","export var errorUtil;\n(function (errorUtil) {\n errorUtil.errToObj = (message) => typeof message === \"string\" ? { message } : message || {};\n // biome-ignore lint:\n errorUtil.toString = (message) => typeof message === \"string\" ? message : message?.message;\n})(errorUtil || (errorUtil = {}));\n","import { ZodError, ZodIssueCode, } from \"./ZodError.js\";\nimport { defaultErrorMap, getErrorMap } from \"./errors.js\";\nimport { errorUtil } from \"./helpers/errorUtil.js\";\nimport { DIRTY, INVALID, OK, ParseStatus, addIssueToContext, isAborted, isAsync, isDirty, isValid, makeIssue, } from \"./helpers/parseUtil.js\";\nimport { util, ZodParsedType, getParsedType } from \"./helpers/util.js\";\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 (Array.isArray(this._key)) {\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 const { message } = params;\n if (iss.code === \"invalid_enum_value\") {\n return { message: message ?? ctx.defaultError };\n }\n if (typeof ctx.data === \"undefined\") {\n return { message: message ?? required_error ?? ctx.defaultError };\n }\n if (iss.code !== \"invalid_type\")\n return { message: ctx.defaultError };\n return { message: message ?? invalid_type_error ?? ctx.defaultError };\n };\n return { errorMap: customMap, description };\n}\nexport class 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 const ctx = {\n common: {\n issues: [],\n async: params?.async ?? false,\n contextualErrorMap: params?.errorMap,\n },\n path: 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 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 (err?.message?.toLowerCase()?.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?.errorMap,\n async: true,\n },\n path: 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) ? maybeAsyncResult : 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\" ? refinementData(val, ctx) : 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 secondsRegexSource = `[0-5]\\\\d`;\n if (args.precision) {\n secondsRegexSource = `${secondsRegexSource}\\\\.\\\\d{${args.precision}}`;\n }\n else if (args.precision == null) {\n secondsRegexSource = `${secondsRegexSource}(\\\\.\\\\d+)?`;\n }\n const secondsQuantifier = args.precision ? \"+\" : \"?\"; // require seconds if precision is nonzero\n return `([01]\\\\d|2[0-3]):[0-5]\\\\d(:${secondsRegexSource})${secondsQuantifier}`;\n}\nfunction timeRegex(args) {\n return new RegExp(`^${timeRegexSource(args)}$`);\n}\n// Adapted from https://stackoverflow.com/a/3143231\nexport function 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 if (!header)\n return false;\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 (\"typ\" in decoded && decoded?.typ !== \"JWT\")\n return false;\n if (!decoded.alg)\n return false;\n if (alg && decoded.alg !== alg)\n return false;\n return true;\n }\n catch {\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}\nexport class 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 {\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 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?.precision === \"undefined\" ? null : options?.precision,\n offset: options?.offset ?? false,\n local: options?.local ?? false,\n ...errorUtil.errToObj(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?.precision === \"undefined\" ? null : options?.precision,\n ...errorUtil.errToObj(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?.position,\n ...errorUtil.errToObj(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 return new ZodString({\n checks: [],\n typeName: ZodFirstPartyTypeKind.ZodString,\n coerce: params?.coerce ?? 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 = Number.parseInt(val.toFixed(decCount).replace(\".\", \"\"));\n const stepInt = Number.parseInt(step.toFixed(decCount).replace(\".\", \"\"));\n return (valInt % stepInt) / 10 ** decCount;\n}\nexport class 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 ? input.data < check.value : 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 ? input.data > check.value : 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\" || (ch.kind === \"multipleOf\" && util.isInteger(ch.value)));\n }\n get isFinite() {\n let max = null;\n let min = null;\n for (const ch of this._def.checks) {\n if (ch.kind === \"finite\" || ch.kind === \"int\" || 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?.coerce || false,\n ...processCreateParams(params),\n });\n};\nexport class 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 {\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 ? input.data < check.value : 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 ? input.data > check.value : 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 return new ZodBigInt({\n checks: [],\n typeName: ZodFirstPartyTypeKind.ZodBigInt,\n coerce: params?.coerce ?? false,\n ...processCreateParams(params),\n });\n};\nexport class 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?.coerce || false,\n ...processCreateParams(params),\n });\n};\nexport class 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 (Number.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?.coerce || false,\n typeName: ZodFirstPartyTypeKind.ZodDate,\n ...processCreateParams(params),\n });\n};\nexport class 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};\nexport class 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};\nexport class 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};\nexport class 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};\nexport class 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};\nexport class 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};\nexport class 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};\nexport class 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}\nexport class 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<T, Augmentation>,\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 this._cached = { shape, keys };\n return this._cached;\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 && 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 }\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 const defaultError = this._def.errorMap?.(issue, ctx).message ?? ctx.defaultError;\n if (issue.code === \"unrecognized_keys\")\n return {\n message: errorUtil.errToObj(message).message ?? 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 extends ZodObjectDef>(def: Def) =>\n // <Augmentation extends ZodRawShape>(\n // augmentation: Augmentation\n // ): ZodObject<\n // extendShape<ReturnType<Def[\"shape\"]>, 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<T, ReturnType<Incoming[\"_def\"][\"shape\"]>>,\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<Incoming extends AnyZodObject>(\n // merging: Incoming\n // ): //ZodObject<T & Incoming[\"_shape\"], UnknownKeys, Catchall> = (merging) => {\n // ZodObject<\n // extendShape<T, ReturnType<Incoming[\"_def\"][\"shape\"]>>,\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 for (const key of util.objectKeys(mask)) {\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 for (const key of util.objectKeys(this.shape)) {\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 for (const key of util.objectKeys(this.shape)) {\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 for (const key of util.objectKeys(this.shape)) {\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};\nexport class 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};\nexport class 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.objectKeys(a).filter((key) => bKeys.indexOf(key) !== -1);\n const newObj = { ...a, ...b };\n for (const key of sharedKeys) {\n const sharedValue = mergeValues(a[key], b[key]);\n if (!sharedValue.valid) {\n return { 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 && bType === ZodParsedType.date && +a === +b) {\n return { valid: true, data: a };\n }\n else {\n return { valid: false };\n }\n}\nexport class 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};\n// type ZodTupleItems = [ZodTypeAny, ...ZodTypeAny[]];\nexport class 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};\nexport class 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}\nexport class 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};\nexport class 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};\nexport class 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: [ctx.common.contextualErrorMap, ctx.schemaErrorMap, getErrorMap(), defaultErrorMap].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: [ctx.common.contextualErrorMap, ctx.schemaErrorMap, getErrorMap(), defaultErrorMap].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.parseAsync(args, params).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 ? args : ZodTuple.create([]).rest(ZodUnknown.create())),\n returns: returns || ZodUnknown.create(),\n typeName: ZodFirstPartyTypeKind.ZodFunction,\n ...processCreateParams(params),\n });\n }\n}\nexport class 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};\nexport class 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}\nexport class ZodEnum extends ZodType {\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 (!this._cache) {\n this._cache = new Set(this._def.values);\n }\n if (!this._cache.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}\nZodEnum.create = createZodEnum;\nexport class ZodNativeEnum extends ZodType {\n _parse(input) {\n const nativeEnumValues = util.getValidEnumValues(this._def.values);\n const ctx = this._getOrReturnCtx(input);\n if (ctx.parsedType !== ZodParsedType.string && 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 (!this._cache) {\n this._cache = new Set(util.getValidEnumValues(this._def.values));\n }\n if (!this._cache.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}\nZodNativeEnum.create = (values, params) => {\n return new ZodNativeEnum({\n values: values,\n typeName: ZodFirstPartyTypeKind.ZodNativeEnum,\n ...processCreateParams(params),\n });\n};\nexport class 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 && 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 ? ctx.data : 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};\nexport class 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._parseAsync({ data: ctx.data, path: ctx.path, parent: ctx }).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 INVALID;\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._parseAsync({ data: ctx.data, path: ctx.path, parent: ctx }).then((base) => {\n if (!isValid(base))\n return INVALID;\n return Promise.resolve(effect.transform(base.value, checkCtx)).then((result) => ({\n status: status.value,\n value: result,\n }));\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};\nexport { ZodEffects as ZodTransformer };\nexport class 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};\nexport class 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};\nexport class 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\" ? params.default : () => params.default,\n ...processCreateParams(params),\n });\n};\nexport class 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};\nexport class 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};\nexport const BRAND = Symbol(\"zod_brand\");\nexport class 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}\nexport class 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}\nexport class 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) ? result.then((data) => freeze(data)) : 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\" ? params(data) : typeof params === \"string\" ? { message: params } : params;\n const p2 = typeof p === \"string\" ? { message: p } : p;\n return p2;\n}\nexport function 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 const r = check(data);\n if (r instanceof Promise) {\n return r.then((r) => {\n if (!r) {\n const params = cleanParams(_params, data);\n const _fatal = params.fatal ?? fatal ?? true;\n ctx.addIssue({ code: \"custom\", ...params, fatal: _fatal });\n }\n });\n }\n if (!r) {\n const params = cleanParams(_params, data);\n const _fatal = params.fatal ?? fatal ?? true;\n ctx.addIssue({ code: \"custom\", ...params, fatal: _fatal });\n }\n return;\n });\n return ZodAny.create();\n}\nexport { ZodType as Schema, ZodType as ZodSchema };\nexport const late = {\n object: ZodObject.lazycreate,\n};\nexport var 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 = {}));\n// requires TS 4.4+\nclass Class {\n constructor(..._) { }\n}\nconst instanceOfType = (\n// const instanceOfType = <T extends new (...args: any[]) => 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();\nexport const 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};\nexport { anyType as any, arrayType as array, bigIntType as bigint, booleanType as boolean, dateType as date, discriminatedUnionType as discriminatedUnion, effectsType as effect, enumType as enum, functionType as function, instanceOfType as instanceof, intersectionType as intersection, lazyType as lazy, literalType as literal, mapType as map, nanType as nan, nativeEnumType as nativeEnum, neverType as never, nullType as null, nullableType as nullable, numberType as number, objectType as object, oboolean, onumber, optionalType as optional, ostring, pipelineType as pipeline, preprocessType as preprocess, promiseType as promise, recordType as record, setType as set, strictObjectType as strictObject, stringType as string, symbolType as symbol, effectsType as transformer, tupleType as tuple, undefinedType as undefined, unionType as union, unknownType as unknown, voidType as void, };\nexport const NEVER = INVALID;\n",null,null,null,null,null,null,null,null,null,"export default function ascending(a, b) {\n return a == null || b == null ? NaN : a < b ? -1 : a > b ? 1 : a >= b ? 0 : NaN;\n}\n","export default function descending(a, b) {\n return a == null || b == null ? NaN\n : b < a ? -1\n : b > a ? 1\n : b >= a ? 0\n : NaN;\n}\n","import ascending from \"./ascending.js\";\nimport descending from \"./descending.js\";\n\nexport default function bisector(f) {\n let compare1, compare2, delta;\n\n // If an accessor is specified, promote it to a comparator. In this case we\n // can test whether the search value is (self-) comparable. We can’t do this\n // for a comparator (except for specific, known comparators) because we can’t\n // tell if the comparator is symmetric, and an asymmetric comparator can’t be\n // used to test whether a single value is comparable.\n if (f.length !== 2) {\n compare1 = ascending;\n compare2 = (d, x) => ascending(f(d), x);\n delta = (d, x) => f(d) - x;\n } else {\n compare1 = f === ascending || f === descending ? f : zero;\n compare2 = f;\n delta = f;\n }\n\n function left(a, x, lo = 0, hi = a.length) {\n if (lo < hi) {\n if (compare1(x, x) !== 0) return hi;\n do {\n const mid = (lo + hi) >>> 1;\n if (compare2(a[mid], x) < 0) lo = mid + 1;\n else hi = mid;\n } while (lo < hi);\n }\n return lo;\n }\n\n function right(a, x, lo = 0, hi = a.length) {\n if (lo < hi) {\n if (compare1(x, x) !== 0) return hi;\n do {\n const mid = (lo + hi) >>> 1;\n if (compare2(a[mid], x) <= 0) lo = mid + 1;\n else hi = mid;\n } while (lo < hi);\n }\n return lo;\n }\n\n function center(a, x, lo = 0, hi = a.length) {\n const i = left(a, x, lo, hi - 1);\n return i > lo && delta(a[i - 1], x) > -delta(a[i], x) ? i - 1 : i;\n }\n\n return {left, center, right};\n}\n\nfunction zero() {\n return 0;\n}\n","import ascending from \"./ascending.js\";\nimport bisector from \"./bisector.js\";\nimport number from \"./number.js\";\n\nconst ascendingBisect = bisector(ascending);\nexport const bisectRight = ascendingBisect.right;\nexport const bisectLeft = ascendingBisect.left;\nexport const bisectCenter = bisector(number).center;\nexport default bisectRight;\n","export default function number(x) {\n return x === null ? NaN : +x;\n}\n\nexport function* numbers(values, valueof) {\n if (valueof === undefined) {\n for (let value of values) {\n if (value != null && (value = +value) >= value) {\n yield value;\n }\n }\n } else {\n let index = -1;\n for (let value of values) {\n if ((value = valueof(value, ++index, values)) != null && (value = +value) >= value) {\n yield value;\n }\n }\n }\n}\n","const e10 = Math.sqrt(50),\n e5 = Math.sqrt(10),\n e2 = Math.sqrt(2);\n\nfunction tickSpec(start, stop, count) {\n const step = (stop - start) / Math.max(0, count),\n power = Math.floor(Math.log10(step)),\n error = step / Math.pow(10, power),\n factor = error >= e10 ? 10 : error >= e5 ? 5 : error >= e2 ? 2 : 1;\n let i1, i2, inc;\n if (power < 0) {\n inc = Math.pow(10, -power) / factor;\n i1 = Math.round(start * inc);\n i2 = Math.round(stop * inc);\n if (i1 / inc < start) ++i1;\n if (i2 / inc > stop) --i2;\n inc = -inc;\n } else {\n inc = Math.pow(10, power) * factor;\n i1 = Math.round(start / inc);\n i2 = Math.round(stop / inc);\n if (i1 * inc < start) ++i1;\n if (i2 * inc > stop) --i2;\n }\n if (i2 < i1 && 0.5 <= count && count < 2) return tickSpec(start, stop, count * 2);\n return [i1, i2, inc];\n}\n\nexport default function ticks(start, stop, count) {\n stop = +stop, start = +start, count = +count;\n if (!(count > 0)) return [];\n if (start === stop) return [start];\n const reverse = stop < start, [i1, i2, inc] = reverse ? tickSpec(stop, start, count) : tickSpec(start, stop, count);\n if (!(i2 >= i1)) return [];\n const n = i2 - i1 + 1, ticks = new Array(n);\n if (reverse) {\n if (inc < 0) for (let i = 0; i < n; ++i) ticks[i] = (i2 - i) / -inc;\n else for (let i = 0; i < n; ++i) ticks[i] = (i2 - i) * inc;\n } else {\n if (inc < 0) for (let i = 0; i < n; ++i) ticks[i] = (i1 + i) / -inc;\n else for (let i = 0; i < n; ++i) ticks[i] = (i1 + i) * inc;\n }\n return ticks;\n}\n\nexport function tickIncrement(start, stop, count) {\n stop = +stop, start = +start, count = +count;\n return tickSpec(start, stop, count)[2];\n}\n\nexport function tickStep(start, stop, count) {\n stop = +stop, start = +start, count = +count;\n const reverse = stop < start, inc = reverse ? tickIncrement(stop, start, count) : tickIncrement(start, stop, count);\n return (reverse ? -1 : 1) * (inc < 0 ? 1 / -inc : inc);\n}\n","export function initRange(domain, range) {\n switch (arguments.length) {\n case 0: break;\n case 1: this.range(domain); break;\n default: this.range(range).domain(domain); break;\n }\n return this;\n}\n\nexport function initInterpolator(domain, interpolator) {\n switch (arguments.length) {\n case 0: break;\n case 1: {\n if (typeof domain === \"function\") this.interpolator(domain);\n else this.range(domain);\n break;\n }\n default: {\n this.domain(domain);\n if (typeof interpolator === \"function\") this.interpolator(interpolator);\n else this.range(interpolator);\n break;\n }\n }\n return this;\n}\n","export default function(constructor, factory, prototype) {\n constructor.prototype = factory.prototype = prototype;\n prototype.constructor = constructor;\n}\n\nexport function extend(parent, definition) {\n var prototype = Object.create(parent.prototype);\n for (var key in definition) prototype[key] = definition[key];\n return prototype;\n}\n","import define, {extend} from \"./define.js\";\n\nexport function Color() {}\n\nexport var darker = 0.7;\nexport var brighter = 1 / darker;\n\nvar reI = \"\\\\s*([+-]?\\\\d+)\\\\s*\",\n reN = \"\\\\s*([+-]?(?:\\\\d*\\\\.)?\\\\d+(?:[eE][+-]?\\\\d+)?)\\\\s*\",\n reP = \"\\\\s*([+-]?(?:\\\\d*\\\\.)?\\\\d+(?:[eE][+-]?\\\\d+)?)%\\\\s*\",\n reHex = /^#([0-9a-f]{3,8})$/,\n reRgbInteger = new RegExp(`^rgb\\\\(${reI},${reI},${reI}\\\\)$`),\n reRgbPercent = new RegExp(`^rgb\\\\(${reP},${reP},${reP}\\\\)$`),\n reRgbaInteger = new RegExp(`^rgba\\\\(${reI},${reI},${reI},${reN}\\\\)$`),\n reRgbaPercent = new RegExp(`^rgba\\\\(${reP},${reP},${reP},${reN}\\\\)$`),\n reHslPercent = new RegExp(`^hsl\\\\(${reN},${reP},${reP}\\\\)$`),\n reHslaPercent = new RegExp(`^hsla\\\\(${reN},${reP},${reP},${reN}\\\\)$`);\n\nvar named = {\n aliceblue: 0xf0f8ff,\n antiquewhite: 0xfaebd7,\n aqua: 0x00ffff,\n aquamarine: 0x7fffd4,\n azure: 0xf0ffff,\n beige: 0xf5f5dc,\n bisque: 0xffe4c4,\n black: 0x000000,\n blanchedalmond: 0xffebcd,\n blue: 0x0000ff,\n blueviolet: 0x8a2be2,\n brown: 0xa52a2a,\n burlywood: 0xdeb887,\n cadetblue: 0x5f9ea0,\n chartreuse: 0x7fff00,\n chocolate: 0xd2691e,\n coral: 0xff7f50,\n cornflowerblue: 0x6495ed,\n cornsilk: 0xfff8dc,\n crimson: 0xdc143c,\n cyan: 0x00ffff,\n darkblue: 0x00008b,\n darkcyan: 0x008b8b,\n darkgoldenrod: 0xb8860b,\n darkgray: 0xa9a9a9,\n darkgreen: 0x006400,\n darkgrey: 0xa9a9a9,\n darkkhaki: 0xbdb76b,\n darkmagenta: 0x8b008b,\n darkolivegreen: 0x556b2f,\n darkorange: 0xff8c00,\n darkorchid: 0x9932cc,\n darkred: 0x8b0000,\n darksalmon: 0xe9967a,\n darkseagreen: 0x8fbc8f,\n darkslateblue: 0x483d8b,\n darkslategray: 0x2f4f4f,\n darkslategrey: 0x2f4f4f,\n darkturquoise: 0x00ced1,\n darkviolet: 0x9400d3,\n deeppink: 0xff1493,\n deepskyblue: 0x00bfff,\n dimgray: 0x696969,\n dimgrey: 0x696969,\n dodgerblue: 0x1e90ff,\n firebrick: 0xb22222,\n floralwhite: 0xfffaf0,\n forestgreen: 0x228b22,\n fuchsia: 0xff00ff,\n gainsboro: 0xdcdcdc,\n ghostwhite: 0xf8f8ff,\n gold: 0xffd700,\n goldenrod: 0xdaa520,\n gray: 0x808080,\n green: 0x008000,\n greenyellow: 0xadff2f,\n grey: 0x808080,\n honeydew: 0xf0fff0,\n hotpink: 0xff69b4,\n indianred: 0xcd5c5c,\n indigo: 0x4b0082,\n ivory: 0xfffff0,\n khaki: 0xf0e68c,\n lavender: 0xe6e6fa,\n lavenderblush: 0xfff0f5,\n lawngreen: 0x7cfc00,\n lemonchiffon: 0xfffacd,\n lightblue: 0xadd8e6,\n lightcoral: 0xf08080,\n lightcyan: 0xe0ffff,\n lightgoldenrodyellow: 0xfafad2,\n lightgray: 0xd3d3d3,\n lightgreen: 0x90ee90,\n lightgrey: 0xd3d3d3,\n lightpink: 0xffb6c1,\n lightsalmon: 0xffa07a,\n lightseagreen: 0x20b2aa,\n lightskyblue: 0x87cefa,\n lightslategray: 0x778899,\n lightslategrey: 0x778899,\n lightsteelblue: 0xb0c4de,\n lightyellow: 0xffffe0,\n lime: 0x00ff00,\n limegreen: 0x32cd32,\n linen: 0xfaf0e6,\n magenta: 0xff00ff,\n maroon: 0x800000,\n mediumaquamarine: 0x66cdaa,\n mediumblue: 0x0000cd,\n mediumorchid: 0xba55d3,\n mediumpurple: 0x9370db,\n mediumseagreen: 0x3cb371,\n mediumslateblue: 0x7b68ee,\n mediumspringgreen: 0x00fa9a,\n mediumturquoise: 0x48d1cc,\n mediumvioletred: 0xc71585,\n midnightblue: 0x191970,\n mintcream: 0xf5fffa,\n mistyrose: 0xffe4e1,\n moccasin: 0xffe4b5,\n navajowhite: 0xffdead,\n navy: 0x000080,\n oldlace: 0xfdf5e6,\n olive: 0x808000,\n olivedrab: 0x6b8e23,\n orange: 0xffa500,\n orangered: 0xff4500,\n orchid: 0xda70d6,\n palegoldenrod: 0xeee8aa,\n palegreen: 0x98fb98,\n paleturquoise: 0xafeeee,\n palevioletred: 0xdb7093,\n papayawhip: 0xffefd5,\n peachpuff: 0xffdab9,\n peru: 0xcd853f,\n pink: 0xffc0cb,\n plum: 0xdda0dd,\n powderblue: 0xb0e0e6,\n purple: 0x800080,\n rebeccapurple: 0x663399,\n red: 0xff0000,\n rosybrown: 0xbc8f8f,\n royalblue: 0x4169e1,\n saddlebrown: 0x8b4513,\n salmon: 0xfa8072,\n sandybrown: 0xf4a460,\n seagreen: 0x2e8b57,\n seashell: 0xfff5ee,\n sienna: 0xa0522d,\n silver: 0xc0c0c0,\n skyblue: 0x87ceeb,\n slateblue: 0x6a5acd,\n slategray: 0x708090,\n slategrey: 0x708090,\n snow: 0xfffafa,\n springgreen: 0x00ff7f,\n steelblue: 0x4682b4,\n tan: 0xd2b48c,\n teal: 0x008080,\n thistle: 0xd8bfd8,\n tomato: 0xff6347,\n turquoise: 0x40e0d0,\n violet: 0xee82ee,\n wheat: 0xf5deb3,\n white: 0xffffff,\n whitesmoke: 0xf5f5f5,\n yellow: 0xffff00,\n yellowgreen: 0x9acd32\n};\n\ndefine(Color, color, {\n copy(channels) {\n return Object.assign(new this.constructor, this, channels);\n },\n displayable() {\n return this.rgb().displayable();\n },\n hex: color_formatHex, // Deprecated! Use color.formatHex.\n formatHex: color_formatHex,\n formatHex8: color_formatHex8,\n formatHsl: color_formatHsl,\n formatRgb: color_formatRgb,\n toString: color_formatRgb\n});\n\nfunction color_formatHex() {\n return this.rgb().formatHex();\n}\n\nfunction color_formatHex8() {\n return this.rgb().formatHex8();\n}\n\nfunction color_formatHsl() {\n return hslConvert(this).formatHsl();\n}\n\nfunction color_formatRgb() {\n return this.rgb().formatRgb();\n}\n\nexport default function color(format) {\n var m, l;\n format = (format + \"\").trim().toLowerCase();\n return (m = reHex.exec(format)) ? (l = m[1].length, m = parseInt(m[1], 16), l === 6 ? rgbn(m) // #ff0000\n : l === 3 ? new Rgb((m >> 8 & 0xf) | (m >> 4 & 0xf0), (m >> 4 & 0xf) | (m & 0xf0), ((m & 0xf) << 4) | (m & 0xf), 1) // #f00\n : l === 8 ? rgba(m >> 24 & 0xff, m >> 16 & 0xff, m >> 8 & 0xff, (m & 0xff) / 0xff) // #ff000000\n : l === 4 ? rgba((m >> 12 & 0xf) | (m >> 8 & 0xf0), (m >> 8 & 0xf) | (m >> 4 & 0xf0), (m >> 4 & 0xf) | (m & 0xf0), (((m & 0xf) << 4) | (m & 0xf)) / 0xff) // #f000\n : null) // invalid hex\n : (m = reRgbInteger.exec(format)) ? new Rgb(m[1], m[2], m[3], 1) // rgb(255, 0, 0)\n : (m = reRgbPercent.exec(format)) ? new Rgb(m[1] * 255 / 100, m[2] * 255 / 100, m[3] * 255 / 100, 1) // rgb(100%, 0%, 0%)\n : (m = reRgbaInteger.exec(format)) ? rgba(m[1], m[2], m[3], m[4]) // rgba(255, 0, 0, 1)\n : (m = reRgbaPercent.exec(format)) ? rgba(m[1] * 255 / 100, m[2] * 255 / 100, m[3] * 255 / 100, m[4]) // rgb(100%, 0%, 0%, 1)\n : (m = reHslPercent.exec(format)) ? hsla(m[1], m[2] / 100, m[3] / 100, 1) // hsl(120, 50%, 50%)\n : (m = reHslaPercent.exec(format)) ? hsla(m[1], m[2] / 100, m[3] / 100, m[4]) // hsla(120, 50%, 50%, 1)\n : named.hasOwnProperty(format) ? rgbn(named[format]) // eslint-disable-line no-prototype-builtins\n : format === \"transparent\" ? new Rgb(NaN, NaN, NaN, 0)\n : null;\n}\n\nfunction rgbn(n) {\n return new Rgb(n >> 16 & 0xff, n >> 8 & 0xff, n & 0xff, 1);\n}\n\nfunction rgba(r, g, b, a) {\n if (a <= 0) r = g = b = NaN;\n return new Rgb(r, g, b, a);\n}\n\nexport function rgbConvert(o) {\n if (!(o instanceof Color)) o = color(o);\n if (!o) return new Rgb;\n o = o.rgb();\n return new Rgb(o.r, o.g, o.b, o.opacity);\n}\n\nexport function rgb(r, g, b, opacity) {\n return arguments.length === 1 ? rgbConvert(r) : new Rgb(r, g, b, opacity == null ? 1 : opacity);\n}\n\nexport function Rgb(r, g, b, opacity) {\n this.r = +r;\n this.g = +g;\n this.b = +b;\n this.opacity = +opacity;\n}\n\ndefine(Rgb, rgb, extend(Color, {\n brighter(k) {\n k = k == null ? brighter : Math.pow(brighter, k);\n return new Rgb(this.r * k, this.g * k, this.b * k, this.opacity);\n },\n darker(k) {\n k = k == null ? darker : Math.pow(darker, k);\n return new Rgb(this.r * k, this.g * k, this.b * k, this.opacity);\n },\n rgb() {\n return this;\n },\n clamp() {\n return new Rgb(clampi(this.r), clampi(this.g), clampi(this.b), clampa(this.opacity));\n },\n displayable() {\n return (-0.5 <= this.r && this.r < 255.5)\n && (-0.5 <= this.g && this.g < 255.5)\n && (-0.5 <= this.b && this.b < 255.5)\n && (0 <= this.opacity && this.opacity <= 1);\n },\n hex: rgb_formatHex, // Deprecated! Use color.formatHex.\n formatHex: rgb_formatHex,\n formatHex8: rgb_formatHex8,\n formatRgb: rgb_formatRgb,\n toString: rgb_formatRgb\n}));\n\nfunction rgb_formatHex() {\n return `#${hex(this.r)}${hex(this.g)}${hex(this.b)}`;\n}\n\nfunction rgb_formatHex8() {\n return `#${hex(this.r)}${hex(this.g)}${hex(this.b)}${hex((isNaN(this.opacity) ? 1 : this.opacity) * 255)}`;\n}\n\nfunction rgb_formatRgb() {\n const a = clampa(this.opacity);\n return `${a === 1 ? \"rgb(\" : \"rgba(\"}${clampi(this.r)}, ${clampi(this.g)}, ${clampi(this.b)}${a === 1 ? \")\" : `, ${a})`}`;\n}\n\nfunction clampa(opacity) {\n return isNaN(opacity) ? 1 : Math.max(0, Math.min(1, opacity));\n}\n\nfunction clampi(value) {\n return Math.max(0, Math.min(255, Math.round(value) || 0));\n}\n\nfunction hex(value) {\n value = clampi(value);\n return (value < 16 ? \"0\" : \"\") + value.toString(16);\n}\n\nfunction hsla(h, s, l, a) {\n if (a <= 0) h = s = l = NaN;\n else if (l <= 0 || l >= 1) h = s = NaN;\n else if (s <= 0) h = NaN;\n return new Hsl(h, s, l, a);\n}\n\nexport function hslConvert(o) {\n if (o instanceof Hsl) return new Hsl(o.h, o.s, o.l, o.opacity);\n if (!(o instanceof Color)) o = color(o);\n if (!o) return new Hsl;\n if (o instanceof Hsl) return o;\n o = o.rgb();\n var r = o.r / 255,\n g = o.g / 255,\n b = o.b / 255,\n min = Math.min(r, g, b),\n max = Math.max(r, g, b),\n h = NaN,\n s = max - min,\n l = (max + min) / 2;\n if (s) {\n if (r === max) h = (g - b) / s + (g < b) * 6;\n else if (g === max) h = (b - r) / s + 2;\n else h = (r - g) / s + 4;\n s /= l < 0.5 ? max + min : 2 - max - min;\n h *= 60;\n } else {\n s = l > 0 && l < 1 ? 0 : h;\n }\n return new Hsl(h, s, l, o.opacity);\n}\n\nexport function hsl(h, s, l, opacity) {\n return arguments.length === 1 ? hslConvert(h) : new Hsl(h, s, l, opacity == null ? 1 : opacity);\n}\n\nfunction Hsl(h, s, l, opacity) {\n this.h = +h;\n this.s = +s;\n this.l = +l;\n this.opacity = +opacity;\n}\n\ndefine(Hsl, hsl, extend(Color, {\n brighter(k) {\n k = k == null ? brighter : Math.pow(brighter, k);\n return new Hsl(this.h, this.s, this.l * k, this.opacity);\n },\n darker(k) {\n k = k == null ? darker : Math.pow(darker, k);\n return new Hsl(this.h, this.s, this.l * k, this.opacity);\n },\n rgb() {\n var h = this.h % 360 + (this.h < 0) * 360,\n s = isNaN(h) || isNaN(this.s) ? 0 : this.s,\n l = this.l,\n m2 = l + (l < 0.5 ? l : 1 - l) * s,\n m1 = 2 * l - m2;\n return new Rgb(\n hsl2rgb(h >= 240 ? h - 240 : h + 120, m1, m2),\n hsl2rgb(h, m1, m2),\n hsl2rgb(h < 120 ? h + 240 : h - 120, m1, m2),\n this.opacity\n );\n },\n clamp() {\n return new Hsl(clamph(this.h), clampt(this.s), clampt(this.l), clampa(this.opacity));\n },\n displayable() {\n return (0 <= this.s && this.s <= 1 || isNaN(this.s))\n && (0 <= this.l && this.l <= 1)\n && (0 <= this.opacity && this.opacity <= 1);\n },\n formatHsl() {\n const a = clampa(this.opacity);\n return `${a === 1 ? \"hsl(\" : \"hsla(\"}${clamph(this.h)}, ${clampt(this.s) * 100}%, ${clampt(this.l) * 100}%${a === 1 ? \")\" : `, ${a})`}`;\n }\n}));\n\nfunction clamph(value) {\n value = (value || 0) % 360;\n return value < 0 ? value + 360 : value;\n}\n\nfunction clampt(value) {\n return Math.max(0, Math.min(1, value || 0));\n}\n\n/* From FvD 13.37, CSS Color Module Level 3 */\nfunction hsl2rgb(h, m1, m2) {\n return (h < 60 ? m1 + (m2 - m1) * h / 60\n : h < 180 ? m2\n : h < 240 ? m1 + (m2 - m1) * (240 - h) / 60\n : m1) * 255;\n}\n","export default x => () => x;\n","import constant from \"./constant.js\";\n\nfunction linear(a, d) {\n return function(t) {\n return a + t * d;\n };\n}\n\nfunction exponential(a, b, y) {\n return a = Math.pow(a, y), b = Math.pow(b, y) - a, y = 1 / y, function(t) {\n return Math.pow(a + t * b, y);\n };\n}\n\nexport function hue(a, b) {\n var d = b - a;\n return d ? linear(a, d > 180 || d < -180 ? d - 360 * Math.round(d / 360) : d) : constant(isNaN(a) ? b : a);\n}\n\nexport function gamma(y) {\n return (y = +y) === 1 ? nogamma : function(a, b) {\n return b - a ? exponential(a, b, y) : constant(isNaN(a) ? b : a);\n };\n}\n\nexport default function nogamma(a, b) {\n var d = b - a;\n return d ? linear(a, d) : constant(isNaN(a) ? b : a);\n}\n","import {rgb as colorRgb} from \"d3-color\";\nimport basis from \"./basis.js\";\nimport basisClosed from \"./basisClosed.js\";\nimport nogamma, {gamma} from \"./color.js\";\n\nexport default (function rgbGamma(y) {\n var color = gamma(y);\n\n function rgb(start, end) {\n var r = color((start = colorRgb(start)).r, (end = colorRgb(end)).r),\n g = color(start.g, end.g),\n b = color(start.b, end.b),\n opacity = nogamma(start.opacity, end.opacity);\n return function(t) {\n start.r = r(t);\n start.g = g(t);\n start.b = b(t);\n start.opacity = opacity(t);\n return start + \"\";\n };\n }\n\n rgb.gamma = rgbGamma;\n\n return rgb;\n})(1);\n\nfunction rgbSpline(spline) {\n return function(colors) {\n var n = colors.length,\n r = new Array(n),\n g = new Array(n),\n b = new Array(n),\n i, color;\n for (i = 0; i < n; ++i) {\n color = colorRgb(colors[i]);\n r[i] = color.r || 0;\n g[i] = color.g || 0;\n b[i] = color.b || 0;\n }\n r = spline(r);\n g = spline(g);\n b = spline(b);\n color.opacity = 1;\n return function(t) {\n color.r = r(t);\n color.g = g(t);\n color.b = b(t);\n return color + \"\";\n };\n };\n}\n\nexport var rgbBasis = rgbSpline(basis);\nexport var rgbBasisClosed = rgbSpline(basisClosed);\n","export default function(a, b) {\n if (!b) b = [];\n var n = a ? Math.min(b.length, a.length) : 0,\n c = b.slice(),\n i;\n return function(t) {\n for (i = 0; i < n; ++i) c[i] = a[i] * (1 - t) + b[i] * t;\n return c;\n };\n}\n\nexport function isNumberArray(x) {\n return ArrayBuffer.isView(x) && !(x instanceof DataView);\n}\n","import value from \"./value.js\";\nimport numberArray, {isNumberArray} from \"./numberArray.js\";\n\nexport default function(a, b) {\n return (isNumberArray(b) ? numberArray : genericArray)(a, b);\n}\n\nexport function genericArray(a, b) {\n var nb = b ? b.length : 0,\n na = a ? Math.min(nb, a.length) : 0,\n x = new Array(na),\n c = new Array(nb),\n i;\n\n for (i = 0; i < na; ++i) x[i] = value(a[i], b[i]);\n for (; i < nb; ++i) c[i] = b[i];\n\n return function(t) {\n for (i = 0; i < na; ++i) c[i] = x[i](t);\n return c;\n };\n}\n","export default function(a, b) {\n var d = new Date;\n return a = +a, b = +b, function(t) {\n return d.setTime(a * (1 - t) + b * t), d;\n };\n}\n","export default function(a, b) {\n return a = +a, b = +b, function(t) {\n return a * (1 - t) + b * t;\n };\n}\n","import value from \"./value.js\";\n\nexport default function(a, b) {\n var i = {},\n c = {},\n k;\n\n if (a === null || typeof a !== \"object\") a = {};\n if (b === null || typeof b !== \"object\") b = {};\n\n for (k in b) {\n if (k in a) {\n i[k] = value(a[k], b[k]);\n } else {\n c[k] = b[k];\n }\n }\n\n return function(t) {\n for (k in i) c[k] = i[k](t);\n return c;\n };\n}\n","import number from \"./number.js\";\n\nvar reA = /[-+]?(?:\\d+\\.?\\d*|\\.?\\d+)(?:[eE][-+]?\\d+)?/g,\n reB = new RegExp(reA.source, \"g\");\n\nfunction zero(b) {\n return function() {\n return b;\n };\n}\n\nfunction one(b) {\n return function(t) {\n return b(t) + \"\";\n };\n}\n\nexport default function(a, b) {\n var bi = reA.lastIndex = reB.lastIndex = 0, // scan index for next number in b\n am, // current match in a\n bm, // current match in b\n bs, // string preceding current number in b, if any\n i = -1, // index in s\n s = [], // string constants and placeholders\n q = []; // number interpolators\n\n // Coerce inputs to strings.\n a = a + \"\", b = b + \"\";\n\n // Interpolate pairs of numbers in a & b.\n while ((am = reA.exec(a))\n && (bm = reB.exec(b))) {\n if ((bs = bm.index) > bi) { // a string precedes the next number in b\n bs = b.slice(bi, bs);\n if (s[i]) s[i] += bs; // coalesce with previous string\n else s[++i] = bs;\n }\n if ((am = am[0]) === (bm = bm[0])) { // numbers in a & b match\n if (s[i]) s[i] += bm; // coalesce with previous string\n else s[++i] = bm;\n } else { // interpolate non-matching numbers\n s[++i] = null;\n q.push({i: i, x: number(am, bm)});\n }\n bi = reB.lastIndex;\n }\n\n // Add remains of b.\n if (bi < b.length) {\n bs = b.slice(bi);\n if (s[i]) s[i] += bs; // coalesce with previous string\n else s[++i] = bs;\n }\n\n // Special optimization for only a single match.\n // Otherwise, interpolate each of the numbers and rejoin the string.\n return s.length < 2 ? (q[0]\n ? one(q[0].x)\n : zero(b))\n : (b = q.length, function(t) {\n for (var i = 0, o; i < b; ++i) s[(o = q[i]).i] = o.x(t);\n return s.join(\"\");\n });\n}\n","import {color} from \"d3-color\";\nimport rgb from \"./rgb.js\";\nimport {genericArray} from \"./array.js\";\nimport date from \"./date.js\";\nimport number from \"./number.js\";\nimport object from \"./object.js\";\nimport string from \"./string.js\";\nimport constant from \"./constant.js\";\nimport numberArray, {isNumberArray} from \"./numberArray.js\";\n\nexport default function(a, b) {\n var t = typeof b, c;\n return b == null || t === \"boolean\" ? constant(b)\n : (t === \"number\" ? number\n : t === \"string\" ? ((c = color(b)) ? (b = c, rgb) : string)\n : b instanceof color ? rgb\n : b instanceof Date ? date\n : isNumberArray(b) ? numberArray\n : Array.isArray(b) ? genericArray\n : typeof b.valueOf !== \"function\" && typeof b.toString !== \"function\" || isNaN(b) ? object\n : number)(a, b);\n}\n","export default function(a, b) {\n return a = +a, b = +b, function(t) {\n return Math.round(a * (1 - t) + b * t);\n };\n}\n","export default function number(x) {\n return +x;\n}\n","import {bisect} from \"d3-array\";\nimport {interpolate as interpolateValue, interpolateNumber, interpolateRound} from \"d3-interpolate\";\nimport constant from \"./constant.js\";\nimport number from \"./number.js\";\n\nvar unit = [0, 1];\n\nexport function identity(x) {\n return x;\n}\n\nfunction normalize(a, b) {\n return (b -= (a = +a))\n ? function(x) { return (x - a) / b; }\n : constant(isNaN(b) ? NaN : 0.5);\n}\n\nfunction clamper(a, b) {\n var t;\n if (a > b) t = a, a = b, b = t;\n return function(x) { return Math.max(a, Math.min(b, x)); };\n}\n\n// normalize(a, b)(x) takes a domain value x in [a,b] and returns the corresponding parameter t in [0,1].\n// interpolate(a, b)(t) takes a parameter t in [0,1] and returns the corresponding range value x in [a,b].\nfunction bimap(domain, range, interpolate) {\n var d0 = domain[0], d1 = domain[1], r0 = range[0], r1 = range[1];\n if (d1 < d0) d0 = normalize(d1, d0), r0 = interpolate(r1, r0);\n else d0 = normalize(d0, d1), r0 = interpolate(r0, r1);\n return function(x) { return r0(d0(x)); };\n}\n\nfunction polymap(domain, range, interpolate) {\n var j = Math.min(domain.length, range.length) - 1,\n d = new Array(j),\n r = new Array(j),\n i = -1;\n\n // Reverse descending domains.\n if (domain[j] < domain[0]) {\n domain = domain.slice().reverse();\n range = range.slice().reverse();\n }\n\n while (++i < j) {\n d[i] = normalize(domain[i], domain[i + 1]);\n r[i] = interpolate(range[i], range[i + 1]);\n }\n\n return function(x) {\n var i = bisect(domain, x, 1, j) - 1;\n return r[i](d[i](x));\n };\n}\n\nexport function copy(source, target) {\n return target\n .domain(source.domain())\n .range(source.range())\n .interpolate(source.interpolate())\n .clamp(source.clamp())\n .unknown(source.unknown());\n}\n\nexport function transformer() {\n var domain = unit,\n range = unit,\n interpolate = interpolateValue,\n transform,\n untransform,\n unknown,\n clamp = identity,\n piecewise,\n output,\n input;\n\n function rescale() {\n var n = Math.min(domain.length, range.length);\n if (clamp !== identity) clamp = clamper(domain[0], domain[n - 1]);\n piecewise = n > 2 ? polymap : bimap;\n output = input = null;\n return scale;\n }\n\n function scale(x) {\n return x == null || isNaN(x = +x) ? unknown : (output || (output = piecewise(domain.map(transform), range, interpolate)))(transform(clamp(x)));\n }\n\n scale.invert = function(y) {\n return clamp(untransform((input || (input = piecewise(range, domain.map(transform), interpolateNumber)))(y)));\n };\n\n scale.domain = function(_) {\n return arguments.length ? (domain = Array.from(_, number), rescale()) : domain.slice();\n };\n\n scale.range = function(_) {\n return arguments.length ? (range = Array.from(_), rescale()) : range.slice();\n };\n\n scale.rangeRound = function(_) {\n return range = Array.from(_), interpolate = interpolateRound, rescale();\n };\n\n scale.clamp = function(_) {\n return arguments.length ? (clamp = _ ? true : identity, rescale()) : clamp !== identity;\n };\n\n scale.interpolate = function(_) {\n return arguments.length ? (interpolate = _, rescale()) : interpolate;\n };\n\n scale.unknown = function(_) {\n return arguments.length ? (unknown = _, scale) : unknown;\n };\n\n return function(t, u) {\n transform = t, untransform = u;\n return rescale();\n };\n}\n\nexport default function continuous() {\n return transformer()(identity, identity);\n}\n","export default function constants(x) {\n return function() {\n return x;\n };\n}\n","export default function(x) {\n return Math.abs(x = Math.round(x)) >= 1e21\n ? x.toLocaleString(\"en\").replace(/,/g, \"\")\n : x.toString(10);\n}\n\n// Computes the decimal coefficient and exponent of the specified number x with\n// significant digits p, where x is positive and p is in [1, 21] or undefined.\n// For example, formatDecimalParts(1.23) returns [\"123\", 0].\nexport function formatDecimalParts(x, p) {\n if ((i = (x = p ? x.toExponential(p - 1) : x.toExponential()).indexOf(\"e\")) < 0) return null; // NaN, ±Infinity\n var i, coefficient = x.slice(0, i);\n\n // The string returned by toExponential either has the form \\d\\.\\d+e[-+]\\d+\n // (e.g., 1.2e+3) or the form \\de[-+]\\d+ (e.g., 1e+3).\n return [\n coefficient.length > 1 ? coefficient[0] + coefficient.slice(2) : coefficient,\n +x.slice(i + 1)\n ];\n}\n","import {formatDecimalParts} from \"./formatDecimal.js\";\n\nexport default function(x) {\n return x = formatDecimalParts(Math.abs(x)), x ? x[1] : NaN;\n}\n","// [[fill]align][sign][symbol][0][width][,][.precision][~][type]\nvar re = /^(?:(.)?([<>=^]))?([+\\-( ])?([$#])?(0)?(\\d+)?(,)?(\\.\\d+)?(~)?([a-z%])?$/i;\n\nexport default function formatSpecifier(specifier) {\n if (!(match = re.exec(specifier))) throw new Error(\"invalid format: \" + specifier);\n var match;\n return new FormatSpecifier({\n fill: match[1],\n align: match[2],\n sign: match[3],\n symbol: match[4],\n zero: match[5],\n width: match[6],\n comma: match[7],\n precision: match[8] && match[8].slice(1),\n trim: match[9],\n type: match[10]\n });\n}\n\nformatSpecifier.prototype = FormatSpecifier.prototype; // instanceof\n\nexport function FormatSpecifier(specifier) {\n this.fill = specifier.fill === undefined ? \" \" : specifier.fill + \"\";\n this.align = specifier.align === undefined ? \">\" : specifier.align + \"\";\n this.sign = specifier.sign === undefined ? \"-\" : specifier.sign + \"\";\n this.symbol = specifier.symbol === undefined ? \"\" : specifier.symbol + \"\";\n this.zero = !!specifier.zero;\n this.width = specifier.width === undefined ? undefined : +specifier.width;\n this.comma = !!specifier.comma;\n this.precision = specifier.precision === undefined ? undefined : +specifier.precision;\n this.trim = !!specifier.trim;\n this.type = specifier.type === undefined ? \"\" : specifier.type + \"\";\n}\n\nFormatSpecifier.prototype.toString = function() {\n return this.fill\n + this.align\n + this.sign\n + this.symbol\n + (this.zero ? \"0\" : \"\")\n + (this.width === undefined ? \"\" : Math.max(1, this.width | 0))\n + (this.comma ? \",\" : \"\")\n + (this.precision === undefined ? \"\" : \".\" + Math.max(0, this.precision | 0))\n + (this.trim ? \"~\" : \"\")\n + this.type;\n};\n","import {formatDecimalParts} from \"./formatDecimal.js\";\n\nexport var prefixExponent;\n\nexport default function(x, p) {\n var d = formatDecimalParts(x, p);\n if (!d) return x + \"\";\n var coefficient = d[0],\n exponent = d[1],\n i = exponent - (prefixExponent = Math.max(-8, Math.min(8, Math.floor(exponent / 3))) * 3) + 1,\n n = coefficient.length;\n return i === n ? coefficient\n : i > n ? coefficient + new Array(i - n + 1).join(\"0\")\n : i > 0 ? coefficient.slice(0, i) + \".\" + coefficient.slice(i)\n : \"0.\" + new Array(1 - i).join(\"0\") + formatDecimalParts(x, Math.max(0, p + i - 1))[0]; // less than 1y!\n}\n","import {formatDecimalParts} from \"./formatDecimal.js\";\n\nexport default function(x, p) {\n var d = formatDecimalParts(x, p);\n if (!d) return x + \"\";\n var coefficient = d[0],\n exponent = d[1];\n return exponent < 0 ? \"0.\" + new Array(-exponent).join(\"0\") + coefficient\n : coefficient.length > exponent + 1 ? coefficient.slice(0, exponent + 1) + \".\" + coefficient.slice(exponent + 1)\n : coefficient + new Array(exponent - coefficient.length + 2).join(\"0\");\n}\n","import formatDecimal from \"./formatDecimal.js\";\nimport formatPrefixAuto from \"./formatPrefixAuto.js\";\nimport formatRounded from \"./formatRounded.js\";\n\nexport default {\n \"%\": (x, p) => (x * 100).toFixed(p),\n \"b\": (x) => Math.round(x).toString(2),\n \"c\": (x) => x + \"\",\n \"d\": formatDecimal,\n \"e\": (x, p) => x.toExponential(p),\n \"f\": (x, p) => x.toFixed(p),\n \"g\": (x, p) => x.toPrecision(p),\n \"o\": (x) => Math.round(x).toString(8),\n \"p\": (x, p) => formatRounded(x * 100, p),\n \"r\": formatRounded,\n \"s\": formatPrefixAuto,\n \"X\": (x) => Math.round(x).toString(16).toUpperCase(),\n \"x\": (x) => Math.round(x).toString(16)\n};\n","export default function(x) {\n return x;\n}\n","import exponent from \"./exponent.js\";\nimport formatGroup from \"./formatGroup.js\";\nimport formatNumerals from \"./formatNumerals.js\";\nimport formatSpecifier from \"./formatSpecifier.js\";\nimport formatTrim from \"./formatTrim.js\";\nimport formatTypes from \"./formatTypes.js\";\nimport {prefixExponent} from \"./formatPrefixAuto.js\";\nimport identity from \"./identity.js\";\n\nvar map = Array.prototype.map,\n prefixes = [\"y\",\"z\",\"a\",\"f\",\"p\",\"n\",\"µ\",\"m\",\"\",\"k\",\"M\",\"G\",\"T\",\"P\",\"E\",\"Z\",\"Y\"];\n\nexport default function(locale) {\n var group = locale.grouping === undefined || locale.thousands === undefined ? identity : formatGroup(map.call(locale.grouping, Number), locale.thousands + \"\"),\n currencyPrefix = locale.currency === undefined ? \"\" : locale.currency[0] + \"\",\n currencySuffix = locale.currency === undefined ? \"\" : locale.currency[1] + \"\",\n decimal = locale.decimal === undefined ? \".\" : locale.decimal + \"\",\n numerals = locale.numerals === undefined ? identity : formatNumerals(map.call(locale.numerals, String)),\n percent = locale.percent === undefined ? \"%\" : locale.percent + \"\",\n minus = locale.minus === undefined ? \"−\" : locale.minus + \"\",\n nan = locale.nan === undefined ? \"NaN\" : locale.nan + \"\";\n\n function newFormat(specifier) {\n specifier = formatSpecifier(specifier);\n\n var fill = specifier.fill,\n align = specifier.align,\n sign = specifier.sign,\n symbol = specifier.symbol,\n zero = specifier.zero,\n width = specifier.width,\n comma = specifier.comma,\n precision = specifier.precision,\n trim = specifier.trim,\n type = specifier.type;\n\n // The \"n\" type is an alias for \",g\".\n if (type === \"n\") comma = true, type = \"g\";\n\n // The \"\" type, and any invalid type, is an alias for \".12~g\".\n else if (!formatTypes[type]) precision === undefined && (precision = 12), trim = true, type = \"g\";\n\n // If zero fill is specified, padding goes after sign and before digits.\n if (zero || (fill === \"0\" && align === \"=\")) zero = true, fill = \"0\", align = \"=\";\n\n // Compute the prefix and suffix.\n // For SI-prefix, the suffix is lazily computed.\n var prefix = symbol === \"$\" ? currencyPrefix : symbol === \"#\" && /[boxX]/.test(type) ? \"0\" + type.toLowerCase() : \"\",\n suffix = symbol === \"$\" ? currencySuffix : /[%p]/.test(type) ? percent : \"\";\n\n // What format function should we use?\n // Is this an integer type?\n // Can this type generate exponential notation?\n var formatType = formatTypes[type],\n maybeSuffix = /[defgprs%]/.test(type);\n\n // Set the default precision if not specified,\n // or clamp the specified precision to the supported range.\n // For significant precision, it must be in [1, 21].\n // For fixed precision, it must be in [0, 20].\n precision = precision === undefined ? 6\n : /[gprs]/.test(type) ? Math.max(1, Math.min(21, precision))\n : Math.max(0, Math.min(20, precision));\n\n function format(value) {\n var valuePrefix = prefix,\n valueSuffix = suffix,\n i, n, c;\n\n if (type === \"c\") {\n valueSuffix = formatType(value) + valueSuffix;\n value = \"\";\n } else {\n value = +value;\n\n // Determine the sign. -0 is not less than 0, but 1 / -0 is!\n var valueNegative = value < 0 || 1 / value < 0;\n\n // Perform the initial formatting.\n value = isNaN(value) ? nan : formatType(Math.abs(value), precision);\n\n // Trim insignificant zeros.\n if (trim) value = formatTrim(value);\n\n // If a negative value rounds to zero after formatting, and no explicit positive sign is requested, hide the sign.\n if (valueNegative && +value === 0 && sign !== \"+\") valueNegative = false;\n\n // Compute the prefix and suffix.\n valuePrefix = (valueNegative ? (sign === \"(\" ? sign : minus) : sign === \"-\" || sign === \"(\" ? \"\" : sign) + valuePrefix;\n valueSuffix = (type === \"s\" ? prefixes[8 + prefixExponent / 3] : \"\") + valueSuffix + (valueNegative && sign === \"(\" ? \")\" : \"\");\n\n // Break the formatted value into the integer “value” part that can be\n // grouped, and fractional or exponential “suffix” part that is not.\n if (maybeSuffix) {\n i = -1, n = value.length;\n while (++i < n) {\n if (c = value.charCodeAt(i), 48 > c || c > 57) {\n valueSuffix = (c === 46 ? decimal + value.slice(i + 1) : value.slice(i)) + valueSuffix;\n value = value.slice(0, i);\n break;\n }\n }\n }\n }\n\n // If the fill character is not \"0\", grouping is applied before padding.\n if (comma && !zero) value = group(value, Infinity);\n\n // Compute the padding.\n var length = valuePrefix.length + value.length + valueSuffix.length,\n padding = length < width ? new Array(width - length + 1).join(fill) : \"\";\n\n // If the fill character is \"0\", grouping is applied after padding.\n if (comma && zero) value = group(padding + value, padding.length ? width - valueSuffix.length : Infinity), padding = \"\";\n\n // Reconstruct the final output based on the desired alignment.\n switch (align) {\n case \"<\": value = valuePrefix + value + valueSuffix + padding; break;\n case \"=\": value = valuePrefix + padding + value + valueSuffix; break;\n case \"^\": value = padding.slice(0, length = padding.length >> 1) + valuePrefix + value + valueSuffix + padding.slice(length); break;\n default: value = padding + valuePrefix + value + valueSuffix; break;\n }\n\n return numerals(value);\n }\n\n format.toString = function() {\n return specifier + \"\";\n };\n\n return format;\n }\n\n function formatPrefix(specifier, value) {\n var f = newFormat((specifier = formatSpecifier(specifier), specifier.type = \"f\", specifier)),\n e = Math.max(-8, Math.min(8, Math.floor(exponent(value) / 3))) * 3,\n k = Math.pow(10, -e),\n prefix = prefixes[8 + e / 3];\n return function(value) {\n return f(k * value) + prefix;\n };\n }\n\n return {\n format: newFormat,\n formatPrefix: formatPrefix\n };\n}\n","import formatLocale from \"./locale.js\";\n\nvar locale;\nexport var format;\nexport var formatPrefix;\n\ndefaultLocale({\n thousands: \",\",\n grouping: [3],\n currency: [\"$\", \"\"]\n});\n\nexport default function defaultLocale(definition) {\n locale = formatLocale(definition);\n format = locale.format;\n formatPrefix = locale.formatPrefix;\n return locale;\n}\n","export default function(grouping, thousands) {\n return function(value, width) {\n var i = value.length,\n t = [],\n j = 0,\n g = grouping[0],\n length = 0;\n\n while (i > 0 && g > 0) {\n if (length + g + 1 > width) g = Math.max(1, width - length);\n t.push(value.substring(i -= g, i + g));\n if ((length += g + 1) > width) break;\n g = grouping[j = (j + 1) % grouping.length];\n }\n\n return t.reverse().join(thousands);\n };\n}\n","export default function(numerals) {\n return function(value) {\n return value.replace(/[0-9]/g, function(i) {\n return numerals[+i];\n });\n };\n}\n","// Trims insignificant zeros, e.g., replaces 1.2000k with 1.2k.\nexport default function(s) {\n out: for (var n = s.length, i = 1, i0 = -1, i1; i < n; ++i) {\n switch (s[i]) {\n case \".\": i0 = i1 = i; break;\n case \"0\": if (i0 === 0) i0 = i; i1 = i; break;\n default: if (!+s[i]) break out; if (i0 > 0) i0 = 0; break;\n }\n }\n return i0 > 0 ? s.slice(0, i0) + s.slice(i1 + 1) : s;\n}\n","import {tickStep} from \"d3-array\";\nimport {format, formatPrefix, formatSpecifier, precisionFixed, precisionPrefix, precisionRound} from \"d3-format\";\n\nexport default function tickFormat(start, stop, count, specifier) {\n var step = tickStep(start, stop, count),\n precision;\n specifier = formatSpecifier(specifier == null ? \",f\" : specifier);\n switch (specifier.type) {\n case \"s\": {\n var value = Math.max(Math.abs(start), Math.abs(stop));\n if (specifier.precision == null && !isNaN(precision = precisionPrefix(step, value))) specifier.precision = precision;\n return formatPrefix(specifier, value);\n }\n case \"\":\n case \"e\":\n case \"g\":\n case \"p\":\n case \"r\": {\n if (specifier.precision == null && !isNaN(precision = precisionRound(step, Math.max(Math.abs(start), Math.abs(stop))))) specifier.precision = precision - (specifier.type === \"e\");\n break;\n }\n case \"f\":\n case \"%\": {\n if (specifier.precision == null && !isNaN(precision = precisionFixed(step))) specifier.precision = precision - (specifier.type === \"%\") * 2;\n break;\n }\n }\n return format(specifier);\n}\n","import exponent from \"./exponent.js\";\n\nexport default function(step, value) {\n return Math.max(0, Math.max(-8, Math.min(8, Math.floor(exponent(value) / 3))) * 3 - exponent(Math.abs(step)));\n}\n","import exponent from \"./exponent.js\";\n\nexport default function(step, max) {\n step = Math.abs(step), max = Math.abs(max) - step;\n return Math.max(0, exponent(max) - exponent(step)) + 1;\n}\n","import exponent from \"./exponent.js\";\n\nexport default function(step) {\n return Math.max(0, -exponent(Math.abs(step)));\n}\n","import {ticks, tickIncrement} from \"d3-array\";\nimport continuous, {copy} from \"./continuous.js\";\nimport {initRange} from \"./init.js\";\nimport tickFormat from \"./tickFormat.js\";\n\nexport function linearish(scale) {\n var domain = scale.domain;\n\n scale.ticks = function(count) {\n var d = domain();\n return ticks(d[0], d[d.length - 1], count == null ? 10 : count);\n };\n\n scale.tickFormat = function(count, specifier) {\n var d = domain();\n return tickFormat(d[0], d[d.length - 1], count == null ? 10 : count, specifier);\n };\n\n scale.nice = function(count) {\n if (count == null) count = 10;\n\n var d = domain();\n var i0 = 0;\n var i1 = d.length - 1;\n var start = d[i0];\n var stop = d[i1];\n var prestep;\n var step;\n var maxIter = 10;\n\n if (stop < start) {\n step = start, start = stop, stop = step;\n step = i0, i0 = i1, i1 = step;\n }\n \n while (maxIter-- > 0) {\n step = tickIncrement(start, stop, count);\n if (step === prestep) {\n d[i0] = start\n d[i1] = stop\n return domain(d);\n } else if (step > 0) {\n start = Math.floor(start / step) * step;\n stop = Math.ceil(stop / step) * step;\n } else if (step < 0) {\n start = Math.ceil(start * step) / step;\n stop = Math.floor(stop * step) / step;\n } else {\n break;\n }\n prestep = step;\n }\n\n return scale;\n };\n\n return scale;\n}\n\nexport default function linear() {\n var scale = continuous();\n\n scale.copy = function() {\n return copy(scale, linear());\n };\n\n initRange.apply(scale, arguments);\n\n return linearish(scale);\n}\n",null,null,null,null,null,null],"names":["colors","aliceblue","antiquewhite","aqua","aquamarine","azure","beige","bisque","black","blanchedalmond","blue","blueviolet","brown","burlywood","cadetblue","chartreuse","chocolate","coral","cornflowerblue","cornsilk","crimson","cyan","darkblue","darkcyan","darkgoldenrod","darkgray","darkgreen","darkgrey","darkkhaki","darkmagenta","darkolivegreen","darkorange","darkorchid","darkred","darksalmon","darkseagreen","darkslateblue","darkslategray","darkslategrey","darkturquoise","darkviolet","deeppink","deepskyblue","dimgray","dimgrey","dodgerblue","firebrick","floralwhite","forestgreen","fuchsia","gainsboro","ghostwhite","gold","goldenrod","gray","green","greenyellow","grey","honeydew","hotpink","indianred","indigo","ivory","khaki","lavender","lavenderblush","lawngreen","lemonchiffon","lightblue","lightcoral","lightcyan","lightgoldenrodyellow","lightgray","lightgreen","lightgrey","lightpink","lightsalmon","lightseagreen","lightskyblue","lightslategray","lightslategrey","lightsteelblue","lightyellow","lime","limegreen","linen","magenta","maroon","mediumaquamarine","mediumblue","mediumorchid","mediumpurple","mediumseagreen","mediumslateblue","mediumspringgreen","mediumturquoise","mediumvioletred","midnightblue","mintcream","mistyrose","moccasin","navajowhite","navy","oldlace","olive","olivedrab","orange","orangered","orchid","palegoldenrod","palegreen","paleturquoise","palevioletred","papayawhip","peachpuff","peru","pink","plum","powderblue","purple","rebeccapurple","red","rosybrown","royalblue","saddlebrown","salmon","sandybrown","seagreen","seashell","sienna","silver","skyblue","slateblue","slategray","slategrey","snow","springgreen","steelblue","tan","teal","thistle","tomato","turquoise","violet","wheat","white","whitesmoke","yellow","yellowgreen","key","Object","freeze","cssKeywords","reverseNames","create","name","colorNames","hasOwn","cs","to","get","clamp","number_","min","max","Math","hexDouble","string_","round","toString","toUpperCase","length","string","value","model","slice","toLowerCase","hsl","hwb","rgb","match","i","hexAlpha","i2","Number","parseInt","parseFloat","alpha","isNaN","hex","rgba","percent","r","g","b","hsla","hwba","a","keyword","reverseKeywords","keys","convert","channels","labels","hsv","cmyk","xyz","lab","oklab","lch","oklch","ansi16","ansi256","hcg","apple","LAB_FT","srgbNonlinearTransform","c","cc","srgbNonlinearTransformInv","Error","defineProperty","comparativeDistance","x","y","deriveBFS","fromModel","graph","models","conversions","distance","parent","buildGraph","queue","current","pop","adjacents","adjacent","node","unshift","link","from","args","wrapConversion","toModel","path","fn","cur","conversion","route","delta","h","s","l","rdif","gdif","bdif","v","diff","diffc","w","lp","cbrt","mp","sp","k","reversed","currentClosestKeyword","currentClosestDistance","POSITIVE_INFINITY","z","t3","t2","t1","smin","lmin","hi","floor","f","p","q","t","vmin","sl","wh","bl","ratio","n","m","ll","aa","bb","y2","x2","z2","atan2","PI","sqrt","hr","cos","sin","saturation","ansi","color","mult","trunc","rem","colorString","map","char","join","integer","chroma","hue","pure","mg","wrapRaw","wrappedFn","arg0","wrapRounded","result","routes","routeModels","raw","skippedModels","hashedModelKeys","sort","limiters","Color","object","this","valpha","newArray","Array","prototype","call","zeroArray","splice","indexOf","hashedKeys","JSON","stringify","push","limit","toJSON","places","self","arguments_","percentString","array","unitArray","unitObject","roundToPlace","undefined","getset","maxfn","saturationl","lightness","saturationv","wblack","hexa","rgbArray","alphaHex","rgbNumber","luminosity","lum","element","entries","chan","contrast","color2","lum1","lum2","level","contrastRatio","isDark","isLight","negate","lighten","darken","saturate","desaturate","whiten","blacken","grayscale","fade","opaquer","rotate","degrees","mix","mixinColor","weight","color1","w1","w2","includes","isArray","number","toFixed","roundTo","channel","modifier","TagSymbol","Symbol","Unit","constructor","tag","isVoid","curry1","op","item","safeToString","has","fnResult","Variant","ResultImpl","repr","ok","err","error","variant","isOk","isErr","mapFn","mapOr","orU","fullOp","partialOp","curriedResult","extraCurriedResult","mapOrElse","orElseFn","matcher","Err","Ok","mapErr","mapErrFn","or","orResult","defaultResult","orElse","elseFn","and","mAnd","andResult","andThen","andThenFn","thenFn","unwrapOr","defaultValue","unwrapOrElse","toMaybe","Maybe","just","nothing","equals","comparison","resultB","resultA","curriedResultA","ap","resultFn","val","body","Result","NOTHING","MaybeImpl","of","_","isJust","isNothing","maybe","curriedMaybe","extraCurriedMaybe","Nothing","Just","mOr","defaultMaybe","andMaybe","toOkOrErr","Toolbelt.toOkOrErr","toOkOrElseErr","Toolbelt.toOkOrElseErr","isInstance","mb","maybeA","aVal","maybeFn","maybeObj","obj","property","util","objectUtil","assertEqual","assertIs","_arg","assertNever","_x","arrayToEnum","items","getValidEnumValues","validKeys","objectKeys","filter","filtered","objectValues","e","hasOwnProperty","find","arr","checker","isInteger","isFinite","joinValues","separator","jsonStringifyReplacer","mergeShapes","first","second","ZodParsedType","getParsedType","data","nan","boolean","function","bigint","symbol","null","then","catch","promise","Map","Set","set","Date","date","unknown","ZodIssueCode","ZodError","errors","issues","super","addIssue","sub","addIssues","subs","actualProto","setPrototypeOf","__proto__","format","_mapper","mapper","issue","message","fieldErrors","_errors","processError","code","unionErrors","returnTypeError","argumentsError","curr","el","assert","isEmpty","flatten","formErrors","firstEl","errorMap","_ctx","invalid_type","received","expected","invalid_literal","unrecognized_keys","invalid_union","invalid_union_discriminator","options","invalid_enum_value","invalid_arguments","invalid_return_type","invalid_date","invalid_string","validation","position","startsWith","endsWith","too_small","type","exact","inclusive","minimum","too_big","maximum","custom","invalid_intersection_types","not_multiple_of","multipleOf","not_finite","defaultError","overrideErrorMap","defaultErrorMap","addIssueToContext","ctx","issueData","overrideMap","params","errorMaps","fullPath","fullIssue","errorMessage","maps","reverse","makeIssue","common","contextualErrorMap","schemaErrorMap","ParseStatus","dirty","abort","mergeArray","status","results","arrayValue","INVALID","mergeObjectAsync","pairs","syncPairs","pair","mergeObjectSync","finalObject","alwaysSet","DIRTY","OK","isAborted","isDirty","isValid","isAsync","Promise","errorUtil","errToObj","ParseInputLazyPath","_cachedPath","_path","_key","handleResult","success","_error","processCreateParams","invalid_type_error","required_error","description","iss","ZodType","_def","_getType","input","_getOrReturnCtx","parsedType","_processInputParams","_parseSync","_parse","_parseAsync","resolve","parse","safeParse","async","parseAsync","safeParseAsync","maybeAsyncResult","refine","check","getIssueProperties","_refinement","setError","refinement","refinementData","ZodEffects","schema","typeName","ZodFirstPartyTypeKind","effect","superRefine","def","spa","bind","optional","nullable","nullish","transform","brand","default","describe","pipe","readonly","isNullable","isOptional","version","vendor","validate","ZodOptional","ZodNullable","ZodArray","ZodPromise","option","ZodUnion","incoming","ZodIntersection","defaultValueFunc","ZodDefault","innerType","ZodBranded","catchValueFunc","ZodCatch","catchValue","This","target","ZodPipeline","ZodReadonly","cuidRegex","cuid2Regex","ulidRegex","uuidRegex","nanoidRegex","jwtRegex","durationRegex","emailRegex","emojiRegex","ipv4Regex","ipv4CidrRegex","ipv6Regex","ipv6CidrRegex","base64Regex","base64urlRegex","dateRegexSource","dateRegex","RegExp","timeRegexSource","secondsRegexSource","precision","timeRegex","datetimeRegex","regex","opts","local","offset","isValidIP","ip","test","isValidJWT","jwt","alg","header","split","base64","replace","padEnd","decoded","atob","typ","isValidCidr","ZodString","coerce","String","checks","kind","tooBig","tooSmall","URL","lastIndex","trim","_regex","_addCheck","email","url","emoji","uuid","nanoid","cuid","cuid2","ulid","base64url","cidr","datetime","time","duration","minLength","maxLength","len","nonempty","isDatetime","ch","isDate","isTime","isDuration","isEmail","isURL","isEmoji","isUUID","isNANOID","isCUID","isCUID2","isULID","isIP","isCIDR","isBase64","isBase64url","floatSafeRemainder","step","valDecCount","stepDecCount","decCount","ZodNumber","arguments","gte","lte","setLimit","gt","lt","int","positive","negative","nonpositive","nonnegative","finite","safe","MIN_SAFE_INTEGER","MAX_SAFE_INTEGER","minValue","maxValue","isInt","ZodBigInt","BigInt","_getInvalidInput","ZodBoolean","Boolean","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","extend","_getCached","shapeKeys","extraKeys","catchall","unknownKeys","keyValidator","strict","strip","augmentation","merge","merging","setKey","index","pick","mask","omit","deepPartial","partial","required","newField","keyof","createZodEnum","strictCreate","lazycreate","childCtx","mergeValues","aType","bType","valid","bKeys","sharedKeys","newObj","sharedValue","types","handleParsed","parsedLeft","parsedRight","merged","left","right","rest","itemIndex","schemas","ZodRecord","keySchema","keyType","valueSchema","valueType","third","ZodMap","finalMap","ZodSet","minSize","size","maxSize","finalizeSet","elements","parsedSet","add","values","ZodLazy","getter","ZodLiteral","ZodEnum","expectedValues","_cache","enum","enumValues","Values","Enum","extract","newDef","exclude","opt","ZodNativeEnum","nativeEnumValues","promisified","sourceType","checkCtx","arg","fatal","processed","executeRefinement","acc","inner","base","createWithPreprocess","preprocess","removeDefault","newCtx","removeCatch","ZodNaN","inResult","in","out","handleAsync","stringType","numberType","booleanType","anyType","arrayType","objectType","unionType","recordType","enumType","preprocessType","AllSpyNames","SpyNameSchema","z.preprocess","z.enum","units","UnitsSchema","u","FlamebearerSchema","z.object","names","z.array","z.string","levels","z.number","numTicks","maxSelf","MetadataSchema","appName","startTime","endTime","query","maxNodes","sampleRate","spyName","flamebearer","metadata","leftTicks","rightTicks","singleFF","jStep","jName","getBarOffset","j","getBarTotal","getBarTotalDiff","getBarSelf","getBarSelfDiff","getBarName","doubleFF","getBarTotalLeft","getBarTotalRght","getBarSelfLeft","getBarSelfRght","createFF","viewType","ReferencesSchema","refType","traceID","spanID","TagsSchema","z.union","z.boolean","TraceSpanSchema","flags","operationName","references","tags","logs","timestamp","fields","processID","warnings","z.any","ProcessSchema","serviceName","spans","processes","z.record","GroupSchema","watermark","samples","durationDelta","PX_PER_LEVEL","BAR_HEIGHT","localizeDurationString","isZh","parsed","unit","hasLessThan","sign","numStr","parseNumericWithUnit","unitZh","ratioToPercent","DurationFormatter","maxDur","enableSubsecondPrecision","divider","suffix","durations","console","warn","withUnits","nStr","formatPrecise","NanosecondsFormatter","multiplier","ObjectsFormatter","maxObjects","objects","BytesFormatter","maxBytes","bytes","fitToCanvasRect","mode","charSize","rectWidth","fullText","shortText","text","marginLeft","shortTextWidth","ascending","NaN","descending","bisector","compare1","compare2","lo","mid","d","zero","center","bisectRight","e10","e5","e2","tickSpec","start","stop","count","power","log10","pow","factor","i1","inc","tickIncrement","initRange","domain","range","define","factory","definition","darker","brighter","reI","reN","reP","reHex","reRgbInteger","reRgbPercent","reRgbaInteger","reRgbaPercent","reHslPercent","reHslaPercent","named","color_formatHex","formatHex","color_formatRgb","formatRgb","exec","rgbn","Rgb","opacity","o","rgb_formatHex","rgb_formatRgb","clampa","clampi","Hsl","hslConvert","clamph","clampt","hsl2rgb","m1","m2","copy","assign","displayable","formatHex8","formatHsl","constant","gamma","nogamma","exponential","linear","rgbGamma","end","colorRgb","numberArray","genericArray","nb","na","setTime","interpolateNumber","reA","reB","source","am","bm","bs","bi","one","interpolate","ArrayBuffer","isView","DataView","valueOf","interpolateRound","identity","normalize","bimap","d0","d1","r0","r1","polymap","bisect","transformer","untransform","piecewise","output","interpolateValue","rescale","scale","invert","rangeRound","formatDecimalParts","toExponential","coefficient","exponent","abs","prefixExponent","re","formatSpecifier","specifier","FormatSpecifier","fill","align","width","comma","formatRounded","formatTypes","toLocaleString","toPrecision","X","locale","formatPrefix","prefixes","formatLocale","grouping","thousands","group","substring","currencyPrefix","currency","currencySuffix","decimal","numerals","formatNumerals","minus","newFormat","prefix","formatType","maybeSuffix","valuePrefix","valueSuffix","valueNegative","i0","formatTrim","charCodeAt","Infinity","padding","tickFormat","tickStep","precisionPrefix","precisionRound","precisionFixed","linearish","ticks","nice","prestep","maxIter","ceil","apply","diffPercent","leftPercent","rightPercent","colorGreyscale","getPackageNameFromStackTrace","stackTrace","regexp","spyToRegex","fullStackGroups","groups","colorBasedOnPackageName","palette","colorIndex","seed","remainder","h1","h1b","c1","c2","k1","murmurhash3_32_gc","baseClr","NewDiffColor","props","goodColor","neutralColor","badColor","scaleLinear","formattedValueCacheByCanvas","WeakMap","highlightCacheByNames","colorCacheByNames","barIndexByLevels","defaultCanvasMessages","collapsedLevelsSingular","collapsedLevelsPlural","RenderCanvas","renderStart","performance","now","renderRects","renderText","renderMode","_a","timeBudgetMs","canvas","fitMode","tickToX","pxPerTick","rangeMin","rangeMax","focusedNode","zoom","messages","graphWidth","skipCanvasResize","clientWidth","getCanvasWidth","ff","getContext","selectedLevel","formatter","getFormatter","isFocused","topLevel","focusOffset","highlightModeOn","highlightQuery","canvasHeight","height","dpr","devicePixelRatio","skipDprScale","textBaseline","font","characterSize","measureText","formattedValueCache","cached","next","getFormattedValueCache","highlightByNameIndex","cachedByQuery","queryLower","matches","Uint8Array","nextMap","getHighlightByNameIndex","colorByNameIndex","cachedByPalette","packageName","getColorByNameIndexCached","diffColorFn","isHighlightedAt","nameIndex","initialStartI","_b","startI","initialStartJ","_c","startJ","_d","levelStart","beginPath","rect","fillStyle","shortName","levelCount","getCollapsedText","fitCalc","sh","save","clip","namePosX","fillText","restore","_e","maxLevels","levelEnd","_f","renderStartI","_g","renderStartJ","_h","getColorForBar","collapsed","isHighlighted","cfg","getColorCommon","getColorSingle","leftRatio","rightRatio","getRatios","colorBasedOnDiffPercent","getColorDouble","barIndex","list","getBarIndex","highlightNameIndices","entry","relativeLevel","numBarTicks","sw","done","nextI","nextJ","getFunctionName","getLongName","cachedValue","formatted","Flamegraph","cachedRange","cachedPxPerTick","getRange","xyToBarPosition","xy","xyToBarIndex","posX","xyToBarData","total","barTotal","totalLeft","totalRight","totalDiff","isWithinBounds","render","updateCachedMetrics","highlightQueryOverride","calculatedZoomRange","calculatedFocusRange","fRange","zRange","binarySearchLevel","x0","x1","computedY","compensatedFocusedY","compensation","parseXY","xyToBar","xyWithinBounds","state","rectCanvas","textCanvas","renderState","token","running","firstChunk","payload","flamegraph","debugState","initLogged","renderLogged","logWorkerError","context","runChunk","buildPalette","setTimeout","onmessage","event","msg","renderFlamegraph","onerror","onmessageerror","addEventListener","reason"],"mappings":"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","x_google_ignoreList":[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66]}
|