fp-pack 0.5.0 → 0.7.0

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.
Files changed (82) hide show
  1. package/README.md +17 -15
  2. package/dist/fp-pack.umd.js +1 -1
  3. package/dist/fp-pack.umd.js.map +1 -1
  4. package/dist/implement/async/pipeAsync.d.ts +11 -0
  5. package/dist/implement/async/pipeAsync.d.ts.map +1 -1
  6. package/dist/implement/async/pipeAsync.mjs.map +1 -1
  7. package/dist/implement/async/pipeAsyncSideEffect.d.ts +11 -0
  8. package/dist/implement/async/pipeAsyncSideEffect.d.ts.map +1 -1
  9. package/dist/implement/async/pipeAsyncSideEffect.mjs.map +1 -1
  10. package/dist/implement/composition/compose.d.ts +25 -9
  11. package/dist/implement/composition/compose.d.ts.map +1 -1
  12. package/dist/implement/composition/compose.mjs.map +1 -1
  13. package/dist/implement/composition/compose.type-test.d.ts +35 -0
  14. package/dist/implement/composition/compose.type-test.d.ts.map +1 -0
  15. package/dist/implement/composition/compose.util.type-test.d.ts +31 -0
  16. package/dist/implement/composition/compose.util.type-test.d.ts.map +1 -0
  17. package/dist/implement/composition/curry.d.ts +5 -5
  18. package/dist/implement/composition/curry.d.ts.map +1 -1
  19. package/dist/implement/composition/curry.mjs.map +1 -1
  20. package/dist/implement/composition/index.d.ts +4 -0
  21. package/dist/implement/composition/index.d.ts.map +1 -1
  22. package/dist/implement/composition/pipe.d.ts +3 -0
  23. package/dist/implement/composition/pipe.d.ts.map +1 -1
  24. package/dist/implement/composition/pipe.mjs.map +1 -1
  25. package/dist/implement/composition/pipe.type-test.d.ts +117 -1
  26. package/dist/implement/composition/pipe.type-test.d.ts.map +1 -1
  27. package/dist/implement/composition/pipe.util.type-test.d.ts +75 -0
  28. package/dist/implement/composition/pipe.util.type-test.d.ts.map +1 -0
  29. package/dist/implement/composition/sideEffect.d.ts +1 -1
  30. package/dist/implement/composition/sideEffect.d.ts.map +1 -1
  31. package/dist/implement/composition/sideEffect.mjs.map +1 -1
  32. package/dist/implement/composition/tap0.d.ts +6 -0
  33. package/dist/implement/composition/tap0.d.ts.map +1 -0
  34. package/dist/implement/composition/tap0.mjs +9 -0
  35. package/dist/implement/composition/tap0.mjs.map +1 -0
  36. package/dist/implement/object/assocPath.d.ts +2 -1
  37. package/dist/implement/object/assocPath.d.ts.map +1 -1
  38. package/dist/implement/object/assocPath.mjs.map +1 -1
  39. package/dist/implement/object/dissocPath.d.ts +2 -1
  40. package/dist/implement/object/dissocPath.d.ts.map +1 -1
  41. package/dist/implement/object/dissocPath.mjs.map +1 -1
  42. package/dist/implement/object/index.d.ts +1 -0
  43. package/dist/implement/object/index.d.ts.map +1 -1
  44. package/dist/implement/object/path.d.ts +4 -2
  45. package/dist/implement/object/path.d.ts.map +1 -1
  46. package/dist/implement/object/path.mjs.map +1 -1
  47. package/dist/implement/object/pathKey.d.ts +2 -0
  48. package/dist/implement/object/pathKey.d.ts.map +1 -0
  49. package/dist/implement/object/pathOr.d.ts +5 -3
  50. package/dist/implement/object/pathOr.d.ts.map +1 -1
  51. package/dist/implement/object/pathOr.mjs.map +1 -1
  52. package/dist/index.d.ts +1 -0
  53. package/dist/index.d.ts.map +1 -1
  54. package/dist/index.mjs +230 -228
  55. package/dist/index.mjs.map +1 -1
  56. package/dist/skills/fp-pack/SKILL.md +19 -16
  57. package/dist/skills/fp-pack.md +19 -16
  58. package/dist/stream/index.d.ts +1 -0
  59. package/dist/stream/index.d.ts.map +1 -1
  60. package/package.json +1 -1
  61. package/src/implement/async/pipeAsync.ts +71 -0
  62. package/src/implement/async/pipeAsyncSideEffect.ts +74 -0
  63. package/src/implement/composition/compose.test.ts +14 -0
  64. package/src/implement/composition/compose.ts +133 -21
  65. package/src/implement/composition/compose.type-test.ts +109 -0
  66. package/src/implement/composition/compose.util.type-test.ts +128 -0
  67. package/src/implement/composition/curry.ts +5 -5
  68. package/src/implement/composition/index.ts +4 -0
  69. package/src/implement/composition/pipe.ts +4 -0
  70. package/src/implement/composition/pipe.type-test.ts +269 -1
  71. package/src/implement/composition/pipe.util.type-test.ts +256 -0
  72. package/src/implement/composition/sideEffect.ts +1 -1
  73. package/src/implement/composition/tap0.test.ts +16 -0
  74. package/src/implement/composition/tap0.ts +10 -0
  75. package/src/implement/object/assocPath.ts +2 -2
  76. package/src/implement/object/dissocPath.ts +2 -2
  77. package/src/implement/object/index.ts +1 -0
  78. package/src/implement/object/path.ts +5 -3
  79. package/src/implement/object/pathKey.ts +1 -0
  80. package/src/implement/object/pathOr.ts +6 -4
  81. package/src/index.ts +3 -0
  82. package/src/stream/index.ts +1 -0
package/README.md CHANGED
@@ -90,7 +90,7 @@ There's no framework and no heavy abstractions—just well-chosen helpers that m
90
90
  `pipe` (sync) and `pipeAsync` (async) are the primary composition tools. All utilities are designed to work seamlessly in pipe chains.
91
91
 
92
92
  - **Pragmatic error handling**
