{"version":3,"file":"optics-ts-Bjz1Gjhh.js","sources":["../../node_modules/optics-ts/dist/mjs/internals.js","../../node_modules/optics-ts/dist/mjs/index.js"],"sourcesContent":["var __rest = (this && this.__rest) || function (s, e) {\n var t = {};\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\n t[p] = s[p];\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\n for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))\n t[p[i]] = s[p[i]];\n }\n return t;\n};\n/* eslint-disable @typescript-eslint/no-non-null-assertion */\nexport const id = (x) => x;\nconst Left = (value) => ({\n _tag: 'Left',\n value,\n});\nconst Right = (value) => ({\n _tag: 'Right',\n value,\n});\nconst either = (mapLeft, mapRight, e) => (e._tag === 'Left' ? mapLeft(e.value) : mapRight(e.value));\nconst profunctorFn = {\n dimap: (f, g, fn) => (x) => g(fn(f(x))),\n first: (f) => ([x, y]) => [f(x), y],\n right: (f) => (e) => e._tag === 'Left' ? e : Right(f(e.value)),\n wander: (f) => (xs) => xs.map(f),\n};\nconst monoidFirst = {\n empty: () => undefined,\n foldMap: (f, xs) => {\n for (let i = 0; i < xs.length; i++) {\n const x = f(xs[i]);\n if (x != undefined)\n return x;\n }\n return undefined;\n },\n};\nconst monoidArray = {\n empty: () => [],\n foldMap: (f, xs) => {\n let acc = [];\n xs.forEach((x) => {\n acc = acc.concat(f(x));\n });\n return acc;\n },\n};\nconst profunctorConst = (monoid) => ({\n dimap: (f, _g, toF) => (x) => toF(f(x)),\n first: (toF) => ([x, _y]) => toF(x),\n right: (toF) => (e) => e._tag === 'Left' ? monoid.empty() : toF(e.value),\n wander: (toF) => (xs) => monoid.foldMap(toF, xs),\n});\nexport const compositionType = {\n Equivalence: {\n Equivalence: 'Equivalence',\n Iso: 'Iso',\n Lens: 'Lens',\n Prism: 'Prism',\n Traversal: 'Traversal',\n Getter: 'Getter',\n AffineFold: 'AffineFold',\n Fold: 'Fold',\n Setter: 'Setter',\n },\n Iso: {\n Equivalence: 'Iso',\n Iso: 'Iso',\n Lens: 'Lens',\n Prism: 'Prism',\n Traversal: 'Traversal',\n Getter: 'Getter',\n AffineFold: 'AffineFold',\n Fold: 'Fold',\n Setter: 'Setter',\n },\n Lens: {\n Equivalence: 'Lens',\n Iso: 'Lens',\n Lens: 'Lens',\n Prism: 'Prism',\n Traversal: 'Traversal',\n Getter: 'Getter',\n AffineFold: 'AffineFold',\n Fold: 'Fold',\n Setter: 'Setter',\n },\n Prism: {\n Equivalence: 'Prism',\n Iso: 'Prism',\n Lens: 'Prism',\n Prism: 'Prism',\n Traversal: 'Traversal',\n Getter: 'AffineFold',\n AffineFold: 'AffineFold',\n Fold: 'Fold',\n Setter: 'Setter',\n },\n Traversal: {\n Equivalence: 'Traversal',\n Iso: 'Traversal',\n Lens: 'Traversal',\n Prism: 'Traversal',\n Traversal: 'Traversal',\n Getter: 'Fold',\n AffineFold: 'Fold',\n Fold: 'Fold',\n Setter: 'Setter',\n },\n Getter: {\n Equivalence: 'Getter',\n Iso: 'Getter',\n Lens: 'Getter',\n Prism: 'AffineFold',\n Traversal: 'Fold',\n Getter: 'Getter',\n AffineFold: 'AffineFold',\n Fold: 'Fold',\n Setter: undefined,\n },\n AffineFold: {\n Equivalence: 'AffineFold',\n Iso: 'AffineFold',\n Lens: 'AffineFold',\n Prism: 'AffineFold',\n Traversal: 'Fold',\n Getter: 'AffineFold',\n AffineFold: 'AffineFold',\n Fold: 'Fold',\n Setter: undefined,\n },\n Fold: {\n Equivalence: 'Fold',\n Iso: 'Fold',\n Lens: 'Fold',\n Prism: 'Fold',\n Traversal: 'Fold',\n Getter: 'Fold',\n AffineFold: 'Fold',\n Fold: 'Fold',\n Setter: undefined,\n },\n Setter: {\n Equivalence: undefined,\n Iso: undefined,\n Lens: undefined,\n Prism: undefined,\n Traversal: undefined,\n Getter: undefined,\n AffineFold: undefined,\n Fold: undefined,\n Setter: undefined,\n },\n};\nconst withTag = (tag, optic) => {\n const result = optic;\n result._tag = tag;\n return result;\n};\nconst removable = (optic) => {\n optic._removable = true;\n return optic;\n};\nfunction compose(optic1, optic2, optic3) {\n switch (arguments.length) {\n case 2: {\n const next = (P, optic) => optic1(P, optic2(P, optic));\n next._tag = compositionType[optic1._tag][optic2._tag];\n next._removable = optic2._removable || false;\n return next;\n }\n default: {\n const tag1 = compositionType[optic1._tag][optic2._tag];\n const next = (P, optic) => optic1(P, optic2(P, optic3(P, optic)));\n next._tag = compositionType[tag1][optic3._tag];\n next._removable = optic3._removable || false;\n return next;\n }\n }\n}\nexport const eq = /* @__PURE__ */ withTag('Equivalence', (_P, optic) => optic);\nexport const iso = (there, back) => withTag('Iso', (P, optic) => P.dimap(there, back, optic));\nexport const lens = (view, update) => withTag('Lens', (P, optic) => P.dimap((x) => [view(x), x], update, P.first(optic)));\nconst prism = (match, build) => withTag('Prism', (P, optic) => P.dimap(match, (x) => either(id, build, x), P.right(optic)));\nexport const elems = /* @__PURE__ */ withTag('Traversal', (P, optic) => P.dimap(id, id, P.wander(optic)));\nexport const to = (fn) => withTag('Getter', (P, optic) => P.dimap(fn, id, optic));\n/////////////////////////////////////////////////////////////////////////////\nexport const modify = (optic, fn, source) => optic(profunctorFn, fn)(source);\nexport const set = (optic, value, source) => optic(profunctorFn, () => value)(source);\nexport const remove = (optic, source) => set(optic, removeMe, source);\nexport const get = (optic, source) => optic(profunctorConst({}), id)(source);\nexport const preview = (optic, source) => optic(profunctorConst(monoidFirst), id)(source);\nexport const collect = (optic, source) => optic(profunctorConst(monoidArray), (x) => [x])(source);\n/////////////////////////////////////////////////////////////////////////////\nexport const indexed = /* @__PURE__ */ iso((value) => value.map((v, k) => [k, v]), (value) => {\n const sorted = [...value].sort((a, b) => a[0] - b[0]);\n const result = [];\n for (let i = 0; i < sorted.length; ++i) {\n if (i === sorted.length - 1 || sorted[i][0] !== sorted[i + 1][0]) {\n result.push(sorted[i][1]);\n }\n }\n return result;\n});\nexport const prop = (key) => lens((source) => source[key], ([value, source]) => (Object.assign(Object.assign({}, source), { [key]: value })));\nexport const pick = (keys) => lens((source) => {\n const value = {};\n for (const key of keys) {\n value[key] = source[key];\n }\n return value;\n}, ([value, source]) => {\n const result = Object.assign({}, source);\n for (const key of keys) {\n delete result[key];\n }\n return Object.assign(result, value);\n});\nexport const nth = (n) => lens((value) => value[n], ([value, source]) => {\n const result = source.slice();\n result[n] = value;\n return result;\n});\nconst fst = /* @__PURE__ */ nth(0);\nexport const when = (pred) => prism((x) => (pred(x) ? Right(x) : Left(x)), id);\nconst noMatch = /* @__PURE__ */ Symbol('__no_match__');\nconst mustMatch = /* @__PURE__ */ when((source) => source !== noMatch);\nconst removeMe = /* @__PURE__ */ Symbol('__remove_me__');\nexport const at = (i) => removable(compose(lens((source) => (0 <= i && i < source.length ? source[i] : noMatch), ([value, source]) => {\n if (value === noMatch) {\n return source;\n }\n if (value === removeMe) {\n if (typeof source === 'string') {\n return source.substring(0, i) + source.substring(i + 1);\n }\n else {\n return [...source.slice(0, i), ...source.slice(i + 1)];\n }\n }\n if (typeof source === 'string') {\n if (i === 0) {\n return value + source.substring(1);\n }\n if (i === source.length) {\n return source.substring(0, i - 1) + value;\n }\n return source.substring(0, i) + value + source.substring(i + 1);\n }\n else {\n const result = source.slice();\n result[i] = value;\n return result;\n }\n}), mustMatch));\nexport const atKey = (key) => removable(compose(lens((source) => {\n const value = source[key];\n return value !== undefined ? value : noMatch;\n}, ([value, source]) => {\n if (value === noMatch) {\n return source;\n }\n if (value === removeMe) {\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n const _a = source, _b = key, _ = _a[_b], rest = __rest(_a, [typeof _b === \"symbol\" ? _b : _b + \"\"]);\n return rest;\n }\n return Object.assign(Object.assign({}, source), { [key]: value });\n}), mustMatch));\nexport const optional = /* @__PURE__ */ prism((source) => (source === undefined ? Left(undefined) : Right(source)), id);\nexport const guard = (fn) => prism((source) => (fn(source) ? Right(source) : Left(source)), id);\nexport const find = (predicate) => removable(compose(lens((source) => {\n const index = source.findIndex(predicate);\n if (index === -1) {\n return [noMatch, -1];\n }\n return [source[index], index];\n}, ([[value, index], source]) => {\n if (value === noMatch) {\n return source;\n }\n if (value === removeMe) {\n return [...source.slice(0, index), ...source.slice(index + 1)];\n }\n const result = source.slice();\n result[index] = value;\n return result;\n}), fst, mustMatch));\nexport const filter = (predicate) => compose(lens((source) => {\n const indexes = source\n .map((item, index) => (predicate(item) ? index : null))\n .filter((index) => index != null);\n return [indexes.map((index) => source[index]), indexes];\n}, ([[values, indexes], source]) => {\n const sn = source.length, vn = values.length;\n let si = 0, ii = 0, vi = 0;\n const result = [];\n while (si < sn) {\n if (indexes[ii] === si) {\n ++ii;\n if (vi < vn) {\n result.push(values[vi]);\n ++vi;\n }\n }\n else {\n result.push(source[si]);\n }\n ++si;\n }\n while (vi < vn) {\n result.push(values[vi++]);\n }\n return result;\n}), fst);\nexport const valueOr = (defaultValue) => lens((source) => (source === undefined ? defaultValue : source), ([value, _source]) => value);\nexport const partsOf = (traversal) => compose(lens((source) => {\n const value = collect(traversal, source);\n return [value, value.length];\n}, ([[value, originalLength], source]) => {\n if (value.length !== originalLength) {\n throw new Error('cannot add/remove elements through partsOf');\n }\n let i = 0;\n return modify(traversal, () => value[i++], source);\n}), fst);\nexport const reread = (fn) => lens((source) => fn(source), ([value, _]) => value);\nexport const rewrite = (fn) => lens((source) => source, ([value, _]) => fn(value));\nexport const prependTo = /* @__PURE__ */ lens((_source) => undefined, ([value, source]) => {\n if (value === undefined)\n return source;\n return [value, ...source];\n});\nexport const appendTo = /* @__PURE__ */ lens((_source) => undefined, ([value, source]) => {\n if (value === undefined)\n return source;\n return [...source, value];\n});\nexport const chars = /* @__PURE__ */ compose(iso((s) => s.split(''), (a) => a.join('')), elems);\nexport const words = /* @__PURE__ */ compose(iso((s) => s.split(/\\b/), (a) => a.join('')), elems, when((s) => !/\\s+/.test(s)));\n/////////////////////////////////////////////////////////////////////////////\nexport class Optic {\n constructor(_ref) {\n this._ref = _ref;\n }\n get _tag() {\n return this._ref._tag;\n }\n get _removable() {\n return this._ref._removable;\n }\n compose(other) {\n return new Optic(compose(this._ref, other._ref));\n }\n iso(there, back) {\n return new Optic(compose(this._ref, iso(there, back)));\n }\n lens(view, set) {\n return new Optic(compose(this._ref, lens(view, ([value, source]) => set(source, value))));\n }\n indexed() {\n return new Optic(compose(this._ref, indexed));\n }\n prop(key) {\n return new Optic(compose(this._ref, prop(key)));\n }\n path(...keys) {\n if (keys.length === 1) {\n keys = keys[0].split('.');\n }\n return new Optic(keys.reduce((ref, key) => compose(ref, prop(key)), this._ref));\n }\n pick(keys) {\n return new Optic(compose(this._ref, pick(keys)));\n }\n nth(n) {\n return new Optic(compose(this._ref, nth(n)));\n }\n filter(predicate) {\n return new Optic(compose(this._ref, filter(predicate)));\n }\n valueOr(defaultValue) {\n return new Optic(compose(this._ref, valueOr(defaultValue)));\n }\n partsOf(traversalOrFn) {\n const traversal = typeof traversalOrFn === 'function' ? traversalOrFn(optic) : traversalOrFn;\n return new Optic(compose(this._ref, partsOf(traversal._ref)));\n }\n reread(fn) {\n return new Optic(compose(this._ref, reread(fn)));\n }\n rewrite(fn) {\n return new Optic(compose(this._ref, rewrite(fn)));\n }\n optional() {\n return new Optic(compose(this._ref, optional));\n }\n guard_() {\n return (fn) => this.guard(fn);\n }\n guard(fn) {\n return new Optic(compose(this._ref, guard(fn)));\n }\n at(i) {\n return new Optic(compose(this._ref, at(i)));\n }\n head() {\n return new Optic(compose(this._ref, at(0)));\n }\n index(i) {\n return new Optic(compose(this._ref, at(i)));\n }\n find(predicate) {\n return new Optic(compose(this._ref, find(predicate)));\n }\n elems() {\n return new Optic(compose(this._ref, elems));\n }\n to(fn) {\n return new Optic(compose(this._ref, to(fn)));\n }\n when(predicate) {\n return new Optic(compose(this._ref, when(predicate)));\n }\n chars() {\n return new Optic(compose(this._ref, chars));\n }\n words() {\n return new Optic(compose(this._ref, words));\n }\n prependTo() {\n return new Optic(compose(this._ref, prependTo));\n }\n appendTo() {\n return new Optic(compose(this._ref, appendTo));\n }\n}\nexport const optic = /* @__PURE__ */ new Optic(eq);\n","/* eslint-disable @typescript-eslint/adjacent-overload-signatures, @typescript-eslint/no-unused-vars */\n// This file is generated, do not edit! See ../scripts/generate-index.ts\nimport * as I from './internals.js';\nexport function compose(optic1, optic2) {\n return optic1.compose(optic2);\n}\nexport function optic() {\n return I.optic;\n}\nexport function optic_() {\n return I.optic;\n}\nexport function get(optic) {\n return (source) => I.get(optic._ref, source);\n}\nexport function preview(optic) {\n return (source) => I.preview(optic._ref, source);\n}\nexport function collect(optic) {\n return (source) => I.collect(optic._ref, source);\n}\nexport function modify(optic) {\n return (f) => (source) => I.modify(optic._ref, f, source);\n}\nexport function set(optic) {\n return (value) => (source) => I.set(optic._ref, value, source);\n}\nexport function remove(optic) {\n return (source) => I.remove(optic._ref, source);\n}\nexport { pipe } from './standalone/pipe.js';\n"],"names":["id","x","Left","value","_tag","Right","profunctorFn","dimap","f","g","fn","first","y","right","e","wander","xs","map","monoidFirst","empty","foldMap","i","length","monoidArray","acc","forEach","concat","profunctorConst","monoid","_g","toF","_y","compositionType","Equivalence","Iso","Lens","Prism","Traversal","Getter","AffineFold","Fold","Setter","withTag","tag","optic","result","removable","_removable","compose","optic1","optic2","optic3","arguments","next","P","tag1","eq","_P","iso","there","back","lens","view","update","prism","match","build","either","mapLeft","mapRight","elems","modify","source","collect","indexed","v","k","sorted","sort","a","b","push","prop","key","Object","assign","nth","n","slice","fst","when","pred","noMatch","mustMatch","removeMe","at","substring","optional","prependTo","_source","appendTo","chars","s","split","join","words","test","Optic","constructor","_ref","this","other","set","path","keys","reduce","ref","pick","filter","predicate","indexes","item","index","values","sn","vn","si","ii","vi","valueOr","defaultValue","partsOf","traversalOrFn","traversal","originalLength","Error","reread","_","rewrite","guard_","guard","head","find","findIndex","to","I.optic","get","I.get","preview","I.preview","I.collect","I.modify","I.set"],"mappings":"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","x_google_ignoreList":[0,1]}