{"version":3,"file":"utils.mjs","names":[],"sources":["../src/utils.ts"],"sourcesContent":["/**\n * pipe() and dual() are slightly modified versions of Effect-TS's pipe() and dual() functions.\n * https://github.com/effect-ts/core/blob/main/src/function.ts\n *\n * The original versions are licensed under the MIT license.\n * This version is licensed under the MIT license.\n */\n\n// biome-ignore lint/suspicious/noExplicitAny: any is used to allow any argument to be passed in\ntype AnyFunction = (...args: Array<any>) => any\n\n// Per-arity helpers use `function` (not arrow) so they can read `arguments`\n// directly. V8 keeps `arguments` virtualized when only `arguments.length`\n// and individual `arguments[i]` accesses are used — no rest-args array\n// allocation per call. The generic / predicate paths fall back to materializing\n// the args because they need to forward an unknown number to either `apply`\n// or a deferred closure.\n\nexport const dual: {\n  <DataLast extends AnyFunction, DataFirst extends AnyFunction>(\n    arity: Parameters<DataFirst>['length'],\n    body: DataFirst,\n  ): DataLast & DataFirst\n  <DataLast extends AnyFunction, DataFirst extends AnyFunction>(\n    isDataFirst: (args: IArguments) => boolean,\n    body: DataFirst,\n  ): DataLast & DataFirst\n  // biome-ignore lint/suspicious/noExplicitAny: dual erases its types at runtime\n} = (arity: any, body: any): any => {\n  if (typeof arity === 'function') {\n    const isDataFirst = arity\n    return function (this: unknown) {\n      if (isDataFirst(arguments)) {\n        return body.apply(this, arguments)\n      }\n      const args = Array.prototype.slice.call(arguments)\n      return (self: unknown) => body(self, ...args)\n    }\n  }\n\n  switch (arity) {\n    case 0:\n    case 1:\n      throw new RangeError(`Invalid arity ${arity}`)\n\n    case 2:\n      return function () {\n        if (arguments.length >= 2) {\n          return body(arguments[0], arguments[1])\n        }\n        const a = arguments[0]\n        return (self: unknown) => body(self, a)\n      }\n\n    case 3:\n      return function () {\n        if (arguments.length >= 3) {\n          return body(arguments[0], arguments[1], arguments[2])\n        }\n        const a = arguments[0]\n        const b = arguments[1]\n        return (self: unknown) => body(self, a, b)\n      }\n\n    case 4:\n      return function () {\n        if (arguments.length >= 4) {\n          return body(arguments[0], arguments[1], arguments[2], arguments[3])\n        }\n        const a = arguments[0]\n        const b = arguments[1]\n        const c = arguments[2]\n        return (self: unknown) => body(self, a, b, c)\n      }\n\n    case 5:\n      return function () {\n        if (arguments.length >= 5) {\n          return body(arguments[0], arguments[1], arguments[2], arguments[3], arguments[4])\n        }\n        const a = arguments[0]\n        const b = arguments[1]\n        const c = arguments[2]\n        const d = arguments[3]\n        return (self: unknown) => body(self, a, b, c, d)\n      }\n\n    default:\n      return function (this: unknown) {\n        if (arguments.length >= arity) {\n          return body.apply(this, arguments)\n        }\n        const args = Array.prototype.slice.call(arguments)\n        return (self: unknown) => body(self, ...args)\n      }\n  }\n}\n\nexport function pipe<A>(a: A): A\nexport function pipe<A, B = never>(a: A, ab: (a: A) => B): B\nexport function pipe<A, B = never, C = never>(a: A, ab: (a: A) => B, bc: (b: B) => C): C\nexport function pipe<A, B = never, C = never, D = never>(\n  a: A,\n  ab: (a: A) => B,\n  bc: (b: B) => C,\n  cd: (c: C) => D,\n): D\nexport function pipe<A, B = never, C = never, D = never, E = never>(\n  a: A,\n  ab: (a: A) => B,\n  bc: (b: B) => C,\n  cd: (c: C) => D,\n  de: (d: D) => E,\n): E\nexport function pipe<A, B = never, C = never, D = never, E = never, F = never>(\n  a: A,\n  ab: (a: A) => B,\n  bc: (b: B) => C,\n  cd: (c: C) => D,\n  de: (d: D) => E,\n  ef: (e: E) => F,\n): F\nexport function pipe<A, B = never, C = never, D = never, E = never, F = never, G = never>(\n  a: A,\n  ab: (a: A) => B,\n  bc: (b: B) => C,\n  cd: (c: C) => D,\n  de: (d: D) => E,\n  ef: (e: E) => F,\n  fg: (f: F) => G,\n): G\nexport function pipe<\n  A,\n  B = never,\n  C = never,\n  D = never,\n  E = never,\n  F = never,\n  G = never,\n  H = never,\n>(\n  a: A,\n  ab: (a: A) => B,\n  bc: (b: B) => C,\n  cd: (c: C) => D,\n  de: (d: D) => E,\n  ef: (e: E) => F,\n  fg: (f: F) => G,\n  gh: (g: G) => H,\n): H\nexport function pipe<\n  A,\n  B = never,\n  C = never,\n  D = never,\n  E = never,\n  F = never,\n  G = never,\n  H = never,\n  I = never,\n>(\n  a: A,\n  ab: (a: A) => B,\n  bc: (b: B) => C,\n  cd: (c: C) => D,\n  de: (d: D) => E,\n  ef: (e: E) => F,\n  fg: (f: F) => G,\n  gh: (g: G) => H,\n  hi: (h: H) => I,\n): I\nexport function pipe<\n  A,\n  B = never,\n  C = never,\n  D = never,\n  E = never,\n  F = never,\n  G = never,\n  H = never,\n  I = never,\n  J = never,\n>(\n  a: A,\n  ab: (a: A) => B,\n  bc: (b: B) => C,\n  cd: (c: C) => D,\n  de: (d: D) => E,\n  ef: (e: E) => F,\n  fg: (f: F) => G,\n  gh: (g: G) => H,\n  hi: (h: H) => I,\n  ij: (i: I) => J,\n): J\nexport function pipe<\n  A,\n  B = never,\n  C = never,\n  D = never,\n  E = never,\n  F = never,\n  G = never,\n  H = never,\n  I = never,\n  J = never,\n  K = never,\n>(\n  a: A,\n  ab: (a: A) => B,\n  bc: (b: B) => C,\n  cd: (c: C) => D,\n  de: (d: D) => E,\n  ef: (e: E) => F,\n  fg: (f: F) => G,\n  gh: (g: G) => H,\n  hi: (h: H) => I,\n  ij: (i: I) => J,\n  jk: (j: J) => K,\n): K\nexport function pipe<\n  A,\n  B = never,\n  C = never,\n  D = never,\n  E = never,\n  F = never,\n  G = never,\n  H = never,\n  I = never,\n  J = never,\n  K = never,\n  L = never,\n>(\n  a: A,\n  ab: (a: A) => B,\n  bc: (b: B) => C,\n  cd: (c: C) => D,\n  de: (d: D) => E,\n  ef: (e: E) => F,\n  fg: (f: F) => G,\n  gh: (g: G) => H,\n  hi: (h: H) => I,\n  ij: (i: I) => J,\n  jk: (j: J) => K,\n  kl: (k: K) => L,\n): L\nexport function pipe<\n  A,\n  B = never,\n  C = never,\n  D = never,\n  E = never,\n  F = never,\n  G = never,\n  H = never,\n  I = never,\n  J = never,\n  K = never,\n  L = never,\n  M = never,\n>(\n  a: A,\n  ab: (a: A) => B,\n  bc: (b: B) => C,\n  cd: (c: C) => D,\n  de: (d: D) => E,\n  ef: (e: E) => F,\n  fg: (f: F) => G,\n  gh: (g: G) => H,\n  hi: (h: H) => I,\n  ij: (i: I) => J,\n  jk: (j: J) => K,\n  kl: (k: K) => L,\n  lm: (l: L) => M,\n): M\nexport function pipe<\n  A,\n  B = never,\n  C = never,\n  D = never,\n  E = never,\n  F = never,\n  G = never,\n  H = never,\n  I = never,\n  J = never,\n  K = never,\n  L = never,\n  M = never,\n  N = never,\n>(\n  a: A,\n  ab: (a: A) => B,\n  bc: (b: B) => C,\n  cd: (c: C) => D,\n  de: (d: D) => E,\n  ef: (e: E) => F,\n  fg: (f: F) => G,\n  gh: (g: G) => H,\n  hi: (h: H) => I,\n  ij: (i: I) => J,\n  jk: (j: J) => K,\n  kl: (k: K) => L,\n  lm: (l: L) => M,\n  mn: (m: M) => N,\n): N\nexport function pipe<\n  A,\n  B = never,\n  C = never,\n  D = never,\n  E = never,\n  F = never,\n  G = never,\n  H = never,\n  I = never,\n  J = never,\n  K = never,\n  L = never,\n  M = never,\n  N = never,\n  O = never,\n>(\n  a: A,\n  ab: (a: A) => B,\n  bc: (b: B) => C,\n  cd: (c: C) => D,\n  de: (d: D) => E,\n  ef: (e: E) => F,\n  fg: (f: F) => G,\n  gh: (g: G) => H,\n  hi: (h: H) => I,\n  ij: (i: I) => J,\n  jk: (j: J) => K,\n  kl: (k: K) => L,\n  lm: (l: L) => M,\n  mn: (m: M) => N,\n  no: (n: N) => O,\n): O\nexport function pipe<\n  A,\n  B = never,\n  C = never,\n  D = never,\n  E = never,\n  F = never,\n  G = never,\n  H = never,\n  I = never,\n  J = never,\n  K = never,\n  L = never,\n  M = never,\n  N = never,\n  O = never,\n  P = never,\n>(\n  a: A,\n  ab: (a: A) => B,\n  bc: (b: B) => C,\n  cd: (c: C) => D,\n  de: (d: D) => E,\n  ef: (e: E) => F,\n  fg: (f: F) => G,\n  gh: (g: G) => H,\n  hi: (h: H) => I,\n  ij: (i: I) => J,\n  jk: (j: J) => K,\n  kl: (k: K) => L,\n  lm: (l: L) => M,\n  mn: (m: M) => N,\n  no: (n: N) => O,\n  op: (o: O) => P,\n): P\nexport function pipe<\n  A,\n  B = never,\n  C = never,\n  D = never,\n  E = never,\n  F = never,\n  G = never,\n  H = never,\n  I = never,\n  J = never,\n  K = never,\n  L = never,\n  M = never,\n  N = never,\n  O = never,\n  P = never,\n  Q = never,\n>(\n  a: A,\n  ab: (a: A) => B,\n  bc: (b: B) => C,\n  cd: (c: C) => D,\n  de: (d: D) => E,\n  ef: (e: E) => F,\n  fg: (f: F) => G,\n  gh: (g: G) => H,\n  hi: (h: H) => I,\n  ij: (i: I) => J,\n  jk: (j: J) => K,\n  kl: (k: K) => L,\n  lm: (l: L) => M,\n  mn: (m: M) => N,\n  no: (n: N) => O,\n  op: (o: O) => P,\n  pq: (p: P) => Q,\n): Q\nexport function pipe<\n  A,\n  B = never,\n  C = never,\n  D = never,\n  E = never,\n  F = never,\n  G = never,\n  H = never,\n  I = never,\n  J = never,\n  K = never,\n  L = never,\n  M = never,\n  N = never,\n  O = never,\n  P = never,\n  Q = never,\n  R = never,\n>(\n  a: A,\n  ab: (a: A) => B,\n  bc: (b: B) => C,\n  cd: (c: C) => D,\n  de: (d: D) => E,\n  ef: (e: E) => F,\n  fg: (f: F) => G,\n  gh: (g: G) => H,\n  hi: (h: H) => I,\n  ij: (i: I) => J,\n  jk: (j: J) => K,\n  kl: (k: K) => L,\n  lm: (l: L) => M,\n  mn: (m: M) => N,\n  no: (n: N) => O,\n  op: (o: O) => P,\n  pq: (p: P) => Q,\n  qr: (q: Q) => R,\n): R\nexport function pipe<\n  A,\n  B = never,\n  C = never,\n  D = never,\n  E = never,\n  F = never,\n  G = never,\n  H = never,\n  I = never,\n  J = never,\n  K = never,\n  L = never,\n  M = never,\n  N = never,\n  O = never,\n  P = never,\n  Q = never,\n  R = never,\n  S = never,\n>(\n  a: A,\n  ab: (a: A) => B,\n  bc: (b: B) => C,\n  cd: (c: C) => D,\n  de: (d: D) => E,\n  ef: (e: E) => F,\n  fg: (f: F) => G,\n  gh: (g: G) => H,\n  hi: (h: H) => I,\n  ij: (i: I) => J,\n  jk: (j: J) => K,\n  kl: (k: K) => L,\n  lm: (l: L) => M,\n  mn: (m: M) => N,\n  no: (n: N) => O,\n  op: (o: O) => P,\n  pq: (p: P) => Q,\n  qr: (q: Q) => R,\n  rs: (r: R) => S,\n): S\nexport function pipe<\n  A,\n  B = never,\n  C = never,\n  D = never,\n  E = never,\n  F = never,\n  G = never,\n  H = never,\n  I = never,\n  J = never,\n  K = never,\n  L = never,\n  M = never,\n  N = never,\n  O = never,\n  P = never,\n  Q = never,\n  R = never,\n  S = never,\n  T = never,\n>(\n  a: A,\n  ab: (a: A) => B,\n  bc: (b: B) => C,\n  cd: (c: C) => D,\n  de: (d: D) => E,\n  ef: (e: E) => F,\n  fg: (f: F) => G,\n  gh: (g: G) => H,\n  hi: (h: H) => I,\n  ij: (i: I) => J,\n  jk: (j: J) => K,\n  kl: (k: K) => L,\n  lm: (l: L) => M,\n  mn: (m: M) => N,\n  no: (n: N) => O,\n  op: (o: O) => P,\n  pq: (p: P) => Q,\n  qr: (q: Q) => R,\n  rs: (r: R) => S,\n  st: (s: S) => T,\n): T\nexport function pipe(...args: [unknown, ...Array<AnyFunction>]): unknown {\n  const [a, ab, bc, cd, de, ef, fg, gh, hi] = args as [\n    unknown,\n    AnyFunction,\n    AnyFunction,\n    AnyFunction,\n    AnyFunction,\n    AnyFunction,\n    AnyFunction,\n    AnyFunction,\n    AnyFunction,\n  ]\n\n  switch (args.length) {\n    case 1:\n      return a\n    case 2:\n      return ab(a)\n    case 3:\n      return bc(ab(a))\n    case 4:\n      return cd(bc(ab(a)))\n    case 5:\n      return de(cd(bc(ab(a))))\n    case 6:\n      return ef(de(cd(bc(ab(a)))))\n    case 7:\n      return fg(ef(de(cd(bc(ab(a))))))\n    case 8:\n      return gh(fg(ef(de(cd(bc(ab(a)))))))\n    case 9:\n      return hi(gh(fg(ef(de(cd(bc(ab(a))))))))\n    default: {\n      let ret = args[0]\n      for (let i = 1; i < args.length; i++) {\n        ret = (args[i] as AnyFunction)(ret)\n      }\n      return ret\n    }\n  }\n}\n\nexport class Pipeable {\n  pipe<A>(this: A): A\n  pipe<A, B = never>(this: A, ab: (_: A) => B): B\n  pipe<A, B = never, C = never>(this: A, ab: (_: A) => B, bc: (_: B) => C): C\n  pipe<A, B = never, C = never, D = never>(\n    this: A,\n    ab: (_: A) => B,\n    bc: (_: B) => C,\n    cd: (_: C) => D,\n  ): D\n  pipe<A, B = never, C = never, D = never, E = never>(\n    this: A,\n    ab: (_: A) => B,\n    bc: (_: B) => C,\n    cd: (_: C) => D,\n    de: (_: D) => E,\n  ): E\n  pipe<A, B = never, C = never, D = never, E = never, F = never>(\n    this: A,\n    ab: (_: A) => B,\n    bc: (_: B) => C,\n    cd: (_: C) => D,\n    de: (_: D) => E,\n    ef: (_: E) => F,\n  ): F\n  pipe<A, B = never, C = never, D = never, E = never, F = never, G = never>(\n    this: A,\n    ab: (_: A) => B,\n    bc: (_: B) => C,\n    cd: (_: C) => D,\n    de: (_: D) => E,\n    ef: (_: E) => F,\n    fg: (_: F) => G,\n  ): G\n  pipe<A, B = never, C = never, D = never, E = never, F = never, G = never, H = never>(\n    this: A,\n    ab: (_: A) => B,\n    bc: (_: B) => C,\n    cd: (_: C) => D,\n    de: (_: D) => E,\n    ef: (_: E) => F,\n    fg: (_: F) => G,\n    gh: (_: G) => H,\n  ): H\n  pipe<A, B = never, C = never, D = never, E = never, F = never, G = never, H = never, I = never>(\n    this: A,\n    ab: (_: A) => B,\n    bc: (_: B) => C,\n    cd: (_: C) => D,\n    de: (_: D) => E,\n    ef: (_: E) => F,\n    fg: (_: F) => G,\n    gh: (_: G) => H,\n    hi: (_: H) => I,\n  ): I\n  pipe<\n    A,\n    B = never,\n    C = never,\n    D = never,\n    E = never,\n    F = never,\n    G = never,\n    H = never,\n    I = never,\n    J = never,\n  >(\n    this: A,\n    ab: (_: A) => B,\n    bc: (_: B) => C,\n    cd: (_: C) => D,\n    de: (_: D) => E,\n    ef: (_: E) => F,\n    fg: (_: F) => G,\n    gh: (_: G) => H,\n    hi: (_: H) => I,\n    ij: (_: I) => J,\n  ): J\n  pipe<\n    A,\n    B = never,\n    C = never,\n    D = never,\n    E = never,\n    F = never,\n    G = never,\n    H = never,\n    I = never,\n    J = never,\n    K = never,\n  >(\n    this: A,\n    ab: (_: A) => B,\n    bc: (_: B) => C,\n    cd: (_: C) => D,\n    de: (_: D) => E,\n    ef: (_: E) => F,\n    fg: (_: F) => G,\n    gh: (_: G) => H,\n    hi: (_: H) => I,\n    ij: (_: I) => J,\n    jk: (_: J) => K,\n  ): K\n  pipe<\n    A,\n    B = never,\n    C = never,\n    D = never,\n    E = never,\n    F = never,\n    G = never,\n    H = never,\n    I = never,\n    J = never,\n    K = never,\n    L = never,\n  >(\n    this: A,\n    ab: (_: A) => B,\n    bc: (_: B) => C,\n    cd: (_: C) => D,\n    de: (_: D) => E,\n    ef: (_: E) => F,\n    fg: (_: F) => G,\n    gh: (_: G) => H,\n    hi: (_: H) => I,\n    ij: (_: I) => J,\n    jk: (_: J) => K,\n    kl: (_: K) => L,\n  ): L\n  pipe<\n    A,\n    B = never,\n    C = never,\n    D = never,\n    E = never,\n    F = never,\n    G = never,\n    H = never,\n    I = never,\n    J = never,\n    K = never,\n    L = never,\n    M = never,\n  >(\n    this: A,\n    ab: (_: A) => B,\n    bc: (_: B) => C,\n    cd: (_: C) => D,\n    de: (_: D) => E,\n    ef: (_: E) => F,\n    fg: (_: F) => G,\n    gh: (_: G) => H,\n    hi: (_: H) => I,\n    ij: (_: I) => J,\n    jk: (_: J) => K,\n    kl: (_: K) => L,\n    lm: (_: L) => M,\n  ): M\n  pipe<\n    A,\n    B = never,\n    C = never,\n    D = never,\n    E = never,\n    F = never,\n    G = never,\n    H = never,\n    I = never,\n    J = never,\n    K = never,\n    L = never,\n    M = never,\n    N = never,\n  >(\n    this: A,\n    ab: (_: A) => B,\n    bc: (_: B) => C,\n    cd: (_: C) => D,\n    de: (_: D) => E,\n    ef: (_: E) => F,\n    fg: (_: F) => G,\n    gh: (_: G) => H,\n    hi: (_: H) => I,\n    ij: (_: I) => J,\n    jk: (_: J) => K,\n    kl: (_: K) => L,\n    lm: (_: L) => M,\n    mn: (_: M) => N,\n  ): N\n  pipe<\n    A,\n    B = never,\n    C = never,\n    D = never,\n    E = never,\n    F = never,\n    G = never,\n    H = never,\n    I = never,\n    J = never,\n    K = never,\n    L = never,\n    M = never,\n    N = never,\n    O = never,\n  >(\n    this: A,\n    ab: (_: A) => B,\n    bc: (_: B) => C,\n    cd: (_: C) => D,\n    de: (_: D) => E,\n    ef: (_: E) => F,\n    fg: (_: F) => G,\n    gh: (_: G) => H,\n    hi: (_: H) => I,\n    ij: (_: I) => J,\n    jk: (_: J) => K,\n    kl: (_: K) => L,\n    lm: (_: L) => M,\n    mn: (_: M) => N,\n    no: (_: N) => O,\n  ): O\n  pipe<\n    A,\n    B = never,\n    C = never,\n    D = never,\n    E = never,\n    F = never,\n    G = never,\n    H = never,\n    I = never,\n    J = never,\n    K = never,\n    L = never,\n    M = never,\n    N = never,\n    O = never,\n    P = never,\n  >(\n    this: A,\n    ab: (_: A) => B,\n    bc: (_: B) => C,\n    cd: (_: C) => D,\n    de: (_: D) => E,\n    ef: (_: E) => F,\n    fg: (_: F) => G,\n    gh: (_: G) => H,\n    hi: (_: H) => I,\n    ij: (_: I) => J,\n    jk: (_: J) => K,\n    kl: (_: K) => L,\n    lm: (_: L) => M,\n    mn: (_: M) => N,\n    no: (_: N) => O,\n    op: (_: O) => P,\n  ): P\n  pipe<\n    A,\n    B = never,\n    C = never,\n    D = never,\n    E = never,\n    F = never,\n    G = never,\n    H = never,\n    I = never,\n    J = never,\n    K = never,\n    L = never,\n    M = never,\n    N = never,\n    O = never,\n    P = never,\n    Q = never,\n  >(\n    this: A,\n    ab: (_: A) => B,\n    bc: (_: B) => C,\n    cd: (_: C) => D,\n    de: (_: D) => E,\n    ef: (_: E) => F,\n    fg: (_: F) => G,\n    gh: (_: G) => H,\n    hi: (_: H) => I,\n    ij: (_: I) => J,\n    jk: (_: J) => K,\n    kl: (_: K) => L,\n    lm: (_: L) => M,\n    mn: (_: M) => N,\n    no: (_: N) => O,\n    op: (_: O) => P,\n    pq: (_: P) => Q,\n  ): Q\n  pipe<\n    A,\n    B = never,\n    C = never,\n    D = never,\n    E = never,\n    F = never,\n    G = never,\n    H = never,\n    I = never,\n    J = never,\n    K = never,\n    L = never,\n    M = never,\n    N = never,\n    O = never,\n    P = never,\n    Q = never,\n    R = never,\n  >(\n    this: A,\n    ab: (_: A) => B,\n    bc: (_: B) => C,\n    cd: (_: C) => D,\n    de: (_: D) => E,\n    ef: (_: E) => F,\n    fg: (_: F) => G,\n    gh: (_: G) => H,\n    hi: (_: H) => I,\n    ij: (_: I) => J,\n    jk: (_: J) => K,\n    kl: (_: K) => L,\n    lm: (_: L) => M,\n    mn: (_: M) => N,\n    no: (_: N) => O,\n    op: (_: O) => P,\n    pq: (_: P) => Q,\n    qr: (_: Q) => R,\n  ): R\n  pipe<\n    A,\n    B = never,\n    C = never,\n    D = never,\n    E = never,\n    F = never,\n    G = never,\n    H = never,\n    I = never,\n    J = never,\n    K = never,\n    L = never,\n    M = never,\n    N = never,\n    O = never,\n    P = never,\n    Q = never,\n    R = never,\n    S = never,\n  >(\n    this: A,\n    ab: (_: A) => B,\n    bc: (_: B) => C,\n    cd: (_: C) => D,\n    de: (_: D) => E,\n    ef: (_: E) => F,\n    fg: (_: F) => G,\n    gh: (_: G) => H,\n    hi: (_: H) => I,\n    ij: (_: I) => J,\n    jk: (_: J) => K,\n    kl: (_: K) => L,\n    lm: (_: L) => M,\n    mn: (_: M) => N,\n    no: (_: N) => O,\n    op: (_: O) => P,\n    pq: (_: P) => Q,\n    qr: (_: Q) => R,\n    rs: (_: R) => S,\n  ): S\n  pipe<\n    A,\n    B = never,\n    C = never,\n    D = never,\n    E = never,\n    F = never,\n    G = never,\n    H = never,\n    I = never,\n    J = never,\n    K = never,\n    L = never,\n    M = never,\n    N = never,\n    O = never,\n    P = never,\n    Q = never,\n    R = never,\n    S = never,\n    T = never,\n  >(\n    this: A,\n    ab: (_: A) => B,\n    bc: (_: B) => C,\n    cd: (_: C) => D,\n    de: (_: D) => E,\n    ef: (_: E) => F,\n    fg: (_: F) => G,\n    gh: (_: G) => H,\n    hi: (_: H) => I,\n    ij: (_: I) => J,\n    jk: (_: J) => K,\n    kl: (_: K) => L,\n    lm: (_: L) => M,\n    mn: (_: M) => N,\n    no: (_: N) => O,\n    op: (_: O) => P,\n    pq: (_: P) => Q,\n    qr: (_: Q) => R,\n    rs: (_: R) => S,\n    st: (_: S) => T,\n  ): T\n  pipe<\n    A,\n    B = never,\n    C = never,\n    D = never,\n    E = never,\n    F = never,\n    G = never,\n    H = never,\n    I = never,\n    J = never,\n    K = never,\n    L = never,\n    M = never,\n    N = never,\n    O = never,\n    P = never,\n    Q = never,\n    R = never,\n    S = never,\n    T = never,\n    U = never,\n  >(\n    this: A,\n    ab: (_: A) => B,\n    bc: (_: B) => C,\n    cd: (_: C) => D,\n    de: (_: D) => E,\n    ef: (_: E) => F,\n    fg: (_: F) => G,\n    gh: (_: G) => H,\n    hi: (_: H) => I,\n    ij: (_: I) => J,\n    jk: (_: J) => K,\n    kl: (_: K) => L,\n    lm: (_: L) => M,\n    mn: (_: M) => N,\n    no: (_: N) => O,\n    op: (_: O) => P,\n    pq: (_: P) => Q,\n    qr: (_: Q) => R,\n    rs: (_: R) => S,\n    st: (_: S) => T,\n    tu: (_: T) => U,\n  ): U\n  pipe<\n    A,\n    B = never,\n    C = never,\n    D = never,\n    E = never,\n    F = never,\n    G = never,\n    H = never,\n    I = never,\n    J = never,\n    K = never,\n    L = never,\n    M = never,\n    N = never,\n    O = never,\n    P = never,\n    Q = never,\n    R = never,\n    S = never,\n    T = never,\n    U = never,\n  >(\n    this: A,\n    ab: (_: A) => B,\n    bc: (_: B) => C,\n    cd: (_: C) => D,\n    de: (_: D) => E,\n    ef: (_: E) => F,\n    fg: (_: F) => G,\n    gh: (_: G) => H,\n    hi: (_: H) => I,\n    ij: (_: I) => J,\n    jk: (_: J) => K,\n    kl: (_: K) => L,\n    lm: (_: L) => M,\n    mn: (_: M) => N,\n    no: (_: N) => O,\n    op: (_: O) => P,\n    pq: (_: P) => Q,\n    qr: (_: Q) => R,\n    rs: (_: R) => S,\n    st: (_: S) => T,\n    tu: (_: T) => U,\n  ): U\n  pipe(...args: Array<AnyFunction>) {\n    // the assertion is probably wrong but makes typescript let us spread the args into pipe()\n    return pipe(this, ...(args as [AnyFunction]))\n  }\n}\n\n/**\n * Asserts that a condition is true, throwing an error with the provided message if it is not.\n *\n * @param condition - The condition to assert.\n * @param message - The error message to throw if the condition is false.\n * @throws An error with the provided message if the condition is false.\n * @example\n * ```ts\n * import { invariant } from 'curvy/utils'\n *\n * invariant(1 + 1 === 2, 'Math is broken!') // No error\n * invariant(1 + 1 === 3, 'Math is broken!') // Throws: Math is broken!\n * ```\n * @since 1.0.0\n */\nexport function invariant(condition: boolean, message: string): asserts condition {\n  if (!condition) {\n    throw new Error(message)\n  }\n}\n"],"mappings":"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"}