93
- The `SideEffect` pattern handles errors and side effects declaratively in `pipeSideEffect`/`pipeAsyncSideEffect` pipelines. Write normal functions that compose naturally—these pipelines automatically short-circuit when they encounter a `SideEffect`, eliminating the need for wrapper types everywhere. For strict union typing across branches, use `pipeSideEffectStrict` / `pipeAsyncSideEffectStrict`. Use `runPipeResult<T, R>`/`matchSideEffect` **outside** the pipeline with generics for type safety, and `isSideEffect` for runtime type checking.
93
+ The `SideEffect` pattern handles errors and side effects declaratively in `pipeSideEffect`/`pipeAsyncSideEffect` pipelines. Write normal functions that compose naturally—these pipelines automatically short-circuit when they encounter a `SideEffect`, eliminating the need for wrapper types everywhere. For strict union typing across branches, use `pipeSideEffectStrict` / `pipeAsyncSideEffectStrict`. Use `runPipeResult`/`matchSideEffect` **outside** the pipeline. If the result type is widened (e.g. `SideEffect<any>`), provide generics to recover a safe union. Use `isSideEffect` for precise runtime narrowing.
94
94
 
95
95
  - **Immutable & Pure by default**
96
96
  Core utilities avoid mutations and side effects. Any exception is explicitly named (e.g. `tap`, `log`).
@@ -324,12 +324,13 @@ Functions for composing and transforming other functions.
324
324
  - **constant** - Always return the same value
325
325
  - **from** - Ignore input and return a fixed value
326
326
  - **tap** - Execute side effects without changing the value
327
+ - **tap0** - Execute side effects without input
327
328
  - **once** - Create a function that only executes once
328
329
  - **memoize** - Cache function results for same inputs
329
330
  - **SideEffect** - Side effect container for SideEffect-aware pipelines
330
331
  - **isSideEffect** - Type guard for runtime checking whether a value is a SideEffect
331
332
  - **matchSideEffect** - Pattern match on value or SideEffect
332
- - **runPipeResult** - Execute SideEffect or return value (call OUTSIDE pipelines). **⚠️ CRITICAL:** `runPipeResult<T, R=any>` has default `R=any`, so using it without generics returns `any` type. Always provide explicit type parameters `runPipeResult<SuccessType, ErrorType>` for type safety. Use `isSideEffect` for runtime type checking
333
+ - **runPipeResult** - Execute SideEffect or return value (call OUTSIDE pipelines). If the input is widened to `SideEffect<any>`/`any`, the result becomes `any`; provide explicit type parameters `runPipeResult<SuccessType, ErrorType>` to recover a safe union. Use `isSideEffect` for precise type narrowing.
333
334
 
334
335
  ### Control Flow
335
336
 
@@ -583,34 +584,35 @@ const processNumbers = pipeSideEffect(
583
584
 
584
585
  const oddsDoubled = processNumbers([1, 2, 3, 4, 5]);
585
586
 
586
- // ✅ CORRECT: Use isSideEffect for type checking + provide generics to runPipeResult
587
+ // ✅ CORRECT: Use isSideEffect for type checking
587
588
  if (!isSideEffect(oddsDoubled)) {
588
589
  // TypeScript knows: oddsDoubled is number[]
589
590
  const sum: number = oddsDoubled.reduce((a, b) => a + b, 0);
590
591
  console.log(`Sum: ${sum}`); // sum: number
591
592
  } else {
592
- // TypeScript knows: oddsDoubled is SideEffect<string>
593
- // But runPipeResult still returns number[] | string (not fully narrowed)
594
- const error = runPipeResult<number[], string>(oddsDoubled);
595
- console.log(`Error: ${error}`); // error: number[] | string
593
+ // pipeSideEffect widens SideEffect to any, so runPipeResult becomes any here
594
+ const error = runPipeResult(oddsDoubled);
595
+ console.log(`Error: ${error}`); // error: any
596
596
  }
597
597
 
598
- // WRONG: runPipeResult without generics
599
- const result = runPipeResult(oddsDoubled); // result: any (no type information!)
598
+ // ⚠️ If the result type is widened, inference is lost
599
+ const widened: number[] | SideEffect<any> = oddsDoubled;
600
+ const unsafeResult = runPipeResult(widened); // result: any
600
601
 
601
- // ✅ CORRECT: Provide generics to runPipeResult
602
- const result = runPipeResult<number[], string>(oddsDoubled); // result: number[] | string (union type - safe but not narrowed)
602
+ // ✅ CORRECT: Provide generics to recover a safe union
603
+ const safeResult = runPipeResult<number[], string>(oddsDoubled); // result: number[] | string (union type - safe but not narrowed)
603
604
  ```
604
605
 
605
606
  **⚠️ CRITICAL: runPipeResult Type Safety**
606
607
 
607
608
  `runPipeResult<T, R=any>` has a default type parameter `R=any`. This means:
608
609
 
609
- - **Without generics**: `const result = runPipeResult(pipeline(data));` returns `any` type (unsafe!)
610
- - **With generics**: `runPipeResult<SuccessType, ErrorType>(result)` returns union type `SuccessType | ErrorType` (type-safe)
611
- - ✅ **With isSideEffect**: Use for runtime checking whether a value is SideEffect
610
+ - **Precise input types**: `T | SideEffect<'E'>` preserves `T | 'E'` without extra annotations.
611
+ - ⚠️ **Widened inputs**: `T | SideEffect<any>` (or `any`) collapses to `any`.
612
+ - ✅ **With generics**: `runPipeResult<SuccessType, ErrorType>(result)` restores a safe union when inference is lost.
613
+ - ✅ **With isSideEffect**: Use for runtime checking and precise narrowing.
612
614
 
613
- **Always provide generics to `runPipeResult`** for type safety. Use `isSideEffect` for runtime type checking.
615
+ Provide generics when inference is lost; prefer `isSideEffect` for precise narrowing.
614
616
 
615
617
  ### Pipe vs PipeAsync
616
618
 
@@ -1,2 +1,2 @@
1
- (function(i,m){typeof exports=="object"&&typeof module<"u"?m(exports):typeof define=="function"&&define.amd?define(["exports"],m):(i=typeof globalThis<"u"?globalThis:i||self,m(i.FpPack={}))})(this,(function(i){"use strict";function m(...n){return t=>n.reduce((e,r)=>r(e),t)}class d{effect;label;constructor(t,e){this.effect=t,this.label=e}static of(t,e){return new d(t,e)}}function T(n,t){return n instanceof d?t.effect(n):t.value(n)}function M(n){return h(n)?n.effect():n}function h(n){return n instanceof d}function N(...n){return t=>{let e=t;for(const r of n){if(h(e))return e;e=r(e)}return e}}function P(...n){return t=>{let e=t;for(const r of n){if(h(e))return e;e=r(e)}return e}}function k(...n){return t=>n.reduceRight((e,r)=>r(e),t)}function c(n,...t){const e=r=>r.length>=n.length?n(...r):(...u)=>e([...r,...u]);return t.length===0?e([]):e(t)}function z(n,...t){return function(...r){const u=[...t,...r];return n.apply(this,u)}}function I(n){return function(...e){const r=[...e].reverse();return n.apply(this,r)}}function W(n,...t){return t.length===0?(...e)=>!n(...e):!n(...t)}function _(n){return n}function D(n){return()=>n}function L(n){const t=e=>n;return Object.defineProperty(t,"__from",{value:!0}),t}function v(n){return t=>(n(t),t)}function C(n){let t=!1,e;return function(...u){return t||(t=!0,e=n.apply(this,u)),e}}function K(n){const t=new Map,e=Symbol("result");return function(...u){let o=t;for(const s of u)o.has(s)||o.set(s,new Map),o=o.get(s);if(o.has(e))return o.get(e);const f=n.apply(this,u);return o.set(e,f),f}}function q(n,t,e,r){return n(r)?t(r):e(r)}const B=c(q);function F(n,t,e){return n(e)?t(e):e}const V=c(F);function R(n,t,e){return n(e)?e:t(e)}const $=c(R);function U(n){return t=>{for(const[e,r]of n)if(e(t))return r(t)}}function j(n,t,e){try{return n(e)}catch(r){const u=r instanceof Error?r:new Error(String(r));return t(u,e)}}const G=c(j);function Z(n,t,e){return n(e)?e:t}const H=c(Z);function J(n,t){return t.map(n)}const Q=c(J);function X(n,t){return t.filter(n)}const Y=c(X);function x(n,t,e){return e.reduce(n,t)}const nn=c(x);function tn(n,t){return t.flatMap(n)}const en=c(tn);function rn(n,t){return t.find(n)}const un=c(rn);function cn(n,t){for(let e=0;e<t.length;e++)if(n(t[e]))return!0;return!1}const on=c(cn);function fn(n,t){return t.every(n)}const sn=c(fn);function ln(n,t){return n<=0?[]:n>=t.length?[...t]:t.slice(0,n)}const an=c(ln);function dn(n,t){const e=Math.floor(n);return!Number.isFinite(e)||e<=0?t:t.slice(e)}const hn=c(dn);function yn(n,t){const e=[];let r=!0;for(const u of t)r&&!n(u)&&(r=!1),r||e.push(u);return e}const mn=c(yn);function pn(n,t){const e=Math.floor(n);if(!Number.isFinite(e)||e<=0)return[];const r=[];for(let u=0;u<t.length;u+=e)r.push(t.slice(u,u+e));return r}const gn=c(pn);function An(n,t){const e=Math.min(t.length,n.length),r=[];for(let u=0;u<e;u+=1)r.push([t[u],n[u]]);return r}const wn=c(An);function Sn(n,t,e){const r=Math.min(e.length,t.length),u=[];for(let o=0;o<r;o+=1)u.push(n(e[o],t[o]));return u}const bn=c(Sn);function En(n){const t=[],e=[];for(const[r,u]of n)t.push(r),e.push(u);return[t,e]}function On(n){const t=new Set,e=[];for(const r of n)t.has(r)||(t.add(r),e.push(r));return e}function Tn(n,t){const e=new Set,r=[];for(const u of t){const o=n(u);e.has(o)||(e.add(o),r.push(u))}return r}const Mn=c(Tn);function Nn(n,t){return[...t].sort((e,r)=>{const u=n(e),o=n(r);return u<o?-1:u>o?1:0})}const Pn=c(Nn);function kn(n,t){return[...t].sort(n)}const zn=c(kn);function In(n,t){return t.reduce((e,r)=>{const u=n(r);return e[u]||(e[u]=[]),e[u].push(r),e},{})}const Wn=c(In);function _n(n){return n.map((t,e)=>[e,t])}function Dn(n,t){const e=[];for(const r of t){if(!n(r))break;e.push(r)}return e}const Ln=c(Dn);function vn(n,t,e){const r=[];let u=t;for(const o of e)u=n(u,o),r.push(u);return r}const Cn=c(vn);function Kn(n,t){return[...t,...n]}const qn=c(Kn);function Bn(n,t){return[...t,n]}const Fn=c(Bn);function Vn(n,t){return[n,...t]}const Rn=c(Vn);function $n(n){return n.flat()}function Un(n){return n[0]}function jn(n){return n.slice(1)}function Gn(n){if(n.length!==0)return n[n.length-1]}function Zn(n){return n.length<=1?[]:n.slice(0,-1)}function Hn(n,t){if(!Number.isFinite(n)||!Number.isFinite(t))return[];if(n===t)return[];const e=n<t?1:-1,r=[];for(let u=n;e>0?u<t:u>t;u+=e)r.push(u);return r}function Jn(n,t){const e=[],r=[];for(const u of t)n(u)?e.push(u):r.push(u);return[e,r]}const Qn=c(Jn);function Xn(n){const t=[],e=r=>{for(const u of r)Array.isArray(u)?e(u):t.push(u)};return e(n),t}function Yn(n,t){return t?.[n]}const xn=c(Yn);function nt(n,t){const e=t?.[n];if(e==null)throw new Error(`propStrict: "${String(n)}" is null or undefined`);return e}const tt=c(nt);function et(n,t,e){const r=e?.[t];return r??n}const rt=c(et);function it(n,t){return n.reduce((e,r)=>e?.[r],t)}const ut=c(it);function ct(n,t,e){const r=t.reduce((u,o)=>u?.[o],e);return r??n}const ot=c(ct);function ft(n,t){const e={};for(const r of n)r in t&&(e[r]=t[r]);return e}const st=c(ft);function lt(n,t){const e={...t};for(const r of n)delete e[r];return e}const at=c(lt);function dt(n,t,e){if(Array.isArray(e)){const r=e.slice();return r[n]=t,r}return e&&typeof e=="object"?{...e,[n]:t}:{[n]:t}}const ht=c(dt),S=n=>typeof n=="number"?Number.isInteger(n):typeof n=="string"?/^-?\d+$/.test(n):!1,yt=(n,t)=>{const e=typeof n=="number"?n:Number(n);return Number.isNaN(e)?-1:e<0?Math.max(t+e,0):e},b=n=>n!==null&&typeof n=="object";function p(n,t,e){if(n.length===0)return t;const[r,...u]=n,o=S(r),f=Array.isArray(e)?e.slice():b(e)?{...e}:o?[]:{};if(Array.isArray(f)&&S(r)){const a=yt(r,f.length),A=f[a],w=u.length===0?t:p(u,t,A);return f[a]=w,f}const s=b(f)?f[r]:void 0,l=u.length===0?t:p(u,t,s);return f[r]=l,f}const mt=c(p);function pt(n,t){if(Array.isArray(t)){const e=t.slice(),r=typeof n=="number"?n:Number.isNaN(Number(n))?-1:Number(n);return r>=0&&r<e.length?e.splice(r,1):delete e[n],e}if(t&&typeof t=="object"){const{[n]:e,...r}=t;return r}return t}const gt=n=>typeof n=="number"?Number.isInteger(n):typeof n=="string"?/^-?\d+$/.test(n):!1,At=(n,t)=>{const e=typeof n=="number"?n:Number(n);return Number.isNaN(e)?-1:e<0?t+e:e},wt=n=>n!==null&&typeof n=="object";function g(n,t){if(n.length===0||!wt(t))return t;const[e,...r]=n;if(Array.isArray(t)&&gt(e)){const o=At(e,t.length);if(o<0||o>=t.length)return t;const f=t.slice();if(r.length===0)return f.splice(o,1),f;const s=g(r,f[o]);return f[o]=s,f}if(!Object.prototype.hasOwnProperty.call(t,e))return t;if(r.length===0){const{[e]:o,...f}=t;return f}const u={...t};return u[e]=g(r,u[e]),u}const St=c(g);function bt(n,t){return{...n,...t}}const Et=c(bt);function Ot(n,t){const e=u=>typeof u=="object"&&u!==null&&!Array.isArray(u),r=(u,o)=>{const f={...u};for(const[s,l]of Object.entries(o)){const a=f[s];e(a)&&e(l)?f[s]=r(a,l):f[s]=l}return f};return e(n)&&e(t)?r(n,t):{...n,...t}}const Tt=c(Ot);function Mt(n){return n.reduce((e,r)=>({...e,...r}),{})}function Nt(n){return Object.keys(n)}function Pt(n){return Object.values(n)}function kt(n){return Object.entries(n)}function zt(n){return t=>{const e={};for(const[r,u]of Object.entries(t))e[r]=n(u);return e}}function It(n,t){const e={...t};for(const r of Object.keys(n)){const u=n[r];typeof u=="function"&&(e[r]=u(t[r]))}return e}const Wt=c(It);function _t(n,t){return Object.prototype.hasOwnProperty.call(t,n)}const Dt=c(_t);function Lt(n){return t=>{let e=t;for(const r of n){if(e==null||!Object.prototype.hasOwnProperty.call(e,r))return!1;e=e[r]}return!0}}function vt(n,t){return y(n,t,new WeakMap)}function y(n,t,e){if(n===t||typeof n=="number"&&typeof t=="number"&&Number.isNaN(n)&&Number.isNaN(t))return!0;if(n===null||t===null||typeof n!="object"||typeof t!="object")return!1;if(e.has(n))return e.get(n)===t;if(e.set(n,t),n instanceof Date&&t instanceof Date)return n.getTime()===t.getTime();if(n instanceof Map&&t instanceof Map){if(n.size!==t.size)return!1;const o=Array.from(t.entries());for(const[f,s]of n.entries()){let l=!1;for(let a=0;a<o.length;a++){const[A,w]=o[a];if(y(f,A,e)&&y(s,w,e)){o.splice(a,1),l=!0;break}}if(!l)return!1}return!0}if(n instanceof Set&&t instanceof Set){if(n.size!==t.size)return!1;const o=Array.from(t.values());for(const f of n.values()){let s=!1;for(let l=0;l<o.length;l++)if(y(f,o[l],e)){o.splice(l,1),s=!0;break}if(!s)return!1}return!0}if(Array.isArray(n)&&Array.isArray(t)){if(n.length!==t.length)return!1;for(let o=0;o<n.length;o++)if(!y(n[o],t[o],e))return!1;return!0}const r=Reflect.ownKeys(n),u=Reflect.ownKeys(t);if(r.length!==u.length)return!1;for(const o of r)if(!Object.prototype.hasOwnProperty.call(t,o)||!y(n[o],t[o],e))return!1;return!0}const E=c(vt);function Ct(n){return n==null}function Kt(n){return n==null?!0:typeof n=="string"||Array.isArray(n)?n.length===0:n instanceof Map||n instanceof Set?n.size===0:typeof n=="object"?Object.keys(n).length===0:!1}function qt(n){const t=n.toLowerCase();return e=>{if(e===null)return t==="null";if(e===void 0)return t==="undefined";const r=typeof e;return r!=="object"?r===t:Object.prototype.toString.call(e).slice(8,-1).toLowerCase()===t}}function Bt(n){return t=>t>n}function Ft(n){return t=>t>=n}function Vt(n){return t=>t<n}function Rt(n){return t=>t<=n}function $t(n,t,e){return e<n?n:e>t?t:e}const Ut=c($t);function jt(n,t){if(typeof t=="string"&&typeof n=="string")return t.includes(n);if(Array.isArray(t)){for(let e=0;e<t.length;e++)if(E(t[e],n))return!0;return!1}return!1}function Gt(n,t){return n+t}const Zt=c(Gt);function Ht(n,t){return n-t}const Jt=c(Ht);function Qt(n,t){return n*t}const Xt=c(Qt);function Yt(n,t){return n/t}const xt=c(Yt);function ne(n){return n.reduce((t,e)=>t+e,0)}function te(n){return n.length===0?NaN:n.reduce((e,r)=>e+r,0)/n.length}function ee(n){return n.length===0?1/0:Math.min(...n)}function re(n){return n.length===0?-1/0:Math.max(...n)}function ie(n){return Math.round(n)}function ue(n){return Math.floor(n)}function ce(n){return Math.ceil(n)}function oe(n,t){const e=Math.ceil(n),r=Math.floor(t);return r<e?e:Math.floor(Math.random()*(r-e+1))+e}const fe=c(oe);function se(n){return n.trim()}function le(n,t){return t.split(n)}const ae=c(le);function de(n,t){return t.join(n)}const he=c(de);function ye(n,t,e){return e.replace(n,t)}const me=c(ye);function pe(n){return n.toUpperCase()}function ge(n){return n.toLowerCase()}function Ae(n,t){if(typeof t=="string"&&typeof n=="string")return t.startsWith(n);if(Array.isArray(n)&&Array.isArray(t)){if(n.length===0)return!0;if(n.length>t.length)return!1;for(let e=0;e<n.length;e++)if(t[e]!==n[e])return!1;return!0}return!1}function we(n,t){if(typeof t=="string"&&typeof n=="string")return t.endsWith(n);if(Array.isArray(n)&&Array.isArray(t)){if(n.length===0)return!0;if(n.length>t.length)return!1;for(let e=0;e<n.length;e++){const r=t.length-n.length+e;if(t[r]!==n[e])return!1}return!0}return!1}function Se(n,t){return t.match(n)}const be=c(Se);function Ee(...n){return async t=>{let e=t;for(const r of n)e=await r(e);return e}}function Oe(...n){return async t=>{let e=t;for(const r of n){if(h(e))return e;e=await r(e)}return e}}function Te(...n){return async t=>{let e=t;for(const r of n){if(h(e))return e;e=await r(e)}return e}}function O(n){return new Promise(t=>{setTimeout(t,n)})}function Me(n,t){return new Promise((e,r)=>{const u=setTimeout(()=>r(new Error(`Timed out after ${n}ms`)),n);t.then(o=>{clearTimeout(u),e(o)}).catch(o=>{clearTimeout(u),r(o)})})}const Ne=c(Me);function Pe(n,t,e=0){return(async()=>{let r=0;for(;;)try{return await t()}catch(u){if(r+=1,r>n)throw u;e>0&&await O(e)}})()}const ke=c(Pe);function ze(n,t){let e;return function(...u){e&&clearTimeout(e);const o=this;e=setTimeout(()=>{e=void 0,n.apply(o,u)},t)}}const Ie=c(ze);function We(n,t){let e;return function(...u){e||(n.apply(this,u),e=setTimeout(()=>{e=void 0},t))}}const _e=c(We);function De(n,t){let e,r=!1,u,o;const f=()=>{e=void 0,r&&u&&(r=!1,n.apply(o,u))};return function(...l){if(!e){n.apply(this,l),e=setTimeout(f,t);return}r=!0,u=l,o=this,clearTimeout(e),e=setTimeout(f,t)}}const Le=c(De);function ve(n,t){let e=0,r=null,u=null;const o=(s,l)=>{e=Date.now(),n.apply(s,l)};return function(...s){const l=Date.now(),a=t-(l-e);a<=0?(u&&(clearTimeout(u),u=null),r=null,o(this,s)):(r=s,u||(u=setTimeout(()=>{u=null,r&&(o(this,r),r=null)},a)))}}const Ce=c(ve);function Ke(n){return t=>t==null?null:n(t)}function qe(n){return t=>{const e=[];for(const r of t){const u=n(r);u!=null&&e.push(u)}return e}}function Be(n){return t=>t??n}function Fe(n){try{return{ok:!0,value:n()}}catch(t){return{ok:!1,error:t}}}function Ve(n,t,e){return e==null?n():t(e)}const Re=c(Ve);function $e(n,t){if(!n)throw new Error(t??"Assertion failed")}const Ue=c($e);function je(n,t){if(!n)throw new Error(t??"Invariant failed")}const Ge=c(je);function Ze(n){return t=>(n?console.log(n,t):console.log(t),t)}i.SideEffect=d,i.SideEffectClass=d,i.add=Zt,i.append=Fn,i.assert=Ue,i.assoc=ht,i.assocPath=mt,i.ceil=ce,i.chunk=gn,i.clamp=Ut,i.complement=W,i.compose=k,i.concat=qn,i.cond=U,i.constant=D,i.curry=c,i.debounce=Ie,i.debounceLeading=_e,i.debounceLeadingTrailing=Le,i.delay=O,i.dissoc=pt,i.dissocPath=St,i.div=xt,i.drop=hn,i.dropWhile=mn,i.endsWith=we,i.entries=kt,i.equals=E,i.every=sn,i.evolve=Wt,i.filter=Y,i.find=un,i.flatMap=en,i.flatten=$n,i.flattenDeep=Xn,i.flip=I,i.floor=ue,i.fold=Re,i.from=L,i.getOrElse=Be,i.groupBy=Wn,i.gt=Bt,i.gte=Ft,i.guard=H,i.has=Dt,i.hasPath=Lt,i.head=Un,i.identity=_,i.ifElse=B,i.includes=jt,i.init=Zn,i.invariant=Ge,i.isEmpty=Kt,i.isNil=Ct,i.isSideEffect=h,i.isType=qt,i.join=he,i.keys=Nt,i.last=Gn,i.log=Ze,i.lt=Vt,i.lte=Rt,i.map=Q,i.mapMaybe=qe,i.mapValues=zt,i.match=be,i.matchSideEffect=T,i.max=re,i.maybe=Ke,i.mean=te,i.memoize=K,i.merge=Et,i.mergeAll=Mt,i.mergeDeep=Tt,i.min=ee,i.mul=Xt,i.omit=at,i.once=C,i.partial=z,i.partition=Qn,i.path=ut,i.pathOr=ot,i.pick=st,i.pipe=m,i.pipeAsync=Ee,i.pipeAsyncSideEffect=Oe,i.pipeAsyncSideEffectStrict=Te,i.pipeSideEffect=N,i.pipeSideEffectStrict=P,i.prepend=Rn,i.prop=xn,i.propOr=rt,i.propStrict=tt,i.randomInt=fe,i.range=Hn,i.reduce=nn,i.replace=me,i.result=Fe,i.retry=ke,i.round=ie,i.runPipeResult=M,i.scan=Cn,i.some=on,i.sort=zn,i.sortBy=Pn,i.split=ae,i.startsWith=Ae,i.sub=Jt,i.sum=ne,i.tail=jn,i.take=an,i.takeWhile=Ln,i.tap=v,i.throttle=Ce,i.timeout=Ne,i.toLower=ge,i.toUpper=pe,i.trim=se,i.tryCatch=G,i.uniq=On,i.uniqBy=Mn,i.unless=$,i.unzip=En,i.values=Pt,i.when=V,i.zip=wn,i.zipIndex=_n,i.zipWith=bn,Object.defineProperty(i,Symbol.toStringTag,{value:"Module"})}));
1
+ (function(i,m){typeof exports=="object"&&typeof module<"u"?m(exports):typeof define=="function"&&define.amd?define(["exports"],m):(i=typeof globalThis<"u"?globalThis:i||self,m(i.FpPack={}))})(this,(function(i){"use strict";function m(...n){return t=>n.reduce((e,r)=>r(e),t)}class d{effect;label;constructor(t,e){this.effect=t,this.label=e}static of(t,e){return new d(t,e)}}function T(n,t){return n instanceof d?t.effect(n):t.value(n)}function M(n){return h(n)?n.effect():n}function h(n){return n instanceof d}function N(...n){return t=>{let e=t;for(const r of n){if(h(e))return e;e=r(e)}return e}}function P(...n){return t=>{let e=t;for(const r of n){if(h(e))return e;e=r(e)}return e}}function k(...n){return t=>n.reduceRight((e,r)=>r(e),t)}function c(n,...t){const e=r=>r.length>=n.length?n(...r):(...u)=>e([...r,...u]);return t.length===0?e([]):e(t)}function z(n,...t){return function(...r){const u=[...t,...r];return n.apply(this,u)}}function I(n){return function(...e){const r=[...e].reverse();return n.apply(this,r)}}function W(n,...t){return t.length===0?(...e)=>!n(...e):!n(...t)}function _(n){return n}function D(n){return()=>n}function L(n){const t=e=>n;return Object.defineProperty(t,"__from",{value:!0}),t}function v(n){return t=>(n(t),t)}function C(n){return()=>{n()}}function K(n){let t=!1,e;return function(...u){return t||(t=!0,e=n.apply(this,u)),e}}function q(n){const t=new Map,e=Symbol("result");return function(...u){let o=t;for(const s of u)o.has(s)||o.set(s,new Map),o=o.get(s);if(o.has(e))return o.get(e);const f=n.apply(this,u);return o.set(e,f),f}}function B(n,t,e,r){return n(r)?t(r):e(r)}const F=c(B);function V(n,t,e){return n(e)?t(e):e}const R=c(V);function $(n,t,e){return n(e)?e:t(e)}const U=c($);function j(n){return t=>{for(const[e,r]of n)if(e(t))return r(t)}}function G(n,t,e){try{return n(e)}catch(r){const u=r instanceof Error?r:new Error(String(r));return t(u,e)}}const Z=c(G);function H(n,t,e){return n(e)?e:t}const J=c(H);function Q(n,t){return t.map(n)}const X=c(Q);function Y(n,t){return t.filter(n)}const x=c(Y);function nn(n,t,e){return e.reduce(n,t)}const tn=c(nn);function en(n,t){return t.flatMap(n)}const rn=c(en);function un(n,t){return t.find(n)}const cn=c(un);function on(n,t){for(let e=0;e<t.length;e++)if(n(t[e]))return!0;return!1}const fn=c(on);function sn(n,t){return t.every(n)}const ln=c(sn);function an(n,t){return n<=0?[]:n>=t.length?[...t]:t.slice(0,n)}const dn=c(an);function hn(n,t){const e=Math.floor(n);return!Number.isFinite(e)||e<=0?t:t.slice(e)}const yn=c(hn);function mn(n,t){const e=[];let r=!0;for(const u of t)r&&!n(u)&&(r=!1),r||e.push(u);return e}const pn=c(mn);function gn(n,t){const e=Math.floor(n);if(!Number.isFinite(e)||e<=0)return[];const r=[];for(let u=0;u<t.length;u+=e)r.push(t.slice(u,u+e));return r}const An=c(gn);function wn(n,t){const e=Math.min(t.length,n.length),r=[];for(let u=0;u<e;u+=1)r.push([t[u],n[u]]);return r}const Sn=c(wn);function bn(n,t,e){const r=Math.min(e.length,t.length),u=[];for(let o=0;o<r;o+=1)u.push(n(e[o],t[o]));return u}const En=c(bn);function On(n){const t=[],e=[];for(const[r,u]of n)t.push(r),e.push(u);return[t,e]}function Tn(n){const t=new Set,e=[];for(const r of n)t.has(r)||(t.add(r),e.push(r));return e}function Mn(n,t){const e=new Set,r=[];for(const u of t){const o=n(u);e.has(o)||(e.add(o),r.push(u))}return r}const Nn=c(Mn);function Pn(n,t){return[...t].sort((e,r)=>{const u=n(e),o=n(r);return u<o?-1:u>o?1:0})}const kn=c(Pn);function zn(n,t){return[...t].sort(n)}const In=c(zn);function Wn(n,t){return t.reduce((e,r)=>{const u=n(r);return e[u]||(e[u]=[]),e[u].push(r),e},{})}const _n=c(Wn);function Dn(n){return n.map((t,e)=>[e,t])}function Ln(n,t){const e=[];for(const r of t){if(!n(r))break;e.push(r)}return e}const vn=c(Ln);function Cn(n,t,e){const r=[];let u=t;for(const o of e)u=n(u,o),r.push(u);return r}const Kn=c(Cn);function qn(n,t){return[...t,...n]}const Bn=c(qn);function Fn(n,t){return[...t,n]}const Vn=c(Fn);function Rn(n,t){return[n,...t]}const $n=c(Rn);function Un(n){return n.flat()}function jn(n){return n[0]}function Gn(n){return n.slice(1)}function Zn(n){if(n.length!==0)return n[n.length-1]}function Hn(n){return n.length<=1?[]:n.slice(0,-1)}function Jn(n,t){if(!Number.isFinite(n)||!Number.isFinite(t))return[];if(n===t)return[];const e=n<t?1:-1,r=[];for(let u=n;e>0?u<t:u>t;u+=e)r.push(u);return r}function Qn(n,t){const e=[],r=[];for(const u of t)n(u)?e.push(u):r.push(u);return[e,r]}const Xn=c(Qn);function Yn(n){const t=[],e=r=>{for(const u of r)Array.isArray(u)?e(u):t.push(u)};return e(n),t}function xn(n,t){return t?.[n]}const nt=c(xn);function tt(n,t){const e=t?.[n];if(e==null)throw new Error(`propStrict: "${String(n)}" is null or undefined`);return e}const et=c(tt);function rt(n,t,e){const r=e?.[t];return r??n}const it=c(rt);function ut(n,t){return n.reduce((e,r)=>e?.[r],t)}const ct=c(ut);function ot(n,t,e){const r=t.reduce((u,o)=>u?.[o],e);return r??n}const ft=c(ot);function st(n,t){const e={};for(const r of n)r in t&&(e[r]=t[r]);return e}const lt=c(st);function at(n,t){const e={...t};for(const r of n)delete e[r];return e}const dt=c(at);function ht(n,t,e){if(Array.isArray(e)){const r=e.slice();return r[n]=t,r}return e&&typeof e=="object"?{...e,[n]:t}:{[n]:t}}const yt=c(ht),S=n=>typeof n=="number"?Number.isInteger(n):typeof n=="string"?/^-?\d+$/.test(n):!1,mt=(n,t)=>{const e=typeof n=="number"?n:Number(n);return Number.isNaN(e)?-1:e<0?Math.max(t+e,0):e},b=n=>n!==null&&typeof n=="object";function p(n,t,e){if(n.length===0)return t;const[r,...u]=n,o=S(r),f=Array.isArray(e)?e.slice():b(e)?{...e}:o?[]:{};if(Array.isArray(f)&&S(r)){const a=mt(r,f.length),A=f[a],w=u.length===0?t:p(u,t,A);return f[a]=w,f}const s=b(f)?f[r]:void 0,l=u.length===0?t:p(u,t,s);return f[r]=l,f}const pt=c(p);function gt(n,t){if(Array.isArray(t)){const e=t.slice(),r=typeof n=="number"?n:Number.isNaN(Number(n))?-1:Number(n);return r>=0&&r<e.length?e.splice(r,1):delete e[n],e}if(t&&typeof t=="object"){const{[n]:e,...r}=t;return r}return t}const At=n=>typeof n=="number"?Number.isInteger(n):typeof n=="string"?/^-?\d+$/.test(n):!1,wt=(n,t)=>{const e=typeof n=="number"?n:Number(n);return Number.isNaN(e)?-1:e<0?t+e:e},St=n=>n!==null&&typeof n=="object";function g(n,t){if(n.length===0||!St(t))return t;const[e,...r]=n;if(Array.isArray(t)&&At(e)){const o=wt(e,t.length);if(o<0||o>=t.length)return t;const f=t.slice();if(r.length===0)return f.splice(o,1),f;const s=g(r,f[o]);return f[o]=s,f}if(!Object.prototype.hasOwnProperty.call(t,e))return t;if(r.length===0){const{[e]:o,...f}=t;return f}const u={...t};return u[e]=g(r,u[e]),u}const bt=c(g);function Et(n,t){return{...n,...t}}const Ot=c(Et);function Tt(n,t){const e=u=>typeof u=="object"&&u!==null&&!Array.isArray(u),r=(u,o)=>{const f={...u};for(const[s,l]of Object.entries(o)){const a=f[s];e(a)&&e(l)?f[s]=r(a,l):f[s]=l}return f};return e(n)&&e(t)?r(n,t):{...n,...t}}const Mt=c(Tt);function Nt(n){return n.reduce((e,r)=>({...e,...r}),{})}function Pt(n){return Object.keys(n)}function kt(n){return Object.values(n)}function zt(n){return Object.entries(n)}function It(n){return t=>{const e={};for(const[r,u]of Object.entries(t))e[r]=n(u);return e}}function Wt(n,t){const e={...t};for(const r of Object.keys(n)){const u=n[r];typeof u=="function"&&(e[r]=u(t[r]))}return e}const _t=c(Wt);function Dt(n,t){return Object.prototype.hasOwnProperty.call(t,n)}const Lt=c(Dt);function vt(n){return t=>{let e=t;for(const r of n){if(e==null||!Object.prototype.hasOwnProperty.call(e,r))return!1;e=e[r]}return!0}}function Ct(n,t){return y(n,t,new WeakMap)}function y(n,t,e){if(n===t||typeof n=="number"&&typeof t=="number"&&Number.isNaN(n)&&Number.isNaN(t))return!0;if(n===null||t===null||typeof n!="object"||typeof t!="object")return!1;if(e.has(n))return e.get(n)===t;if(e.set(n,t),n instanceof Date&&t instanceof Date)return n.getTime()===t.getTime();if(n instanceof Map&&t instanceof Map){if(n.size!==t.size)return!1;const o=Array.from(t.entries());for(const[f,s]of n.entries()){let l=!1;for(let a=0;a<o.length;a++){const[A,w]=o[a];if(y(f,A,e)&&y(s,w,e)){o.splice(a,1),l=!0;break}}if(!l)return!1}return!0}if(n instanceof Set&&t instanceof Set){if(n.size!==t.size)return!1;const o=Array.from(t.values());for(const f of n.values()){let s=!1;for(let l=0;l<o.length;l++)if(y(f,o[l],e)){o.splice(l,1),s=!0;break}if(!s)return!1}return!0}if(Array.isArray(n)&&Array.isArray(t)){if(n.length!==t.length)return!1;for(let o=0;o<n.length;o++)if(!y(n[o],t[o],e))return!1;return!0}const r=Reflect.ownKeys(n),u=Reflect.ownKeys(t);if(r.length!==u.length)return!1;for(const o of r)if(!Object.prototype.hasOwnProperty.call(t,o)||!y(n[o],t[o],e))return!1;return!0}const E=c(Ct);function Kt(n){return n==null}function qt(n){return n==null?!0:typeof n=="string"||Array.isArray(n)?n.length===0:n instanceof Map||n instanceof Set?n.size===0:typeof n=="object"?Object.keys(n).length===0:!1}function Bt(n){const t=n.toLowerCase();return e=>{if(e===null)return t==="null";if(e===void 0)return t==="undefined";const r=typeof e;return r!=="object"?r===t:Object.prototype.toString.call(e).slice(8,-1).toLowerCase()===t}}function Ft(n){return t=>t>n}function Vt(n){return t=>t>=n}function Rt(n){return t=>t<n}function $t(n){return t=>t<=n}function Ut(n,t,e){return e<n?n:e>t?t:e}const jt=c(Ut);function Gt(n,t){if(typeof t=="string"&&typeof n=="string")return t.includes(n);if(Array.isArray(t)){for(let e=0;e<t.length;e++)if(E(t[e],n))return!0;return!1}return!1}function Zt(n,t){return n+t}const Ht=c(Zt);function Jt(n,t){return n-t}const Qt=c(Jt);function Xt(n,t){return n*t}const Yt=c(Xt);function xt(n,t){return n/t}const ne=c(xt);function te(n){return n.reduce((t,e)=>t+e,0)}function ee(n){return n.length===0?NaN:n.reduce((e,r)=>e+r,0)/n.length}function re(n){return n.length===0?1/0:Math.min(...n)}function ie(n){return n.length===0?-1/0:Math.max(...n)}function ue(n){return Math.round(n)}function ce(n){return Math.floor(n)}function oe(n){return Math.ceil(n)}function fe(n,t){const e=Math.ceil(n),r=Math.floor(t);return r<e?e:Math.floor(Math.random()*(r-e+1))+e}const se=c(fe);function le(n){return n.trim()}function ae(n,t){return t.split(n)}const de=c(ae);function he(n,t){return t.join(n)}const ye=c(he);function me(n,t,e){return e.replace(n,t)}const pe=c(me);function ge(n){return n.toUpperCase()}function Ae(n){return n.toLowerCase()}function we(n,t){if(typeof t=="string"&&typeof n=="string")return t.startsWith(n);if(Array.isArray(n)&&Array.isArray(t)){if(n.length===0)return!0;if(n.length>t.length)return!1;for(let e=0;e<n.length;e++)if(t[e]!==n[e])return!1;return!0}return!1}function Se(n,t){if(typeof t=="string"&&typeof n=="string")return t.endsWith(n);if(Array.isArray(n)&&Array.isArray(t)){if(n.length===0)return!0;if(n.length>t.length)return!1;for(let e=0;e<n.length;e++){const r=t.length-n.length+e;if(t[r]!==n[e])return!1}return!0}return!1}function be(n,t){return t.match(n)}const Ee=c(be);function Oe(...n){return async t=>{let e=t;for(const r of n)e=await r(e);return e}}function Te(...n){return async t=>{let e=t;for(const r of n){if(h(e))return e;e=await r(e)}return e}}function Me(...n){return async t=>{let e=t;for(const r of n){if(h(e))return e;e=await r(e)}return e}}function O(n){return new Promise(t=>{setTimeout(t,n)})}function Ne(n,t){return new Promise((e,r)=>{const u=setTimeout(()=>r(new Error(`Timed out after ${n}ms`)),n);t.then(o=>{clearTimeout(u),e(o)}).catch(o=>{clearTimeout(u),r(o)})})}const Pe=c(Ne);function ke(n,t,e=0){return(async()=>{let r=0;for(;;)try{return await t()}catch(u){if(r+=1,r>n)throw u;e>0&&await O(e)}})()}const ze=c(ke);function Ie(n,t){let e;return function(...u){e&&clearTimeout(e);const o=this;e=setTimeout(()=>{e=void 0,n.apply(o,u)},t)}}const We=c(Ie);function _e(n,t){let e;return function(...u){e||(n.apply(this,u),e=setTimeout(()=>{e=void 0},t))}}const De=c(_e);function Le(n,t){let e,r=!1,u,o;const f=()=>{e=void 0,r&&u&&(r=!1,n.apply(o,u))};return function(...l){if(!e){n.apply(this,l),e=setTimeout(f,t);return}r=!0,u=l,o=this,clearTimeout(e),e=setTimeout(f,t)}}const ve=c(Le);function Ce(n,t){let e=0,r=null,u=null;const o=(s,l)=>{e=Date.now(),n.apply(s,l)};return function(...s){const l=Date.now(),a=t-(l-e);a<=0?(u&&(clearTimeout(u),u=null),r=null,o(this,s)):(r=s,u||(u=setTimeout(()=>{u=null,r&&(o(this,r),r=null)},a)))}}const Ke=c(Ce);function qe(n){return t=>t==null?null:n(t)}function Be(n){return t=>{const e=[];for(const r of t){const u=n(r);u!=null&&e.push(u)}return e}}function Fe(n){return t=>t??n}function Ve(n){try{return{ok:!0,value:n()}}catch(t){return{ok:!1,error:t}}}function Re(n,t,e){return e==null?n():t(e)}const $e=c(Re);function Ue(n,t){if(!n)throw new Error(t??"Assertion failed")}const je=c(Ue);function Ge(n,t){if(!n)throw new Error(t??"Invariant failed")}const Ze=c(Ge);function He(n){return t=>(n?console.log(n,t):console.log(t),t)}i.SideEffect=d,i.SideEffectClass=d,i.add=Ht,i.append=Vn,i.assert=je,i.assoc=yt,i.assocPath=pt,i.ceil=oe,i.chunk=An,i.clamp=jt,i.complement=W,i.compose=k,i.concat=Bn,i.cond=j,i.constant=D,i.curry=c,i.debounce=We,i.debounceLeading=De,i.debounceLeadingTrailing=ve,i.delay=O,i.dissoc=gt,i.dissocPath=bt,i.div=ne,i.drop=yn,i.dropWhile=pn,i.endsWith=Se,i.entries=zt,i.equals=E,i.every=ln,i.evolve=_t,i.filter=x,i.find=cn,i.flatMap=rn,i.flatten=Un,i.flattenDeep=Yn,i.flip=I,i.floor=ce,i.fold=$e,i.from=L,i.getOrElse=Fe,i.groupBy=_n,i.gt=Ft,i.gte=Vt,i.guard=J,i.has=Lt,i.hasPath=vt,i.head=jn,i.identity=_,i.ifElse=F,i.includes=Gt,i.init=Hn,i.invariant=Ze,i.isEmpty=qt,i.isNil=Kt,i.isSideEffect=h,i.isType=Bt,i.join=ye,i.keys=Pt,i.last=Zn,i.log=He,i.lt=Rt,i.lte=$t,i.map=X,i.mapMaybe=Be,i.mapValues=It,i.match=Ee,i.matchSideEffect=T,i.max=ie,i.maybe=qe,i.mean=ee,i.memoize=q,i.merge=Ot,i.mergeAll=Nt,i.mergeDeep=Mt,i.min=re,i.mul=Yt,i.omit=dt,i.once=K,i.partial=z,i.partition=Xn,i.path=ct,i.pathOr=ft,i.pick=lt,i.pipe=m,i.pipeAsync=Oe,i.pipeAsyncSideEffect=Te,i.pipeAsyncSideEffectStrict=Me,i.pipeSideEffect=N,i.pipeSideEffectStrict=P,i.prepend=$n,i.prop=nt,i.propOr=it,i.propStrict=et,i.randomInt=se,i.range=Jn,i.reduce=tn,i.replace=pe,i.result=Ve,i.retry=ze,i.round=ue,i.runPipeResult=M,i.scan=Kn,i.some=fn,i.sort=In,i.sortBy=kn,i.split=de,i.startsWith=we,i.sub=Qt,i.sum=te,i.tail=Gn,i.take=dn,i.takeWhile=vn,i.tap=v,i.tap0=C,i.throttle=Ke,i.timeout=Pe,i.toLower=Ae,i.toUpper=ge,i.trim=le,i.tryCatch=Z,i.uniq=Tn,i.uniqBy=Nn,i.unless=U,i.unzip=On,i.values=kt,i.when=R,i.zip=Sn,i.zipIndex=Dn,i.zipWith=En,Object.defineProperty(i,Symbol.toStringTag,{value:"Module"})}));
2
2
  //# sourceMappingURL=fp-pack.umd.js.map